:root{--bg:#0b0f16;--card:#141414;--border:rgba(209,193,46,.35);--fg:#ffffff;--muted:#c8c8c8;--gold:#D1C12E;--ok:#22c55e;--warn:#f59e0b;--bad:#ef4444;--safe-top:env(safe-area-inset-top,0px);--safe-bottom:env(safe-area-inset-bottom,0px);--font-base:18px;--touch:52px}*{box-sizing:border-box}html{font-size:var(--font-base)}html,body{margin:0;height:100%;background:var(--bg);color:var(--fg);font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;-webkit-tap-highlight-color:transparent;line-height:1.45}#app{min-height:100%;display:flex;flex-direction:column}.view{flex:1;display:flex;flex-direction:column;min-height:100%}.hidden{display:none!important}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.muted{color:var(--muted);font-size:.9rem}.login-card{margin:auto;width:min(420px,94vw);padding:28px 22px;border-radius:18px;background:linear-gradient(180deg,#171717,#121212);border:1px solid var(--border)}.login-icon{display:block;width:88px;height:88px;margin:0 auto 14px;border-radius:20px}.login-card h1{margin:0 0 4px;text-align:center;font-size:1.5rem;color:var(--gold)}.login-card .muted{text-align:center;margin:0 0 18px;font-size:1rem}label{display:block;font-size:.95rem;font-weight:700;color:var(--muted);margin:12px 0 6px}input,select,button,textarea{font:inherit}input,select{width:100%;padding:14px 16px;border-radius:12px;border:2px solid rgba(255,255,255,.22);background:#0d0d0d;color:var(--fg);min-height:var(--touch);font-size:1.05rem}input:focus,select:focus,textarea:focus,button:focus-visible{outline:3px solid var(--gold);outline-offset:2px;border-color:var(--gold)}.btn{width:100%;margin-top:16px;padding:16px;border:none;border-radius:12px;background:var(--gold);color:#111;font-weight:800;cursor:pointer;min-height:var(--touch);font-size:1.1rem}.btn-sm{width:auto;margin:0;padding:12px 16px;min-height:var(--touch);font-size:1rem}.btn-action{width:auto;margin:0;padding:14px 16px;min-height:var(--touch);font-size:1.05rem;font-weight:800;border-radius:12px;cursor:pointer}.btn-ghost{background:transparent;border:2px solid rgba(255,255,255,.28);color:var(--fg);border-radius:12px;padding:12px 16px;font-weight:700;cursor:pointer;min-height:var(--touch)}.msg{min-height:1.2em;font-size:1rem;margin-top:10px;text-align:center}.msg.err{color:#fca5a5}.msg.ok{color:#6ee7b7}.topbar{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:calc(12px + var(--safe-top)) 14px 12px;border-bottom:1px solid var(--border);background:#141414f7;position:sticky;top:0;z-index:20}.brand{display:flex;align-items:center;gap:10px;font-weight:800}.brand img{border-radius:9px}.brand-title{font-size:1.05rem;line-height:1.15}.brand-sub{font-size:.85rem;color:var(--muted);font-weight:600}.sync-bar{display:flex;align-items:center;gap:8px;padding:10px 14px;border-bottom:1px solid rgba(255,255,255,.08)}.sync-hint{margin:0;padding:0;font-size:.9rem;flex:1}.update-banner{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:10px;margin:0;padding:12px 14px;background:#ef44442e;border-bottom:2px solid rgba(239,68,68,.65)}.update-banner.hidden{display:none!important}.update-banner-text{display:flex;flex-direction:column;gap:2px;min-width:0;flex:1}.update-banner-text strong{color:#fecaca;font-size:1.05rem}.update-banner-actions{display:flex;gap:8px;flex-wrap:wrap}.panel{flex:1;overflow:auto;padding:8px 14px calc(100px + var(--safe-bottom))}.tabbar{position:fixed;left:0;right:0;bottom:0;z-index:30;display:grid;grid-template-columns:1fr 1fr;gap:8px;padding:10px 10px calc(10px + var(--safe-bottom));background:#0c0c0cfa;border-top:1px solid var(--border);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.tabbar-4{grid-template-columns:repeat(4,1fr);gap:6px}.tab{border:2px solid transparent;background:#141414;color:var(--fg);padding:10px 4px;border-radius:14px;font-weight:800;font-size:.85rem;cursor:pointer;display:flex;flex-direction:column;align-items:center;gap:3px;min-height:64px}.tab-ico{font-size:22px;line-height:1}.tab.active{background:var(--gold);color:#111;border-color:transparent}.toolbar{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin:8px 0 12px}.month-title{font-weight:800;font-size:1.15rem;color:var(--gold);margin-right:auto}.cal-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:5px;margin-bottom:14px}.cal-dow{text-align:center;font-size:.75rem;color:var(--muted);font-weight:800;padding:4px 0}.cal-day{aspect-ratio:1;border-radius:10px;border:2px solid rgba(255,255,255,.12);background:#0d0d0d;color:var(--fg);font-size:.95rem;font-weight:700;cursor:pointer;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;min-height:44px}.cal-day.out{opacity:.4}.cal-day.today{border-color:var(--gold)}.cal-day.selected{background:#d1c12e40;border-color:var(--gold)}.cal-day .dot{width:7px;height:7px;border-radius:50%;background:var(--warn)}.cal-day .dot.multi{background:var(--ok)}.day-list{display:flex;flex-direction:column;gap:10px}.overview-list{display:flex;flex-direction:column;gap:18px}.day-group{display:flex;flex-direction:column;gap:10px}.day-group-head{display:flex;align-items:baseline;justify-content:space-between;gap:10px;padding:10px 12px;border-radius:12px;border:2px solid transparent;position:sticky;top:0;z-index:5}.day-group-head h3{margin:0;font-size:1.15rem;font-weight:800}.day-group-head span{font-size:.95rem;font-weight:700;opacity:.9}.day-today .day-group-head{background:#ef444438;border-color:#ef4444bf;color:#fecaca}.day-today .day-group-head h3{color:#fecaca}.day-tomorrow .day-group-head{background:#38bdf833;border-color:#38bdf8bf;color:#bae6fd}.day-tomorrow .day-group-head h3{color:#7dd3fc}.day-soon .day-group-head{background:#22c55e29;border-color:#22c55ea6;color:#bbf7d0}.day-soon .day-group-head h3{color:#86efac}.day-later .day-group-head{background:#d1c12e1f;border-color:#d1c12e73;color:var(--gold)}.day-later .day-group-head h3{color:var(--gold)}.day-past .day-group-head{background:#fb923c33;border-color:#fb923cb3;color:#fdba74}.day-past .day-group-head h3{color:#fdba74}.day-none .day-group-head{background:#ffffff0f;border-color:#ffffff24;color:var(--muted)}.day-none .day-group-head h3{color:var(--muted)}.ov-staff{margin:8px 0 0;font-size:.82rem;line-height:1.35;color:#9ca3af;font-weight:600}.stats-card{margin:4px 0 14px;padding:14px;border-radius:14px;border:2px solid rgba(255,255,255,.12);background:#121212}.stats-card h3{margin:0 0 10px;color:var(--gold);font-size:1.1rem}.stats-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.stat-box{text-align:left;border:2px solid rgba(255,255,255,.14);border-radius:12px;background:#0d0d0d;color:var(--fg);padding:12px;cursor:pointer;min-height:96px;display:flex;flex-direction:column;gap:4px}.stat-box strong{font-size:1.6rem;line-height:1}.stat-label{font-size:.9rem;font-weight:800}.stat-names{font-size:.82rem;color:var(--muted);line-height:1.3;max-height:2.6em;overflow:hidden}.stat-ok{border-color:#22c55e8c}.stat-bad{border-color:#ef44448c}.stat-wait{border-color:#38bdf873}.stat-open{border-color:#f59e0b80}.login-log-sub{margin:14px 0 8px;font-size:1rem;color:var(--gold)}.login-log-list{display:flex;flex-direction:column;gap:8px}.login-log-row{display:flex;justify-content:space-between;gap:12px;padding:10px 0;border-bottom:1px solid rgba(255,255,255,.08)}.login-log-who,.login-log-when{display:flex;flex-direction:column;gap:2px}.login-log-when{text-align:right}.login-log-who strong,.login-log-when strong{font-size:1rem}.card-item{padding:14px;border-radius:14px;border:2px solid rgba(255,255,255,.14);background:#121212;margin-bottom:0}.ov-row{border-left:6px solid rgba(255,255,255,.2)}.ov-row.status-pending{border-left-color:var(--warn)}.ov-row.status-confirmed{border-left-color:var(--ok)}.ov-row.status-arrived{border-left-color:#a78bfa}.ov-row.status-no_show,.ov-row.status-cancelled,.ov-row.status-rejected{border-left-color:#777}.ov-top{display:flex;align-items:flex-start;justify-content:space-between;gap:10px;margin-bottom:10px}.ov-name{font-size:1.25rem;font-weight:800;line-height:1.2;flex:1;min-width:0;word-break:break-word}.ov-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px 12px;padding:10px;border-radius:12px;background:#0d0d0d;border:1px solid rgba(255,255,255,.08)}.ov-cell{display:flex;flex-direction:column;gap:2px;min-width:0}.ov-cell strong,.ov-cell .phone-link{font-size:1.05rem;font-weight:800;line-height:1.25}.ov-phone .phone-link{word-break:break-all}.ov-note{margin-top:10px;padding:10px 12px;border-radius:10px;background:#ffffff0a;border:1px solid rgba(255,255,255,.08);font-size:1rem;line-height:1.4}.card-item strong,.card-name{display:block;margin-bottom:6px;font-size:1.2rem;line-height:1.25}.card-when{font-weight:800;font-size:1.05rem}.chip{display:inline-block;padding:6px 12px;border-radius:999px;font-size:.9rem;font-weight:800;margin-right:6px}.chip-pending{background:var(--warn);color:#111}.chip-confirmed{background:var(--ok);color:#052e16}.chip-arrived{background:#c4b5fd;color:#1e1b4b}.chip-cancelled,.chip-rejected,.chip-no_show{background:#555;color:#fff}.filters{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:10px}.filters input,.filters select{flex:1;min-width:140px}.list-summary{margin:0 0 12px;padding:10px 12px;border-radius:12px;background:#d1c12e1f;border:1px solid rgba(209,193,46,.28);color:var(--fg);font-weight:700;font-size:1rem}.status-chips{display:flex;flex-wrap:wrap;gap:8px;margin:4px 0 12px}.schip{border:2px solid rgba(255,255,255,.22);background:#0d0d0d;color:var(--fg);border-radius:999px;padding:12px 16px;font-weight:800;font-size:1rem;cursor:pointer;min-height:var(--touch)}.schip.active{background:var(--gold);color:#111;border-color:transparent}.action-row{display:flex;flex-wrap:wrap;gap:10px;margin-top:14px}.btn-ok{background:var(--ok);color:#052e16;border:none}.btn-ask{background:#38bdf8;color:#0c4a6e;border:none}.btn-arr{background:#a78bfa;color:#1e1b4b;border:none}.btn-noshow{background:#64748b;color:#fff;border:none}.btn-danger{background:var(--bad);color:#fff;border:none}.btn:disabled,.btn-ghost:disabled,.btn-action:disabled{opacity:.5;pointer-events:none}.card-meta{margin:6px 0 10px;display:flex;flex-wrap:wrap;align-items:center;gap:6px}.card-data{font-size:1.05rem;line-height:1.5;display:flex;flex-direction:column;gap:8px}.card-data .k{color:var(--muted);font-size:.85rem;font-weight:800;text-transform:uppercase;margin-right:8px;letter-spacing:.02em}.card-tap{cursor:pointer;border-color:#d1c12e59}.card-tap:active{background:#1a1a1a}.card-focus{border-color:var(--gold);box-shadow:0 0 0 3px #d1c12e66}.phone-link{color:var(--gold);font-weight:800;text-decoration:underline;text-underline-offset:3px;font-size:1.05rem}.phone-link:active{opacity:.8}.manual-card,.settings-card{margin:10px 0 16px;padding:18px;border-radius:14px;border:2px solid rgba(255,255,255,.12);background:#121212}.manual-card h3,.settings-card h3{margin:0 0 8px;color:var(--gold);font-size:1.2rem}.manual-card textarea{width:100%;padding:14px 16px;border-radius:12px;border:2px solid rgba(255,255,255,.22);background:#0d0d0d;color:var(--fg);min-height:90px;resize:vertical;font:inherit;font-size:1.05rem}.row2{display:grid;grid-template-columns:1fr 1fr;gap:10px}.settings-row{display:flex;justify-content:space-between;gap:12px;padding:14px 0;border-bottom:1px solid rgba(255,255,255,.08);font-size:1rem}.settings-row span{color:var(--muted)}.settings-row strong{text-align:right;font-weight:700}.settings-label{display:block;margin:14px 0 6px;font-size:.95rem;font-weight:700;color:var(--muted)}.settings-select{width:100%;padding:12px 14px;border-radius:12px;border:2px solid rgba(255,255,255,.18);background:#0d0d0d;color:var(--fg);font:inherit;font-size:1.05rem;min-height:var(--touch)}.settings-tone-row{display:flex;gap:8px;align-items:center}.settings-tone-row .settings-select{flex:1;min-width:0}.settings-check{display:flex;align-items:center;gap:12px;margin:16px 0 4px;font-size:1.05rem;font-weight:700;min-height:var(--touch)}.settings-check input{width:22px;height:22px;accent-color:var(--gold)}.mono{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.9rem}.live-stats{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:10px}.stat{flex:1;min-width:80px;padding:12px;border-radius:12px;background:#121212;border:1px solid rgba(255,255,255,.1);text-align:center}.stat b{display:block;font-size:1.25rem;color:var(--gold)}.table-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:8px}.tcell{padding:14px;border-radius:12px;border:2px solid rgba(255,255,255,.14);background:#121212;font-size:1rem;cursor:pointer;min-height:96px}.tcell.free{border-color:#22c55e8c}.tcell.reserved{border-color:#f59e0ba6}.tcell.occupied{border-color:#a78bfab3}.tcell.selected{box-shadow:0 0 0 2px var(--gold)}.toast{position:fixed;left:50%;bottom:calc(110px + var(--safe-bottom));transform:translate(-50%);background:#111;border:2px solid var(--border);color:#fff;padding:14px 18px;border-radius:12px;opacity:0;pointer-events:none;transition:opacity .2s;z-index:80;max-width:92vw;font-size:1.05rem;font-weight:800}.toast.show{opacity:1}.empty{padding:28px 10px;text-align:center;color:var(--muted);font-size:1.1rem;font-weight:600}.msg-sheet{position:fixed;inset:0;z-index:90;display:flex;align-items:flex-end;justify-content:center}.msg-sheet.hidden{display:none!important}.msg-sheet-backdrop{position:absolute;inset:0;background:#000000b3}.msg-sheet-panel{position:relative;width:100%;max-width:560px;max-height:min(90vh,760px);background:#121212;border:2px solid var(--border);border-radius:18px 18px 0 0;padding:18px 16px calc(18px + var(--safe-bottom));display:flex;flex-direction:column;box-shadow:0 -8px 40px #00000073}.msg-sheet-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:12px}.msg-sheet-head h2{margin:0;font-size:1.25rem;color:var(--gold)}.msg-sheet-head .muted{margin:6px 0 0;font-size:.95rem}.msg-list{flex:1;overflow:auto;border:2px solid rgba(255,255,255,.12);border-radius:12px;background:#0d0d0d;padding:12px;margin-bottom:12px;min-height:140px;max-height:45vh}.msg-item{padding:12px 14px;border-radius:12px;margin-bottom:10px;font-size:1.05rem;line-height:1.5}.msg-item.msg-out{background:#d1c12e1f;border:1px solid rgba(209,193,46,.28)}.msg-item.msg-in{background:#38bdf81f;border:1px solid rgba(56,189,248,.3)}.msg-meta{font-size:.9rem;color:var(--muted);margin-bottom:6px;font-weight:800}.msg-text{white-space:pre-wrap;word-break:break-word}.msg-compose label{display:block;font-size:.95rem;font-weight:700;color:var(--muted);margin:0 0 6px}.msg-template-row{display:flex;gap:8px;align-items:center;margin-bottom:10px}.msg-template-row select{flex:1;min-width:0}.msg-template-row .btn-ghost{flex-shrink:0;white-space:nowrap}.msg-compose textarea{width:100%;padding:14px 16px;border-radius:12px;border:2px solid rgba(255,255,255,.22);background:#0d0d0d;color:var(--fg);min-height:88px;resize:vertical;font:inherit;margin-bottom:10px;font-size:1.05rem}.msg-compose.hidden{display:none}.intro-splash{position:fixed;inset:0;z-index:400;display:flex;align-items:center;justify-content:center;background:radial-gradient(ellipse at 50% 30%,#1a2230,#0b0f16 55%,#06080c);opacity:0;pointer-events:none;transition:opacity .4s ease}.intro-splash.play{opacity:1;pointer-events:auto}.intro-splash.outro{opacity:0;pointer-events:none!important}.intro-splash.hidden{display:none!important}.date-filter-bar{display:flex;align-items:center;justify-content:space-between;gap:10px;margin:0 0 10px;padding:10px 12px;border-radius:12px;background:#d1c12e1f;border:1px solid rgba(209,193,46,.35);font-weight:700;font-size:1rem}.intro-glow{position:absolute;width:min(70vw,320px);height:min(70vw,320px);border-radius:50%;background:radial-gradient(circle,rgba(209,193,46,.28),transparent 70%);filter:blur(8px);animation:introPulse 2.2s ease-in-out infinite}.intro-inner{position:relative;text-align:center;padding:24px;transform:translateY(12px);opacity:0}.intro-splash.play .intro-inner{animation:introRise .7s ease forwards .15s}.intro-logo{display:block;width:112px;height:112px;margin:0 auto 18px;border-radius:24px;object-fit:cover;background:#121820;border:2px solid rgba(209,193,46,.55);box-shadow:0 0 0 6px #d1c12e1f,0 16px 40px #00000080;animation:introLogoIn .8s cubic-bezier(.2,.8,.2,1) both .25s}.intro-title{font-size:1.55rem;font-weight:800;letter-spacing:.02em;color:var(--gold,#d1c12e);margin:0 0 6px}.intro-sub{font-size:1.05rem;color:var(--muted,#9aa3b2);font-weight:600;margin:0 0 22px}.intro-bar{width:140px;height:4px;margin:0 auto;border-radius:99px;background:#ffffff1f;overflow:hidden}.intro-bar span{display:block;height:100%;width:40%;border-radius:99px;background:var(--gold,#d1c12e);animation:introBar 2s ease-in-out infinite}@keyframes introRise{to{opacity:1;transform:none}}@keyframes introLogoIn{0%{opacity:0;transform:scale(.82)}to{opacity:1;transform:none}}@keyframes introPulse{0%,to{opacity:.55;transform:scale(1)}50%{opacity:.9;transform:scale(1.08)}}@keyframes introBar{0%{transform:translate(-120%)}50%{transform:translate(160%)}to{transform:translate(-120%)}}.welcome-overlay{position:fixed;inset:0;z-index:350;display:flex;align-items:center;justify-content:center;background:#06080cb8;opacity:0;pointer-events:none;transition:opacity .4s ease;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}.welcome-overlay.play{opacity:1;pointer-events:auto}.welcome-overlay.outro{opacity:0;pointer-events:none!important}.welcome-overlay.hidden{display:none!important}.welcome-card{text-align:center;padding:28px 32px;transform:scale(.92) translateY(10px);opacity:0}.welcome-overlay.play .welcome-card{animation:welcomeIn .55s ease forwards}.welcome-overlay.outro .welcome-card{animation:welcomeOut .4s ease forwards}.welcome-greet{margin:0;font-size:1.15rem;font-weight:700;color:var(--muted,#9aa3b2);letter-spacing:.04em}.welcome-name{margin:10px 0 0;font-size:2rem;font-weight:800;color:var(--gold,#d1c12e);line-height:1.15}@keyframes welcomeIn{to{opacity:1;transform:none}}@keyframes welcomeOut{to{opacity:0;transform:scale(1.04) translateY(-8px)}}.tour-overlay{position:fixed;inset:0;z-index:300;pointer-events:auto}.tour-overlay.hidden{display:none!important}.tour-dim{position:absolute;inset:0;background:#0000009e}.tour-spot{position:fixed;border:2px solid var(--gold,#d1c12e);border-radius:14px;box-shadow:0 0 0 9999px #0000008c,0 0 24px #d1c12e59;pointer-events:none;transition:top .25s,left .25s,width .25s,height .25s;z-index:1;background:transparent}.tour-card{position:absolute;left:16px;right:16px;bottom:calc(88px + var(--safe-bottom,0px));z-index:2;background:#151a22;border:2px solid rgba(209,193,46,.35);border-radius:16px;padding:18px 16px 16px;box-shadow:0 12px 40px #00000073;max-width:520px;margin:0 auto}.tour-step{margin:0 0 6px;font-size:.9rem;font-weight:800;color:var(--gold,#d1c12e);letter-spacing:.03em}.tour-card h3{margin:0 0 8px;font-size:1.25rem;color:var(--fg,#f2f4f8)}.tour-text{margin:0 0 16px;font-size:1.05rem;line-height:1.45;color:var(--muted,#9aa3b2);font-weight:600}.tour-actions{display:flex;justify-content:space-between;gap:12px;align-items:center}@media(prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important;scroll-behavior:auto!important}.intro-splash.play .intro-inner,.welcome-overlay.play .welcome-card{opacity:1;transform:none}}
