:root{--bg:#eef0e7;--surface:#fbfbf7;--surface-2:#e4e7da;--surface-hover:#dee2d2;--ink:#1b241d;--ink-muted:#5b6459;--ink-faint:#8b927f;--border:#d2d6c4;--border-strong:#b7bca6;--accent:#96701f;--accent-strong:#7a5a18;--accent-soft:#efe1c3;--on-accent:#fbf6ea;--sem-new:#2f6f4e;--sem-new-soft:#dcebdf;--sem-change:#3d6a8c;--sem-change-soft:#dbe7ee;--sem-cancel:#a6432e;--sem-cancel-soft:#f2dfda;--shadow:0 1px 2px #1b241d12, 0 6px 18px #1b241d0f;--font-display:"Fraunces", Georgia, "Times New Roman", serif;--font-body:"Libre Franklin", "Segoe UI", system-ui, sans-serif;--font-mono:"IBM Plex Mono", "SFMono-Regular", Menlo, monospace}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--bg:#121810;--surface:#1a2118;--surface-2:#212a1e;--surface-hover:#293323;--ink:#ece8dc;--ink-muted:#aeb5a2;--ink-faint:#7c8370;--border:#333f2d;--border-strong:#455038;--accent:#d9a24e;--accent-strong:#e9bc72;--accent-soft:#3b2e14;--on-accent:#1b1305;--sem-new:#5fae84;--sem-new-soft:#1e3226;--sem-change:#7daac9;--sem-change-soft:#1e2e38;--sem-cancel:#d98770;--sem-cancel-soft:#3a241d;--shadow:0 1px 2px #00000059, 0 8px 22px #0006}}:root[data-theme=dark]{--bg:#121810;--surface:#1a2118;--surface-2:#212a1e;--surface-hover:#293323;--ink:#ece8dc;--ink-muted:#aeb5a2;--ink-faint:#7c8370;--border:#333f2d;--border-strong:#455038;--accent:#d9a24e;--accent-strong:#e9bc72;--accent-soft:#3b2e14;--on-accent:#1b1305;--sem-new:#5fae84;--sem-new-soft:#1e3226;--sem-change:#7daac9;--sem-change-soft:#1e2e38;--sem-cancel:#d98770;--sem-cancel-soft:#3a241d;--shadow:0 1px 2px #00000059, 0 8px 22px #0006}*{box-sizing:border-box}html,body{margin:0;padding:0}body{background:var(--bg);color:var(--ink);font-family:var(--font-body);-webkit-font-smoothing:antialiased;font-size:15px;line-height:1.5}::selection{background:var(--accent-soft);color:var(--ink)}a{color:inherit}button{cursor:pointer;font-family:inherit}input{font-family:inherit}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}@media (prefers-reduced-motion:reduce){*{transition-duration:.01ms!important;animation-duration:.01ms!important}}.shell{max-width:760px;margin:0 auto;padding:20px 24px 64px}header.top{border-bottom:1px solid var(--border);flex-wrap:wrap;align-items:center;gap:14px;margin-bottom:20px;padding:14px 0 18px;display:flex}.brand{align-items:baseline;gap:9px;display:flex}.brand .mark{background:var(--accent);width:30px;height:30px;color:var(--on-accent);font-family:var(--font-display);border-radius:7px;flex:none;justify-content:center;align-items:center;font-size:16px;font-weight:650;display:flex}.brand h1{font-family:var(--font-display);letter-spacing:.2px;margin:0;font-size:21px;font-weight:650}.brand .sub{color:var(--ink-faint);margin-left:2px;font-size:12.5px}.top-right{align-items:center;gap:12px;margin-left:auto;display:flex}.signout-btn{font-family:var(--font-body);color:var(--ink-muted);background:var(--surface);border:1px solid var(--border);white-space:nowrap;border-radius:8px;padding:6px 12px;font-size:12.5px;font-weight:500}.signout-btn:hover{background:var(--surface-hover);color:var(--ink)}.panel{background:var(--surface);border:1px solid var(--border);box-shadow:var(--shadow);border-radius:10px;overflow:hidden}.panel-head{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;gap:10px;padding:13px 16px;display:flex}.panel-head h2{font-family:var(--font-display);margin:0;font-size:15.5px;font-weight:600}.panel-head .count{font-family:var(--font-mono);color:var(--ink-faint);font-size:12px}.empty-state{text-align:center;color:var(--ink-faint);padding:60px 30px;font-size:13.5px}.reservation-row{border-bottom:1px solid var(--border);border-left:3px solid #0000;flex-wrap:wrap;align-items:center;gap:12px;padding:14px 16px;display:flex}.reservation-row:last-child{border-bottom:none}.reservation-row.cat-new{border-left-color:var(--sem-new)}.reservation-row.cat-change{border-left-color:var(--sem-change)}.reservation-row.booking{opacity:.6}.reservation-main{flex-wrap:wrap;flex:1;align-items:baseline;gap:10px;min-width:220px;display:flex}.reservation-name{font-size:15px;font-weight:650}.reservation-details{font-family:var(--font-mono);color:var(--ink-muted);font-size:13px}.reservation-restaurant{color:var(--ink-faint);background:var(--surface-2);border:1px solid var(--border);white-space:nowrap;border-radius:20px;padding:2px 8px;font-size:11px}.reservation-badge{letter-spacing:.02em;border-radius:20px;padding:2.5px 8px;font-size:10.5px;font-weight:600}.reservation-badge.cat-new{background:var(--sem-new-soft);color:var(--sem-new)}.reservation-badge.cat-change{background:var(--sem-change-soft);color:var(--sem-change)}.reservation-actions{flex:none;align-items:center;gap:8px;display:flex}.rbtn{border:1px solid var(--border);background:var(--surface);color:var(--ink);border-radius:7px;padding:8px 16px;font-size:13.5px;font-weight:650;transition:background .12s,border-color .12s}.rbtn:hover:not(:disabled){background:var(--surface-hover)}.rbtn.yes{background:var(--accent);border-color:var(--accent);color:var(--on-accent)}.rbtn.yes:hover:not(:disabled){background:var(--accent-strong);border-color:var(--accent-strong)}.rbtn:disabled{opacity:.5;cursor:not-allowed}.reservation-error{color:var(--sem-cancel);background:var(--sem-cancel-soft);border-radius:6px;flex-basis:100%;margin-top:6px;padding:7px 10px;font-size:12.5px}.toast{background:var(--ink);color:var(--bg);opacity:0;pointer-events:none;z-index:50;box-shadow:var(--shadow);font-size:13px;font-family:var(--font-body);border-radius:8px;padding:10px 18px;transition:opacity .25s,transform .25s;position:fixed;bottom:22px;left:50%;transform:translate(-50%)translateY(8px)}.toast.show{opacity:1;transform:translate(-50%)translateY(0)}
