@font-face{font-family:Parkinsans Variable;font-style:normal;font-display:swap;font-weight:300 800;src:url(/pomodoro/assets/parkinsans-latin-ext-wght-normal-CTfSnvlK.woff2)format("woff2-variations");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Parkinsans Variable;font-style:normal;font-display:swap;font-weight:300 800;src:url(/pomodoro/assets/parkinsans-latin-wght-normal-mRuZnjHQ.woff2)format("woff2-variations");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Onest Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/pomodoro/assets/onest-cyrillic-ext-wght-normal-DOFToQv1.woff2)format("woff2-variations");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Onest Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/pomodoro/assets/onest-cyrillic-wght-normal-DayYxulF.woff2)format("woff2-variations");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Onest Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/pomodoro/assets/onest-math-wght-normal-Bl4ZGkZl.woff2)format("woff2-variations");unicode-range:U+302-303,U+305,U+307-308,U+310,U+312,U+315,U+31A,U+326-327,U+32C,U+32F-330,U+332-333,U+338,U+33A,U+346,U+34D,U+391-3A1,U+3A3-3A9,U+3B1-3C9,U+3D1,U+3D5-3D6,U+3F0-3F1,U+3F4-3F5,U+2016-2017,U+2034-2038,U+203C,U+2040,U+2043,U+2047,U+2050,U+2057,U+205F,U+2070-2071,U+2074-208E,U+2090-209C,U+20D0-20DC,U+20E1,U+20E5-20EF,U+2100-2112,U+2114-2115,U+2117-2121,U+2123-214F,U+2190,U+2192,U+2194-21AE,U+21B0-21E5,U+21F1-21F2,U+21F4-2211,U+2213-2214,U+2216-22FF,U+2308-230B,U+2310,U+2319,U+231C-2321,U+2336-237A,U+237C,U+2395,U+239B-23B7,U+23D0,U+23DC-23E1,U+2474-2475,U+25AF,U+25B3,U+25B7,U+25BD,U+25C1,U+25CA,U+25CC,U+25FB,U+266D-266F,U+27C0-27FF,U+2900-2AFF,U+2B0E-2B11,U+2B30-2B4C,U+2BFE,U+3030,U+FF5B,U+FF5D,U+1D400-1D7FF,U+1EE??}@font-face{font-family:Onest Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/pomodoro/assets/onest-symbols-wght-normal-DxQzqQfC.woff2)format("woff2-variations");unicode-range:U+1-C,U+E-1F,U+7F-9F,U+20DD-20E0,U+20E2-20E4,U+2150-218F,U+2190,U+2192,U+2194-2199,U+21AF,U+21E6-21F0,U+21F3,U+2218-2219,U+2299,U+22C4-22C6,U+2300-243F,U+2440-244A,U+2460-24FF,U+25A0-27BF,U+28??,U+2921-2922,U+2981,U+29BF,U+29EB,U+2B??,U+4DC0-4DFF,U+FFF9-FFFB,U+10140-1018E,U+10190-1019C,U+101A0,U+101D0-101FD,U+102E0-102FB,U+10E60-10E7E,U+1D2C0-1D2D3,U+1D2E0-1D37F,U+1F0??,U+1F100-1F1AD,U+1F1E6-1F1FF,U+1F30D-1F30F,U+1F315,U+1F31C,U+1F31E,U+1F320-1F32C,U+1F336,U+1F378,U+1F37D,U+1F382,U+1F393-1F39F,U+1F3A7-1F3A8,U+1F3AC-1F3AF,U+1F3C2,U+1F3C4-1F3C6,U+1F3CA-1F3CE,U+1F3D4-1F3E0,U+1F3ED,U+1F3F1-1F3F3,U+1F3F5-1F3F7,U+1F408,U+1F415,U+1F41F,U+1F426,U+1F43F,U+1F441-1F442,U+1F444,U+1F446-1F449,U+1F44C-1F44E,U+1F453,U+1F46A,U+1F47D,U+1F4A3,U+1F4B0,U+1F4B3,U+1F4B9,U+1F4BB,U+1F4BF,U+1F4C8-1F4CB,U+1F4D6,U+1F4DA,U+1F4DF,U+1F4E3-1F4E6,U+1F4EA-1F4ED,U+1F4F7,U+1F4F9-1F4FB,U+1F4FD-1F4FE,U+1F503,U+1F507-1F50B,U+1F50D,U+1F512-1F513,U+1F53E-1F54A,U+1F54F-1F5FA,U+1F610,U+1F650-1F67F,U+1F687,U+1F68D,U+1F691,U+1F694,U+1F698,U+1F6AD,U+1F6B2,U+1F6B9-1F6BA,U+1F6BC,U+1F6C6-1F6CF,U+1F6D3-1F6D7,U+1F6E0-1F6EA,U+1F6F0-1F6F3,U+1F6F7-1F6FC,U+1F7??,U+1F800-1F80B,U+1F810-1F847,U+1F850-1F859,U+1F860-1F887,U+1F890-1F8AD,U+1F8B0-1F8BB,U+1F8C0-1F8C1,U+1F900-1F90B,U+1F93B,U+1F946,U+1F984,U+1F996,U+1F9E9,U+1FA00-1FA6F,U+1FA70-1FA7C,U+1FA80-1FA89,U+1FA8F-1FAC6,U+1FACE-1FADC,U+1FADF-1FAE9,U+1FAF0-1FAF8,U+1FB??}@font-face{font-family:Onest Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/pomodoro/assets/onest-vietnamese-wght-normal-BBxOatbv.woff2)format("woff2-variations");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Onest Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/pomodoro/assets/onest-latin-ext-wght-normal-QAhDxQuo.woff2)format("woff2-variations");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Onest Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/pomodoro/assets/onest-latin-wght-normal-Dun_Rd-l.woff2)format("woff2-variations");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--font-display:"Parkinsans Variable", ui-sans-serif, system-ui, sans-serif;--font-ui:"Onest Variable", ui-sans-serif, system-ui, sans-serif;--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:20px;--space-6:24px;--space-8:32px;--space-10:40px;--space-12:48px;--space-16:64px;--text-xs:12px;--leading-xs:16px;--text-sm:14px;--leading-sm:20px;--text-md:16px;--leading-md:24px;--text-lg:20px;--leading-lg:28px;--text-xl:32px;--leading-xl:40px;--text-display:clamp(96px, 30vw, 224px);--radius-control:999px;--radius-surface:20px;--radius-sm:6px;--control-sm:32px;--control:40px;--control-lg:56px;--ease:cubic-bezier(.2, .8, .2, 1);--fast:.16s;--base:.24s;--slow:.6s;--drawer-width:480px}:root,[data-theme=ink]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg:#0e1014;--glow:none;--surface:#161a21;--surface-2:#1e232c;--border:#272d37;--border-strong:#3a414d;--outline:#4a5260;--text:#f4f5f7;--text-2:#aab1bc;--text-3:#8a92a0;--primary:#fff;--on-primary:#0e1014;--accent:#f0a04b;--on-accent:#1a1206;--chart:#d07e3a;--danger:#f28b7d;--online:#3fcf6e;--timeline:linear-gradient(90deg, #3b82f6, #5cc8ff);--unread:#4c9dff;--scrim:#05060899;--shadow:0 24px 64px #00000080}[data-theme=dusk]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg:#0d1220;--glow:radial-gradient(120% 60% at 50% 115%, #f0a04b33, transparent 60%);--surface:#151c2c;--surface-2:#1c2538;--border:#253048;--border-strong:#37445f;--outline:#48577a;--text:#f4f5f8;--text-2:#aeb6c6;--text-3:#8c96aa;--primary:#fff;--on-primary:#0d1220;--accent:#f0a04b;--on-accent:#1a1206;--chart:#d07e3a;--danger:#f28b7d;--online:#3fcf6e;--timeline:linear-gradient(90deg, #3b82f6, #5cc8ff);--scrim:#04060c99;--shadow:0 24px 64px #00000080}[data-theme=forest]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg:#0c1311;--glow:none;--surface:#141d1a;--surface-2:#1b2622;--border:#25312c;--border-strong:#37463f;--outline:#4a5b53;--text:#f2f6f4;--text-2:#a9b7b0;--text-3:#88988f;--primary:#fff;--on-primary:#0c1311;--accent:#f0a04b;--on-accent:#1a1206;--chart:#d07e3a;--danger:#f28b7d;--online:#3fcf6e;--timeline:linear-gradient(90deg, #3b82f6, #5cc8ff);--scrim:#03070599;--shadow:0 24px 64px #00000080}[data-theme=paper]{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--bg:#f5f3ee;--glow:none;--surface:#fff;--surface-2:#eeebe4;--border:#e2ded5;--border-strong:#c9c3b7;--outline:#b3ac9f;--text:#17191d;--text-2:#4b515c;--text-3:#646b76;--primary:#17191d;--on-primary:#fff;--accent:#a5561a;--on-accent:#fff;--chart:#b5601c;--danger:#b3382a;--online:#1e9e4a;--timeline:linear-gradient(90deg, #1d5fd6, #2a9bd8);--unread:#1d5fd6;--scrim:#17191d47;--shadow:0 24px 64px #28201429}:root[data-backdrop]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg:#0e1014;--glow:none;--surface:#161a21;--surface-2:#1e232c;--border:#272d37;--border-strong:#3a414d;--outline:#ffffffa6;--text:#fff;--text-2:#e1e4e8;--text-3:#c5cad2;--primary:#fff;--on-primary:#0e1014;--accent:#f0a04b;--on-accent:#1a1206;--chart:#d07e3a;--danger:#f28b7d;--online:#3fcf6e;--timeline:linear-gradient(90deg, #3b82f6, #5cc8ff);--unread:#4c9dff;--scrim:#05060880;--shadow:0 24px 64px #00000080}:root[data-backdrop] .drawer,:root[data-backdrop] .toast,:root[data-backdrop] .notice-card{--text:#f4f5f7;--text-2:#aab1bc;--text-3:#8a92a0;--outline:#4a5260}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html,body{height:100%}body{background:var(--bg);color:var(--text);font-family:var(--font-ui);font-size:var(--text-md);line-height:var(--leading-md);-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;transition:background-color var(--base) var(--ease);font-weight:400;overflow:hidden}button,input,textarea{font:inherit;color:inherit}button{cursor:pointer;background:0 0;border:0}a{color:inherit}svg{display:block}img{max-width:100%;display:block}[hidden]{display:none!important}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.visually-hidden{clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;overflow:hidden;position:absolute!important}.backdrop{z-index:0;pointer-events:none;background:var(--glow);position:fixed;inset:0}.backdrop-layer{opacity:0;transition:opacity var(--slow) var(--ease), background-image var(--slow) var(--ease);background-position:50%;background-size:cover;position:absolute;inset:0}.backdrop-layer:after{content:"";transition:background-color var(--slow) var(--ease);background:#080a0e33;position:absolute;inset:0}.backdrop-layer.is-photo:after{background:linear-gradient(#080a0e80 0%,#080a0e59 45%,#080a0e99 100%)}.backdrop-layer.is-visible{opacity:1}.app{transition:opacity var(--base) var(--ease)}body.is-loading .app{opacity:0}kbd{min-width:24px;height:24px;padding:0 var(--space-2);border:1px solid var(--border-strong);border-radius:var(--radius-sm);font-family:var(--font-ui);font-size:var(--text-xs);line-height:var(--leading-xs);color:var(--text-2);background:var(--surface);border-bottom-width:2px;justify-content:center;align-items:center;font-weight:500;display:inline-flex}.kbds{gap:var(--space-1);display:inline-flex}.app{z-index:1;height:100dvh;padding:var(--space-6) var(--space-8);padding-top:max(var(--space-6), env(safe-area-inset-top));padding-bottom:max(var(--space-6), env(safe-area-inset-bottom));grid-template-rows:auto 1fr auto;display:grid;position:relative}.bar{justify-content:space-between;align-items:center;gap:var(--space-4);min-height:var(--control);display:flex}.brand{font-family:var(--font-display);font-size:var(--text-lg);line-height:var(--leading-lg);letter-spacing:-.01em;font-weight:700}.toolbar{align-items:center;gap:var(--space-1);display:flex}.stage{justify-content:center;align-items:center;gap:var(--space-8);flex-direction:column;min-height:0;display:flex}.today{font-size:var(--text-sm);line-height:var(--leading-sm);color:var(--text-2);font-variant-numeric:tabular-nums;font-weight:500}.fades{transition:opacity var(--slow) var(--ease)}body.is-idle[data-hide~=toolbar] [data-fade=toolbar],body.is-idle[data-hide~=modes] [data-fade=modes],body.is-idle[data-hide~=cycle] [data-fade=cycle],body.is-idle[data-hide~=controls] [data-fade=controls],body.is-idle[data-hide~=task] [data-fade=task],body.is-idle[data-hide~=quote] [data-fade=quote],body.is-idle[data-hide~=footer] [data-fade=footer]{opacity:0;pointer-events:none}body.is-idle[data-hide~=cursor]{cursor:none}.btn{justify-content:center;align-items:center;gap:var(--space-2);height:var(--control);padding:0 var(--space-5);border-radius:var(--radius-control);font-family:var(--font-display);font-size:var(--text-sm);line-height:var(--leading-sm);white-space:nowrap;transition:background-color var(--fast) var(--ease), border-color var(--fast) var(--ease), color var(--fast) var(--ease), opacity var(--fast) var(--ease);border:1.5px solid #0000;font-weight:600;display:inline-flex;position:relative}.btn svg{width:20px;height:20px}.btn-sm{height:var(--control-sm);padding:0 var(--space-4)}.btn-lg{height:var(--control-lg);padding:0 var(--space-8);font-size:var(--text-lg);line-height:var(--leading-lg);font-weight:700}.btn-primary{background:var(--primary);color:var(--on-primary)}.btn-primary:hover{opacity:.88}.btn-secondary{background:var(--surface-2);border-color:var(--border-strong);color:var(--text)}.btn-secondary:hover{border-color:var(--outline)}.btn-ghost{color:var(--text);border-color:var(--border-strong)}.btn-ghost:hover{border-color:var(--outline);background:var(--surface-2)}.btn:disabled{opacity:.5;cursor:not-allowed}.btn[aria-busy=true]{color:#0000;pointer-events:none}.btn[aria-busy=true]:after{content:"";border-radius:var(--radius-control);border:2px solid var(--text-2);border-right-color:#0000;width:16px;height:16px;animation:.7s linear infinite spin;position:absolute}.btn-primary[aria-busy=true]:after{border-color:var(--on-primary);border-right-color:#0000}@keyframes spin{to{transform:rotate(360deg)}}.icon-btn{width:var(--control);height:var(--control);border-radius:var(--radius-control);color:var(--text);transition:background-color var(--fast) var(--ease), color var(--fast) var(--ease);justify-content:center;align-items:center;display:inline-flex;position:relative}.icon-btn:hover{background:#7f7f7f33}.icon-btn svg{fill:none;stroke:currentColor;stroke-width:2px;stroke-linecap:round;stroke-linejoin:round;width:22px;height:22px}.icon-btn-lg{width:var(--control-lg);height:var(--control-lg)}.icon-btn-lg svg{stroke-width:2.5px;width:28px;height:28px}.icon-btn-sm{width:var(--control-sm);height:var(--control-sm);color:var(--text-3)}.icon-btn-sm svg{width:16px;height:16px}@media (hover:hover){.icon-btn[data-tip]:before{content:attr(data-tip);top:calc(100% + var(--space-2));padding:var(--space-1) var(--space-2);border-radius:var(--radius-sm);color:#f4f5f7;font-family:var(--font-ui);font-size:var(--text-xs);line-height:var(--leading-xs);white-space:nowrap;opacity:0;pointer-events:none;z-index:5;transition:opacity var(--fast) var(--ease), transform var(--fast) var(--ease);background:#0e1014;font-weight:500;position:absolute;left:50%;transform:translate(-50%,-4px)}.icon-btn[data-tip]:hover:before{opacity:1;transition-delay:.4s;transform:translate(-50%)}.bar-bottom .icon-btn[data-tip]:before{top:auto;bottom:calc(100% + var(--space-2));transform:translate(-50%,4px)}.bar-bottom .icon-btn[data-tip]:hover:before{transform:translate(-50%)}.toolbar .icon-btn:last-child[data-tip]:before{left:auto;right:0;transform:translateY(-4px)}.bar-bottom .toolbar .icon-btn:last-child[data-tip]:before{transform:translateY(4px)}.toolbar .icon-btn:last-child[data-tip]:hover:before{transform:none}}.btn-primary .icon-play,.btn-primary .icon-pause{fill:currentColor}.btn-primary .icon-pause,.is-running .btn-primary .icon-play{display:none}.is-running .btn-primary .icon-pause{display:block}#skip-btn svg path:first-child{fill:currentColor}.count{min-width:16px;height:16px;padding:0 var(--space-1);border-radius:var(--radius-control);background:var(--accent);color:var(--on-accent);font-family:var(--font-display);font-size:var(--text-xs);line-height:var(--leading-xs);text-align:center;font-weight:700;position:absolute;top:2px;right:2px}.icon-expand,.icon-collapse{display:none!important}#fullscreen-btn:not([data-active]) .icon-expand,#fullscreen-btn[data-active] .icon-collapse{display:block!important}.modes{gap:var(--space-3);grid-template-columns:minmax(max-content,1fr) auto minmax(max-content,1fr);width:100%;display:grid}.modes .mode:first-child{justify-self:end}.modes .mode:last-child{justify-self:start}.mode{height:var(--control);white-space:nowrap;padding:0 var(--space-5);border-radius:var(--radius-control);border:1.5px solid var(--outline);font-family:var(--font-display);font-size:var(--text-md);line-height:var(--leading-md);color:var(--text);transition:background-color var(--fast) var(--ease), border-color var(--fast) var(--ease), color var(--fast) var(--ease);font-weight:600}.mode:hover{border-color:var(--text)}.mode[aria-pressed=true]{background:var(--primary);border-color:var(--primary);color:var(--on-primary)}.timer{font-family:var(--font-display);font-size:var(--text-display);letter-spacing:-.02em;-webkit-user-select:none;user-select:none;font-weight:700;line-height:.9}.timer-digits{letter-spacing:-.03em;display:flex}.timer-digits .mm,.timer-digits .ss{width:1.24em;display:inline-block}.timer-digits .mm{text-align:right}.timer-digits .ss{text-align:left}.timer-digits .c{text-align:center;width:.3em;display:inline-block;transform:translateY(-.04em)}.cycle{justify-content:center;align-items:center;gap:var(--space-3);margin-top:calc(var(--space-4) * -1);display:flex}.dots{gap:var(--space-2);display:flex}.dot{border-radius:var(--radius-control);background:var(--outline);width:8px;height:8px;transition:background-color var(--base) var(--ease)}.dot.is-done{background:var(--accent)}.dot.is-current{background:var(--text)}.cycle-label{font-size:var(--text-sm);line-height:var(--leading-sm);color:var(--text-2);font-variant-numeric:tabular-nums;font-weight:500}.controls{justify-content:center;align-items:center;gap:var(--space-3);display:flex}.controls .btn-primary{min-width:176px}.focus-task{align-items:center;gap:var(--space-2);max-width:min(480px,100%);height:var(--control);padding:0 var(--space-4);border-radius:var(--radius-control);font-size:var(--text-sm);line-height:var(--leading-sm);color:var(--text-2);transition:color var(--fast) var(--ease), background-color var(--fast) var(--ease);font-weight:500;display:inline-flex}.focus-task:hover{color:var(--text);background:#7f7f7f33}.focus-task-label{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.focus-task.has-task .focus-task-label{color:var(--text)}.focus-task-meta{color:var(--text-2);font-variant-numeric:tabular-nums;flex-shrink:0}.focus-task-meta:empty{display:none}.quote{text-align:center;max-width:440px;margin-top:calc(var(--space-4) * -1);font-family:var(--font-display);font-weight:500;font-size:var(--text-lg);line-height:var(--leading-lg);color:var(--text-2)}.scrim{z-index:20;background:var(--scrim);opacity:0;transition:opacity var(--base) var(--ease);position:fixed;inset:0}.scrim.is-open{opacity:1}.drawer{z-index:30;top:var(--space-3);right:var(--space-3);bottom:var(--space-3);width:min(var(--drawer-width), calc(100vw - var(--space-6)));color:var(--text);background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-surface);box-shadow:var(--shadow);transform:translateX(calc(100% + var(--space-6)));transition:transform var(--base) var(--ease);flex-direction:column;display:flex;position:fixed}.drawer.is-open{transform:none}.drawer-head{justify-content:space-between;align-items:center;gap:var(--space-2);padding:var(--space-4) var(--space-3) var(--space-4) var(--space-4);border-bottom:1px solid var(--border);display:flex}.tabs{gap:var(--space-1);scrollbar-width:none;min-width:0;display:flex;overflow-x:auto}.tab{height:var(--control-sm);padding:0 var(--space-3);border-radius:var(--radius-control);font-family:var(--font-display);font-size:var(--text-sm);line-height:var(--leading-sm);color:var(--text-2);white-space:nowrap;transition:background-color var(--fast) var(--ease), color var(--fast) var(--ease);flex-shrink:0;font-weight:600}.tab:hover{color:var(--text);background:var(--surface-2)}.tab[aria-selected=true]{background:var(--primary);color:var(--on-primary)}.drawer-body{overscroll-behavior:contain;padding:var(--space-6);scrollbar-width:thin;scrollbar-color:var(--border-strong) transparent;flex:1;overflow-y:auto}.panel{gap:var(--space-6);animation:panel-in var(--base) var(--ease);flex-direction:column;display:flex}@keyframes panel-in{0%{opacity:0;transform:translateY(var(--space-1))}}.panel-head{gap:var(--space-2);flex-direction:column;display:flex}.panel-title{font-family:var(--font-display);font-weight:700;font-size:var(--text-xl);line-height:var(--leading-xl);letter-spacing:-.01em}.panel-lede{font-size:var(--text-sm);line-height:var(--leading-sm);color:var(--text-2)}.card{background:var(--bg);border:1px solid var(--border);border-radius:var(--radius-surface)}.card-head{justify-content:space-between;align-items:baseline;gap:var(--space-4);display:flex}.card-title{font-family:var(--font-display);font-size:var(--text-sm);line-height:var(--leading-sm);font-weight:700}.card-meta,.card-body{font-size:var(--text-sm);line-height:var(--leading-sm);color:var(--text-2)}.group{gap:var(--space-3);flex-direction:column;display:flex}.group-title{font-family:var(--font-display);font-size:var(--text-md);line-height:var(--leading-md);font-weight:700}.subgroup-title{font-size:var(--text-xs);line-height:var(--leading-xs);color:var(--text-2);font-weight:500}.rows{flex-direction:column;display:flex}.row{justify-content:space-between;align-items:center;gap:var(--space-4);min-height:56px;padding:var(--space-2) var(--space-4);display:flex}.row+.row{border-top:1px solid var(--border)}.row-label{font-size:var(--text-sm);line-height:var(--leading-sm)}.field{gap:var(--space-2);flex-direction:column;min-width:0;display:flex}.label{font-size:var(--text-xs);line-height:var(--leading-xs);color:var(--text-2);font-weight:500}.input{width:100%;height:var(--control);padding:0 var(--space-4);border-radius:var(--radius-control);border:1.5px solid var(--border);background:var(--surface-2);color:var(--text);font-size:var(--text-sm);line-height:var(--leading-sm);transition:border-color var(--fast) var(--ease)}.input::placeholder{color:var(--text-3)}.input:hover{border-color:var(--border-strong)}.input:focus{border-color:var(--accent);outline:none}.input:focus-visible{outline:none}.textarea{height:auto;padding:var(--space-3) var(--space-4);border-radius:var(--radius-surface);resize:vertical;min-height:96px}.input-num{text-align:center;font-variant-numeric:tabular-nums;appearance:textfield;width:72px}.input-num::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.input-num::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.unit-input{align-items:center;gap:var(--space-2);display:inline-flex}.unit{width:56px;font-size:var(--text-sm);line-height:var(--leading-sm);color:var(--text-3)}.switch{appearance:none;border-radius:var(--radius-control);background:var(--border-strong);cursor:pointer;width:44px;height:24px;transition:background-color var(--fast) var(--ease);flex-shrink:0;position:relative}.switch:after{content:"";top:var(--space-1);left:var(--space-1);border-radius:var(--radius-control);background:var(--text);width:16px;height:16px;transition:transform var(--fast) var(--ease);position:absolute}.switch:checked{background:var(--accent)}.switch:checked:after{background:var(--on-accent);transform:translate(20px)}.form-foot{justify-content:space-between;align-items:center;gap:var(--space-3);display:flex}.hint{font-size:var(--text-xs);line-height:var(--leading-xs);color:var(--text-3);align-items:center;gap:var(--space-1);display:inline-flex}.button-row{gap:var(--space-2);flex-wrap:wrap;display:flex}.form-msg{font-size:var(--text-sm);line-height:var(--leading-sm);color:var(--text-2)}.form-msg.is-error{color:var(--danger)}.task-form{align-items:end;gap:var(--space-2);grid-template-columns:1fr 88px auto;display:grid}.note-form,.quote-form{gap:var(--space-3);flex-direction:column;display:flex}.list{gap:var(--space-2);flex-direction:column;list-style:none;display:flex}.list:empty{display:none}.item{align-items:flex-start;gap:var(--space-3);padding:var(--space-3) var(--space-3) var(--space-3) var(--space-4);border:1.5px solid var(--border);border-radius:var(--radius-surface);background:var(--bg);transition:border-color var(--fast) var(--ease);display:flex}.item.is-active{border-color:var(--accent)}.item-main{gap:var(--space-1);min-width:0;padding-top:var(--space-1);flex-direction:column;flex:1;display:flex}.item-text{font-size:var(--text-sm);line-height:var(--leading-sm);overflow-wrap:anywhere;white-space:pre-wrap;font-weight:500}.item-meta{font-size:var(--text-xs);line-height:var(--leading-xs);color:var(--text-3);font-variant-numeric:tabular-nums}.item.is-done .item-text{color:var(--text-3);text-decoration:line-through}.item-actions{align-items:center;gap:var(--space-1);flex-shrink:0;display:flex}.item .rename-btn:hover{color:var(--text);background:var(--surface-2)}.drag-handle{margin-left:calc(var(--space-2) * -1);color:var(--text-3);cursor:grab;touch-action:none;flex-shrink:0}.drag-handle:hover{color:var(--text);background:var(--surface-2)}.list .item{transition:border-color var(--fast) var(--ease), transform var(--base) var(--ease)}.item.is-dragging{z-index:2;border-color:var(--accent);box-shadow:var(--shadow);transition:none;position:relative}.item.is-dragging .drag-handle{cursor:grabbing}body.is-dragging-task{cursor:grabbing;-webkit-user-select:none;user-select:none}.task-edit{gap:var(--space-2);align-items:center;display:flex}.task-edit .input{height:var(--control-sm)}.item .icon-btn-sm:not(.drag-handle):not(.rename-btn):hover{color:var(--danger);background:var(--surface-2)}@media (hover:hover){.item .icon-btn-sm:not(.drag-handle){opacity:0;transition:opacity var(--fast) var(--ease), color var(--fast) var(--ease), background-color var(--fast) var(--ease)}.item:hover .icon-btn-sm,.item:focus-within .icon-btn-sm{opacity:1}}.bar-track{border-radius:var(--radius-control);background:var(--surface-2);height:4px;margin-top:var(--space-1);overflow:hidden}.bar-fill{background:var(--accent);border-radius:var(--radius-control);height:100%;transition:width var(--base) var(--ease)}.check{width:var(--control-sm);height:var(--control-sm);margin:calc(var(--space-1) * -1) 0 0 calc(var(--space-2) * -1);cursor:pointer;flex-shrink:0;justify-content:center;align-items:center;display:inline-flex;position:relative}.check input{opacity:0;cursor:pointer;position:absolute;inset:0}.check-box{border-radius:var(--radius-sm);border:2px solid var(--border-strong);width:20px;height:20px;transition:background-color var(--fast) var(--ease), border-color var(--fast) var(--ease);place-items:center;display:grid}.check-box svg{fill:none;width:14px;height:14px;stroke:var(--on-accent);stroke-width:3px;stroke-linecap:round;stroke-linejoin:round;opacity:0}.check input:checked+.check-box{background:var(--accent);border-color:var(--accent)}.check input:checked+.check-box svg{opacity:1}.check input:focus-visible+.check-box{outline:2px solid var(--accent);outline-offset:2px}.check:hover .check-box{border-color:var(--text-3)}.empty{gap:var(--space-1);padding:var(--space-8) var(--space-4);text-align:center;border:1.5px dashed var(--border-strong);border-radius:var(--radius-surface);flex-direction:column;display:flex}.empty-title{font-family:var(--font-display);font-size:var(--text-md);line-height:var(--leading-md);font-weight:700}.empty-body{font-size:var(--text-sm);line-height:var(--leading-sm);color:var(--text-2)}.clear-done{align-self:flex-start}.stats{gap:var(--space-2);grid-template-columns:1fr 1fr;display:grid}.stat{gap:var(--space-2);padding:var(--space-4);border:1px solid var(--border);border-radius:var(--radius-surface);background:var(--bg);flex-direction:column;display:flex}.stat-label{font-size:var(--text-xs);line-height:var(--leading-xs);color:var(--text-2);font-weight:500}.stat-value{font-family:var(--font-display);font-size:var(--text-xl);line-height:var(--leading-xl);font-variant-numeric:tabular-nums;font-weight:700}.chart-card{gap:var(--space-4);padding:var(--space-4);flex-direction:column;display:flex}.chart{gap:var(--space-2);grid-template-columns:repeat(7,1fr);height:160px;display:grid;position:relative}.chart-col{gap:var(--space-2);border-radius:var(--radius-sm);grid-template-rows:1fr auto;display:grid;position:relative}.chart-plot{padding-top:var(--space-6);border-bottom:1px solid var(--border);flex-direction:column;justify-content:flex-end;align-items:center;display:flex;position:relative}.chart-bar{background:var(--chart);border-radius:var(--radius-sm) var(--radius-sm) 0 0;width:min(24px,100%);min-height:0;transition:height var(--base) var(--ease);position:relative}.chart-value{bottom:calc(100% + var(--space-1));font-size:var(--text-xs);line-height:var(--leading-xs);color:var(--text-2);font-variant-numeric:tabular-nums;font-weight:500;position:absolute;left:50%;transform:translate(-50%)}.chart-day{font-size:var(--text-xs);line-height:var(--leading-xs);color:var(--text-3);text-align:center}.chart-col.is-today .chart-day{color:var(--text);font-weight:600}.chart-tip{bottom:calc(100% + var(--space-2));padding:var(--space-1) var(--space-2);border-radius:var(--radius-sm);background:var(--text);color:var(--surface);font-size:var(--text-xs);line-height:var(--leading-xs);white-space:nowrap;opacity:0;pointer-events:none;transition:opacity var(--fast) var(--ease);z-index:2;font-weight:500;position:absolute;left:50%;transform:translate(-50%)}.chart-col:hover .chart-plot,.chart-col:focus-visible .chart-plot{background:var(--surface-2);border-radius:var(--radius-sm) var(--radius-sm) 0 0}.chart-col:hover .chart-tip,.chart-col:focus-visible .chart-tip{opacity:1}.chart-col:first-child .chart-tip{left:0;transform:none}.chart-col:last-child .chart-tip{left:auto;right:0;transform:none}.footnote{font-size:var(--text-sm);line-height:var(--leading-sm);color:var(--text-3)}@keyframes shimmer{to{background-position:-200% 0}}.skeleton,body.is-syncing .stat-value,body.is-syncing .chart,body.is-syncing #task-list .item{background:linear-gradient(90deg, var(--surface-2) 25%, var(--border) 50%, var(--surface-2) 75%) 0 0 / 200% 100%;animation:1.2s linear infinite shimmer}body.is-syncing .stat-value,body.is-syncing .chart,body.is-syncing #task-list .item{color:#0000;border-radius:var(--radius-sm);border-color:#0000}body.is-syncing .chart>*,body.is-syncing #task-list .item>*{visibility:hidden}.swatches,.photos{gap:var(--space-3) var(--space-2);grid-template-columns:repeat(4,1fr);display:grid}.choice{gap:var(--space-2);cursor:pointer;flex-direction:column;min-width:0;display:flex;position:relative}.choice input{opacity:0;pointer-events:none;position:absolute}.choice-visual{aspect-ratio:4/3;border-radius:var(--radius-sm);box-shadow:inset 0 0 0 1px var(--border);transition:box-shadow var(--fast) var(--ease);display:block;position:relative;overflow:hidden}.choice:hover .choice-visual{box-shadow:inset 0 0 0 1px var(--border), 0 0 0 2px var(--border-strong)}.choice input:checked+.choice-visual{box-shadow:0 0 0 2px var(--surface), 0 0 0 4px var(--text)}.choice input:focus-visible+.choice-visual{outline:2px solid var(--accent);outline-offset:6px}.choice-name{font-size:var(--text-xs);line-height:var(--leading-xs);color:var(--text-2);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.choice input:checked~.choice-name{color:var(--text);font-weight:600}.swatch[data-swatch=ink]{background-color:#0e1014}.swatch[data-swatch=dusk]{background:radial-gradient(120% 70% at 50% 120%,#f0a04b66,#0000 60%),#0d1220}.swatch[data-swatch=forest]{background-color:#0c1311}.swatch[data-swatch=paper]{background-color:#f5f3ee}.photo-thumb.is-loaded{background:var(--surface-2);animation:none}.photo-thumb img{object-fit:cover;opacity:0;width:100%;height:100%;transition:opacity var(--base) var(--ease)}.photo-thumb.is-loaded img{opacity:1}.photo-thumb[aria-busy=true]:after{content:"";border-radius:var(--radius-control);border:2px solid #fff;border-right-color:#0000;width:20px;height:20px;margin:-10px 0 0 -10px;animation:.7s linear infinite spin;position:absolute;top:50%;left:50%}.photo-thumb[aria-busy=true] img{opacity:.5}.account-form{gap:var(--space-4);padding:var(--space-4);flex-direction:column;display:flex}.account-card{justify-content:space-between;align-items:center;gap:var(--space-4);padding:var(--space-4);display:flex}.account-email{font-size:var(--text-sm);line-height:var(--leading-sm);overflow-wrap:anywhere;font-weight:600}.about{gap:var(--space-3);padding-top:var(--space-6);border-top:1px solid var(--border);flex-direction:column;display:flex}.about-text{font-size:var(--text-sm);line-height:var(--leading-sm);color:var(--text-2)}.links{gap:var(--space-2) var(--space-4);flex-wrap:wrap;list-style:none;display:flex}.links a,.about-text a{font-size:var(--text-sm);line-height:var(--leading-sm);color:var(--text);text-decoration:underline;-webkit-text-decoration-color:var(--border-strong);text-decoration-color:var(--border-strong);text-underline-offset:4px;transition:text-decoration-color var(--fast) var(--ease);font-weight:500}.links a:hover,.about-text a:hover{-webkit-text-decoration-color:var(--accent);text-decoration-color:var(--accent)}.about-meta{font-size:var(--text-xs);line-height:var(--leading-xs);color:var(--text-3)}.groups-root{gap:var(--space-6);flex-direction:column;display:flex}.group-chip{align-items:center;gap:var(--space-2);height:var(--control-sm);padding:0 var(--space-4);border-radius:var(--radius-control);border:1.5px solid var(--outline);max-width:min(480px,100%);font-size:var(--text-sm);line-height:var(--leading-sm);color:var(--text);transition:border-color var(--fast) var(--ease);font-weight:500;display:inline-flex}.group-chip:hover{border-color:var(--text)}.group-chip span:last-child{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.live-dot{border-radius:var(--radius-control);background:var(--online);flex-shrink:0;width:8px;height:8px}.stage .group-chip{margin-bottom:calc(var(--space-4) * -1)}.is-following .controls .btn,.is-following .controls .icon-btn,.is-following .mode{opacity:.45;cursor:not-allowed}.is-following .controls .btn:hover,.is-following .mode:hover{opacity:.45}.is-following .btn-primary .icon-play,.is-following .btn-primary .icon-pause{display:none}.inline-form{gap:var(--space-2);display:flex}.inline-form .input{flex:1;min-width:0}.notice{font-size:var(--text-sm);line-height:var(--leading-sm);color:var(--text);padding:var(--space-3) var(--space-4);border-radius:var(--radius-surface);background:var(--surface-2)}.eyebrow{font-size:var(--text-xs);line-height:var(--leading-xs);color:var(--accent);font-weight:600}.invite-card{gap:var(--space-3);padding:var(--space-4);border-color:var(--accent);flex-direction:column;display:flex}.invite-name{font-family:var(--font-display);font-size:var(--text-lg);line-height:var(--leading-lg);font-weight:700}.card.is-danger{border-color:var(--danger)}.card-title{margin:0}.skeleton-item{background:linear-gradient(90deg, var(--surface-2) 25%, var(--border) 50%, var(--surface-2) 75%) 0 0 / 200% 100%;border-color:#0000;height:64px;animation:1.2s linear infinite shimmer}.skeleton-line{color:#0000;border-radius:var(--radius-sm);background:linear-gradient(90deg, var(--surface-2) 25%, var(--border) 50%, var(--surface-2) 75%) 0 0 / 200% 100%;animation:1.2s linear infinite shimmer}.item-center{align-items:center}.item-center .item-main{padding-top:0}.detail-top{align-items:center;gap:var(--space-2);margin-left:calc(var(--space-2) * -1);display:flex}.detail-top .panel-title{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.session-bar{justify-content:space-between;align-items:center;gap:var(--space-4);padding:var(--space-4);border-radius:var(--radius-surface);border:1px solid var(--border);background:var(--bg);display:flex}.session-text{gap:var(--space-1);flex-direction:column;min-width:0;display:flex}.subtabs{gap:var(--space-2);margin-bottom:calc(var(--space-2) * -1);display:flex}.subtab{align-items:center;gap:var(--space-2);height:var(--control-sm);padding:0 var(--space-4);border-radius:var(--radius-control);border:1.5px solid var(--border-strong);font-family:var(--font-display);font-size:var(--text-sm);line-height:var(--leading-sm);color:var(--text-2);transition:border-color var(--fast) var(--ease), color var(--fast) var(--ease), background-color var(--fast) var(--ease);font-weight:600;display:inline-flex}.subtab:hover{color:var(--text);border-color:var(--outline)}.subtab[aria-selected=true]{background:var(--primary);border-color:var(--primary);color:var(--on-primary)}.count-inline{position:static}.subpanel{gap:var(--space-6);flex-direction:column;display:flex}.chat-log{gap:var(--space-3);overscroll-behavior:contain;min-height:240px;max-height:420px;padding:var(--space-4);border-radius:var(--radius-surface);border:1px solid var(--border);background:var(--bg);scrollbar-width:thin;scrollbar-color:var(--border-strong) transparent;flex-direction:column;display:flex;overflow-y:auto}.chat-log .empty{border:0;margin:auto 0}.chat-note{font-size:var(--text-xs);line-height:var(--leading-xs);color:var(--text-3);text-align:center}.msg{gap:var(--space-1);flex-direction:column;display:flex}.msg+.msg:not(:has(.msg-meta)){margin-top:calc(var(--space-2) * -1)}.msg-meta{align-items:baseline;gap:var(--space-2);display:flex}.msg-name{font-family:var(--font-display);font-size:var(--text-sm);line-height:var(--leading-sm);font-weight:700}.msg.is-own .msg-name{color:var(--accent)}.msg-time{font-size:var(--text-xs);line-height:var(--leading-xs);color:var(--text-3)}.msg-text{font-size:var(--text-sm);line-height:var(--leading-sm);white-space:pre-wrap;overflow-wrap:anywhere}.msg-body{align-items:flex-start;gap:var(--space-2);display:flex}.msg-body .msg-text{flex:1;min-width:0}.msg-actions{align-items:center;gap:var(--space-2);flex-shrink:0;display:flex}.msg-confirm{font-size:var(--text-xs);line-height:var(--leading-xs);color:var(--text-2)}.msg-actions .icon-btn-sm{color:var(--text-3)}.msg-actions .icon-btn-sm:hover{color:var(--danger);background:var(--surface-2)}@media (hover:hover){.msg-actions .icon-btn-sm{opacity:0;transition:opacity var(--fast) var(--ease), color var(--fast) var(--ease)}.msg:hover .msg-actions .icon-btn-sm,.msg:focus-within .msg-actions .icon-btn-sm{opacity:1}}.composer{align-items:flex-end;gap:var(--space-2);margin-top:calc(var(--space-3) * -1);flex-wrap:wrap;display:flex}.composer-msg{flex-basis:100%}.composer-msg[hidden]{display:none}.composer-input{min-height:var(--control);max-height:160px;padding:var(--space-2) var(--space-4);border-radius:var(--radius-surface);resize:none;field-sizing:content}.encryption-hint{margin-top:calc(var(--space-4) * -1)}.unread-badge{top:var(--space-2);right:var(--space-2);border-radius:var(--radius-control);background:var(--unread);width:8px;height:8px;box-shadow:0 0 0 2px var(--bg);animation:unread-in var(--base) var(--ease);position:absolute}.unread-badge[hidden]{display:none}.unread-badge-inline{margin-left:var(--space-2);vertical-align:middle;box-shadow:none;display:inline-block;position:static}.tab[aria-selected=true] .unread-badge-inline{display:none}.item-title-row{align-items:center;gap:var(--space-2);min-width:0;display:flex}.item-title-row>span:not(.unread-dot){text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.unread-dot{border-radius:var(--radius-control);background:var(--unread);flex-shrink:0;width:8px;height:8px;display:none}.item.is-unread .unread-dot{display:inline-block}.item.is-unread .item-title-row{font-weight:700}@keyframes unread-in{0%{transform:scale(0)}to{transform:scale(1)}}.chat-box{position:relative}.chat-box .chat-log{transition:padding-bottom var(--base) var(--ease)}.chat-box.has-typing .chat-log{padding-bottom:var(--space-12)}.typing{left:var(--space-3);bottom:var(--space-3);align-items:center;gap:var(--space-2);height:var(--control-sm);padding:0 var(--space-3);border-radius:var(--radius-control);border:1px solid var(--border);background:var(--surface);font-size:var(--text-xs);line-height:var(--leading-xs);color:var(--text-2);opacity:0;transform:translateY(var(--space-1));pointer-events:none;transition:opacity var(--base) var(--ease), transform var(--base) var(--ease);font-weight:500;display:inline-flex;position:absolute}.chat-box.has-typing .typing{opacity:1;transform:none}.typing-dots{gap:var(--space-1);display:inline-flex}.typing-dots span{border-radius:var(--radius-control);background:var(--text-2);width:4px;height:4px;animation:typing-bob 1.2s var(--ease) infinite}.typing-dots span:nth-child(2){animation-delay:.15s}.typing-dots span:nth-child(3){animation-delay:.3s}@keyframes typing-bob{0%,60%,to{opacity:.35;transform:none}30%{opacity:1;transform:translateY(-2px)}}.confirm-row{align-items:center;gap:var(--space-2);flex-wrap:wrap;display:flex}.btn-danger{color:var(--danger)}.btn-danger:hover{border-color:var(--danger)}.btn-danger-solid{background:var(--danger);color:var(--bg)}.btn-danger-solid:hover{opacity:.88}.safety-code{font-family:ui-monospace,SF Mono,Menlo,monospace;font-size:var(--text-md);line-height:var(--leading-md);letter-spacing:.04em;color:var(--text);font-variant-numeric:tabular-nums}.member-name{align-items:center;gap:var(--space-2);display:flex}.presence{border-radius:var(--radius-control);background:var(--border-strong);flex-shrink:0;width:8px;height:8px}.presence.is-online{background:var(--online)}.badge-pill{height:20px;padding:0 var(--space-2);border-radius:var(--radius-control);background:var(--surface-2);font-size:var(--text-xs);line-height:var(--leading-xs);color:var(--text-2);align-items:center;font-weight:600;display:inline-flex}.invite-list{gap:var(--space-1);padding-top:var(--space-3);border-top:1px solid var(--border);flex-direction:column;display:flex}.row-compact{min-height:48px;padding:0}.row-compact .row-label{font-size:var(--text-xs);line-height:var(--leading-xs);color:var(--text-2)}.leaderboard .item{gap:var(--space-4)}.rank{text-align:center;width:24px;font-family:var(--font-display);font-size:var(--text-md);line-height:var(--leading-md);color:var(--text-3);font-variant-numeric:tabular-nums;flex-shrink:0;font-weight:700}.leaderboard .item:first-child .rank{color:var(--accent)}.leader-minutes{font-family:var(--font-display);font-size:var(--text-md);line-height:var(--leading-md);font-variant-numeric:tabular-nums;font-weight:700}.segmented{gap:var(--space-1);padding:var(--space-1);border-radius:var(--radius-control);background:var(--surface-2);display:inline-flex}.segment{position:relative}.segment input{opacity:0;cursor:pointer;margin:0;position:absolute;inset:0}.segment span{height:var(--control-sm);min-width:44px;padding:0 var(--space-3);border-radius:var(--radius-control);font-size:var(--text-sm);line-height:var(--leading-sm);color:var(--text-2);font-variant-numeric:tabular-nums;transition:background-color var(--fast) var(--ease), color var(--fast) var(--ease);justify-content:center;align-items:center;font-weight:600;display:inline-flex}.segment:hover span{color:var(--text)}.segment input:checked+span{background:var(--primary);color:var(--on-primary)}.segment input:focus-visible+span{outline:2px solid var(--accent);outline-offset:2px}.hide-parts{gap:var(--space-3);flex-direction:column;display:flex}.hide-parts[hidden],.row[hidden]{display:none}.row-presets{flex-wrap:wrap}.preset-row{gap:var(--space-2);display:flex}.preset-row .btn[aria-pressed=true]{background:var(--primary);border-color:var(--primary);color:var(--on-primary)}.range{width:140px;height:var(--space-2);appearance:none;border-radius:var(--radius-control);background:var(--surface-2);cursor:pointer;flex-shrink:0}.range::-webkit-slider-thumb{appearance:none;width:var(--space-5);height:var(--space-5);border-radius:var(--radius-control);background:var(--primary);cursor:grab;border:0}.range::-moz-range-thumb{width:var(--space-5);height:var(--space-5);border-radius:var(--radius-control);background:var(--primary);cursor:grab;border:0}.range:focus-visible{outline:2px solid var(--accent);outline-offset:4px}.notices{z-index:45;right:var(--space-6);bottom:var(--space-16);align-items:flex-end;gap:var(--space-2);width:min(360px, calc(100vw - var(--space-8)));pointer-events:none;flex-direction:column;display:flex;position:fixed}.notice-card{grid-template-columns:var(--control) 1fr;gap:var(--space-3);width:100%;padding:var(--space-4);padding-right:var(--space-10);border-radius:var(--radius-surface);border:1px solid var(--border);background:var(--surface);color:var(--text);box-shadow:var(--shadow);text-align:left;cursor:pointer;pointer-events:auto;opacity:0;transform:translateY(var(--space-3)) scale(.98);transition:opacity var(--base) var(--ease), transform var(--slow) var(--ease), border-color var(--fast) var(--ease);align-items:start;display:grid;position:relative}.notice-card.is-visible{opacity:1;transform:none}.notice-card.is-leaving{opacity:0;transform:translateX(var(--space-4))}.notice-card:hover{border-color:var(--border-strong)}.notice-avatar{width:var(--control);height:var(--control);border-radius:var(--radius-control);background:var(--primary);color:var(--on-primary);font-family:var(--font-display);font-size:var(--text-md);place-items:center;font-weight:700;line-height:1;display:grid}.notice-main{gap:var(--space-1);flex-direction:column;min-width:0;display:flex}.notice-head{align-items:baseline;gap:var(--space-2);min-width:0;display:flex}.notice-name{font-family:var(--font-display);font-size:var(--text-sm);line-height:var(--leading-sm);text-overflow:ellipsis;white-space:nowrap;font-weight:700;overflow:hidden}.notice-group{font-size:var(--text-xs);line-height:var(--leading-xs);color:var(--text-2);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.notice-text{font-size:var(--text-sm);line-height:var(--leading-sm);color:var(--text-2);-webkit-line-clamp:3;overflow-wrap:anywhere;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.notice-close{top:var(--space-2);right:var(--space-2);position:absolute}.notice-card.is-status{align-items:center;gap:var(--space-2);width:auto;max-width:100%;padding:0 var(--space-3);height:var(--control-sm);border-radius:var(--radius-control);box-shadow:none;display:inline-flex}.notice-card.is-status .notice-main{align-items:baseline;gap:var(--space-2);flex-direction:row;overflow:hidden}.notice-status{font-size:var(--text-xs);line-height:var(--leading-xs);white-space:nowrap;font-weight:600}.notice-card.is-status .notice-group{font-size:var(--text-xs);line-height:var(--leading-xs);color:var(--text-3);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.status-dot{border-radius:var(--radius-control);background:var(--text-3);flex-shrink:0;width:8px;height:8px}.status-dot.is-online{background:var(--online)}.chat-status{justify-content:center;align-items:center;gap:var(--space-2);display:flex}.notice-progress{left:var(--space-4);right:var(--space-4);border-radius:var(--radius-control);background:var(--timeline);opacity:.9;transform-origin:0;height:2px;animation:notice-life var(--life,6s) linear forwards;position:absolute;bottom:0}.notice-card:hover .notice-progress,.notice-card:focus-within .notice-progress{animation-play-state:paused}@keyframes notice-life{0%{transform:scaleX(1)}to{transform:scaleX(0)}}.toast{z-index:40;left:50%;bottom:var(--space-8);max-width:calc(100vw - var(--space-8));padding:var(--space-3) var(--space-5);border-radius:var(--radius-control);border:1px solid var(--border);background:var(--surface);color:var(--text);box-shadow:var(--shadow);font-size:var(--text-sm);line-height:var(--leading-sm);transform:translate(-50%, var(--space-2));opacity:0;transition:opacity var(--base) var(--ease), transform var(--base) var(--ease);align-items:center;gap:var(--space-3);font-weight:500;display:flex;position:fixed}.toast.is-visible{opacity:1;transform:translate(-50%)}.toast-action{margin-right:calc(var(--space-2) * -1);color:var(--accent);flex-shrink:0}.toast-action:hover{background:var(--surface-2)}@media (width<=720px){.app{padding-left:var(--space-4);padding-right:var(--space-4)}.stage{gap:var(--space-6)}.modes{gap:var(--space-2)}.mode{padding:0 var(--space-4);font-size:var(--text-sm);line-height:var(--leading-sm)}.cycle{margin-top:calc(var(--space-2) * -1)}.controls .btn-primary{min-width:144px}.drawer{border-radius:var(--radius-surface) var(--radius-surface) 0 0;width:100%;height:min(88dvh,720px);padding-bottom:env(safe-area-inset-bottom);border-bottom:0;inset:auto 0 0;transform:translateY(100%)}.drawer-head{padding-left:var(--space-3)}.drawer-body{padding:var(--space-4)}.task-form{grid-template-columns:1fr 80px}.task-form .btn{grid-column:1/-1}.photos{grid-template-columns:repeat(3,1fr)}.toast{bottom:var(--space-4)}.notices{right:var(--space-4);bottom:var(--space-16);width:calc(100vw - var(--space-8))}.session-bar{flex-direction:column;align-items:stretch}.chat-log{max-height:320px}}@media (width<=420px){.bar{gap:var(--space-2)}.mode{padding:0 var(--space-3)}.brand{font-size:var(--text-md);line-height:var(--leading-md)}.bar .toolbar{gap:0}.bar .toolbar .icon-btn{width:var(--control);height:var(--control)}.tab{padding:0 var(--space-2)}.tabs{gap:0}.drawer-head{gap:var(--space-1);padding-left:var(--space-2);padding-right:var(--space-2)}}@media (pointer:coarse){.icon-btn{width:44px;height:44px}@media (width<=420px){.bar .toolbar .icon-btn{width:var(--control);height:var(--control)}}.icon-btn-lg{width:var(--control-lg);height:var(--control-lg)}.icon-btn-sm{width:var(--control);height:var(--control)}}@media (height<=600px) and (width>=721px){:root{--text-display:clamp(80px, 30vh, 160px)}.stage{gap:var(--space-4)}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:1ms!important;animation-duration:1ms!important;animation-iteration-count:1!important}}.pip-body{justify-content:center;align-items:center;gap:var(--space-2);background:var(--bg);height:100vh;color:var(--text);flex-direction:column;display:flex;overflow:hidden}.pip-mode{font-family:var(--font-display);font-size:var(--text-sm);line-height:var(--leading-sm);color:var(--text-2);font-weight:600}.pip-time{font-family:var(--font-display);font-variant-numeric:tabular-nums;letter-spacing:-.02em;font-size:64px;font-weight:700;line-height:1}.pip-controls{gap:var(--space-2);margin-top:var(--space-2);display:flex}
