:root{--bg: #f2f4f6;--surface: #ffffff;--surface-2: #e8ecf0;--fg: #16202a;--muted: #5b6875;--line: #d3dae1;--accent: #1f5fd1;--accent-soft: #e3ecfc;--on-accent: #ffffff;--prelim: #8a5300;--prelim-bg: #fff3dc;--prelim-stripe: #f6deae;--ok: #17734a;--ok-bg: #dcf2e5;--danger: #b8322a;--danger-bg: #fbe5e3;--now: #e0452f;--shadow: 0 10px 30px rgb(22 32 42 / .16);--font-body: "Manrope", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--font-display: "Unbounded", "Manrope", system-ui, sans-serif;--row-h: 52px;--radius: 12px;--tabbar-h: 60px}@media(prefers-color-scheme:dark){:root:not([data-theme=light]){--bg: #0e1318;--surface: #171e26;--surface-2: #202934;--fg: #e6ecf2;--muted: #93a0ad;--line: #2b3641;--accent: #7aa5ff;--accent-soft: #1d2b46;--on-accent: #0b1220;--prelim: #f3bd5c;--prelim-bg: #2e2412;--prelim-stripe: #3d3018;--ok: #6fd69f;--ok-bg: #143223;--danger: #ff7a6e;--danger-bg: #3a1a18;--now: #ff6a55;--shadow: 0 10px 30px rgb(0 0 0 / .5);color-scheme:dark}}:root[data-theme=dark]{--bg: #0e1318;--surface: #171e26;--surface-2: #202934;--fg: #e6ecf2;--muted: #93a0ad;--line: #2b3641;--accent: #7aa5ff;--accent-soft: #1d2b46;--on-accent: #0b1220;--prelim: #f3bd5c;--prelim-bg: #2e2412;--prelim-stripe: #3d3018;--ok: #6fd69f;--ok-bg: #143223;--danger: #ff7a6e;--danger-bg: #3a1a18;--now: #ff6a55;--shadow: 0 10px 30px rgb(0 0 0 / .5);color-scheme:dark}*,*:before,*:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{margin:0;background:var(--bg);color:var(--fg);font-family:var(--font-body);font-size:15px;line-height:1.45;-webkit-tap-highlight-color:transparent}body:before{content:"";position:fixed;inset:0 0 auto;height:env(safe-area-inset-top,0px);z-index:30;background:var(--bg)}body.no-scroll{overflow:hidden}h1,h2,h3{margin:0;text-wrap:balance}p{margin:0}button,input,textarea{font:inherit;color:inherit}button{cursor:pointer}button:disabled{cursor:default}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}[hidden]{display:none!important}.muted{color:var(--muted)}.app{max-width:640px;margin:0 auto;padding-left:max(16px,env(safe-area-inset-left,0px));padding-right:max(16px,env(safe-area-inset-right,0px));padding-block:env(safe-area-inset-top,0px) calc(var(--tabbar-h) + env(safe-area-inset-bottom,0px) + 24px)}.topbar{display:flex;align-items:center;justify-content:space-between;padding-block:12px 4px}.brand{display:inline-flex;align-items:center;gap:8px;font-weight:700;font-size:13px;letter-spacing:.02em;color:var(--muted)}.brand-mark{width:18px;height:18px;border-radius:5px;background:linear-gradient(var(--on-accent),var(--on-accent)) 4px 6px / 10px 2px no-repeat,linear-gradient(var(--on-accent),var(--on-accent)) 4px 10px / 6px 2px no-repeat,var(--accent)}.demo-badge{font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:var(--prelim);background:var(--prelim-bg);padding:2px 8px;border-radius:999px}.boot{min-height:60vh;display:grid;place-items:center;gap:12px;text-align:center;padding:24px max(16px,env(safe-area-inset-right,0px)) 24px max(16px,env(safe-area-inset-left,0px))}.center-pad{display:grid;place-items:center;padding:48px 0}.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;min-height:44px;padding:0 16px;border-radius:10px;border:1px solid transparent;font-weight:650;font-size:15px;background:none;transition:background-color .15s,opacity .15s}.btn:disabled{opacity:.5}.btn-primary{background:var(--accent);color:var(--on-accent)}.btn-ghost{border-color:var(--line);background:var(--surface)}.btn-danger{background:var(--danger);color:var(--surface)}.btn-danger-ghost{color:var(--danger);border-color:var(--line);background:var(--surface)}.btn-block{width:100%}.icon-btn{display:grid;place-items:center;width:44px;height:44px;border-radius:12px;border:0;background:none;color:var(--fg)}.icon-btn:active{background:var(--surface-2)}.link-btn{border:0;background:none;padding:6px 0;color:var(--accent);font-weight:650;font-size:14px}.link{color:var(--accent);font-weight:600}.cal-head{position:sticky;top:env(safe-area-inset-top,0px);z-index:5;background:var(--bg);padding-block:4px 10px;margin-bottom:4px;border-bottom:1px solid var(--line)}.cal-title-row{display:grid;grid-template-columns:44px 1fr 44px;align-items:center}.cal-title{text-align:center;min-width:0}.cal-weekday{display:block;font-size:13px;color:var(--muted);font-weight:600}.cal-weekday:first-letter{text-transform:uppercase}.cal-title h1{font-family:var(--font-display);font-weight:600;font-size:22px;letter-spacing:-.01em;line-height:1.2}.week{display:grid;grid-template-columns:20px repeat(7,minmax(0,1fr)) 20px;gap:4px;margin-top:8px}.week-shift{border:0;background:none;color:var(--muted);font-size:22px;padding:0}.week-day{display:grid;justify-items:center;gap:2px;padding:6px 0 7px;border-radius:10px;border:1px solid transparent;background:none;min-width:0}.week-dow{font-size:11px;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);font-weight:600}.week-num{font-weight:700;font-size:16px;font-variant-numeric:tabular-nums}.week-load{width:60%;height:3px;border-radius:2px;background:var(--surface-2);overflow:hidden}.week-load>span{display:block;height:100%;background:var(--accent);border-radius:2px}.week-day.is-past .week-num{color:var(--muted)}.week-day.is-today .week-num{color:var(--accent)}.week-day.is-selected{background:var(--surface);border-color:var(--line)}.day-summary{display:flex;flex-wrap:wrap;align-items:center;gap:4px 12px;margin-top:8px;font-size:13px;color:var(--muted)}.day-summary b{color:var(--fg);font-variant-numeric:tabular-nums}.day-summary .link-btn{margin-left:auto}.summary-prelim{color:var(--prelim);font-weight:600}.grid{position:relative;display:grid;grid-template-columns:44px minmax(0,1fr);grid-template-rows:repeat(var(--rows),var(--row-h));column-gap:8px;padding-top:8px}.grid-time{grid-column:1;font-size:12px;color:var(--muted);font-variant-numeric:tabular-nums;padding-top:6px;text-align:right}.grid-time.is-hour{color:var(--fg);font-weight:650}.slot,.bk{grid-column:2;margin:2px 0;border-radius:10px;min-width:0;text-align:left}.slot-free{display:flex;align-items:center;gap:8px;padding:0 12px;border:1px dashed var(--line);background:none;color:var(--muted);font-size:14px}.slot-free:active,.slot-free:hover{border-color:var(--accent);color:var(--accent);background:var(--accent-soft)}.slot-plus{font-size:18px;font-weight:500;line-height:1}.slot-past{background:repeating-linear-gradient(-45deg,transparent 0 6px,var(--surface-2) 6px 7px);opacity:.6}.bk{display:flex;flex-direction:column;justify-content:flex-start;gap:1px;padding:7px 12px;border:1px solid transparent;overflow:hidden;position:relative;z-index:1}.bk-short{flex-direction:row;align-items:center;gap:8px;padding-block:0}.bk-confirmed{background:var(--ok-bg);border-color:color-mix(in srgb,var(--ok) 35%,transparent)}.bk-preliminary{background:repeating-linear-gradient(-45deg,var(--prelim-bg) 0 9px,var(--prelim-stripe) 9px 11px);border:1px dashed color-mix(in srgb,var(--prelim) 55%,transparent)}.bk-time{font-size:12px;font-weight:700;font-variant-numeric:tabular-nums;white-space:nowrap}.bk-confirmed .bk-time{color:var(--ok)}.bk-preliminary .bk-time{color:var(--prelim)}.bk-dur{font-weight:500}.bk-short .bk-dur{display:none}.bk-title{font-weight:700;font-size:14px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}.bk-sub{font-size:13px;color:var(--muted);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.bk-wait{color:var(--prelim)}.now-line{position:absolute;left:44px;right:0;margin-top:8px;height:2px;background:var(--now);z-index:2;pointer-events:none}.now-line:before{content:"";position:absolute;left:-4px;top:-3px;width:8px;height:8px;border-radius:50%;background:var(--now)}.chip{display:inline-flex;align-items:center;padding:2px 10px;border-radius:999px;font-size:12px;font-weight:700;white-space:nowrap}.chip-preliminary{color:var(--prelim);background:var(--prelim-bg)}.chip-confirmed{color:var(--ok);background:var(--ok-bg)}.chip-cancelled{color:var(--muted);background:var(--surface-2)}.plate{display:inline-flex;align-items:stretch;border:1.5px solid var(--fg);border-radius:4px;font-weight:700;font-size:13px;line-height:1;letter-spacing:.04em;font-variant-numeric:tabular-nums;background:var(--surface);white-space:nowrap}.plate-main{padding:3px 5px}.plate-region{padding:3px 4px;border-left:1.5px solid var(--fg);font-size:11px;display:grid;place-items:center}.page-head{padding-block:8px 12px;display:grid;gap:2px}.page-head h1{font-family:var(--font-display);font-weight:600;font-size:24px}.tabs{display:inline-flex;margin-top:10px;padding:3px;gap:2px;border-radius:10px;background:var(--surface-2);justify-self:start}.tab{border:0;background:none;padding:7px 14px;border-radius:8px;font-weight:650;font-size:14px;color:var(--muted)}.tab.is-on{background:var(--surface);color:var(--fg);box-shadow:0 1px 2px #00000014}.cards{display:grid;gap:12px}.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:14px;display:grid;gap:12px;min-width:0}.card-top{display:flex;justify-content:space-between;align-items:baseline;gap:8px;flex-wrap:wrap}.card-time{font-size:12px;color:var(--muted);font-variant-numeric:tabular-nums}.crm-when{font-size:13px;color:var(--muted)}.crm-when b{color:var(--fg)}.crm-when-none{color:var(--prelim);font-weight:600}.match{display:grid;gap:8px;padding:10px 12px;border-radius:10px;background:var(--ok-bg)}.match-title{font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--ok)}.match-none{background:var(--surface-2);gap:2px}.match-none .match-title{color:var(--muted)}.match-none .muted{font-size:14px}.match-row{display:flex;align-items:center;justify-content:space-between;gap:10px}.match-info{display:grid;min-width:0;font-variant-numeric:tabular-nums}.match-info .muted{font-size:13px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.card-actions{display:flex;flex-wrap:wrap;gap:8px}.card-actions>.btn{flex:1 1 auto}.card-done{gap:10px}.empty{display:grid;gap:4px;justify-items:center;text-align:center;padding:40px 16px;color:var(--muted)}.empty b{color:var(--fg)}.client{display:grid;gap:6px;min-width:0}.client-line{display:flex;flex-wrap:wrap;align-items:center;gap:4px 10px}.client-name{font-weight:750;font-size:16px}.client-phone{color:var(--accent);font-weight:600;text-decoration:none;font-variant-numeric:tabular-nums;white-space:nowrap}.client-car{font-weight:600}.client-meta{font-size:12px;color:var(--muted);font-variant-numeric:tabular-nums}.client-reason{font-size:14px}.client-summary{font-size:14px;color:var(--muted)}.demo{display:grid;gap:10px;padding:12px;margin-bottom:12px;border-radius:var(--radius);border:1px dashed color-mix(in srgb,var(--prelim) 50%,transparent);background:var(--prelim-bg)}.demo-text{display:grid;gap:2px;font-size:13px}.demo-text b{color:var(--prelim);font-size:14px}.demo-actions{display:flex;flex-wrap:wrap;gap:8px}.demo-actions .btn{min-height:38px;font-size:14px;padding:0 12px}.sheet-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:40;background:#0a0f1473;display:flex;align-items:flex-end;justify-content:center;animation:fade .15s ease-out}.sheet{width:100%;max-width:640px;max-height:calc(100% - env(safe-area-inset-top,0px) - 24px);display:flex;flex-direction:column;background:var(--surface);border-radius:18px 18px 0 0;box-shadow:var(--shadow);animation:rise .2s ease-out;outline:none}.sheet-head{display:flex;align-items:center;justify-content:space-between;padding:10px max(8px,env(safe-area-inset-right,0px)) 4px max(16px,env(safe-area-inset-left,0px))}.sheet-head h2{font-size:17px;font-weight:750}.sheet-body{overflow-y:auto;overscroll-behavior:contain;padding:4px max(16px,env(safe-area-inset-right,0px)) 16px max(16px,env(safe-area-inset-left,0px))}.sheet-body:last-child{padding-bottom:calc(16px + env(safe-area-inset-bottom,0px))}.sheet-foot{padding:12px max(16px,env(safe-area-inset-right,0px)) calc(12px + env(safe-area-inset-bottom,0px)) max(16px,env(safe-area-inset-left,0px));border-top:1px solid var(--line)}@keyframes rise{0%{transform:translateY(24px);opacity:.6}}@keyframes fade{0%{opacity:0}}.stack,.form{display:grid;gap:16px}.when{display:flex;flex-wrap:wrap;align-items:center;gap:4px 12px}.when-time{font-family:var(--font-display);font-size:24px;font-weight:600;font-variant-numeric:tabular-nums;width:100%}.when-date{color:var(--muted);font-weight:600}.field{display:grid;gap:6px;border:0;margin:0;padding:0;min-width:0}.field legend,.label,.eyebrow{font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);padding:0;margin-bottom:6px}.label{margin-bottom:0}.hint{font-size:13px;color:var(--muted)}.hint.center{text-align:center;margin-top:-4px}input,textarea{width:100%;border:1px solid var(--line);background:var(--bg);border-radius:10px;padding:10px 12px;font-size:16px;resize:vertical}input:focus,textarea:focus{outline:2px solid var(--accent);outline-offset:-1px}.seg-wrap{display:flex;flex-wrap:wrap;gap:6px}.seg{min-height:40px;padding:0 14px;border-radius:10px;border:1px solid var(--line);background:var(--surface);font-weight:650;font-size:14px}.seg-on{background:var(--accent);border-color:var(--accent);color:var(--on-accent)}.panel{display:grid;gap:8px;padding:12px;border-radius:var(--radius);background:var(--bg)}.panel .eyebrow{margin:0}.panel-wait{background:var(--prelim-bg);font-size:14px}.panel-wait .btn{justify-self:start;min-height:38px}.actions{display:grid;gap:10px;padding-top:4px}.confirm-row{display:flex;flex-wrap:wrap;align-items:center;gap:8px}.confirm-q{flex:1 1 100%;font-weight:650;font-size:14px}.confirm-row .btn{flex:1 1 0}.card-actions .confirm-row{flex:1 1 100%}.pick-req{display:grid;gap:6px;padding:12px;border-radius:var(--radius);background:var(--bg);margin-bottom:12px}.pick-list{list-style:none;margin:0;padding:0;display:grid;gap:6px}.pick{width:100%;display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:12px;padding:10px 12px;border-radius:10px;border:1px solid var(--line);background:var(--surface);text-align:left}.pick.is-on{border-color:var(--accent);background:var(--accent-soft);outline:1px solid var(--accent)}.pick-when{display:grid;font-variant-numeric:tabular-nums;font-size:13px}.pick-when span{color:var(--muted)}.pick-note{font-size:14px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.pick-dur{font-size:12px;color:var(--muted);white-space:nowrap}.tabbar{position:fixed;left:0;right:0;bottom:0;z-index:20;display:grid;grid-template-columns:1fr 1fr;background:var(--surface);border-top:1px solid var(--line);padding:4px max(16px,env(safe-area-inset-right,0px)) env(safe-area-inset-bottom,0px) max(16px,env(safe-area-inset-left,0px))}.tb{display:grid;justify-items:center;gap:2px;height:var(--tabbar-h);padding-top:6px;border:0;background:none;color:var(--muted);font-size:12px;font-weight:650}.tb.is-on{color:var(--accent)}.tb-icon{position:relative;display:grid}.badge{position:absolute;top:-5px;right:-12px;min-width:18px;height:18px;padding:0 5px;border-radius:9px;background:var(--now);color:#fff;font-size:11px;font-weight:750;line-height:18px;text-align:center;font-variant-numeric:tabular-nums}.toasts{position:fixed;left:0;right:0;bottom:calc(var(--tabbar-h) + env(safe-area-inset-bottom,0px) + 16px);z-index:50;display:grid;justify-items:center;gap:8px;padding:0 max(16px,env(safe-area-inset-right,0px)) 0 max(16px,env(safe-area-inset-left,0px));pointer-events:none}.toast{max-width:520px;padding:10px 16px;border-radius:12px;background:var(--fg);color:var(--bg);font-weight:600;font-size:14px;box-shadow:var(--shadow);animation:rise .2s ease-out}.toast-error{background:var(--danger);color:#fff}.banner{padding:10px 12px;border-radius:10px;margin:8px 0;font-size:14px}.banner-error{background:var(--danger-bg);color:var(--danger)}.form-error{color:var(--danger);font-size:14px;font-weight:600}.spinner{width:26px;height:26px;border-radius:50%;border:3px solid var(--surface-2);border-top-color:var(--accent);animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.login{min-height:100vh;display:grid;place-items:center;padding:24px max(16px,env(safe-area-inset-right,0px)) 24px max(16px,env(safe-area-inset-left,0px))}.login-card{width:100%;max-width:360px;background:var(--surface);border:1px solid var(--line);border-radius:16px;padding:24px}.login-card h1{font-family:var(--font-display);font-weight:600;font-size:26px}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important}}
