@font-face{font-family:Be Vietnam Pro;font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/cd79e1ff94fa521b-s.p.woff2) format("woff2");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+0300-0301,u+0303-0304,u+0308-0309,u+0323,u+0329,u+1ea0-1ef9,u+20ab}@font-face{font-family:Be Vietnam Pro;font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/89362aa296165c6d-s.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,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:Be Vietnam Pro;font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/e11f95d95ac59fa4-s.p.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:Be Vietnam Pro;font-style:normal;font-weight:500;font-display:swap;src:url(/_next/static/media/00f4982f357db61e-s.p.woff2) format("woff2");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+0300-0301,u+0303-0304,u+0308-0309,u+0323,u+0329,u+1ea0-1ef9,u+20ab}@font-face{font-family:Be Vietnam Pro;font-style:normal;font-weight:500;font-display:swap;src:url(/_next/static/media/62a3c74fa0e47362-s.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,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:Be Vietnam Pro;font-style:normal;font-weight:500;font-display:swap;src:url(/_next/static/media/8201559e247ad180-s.p.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:Be Vietnam Pro;font-style:normal;font-weight:600;font-display:swap;src:url(/_next/static/media/2173e4bb28c315da-s.p.woff2) format("woff2");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+0300-0301,u+0303-0304,u+0308-0309,u+0323,u+0329,u+1ea0-1ef9,u+20ab}@font-face{font-family:Be Vietnam Pro;font-style:normal;font-weight:600;font-display:swap;src:url(/_next/static/media/c6f81e539d11fc99-s.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,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:Be Vietnam Pro;font-style:normal;font-weight:600;font-display:swap;src:url(/_next/static/media/25ab8995c98996d7-s.p.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:Be Vietnam Pro;font-style:normal;font-weight:700;font-display:swap;src:url(/_next/static/media/9ddf1512dbee9c99-s.p.woff2) format("woff2");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+0300-0301,u+0303-0304,u+0308-0309,u+0323,u+0329,u+1ea0-1ef9,u+20ab}@font-face{font-family:Be Vietnam Pro;font-style:normal;font-weight:700;font-display:swap;src:url(/_next/static/media/8247d8d2a376ae43-s.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,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:Be Vietnam Pro;font-style:normal;font-weight:700;font-display:swap;src:url(/_next/static/media/e270c9fc4fe96f5a-s.p.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:Be Vietnam Pro;font-style:normal;font-weight:800;font-display:swap;src:url(/_next/static/media/6bb6a9cb68044e10-s.p.woff2) format("woff2");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+0300-0301,u+0303-0304,u+0308-0309,u+0323,u+0329,u+1ea0-1ef9,u+20ab}@font-face{font-family:Be Vietnam Pro;font-style:normal;font-weight:800;font-display:swap;src:url(/_next/static/media/9a3689a7cda641d2-s.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,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:Be Vietnam Pro;font-style:normal;font-weight:800;font-display:swap;src:url(/_next/static/media/bed26dc8a57eea87-s.p.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:Be Vietnam Pro Fallback;src:local("Arial");ascent-override:90.61%;descent-override:24.01%;line-gap-override:0.00%;size-adjust:110.36%}.__className_383d88{font-family:Be Vietnam Pro,Be Vietnam Pro Fallback;font-style:normal}.__variable_383d88{--font-sans:"Be Vietnam Pro","Be Vietnam Pro Fallback"}*,:after,:before{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:rgb(59 130 246/0.5);--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }::backdrop{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:rgb(59 130 246/0.5);--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }/*
! tailwindcss v3.4.13 | MIT License | https://tailwindcss.com
*/*,:after,:before{box-sizing:border-box;border:0 solid #e5e7eb}:after,:before{--tw-content:""}:host,html{line-height:1.5;-webkit-text-size-adjust:100%;-moz-tab-size:4;-o-tab-size:4;tab-size:4;font-family:ui-sans-serif,system-ui,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;font-feature-settings:normal;font-variation-settings:normal;-webkit-tap-highlight-color:transparent}body{margin:0;line-height:inherit}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,pre,samp{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-feature-settings:normal;font-variation-settings:normal;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}button,input,optgroup,select,textarea{font-family:inherit;font-feature-settings:inherit;font-variation-settings:inherit;font-size:100%;font-weight:inherit;line-height:inherit;letter-spacing:inherit;color:inherit;margin:0;padding:0}button,select{text-transform:none}button,input:where([type=button]),input:where([type=reset]),input:where([type=submit]){-webkit-appearance:button;background-color:transparent;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dd,dl,figure,h1,h2,h3,h4,h5,h6,hr,p,pre{margin:0}fieldset{margin:0}fieldset,legend{padding:0}menu,ol,ul{list-style:none;margin:0;padding:0}dialog{padding:0}input::-moz-placeholder,textarea::-moz-placeholder{opacity:1;color:#9ca3af}input::placeholder,textarea::placeholder{opacity:1;color:#9ca3af}[role=button],button{cursor:pointer}:disabled{cursor:default}audio,canvas,embed,iframe,img,object,svg,video{display:block;vertical-align:middle}img,video{max-width:100%;height:auto}[hidden]{display:none}.block{display:block}.flex{display:flex}.grid{display:grid}.hidden{display:none}.resize{resize:both}.ring{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(3px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000)}.filter{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}:root{--bg:#EDF2FB;--bg-tint:#E1EAF7;--panel:#FFFFFF;--panel-2:#F1F5FC;--panel-3:#E7EEFA;--border:#DBE3F1;--border-hi:#FFFFFF;--text:#101E36;--text-dim:#52627B;--accent:#2F6BF0;--accent-2:#1D4ED8;--accent-3:#0EA5E9;--accent-soft:rgba(47,107,240,0.10);--amber:#E0952B;--orange:#E5711F;--yellow:#CB8E00;--green:#16A34A;--purple:#7C5CE6;--red:#DB4A43;--red-soft:rgba(219,74,67,0.10);--btn-text:#FFFFFF;--glow:rgba(47,107,240,0.30);--shadow-sm:0 1px 2px rgba(16,32,60,.06),0 2px 8px -4px rgba(16,32,60,.10);--shadow-md:0 6px 22px -12px rgba(16,32,60,.26),0 2px 6px -3px rgba(16,32,60,.10);--shadow-lg:0 24px 60px -24px rgba(16,32,60,.30);--grad-brand:linear-gradient(135deg,#3B82F6,#22B8C9 52%,#22C55E);--grad-warm:linear-gradient(135deg,#FBBF24,#F59E0B 55%,#F97316);--grad-green:linear-gradient(135deg,#34D399,#16A34A);--grad-flame:linear-gradient(135deg,#FBBF24,#F59E0B);--grad-purple:linear-gradient(135deg,#A78BFA,#7C5CE6);--grad-surface:linear-gradient(180deg,#FFFFFF,#F5F8FE);--grad-focus:linear-gradient(135deg,#3B82F6,#2563EB 55%,#1E40AF);color-scheme:light}:root[data-theme=dark]{--bg:#070B14;--bg-tint:#0A1120;--panel:#111827;--panel-2:#172234;--panel-3:#1D2A41;--border:#26314A;--border-hi:rgba(255,255,255,0.05);--text:#E9EFFA;--text-dim:#A1B1CA;--accent:#4C8DFF;--accent-2:#2F6BF0;--accent-3:#38BDF8;--accent-soft:rgba(76,141,255,0.15);--amber:#F6B44A;--orange:#F5883E;--yellow:#F4CE5E;--green:#34D399;--purple:#A78BFA;--red:#EF5B54;--red-soft:rgba(239,91,84,0.16);--btn-text:#FFFFFF;--glow:rgba(76,141,255,0.45);--shadow-sm:0 1px 0 rgba(255,255,255,.03) inset,0 2px 10px -6px rgba(0,0,0,.6);--shadow-md:0 1px 0 rgba(255,255,255,.04) inset,0 12px 30px -16px rgba(0,0,0,.7);--shadow-lg:0 30px 70px -28px rgba(0,0,0,.8);--grad-brand:linear-gradient(135deg,#4C8DFF,#22C1C3 52%,#34D399);--grad-warm:linear-gradient(135deg,#F6B44A,#F5883E 55%,#EF5B54);--grad-green:linear-gradient(135deg,#4ADE80,#22C55E);--grad-flame:linear-gradient(135deg,#FCD34D,#F59E0B);--grad-purple:linear-gradient(135deg,#B79BFF,#8B5CF6);--grad-surface:linear-gradient(180deg,#141E30,#111827);--grad-focus:linear-gradient(135deg,#3B82F6,#1E63D6 55%,#123A8F);color-scheme:dark}*{box-sizing:border-box;-webkit-text-size-adjust:100%;-moz-text-size-adjust:100%;text-size-adjust:100%}body,html{margin:0;padding:0;width:100%;max-width:100%;overflow-x:hidden;background:var(--bg);color:var(--text);-webkit-tap-highlight-color:transparent}body:before{content:"";position:fixed;inset:0;z-index:-2;pointer-events:none;background:radial-gradient(60% 40% at 18% -8%,var(--accent-soft) 0,transparent 60%),radial-gradient(50% 35% at 100% 0,rgba(245,136,62,.06) 0,transparent 60%)}a{color:var(--accent)}#app{width:100%;min-height:100dvh;min-height:100vh;display:flex;flex-direction:column;padding-bottom:calc(76px + env(safe-area-inset-bottom));padding-left:env(safe-area-inset-left);padding-right:env(safe-area-inset-right)}header.topbar{position:sticky;top:0;z-index:30;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:calc(13px + env(safe-area-inset-top)) 16px 13px;background:color-mix(in srgb,var(--panel) 82%,transparent);backdrop-filter:saturate(1.5) blur(12px);border-bottom:1px solid var(--border)}header.topbar h1{font-size:19px;margin:0;font-weight:800;letter-spacing:-.02em}main{flex:1;width:100%;padding:16px}@media (min-width:560px){main{max-width:660px;margin:0 auto;padding:22px 22px 32px}}nav.tabbar{position:fixed;bottom:0;left:0;right:0;z-index:40;display:flex;background:color-mix(in srgb,var(--panel) 88%,transparent);backdrop-filter:saturate(1.5) blur(14px);border-top:1px solid var(--border);padding-bottom:env(safe-area-inset-bottom)}nav.tabbar button{flex:1;background:none;border:none;color:var(--text-dim);cursor:pointer;padding:10px 4px 9px;font-size:11px;font-weight:600;display:flex;flex-direction:column;align-items:center;gap:4px;position:relative;transition:color .2s ease,transform .15s ease}nav.tabbar button svg{width:23px;height:23px;transition:transform .2s ease}nav.tabbar button.active{color:var(--accent)}nav.tabbar button.active svg{transform:translateY(-2px) scale(1.06)}nav.tabbar button.active:before{content:"";position:absolute;top:0;left:50%;transform:translateX(-50%);width:26px;height:3px;border-radius:0 0 4px 4px;background:var(--grad-brand)}nav.tabbar button:active{transform:scale(.94)}@media (min-width:900px){#app{display:grid;grid-template-columns:276px minmax(0,1fr);grid-template-areas:"side head" "side main";width:100%;max-width:none;margin:0;padding-bottom:0;transition:grid-template-columns .28s cubic-bezier(.22,.8,.2,1)}#app[data-sb=closed]{grid-template-columns:0 minmax(0,1fr)}header.topbar{grid-area:head;padding:18px clamp(24px,4vw,56px)}main{grid-area:main;width:100%;max-width:1180px;margin:0 auto;padding:30px clamp(24px,4vw,56px) 84px}#app[data-sb=closed] main{max-width:1340px}nav.tabbar{grid-area:side;position:fixed;top:0;left:0;width:276px;height:100dvh;overflow-y:auto;overscroll-behavior:contain;flex-direction:column;align-items:stretch;justify-content:flex-start;gap:5px;border-top:none;border-right:1px solid var(--border);background:linear-gradient(180deg,var(--bg-tint),var(--bg));padding:22px 14px;backdrop-filter:none;-webkit-backdrop-filter:none;transition:transform .28s cubic-bezier(.22,.8,.2,1)}#app[data-sb=closed] nav.tabbar{transform:translateX(-100%)}nav.tabbar button{flex:0 0 auto;flex-direction:row;justify-content:flex-start;gap:13px;padding:12px 15px;border-radius:13px;font-size:15px;font-weight:600;white-space:nowrap}nav.tabbar button svg{width:21px;height:21px}nav.tabbar button:hover{color:var(--text);background:var(--panel-2)}nav.tabbar button.active{color:var(--accent);background:var(--accent-soft)}nav.tabbar button.active svg{transform:none}nav.tabbar button.active:before{display:none}.sb-brand{display:flex;align-items:center;gap:12px;padding:4px 12px 22px;white-space:nowrap}.sb-brand img{width:46px;height:46px;border-radius:14px;box-shadow:0 10px 22px -8px var(--glow);flex:0 0 auto}.sb-brand span{font-weight:800;font-size:24px;letter-spacing:-.02em;background:var(--grad-brand);-webkit-background-clip:text;background-clip:text;color:transparent}.sb-footer{display:block;margin-top:auto;border-top:1px solid var(--border)}.sb-footer .site-footer{padding:14px 6px 6px;font-size:12px;gap:6px}.sb-toggle{display:inline-flex}.modal-overlay{align-items:center}.modal-sheet{border-radius:18px;max-width:480px;max-height:88vh}}@media (min-width:1500px){main{max-width:1320px}#app[data-sb=closed] main{max-width:1480px}}.app-topbar-actions{display:flex;align-items:center;gap:9px}.topbar-brand{display:flex;align-items:center;gap:11px;min-width:0}.topbar-brand h1{white-space:nowrap}.brand-logo{border-radius:12px;box-shadow:0 8px 18px -8px var(--glow)}.brand-logo,.sb-toggle{width:40px;height:40px;flex:0 0 auto}.sb-toggle{display:inline-flex;border-radius:11px;align-items:center;justify-content:center;cursor:pointer;border:1px solid var(--border);background:var(--panel);color:var(--text);transition:transform .15s ease,background .18s ease,border-color .18s ease}.sb-toggle:hover{background:var(--panel-2);border-color:color-mix(in srgb,var(--accent) 45%,transparent)}.sb-toggle:active{transform:scale(.92)}.chip{font-size:11px;font-weight:700;padding:5px 11px;border-radius:999px;border:1px solid var(--border);color:var(--text-dim);background:var(--panel-2);display:inline-flex;align-items:center;gap:6px;white-space:nowrap}.chip.on{color:var(--accent);border-color:color-mix(in srgb,var(--accent) 40%,transparent);background:var(--accent-soft)}.chip.on:before{content:"";width:6px;height:6px;border-radius:50%;background:var(--accent);box-shadow:0 0 8px var(--glow)}.chip.warn{color:var(--orange);border-color:color-mix(in srgb,var(--orange) 40%,transparent);background:color-mix(in srgb,var(--orange) 12%,transparent)}.icon-ghost{display:inline-flex;align-items:center;justify-content:center;width:36px;height:36px;border-radius:11px;border:1px solid var(--border);background:var(--panel);color:var(--text);cursor:pointer;font-size:15px;transition:transform .18s ease,background .18s ease,border-color .18s ease}.icon-ghost:hover{transform:translateY(-2px);background:var(--panel-2);border-color:color-mix(in srgb,var(--accent) 45%,transparent)}.icon-ghost:active{transform:scale(.92)}.avatar{width:34px;height:34px;border-radius:50%;-o-object-fit:cover;object-fit:cover;border:2px solid color-mix(in srgb,var(--accent) 55%,transparent);background:var(--panel-2);box-shadow:0 0 0 3px var(--accent-soft)}.gradient-text{background:var(--grad-brand);background-size:200% auto;-webkit-background-clip:text;background-clip:text;color:transparent;animation:hueSlide 6s ease-in-out infinite}.card{position:relative;background:var(--grad-surface);border-radius:18px;padding:17px;margin-bottom:15px;border:1px solid var(--border);box-shadow:var(--shadow-md)}.card:after{content:"";position:absolute;inset:0 0 auto 0;height:1px;border-radius:18px 18px 0 0;background:linear-gradient(90deg,transparent,var(--border-hi),transparent);pointer-events:none}.card h2{font-size:12px;margin:0 0 12px;color:var(--text-dim);font-weight:700;text-transform:uppercase;letter-spacing:.06em}.empty-state{color:var(--text-dim);font-size:13.5px;text-align:center;padding:14px 6px;line-height:1.6}.empty-state b{color:var(--text)}.btn-add-row,.btn-primary,.btn-secondary{font:inherit;cursor:pointer;width:100%;border-radius:13px;padding:13px 16px;font-weight:700;font-size:14.5px;transition:transform .16s ease,box-shadow .2s ease,background .2s ease;position:relative;overflow:hidden}.btn-primary{border:none;color:var(--btn-text);background:var(--grad-brand);box-shadow:0 10px 24px -10px var(--glow),0 2px 6px -2px rgba(0,0,0,.25)}.btn-primary:after{content:"";position:absolute;top:0;left:-60%;width:45%;height:100%;background:linear-gradient(100deg,transparent,rgba(255,255,255,.45),transparent);transform:skewX(-18deg);transition:left .6s ease}.btn-primary:hover{transform:translateY(-2px);box-shadow:0 16px 32px -12px var(--glow),0 3px 8px -2px rgba(0,0,0,.3)}.btn-primary:hover:after{left:130%}.btn-primary:active{transform:translateY(0) scale(.99)}.btn-secondary{border:1px solid var(--border);color:var(--text);background:var(--panel-2);margin-top:9px}.btn-secondary:hover{transform:translateY(-1px);border-color:color-mix(in srgb,var(--accent) 45%,transparent);background:var(--panel-3)}.btn-add-row{border:1.5px dashed color-mix(in srgb,var(--accent) 50%,var(--border));color:var(--accent);background:var(--accent-soft);margin-top:6px}.btn-add-row:hover{transform:translateY(-1px);background:color-mix(in srgb,var(--accent) 16%,transparent)}.progress-bar{height:12px;background:var(--panel-3);border-radius:8px;overflow:hidden;margin-top:10px;box-shadow:inset 0 1px 3px rgba(0,0,0,.18)}.progress-bar>div{height:100%;border-radius:8px;background:linear-gradient(90deg,var(--accent-3) 0,var(--accent) 45%,var(--amber) 78%,var(--orange) 100%);box-shadow:0 0 12px -2px var(--glow);transition:width .6s cubic-bezier(.22,.7,.2,1)}.progress-label{display:flex;justify-content:space-between;align-items:baseline}.progress-label .big{font-size:30px;font-weight:800;letter-spacing:-.02em;background:var(--grad-brand);-webkit-background-clip:text;background-clip:text;color:transparent}.week-strip-nav{display:flex;align-items:center;gap:8px;margin-bottom:6px}.week-arrow{flex:0 0 auto;width:34px;height:44px;border-radius:12px;cursor:pointer;border:1px solid var(--border);background:var(--panel);color:var(--text-dim);font-size:18px;transition:transform .15s ease,color .15s ease,border-color .15s ease}.week-arrow:hover{color:var(--accent);border-color:color-mix(in srgb,var(--accent) 45%,transparent);transform:translateY(-1px)}.week-strip{flex:1;display:flex;gap:5px}.day-cell{flex:1;display:flex;flex-direction:column;align-items:center;gap:3px;padding:7px 2px 6px;border-radius:13px;cursor:pointer;border:1px solid transparent;background:var(--panel);color:var(--text-dim);transition:transform .15s ease,background .2s ease,border-color .2s ease,color .2s ease}.day-cell .wd{font-size:10px;font-weight:700;letter-spacing:.02em}.day-cell .dn{font-size:15px;font-weight:800;color:var(--text)}.day-cell .dot{width:5px;height:5px;border-radius:50%;background:var(--accent)}.day-cell:hover{transform:translateY(-2px);border-color:var(--border)}.day-cell.today{border-color:color-mix(in srgb,var(--accent) 45%,transparent)}.day-cell.selected{background:var(--grad-brand);border-color:transparent;box-shadow:0 8px 18px -8px var(--glow)}.day-cell.selected .dn,.day-cell.selected .wd{color:var(--btn-text)}.day-cell.selected .dot{background:var(--btn-text)}.selected-date-label{text-align:center;font-size:12.5px;color:var(--text-dim);margin:8px 0 14px;font-weight:600}.main-focus{position:relative;overflow:hidden;background:var(--grad-focus);color:#fff;border-radius:18px;padding:16px 18px;margin-bottom:15px;box-shadow:0 16px 34px -16px var(--glow),var(--shadow-md)}.main-focus:before{content:"";position:absolute;right:-30px;top:-40px;width:160px;height:160px;background:radial-gradient(circle,rgba(255,255,255,.25),transparent 65%);pointer-events:none}.main-focus .label{font-size:10.5px;font-weight:800;text-transform:uppercase;letter-spacing:.1em;opacity:.9}.main-focus .value{font-size:18px;font-weight:800;margin-top:3px;letter-spacing:-.01em}.task-item{display:flex;align-items:center;gap:12px;padding:12px;border-radius:14px;margin-bottom:9px;background:var(--panel-2);border:1px solid var(--border);transition:transform .15s ease,border-color .2s ease,box-shadow .2s ease}.task-item:hover{transform:translateY(-1px);border-color:color-mix(in srgb,var(--accent) 30%,var(--border));box-shadow:var(--shadow-sm)}.checkbox{flex:0 0 auto;width:24px;height:24px;border-radius:8px;cursor:pointer;border:2px solid color-mix(in srgb,var(--accent) 55%,var(--border));color:var(--btn-text);font-size:13px;font-weight:800;display:flex;align-items:center;justify-content:center;transition:background .2s ease,transform .15s ease,border-color .2s ease}.checkbox:hover{transform:scale(1.08)}.checkbox.done{background:var(--grad-green);border-color:transparent;animation:pop .3s ease;box-shadow:0 6px 14px -6px rgba(34,197,94,.5)}.task-body{flex:1;min-width:0;cursor:pointer}.task-title{font-size:14.5px;font-weight:600;color:var(--text);word-break:break-word}.task-title.done{text-decoration:line-through;color:var(--text-dim)}.task-meta{display:flex;align-items:center;gap:8px;margin-top:5px;flex-wrap:wrap;font-size:11.5px;color:var(--text-dim)}.rank-badge{font-size:10.5px;padding:2px 7px;color:#fff}.rank-1{background:linear-gradient(135deg,#F5883E,#DB4A43)}.rank-2{background:linear-gradient(135deg,#F6B44A,#F5883E)}.rank-3{background:linear-gradient(135deg,#F4CE5E,#E0952B);color:#3a2a06}.rank-4{background:linear-gradient(135deg,#45E08A,#2FBF71);color:#04150c}.rank-5{background:linear-gradient(135deg,#34D399,#12A150);color:#04150c}.time-chip{padding:2px 7px;border-radius:999px;background:var(--panel-3);border:1px solid var(--border)}.icon-btn{flex:0 0 auto;width:30px;height:30px;border-radius:9px;cursor:pointer;border:1px solid var(--border);background:var(--panel);color:var(--text-dim);font-size:13px;display:inline-flex;align-items:center;justify-content:center;transition:transform .15s ease,color .15s ease,border-color .15s ease,background .15s ease}.icon-btn:hover{transform:translateY(-1px)}.icon-btn.danger:hover{color:var(--red);border-color:color-mix(in srgb,var(--red) 50%,transparent);background:var(--red-soft)}.icon-btn-copy-tomorrow:hover{color:var(--accent);border-color:color-mix(in srgb,var(--accent) 50%,transparent)}.icon-btn-copy-tomorrow.done{color:var(--accent);border-color:color-mix(in srgb,var(--accent) 45%,transparent);background:var(--accent-soft);opacity:.8;cursor:default}.habit-block{padding:13px;border-radius:14px;margin-bottom:10px;background:var(--panel-2);border:1px solid var(--border)}.habit-block-top{display:flex;align-items:flex-start;justify-content:space-between;gap:10px;margin-bottom:11px}.habit-name{font-size:14.5px;font-weight:700}.habit-target{font-size:11.5px;color:var(--text-dim);margin-top:2px}.habit-dot-col,.habit-dots{display:flex;gap:5px}.habit-dot-col{flex:1;flex-direction:column;align-items:center;cursor:pointer}.habit-dot{width:100%;max-width:34px;aspect-ratio:1;border-radius:10px;border:2px solid var(--border);background:var(--panel);transition:transform .15s ease,background .2s ease,border-color .2s ease}.habit-dot-col:hover .habit-dot{transform:translateY(-2px);border-color:color-mix(in srgb,var(--accent) 45%,transparent)}.habit-dot.on{background:var(--grad-flame);border-color:transparent;box-shadow:0 6px 14px -6px rgba(245,136,62,.55)}.habit-dot-col.today .habit-dot{border-color:color-mix(in srgb,var(--accent) 60%,transparent)}.hd-label{font-size:10px;font-weight:700;color:var(--text-dim)}.stat-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-bottom:15px}.stat-box{background:var(--grad-surface);border:1px solid var(--border);border-radius:16px;padding:16px;box-shadow:var(--shadow-sm);position:relative;overflow:hidden}.stat-box:before{content:"";position:absolute;right:-20px;top:-20px;width:80px;height:80px;background:radial-gradient(circle,var(--accent-soft),transparent 70%)}.stat-box .num{font-size:24px;font-weight:800;letter-spacing:-.02em;background:var(--grad-purple);-webkit-background-clip:text;background-clip:text;color:transparent}.stat-box:before{background:radial-gradient(circle,color-mix(in srgb,var(--purple) 18%,transparent),transparent 70%)}.stat-box .label{font-size:11.5px;color:var(--text-dim);margin-top:3px;font-weight:600}.week-bars{display:flex;gap:7px;align-items:flex-end;height:150px}.week-bars.month-bars{gap:4px}.week-bars .col{flex:1;gap:6px}.week-bars .bar,.week-bars .col{display:flex;flex-direction:column;align-items:center;height:100%;justify-content:flex-end}.week-bars .bar{width:100%}.week-bars .bar-pct{font-size:9.5px;font-weight:700;color:var(--text-dim);margin-bottom:3px}.week-bars .bar-fill{width:100%;border-radius:7px 7px 3px 3px;min-height:4px;background:linear-gradient(180deg,var(--accent-3),var(--accent) 70%,var(--accent-2));box-shadow:0 0 10px -3px var(--glow);transition:height .6s cubic-bezier(.22,.7,.2,1)}.week-bars .day-label{font-size:10px;font-weight:700;color:var(--text-dim)}.goal-period{font-size:10.5px;font-weight:800;text-transform:uppercase;letter-spacing:.08em;color:var(--accent)}.goal-title{font-size:16px;font-weight:800;margin:4px 0 6px;letter-spacing:-.01em}.action-item{display:flex;align-items:center;gap:10px;padding:8px 0;border-top:1px solid var(--border);margin-top:8px}.action-item:first-of-type{margin-top:10px}.toggle-row{display:flex;align-items:center;justify-content:space-between;gap:14px}.toggle-label{font-size:14px;font-weight:600}.toggle-sub{font-size:12px;color:var(--text-dim);margin-top:2px}.switch{flex:0 0 auto;width:50px;height:30px;border-radius:999px;cursor:pointer;background:var(--panel-3);border:1px solid var(--border);position:relative;transition:background .25s ease,border-color .25s ease}.switch .knob{position:absolute;top:3px;left:3px;width:22px;height:22px;border-radius:50%;background:#fff;box-shadow:0 2px 5px rgba(0,0,0,.3);transition:transform .25s cubic-bezier(.5,1.6,.5,1)}.switch.on{background:var(--grad-brand);border-color:transparent}.switch.on .knob{transform:translateX(20px)}.field{margin-bottom:13px}.field label{display:block;font-size:12px;color:var(--text-dim);margin-bottom:6px;font-weight:600}.field-row{display:flex;gap:11px}.field-row .field{flex:1}input,select,textarea{width:100%;font:inherit;font-size:16px;color:var(--text);background:var(--panel-2);border:1px solid var(--border);border-radius:12px;padding:11px 13px;outline:none;transition:border-color .2s ease,box-shadow .2s ease}input:focus,select:focus,textarea:focus{border-color:color-mix(in srgb,var(--accent) 60%,transparent);box-shadow:0 0 0 3px var(--accent-soft)}textarea{min-height:84px;resize:vertical;line-height:1.5}@media (min-width:560px){input,select,textarea{font-size:14px}}.modal-overlay{position:fixed;inset:0;z-index:60;display:flex;align-items:flex-end;background:rgba(4,10,7,.55);backdrop-filter:blur(3px);animation:fade .2s ease}.modal-sheet{width:100%;margin:0 auto;background:var(--grad-surface);border:1px solid var(--border);border-bottom:none;border-radius:22px 22px 0 0;padding:22px 18px calc(22px + env(safe-area-inset-bottom));max-height:88vh;overflow-y:auto;box-shadow:var(--shadow-lg);animation:sheetUp .3s cubic-bezier(.22,.8,.2,1)}.modal-sheet h3{margin:0 0 16px;font-size:17px;font-weight:800;letter-spacing:-.01em}.modal-actions{display:flex;gap:11px;margin-top:18px}.modal-actions .btn-primary,.modal-actions .btn-secondary{margin-top:0}@media (min-width:640px){.modal-overlay{align-items:center}.modal-sheet{max-width:460px;border-radius:20px;border-bottom:1px solid var(--border);animation:sheetIn .28s cubic-bezier(.22,.8,.2,1)}}.login-gate{min-height:calc(100dvh - 40px);display:flex;flex-direction:column;justify-content:center;gap:8px;max-width:420px;margin:0 auto;padding:24px 4px}.login-brand{text-align:center;margin-bottom:8px}.login-logo{width:100px;height:100px;border-radius:26px;margin:0 auto 18px;display:block;-o-object-fit:cover;object-fit:cover;box-shadow:0 24px 50px -16px var(--glow),var(--shadow-md);animation:floatY 5s ease-in-out infinite}.login-brand h1{font-size:34px;margin:0 0 8px;font-weight:800;letter-spacing:-.03em}.login-brand p{color:var(--text-dim);font-size:14.5px;line-height:1.6;margin:0 auto;max-width:340px;text-wrap:pretty}.btn-google{width:100%;display:flex;align-items:center;justify-content:center;gap:11px;padding:14px 16px;border-radius:14px;border:1px solid var(--border);background:var(--panel);color:var(--text);font-weight:700;font-size:15px;cursor:pointer;transition:transform .16s ease,border-color .2s ease,box-shadow .2s ease}.btn-google:hover{transform:translateY(-2px);border-color:color-mix(in srgb,var(--accent) 50%,transparent);box-shadow:var(--shadow-md)}.btn-google:disabled{opacity:.6;cursor:default;transform:none}.g-mark{width:20px;height:20px;flex:0 0 20px}.aurora{position:fixed;inset:0;z-index:-1;overflow:hidden;pointer-events:none}.aurora:after,.aurora:before{content:"";position:absolute;border-radius:50%;filter:blur(60px)}.aurora:before{width:460px;height:460px;left:50%;top:-140px;transform:translateX(-50%);background:radial-gradient(circle,var(--accent) 0,transparent 62%);opacity:.2;animation:floatGlow 15s ease-in-out infinite}.aurora:after{width:360px;height:360px;right:-120px;bottom:-120px;background:radial-gradient(circle,var(--orange) 0,transparent 62%);opacity:.12;animation:floatGlow 18s ease-in-out infinite reverse}.site-footer{text-align:center;font-size:13px;padding:26px 16px calc(24px + env(safe-area-inset-bottom));display:flex;justify-content:center;gap:7px;flex-wrap:wrap}.site-footer,.site-footer a{color:var(--text-dim);align-items:center}.site-footer a{text-decoration:none;font-weight:700;display:inline-flex;gap:6px}.site-footer a:hover{color:var(--accent)}.site-footer img{width:17px;height:17px;border-radius:5px;vertical-align:middle}@keyframes appear{0%{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}@keyframes fade{0%{opacity:0}to{opacity:1}}@keyframes sheetUp{0%{transform:translateY(100%)}to{transform:none}}@keyframes sheetIn{0%{opacity:0;transform:translateY(16px) scale(.98)}to{opacity:1;transform:none}}@keyframes pop{0%{transform:scale(.6)}60%{transform:scale(1.15)}to{transform:scale(1)}}@keyframes hueSlide{0%,to{background-position:0}50%{background-position:100%}}@keyframes floatY{0%,to{transform:translateY(0)}50%{transform:translateY(-8px)}}@keyframes floatGlow{0%,to{transform:translate(0) scale(1)}50%{transform:translate(-6%,6%) scale(1.08)}}main>*{animation:appear .5s cubic-bezier(.22,.7,.2,1) both}main>:first-child{animation-delay:.02s}main>:nth-child(2){animation-delay:.07s}main>:nth-child(3){animation-delay:.12s}main>:nth-child(4){animation-delay:.17s}main>:nth-child(5){animation-delay:.22s}main>:nth-child(6){animation-delay:.27s}main>:nth-child(7){animation-delay:.32s}main>:nth-child(8){animation-delay:.37s}.action-item,.habit-block,.task-item{animation:appear .4s ease both}.task-item:nth-child(2){animation-delay:.04s}.task-item:nth-child(3){animation-delay:.08s}.task-item:nth-child(4){animation-delay:.12s}.task-item:nth-child(5){animation-delay:.16s}.reveal{animation:appear .5s cubic-bezier(.22,.7,.2,1) both}.reveal-1{animation-delay:.04s}.reveal-2{animation-delay:.1s}.reveal-3{animation-delay:.16s}.reveal-4{animation-delay:.22s}.lift{transition:transform .18s ease,box-shadow .2s ease}.lift:hover{transform:translateY(-2px);box-shadow:var(--shadow-md)}@media (prefers-reduced-motion:reduce){*,:after,:before{animation:none!important;transition:none!important}}@media (max-width:899px){#app:not([data-mnav=open]) .sb-brand,#app:not([data-mnav=open]) .sb-footer{display:none!important}}body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.rank-badge{font-size:11.5px;font-weight:800;line-height:1.4;padding:3px 9px;border-radius:999px;letter-spacing:.02em;color:var(--rk);background:color-mix(in srgb,var(--rk) 16%,transparent);border:1px solid color-mix(in srgb,var(--rk) 38%,transparent)}.rank-1{--rk:var(--red)}.rank-2{--rk:var(--orange)}.rank-3{--rk:var(--yellow)}.rank-4{--rk:var(--green)}.rank-5{--rk:var(--accent)}.icon-btn{width:38px;height:38px;font-size:14px}.checkbox{width:26px;height:26px;font-size:14px}.icon-ghost,.sb-toggle{width:42px;height:42px}.week-arrow{height:48px}.btn-add-row,.btn-primary,.btn-secondary{min-height:50px;font-size:15.5px}.btn-google{min-height:52px;font-size:15.5px}:where(button,a,input,select,textarea,.checkbox,.day-cell,.habit-dot-col):focus-visible{outline:2px solid var(--accent);outline-offset:2px}@media (max-width:899px){.task-title{font-size:15.5px;line-height:1.35}.task-meta{font-size:12.5px;gap:9px}.empty-state{font-size:14px;line-height:1.65}.card h2{font-size:12.5px}.habit-name{font-size:15.5px}.habit-target{font-size:12.5px}.day-cell .wd,.hd-label{font-size:11px}.day-cell .dn{font-size:16px}.selected-date-label{font-size:13.5px}.toggle-label{font-size:15px}.toggle-sub{font-size:12.5px}.goal-title{font-size:17px}.main-focus .value{font-size:19px;line-height:1.3}.week-bars .bar-pct{font-size:10.5px}.week-bars .day-label{font-size:11px}.site-footer{font-size:12.5px}nav.tabbar button{min-height:58px;font-size:11.5px;padding:9px 4px 8px}nav.tabbar button svg{width:24px;height:24px}#app{padding-bottom:calc(84px + env(safe-area-inset-bottom))}.habit-dot{max-width:42px;border-radius:12px}.habit-dots{gap:6px}.card{padding:16px 15px}.task-item{padding:13px 12px;gap:13px}.modal-sheet{padding:22px 16px calc(28px + env(safe-area-inset-bottom))}.modal-actions{gap:12px;margin-top:20px}}.trend-card{padding-bottom:10px}.trend-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-bottom:6px}.trend-big{font-size:34px;font-weight:800;letter-spacing:-.03em;line-height:1.1;margin-top:2px;background:var(--grad-brand);-webkit-background-clip:text;background-clip:text;color:transparent}.trend-chip{font-size:12px;font-weight:700;padding:6px 11px;border-radius:999px;border:1px solid var(--border);color:var(--text-dim);background:var(--panel-2);white-space:nowrap;margin-top:4px}.trend-chip.up{color:var(--green);border-color:color-mix(in srgb,var(--green) 40%,transparent);background:color-mix(in srgb,var(--green) 12%,transparent)}.trend-chip.down{color:var(--red);border-color:color-mix(in srgb,var(--red) 40%,transparent);background:var(--red-soft)}.trend-wrap{position:relative;width:100%}.trend-wrap svg{display:block;width:100%;height:auto;touch-action:pan-y}.trend-tip{position:absolute;transform:translateX(-50%);pointer-events:none;background:var(--panel-3);border:1px solid var(--border);border-radius:11px;padding:7px 11px;box-shadow:var(--shadow-md);z-index:5;display:flex;flex-direction:column;align-items:center;gap:1px;white-space:nowrap}.trend-tip b{font-size:15px;font-weight:800;color:var(--text)}.trend-tip span{font-size:11.5px;color:var(--text-dim)}@media (max-width:899px){.trend-big{font-size:30px}.trend-chip{font-size:11.5px}}.week-bars .col.future{opacity:.4}.nav-backdrop{position:fixed;inset:0;z-index:110;background:rgba(4,10,20,.55);backdrop-filter:blur(2px);animation:fade .2s ease;border:none;padding:0}@keyframes drawerIn{0%{transform:translateX(-100%)}to{transform:none}}@media (max-width:899px){#app[data-mnav=open] nav.tabbar{position:fixed;top:0;left:0;right:auto;bottom:auto;width:min(84vw,300px);height:100dvh;z-index:120;flex-direction:column;align-items:stretch;justify-content:flex-start;gap:6px;padding:22px 14px calc(16px + env(safe-area-inset-bottom));border-top:none;border-right:1px solid var(--border);background:linear-gradient(180deg,var(--bg-tint),var(--bg));backdrop-filter:none;-webkit-backdrop-filter:none;overflow-y:auto;animation:drawerIn .26s cubic-bezier(.22,.8,.2,1)}#app[data-mnav=open] .sb-brand{display:flex;align-items:center;gap:12px;padding:2px 10px 20px;white-space:nowrap}#app[data-mnav=open] .sb-brand img{width:44px;height:44px;border-radius:13px;box-shadow:0 10px 22px -8px var(--glow)}#app[data-mnav=open] .sb-brand span{font-weight:800;font-size:23px;letter-spacing:-.02em;background:var(--grad-brand);-webkit-background-clip:text;background-clip:text;color:transparent}#app[data-mnav=open] nav.tabbar button{flex:0 0 auto;flex-direction:row;justify-content:flex-start;gap:13px;padding:13px 15px;border-radius:13px;font-size:15.5px;min-height:52px}#app[data-mnav=open] nav.tabbar button svg{width:22px;height:22px;transform:none}#app[data-mnav=open] nav.tabbar button.active{background:var(--accent-soft)}#app[data-mnav=open] nav.tabbar button.active:before{display:none}#app[data-mnav=open] .sb-footer{display:block;margin-top:auto;border-top:1px solid var(--border)}#app[data-mnav=open] .sb-footer .site-footer{padding:14px 6px 4px;font-size:12px}}.stepper{display:flex;align-items:center;gap:8px}.stepper input{flex:1;min-width:0;text-align:center;font-weight:700;font-variant-numeric:tabular-nums;-moz-appearance:textfield}.stepper input::-webkit-inner-spin-button,.stepper input::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.stepper-unit{font-size:13px;color:var(--text-dim);font-weight:600}.stepper-btn{flex:0 0 auto;width:46px;height:46px;border-radius:13px;cursor:pointer;border:1px solid var(--border);background:var(--panel-2);color:var(--text);font-size:21px;font-weight:700;line-height:1;display:inline-flex;align-items:center;justify-content:center;transition:transform .14s ease,background .18s ease,border-color .18s ease}.stepper-btn:hover{background:var(--panel-3);border-color:color-mix(in srgb,var(--accent) 45%,transparent)}.stepper-btn:active{transform:scale(.9)}.emoji-pick-row{display:flex;align-items:flex-end;gap:11px}.emoji-pick-row .field{flex:1;margin-bottom:0}.emoji-current{flex:0 0 auto;width:54px;height:54px;border-radius:15px;cursor:pointer;border:1px solid var(--border);background:var(--panel-2);font-size:26px;line-height:1;display:inline-flex;align-items:center;justify-content:center;transition:transform .15s ease,border-color .18s ease}.emoji-current:hover{transform:translateY(-2px);border-color:color-mix(in srgb,var(--accent) 50%,transparent)}.emoji-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(48px,1fr));gap:8px;margin:4px 0 12px;max-height:46vh;overflow-y:auto}.emoji-cell{aspect-ratio:1;border-radius:13px;cursor:pointer;font-size:24px;line-height:1;border:1px solid var(--border);background:var(--panel-2);display:inline-flex;align-items:center;justify-content:center;transition:transform .14s ease,background .18s ease,border-color .18s ease}.emoji-cell:hover{transform:translateY(-2px) scale(1.06);background:var(--panel-3)}.emoji-cell.on{border-color:var(--accent);background:var(--accent-soft);box-shadow:0 0 0 3px var(--accent-soft)}.habit-emoji{flex:0 0 auto;width:42px;height:42px;border-radius:13px;cursor:pointer;border:1px solid var(--border);background:var(--panel-3);font-size:21px;line-height:1;display:inline-flex;align-items:center;justify-content:center;transition:transform .15s ease,border-color .18s ease}.habit-emoji:hover{transform:scale(1.08);border-color:color-mix(in srgb,var(--accent) 50%,transparent)}.habit-title-row{display:flex;align-items:center;gap:11px;min-width:0}.confetti-layer{position:fixed;inset:0;pointer-events:none;z-index:200}.confetti-layer i{position:absolute;width:9px;height:9px;border-radius:2px;transform:translate(-50%,-50%);animation:confettiFly var(--d,.7s) cubic-bezier(.15,.7,.3,1) forwards}@keyframes confettiFly{0%{transform:translate(-50%,-50%) scale(.35) rotate(0deg);opacity:1}65%{opacity:1}to{transform:translate(calc(-50% + var(--dx)),calc(-50% + var(--dy))) scale(1) rotate(var(--rot));opacity:0}}.confetti-layer .confetti-ring{position:absolute;width:18px;height:18px;border-radius:50%;border:2px solid var(--accent);transform:translate(-50%,-50%);animation:confettiRing .55s cubic-bezier(.2,.7,.3,1) forwards}@keyframes confettiRing{0%{transform:translate(-50%,-50%) scale(.3);opacity:.9}to{transform:translate(-50%,-50%) scale(4.2);opacity:0}}.pomo-btn{position:relative}.pomo-dial{width:20px;height:20px;border-radius:50%;background:conic-gradient(var(--accent) var(--deg,1turn),color-mix(in srgb,var(--accent) 18%,transparent) 0);box-shadow:0 0 0 1.5px color-mix(in srgb,var(--accent) 40%,transparent)}.pomo-btn.running{border-color:color-mix(in srgb,var(--accent) 55%,transparent);background:var(--accent-soft)}.pomo-overlay{position:fixed;inset:0;z-index:150;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:22px;padding:24px calc(20px + env(safe-area-inset-left)) calc(24px + env(safe-area-inset-bottom));background:color-mix(in srgb,var(--bg) 88%,transparent);backdrop-filter:blur(14px);animation:fade .25s ease;overflow:hidden}.pomo-task{position:relative;z-index:2;font-size:15.5px;font-weight:700;color:var(--text-dim);text-align:center;max-width:460px}.pomo-glow{position:absolute;z-index:0;pointer-events:none;width:62vmin;height:62vmin;border-radius:50%;filter:blur(58px);opacity:.5;will-change:transform}.pomo-glow-a{left:-14vmin;top:-10vmin;background:radial-gradient(circle,var(--accent) 0,transparent 68%);animation:glowDriftA 17s ease-in-out infinite}.pomo-glow-b{right:-16vmin;bottom:-12vmin;background:radial-gradient(circle,var(--accent-3) 0,transparent 68%);animation:glowDriftB 23s ease-in-out infinite}@keyframes glowDriftA{0%,to{transform:translateZ(0) scale(1)}33%{transform:translate3d(16vmin,10vmin,0) scale(1.16)}66%{transform:translate3d(6vmin,22vmin,0) scale(.92)}}@keyframes glowDriftB{0%,to{transform:translateZ(0) scale(1.05)}40%{transform:translate3d(-18vmin,-12vmin,0) scale(.9)}70%{transform:translate3d(-8vmin,-24vmin,0) scale(1.2)}}.pomo-stage{position:relative;z-index:2;display:grid;place-items:center}.pomo-halo{position:absolute;width:128%;aspect-ratio:1;border-radius:50%;background:conic-gradient(from 0deg,var(--accent),var(--accent-3),var(--purple),var(--accent));filter:blur(34px);opacity:.42;pointer-events:none;will-change:transform;animation:haloSpin 11s linear infinite}@keyframes haloSpin{0%{transform:rotate(0deg) scale(1)}50%{transform:rotate(180deg) scale(1.08)}to{transform:rotate(1turn) scale(1)}}.pomo-dial-lg{width:min(72vw,300px);aspect-ratio:1;border-radius:50%;background:conic-gradient(var(--accent) var(--deg,1turn),color-mix(in srgb,var(--accent) 12%,transparent) 0);box-shadow:0 0 0 10px var(--accent-soft),0 30px 70px -28px var(--glow);place-items:center;transition:box-shadow .3s ease}.pomo-dial-lg,.pomo-face{position:relative;z-index:1;display:grid}.pomo-face{place-items:center;text-align:center;line-height:1.1}.pomo-dial-lg:after{content:"";position:absolute;inset:16%;border-radius:50%;background:var(--panel);border:1px solid var(--border)}.pomo-time{font-size:clamp(38px,12vw,60px);font-weight:800;letter-spacing:-.03em;font-variant-numeric:tabular-nums;color:var(--text)}.pomo-sub,.pomo-time{position:relative;z-index:1}.pomo-sub{font-size:12.5px;color:var(--text-dim);font-weight:700;letter-spacing:.06em;margin-top:4px;text-align:center}.pomo-actions{position:relative;z-index:2;display:flex;gap:11px;flex-wrap:wrap;justify-content:center;width:min(100%,420px)}.pomo-actions button{flex:1 1 130px;min-height:50px}.pomo-paused .pomo-dial-lg{box-shadow:0 0 0 10px var(--panel-2),0 20px 50px -30px #000;filter:saturate(.5)}.pomo-paused .pomo-halo{animation-play-state:paused;opacity:.18}.pomo-paused .pomo-glow{animation-play-state:paused;opacity:.22}@media (prefers-reduced-motion:reduce){.pomo-glow,.pomo-halo{animation:none}}.pomo-pill{position:fixed;right:14px;z-index:130;cursor:pointer;bottom:calc(92px + env(safe-area-inset-bottom));display:inline-flex;align-items:center;gap:10px;padding:9px 14px 9px 10px;border-radius:999px;border:1px solid var(--border);background:var(--panel);box-shadow:var(--shadow-md);color:var(--text);font-weight:800;font-variant-numeric:tabular-nums;font-size:15px;animation:appear .3s ease both}.pomo-pill .pomo-dial{width:24px;height:24px}@media (min-width:900px){.pomo-pill{bottom:22px;right:22px}}