:root{--paper:#070d1a;--paper-2:#0b1220;--card:#0f1829;--ink:#dde5f8;--ink-soft:#6b7fa8;--ink-faint:#38496a;--line:#182138;--forest:#4a8efa;--forest-deep:#1a4fd8;--sage:#2563c0;--sage-soft:#0d1e3d;--ember:#f97316;--ember-soft:#1e0e03;--berry:#f87171;--berry-soft:#2a0d0d;--sky:#a78bfa;--sky-soft:#160e30;--shadow:0 1px 3px #00000080, 0 6px 20px -8px #0009;--shadow-lift:0 2px 8px #0009, 0 16px 40px -12px #000000b3;--r:14px;--r-sm:9px;--bg-gradient:radial-gradient(ellipse at 20% 0%, #0d1e3d 0%, transparent 55%), radial-gradient(ellipse at 80% 100%, #0a1628 0%, transparent 55%);--sheet-bg:#0d1626;--overlay-bg:#070d1abf;--nav-bg:#0f1829e0;--motiv-bg:linear-gradient(135deg, #0f2060 0%, #0a1640 100%);--motiv-border:#1e3070;--motiv-q:#c8d8ff;--motiv-glow-1:#4a8efa33;--motiv-glow-2:#a78bfa1a}[data-theme=sasuke]{--paper:#000;--paper-2:#090909;--card:#0e0e0e;--ink:#e2e2e2;--ink-soft:#505050;--ink-faint:#282828;--line:#1c1c1c;--forest:#cc1118;--forest-deep:#8b0000;--sage:#8b0000;--sage-soft:#1c0000;--ember:#f97316;--ember-soft:#1c0900;--berry:#ef4444;--berry-soft:#1c0000;--sky:#9333ea;--sky-soft:#0e0520;--shadow:0 1px 3px #000c, 0 6px 20px -8px #000000e6;--shadow-lift:0 2px 8px #000000e6, 0 16px 40px -12px #000000f2;--bg-gradient:radial-gradient(ellipse at 20% 0%, #1a0000 0%, transparent 55%), radial-gradient(ellipse at 80% 100%, #050000 0%, transparent 55%);--sheet-bg:#0a0a0a;--overlay-bg:#000000d9;--nav-bg:#060606eb;--motiv-bg:linear-gradient(135deg, #1a0000 0%, #0d0000 100%);--motiv-border:#2d0000;--motiv-q:#fcc;--motiv-glow-1:#cc111840;--motiv-glow-2:#9333ea1a}[data-theme=rosa]{--paper:#0e0610;--paper-2:#170a1a;--card:#1e0d22;--ink:#fce7f3;--ink-soft:#b07090;--ink-faint:#6e3858;--line:#3a1244;--forest:#f472b6;--forest-deep:#db2777;--sage:#db2777;--sage-soft:#380d2a;--ember:#fb7185;--ember-soft:#2d0514;--berry:#f472b6;--berry-soft:#380d2a;--sky:#e879f9;--sky-soft:#1e0525;--shadow:0 1px 3px #0009, 0 6px 20px -8px #000000b3;--shadow-lift:0 2px 8px #000000b3, 0 16px 40px -12px #000c;--bg-gradient:radial-gradient(ellipse at 20% 0%, #2d0838 0%, transparent 55%), radial-gradient(ellipse at 80% 100%, #1a0520 0%, transparent 55%);--sheet-bg:#170a1a;--overlay-bg:#0a030ecc;--nav-bg:#140818e6;--motiv-bg:linear-gradient(135deg, #2d0838 0%, #1a0520 100%);--motiv-border:#4a1060;--motiv-q:#fce7f3;--motiv-glow-1:#f472b633;--motiv-glow-2:#e879f91f}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent;margin:0;padding:0}html,body{height:100%}body{background:var(--paper);background-image:var(--bg-gradient);color:var(--ink);-webkit-font-smoothing:antialiased;overscroll-behavior-y:none;font-family:Inter,system-ui,sans-serif}::selection{background:var(--sage-soft)}.serif{font-family:Space Grotesk,sans-serif}.app-shell{flex-direction:column;max-width:560px;min-height:100vh;margin:0 auto;display:flex;position:relative}.view{flex:1;padding:0 16px 120px;animation:.35s both fade}@keyframes fade{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}.stagger>*{opacity:0;animation:.4s forwards rise;transform:translateY(8px)}@keyframes rise{to{opacity:1;transform:none}}.stagger>:first-child{animation-delay:30ms}.stagger>:nth-child(2){animation-delay:80ms}.stagger>:nth-child(3){animation-delay:.13s}.stagger>:nth-child(4){animation-delay:.18s}.stagger>:nth-child(5){animation-delay:.23s}.stagger>:nth-child(6){animation-delay:.28s}.stagger>:nth-child(7){animation-delay:.33s}.section-label{letter-spacing:.08em;text-transform:uppercase;color:var(--ink-faint);margin:20px 2px 10px;font-size:11px;font-weight:600}.empty{text-align:center;color:var(--ink-faint);padding:28px 10px}.empty p{font-size:14px;line-height:1.6}.loader{background:var(--paper);z-index:99;place-items:center;transition:opacity .4s;display:grid;position:fixed;inset:0}.loader.hide{opacity:0;pointer-events:none}.spin{border:2px solid var(--line);border-top-color:var(--forest);border-radius:50%;width:32px;height:32px;animation:1s linear infinite sp}@keyframes sp{to{transform:rotate(360deg)}}@media (width>=600px){.greet{font-size:30px}}header{justify-content:space-between;align-items:flex-start;gap:12px;padding:24px 16px 12px;display:flex}.hello{letter-spacing:.08em;text-transform:uppercase;color:var(--ink-faint);font-size:11px;font-weight:600}.greet{letter-spacing:-.3px;margin-top:4px;font-size:26px;font-weight:700;line-height:1.15}.greet b{color:var(--forest);font-weight:700}.streak-badge{background:var(--card);border:1px solid var(--line);box-shadow:var(--shadow);cursor:default;border-radius:99px;flex-shrink:0;align-items:center;gap:6px;padding:8px 12px;display:flex}.streak-badge .flame{font-size:16px}.streak-badge .n{color:var(--forest);font-family:Space Grotesk,sans-serif;font-size:17px;font-weight:700;line-height:1}.streak-badge small{color:var(--ink-faint);letter-spacing:.06em;text-transform:uppercase;margin-top:1px;font-size:9px;display:block}.card{background:var(--card);border:1px solid var(--line);border-radius:var(--r);box-shadow:var(--shadow);margin-bottom:12px;padding:18px}.card-head{justify-content:space-between;align-items:center;margin-bottom:14px;display:flex}.card-title{letter-spacing:.07em;text-transform:uppercase;color:var(--ink-faint);align-items:center;gap:8px;font-size:11px;font-weight:700;display:flex}.card-title .dot{border-radius:50%;width:6px;height:6px}.link-btn{color:var(--forest);cursor:pointer;background:0 0;border:none;border-radius:6px;padding:4px 8px;font-size:12px;font-weight:600;transition:background .15s}.link-btn:hover{background:var(--sage-soft)}.motiv{background:var(--motiv-bg);color:var(--ink);border:1px solid var(--motiv-border);position:relative;overflow:hidden}.motiv:before{content:"";background:radial-gradient(circle, var(--motiv-glow-1), transparent 70%);pointer-events:none;border-radius:50%;width:160px;height:160px;position:absolute;top:-40px;right:-40px}.motiv:after{content:"";background:radial-gradient(circle, var(--motiv-glow-2), transparent 70%);pointer-events:none;border-radius:50%;width:100px;height:100px;position:absolute;bottom:-20px;left:-20px}.motiv .q{z-index:1;color:var(--motiv-q);font-family:Space Grotesk,sans-serif;font-size:18px;font-weight:600;line-height:1.4;position:relative}.motiv .who{color:var(--ink-faint);z-index:1;margin-top:10px;font-size:12px;position:relative}.bar{background:var(--line);border-radius:99px;height:6px;margin-top:10px;overflow:hidden}.bar i{border-radius:99px;height:100%;transition:width .7s cubic-bezier(.2,.7,.3,1);display:block}.metric{justify-content:space-between;align-items:baseline;display:flex}.metric .big{font-family:Space Grotesk,sans-serif;font-size:30px;font-weight:700;line-height:1}.metric .lab{color:var(--ink-soft);font-size:12px}.pct{color:var(--forest);font-family:Space Grotesk,sans-serif;font-weight:700}.ring-wrap{align-items:center;gap:18px;display:flex}.ring{flex-shrink:0;width:80px;height:80px;display:grid;position:relative}.ring svg{display:block;transform:rotate(-90deg)}.ring .lab{text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:1px;display:flex;position:absolute;inset:0}.ring .lab b{font-family:Space Grotesk,sans-serif;font-size:18px;font-weight:700;line-height:1}.ring .lab span{color:var(--ink-faint);text-transform:uppercase;letter-spacing:.05em;font-size:9px;line-height:1}.weight-grid{text-align:center;gap:8px;display:flex}.weight-grid>div{background:var(--paper-2);border-radius:var(--r-sm);flex:1;padding:12px 6px}.weight-grid .v{font-family:Space Grotesk,sans-serif;font-size:20px;font-weight:700}.weight-grid .k{color:var(--ink-faint);text-transform:uppercase;letter-spacing:.05em;margin-top:3px;font-size:10px}.quick-row{flex-wrap:wrap;gap:8px;margin-top:12px;display:flex}.chip{border:1px solid var(--line);background:var(--paper-2);cursor:pointer;color:var(--ink-soft);border-radius:8px;padding:8px 14px;font-family:inherit;font-size:13px;font-weight:600;transition:background .15s,border-color .15s}.chip:hover{background:var(--sage-soft);border-color:var(--forest);color:var(--forest)}.chip:active{transform:scale(.95)}.chip.accent{background:var(--sky-soft);border-color:var(--sky);color:var(--sky)}.manage-item{border-bottom:1px solid var(--line);align-items:center;gap:12px;padding:12px 2px;display:flex}.manage-item:last-child{border-bottom:none}.manage-item .emoji{font-size:18px}.manage-item .name{flex:1;font-size:14px;font-weight:600}.manage-item .meta{color:var(--ink-faint);margin-top:2px;font-size:11px}.manage-item .del{color:var(--ink-faint);cursor:pointer;background:0 0;border:none;border-radius:6px;padding:6px;font-size:16px;line-height:1;transition:color .15s,background .15s}.manage-item .del:hover{color:var(--berry);background:var(--berry-soft)}.stat-grid{grid-template-columns:1fr 1fr;gap:10px;display:grid}.stat{background:var(--paper-2);border-radius:var(--r-sm);padding:14px}.stat .v{font-family:Space Grotesk,sans-serif;font-size:26px;font-weight:700;line-height:1}.stat .k{color:var(--ink-soft);margin-top:6px;font-size:11px;font-weight:500}.habit{border-bottom:1px solid var(--line);cursor:pointer;border-radius:6px;align-items:center;gap:12px;padding:11px 4px;transition:background .15s;display:flex}.habit:last-child{border-bottom:none}.habit:active{opacity:.75}.check{border:1.5px solid var(--line);background:var(--paper-2);border-radius:50%;flex-shrink:0;place-items:center;width:28px;height:28px;transition:background .2s,border-color .2s;display:grid}.habit.done .check{background:var(--forest);border-color:var(--forest)}.check svg{stroke:#fff;stroke-width:2.5px;fill:none;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:20;stroke-dashoffset:20px;width:13px;height:13px;transition:stroke-dashoffset .25s}.habit.done .check svg{stroke-dashoffset:0}.habit .emoji{text-align:center;width:22px;font-size:18px}.habit .name{color:var(--ink);flex:1;font-size:14px;font-weight:500}.habit.done .name{color:var(--ink-faint);text-decoration:line-through;-webkit-text-decoration-color:var(--ink-faint);text-decoration-color:var(--ink-faint)}.counter{align-items:center;gap:8px;display:flex}.counter button{border:1px solid var(--line);background:var(--paper-2);width:28px;height:28px;color:var(--forest);cursor:pointer;border-radius:50%;place-items:center;font-size:16px;font-weight:700;line-height:1;transition:background .15s;display:grid}.counter button:hover{background:var(--sage-soft)}.counter button:active{transform:scale(.88)}.counter .val{text-align:center;min-width:38px;color:var(--ink);font-family:Space Grotesk,sans-serif;font-size:15px;font-weight:700}.counter .val small{color:var(--ink-faint);font-family:Inter,sans-serif;font-size:11px;font-weight:400}.barchart{align-items:flex-end;gap:6px;height:88px;margin-top:8px;display:flex}.barchart .col{flex-direction:column;flex:1;justify-content:flex-end;align-items:center;gap:5px;height:100%;display:flex}.barchart .stick{background:var(--line);border-radius:4px 4px 3px 3px;width:100%;max-width:24px;position:relative;overflow:hidden}.barchart .stick i{border-radius:4px 4px 3px 3px;transition:height .7s cubic-bezier(.2,.7,.3,1);position:absolute;bottom:0;left:0;right:0}.barchart .d{color:var(--ink-faint);letter-spacing:.03em;font-size:10px;font-weight:600}.barchart .col.today .d{color:var(--forest);font-weight:700}.heat{grid-template-columns:repeat(7,1fr);gap:5px;margin-top:8px;display:grid}.heat .cell{aspect-ratio:1;background:var(--line);border-radius:4px}.heat-leg{color:var(--ink-faint);justify-content:flex-end;align-items:center;gap:5px;margin-top:10px;font-size:11px;display:flex}.heat-leg i{border-radius:3px;width:10px;height:10px}.overlay{z-index:60;background:var(--overlay-bg);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);opacity:0;pointer-events:none;justify-content:center;align-items:flex-end;transition:opacity .25s;display:flex;position:fixed;inset:0}.overlay.open{opacity:1;pointer-events:auto}.sheet{background:var(--sheet-bg);border:1px solid var(--line);border-bottom:none;border-radius:18px 18px 0 0;width:100%;max-width:560px;max-height:88vh;padding:22px 18px 28px;transition:transform .32s cubic-bezier(.2,.8,.25,1);overflow-y:auto;transform:translateY(100%)}.overlay.open .sheet{transform:none}.sheet h3{color:var(--ink);margin-bottom:4px;font-family:Space Grotesk,sans-serif;font-size:20px;font-weight:700}.sheet .sub{color:var(--ink-soft);margin-bottom:20px;font-size:13px;line-height:1.5}.field{margin-bottom:14px}.field label{text-transform:uppercase;letter-spacing:.07em;color:var(--ink-faint);margin-bottom:7px;font-size:11px;font-weight:700;display:block}.field input,.field select{border-radius:var(--r-sm);border:1px solid var(--line);background:var(--paper-2);width:100%;color:var(--ink);appearance:none;padding:12px 14px;font-family:Inter,sans-serif;font-size:15px;font-weight:500;transition:border-color .18s}.field input:focus,.field select:focus{border-color:var(--forest);outline:none}.btn{border-radius:var(--r-sm);background:var(--forest);color:#fff;cursor:pointer;letter-spacing:.01em;border:none;width:100%;margin-top:6px;padding:14px;font-family:Inter,sans-serif;font-size:15px;font-weight:700;transition:opacity .15s}.btn:hover{opacity:.88}.btn:active{opacity:.75;transform:scale(.98)}.btn.ghost{color:var(--ink-soft);box-shadow:none;border:1px solid var(--line);background:0 0}.btn.danger{background:var(--berry-soft);color:var(--berry);border:1px solid var(--berry-soft)}.emoji-pick{flex-wrap:wrap;gap:7px;margin-bottom:4px;display:flex}.emoji-pick button{border:1px solid var(--line);background:var(--paper-2);cursor:pointer;border-radius:8px;width:40px;height:40px;font-size:19px;transition:border-color .15s,background .15s}.emoji-pick button:hover{border-color:var(--forest)}.emoji-pick button.sel{border-color:var(--forest);background:var(--sage-soft)}.subject-chips{flex-wrap:wrap;gap:7px;display:flex}.subject-chip{border:1px solid var(--line);background:var(--paper-2);color:var(--ink-soft);cursor:pointer;border-radius:99px;align-items:center;gap:5px;padding:6px 12px;font-family:inherit;font-size:13px;font-weight:500;transition:border-color .15s,background .15s,color .15s;display:flex}.subject-chip:hover{border-color:var(--ink-soft);color:var(--ink)}.subject-chip.on{font-weight:600}.chip-check{font-size:11px;font-weight:800;line-height:1}.chip-remove{cursor:pointer;opacity:.55;color:inherit;background:0 0;border:none;align-items:center;padding:0 0 0 5px;font-family:inherit;font-size:10px;line-height:1;transition:opacity .15s;display:flex}.chip-remove:hover{opacity:1}.subject-add-input{border-radius:var(--r-sm);border:1px dashed var(--line);background:var(--paper-2);color:var(--ink);outline:none;flex:1;padding:10px 14px;font-family:Inter,sans-serif;font-size:14px;transition:border-color .18s}.subject-add-input:focus{border-color:var(--forest);border-style:solid}.subject-add-input::placeholder{color:var(--ink-faint)}.complete-toast{z-index:80;background:var(--card);border:1px solid var(--forest);color:var(--ink);box-shadow:var(--shadow-lift), 0 0 20px #4a8efa26;white-space:nowrap;border-radius:99px;align-items:center;gap:8px;padding:11px 20px;font-size:13px;font-weight:600;transition:transform .4s cubic-bezier(.2,.9,.3,1);display:flex;position:fixed;top:16px;left:50%;transform:translate(-50%)translateY(-100px)}.complete-toast.show{transform:translate(-50%)translateY(0)}nav{z-index:40;padding:0 0 max(14px, env(safe-area-inset-bottom));justify-content:center;display:flex;position:fixed;bottom:0;left:0;right:0}.nav-inner{background:var(--nav-bg);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);border:1px solid var(--line);box-shadow:var(--shadow-lift);border-radius:99px;gap:2px;padding:5px;display:flex}.nav-inner button{cursor:pointer;color:var(--ink-faint);background:0 0;border:none;border-radius:99px;flex-direction:column;align-items:center;gap:3px;padding:8px 14px;font-family:Inter,sans-serif;transition:color .2s,background .2s;display:flex}.nav-inner button svg{stroke:currentColor;fill:none;stroke-width:1.75px;stroke-linecap:round;stroke-linejoin:round;width:20px;height:20px}.nav-inner button span{letter-spacing:.03em;font-size:10px;font-weight:700}.nav-inner button.active{background:var(--forest);color:#fff}.nav-inner button:not(.active):hover{color:var(--ink-soft);background:var(--sage-soft)}.meal-row{justify-content:space-between;align-items:center;gap:12px;display:flex}.meal-info{align-items:center;gap:12px;display:flex}.meal-emoji{font-size:28px}.meal-count{font-family:Space Grotesk,sans-serif;font-size:26px;font-weight:700;line-height:1}.meal-target{color:var(--ink-soft);font-size:15px;font-weight:500}.meal-label{color:var(--ink-soft);margin-top:2px;font-size:12px}.meal-btns{gap:8px;display:flex}.count-btn{border:1px solid var(--line);background:var(--paper-2);width:38px;height:38px;color:var(--ink);cursor:pointer;border-radius:50%;justify-content:center;align-items:center;font-family:Space Grotesk,sans-serif;font-size:20px;font-weight:700;line-height:1;transition:background .15s,border-color .15s;display:flex}.count-btn:hover:not(:disabled){background:var(--sage-soft);border-color:var(--forest)}.count-btn:active:not(:disabled){transform:scale(.92)}.count-btn:disabled{opacity:.35;cursor:default}.count-btn.accent{background:var(--forest);color:#fff;border-color:var(--forest)}.count-btn.accent:hover{opacity:.88;background:var(--forest)}.foods-label{text-transform:uppercase;letter-spacing:.07em;color:var(--ink-faint);margin-bottom:9px;font-size:11px;font-weight:700}.food-chips{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.food-chip{border:1px solid var(--line);background:var(--paper-2);color:var(--ink-soft);cursor:pointer;border-radius:99px;padding:5px 10px;font-family:inherit;font-size:13px;font-weight:500;transition:border-color .15s,background .15s}.food-chip:hover{border-color:var(--berry);background:var(--berry-soft);color:var(--berry)}.food-chip-x{opacity:.5;margin-left:3px}.add-chip{color:var(--forest);border-color:var(--forest);background:var(--sage-soft)}.add-chip:hover{background:var(--sage-soft);border-color:var(--forest);color:var(--forest);opacity:.8}.food-add-form{align-items:center;gap:6px;display:flex}.food-input{border:1px solid var(--forest);background:var(--paper-2);color:var(--ink);border-radius:99px;outline:none;width:160px;padding:5px 10px;font-family:inherit;font-size:13px}.food-confirm-btn{background:var(--forest);color:#fff;cursor:pointer;border:none;border-radius:50%;justify-content:center;align-items:center;width:28px;height:28px;font-size:14px;display:flex}.workout-done-row{align-items:center;gap:12px;display:flex}.workout-icon{font-size:28px}.workout-done-info{flex:1}.workout-done-type{font-size:15px;font-weight:700}.workout-done-meta{color:var(--ink-soft);margin-top:2px;font-size:12px}.workout-done-actions{flex-direction:column;align-items:flex-end;gap:4px;display:flex}.workout-check{color:var(--forest);font-size:13px;font-weight:700}.workout-empty-card{cursor:pointer;transition:border-color .15s}.workout-empty-card:hover{border-color:var(--forest)}.workout-empty-inner{align-items:center;gap:14px;display:flex}.workout-empty-title{font-size:15px;font-weight:700}.workout-empty-sub{color:var(--ink-soft);margin-top:2px;font-size:13px}.workout-arrow{color:var(--ink-faint);margin-left:auto}.weekday-row{grid-template-columns:repeat(7,1fr);gap:5px;margin-bottom:4px;display:grid}.weekday-lbl{text-transform:uppercase;letter-spacing:.05em;color:var(--ink-faint);text-align:center;font-size:9px;font-weight:700}.heat-leg-i{border-radius:3px;width:10px;height:10px;display:inline-block}.workout-history-row{border-bottom:1px solid var(--line);align-items:center;gap:12px;padding:12px 18px;display:flex}.workout-history-row:last-child{border-bottom:none}.workout-history-icon{font-size:20px}.workout-history-info{flex:1}.workout-history-type{font-size:14px;font-weight:600}.workout-history-meta{color:var(--ink-soft);margin-top:2px;font-size:12px}
