@font-face{font-family:Nunito;font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/abfec168c8990f67-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:Nunito;font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/3131c862d4942660-s.woff2) format("woff2");unicode-range:u+0301,u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116}@font-face{font-family:Nunito;font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/6a9c36ea9dc9b36b-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:Nunito;font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/e1694c6cb47c173f-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:Nunito;font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/ee40bb094c99a29a-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:Nunito;font-style:normal;font-weight:600;font-display:swap;src:url(/_next/static/media/abfec168c8990f67-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:Nunito;font-style:normal;font-weight:600;font-display:swap;src:url(/_next/static/media/3131c862d4942660-s.woff2) format("woff2");unicode-range:u+0301,u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116}@font-face{font-family:Nunito;font-style:normal;font-weight:600;font-display:swap;src:url(/_next/static/media/6a9c36ea9dc9b36b-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:Nunito;font-style:normal;font-weight:600;font-display:swap;src:url(/_next/static/media/e1694c6cb47c173f-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:Nunito;font-style:normal;font-weight:600;font-display:swap;src:url(/_next/static/media/ee40bb094c99a29a-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:Nunito;font-style:normal;font-weight:700;font-display:swap;src:url(/_next/static/media/abfec168c8990f67-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:Nunito;font-style:normal;font-weight:700;font-display:swap;src:url(/_next/static/media/3131c862d4942660-s.woff2) format("woff2");unicode-range:u+0301,u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116}@font-face{font-family:Nunito;font-style:normal;font-weight:700;font-display:swap;src:url(/_next/static/media/6a9c36ea9dc9b36b-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:Nunito;font-style:normal;font-weight:700;font-display:swap;src:url(/_next/static/media/e1694c6cb47c173f-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:Nunito;font-style:normal;font-weight:700;font-display:swap;src:url(/_next/static/media/ee40bb094c99a29a-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:Nunito;font-style:normal;font-weight:800;font-display:swap;src:url(/_next/static/media/abfec168c8990f67-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:Nunito;font-style:normal;font-weight:800;font-display:swap;src:url(/_next/static/media/3131c862d4942660-s.woff2) format("woff2");unicode-range:u+0301,u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116}@font-face{font-family:Nunito;font-style:normal;font-weight:800;font-display:swap;src:url(/_next/static/media/6a9c36ea9dc9b36b-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:Nunito;font-style:normal;font-weight:800;font-display:swap;src:url(/_next/static/media/e1694c6cb47c173f-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:Nunito;font-style:normal;font-weight:800;font-display:swap;src:url(/_next/static/media/ee40bb094c99a29a-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:Nunito;font-style:normal;font-weight:900;font-display:swap;src:url(/_next/static/media/abfec168c8990f67-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:Nunito;font-style:normal;font-weight:900;font-display:swap;src:url(/_next/static/media/3131c862d4942660-s.woff2) format("woff2");unicode-range:u+0301,u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116}@font-face{font-family:Nunito;font-style:normal;font-weight:900;font-display:swap;src:url(/_next/static/media/6a9c36ea9dc9b36b-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:Nunito;font-style:normal;font-weight:900;font-display:swap;src:url(/_next/static/media/e1694c6cb47c173f-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:Nunito;font-style:normal;font-weight:900;font-display:swap;src:url(/_next/static/media/ee40bb094c99a29a-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:Nunito Fallback;src:local("Arial");ascent-override:99.71%;descent-override:34.82%;line-gap-override:0.00%;size-adjust:101.39%}.__className_31d880{font-family:Nunito,Nunito Fallback;font-style:normal}.__variable_31d880{--font-display:"Nunito","Nunito Fallback"}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/edc640959b0c7826-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:JetBrains Mono;font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/ac0e76ddaeeb7981-s.woff2) format("woff2");unicode-range:u+0301,u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/64d784ea54a4acde-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:JetBrains Mono;font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/ff71da380fbe67dd-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:JetBrains Mono;font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/6d831b18ae5b01dc-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:JetBrains Mono;font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/558ca1a6aa3cb55e-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:JetBrains Mono;font-style:normal;font-weight:500;font-display:swap;src:url(/_next/static/media/edc640959b0c7826-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:JetBrains Mono;font-style:normal;font-weight:500;font-display:swap;src:url(/_next/static/media/ac0e76ddaeeb7981-s.woff2) format("woff2");unicode-range:u+0301,u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:500;font-display:swap;src:url(/_next/static/media/64d784ea54a4acde-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:JetBrains Mono;font-style:normal;font-weight:500;font-display:swap;src:url(/_next/static/media/ff71da380fbe67dd-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:JetBrains Mono;font-style:normal;font-weight:500;font-display:swap;src:url(/_next/static/media/6d831b18ae5b01dc-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:JetBrains Mono;font-style:normal;font-weight:500;font-display:swap;src:url(/_next/static/media/558ca1a6aa3cb55e-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:JetBrains Mono;font-style:normal;font-weight:600;font-display:swap;src:url(/_next/static/media/edc640959b0c7826-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:JetBrains Mono;font-style:normal;font-weight:600;font-display:swap;src:url(/_next/static/media/ac0e76ddaeeb7981-s.woff2) format("woff2");unicode-range:u+0301,u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:600;font-display:swap;src:url(/_next/static/media/64d784ea54a4acde-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:JetBrains Mono;font-style:normal;font-weight:600;font-display:swap;src:url(/_next/static/media/ff71da380fbe67dd-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:JetBrains Mono;font-style:normal;font-weight:600;font-display:swap;src:url(/_next/static/media/6d831b18ae5b01dc-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:JetBrains Mono;font-style:normal;font-weight:600;font-display:swap;src:url(/_next/static/media/558ca1a6aa3cb55e-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:JetBrains Mono Fallback;src:local("Arial");ascent-override:75.79%;descent-override:22.29%;line-gap-override:0.00%;size-adjust:134.59%}.__className_e896d9{font-family:JetBrains Mono,JetBrains Mono Fallback;font-style:normal}.__variable_e896d9{--font-mono:"JetBrains Mono","JetBrains Mono Fallback"}:root{--green:#58CC02;--green-dark:#46A302;--green-soft:#D7FFB8;--blue:#1CB0F6;--blue-dark:#09A0E5;--blue-soft:#DDF4FF;--red:#FF4B4B;--red-dark:#EA2B2B;--red-soft:#FFDFE0;--gold:#FFD900;--gold-dark:#E6C800;--gold-soft:#FFF9D6;--purple:#CE82FF;--purple-dark:#A560E8;--purple-soft:#F4DDFF;--orange:#FF9600;--orange-dark:#E08400;--orange-soft:#FEEDD0;--ink:#3C3C3C;--ink-2:#6B6B6B;--ink-3:#AFAFAF;--line:#E5E5E5;--bg:#F7F7F7;--surface:#FFFFFF;--side-bg:#131F24;--side-2:#1F3239;--side-text:#FFFFFF;--side-mut:#7B9EA9;--font-display:var(--font-display,"Nunito",ui-sans-serif,system-ui,sans-serif);--font-ui:var(--font-display,"Nunito",ui-sans-serif,system-ui,sans-serif);--font-mono:var(--font-mono,"JetBrains Mono",ui-monospace,monospace);--density:1;--s1:calc(4px * var(--density));--s2:calc(8px * var(--density));--s3:calc(12px * var(--density));--s4:calc(16px * var(--density));--s5:calc(20px * var(--density));--s6:calc(24px * var(--density));--s8:calc(32px * var(--density));--s10:calc(40px * var(--density));--s12:calc(48px * var(--density));--r-sm:10px;--r-md:16px;--r-lg:20px;--r-xl:24px;--r-full:999px;--shadow-sm:0 2px 8px rgba(0,0,0,0.08);--shadow-md:0 4px 16px rgba(0,0,0,0.10);--shadow-lg:0 8px 32px rgba(0,0,0,0.14)}*,:after,:before{box-sizing:border-box;margin:0;padding:0}body,html{height:100%}body{font-family:var(--font-ui);background:var(--bg);color:var(--ink);font-size:15px;line-height:1.4;-webkit-font-smoothing:antialiased;overflow-x:hidden}button{border:none;background:none;cursor:pointer}button,input{font-family:inherit;color:inherit}a{color:inherit;text-decoration:none}h1,h2,h3,h4{font-family:var(--font-display);font-weight:800;line-height:1.1}.app{min-height:100vh;display:grid;grid-template-columns:260px 1fr}.app.no-sidebar{grid-template-columns:1fr}@media (max-width:900px){.app{grid-template-columns:1fr}.sidebar{display:none!important}}.sidebar{background:var(--side-bg);padding:var(--s6) var(--s4);display:flex;flex-direction:column;gap:var(--s5);position:sticky;top:0;height:100vh;overflow-y:auto;border-right:1px solid rgba(255,255,255,.06)}.brand{display:flex;align-items:center;gap:10px;font-family:var(--font-display);font-weight:900;font-size:22px;color:var(--side-text);letter-spacing:-.02em;padding:0 var(--s2)}.brand-mark{width:40px;height:40px;border-radius:14px;background:var(--green);display:grid;place-items:center;font-size:22px;box-shadow:0 4px 0 var(--green-dark)}.nav{flex-direction:column;gap:4px}.nav,.nav a{display:flex}.nav a{align-items:center;gap:12px;padding:12px 14px;border-radius:var(--r-md);font-weight:800;font-size:15px;color:var(--side-mut);cursor:pointer;transition:background .15s,color .15s}.nav a.active,.nav a:hover{background:var(--side-2);color:var(--side-text)}.nav a.active{border-left:4px solid var(--green);padding-left:10px}.nav a.active .nav-icon{color:var(--green)}.nav-section{font-size:10px;text-transform:uppercase;letter-spacing:.12em;font-weight:800;color:var(--side-mut);padding:8px 14px 4px}.nav-icon{width:20px;height:20px;display:inline-grid;place-items:center;flex-shrink:0}.content{min-height:100vh;display:flex;flex-direction:column}.topbar{display:flex;align-items:center;justify-content:space-between;padding:var(--s4) var(--s8);background:var(--surface);border-bottom:2px solid var(--line);position:sticky;top:0;z-index:10}@media (max-width:900px){.topbar{padding:var(--s3) var(--s4)}}.topbar-search{flex:1;max-width:320px;margin:0 var(--s5);display:flex;align-items:center;gap:8px;background:var(--bg);border:2px solid var(--line);border-radius:var(--r-full);padding:8px 14px;font-size:14px}@media (max-width:700px){.topbar-search{display:none}}.topbar-search input{flex:1;background:none;border:none;outline:none;font-size:14px;font-family:inherit;color:var(--ink)}.page{padding:var(--s8);flex:1}@media (max-width:900px){.page{padding:var(--s5) var(--s4)}}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:12px 24px;border-radius:var(--r-full);font-family:var(--font-display);font-weight:800;font-size:14px;letter-spacing:.02em;text-transform:uppercase;border:none;cursor:pointer;transition:transform .1s,box-shadow .1s,filter .1s;user-select:none}.btn:hover{filter:brightness(1.05)}.btn:active{transform:translateY(3px)}.btn-green{background:var(--green);color:#fff;box-shadow:0 5px 0 var(--green-dark)}.btn-green:active{box-shadow:0 2px 0 var(--green-dark)}.btn-blue{background:var(--blue);color:#fff;box-shadow:0 5px 0 var(--blue-dark)}.btn-blue:active{box-shadow:0 2px 0 var(--blue-dark)}.btn-red{background:var(--red);color:#fff;box-shadow:0 5px 0 var(--red-dark)}.btn-red:active{box-shadow:0 2px 0 var(--red-dark)}.btn-gold{background:var(--gold);color:var(--ink);box-shadow:0 5px 0 var(--gold-dark)}.btn-gold:active{box-shadow:0 2px 0 var(--gold-dark)}.btn-purple{background:var(--purple);color:#fff;box-shadow:0 5px 0 var(--purple-dark)}.btn-purple:active{box-shadow:0 2px 0 var(--purple-dark)}.btn-ghost{background:var(--surface);color:var(--ink-2);box-shadow:0 5px 0 var(--line);border:2px solid var(--line)}.btn-ghost:active{box-shadow:0 2px 0 var(--line)}.btn-dark{background:var(--side-bg);color:white;box-shadow:0 5px 0 #000}.btn-dark:active{box-shadow:0 2px 0 #000}.btn-sm{padding:8px 16px;font-size:12px}.btn-lg{padding:16px 32px;font-size:16px}.btn-xl{padding:20px 40px;font-size:18px;width:100%}.card{background:var(--surface);border-radius:var(--r-lg);padding:var(--s5);border:2px solid var(--line);box-shadow:var(--shadow-sm);position:relative;overflow:hidden}.card.green{background:var(--green-soft);border-color:#A3E063}.card.blue{background:var(--blue-soft);border-color:#87D8FF}.card.red{background:var(--red-soft);border-color:#FFAAAA}.card.gold{background:var(--gold-soft);border-color:#FFE566}.card.purple{background:var(--purple-soft);border-color:#DDB3FF}.card.orange{background:var(--orange-soft);border-color:#FFCC77}.card.dark{background:var(--side-bg);border-color:var(--side-2);color:var(--side-text)}.tag{display:inline-flex;align-items:center;gap:5px;padding:4px 12px;border-radius:var(--r-full);font-size:12px;font-weight:800;letter-spacing:.02em;text-transform:uppercase;background:var(--bg);color:var(--ink-2);border:2px solid var(--line)}.tag.green{background:var(--green-soft);color:#3A8A00;border-color:#A3E063}.tag.blue{background:var(--blue-soft);color:#007DAB;border-color:#87D8FF}.tag.red{background:var(--red-soft);color:#C03030;border-color:#FFAAAA}.tag.gold{background:var(--gold-soft);color:#8A7000;border-color:#FFE566}.tag.purple{background:var(--purple-soft);color:#8040B8;border-color:#DDB3FF}.tag.orange{background:var(--orange-soft);color:#A06000;border-color:#FFCC77}.tag.dark{background:var(--side-bg);color:#fff;border-color:var(--side-2)}.xp-bar{height:18px;background:var(--line);border-radius:var(--r-full);overflow:hidden;border:2px solid rgba(0,0,0,.07)}.xp-bar>span{display:block;height:100%;background:var(--green);border-radius:var(--r-full);transition:width .6s cubic-bezier(.22,1,.36,1);position:relative}.xp-bar>span:after{content:"";position:absolute;right:4px;top:3px;width:6px;height:6px;border-radius:50%;background:rgba(255,255,255,.7)}.hearts{display:flex;gap:4px;align-items:center}.heart{font-size:22px;line-height:1}.heart.empty{filter:grayscale(1) opacity(.3)}.eyebrow{font-size:11px;text-transform:uppercase;letter-spacing:.14em;font-weight:800;color:var(--ink-3)}.muted{color:var(--ink-2)}.tiny{font-size:12px}.xl-title{font-size:36px;font-weight:900;letter-spacing:-.02em;line-height:1.05}.section-title,.xl-title{font-family:var(--font-display)}.section-title{font-size:20px;font-weight:800;margin-bottom:var(--s4);display:flex;align-items:center;justify-content:space-between}.see-all{font-size:13px;font-weight:700;color:var(--green);cursor:pointer;font-family:var(--font-ui);text-transform:none;letter-spacing:0}.see-all:hover{text-decoration:underline}.row{align-items:center}.col,.row{display:flex;gap:var(--s3)}.col{flex-direction:column}.between{justify-content:space-between}.grid-2{grid-template-columns:1fr 1fr}.grid-2,.grid-3{display:grid;gap:var(--s4)}.grid-3{grid-template-columns:repeat(3,1fr)}@media (max-width:700px){.grid-2,.grid-3{grid-template-columns:1fr}}@keyframes fadeUp{0%{opacity:0;transform:translateY(14px)}to{opacity:1;transform:translateY(0)}}@keyframes popIn{0%{opacity:0;transform:scale(.7)}65%{transform:scale(1.05)}to{opacity:1;transform:scale(1)}}@keyframes float{0%,to{transform:translateY(0)}50%{transform:translateY(-10px)}}@keyframes bounce{0%,to{transform:translateY(0);animation-timing-function:cubic-bezier(.8,0,1,1)}50%{transform:translateY(-14px);animation-timing-function:cubic-bezier(0,0,.2,1)}}@keyframes confetti-fall{0%{transform:translateY(-20px) rotate(0) scale(1);opacity:1}to{transform:translateY(500px) rotate(2turn) scale(.4);opacity:0}}@keyframes node-pulse{0%,to{transform:scale(1);box-shadow:0 6px 0 var(--green-dark)}50%{transform:scale(1.05);box-shadow:0 8px 0 var(--green-dark),0 0 20px rgba(88,204,2,.4)}}@keyframes word-float{0%{opacity:0;transform:translate(var(--fx,0),16px) scale(.8)}20%{opacity:1;transform:translate(var(--fx,0)) scale(1)}to{opacity:0;transform:translate(var(--fx,0),-80px)}}@keyframes ring-out{0%{transform:scale(.7);opacity:.6}to{transform:scale(1.35);opacity:0}}@keyframes orb-breathe{0%,to{transform:scale(1)}50%{transform:scale(1.05)}}@keyframes orb-record{0%,to{transform:scale(1);box-shadow:0 8px 0 var(--green-dark),0 0 48px rgba(88,204,2,.4)}50%{transform:scale(1.1);box-shadow:0 10px 0 var(--green-dark),0 0 80px rgba(88,204,2,.7)}}.fade-up{animation:fadeUp .4s cubic-bezier(.22,1,.36,1) both}.pop{animation:popIn .4s cubic-bezier(.22,1.4,.36,1) both}.float{animation:float 3.5s ease-in-out infinite}.bounce-anim{animation:bounce 1.1s infinite}.streak-hero{background:linear-gradient(135deg,#FF9600,#FF6200);border-radius:var(--r-xl);padding:var(--s6);color:white;position:relative;overflow:hidden;box-shadow:0 6px 0 #CC4E00}.streak-hero:before{content:"";position:absolute;right:-40px;top:-40px;width:200px;height:200px;border-radius:50%;background:rgba(255,255,255,.12);pointer-events:none}.streak-num{font-family:var(--font-display);font-size:80px;font-weight:900;line-height:1;letter-spacing:-.04em;color:white}.streak-days{display:flex;gap:6px;margin-top:var(--s4)}.streak-day{flex:1;aspect-ratio:1/1.4;border-radius:10px;background:rgba(255,255,255,.2);display:flex;flex-direction:column;align-items:center;justify-content:flex-end;padding-bottom:6px;gap:3px;font-size:10px;font-weight:800;color:rgba(255,255,255,.8)}.streak-day.done{background:rgba(255,255,255,.35)}.streak-day.today{background:white;color:var(--orange);box-shadow:0 4px 0 var(--gold-dark);animation:bounce 1.5s infinite}.path-wrap{position:relative;width:100%;max-width:480px;margin:0 auto;padding-bottom:40px}.path-svg{position:absolute;top:0;left:0;width:100%;pointer-events:none}.path-nodes{position:relative;z-index:1}.lesson-node{border-radius:50%;display:flex;flex-direction:column;align-items:center;justify-content:center;cursor:pointer;position:relative;transition:transform .18s;flex-shrink:0}.lesson-node:hover:not(.locked){transform:scale(1.1)}.lesson-node.done{background:var(--green);box-shadow:0 6px 0 var(--green-dark);color:white}.lesson-node.current{background:var(--green);animation:node-pulse 2s infinite;color:white}.lesson-node.open{background:var(--surface);box-shadow:0 6px 0 var(--line);border:2.5px solid var(--line);color:var(--ink-3)}.lesson-node.locked{background:var(--line);box-shadow:0 6px 0 #C8C8C8;color:var(--ink-3);cursor:default;opacity:.7}.node-start{position:absolute;bottom:-52px;left:50%;transform:translateX(-50%);background:var(--green);color:white;padding:9px 22px;border-radius:var(--r-full);font-size:13px;font-weight:800;text-transform:uppercase;letter-spacing:.06em;box-shadow:0 4px 0 var(--green-dark);white-space:nowrap;cursor:pointer;border:none;font-family:inherit;animation:node-pulse 2s infinite}.node-start:active{transform:translateX(-50%) translateY(3px);box-shadow:0 1px 0 var(--green-dark)}.practice-wrap{min-height:100vh;background:var(--bg);display:flex;flex-direction:column}.practice-topbar{display:flex;align-items:center;justify-content:space-between;padding:var(--s4) var(--s8);background:var(--surface);border-bottom:2px solid var(--line);gap:var(--s4)}@media (max-width:900px){.practice-topbar{padding:var(--s3) var(--s4)}}.lesson-progress{flex:1;height:14px;background:var(--line);border-radius:var(--r-full);overflow:hidden;border:2px solid rgba(0,0,0,.06)}.lesson-progress>span{display:block;height:100%;background:var(--green);border-radius:var(--r-full);transition:width .5s cubic-bezier(.22,1,.36,1)}.orb-stage{flex:1;display:grid;grid-template-columns:1fr 380px;gap:var(--s8);padding:var(--s8);align-items:start}@media (max-width:960px){.orb-stage{grid-template-columns:1fr;padding:var(--s5);gap:var(--s5)}}.scenario-card{background:var(--side-bg);color:var(--side-text);border-radius:var(--r-xl);padding:var(--s6);position:relative;overflow:hidden;box-shadow:var(--shadow-lg)}.prompt-big{font-family:var(--font-display);font-size:26px;font-weight:800;line-height:1.25;margin-top:var(--s3);text-wrap:pretty}.orb-right{display:flex;flex-direction:column;align-items:center;gap:var(--s5)}.orb-wrap{position:relative;width:280px;height:280px;display:grid;place-items:center}@media (max-width:500px){.orb-wrap{width:220px;height:220px}}.orb{width:200px;height:200px;border-radius:50%;background:radial-gradient(circle at 32% 30%,#7AE230,var(--green) 55%,var(--green-dark));box-shadow:0 8px 0 var(--green-dark),0 0 48px rgba(88,204,2,.3),inset 0 -16px 32px rgba(0,80,0,.2),inset 0 16px 32px rgba(255,255,255,.25);position:relative;transition:transform .3s}@media (max-width:500px){.orb{width:165px;height:165px}}.orb.listening{animation:orb-breathe 2s ease-in-out infinite}.orb.recording{animation:orb-record .8s ease-in-out infinite}.orb-ring{position:absolute;inset:0;border-radius:50%;border:2px solid var(--green);opacity:0;animation:ring-out 2s ease-out infinite}.orb-ring.r2{animation-delay:.7s}.orb-ring.r3{animation-delay:1.4s}.mic-btn{width:80px;height:80px;border-radius:50%;background:var(--red);color:white;border:none;box-shadow:0 6px 0 var(--red-dark);display:grid;place-items:center;cursor:pointer;transition:transform .12s,box-shadow .12s}.mic-btn:hover{transform:scale(1.05)}.mic-btn.active,.mic-btn:active{transform:translateY(4px);box-shadow:0 2px 0 var(--red-dark)}.mic-btn.active{background:var(--green);box-shadow:0 6px 0 var(--green-dark)}.floating-word{position:absolute;white-space:nowrap;font-family:var(--font-display);font-size:13px;padding:5px 14px;background:white;border:2px solid var(--green);color:var(--green);box-shadow:var(--shadow-sm);animation:word-float 3.5s ease-out forwards;pointer-events:none}.floating-word,.pow-chip{font-weight:800;border-radius:var(--r-full)}.pow-chip{display:inline-flex;align-items:center;gap:6px;padding:8px 16px;background:var(--surface);border:2px solid var(--line);font-size:12px;cursor:pointer;box-shadow:0 4px 0 var(--line);transition:all .12s}.pow-chip:hover{border-color:var(--green);transform:translateY(-1px)}.pow-chip:active{transform:translateY(3px);box-shadow:0 1px 0 var(--line)}.pow-chip.used{opacity:.4;cursor:not-allowed}.pow-row{display:flex;gap:8px;flex-wrap:wrap;justify-content:center}.fb-grid{display:grid;grid-template-columns:1.2fr 1fr;gap:var(--s6)}@media (max-width:960px){.fb-grid{grid-template-columns:1fr}}.score-ring{position:relative;width:180px;height:180px;margin:0 auto}.score-ring svg{width:100%;height:100%;transform:rotate(-90deg)}.score-ring-num{position:absolute;inset:0;display:grid;place-items:center;font-family:var(--font-display);font-size:52px;font-weight:900}.rubric-item{display:grid;grid-template-columns:1fr auto;gap:8px;padding:var(--s3) 0;border-bottom:2px dashed var(--line)}.rubric-item:last-child{border-bottom:none}.rubric-bar{grid-column:1/-1;height:10px;background:var(--line);border-radius:99px;overflow:hidden}.rubric-bar>span{display:block;height:100%;border-radius:99px;transition:width 1.2s cubic-bezier(.22,1,.36,1)}.coach-tip{display:flex;gap:12px;padding:var(--s4);background:var(--blue-soft);border-radius:var(--r-lg);border:2px solid #87d8ff}.coach-avatar{width:46px;height:46px;border-radius:50%;background:var(--blue);display:grid;place-items:center;font-size:22px;flex-shrink:0;box-shadow:0 4px 0 var(--blue-dark)}.lb-row{display:grid;grid-template-columns:40px 44px 1fr auto;gap:var(--s3);align-items:center;padding:var(--s3) var(--s4);border-bottom:2px solid var(--line);transition:background .15s}.lb-row:hover{background:var(--bg)}.lb-row.me{background:var(--green-soft);border-radius:var(--r-md);border:2px solid #a3e063}.lb-rank{font-family:var(--font-display);font-weight:900;font-size:18px;color:var(--ink-3);text-align:center}.lb-tabs{display:flex;gap:6px;margin-bottom:var(--s5);flex-wrap:wrap}.lb-tab{padding:8px 16px;border-radius:var(--r-full);background:var(--surface);border:2px solid var(--line);font-size:13px;font-weight:800;color:var(--ink-2);cursor:pointer;box-shadow:0 3px 0 var(--line);transition:all .15s}.lb-tab:active{transform:translateY(2px);box-shadow:0 1px 0 var(--line)}.lb-tab.active{background:var(--green);color:#fff;border-color:var(--green);box-shadow:0 3px 0 var(--green-dark)}.art-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(155px,1fr));gap:var(--s4)}.art-card{background:var(--surface);border:2px solid var(--line);border-radius:var(--r-xl);padding:var(--s5);text-align:center;transition:transform .2s,box-shadow .2s;box-shadow:0 4px 0 var(--line)}.art-card:hover:not(.locked){transform:translateY(-4px) rotate(-1deg);box-shadow:0 8px 0 var(--line)}.art-card.unlocked{border-color:var(--green);box-shadow:0 4px 0 var(--green-dark)}.art-card.locked{opacity:.65}.art-icon{font-size:52px;display:block;margin-bottom:8px}.art-name{font-family:var(--font-display);font-weight:800;font-size:15px}.art-req{font-size:11px;color:var(--ink-3);margin-top:4px}.art-rarity{display:inline-block;margin-top:10px;padding:3px 10px;border-radius:99px;font-size:10px;font-weight:800;text-transform:uppercase;letter-spacing:.08em}.art-rarity.common{background:var(--bg);color:var(--ink-3)}.art-rarity.rare{background:var(--blue-soft);color:#007DAB}.art-rarity.epic{background:var(--purple-soft);color:#8040B8}.art-rarity.legendary{background:var(--gold-soft);color:#8A7000;border:1.5px solid var(--gold)}.admin-kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:var(--s4);margin-bottom:var(--s6)}.kpi-card{background:var(--surface);border:2px solid var(--line);border-radius:var(--r-lg);padding:var(--s5);box-shadow:0 4px 0 var(--line)}.kpi-num{font-family:var(--font-display);font-size:36px;font-weight:900;margin-top:4px}.kpi-delta{font-size:12px;font-weight:800;margin-top:2px}.kpi-delta.up{color:var(--green)}.kpi-delta.down{color:var(--red)}.admin-grid{display:grid;grid-template-columns:1.3fr 1fr;gap:var(--s5)}@media (max-width:1000px){.admin-grid{grid-template-columns:1fr}}table.data{width:100%;border-collapse:collapse;font-size:14px}table.data td,table.data th{text-align:left;padding:12px 10px;border-bottom:2px solid var(--line)}table.data th{font-size:11px;text-transform:uppercase;letter-spacing:.08em;font-weight:800;color:var(--ink-3);background:var(--bg)}.chart-bars{display:flex;gap:6px;align-items:end;height:120px;margin-top:var(--s4)}.chart-bar{flex:1;background:var(--line);border-radius:8px 8px 0 0;position:relative;min-height:4px;transition:background .2s}.chart-bar[data-hi]{background:var(--green)}.chart-bar:hover:not([data-hi]){background:var(--blue)}.chart-bar .bv{position:absolute;top:-20px;left:50%;transform:translateX(-50%);font-family:var(--font-mono);font-size:11px;font-weight:600}.history-timeline{position:relative}.history-timeline:before{content:"";position:absolute;left:24px;top:0;bottom:0;width:2px;background:linear-gradient(180deg,var(--green),var(--blue),var(--purple));border-radius:99px;opacity:.25}.session-card{display:flex;gap:var(--s4);align-items:flex-start;padding:var(--s4) 0;position:relative}.session-dot{width:50px;height:50px;border-radius:50%;flex-shrink:0;display:grid;place-items:center;font-size:22px;border:3px solid var(--surface);z-index:1;position:relative;box-shadow:var(--shadow-sm);transition:transform .2s}.session-dot:hover{transform:scale(1.1)}.session-body{flex:1;background:var(--surface);border-radius:var(--r-lg);padding:var(--s4);border:2px solid var(--line);box-shadow:var(--shadow-sm);cursor:pointer;transition:border-color .2s,box-shadow .2s,transform .2s}.session-body:hover{border-color:var(--green);box-shadow:var(--shadow-md);transform:translateX(4px)}.date-label{font-size:14px;font-weight:800;color:var(--ink-3);padding:var(--s4) 0 var(--s2) 66px;text-transform:uppercase;letter-spacing:.1em}.date-label,.score-badge{font-family:var(--font-display)}.score-badge{display:inline-flex;align-items:center;justify-content:center;width:52px;height:52px;border-radius:50%;font-weight:900;font-size:18px;flex-shrink:0}.score-badge.excellent{background:var(--green-soft);color:#3A8A00;border:2px solid #a3e063}.score-badge.good{background:var(--blue-soft);color:#007DAB;border:2px solid #87d8ff}.score-badge.pass{background:var(--gold-soft);color:#8A7000;border:2px solid #ffe566}.score-badge.needs-work{background:var(--red-soft);color:#C03030;border:2px solid #ffaaaa}.levelup-overlay{position:fixed;inset:0;background:rgba(19,31,36,.88);backdrop-filter:blur(8px);z-index:100;display:grid;place-items:center;padding:var(--s5);animation:fadeUp .3s ease-out}.levelup-card{background:var(--surface);border-radius:var(--r-xl);padding:var(--s10);max-width:460px;width:100%;text-align:center;border:3px solid var(--green);box-shadow:0 0 60px rgba(88,204,2,.35);animation:popIn .45s cubic-bezier(.22,1.4,.36,1) both;overflow:hidden;position:relative}.confetti-bit{position:absolute;animation:confetti-fall 2.8s linear forwards;pointer-events:none}.mobile-nav{display:none;position:fixed;bottom:0;left:0;right:0;background:var(--surface);border-top:2px solid var(--line);padding:8px 4px;z-index:20;justify-content:space-around}@media (max-width:900px){.mobile-nav{display:flex}.content{padding-bottom:74px}}.mob-item{flex:1;display:flex;flex-direction:column;align-items:center;gap:2px;padding:6px;font-size:10px;font-weight:800;color:var(--ink-3);cursor:pointer}.mob-item.active{color:var(--green)}.avatar{border-radius:50%;background:var(--green);display:grid;place-items:center;font-family:var(--font-display);font-weight:800;color:white;position:relative;flex-shrink:0}.avatar.ring:after{content:"";position:absolute;inset:-3px;border-radius:50%;border:3px solid var(--gold)}body[data-density=compact]{--density:0.85;font-size:14px}body[data-density=spacious]{--density:1.2;font-size:16px}body[data-gamification=off] .gami-only{display:none!important}::-webkit-scrollbar{width:8px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--line);border-radius:99px}.ic{width:18px;height:18px;stroke:currentColor;fill:none;stroke-width:2.2;stroke-linecap:round;stroke-linejoin:round}.vnotes{background:linear-gradient(135deg,#FFFBEB,#FFF7CC);border-radius:var(--r-lg);border:2px solid #ffd966;overflow:hidden}.vnotes-head{padding:10px 16px;background:linear-gradient(135deg,#FFE566,var(--gold));border-bottom:2px solid #ffd966;display:flex;align-items:center;gap:8px}.trend-area{width:100%;overflow:visible}