:root{--sans: "Public Sans", -apple-system, "Segoe UI", sans-serif;--mono: "JetBrains Mono", ui-monospace, monospace;--display: "Big Shoulders Display", "Public Sans", sans-serif;--ease-out: cubic-bezier(.23, 1, .32, 1);--ease-out-strong: cubic-bezier(.22, .61, .36, 1);--ease-snappy: cubic-bezier(.4, 0, .2, 1)}:root,[data-theme=light]{--bg: #f3f4f6;--bg-2: #ffffff;--bg-3: #e9ebf0;--ink: #1a1d29;--ink-2: #2d3142;--ink-dim: #565c6b;--ink-faint: #676d7c;--line: #dfe2e8;--line-2: #c9ced8;--accent: #4338ca;--accent-2: #6366f1;--accent-light: #e0e7ff;--warn: #d97706;--warn-bg: #fef3c7;--err: #dc2626;--err-bg: #fee2e2;--ok: #059669;--ok-bg: #d1fae5;--overlay: rgba(26, 29, 41, .55)}[data-theme=dark]{--bg: #0f1117;--bg-2: #171a23;--bg-3: #1e222e;--ink: #e8eaed;--ink-2: #cbd0db;--ink-dim: #9ba2b2;--ink-faint: #868d9d;--line: #272b38;--line-2: #343a4a;--accent: #a5b4fc;--accent-2: #818cf8;--accent-light: rgba(165, 180, 252, .15);--warn: #fbbf24;--warn-bg: rgba(251, 191, 36, .12);--err: #f87171;--err-bg: rgba(248, 113, 113, .12);--ok: #34d399;--ok-bg: rgba(52, 211, 153, .12);--overlay: rgba(0, 0, 0, .7)}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0;-webkit-tap-highlight-color:transparent}html,body{height:100%;overflow:hidden}body{font-family:var(--sans);background:var(--bg);color:var(--ink);font-size:14px;line-height:1.4;-webkit-font-smoothing:antialiased;background-image:radial-gradient(circle at 10% 0%,color-mix(in srgb,var(--accent) 10%,transparent) 0%,transparent 50%),radial-gradient(circle at 100% 100%,color-mix(in srgb,var(--warn) 8%,transparent) 0%,transparent 50%);display:flex;flex-direction:column;height:100vh;height:100dvh}@keyframes pulse{0%,to{opacity:1}50%{opacity:.4}}@keyframes blockIn{0%{opacity:0;transform:translateY(6px);filter:blur(2px)}to{opacity:1;transform:translateY(0);filter:blur(0)}}@keyframes btnPulse{0%{box-shadow:0 0 color-mix(in srgb,var(--accent) 50%,transparent)}to{box-shadow:0 0 0 12px transparent}}@keyframes copySuccess{0%{transform:scale(1);background:var(--accent)}30%{transform:scale(.96);background:var(--ok)}70%{transform:scale(1.02);background:var(--ok)}to{transform:scale(1);background:var(--accent)}}@keyframes checkDraw{0%{stroke-dashoffset:20}to{stroke-dashoffset:0}}@keyframes userCardPulse{0%{background:var(--accent-light)}60%{background:color-mix(in srgb,var(--accent) 22%,var(--bg-2))}to{background:var(--accent-light)}}@keyframes statusDotPop{0%{transform:scale(1)}50%{transform:scale(1.6)}to{transform:scale(1)}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideUp{0%{transform:translateY(100%)}to{transform:translateY(0)}}@keyframes ringFlash{0%{box-shadow:0 0 0 0 var(--ok)}50%{box-shadow:0 0 0 4px color-mix(in srgb,var(--ok) 40%,transparent)}to{box-shadow:0 0 0 0 transparent}}@keyframes timerTick{0%,to{opacity:1}50%{opacity:.55}}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}button:focus:not(:focus-visible){outline:none}.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}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--line-2);border-radius:3px}@media(min-width:720px){body{max-width:480px;margin:0 auto;border-left:1px solid var(--line);border-right:1px solid var(--line)}.modal-overlay{align-items:center}.modal{border-radius:20px;max-width:460px}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}.app-header{padding:12px 16px;display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid var(--line);background:color-mix(in srgb,var(--bg) 85%,transparent);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);flex-shrink:0}.brand{display:flex;align-items:baseline;gap:8px}.brand-title{font-family:var(--display);font-weight:700;font-size:22px;letter-spacing:.01em;text-transform:uppercase;color:var(--ink)}.brand-dot{width:6px;height:6px;background:var(--accent);border-radius:50%;margin-right:2px}.header-right{display:flex;align-items:center;gap:10px}.header-date{font-family:var(--mono);font-size:12px;color:var(--ink-dim);letter-spacing:.08em;font-weight:600;text-align:right;line-height:1.2}.header-date .d{color:var(--ink)}.header-date .t{color:var(--ink-dim);font-size:12px}.icon-btn{width:36px;height:36px;border:1px solid var(--line);background:var(--bg-2);border-radius:10px;display:flex;align-items:center;justify-content:center;cursor:pointer;color:var(--ink-2);transition:transform .15s var(--ease-snappy),border-color .15s,color .15s,background .15s;flex-shrink:0}.icon-btn:active{transform:scale(.94);border-color:var(--accent);color:var(--accent);background:var(--accent-light)}.icon-btn svg{width:18px;height:18px;transition:transform .2s}.icon-btn:active svg{transform:rotate(30deg)}main{flex:1;overflow:hidden;display:flex;flex-direction:column;min-height:0;position:relative}.page{display:none;flex-direction:column;flex:1;padding:12px;gap:10px;min-height:0;overflow:hidden;animation:fadeIn .18s ease}.page.active{display:flex}.tab-bar{display:flex;border-top:1px solid var(--line);background:color-mix(in srgb,var(--bg) 90%,transparent);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);flex-shrink:0;padding-bottom:env(safe-area-inset-bottom,0)}.tab-item{flex:1;background:none;border:none;padding:9px 4px 8px;cursor:pointer;color:var(--ink-faint);display:flex;flex-direction:column;align-items:center;gap:2px;position:relative;transition:color .15s}.tab-item.active{color:var(--accent)}.tab-item:active{transform:scale(.96)}.tab-item svg{width:20px;height:20px;transition:transform .18s var(--ease-out-strong)}.tab-item.active svg{transform:scale(1.1)}.tab-item .tab-label{font-family:var(--sans);font-size:12px;font-weight:600;letter-spacing:.02em}.tab-item .tab-badge{position:absolute;top:6px;right:calc(50% - 18px);background:var(--accent);color:var(--bg);font-family:var(--mono);font-size:12px;font-weight:700;border-radius:999px;padding:1px 5px;min-width:16px;text-align:center;line-height:1.2}.tab-item .tab-badge[hidden]{display:none}.tab-item .tab-badge.running{background:var(--accent)}.tab-item .tab-badge.pending{background:var(--warn)}.tab-item .tab-badge.complete{background:var(--ok)}.tab-item[hidden]{display:none}.active-user{background:var(--bg-2);border:1px solid var(--line);border-radius:12px;padding:10px 14px;display:flex;justify-content:space-between;align-items:center;flex-shrink:0;cursor:pointer;transition:transform .15s var(--ease-snappy),background .15s}.active-user:active{transform:scale(.995);background:var(--bg-3)}.pulse{animation:userCardPulse .5s var(--ease-snappy)}.au-left{display:flex;flex-direction:column;gap:2px;min-width:0;flex:1}.au-label{font-family:var(--mono);font-size:12px;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-faint);font-weight:600}.au-name{font-family:var(--display);font-weight:700;font-size:18px;color:var(--ink);line-height:1.1}.au-name.empty{color:var(--ink-faint);font-size:15px}.au-chevron{color:var(--ink-faint);transition:transform .15s}.active-user:active .au-chevron{transform:translate(3px)}button.active-user{width:100%;text-align:left;font:inherit;color:inherit}.input-wrap{position:relative;flex-shrink:0}textarea.raw-input{font-family:var(--mono);font-size:12px;line-height:1.5;background:var(--bg-2);border:1px solid var(--line);color:var(--ink);padding:12px 14px;width:100%;height:100px;border-radius:12px;resize:none;outline:none;transition:border-color .2s,box-shadow .2s}textarea.raw-input:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-light)}textarea.raw-input::placeholder{color:var(--ink-faint);font-style:italic}.raw-clear{position:absolute;top:8px;right:8px;width:24px;height:24px;border-radius:6px;background:var(--bg-3);border:none;color:var(--ink-dim);cursor:pointer;font-size:14px;display:flex;align-items:center;justify-content:center;transition:transform .15s var(--ease-snappy)}.raw-clear:active{transform:scale(.9)}input[type=text],select{font-family:var(--mono);font-size:13px;background:var(--bg-2);border:1px solid var(--line);color:var(--ink);padding:10px 12px;width:100%;outline:none;border-radius:10px;transition:border-color .2s,box-shadow .2s}input[type=text]:focus,select:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-light)}select{-webkit-appearance:none;-moz-appearance:none;appearance:none;cursor:pointer;background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='10' height='6' viewBox='0 0 10 6'><path fill='%236b7080' d='M0 0l5 6 5-6z'/></svg>");background-repeat:no-repeat;background-position:right 12px center;padding-right:32px}.btn-primary{flex:1;background:var(--accent);color:var(--bg);border:none;padding:13px 20px;border-radius:12px;font-family:var(--sans);font-size:14px;font-weight:700;letter-spacing:.02em;cursor:pointer;transition:transform .1s,opacity .15s;display:flex;align-items:center;justify-content:center;gap:8px;position:relative}.btn-primary:active{transform:scale(.97);opacity:.92}.btn-primary.firing{animation:btnPulse .5s ease-out}.btn-primary svg{width:16px;height:16px;transition:transform .2s}.btn-primary:active svg{transform:translate(3px)}.btn-primary.wide{flex:2}.btn-copy{flex:1;background:var(--accent);color:var(--bg);border:none;padding:10px;border-radius:8px;font-family:var(--sans);font-size:12px;font-weight:700;cursor:pointer;transition:transform .1s,opacity .15s;display:flex;align-items:center;justify-content:center;gap:6px}.btn-copy:active{transform:scale(.97);opacity:.92}.btn-copy.success{animation:copySuccess .7s var(--ease-snappy)}.btn-copy svg{width:13px;height:13px}.btn-copy .icon-copy{display:inline-block}.btn-copy .icon-check,.btn-copy.success .icon-copy{display:none}.btn-copy.success .icon-check{display:inline-block;stroke-dasharray:20;animation:checkDraw .3s forwards}.btn-copy:disabled{background:var(--line-2);color:var(--ink-faint);cursor:not-allowed;animation:none}.btn-copy .label-copy{display:inline}.btn-copy .label-done,.btn-copy.success .label-copy{display:none}.btn-copy.success .label-done{display:inline}.btn-clear{background:var(--bg-2);border:1px solid var(--line);color:var(--ink-dim);padding:10px 14px;border-radius:8px;font-family:var(--mono);font-size:12px;letter-spacing:.08em;text-transform:uppercase;cursor:pointer;font-weight:600;transition:transform .15s var(--ease-snappy),background .15s}.btn-clear:active{transform:scale(.97);background:var(--bg-3)}.m-btn{padding:10px 14px;border-radius:10px;font-family:var(--sans);font-size:12px;font-weight:600;cursor:pointer;border:1px solid var(--line);background:var(--bg-2);color:var(--ink);transition:transform .1s,opacity .15s}.m-btn:active{transform:scale(.97);opacity:.92}.m-btn.primary{background:var(--accent);color:var(--bg);border-color:var(--accent);font-weight:700}.m-btn.danger{color:var(--err)}.m-btn.grow{flex:1}.msg{font-family:var(--sans);font-size:12px;padding:8px 12px;margin-bottom:8px;border-radius:8px;line-height:1.4;font-weight:500;animation:blockIn .25s var(--ease-out-strong)}.msg.warn{background:var(--warn-bg);color:var(--warn);border-left:3px solid var(--warn)}.msg.err{background:var(--err-bg);color:var(--err);border-left:3px solid var(--err)}.msg.info{background:var(--accent-light);color:var(--accent);border-left:3px solid var(--accent)}.messages{flex-shrink:0}.messages:empty{display:none}.output-wrap{background:var(--bg-2);border:1px solid var(--line);border-radius:12px;flex:1;display:flex;flex-direction:column;overflow:hidden;min-height:0}.output-bar{padding:9px 12px;border-bottom:1px solid var(--line);display:flex;justify-content:space-between;align-items:center;flex-shrink:0;background:var(--bg-3)}.status{display:flex;align-items:center;gap:7px;font-family:var(--mono);font-size:12px;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-dim);font-weight:600}.status-dot{width:7px;height:7px;border-radius:50%;background:var(--ink-faint);transition:background .3s}.status-dot.ok{background:var(--ok)}.status-dot.warn{background:var(--warn)}.status-dot.err{background:var(--err)}.status-dot.pop{animation:statusDotPop .4s var(--ease-out-strong)}.status-meta{font-family:var(--mono);font-size:12px;color:var(--ink-faint);font-variant-numeric:tabular-nums}.output-body{padding:12px 14px;font-family:var(--mono);font-size:12px;line-height:1.6;overflow-y:auto;flex:1;color:var(--ink-2);word-break:break-word}.output-body.empty{display:flex;align-items:center;justify-content:center;color:var(--ink-faint);font-family:var(--display);font-weight:700;font-size:16px;text-align:center;padding:20px}.output-footer{padding:8px;border-top:1px solid var(--line);display:flex;gap:6px;background:var(--bg-3);flex-shrink:0}button.dispatch-block{display:block;width:calc(100% + 16px);text-align:left;font:inherit;color:inherit;background:transparent;border:1px solid transparent;border-radius:8px;padding:6px 8px;margin-left:-8px;white-space:pre-wrap;margin-bottom:14px;opacity:0;animation:blockIn .35s var(--ease-out-strong) forwards;cursor:copy;transition:background .15s,border-color .15s}button.dispatch-block:last-child{margin-bottom:0}button.dispatch-block:hover{background:var(--bg-3);border-color:var(--line)}button.dispatch-block.copied{border-color:var(--ok);background:var(--ok-bg)}.gen-row{display:flex;gap:8px;flex-shrink:0}.date-picker{display:flex;flex-direction:column;justify-content:center;background:var(--bg-2);border:1px solid var(--line);border-radius:12px;padding:6px 8px;min-width:132px}.date-picker-shown{font-family:var(--mono);font-size:12px;font-weight:700;color:var(--accent);letter-spacing:.06em}.date-seg{display:flex;gap:1px;padding:2px;background:var(--bg-3);border-radius:6px}.date-seg button{flex:1;border:none;background:transparent;color:var(--ink-dim);padding:5px 4px;border-radius:4px;font-family:var(--sans);font-size:12px;font-weight:700;letter-spacing:.02em;cursor:pointer;transition:transform .15s var(--ease-snappy),background .15s,color .15s,box-shadow .15s}.date-seg button:active{transform:scale(.94)}.date-seg button.active{background:var(--bg-2);color:var(--accent);box-shadow:0 1px 2px #0000000f}.date-label{margin-bottom:4px}.time-override{display:flex;flex-direction:column;justify-content:center;background:var(--bg-2);border:1px solid var(--line);border-radius:12px;padding:6px 10px;min-width:78px;cursor:pointer;transition:border-color .2s,box-shadow .2s}.time-override:focus-within{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-light)}.time-override-label{font-family:var(--mono);font-size:12px;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-faint);font-weight:600;display:flex;justify-content:space-between;align-items:center;margin-bottom:1px}.time-override-label label{cursor:pointer}.time-override input{border:none;background:transparent;color:var(--ink);font-family:var(--mono);font-size:14px;font-weight:600;padding:0;outline:none;width:100%;letter-spacing:.01em}.time-override input::placeholder{color:var(--accent);font-weight:600;opacity:.7}.time-reset{background:none;border:none;color:var(--ink-faint);font-size:12px;cursor:pointer;padding:0;display:none;font-family:var(--mono);font-weight:600;letter-spacing:.08em}.time-reset.show{display:inline}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:var(--overlay);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:100;display:none;align-items:flex-end;justify-content:center;animation:fadeIn .18s ease}.modal-overlay.show{display:flex}.modal{background:var(--bg);width:100%;max-width:500px;max-height:92vh;max-height:92dvh;border-radius:20px 20px 0 0;display:flex;flex-direction:column;animation:slideUp .28s var(--ease-out-strong);overflow:hidden}.modal-header{padding:16px 18px;display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid var(--line);flex-shrink:0}.modal-title{font-family:var(--display);font-weight:700;font-size:22px;color:var(--ink)}.modal-close{width:32px;height:32px;border:none;background:var(--bg-3);border-radius:8px;font-size:18px;color:var(--ink-dim);cursor:pointer;transition:transform .15s var(--ease-snappy),background .15s}.modal-close:active{background:var(--line);transform:scale(.92)}.modal-body{padding:16px 18px;overflow-y:auto;flex:1}.modal-tabs{display:flex;gap:4px;padding:4px;background:var(--bg-3);border-radius:10px;margin-bottom:16px;position:relative}.tab{flex:1;padding:8px;border:none;background:transparent;font-family:var(--sans);font-size:12px;font-weight:600;color:var(--ink-dim);cursor:pointer;border-radius:7px;transition:color .18s;position:relative;z-index:1}.tab.active{color:var(--accent)}.tab-indicator{position:absolute;top:4px;bottom:4px;background:var(--bg-2);border-radius:7px;box-shadow:0 1px 3px #0000000d;transition:transform .25s var(--ease-out-strong),width .25s var(--ease-out-strong);z-index:0}.tab-panel{display:none}.tab-panel.active{display:block;animation:fadeIn .2s ease}.field-label{font-family:var(--mono);font-size:12px;letter-spacing:.08em;color:var(--ink-dim);text-transform:uppercase;margin-bottom:6px;display:block;font-weight:600}.field-grid{display:grid;grid-template-columns:1fr 110px;gap:8px}.field-spaced{margin-top:12px}.modal-btn-row{display:flex;gap:8px;margin-top:10px}.hint{font-family:var(--sans);font-size:12px;color:var(--ink-dim);line-height:1.4;margin-bottom:10px}.hint-tight{margin-top:6px}.saved-header{font-family:var(--mono);font-size:12px;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-dim);margin:20px 0 10px;font-weight:600;display:flex;justify-content:space-between;align-items:center}.saved-count{color:var(--ink-dim);font-weight:400}.empty-state{text-align:center;padding:20px;font-family:var(--display);font-weight:700;color:var(--ink-faint);font-size:14px}.user-card{background:var(--bg-2);border:1px solid var(--line);border-radius:10px;padding:10px 12px;margin-bottom:6px;display:flex;align-items:center;gap:10px;transition:border-color .18s,background .18s}.user-card.active{border-color:var(--accent);background:var(--accent-light)}button.user-card-info{flex:1;min-width:0;cursor:pointer;background:none;border:0;text-align:left;font:inherit;color:inherit;padding:0;display:block}.user-card-info .user-card-name{display:block;font-family:var(--sans);font-size:13px;font-weight:600;color:var(--ink)}.user-card-aliases{display:flex;flex-wrap:wrap;gap:4px;margin-top:4px}.alias-pill{font-family:var(--mono);font-size:12px;padding:2px 7px;background:var(--bg-3);color:var(--ink-dim);border-radius:999px;font-weight:500;letter-spacing:.02em}.user-card.active .alias-pill{background:color-mix(in srgb,var(--accent) 18%,transparent);color:var(--accent)}.user-card-edit{border:1px solid var(--line);background:var(--bg-2);color:var(--ink-dim);font-family:var(--sans);font-size:12px;font-weight:600;border-radius:6px;padding:4px 8px;cursor:pointer;transition:color .15s,border-color .15s}.user-card-edit:hover{color:var(--accent);border-color:var(--accent)}.user-card-del{width:28px;height:28px;border:none;background:transparent;color:var(--ink-faint);cursor:pointer;border-radius:6px;font-size:16px;transition:transform .15s var(--ease-snappy),background .15s,color .15s}.user-card-del:active{background:var(--err-bg);color:var(--err);transform:scale(.88)}.blocklist{display:flex;flex-wrap:wrap;gap:5px;margin-bottom:10px;max-height:200px;overflow-y:auto;padding:4px}.bl-chip{font-family:var(--mono);font-size:12px;padding:5px 9px;border:1px solid var(--line);background:var(--bg-2);color:var(--ink-2);display:inline-flex;align-items:center;gap:6px;border-radius:999px;font-weight:500}.bl-chip .x{background:none;border:0;font:inherit;color:var(--ink-faint);cursor:pointer;padding:0 2px;font-size:12px}.bl-chip .x:active{color:var(--err)}.add-row{display:flex;gap:6px}.add-row input{flex:1}.pref-row{display:flex;justify-content:space-between;align-items:center;padding:14px 0;border-top:1px solid var(--line);gap:12px}.pref-row:first-child{border-top:none;padding-top:4px}.pref-left{flex:1;min-width:0}.pref-label{font-family:var(--sans);font-size:13px;font-weight:500;color:var(--ink)}.pref-sub{font-family:var(--sans);font-size:12px;color:var(--ink-dim);margin-top:2px}.theme-seg{display:flex;gap:2px;padding:3px;background:var(--bg-3);border-radius:8px}.theme-seg button{border:none;background:transparent;color:var(--ink-dim);padding:6px 10px;border-radius:6px;font-family:var(--sans);font-size:12px;font-weight:600;cursor:pointer;transition:background .18s,color .18s,box-shadow .18s}.theme-seg button.active{background:var(--bg-2);color:var(--accent);box-shadow:0 1px 2px #00000014}.install-banner{background:var(--accent-light);border:1px solid var(--accent);border-radius:10px;padding:10px 12px;margin-bottom:14px;display:none;align-items:center;gap:10px}.install-banner.show{display:flex;animation:blockIn .3s}.install-banner-text{flex:1;font-size:12px;color:var(--accent);font-weight:500}.install-banner button{background:var(--accent);color:var(--bg);border:none;padding:6px 12px;border-radius:6px;font-size:12px;font-weight:700;cursor:pointer;transition:transform .1s}.install-banner button:active{transform:scale(.95)}.toast{position:fixed;bottom:80px;left:50%;transform:translate(-50%,20px);background:var(--ink);color:var(--bg);font-family:var(--sans);font-size:13px;font-weight:600;padding:11px 18px;border-radius:999px;opacity:0;pointer-events:none;transition:opacity .25s var(--ease-out-strong),transform .25s var(--ease-out-strong);z-index:200;display:flex;align-items:center;gap:6px}.toast.show{opacity:1;transform:translate(-50%)}.toast svg{width:14px;height:14px}.confirm-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:var(--overlay);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:150;display:none;align-items:center;justify-content:center;padding:20px;animation:fadeIn .15s ease}.confirm-overlay.show{display:flex}.confirm-box{background:var(--bg);border-radius:16px;padding:20px;max-width:380px;width:100%;animation:blockIn .2s var(--ease-out-strong)}.confirm-title{font-family:var(--display);font-weight:700;font-size:20px;color:var(--ink);margin-bottom:8px}.confirm-msg{font-family:var(--sans);font-size:13px;color:var(--ink-2);line-height:1.5;margin-bottom:16px}.confirm-actions{display:flex;gap:8px}.confirm-actions .m-btn{flex:1}.update-banner{position:fixed;top:0;left:0;right:0;z-index:250;background:var(--accent);color:var(--bg);display:flex;align-items:center;gap:10px;padding:10px 14px;padding-top:calc(10px + env(safe-area-inset-top,0));transform:translateY(-100%);transition:transform .35s var(--ease-out-strong);box-shadow:0 6px 20px #0000002e;font-family:var(--sans);font-size:13px;font-weight:600}.update-banner.show{transform:translateY(0)}.update-banner svg{width:18px;height:18px;flex-shrink:0}.update-banner-text{flex:1}.update-banner-btn{background:var(--bg);color:var(--accent);border:none;padding:7px 14px;border-radius:8px;font-family:var(--sans);font-size:12px;font-weight:700;cursor:pointer;letter-spacing:.02em;transition:transform .1s}.update-banner-btn:active{transform:scale(.96)}.tracker-summary{display:flex;gap:8px;flex-shrink:0}.summary-card{flex:1;background:var(--bg-2);border:1px solid var(--line);border-radius:12px;padding:9px 12px}.summary-card .lbl{font-family:var(--mono);font-size:12px;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-faint);font-weight:600}.summary-card .val{font-family:var(--display);font-weight:700;font-size:18px;color:var(--ink);line-height:1.1;margin-top:2px}.summary-card .val .of{color:var(--ink-faint);font-size:14px}.tracker-list{flex:1;overflow-y:auto;display:flex;flex-direction:column;gap:8px;padding-right:2px;min-height:0}.tracker-list:empty:before{content:"— no vehicles yet —";display:flex;align-items:center;justify-content:center;flex:1;color:var(--ink-faint);font-family:var(--display);font-weight:700;font-size:16px}.section-label{font-family:var(--mono);font-size:12px;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-dim);font-weight:700;padding:6px 4px 2px;display:flex;align-items:center;gap:8px}.section-label:after{content:"";flex:1;height:1px;background:var(--line)}.veh-card{background:var(--bg-2);border:1px solid var(--line);border-radius:12px;padding:10px 12px;display:flex;flex-direction:column;gap:8px;transition:background .2s var(--ease-out-strong),border-color .2s var(--ease-out-strong)}.veh-card.done{background:color-mix(in srgb,var(--ok) 8%,var(--bg-2));border-color:color-mix(in srgb,var(--ok) 30%,var(--line))}.veh-card.running{background:color-mix(in srgb,var(--accent) 6%,var(--bg-2));border-color:color-mix(in srgb,var(--accent) 35%,var(--line))}.veh-card.complete-flash{animation:ringFlash .8s ease-out}.veh-row{display:flex;align-items:center;gap:10px}.veh-status-toggle{width:30px;height:30px;border-radius:8px;border:1.5px solid var(--line-2);background:var(--bg);color:var(--ink-dim);cursor:pointer;display:flex;align-items:center;justify-content:center;flex-shrink:0;transition:transform .18s var(--ease-out-strong),background .18s,border-color .18s,color .18s}.veh-status-toggle:active{transform:scale(.88)}.veh-status-toggle.done{background:var(--ok);border-color:var(--ok);color:#fff}.veh-status-toggle svg{width:14px;height:14px}.veh-status-toggle .icon-x{display:block}.veh-status-toggle .icon-check,.veh-status-toggle.done .icon-x{display:none}.veh-status-toggle.done .icon-check{display:block}.veh-mid{font-family:var(--mono);font-size:16px;font-weight:700;color:var(--ink);min-width:60px;letter-spacing:.02em}.veh-meta{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}.veh-cat{font-family:var(--sans);font-size:12px;color:var(--ink-dim);font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.veh-timer{display:flex;align-items:center;gap:6px;background:var(--bg);border:1px solid var(--line);border-radius:10px;padding:4px 8px;font-family:var(--mono)}.timer-display{font-size:14px;font-weight:700;color:var(--ink);font-variant-numeric:tabular-nums;min-width:44px;text-align:center}.veh-card.running .timer-display{animation:timerTick 1s ease-in-out infinite;color:var(--accent)}.veh-card.done .timer-display{color:var(--ok)}.timer-btn{width:28px;height:28px;border:none;background:var(--accent);color:var(--bg);border-radius:8px;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:transform .1s}.timer-btn:active{transform:scale(.88)}.timer-btn.pause{background:var(--warn)}.timer-btn.reset{background:transparent;color:var(--ink-faint);border:1px solid var(--line)}.timer-btn svg{width:12px;height:12px}.veh-note-row{display:none;align-items:center;gap:8px;padding-left:40px}.veh-card.done .veh-note-row{display:flex}.note-input-wrap{flex:1;position:relative}.note-input{width:100%;font-family:var(--mono);font-size:12px;background:var(--bg);border:1px solid var(--line);color:var(--ink);padding:6px 60px 6px 10px;border-radius:8px;outline:none;transition:border-color .15s}.note-input:focus{border-color:var(--accent)}.note-input::placeholder{color:var(--ink-faint);font-style:italic}.note-presets-btn{position:absolute;right:4px;top:50%;transform:translateY(-50%);background:var(--bg-3);border:none;color:var(--ink-dim);padding:3px 8px;border-radius:5px;font-family:var(--mono);font-size:12px;font-weight:600;letter-spacing:.05em;cursor:pointer;transition:background .15s,color .15s}.note-presets-btn:active{background:var(--accent-light);color:var(--accent)}.preset-popup{position:absolute;top:100%;right:0;margin-top:4px;background:var(--bg-2);border:1px solid var(--line);border-radius:8px;padding:4px;z-index:50;min-width:160px;box-shadow:0 4px 12px #00000014;display:none;animation:blockIn .15s ease}.preset-popup.show{display:block}.preset-item{padding:7px 10px;font-family:var(--sans);font-size:12px;color:var(--ink-2);cursor:pointer;border-radius:5px;transition:background .1s;display:flex;align-items:center;justify-content:space-between;gap:6px}.preset-item:active,.preset-item:hover{background:var(--bg-3)}.preset-item.empty{color:var(--ink-dim);font-style:italic}button.preset-item{width:100%;text-align:left;border:0;background:none}.preset-item button{font:inherit;color:inherit;background:none;border:0;text-align:left;cursor:pointer}.preset-item>button:first-child{flex:1}.preset-item .preset-x{color:var(--ink-faint);font-size:16px;padding:0 6px;min-height:28px}.preset-item .preset-x:active{color:var(--err)}.tracker-actions{display:flex;gap:8px;flex-shrink:0}.tracker-actions .btn-clear{flex:1}.update-info{background:var(--bg-2);border:1px solid var(--line);border-radius:12px;padding:10px 14px;flex-shrink:0}.update-info-title{font-family:var(--mono);font-size:12px;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-faint);font-weight:600;margin-bottom:4px}.update-info-body{font-family:var(--sans);font-size:12px;color:var(--ink-2);line-height:1.4}.update-info-body strong{color:var(--accent);font-weight:700}
