:root{--canvas:#0b0d11;--card:#171a20;--raised:#1f232c;--sunken:#0c0e13;--line:#272c36;--line-soft:#1d212a;--edge:inset 0 1px 0 #ffffff0d;--lift:0 1px 2px #0006, 0 8px 24px -12px #0009;--ink:#f1f3f6;--ink-2:#a2a8b4;--ink-3:#6c7382;--accent:#4f8ff7;--accent-ink:#fff;--accent-soft:#4f8ff729;--accent-line:#4f8ff773;--good:#3ddc97;--warn:#f0b429;--bad:#f2555a;--good-soft:#3ddc9724;--warn-soft:#f0b42924;--bad-soft:#f2555a24;--a-casa:#e8a13c;--a-lavoro:#5ec8d8;--a-studio:#a78bfa;--a-vita:#d97ad3;--sans:-apple-system, BlinkMacSystemFont, "Segoe UI", system-ui, Roboto, sans-serif;--num:ui-monospace, "SF Mono", "JetBrains Mono", Menlo, monospace;--r-sm:12px;--r:20px;--r-lg:28px;--gutter:16px;--safe-t:env(safe-area-inset-top,0px);--safe-b:env(safe-area-inset-bottom,0px);--safe-l:env(safe-area-inset-left,0px);--safe-r:env(safe-area-inset-right,0px);--tabbar:60px;--ease:cubic-bezier(.2, .8, .2, 1);--fast:.14s;--base:.26s;--slow:.56s;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;font:16px/1.45 var(--sans);color:var(--ink);background:var(--canvas);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizelegibility;-webkit-tap-highlight-color:transparent}@media (prefers-color-scheme:light){:root:not([data-theme=dark]){--canvas:#f6f7f9;--card:#fff;--raised:#f0f2f5;--sunken:#eaecf0;--line:#e1e4ea;--line-soft:#edeff3;--ink:#13161c;--ink-2:#545a67;--ink-3:#858b99;--accent:#2563eb;--accent-soft:#2563eb1a;--accent-line:#2563eb59;--edge:inset 0 0 0 1px #11141c0f;--lift:0 1px 2px #11141c0d, 0 8px 22px -14px #11141c38;--good:#14956a;--warn:#b57a00;--bad:#d13438;--good-soft:#14956a1f;--warn-soft:#b57a001f;--bad-soft:#d134381f;--a-casa:#b8720c;--a-lavoro:#0f8a97;--a-studio:#7c53e8;--a-vita:#b03fa8;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}}@keyframes rise{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}@keyframes fade-in{0%{opacity:0}to{opacity:1}}@keyframes wipe{0%{clip-path:inset(0 100% 0 0)}to{clip-path:inset(0)}}@keyframes grow{0%{opacity:.35;transform:scaleY(0)}to{opacity:1;transform:none}}@keyframes settle{0%{opacity:1;transform:none}to{opacity:0;transform:translate(28px)scale(.97)}}*{box-sizing:border-box}html,body,#root{min-height:100svh;margin:0;padding:0}body{background:var(--canvas);overscroll-behavior-y:none}button,input,select,textarea{font:inherit;color:inherit}a{color:inherit;text-decoration:none}.app{min-height:100svh;padding-bottom:calc(var(--tabbar) + var(--safe-b) + 28px);flex-direction:column;display:flex}.app:after{content:"";height:calc(var(--tabbar) + var(--safe-b) + 34px);background:linear-gradient(to bottom, transparent, var(--canvas) 62%);pointer-events:none;z-index:19;position:fixed;bottom:0;left:0;right:0}.screen>:first-child{--stagger:0s}.screen>:nth-child(2){--stagger:40ms}.screen>:nth-child(3){--stagger:80ms}.screen>:nth-child(4){--stagger:.12s}.screen>:nth-child(5){--stagger:.16s}.screen>:nth-child(6){--stagger:.2s}.screen>:nth-child(7){--stagger:.24s}.screen>:nth-child(8){--stagger:.28s}.screen>:nth-child(9){--stagger:.32s}.screen>:nth-child(n+10){--stagger:.36s}.screen{animation:fade-in var(--fast) var(--ease);padding:0 var(--gutter);padding-left:calc(var(--gutter) + var(--safe-l));padding-right:calc(var(--gutter) + var(--safe-r));flex:1;width:100%;max-width:720px;margin:0 auto}.screen-head{padding:calc(var(--safe-t) + 20px) 0 14px;justify-content:space-between;align-items:baseline;gap:12px;display:flex}.screen-title{letter-spacing:-.03em;margin:0;font-size:1.65rem;font-weight:660}.screen-sub{color:var(--ink-3);margin:2px 0 0;font-size:.82rem}.icon-btn{background:var(--raised);width:36px;height:36px;color:var(--ink-2);cursor:pointer;transition:transform var(--fast) var(--ease);border:0;border-radius:99px;flex:none;justify-content:center;align-items:center;padding:0;display:inline-flex}.icon-btn:active{transform:scale(.9)}.icon-btn svg{width:18px;height:18px}.card{background:var(--card);border-radius:var(--r);box-shadow:var(--edge), var(--lift);animation:rise var(--base) var(--ease) var(--stagger,0s) backwards;border:0;margin-bottom:12px;padding:18px}a.card{transition:transform .12s,background .12s;display:block}a.card:active{background:var(--raised);transform:scale(.985)}.card-head{justify-content:space-between;align-items:center;gap:10px;margin-bottom:14px;display:flex}.card-title{letter-spacing:.07em;text-transform:uppercase;color:var(--ink-3);margin:0;font-size:.75rem;font-weight:600}.card.is-tight{padding:14px 16px}.day-line{letter-spacing:-.02em;margin:0;font-size:1.35rem;font-weight:620;line-height:1.25}.day-meta{color:var(--ink-3);margin:8px 0 0;font-size:.82rem}.load{height:8px;animation:wipe var(--slow) var(--ease) var(--stagger,0s) backwards;gap:3px;margin-top:14px;display:flex}.load-seg{opacity:.85;background:currentColor;border-radius:99px;min-width:6px;height:100%}.load-seg.is-done{opacity:.28}.load-rest{background:var(--sunken);border-radius:99px;flex:1;min-width:8px}.signals{gap:8px;margin-bottom:14px;display:grid}.signal{border-radius:var(--r-sm);background:var(--raised);border:1px solid var(--line-soft);color:var(--ink-2);animation:rise var(--base) var(--ease) backwards;border-left:3px solid var(--line);align-items:flex-start;gap:10px;padding:11px 14px;font-size:.85rem;line-height:1.4;display:flex}.signal.is-warn{border-left-color:var(--warn)}.signal.is-bad{border-left-color:var(--bad)}.signal.is-good{border-left-color:var(--good)}.signal svg{width:16px;height:16px;color:var(--ink-3);flex:none;margin-top:1px}a.signal:active{background:var(--card)}.item{border-radius:var(--r-sm);background:var(--card);box-shadow:var(--edge), var(--lift);animation:rise var(--base) var(--ease) var(--stagger,0s) backwards;align-items:flex-start;gap:12px;margin-bottom:8px;padding:13px 14px;display:flex}.item.is-going{animation:settle var(--fast) var(--ease) forwards;pointer-events:none}.tick{border:2px solid var(--line);width:26px;height:26px;color:var(--good);cursor:pointer;transition:transform var(--fast) var(--ease), border-color var(--fast) var(--ease), background var(--fast) var(--ease);background:0 0;border-radius:99px;flex:none;justify-content:center;align-items:center;margin-top:1px;display:flex;position:relative}.tick:after{content:"";position:absolute;inset:-9px}.tick:active{transform:scale(.88)}.tick svg{opacity:0;width:15px;height:15px;transition:opacity var(--fast) var(--ease)}.tick.is-on{border-color:var(--good);background:var(--good-soft)}.tick.is-on svg{opacity:1}.item-main{flex:1;min-width:0}.item-title{-webkit-line-clamp:2;-webkit-box-orient:vertical;font-size:.96rem;font-weight:540;line-height:1.3;display:-webkit-box;overflow:hidden}.item-why{color:var(--ink-3);align-items:center;gap:6px;margin-top:4px;font-size:.76rem;display:flex}.item-why.is-late{color:var(--bad)}.item-why.is-exam{color:var(--warn)}.item-dot{background:currentColor;border-radius:99px;flex:none;width:7px;height:7px}.item-area{color:var(--ink-2)}.item-more{width:32px;height:32px;color:var(--ink-3);cursor:pointer;background:0 0;border:0;border-radius:99px;flex:none;justify-content:center;align-items:center;display:flex}.item-more:active{background:var(--raised)}.item-more svg{width:18px;height:18px}.item-nag{border-top:1px dashed var(--line);color:var(--ink-3);flex-wrap:wrap;align-items:center;gap:8px;margin-top:10px;padding-top:10px;font-size:.78rem;display:flex}.effort{flex:none;align-items:center;gap:2px;display:inline-flex}.effort i{background:var(--ink-3);opacity:.3;border-radius:99px;width:4px;height:4px}.effort i.is-on{opacity:1}.overflow{border:1px dashed var(--line);border-radius:var(--r-sm);width:100%;color:var(--ink-3);cursor:pointer;background:0 0;justify-content:center;align-items:center;gap:6px;margin-top:4px;padding:12px;font-size:.82rem;display:flex}.row{border-bottom:1px solid var(--line-soft);text-align:left;cursor:pointer;width:100%;transition:opacity var(--fast) var(--ease);background:0 0;border-top:0;border-left:0;border-right:0;align-items:center;gap:12px;padding:11px 0;display:flex}.row:active{opacity:.55}.row:last-child{border-bottom:0}.row-main{flex:1;min-width:0}.row-title{text-overflow:ellipsis;white-space:nowrap;font-size:.94rem;font-weight:520;overflow:hidden}.row-sub{color:var(--ink-3);text-overflow:ellipsis;white-space:nowrap;font-size:.76rem;overflow:hidden}.row-title.is-done{color:var(--ink-3);text-decoration:line-through}.note-text{color:var(--ink-3);margin:0;font-size:.78rem;line-height:1.45}.row-side{font-family:var(--num);font-variant-numeric:tabular-nums;color:var(--ink-3);flex:none;font-size:.8rem}.day-label{z-index:2;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-3);background:linear-gradient(var(--canvas) 70%, transparent);padding:14px 0 6px;font-size:.74rem;font-weight:600;position:sticky;top:0}.timeline{gap:0;display:grid}.day-block{border-bottom:1px solid var(--line-soft);grid-template-columns:54px 1fr;gap:12px;padding:12px 0;display:grid}.day-block:last-child{border-bottom:0}.day-when{text-align:center;padding-top:2px}.day-num{font-family:var(--num);letter-spacing:-.03em;font-size:1.2rem;font-weight:620;line-height:1}.day-dow{text-transform:uppercase;letter-spacing:.06em;color:var(--ink-3);margin-top:3px;font-size:.66rem;display:block}.day-block.is-today .day-num{color:var(--accent)}.day-block.is-weekend .day-dow{color:var(--ink-2)}.day-things{gap:7px;min-width:0;display:grid}.thing{align-items:center;gap:8px;min-width:0;font-size:.88rem;display:flex}.thing span{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.thing svg{flex:none;width:15px;height:15px}.dim{color:var(--ink-3)}.thing.is-exam{color:var(--warn);font-weight:600}.countdown{align-items:baseline;gap:8px;display:flex}.countdown-num{font-family:var(--num);letter-spacing:-.04em;font-variant-numeric:tabular-nums;font-size:2.6rem;font-weight:620;line-height:1}.countdown-unit{color:var(--ink-3);font-size:.85rem}.countdown.is-close .countdown-num{color:var(--warn)}.countdown.is-now .countdown-num{color:var(--bad)}.prep{background:var(--sunken);border-radius:99px;height:6px;margin-top:12px;overflow:hidden}.prep-fill{background:var(--a-studio);height:100%;transition:width .32s var(--ease);border-radius:99px}.rhythm{align-items:flex-end;gap:4px;height:54px;margin-top:4px;display:flex}.rhythm-day{flex-direction:column;flex:1;justify-content:flex-end;min-width:0;height:100%;display:flex}.rhythm-bar{background:var(--accent);transform-origin:bottom;animation:grow var(--base) var(--ease) backwards;border-radius:4px;min-height:3px}.rhythm-bar.is-empty{background:var(--line)}.rhythm-bar.is-today{background:var(--good)}.rhythm-axis{color:var(--ink-3);justify-content:space-between;margin-top:8px;font-size:.68rem;display:flex}.balance{gap:10px;display:grid}.balance-row{grid-template-columns:62px 1fr auto;align-items:center;gap:10px;font-size:.82rem;display:grid}.balance-name{color:var(--ink-2)}.balance-track{background:var(--sunken);border-radius:99px;height:8px;overflow:hidden}.balance-fill{height:100%;animation:wipe var(--slow) var(--ease) backwards;background:currentColor;border-radius:99px;min-width:3px}.balance-count{font-family:var(--num);font-variant-numeric:tabular-nums;color:var(--ink-3)}.chip{white-space:nowrap;transition:transform var(--fast) var(--ease), background var(--fast) var(--ease);border:1px solid #0000;border-radius:99px;align-items:center;gap:6px;padding:4px 10px;font-size:.76rem;font-weight:560;display:inline-flex}.chip.is-good{background:var(--good-soft);color:var(--good)}.chip.is-warn{background:var(--warn-soft);color:var(--warn)}.chip.is-bad{background:var(--bad-soft);color:var(--bad)}.chip.is-plain{background:var(--raised);color:var(--ink-2)}.filters{flex-wrap:wrap;gap:6px;margin-bottom:14px;display:flex}.filters .chip{cursor:pointer;min-height:32px;font-family:inherit}.filters .chip:active,a.chip:active,button.chip:active{transform:scale(.94)}.chip.is-on{background:var(--accent-soft);border-color:var(--accent-line);color:var(--ink)}.dot{background:currentColor;border-radius:3px;flex:none;width:9px;height:9px}.tabbar{left:50%;bottom:calc(var(--safe-b) + 12px);z-index:20;width:calc(100% - 2 * var(--gutter) - var(--safe-l) - var(--safe-r));max-width:440px;height:var(--tabbar);background:var(--raised);box-shadow:var(--edge), 0 2px 6px #00000059, 0 14px 34px -10px #000000b3;border-radius:99px;padding:0 4px;display:flex;position:fixed;transform:translate(-50%)}.tab{color:var(--ink-3);letter-spacing:.02em;cursor:pointer;background:0 0;border:0;border-radius:99px;flex-direction:column;flex:1;justify-content:center;align-items:center;gap:3px;min-height:44px;font-size:.62rem;font-weight:560;display:flex}.tab.is-active{color:var(--accent)}.tab svg{width:22px;height:22px;transition:transform var(--base) var(--ease)}.tab.is-active svg{transform:scale(1.08)}.tab:active svg{transform:scale(.88)}.tab-mark{border-radius:99px;justify-content:center;align-items:center;width:46px;height:28px;transition:background .14s;display:flex}.tab.is-active .tab-mark{background:var(--accent-soft)}.tab.is-primary .tab-mark{background:var(--accent);color:var(--accent-ink)}.btn{border-radius:var(--r-sm);background:var(--accent);min-height:48px;color:var(--accent-ink);cursor:pointer;width:100%;transition:transform var(--fast) var(--ease), opacity var(--fast) var(--ease);border:1px solid #0000;justify-content:center;align-items:center;gap:8px;padding:0 18px;font-size:.95rem;font-weight:600;display:inline-flex}.btn:active:not(:disabled){transform:scale(.98)}.btn:disabled{opacity:.45;cursor:not-allowed}.btn.is-quiet{background:var(--raised);color:var(--ink);border-color:var(--line)}.btn.is-danger{background:var(--bad-soft);color:var(--bad);border-color:#0000}.btn.is-inline{width:auto;min-height:38px;padding:0 14px;font-size:.85rem}.field{margin-bottom:14px}.label{color:var(--ink-3);margin-bottom:6px;font-size:.76rem;font-weight:560;display:block}.input{border-radius:var(--r-sm);border:1px solid var(--line);background:var(--raised);width:100%;min-height:48px;color:var(--ink);outline:none;padding:0 14px}textarea.input{resize:vertical;min-height:84px;padding:12px 14px;line-height:1.45}.input:focus{border-color:var(--accent-line);box-shadow:0 0 0 3px var(--accent-soft)}.input::placeholder{color:var(--ink-3)}select.input{appearance:none}input[type=date].input{appearance:none;align-items:center;min-width:0;max-width:100%}input[type=date].input::-webkit-date-and-time-value{text-align:left;min-width:0;margin:0}.check{cursor:pointer;align-items:flex-start;gap:11px;padding:4px 0;display:flex}.check input{width:20px;height:20px;accent-color:var(--accent);flex:none;margin:1px 0 0}.check-text{color:var(--ink);font-size:.9rem;line-height:1.35}.check-hint{color:var(--ink-3);margin-top:3px;font-size:.76rem;display:block}.big-input{width:100%;color:var(--ink);letter-spacing:-.01em;resize:none;background:0 0;border:0;outline:none;padding:6px 0 10px;font-size:1.3rem;font-weight:560;line-height:1.35}.big-input::placeholder{color:var(--ink-3);font-weight:460}.seg{background:var(--sunken);box-shadow:var(--edge);border:0;border-radius:99px;grid-auto-columns:1fr;grid-auto-flow:column;gap:3px;margin-bottom:14px;padding:3px;display:grid}.seg button{min-height:36px;color:var(--ink-3);cursor:pointer;background:0 0;border:0;border-radius:99px;padding:0 6px;font-size:.82rem;font-weight:600;transition:background .14s,color .14s}.seg button.is-on{background:var(--raised);color:var(--ink);box-shadow:0 1px 3px #00000059}.areas{grid-template-columns:repeat(4,1fr);gap:6px;display:grid}.area-pick{border-radius:var(--r-sm);border:1px solid var(--line);background:var(--raised);color:var(--ink-3);cursor:pointer;transition:transform var(--fast) var(--ease), border-color var(--fast) var(--ease);flex-direction:column;align-items:center;gap:5px;padding:10px 4px;font-size:.74rem;font-weight:560;display:flex}.area-pick:active{transform:scale(.96)}.area-pick i{background:currentColor;border-radius:3px;width:10px;height:10px}.area-pick.is-on{color:var(--ink);background:color-mix(in srgb, currentColor 12%, var(--raised));border-color:currentColor}.empty{text-align:center;color:var(--ink-3);padding:36px 20px;font-size:.9rem;line-height:1.5}.empty strong{color:var(--ink-2);margin-bottom:6px;font-size:1rem;font-weight:600;display:block}.error{background:var(--bad-soft);color:var(--bad);border-radius:var(--r-sm);margin-bottom:12px;padding:11px 14px;font-size:.85rem}.notice{background:var(--raised);border:1px solid var(--line);border-radius:var(--r-sm);color:var(--ink-2);margin-bottom:12px;padding:11px 14px;font-size:.82rem}.skeleton{background:linear-gradient(90deg, var(--raised) 25%, var(--line) 37%, var(--raised) 63%);border-radius:var(--r-sm);background-size:400% 100%;animation:1.3s ease-in-out infinite shimmer}@keyframes shimmer{0%{background-position:100% 0}to{background-position:0 0}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}.sheet-backdrop{z-index:40;animation:fade-in var(--fast) var(--ease);background:#0000008c;justify-content:center;align-items:flex-end;display:flex;position:fixed;inset:0}.sheet{background:var(--card);border:1px solid var(--line);border-radius:var(--r-lg) var(--r-lg) 0 0;width:100%;max-width:560px;max-height:88svh;padding-bottom:var(--safe-b);animation:sheet-up var(--base) var(--ease);border-bottom:0;flex-direction:column;display:flex;box-shadow:0 -12px 40px #00000073}@keyframes sheet-up{0%{opacity:0;transform:translateY(34px)}to{opacity:1;transform:none}}.sheet-head{padding:16px var(--gutter) 12px;border-bottom:1px solid var(--line-soft);justify-content:space-between;align-items:center;gap:12px;display:flex}.sheet-title{margin:0;font-size:1rem;font-weight:620}.sheet-close{border:1px solid var(--line);background:var(--raised);width:34px;height:34px;color:var(--ink-2);cursor:pointer;border-radius:99px;flex:none;line-height:1}.sheet-body{padding:14px var(--gutter);-webkit-overflow-scrolling:touch;flex:1;overflow-y:auto}.sheet-foot{padding:12px var(--gutter) 16px;border-top:1px solid var(--line-soft);gap:8px;display:grid}.menu{display:grid}.menu button{border:0;border-bottom:1px solid var(--line-soft);width:100%;color:var(--ink);text-align:left;cursor:pointer;background:0 0;align-items:center;gap:12px;padding:15px 4px;font-size:.95rem;display:flex}.menu button:last-child{border-bottom:0}.menu button:active{opacity:.6}.menu button svg{width:18px;height:18px;color:var(--ink-3);flex:none}.menu button.is-danger,.menu button.is-danger svg{color:var(--bad)}
