:root,
:root[data-theme="bright"] {
    --paper:#e9f0ff; --ink:#10294a; --muted:#526888; --white:#fff;
    --line:#c5d6f2; --teal:#145ee9; --navy:#12264c; --surface:#fff;
    --heading:#16469a; --field:#fff; --stripe:#f0f5ff; --nav:#113c94;
    --shadow:0 8px 24px #163e8514;
}
:root[data-theme="light"] {
    --paper:#f5f7fa; --ink:#253348; --muted:#5b697a; --white:#fff;
    --line:#d8e0e9; --teal:#147d84; --navy:#253348; --surface:#fff;
    --heading:#253348; --field:#fff; --stripe:#f4f7fa; --nav:#fff;
}
:root[data-theme="dark"] {
    color-scheme:dark; --paper:#101827; --ink:#e5edf9; --muted:#a8b9d2;
    --line:#34465e; --teal:#528fff; --navy:#edf4ff; --surface:#1d2a3e;
    --white:#1d2a3e; --heading:#91b6ff; --field:#111e30; --stripe:#24344c;
    --nav:#142338; --mint:#164d44; --shadow:0 8px 22px #0003;
}
body,body.legacy-body { background:var(--paper)!important; color:var(--ink)!important; }
a { color:var(--teal); }
h1,h2,h3 { color:var(--heading); }
.card,.role-nav,.topbar,.table-tile,.support-panel,.chat-log,.chat-bubble,.hotel-checks,.chat-window,.auth-form { background:var(--surface); color:var(--ink); border-color:var(--line); }
.card { border-radius:16px; margin-bottom:18px; }
.topbar { position:sticky!important; top:0; height:auto; min-height:84px; padding:12px 24px; gap:18px; }
.role-nav { top:84px; }
:root[data-theme="bright"] .topbar { background:linear-gradient(105deg,#113c94,#176fe8); color:white; }
:root[data-theme="bright"] .topbar .brand,:root[data-theme="bright"] .topbar .brand span:last-child span,:root[data-theme="bright"] .topbar small { color:white; }
:root[data-theme="bright"] .role-nav { background:#123d91; border-color:#2455a9; }
:root[data-theme="bright"] .role-nav a,:root[data-theme="bright"] .role-nav summary { color:#e6efff; }
:root[data-theme="bright"] .role-nav a:hover,:root[data-theme="bright"] .role-nav a.current { background:#2863ca; color:white; }
.nav-person { max-width:30vw; }
.nav-clock { margin-left:auto; font-size:12px; font-weight:650; white-space:nowrap; }
.nav-clock time { display:block; line-height:1.6; }
.theme-control { margin:0; display:flex; gap:8px; align-items:center; font-size:12px; }
.theme-control select { min-height:34px; width:90px; padding:5px 8px; margin:0; font-size:12px; }
input:not([type="submit"]):not([type="button"]),select,textarea,.form-control,.form-select {
    background-color:var(--field)!important; color:var(--ink)!important; border:1px solid var(--line)!important;
    border-radius:9px!important; min-height:44px; max-width:100%;
}
input[type="hidden"] { display:none!important; }
input[type="checkbox"],input[type="radio"] { min-height:16px!important; }
input[type="image"] { object-fit:cover; }
label { color:var(--ink); }
input:focus,select:focus,textarea:focus { outline:3px solid #4f8eff40!important; border-color:#5188ee!important; }
.button,button,.btn-primary,.btn-success,input[type="submit"] { background:var(--teal)!important; color:#fff!important; border-radius:9px; }
.secondary,.button.secondary,button.secondary,.btn-warning { background:var(--stripe)!important; color:var(--ink)!important; border:1px solid var(--line)!important; }
.form-grid,.legacy-form-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:18px; align-items:start; }
.form-grid label { margin:0; min-width:0; }
.form-grid .wide { grid-column:1/-1; }
.form-action { align-self:end; }
.legacy-field { min-width:0; }
.legacy-field input,.legacy-field select,.legacy-field textarea { width:100%; }
.legacy-content form.flow-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:16px; }
.legacy-content form.flow-grid>.col-12 { width:auto; margin:0!important; }
.legacy-content form.flow-grid>textarea,.legacy-content form.flow-grid>center { grid-column:1/-1; }
th,thead td { background:var(--stripe)!important; color:var(--ink)!important; }
td,th { border-color:var(--line)!important; vertical-align:middle; }
.table-wrap { border:1px solid var(--line); border-radius:13px; }
.table-wrap table { min-width:560px; }
tbody tr:nth-child(even) { background:var(--stripe); }
.price-table input { min-width:115px; }
.price-table small { white-space:nowrap; }
.item-thumb { width:60px; height:52px; border-radius:9px; object-fit:cover; background:var(--stripe); }
.save-bar { position:sticky; bottom:0; background:var(--surface); padding:14px 18px; border:1px solid var(--line); border-radius:12px; display:flex; align-items:center; justify-content:space-between; gap:12px; z-index:20; }
.table-tile { border-left:6px solid #12aa70; padding:20px; min-height:150px; transition:transform .15s,box-shadow .15s; }
.table-tile:hover { transform:translateY(-3px); box-shadow:0 10px 24px #163e8525; }
.table-running { border-left-color:#f59e0b; }
.table-reserved { border-left-color:#9858ec; }
.metric { background:linear-gradient(135deg,var(--surface),var(--stripe)); }
.metric.blue { border-top-color:#176ce9; }
.metric.purple { border-top-color:#9045e8; }
.metric.orange { border-top-color:#f58920; }
.metric span { color:var(--muted); }
.chart-legend,.post-body,.post-meta,.chat-bubble p,.role-nav a,.nav-group summary { color:var(--ink); }
:root[data-theme="dark"] .badge { color:#96e3cb; }
:root[data-theme="dark"] .badge.blue { color:#b7d0ff; background:#294571; }
:root[data-theme="dark"] .badge.orange { color:#ffd68a; background:#593c1f; }
:root[data-theme="dark"] .alert { background:#173e35; color:#b4f3d9; border-color:#276855; }
:root[data-theme="dark"] .alert.warn { background:#44371d; color:#ffe3a3; border-color:#796234; }
:root[data-theme="dark"] .alert.error { background:#4a2430; color:#ffc6d1; border-color:#7c394e; }
:root[data-theme="dark"] .chat-bubble.mine { background:#1b4949; border-color:#326c67; }
:root[data-theme="dark"] .support-panel-head { background:#24344c; }
@media(max-width:1200px) { .form-grid,.legacy-form-grid,.legacy-content form.flow-grid { grid-template-columns:repeat(3,minmax(0,1fr)); } .topbar{gap:12px;} .brand{font-size:19px;} }
@media(max-width:1000px) { .form-grid,.legacy-form-grid,.legacy-content form.flow-grid { grid-template-columns:repeat(2,minmax(0,1fr)); } .nav-person{max-width:23vw;} .topbar .brand{min-width:0;} }
@media(max-width:760px) { .topbar{padding:10px 14px;flex-wrap:wrap;gap:8px; min-height:110px;} .role-nav{top:110px;} .nav-person{display:block;max-width:60%;text-align:left;margin:0;order:1;} .nav-person strong{font-size:12px;} .nav-person small{font-size:11px;} .nav-clock{order:2;font-size:11px;margin-left:auto;} .theme-control{margin-left:auto;} .menu-toggle{margin-left:0;} .topbar .brand{font-size:17px;} .topbar .brand-mark{width:28px;height:28px;} .table-grid{grid-template-columns:repeat(3,minmax(0,1fr));} .table-tile{padding:12px;min-height:140px;} }
@media(max-width:600px) { .form-grid,.legacy-form-grid,.legacy-content form.flow-grid { grid-template-columns:1fr; } .form-grid .wide{grid-column:auto;} .form-grid input,.form-grid select,.form-grid textarea{font-size:16px;} .metric-grid{grid-template-columns:repeat(2,minmax(0,1fr));} .table-grid{grid-template-columns:repeat(2,minmax(0,1fr));} .topbar .brand{font-size:15px;} .theme-control{font-size:0;gap:0;} .theme-control select{width:80px;font-size:12px;} }
@media print { .theme-control,.nav-clock,.save-bar { display:none!important; } :root{--paper:#fff;--surface:#fff;--ink:#000;--muted:#444;--stripe:#eee;} .table-wrap{overflow:visible;} }

.topbar .theme-control{color:inherit;}
.role-nav{top:var(--topbar-height,84px);}

/* Food classification, account PINs, payment dialog and persistent settings. */
.food-badge{display:block;font-size:11px;font-weight:650;margin-top:5px;color:var(--muted)}
.food-dot{display:inline-block;width:22px;height:22px;border:2px solid #138c4b;border-radius:4px;background:#23a85e;box-shadow:inset 0 0 0 4px var(--surface)}
.food-dot.nonveg{border-color:#b63838;background:#c34444}.food-dot.unclassified{border-color:#9b7537;background:#b58a48}
.food-choice button{margin-top:15px}.food-switch{margin-bottom:18px}.food-switch select{min-width:180px}
.pin-page{max-width:650px;margin:auto}.pin-form{display:grid;gap:24px}.pin-field{margin:16px 0 22px;min-width:0}.pin-label{display:block;font-weight:700;font-size:13px;margin-bottom:9px}
.pin-boxes{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:9px;max-width:410px}
.pin-boxes input{min-width:0;width:100%;height:54px;text-align:center;font-size:25px!important;font-weight:750;padding:8px!important;margin:0!important;border-radius:10px!important}
.auth-box .pin-methods{margin-bottom:18px}.auth-box .pin-field{margin-top:0}
.nav-bottom .theme-control{display:block;margin:15px 0;color:var(--ink)!important;font-size:12px!important}
.nav-bottom .theme-control select{width:100%;font-size:13px;min-height:40px;margin-top:7px}
:root[data-theme="bright"] .nav-bottom .theme-control{color:white!important}
.payment-qr-dialog{border:1px solid var(--line);border-radius:18px;box-shadow:0 20px 80px #0005;background:var(--surface);color:var(--ink);width:min(440px,calc(100vw - 30px));max-height:90dvh;overflow:auto;padding:22px}
.payment-qr-dialog::backdrop{background:#071327a8;backdrop-filter:blur(3px)}
.dialog-heading{display:flex;align-items:center;justify-content:space-between;gap:12px}.dialog-heading h2{margin:0;font-size:23px}.dialog-heading button{font-size:23px;min-height:36px;padding:2px 12px}
.payment-qr-image{display:block;width:100%;max-height:58dvh;object-fit:contain;background:white;border-radius:10px;padding:8px}
.qr-reminder{margin-left:var(--sidebar,238px);overflow:hidden;white-space:nowrap;background:#fff0c3;border-bottom:1px solid #e7bd5a;padding:9px 0;font-size:13px}
.qr-reminder a{color:#68430c;font-weight:700;display:block;overflow:hidden}
.qr-reminder span{display:inline-block;min-width:100%;padding-left:100%;animation:qr-scroll 22s linear infinite}
@keyframes qr-scroll{from{transform:translateX(0)}to{transform:translateX(-100%)}}
@media(prefers-reduced-motion:reduce){.qr-reminder span{animation:none;padding-left:15px}}
@media(max-width:760px){.qr-reminder{margin-left:0}.topbar{min-height:110px}.nav-bottom .theme-control{font-size:12px!important}}
@media(max-width:390px){.pin-boxes{gap:6px}.pin-boxes input{height:47px;font-size:22px!important}.pin-page .card{padding:17px}}
@media print{.qr-reminder,.payment-qr-dialog{display:none!important}}

.balance-columns{display:grid;grid-template-columns:1fr 1fr;gap:16px;align-items:start;}
@media(max-width:700px){.balance-columns{grid-template-columns:1fr;}}
body .table-tile.table-vacant,body .manager-table-card.table-vacant{background:#159447!important;color:#fff!important;}
body .table-tile.table-running,body .manager-table-card.table-running{background:#f59e0b!important;color:#172033!important;}
body .table-tile.table-reserved,body .manager-table-card.table-reserved{background:#2563eb!important;color:#fff!important;}

.subscription-badge{display:block;width:fit-content;max-width:100%;margin-top:5px;padding:5px 9px;border-radius:8px;background:#dcfce7;color:#14532d!important;font-size:12px;text-decoration:none;line-height:1.45;overflow-wrap:anywhere}
.subscription-badge.subscription-ending{background:#ffedd5;color:#9a3412!important}
@media(max-width:600px){.subscription-badge{font-size:10px;padding:3px 6px}.subscription-badge>span{display:block}}
@media print{.subscription-badge{display:none}}
