@font-face{font-family:Amiri;font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/5aae3a1c1074c5e1-s.woff2) format("woff2");unicode-range:u+06??,u+0750-077f,u+0870-088e,u+0890-0891,u+0897-08e1,u+08e3-08ff,u+200c-200e,u+2010-2011,u+204f,u+2e41,u+fb50-fdff,u+fe70-fe74,u+fe76-fefc,u+102e0-102fb,u+10e60-10e7e,u+10ec2-10ec4,u+10efc-10eff,u+1ee00-1ee03,u+1ee05-1ee1f,u+1ee21-1ee22,u+1ee24,u+1ee27,u+1ee29-1ee32,u+1ee34-1ee37,u+1ee39,u+1ee3b,u+1ee42,u+1ee47,u+1ee49,u+1ee4b,u+1ee4d-1ee4f,u+1ee51-1ee52,u+1ee54,u+1ee57,u+1ee59,u+1ee5b,u+1ee5d,u+1ee5f,u+1ee61-1ee62,u+1ee64,u+1ee67-1ee6a,u+1ee6c-1ee72,u+1ee74-1ee77,u+1ee79-1ee7c,u+1ee7e,u+1ee80-1ee89,u+1ee8b-1ee9b,u+1eea1-1eea3,u+1eea5-1eea9,u+1eeab-1eebb,u+1eef0-1eef1}@font-face{font-family:Amiri;font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/ecb0c194634e5a7f-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:Amiri;font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/8c2fd50d66d22a18-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:Amiri;font-style:normal;font-weight:700;font-display:swap;src:url(/_next/static/media/da6e5417d357d163-s.woff2) format("woff2");unicode-range:u+06??,u+0750-077f,u+0870-088e,u+0890-0891,u+0897-08e1,u+08e3-08ff,u+200c-200e,u+2010-2011,u+204f,u+2e41,u+fb50-fdff,u+fe70-fe74,u+fe76-fefc,u+102e0-102fb,u+10e60-10e7e,u+10ec2-10ec4,u+10efc-10eff,u+1ee00-1ee03,u+1ee05-1ee1f,u+1ee21-1ee22,u+1ee24,u+1ee27,u+1ee29-1ee32,u+1ee34-1ee37,u+1ee39,u+1ee3b,u+1ee42,u+1ee47,u+1ee49,u+1ee4b,u+1ee4d-1ee4f,u+1ee51-1ee52,u+1ee54,u+1ee57,u+1ee59,u+1ee5b,u+1ee5d,u+1ee5f,u+1ee61-1ee62,u+1ee64,u+1ee67-1ee6a,u+1ee6c-1ee72,u+1ee74-1ee77,u+1ee79-1ee7c,u+1ee7e,u+1ee80-1ee89,u+1ee8b-1ee9b,u+1eea1-1eea3,u+1eea5-1eea9,u+1eeab-1eebb,u+1eef0-1eef1}@font-face{font-family:Amiri;font-style:normal;font-weight:700;font-display:swap;src:url(/_next/static/media/9c79641216ce8622-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:Amiri;font-style:normal;font-weight:700;font-display:swap;src:url(/_next/static/media/dd5f2241e050216b-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:Amiri Fallback;src:local("Times New Roman");ascent-override:112.47%;descent-override:63.44%;line-gap-override:0.00%;size-adjust:99.94%}.__className_3927e5{font-family:Amiri,Amiri Fallback;font-style:normal}.__variable_3927e5{--font-display:"Amiri","Amiri Fallback"}@font-face{font-family:IBM Plex Sans;font-style:normal;font-weight:400;font-stretch:100%;font-display:swap;src:url(/_next/static/media/7b19b489dc6743ba-s.woff2) format("woff2");unicode-range:u+0460-052f,u+1c80-1c8a,u+20b4,u+2de0-2dff,u+a640-a69f,u+fe2e-fe2f}@font-face{font-family:IBM Plex Sans;font-style:normal;font-weight:400;font-stretch:100%;font-display:swap;src:url(/_next/static/media/28793f5c5e3d822d-s.woff2) format("woff2");unicode-range:u+0301,u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116}@font-face{font-family:IBM Plex Sans;font-style:normal;font-weight:400;font-stretch:100%;font-display:swap;src:url(/_next/static/media/c9c3823090ec8b55-s.woff2) format("woff2");unicode-range:u+0370-0377,u+037a-037f,u+0384-038a,u+038c,u+038e-03a1,u+03a3-03ff}@font-face{font-family:IBM Plex Sans;font-style:normal;font-weight:400;font-stretch:100%;font-display:swap;src:url(/_next/static/media/b3bf17a9041d9433-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:IBM Plex Sans;font-style:normal;font-weight:400;font-stretch:100%;font-display:swap;src:url(/_next/static/media/2801417b65625cf5-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:IBM Plex Sans;font-style:normal;font-weight:400;font-stretch:100%;font-display:swap;src:url(/_next/static/media/26d4368bf94c0ec4-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:IBM Plex Sans;font-style:normal;font-weight:500;font-stretch:100%;font-display:swap;src:url(/_next/static/media/7b19b489dc6743ba-s.woff2) format("woff2");unicode-range:u+0460-052f,u+1c80-1c8a,u+20b4,u+2de0-2dff,u+a640-a69f,u+fe2e-fe2f}@font-face{font-family:IBM Plex Sans;font-style:normal;font-weight:500;font-stretch:100%;font-display:swap;src:url(/_next/static/media/28793f5c5e3d822d-s.woff2) format("woff2");unicode-range:u+0301,u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116}@font-face{font-family:IBM Plex Sans;font-style:normal;font-weight:500;font-stretch:100%;font-display:swap;src:url(/_next/static/media/c9c3823090ec8b55-s.woff2) format("woff2");unicode-range:u+0370-0377,u+037a-037f,u+0384-038a,u+038c,u+038e-03a1,u+03a3-03ff}@font-face{font-family:IBM Plex Sans;font-style:normal;font-weight:500;font-stretch:100%;font-display:swap;src:url(/_next/static/media/b3bf17a9041d9433-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:IBM Plex Sans;font-style:normal;font-weight:500;font-stretch:100%;font-display:swap;src:url(/_next/static/media/2801417b65625cf5-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:IBM Plex Sans;font-style:normal;font-weight:500;font-stretch:100%;font-display:swap;src:url(/_next/static/media/26d4368bf94c0ec4-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:IBM Plex Sans;font-style:normal;font-weight:600;font-stretch:100%;font-display:swap;src:url(/_next/static/media/7b19b489dc6743ba-s.woff2) format("woff2");unicode-range:u+0460-052f,u+1c80-1c8a,u+20b4,u+2de0-2dff,u+a640-a69f,u+fe2e-fe2f}@font-face{font-family:IBM Plex Sans;font-style:normal;font-weight:600;font-stretch:100%;font-display:swap;src:url(/_next/static/media/28793f5c5e3d822d-s.woff2) format("woff2");unicode-range:u+0301,u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116}@font-face{font-family:IBM Plex Sans;font-style:normal;font-weight:600;font-stretch:100%;font-display:swap;src:url(/_next/static/media/c9c3823090ec8b55-s.woff2) format("woff2");unicode-range:u+0370-0377,u+037a-037f,u+0384-038a,u+038c,u+038e-03a1,u+03a3-03ff}@font-face{font-family:IBM Plex Sans;font-style:normal;font-weight:600;font-stretch:100%;font-display:swap;src:url(/_next/static/media/b3bf17a9041d9433-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:IBM Plex Sans;font-style:normal;font-weight:600;font-stretch:100%;font-display:swap;src:url(/_next/static/media/2801417b65625cf5-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:IBM Plex Sans;font-style:normal;font-weight:600;font-stretch:100%;font-display:swap;src:url(/_next/static/media/26d4368bf94c0ec4-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:IBM Plex Sans;font-style:normal;font-weight:700;font-stretch:100%;font-display:swap;src:url(/_next/static/media/7b19b489dc6743ba-s.woff2) format("woff2");unicode-range:u+0460-052f,u+1c80-1c8a,u+20b4,u+2de0-2dff,u+a640-a69f,u+fe2e-fe2f}@font-face{font-family:IBM Plex Sans;font-style:normal;font-weight:700;font-stretch:100%;font-display:swap;src:url(/_next/static/media/28793f5c5e3d822d-s.woff2) format("woff2");unicode-range:u+0301,u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116}@font-face{font-family:IBM Plex Sans;font-style:normal;font-weight:700;font-stretch:100%;font-display:swap;src:url(/_next/static/media/c9c3823090ec8b55-s.woff2) format("woff2");unicode-range:u+0370-0377,u+037a-037f,u+0384-038a,u+038c,u+038e-03a1,u+03a3-03ff}@font-face{font-family:IBM Plex Sans;font-style:normal;font-weight:700;font-stretch:100%;font-display:swap;src:url(/_next/static/media/b3bf17a9041d9433-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:IBM Plex Sans;font-style:normal;font-weight:700;font-stretch:100%;font-display:swap;src:url(/_next/static/media/2801417b65625cf5-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:IBM Plex Sans;font-style:normal;font-weight:700;font-stretch:100%;font-display:swap;src:url(/_next/static/media/26d4368bf94c0ec4-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:IBM Plex Sans Fallback;src:local("Arial");ascent-override:101.32%;descent-override:27.18%;line-gap-override:0.00%;size-adjust:101.17%}.__className_c8daab{font-family:IBM Plex Sans,IBM Plex Sans Fallback;font-style:normal}.__variable_c8daab{--font-body:"IBM Plex Sans","IBM Plex Sans Fallback"}@font-face{font-family:IBM Plex Mono;font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/58f386aa6b1a2a92-s.woff2) format("woff2");unicode-range:u+0460-052f,u+1c80-1c8a,u+20b4,u+2de0-2dff,u+a640-a69f,u+fe2e-fe2f}@font-face{font-family:IBM Plex Mono;font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/011e180705008d6f-s.woff2) format("woff2");unicode-range:u+0301,u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116}@font-face{font-family:IBM Plex Mono;font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/7ba5fb2a8c88521c-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:IBM Plex Mono;font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/92eeb95d069020cc-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:IBM Plex Mono;font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/d3ebbfd689654d3a-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:IBM Plex Mono;font-style:normal;font-weight:500;font-display:swap;src:url(/_next/static/media/ef4d5661765d0e49-s.woff2) format("woff2");unicode-range:u+0460-052f,u+1c80-1c8a,u+20b4,u+2de0-2dff,u+a640-a69f,u+fe2e-fe2f}@font-face{font-family:IBM Plex Mono;font-style:normal;font-weight:500;font-display:swap;src:url(/_next/static/media/d29838c109ef09b4-s.woff2) format("woff2");unicode-range:u+0301,u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116}@font-face{font-family:IBM Plex Mono;font-style:normal;font-weight:500;font-display:swap;src:url(/_next/static/media/e40af3453d7c920a-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:IBM Plex Mono;font-style:normal;font-weight:500;font-display:swap;src:url(/_next/static/media/99dcf268bda04fe5-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:IBM Plex Mono;font-style:normal;font-weight:500;font-display:swap;src:url(/_next/static/media/98e207f02528a563-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:IBM Plex Mono Fallback;src:local("Arial");ascent-override:76.16%;descent-override:20.43%;line-gap-override:0.00%;size-adjust:134.59%}.__className_46fe82{font-family:IBM Plex Mono,IBM Plex Mono Fallback;font-style:normal}.__variable_46fe82{--font-mono:"IBM Plex Mono","IBM Plex Mono Fallback"}:root{--bg:#f4f7f5;--surface:#ffffff;--surface-2:#eaf0ec;--ink:#16211e;--ink-soft:#4e5f5a;--accent:#0f6e5c;--accent-ink:#ffffff;--accent-soft:#e4f1ec;--gold:#9c7220;--gold-soft:#f3e8d3;--good:#2e7d5b;--good-soft:#e1f1e8;--warn:#9c7220;--warn-soft:#f3e8d3;--bad:#b23b3b;--bad-soft:#fbe7e7;--border:#dce5e1;--grid-line:#e4eae7;--shadow:0 1px 2px rgba(20,40,35,0.06),0 6px 20px rgba(20,40,35,0.05)}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--bg:#0e1614;--surface:#16211e;--surface-2:#1c2925;--ink:#edf3f0;--ink-soft:#9fb3ac;--accent:#4fbfa0;--accent-ink:#0b1815;--accent-soft:#1b332c;--gold:#e0b15c;--gold-soft:#332a17;--good:#5cc79a;--good-soft:#173226;--warn:#e0b15c;--warn-soft:#332a17;--bad:#e38080;--bad-soft:#3a1e1e;--border:#283a35;--grid-line:#213029;--shadow:0 1px 2px rgba(0,0,0,0.3),0 8px 24px rgba(0,0,0,0.35)}}*{box-sizing:border-box}body,html{margin:0;padding:0}body{background:var(--bg);color:var(--ink);font-family:var(--font-body),"Segoe UI",system-ui,sans-serif;font-size:14px;padding-top:env(safe-area-inset-top,0);padding-bottom:env(safe-area-inset-bottom,0)}h1,h2,h3{font-family:var(--font-display),Georgia,serif;text-wrap:balance}.mono,.num{font-family:var(--font-mono),ui-monospace,monospace;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}button{font-family:inherit}a{color:var(--accent)}.wrap{max-width:960px;margin:0 auto;padding-inline:16px}header.top{position:-webkit-sticky;position:sticky;top:env(safe-area-inset-top,0);z-index:20;background:var(--bg);border-bottom:1px solid var(--border);padding-block:14px 12px}.brand{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap}.brand h1{font-size:1.55rem;font-weight:700;margin:0;letter-spacing:.2px}.brand .tagline{color:var(--ink-soft);font-size:.82rem}.header-actions{display:flex;align-items:center;gap:8px;margin-left:auto}.settings-btn{background:none;border:1px solid var(--border);color:var(--ink-soft);border-radius:9px;width:34px;height:34px;display:inline-flex;align-items:center;justify-content:center;cursor:pointer;font-size:1rem;flex:none}.learner-row{display:flex;gap:8px;margin-top:12px;overflow-x:auto;padding-bottom:2px}.learner-chip{flex:none;display:flex;align-items:center;gap:6px;padding:7px 13px;border-radius:999px;border:1px solid var(--border);background:var(--surface);color:var(--ink-soft);font-size:.86rem;font-weight:500;cursor:pointer;white-space:nowrap}.learner-chip .dot{width:8px;height:8px;border-radius:50%;background:var(--accent);flex:none}.learner-chip.active{background:var(--accent);border-color:var(--accent);color:var(--accent-ink)}.learner-chip.active .dot{background:var(--accent-ink)}.learner-chip.add{border-style:dashed;color:var(--accent)}.chip-note{font-size:.68rem;font-weight:500;opacity:.75}.action-failed{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin:12px 0;padding:10px 12px;border-radius:10px;background:var(--bad-soft);color:var(--bad);font-size:.85rem}.action-failed span{flex:1 1;min-width:12rem}.unit-switch{display:flex;align-items:center;gap:6px;flex-wrap:wrap;margin-top:10px}.unit-switch-label{font-size:.78rem;color:var(--ink-soft)}.view-tabs{display:flex;gap:4px;margin-top:12px;background:var(--surface-2);padding:3px;border-radius:11px;width:max-content}.view-tabs button{border:none;background:transparent;color:var(--ink-soft);font-size:.82rem;font-weight:600;padding:7px 14px;border-radius:8px;cursor:pointer}.view-tabs button.active{background:var(--surface);color:var(--ink);box-shadow:var(--shadow)}main{padding-block:18px 60px}.today-band{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));grid-gap:10px;gap:10px;margin-bottom:18px}.today-tile{background:var(--surface);border:1px solid var(--border);border-radius:14px;padding:14px 16px;box-shadow:var(--shadow);display:flex;align-items:center;gap:12px}.today-tile .big{font-family:var(--font-display),serif;font-size:1.8rem;font-weight:700;line-height:1}.today-tile .cap{font-size:.74rem;color:var(--ink-soft);line-height:1.3}.ring{flex:none}.stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));grid-gap:10px;gap:10px;margin-bottom:16px}.stat{background:var(--surface);border:1px solid var(--border);border-radius:14px;padding:14px 16px;box-shadow:var(--shadow)}.stat .label{font-size:.72rem;text-transform:uppercase;letter-spacing:.08em;color:var(--ink-soft);margin-bottom:6px}.stat .value{font-size:1.05rem;font-weight:600}.stat .value .sub{font-weight:400;color:var(--ink-soft);font-size:.85rem}.stat.stripe-good{border-left:3px solid var(--good)}.stat.stripe-bad{border-left:3px solid var(--bad)}.stat.stripe-warn{border-left:3px solid var(--warn)}.legend-row{display:flex;gap:14px;flex-wrap:wrap;font-size:.75rem;color:var(--ink-soft);margin:4px 0 12px}.legend-row span{display:inline-flex;align-items:center;gap:5px}.legend-row .sw{width:9px;height:9px;border-radius:50%;display:inline-block}.toolbar{gap:8px;align-items:center;margin-bottom:16px}.toolbar,.toolbar .group{display:flex;flex-wrap:wrap}.toolbar .group{gap:6px}.chip-btn{border:1px solid var(--border);background:var(--surface);color:var(--ink-soft);border-radius:999px;padding:6px 12px;font-size:.8rem;cursor:pointer}.chip-btn.active{background:var(--accent-soft);border-color:var(--accent);color:var(--accent);font-weight:600}.toolbar .sep{width:1px;align-self:stretch;background:var(--border);margin-inline:2px}.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(84px,1fr));grid-gap:8px;gap:8px}.cell{background:var(--surface);border:1px solid var(--border);border-radius:12px;padding:10px 8px 8px;cursor:pointer;text-align:left;position:relative;display:flex;flex-direction:column;gap:4px;min-height:86px;color:var(--ink)}.cell:hover{border-color:var(--accent)}.cell:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.cell .hz{font-size:.68rem;letter-spacing:.03em}.cell .hz,.cell .juz{color:var(--ink-soft)}.cell .juz{font-size:.62rem;opacity:.7}.cell .errs{font-size:1.35rem;font-weight:700;line-height:1;margin-top:2px}.cell .errs.empty{color:var(--ink-soft);font-weight:500;font-size:1.1rem}.cell .updated{font-size:.62rem;color:var(--ink-soft);margin-top:auto}.sev-dot{position:absolute;top:9px;right:9px;width:8px;height:8px;border-radius:50%}.sev-good{background:var(--good)}.sev-warn{background:var(--warn)}.sev-bad{background:var(--bad)}.sev-none{background:var(--border)}.btn{display:inline-flex;align-items:center;gap:6px;background:var(--accent);color:var(--accent-ink);border:none;border-radius:10px;padding:9px 16px;font-size:.88rem;font-weight:600;cursor:pointer}.btn:disabled{opacity:.6;cursor:default}.btn.secondary{background:transparent;color:var(--ink)}.btn.secondary,.icon-btn{border:1px solid var(--border)}.icon-btn{background:none;color:var(--ink-soft);border-radius:8px;width:30px;height:30px;display:inline-flex;align-items:center;justify-content:center;cursor:pointer;font-size:1rem}.empty-state{background:var(--surface);border:1px dashed var(--border);border-radius:16px;padding:40px 24px;text-align:center;max-width:480px;margin:40px auto}.empty-state h2{margin:0 0 8px;font-size:1.3rem}.empty-state p{color:var(--ink-soft);font-size:.9rem;margin:0 0 18px}.overlay{position:fixed;inset:0;background:rgba(10,20,17,.45);display:flex;align-items:flex-end;justify-content:center;z-index:100}@media (min-width:560px){.overlay{align-items:center;padding:24px}}.sheet{background:var(--surface);width:100%;max-width:420px;border-radius:18px 18px 0 0;padding:20px 20px calc(20px + env(safe-area-inset-bottom, 0px));max-height:88vh;overflow-y:auto;box-shadow:var(--shadow)}@media (min-width:560px){.sheet{border-radius:18px}}.sheet h2{margin:0 0 2px;font-size:1.2rem}.sheet .sub{color:var(--ink-soft);font-size:.8rem;margin-bottom:18px}.sheet-head{display:flex;justify-content:space-between;align-items:flex-start;gap:10px}.stepper{display:flex;align-items:center;justify-content:center;gap:18px;margin:14px 0 6px}.stepper button{width:44px;height:44px;border-radius:50%;border:1px solid var(--border);background:var(--surface-2);color:var(--ink);font-size:1.3rem;cursor:pointer}.stepper input{width:86px;text-align:center;font-size:2.1rem;font-weight:700;font-family:var(--font-display),serif;border:none;background:transparent;color:var(--ink)}.stepper input:focus{outline:none}.errs-caption{text-align:center;color:var(--ink-soft);font-size:.78rem;margin-bottom:16px}.sheet-actions{display:flex;gap:8px;margin-top:6px}.sheet-actions .btn{flex:1 1;justify-content:center}.history{margin-top:22px;border-top:1px solid var(--border);padding-top:14px}.history h3{font-size:.75rem;text-transform:uppercase;letter-spacing:.08em;color:var(--ink-soft);margin:0 0 10px;font-family:var(--font-body),sans-serif;font-weight:600}.history ul{list-style:none;margin:0;padding:0}.history li{display:flex;justify-content:space-between;padding:7px 0;border-bottom:1px solid var(--border);font-size:.85rem}.history li:last-child{border-bottom:none}.history .none{color:var(--ink-soft);font-size:.85rem;padding:6px 0}.field{margin-bottom:14px}.field label{display:block;font-size:.78rem;color:var(--ink-soft);margin-bottom:5px}.field input[type=date],.field input[type=email],.field input[type=number],.field input[type=text]{width:100%;padding:10px 12px;border:1px solid var(--border);border-radius:10px;background:var(--surface);color:var(--ink);font-size:.95rem}.field input:focus{outline:2px solid var(--accent);outline-offset:1px}.threshold-fields{display:flex;gap:12px}.threshold-fields .field{flex:1 1}.learner-list{display:flex;flex-direction:column;gap:8px;margin-bottom:16px}.learner-row-item{display:flex;align-items:center;gap:10px;border:1px solid var(--border);border-radius:10px;padding:9px 12px}.learner-row-item .dot{width:9px;height:9px;border-radius:50%;background:var(--accent);flex:none}.learner-row-item .name{flex:1 1;min-width:0;font-size:.9rem}.learner-row-item .member-email{display:block;font-size:.72rem;color:var(--ink-soft);overflow-wrap:anywhere}.field-hint{color:var(--ink-soft);font-size:.78rem;margin:-6px 0 0}.field-error{color:var(--bad);font-size:.82rem;margin:8px 0 0}.learner-row-item button{background:none;border:none;color:var(--ink-soft);cursor:pointer;font-size:.95rem;padding:4px}.chart-card{background:var(--surface);border:1px solid var(--border);border-radius:16px;padding:16px 14px 8px;box-shadow:var(--shadow);margin-bottom:18px}.chart-card h3{font-size:.78rem;text-transform:uppercase;letter-spacing:.07em;color:var(--ink-soft);margin:0 0 10px 4px;font-weight:600;font-family:var(--font-body),sans-serif}.chart-wrap{position:relative}.chart-wrap svg{display:block;width:100%;height:auto;overflow:visible}.chart-empty{color:var(--ink-soft);font-size:.85rem;padding:20px 4px 26px}.progress-head{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;margin-bottom:14px}.progress-delta{display:inline-flex;align-items:center;gap:6px;font-size:.85rem;font-weight:600;padding:6px 12px;border-radius:999px;background:var(--surface-2)}.progress-delta.good{color:var(--good);background:var(--good-soft)}.progress-delta.bad{color:var(--bad);background:var(--bad-soft)}.progress-delta.flat{color:var(--ink-soft)}.compare-controls{display:flex;flex-wrap:wrap;gap:10px;align-items:flex-end;margin-bottom:14px}.compare-controls .field{margin-bottom:0}.compare-list{display:flex;flex-direction:column;gap:6px}.compare-row{display:flex;align-items:center;gap:10px;background:var(--surface);border:1px solid var(--border);border-radius:10px;padding:9px 12px}.compare-row .hz{font-size:.8rem;color:var(--ink-soft);width:70px;flex:none}.compare-row .vals{flex:1 1;font-size:.82rem}.compare-row .arrow-val{font-weight:700;font-size:.9rem;padding:3px 9px;border-radius:999px;flex:none}.compare-row .arrow-val.good{color:var(--good);background:var(--good-soft)}.compare-row .arrow-val.bad{color:var(--bad);background:var(--bad-soft)}.compare-row .arrow-val.flat{color:var(--ink-soft);background:var(--surface-2)}.compare-row.incomplete{opacity:.55}.login-wrap{min-height:100dvh;display:flex;align-items:center;justify-content:center;padding:24px 16px}.login-card{background:var(--surface);border:1px solid var(--border);border-radius:18px;box-shadow:var(--shadow);padding:28px 24px;width:100%;max-width:400px}.login-card h1{font-size:1.8rem;margin:0 0 4px}.login-card .lead{color:var(--ink-soft);font-size:.88rem;margin:0 0 22px;line-height:1.5}.login-card .btn{width:100%;justify-content:center}.login-note{color:var(--ink-soft);font-size:.76rem;margin-top:16px;line-height:1.5}@media (prefers-reduced-motion:no-preference){.cell,.chip-btn,.learner-chip,.view-tabs button{transition:border-color .15s ease,background-color .15s ease}}