@font-face{font-family:Amiri;font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/5aae3a1c1074c5e1-s.p.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.p.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_338cf8{font-family:Amiri,Amiri Fallback;font-style:normal}.__variable_338cf8{--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);--paper:#fbf6ec;--paper-edge:#f0e2c4;--paper-ink:#633806;--tile-good:#1d9e75;--tile-good-ink:#04342c;--tile-warn:#ef9f27;--tile-warn-ink:#412402;--tile-bad:#e24b4a;--tile-bad-ink:#ffffff;--tile-none:#f1e9d8;--tile-none-ink:#9a7b45;--nav-bg:#ffffff}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--bg:#0e1a17;--surface:#16241f;--surface-2:#1b2b26;--ink:#e1f5ee;--ink-soft:#9fc9bb;--accent:#5dcaa5;--accent-ink:#04342c;--accent-soft:#173a30;--gold:#fac775;--gold-soft:#3a2c14;--good:#5dcaa5;--good-soft:#173a30;--warn:#fac775;--warn-soft:#3a2c14;--bad:#f09595;--bad-soft:#3d1f1f;--border:#25372f;--grid-line:#1f2e2a;--shadow:0 1px 2px rgba(0,0,0,0.3),0 8px 24px rgba(0,0,0,0.35);--paper:#16241f;--paper-edge:#25372f;--paper-ink:#fac775;--tile-good:#1d9e75;--tile-good-ink:#e1f5ee;--tile-warn:#ba7517;--tile-warn-ink:#fdf1dc;--tile-bad:#a32d2d;--tile-bad-ink:#fcebeb;--tile-none:#1f2e2a;--tile-none-ink:#6f8f84;--nav-bg:#0a1311}}*{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{padding-block:14px 4px}.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:12px calc(84px + env(safe-area-inset-bottom, 0px))}.app-shell{max-width:720px}.bottom-nav{position:fixed;inset:auto 0 0 0;z-index:50;display:flex;justify-content:space-around;background:var(--nav-bg);border-top:1px solid var(--border);padding:6px 4px calc(6px + env(safe-area-inset-bottom, 0px))}.bottom-nav button{flex:1 1;max-width:120px;display:flex;flex-direction:column;align-items:center;gap:2px;background:none;border:none;color:var(--ink-soft);font-size:.72rem;padding:6px 0;min-height:48px;cursor:pointer}.bottom-nav svg{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}.bottom-nav button.active{color:var(--accent);font-weight:600}.today-date{font-size:.8rem;color:var(--accent)}.today-date:first-letter{text-transform:uppercase}.today-title{font-size:1.6rem;margin:2px 0 14px}.hero{background:var(--accent);color:var(--accent-ink);border-radius:18px;padding:16px 18px;margin-bottom:12px}.hero-kicker{font-size:.78rem;opacity:.85}.hero-part{font-family:var(--font-display),serif;font-size:2rem;font-weight:700;line-height:1.15;margin:2px 0}.hero-meta{font-size:.82rem;opacity:.85}.hero-btn{display:block;width:100%;margin-top:14px;padding:13px;border:none;border-radius:12px;background:var(--accent-ink);color:var(--accent);font-size:1rem;font-weight:700;cursor:pointer}.today-tiles{display:grid;grid-template-columns:1fr 1fr;grid-gap:10px;gap:10px}.tile{background:var(--surface);border:1px solid var(--border);border-radius:14px;padding:12px 14px}.tile-big{font-family:var(--font-display),serif;font-size:1.7rem;font-weight:700;line-height:1.1}.gold,.tile-big.gold{color:var(--gold)}.muted,.tile-cap{color:var(--ink-soft)}.tile-cap{font-size:.76rem}.today-next{display:flex;align-items:center;flex-wrap:wrap;gap:6px;font-size:.82rem}.today-last,.today-next{margin-top:14px;color:var(--ink-soft)}.today-last{font-size:.78rem}.family-list{list-style:none;margin:0 0 16px;padding:0;display:flex;flex-direction:column;gap:8px}.family-row{position:relative;overflow:hidden;width:100%;display:flex;align-items:center;gap:10px;text-align:left;background:var(--surface);border:1px solid var(--border);border-radius:14px;padding:12px 14px 16px;color:var(--ink);font-size:.95rem;cursor:pointer}.family-row.active{border-color:var(--accent)}.family-name{flex:1 1;min-width:0;font-weight:600}.family-sub{display:block;font-weight:400;font-size:.74rem;color:var(--ink-soft)}.family-stats{display:flex;flex-direction:column;align-items:flex-end;font-size:.8rem;gap:2px}.family-bar{position:absolute;inset:auto 0 0 0;height:4px;background:linear-gradient(to right,var(--accent) var(--p),var(--surface-2) var(--p))}.family-actions{display:flex;flex-wrap:wrap;gap:8px}.account{margin-top:28px;padding-top:18px;border-top:1px solid var(--border)}.account h3{font-size:1.1rem;margin:0 0 2px}.account-email{color:var(--ink-soft);font-size:.85rem;margin:0 0 12px;overflow-wrap:anywhere}.btn.danger{background:transparent;color:var(--bad);border:1px solid var(--bad)}.login-info{background:var(--good-soft);color:var(--good);padding:10px 12px;border-radius:10px;font-size:.82rem;margin-bottom:16px}.legal{max-width:680px;padding-block:24px 48px;line-height:1.6}.legal h1{font-size:1.9rem;margin:8px 0 6px}.legal h2{font-size:1.2rem;margin:26px 0 6px}.legal .lead{color:var(--ink-soft)}.legal ul{padding-left:1.2rem}.paper{background:var(--paper);border:1px solid var(--paper-edge);border-radius:18px;padding:14px 12px 16px;color:var(--ink)}.paper .today-title{color:var(--paper-ink);margin-bottom:6px}.paper-head{margin-bottom:10px}.mushaf{display:grid;grid-gap:6px;gap:6px;grid-template-columns:repeat(auto-fill,minmax(58px,1fr))}@media (max-width:480px){.mushaf-juz{grid-template-columns:repeat(5,minmax(0,1fr))}.mushaf-hizb{grid-template-columns:repeat(6,minmax(0,1fr))}}.part-tile{aspect-ratio:1;min-width:0;border:none;border-radius:10px;display:grid;grid-template-rows:1fr auto;align-items:center;justify-items:center;padding:14px 2px 3px;cursor:pointer;position:relative;background:var(--tile-none);color:var(--tile-none-ink)}.part-tile.sev-good{background:var(--tile-good);color:var(--tile-good-ink)}.part-tile.sev-warn{background:var(--tile-warn);color:var(--tile-warn-ink)}.part-tile.sev-bad{background:var(--tile-bad);color:var(--tile-bad-ink)}.part-tile:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.pt-ar{font-family:var(--font-display),serif;font-size:1.25rem;line-height:1}.pt-errs{font-size:.72rem;font-weight:600}.pt-num{position:absolute;top:3px;left:5px;font-size:.6rem;opacity:.75}.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}.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){.chip-btn,.family-row,.learner-chip,.part-tile,.view-tabs button{transition:border-color .15s ease,background-color .15s ease}}