:root{--bg-primary:#0c0d11;--bg-secondary:#14161e;--bg-tertiary:#1c1f2a;--bg-hover:#242837;--accent:#e8a830;--accent-dim:#b8841e;--success:#22c968;--warning:#f0a030;--danger:#e8453c;--info:#4a94f5;--text-primary:#eceae4;--text-secondary:#8a8e9c;--text-tertiary:#555866;--border:#1e2130;--border-light:#2a2e40;--glass:rgba(20,22,30,.75);--glass-border:hsla(0,0%,100%,.06);--font-sans:"Inter",-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;--font-mono:"JetBrains Mono",ui-monospace,SFMono-Regular,Menlo,monospace;--radius:12px;--radius-sm:10px;--radius-xs:8px;--header-h:56px;--nav-h:56px;--app-w:480px;--safe-top:env(safe-area-inset-top,0px);--safe-bottom:env(safe-area-inset-bottom,0px);--ease:cubic-bezier(0.22,0.61,0.36,1)}*,:after,:before{box-sizing:border-box}body,html{margin:0;padding:0;background:var(--bg-primary)}body{color:var(--text-primary);font-family:var(--font-sans);font-size:14px;line-height:1.5;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;-webkit-tap-highlight-color:transparent;overscroll-behavior-y:none;overflow-x:hidden}button,input,textarea{font-family:inherit;font-size:inherit;color:inherit}button{cursor:pointer}button:disabled{cursor:default}a{color:inherit}::selection{background:rgba(232,168,48,.25)}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-thumb{background:var(--border-light);border-radius:3px}::-webkit-scrollbar-track{background:transparent}.shell{position:relative;max-width:var(--app-w);margin:0 auto;min-height:100vh;min-height:100dvh;background:var(--bg-primary)}@media (min-width:560px){body{background:radial-gradient(80% 45% at 50% 0,rgba(232,168,48,.05),transparent 70%),var(--bg-primary)}.shell{background:transparent}.bottomnav-inner,.chatdock,.shell{border-left:1px solid var(--border);border-right:1px solid var(--border)}}.content{padding:16px 16px calc(var(--nav-h) + var(--safe-bottom) + 28px)}.heading-lg{font-size:24px;font-weight:700;letter-spacing:-.5px;line-height:1.2;margin:0}.heading-md{font-size:18px;letter-spacing:-.3px;line-height:1.3}.heading-md,.heading-sm{font-weight:600;margin:0}.heading-sm{font-size:14px;letter-spacing:0}.label{font-size:11px;font-weight:500;letter-spacing:.5px;text-transform:uppercase;color:var(--text-secondary)}.body{font-size:14px;font-weight:400;line-height:1.5}.body-sm{font-size:13px;line-height:1.55;color:var(--text-secondary)}.data{font-size:13px;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.data,.data-lg{font-family:var(--font-mono);font-weight:500}.data-lg{font-size:22px;letter-spacing:-.5px;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.muted{color:var(--text-secondary)}.dim{color:var(--text-tertiary)}.mono{font-family:var(--font-mono);font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.stack{gap:12px}.stack,.stack-sm{display:flex;flex-direction:column}.stack-sm{gap:8px}.row,.row-between{display:flex;align-items:center;gap:10px}.row-between{justify-content:space-between}.grow{flex:1 1;min-width:0}.truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.scroll-x{overflow-x:auto;scrollbar-width:none}.scroll-x::-webkit-scrollbar{display:none}.card{background:var(--bg-secondary);border:1px solid var(--border);border-radius:var(--radius);padding:16px}.card-tight{padding:12px 14px}.card-flush{padding:0;overflow:hidden}.card-button{display:block;width:100%;text-align:left;background:var(--bg-secondary);border:1px solid var(--border);border-radius:var(--radius);transition:background .18s var(--ease),border-color .18s var(--ease)}.card-button:active{background:var(--bg-hover)}.card-accent{border-left:2px solid var(--success)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:44px;padding:12px 20px;border-radius:var(--radius-sm);border:1px solid transparent;background:transparent;color:var(--text-primary);font-size:14px;font-weight:600;letter-spacing:-.1px;transition:background .18s var(--ease),border-color .18s var(--ease),opacity .18s var(--ease),transform .1s var(--ease)}.btn:active{transform:scale(.985)}.btn-primary{background:var(--accent);color:#14100a}.btn-primary:active{background:var(--accent-dim)}.btn-primary:disabled{background:var(--bg-tertiary);color:var(--text-tertiary)}.btn-ghost{border-color:var(--border-light);color:var(--text-primary)}.btn-ghost:active{background:var(--bg-hover)}.btn-ghost:disabled{color:var(--text-tertiary);border-color:var(--border)}.btn-accent-ghost{border-color:rgba(232,168,48,.35);color:var(--accent)}.btn-accent-ghost:active{background:rgba(232,168,48,.08)}.btn-block{width:100%}.btn-sm{min-height:34px;padding:7px 12px;font-size:12px;border-radius:var(--radius-xs)}.icon-btn{display:inline-flex;align-items:center;justify-content:center;width:36px;height:36px;border-radius:50%;border:none;background:transparent;color:var(--text-secondary);transition:background .18s var(--ease),color .18s var(--ease)}.icon-btn:active{background:var(--bg-hover);color:var(--text-primary)}.icon-btn-bordered{border:1px solid var(--border-light);background:var(--bg-tertiary)}.input,.textarea{width:100%;background:var(--bg-tertiary);border:1px solid var(--border);border-radius:var(--radius-sm);padding:12px 14px;color:var(--text-primary);font-size:14px;outline:none;transition:border-color .18s var(--ease),background .18s var(--ease)}.textarea{resize:none;line-height:1.5}.input::placeholder,.textarea::placeholder{color:var(--text-tertiary)}.input:focus,.textarea:focus{border-color:var(--accent)}.input-num{width:62px;padding:8px 6px;text-align:center;font-family:var(--font-mono);font-size:13px;border-radius:var(--radius-xs)}.input-num.done{border-color:rgba(34,201,104,.5);color:var(--success)}.input-num::-webkit-inner-spin-button,.input-num::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.input-num{-moz-appearance:textfield;-webkit-appearance:textfield;appearance:textfield}.chip{display:inline-flex;align-items:center;padding:7px 12px;border-radius:999px;border:1px solid var(--border-light);background:transparent;color:var(--text-secondary);font-size:12px;white-space:nowrap;transition:color .18s var(--ease),border-color .18s var(--ease),background .18s var(--ease)}.chip:active{background:var(--bg-hover);color:var(--text-primary)}.badge{display:inline-flex;align-items:center;gap:5px;padding:3px 9px;border-radius:999px;border:1px solid var(--border-light);background:var(--bg-tertiary);color:var(--text-secondary);font-size:10px;font-weight:500;letter-spacing:.4px;text-transform:uppercase}.badge-accent{border-color:rgba(232,168,48,.3);background:rgba(232,168,48,.1);color:var(--accent)}.badge-success{border-color:rgba(34,201,104,.3);background:rgba(34,201,104,.1);color:var(--success)}.count{min-width:17px;height:17px;padding:0 5px;border-radius:999px;background:var(--accent);color:#14100a;font-family:var(--font-mono);font-size:10px;font-weight:600;display:inline-flex;align-items:center;justify-content:center}.bar{position:relative;height:6px;background:var(--bg-tertiary);overflow:hidden}.bar,.bar-fill{border-radius:3px}.bar-fill{height:100%;background:linear-gradient(90deg,var(--accent-dim),var(--accent));transition:width .5s var(--ease)}.bar-fill.is-success{background:linear-gradient(90deg,var(--accent),var(--success))}.bar-fill.is-info{background:linear-gradient(90deg,rgba(74,148,245,.6),var(--info))}.bar-thin{height:4px;border-radius:2px}.bar-seg{display:flex;height:8px;border-radius:4px;overflow:hidden;background:var(--bg-tertiary)}.bar-seg>span{transition:width .5s var(--ease)}.check{flex-shrink:0;width:22px;height:22px;border-radius:50%;border:2px solid var(--border-light);background:transparent;color:transparent;display:inline-flex;align-items:center;justify-content:center;transition:background .18s var(--ease),border-color .18s var(--ease),color .18s var(--ease)}.check.on{background:var(--accent);border-color:var(--accent);color:#14100a}.check-row{display:flex;align-items:center;gap:12px;width:100%;min-height:44px;padding:8px 0;background:none;border:none;border-bottom:1px solid var(--border);text-align:left}.check-row:last-child{border-bottom:none}.check-row .check-label{font-size:13.5px;color:var(--text-primary);transition:color .18s var(--ease)}.check-row.done .check-label{color:var(--text-tertiary);text-decoration:line-through}.topbar{position:-webkit-sticky;position:sticky;top:0;z-index:60;padding-top:var(--safe-top);background:var(--glass);backdrop-filter:saturate(180%) blur(20px);-webkit-backdrop-filter:saturate(180%) blur(20px);border-bottom:1px solid var(--border)}.topbar-inner{height:var(--header-h);display:flex;align-items:center;gap:10px;padding:0 12px 0 16px}.wordmark{font-size:11px;font-weight:600;letter-spacing:1.4px;text-transform:uppercase;color:var(--text-primary);white-space:nowrap}.daystrip{padding:0 16px 9px}.seg{position:relative;display:flex;width:100%;padding:3px;border-radius:999px;background:var(--bg-tertiary);border:1px solid var(--border)}.seg-thumb{position:absolute;top:3px;bottom:3px;left:3px;border-radius:999px;background:var(--bg-hover);border:1px solid var(--border-light);transition:transform .28s var(--ease);pointer-events:none}.seg-item{position:relative;flex:1 1;min-width:26px;height:28px;border:none;background:none;color:var(--text-secondary);font-family:var(--font-mono);font-size:11px;font-weight:500;border-radius:999px;transition:color .2s var(--ease)}.seg-item.rest{color:var(--text-tertiary)}.seg-item.on{color:var(--text-primary)}.seg-item .seg-dot{position:absolute;left:50%;bottom:3px;width:3px;height:3px;margin-left:-1.5px;border-radius:50%;background:var(--accent)}.bottomnav{position:fixed;bottom:0;left:0;right:0;z-index:90}.bottomnav-inner{display:flex;padding-bottom:var(--safe-bottom);backdrop-filter:saturate(180%) blur(24px);-webkit-backdrop-filter:saturate(180%) blur(24px)}.bottomnav-inner,.chatdock{max-width:var(--app-w);margin:0 auto;background:var(--glass);border-top:1px solid var(--glass-border)}.chatdock{position:fixed;left:0;right:0;bottom:calc(var(--nav-h) + var(--safe-bottom));z-index:80;padding:10px 16px;backdrop-filter:saturate(180%) blur(20px);-webkit-backdrop-filter:saturate(180%) blur(20px)}.navbtn{position:relative;flex:1 1;height:var(--nav-h);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;background:none;border:none;color:var(--text-tertiary);font-size:10px;letter-spacing:.2px;transition:color .2s var(--ease)}.navbtn.on{color:var(--accent)}.navbtn .nav-indicator{position:absolute;top:0;left:50%;width:18px;height:2px;margin-left:-9px;border-radius:0 0 2px 2px;background:var(--accent);transform:scaleX(0);transition:transform .24s var(--ease)}.navbtn.on .nav-indicator{transform:scaleX(1)}.overlay{position:fixed;inset:0;z-index:200;display:flex;flex-direction:column;animation:fade-in .2s var(--ease)}.overlay-backdrop{position:absolute;inset:0;background:rgba(6,7,10,.72);backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);border:none;padding:0}.sheet{position:relative;margin:auto auto 0;width:100%;max-width:var(--app-w);max-height:86vh;display:flex;flex-direction:column;background:var(--bg-secondary);border:1px solid var(--border-light);border-bottom:none;border-radius:18px 18px 0 0;padding-bottom:var(--safe-bottom);animation:slide-up .28s var(--ease)}.sheet-handle{width:36px;height:4px;border-radius:2px;background:var(--border-light);margin:10px auto 4px;flex-shrink:0}.sheet-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;padding:8px 16px 12px;flex-shrink:0}.sheet-body{padding:0 16px 20px}.modal-full,.sheet-body{overflow-y:auto;-webkit-overflow-scrolling:touch}.modal-full{position:relative;flex:1 1;display:flex;flex-direction:column;width:100%;max-width:var(--app-w);margin:0 auto;padding-top:var(--safe-top);animation:slide-up .28s var(--ease)}.center-modal{position:relative;margin:auto;width:calc(100% - 32px);max-width:360px;background:var(--bg-secondary);border:1px solid var(--border-light);border-radius:16px;padding:20px;animation:scale-in .22s var(--ease)}.divider{height:1px;background:var(--border);border:none;margin:0}.spinner{width:16px;height:16px;border:2px solid hsla(0,0%,100%,.18);border-top-color:currentcolor;border-radius:50%;animation:spin .7s linear infinite}.typing span{display:inline-block;width:5px;height:5px;margin-right:3px;border-radius:50%;background:var(--text-secondary);animation:blink 1.2s ease-in-out infinite}.typing span:nth-child(2){animation-delay:.18s}.typing span:nth-child(3){animation-delay:.36s}.bubble{max-width:84%;padding:10px 14px;border-radius:16px;font-size:13.5px;line-height:1.55}.bubble-user{align-self:flex-end;background:var(--bg-hover);border:1px solid var(--border-light);border-bottom-right-radius:5px}.bubble-ai{align-self:flex-start;background:var(--bg-secondary);border:1px solid var(--border);border-bottom-left-radius:5px}.tab-panel{animation:fade-up .26s var(--ease)}.footer-stack{padding:22px 0 4px;text-align:center;font-size:10px;color:var(--text-tertiary);letter-spacing:.2px}.link-quiet{color:var(--text-secondary);text-decoration:none;border-bottom:1px solid var(--border-light);padding-bottom:1px}@keyframes spin{to{transform:rotate(1turn)}}@keyframes fade-in{0%{opacity:0}to{opacity:1}}@keyframes fade-up{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}@keyframes slide-up{0%{transform:translateY(18px);opacity:0}to{transform:none;opacity:1}}@keyframes scale-in{0%{transform:scale(.96);opacity:0}to{transform:none;opacity:1}}@keyframes blink{0%,60%,to{opacity:.25}30%{opacity:1}}@media (prefers-reduced-motion:reduce){*,:after,:before{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}