@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/inter-cyrillic-ext-400-normal-BQZuk6qB.woff2) format("woff2"),url(/assets/inter-cyrillic-ext-400-normal-DQukG94-.woff) format("woff");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/inter-cyrillic-400-normal-obahsSVq.woff2) format("woff2"),url(/assets/inter-cyrillic-400-normal-HOLc17fK.woff) format("woff");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/inter-greek-ext-400-normal-DGGRlc-M.woff2) format("woff2"),url(/assets/inter-greek-ext-400-normal-KugGGMne.woff) format("woff");unicode-range:U+1F00-1FFF}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/inter-greek-400-normal-B4URO6DV.woff2) format("woff2"),url(/assets/inter-greek-400-normal-q2sYcFCs.woff) format("woff");unicode-range:U+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/inter-vietnamese-400-normal-DMkecbls.woff2) format("woff2"),url(/assets/inter-vietnamese-400-normal-Bbgyi5SW.woff) format("woff");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:Inter;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/inter-latin-ext-400-normal-C1nco2VV.woff2) format("woff2"),url(/assets/inter-latin-ext-400-normal-77YHD8bZ.woff) format("woff");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:Inter;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/inter-latin-400-normal-C38fXH4l.woff2) format("woff2"),url(/assets/inter-latin-400-normal-CyCys3Eg.woff) format("woff");unicode-range:U+0000-00FF,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:Inter;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/inter-cyrillic-ext-500-normal-B0yAr1jD.woff2) format("woff2"),url(/assets/inter-cyrillic-ext-500-normal-BmqWE9Dz.woff) format("woff");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/inter-cyrillic-500-normal-BasfLYem.woff2) format("woff2"),url(/assets/inter-cyrillic-500-normal-CxZf_p3X.woff) format("woff");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/inter-greek-ext-500-normal-C4iEst2y.woff2) format("woff2"),url(/assets/inter-greek-ext-500-normal-2j5mBUwD.woff) format("woff");unicode-range:U+1F00-1FFF}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/inter-greek-500-normal-BIZE56-Y.woff2) format("woff2"),url(/assets/inter-greek-500-normal-Xzm54t5V.woff) format("woff");unicode-range:U+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/inter-vietnamese-500-normal-DOriooB6.woff2) format("woff2"),url(/assets/inter-vietnamese-500-normal-mJboJaSs.woff) format("woff");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:Inter;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/inter-latin-ext-500-normal-CV4jyFjo.woff2) format("woff2"),url(/assets/inter-latin-ext-500-normal-BxGbmqWO.woff) format("woff");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:Inter;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/inter-latin-500-normal-Cerq10X2.woff2) format("woff2"),url(/assets/inter-latin-500-normal-BL9OpVg8.woff) format("woff");unicode-range:U+0000-00FF,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:Inter;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/inter-cyrillic-ext-600-normal-Dfes3d0z.woff2) format("woff2"),url(/assets/inter-cyrillic-ext-600-normal-Bcila6Z-.woff) format("woff");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/inter-cyrillic-600-normal-CWCymEST.woff2) format("woff2"),url(/assets/inter-cyrillic-600-normal-4D_pXhcN.woff) format("woff");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/inter-greek-ext-600-normal-DRtmH8MT.woff2) format("woff2"),url(/assets/inter-greek-ext-600-normal-B8X0CLgF.woff) format("woff");unicode-range:U+1F00-1FFF}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/inter-greek-600-normal-plRanbMR.woff2) format("woff2"),url(/assets/inter-greek-600-normal-BZpKdvQh.woff) format("woff");unicode-range:U+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/inter-vietnamese-600-normal-Cc8MFFhd.woff2) format("woff2"),url(/assets/inter-vietnamese-600-normal-BuLX-rYi.woff) format("woff");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:Inter;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/inter-latin-ext-600-normal-D2bJ5OIk.woff2) format("woff2"),url(/assets/inter-latin-ext-600-normal-CIVaiw4L.woff) format("woff");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:Inter;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/inter-latin-600-normal-LgqL8muc.woff2) format("woff2"),url(/assets/inter-latin-600-normal-CiBQ2DWP.woff) format("woff");unicode-range:U+0000-00FF,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:Inter;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/inter-cyrillic-ext-700-normal-BjwYoWNd.woff2) format("woff2"),url(/assets/inter-cyrillic-ext-700-normal-LO58E6JB.woff) format("woff");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/inter-cyrillic-700-normal-CjBOestx.woff2) format("woff2"),url(/assets/inter-cyrillic-700-normal-DrXBdSj3.woff) format("woff");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/inter-greek-ext-700-normal-qfdV9bQt.woff2) format("woff2"),url(/assets/inter-greek-ext-700-normal-BoQ6DsYi.woff) format("woff");unicode-range:U+1F00-1FFF}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/inter-greek-700-normal-C3JjAnD8.woff2) format("woff2"),url(/assets/inter-greek-700-normal-BUv2fZ6O.woff) format("woff");unicode-range:U+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/inter-vietnamese-700-normal-DlLaEgI2.woff2) format("woff2"),url(/assets/inter-vietnamese-700-normal-BZaoP0fm.woff) format("woff");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:Inter;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/inter-latin-ext-700-normal-Ca8adRJv.woff2) format("woff2"),url(/assets/inter-latin-ext-700-normal-TidjK2hL.woff) format("woff");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:Inter;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/inter-latin-700-normal-Yt3aPRUw.woff2) format("woff2"),url(/assets/inter-latin-700-normal-BLAVimhd.woff) format("woff");unicode-range:U+0000-00FF,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}:root{--bg: #FFFFFF;--surface: #FFFFFF;--surface-2: #F7F7F7;--text: #000000;--text-dim: #6E6E6E;--border: #E5E5E5;--accent: #FF0000;--accent-soft: #FFE5E5;--shadow: 0 1px 2px rgba(0,0,0,.04), 0 8px 24px rgba(0,0,0,.06);--ok: #1A7F37;--ok-soft: rgba(26,127,55,.12);--warn: #F5A623;--heat-0: #F0F0F0;--heat-1: #FFD1CB;--heat-2: #FF9C90;--heat-3: #FF5A47;--heat-4: #D6432E;--font-stack: "Inter", -apple-system, system-ui, sans-serif}[data-theme=dark]{--bg: #0A0A0A;--surface: #141414;--surface-2: #1B1B1B;--text: #FFFFFF;--text-dim: #9A9A9A;--border: #2A2A2A;--accent: #FF3B30;--accent-soft: #3A1414;--shadow: 0 1px 2px rgba(0,0,0,.4), 0 12px 32px rgba(0,0,0,.45);--heat-0: #1F1F1F;--heat-1: #4A1712;--heat-2: #7A231A;--heat-3: #B33223;--heat-4: #FF3B30}*{box-sizing:border-box}html{background:var(--bg);min-height:100%}body{margin:0;background:var(--bg);color:var(--text);font-family:var(--font-stack);transition:background .3s ease,color .3s ease;min-height:100vh;min-height:100dvh}.shell{max-width:980px;margin:0 auto;padding:0 24px 64px;overflow-x:hidden}header.topnav{display:flex;align-items:center;justify-content:space-between;padding:24px 0 20px;border-bottom:2px solid var(--border);margin-bottom:40px}.logo-text{font-family:var(--font-stack);font-weight:700;font-size:26px;letter-spacing:-.01em;color:var(--text);display:block}.logo-text .logo-data{color:var(--accent)}.nav-links{display:flex;gap:34px;list-style:none;margin:0;padding:0}.nav-links a{color:var(--text-dim);text-decoration:none;font-size:14px;font-weight:500;letter-spacing:.01em;transition:color .2s ease}.nav-links a:hover,.nav-links a.active{color:var(--text)}.nav-links a.active{color:var(--accent);font-weight:700}.nav-links a.disabled{color:var(--border);cursor:not-allowed;pointer-events:none}.theme-toggle{width:46px;height:26px;border-radius:999px;background:var(--border);border:none;position:relative;cursor:pointer;transition:background .25s ease}.theme-toggle .knob{position:absolute;top:3px;left:3px;width:20px;height:20px;border-radius:50%;background:var(--surface);box-shadow:0 1px 3px #0000004d;transition:transform .25s ease;display:flex;align-items:center;justify-content:center;color:var(--text)}.theme-toggle .knob svg{width:12px;height:12px;display:block}[data-theme=dark] .theme-toggle .knob{transform:translate(20px)}.page-head{margin-bottom:32px}.page-head .eyebrow{font-size:12px;letter-spacing:.1em;text-transform:uppercase;color:var(--accent);font-weight:700;margin:0 0 8px}.page-head h1{font-size:40px;font-weight:700;letter-spacing:-.02em;margin:0;line-height:1.1}section.panel{background:var(--surface);border:1px solid var(--border);border-radius:16px;padding:28px 32px 32px;margin-bottom:24px;box-shadow:var(--shadow)}.panel-head{display:flex;align-items:baseline;justify-content:space-between;margin-bottom:22px}.panel-head h2{font-size:22px;font-weight:700;letter-spacing:-.01em;margin:0}.panel-head .sub{font-size:13px;color:var(--text-dim);font-weight:500}.card-row{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin-bottom:28px}.card-row:last-child{margin-bottom:0}.adj-card{background:var(--surface-2);border:1px solid var(--border);border-radius:12px;padding:20px;transition:transform .18s ease,box-shadow .18s ease;min-width:0}.adj-card:hover{transform:translateY(-2px);box-shadow:var(--shadow)}.adj-card .icon{width:34px;height:34px;border-radius:9px;background:var(--accent-soft);color:var(--accent);display:flex;align-items:center;justify-content:center;margin-bottom:14px}.adj-card .icon svg{width:18px;height:18px}.adj-card .label{font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--text-dim);font-weight:700;margin:0 0 4px}.adj-card .value{font-size:24px;font-weight:700;margin:0 0 6px;letter-spacing:-.01em}.adj-card .detail{font-size:13px;color:var(--text-dim);line-height:1.4;font-weight:400}.chart-grid{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(0,1fr);gap:20px;align-items:stretch}.chart-box{background:var(--surface-2);border:1px solid var(--border);border-radius:12px;padding:18px 20px;min-width:0}.chart-box h3{font-size:13px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--text-dim);margin:0 0 12px}.chart-canvas-wrap{position:relative;height:220px}.chart-box.tall .chart-canvas-wrap{height:320px}.chart-canvas-wrap canvas{max-width:100%}.chart-grid.two-up{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}.sync-btn{width:100%;padding:9px 0;border-radius:8px;border:none;background:var(--text);color:var(--bg);font-family:var(--font-stack);font-weight:700;font-size:13px;cursor:pointer;transition:opacity .15s ease;margin-top:auto}.sync-btn:hover{opacity:.85}.sync-btn.secondary{background:transparent;color:var(--accent);border:1.5px solid var(--accent)}.sync-btn:disabled{opacity:.5;cursor:default}footer{display:flex;gap:24px;padding-top:24px;border-top:1px solid var(--border);font-size:12px;color:var(--text-dim);font-weight:500}footer a{color:var(--text-dim);text-decoration:none}footer a:hover{color:var(--text)}.mobile-tabbar{display:none;position:fixed;left:0;right:0;bottom:0;background:var(--surface);border-top:1px solid var(--border);padding:6px 4px calc(6px + env(safe-area-inset-bottom));z-index:40}.mobile-tabbar-inner{display:flex;justify-content:space-around;align-items:center}.tabbar-item{display:flex;flex-direction:column;align-items:center;gap:3px;flex:1;padding:6px 2px;background:none;border:none;color:var(--text-dim);font-family:var(--font-stack);font-size:10px;font-weight:600;cursor:pointer;text-decoration:none}.tabbar-item svg{width:22px;height:22px}.tabbar-item.active{color:var(--accent)}.skeleton{position:relative;overflow:hidden;background:var(--surface-2);border-radius:8px;min-height:14px}.skeleton:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;transform:translate(-100%);background:linear-gradient(90deg,transparent,rgba(128,128,128,.14),transparent);animation:skeleton-sweep 1.4s infinite}@keyframes skeleton-sweep{to{transform:translate(100%)}}@media (prefers-reduced-motion: reduce){.skeleton:after{animation:none}}.error-box{background:var(--accent-soft);border:1px solid var(--accent);border-radius:12px;padding:16px 18px;font-size:13px;color:var(--text);line-height:1.5}.error-box .retry{margin-top:10px;width:auto;padding:8px 18px}.conf-badge{display:inline-flex;align-items:center;gap:4px;font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.04em;padding:2px 7px;border-radius:999px;white-space:nowrap}.conf-badge.high{color:var(--ok);background:var(--ok-soft)}.conf-badge.medium{color:#8a6d00;background:#f5a62329}.conf-badge.low{color:var(--accent);background:var(--accent-soft)}[data-theme=dark] .conf-badge.medium{color:var(--warn)}.landing{min-height:100vh;min-height:100dvh;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:18px;padding:24px;text-align:center}.landing .logo-text{font-size:40px;letter-spacing:-.02em}.landing .tagline{font-size:15px;color:var(--text-dim);max-width:420px;line-height:1.6;margin:0}.landing .demo-btn{width:auto;padding:12px 32px;font-size:15px}.landing .fine-print{font-size:12px;color:var(--text-dim);max-width:420px}@media (max-width: 720px){.card-row,.chart-grid,.chart-grid.two-up{grid-template-columns:1fr}.nav-links{display:none}.page-head h1{font-size:30px}.mobile-tabbar{display:block}.shell{padding-bottom:88px}}.dim{color:var(--text-dim)}.hero-btn{display:block;width:100%;background:none;border:none;padding:0;font-family:var(--font-stack);color:var(--text);text-align:left;cursor:pointer}.hero{display:flex;align-items:center;gap:24px;flex-wrap:wrap}.hero-score{font-size:72px;font-weight:700;letter-spacing:-.02em;line-height:1}.hero-score .of{font-size:18px;font-weight:600;color:var(--text-dim);margin-left:6px}.hero-meta{display:flex;flex-direction:column;gap:8px;align-items:flex-start}.hero-band{font-size:13px;font-weight:700;text-transform:uppercase;letter-spacing:.04em;padding:6px 14px;border-radius:999px;color:#fff}.hero-hint{font-size:12px;color:var(--text-dim);font-weight:500}.breakdown{border-top:1px solid var(--border);margin-top:22px;padding-top:6px}.breakdown-row{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,1.4fr) auto;gap:6px 14px;align-items:center;padding:13px 0;border-bottom:1px solid var(--border)}.breakdown-row:last-of-type{border-bottom:none}.bd-name{font-size:13.5px;font-weight:700;display:flex;align-items:center;gap:8px;flex-wrap:wrap}.bd-raw{font-size:12px;color:var(--text-dim);font-weight:500;grid-column:1}.bd-bar-wrap{grid-column:2;grid-row:1 / span 2}.bd-bar{position:relative;height:6px;border-radius:999px;background:var(--surface-2);border:1px solid var(--border);overflow:hidden}.bd-fill{position:absolute;inset:0 auto 0 0;background:var(--accent);border-radius:999px}.bd-math{font-size:11px;color:var(--text-dim);font-weight:500;margin-top:5px}.bd-contrib{grid-column:3;grid-row:1 / span 2;font-size:15px;font-weight:700;text-align:right;white-space:nowrap}.bd-contrib .pts{font-size:11px;font-weight:500;color:var(--text-dim);display:block}.formula-note{font-size:12px;color:var(--text-dim);line-height:1.5;margin:14px 0 0;padding-top:12px;border-top:1px solid var(--border)}.formula-note code{font-family:ui-monospace,monospace;font-size:11px}.card-row.metrics{grid-template-columns:repeat(4,minmax(0,1fr));margin-bottom:0}@media (max-width: 720px){.hero-score{font-size:56px}.breakdown-row{grid-template-columns:minmax(0,1.4fr) auto}.bd-bar-wrap{grid-column:1 / -1;grid-row:auto}.bd-contrib{grid-column:2;grid-row:1}.bd-raw{grid-column:1}.card-row.metrics{grid-template-columns:repeat(2,minmax(0,1fr))}}.visually-hidden{position:absolute;width:1px;height:1px;margin:-1px;padding:0;border:0;clip-path:inset(50%);overflow:hidden;white-space:nowrap}.donut-wrap{position:relative;display:flex;align-items:center;justify-content:center}.donut-center{position:absolute;text-align:center}.donut-center .n{font-size:26px;font-weight:700;display:block}.donut-center .l{font-size:11px;color:var(--text-dim);font-weight:600;text-transform:uppercase;letter-spacing:.04em}.macro-legend{display:flex;flex-direction:column;gap:8px;margin-top:16px;font-size:13px;font-weight:500}.macro-legend-item{display:flex;align-items:center;gap:8px}.swatch{width:10px;height:10px;border-radius:3px;display:inline-block}.swatch-protein{background:var(--accent)}.swatch-carbs{background:var(--text)}.swatch-fat{background:var(--text-dim)}.heatmap-wrap{display:grid;grid-auto-flow:column;grid-template-rows:repeat(7,1fr);gap:3px;overflow-x:auto;padding-bottom:4px}.heat-cell{width:13px;height:13px;border-radius:3px;display:inline-block}.heatmap-legend{display:flex;align-items:center;gap:4px;margin-top:12px;font-size:11px;color:var(--text-dim);font-weight:500}.heatmap-legend .heat-cell{margin:0 1px}.gauge-wrap{display:flex;flex-direction:column;align-items:center;gap:4px}.gauge-wrap svg{max-width:260px;width:100%;height:auto}.gauge-center{text-align:center;margin-top:-46px}.gauge-center .n{font-size:30px;font-weight:700;display:block;letter-spacing:normal;font-variant-numeric:tabular-nums}.gauge-center .l{font-size:11px;color:var(--text-dim);font-weight:700;text-transform:uppercase;letter-spacing:.05em}.gauge-legend{display:flex;flex-wrap:wrap;justify-content:center;gap:6px 14px;margin-top:18px;font-size:11px;color:var(--text-dim);font-weight:500}.gauge-legend .rl-swatch{width:9px;height:9px;border-radius:50%;display:inline-block;margin-right:4px}.gauge-sub{font-size:12px;color:var(--text-dim);margin:10px 0 0;text-align:center}.strength-controls{margin-bottom:6px}.strength-select{font-family:var(--font-stack);font-size:13px;font-weight:600;color:var(--accent);background:var(--accent-soft);border:none;border-radius:8px;padding:8px 12px;cursor:pointer}.strength-select:focus{outline:2px solid var(--accent);outline-offset:1px}.strength-row{padding:16px 0;border-bottom:1px solid var(--border)}.strength-row:last-child{border-bottom:none;padding-bottom:4px}.strength-row:first-child{padding-top:12px}.strength-head{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:6px;gap:12px}.strength-lift-group{display:flex;align-items:baseline;gap:8px;min-width:0}.strength-lift{font-size:14px;font-weight:700}.strength-stats-group{display:flex;align-items:center;gap:10px;flex-shrink:0}.strength-stats{font-size:12px;color:var(--text-dim);font-weight:500;white-space:nowrap}.strength-remove{width:28px;height:28px;border-radius:50%;border:none;background:var(--surface-2);color:var(--text-dim);font-size:14px;line-height:1;cursor:pointer;display:flex;align-items:center;justify-content:center;flex-shrink:0}.strength-remove:hover{background:var(--accent-soft);color:var(--accent)}.strength-remove:focus-visible{outline:2px solid var(--accent);outline-offset:1px;background:var(--accent-soft);color:var(--accent)}.strength-1rm{font-size:20px;font-weight:700;letter-spacing:-.01em}.strength-1rm .unit{font-size:12px;font-weight:500;color:var(--text-dim)}.strength-empty{padding:24px 0;text-align:center;font-size:13px;color:var(--text-dim)}.strength-note{font-size:12px;color:var(--text-dim);line-height:1.5;margin:16px 0 0;padding-top:14px;border-top:1px solid var(--border)}@media (max-width: 720px){.strength-head{flex-direction:column;align-items:flex-start;gap:6px}.strength-stats{white-space:normal}}.source-row{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:16px}.source-card{background:var(--surface-2);border:1px solid var(--border);border-radius:12px;padding:20px;display:flex;flex-direction:column;min-width:0}.source-card.is-planned{opacity:.6}.source-top{display:flex;align-items:center;justify-content:space-between;margin-bottom:14px}.source-icon{width:34px;height:34px;border-radius:9px;background:var(--accent-soft);color:var(--accent);display:flex;align-items:center;justify-content:center;flex-shrink:0}.source-icon svg{width:18px;height:18px}.source-status{font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.04em;padding:3px 9px;border-radius:999px;white-space:nowrap}.source-status.ok{color:var(--ok);background:var(--ok-soft)}.source-status.warn{color:#8a6d00;background:#f5a62329}.source-status.off{color:var(--text-dim);background:var(--surface);border:1px solid var(--border)}[data-theme=dark] .source-status.warn{color:var(--warn)}.source-name{font-size:15px;font-weight:700;margin:0 0 4px}.source-sub{font-size:12px;color:var(--text-dim);font-weight:500}.source-meta{font-size:12.5px;color:var(--text-dim);line-height:1.45;margin:0 0 16px;flex:1 1 auto}.source-actions{display:flex;flex-direction:column;gap:8px;margin-top:auto}.source-actions .sync-btn{margin-top:0}.linklike{background:none;border:none;color:var(--text-dim);font-family:var(--font-stack);font-size:12px;font-weight:600;cursor:pointer;padding:2px;text-decoration:underline}.linklike:hover{color:var(--accent)}.linklike:disabled{opacity:.5;cursor:default}.source-setup{margin-top:10px}.setup-input{width:100%;font-family:var(--font-stack);font-size:12px;padding:8px;border:1px solid var(--border);border-radius:8px;background:var(--surface);color:var(--text)}.setup-note{font-size:11.5px;color:var(--text-dim);line-height:1.45;margin:8px 0 0}.apple-import{margin-top:10px}.dropzone{border:1.5px dashed var(--border);border-radius:10px;padding:18px 14px;text-align:center;background:var(--surface);transition:border-color .15s ease,background .15s ease}.dropzone.is-dragging{border-color:var(--accent);background:var(--accent-soft)}.dropzone.is-busy{border-style:solid}.dropzone-title{font-size:13px;font-weight:600;margin:0 0 2px}.dropzone-sub{font-size:11.5px;color:var(--text-dim);margin:0 0 12px}.dropzone .sync-btn{width:auto;padding:9px 20px;margin-top:0}.import-progress{display:flex;align-items:center;justify-content:center;gap:10px;font-size:12.5px;color:var(--text-dim);padding:6px 0}.spinner{width:16px;height:16px;flex-shrink:0;border:2px solid var(--border);border-top-color:var(--accent);border-radius:50%;animation:spin .7s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.import-done{text-align:center;padding:6px 0}.import-done-head{font-size:15px;font-weight:700;color:var(--ok);margin:0 0 4px}.import-done-detail{font-size:12.5px;color:var(--text-dim);line-height:1.5;margin:0 0 14px}.import-done .sync-btn{width:auto;padding:9px 18px;margin-top:0}@media (prefers-reduced-motion: reduce){.spinner{animation:none}}.table-wrap{overflow-x:auto}.data-table{width:100%;border-collapse:collapse;font-size:13px}.data-table th,.data-table td{text-align:left;padding:10px 12px;border-bottom:1px solid var(--border);white-space:nowrap}.data-table th{font-size:11px;text-transform:uppercase;letter-spacing:.05em;color:var(--text-dim);font-weight:700}.data-table tbody tr:last-child td{border-bottom:none}.bio-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.field{display:flex;flex-direction:column;gap:6px}.field-label{font-size:11px;text-transform:uppercase;letter-spacing:.06em;color:var(--text-dim);font-weight:700}.field-input{font-family:var(--font-stack);font-size:14px;padding:10px 12px;border:1px solid var(--border);border-radius:9px;background:var(--surface);color:var(--text);width:100%}.field-input:focus{outline:2px solid var(--accent);outline-offset:1px}.field-hint{font-size:11.5px;color:var(--text-dim);font-weight:500}.bio-actions{display:flex;align-items:center;gap:14px;margin-top:20px}.bio-actions .sync-btn{width:auto;padding:10px 22px;margin-top:0}.bio-saved{font-size:13px;color:var(--ok);font-weight:600}.yd-panel{border-color:var(--accent)}.yd-lede{font-size:14px;line-height:1.6;color:var(--text);margin:0 0 20px;max-width:640px}.yd-actions{display:flex;gap:12px;margin-top:22px;flex-wrap:wrap}.yd-actions .sync-btn{width:auto;padding:11px 22px;margin-top:0}.sync-btn.danger{background:var(--accent);color:#fff}.sync-btn.danger:hover{opacity:.9}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000080;display:flex;align-items:center;justify-content:center;padding:20px;z-index:80}.modal{background:var(--surface);border:1px solid var(--border);border-radius:16px;padding:26px;max-width:440px;width:100%;box-shadow:var(--shadow)}.modal-title{font-size:20px;font-weight:700;margin:0 0 12px}.modal-body{font-size:14px;line-height:1.6;color:var(--text-dim);margin-bottom:18px}.modal-body p{margin:0}.modal-label{display:block;font-size:12px;color:var(--text-dim);font-weight:600;margin-bottom:8px}.modal-input{width:100%;font-family:var(--font-stack);font-size:14px;padding:10px 12px;border:1px solid var(--border);border-radius:9px;background:var(--bg);color:var(--text)}.modal-input:focus{outline:2px solid var(--accent);outline-offset:1px}.modal-error{color:var(--accent);font-size:13px;font-weight:600;margin:12px 0 0}.modal-actions{display:flex;gap:12px;margin-top:20px}.modal-actions .sync-btn{width:auto;flex:1;margin-top:0}@media (max-width: 720px){.bio-grid{grid-template-columns:1fr}.yd-actions .sync-btn{width:100%}}.verdict-head{display:flex;align-items:center;gap:12px;margin-bottom:18px;flex-wrap:wrap}.verdict-badge{font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.04em;padding:5px 12px;border-radius:999px;white-space:nowrap}.verdict-badge.sm{font-size:10px;padding:3px 9px}.verdict-badge.ok{color:var(--ok);background:var(--ok-soft)}.verdict-badge.warn{color:#8a6d00;background:#f5a62329}[data-theme=dark] .verdict-badge.warn{color:var(--warn)}.verdict-badge.bad{color:var(--accent);background:var(--accent-soft)}.verdict-badge.off{color:var(--text-dim);background:var(--surface-2)}.verdict-overall{font-size:13px;color:var(--text-dim);font-weight:600}.verdict-rows{display:flex;flex-direction:column}.verdict-row{display:grid;grid-template-columns:1fr auto auto;gap:12px;align-items:center;padding:11px 0;border-bottom:1px solid var(--border)}.verdict-row:last-child{border-bottom:none}.vr-name{font-size:14px;font-weight:700}.vr-detail{font-size:12.5px;color:var(--text-dim);font-weight:500}.goal-list{display:flex;flex-direction:column;gap:16px;margin-bottom:24px}.goal-card{background:var(--surface-2);border:1px solid var(--border);border-radius:12px;padding:20px}.goal-card-head{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:6px}.goal-title-group{display:flex;align-items:center;gap:10px;flex-wrap:wrap;min-width:0}.goal-chip{font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.05em;padding:3px 8px;border-radius:999px;background:var(--accent-soft);color:var(--accent)}.goal-title{font-size:16px;font-weight:700;margin:0}.goal-status{font-family:var(--font-stack);font-size:12px;font-weight:600;color:var(--text);background:var(--surface);border:1px solid var(--border);border-radius:8px;padding:6px 10px;cursor:pointer;flex-shrink:0}.goal-target{font-size:13px;color:var(--text-dim);font-weight:500;margin:0 0 14px}.goal-projection{font-size:12.5px;color:var(--text-dim);line-height:1.5;margin:10px 0 12px}.assessment-badge{display:inline-flex;align-items:center;gap:6px;font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.04em;padding:6px 12px;border-radius:999px}.assessment-badge.behind{color:var(--accent);background:var(--accent-soft)}.assessment-badge.ahead{color:var(--ok);background:var(--ok-soft)}.goal-set-date{margin-top:8px}.goal-date-row{display:flex;gap:10px;margin-top:8px;align-items:center;flex-wrap:wrap}.goal-date-row .field-input{max-width:200px}.goal-date-row .sync-btn{width:auto;padding:9px 18px;margin-top:0}.goal-no-traj{margin-top:8px;line-height:1.5}.goal-form-wrap{border-top:1px solid var(--border);padding-top:20px}.goal-form-title{font-size:14px;font-weight:700;margin:0 0 14px}.goal-form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin-bottom:16px}.goal-title-field{grid-column:1 / -1}.goal-form .sync-btn{width:auto;padding:10px 22px;margin-top:0}.adh-grid{display:flex;flex-wrap:wrap;gap:4px}.adh-cell{width:18px;height:18px;border-radius:4px;display:inline-block;flex-shrink:0}.adh-cell.green{background:var(--ok)}.adh-cell.amber{background:var(--warn)}.adh-cell.red{background:var(--accent)}.adh-legend{display:flex;align-items:center;flex-wrap:wrap;gap:6px;margin-top:16px;font-size:12px;color:var(--text-dim);line-height:1.6}.adh-legend .adh-cell{width:12px;height:12px}@media (max-width: 720px){.goal-form-grid{grid-template-columns:1fr}.goal-card-head{flex-direction:column;align-items:stretch}.goal-status{align-self:flex-start}}.header-controls{display:flex;align-items:center;gap:10px}.settings-btn{width:36px;height:36px;border-radius:50%;border:none;background:transparent;color:var(--text-dim);display:flex;align-items:center;justify-content:center;cursor:pointer;transition:background .15s ease,color .15s ease}.settings-btn:hover{background:var(--surface-2);color:var(--text)}.settings-btn svg{width:20px;height:20px}.drawer-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000080;z-index:70}.drawer{position:fixed;top:0;right:0;bottom:0;width:340px;max-width:88vw;background:var(--surface);border-left:1px solid var(--border);z-index:71;padding:24px;overflow-y:auto;display:flex;flex-direction:column;box-shadow:-8px 0 32px #0000002e}.drawer-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}.drawer-head h2{font-size:22px;font-weight:700;margin:0}.drawer-close{background:none;border:none;font-size:28px;line-height:1;color:var(--text-dim);cursor:pointer;padding:0 4px}.drawer-close:hover{color:var(--text)}.drawer-section{padding:16px 0;border-bottom:1px solid var(--border)}.drawer-label{font-size:11px;text-transform:uppercase;letter-spacing:.06em;color:var(--text-dim);font-weight:700;margin:0 0 12px}.drawer-row{display:flex;align-items:center;justify-content:space-between}.drawer-value{font-size:15px;font-weight:600;margin:0}.drawer-note{font-size:12.5px;color:var(--text-dim);line-height:1.5;margin:8px 0 0}.drawer-link{background:none;border:none;color:var(--accent);font-family:var(--font-stack);font-size:14px;font-weight:600;cursor:pointer;padding:0;text-align:left}.drawer-link:hover{text-decoration:underline}.drawer-actions{margin-top:auto;padding-top:20px;display:flex;flex-direction:column;gap:10px}.drawer-logout{display:flex;align-items:center;justify-content:center;gap:8px;background:var(--surface-2);border:1px solid var(--border);border-radius:9px;padding:11px;font-family:var(--font-stack);font-size:14px;font-weight:700;color:var(--text);cursor:pointer}.drawer-logout:hover{background:var(--border)}.drawer-logout svg{width:16px;height:16px}.drawer-danger{background:none;border:none;color:var(--accent);font-family:var(--font-stack);font-size:13px;font-weight:600;cursor:pointer;padding:6px}.drawer-danger:hover{text-decoration:underline}.onboarding{border-color:var(--accent)}.onboarding-title{font-size:22px;font-weight:700;margin:6px 0 10px}.onboarding-body{font-size:14px;line-height:1.6;color:var(--text-dim);margin:0 0 12px;max-width:560px}.onboarding-note{font-size:13px;color:var(--text);background:var(--accent-soft);border-radius:8px;padding:10px 12px;margin:0 0 16px;max-width:560px}.onboarding-btn{width:auto;padding:12px 28px;margin-top:0}
