:root{--bg: var(--tg-theme-bg-color, #ffffff);--bg2: var(--tg-theme-secondary-bg-color, #f2f2f7);--fg: var(--tg-theme-text-color, #111111);--hint: var(--tg-theme-hint-color, #6b6b70);--link: var(--tg-theme-link-color, #2481cc);--btn: var(--tg-theme-button-color, #2481cc);--btn-fg: var(--tg-theme-button-text-color, #ffffff);--accent: var(--tg-theme-accent-text-color, #2481cc);--section: var(--tg-theme-section-bg-color, #ffffff);--radius: 14px;--gap: 12px;--nav-h: 56px}:root[data-scheme=dark]{--bg: var(--tg-theme-bg-color, #17212b);--bg2: var(--tg-theme-secondary-bg-color, #232e3c);--fg: var(--tg-theme-text-color, #f5f5f5);--hint: var(--tg-theme-hint-color, #9aa6b2);--section: var(--tg-theme-section-bg-color, #17212b)}*{box-sizing:border-box}html,body{margin:0;background:var(--bg);color:var(--fg)}body{font:16px/1.45 -apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Noto Sans Arabic,Noto Sans,sans-serif;min-height:100vh;overflow-x:hidden}#root{display:flex;flex-direction:column;min-height:100vh}.banner{background:var(--bg2);color:var(--hint);font-size:13px;padding:6px 16px;text-align:center;position:sticky;inset-block-start:0;z-index:2}.screen{flex:1;padding:12px 16px calc(var(--nav-h) + 24px);max-inline-size:640px;margin-inline:auto;inline-size:100%;min-inline-size:0;overflow-wrap:anywhere}h1{font-size:22px;margin:8px 0 12px}h2{font-size:17px;margin:18px 0 8px;color:var(--hint);font-weight:600}p{margin:6px 0}.hint{color:var(--hint);font-size:14px}.note{color:var(--hint);font-size:13px;border-inline-start:3px solid var(--accent);padding-inline-start:10px;margin-block:10px}.card{background:var(--section);border-radius:var(--radius);padding:12px;margin-block-end:var(--gap);box-shadow:0 1px 2px #00000014}.card-row{display:flex;gap:12px;align-items:flex-start}.card-row>*{min-inline-size:0}.card-row>div{flex:1 1 auto}.thumb{inline-size:72px;block-size:72px;object-fit:cover;border-radius:10px;flex:none;background:var(--bg2)}.card h3{margin:0 0 4px;font-size:16px;overflow-wrap:anywhere}.meta{color:var(--hint);font-size:13px}.chips{display:flex;flex-wrap:wrap;gap:6px;margin-block:6px;min-inline-size:0}.chip{max-inline-size:100%;overflow-wrap:anywhere}.chip{background:var(--bg2);border-radius:999px;padding:2px 10px;font-size:13px}.chip.reached{background:color-mix(in srgb,var(--accent) 18%,var(--bg2))}button{font:inherit;border:0;border-radius:12px;padding:10px 14px;background:var(--btn);color:var(--btn-fg);cursor:pointer;min-block-size:44px}button.ghost{background:var(--bg2);color:var(--fg)}button:disabled{opacity:.5;cursor:default}.btn-row{display:flex;gap:8px;flex-wrap:wrap;margin-block:8px}.btn-row>button{max-inline-size:100%}.list{list-style:none;padding:0;margin:0}.list li{padding:8px 0;border-block-end:1px solid var(--bg2);display:flex;justify-content:space-between;gap:8px}.list li>span:first-child{min-inline-size:0;overflow-wrap:anywhere}.list li>.chip{flex:none}.list li:last-child{border-block-end:0}.steps{padding-inline-start:20px;margin:6px 0}.week,.month{display:grid;grid-template-columns:repeat(7,1fr);gap:4px;margin-block:8px}.day{border-radius:10px;padding:6px 0;min-inline-size:0;overflow:hidden;text-align:center;background:var(--bg2);color:var(--fg);min-block-size:44px;font-size:14px}.day.empty{background:transparent}.day.selected{outline:2px solid var(--accent)}.day.today{font-weight:700}.day .dots{display:block;font-size:10px;color:var(--accent);letter-spacing:1px}.dow{text-align:center;font-size:12px;color:var(--hint)}.nav{position:fixed;inset-block-end:0;inset-inline:0;block-size:var(--nav-h);display:grid;grid-template-columns:repeat(6,1fr);background:var(--section);border-block-start:1px solid var(--bg2);padding-block-end:env(safe-area-inset-bottom);z-index:2}.nav a{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;color:var(--hint);text-decoration:none;font-size:10px;min-block-size:44px;min-inline-size:0;padding-inline:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.nav a>span:last-child{max-inline-size:100%;overflow:hidden;text-overflow:ellipsis}.nav a.active{color:var(--accent)}.nav .ico{font-size:18px;line-height:1}.mic{inline-size:96px;block-size:96px;border-radius:50%;font-size:36px;display:block;margin:24px auto}.credit{color:var(--hint);font-size:12px;margin-block-start:18px;text-align:center}.kv{display:grid;grid-template-columns:1fr 1fr;gap:4px 12px;font-size:14px}.kv dt{color:var(--hint)}.kv dd{margin:0;overflow-wrap:anywhere}[dir=rtl] .mirror{transform:scaleX(-1)}img,audio,pre,dl{max-inline-size:100%}pre{white-space:pre-wrap;overflow-wrap:anywhere}.back{padding:6px 10px;min-block-size:36px;font-size:14px;margin-block-end:4px}.back .mirror{display:inline-block;font-size:18px;line-height:1}:root{--kind-meal: #d9822b;--kind-workout: #2f9e73;--kind-checkin: #6b5bd6;--path: color-mix(in srgb, var(--accent) 35%, var(--bg2))}:root[data-scheme=dark]{--kind-meal: #f0a04b;--kind-workout: #4cc294;--kind-checkin: #9b8df2}.dot{display:inline-block;inline-size:7px;block-size:7px;border-radius:50%;background:var(--hint);flex:none}.dot.meal{background:var(--kind-meal)}.dot.workout{background:var(--kind-workout)}.dot.checkin{background:var(--kind-checkin)}.day .dots{display:flex;justify-content:center;gap:3px;margin-block-start:3px;min-block-size:7px}.day .dots .dot{inline-size:5px;block-size:5px}.day:disabled{opacity:.45;cursor:default}.day.in-plan{background:color-mix(in srgb,var(--accent) 10%,var(--bg2))}.day.today{font-weight:700;box-shadow:inset 0 0 0 2px var(--accent)}.seg button{flex:1 1 0}.week-wrap{touch-action:pan-y;overflow:hidden}.week-nav{display:flex;align-items:center;justify-content:space-between;gap:8px}.icon-btn{min-inline-size:44px;padding:6px;font-size:22px;line-height:1}.icon-btn .mirror{display:inline-block}@keyframes slide-left{0%{transform:translate(24px);opacity:.4}to{transform:none;opacity:1}}@keyframes slide-right{0%{transform:translate(-24px);opacity:.4}to{transform:none;opacity:1}}.week.slide-left{animation:slide-left .26s ease-out}.week.slide-right{animation:slide-right .26s ease-out}[dir=rtl] .week.slide-left{animation-name:slide-right}[dir=rtl] .week.slide-right{animation-name:slide-left}.journey{inline-size:100%;block-size:auto;display:block;overflow:visible}.journey-path{stroke:var(--path);stroke-width:6;stroke-linecap:round;stroke-dasharray:1;stroke-dashoffset:0;animation:draw 1.1s ease-out}@keyframes draw{0%{stroke-dashoffset:1}to{stroke-dashoffset:0}}.journey .node{cursor:pointer}.journey .node .disc{fill:var(--bg2);stroke:var(--path);stroke-width:3;transition:transform .16s ease,fill .16s ease}.journey .node text{fill:var(--fg);font-size:14px;font-weight:600;pointer-events:none}.journey .node.upcoming .disc{fill:var(--bg2)}.journey .node.upcoming text{fill:var(--hint)}.journey .node.today .disc{fill:var(--btn);stroke:var(--btn)}.journey .node.today text{fill:var(--btn-fg)}.journey .node.done .disc{fill:var(--kind-workout);stroke:var(--kind-workout)}.journey .node .tick{stroke:#fff;stroke-width:3;stroke-linecap:round;stroke-linejoin:round}.journey .node.selected .disc{transform:scale(1.18)}.journey .node:focus-visible .disc{stroke:var(--fg)}.journey .pulse{fill:var(--btn);opacity:.35;animation:pulse 2.2s ease-in-out infinite;transform-origin:center}@keyframes pulse{0%,to{transform:scale(1);opacity:.35}50%{transform:scale(1.55);opacity:0}}.journey .flag line{stroke:var(--hint);stroke-width:2}.journey .flag polygon{fill:var(--hint)}.journey .flag.reached polygon{fill:var(--kind-workout)}.journey .flag.active polygon{fill:var(--accent)}.day-panel{animation:rise .22s ease-out}@keyframes rise{0%{transform:translateY(10px);opacity:0}to{transform:none;opacity:1}}.slots li{align-items:center;gap:10px;justify-content:flex-start}.slot-text{display:flex;flex-direction:column;min-inline-size:0;flex:1 1 auto;overflow-wrap:anywhere}.slots li.ticked .slot-text>span:last-child{color:var(--hint);text-decoration:line-through}.tick-btn{inline-size:36px;block-size:36px;min-block-size:36px;padding:0;border-radius:50%;background:var(--bg2);color:var(--fg);flex:none;display:grid;place-items:center}.tick-btn svg{inline-size:18px;block-size:18px}.tick-btn svg path{stroke:var(--hint);stroke-width:2.5;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:24;stroke-dashoffset:24;transition:stroke-dashoffset .22s ease-out}.tick-btn.on{background:var(--kind-workout)}.tick-btn.on svg path{stroke:#fff;stroke-dashoffset:0}.tick-btn.on{animation:spring .32s cubic-bezier(.34,1.56,.64,1)}@keyframes spring{0%{transform:scale(.7)}to{transform:scale(1)}}.flag-note.reached{border-color:var(--kind-workout)}.flag-note.active{border-color:var(--accent)}.checkin-done{display:inline-grid;place-items:center;inline-size:28px;block-size:28px;border-radius:50%;background:var(--kind-workout);color:#fff;margin-inline-end:8px;animation:spring .32s cubic-bezier(.34,1.56,.64,1)}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important}.journey .pulse{display:none}}.sheet-overlay{position:fixed;inset:0;background:#00000059;z-index:5;display:flex;align-items:flex-end;animation:dim .2s ease-out}@keyframes dim{0%{opacity:0}to{opacity:1}}.sheet{inline-size:100%;max-inline-size:640px;margin-inline:auto;max-block-size:72dvh;background:var(--section);color:var(--fg);border-start-start-radius:18px;border-start-end-radius:18px;box-shadow:0 -6px 24px #0000002e;display:flex;flex-direction:column;padding:0 16px calc(16px + env(safe-area-inset-bottom,0px));animation:sheet-up .28s cubic-bezier(.2,.8,.2,1);outline:none}@keyframes sheet-up{0%{transform:translateY(100%)}to{transform:none}}.sheet-handle{background:transparent;color:inherit;min-block-size:28px;padding:10px 0 6px;border-radius:0;display:flex;justify-content:center;inline-size:100%}.sheet-handle span{display:block;inline-size:40px;block-size:4px;border-radius:2px;background:var(--hint);opacity:.6}.sheet-title{margin:0 0 8px;font-size:16px;color:var(--fg)}.sheet-body{overflow-y:auto;min-block-size:0;-webkit-overflow-scrolling:touch}.tabs{display:flex;gap:6px;overflow-x:auto;scrollbar-width:none;padding-block:4px;margin-inline:-16px;padding-inline:16px;scroll-snap-type:x proximity;-webkit-overflow-scrolling:touch}.tabs::-webkit-scrollbar{display:none}.tab{flex:none;background:var(--bg2);color:var(--fg);border-radius:999px;padding:8px 14px;min-block-size:40px;font-size:14px;scroll-snap-align:start;white-space:nowrap}.tab.active{background:var(--btn);color:var(--btn-fg)}.tab:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.shopping h3{font-size:15px;margin:12px 0 4px}.shop-lines li{align-items:center;gap:10px;justify-content:flex-start;padding:6px 0}.shop-lines li.ticked .slot-text>span{color:var(--hint);text-decoration:line-through}.tick-btn.small{inline-size:28px;block-size:28px;min-block-size:28px}.tick-btn.small svg{inline-size:14px;block-size:14px}.cook{position:fixed;inset:0;z-index:6;background:var(--bg);color:var(--fg);display:flex;flex-direction:column;outline:none;padding-block-start:env(safe-area-inset-top,0px);animation:rise .22s ease-out}.cook-head{display:flex;align-items:center;gap:10px;padding:8px 12px;border-block-end:1px solid var(--bg2)}.cook-title{font-weight:600;flex:1 1 auto;min-inline-size:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.cook-progress{block-size:4px;background:var(--bg2)}.cook-progress span{display:block;block-size:100%;background:var(--accent);transition:inline-size .24s ease}.timer-row{display:flex;gap:8px;flex-wrap:wrap;padding:8px 12px}.timer-chip{background:var(--bg2);color:var(--fg);border-radius:999px;padding:6px 12px;min-block-size:36px;font-variant-numeric:tabular-nums}.timer-chip.done{background:var(--kind-workout);color:#fff;animation:spring .32s cubic-bezier(.34,1.56,.64,1)}.cook-body{flex:1 1 auto;min-block-size:0;overflow-y:auto;padding:16px 16px calc(16px + env(safe-area-inset-bottom,0px));max-inline-size:640px;inline-size:100%;margin-inline:auto}.cook-step{font-size:22px;line-height:1.4;margin:12px 0 20px;text-wrap:balance}.cook-nav{justify-content:space-between;align-items:stretch;margin-block-start:16px}.cook-nav button{flex:1 1 0}.cook-done{display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;gap:12px;font-size:18px}.checkin-done.big{inline-size:72px;block-size:72px;font-size:36px;margin:0}.search{inline-size:100%;font:inherit;padding:12px 14px;border-radius:12px;border:1px solid var(--bg2);background:var(--section);color:var(--fg);min-block-size:44px}.search:focus-visible{outline:2px solid var(--accent)}.link{color:var(--link);text-decoration:none;font-weight:600}.foods li.food-row{display:block}.food-name{font-weight:600;margin-block-end:4px;overflow-wrap:anywhere}.chip-btn{background:var(--bg2);color:var(--fg);border-radius:999px;padding:4px 10px;min-block-size:32px;font-size:13px}.chip-btn.on{background:var(--btn);color:var(--btn-fg)}.food-figures{display:flex;gap:12px;flex-wrap:wrap;align-items:baseline;font-variant-numeric:tabular-nums}.figure b{font-size:18px}.summary{font-size:17px;font-weight:600;margin:4px 0 8px;text-wrap:balance}.icon{display:inline-block;vertical-align:middle;flex:none}.nav .ico{inline-size:22px;block-size:22px}.icon.flip,[dir=rtl] .icon.mirror{transform:scaleX(-1)}[dir=rtl] .icon.mirror.flip{transform:none}.mic .icon{inline-size:40px;block-size:40px}.cook .btn-row button .icon{margin-inline-end:4px}.awake{padding:4px 12px 0}.art-wrap{display:flex;flex-direction:column;align-items:center;gap:6px;margin-block:6px 4px}.step-art{inline-size:160px;block-size:160px;display:block;--metal: color-mix(in srgb, var(--hint) 55%, var(--bg2));--metal-dark: var(--hint);--water: #7cc3ff;--flame: #f29f3b;--wood: #c9955b;--veg: #5fbf72;--glass: color-mix(in srgb, #ffd37a 35%, transparent)}:root[data-scheme=dark] .step-art{--water: #5aa8ef;--wood: #a97a45}.step-art .metal{fill:var(--metal)}.step-art .metal-dark,.step-art .handle{fill:var(--metal-dark)}.step-art .water{fill:var(--water)}.step-art .bubble{fill:#fff;opacity:.85}.step-art .steam{fill:none;stroke:var(--hint);stroke-width:2.5;stroke-linecap:round;opacity:0}.step-art .flame{fill:none;stroke:var(--flame);stroke-width:3;stroke-linecap:round;transform-origin:60px 96px;animation:flicker .7s ease-in-out infinite alternate}.step-art .flame-base{fill:var(--metal-dark)}.step-art .glass{fill:var(--glass);stroke:var(--metal-dark);stroke-width:1.5}.step-art .glow{fill:#ffb347;opacity:.18;animation:glow 1.8s ease-in-out infinite alternate}.step-art .dish{fill:#fff;stroke:var(--metal-dark);stroke-width:1.5}.step-art .food{fill:var(--veg)}.step-art .knob{fill:var(--metal-dark)}.step-art .bit{fill:var(--veg)}.step-art .pan-body{transform-origin:54px 68px;animation:toss .9s ease-in-out infinite}.step-art .wood{fill:var(--wood)}.step-art .veg{fill:var(--veg)}.step-art .knife{transform-origin:90px 30px;animation:chop .7s ease-in-out infinite}.step-art .blade{fill:#e9edf2;stroke:var(--metal-dark);stroke-width:1.2}.step-art .bowl{fill:var(--metal)}.step-art .bowl-rim{fill:var(--metal-dark)}.step-art .whisk{transform-origin:60px 54px;animation:whisk .6s ease-in-out infinite alternate}.step-art .wire{fill:none;stroke:var(--metal-dark);stroke-width:2}.step-art .pipe{fill:none;stroke:var(--metal-dark);stroke-width:6;stroke-linecap:round}.step-art .basin{fill:var(--metal)}.step-art .drop{fill:var(--water);opacity:0;animation:drip 1.4s linear infinite}.step-art .drop.d2{animation-delay:.7s}.step-art .dial{fill:var(--bg2);stroke:var(--metal-dark);stroke-width:3}.step-art .hand{stroke:var(--metal-dark);stroke-width:3;stroke-linecap:round;transform-origin:60px 62px}.step-art .hand.m{animation:tick 12s linear infinite}.bubble.b1{animation:rise 1.6s ease-in infinite}.bubble.b2{animation:rise 1.3s ease-in infinite .3s}.bubble.b3{animation:rise 1.9s ease-in infinite .6s}.steam.s1{animation:waft 2.4s ease-out infinite}.steam.s2{animation:waft 2.4s ease-out infinite .8s}.steam.s3{animation:waft 2.4s ease-out infinite 1.6s}@keyframes rise{0%{transform:translateY(0);opacity:.9}to{transform:translateY(-22px);opacity:0}}@keyframes waft{0%{opacity:0;transform:translateY(6px)}30%{opacity:.7}to{opacity:0;transform:translateY(-14px)}}@keyframes flicker{0%{transform:scaleY(.85)}to{transform:scaleY(1.1)}}@keyframes glow{0%{opacity:.1}to{opacity:.32}}@keyframes toss{0%,to{transform:translateY(0) rotate(0)}50%{transform:translateY(-5px) rotate(-4deg)}}@keyframes chop{0%,to{transform:translateY(0) rotate(0)}50%{transform:translateY(26px) rotate(3deg)}}@keyframes whisk{0%{transform:rotate(-14deg)}to{transform:rotate(14deg)}}@keyframes drip{0%{opacity:0;transform:translateY(0)}15%{opacity:1}to{opacity:0;transform:translateY(34px)}}@keyframes tick{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.step-art .ring-track{fill:none;stroke:var(--bg2);stroke-width:6}.step-art .ring-fill{fill:none;stroke:var(--accent);stroke-width:6;stroke-linecap:round;transform:rotate(-90deg);transform-origin:60px 60px;transition:stroke-dashoffset .5s linear}.big-clock{font-size:34px;font-weight:700;font-variant-numeric:tabular-nums;letter-spacing:1px}.big-clock.done{color:var(--kind-workout);animation:spring .32s cubic-bezier(.34,1.56,.64,1)}.photo-wrap{position:relative;inline-size:168px;block-size:168px}.step-photo{inline-size:100%;block-size:100%;object-fit:cover;border-radius:50%;display:block;box-shadow:0 2px 10px #00000026}.photo-wrap.running .step-photo{transform:scale(.9);transform-origin:center}.photo-ring{position:absolute;inset:0;inline-size:100%;block-size:100%}.photo-ring .ring-track{fill:none;stroke:var(--bg2);stroke-width:5}.photo-ring .ring-fill{fill:none;stroke:var(--accent);stroke-width:5;stroke-linecap:round;transform:rotate(-90deg);transform-origin:60px 60px;transition:stroke-dashoffset .5s linear}.hold-btn{position:relative;overflow:hidden;isolation:isolate;display:inline-flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;touch-action:manipulation;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none;-webkit-tap-highlight-color:transparent}.hold-fill{position:absolute;inset-block:0;inset-inline-start:0;z-index:-1;pointer-events:none;background:color-mix(in srgb,#000 22%,var(--btn));transition:inline-size 50ms linear}.hold-btn.ghost .hold-fill{background:color-mix(in srgb,var(--accent) 32%,transparent)}.hold-btn.holding{box-shadow:0 0 0 2px color-mix(in srgb,var(--btn) 45%,transparent)}.hold-label{font-weight:600}.hold-hint{font-size:13px}@media(prefers-reduced-motion:reduce){.hold-fill{transition:none}}
