:root{color-scheme:light;--bg: #f6f5f2;--surface: #ffffff;--surface-2: #f0efec;--border: #e3e1dc;--text: #1a1a19;--text-2: #52514e;--text-3: #6b6a65;--accent: #c8102e;--accent-soft: #fbe9ec;--accent-text: #a30d25;--on-accent: #ffffff;--focus: #2a78d6;--d-pr: #1baf7a;--d-tr: #2873d0;--d-out: #eb6834;--d-none: #e4e2dc;--d-future: #f3f2ef;--on-d-pr: #1a1a19;--on-d-tr: #ffffff;--on-d-out: #1a1a19;--good: #0ca30c;--good-text: #006300;--warn: #fab219;--warn-text: #8a5a00;--critical: #d03b3b;--critical-text: #a42727;--shadow: 0 1px 2px rgba(20, 20, 18, .06), 0 4px 16px rgba(20, 20, 18, .05);--radius: 16px;--radius-sm: 10px;--tabbar-h: 64px;--font: system-ui, -apple-system, "Segoe UI", Roboto, "Noto Sans", "PingFang SC", "Microsoft YaHei", sans-serif}:root[data-theme=dark]{color-scheme:dark;--bg: #121211;--surface: #1a1a19;--surface-2: #242422;--border: #33332f;--text: #f0efec;--text-2: #c3c2b7;--text-3: #95948c;--accent: #d6354e;--accent-soft: #3a1a20;--accent-text: #ff8a9b;--on-accent: #ffffff;--focus: #6da7ec;--d-pr: #199e70;--d-tr: #3987e5;--d-out: #dc5e2b;--d-none: #383835;--d-future: #20201e;--on-d-pr: #1a1a19;--on-d-tr: #1a1a19;--on-d-out: #1a1a19;--good-text: #4cd34c;--warn-text: #fab219;--critical-text: #ff7b7b;--shadow: 0 1px 2px rgba(0, 0, 0, .4)}@media(prefers-color-scheme:dark){:root:not([data-theme=light]){color-scheme:dark;--bg: #121211;--surface: #1a1a19;--surface-2: #242422;--border: #33332f;--text: #f0efec;--text-2: #c3c2b7;--text-3: #95948c;--accent: #d6354e;--accent-soft: #3a1a20;--accent-text: #ff8a9b;--on-accent: #ffffff;--focus: #6da7ec;--d-pr: #199e70;--d-tr: #3987e5;--d-out: #dc5e2b;--d-none: #383835;--d-future: #20201e;--on-d-pr: #1a1a19;--on-d-tr: #1a1a19;--on-d-out: #1a1a19;--good-text: #4cd34c;--warn-text: #fab219;--critical-text: #ff7b7b;--shadow: 0 1px 2px rgba(0, 0, 0, .4)}}*{box-sizing:border-box}html,body{margin:0;padding:0}body{background:var(--bg);color:var(--text);font-family:var(--font);font-size:15px;line-height:1.45;-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:transparent}button,input,select,textarea{font:inherit;color:inherit}a{color:var(--accent-text)}:focus-visible{outline:2px solid var(--focus);outline-offset:2px}.sheet:focus,main:focus{outline:none}.skip-link{position:absolute;inset-inline-start:8px;top:-200px;z-index:200;min-height:44px;display:inline-flex;align-items:center;padding:0 16px;border-radius:12px;background:var(--surface);color:var(--text);border:2px solid var(--focus);font-weight:600;text-decoration:none}.skip-link:focus{top:calc(env(safe-area-inset-top) + 8px)}.app{min-height:100dvh;display:flex;flex-direction:column}.topbar{position:sticky;top:0;z-index:10;display:flex;align-items:center;gap:8px;padding:calc(env(safe-area-inset-top) + 10px) 16px 10px;background:color-mix(in srgb,var(--bg) 88%,transparent);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.topbar h1{font-size:20px;margin:0;flex:1;letter-spacing:-.01em}.main{flex:1;width:100%;max-width:760px;margin:0 auto;padding:4px 16px calc(var(--tabbar-h) + env(safe-area-inset-bottom) + 24px)}.tabbar{position:fixed;bottom:0;left:0;right:0;z-index:20;display:flex;justify-content:center;background:var(--surface);border-top:1px solid var(--border);padding-bottom:env(safe-area-inset-bottom)}.tabbar-inner{display:flex;width:100%;max-width:760px}.tab{flex:1;min-height:var(--tabbar-h);border:0;background:none;cursor:pointer;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;font-size:11px;color:var(--text-3)}.tab[aria-current=page]{color:var(--accent-text);font-weight:600}.tab svg{width:24px;height:24px}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);padding:16px;margin:12px 0}.card h2{font-size:16px;margin:0 0 8px;display:flex;align-items:center;gap:8px}.card h3{font-size:14px;margin:12px 0 6px;color:var(--text-2)}.muted{color:var(--text-2)}.small{font-size:13px}.tiny{font-size:12px;color:var(--text-3)}.row{display:flex;align-items:center;gap:12px}.row.wrap{flex-wrap:wrap}.spread{justify-content:space-between}.grow{flex:1;min-width:0}.stack>*+*{margin-top:8px}.grid2{display:grid;grid-template-columns:1fr 1fr;gap:12px}@media(max-width:380px){.grid2{grid-template-columns:1fr}}.hero-num{font-size:40px;font-weight:700;letter-spacing:-.02em;line-height:1.05;font-variant-numeric:tabular-nums}.num{font-variant-numeric:tabular-nums}.label{font-size:12px;text-transform:uppercase;letter-spacing:.04em;color:var(--text-3);font-weight:600}.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;min-height:44px;padding:0 16px;border-radius:12px;border:1px solid var(--border);background:var(--surface);cursor:pointer;font-weight:600;text-decoration:none;color:var(--text)}.btn.primary{background:var(--accent);border-color:var(--accent);color:var(--on-accent)}.btn.ghost{background:transparent;border-color:transparent;color:var(--accent-text)}.btn.danger{color:var(--critical-text)}.btn.sm{min-height:36px;padding:0 12px;font-size:13px;border-radius:10px}.btn.block{width:100%}.btn:disabled{opacity:.5;cursor:not-allowed}.icon-btn{width:44px;height:44px;border:0;background:none;border-radius:12px;display:inline-flex;align-items:center;justify-content:center;cursor:pointer;color:var(--text-2)}.icon-btn:hover{background:var(--surface-2)}.icon-btn svg{width:22px;height:22px}.chips{display:flex;gap:8px;flex-wrap:wrap}.chip{border:1px solid var(--border);background:var(--surface);border-radius:999px;padding:7px 12px;font-size:13px;cursor:pointer;min-height:36px}.chip[aria-pressed=true]{background:var(--accent-soft);border-color:var(--accent);color:var(--accent-text);font-weight:600}.field{display:flex;flex-direction:column;gap:4px;margin:10px 0}.field>span{font-size:13px;color:var(--text-2);font-weight:500}.input,select.input,textarea.input{min-height:44px;padding:10px 12px;border-radius:10px;border:1px solid var(--border);background:var(--surface);width:100%}textarea.input{min-height:80px;resize:vertical}.check{display:flex;align-items:center;gap:10px;min-height:40px;cursor:pointer}.check input{width:20px;height:20px;accent-color:var(--accent)}.progress{height:10px;background:var(--surface-2);border-radius:999px;overflow:hidden}.progress>div{height:100%;background:var(--d-pr);border-radius:999px;transition:width .4s ease}.progress.accent>div{background:var(--accent)}.badge{display:inline-flex;align-items:center;gap:4px;padding:2px 8px;border-radius:999px;font-size:12px;font-weight:600;background:var(--surface-2);color:var(--text-2)}.badge.good{color:var(--good-text);background:color-mix(in srgb,var(--good) 14%,transparent)}.badge.warn{color:var(--warn-text);background:color-mix(in srgb,var(--warn) 18%,transparent)}.badge.critical{color:var(--critical-text);background:color-mix(in srgb,var(--critical) 14%,transparent)}.badge svg{width:14px;height:14px}.tip{display:flex;gap:10px;align-items:flex-start;padding:12px;border-radius:12px;background:var(--surface-2);margin:8px 0;font-size:14px}.tip svg{width:20px;height:20px;flex:none;margin-top:1px}.tip.warn{background:color-mix(in srgb,var(--warn) 14%,var(--surface))}.tip.critical{background:color-mix(in srgb,var(--critical) 12%,var(--surface))}.tip.warn svg{color:var(--warn-text)}.tip.critical svg{color:var(--critical-text)}.tip.info svg{color:var(--focus)}.list{list-style:none;margin:0;padding:0}.list>li{display:flex;align-items:center;gap:12px;padding:12px 0;border-bottom:1px solid var(--border)}.list>li:last-child{border-bottom:0}.list button.item{all:unset;display:flex;align-items:center;gap:12px;width:100%;cursor:pointer;min-height:44px}.list button.item:focus-visible{outline:2px solid var(--focus);outline-offset:2px;border-radius:8px}.sheet-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#0006;z-index:50;display:flex;align-items:flex-end;justify-content:center}.sheet{background:var(--surface);width:100%;max-width:560px;max-height:92dvh;overflow:auto;border-radius:20px 20px 0 0;padding:8px 16px calc(16px + env(safe-area-inset-bottom));animation:up .2s ease}@media(min-width:640px){.sheet-backdrop{align-items:center}.sheet{border-radius:20px}}.sheet .grabber{width:40px;height:4px;border-radius:4px;background:var(--border);margin:4px auto 12px}.sheet h2{margin:0 0 8px;font-size:18px}@keyframes up{0%{transform:translateY(24px);opacity:0}to{transform:none;opacity:1}}@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}.segmented{display:flex;background:var(--surface-2);border-radius:12px;padding:3px;gap:3px}.segmented button{flex:1;border:0;background:none;border-radius:9px;min-height:36px;cursor:pointer;font-size:13px;font-weight:600;color:var(--text-2)}.segmented button[aria-pressed=true]{background:var(--surface);color:var(--text);box-shadow:var(--shadow)}.ring{position:relative;width:120px;height:120px;flex:none}.ring svg{width:100%;height:100%;transform:rotate(-90deg)}.ring .center{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center}.ring .center b{font-size:24px;font-variant-numeric:tabular-nums}.months{display:grid;grid-template-columns:repeat(3,1fr);gap:14px 10px}@media(min-width:560px){.months{grid-template-columns:repeat(4,1fr)}}.month h4{margin:0 0 4px;font-size:12px;color:var(--text-2);font-weight:600}.mgrid{display:grid;grid-template-columns:repeat(7,1fr);gap:2px}.mgrid .dow{font-size:9px;color:var(--text-3);text-align:center}.cell{aspect-ratio:1;border-radius:3px;border:0;padding:0;cursor:pointer;position:relative;background:var(--d-future);min-width:0}.cell.pr_in{background:var(--d-pr)}.cell.tr_in{background:var(--d-tr)}.cell.none_in{background:var(--d-none)}.cell.out{background:var(--d-out)}.cell.out_planned{background:repeating-linear-gradient(45deg,var(--d-out) 0 2px,var(--d-future) 2px 4px)}.cell.travel{background:var(--d-pr);box-shadow:inset 0 0 0 2px var(--d-out)}.cell.travel.pre{background:var(--d-tr)}.cell.future{background:var(--d-future);box-shadow:inset 0 0 0 1px var(--border)}.cell.empty{visibility:hidden}.cell.today{outline:2px solid var(--text);outline-offset:1px;z-index:1}.cell.sel{outline:2px solid var(--focus);outline-offset:1px;z-index:2}.mgrid .cell:focus-visible{outline:3px solid var(--focus);outline-offset:1px;z-index:3}.legend{display:flex;flex-wrap:wrap;gap:6px 14px;font-size:12px;color:var(--text-2)}.legend span{display:inline-flex;align-items:center;gap:6px}.legend i{width:12px;height:12px;border-radius:3px;display:inline-block}.month-big .mgrid{gap:4px}.month-big .cell{border-radius:8px;font-size:12px;color:var(--text);display:flex;align-items:center;justify-content:center}.month-big .cell.pr_in,.month-big .cell.tr_in,.month-big .cell.out,.month-big .cell.travel{font-weight:600}.month-big .cell.pr_in,.month-big .cell.travel{color:var(--on-d-pr)}.month-big .cell.tr_in,.month-big .cell.travel.pre{color:var(--on-d-tr)}.month-big .cell.out{color:var(--on-d-out)}.chat{display:flex;flex-direction:column;gap:10px;padding-bottom:8px}.msg{unicode-bidi:plaintext;max-width:86%;padding:10px 14px;border-radius:18px;white-space:pre-wrap;word-wrap:break-word}.msg.user{align-self:flex-end;background:var(--accent);color:var(--on-accent);border-end-end-radius:6px}.msg.assistant{align-self:flex-start;background:var(--surface);border:1px solid var(--border);border-end-start-radius:6px}.composer{position:fixed;left:0;right:0;bottom:calc(var(--tabbar-h) + env(safe-area-inset-bottom));z-index:15;background:var(--bg);border-top:1px solid var(--border);padding:8px 16px}.composer form{display:flex;gap:8px;max-width:728px;margin:0 auto}.avatar{width:36px;height:36px;border-radius:12px;background:var(--accent);color:#fff;display:inline-flex;align-items:center;justify-content:center;flex:none}.avatar svg{width:22px;height:22px}.bars{display:flex;flex-direction:column;gap:8px}.bar-row{display:grid;grid-template-columns:110px 1fr 56px;gap:8px;align-items:center;font-size:13px}.bar-track{height:14px;position:relative}.bar-fill{height:100%;background:var(--d-tr);border-radius:0 4px 4px 0;min-width:2px}.hist{display:flex;align-items:flex-end;gap:2px;height:90px}.hist div{flex:1;background:var(--d-tr);border-radius:4px 4px 0 0;min-height:2px;position:relative}.hist div.me{background:var(--accent)}.empty-state{text-align:center;padding:28px 12px;color:var(--text-2)}.empty-state svg{width:40px;height:40px;color:var(--text-3)}.ms{display:grid;grid-template-columns:24px 1fr auto;gap:10px;align-items:center;padding:8px 0;position:relative}.ms .dot{width:14px;height:14px;border-radius:50%;border:2px solid var(--border);background:var(--surface);justify-self:center;z-index:1}.ms.done .dot{background:var(--d-pr);border-color:var(--d-pr)}.ms.pred .dot{border-style:dashed;border-color:var(--d-tr)}.ms-line{position:absolute;inset-inline-start:11px;top:0;bottom:0;width:2px;background:var(--border)}.ms input[type=date]{min-height:36px;padding:4px 8px;border-radius:8px;border:1px solid var(--border);background:var(--surface)}.onb{max-width:520px;margin:0 auto;padding:calc(env(safe-area-inset-top) + 32px) 20px 32px}.onb .logo{width:64px;height:64px;border-radius:18px}.steps{display:flex;gap:6px;margin:16px 0}.steps i{flex:1;height:4px;border-radius:4px;background:var(--border)}.steps i.on{background:var(--accent)}.visually-hidden{position:absolute;width:1px;height:1px;margin:-1px;padding:0;border:0;overflow:hidden;clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap}table.data{width:100%;border-collapse:collapse;font-size:13px}table.data th,table.data td{text-align:start;padding:6px 4px;border-bottom:1px solid var(--border)}table.data td.n,table.data th.n{text-align:end;font-variant-numeric:tabular-nums}[dir=rtl] .flip-rtl,[dir=rtl] .tab svg.flip-rtl{transform:scaleX(-1)}[dir=rtl] .months,[dir=rtl] .mgrid,[dir=rtl] .bars,[dir=rtl] .hist,[dir=rtl] .ltr{direction:ltr}[dir=rtl] input[type=date],[dir=rtl] input[inputmode=decimal],[dir=rtl] input[inputmode=numeric]{direction:ltr;text-align:end}:root[lang=ar],:root[lang=fa],:root[lang=ur]{--font: system-ui, -apple-system, "Segoe UI", "Noto Naskh Arabic", "Noto Nastaliq Urdu", Tahoma, sans-serif}:root[lang=hi]{--font: system-ui, -apple-system, "Segoe UI", "Noto Sans Devanagari", "Nirmala UI", sans-serif}:root[lang=pa]{--font: system-ui, -apple-system, "Segoe UI", "Noto Sans Gurmukhi", "Raavi", "Nirmala UI", sans-serif}:root[lang=ko]{--font: system-ui, -apple-system, "Segoe UI", "Apple SD Gothic Neo", "Malgun Gothic", "Noto Sans KR", sans-serif}:root[lang=zh-Hant],:root[lang=zh-TW]{--font: system-ui, -apple-system, "Segoe UI", "PingFang TC", "Microsoft JhengHei", "Noto Sans TC", sans-serif}svg{flex:none}.card h2 svg{width:20px;height:20px}.btn svg{width:18px;height:18px}.btn.sm svg{width:16px;height:16px}:root[lang=bn]{--font: system-ui, -apple-system, "Segoe UI", "Noto Sans Bengali", "Nirmala UI", sans-serif}:root[lang=ta]{--font: system-ui, -apple-system, "Segoe UI", "Noto Sans Tamil", "Nirmala UI", sans-serif}:root[lang=gu]{--font: system-ui, -apple-system, "Segoe UI", "Noto Sans Gujarati", "Nirmala UI", sans-serif}@media(pointer:coarse){.btn.sm,.chip,.segmented button,.ms input[type=date],.check{min-height:44px}}@media(forced-colors:active){.btn,.chip,.segmented button,.badge,.icon-btn{border:1px solid ButtonText}.chip[aria-pressed=true],.segmented button[aria-pressed=true],.tab[aria-current=page]{outline:2px solid Highlight}.cell.today,.cell.sel{outline-color:Highlight}}
