
:root{font-family:Inter,Segoe UI,Arial,sans-serif;color:#152b37;background:#f4f7f8;font-synthesis:none;--teal:#007f73;--muted:#71838b;--border:#e2e9eb}*{box-sizing:border-box}body{margin:0}button,input,select{font:inherit}button{cursor:pointer;border:0;border-radius:9px;background:var(--teal);color:white;padding:12px 18px;font-weight:600}button:hover{filter:brightness(.94)}button:disabled{opacity:.5;cursor:wait}input,select{padding:11px 13px;border:1px solid #cedadc;border-radius:8px;background:white;color:#203945;min-width:0}input:focus,select:focus,button:focus-visible{outline:3px solid #72c9bb;outline-offset:2px}label{display:grid;gap:8px;font-size:14px;font-weight:600}h1{font-size:30px;letter-spacing:-1px;margin:7px 0}h2{font-size:21px;letter-spacing:-.4px;margin:0 0 12px}p{line-height:1.6}.eyebrow,.nav-caption{font-size:11px;letter-spacing:1.8px;font-weight:700;color:var(--muted)}.brand{display:flex;align-items:center;gap:8px;font-size:23px;letter-spacing:2px;font-weight:800}.brand b{color:var(--teal)}.logo{display:inline-grid;place-items:center;width:37px;height:39px;border-radius:11px;background:var(--teal);color:white;letter-spacing:0;margin-right:5px}.pill{display:inline-block;font-size:10px;font-weight:750;letter-spacing:1px;background:#e2f3ef;color:#137669;padding:9px 13px;border-radius:30px}.muted{color:var(--muted);font-size:13px}.quiet{background:#eaf0f2;color:#35505b}.dot{display:inline-block;width:7px;height:7px;background:#0a9e80;border-radius:50%;margin-right:5px}#login{min-height:100vh;display:grid;grid-template-columns:1fr 1fr}#login[hidden],#app[hidden]{display:none}.login-card{padding:12vh 12%;background:white}.login-card .eyebrow{margin-top:60px}.login-card h1{font-size:38px;line-height:1.2}.login-card>p{color:var(--muted)}form{display:grid;gap:22px;margin-top:30px}.login-art{padding:20vh 12%;background:#093f3a;color:white;position:relative;overflow:hidden}.login-art:after{content:'';position:absolute;right:-200px;bottom:-250px;width:650px;height:650px;border:1px solid #3a7369;border-radius:50%;box-shadow:0 0 0 75px #24594e55,0 0 0 150px #24594e33}.login-art h2{font-size:52px;line-height:1.2;margin:35px 0}.sample-card{position:relative;z-index:1;background:#ffffff12;border:1px solid #ffffff35;padding:26px;border-radius:16px}.sample-card strong{display:block;font-size:22px;margin-top:15px}#app{display:grid;grid-template-columns:245px 1fr;min-height:100vh}aside{background:white;border-right:1px solid var(--border);padding:32px 23px;display:flex;flex-direction:column;position:sticky;top:0;height:100vh}.nav-caption{font-size:9px;margin:50px 10px 14px}nav{display:grid;gap:8px}nav button{background:transparent;color:#62757d;text-align:left;font-size:13px;padding:15px 12px}nav button.active{background:#e5f4ef;color:#007566}.sidebar-foot{margin-top:auto;font-size:11px;color:#58756e;line-height:1.8}.sidebar-foot p{color:#8b999d}main{padding:34px 40px;min-width:0}header{display:flex;align-items:center;justify-content:space-between;gap:15px;margin-bottom:30px}.intro{display:flex;justify-content:space-between;align-items:center;margin:12px 0 24px;gap:15px}.intro p{margin:4px 0;color:var(--muted);font-size:14px}.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:18px;margin:22px 0}.card{background:white;border:1px solid var(--border);border-radius:13px;padding:22px}.stat-label{font-size:12px;color:#667d87}.stat-value{display:block;font-size:31px;font-weight:700;letter-spacing:-1px;margin:13px 0}.stat-note{font-size:11px;color:var(--teal)}.grid-two{display:grid;grid-template-columns:1.6fr 1fr;gap:20px;margin-top:22px}.table-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-top:23px}.table-tile{border-radius:10px;padding:17px 10px;background:#f6f8f9;border:1px solid var(--border);text-align:center}.table-tile.occupied{background:#e7f5ef;border-color:#c7e7db}.table-tile strong{display:block;font-size:13px}.table-tile span{font-size:11px;color:#6c817b;display:block;margin-top:9px}.table-tile b{font-size:14px;display:block;margin-top:9px}.card-head{display:flex;align-items:center;justify-content:space-between;gap:10px}.card-head h2{margin:0}.order{display:flex;justify-content:space-between;border-bottom:1px solid var(--border);padding:17px 0;font-size:13px}.order:last-child{border:0}.order small{display:block;color:var(--muted);margin-top:7px}.badge{display:inline-block;border-radius:6px;padding:5px 8px;font-size:10px;background:#edf3f5;color:#5a7682}.badge.good{background:#e2f3ed;color:#11836f}.badge.warning{background:#fff0d6;color:#986615}.scroll-table{overflow:auto}table{border-collapse:collapse;width:100%;font-size:13px;text-align:left}th{font-size:10px;text-transform:uppercase;letter-spacing:.8px;color:#829199;padding:16px 13px;background:#f8fafb;white-space:nowrap}td{padding:16px 13px;border-bottom:1px solid #edf1f2}td small{display:block;color:#8a9aa1;font-size:10px;margin-top:5px}.toolbar{display:flex;gap:12px;margin-bottom:20px;flex-wrap:wrap}.toolbar input{flex:1}.check-row{display:flex;gap:20px;flex-wrap:wrap}.check-row label{display:flex;align-items:center;font-size:14px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:22px}.price-form{max-width:780px}.price-form .card{padding:28px}.price-form input[type=checkbox]{accent-color:var(--teal)}.help{background:#e7f2f0;border-left:3px solid var(--teal);padding:15px 18px;font-size:13px;line-height:1.6;color:#3c6963}.empty{color:var(--muted);padding:30px;text-align:center}.history-item{margin-bottom:14px}.history-item .card-head{margin-bottom:16px}.history-item button{font-size:12px;padding:9px 12px}footer{font-size:11px;color:#8e9ca2;margin-top:30px}dialog{width:min(850px,94vw);border:1px solid var(--border);border-radius:16px;padding:28px;max-height:85vh;color:#18353f}dialog::backdrop{background:#102f3d80;backdrop-filter:blur(3px)}.dialog-heading{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px}.dialog-heading h2{margin:8px 0}.dialog-actions{display:flex;gap:12px;justify-content:flex-end;margin-top:24px}#notice{padding:13px 18px;background:#fff1d9;color:#805921;border-radius:9px;margin-bottom:20px}#login-error{color:#b54343}.audit{font-size:12px}.audit td{padding:10px}.map-row{display:flex;gap:12px;align-items:center;padding:18px 0;border-bottom:1px solid var(--border);flex-wrap:wrap}.map-row div{flex:1}.map-row select{max-width:260px}.spaced{margin-top:25px}@media(min-width:1500px){main{max-width:1450px;width:100%;margin:auto}}@media(max-width:1050px){#app{grid-template-columns:200px 1fr}aside{padding:25px 13px}main{padding:25px}.stats{grid-template-columns:repeat(2,1fr)}.grid-two{grid-template-columns:1fr}.login-art h2{font-size:38px}}@media(max-width:700px){#login{grid-template-columns:1fr}.login-art{display:none}.login-card{padding:45px 8%}#app{display:block}aside{position:static;height:auto;padding:15px}.brand{font-size:19px}.nav-caption,.sidebar-foot{display:none}nav{display:flex;overflow:auto;margin-top:15px;gap:5px}nav button{white-space:nowrap;font-size:12px;padding:11px}main{padding:20px 14px}header{align-items:flex-start}header .pill{max-width:100px;text-align:center;font-size:8px}h1{font-size:25px}.stats{gap:10px}.card{padding:17px}.stat-value{font-size:26px}.table-grid{gap:8px;grid-template-columns:repeat(3,1fr)}.form-grid{grid-template-columns:1fr}.intro{align-items:flex-start}.intro select{max-width:150px}.dialog-actions{flex-wrap:wrap}}


/* Touch navigation and live table details. */
nav button { display:flex; align-items:center; gap:10px; }
.nav-icon { font-size:20px; line-height:1; }
.table-tile { color:#183c35; min-width:0; }
button.table-tile { width:100%; touch-action:manipulation; transition:border-color .15s,box-shadow .15s; }
button.table-tile:hover { filter:none; border-color:#008b75; box-shadow:0 3px 12px #007f7318; }
.table-tile small { display:block; margin-top:11px; color:#007668; font-size:10px; font-weight:600; }
.table-tile.free { color:#6d8186; }
.room-hint { font-size:12px; color:#71838b; margin:12px 0 0; }
#table-dialog { width:min(580px,94vw); padding:24px; }
#table-dialog .dialog-heading { margin-bottom:16px; }
#close-table { min-width:44px; min-height:44px; flex-shrink:0; }
.table-summary { display:flex; align-items:center; flex-wrap:wrap; gap:12px; font-size:12px; color:#667d87; }
.order-heading { display:flex; justify-content:space-between; align-items:center; margin:25px 0 5px; }
.order-heading h3 { font-size:15px; margin:0; }
.order-heading>span { color:#71838b; font-size:12px; }
.ticket-line { display:grid; grid-template-columns:32px minmax(0,1fr) auto; align-items:start; gap:10px; padding:18px 0; border-bottom:1px solid #edf1f2; }
.line-quantity { background:#e8f4ef; color:#007668; padding:7px 3px; border-radius:7px; text-align:center; font-size:13px; font-weight:700; }
.line-info strong { display:block; font-size:14px; line-height:1.4; }
.line-info small { display:block; margin-top:6px; font-size:11px; color:#71838b; line-height:1.5; }
.line-note { display:inline-block; margin-top:7px; padding:4px 7px; border-radius:5px; background:#fff3db; color:#886123; font-size:10px; }
.line-total { font-size:14px; padding-top:7px; white-space:nowrap; }
.ticket-total { display:flex; justify-content:space-between; align-items:center; gap:12px; margin-top:20px; padding:20px; background:#eaf5f1; border-radius:12px; }
.ticket-total strong { font-size:14px; }
.ticket-total small { display:block; font-size:11px; color:#587b70; margin-top:7px; }
.ticket-total b { font-size:26px; letter-spacing:-1px; white-space:nowrap; }
#table-sync { font-size:11px; line-height:1.6; margin-bottom:0; }
#table-sync.sync-error { color:#a45e08; background:#fff0d6; padding:10px; border-radius:8px; }
.table-empty { padding:30px 0; text-align:center; }
body:has(dialog[open]) { overflow:hidden; }
@media(max-width:700px) {
  #app { padding-bottom:calc(78px + env(safe-area-inset-bottom)); }
  aside { position:relative; display:flex; padding:13px 16px; border-bottom:1px solid var(--border); border-right:0; }
  aside .logo { width:30px; height:32px; border-radius:9px; font-size:20px; }
  aside .brand { font-size:18px; gap:5px; }
  nav { position:fixed; z-index:10; left:0; right:0; bottom:0; display:grid; grid-template-columns:repeat(5,minmax(0,1fr)); gap:3px; margin:0; padding:8px 7px calc(8px + env(safe-area-inset-bottom)); background:#fff; border-top:1px solid var(--border); box-shadow:0 -5px 20px #17332e08; overflow:visible; }
  nav button { display:flex; flex-direction:column; justify-content:center; gap:7px; padding:9px 2px; font-size:10px; min-height:54px; text-align:center; border-radius:10px; white-space:normal; }
  .nav-icon { font-size:21px; }
  .sidebar-foot { display:block; position:absolute; right:14px; top:13px; font-size:0; }
  .sidebar-foot p,.sidebar-foot .dot { display:none; }
  .sidebar-foot button { font-size:11px; min-height:34px; padding:8px 10px; }
  main { padding:22px 16px; }
  header { margin-bottom:22px; gap:12px; }
  header .eyebrow { font-size:9px; letter-spacing:1.1px; }
  header .pill { padding:8px; flex:0 0 82px; }
  h1 { font-size:26px; margin-top:9px; }
  .intro { display:flex; flex-direction:column; align-items:stretch; gap:14px; }
  .intro h2 { font-size:19px; margin-bottom:5px; }
  .intro p { font-size:12px; }
  .intro select { width:100%; max-width:none; min-height:46px; font-size:16px; }
  input,select { font-size:16px; min-height:44px; }
  .stats { gap:10px; margin:18px 0; }
  .stats .card { padding:15px; }
  .stat-value { margin:10px 0; font-size:25px; }
  .stat-label { font-size:11px; }
  .stat-note { font-size:10px; }
  .grid-two { gap:16px; margin-top:16px; }
  .card-head h2 { font-size:18px; }
  .card-head .badge { font-size:9px; }
  .table-grid { margin-top:16px; gap:9px; }
  .table-tile { padding:16px 6px; min-height:118px; }
  .table-tile strong { font-size:14px; }
  .table-tile span { font-size:10px; }
  .table-tile b { font-size:16px; }
  .table-tile small { font-size:9px; }
  .map-row { display:grid; grid-template-columns:minmax(0,1fr); gap:8px; }
  .map-row select { max-width:none; width:100%; }
  .map-row button,.price-form button { min-height:46px; }
  .price-form .card { padding:18px; }
  .check-row { gap:8px; }
  .check-row label { padding:8px; border:1px solid var(--border); border-radius:8px; }
  .check-row input { min-height:0; width:18px; height:18px; }
  dialog,#table-dialog { inset:auto 0 0; margin:0; width:100%; max-width:100%; max-height:92dvh; border:0; border-radius:22px 22px 0 0; padding:20px 18px calc(22px + env(safe-area-inset-bottom)); }
  dialog .dialog-heading { position:sticky; top:-20px; background:white; padding:8px 0 14px; z-index:1; }
  .dialog-heading h2 { font-size:21px; }
  .dialog-heading .eyebrow { font-size:9px; }
  .ticket-total { padding:16px; }
  .ticket-total b { font-size:25px; }
  .dialog-actions button { flex:1; min-height:46px; }
  .history-item .card-head { flex-wrap:wrap; }
  footer { font-size:10px; }
}
@media(max-width:359px) {
  main { padding:20px 12px; }
  .table-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .stats .card { padding:12px; }
  .stat-value { font-size:22px; }
  .brand { letter-spacing:1px; }
  .line-info strong,.line-total { font-size:12px; }
}
.history-filters{display:flex;gap:18px;align-items:end;flex-wrap:wrap}.history-filters label{flex:1;min-width:170px}.day-actions{display:flex;gap:8px}.day-actions button{min-height:44px}.daily-heading{margin-top:25px}.daily-heading p{color:var(--muted);font-size:14px}.daily-payments{display:flex;flex-wrap:wrap;gap:15px}.daily-payments span{padding:13px 18px;background:#e6f2ee;border-radius:9px;font-size:13px}.daily-payments b{margin-left:15px}.receipt-row{display:flex;align-items:center;justify-content:space-between;gap:12px;width:100%;padding:18px 0;background:transparent;color:#193d38;border-bottom:1px solid var(--border);border-radius:0;text-align:left}.receipt-row:hover{background:#f0f8f5;filter:none}.receipt-row small{display:block;color:var(--muted);font-size:11px;margin-top:8px;font-weight:400}.receipt-row b{white-space:nowrap;font-size:14px}#receipt-dialog{width:min(580px,94vw)}#close-receipt{min-width:44px;min-height:44px}
@media(max-width:700px){nav{grid-template-columns:repeat(6,minmax(0,1fr));gap:1px;padding-left:3px;padding-right:3px}nav button{font-size:9px}.history-filters{display:grid;grid-template-columns:minmax(0,1fr);gap:15px}.history-filters label{min-width:0}.day-actions{display:grid;grid-template-columns:1fr 2fr 1fr}.daily-heading p{font-size:12px}.daily-heading .badge{display:block;width:fit-content;margin-top:10px}.receipt-row b{font-size:13px}#receipt-dialog{width:100%}}
.license-card{display:flex;gap:28px;align-items:center;justify-content:space-between;border-top:4px solid #247867}.license-card h2{margin-top:8px}.license-details{display:grid;gap:16px;min-width:180px}.license-details span{font-size:12px;color:var(--muted)}.license-details strong{display:block;color:#193d38;font-size:16px;margin-top:5px}.settings-actions{display:flex;flex-wrap:wrap;gap:10px}fieldset{border:0;padding:0;margin:0;min-width:0}.connection-steps{display:flex;gap:36px;padding-left:22px}.connection-steps li{flex:1}.connection-steps p{font-size:13px;color:var(--muted);line-height:1.6}button:disabled{cursor:not-allowed;opacity:.55}@media(max-width:1000px){.license-card{flex-wrap:wrap}.connection-steps{display:block}}@media(max-width:700px){nav{grid-template-columns:repeat(7,minmax(0,1fr))}nav button{font-size:8px}.license-card{display:grid;gap:18px}.settings-actions button{width:100%}}

.client-store-row{display:grid;grid-template-columns:2fr 1fr auto;gap:12px;align-items:end;margin:16px 0}.client-card p{overflow-wrap:anywhere}.client-card .remove-store{display:none}summary{cursor:pointer;font-weight:700;padding:8px 0}.activation{max-width:600px;margin:8vh auto;padding:20px}#invitation-dialog{max-width:650px}#invite-link{width:100%}nav button[hidden]{display:none!important}@media(max-width:700px){nav{grid-template-columns:repeat(4,minmax(0,1fr))}.client-store-row{grid-template-columns:1fr}.client-card .settings-actions{display:grid}}
/* Family navigation and product selection for imported catalogs. */
#catalog-dialog{width:min(1200px,96vw);max-width:96vw}
.catalog-tools{display:flex;align-items:end;gap:12px;margin:22px 0}.catalog-tools label{flex:1}.catalog-tools input{width:100%}
.catalog-layout{display:grid;grid-template-columns:230px minmax(0,1fr);gap:22px}
.catalog-family-panel{background:#f3f8f7;padding:14px;border-radius:12px;align-self:start}
.catalog-family-panel h3{margin:0 0 12px}.catalog-family-panel button{display:flex;align-items:center;justify-content:space-between;gap:10px;width:100%;text-align:left;background:transparent;color:#38545c;padding:12px;margin-bottom:4px;font-size:13px}
.catalog-family-panel button[aria-pressed=true]{background:var(--teal);color:white}.catalog-family-panel b{font-size:11px;opacity:.8}
.catalog-article{display:block;width:100%;text-align:left;background:transparent;color:#203945;padding:10px;border:2px solid transparent;white-space:normal}.catalog-article[aria-pressed=true]{border-color:var(--teal);background:#e7f5ef}.catalog-article small{display:block;color:#667d87;margin-top:5px}
.catalog-selected{padding:18px;background:#e7f5ef;border:1px solid #badfd5;border-radius:12px;margin:12px 0}.catalog-selected h3{margin:8px 0}.catalog-selected>strong{font-size:24px}.catalog-selected .help{margin-bottom:0}
.catalog-product-panel{min-width:0}#catalog-count{color:#58756e;font-size:14px}
@media(max-width:700px){.catalog-layout{grid-template-columns:1fr}.catalog-tools{align-items:stretch;flex-direction:column}.catalog-family-panel{padding:12px}#catalog-families{display:flex;overflow-x:auto;gap:6px;max-width:100%}.catalog-family-panel button{width:auto;flex:none;max-width:210px}.catalog-family-panel button span{overflow-wrap:anywhere}#catalog-dialog{padding:18px}.catalog-product-panel td,.catalog-product-panel th{padding:9px 5px}}

@media(min-width:701px){#catalog-families{max-height:50vh;overflow-y:auto}}

/* Platform administration has its own navigation and account summary. */
body[data-portal="admin"] aside {background:#103e3b;color:#fff}
body[data-portal="admin"] aside .brand {color:#fff}
body[data-portal="admin"] aside .nav-caption {color:#a6cbc3}
body[data-portal="admin"] nav button {color:#dceee8}
body[data-portal="admin"] nav button.active {background:#ffffff17;color:#fff;border:1px solid #ffffff25}
body[data-portal="admin"] .sidebar-foot {color:#c0d8d2}
body[data-portal="admin"] .sidebar-foot button {background:#ffffff12;color:#fff}
body[data-portal="admin"] .stats .card {border-top:3px solid #008a80}
@media(max-width:700px){
  body[data-portal="admin"] aside nav {display:flex;grid-template-columns:none}
  body[data-portal="admin"] aside nav [data-page] {display:flex;flex:1;justify-content:center}
  body[data-portal="admin"] .stats {grid-template-columns:repeat(2,minmax(0,1fr))}
}
