*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}

:root,
[data-theme="night"]{
  /* Casa Ichu brand palette — Night (default) */
  --bg:#0D0D0D;
  --surface:#111111;
  --surface2:#1A1A1A;
  --surface3:#222018;

  --border:#302F50;
  --border-hi:#4A487A;

  --text:#EDE5D5;
  --muted:#A59E8E;
  --accent:#B5AD7F;
  --accent-dim:rgba(181,173,127,0.15);
  --accent-border:rgba(181,173,127,0.35);
  --accent-text:#111111;

  /* Secondary accent (use for tags, badges, secondary highlights) */
  --lilac:#C1BFF1;
  --lilac-dim:rgba(193,191,241,0.15);
  --lilac-border:rgba(193,191,241,0.35);

  /* Border radius — rounder, softer */
  --r:14px;
  --r-lg:22px;
  --r-sm:10px;

  /* Status colors — same hues, tuned for dark bg */
  --c-confirmed:#B5AD7F;
  --c-reconfirmed:#C1BFF1;
  --c-delayed:#f97316;
  --c-seated:#22c55e;
  --c-in-service:#06b6d4;
  --c-completed:rgba(237,229,213,0.35);
  --c-no-show:#ef4444;
  --c-cancelled:rgba(237,229,213,0.15);
  --c-new:#f59e0b;

  /* Occasion colors — keep as-is, they work on dark */
  --oc-birthday:#f472b6;
  --oc-anniversary:#fb923c;
  --oc-honeymoon:#c084fc;
  --oc-proposal:#f43f5e;
  --oc-celebration:#22d3ee;
  --oc-vip:#B5AD7F;
  --oc-press:#a3e635;
  --oc-other:rgba(237,229,213,0.35);

  /* Semantic colors */
  --green:#22c55e;
  --red:#ef4444;
  --amber:#f59e0b;

  /* Occupancy signal tokens */
  --ok:#4ade80;
  --warn:#fb923c;
  --danger:#ef4444;

  /* Theme icon */
  --theme-icon:'\263D';
}

/* ===== DAY THEME ===== */
[data-theme="day"]{
  --bg:#F5F2EB;
  --surface:#FFFFFF;
  --surface2:#EDE8DD;
  --surface3:#E5E0D4;

  --border:rgba(60,50,30,0.08);
  --border-hi:rgba(60,50,30,0.15);

  --text:#2C2517;
  --muted:#6B6152;
  --accent:#8A7D4A;
  --accent-dim:rgba(138,125,74,0.12);
  --accent-border:rgba(138,125,74,0.30);
  --accent-text:#FFFFFF;

  --lilac:#7B78C9;
  --lilac-dim:rgba(123,120,201,0.12);
  --lilac-border:rgba(123,120,201,0.30);

  --c-confirmed:#8A7D4A;
  --c-reconfirmed:#7B78C9;
  --c-delayed:#ea580c;
  --c-seated:#16a34a;
  --c-in-service:#0891b2;
  --c-completed:rgba(44,37,23,0.35);
  --c-no-show:#dc2626;
  --c-cancelled:rgba(44,37,23,0.15);
  --c-new:#d97706;

  --oc-birthday:#ec4899;
  --oc-anniversary:#ea580c;
  --oc-honeymoon:#a855f7;
  --oc-proposal:#e11d48;
  --oc-celebration:#0891b2;
  --oc-vip:#8A7D4A;
  --oc-press:#65a30d;
  --oc-other:rgba(44,37,23,0.35);

  --green:#16a34a;
  --red:#dc2626;
  --amber:#d97706;

  --ok:#15803d;
  --warn:#ea580c;
  --danger:#dc2626;

  --theme-icon:'\2600';
}

/* Day theme scrollbar overrides */
[data-theme="day"] ::-webkit-scrollbar-thumb{background:rgba(44,37,23,0.12)}
[data-theme="day"] ::-webkit-scrollbar-thumb:hover{background:rgba(44,37,23,0.22)}

/* ===== SUNSET THEME ===== */
[data-theme="sunset"]{
  --bg:#1C1410;
  --surface:#231A14;
  --surface2:#2E2118;
  --surface3:#3A2A1E;

  --border:rgba(255,180,100,0.08);
  --border-hi:rgba(255,180,100,0.15);

  --text:#F5E6D3;
  --muted:#C8B59A;
  --accent:#E8A84C;
  --accent-dim:rgba(232,168,76,0.15);
  --accent-border:rgba(232,168,76,0.35);
  --accent-text:#1C1410;

  --lilac:#D4B8F0;
  --lilac-dim:rgba(212,184,240,0.15);
  --lilac-border:rgba(212,184,240,0.35);

  --c-confirmed:#E8A84C;
  --c-reconfirmed:#D4B8F0;
  --c-delayed:#f97316;
  --c-seated:#22c55e;
  --c-in-service:#38bdf8;
  --c-completed:rgba(245,230,211,0.35);
  --c-no-show:#ef4444;
  --c-cancelled:rgba(245,230,211,0.15);
  --c-new:#fbbf24;

  --oc-birthday:#f472b6;
  --oc-anniversary:#fb923c;
  --oc-honeymoon:#c084fc;
  --oc-proposal:#f43f5e;
  --oc-celebration:#22d3ee;
  --oc-vip:#E8A84C;
  --oc-press:#a3e635;
  --oc-other:rgba(245,230,211,0.35);

  --green:#22c55e;
  --red:#ef4444;
  --amber:#f59e0b;

  --ok:#86efac;
  --warn:#fb923c;
  --danger:#ef4444;

  --theme-icon:'\2601';
}

/* ===== LEGIBILITY LAYER — theme-scoped pill/badge fg tuning (2026-04-22) ===== */
/* Keeps semantic hues; re-shades fg for contrast on light vs dark surfaces.    */

/* Remove uppercase smudge + unify weight + sharpen edges on row-level pills */
.badge{font-size:10px;font-weight:600;text-transform:none;letter-spacing:0;padding:3px 9px;border-radius:999px;border:1px solid transparent}
.pago-paid,.pago-not-paid,.pago-comp,.rb-canal-wa,.rb-canal-web{text-transform:none;letter-spacing:0}

/* Light themes: bump tiny pills + add 1px hue border for crisper edges */
[data-theme="day"] .badge,[data-theme="sunset"] .badge{font-size:11px;padding:3px 10px}
[data-theme="day"] .pago-paid,[data-theme="day"] .pago-not-paid,[data-theme="day"] .pago-comp,
[data-theme="sunset"] .pago-paid,[data-theme="sunset"] .pago-not-paid,[data-theme="sunset"] .pago-comp{font-size:11px;padding:3px 10px;border-radius:999px;border:1px solid transparent}
[data-theme="day"] .rb-canal-wa,[data-theme="day"] .rb-canal-web,
[data-theme="sunset"] .rb-canal-wa,[data-theme="sunset"] .rb-canal-web{font-size:10px;padding:2px 7px;border-radius:999px;border:1px solid transparent}

/* DAY — darkened same-hue fg on tint bg, AA 4.5+:1 */
[data-theme="day"] .badge-confirmed{background:rgba(138,125,74,.14);color:#6B5E2E;border-color:rgba(138,125,74,.35)}
[data-theme="day"] .badge-reconfirmed{background:rgba(123,120,201,.14);color:#4F4C99;border-color:rgba(123,120,201,.35)}
[data-theme="day"] .badge-delayed{background:rgba(234,88,12,.14);color:#9A3412;border-color:rgba(234,88,12,.35)}
[data-theme="day"] .badge-seated{background:rgba(22,163,74,.14);color:#166534;border-color:rgba(22,163,74,.35)}
[data-theme="day"] .badge-in-service{background:rgba(8,145,178,.14);color:#155E75;border-color:rgba(8,145,178,.35)}
[data-theme="day"] .badge-completed{background:rgba(107,114,128,.14);color:#374151;border-color:rgba(107,114,128,.35)}
[data-theme="day"] .badge-no-show{background:rgba(220,38,38,.14);color:#991B1B;border-color:rgba(220,38,38,.35)}
[data-theme="day"] .badge-cancelled{background:rgba(44,37,23,.08);color:#4B4333;border-color:rgba(44,37,23,.25)}
[data-theme="day"] .badge-new,[data-theme="day"] .badge-nueva{background:rgba(217,119,6,.14);color:#92400E;border-color:rgba(217,119,6,.35)}
[data-theme="day"] .pago-paid{background:rgba(22,163,74,.14);color:#166534;border-color:rgba(22,163,74,.35)}
[data-theme="day"] .pago-not-paid{background:rgba(220,38,38,.14);color:#991B1B;border-color:rgba(220,38,38,.35)}
[data-theme="day"] .pago-comp{background:rgba(107,114,128,.14);color:#374151;border-color:rgba(107,114,128,.35)}
[data-theme="day"] .rb-canal-wa{background:rgba(22,163,74,.16);color:#166534;border-color:rgba(22,163,74,.35)}
[data-theme="day"] .rb-canal-web{background:rgba(37,99,235,.14);color:#1E40AF;border-color:rgba(37,99,235,.35)}

/* SUNSET — lighter same-hue fg on warm dark surfaces */
[data-theme="sunset"] .badge-confirmed{background:rgba(232,168,76,.18);color:#F5CD80;border-color:rgba(232,168,76,.35)}
[data-theme="sunset"] .badge-reconfirmed{background:rgba(212,184,240,.18);color:#E5CFF7;border-color:rgba(212,184,240,.35)}
[data-theme="sunset"] .badge-delayed{background:rgba(249,115,22,.18);color:#fdba74;border-color:rgba(249,115,22,.35)}
[data-theme="sunset"] .badge-seated{background:rgba(34,197,94,.18);color:#86efac;border-color:rgba(34,197,94,.35)}
[data-theme="sunset"] .badge-in-service{background:rgba(56,189,248,.18);color:#7dd3fc;border-color:rgba(56,189,248,.35)}
[data-theme="sunset"] .badge-completed{background:rgba(245,230,211,.18);color:#E5D4BE;border-color:rgba(245,230,211,.35)}
[data-theme="sunset"] .badge-no-show{background:rgba(239,68,68,.18);color:#fca5a5;border-color:rgba(239,68,68,.35)}
[data-theme="sunset"] .badge-cancelled{background:rgba(245,230,211,.10);color:#C8B59A;border-color:rgba(245,230,211,.25)}
[data-theme="sunset"] .badge-new,[data-theme="sunset"] .badge-nueva{background:rgba(251,191,36,.18);color:#fcd34d;border-color:rgba(251,191,36,.35)}
[data-theme="sunset"] .pago-paid{background:rgba(34,197,94,.18);color:#86efac;border-color:rgba(34,197,94,.35)}
[data-theme="sunset"] .pago-not-paid{background:rgba(239,68,68,.18);color:#fca5a5;border-color:rgba(239,68,68,.35)}
[data-theme="sunset"] .pago-comp{background:rgba(107,114,128,.18);color:#cbd5e1;border-color:rgba(107,114,128,.35)}
[data-theme="sunset"] .rb-canal-wa{background:rgba(34,197,94,.18);color:#86efac;border-color:rgba(34,197,94,.35)}
[data-theme="sunset"] .rb-canal-web{background:rgba(96,165,250,.18);color:#93c5fd;border-color:rgba(96,165,250,.35)}

/* NIGHT — keeps existing saturated fg (original .badge-* rules above apply as fallback) */

/* ===== Inline-style refactor — sidebar res-card pills/buttons ===== */
/* wa-phone-link — WhatsApp phone pill in expanded row */
.wa-phone-link{display:inline-flex;align-items:center;gap:6px;border-radius:var(--r-sm);padding:5px 12px;font-size:12px;font-weight:600;text-decoration:none;border:1px solid;background:rgba(34,197,94,.2);color:#4ade80;border-color:rgba(34,197,94,.3)}
[data-theme="day"] .wa-phone-link{background:rgba(22,163,74,.16);color:#166534;border-color:rgba(22,163,74,.35)}
[data-theme="sunset"] .wa-phone-link{background:rgba(34,197,94,.18);color:#86efac;border-color:rgba(34,197,94,.35)}

/* tipo-pill — consumption type chip */
.tipo-pill{display:block;width:100%;padding:6px 10px;border-radius:var(--r-sm);font-size:12px;font-weight:700;margin-bottom:5px;background:color-mix(in srgb,var(--tipo-h,#888) 14%,transparent);color:var(--tipo-h,#888);border:1px solid color-mix(in srgb,var(--tipo-h,#888) 35%,transparent)}
[data-theme="day"] .tipo-pill{background:color-mix(in srgb,var(--tipo-h,#888) 14%,transparent);color:color-mix(in srgb,var(--tipo-h,#888) 50%,#111);border-color:color-mix(in srgb,var(--tipo-h,#888) 40%,transparent)}
[data-theme="sunset"] .tipo-pill{background:color-mix(in srgb,var(--tipo-h,#888) 18%,transparent);color:color-mix(in srgb,var(--tipo-h,#888) 75%,#fff);border-color:color-mix(in srgb,var(--tipo-h,#888) 40%,transparent)}

/* ===== INTAKE INTEGRATION (tab row inside New Reservation drawer + sidebar Parse pill) ===== */
.intake-tabrow{display:flex;gap:0;border-bottom:1px solid var(--border);padding:0 14px;background:var(--surface2);flex-shrink:0}
.intake-tab{padding:10px 12px;font-size:12px;font-weight:600;color:var(--muted);background:none;border:none;border-bottom:2px solid transparent;cursor:pointer;font-family:inherit;white-space:nowrap}
.intake-tab:hover:not(.active){color:var(--text)}
.intake-tab.active{color:var(--accent);border-bottom-color:var(--accent)}
.intake-pane{padding:16px 18px;border-bottom:1px solid var(--border)}
.pf-textarea.intake-textarea,textarea.intake-textarea{width:100%;min-height:280px;height:280px;font-family:ui-monospace,Menlo,monospace;font-size:13px;line-height:1.55;resize:vertical;background:var(--surface2);border:1px solid var(--border);border-radius:var(--r-sm);padding:12px 14px;color:var(--text)}
.intake-actions{display:flex;gap:8px;margin-top:12px;align-items:center}
.intake-parse-btn{padding:8px 14px;background:var(--accent);color:#fff;border:none;border-radius:var(--r-sm);font-size:12px;font-weight:600;cursor:pointer;font-family:inherit;width:auto}
.intake-parse-btn:disabled{opacity:.5;cursor:not-allowed}
.intake-hint{font-size:11px;color:var(--muted);margin-left:auto}
.intake-flags{margin-top:10px}
.intake-parsing{padding:8px 10px;font-size:11px;color:var(--muted)}
.intake-flag-warn{padding:8px 10px;background:rgba(217,119,6,.12);border:1px solid rgba(217,119,6,.30);border-radius:var(--r-sm);font-size:11px;color:#92400E}
.intake-flag-ok{padding:8px 10px;background:rgba(22,163,74,.12);border:1px solid rgba(22,163,74,.30);border-radius:var(--r-sm);font-size:11px;color:#166534}
[data-theme="night"] .intake-flag-warn{color:#fdba74;background:rgba(249,115,22,.14);border-color:rgba(249,115,22,.30)}
[data-theme="night"] .intake-flag-ok{color:#86efac;background:rgba(34,197,94,.14);border-color:rgba(34,197,94,.30)}
[data-theme="sunset"] .intake-flag-warn{color:#fdba74;background:rgba(249,115,22,.16);border-color:rgba(249,115,22,.32)}
[data-theme="sunset"] .intake-flag-ok{color:#86efac;background:rgba(34,197,94,.16);border-color:rgba(34,197,94,.32)}
@keyframes intakeFlash{0%{background:rgba(181,173,127,.35)}100%{background:var(--surface2)}}
.intake-prefilled{animation:intakeFlash 2.2s ease-out}

/* Duplicate-detection banner & modal */
.dupe-banner{margin:10px 0;padding:10px 12px;border-radius:var(--r-sm);font-size:12px;background:rgba(217,119,6,.12);border:1px solid rgba(217,119,6,.32);color:#92400E;display:flex;gap:10px;align-items:flex-start}
.dupe-banner .dupe-icon{font-size:16px;line-height:1.1}
.dupe-banner .dupe-text{flex:1}
.dupe-banner .dupe-text strong{display:block;margin-bottom:2px;font-size:12px}
.dupe-banner .dupe-meta{color:#78350f;font-size:11px}
.dupe-banner-actions{display:flex;gap:6px;margin-top:8px;flex-wrap:wrap}
.dupe-banner-actions button{padding:5px 10px;font-size:11px;font-weight:600;border-radius:var(--r-sm);cursor:pointer;border:1px solid rgba(217,119,6,.45);background:rgba(217,119,6,.20);color:#7c2d12}
.dupe-banner-actions button.secondary{background:transparent;color:#92400E}
[data-theme="night"] .dupe-banner{color:#fdba74;background:rgba(249,115,22,.14);border-color:rgba(249,115,22,.32)}
[data-theme="night"] .dupe-banner .dupe-meta{color:#fed7aa}
[data-theme="night"] .dupe-banner-actions button{color:#fed7aa;background:rgba(249,115,22,.20);border-color:rgba(249,115,22,.45)}
[data-theme="night"] .dupe-banner-actions button.secondary{color:#fed7aa}
[data-theme="sunset"] .dupe-banner{color:#fdba74;background:rgba(249,115,22,.16);border-color:rgba(249,115,22,.34)}
.dupe-soft-hint{margin:8px 0;padding:8px 10px;border-radius:var(--r-sm);font-size:11px;background:var(--surface2);border:1px dashed var(--border);color:var(--muted)}
.dupe-soft-hint a{color:var(--accent);text-decoration:underline;cursor:pointer;margin-right:6px}
.dupe-modal-bg{position:fixed;inset:0;background:rgba(0,0,0,.55);z-index:9999;display:flex;align-items:center;justify-content:center}
.dupe-modal{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-md);max-width:600px;width:92%;padding:20px;box-shadow:0 12px 36px rgba(0,0,0,.45)}
.dupe-modal h3{margin:0 0 4px;font-size:15px;color:var(--text)}
.dupe-modal-sub{font-size:11px;color:var(--muted);margin-bottom:14px}
.dupe-cmp{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-bottom:14px}
.dupe-cmp .dupe-col{background:var(--surface2);border:1px solid var(--border);border-radius:var(--r-sm);padding:10px}
.dupe-cmp .dupe-col h4{margin:0 0 6px;font-size:11px;color:var(--muted);text-transform:uppercase;letter-spacing:.5px}
.dupe-cmp .dupe-col .dupe-row{font-size:12px;color:var(--text);padding:2px 0}
.dupe-cmp .dupe-col .dupe-row span{color:var(--muted);font-size:11px;margin-right:6px}
.dupe-modal-actions{display:flex;flex-direction:column;gap:6px}
.dupe-modal-actions button{padding:9px 12px;font-size:12px;font-weight:600;border-radius:var(--r-sm);cursor:pointer;border:1px solid var(--border);background:var(--surface2);color:var(--text);text-align:left;font-family:inherit}
.dupe-modal-actions button:hover{background:var(--surface3)}
.dupe-modal-actions button.primary{background:var(--accent);color:#fff;border-color:var(--accent)}
.dupe-modal-actions button.danger{color:#dc2626;border-color:rgba(220,38,38,.4)}
.dupe-modal-actions .dupe-act-desc{display:block;font-size:10px;font-weight:400;color:var(--muted);margin-top:3px}

/* Capacity / Combine modal */
.cap-modal-bg{position:fixed;inset:0;background:rgba(0,0,0,.55);z-index:9999;display:flex;align-items:center;justify-content:center}
.cap-modal{background:var(--surface);border:1px solid var(--border);border-radius:14px;width:92%;max-width:560px;box-shadow:0 18px 48px rgba(0,0,0,.45);overflow:hidden;display:flex;flex-direction:column;max-height:90vh}
.cap-modal-hdr{padding:18px 22px 12px;flex-shrink:0}
.cap-modal-hdr h3{margin:0;font-size:16px;font-weight:700;color:var(--text)}
.cap-modal-hdr .cap-sub{font-size:12px;color:var(--muted);margin-top:4px;line-height:1.45}
.cap-modal-body{padding:0 22px 16px;overflow-y:auto;flex:1}
.cap-modal-foot{display:flex;gap:8px;padding:14px 22px;border-top:1px solid var(--border);background:var(--surface2);justify-content:flex-end;flex-wrap:wrap;flex-shrink:0}
.cap-btn-foot{padding:8px 14px;font-size:13px;font-weight:600;border-radius:10px;border:1px solid var(--border);background:var(--surface);color:var(--text);cursor:pointer;font-family:inherit}
.cap-btn-foot.ghost{background:transparent;border-color:transparent;color:var(--muted)}
.cap-btn-foot.danger{background:#EF4444;border-color:#DC2626;color:#fff}
.cap-btn-foot.primary{background:var(--accent);border-color:var(--accent);color:#fff}
.cap-section-lbl{font-size:10px;font-weight:800;text-transform:uppercase;letter-spacing:.08em;color:var(--muted);margin:6px 0 8px}
.cap-combo-list{display:flex;flex-direction:column;gap:8px}
.cap-combo{display:flex;align-items:center;gap:12px;padding:10px 12px;border:1px solid var(--border);border-radius:10px;background:var(--surface2);cursor:pointer;transition:border-color .12s,background .12s}
.cap-combo:hover{border-color:var(--accent-border)}
.cap-combo.sel{border-color:var(--accent);background:var(--accent-dim);box-shadow:0 0 0 2px var(--accent-dim) inset}
.cap-radio{width:16px;height:16px;border-radius:50%;border:2px solid var(--border-hi);background:var(--surface);flex-shrink:0;display:flex;align-items:center;justify-content:center}
.cap-combo.sel .cap-radio{border-color:var(--accent)}
.cap-combo.sel .cap-radio:after{content:"";width:7px;height:7px;border-radius:50%;background:var(--accent)}
.cap-combo-body{flex:1;display:flex;flex-direction:column;gap:2px;min-width:0}
.cap-combo-row1{display:flex;align-items:center;gap:6px;font-size:13px;font-weight:700;color:var(--text);flex-wrap:wrap}
.cap-tchip{display:inline-flex;align-items:center;background:var(--surface);border:1px solid var(--border);border-radius:6px;padding:1px 7px;font-size:11px;font-weight:700;font-family:'SF Mono','Menlo',monospace;color:var(--text)}
.cap-plus{color:var(--muted);font-weight:600;font-size:11px}
.cap-combo-row2{font-size:11px;color:var(--muted);display:flex;gap:6px;flex-wrap:wrap;margin-top:2px}
.cap-tag-ok{color:#166534;background:rgba(22,163,74,.12);border:1px solid rgba(22,163,74,.30);padding:1px 6px;border-radius:6px;font-weight:600;font-size:10px}
.cap-tag-warn{color:#92400e;background:rgba(217,119,6,.12);border:1px solid rgba(217,119,6,.30);padding:1px 6px;border-radius:6px;font-weight:600;font-size:10px}
.cap-seats{font-size:11px;font-weight:700;color:var(--text);background:var(--surface);border:1px solid var(--border);border-radius:8px;padding:3px 8px;white-space:nowrap}
.cap-manual{margin-top:14px;border-top:1px dashed var(--border-hi);padding-top:12px}
.cap-manual summary{cursor:pointer;font-size:12px;font-weight:600;color:var(--accent);list-style:none}
.cap-manual summary::-webkit-details-marker{display:none}
.cap-manual summary:before{content:"+ ";color:var(--accent);font-weight:800}
.cap-manual[open] summary:before{content:"− "}
.cap-manual-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(80px,1fr));gap:6px;margin-top:10px}
.cap-tcheck{display:flex;flex-direction:column;align-items:center;gap:2px;padding:8px 4px;border:1px solid var(--border);border-radius:8px;background:var(--surface);cursor:pointer;font-size:11px;color:var(--text);position:relative;font-family:inherit}
.cap-tcheck.on{border-color:var(--accent);background:var(--accent-dim);color:var(--accent);font-weight:700}
.cap-tcheck.dim{opacity:.45;cursor:not-allowed}
.cap-tcheck b{font-size:13px;font-weight:700}
.cap-tcheck small{font-size:10px;color:var(--muted)}
.cap-tcheck.on small{color:var(--accent)}
.cap-summary{margin-top:12px;padding:8px 10px;background:var(--surface2);border-radius:8px;font-size:12px;color:var(--text);display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:6px}
.cap-summary b{color:var(--accent)}
[data-theme="night"] .cap-tag-ok{color:#86efac;background:rgba(34,197,94,.16);border-color:rgba(34,197,94,.34)}
[data-theme="night"] .cap-tag-warn{color:#fdba74;background:rgba(249,115,22,.16);border-color:rgba(249,115,22,.34)}

/* Sidebar Intake pill (secondary entry point, compact header variant) */
.sb-intake-pill{display:inline-flex;align-items:center;gap:5px;background:var(--accent-dim);border:1px solid var(--accent-border);color:var(--accent);border-radius:999px;padding:4px 10px;font-size:11px;font-weight:600;cursor:pointer;font-family:inherit;line-height:1;transition:all .15s;white-space:nowrap}
.sb-intake-pill:hover{background:var(--accent);color:#fff;border-color:var(--accent)}
[data-theme="day"] .sb-intake-pill:hover{background:#6B5E2E;color:#fff;border-color:#6B5E2E}
.sb-intake-icon{font-size:11px;line-height:1}
.ri-date-chip{display:inline-flex;align-items:center;background:var(--accent-dim);border:1px solid var(--accent-border);color:var(--accent);border-radius:99px;padding:1px 8px;font-size:10px;font-weight:700;margin-left:6px;letter-spacing:.02em}

/* action buttons in expanded row */
.exp-btn-seat{background:rgba(34,197,94,.2);color:#4ade80}
.exp-btn-warn{background:rgba(249,115,22,.15);color:#fb923c}
.exp-btn-danger{background:rgba(239,68,68,.15);color:#fca5a5}
[data-theme="day"] .exp-btn-seat{background:rgba(22,163,74,.16);color:#166534}
[data-theme="day"] .exp-btn-warn{background:rgba(234,88,12,.16);color:#9A3412}
[data-theme="day"] .exp-btn-danger{background:rgba(220,38,38,.14);color:#991B1B}
[data-theme="sunset"] .exp-btn-seat{background:rgba(34,197,94,.18);color:#86efac}
[data-theme="sunset"] .exp-btn-warn{background:rgba(249,115,22,.18);color:#fdba74}
[data-theme="sunset"] .exp-btn-danger{background:rgba(239,68,68,.18);color:#fca5a5}


html,body{height:100%;background:var(--bg);color:var(--text);font-family:'Helvetica Neue',Helvetica,Arial,'Segoe UI','Apple Color Emoji','Segoe UI Emoji','Segoe UI Symbol',sans-serif;font-size:14px;overflow:hidden;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}
/* grain texture disabled — mix-blend-mode:overlay creates stacking context issues with fixed-position buttons */

/* ===== HEADER ===== */
.header{display:flex;align-items:center;gap:0;padding:0;height:52px;background:var(--surface);border-bottom:1px solid var(--border);flex-shrink:0}
.logo-area{display:flex;align-items:center;justify-content:center;gap:6px;width:268px;min-width:268px;flex-shrink:0;padding:0 16px;border-right:1px solid var(--border);height:100%}
[data-theme="day"] .logo-area{background:#0d0d0d;border-right-color:rgba(0,0,0,0.2)}
.header-nav{display:flex;align-items:center;gap:8px;flex:1;padding:0 12px;overflow:hidden}
.logo-icon{font-size:20px;line-height:1}
.logo-img{height:36px;max-width:160px;object-fit:contain;object-position:center;display:block}
.logo-name{font-size:15px;font-weight:500;color:var(--accent);letter-spacing:-0.01em;white-space:nowrap}
.tab-nav{display:flex;gap:2px;background:var(--surface2);border-radius:var(--r);padding:3px}
.tab-btn{padding:5px 14px;border-radius:8px;border:none;cursor:pointer;font-size:12px;font-weight:500;color:var(--muted);background:none;transition:all .15s;font-family:inherit;white-space:nowrap}
.tab-btn.active{background:var(--accent-dim);color:var(--accent)}
.tab-btn:hover:not(.active){color:var(--text)}
.date-nav{display:flex;align-items:center;gap:4px}
.btn-nav{background:var(--surface2);border:1px solid var(--border);color:var(--muted);border-radius:var(--r-sm);padding:4px 10px;cursor:pointer;font-size:14px;font-weight:500;line-height:1.4;transition:all .15s;font-family:inherit}
.btn-nav:hover{background:var(--surface3);color:var(--text)}
.date-display{font-weight:500;font-size:13px;min-width:120px;text-align:center;cursor:pointer;background:var(--surface2);border:1px solid var(--border);border-radius:var(--r-sm);padding:5px 10px;color:var(--text);font-family:inherit}
.date-display:hover{border-color:var(--accent);color:var(--accent)}
.header-right{margin-left:auto;display:flex;align-items:center;gap:8px}
.restaurant-select{background:var(--surface2);color:var(--text);border:1px solid var(--border);border-radius:var(--r-sm);padding:5px 10px;font-size:13px;cursor:pointer;font-family:inherit}
.covers-badge{background:var(--surface2);border:1px solid var(--border);border-radius:var(--r-sm);padding:4px 12px;font-size:12px;color:var(--muted);white-space:nowrap}
.covers-badge strong{color:var(--text)}
.btn-icon{background:var(--surface2);border:1px solid var(--border);color:var(--muted);border-radius:var(--r-sm);padding:5px 9px;cursor:pointer;font-size:17px;transition:all .15s}
.btn-icon:hover{color:var(--text);border-color:var(--accent)}

/* ===== LAYOUT ===== */
.layout{display:flex;height:calc(100vh - 52px);overflow:hidden}

/* ===== SIDEBAR ===== */
.sidebar{width:268px;min-width:0;flex-shrink:0;border-right:1px solid var(--border);display:flex;flex-direction:column;overflow:hidden;transition:width .25s ease;background:var(--surface)}
.sidebar.collapsed{width:0;border-right:none;overflow:hidden}
.sidebar-toggle{position:fixed;left:268px;top:50%;transform:translateY(-50%);z-index:200;width:18px;height:44px;background:var(--surface2);border:1px solid var(--border);border-left:none;border-radius:0 6px 6px 0;cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:11px;color:var(--muted);transition:left .25s ease}
.sidebar-toggle.sb-collapsed{left:0px}
.sidebar-toggle:hover{color:var(--accent)}
.sidebar-hdr{padding:10px 14px;border-bottom:1px solid var(--border);flex-shrink:0;display:flex;align-items:center;justify-content:space-between;gap:8px}
.sb-hdr-text{display:flex;flex-direction:column;min-width:0}
.sb-hdr-title{font-size:11px;font-weight:600;color:var(--muted);text-transform:uppercase;letter-spacing:.07em;line-height:1.1}
.sb-hdr-date{font-size:13px;font-weight:600;color:var(--text);line-height:1.2;margin-top:2px}
.sidebar-add-btn{background:#B5AD7F;border:1px solid transparent;color:#111111;border-radius:999px;width:24px;height:24px;cursor:pointer;font-size:16px;font-weight:500;display:flex!important;align-items:center;justify-content:center;flex-shrink:0;letter-spacing:0.02em;transition:all 200ms ease-out}
.sidebar-add-warn{background:rgba(249,115,22,.2);color:#fb923c;border-color:rgba(249,115,22,.4)}
[data-theme="day"] .sidebar-add-warn{background:rgba(234,88,12,.16);color:#9A3412;border-color:rgba(234,88,12,.45)}
[data-theme="sunset"] .sidebar-add-warn{background:rgba(249,115,22,.2);color:#fb923c;border-color:rgba(249,115,22,.4)}
.sidebar-add-btn:hover{box-shadow:0 0 24px rgba(181,173,127,0.25);transform:translateY(-1px)}
.sidebar-list{overflow-y:auto;flex:1}

/* Sidebar reservation item + inline expand */
.res-item{border-bottom:1px solid var(--border);cursor:pointer;transition:background .1s;user-select:none}
.res-item-header{padding:10px 14px;display:flex;flex-direction:column;gap:2px}
.res-item:hover .res-item-header{background:rgba(181,173,127,0.04)}
.res-item.active .res-item-header{background:var(--surface2);border-left:3px solid var(--accent)}
/* Cancelled section at bottom of sidebar */
.cancelled-section{border-top:2px solid rgba(239,68,68,.3);margin-top:8px}
.cancelled-hdr{display:flex;align-items:center;gap:6px;padding:8px 14px;cursor:pointer;font-size:11px;font-weight:500;text-transform:uppercase;letter-spacing:.06em;color:#fca5a5;background:rgba(239,68,68,.08)}
.cancelled-hdr:hover{background:rgba(239,68,68,.14)}
.cancelled-count{background:rgba(239,68,68,.25);color:#fca5a5;border-radius:99px;padding:1px 7px;font-size:10px}
.cancelled-chevron{margin-left:auto;transition:transform .2s}
.cancelled-section.open .cancelled-chevron{transform:rotate(180deg)}
.cancelled-body{display:none}
.cancelled-section.open .cancelled-body{display:block}
.res-cancelled{opacity:.85;border-left:2px solid rgba(239,68,68,.4)!important}
.ri-row1{display:flex;justify-content:space-between;align-items:flex-start;gap:6px}
.ri-time{font-size:11px;color:var(--muted)}
.ri-table{display:flex;flex-direction:column;align-items:flex-end;gap:1px;flex-shrink:0}
.ri-table-lbl{font-size:10px;font-weight:500;text-transform:uppercase;letter-spacing:.06em;color:var(--muted)}
.ri-table-num{font-size:14px;font-weight:500;color:var(--accent);line-height:1}
.ri-name{font-weight:500;font-size:13px}
.ri-meta{display:flex;align-items:center;gap:5px;flex-wrap:wrap;margin-top:3px}
.status-dot{width:7px;height:7px;border-radius:50%;flex-shrink:0;display:inline-block}

/* Inline expand */
.res-item-expand{display:none;padding:10px 14px;background:var(--surface2);border-top:1px solid var(--border)}
.res-item.expanded .res-item-expand{display:block}
.expand-field{font-size:11px;color:var(--muted);margin-bottom:4px}
.expand-field strong{color:var(--text);font-weight:500}
.expand-actions{display:grid;grid-template-columns:repeat(auto-fit,minmax(70px,1fr));gap:6px;margin-top:10px}
.exp-btn{padding:5px 10px;border-radius:var(--r-sm);font-size:11px;font-weight:500;border:none;cursor:pointer;font-family:inherit}
.exp-edit{background:rgba(181,173,127,.25);color:var(--accent)}
.exp-edit:hover{background:rgba(181,173,127,.4)}

/* ===== MAIN ===== */
.main{flex:1;overflow:hidden;display:flex;flex-direction:column;min-width:0}
.view{display:none;flex:1;overflow:hidden;min-height:0}
.view.active{display:flex;flex-direction:column}
#view-guests,#view-waitlist,#view-preshift{overflow:auto}
/* GUEST 360 SPLIT-PANEL */
.guest360-split{display:flex;height:100%;transition:all .3s ease}
.guest360-split.has-selection .guest-list-panel{width:260px;min-width:260px;flex-shrink:0}
.guest-list-panel{width:100%;min-width:0;transition:width .3s ease;overflow:hidden;border-right:1px solid var(--border);display:flex;flex-direction:column}
.list-header{padding:14px 16px;border-bottom:1px solid var(--border);display:flex;align-items:center;justify-content:space-between}
.list-header h2{font-size:14px;font-weight:500}
.list-search{padding:8px 12px;border-bottom:1px solid var(--border)}
.list-search input{width:100%;background:var(--surface2);border:1px solid var(--border);border-radius:12px;padding:7px 10px;color:var(--text);font-size:12px;transition:border-color 200ms ease-out}
.list-search input:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 2px rgba(181,173,127,0.1)}
.list-scroll{flex:1;overflow-y:auto}
/* Guest card — full when list is wide, slim when collapsed */
.g360-card{display:flex;flex-direction:column;padding:12px 16px;border-bottom:1px solid var(--border);cursor:pointer;transition:background .15s}
.g360-card:hover{background:var(--surface2)}
.g360-card.active{background:var(--accent-dim);border-left:3px solid var(--accent)}
.guest360-split.has-selection .g360-card .card-meta,
.guest360-split.has-selection .g360-card .card-tags{display:none}
.g360-card .card-slim{display:flex;align-items:center;gap:10px;min-width:0}
.g360-card .avatar{width:36px;height:36px;border-radius:50%;background:rgba(181,173,127,0.2);border:1px solid rgba(181,173,127,0.33);display:flex;align-items:center;justify-content:center;font-size:13px;font-weight:500;color:var(--accent);flex-shrink:0}
.g360-card .card-name{font-size:13px;font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.g360-card .card-sub{font-size:11px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.g360-card .card-meta{margin-top:4px}
.g360-card .card-tags{display:flex;gap:4px;flex-wrap:wrap;margin-top:6px}
.tag{padding:2px 6px;border-radius:20px;font-size:10px;font-weight:500}
.tag-vip{background:rgba(181,173,127,0.13);color:var(--accent);border:1px solid rgba(181,173,127,0.27)}
.tag-loyal{background:#22c55e22;color:#4ade80;border:1px solid #22c55e44}
.tag-new{background:#16a34a22;color:#4ade80;border:1px solid #16a34a44}
.tag-returning{background:var(--surface3);color:var(--muted);border:1px solid var(--border)}
.tag-risk{background:#ef444422;color:#fca5a5;border:1px solid #ef444444}
.tag-highspender{background:#f59e0b22;color:#fbbf24;border:1px solid #f59e0b44}
.guest-360-panel{flex:1;overflow:hidden;display:none;flex-direction:column;animation:slideIn .25s ease}
@keyframes slideIn{from{transform:translateX(30px);opacity:0}to{transform:translateX(0);opacity:1}}
.panel-360-inner{display:flex;height:100%;overflow:hidden}
.profile-col{width:240px;min-width:240px;background:var(--surface);border-right:1px solid var(--border);display:flex;flex-direction:column;padding:20px 16px;gap:12px;overflow-y:auto}
.profile-avatar{width:64px;height:64px;border-radius:50%;background:rgba(181,173,127,0.2);border:2px solid rgba(181,173,127,0.33);display:flex;align-items:center;justify-content:center;font-size:22px;font-weight:500;color:var(--accent);margin:0 auto}
.profile-name{text-align:center;font-size:16px;font-weight:500}
.profile-id{text-align:center;font-size:11px;color:var(--muted)}
.profile-tags{display:flex;flex-wrap:wrap;gap:4px;justify-content:center;position:relative}
.tag-custom{padding:3px 8px;border-radius:20px;font-size:10px;font-weight:500;transition:opacity .15s}
.tag-custom:hover{opacity:.7}
.profile-nationality{text-align:center;font-size:12px;color:var(--muted);padding:4px 0;border-top:1px solid var(--border)}
.stats-grid{display:grid;grid-template-columns:1fr 1fr;gap:6px}
.stat-box{background:var(--surface2);border-radius:var(--r-sm);padding:8px 6px;text-align:center}
.stat-val{font-size:18px;font-weight:500;color:var(--accent)}
.stat-val.white{color:var(--text)}
.stat-lbl{font-size:9px;color:var(--muted);text-transform:uppercase;letter-spacing:.05em;margin-top:2px}
.notes-section label{font-size:10px;color:var(--muted);text-transform:uppercase;letter-spacing:.05em;display:block;margin-bottom:4px}
.notes-section textarea{width:100%;background:var(--surface2);border:1px solid var(--border);border-radius:12px;padding:8px;color:var(--text);font-size:12px;resize:none;min-height:80px;font-family:inherit;transition:border-color 200ms ease-out}
.notes-section textarea:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 2px rgba(181,173,127,0.1)}
.detail-col{flex:1;display:flex;flex-direction:column;overflow:hidden;position:relative}
.detail-tabs{display:flex;border-bottom:1px solid var(--border);padding:0 20px;background:var(--surface)}
.dtab{padding:12px 14px;font-size:12px;font-weight:500;color:var(--muted);cursor:pointer;border-bottom:2px solid transparent;transition:all .15s}
.dtab.active{color:var(--accent);border-bottom-color:var(--accent)}
.detail-body{flex:1;overflow-y:auto;padding:20px}
.section-hdr{font-size:10px;font-weight:500;color:var(--muted);text-transform:uppercase;letter-spacing:.07em;padding-bottom:8px;border-bottom:1px solid var(--border);margin-bottom:12px;margin-top:16px}
.section-hdr:first-child{margin-top:0}
.fields-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-bottom:4px}
.field-item label{font-size:10px;color:var(--muted);text-transform:uppercase;letter-spacing:.05em;display:block;margin-bottom:2px}
.field-item span{font-size:13px;color:var(--text);display:block}
.panel-close{background:none;border:none;color:var(--muted);font-size:20px;cursor:pointer;padding:4px 8px;line-height:1;position:absolute;top:8px;right:8px}
.btn-360{background:rgba(181,173,127,.15);border:1px solid rgba(181,173,127,.4);color:var(--accent);border-radius:var(--r-sm);padding:2px 6px;font-size:10px;font-weight:500;cursor:pointer;margin-left:4px;transition:all .15s}
.btn-360:hover{background:rgba(181,173,127,.3)}

/* ===== TIMELINE ===== */
.tl-arrow-inline{background:var(--surface2);border:1px solid var(--border);color:var(--accent);border-radius:var(--r-sm);width:24px;height:24px;font-size:16px;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;padding:0;line-height:1;transition:background .15s;flex-shrink:0}
.tl-arrow-inline:hover{background:var(--surface3);color:var(--text)}
.tl-scroll{flex:1;overflow:auto;cursor:grab;user-select:none}
.tl-scroll.dragging{cursor:grabbing}
.tl-nav-arrows{position:absolute;top:0;right:0;z-index:20;display:flex;gap:4px;padding:6px 8px}
.tl-arrow{background:var(--surface2);border:1px solid var(--border);color:var(--muted);border-radius:var(--r-sm);padding:4px 10px;height:auto;font-size:14px;font-weight:500;line-height:1.4;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .15s}
.tl-arrow:hover{background:var(--surface3);color:var(--text)}
#tlGrid{min-width:100%;width:max-content;min-height:100%;display:block}

.tl-corner{position:sticky;top:0;z-index:30;background:var(--surface);border-right:2px solid var(--border-hi);border-bottom:1px solid var(--border);padding:6px 10px;font-size:10px;color:var(--muted);font-weight:500;text-transform:uppercase;letter-spacing:.05em;width:110px;min-width:110px}
.tl-time-hdr{position:sticky;top:0;z-index:20;background:var(--surface);border-bottom:1px solid var(--border);border-right:1px solid var(--border);padding:6px 4px;font-size:11px;color:var(--muted);text-align:center;font-weight:500}
.tl-time-hdr:not(.hour){border-right:none;overflow:hidden}
.tl-time-hdr.hour{color:var(--text);font-weight:500;border-right:1px solid var(--border-hi);font-size:12px}
.tl-zone-hdr{z-index:15;background:var(--surface2);border-top:1px solid var(--border-hi);border-bottom:1px solid var(--border-hi);cursor:pointer;user-select:none;grid-column:1/-1}
.tl-zone-hdr-inner{display:inline-flex;align-items:center;gap:8px;padding:6px 14px;font-size:11px;font-weight:500;color:var(--accent);text-transform:uppercase;letter-spacing:.08em;width:max-content}
.zone-toggle{font-size:10px;color:var(--muted);transition:transform .2s;display:inline-block}
.tl-zone-hdr.collapsed .zone-toggle{transform:rotate(-90deg)}
.tl-table-lbl{position:relative;z-index:10;background:var(--surface);border-right:2px solid var(--border-hi);border-bottom:1px solid var(--border);padding:5px 10px;font-size:12px;font-weight:500;color:var(--text);width:110px;min-width:110px;display:flex;flex-direction:column;justify-content:center;min-height:48px}
.tl-table-lbl .tl-cap{font-size:10px;color:var(--muted)}
.tl-cell{border-right:none;border-bottom:1px solid var(--border);position:relative;transition:background .1s}
.tl-cell.hour-start{border-right:1px solid var(--border)}
.tl-cell.drag-over{background:rgba(181,173,127,.15);outline:2px dashed rgba(181,173,127,.5);outline-offset:-2px}

/* Reservation bars — 2-tone gradient, stretch 1.5hr = 6 slots */
.res-block{position:absolute;top:3px;bottom:3px;left:2px;border-radius:6px;padding:0 8px;font-size:11px;font-weight:500;cursor:pointer;user-select:none;display:flex;align-items:center;overflow:hidden;transition:opacity .15s}
.res-block:hover{opacity:.88;z-index:5}
.res-block.dragging{opacity:.3;cursor:grabbing}
.rb-row{display:flex;align-items:center;gap:5px;width:100%;overflow:hidden;min-width:0}
.rb-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0}
.rb-pax{font-size:11px;font-weight:700;color:var(--text);flex-shrink:0}
.rb-name{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-weight:600;color:var(--text)}
.rb-badge{font-size:9px;font-weight:700;padding:1px 5px;border-radius:3px;white-space:nowrap;flex-shrink:0;line-height:14px}
.rb-allergy{background:rgba(239,68,68,.2);color:#fca5a5}
.rb-occasion{background:rgba(245,158,11,.25);color:#fbbf24;font-size:11px;padding:0 3px}
.rb-canal-wa{background:rgba(34,197,94,.2);color:#4ade80}
.rb-canal-web{background:rgba(96,165,250,.2);color:#60a5fa}
.rb-notes{background:rgba(148,163,184,.2);color:#94a3b8;font-size:10px;padding:0 3px}
.rb-tipo{background:transparent;color:#94a3b8;font-size:9px;font-weight:500;padding:0 2px;opacity:.85}
.rb-cancel{font-size:8px;font-weight:800;letter-spacing:.06em;text-transform:uppercase}
/* Responsive collapse — hide badges when bar is narrow */
@container style(--bar-narrow: true){.rb-tipo,.rb-notes,.rb-canal-wa,.rb-canal-web,.rb-occasion{display:none}}
.res-block:not(:hover) .rb-tipo,.res-block:not(:hover) .rb-notes{opacity:.7}

/* Legend strip */
.tl-legend{display:flex;align-items:center;gap:12px;padding:6px 14px;border-top:1px solid var(--border);background:var(--surface);font-size:11px;color:var(--muted);flex-wrap:wrap;flex-shrink:0}
.tl-leg-item{display:inline-flex;align-items:center;gap:4px;white-space:nowrap}
.tl-leg-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0}
.tl-leg-badge{font-size:9px;font-weight:700;padding:1px 4px;border-radius:3px;line-height:13px}
.tl-leg-sep{color:var(--border-hi);font-size:14px}

/* ===== CALENDAR ===== */
.cal-container{flex:1;overflow-y:auto;padding:24px}
.cal-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:20px}
.cal-header h2{font-size:18px;font-weight:500}
.cal-nav{display:flex;gap:6px}
.cal-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:4px}
.cal-day-name{text-align:center;font-size:11px;font-weight:500;color:var(--muted);padding:4px;text-transform:uppercase;letter-spacing:.05em}
.cal-day{background:var(--surface2);border:1px solid var(--border);border-radius:var(--r);min-height:80px;padding:10px;cursor:pointer;transition:all .15s}
.cal-day:hover{border-color:var(--accent);background:var(--surface3)}
.cal-day.today{border-color:var(--c-confirmed)}
.cal-day.selected{background:var(--accent-dim);border-color:var(--accent)}
.cal-day.other-month{opacity:.3}
.cal-day-num{font-size:13px;font-weight:500;margin-bottom:6px}
.cal-day.today .cal-day-num{color:var(--c-confirmed)}
.cal-pax{font-size:16px;font-weight:900;color:var(--accent);line-height:1}
.cal-count{font-size:11px;color:var(--muted);margin-top:2px}
.cal-dots{margin-top:4px;display:flex;flex-wrap:wrap;gap:2px}
.cal-dot{width:5px;height:5px;border-radius:50%;background:var(--accent)}

/* ===== FAB NEW RESERVATION ===== */
.fab{position:fixed;bottom:24px;right:24px;z-index:9000;width:56px;height:56px;border-radius:999px;background:#B5AD7F;color:#111111;border:2px solid rgba(237,229,213,0.2);font-size:28px;font-weight:500;cursor:pointer;display:flex;align-items:center;justify-content:center;line-height:1;letter-spacing:0.02em;transition:all 200ms ease-out}
.fab.hidden{display:none!important}
.fab:hover{box-shadow:0 0 24px rgba(181,173,127,0.25);transform:translateY(-1px)}

/* ===== FLOOR PLAN (STAFF) ===== */
.floor-layout{display:flex;flex-direction:column;flex:1;overflow:hidden}
.floor-zone-tabs{display:flex;gap:6px;padding:10px 16px;background:var(--surface);border-bottom:1px solid var(--border);flex-shrink:0}
.floor-zone-tab{padding:6px 16px;border-radius:20px;font-size:12px;font-weight:500;cursor:pointer;border:1.5px solid var(--border);background:none;color:var(--muted);transition:all .15s;font-family:inherit}
.floor-zone-tab.active{background:var(--surface3);color:var(--text);border-color:var(--accent)}
.floor-staff-canvas-wrap{flex:1;overflow:auto;background:var(--surface2);display:flex;align-items:stretch}
.floor-canvas{position:relative;flex:1;width:100%;height:100%}

/* Floor table object */
.floor-obj{position:absolute;z-index:1;display:flex;flex-direction:column;align-items:center;justify-content:center;cursor:pointer;user-select:none;font-size:11px;font-weight:500;border:2px solid rgba(255,255,255,.2);transition:all .15s}
.floor-obj:hover{transform:scale(1.04);z-index:10}
.floor-obj.ft-free{background:rgba(255,255,255,.1);border-color:rgba(255,255,255,.25);color:var(--text)}
.floor-obj.ft-confirmed{background:var(--accent-dim);border-color:var(--accent);color:var(--accent)}
.floor-obj.ft-seated{background:rgba(34,197,94,.25);border-color:#22c55e;color:#4ade80}
.floor-obj.ft-delayed{background:rgba(249,115,22,.2);border-color:#f97316;color:#fb923c}
.floor-obj.ft-nueva{background:rgba(99,102,241,.18);border-color:#818cf8;color:var(--accent)}
.floor-obj.ft-new{background:rgba(245,158,11,.2);border-color:rgba(245,158,11,.5);color:#fbbf24}
.fo-label{font-size:13px;font-weight:500;text-align:center;line-height:1.2}
.fo-pax{font-size:11px;opacity:.75;margin-top:2px;text-align:center}
.fo-guest{font-size:10px;opacity:.65;max-width:85%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;text-align:center;margin-top:2px}
.floor-obj.plant{border-radius:50% !important;background:rgba(34,197,94,.15);border-color:rgba(34,197,94,.25);color:#4ade80;pointer-events:none}
.floor-obj.element{background:var(--accent-dim);border-color:var(--accent-dim);color:var(--muted);pointer-events:none}

/* ===== RIGHT PANEL ===== */
.right-panel{width:0;flex-shrink:0;border-left:none;background:var(--surface);display:flex;flex-direction:column;overflow:hidden;transition:width .2s ease}
.right-panel.rp-open{width:600px;border-left:1px solid var(--border)}
#rightPanelContent{display:flex;flex-direction:column;flex:1;min-height:0;overflow-y:auto;overflow-x:hidden}
.rp-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;flex:1;color:var(--muted);gap:8px;padding:40px}
.rp-empty .rp-icon{font-size:36px;opacity:.3}
.rp-empty p{font-size:13px;text-align:center}

/* Right panel header */
.rp-hdr{padding:16px 18px 12px;border-bottom:1px solid var(--border);flex-shrink:0;display:flex;align-items:flex-start;gap:8px}
.rp-hdr-info{flex:1;min-width:0}
.rp-name{font-size:17px;font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.rp-sub{font-size:12px;color:var(--muted);margin-top:2px}
.rp-close{background:none;border:none;color:var(--muted);font-size:18px;cursor:pointer;padding:2px 6px;border-radius:5px;flex-shrink:0}
.rp-close:hover{color:var(--text);background:var(--surface2)}

/* Right panel body */
.rp-body{flex:1;overflow-y:auto;padding:14px 18px 32px;min-height:0}
.rp-badges{display:flex;gap:5px;flex-wrap:wrap;align-items:center;margin-bottom:14px}

/* Status grid */
.status-grid{display:grid;grid-template-columns:1fr 1fr;gap:5px;margin-bottom:16px}
.s-btn{padding:7px 8px;border-radius:var(--r-sm);border:1.5px solid;font-size:11px;font-weight:500;cursor:pointer;text-align:center;transition:all .15s;background:none;font-family:inherit;white-space:nowrap}
.s-btn.current{color:var(--text) !important;border-color:transparent !important}
.s-confirmed{border-color:rgba(181,173,127,.4);color:var(--accent)}.s-confirmed.current{background:var(--c-confirmed)}
.s-reconfirmed{border-color:rgba(193,191,241,.4);color:var(--lilac)}.s-reconfirmed.current{background:var(--c-reconfirmed)}
.s-delayed{border-color:rgba(249,115,22,.4);color:#fb923c}.s-delayed.current{background:var(--c-delayed)}
.s-seated{border-color:rgba(34,197,94,.4);color:#4ade80}.s-seated.current{background:var(--c-seated)}
.s-in-service{border-color:rgba(6,182,212,.4);color:#67e8f9}.s-in-service.current{background:var(--c-in-service)}
.s-completed{border-color:rgba(107,114,128,.4);color:#9ca3af}.s-completed.current{background:var(--c-completed)}
.s-no-show{border-color:rgba(239,68,68,.4);color:#fca5a5}.s-no-show.current{background:var(--c-no-show)}
.s-cancelled{border-color:rgba(237,229,213,.4);color:var(--muted)}.s-cancelled.current{background:var(--c-cancelled)}

/* Form fields in panel */
.pf-label{display:block;font-size:10px;color:var(--muted);text-transform:uppercase;letter-spacing:.06em;margin-bottom:4px;margin-top:10px}
.pf-input,.pf-select,.pf-textarea{width:100%;background:var(--surface2);color:var(--text);border:1px solid var(--border);border-radius:12px;padding:7px 10px;font-size:13px;margin-bottom:0;font-family:inherit;transition:border-color 200ms ease-out}
.pf-input:focus,.pf-select:focus,.pf-textarea:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 2px rgba(181,173,127,0.1)}
.pf-textarea{min-height:56px;resize:vertical}
.pf-row{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.pf-row-3{grid-template-columns:1.1fr 1fr 1fr}
.pf-actions{display:flex;flex-direction:column;gap:6px;margin-top:16px;padding-bottom:16px}

/* Phone row */
.phone-row{display:flex;gap:5px}
.phone-num{flex:1}
/* Searchable country picker */
.country-picker{position:relative;flex-shrink:0}
.country-trigger{display:flex;align-items:center;gap:4px;background:var(--surface2);border:1px solid var(--border);border-radius:var(--r-sm);padding:7px 8px;font-size:12px;cursor:text;min-width:86px;color:var(--text);font-family:inherit}
.country-trigger input{background:none;border:none;outline:none;color:var(--text);font-size:12px;width:60px;font-family:inherit;cursor:text}
.country-trigger input::placeholder{color:var(--muted)}
.country-trigger .ct-flag{flex-shrink:0}
.country-dropdown{display:none;position:absolute;top:calc(100% + 4px);left:0;width:240px;background:var(--surface);border:1px solid var(--border);border-radius:var(--r-sm);z-index:999;max-height:220px;overflow-y:auto}
.country-dropdown.open{display:block}
.country-option{display:flex;align-items:center;gap:8px;padding:8px 12px;cursor:pointer;font-size:13px;transition:background .1s}
.country-option:hover,.country-option.hl{background:var(--surface2)}
.co-flag{font-size:16px;flex-shrink:0;width:20px;text-align:center}
.co-name{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.co-code{color:var(--muted);font-size:11px;flex-shrink:0}

/* Allergen chips */
.al-picker{display:flex;flex-direction:column;gap:6px;padding:2px 0}
.al-row{display:flex;gap:6px}
.al-row .al-chip{flex:1;justify-content:center;min-height:36px;padding:8px 10px;font-size:12px;border-radius:12px}
.al-chip .al-sub{font-weight:500;opacity:.85;margin-left:2px}
[data-theme="day"] .al-chip[data-code="OT"]:not(.on){background:rgba(100,116,139,.18);color:#334155;border-color:rgba(100,116,139,.45)}
[data-theme="day"] .al-chip[data-code="OT"].on{background:#475569;color:#fff}
.al-chip{display:inline-flex;align-items:center;gap:4px;padding:4px 9px;border-radius:20px;font-size:11px;font-weight:600;cursor:pointer;position:relative;transition:opacity .15s}
.al-chip.pick{border:1.5px solid transparent;opacity:.5}
.al-chip.pick:hover{opacity:.8}
.al-chip.pick.on{opacity:1}
.al-chip .al-tip{display:none;position:absolute;bottom:calc(100% + 6px);left:50%;transform:translateX(-50%);background:var(--surface);border:1px solid var(--border);border-radius:6px;padding:4px 8px;font-size:11px;font-weight:400;white-space:nowrap;z-index:999;color:var(--text);pointer-events:none}
.al-chip:hover .al-tip,.al-chip.show-tip .al-tip{display:block}
.al-x{cursor:pointer;opacity:.6;margin-left:2px;font-size:12px;font-weight:900}
.al-x:hover{opacity:1}

/* Badges */
.badge{display:inline-block;padding:2px 8px;border-radius:4px;font-size:10px;font-weight:500;text-transform:uppercase;letter-spacing:.04em}
.badge-confirmed{background:rgba(181,173,127,.2);color:var(--accent)}
.badge-reconfirmed{background:rgba(193,191,241,.2);color:var(--lilac)}
.badge-delayed{background:rgba(249,115,22,.2);color:#fb923c}
.badge-seated{background:rgba(34,197,94,.2);color:#4ade80}
.badge-in-service{background:rgba(6,182,212,.2);color:#67e8f9}
.badge-completed{background:rgba(107,114,128,.2);color:#9ca3af}
.badge-no-show{background:rgba(239,68,68,.2);color:#fca5a5}
.badge-cancelled{background:rgba(237,229,213,.3);color:var(--muted)}
.badge-new,.badge-nueva{background:rgba(245,158,11,.2);color:#fbbf24}
.pago-paid{background:rgba(34,197,94,.2);color:#4ade80}
.pago-not-paid{background:rgba(239,68,68,.2);color:#fca5a5}
.pago-comp{background:rgba(107,114,128,.2);color:#9ca3af}

/* Occasion badges */
.occ-birthday{background:rgba(244,114,182,.15);color:var(--oc-birthday)}
.occ-anniversary{background:rgba(251,146,60,.15);color:var(--oc-anniversary)}
.occ-honeymoon{background:rgba(192,132,252,.15);color:var(--oc-honeymoon)}
.occ-proposal{background:rgba(244,63,94,.15);color:var(--oc-proposal)}
.occ-celebration{background:rgba(34,211,238,.15);color:var(--oc-celebration)}
.occ-vip{background:rgba(181,173,127,.15);color:var(--oc-vip)}
.occ-press{background:rgba(163,230,53,.15);color:var(--oc-press)}
.occ-other{background:rgba(148,163,184,.15);color:var(--oc-other)}

/* ===== MODALS ===== */
.modal-overlay{position:fixed;inset:0;background:rgba(0,0,0,0.7);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);display:flex;align-items:center;justify-content:center;z-index:300;padding:20px}
.modal-overlay.hidden{display:none}
.modal{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-lg);display:flex;flex-direction:column;max-height:90vh;overflow:hidden}
.modal-header{padding:18px 20px 14px;border-bottom:1px solid var(--border);display:flex;align-items:center;justify-content:space-between;flex-shrink:0}
.modal-header h2{font-size:17px;font-weight:500}
.modal-close{background:none;border:none;color:var(--muted);font-size:18px;cursor:pointer;padding:4px 6px;border-radius:5px}
.modal-close:hover{color:var(--text);background:var(--surface2)}
.modal-body{padding:16px 20px;overflow-y:auto;flex:1}
.modal-footer{padding:14px 20px;border-top:1px solid var(--border);display:flex;justify-content:flex-end;gap:8px;flex-shrink:0}
.modal-xs{width:320px}
.modal-sm{width:400px}
.modal-settings{width:100vw;height:100vh;max-width:100vw;max-height:100vh;border-radius:0;border:none}

/* Buttons */
.btn-primary{padding:9px 18px;background:var(--accent,#B5AD7F);color:var(--accent-text,#111);border:none;border-radius:999px;font-weight:500;font-size:13px;cursor:pointer;font-family:inherit;letter-spacing:0.02em;transition:all 200ms ease-out}
.btn-primary:hover{box-shadow:0 0 24px rgba(181,173,127,0.25);transform:translateY(-1px)}
.btn-ghost{padding:9px 16px;background:none;color:var(--text,#EDE5D5) !important;border:1px solid var(--border-hi,rgba(237,229,213,0.12));border-radius:999px;font-size:13px;font-weight:500;cursor:pointer;font-family:inherit;width:100%;text-align:center;transition:all 200ms ease-out}
.btn-ghost:hover{background:var(--surface2,#1A1A1A);border-color:var(--accent,#B5AD7F);color:var(--accent,#B5AD7F) !important}
.btn-danger{padding:9px 16px;background:#ef4444;color:var(--text,#EDE5D5);border:none;border-radius:var(--r-sm);font-size:13px;font-weight:500;cursor:pointer;font-family:inherit}
.btn-save{width:100%;padding:10px;background:var(--accent,#B5AD7F) !important;color:var(--accent-text,#111) !important;border:none;border-radius:999px;font-size:13px;font-weight:500;cursor:pointer;font-family:inherit;margin-top:8px;letter-spacing:0.02em;transition:all 200ms ease-out}
.btn-save:hover{box-shadow:0 0 24px rgba(181,173,127,0.25);transform:translateY(-1px)}
.btn-del{width:100%;padding:8px;background:none;color:var(--muted,rgba(237,229,213,0.45));border:1px solid var(--border-hi,rgba(237,229,213,0.12));border-radius:999px;font-size:12px;cursor:pointer;font-family:inherit;transition:all 200ms ease-out}
.btn-del:hover{border-color:var(--accent,#B5AD7F);color:var(--accent,#B5AD7F)}

/* PIN */
.pin-dots{display:flex;justify-content:center;gap:12px;margin:16px 0 20px}
.pin-dots span{width:14px;height:14px;border-radius:50%;border:2px solid var(--border);transition:all .15s}
.pin-dots span.filled{background:var(--accent);border-color:var(--accent)}
.pin-pad{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;max-width:240px;margin:0 auto}
.pin-pad button{padding:16px;border-radius:var(--r);border:1px solid var(--border);background:var(--surface2);color:var(--text);font-size:20px;font-weight:500;cursor:pointer;transition:all .15s;font-family:inherit}
.pin-pad button:hover{background:var(--surface3)}
.pin-pad button:active{transform:scale(.95)}
.pin-fn{color:var(--muted) !important;font-size:16px !important}

/* Autocomplete */
.autocomplete-wrap{position:relative}
.ac-list{position:absolute;z-index:999;width:100%;background:var(--surface);border:1px solid var(--border);border-radius:var(--r-sm);margin-top:2px;max-height:150px;overflow-y:auto}
.ac-list.hidden{display:none}
.ac-item{padding:9px 12px;cursor:pointer;font-size:13px;transition:background .1s}
.ac-item:hover{background:var(--surface2)}

/* ===== SETTINGS ===== */
.settings-layout{display:flex;flex:1;overflow:hidden}
.settings-nav{width:200px;flex-shrink:0;border-right:1px solid var(--border);padding:10px 0;overflow-y:auto}
.sn-group{padding:6px 16px 4px;font-size:10px;font-weight:500;color:var(--muted);text-transform:uppercase;letter-spacing:.08em;margin-top:8px}
.sn-item{padding:8px 16px;font-size:13px;cursor:pointer;color:var(--muted);transition:all .15s;border-left:3px solid transparent;display:flex;align-items:center;gap:8px;font-family:inherit;background:none;border-right:none;border-top:none;border-bottom:none;width:100%;text-align:left}
.sn-item:hover{color:var(--text);background:var(--surface2)}
.sn-item.active{color:var(--text);background:var(--surface2);border-left-color:var(--accent)}
.settings-content{flex:1;overflow-y:auto;padding:24px 28px}
.sc-section{margin-bottom:24px}
.sc-section h3{font-size:14px;font-weight:500;margin-bottom:14px}
.sc-row{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-bottom:12px}
.sc-field{display:flex;flex-direction:column;gap:4px}
.sc-field label{font-size:11px;color:var(--muted);text-transform:uppercase;letter-spacing:.06em}
.sc-field input,.sc-field select{background:var(--surface2);color:var(--text);border:1px solid var(--border);border-radius:12px;padding:8px 10px;font-size:13px;font-family:inherit;transition:border-color 200ms ease-out}
.sc-field input:focus,.sc-field select:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 2px rgba(181,173,127,0.1)}
.sc-save{padding:8px 18px;background:var(--accent,#B5AD7F) !important;color:var(--accent-text,#111) !important;border:none;border-radius:999px;font-weight:500;font-size:13px;cursor:pointer;font-family:inherit;letter-spacing:0.02em;transition:all 200ms ease-out}
.fe-save{width:100%;padding:8px;background:var(--accent,#B5AD7F) !important;color:var(--accent-text,#111) !important;border:none;border-radius:999px;font-weight:500;font-size:12px;cursor:pointer;font-family:inherit;margin-top:6px;letter-spacing:0.02em;transition:all 200ms ease-out}
.sc-save:hover,.fe-save:hover{box-shadow:0 0 24px rgba(181,173,127,0.25);transform:translateY(-1px)}
.sc-info{color:var(--muted);font-size:13px;margin-bottom:14px;line-height:1.5}
.sc-placeholder{margin-top:14px;color:var(--muted);font-size:12px;background:var(--surface2);padding:12px;border-radius:var(--r);line-height:1.5}
.sc-placeholder strong{color:var(--text)}
.logo-preview{background:var(--surface2);border:1px solid var(--border);border-radius:var(--r);padding:20px;text-align:center;min-height:90px;display:flex;align-items:center;justify-content:center;margin-bottom:12px}
.logo-preview img{max-height:60px;max-width:200px;object-fit:contain}
.logo-preview .no-logo{color:var(--muted);font-size:13px}
.table-list{display:flex;flex-direction:column;gap:4px;margin-bottom:10px}
.table-row{display:flex;align-items:center;gap:8px;padding:8px 12px;background:var(--surface2);border:1px solid var(--border);border-radius:var(--r-sm);font-size:13px;cursor:pointer;transition:border-color .15s}
.table-row:hover{border-color:var(--accent)}
.tr-lbl{font-weight:500;min-width:60px}
.tr-zone{font-size:11px;color:var(--muted);text-transform:uppercase}
.tr-pax{font-size:11px;color:var(--muted);margin-left:auto}
.tr-add{padding:7px 14px;background:none;border:1px dashed var(--border);border-radius:var(--r-sm);color:var(--muted);font-size:12px;cursor:pointer;transition:all .15s;font-family:inherit}
.tr-add:hover{border-color:var(--accent);color:var(--text)}
.team-list{display:flex;flex-direction:column;gap:6px;margin-bottom:14px}
.team-row{display:flex;align-items:center;gap:10px;padding:10px 14px;background:var(--surface2);border:1px solid var(--border);border-radius:var(--r-sm)}
.team-avatar{width:32px;height:32px;border-radius:50%;background:var(--surface3);display:flex;align-items:center;justify-content:center;font-size:14px;font-weight:500;flex-shrink:0;color:var(--accent)}
.team-info{flex:1;min-width:0}
.team-name{font-size:13px;font-weight:500}
.team-role{font-size:11px;color:var(--muted);text-transform:capitalize}
.team-badge{padding:2px 8px;border-radius:4px;font-size:10px;font-weight:500}
.role-admin{background:rgba(181,173,127,.2);color:var(--accent)}
.role-staff{background:rgba(34,197,94,.15);color:#4ade80}

/* Floor editor (in settings — full height) */
.floor-editor-wrap{display:flex;gap:0;border:1px solid var(--border);border-radius:var(--r);overflow:hidden;height:calc(100vh - 160px);min-height:400px}
.floor-editor-canvas{flex:1;position:relative;background:var(--surface2);overflow:auto;width:100%;height:100%;
  background-image:radial-gradient(circle,rgba(255,255,255,0.06) 1px,transparent 1px);
  background-size:20px 20px}
.floor-editor-tools{width:200px;flex-shrink:0;border-left:1px solid var(--border);padding:12px;overflow-y:auto;background:var(--surface)}
.fe-section{margin-bottom:16px}
.fe-title{font-size:10px;font-weight:500;color:var(--muted);text-transform:uppercase;letter-spacing:.08em;margin-bottom:6px}
.fe-btn{display:block;width:100%;text-align:left;padding:6px 10px;border-radius:var(--r-sm);border:1px solid var(--border);background:none;color:var(--muted);font-size:12px;cursor:pointer;margin-bottom:3px;transition:all .15s;font-family:inherit}
.fe-btn:hover{background:var(--surface2);color:var(--text)}
.fe-field{margin-bottom:8px}
.fe-field label{display:block;font-size:10px;color:var(--muted);text-transform:uppercase;margin-bottom:3px}
.fe-field input,.fe-field select{width:100%;background:var(--surface2);color:var(--text);border:1px solid var(--border);border-radius:12px;padding:5px 8px;font-size:12px;font-family:inherit;transition:border-color 200ms ease-out}
.fe-field input:focus,.fe-field select:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 2px rgba(181,173,127,0.1)}
/* .fe-save defined above at line 320 */
.fe-del{width:100%;padding:5px;background:none;color:var(--muted);border:1px solid var(--border);border-radius:var(--r-sm);font-size:11px;cursor:pointer;margin-top:3px;font-family:inherit}
.fe-del:hover{border-color:#ef4444;color:#ef4444}
.resize-handle{position:absolute;width:10px;height:10px;background:var(--accent);border-radius:2px;z-index:20;cursor:nwse-resize}
.resize-handle.br{bottom:-4px;right:-4px}

/* Empty */
.empty{text-align:center;color:var(--muted);padding:48px 20px}
.empty .ei{font-size:36px;margin-bottom:12px}

/* Scrollbars */
::-webkit-scrollbar{width:6px;height:6px}
::-webkit-scrollbar-track{background:transparent}
::-webkit-scrollbar-thumb{background:rgba(237,229,213,0.1);border-radius:3px}
::-webkit-scrollbar-thumb:hover{background:rgba(237,229,213,0.2)}

/* ===== REPORTS & METRIC CARDS ===== */
.metric-card{background:var(--surface2);border:1px solid var(--border);border-radius:var(--r);padding:16px;text-align:center}
.metric-val{font-size:28px;font-weight:500;color:var(--accent);line-height:1}
.metric-lbl{font-size:11px;color:var(--muted);margin-top:4px;text-transform:uppercase;letter-spacing:.06em}
.sc-card{background:var(--surface2);border:1px solid var(--border);border-radius:var(--r);padding:16px}
.sc-card h4{font-size:13px;font-weight:500;margin-bottom:12px;color:var(--text)}

/* ===== REPORTS ===== */
.rng-btn{background:var(--surface2);border:1px solid var(--border);color:var(--muted);border-radius:var(--r-sm);padding:4px 12px;font-size:12px;font-weight:500;cursor:pointer;font-family:inherit;transition:all .15s}
.rng-btn:hover,.rng-btn.active{background:var(--accent);color:#111;border-color:var(--accent)}
.rpt-card{cursor:pointer;transition:transform .15s}
.rpt-card:hover{transform:translateY(-2px);border-color:var(--accent)}

/* ===== REPORTS GRID HEIGHT ===== */
#reports-section .rpt-card{min-height:200px;display:flex;flex-direction:column}
input[type=number]::-webkit-inner-spin-button,input[type=number]::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}
input[type=number]{-moz-appearance:textfield;appearance:textfield}
#reports-section .rpt-card canvas{flex:1;min-height:140px}

/* ===== TOAST ===== */
.wk-toast{position:fixed;bottom:24px;right:24px;z-index:9999;background:var(--surface);border:1px solid var(--border);border-radius:8px;padding:10px 18px;font-size:13px;font-weight:500;transform:translateY(12px);opacity:0;transition:all .25s ease;pointer-events:none}
.wk-toast.show{transform:translateY(0);opacity:1}
.wk-toast.wk-toast-ok{border-color:rgba(34,197,94,.4);color:#4ade80}

/* ===== Casa Ichu enriched-fields panel (read-only sections in /worker right panel) ===== */
.ci-hero{position:relative;padding:14px 16px;margin:0 0 12px;border:1px solid var(--accent-border);border-radius:var(--r-sm);background:linear-gradient(135deg,rgba(167,139,250,0.10),rgba(34,211,238,0.06))}
.ci-hero.carta{background:linear-gradient(135deg,rgba(181,173,127,0.12),rgba(237,229,213,0.04))}
.ci-hero.suyu{background:linear-gradient(135deg,rgba(167,139,250,0.13),rgba(193,191,241,0.06))}
.ci-hero.suyu-veg{background:linear-gradient(135deg,rgba(34,211,238,0.13),rgba(167,139,250,0.06))}
.ci-hero-eyebrow{font-family:ui-monospace,'SF Mono',monospace;font-size:9px;letter-spacing:.18em;text-transform:uppercase;color:var(--muted);margin-bottom:6px}
.ci-hero-title{font-size:15px;font-weight:700;color:var(--text);letter-spacing:.02em;margin-bottom:4px}
.ci-hero-meta{font-size:11px;color:var(--muted)}
.ci-hero-amount{position:absolute;right:14px;top:12px;text-align:right}
.ci-hero-amount-val{font-size:18px;font-weight:700;color:var(--accent);letter-spacing:.02em;line-height:1}
.ci-hero-amount-lbl{font-family:ui-monospace,'SF Mono',monospace;font-size:9px;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);margin-top:4px}
.ci-paystatus{display:inline-flex;align-items:center;gap:6px;padding:3px 10px;border-radius:999px;font-size:10px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;margin-top:8px}
.ci-paystatus.paid{background:rgba(34,197,94,0.14);color:#22c55e;border:1px solid rgba(34,197,94,0.32)}
.ci-paystatus.pending{background:rgba(245,158,11,0.14);color:#f59e0b;border:1px solid rgba(245,158,11,0.32)}
.ci-paystatus.none{background:rgba(165,158,142,0.14);color:var(--muted);border:1px solid var(--border)}
.ci-paystatus-dot{width:6px;height:6px;border-radius:999px;background:currentColor}

.ci-badge-test{background:rgba(245,158,11,0.18);color:#f59e0b;border:1px solid rgba(245,158,11,0.34)}

.ci-pax-split{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-bottom:4px}
.ci-pax-split-cell{background:var(--surface2);border:1px solid var(--border);border-radius:12px;padding:10px 12px}
.ci-pax-split-lbl{font-family:ui-monospace,'SF Mono',monospace;font-size:9px;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);margin-bottom:4px}
.ci-pax-split-val{font-size:18px;font-weight:700;color:var(--text);line-height:1}

.ci-section{margin-top:14px;padding:14px 16px;background:var(--surface2);border:1px solid var(--border);border-radius:var(--r-sm)}
.ci-section-eyebrow{display:flex;justify-content:space-between;align-items:center;font-family:ui-monospace,'SF Mono',monospace;font-size:9px;letter-spacing:.16em;text-transform:uppercase;color:var(--muted);margin-bottom:10px}
.ci-section-eyebrow .count{color:var(--accent);font-weight:700}

.ci-pairing-row{display:flex;justify-content:space-between;align-items:center;gap:8px;padding:8px 0;border-bottom:1px solid var(--border);font-size:12px}
.ci-pairing-row:last-child{border-bottom:none;padding-bottom:0}
.ci-pairing-row .ci-pairing-info{flex:1;min-width:0}
.ci-pairing-row .who{color:var(--text);font-weight:500}
.ci-pairing-row .what{color:var(--muted);font-size:11px;margin-top:1px}
.ci-pairing-row .price{font-family:ui-monospace,'SF Mono',monospace;color:var(--accent);font-weight:700;min-width:54px;text-align:right}
.ci-pairing-pill{display:inline-block;padding:2px 8px;border-radius:999px;font-size:10px;font-weight:600;letter-spacing:.04em;text-transform:uppercase;flex-shrink:0}
.ci-pairing-pill.alc{background:rgba(244,114,182,0.14);color:#f472b6;border:1px solid rgba(244,114,182,0.32)}
.ci-pairing-pill.non{background:rgba(34,211,238,0.14);color:#22d3ee;border:1px solid rgba(34,211,238,0.32)}
.ci-pairing-pill.no{background:rgba(165,158,142,0.14);color:var(--muted);border:1px solid var(--border)}

.ci-roster-row{display:flex;align-items:center;gap:10px;padding:7px 0;border-bottom:1px solid var(--border);font-size:12px}
.ci-roster-row:last-child{border-bottom:none;padding-bottom:0}
.ci-roster-num{width:22px;height:22px;border-radius:999px;background:var(--surface3);border:1px solid var(--border);display:flex;align-items:center;justify-content:center;font-family:ui-monospace,monospace;font-size:10px;color:var(--muted);flex-shrink:0}
.ci-roster-name{flex:1;color:var(--text)}
.ci-roster-tag{font-family:ui-monospace,monospace;font-size:9px;letter-spacing:.10em;text-transform:uppercase;color:var(--muted)}

.ci-policy{margin-top:14px;padding:10px 14px;background:var(--surface2);border:1px solid var(--border);border-radius:var(--r-sm);display:flex;align-items:center;gap:10px;font-size:11px;color:var(--muted)}
.ci-policy-check{width:18px;height:18px;border-radius:999px;background:rgba(34,197,94,0.14);border:1px solid rgba(34,197,94,0.32);color:#22c55e;display:flex;align-items:center;justify-content:center;font-size:11px;flex-shrink:0;font-weight:700}
.ci-policy strong{color:var(--text)}
.wk-toast.wk-toast-err{border-color:rgba(239,68,68,.4);color:#fca5a5}
/* ============================================================
   RESERVATION SEARCH (additive · 2026-05-17)
   Second header row + dropdown + Search tab view.
   Theme-aware via existing tokens. No edits to existing rules.
   ============================================================ */
.search-row{display:flex;align-items:center;gap:10px;height:44px;padding:0 14px;background:var(--surface);border-bottom:1px solid var(--border);position:relative;flex-shrink:0}
.search-row + .layout{height:calc(100vh - 96px)}
.search-input-wrap{flex:1;display:flex;align-items:center;gap:10px;background:var(--surface2);border:1px solid var(--border);border-radius:var(--r-sm);padding:8px 14px;height:32px;transition:border-color .12s,background .12s,box-shadow .12s}
.search-input-wrap.focused{border-color:var(--accent);background:var(--surface);box-shadow:0 0 0 3px var(--accent-dim)}
.search-ico{font-size:13px;color:var(--accent);line-height:1}
.search-input-wrap input{flex:1;border:none;background:transparent;color:var(--text);font-size:13px;outline:none;font-family:inherit;min-width:0}
.search-input-wrap input::placeholder{color:var(--muted);opacity:.7}
.search-kbd{font-size:10px;background:var(--surface3);border:1px solid var(--border);color:var(--muted);padding:1px 6px;border-radius:4px;font-weight:600;letter-spacing:.04em;white-space:nowrap}
.search-clear-btn{background:transparent;border:none;color:var(--muted);font-size:16px;cursor:pointer;padding:0 4px;line-height:1}
.search-clear-btn:hover{color:var(--text)}
.search-scope-chips{display:flex;gap:5px;flex-shrink:0}
.search-chip{background:var(--surface2);border:1px solid var(--border);color:var(--muted);font-size:11px;font-weight:500;padding:5px 10px;border-radius:8px;cursor:pointer;white-space:nowrap;font-family:inherit;transition:all .12s}
.search-chip:hover{color:var(--text)}
.search-chip.active{background:var(--accent-dim);color:var(--accent);border-color:var(--accent-border);font-weight:600}

.search-dropdown{position:absolute;top:46px;left:14px;right:14px;max-width:680px;background:var(--surface);border:1px solid var(--border);border-radius:var(--r-sm);box-shadow:0 18px 48px rgba(0,0,0,.45);overflow:hidden;z-index:120;max-height:60vh;display:flex;flex-direction:column}
.search-dd-hdr{padding:8px 14px;border-bottom:1px solid var(--border);background:var(--surface2);display:flex;justify-content:space-between;align-items:center;font-size:10px;color:var(--muted);font-weight:600;text-transform:uppercase;letter-spacing:.07em;flex-shrink:0}
.search-dd-list{flex:1;overflow-y:auto}
.search-dd-row{padding:10px 14px;border-bottom:1px solid var(--border);cursor:pointer;display:flex;justify-content:space-between;align-items:flex-start;gap:10px;transition:background .1s}
.search-dd-row:hover,.search-dd-row.hov{background:var(--surface2)}
.search-dd-row.hov{box-shadow:inset 3px 0 0 var(--accent)}
.search-dd-row .nm{font-size:13px;font-weight:500;color:var(--text)}
.search-dd-row .ml{font-size:11px;color:var(--muted);margin-top:2px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.search-dd-row .rt{text-align:right;flex-shrink:0}
.search-dd-row .rt .ddt{font-size:12px;font-weight:600;color:var(--text)}
.search-dd-row .rt .dtm{font-size:11px;color:var(--muted);margin-top:1px}
.search-dd-foot{padding:7px 14px;background:var(--surface2);font-size:10px;color:var(--muted);display:flex;justify-content:space-between;align-items:center;border-top:1px solid var(--border);flex-shrink:0}
.search-dd-foot a{color:var(--accent);font-weight:600;cursor:pointer;text-decoration:none}
.search-dd-empty{padding:30px 18px;text-align:center;color:var(--muted);font-size:12px;line-height:1.6}
.search-dd mark{background:var(--accent-dim);color:var(--text);padding:0 2px;border-radius:3px;font-weight:600}
.search-dd-pill{display:inline-block;padding:2px 7px;border-radius:99px;font-size:9px;font-weight:600;text-transform:uppercase;letter-spacing:.04em;margin-top:4px}
.search-dd-pill.conf{background:var(--accent-dim);color:var(--accent);border:1px solid var(--accent-border)}
.search-dd-pill.seat{background:rgba(34,197,94,.15);color:#16a34a;border:1px solid rgba(34,197,94,.35)}
.search-dd-pill.late{background:rgba(239,68,68,.15);color:#dc2626;border:1px solid rgba(239,68,68,.35)}
.search-dd-pill.noshow,.search-dd-pill.no-show{background:rgba(107,114,128,.15);color:#6b7280;border:1px solid rgba(107,114,128,.35)}
.search-dd-pill.cancelled{background:rgba(220,38,38,.15);color:#dc2626;border:1px solid rgba(220,38,38,.35)}
.search-dd-pill.completed{background:rgba(107,114,128,.12);color:#6b7280;border:1px solid rgba(107,114,128,.30)}
.search-dd-pill.pending{background:rgba(245,158,11,.15);color:#d97706;border:1px solid rgba(245,158,11,.35)}

/* Search tab view */
.search-page{padding:14px 18px;max-width:1280px;margin:0 auto}
.search-page-hdr{display:flex;align-items:flex-end;justify-content:space-between;gap:14px;margin-bottom:14px;flex-wrap:wrap}
.search-page-hdr h2{margin:0;font-size:17px;font-weight:500;color:var(--text);letter-spacing:-.01em}
.search-page-hdr .sub{font-size:11px;color:var(--muted);margin-top:2px}
.search-tbl-wrap{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-sm);overflow:hidden}
.search-tbl{width:100%;border-collapse:collapse;font-size:12px}
.search-tbl thead{background:var(--surface2)}
.search-tbl th{padding:9px 12px;text-align:left;font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:.07em;color:var(--muted);border-bottom:1px solid var(--border)}
.search-tbl td{padding:11px 12px;border-bottom:1px solid var(--border);font-size:12px;color:var(--text);vertical-align:middle}
.search-tbl tr.row{cursor:pointer;transition:background .1s}
.search-tbl tr.row:hover{background:var(--surface2)}
.search-tbl tr.row.sel{background:var(--accent-dim);box-shadow:inset 3px 0 0 var(--accent)}
.search-tbl .dt{font-weight:600;color:var(--text)}
.search-tbl .pax{font-weight:600;color:var(--accent);font-size:13px}
.search-tbl .muted{color:var(--muted);font-size:11px}
.search-tbl mark{background:var(--accent-dim);color:var(--text);padding:0 2px;border-radius:3px;font-weight:600}
.search-tcell{display:inline-block;font-size:10px;font-weight:600;background:var(--surface2);border:1px solid var(--border);padding:2px 7px;border-radius:5px;color:var(--accent)}
.search-tpg{padding:9px 14px;border-top:1px solid var(--border);background:var(--surface2);color:var(--muted);font-size:11px;display:flex;justify-content:space-between;align-items:center}
.search-tpg .pg{display:flex;gap:5px}
.search-tpg button{background:var(--surface);border:1px solid var(--border);color:var(--text);font-size:11px;padding:3px 9px;border-radius:6px;cursor:pointer;font-family:inherit}
.search-tpg button:disabled{opacity:.4;cursor:not-allowed}
.search-page-empty{padding:60px 20px;text-align:center;color:var(--muted);font-size:13px;line-height:1.6}
.search-page-empty b{color:var(--text)}

/* ============================================================
   NEW-RESERVATION NOTIFICATIONS (additive · 2026-05-19)
   Bell on search row + blocking modal alert + pulsing icon.
   Theme-aware via existing tokens; no edits to existing rules.
   ============================================================ */
.rn-bell{display:flex;align-items:center;gap:6px;background:var(--surface2);border:1px solid var(--border);color:var(--muted);border-radius:var(--r-sm);padding:5px 10px;font-size:13px;cursor:pointer;position:relative;font-family:inherit;flex-shrink:0;transition:all .15s}
.rn-bell:hover{color:var(--text);border-color:var(--accent)}
.rn-bell.active{color:var(--accent);border-color:var(--accent-border);background:var(--accent-dim)}
.rn-bell .ico{font-size:14px;line-height:1}
.rn-bell .badge{position:absolute;top:-6px;right:-6px;background:#ef4444;color:#fff;font-size:9px;font-weight:800;min-width:16px;height:16px;padding:0 4px;border-radius:999px;display:flex;align-items:center;justify-content:center;border:1.5px solid var(--surface)}
.rn-bell.pulse .ico{animation:rnPulse 1.5s ease-in-out infinite}
@keyframes rnPulse{
  0%,100%{transform:scale(1)}
  50%{transform:scale(1.18);color:#fbbf24}
}

/* === Blocking alert overlay + modal === */
.rn-overlay{position:fixed;inset:0;background:rgba(0,0,0,.65);display:flex;align-items:center;justify-content:center;z-index:9000;backdrop-filter:blur(2px)}
.rn-modal{width:520px;max-width:calc(100% - 32px);max-height:calc(100vh - 60px);background:var(--surface);border:2px solid var(--accent);border-radius:14px;box-shadow:0 24px 64px rgba(0,0,0,.7);overflow:hidden;display:flex;flex-direction:column;font-family:inherit;color:var(--text);animation:rnPop .25s ease-out}
@keyframes rnPop{0%{transform:scale(.92);opacity:0}100%{transform:scale(1);opacity:1}}
.rn-modal-hdr{background:linear-gradient(180deg,var(--accent-dim) 0%,transparent 100%);padding:20px 24px 16px;border-bottom:1px solid var(--accent-border);text-align:center;position:relative;flex-shrink:0}
.rn-modal-hdr .pulse-ring{display:inline-flex;width:52px;height:52px;border-radius:50%;background:var(--accent-dim);border:2px solid var(--accent);align-items:center;justify-content:center;margin:0 auto 10px;font-size:24px;animation:rnRing 1.5s ease-in-out infinite}
@keyframes rnRing{0%,100%{box-shadow:0 0 0 0 var(--accent-border)}50%{box-shadow:0 0 0 12px transparent}}
.rn-modal-hdr .lbl{font-size:10px;font-weight:800;text-transform:uppercase;letter-spacing:.16em;color:var(--accent)}
.rn-modal-hdr h2{margin:6px 0 0;font-size:22px;font-weight:600;color:var(--text);letter-spacing:-.01em}
.rn-modal-hdr .src{font-size:11px;color:var(--muted);margin-top:4px}
.rn-modal-hdr .src b{color:var(--accent);font-weight:600}
.rn-modal-hdr .counter{position:absolute;top:14px;right:18px;font-size:11px;color:var(--muted);background:var(--surface2);border:1px solid var(--border);padding:3px 9px;border-radius:99px;font-weight:600}
.rn-modal-body{padding:18px 24px;overflow-y:auto;flex:1}
.rn-grid{display:grid;grid-template-columns:auto 1fr;gap:10px 16px;font-size:13px}
.rn-grid .k{font-size:10px;font-weight:800;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);align-self:center}
.rn-grid .v{color:var(--text);font-weight:500}
.rn-grid .v b{color:var(--accent);font-weight:600;font-size:15px}
.rn-pillrow{margin-top:14px;display:flex;flex-wrap:wrap;gap:5px}
.rn-pill{display:inline-block;padding:3px 9px;border-radius:99px;font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:.04em}
.rn-pill.web{background:rgba(96,165,250,.18);color:#1d4ed8;border:1px solid rgba(96,165,250,.45)}
.rn-pill.wa{background:rgba(34,197,94,.18);color:#15803d;border:1px solid rgba(34,197,94,.45)}
.rn-pill.email{background:rgba(217,119,6,.18);color:#92400e;border:1px solid rgba(217,119,6,.45)}
.rn-pill.staff{background:var(--surface2);color:var(--muted);border:1px solid var(--border)}
.rn-pill.suyu{background:rgba(184,115,51,.18);color:#9a3412;border:1px solid rgba(184,115,51,.45)}
.rn-pill.paid{background:rgba(34,197,94,.18);color:#15803d;border:1px solid rgba(34,197,94,.45)}
.rn-pill.alg{background:rgba(239,68,68,.18);color:#991b1b;border:1px solid rgba(239,68,68,.45)}
.rn-pill.conf{background:var(--accent-dim);color:var(--accent);border:1px solid var(--accent-border)}
[data-theme="night"] .rn-pill.web{color:#93c5fd}
[data-theme="night"] .rn-pill.wa{color:#86efac}
[data-theme="night"] .rn-pill.email{color:#fbbf24}
[data-theme="night"] .rn-pill.suyu{color:#fdba74}
[data-theme="night"] .rn-pill.paid{color:#86efac}
[data-theme="night"] .rn-pill.alg{color:#fca5a5}
.rn-notebox{margin-top:14px;background:var(--surface2);border:1px solid var(--border);border-left:3px solid var(--accent);border-radius:8px;padding:10px 12px;font-size:12px;line-height:1.5;color:var(--text)}
.rn-notebox .nblbl{font-size:9px;font-weight:800;text-transform:uppercase;letter-spacing:.07em;color:var(--muted);margin-bottom:4px}
.rn-modal-foot{padding:14px 24px 18px;border-top:1px solid var(--border);background:var(--bg);display:flex;gap:8px;justify-content:flex-end;align-items:center;flex-wrap:wrap;flex-shrink:0}
.rn-btn{padding:10px 18px;border-radius:8px;font-size:13px;font-weight:600;cursor:pointer;font-family:inherit;border:1px solid transparent;transition:all .15s}
/* Primary button — explicit per-theme so cream-bg modals stay legible even if a
   parent overrides --accent-text. Uses !important to win any cascade fight. */
.rn-btn.primary{background:#8A7D4A !important;color:#FFFFFF !important;border:1px solid #6E6438 !important;font-weight:700;letter-spacing:.02em;text-shadow:0 1px 0 rgba(0,0,0,.18)}
[data-theme="night"] .rn-btn.primary{background:#B5AD7F !important;color:#111111 !important;border-color:#B5AD7F !important;text-shadow:none}
[data-theme="sunset"] .rn-btn.primary{background:#E8A84C !important;color:#1C1410 !important;border-color:#E8A84C !important;text-shadow:none}
.rn-btn.primary:hover{filter:brightness(1.08)}
.rn-btn.ghost{background:var(--surface2);color:var(--text);border-color:var(--border)}
.rn-btn.ghost:hover{border-color:var(--accent);color:var(--accent)}
.rn-modal-foot .hint{margin-right:auto;font-size:10px;color:var(--muted)}
.rn-modal-foot .hint b{color:var(--text);font-weight:600;background:var(--surface2);border:1px solid var(--border);padding:1px 5px;border-radius:3px;font-family:'SF Mono',Menlo,monospace}

/* "What was sent" confirmation modal (additive · 2026-05-25) */
.sent-section-lbl{margin:16px 0 8px;font-size:9px;font-weight:800;text-transform:uppercase;letter-spacing:.1em;color:var(--muted);display:flex;align-items:center;gap:8px}
.sent-section-lbl::after{content:"";flex:1;height:1px;background:var(--border)}
.sent-card{background:var(--surface2);border:1px solid var(--border);border-radius:10px;padding:12px 14px;margin-bottom:8px}
.sent-card .sc-top{display:flex;align-items:center;gap:8px;margin-bottom:8px}
.sent-card .sc-ico{width:26px;height:26px;border-radius:7px;display:flex;align-items:center;justify-content:center;font-size:14px;flex-shrink:0}
.sent-card .sc-ico.wa{background:rgba(34,197,94,.16);border:1px solid rgba(34,197,94,.4)}
.sent-card .sc-ico.email{background:rgba(217,119,6,.16);border:1px solid rgba(217,119,6,.4)}
.sent-card .sc-meta{min-width:0;flex:1}
.sent-card .sc-chan{font-size:11px;font-weight:700;color:var(--text);letter-spacing:.02em}
.sent-card .sc-to{font-size:11px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.sent-card .sc-status{font-size:9px;font-weight:800;text-transform:uppercase;letter-spacing:.05em;padding:2px 8px;border-radius:99px;white-space:nowrap}
.sent-card .sc-status.ok{background:rgba(34,197,94,.16);color:#15803d;border:1px solid rgba(34,197,94,.4)}
.sent-card .sc-status.mock{background:var(--surface);color:var(--muted);border:1px solid var(--border)}
[data-theme="night"] .sent-card .sc-status.ok{color:#86efac}
.sent-card .sc-body{font-size:12px;line-height:1.5;color:var(--text);background:var(--bg);border:1px solid var(--border);border-radius:7px;padding:9px 11px;white-space:pre-wrap}
.sent-card .sc-subj{font-size:11px;font-weight:700;color:var(--text);margin-bottom:5px}
.sent-none{font-size:12px;color:var(--muted);font-style:italic;padding:6px 0}
