@font-face{font-family:Kanit;font-style:normal;font-weight:300;font-display:swap;src:url(/_next/static/media/f8facca68d062c27-s.woff2) format("woff2");unicode-range:u+02d7,u+0303,u+0331,u+0e01-0e5b,u+200c-200d,u+25cc}@font-face{font-family:Kanit;font-style:normal;font-weight:300;font-display:swap;src:url(/_next/static/media/cef7b1d77d754f57-s.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:Kanit;font-style:normal;font-weight:300;font-display:swap;src:url(/_next/static/media/bcc230760beba904-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-20c4,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:Kanit;font-style:normal;font-weight:300;font-display:swap;src:url(/_next/static/media/bf2a3d1ec1972157-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:Kanit;font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/75717585c59e5075-s.woff2) format("woff2");unicode-range:u+02d7,u+0303,u+0331,u+0e01-0e5b,u+200c-200d,u+25cc}@font-face{font-family:Kanit;font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/158a69e2aae09d8b-s.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:Kanit;font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/9c064da0c6a8705d-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-20c4,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:Kanit;font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/a5f02fb6311fcdbc-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:Kanit;font-style:normal;font-weight:500;font-display:swap;src:url(/_next/static/media/c0ec9aca5b19e917-s.woff2) format("woff2");unicode-range:u+02d7,u+0303,u+0331,u+0e01-0e5b,u+200c-200d,u+25cc}@font-face{font-family:Kanit;font-style:normal;font-weight:500;font-display:swap;src:url(/_next/static/media/06bc8c83090c1ec1-s.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:Kanit;font-style:normal;font-weight:500;font-display:swap;src:url(/_next/static/media/1f6d3ad4ae0f1460-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-20c4,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:Kanit;font-style:normal;font-weight:500;font-display:swap;src:url(/_next/static/media/eb67d5f0a1d7501d-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:Kanit;font-style:normal;font-weight:600;font-display:swap;src:url(/_next/static/media/e947190c9bdf6068-s.woff2) format("woff2");unicode-range:u+02d7,u+0303,u+0331,u+0e01-0e5b,u+200c-200d,u+25cc}@font-face{font-family:Kanit;font-style:normal;font-weight:600;font-display:swap;src:url(/_next/static/media/52c95d4165d01384-s.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:Kanit;font-style:normal;font-weight:600;font-display:swap;src:url(/_next/static/media/574f1d56a01c5fcb-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-20c4,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:Kanit;font-style:normal;font-weight:600;font-display:swap;src:url(/_next/static/media/25f7d470e08d7a87-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:Kanit;font-style:normal;font-weight:700;font-display:swap;src:url(/_next/static/media/dd867c03515903ae-s.woff2) format("woff2");unicode-range:u+02d7,u+0303,u+0331,u+0e01-0e5b,u+200c-200d,u+25cc}@font-face{font-family:Kanit;font-style:normal;font-weight:700;font-display:swap;src:url(/_next/static/media/5dfeb3c6bf0f27aa-s.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:Kanit;font-style:normal;font-weight:700;font-display:swap;src:url(/_next/static/media/5d1189028b68a613-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-20c4,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:Kanit;font-style:normal;font-weight:700;font-display:swap;src:url(/_next/static/media/61eb19e8a04bc1be-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:Kanit Fallback;src:local("Arial");ascent-override:108.49%;descent-override:38.96%;line-gap-override:0.00%;size-adjust:101.39%}.__className_32dda3{font-family:Kanit,Kanit Fallback;font-style:normal}.__variable_32dda3{--font-kanit:"Kanit","Kanit Fallback"}:root{color-scheme:light;--bg:#eceef2;--bg-2:#dfe2e8;--haze-warm:rgba(242,163,58,0.22);--haze-cool:rgba(120,140,190,0.16);--frame:rgba(255,255,255,0.10);--glass:linear-gradient(135deg,rgba(255,255,255,0.42),rgba(255,255,255,0.2) 55%,rgba(255,255,255,0.3));--glass-blur:blur(28px) saturate(150%) brightness(1.05);--glass-strong:rgba(255,255,255,0.5);--glass-border:rgba(255,255,255,0.45);--glass-highlight:rgba(255,255,255,0.95);--glass-rim:linear-gradient(135deg,rgba(255,255,255,0.95),rgba(255,255,255,0.25) 30%,rgba(255,255,255,0.06) 60%,rgba(255,255,255,0.55));--glass-shadow:0 10px 34px rgba(40,55,100,0.10),0 1px 2px rgba(40,55,100,0.06);--text:#121212;--text-2:#55554f;--muted:#8a8a84;--grid:rgba(11,11,11,0.07);--axis:rgba(11,11,11,0.18);--accent:#e08f1f;--on-accent:#1a1206;--series-1:#2a78d6;--series-2:#eb6834;--series-3:#1baf7a;--series-4:#6250d6;--good:#0ca30c;--warning:#fab219;--serious:#ec835a;--critical:#d03b3b;--radius:22px;--radius-sm:14px;--font:var(--font-kanit),system-ui,-apple-system,"Segoe UI",Roboto,sans-serif}:root[data-theme=dark]{color-scheme:dark;--bg:#17181c;--bg-2:#0a0a0c;--haze-warm:rgba(242,163,58,0.16);--haze-cool:rgba(150,165,200,0.10);--frame:rgba(255,255,255,0.04);--glass:rgba(22,23,28,0.55);--glass-blur:blur(20px) saturate(140%);--glass-rim:linear-gradient(180deg,rgba(255,255,255,0.12),rgba(255,255,255,0.02));--glass-strong:rgba(255,255,255,0.08);--glass-border:rgba(255,255,255,0.08);--glass-highlight:rgba(255,255,255,0.12);--glass-shadow:0 12px 40px rgba(0,0,0,0.35);--text:#f4f4f2;--text-2:#b9b9b3;--muted:#7f7f7a;--grid:rgba(255,255,255,0.07);--axis:rgba(255,255,255,0.16);--accent:#f2a33a;--on-accent:#1a1206;--series-1:#3987e5;--series-2:#d95926;--series-3:#199e70;--series-4:#9085e9;--good:#0ca30c;--warning:#fab219;--serious:#ec835a;--critical:#d03b3b;--radius:22px;--radius-sm:14px;--font:var(--font-kanit),system-ui,-apple-system,"Segoe UI",Roboto,sans-serif}*{box-sizing:border-box}body,html{margin:0;padding:0}body{font-family:var(--font);color:var(--text);background:linear-gradient(160deg,var(--bg) 0,var(--bg-2) 100%) fixed;min-height:100dvh;-webkit-font-smoothing:antialiased;position:relative;overflow-x:hidden}.backdrop{position:fixed;inset:0;z-index:-1;overflow:hidden;pointer-events:none;background:url(/wallpaper/wide.jpg) 50%/cover no-repeat,var(--bg)}@media (max-aspect-ratio:1/1){.backdrop{background-image:url(/wallpaper/tall.jpg)}}:root[data-theme=dark] .backdrop{background:radial-gradient(60% 50% at 100% 0,var(--haze-warm),transparent 70%),radial-gradient(55% 45% at 0 100%,var(--haze-cool),transparent 70%)}.backdrop span{display:none}a{color:inherit;text-decoration:none}button,input,select{font:inherit;color:inherit}.glass{position:relative;background:var(--glass);border:1px solid transparent;border-radius:var(--radius);backdrop-filter:var(--glass-blur);-webkit-backdrop-filter:var(--glass-blur);box-shadow:var(--glass-shadow),inset 0 1px 1px var(--glass-highlight),inset 0 -1px 1px rgba(255,255,255,.18)}.glass:before{content:"";position:absolute;inset:-1px;border-radius:inherit;padding:1px;background:var(--glass-rim);-webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);-webkit-mask-composite:xor;mask-composite:exclude;pointer-events:none}.glass>*{position:relative}.card{padding:20px 22px}.card h2,.card h3{margin:0}.card-label{font-size:12.5px;color:var(--text-2);letter-spacing:.01em;margin:0 0 6px}.card-head{display:flex;align-items:baseline;justify-content:space-between;gap:12px;margin-bottom:14px}.card-head h2{font-size:16px;font-weight:600}.card-head .sub{font-size:13px;color:var(--muted)}.frame{max-width:1320px;margin:20px auto;min-height:calc(100dvh - 40px);display:grid;grid-template-columns:76px 1fr;background:var(--frame);border-radius:30px;overflow:hidden}.frame:before{display:none}.frame.glass{backdrop-filter:none;-webkit-backdrop-filter:none;box-shadow:0 20px 60px rgba(40,55,100,.08),inset 0 1px 0 rgba(255,255,255,.6);border:1px solid rgba(255,255,255,.4)}:root[data-theme=dark] .frame.glass{backdrop-filter:var(--glass-blur);-webkit-backdrop-filter:var(--glass-blur)}.rail{display:flex;flex-direction:column;align-items:center;gap:6px;padding:18px 0;border-right:1px solid var(--glass-border)}.rail-brand{width:40px;height:40px;border-radius:14px;display:grid;place-items:center;margin-bottom:14px;background:var(--glass-strong);border:1px solid var(--glass-border)}.rail-nav{display:flex;flex-direction:column;gap:4px}.rail-btn,.rail-nav a{width:46px;height:46px;border-radius:14px;display:grid;place-items:center;color:var(--muted);border:1px solid transparent;background:none;cursor:pointer;transition:background .15s,color .15s}.rail-nav a span{display:none}.rail-btn:hover,.rail-nav a.active,.rail-nav a:hover{background:var(--glass-strong);color:var(--text)}.rail-nav a.active{border-color:var(--glass-border);box-shadow:inset 0 1px 0 var(--glass-highlight)}.rail-bottom{margin-top:auto}.content{padding:28px 28px 40px;min-width:0}.mobile-head,.tabbar{display:none}.brand{display:flex;align-items:center;gap:10px;font-weight:700;letter-spacing:-.01em}.brand .dot,.rail-brand .dot{width:10px;height:10px;border-radius:50%;background:linear-gradient(135deg,var(--accent),#f6c976);box-shadow:0 0 14px var(--accent);display:block}.rail-brand img{width:20px;height:auto;display:block}.brand .wordmark{height:15px;width:auto;display:block}.brand .product{font-weight:500;color:var(--text-2);letter-spacing:0}:root[data-theme=dark] .brand .wordmark,:root[data-theme=dark] .rail-brand img{filter:invert(1)}.grid{display:grid;grid-gap:16px;gap:16px;grid-template-columns:repeat(12,1fr)}.col-3{grid-column:span 3}.col-4{grid-column:span 4}.col-6{grid-column:span 6}.col-8{grid-column:span 8}.col-12{grid-column:span 12}@media (max-width:900px){.col-3{grid-column:span 6}.col-4,.col-8{grid-column:span 12}}@media (max-width:760px){.frame.glass{display:block;margin:0;min-height:100dvh;border-radius:0;background:none;border:none;box-shadow:none;backdrop-filter:none!important;-webkit-backdrop-filter:none!important}.rail{display:none}.content{padding:12px 16px calc(84px + env(safe-area-inset-bottom))}.mobile-head{display:flex;align-items:center;justify-content:space-between;padding:8px 2px 14px}.tabbar{position:fixed;left:10px;right:10px;bottom:calc(10px + env(safe-area-inset-bottom));z-index:20;display:grid;grid-auto-flow:column;grid-auto-columns:1fr;padding:6px;background:var(--glass);border:1px solid var(--glass-border);border-radius:24px;backdrop-filter:var(--glass-blur);-webkit-backdrop-filter:var(--glass-blur);box-shadow:var(--glass-shadow),inset 0 1px 1px var(--glass-highlight)}.tabbar a{display:flex;flex-direction:column;align-items:center;gap:3px;padding:7px 0 5px;border-radius:16px;color:var(--muted);font-size:10px;font-weight:500}.tabbar a svg{width:21px;height:21px}.tabbar a.active{color:var(--text);background:var(--glass-strong)}}.topbar{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:10px 10px 10px 18px;margin-bottom:24px}.shell{max-width:1180px;margin:0 auto;padding:24px 16px 80px}.nav{display:flex;gap:4px}.nav a{white-space:nowrap;padding:8px 14px;border-radius:999px;font-size:14px;color:var(--text-2);transition:background .15s,color .15s}.nav a.active,.nav a:hover{background:var(--glass-strong);color:var(--text)}.nav a.active{box-shadow:inset 0 1px 0 var(--glass-highlight)}@media (max-width:640px){.col-6{grid-column:span 12}.col-3{grid-column:span 6}.grid{gap:12px}.card{padding:16px}.stat .value{font-size:28px}.goal{grid-template-columns:56px 1fr;gap:12px}.goal>:last-child{grid-column:2;flex-direction:row!important;align-items:center!important}.glass{--glass-blur:blur(24px) saturate(150%) brightness(1.05)}h1.page{font-size:26px}.story{aspect-ratio:auto;min-height:300px}.story .big{font-size:48px}}h1.page{font-size:30px;letter-spacing:-.01em;margin:2px 0 20px;font-weight:700}h1.page small{display:block;font-size:14px;font-weight:400;color:var(--text-2);margin-top:4px;letter-spacing:0}.stat .value{font-size:36px;font-weight:700;letter-spacing:-.03em;line-height:1.05}.stat .value small{font-size:14px;color:var(--text-2);font-weight:500;margin-left:4px;letter-spacing:0}.stat .delta{font-size:13px;color:var(--text-2);margin-top:4px;display:flex;align-items:center;gap:6px}.stat .delta.down-good,.stat .delta.up-good{color:var(--good)}.stat .delta.down-bad,.stat .delta.up-bad{color:var(--serious)}.stat .spark{margin-top:10px;display:block;width:100%;height:36px}.hero{font-size:56px;font-weight:700;letter-spacing:-.03em;line-height:1}.btn{display:inline-flex;align-items:center;gap:8px;cursor:pointer;padding:10px 16px;border-radius:999px;border:1px solid var(--glass-border);background:var(--glass-strong);color:var(--text);font-weight:500;font-size:14px;box-shadow:inset 0 1px 0 var(--glass-highlight);transition:transform .1s,background .15s}.btn:hover{background:rgba(255,255,255,.18)}.btn:active{transform:scale(.98)}.btn.primary{background:var(--text);border-color:transparent;color:var(--bg-2);box-shadow:0 8px 24px rgba(0,0,0,.25);font-weight:600}.btn.primary:hover{filter:brightness(.94)}.btn.danger{color:var(--critical)}.btn.small{padding:6px 12px;font-size:13px}.btn.ghost{background:transparent;box-shadow:none}.field{display:flex;flex-direction:column;gap:6px;font-size:13px;color:var(--text-2)}.field input,.field select{padding:10px 12px;border-radius:12px;border:1px solid var(--glass-border);background:rgba(0,0,0,.18);color:var(--text);outline:none;min-width:0}:root:not([data-theme=dark]) .field input,:root:not([data-theme=dark]) .field select{background:rgba(255,255,255,.7)}.field input:focus,.field select:focus{border-color:var(--accent);box-shadow:0 0 0 3px rgba(242,163,58,.25)}.form-row{display:flex;flex-wrap:wrap;gap:12px;align-items:end}.form-row .field{flex:1 1 140px}.notice{padding:12px 16px;border-radius:var(--radius-sm);background:var(--glass);border:1px solid var(--glass-border);font-size:14px;margin-bottom:16px}.notice.ok{border-color:rgba(12,163,12,.5)}.notice.err{border-color:rgba(208,59,59,.6)}.muted{color:var(--muted)}.small{font-size:13px}.mono,code{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:12.5px}.pill{display:inline-flex;align-items:center;gap:6px;padding:3px 10px;border-radius:999px;font-size:12px;background:var(--glass-strong);color:var(--text-2);border:1px solid var(--glass-border)}.pill .sw{width:8px;height:8px;border-radius:50%}.goal{display:grid;grid-template-columns:64px 1fr auto;grid-gap:16px;gap:16px;align-items:center}.goal .title{font-weight:600;font-size:15px}.goal .meta{font-size:13px;color:var(--text-2);margin-top:2px}.goal .status{font-size:12px;display:inline-flex;align-items:center;gap:6px;padding:4px 10px;border-radius:999px;background:var(--glass-strong);border:1px solid var(--glass-border);white-space:nowrap}.status .ic{width:8px;height:8px;border-radius:50%}.status.done .ic{background:var(--good)}.status.on-track .ic{background:var(--accent)}.status.behind .ic{background:var(--serious)}.status.no-data .ic{background:var(--muted)}.track{height:8px;border-radius:999px;background:rgba(255,255,255,.1);overflow:hidden;margin-top:10px;position:relative}.track .fill{height:100%;border-radius:999px;background:var(--accent);transition:width .6s ease}.track .pace{position:absolute;top:-3px;width:2px;height:14px;background:var(--text);opacity:.6;border-radius:1px}.goal-actions{display:flex;gap:6px}.goal-actions button{background:none;border:none;cursor:pointer;color:var(--muted);padding:6px;border-radius:8px}.goal-actions button:hover{background:var(--glass-strong);color:var(--text)}table.data{width:100%;border-collapse:collapse;font-size:14px}table.data th{text-align:left;font-weight:500;color:var(--muted);font-size:12px;padding:8px 10px}table.data td,table.data th{border-bottom:1px solid var(--grid)}table.data td{padding:10px;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}table.data tr:last-child td{border-bottom:none}details.table-view summary{cursor:pointer;font-size:13px;color:var(--muted);margin-top:10px}.act{display:flex;align-items:center;gap:14px;padding:10px 0;border-bottom:1px solid var(--grid)}.act:last-child{border-bottom:none}.act .ico{width:40px;height:40px;border-radius:12px;display:grid;place-items:center;background:var(--glass-strong);font-size:18px;flex:none}.act .name{font-weight:500;font-size:14px}.act .meta{font-size:12.5px;color:var(--text-2)}.act .name .tag{display:inline-block;margin-left:8px;padding:1px 8px;border-radius:999px;font-size:11.5px;font-weight:500;color:var(--accent);background:color-mix(in srgb,var(--accent) 14%,transparent);vertical-align:1px}.act .right{margin-left:auto;text-align:right;font-size:13px;color:var(--text-2);white-space:nowrap}.chart{width:100%;display:block;overflow:visible}.chart text{fill:var(--muted);font-size:11px;font-family:var(--font)}.chart .grid line{stroke:var(--grid);stroke-width:1}.chart .axis{stroke:var(--axis);stroke-width:1}.day-chips{display:flex;gap:6px;flex-wrap:wrap;justify-content:center;margin-bottom:8px}.chip{padding:5px 12px;border-radius:999px;font-size:12.5px;color:var(--text-2);background:transparent;border:1px solid var(--grid);cursor:pointer;transition:background .15s,color .15s}.chip:hover{background:var(--glass-strong);color:var(--text)}.chip.active{background:var(--accent);border-color:var(--accent);color:#1a1205;font-weight:600}.session{text-align:center;font-size:13px;line-height:1.5}.legend,.session{margin-bottom:8px}.legend{display:flex;flex-wrap:wrap;gap:14px;font-size:12.5px;color:var(--text-2)}.legend span{display:inline-flex;align-items:center;gap:6px}.legend i{width:10px;height:10px;border-radius:50%;display:inline-block}.tooltip{position:absolute;pointer-events:none;z-index:5;font-size:12.5px;padding:8px 10px;border-radius:10px;background:var(--glass-strong);border:1px solid var(--glass-border);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);color:var(--text);white-space:nowrap;box-shadow:0 8px 24px rgba(0,0,0,.3)}.tooltip b{font-weight:600}.chart-wrap{position:relative}.story-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));grid-gap:16px;gap:16px}.story{aspect-ratio:4/5;padding:26px;display:flex;flex-direction:column;justify-content:space-between;overflow:hidden}.story .eyebrow{font-size:12px;text-transform:uppercase;letter-spacing:.12em;color:var(--text-2)}.story .big{font-size:60px;font-weight:700;letter-spacing:-.04em;line-height:1}.story .big small{font-size:20px;font-weight:500;letter-spacing:0;color:var(--text-2);margin-left:6px}.story .copy{font-size:15px;color:var(--text-2);line-height:1.45}.story .copy b{color:var(--text);font-weight:600}.story .glow{position:absolute;width:60%;aspect-ratio:1;border-radius:50%;filter:blur(60px);opacity:.28;right:-15%;top:-15%}.story.s1 .glow{background:var(--series-1)}.story.s2 .glow{background:var(--series-2)}.story.s3 .glow{background:var(--series-3)}.story.s4 .glow{background:var(--series-4)}.story.cover{background:linear-gradient(160deg,rgba(57,135,229,.22),rgba(144,133,233,.14) 60%,rgba(25,158,112,.16))}.story ol{margin:0;padding-left:20px;color:var(--text-2);font-size:15px;line-height:1.6}.story ol b{color:var(--text)}.login{min-height:100dvh;display:grid;place-items:center;padding:16px}.login .glass{width:100%;max-width:380px;padding:32px}.ring{display:grid;place-items:center}.ring svg{display:block}.ring .pct{font-size:13px;font-weight:600;fill:var(--text)}.sw-dot{display:inline-block;width:9px;height:9px;border-radius:50%;margin-right:4px;vertical-align:0}.food-hero{display:grid;grid-template-columns:minmax(230px,.9fr) minmax(260px,1.1fr);grid-gap:24px;gap:24px;align-items:center}@media (max-width:720px){.food-hero{grid-template-columns:1fr}}.comp-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));grid-gap:10px;gap:10px}.comp{padding:14px 16px;border-radius:var(--radius-sm);background:var(--glass);border:1px solid var(--glass-border)}.comp .v{font-size:22px;font-weight:600;letter-spacing:-.02em;line-height:1.1}.comp .v small{font-weight:500;margin-left:3px;letter-spacing:0}.comp .l,.comp .v small{font-size:12px;color:var(--text-2)}.comp .l{margin-top:4px}.comp .d{font-size:11.5px;color:var(--muted);margin-left:6px}.comp .r{font-size:11.5px;font-weight:600;margin-top:6px;display:inline-flex;align-items:center;gap:5px}.comp .r:before{content:"";width:6px;height:6px;border-radius:50%;background:currentColor}.tone-good{color:var(--good)}.tone-ok{color:var(--series-3)}.tone-warn{color:var(--warning)}.tone-bad{color:var(--serious)}.score{display:flex;gap:20px;align-items:center}.score .big{font-size:48px;font-weight:700;letter-spacing:-.03em;line-height:1}.score .big small{font-size:14px;font-weight:500;color:var(--text-2);margin-left:6px;letter-spacing:0}.silhouette{display:grid;grid-template-columns:minmax(220px,1fr) 1fr;grid-gap:20px;gap:20px;align-items:center}@media (max-width:900px){.silhouette{grid-template-columns:1fr}}.more summary{cursor:pointer;font-size:13px;color:var(--muted);margin:6px 0}.silhouette>*{min-width:0}.silhouette .chart-wrap,.silhouette canvas{max-width:100%}html{overflow-x:hidden;-webkit-text-size-adjust:100%}.table-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch;margin:0 -4px;padding:0 4px}code{overflow-wrap:anywhere}table.data.env td:nth-child(2){min-width:180px}button,input,select{touch-action:manipulation}@keyframes bar-grow{0%{transform:scaleY(0)}to{transform:scaleY(1)}}@keyframes reveal{0%{-webkit-clip-path:inset(0 100% 0 0);clip-path:inset(0 100% 0 0)}to{-webkit-clip-path:inset(0 0 0 0);clip-path:inset(0 0 0 0)}}@keyframes fade-in{0%{opacity:0}to{opacity:1}}@keyframes rise{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}@keyframes grow-x{0%{transform:scaleX(0)}to{transform:scaleX(1)}}.chart .bar{transform-box:fill-box;transform-origin:50% 100%;animation:bar-grow .7s cubic-bezier(.22,1,.36,1) both}.chart .reveal,.spark .reveal{-webkit-clip-path:inset(0 100% 0 0);clip-path:inset(0 100% 0 0);animation:reveal 1.1s cubic-bezier(.4,0,.2,1) forwards}.chart .end-dot,.spark .end-dot{animation:fade-in .3s ease-out 1s both}.spark .reveal{animation-duration:.9s}.track .fill{transform-origin:left center;animation:grow-x .9s cubic-bezier(.22,1,.36,1) both}.grid>*>.glass,.grid>.glass,.story-grid>.story{animation:rise .5s cubic-bezier(.22,1,.36,1) both}.grid>:nth-child(2),.story-grid>:nth-child(2){animation-delay:50ms}.grid>:nth-child(3),.story-grid>:nth-child(3){animation-delay:.1s}.grid>:nth-child(4),.story-grid>:nth-child(4){animation-delay:.15s}.grid>:nth-child(5),.story-grid>:nth-child(5){animation-delay:.2s}.grid>:nth-child(6),.story-grid>:nth-child(6){animation-delay:.25s}.grid>:nth-child(n+7),.story-grid>:nth-child(n+7){animation-delay:.3s}.hero,.score .big,.stat .value{animation:rise .6s cubic-bezier(.22,1,.36,1) .1s both}@media (prefers-reduced-motion:reduce){.chart .bar,.chart .end-dot,.chart .reveal,.grid>*>.glass,.grid>.glass,.hero,.score .big,.spark .end-dot,.spark .reveal,.stat .value,.story-grid>.story,.track .fill{animation:none}.chart .reveal,.spark .reveal{-webkit-clip-path:none;clip-path:none}}.week-head{display:flex;align-items:baseline;justify-content:space-between;gap:12px;flex-wrap:wrap;margin:4px 0 12px}.week-head h2{font-size:17px;margin:0}.week-head .sub{font-size:13px;color:var(--muted)}.habit-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));grid-gap:12px;gap:12px}.habit{padding:16px 16px 12px;display:grid;grid-template-columns:1fr auto;grid-gap:8px 12px;gap:8px 12px;align-items:start}.habit .title{font-weight:600;font-size:14.5px;letter-spacing:-.01em}.habit .val{font-size:26px;font-weight:700;letter-spacing:-.03em;line-height:1.1;margin-top:2px}.habit .val small{font-size:12.5px;font-weight:500;color:var(--muted);margin-left:4px;letter-spacing:0}.habit .note{font-size:12px;color:var(--text-2);margin-top:2px}.habit>div:first-child{grid-column:1;grid-row:1/span 2}.habit .ring{grid-column:2;grid-row:1/span 2}.habit .weekbars{grid-column:1/-1}.weekbars{position:relative;display:grid;grid-template-columns:repeat(7,1fr);grid-gap:4px;gap:4px;height:70px;margin-top:8px}.wb{display:flex;flex-direction:column;align-items:center;gap:4px}.wb .col{flex:1 1;width:100%;display:flex;align-items:flex-end;justify-content:center}.wb .bar{width:70%;max-width:22px;border-radius:4px 4px 2px 2px;background:var(--glass-strong);transform-origin:bottom;animation:bar-grow .7s cubic-bezier(.22,1,.36,1) both}.wb.hit .bar{background:var(--accent)}.wb.partial .bar{background:color-mix(in srgb,var(--accent) 45%,transparent)}.wb.miss .bar{background:var(--serious)}.wb.empty .bar,.wb.future .bar{height:3px!important;background:var(--grid)}.wb span{font-size:10.5px;color:var(--muted)}.wb.today span{color:var(--text);font-weight:600}.wb-target{position:absolute;left:0;right:0;border-top:1px dashed var(--axis);pointer-events:none}.lt-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));grid-gap:12px;gap:12px}.lt{padding:16px}.lt .title{font-weight:600;font-size:14.5px}.lt .val{font-size:30px;font-weight:700;letter-spacing:-.03em;line-height:1.05;margin-top:4px}.lt .val small{font-size:12.5px;font-weight:500;color:var(--muted);margin-left:4px;letter-spacing:0}.lt .journey{position:relative;height:8px;border-radius:999px;background:rgba(255,255,255,.1);margin:12px 0 6px}.lt .journey .fill{position:absolute;left:0;top:0;bottom:0;border-radius:999px;background:var(--accent);transform-origin:left;animation:grow-x .9s cubic-bezier(.22,1,.36,1) both}.lt .journey .cp{position:absolute;top:-4px;width:2px;height:16px;background:var(--text);opacity:.7;border-radius:1px}.lt .ends{display:flex;justify-content:space-between;font-size:11.5px;color:var(--muted)}.lt .check{margin-top:10px;font-size:12.5px;color:var(--text-2);display:flex;gap:8px;align-items:center;flex-wrap:wrap}.history{overflow-x:auto}.history table{border-collapse:separate;border-spacing:0 6px;width:100%;font-size:13px}.history th{font-weight:500;color:var(--muted);font-size:11px;text-align:center;padding:0 2px 2px}.history td:first-child,.history th:first-child{text-align:left;white-space:nowrap;padding-right:12px}.history td{text-align:center;padding:0 2px}.history .cell{display:inline-block;width:100%;max-width:44px;height:22px;border-radius:7px;background:var(--glass-strong)}.history .cell.done{background:var(--good)}.history .cell.on-track{background:color-mix(in srgb,var(--accent) 70%,transparent)}.history .cell.behind{background:color-mix(in srgb,var(--serious) 55%,transparent)}.history .cell.no-data{background:var(--grid)}.history .cell.now{outline:2px solid var(--text);outline-offset:-2px}.status-pill{display:inline-flex;align-items:center;gap:6px;padding:3px 9px;border-radius:999px;font-size:11.5px;background:var(--glass-strong);border:1px solid var(--glass-border);white-space:nowrap}.status-pill i{width:7px;height:7px;border-radius:50%;background:var(--muted)}.status-pill.done i{background:var(--good)}.status-pill.on-track i{background:var(--accent)}.status-pill.behind i{background:var(--serious)}@media (max-width:640px){.habit-grid,.lt-grid{grid-template-columns:1fr 1fr}.habit{padding:12px}.habit .val{font-size:22px}.weekbars{height:60px}}@media (max-width:420px){.habit-grid,.lt-grid{grid-template-columns:1fr}}.week-strip{display:grid;grid-template-columns:repeat(7,1fr);grid-gap:6px;gap:6px;padding:10px;margin-bottom:16px}.week-strip .wd{display:flex;flex-direction:column;gap:2px;padding:10px;border-radius:var(--radius-sm);border:1px solid transparent;min-width:0}.week-strip .wd .dow{font-size:12px;color:var(--muted)}.week-strip .wd b{font-size:14px;font-weight:600}.week-strip .wd small{font-size:11.5px;color:var(--text-2);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.week-strip .wd.legs,.week-strip .wd.pull,.week-strip .wd.push{background:var(--glass-strong)}.week-strip .wd.rest b{color:var(--muted);font-weight:500}.week-strip .wd.today{border-color:var(--accent)}.week-strip .wd.today .dow{color:var(--accent);font-weight:600}@media (max-width:760px){.week-strip{grid-template-columns:repeat(7,minmax(84px,1fr));overflow-x:auto;scroll-snap-type:x mandatory}.week-strip .wd{scroll-snap-align:start;padding:8px}}.ex-phase{position:absolute;left:0;top:8px}.view-chips{position:absolute;right:0;bottom:8px;display:flex;gap:4px}.view-chips button{padding:4px 10px;border-radius:999px;font-size:12px;color:var(--text-2);background:color-mix(in srgb,var(--bg) 70%,transparent);border:1px solid var(--grid);cursor:pointer;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}.view-chips button.active{color:var(--text);border-color:var(--accent)}.ex-meta{position:absolute;right:0;top:8px;display:flex;flex-direction:column;align-items:flex-end;gap:2px;font-size:12.5px;color:var(--text-2);pointer-events:none}.ex-meta b{font-size:15px;color:var(--text)}.ex-steps{display:grid;grid-template-columns:1.1fr repeat(4,1fr);grid-gap:6px;gap:6px;margin-top:10px}.ex-steps button.setup{border-style:dashed}.ex-steps button{display:flex;flex-direction:column;align-items:center;gap:2px;padding:8px 4px 7px;border-radius:var(--radius-sm);background:transparent;border:1px solid var(--grid);color:var(--text-2);font:inherit;font-size:12.5px;cursor:pointer;transition:background .15s,border-color .15s,color .15s}.ex-steps button .n{width:20px;height:20px;border-radius:50%;display:grid;place-items:center;font-size:11px;border:1px solid var(--grid)}.ex-steps button small{font-size:11px;color:var(--muted)}.ex-steps button.active,.ex-steps button:hover{background:var(--glass-strong);color:var(--text)}.ex-steps button.active{border-color:var(--accent)}.ex-steps button.active .n{background:var(--accent);border-color:var(--accent);color:var(--on-accent);font-weight:700}.ex-step-text{margin-top:8px;padding:10px 12px;border-radius:var(--radius-sm);background:var(--glass-strong);font-size:14px;line-height:1.55;color:var(--text-2);min-height:64px}.ex-step-text b{color:var(--text)}.ex-safety{margin-top:12px;padding:10px 14px 12px;border-radius:var(--radius-sm);border:1px solid color-mix(in srgb,var(--warning) 45%,transparent);background:color-mix(in srgb,var(--warning) 9%,transparent);font-size:13.5px;line-height:1.5}.ex-safety .card-label{color:var(--warning)}.ex-safety ul{margin:4px 0 0;padding-left:18px;color:var(--text)}.ex-safety li+li{margin-top:5px}.ex-safety li::marker{color:var(--warning)}.fm-overlay{position:absolute;inset:0;pointer-events:none;overflow:hidden}.fm-overlay svg{position:absolute;inset:0;width:100%;height:100%}.fm-overlay line{stroke:var(--good);stroke-width:1.2;opacity:.8}.fm-overlay circle{fill:var(--good)}.fm-overlay circle:nth-of-type(odd){fill:none;stroke:var(--good);stroke-width:1.2;opacity:.7}.fm-overlay line.bad{stroke:var(--serious)}.fm-overlay circle.bad{fill:var(--serious)}.fm-overlay circle.bad:nth-of-type(odd){fill:none;stroke:var(--serious);animation:fm-pulse 1.2s ease-out infinite}@keyframes fm-pulse{0%{transform:scale(.6);opacity:.9}to{transform:scale(1.6);opacity:0}}.fm-overlay circle.bad:nth-of-type(odd){transform-box:fill-box;transform-origin:center}.fm-label{position:absolute;left:0;top:0;max-width:46%;padding:3px 9px;border-radius:999px;font-size:11.5px;line-height:1.3;color:var(--text);background:color-mix(in srgb,var(--bg) 78%,transparent);border:1px solid color-mix(in srgb,var(--good) 55%,transparent);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);white-space:normal;text-align:center}.fm-label.bad{border-color:var(--serious);color:var(--text);max-width:58%}@media (max-width:640px){.fm-label{max-width:40%;font-size:11px;padding:2px 8px}}.ex-step-text.bad{border:1px solid color-mix(in srgb,var(--serious) 50%,transparent);background:color-mix(in srgb,var(--serious) 10%,transparent)}.chip.bad.active{background:var(--serious);border-color:var(--serious);color:#fff}.ex-guide{display:grid;grid-template-columns:1fr 1fr;grid-gap:16px 22px;gap:16px 22px;margin-top:14px;font-size:13.5px;line-height:1.5}.ex-guide ol,.ex-guide p,.ex-guide ul{margin:4px 0 0;color:var(--text-2)}.ex-guide ol,.ex-guide ul{padding-left:18px}.ex-guide li+li{margin-top:5px}.ex-mistakes{list-style:none;padding-left:0!important}.ex-mistakes li{display:grid;grid-gap:1px;gap:1px}.ex-mistakes .wrong{color:var(--text);font-weight:500}.ex-mistakes .wrong:before{content:"✕ ";color:var(--serious)}.ex-mistakes .fix:before{content:"→ ";color:var(--good)}.ex-remember li{color:var(--text)}.ex-basics{margin-top:12px;padding-top:10px;border-top:1px solid var(--grid);font-size:13px;line-height:1.5;color:var(--text-2)}.ex-basics summary{cursor:pointer;color:var(--text);font-weight:600;font-size:14px}.ex-basics p{margin:8px 0 0}.ex-basics b{color:var(--text);font-weight:600}@media (max-width:640px){.ex-guide{grid-template-columns:1fr;gap:12px}.ex-steps button span:not(.n){font-size:11.5px}}.ex-cues{display:grid;grid-template-columns:1fr 1.4fr;grid-gap:18px;gap:18px;margin-top:12px;font-size:14px;line-height:1.5}.ex-cues p,.ex-cues ul{margin:4px 0 0;color:var(--text-2)}.ex-cues ul{padding-left:18px}.ex-cues li+li{margin-top:3px}@media (max-width:640px){.ex-cues{grid-template-columns:1fr;gap:10px}}.ex-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:4px}.ex-list button{width:100%;display:grid;grid-template-columns:26px 1fr auto;align-items:center;grid-gap:10px;gap:10px;padding:9px 10px;border-radius:var(--radius-sm);background:transparent;border:1px solid transparent;color:var(--text);font:inherit;text-align:left;cursor:pointer;transition:background .15s,border-color .15s}.ex-list button.active,.ex-list button:hover{background:var(--glass-strong)}.ex-list button.active{border-color:var(--glass-border);box-shadow:inset 0 1px 0 var(--glass-highlight)}.ex-list .n{width:26px;height:26px;border-radius:50%;display:grid;place-items:center;font-size:12.5px;color:var(--text-2);border:1px solid var(--grid)}.ex-list button.active .n{background:var(--accent);border-color:var(--accent);color:var(--on-accent);font-weight:700}.ex-list .t{display:flex;flex-direction:column;min-width:0}.ex-list .t b{font-size:14px;font-weight:600}.ex-list .t small{font-size:12px;color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ex-list .r{font-size:13px;color:var(--text-2);font-feature-settings:"tnum";font-variant-numeric:tabular-nums;white-space:nowrap}.ex-notes{margin-top:14px;padding-top:12px;border-top:1px solid var(--grid);font-size:13px;line-height:1.5;color:var(--text-2)}.ex-notes p{margin:0 0 6px}.ex-notes b{color:var(--text);font-weight:600}