:root{--bg: #ffffff;--surface: #ffffff;--ink: #26222c;--sub: #5d5864;--line: rgba(38, 34, 44, .16);--line-soft: rgba(38, 34, 44, .08);--berry: #563e7b;--berry-press: #4b346f;--berry-ink: #5c4285;--berry-soft: #f1eef9;--on-berry: #ffffff;--on-berry-dim: #d8ceee;--time-line: #3b825f;--time-ink: #2b7351;--accent: var(--berry-ink);--r-card: 16px;--r-control: 10px;--z-nav: 10;--z-overlay: 20;--z-sheet: 30;--z-toast: 40;--tabbar-h: 58px;--ease: cubic-bezier(.22, 1, .36, 1);--app-height: 100vh}[data-theme=dark]{--bg: #141117;--surface: #141117;--ink: #e5e3e9;--sub: #a6a2ad;--line: rgba(229, 227, 233, .2);--line-soft: rgba(229, 227, 233, .1);--berry: #b6a1df;--berry-press: #a792ce;--berry-ink: #c6b1f0;--berry-soft: #272033;--on-berry: #1f1332;--on-berry-dim: #3a2a58;--time-line: #68b88f;--time-ink: #75c59b;--accent: var(--berry-ink)}*{margin:0;padding:0;box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;font-size:16px;line-height:1.5;color:var(--ink);background:var(--bg);min-height:var(--app-height);-webkit-tap-highlight-color:transparent}button{font:inherit;color:inherit;background:none;border:none;cursor:pointer;touch-action:manipulation}button:disabled{cursor:default;opacity:.5}:focus-visible{outline:2px solid var(--berry);outline-offset:2px}.num{font-variant-numeric:tabular-nums}h1,h2,h3{text-wrap:balance}.app{min-height:var(--app-height);padding-bottom:calc(24px + env(safe-area-inset-bottom,0px));background:var(--bg)}.app--tabbed{padding-bottom:calc(var(--tabbar-h) + 20px + env(safe-area-inset-bottom,0px))}.screen{max-width:480px;margin:0 auto;padding:12px 16px 32px}.top{display:flex;align-items:flex-start;justify-content:space-between;gap:8px;min-height:44px;margin-bottom:4px;padding-top:8px}.ruled{position:relative;padding-bottom:10px;border-bottom:1px solid var(--line)}.ruled:after{content:"";position:absolute;left:0;bottom:-1.5px;width:26px;height:2px;border-radius:1px;background:var(--berry-ink)}.date-display{font-size:34px;font-weight:300;line-height:1.1;letter-spacing:-.01em;color:var(--berry-ink)}.top-sub{font-size:14px;color:var(--sub);margin-top:8px}.icon-btn{width:44px;height:44px;display:grid;place-items:center;border-radius:12px;color:var(--sub);transition:background .12s var(--ease);flex-shrink:0}.icon-btn:active{background:var(--line-soft)}.icon-btn svg{width:22px;height:22px}.screen-title{font-size:28px;font-weight:300;line-height:1.15;letter-spacing:-.01em;padding-top:8px;color:var(--berry-ink)}.screen-sub{font-size:14px;color:var(--sub);margin-top:2px;text-wrap:pretty}.ruled+.screen-sub,.ruled+.top-sub{margin-top:8px}.section{margin-top:28px}.section-label{font-size:13px;font-weight:600;color:var(--sub);margin-bottom:6px}.stack-8>*+*{margin-top:8px}.stack-12>*+*{margin-top:12px}.hint-text{font-size:14px;color:var(--sub);text-wrap:pretty}.pad-16{padding:16px}.surface.pad-16{padding:14px 0}.struck{text-decoration:line-through;color:var(--sub)}.done-ink{color:var(--berry-ink)}.attn-note{color:var(--ink);font-weight:500}.dial{margin:16px auto 0;max-width:260px}.dial-frame{position:relative}.dial-arc{display:block;width:100%;height:auto}.dial-fill{transition:stroke-dashoffset .6s var(--ease)}.dial-center{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;flex-direction:column;align-items:center;justify-content:flex-end;text-align:center;padding:0 15% 2px;pointer-events:none}.dial-emoji{font-size:22px;line-height:1.3}.dial-word{font-size:18px;font-weight:700;line-height:1.25;text-wrap:balance}.dial--idle .dial-word{color:var(--sub)}.dial-sub{font-size:14px;color:var(--sub);margin-top:2px}.dial-sub--live{color:var(--time-ink);font-weight:600}.dial-times{display:flex;justify-content:space-between;margin-top:4px;padding:0 2px;font-size:12px;color:var(--sub)}.wake-btn{display:flex;align-items:center;justify-content:center;gap:8px;width:100%;min-height:52px;margin-top:16px;border-radius:26px;border:1px solid var(--line);font-size:16px;font-weight:600;background:transparent;color:var(--ink);transition:transform .1s var(--ease),background .12s var(--ease)}.wake-btn:active{transform:scale(.99);background:var(--line-soft)}.hero{display:block;width:100%;text-align:left;margin-top:24px;padding:18px 20px 20px;border-radius:var(--r-card);background:var(--berry);color:var(--on-berry);transition:transform .12s var(--ease),background .12s var(--ease)}.hero:active{transform:scale(.985);background:var(--berry-press)}.hero-label{font-size:14px;font-weight:600;color:var(--on-berry-dim)}[data-theme=dark] .hero-label{color:#1f1332cc}.hero-name{font-size:30px;font-weight:700;line-height:1.15;margin-top:2px;overflow-wrap:anywhere}.hero-row{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:14px}.hero-hint{font-size:14px;color:var(--on-berry-dim);text-wrap:pretty}[data-theme=dark] .hero-hint{color:#1f1332cc}.hero .dot--off{border-color:var(--on-berry-dim)}.hero .dot--on,.hero .dot--extra{background:var(--on-berry)}.hero--done{background:var(--berry-soft);color:var(--berry-ink)}.hero--done:active{transform:none;background:var(--berry-soft)}.hero--done .hero-label,.hero--done .hero-hint{color:var(--berry-ink);opacity:.85}.hero-actions{display:flex;justify-content:center;gap:16px;margin-top:6px}.dots{display:inline-flex;gap:6px;align-items:center}.dot{width:10px;height:10px;border-radius:50%;flex-shrink:0}.dot--on{background:var(--berry);animation:dot-in .2s var(--ease)}.dot--off{border:1.5px solid var(--sub);width:9px;height:9px}.dot--extra{background:var(--berry);opacity:.55}@keyframes dot-in{0%{transform:scale(.5)}to{transform:scale(1)}}.surface{background:transparent;border-top:1px solid var(--line-soft);border-bottom:1px solid var(--line-soft)}.row{display:flex;align-items:center;gap:12px;width:100%;min-height:52px;padding:12px 0;text-align:left;transition:background .12s var(--ease)}.row+.row,.row+.rowlike,.rowlike+.row,.rowlike+.rowlike{border-top:1px solid var(--line-soft)}button.row:active{background:var(--line-soft)}.row-main{flex:1;min-width:0}.row-title{font-size:16px;overflow-wrap:anywhere}.row-sub{font-size:14px;color:var(--sub);margin-top:1px;text-wrap:pretty}.row-end{display:flex;align-items:center;gap:10px;color:var(--sub);font-size:14px;flex-shrink:0}.chevron{color:var(--sub);opacity:.7}.stackbar{display:flex;gap:3px;height:6px;margin-top:8px;max-width:220px}.stackbar i{display:block;height:100%;border-radius:2px}.stackbar i.b-active{background:var(--berry)}.stackbar i.b-queued{background:var(--berry);opacity:.35}.stackbar i.b-archived{background:var(--line)}.swap-progress{display:flex;align-items:center;justify-content:space-between;gap:8px;font-size:14px;color:var(--sub);margin-top:4px}.card-tile{position:relative;background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:16px 18px;box-shadow:0 5px 0 -2px var(--surface),0 6px 0 -2px var(--line),0 10px 0 -4px var(--surface),0 11px 0 -4px var(--line-soft)}.card-tile-name{font-size:22px;font-weight:700;overflow-wrap:anywhere}.card-tile-sub{font-size:14px;color:var(--sub);margin-top:2px}.card-tile--ghost{background:transparent;box-shadow:none;border:1.5px dashed var(--line)}.swap-arrow{display:flex;align-items:center;gap:10px;padding:12px 6px;color:var(--sub);font-size:14px}.swap-arrow svg{width:20px;height:20px;flex-shrink:0}.btn{display:flex;align-items:center;justify-content:center;gap:8px;width:100%;min-height:48px;padding:0 20px;border-radius:var(--r-control);background:var(--berry);color:var(--on-berry);font-size:16px;font-weight:600;transition:transform .1s var(--ease),background .12s var(--ease)}.btn:active{transform:scale(.99);background:var(--berry-press)}.btn--secondary{background:var(--berry-soft);color:var(--berry-ink)}.btn--secondary:active{background:var(--berry-soft);filter:brightness(.96)}.btn-text{color:var(--accent);font-weight:600;min-height:44px;padding:0 8px;border-radius:8px;display:inline-flex;align-items:center;justify-content:center;gap:6px}.btn-text:active{opacity:.7}.btn-text--small{font-size:14px;min-height:36px}.btn-text--quiet{color:var(--sub);font-weight:500}.spinner{width:16px;height:16px;border:2px solid currentColor;border-top-color:transparent;border-radius:50%;animation:spin .7s linear infinite;flex-shrink:0}@keyframes spin{to{transform:rotate(360deg)}}.banner{display:flex;align-items:flex-start;gap:8px;background:transparent;border:1px solid var(--line);color:var(--ink);border-radius:var(--r-card);padding:12px 14px;margin-top:12px;font-size:14px}.banner-body{flex:1;text-wrap:pretty}.banner-actions{display:flex;flex-wrap:wrap;gap:4px 12px;margin-top:4px}.banner-actions .btn-text{color:var(--accent);min-height:36px;padding:0 4px;font-size:14px}.banner-close{width:32px;height:32px;margin:-4px -6px 0 0;display:grid;place-items:center;border-radius:8px;color:var(--sub);flex-shrink:0}.field{margin-top:16px}.field-label{display:block;font-size:14px;font-weight:600;color:var(--sub);margin-bottom:6px}.input,.textarea,.select{width:100%;font:inherit;font-size:16px;color:var(--ink);background:var(--surface);border:1px solid var(--line);border-radius:var(--r-control);padding:12px 14px;min-height:48px}.input::placeholder,.textarea::placeholder{color:var(--sub);opacity:1}.input:focus,.textarea:focus,.select:focus{outline:2px solid var(--berry);outline-offset:-1px;border-color:transparent}.textarea{min-height:132px;resize:vertical;line-height:1.5}.field-hint{font-size:14px;color:var(--sub);margin-top:6px}.field-hint--attn{color:var(--ink);font-weight:500}.chips{display:flex;flex-wrap:wrap;gap:8px}.chip{min-height:44px;padding:0 16px;border-radius:22px;background:transparent;border:1px solid var(--line);font-size:15px;display:inline-flex;align-items:center;gap:6px;transition:background .12s var(--ease),color .12s var(--ease)}.chip[aria-pressed=true]{background:var(--berry);border-color:var(--berry);color:var(--on-berry);font-weight:600}.chip--dim{color:var(--sub)}.chipfield{display:flex;flex-wrap:wrap;align-items:center;gap:8px;padding:10px 12px;background:var(--surface);border:1px solid var(--line);border-radius:var(--r-control);cursor:text}.chipfield:focus-within{outline:2px solid var(--berry);outline-offset:-1px;border-color:transparent}.chip-item{display:inline-flex;align-items:center;gap:7px;min-height:44px;padding:0 14px;border-radius:22px;background:var(--berry-soft);color:var(--berry-ink);font-size:15px;font-weight:500;max-width:100%}.chip-item span{overflow-wrap:anywhere}.chip-item:active{filter:brightness(.95)}.chip-item .chip-x{font-size:13px;opacity:.65}.chip-input{flex:1;min-width:110px;min-height:44px;border:none;outline:none;background:transparent;font:inherit;font-size:16px;color:var(--ink);padding:0 2px}.chip-input::placeholder{color:var(--sub);opacity:1}.chip-ghost{display:inline-flex;align-items:center;gap:6px;min-height:44px;padding:0 14px;border-radius:22px;border:1.5px dashed var(--line);background:transparent;color:var(--sub);font-size:15px}.chip-ghost:active{background:var(--line-soft)}.chip-ghost .chip-plus{color:var(--berry-ink);font-weight:600}.seg{display:flex;background:var(--line-soft);border-radius:var(--r-control);padding:3px;gap:3px}.seg-btn{flex:1;min-height:40px;border-radius:8px;font-size:14px;font-weight:500;color:var(--sub);transition:background .15s var(--ease),color .15s var(--ease)}.seg-btn[aria-pressed=true]{background:var(--surface);color:var(--ink);font-weight:600;box-shadow:0 1px 3px #00000014}.stepper{display:inline-flex;align-items:center;gap:2px;background:var(--line-soft);border-radius:var(--r-control);padding:2px}.stepper-btn{width:40px;height:40px;border-radius:8px;font-size:20px;font-weight:500;display:grid;place-items:center;color:var(--accent)}.stepper-btn:active:not(:disabled){background:var(--surface)}.stepper-val{min-width:56px;text-align:center;font-size:15px;font-weight:600}.switch{position:relative;width:50px;height:30px;border-radius:15px;background:var(--line);transition:background .2s var(--ease);flex-shrink:0}.switch:after{content:"";position:absolute;top:3px;left:3px;width:24px;height:24px;border-radius:50%;background:var(--surface);box-shadow:0 1px 3px #0003;transition:transform .2s var(--ease)}.switch[aria-checked=true]{background:var(--berry)}.switch[aria-checked=true]:after{transform:translate(20px)}[data-theme=dark] .switch:after{background:var(--ink)}.overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0f0b1573;z-index:var(--z-overlay);animation:fade-in .18s var(--ease)}.sheet{position:fixed;left:0;right:0;bottom:0;z-index:var(--z-sheet);max-width:480px;margin:0 auto;max-height:86vh;overflow-y:auto;background:var(--bg);border-radius:16px 16px 0 0;padding:8px 16px calc(20px + env(safe-area-inset-bottom,0px));animation:sheet-up .24s var(--ease)}.sheet:before{content:"";display:block;width:36px;height:4px;border-radius:2px;background:var(--line);margin:4px auto 12px}.sheet-title{font-size:18px;font-weight:700;margin-bottom:8px;text-wrap:balance}.sheet-text{font-size:15px;color:var(--sub);margin-bottom:12px;text-wrap:pretty}.sheet .stack-8{margin-top:16px}@keyframes sheet-up{0%{transform:translateY(24px);opacity:0}to{transform:translateY(0);opacity:1}}@keyframes fade-in{0%{opacity:0}to{opacity:1}}.toast{position:fixed;left:16px;right:16px;bottom:calc(var(--tabbar-h) + 12px + env(safe-area-inset-bottom,0px));z-index:var(--z-toast);max-width:448px;margin:0 auto;display:flex;align-items:center;justify-content:space-between;gap:12px;background:var(--ink);color:var(--bg);border-radius:12px;padding:6px 8px 6px 16px;font-size:15px;animation:toast-in .15s var(--ease)}.toast .btn-text{color:var(--bg);min-height:40px;flex-shrink:0}[data-theme=dark] .toast{background:#e5e3e9;color:#141117}[data-theme=dark] .toast .btn-text{color:#141117}@keyframes toast-in{0%{transform:translateY(8px);opacity:0}to{transform:translateY(0);opacity:1}}.skeleton{background:var(--line-soft);border-radius:var(--r-card);animation:pulse 1.4s ease-in-out infinite}@keyframes pulse{0%,to{opacity:1}50%{opacity:.55}}.empty{text-align:center;padding:32px 16px}.empty-emoji{font-size:40px;line-height:1;margin-bottom:12px}.empty-title{font-size:18px;font-weight:700;text-wrap:balance}.empty-text{font-size:15px;color:var(--sub);margin-top:6px;text-wrap:pretty}.empty .btn{margin-top:20px}.error-box{text-align:center;padding:32px 16px;color:var(--sub);font-size:15px}.error-box .btn--secondary{margin-top:16px}.hero-num{font-size:56px;font-weight:275;line-height:1.05;font-variant-numeric:tabular-nums;letter-spacing:-.02em}.week{position:relative;display:flex;align-items:flex-end;justify-content:space-between;gap:4px;height:120px;padding-top:8px}.week-col{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:flex-end;gap:4px;min-width:0;height:100%;border-radius:8px}.week-col:active{background:var(--line-soft)}.week-num{font-size:12px;color:var(--sub);font-variant-numeric:tabular-nums}.week-bar{width:18px;border-radius:5px 5px 2px 2px;background:var(--berry)}.week-ring{width:10px;height:10px;border:1.5px solid var(--sub);border-radius:50%;margin-bottom:2px;opacity:.7}.week-day{font-size:12px;color:var(--sub)}.week-goal{position:absolute;left:0;right:0;border-top:1.5px dashed var(--sub);opacity:.5;pointer-events:none}.cover-grid{display:grid;grid-template-columns:minmax(96px,1fr) repeat(7,20px);gap:8px 6px;align-items:center}.cover-name{font-size:14px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.cover-cell{width:18px;height:18px;border-radius:5px;background:var(--line-soft)}.cover-cell--on{background:var(--berry)}.journal{position:relative;padding-left:18px}.journal:before{content:"";position:absolute;left:4px;top:6px;bottom:6px;width:1.5px;background:var(--line)}.journal-day{position:relative;padding-bottom:14px}.journal-day:last-child{padding-bottom:0}.journal-day:before{content:"";position:absolute;left:-17px;top:7px;width:7px;height:7px;border-radius:50%;background:var(--sub)}.journal-date{font-size:13px;font-weight:600;color:var(--sub)}.journal-line{font-size:14px;margin-top:2px;overflow-wrap:anywhere}.fold summary{list-style:none;cursor:pointer;display:flex;align-items:center;gap:6px;min-height:44px}.fold summary::-webkit-details-marker{display:none}.fold summary:after{content:"›";color:var(--sub);transform:rotate(90deg);transition:transform .15s var(--ease);font-size:16px}.fold[open] summary:after{transform:rotate(-90deg)}.wizard-steps{display:flex;gap:6px;margin:8px 0 20px}.wizard-steps i{height:4px;flex:1;border-radius:2px;background:var(--line);transition:background .2s var(--ease)}.wizard-steps i.on{background:var(--berry)}.wizard-title{font-size:28px;font-weight:300;line-height:1.2;letter-spacing:-.01em;text-wrap:balance}.dev-main-btn{position:fixed;left:16px;right:16px;bottom:calc(var(--tabbar-h) + 12px + env(safe-area-inset-bottom,0px));max-width:448px;margin:0 auto;z-index:var(--z-nav)}.tabbar{position:fixed;left:0;right:0;bottom:0;z-index:var(--z-nav);background:var(--bg);border-top:1px solid var(--line-soft);padding-bottom:env(safe-area-inset-bottom,0px)}.tabbar-inner{max-width:480px;margin:0 auto;display:flex}.tab{flex:1;min-height:var(--tabbar-h);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;color:var(--sub);transition:color .15s var(--ease)}.tab svg{width:23px;height:23px}.tab-label{font-size:11px;font-weight:500;line-height:1}.tab[aria-current=page]{color:var(--berry-ink)}.tab[aria-current=page] .tab-label{font-weight:700}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}
