@font-face{font-family:__Nunito_31d880;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_31d880;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_31d880;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_31d880;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_31d880;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_31d880;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_31d880;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_31d880;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_31d880;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_31d880;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_31d880;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_31d880;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_31d880;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_31d880;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_31d880;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_31d880;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_31d880;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_31d880;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_31d880;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_31d880;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_31d880;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_31d880;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_31d880;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_31d880;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_31d880;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_31d880;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_31d880,__Nunito_Fallback_31d880;font-style:normal}.__variable_31d880{--font-nunito:"__Nunito_31d880","__Nunito_Fallback_31d880"}:root{color-scheme:light;--bg:#fff;--surface:#fff;--surface-2:#f7f7f7;--border:#e5e5e5;--border-strong:#d0d0d0;--primary:#58cc02;--primary-hover:#61e002;--primary-press:#46a302;--primary-soft:#89e219;--primary-tint:#eefbe4;--on-primary:#132b00;--accent:#1cb0f6;--accent-press:#1899d6;--accent-tint:#ddf4ff;--reward:#ffc800;--reward-press:#e5a600;--reward-tint:#fff4d1;--primary-ink:#347700;--accent-ink:#0a7fbd;--reward-ink:#8a6100;--danger-ink:#d02f2f;--success:#58cc02;--success-bg:#eefbe4;--warning:#ff9600;--warning-bg:#fff1de;--danger:#ff4b4b;--danger-press:#e04343;--danger-bg:#ffdfe0;--text:#3c3c3c;--text-soft:#4b4b4b;--text-muted:#6b6b6b;--text-inverse:#fff;--gradient-primary:linear-gradient(135deg,#58cc02,#89e219);--text-2xl:1.75rem;--text-xl:1.5rem;--text-lg:1.25rem;--text-md:1rem;--text-sm:0.875rem;--text-xs:0.75rem;--font-family:var(--font-nunito),ui-rounded,"Nunito","Segoe UI Variable",system-ui,-apple-system,sans-serif;--font-mono:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;--measure:68ch;--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:24px;--space-6:32px;--space-7:48px;--space-8:64px;--radius-sm:10px;--radius-md:12px;--radius-lg:16px;--radius-pill:999px;--press-depth:4px;--press-depth-node:6px;--shadow-sm:0 1px 2px rgba(0,0,0,.06);--shadow-md:0 4px 14px rgba(0,0,0,.08);--shadow-lg:0 14px 36px rgba(0,0,0,.12);--shadow-modal:0 24px 64px rgba(0,0,0,.24);--dur-instant:60ms;--dur-fast:150ms;--dur-normal:220ms;--dur-slow:350ms;--ease-out:cubic-bezier(0.16,1,0.3,1)}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){color-scheme:dark;--bg:#131f24;--surface:#202f36;--surface-2:#1a262c;--border:#37464f;--border-strong:#4a5c66;--primary-tint:#1f3620;--accent-tint:#16333f;--reward-tint:#3a2f10;--success-bg:#1f3620;--warning-bg:#3a2a12;--danger-bg:#3d1f22;--text:#f1f7fb;--text-soft:#d7e3ea;--text-muted:#8ba3af;--primary-ink:#79e02a;--accent-ink:#4cc2f7;--reward-ink:#ffc800;--danger-ink:#ff6b6b;--shadow-sm:0 1px 2px rgba(0,0,0,.4);--shadow-md:0 4px 14px rgba(0,0,0,.45);--shadow-lg:0 14px 36px rgba(0,0,0,.5);--shadow-modal:0 24px 64px rgba(0,0,0,.6)}}:root[data-theme=dark]{color-scheme:dark;--bg:#131f24;--surface:#202f36;--surface-2:#1a262c;--border:#37464f;--border-strong:#4a5c66;--primary-tint:#1f3620;--accent-tint:#16333f;--reward-tint:#3a2f10;--success-bg:#1f3620;--warning-bg:#3a2a12;--danger-bg:#3d1f22;--text:#f1f7fb;--text-soft:#d7e3ea;--text-muted:#8ba3af;--primary-ink:#79e02a;--accent-ink:#4cc2f7;--reward-ink:#ffc800;--danger-ink:#ff6b6b;--shadow-sm:0 1px 2px rgba(0,0,0,.4);--shadow-md:0 4px 14px rgba(0,0,0,.45);--shadow-lg:0 14px 36px rgba(0,0,0,.5);--shadow-modal:0 24px 64px rgba(0,0,0,.6)}::selection{background:var(--primary-tint);color:var(--text)}:root{accent-color:var(--primary-ink);caret-color:var(--primary-ink);scrollbar-color:var(--border-strong) transparent;scrollbar-width:thin}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-thumb{background:var(--border-strong);border-radius:var(--radius-pill);border:2px solid var(--bg)}::-webkit-scrollbar-thumb:hover{background:var(--text-muted)}:focus-visible{outline:3px solid var(--accent);outline-offset:2px}*{box-sizing:border-box;margin:0;padding:0}html{-webkit-text-size-adjust:100%}body{font-family:var(--font-family);font-size:16px;line-height:1.55;color:var(--text);background:var(--bg);-webkit-font-smoothing:antialiased;display:flex;flex-direction:column;min-height:100vh}button{font-family:inherit}h1,h2,h3,h4{color:var(--text);letter-spacing:-.015em;line-height:1.3}:focus-visible{outline:none;box-shadow:0 0 0 3px rgba(108,92,231,.25);border-radius:var(--radius-sm)}.app-shell{flex-direction:column}.app-shell,.shell-authed{min-height:100vh;display:flex}.shell-main{flex:1 1;min-width:0}.shell-main,.sidebar{display:flex;flex-direction:column}.sidebar{width:232px;flex-shrink:0;background:var(--surface);border-right:1px solid var(--border);padding:var(--space-4) var(--space-3);position:-webkit-sticky;position:sticky;top:0;height:100vh}.sidebar-brand{padding:0 var(--space-2) var(--space-5)}.brand,.sidebar-brand{display:flex;align-items:center;gap:var(--space-2)}.brand-mark{display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;border-radius:var(--radius-sm);background:var(--gradient-primary);color:var(--on-primary);flex-shrink:0}.brand-name{font-weight:800;font-size:var(--text-md);letter-spacing:-.02em;color:var(--text);white-space:nowrap}.sidebar-nav{display:flex;flex-direction:column;gap:2px;flex:1 1}.sidebar-item{display:flex;align-items:center;gap:var(--space-3);padding:.7rem .9rem;border:2px solid transparent;border-radius:var(--radius-lg);background:transparent;color:var(--text-soft);font-size:var(--text-sm);font-weight:800;letter-spacing:.04em;text-transform:uppercase;cursor:pointer;text-align:left;transition:background-color var(--dur-fast),color var(--dur-fast),border-color var(--dur-fast)}.sidebar-item:hover{background:var(--surface-2);color:var(--text)}.sidebar-item-active{background:var(--primary-tint);color:var(--primary-ink)}.sidebar-item-danger{color:var(--danger-ink)}.sidebar-item-danger:hover{background:var(--danger-bg);color:var(--danger-ink)}.sidebar-context{margin:var(--space-4) var(--space-2);padding:var(--space-3);border:1px solid var(--border);border-radius:var(--radius-md);background:var(--surface-2)}.sidebar-context-label{display:flex;align-items:center;gap:6px;font-size:var(--text-xs);font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--text-muted)}.sidebar-context-value{margin-top:6px;font-size:var(--text-sm);font-weight:700;color:var(--text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sidebar-footer{border-top:1px solid var(--border);padding-top:var(--space-3)}.topbar{height:60px;flex-shrink:0;background:color-mix(in srgb,var(--surface) 88%,transparent);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border-bottom:1px solid var(--border);display:flex;align-items:center;justify-content:space-between;gap:var(--space-4);padding:0 var(--space-5);position:-webkit-sticky;position:sticky;top:0;z-index:60}.topbar-public{background:transparent;-webkit-backdrop-filter:none;backdrop-filter:none;border-bottom:none;justify-content:center;padding-top:var(--space-6)}.topbar-context{font-size:var(--text-sm);font-weight:600;color:var(--text-muted);letter-spacing:.01em}.topbar-right{display:flex;align-items:center;gap:var(--space-3)}.brand-mobile{display:none}.streak-icon{color:var(--reward-ink)}.avatar-btn{width:36px;height:36px;border-radius:50%;border:1px solid var(--border-strong);background:var(--gradient-primary);color:var(--on-primary);font-weight:700;font-size:.95rem;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:transform var(--dur-fast),box-shadow var(--dur-fast);flex-shrink:0}.avatar-btn:hover{transform:scale(1.05);box-shadow:var(--shadow-md)}.shell-content{flex:1 1;display:flex;justify-content:center;padding:var(--space-6) var(--space-5) var(--space-8);min-height:calc(100vh - 60px);align-items:flex-start}.shell-content-public{align-items:center;padding-top:var(--space-4)}.shell-content-with-footer{min-height:calc(100vh - 60px - 5.5rem);align-items:center}.screen-view{width:100%;max-width:880px;display:flex;justify-content:center;animation:screenIn var(--dur-normal) var(--ease-out) forwards}@keyframes screenIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.bottom-nav{display:none}.btn{font-family:inherit;font-size:var(--text-sm);font-weight:700;letter-spacing:.08em;text-transform:uppercase;line-height:1.2;padding:.8rem 1.5rem;border-radius:var(--radius-lg);border:2px solid transparent;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;gap:.5rem;text-decoration:none;box-shadow:0 var(--press-depth) 0 var(--btn-press,transparent);transform:translateY(0);transition:background-color var(--dur-fast),border-color var(--dur-fast),color var(--dur-fast),box-shadow var(--dur-instant),transform var(--dur-instant);white-space:nowrap}.btn:disabled{background:var(--surface-2);color:var(--text-muted);border-color:transparent;box-shadow:none;cursor:not-allowed}.btn:active:not(:disabled){transform:translateY(var(--press-depth));box-shadow:0 0 0 var(--btn-press,transparent)}.btn-primary{--btn-press:var(--primary-press);background:var(--primary);color:var(--on-primary)}.btn-primary:hover:not(:disabled){background:var(--primary-hover)}.btn-outline{--btn-press:var(--border);background:var(--surface);color:var(--accent-ink);border-color:var(--border)}.btn-outline:hover:not(:disabled){background:var(--accent-tint);border-color:var(--accent-ink)}.btn-ghost{background:transparent;color:var(--text-muted);box-shadow:none}.btn-ghost:hover:not(:disabled){background:var(--surface-2);color:var(--text)}.btn-ghost:active:not(:disabled){transform:none}.btn-danger{--btn-press:var(--danger-press);background:var(--danger);color:var(--on-primary)}.btn-danger:hover:not(:disabled){background:#ff5f5f}.btn-success{--btn-press:var(--primary-press);background:var(--primary);color:var(--on-primary)}.btn-success:hover:not(:disabled){background:var(--primary-hover)}.btn-sm{font-size:var(--text-xs);padding:.45rem .9rem}.btn-loading{opacity:.75;cursor:progress}.card,.concept-card{background:var(--surface);border:2px solid var(--border);border-radius:var(--radius-lg);padding:var(--space-5)}.card-soft{background:var(--surface-2);border-color:var(--border)}.card-danger{background:var(--danger-bg);border-color:#f5c2c2}.badge,.stats-badge{display:inline-flex;align-items:center;gap:.35rem;font-size:var(--text-xs);font-weight:700;padding:.2rem .65rem;border-radius:var(--radius-pill);background:var(--surface-2);color:var(--text-soft);white-space:nowrap}.badge-primary{background:var(--primary-tint);color:var(--primary-ink)}.badge-success{background:var(--success-bg);color:var(--primary-ink)}.badge-warning{background:var(--warning-bg);color:var(--reward-ink)}.badge-danger{background:var(--danger-bg);color:var(--danger-ink)}.form-label{display:block;font-size:var(--text-xs);font-weight:700;color:var(--text-soft);margin-bottom:.35rem;letter-spacing:.01em}.form-input,.form-select,.form-textarea{width:100%;padding:.65rem .85rem;border:1px solid var(--border-strong);border-radius:var(--radius-sm);font-size:var(--text-sm);font-family:inherit;background:var(--surface);color:var(--text);transition:border-color var(--dur-fast),box-shadow var(--dur-fast)}.form-textarea{resize:vertical;min-height:110px;line-height:1.5}.form-input::placeholder,.form-textarea::placeholder{color:var(--text-muted)}.form-input:focus,.form-select:focus,.form-textarea:focus{outline:none;border-color:var(--primary-ink);box-shadow:0 0 0 3px rgba(108,92,231,.18)}.spinner{animation:spin .8s linear infinite;flex-shrink:0}@keyframes spin{to{transform:rotate(1turn)}}.skeleton{background:linear-gradient(90deg,var(--surface-2) 25%,#e9eaf2 50%,var(--surface-2) 75%);background-size:200% 100%;animation:shimmer 1.4s infinite;border-radius:var(--radius-sm)}@keyframes shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.skeleton-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);padding:var(--space-5);display:flex;flex-direction:column;gap:var(--space-3)}.loading-state{justify-content:center;color:var(--text-muted);font-size:var(--text-sm);padding:var(--space-6) 0;min-height:120px}.empty-state,.loading-state{display:flex;align-items:center;gap:var(--space-2)}.empty-state{flex-direction:column;text-align:center;padding:var(--space-6) var(--space-4);border:1px dashed var(--border-strong);border-radius:var(--radius-md);background:var(--surface-2)}.empty-state-compact{padding:var(--space-4)}.empty-state-icon{color:var(--text-muted);display:flex}.empty-state-title{font-weight:700;font-size:var(--text-md);color:var(--text)}.empty-state-desc{font-size:var(--text-sm);color:var(--text-muted);max-width:380px}.error-state{display:flex;flex-direction:column;align-items:center;text-align:center;gap:var(--space-2);padding:var(--space-6) var(--space-4);border:1px solid #f5c2c2;border-radius:var(--radius-md);background:var(--danger-bg)}.error-state-icon{color:var(--danger-ink)}.error-state-title{font-weight:700;font-size:var(--text-md);color:var(--text)}.error-state-desc{font-size:var(--text-sm);color:var(--text-soft);max-width:380px}.toast-viewport{position:fixed;top:72px;right:var(--space-5);z-index:300;flex-direction:column;width:min(360px,calc(100vw - 32px));pointer-events:none}.toast,.toast-viewport{display:flex;gap:var(--space-2)}.toast{align-items:flex-start;background:var(--surface);border:2px solid var(--toast-accent,var(--border));border-radius:var(--radius-lg);box-shadow:var(--shadow-modal);padding:.7rem .8rem;font-size:var(--text-sm);color:var(--text);pointer-events:auto;animation:toastIn var(--dur-normal) var(--ease-out) forwards}@keyframes toastIn{0%{opacity:0;transform:translateX(16px)}to{opacity:1;transform:translateX(0)}}.toast-success{--toast-accent:var(--primary)}.toast-error{--toast-accent:var(--danger)}.toast-info{--toast-accent:var(--accent)}.toast-icon{display:flex;margin-top:1px}.toast-icon,.toast-success .toast-icon{color:var(--primary-ink)}.toast-error .toast-icon{color:var(--danger-ink)}.toast-message{flex:1 1;line-height:1.45}.toast-close{border:none;background:none;color:var(--text-muted);cursor:pointer;padding:5px;min-width:24px;min-height:24px;display:flex;align-items:center;justify-content:center;border-radius:4px}.toast-close:hover{color:var(--text)}.concept-status{display:inline-flex;align-items:center;gap:.3rem;font-size:var(--text-xs);font-weight:700;padding:.15rem .6rem;border-radius:var(--radius-pill);white-space:nowrap}.concept-status-locked{background:var(--surface-2);color:var(--text-muted)}.concept-status-available{background:var(--surface-2);color:var(--text-soft)}.concept-status-in_progress{background:var(--primary-tint);color:var(--primary-ink)}.concept-status-mastered{background:var(--success-bg);color:var(--primary-ink)}.concept-status-recommended{background:var(--warning-bg);color:var(--reward-ink)}.concept-status-prerequisite{background:var(--surface-2);color:var(--text-soft)}.lesson-container{width:100%;max-width:680px;display:flex;flex-direction:column;gap:var(--space-5)}.question-section{display:flex;flex-direction:column;gap:var(--space-4)}.question-text{font-size:var(--text-lg);font-weight:650;line-height:1.45;color:var(--text)}.options-grid{display:grid;grid-template-columns:1fr;grid-gap:var(--space-3);gap:var(--space-3)}.option-button{background:var(--surface);border:2px solid var(--border);border-radius:var(--radius-lg);padding:1rem 1.15rem;text-align:left;font-size:var(--text-md);font-weight:600;font-family:inherit;color:var(--text);cursor:pointer;display:flex;align-items:flex-start;gap:var(--space-3);box-shadow:0 var(--press-depth) 0 var(--border);transform:translateY(0);transition:border-color var(--dur-fast),background-color var(--dur-fast),box-shadow var(--dur-instant),transform var(--dur-instant)}.option-button:active{transform:translateY(var(--press-depth));box-shadow:0 0 0 var(--border)}.option-button:hover{border-color:var(--accent-ink);background:var(--accent-tint)}.option-button.selected{box-shadow:0 var(--press-depth) 0 var(--accent-press);border-color:var(--primary-ink);background:var(--primary-tint);box-shadow:0 0 0 3px rgba(108,92,231,.15)}.option-number{background:var(--primary-tint);color:var(--primary-ink);font-size:var(--text-xs);font-weight:700;padding:.1rem .45rem;border-radius:6px;flex-shrink:0;margin-top:1px}.option-label{flex:1 1;line-height:1.5}.progress-track{flex-grow:1;background-color:var(--surface-2);border:1px solid var(--border);height:10px;overflow:hidden}.progress-bar,.progress-track{border-radius:var(--radius-pill)}.progress-bar{background:var(--gradient-primary);height:100%;width:100%;transform-origin:left center;transform:scaleX(var(--fill,0))}.feedback-drawer,.progress-bar{transition:transform var(--dur-slow) var(--ease-out)}.feedback-drawer{position:fixed;bottom:0;left:0;right:0;background:var(--surface);border-top:1px solid var(--border);padding:1.25rem var(--space-5);transform:translateY(100%);box-shadow:0 -8px 28px rgba(27,30,43,.1);z-index:200}.feedback-drawer.active-correct{transform:translateY(0);background:var(--success-bg);border-top-color:var(--primary-ink)}.feedback-drawer.active-incorrect{transform:translateY(0);background:var(--danger-bg);border-top-color:var(--danger-ink)}.feedback-note{margin-top:.4rem;font-size:var(--text-xs);color:var(--text-muted)}.feedback-content{max-width:860px;margin:0 auto;display:flex;align-items:center;justify-content:space-between;gap:var(--space-5);flex-wrap:wrap}.feedback-details{display:flex;align-items:flex-start;gap:var(--space-3);flex:1 1;min-width:260px}.feedback-icon{font-size:1.6rem;line-height:1}.feedback-title{font-size:var(--text-md);font-weight:800;margin-bottom:.15rem}.feedback-title.correct{color:var(--primary-ink)}.feedback-title.incorrect{color:var(--danger-ink)}.feedback-text{color:var(--text-soft);font-size:var(--text-sm);max-width:560px}footer{background:var(--surface);border-top:1px solid var(--border);padding:1rem var(--space-5);position:-webkit-sticky;position:sticky;bottom:0;z-index:90}.footer-hint{font-size:var(--text-sm);color:var(--text-muted);margin-right:auto}.footer-container{max-width:860px;margin:0 auto;display:flex;justify-content:flex-end;align-items:center;gap:var(--space-3);flex-wrap:wrap}.dash-card{display:flex;flex-direction:column;gap:var(--space-5)}.dash-header{display:flex;justify-content:space-between;align-items:flex-start;flex-wrap:wrap;gap:var(--space-3)}.dash-title{font-size:var(--text-2xl);font-weight:800;letter-spacing:-.02em;color:var(--text)}.dash-subtitle{color:var(--text-muted);font-size:var(--text-sm)}.dash-actions{display:flex;gap:var(--space-2);flex-wrap:wrap}.dash-section-title{font-weight:700;font-size:var(--text-sm);color:var(--text-soft);margin-bottom:var(--space-3);display:flex;align-items:center;gap:.4rem}.dash-section-icon{color:var(--primary-ink);display:inline-flex}.search-bar{display:flex;align-items:center;gap:var(--space-2);border:1px solid var(--border-strong);border-radius:var(--radius-md);padding:.35rem .45rem .35rem .85rem;background:var(--surface);transition:border-color var(--dur-fast),box-shadow var(--dur-fast)}.search-bar:focus-within{border-color:var(--primary-ink);box-shadow:0 0 0 3px rgba(108,92,231,.18)}.search-icon{color:var(--text-muted);display:flex}.search-input{flex:1 1;border:none;outline:none;font-size:var(--text-sm);font-family:inherit;background:transparent;color:var(--text);padding:.35rem 0;min-width:0}.search-input::placeholder{color:var(--text-muted)}.search-panel{border:1px solid var(--border);border-radius:var(--radius-md);background:var(--surface-2);padding:var(--space-4);display:flex;flex-direction:column;gap:var(--space-3)}.search-panel-head{display:flex;align-items:center;justify-content:space-between;gap:var(--space-2)}.search-result{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-sm);padding:.65rem .85rem}.search-result-title{display:flex;align-items:center;gap:.5rem;font-size:var(--text-sm);color:var(--text);flex-wrap:wrap}.search-result-meta{font-size:var(--text-xs);color:var(--primary-ink);background:var(--primary-tint);padding:.05rem .45rem;border-radius:var(--radius-pill)}.search-result-snippet{font-size:var(--text-sm);color:var(--text-soft);margin-top:.25rem;line-height:1.5}.stats-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));grid-gap:var(--space-3);gap:var(--space-3)}.stat-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-md);padding:var(--space-4) var(--space-3);text-align:center;transition:transform var(--dur-fast),box-shadow var(--dur-fast)}.stat-card:hover{transform:translateY(-2px);box-shadow:var(--shadow-md)}.stat-icon{color:var(--primary-ink);display:inline-flex;margin-bottom:2px}.stat-value{font-size:var(--text-xl);font-weight:800;color:var(--text);line-height:1.25;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.stat-sub{color:var(--text-soft);margin-top:.15rem;text-align:center}.stat-label,.stat-sub{font-size:var(--text-xs)}.stat-label{color:var(--text-muted);font-weight:600}.rec-card{background:var(--gradient-primary);border-radius:var(--radius-lg);padding:var(--space-5);color:var(--text-inverse);justify-content:space-between;flex-wrap:wrap;gap:var(--space-4);box-shadow:var(--shadow-lg)}.rec-card,.rec-card-label{display:flex;align-items:center}.rec-card-label{font-size:var(--text-xs);text-transform:uppercase;letter-spacing:.1em;opacity:.85;font-weight:700;gap:6px}.rec-card-title{font-size:var(--text-xl);font-weight:800;margin-top:.15rem;letter-spacing:-.01em}.rec-card-reason{font-size:var(--text-sm);opacity:.92;margin-top:.15rem}.rec-card-mastery{margin-top:var(--space-2);font-size:var(--text-xs);font-weight:700;background:hsla(0,0%,100%,.18);display:inline-block;padding:.15rem .6rem;border-radius:var(--radius-pill)}.rec-card-btn{background:var(--surface);color:var(--primary-ink);border:none;border-radius:var(--radius-sm);padding:.65rem 1.3rem;font-weight:700;font-size:var(--text-sm);cursor:pointer;transition:transform var(--dur-instant),box-shadow var(--dur-fast)}.rec-card-btn:hover{transform:translateY(-1px);box-shadow:var(--shadow-md)}.mastery-list,.misconception-list{display:flex;flex-direction:column;gap:var(--space-2)}.misconception-row{border:1px solid var(--border);border-radius:var(--radius-md);padding:var(--space-3);background:var(--surface);transition:border-color var(--dur-fast) var(--ease-out)}.misconception-row.is-resolved{opacity:.65}.misconception-head{display:flex;justify-content:space-between;align-items:center;gap:var(--space-2);flex-wrap:wrap;margin-bottom:.35rem}.misconception-name{font-weight:600;font-size:var(--text-sm);text-transform:capitalize}.misconception-desc{font-size:var(--text-sm);line-height:1.5;margin-bottom:.4rem}.misconception-meta{font-size:var(--text-xs);color:var(--text-soft);margin-bottom:.5rem}.misconception-actions{display:flex;gap:var(--space-2)}.misconception-resolved-note{display:flex;align-items:center;gap:.35rem;font-size:var(--text-xs);color:var(--text-soft)}.mastery-row{gap:var(--space-3)}.mastery-name,.mastery-row{display:flex;align-items:center}.mastery-name{width:210px;min-width:140px;font-size:var(--text-sm);color:var(--text);gap:.4rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.mastery-track{flex-grow:1;background-color:var(--surface-2);height:8px;overflow:hidden}.mastery-bar,.mastery-track{border-radius:var(--radius-pill)}.mastery-bar{height:100%;width:100%;transform-origin:left center;transform:scaleX(var(--fill,0));transition:transform var(--dur-slow) var(--ease-out)}.mastery-pct{width:46px;text-align:right;font-size:var(--text-xs);font-weight:700;color:var(--text-soft);font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.doc-list{flex-direction:column}.doc-list,.doc-row{display:flex;gap:var(--space-2)}.doc-row{justify-content:space-between;align-items:center;flex-wrap:wrap;border:1px solid var(--border);border-radius:var(--radius-md);padding:.7rem .9rem;background:var(--surface);transition:border-color var(--dur-fast),box-shadow var(--dur-fast)}.doc-row:hover{border-color:var(--border-strong);box-shadow:var(--shadow-sm)}.doc-left{display:flex;align-items:center;gap:var(--space-3);min-width:0}.doc-icon{color:var(--text-soft);display:inline-flex}.doc-name{font-weight:600;color:var(--text);font-size:var(--text-sm);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:340px}.doc-meta{font-size:var(--text-xs);color:var(--text-muted)}.doc-actions{display:flex;align-items:center;gap:var(--space-2);flex-wrap:wrap}.doc-badge-ready{font-size:var(--text-xs);color:var(--primary-ink);font-weight:700;white-space:nowrap}.quick-actions{display:flex;gap:var(--space-3);flex-wrap:wrap}.icon-btn{display:inline-flex;align-items:center;justify-content:center;background:none;border:1px solid var(--border);border-radius:var(--radius-sm);font-size:var(--text-sm);padding:.35rem .5rem;cursor:pointer;color:var(--text-soft);transition:background-color var(--dur-fast),color var(--dur-fast),border-color var(--dur-fast)}.icon-btn:hover{background:var(--primary-tint);color:var(--primary-ink);border-color:var(--primary-soft)}.settings-card{border:1px solid var(--border);border-radius:var(--radius-md);padding:var(--space-4);background:var(--surface);display:flex;flex-direction:column;gap:var(--space-3)}.settings-row{display:flex;justify-content:space-between;align-items:center;gap:var(--space-4);flex-wrap:wrap}.settings-label{font-size:var(--text-xs);font-weight:700;color:var(--text-muted)}.settings-value{font-size:var(--text-sm);font-weight:600;color:var(--text);overflow-wrap:anywhere}.settings-danger{border-color:#f5c2c2}.dropzone{border:2px dashed var(--primary-soft);border-radius:var(--radius-md);padding:var(--space-7) var(--space-5);text-align:center;background:var(--surface-2);cursor:pointer;position:relative;transition:border-color var(--dur-fast),background-color var(--dur-fast)}.dropzone:hover{border-color:var(--primary-ink);background:var(--primary-tint)}.dropzone-input{position:absolute;inset:0;opacity:0;cursor:pointer}.dropzone-icon{color:var(--primary-ink);display:inline-flex;margin-bottom:var(--space-2)}.terminal-log{font-family:var(--font-mono);font-size:var(--text-xs);color:var(--text-soft);background:var(--surface-2);padding:.75rem .85rem;border-radius:var(--radius-sm);border:1px solid var(--border);min-height:44px;display:flex;align-items:center;justify-content:center;text-align:center}.concept-card h2{font-size:var(--text-lg);margin-bottom:.4rem;color:var(--text)}.concept-card p{color:var(--text-soft);font-size:var(--text-sm)}.provenance-line{font-size:var(--text-xs);color:var(--text-muted);display:flex;align-items:center;gap:.4rem;flex-wrap:wrap}.math,code{font-family:var(--font-mono);font-size:.92em;background:var(--primary-tint);color:var(--primary-hover);padding:.1rem .4rem;border-radius:6px}.divider{display:flex;align-items:center;gap:var(--space-3);color:var(--text-muted);font-size:var(--text-xs);margin:var(--space-2) 0}.divider:after,.divider:before{content:"";flex:1 1;height:1px;background:var(--border)}.syslog{border:1px solid var(--border);border-radius:var(--radius-md);background:var(--surface);overflow:hidden}.syslog-summary{display:flex;justify-content:space-between;align-items:center;gap:var(--space-3);padding:.7rem 1rem;font-size:var(--text-xs);font-weight:700;color:var(--text-soft);cursor:pointer;list-style:none;-webkit-user-select:none;-moz-user-select:none;user-select:none}.syslog-summary::-webkit-details-marker{display:none}.syslog-summary:before{content:"▸";transition:transform var(--dur-fast);color:var(--text-muted)}.syslog[open] .syslog-summary:before{transform:rotate(90deg)}.syslog-body{display:flex;flex-direction:column;gap:.4rem;max-height:140px;overflow-y:auto;padding:0 1rem .8rem;font-family:var(--font-mono);font-size:var(--text-xs);color:var(--text-soft)}.syslog-line{line-height:1.4}.syslog-ok{color:var(--primary-ink)}.syslog-warn{color:var(--reward-ink)}.close-btn{background:none;border:none;font-size:1.3rem;line-height:1;color:var(--text-muted);cursor:pointer;padding:.3rem .55rem;border-radius:var(--radius-sm);transition:color var(--dur-fast),background-color var(--dur-fast)}.close-btn:hover{color:var(--text);background:var(--surface-2)}.auth-hero{font-size:2.4rem;line-height:1}.auth-title{font-size:2rem;font-weight:800;letter-spacing:-.03em;color:var(--text);margin-top:var(--space-2)}.form-link{background:none;border:none;padding:.35rem 0;width:-moz-fit-content;width:fit-content;color:var(--primary-ink);font-size:var(--text-sm);cursor:pointer;text-align:left;margin-top:.1rem}.form-link:hover{text-decoration:underline}.auth-notice{font-size:var(--text-sm);line-height:1.5;color:var(--text-soft);background:var(--primary-tint);border:1px solid var(--primary-soft);border-radius:var(--radius-md);padding:.7rem .9rem;word-break:break-all}.auth-tagline{color:var(--text-muted);font-size:var(--text-sm)}.animate-slide{animation:screenIn var(--dur-normal) var(--ease-out) forwards}@media (max-width:860px){.sidebar{display:none}.brand-mobile{display:inline-flex}.topbar-context{display:none}.shell-content{padding:var(--space-4) var(--space-3) 96px}.bottom-nav{display:flex;position:fixed;bottom:0;left:0;right:0;z-index:120;background:hsla(0,0%,100%,.92);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border-top:1px solid var(--border);padding:.4rem var(--space-2) calc(.4rem + env(safe-area-inset-bottom))}.bottom-nav-item{flex:1 1;display:flex;flex-direction:column;align-items:center;gap:2px;border:none;background:none;color:var(--text-muted);font-size:.65rem;font-weight:600;padding:.3rem .2rem;cursor:pointer;border-radius:var(--radius-sm);transition:color var(--dur-fast),background-color var(--dur-fast)}.bottom-nav-item-active{color:var(--primary-ink);background:var(--primary-tint)}}@media (max-width:560px){.topbar{padding:0 var(--space-3);height:54px}.shell-content{padding:var(--space-3) var(--space-2) 92px}.card,.concept-card{padding:var(--space-4);border-radius:var(--radius-md)}.mastery-name{width:110px;min-width:80px}.dash-title{font-size:var(--text-xl)}.stats-grid{grid-template-columns:repeat(2,1fr)}.rec-card{padding:var(--space-4)}.feedback-content{padding-bottom:var(--space-2)}.footer-container .btn{flex:1 1}}.learn-hero{background:linear-gradient(135deg,#2f7a00,#46a302);border-radius:var(--radius-lg);padding:1.5rem;color:var(--on-primary);margin-bottom:1.25rem}.learn-hero-top{display:flex;justify-content:space-between;align-items:flex-start;gap:1rem;flex-wrap:wrap}.learn-hero-title{font-size:var(--text-xl);font-weight:800;color:#fff}.learn-hero-subtitle{color:hsla(0,0%,100%,.85);font-size:var(--text-sm);margin-top:.25rem}.learn-hero-stats{display:flex;gap:.5rem}.learn-hero-stats .stats-badge{background:hsla(0,0%,100%,.18);color:#fff;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.learn-continue{margin-top:1.25rem;width:100%;display:flex;align-items:center;gap:1rem;background:hsla(0,0%,100%,.16);border:1px solid hsla(0,0%,100%,.3);border-radius:var(--radius-md);padding:.9rem 1.1rem;color:#fff;cursor:pointer;text-align:left;transition:background var(--dur-fast),transform var(--dur-fast)}.learn-continue:hover{background:hsla(0,0%,100%,.24);transform:translateY(-1px)}.learn-continue-icon{width:42px;height:42px;border-radius:50%;background:var(--on-primary);color:var(--primary-press);display:flex;align-items:center;justify-content:center;flex-shrink:0}.learn-continue-body{flex:1 1;min-width:0;display:flex;flex-direction:column}.learn-continue-label{font-size:var(--text-xs);font-weight:700;text-transform:uppercase;letter-spacing:.05em;opacity:.85}.learn-continue-value{font-size:var(--text-md);font-weight:800}.learn-continue-reason{font-size:var(--text-xs);opacity:.85;margin-top:.15rem}.learn-continue-arrow{font-size:1.3rem;opacity:.9}.learn-path{display:flex;flex-direction:column;gap:1.5rem}.learn-path-head{display:flex;justify-content:space-between;align-items:center;gap:.75rem}.path-unit-head{display:flex;align-items:center;gap:.6rem;margin-bottom:1rem}.path-unit-num{width:26px;height:26px;border-radius:50%;background:var(--primary);color:#fff;font-size:var(--text-xs);font-weight:800;display:inline-flex;align-items:center;justify-content:center}.path-unit-title{font-weight:800;font-size:var(--text-sm);color:var(--text);text-transform:uppercase;letter-spacing:.03em}.path-nodes{display:flex;flex-direction:column;align-items:center;gap:var(--space-6);position:relative;padding:var(--space-4) 0}.path-nodes>.path-node:nth-child(4n+1){transform:translateX(-64px)}.path-nodes>.path-node:nth-child(4n+3){transform:translateX(64px)}@media (max-width:640px){.path-nodes>.path-node:nth-child(4n+1){transform:translateX(-38px)}.path-nodes>.path-node:nth-child(4n+3){transform:translateX(38px)}}.path-node{position:relative;background:none;border:none;padding:0;cursor:pointer;display:flex;flex-direction:column;align-items:center;gap:.4rem;z-index:1;transition:transform var(--dur-fast)}.path-node:not(:disabled):hover .path-node-circle{transform:translateY(-2px);box-shadow:0 calc(var(--press-depth-node) + 2px) 0 var(--node-press,var(--border))}.path-node:disabled{cursor:default}.path-node-circle{width:68px;height:68px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-weight:900;font-size:var(--text-md);border:none;background:var(--surface-2);color:var(--text-muted);box-shadow:0 var(--press-depth-node) 0 var(--node-press,var(--border));transition:background var(--dur-fast),color var(--dur-fast),box-shadow var(--dur-instant),transform var(--dur-instant)}.path-node:not(:disabled):active .path-node-circle{transform:translateY(var(--press-depth-node));box-shadow:0 0 0 var(--node-press,var(--border))}.path-node-available .path-node-circle{--node-press:var(--border-strong);background:var(--surface-2);color:var(--text-soft)}.path-node-in_progress .path-node-circle{--node-press:var(--accent-press);color:#fff;background:var(--accent)}.path-node-completed .path-node-circle,.path-node-recommended .path-node-circle{--node-press:var(--primary-press);background:var(--primary);color:var(--on-primary)}.path-node-locked .path-node-circle{--node-press:var(--border);background:var(--surface-2);color:var(--text-muted)}.path-node-mastery{letter-spacing:.02em;color:var(--primary-press);background:var(--primary-tint);padding:.1rem .55rem;border-radius:var(--radius-pill)}.path-node-flag,.path-node-mastery{font-size:var(--text-xs);font-weight:800}.path-node-flag{color:var(--accent-ink);text-transform:uppercase;letter-spacing:.06em}@keyframes pulse-ring{0%,to{box-shadow:0 0 0 6px rgba(108,92,231,.18)}50%{box-shadow:0 0 0 10px rgba(108,92,231,.08)}}.choice-card{display:flex;align-items:center;gap:1rem;background:var(--surface);border:2px solid var(--border);border-radius:var(--radius-md);padding:1rem 1.15rem;cursor:pointer;text-align:left;transition:border-color var(--dur-fast),box-shadow var(--dur-fast),transform var(--dur-fast)}.choice-card:hover{border-color:var(--primary-ink);box-shadow:var(--shadow-subtle);transform:translateY(-1px)}.choice-card-active{border-color:var(--primary-ink);box-shadow:0 0 0 3px rgba(108,92,231,.15)}.choice-card-course{border-color:var(--primary-ink);background:linear-gradient(180deg,var(--primary-tint),var(--surface))}.choice-card-course .choice-icon{background:var(--primary);color:#fff}.choice-icon{width:44px;height:44px;border-radius:12px;background:var(--primary-tint);color:var(--primary-ink);display:flex;align-items:center;justify-content:center;flex-shrink:0}.choice-body{flex:1 1;min-width:0;display:flex;flex-direction:column;gap:.2rem}.choice-name{font-weight:800;color:var(--text)}.choice-meta{font-size:var(--text-xs);color:var(--text-muted)}.choice-action{font-weight:800;font-size:var(--text-sm);color:var(--primary-ink);white-space:nowrap}.league-banner{gap:.9rem;border:2px solid var(--border);border-radius:var(--radius-md);padding:1rem 1.15rem;margin-bottom:1rem;background:var(--surface)}.league-banner,.league-icon{display:flex;align-items:center}.league-icon{width:44px;height:44px;border-radius:var(--radius-pill);justify-content:center;color:#fff;background:#a0764a;flex-shrink:0}.league-silver .league-icon{background:#8e9bab}.league-gold .league-icon{background:#d4a017}.league-platinum .league-icon{background:#5fb6b0}.league-diamond .league-icon{background:#4f6ef7}.league-body{flex:1 1;display:flex;flex-direction:column;gap:.35rem;min-width:0}.league-title{font-weight:700;font-size:var(--text-md);text-transform:capitalize}.league-track{background:var(--surface-2);height:8px;overflow:hidden}.league-bar,.league-track{border-radius:var(--radius-pill)}.league-bar{height:100%;background:linear-gradient(90deg,var(--primary),#6c5ce7);width:100%;transform-origin:left center;transform:scaleX(var(--fill,0));transition:transform var(--dur-slow) var(--ease-out)}.league-meta{font-size:var(--text-xs);color:var(--text-soft)}.achievement-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(96px,1fr));grid-gap:.6rem;gap:.6rem}.achievement-badge{display:flex;flex-direction:column;align-items:center;gap:.3rem;border:1px solid var(--border);border-radius:var(--radius-md);padding:.7rem .5rem;text-align:center;background:var(--surface);opacity:.75;transition:opacity var(--dur-fast),border-color var(--dur-fast),transform var(--dur-fast)}.achievement-badge:hover{transform:translateY(-1px)}.achievement-badge.achievement-unlocked{opacity:1;border-color:var(--primary-ink);box-shadow:0 0 0 2px rgba(108,92,231,.12)}.achievement-icon{display:flex;align-items:center;justify-content:center;width:34px;height:34px;border-radius:var(--radius-pill);background:var(--surface-2);color:var(--text-soft)}.achievement-unlocked .achievement-icon{background:var(--primary-tint);color:var(--primary-ink)}.achievement-title{font-size:var(--text-xs);font-weight:600;line-height:1.25;color:var(--text)}.achievement-progress{font-size:var(--text-xs);color:var(--text-soft)}.leaderboard-me{background:var(--primary-tint);border:1px solid var(--primary-soft);border-radius:var(--radius-md);padding:.85rem 1.1rem;font-size:var(--text-sm);color:var(--text);margin-bottom:1rem}.leaderboard-list{display:flex;flex-direction:column;gap:.5rem}.leaderboard-row{display:flex;align-items:center;gap:.8rem;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-md);padding:.75rem 1rem}.leaderboard-row-me{border-color:var(--primary-ink);box-shadow:0 0 0 3px rgba(108,92,231,.12)}.leaderboard-rank{width:34px;height:34px;border-radius:50%;background:var(--surface-2);color:var(--text);font-weight:800;font-size:var(--text-sm);display:flex;align-items:center;justify-content:center;flex-shrink:0}.leaderboard-rank-top{background:var(--warning-bg);font-size:1.1rem}.leaderboard-email{flex:1 1;font-weight:700;color:var(--text);min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.leaderboard-lessons{font-size:var(--text-xs);color:var(--text-muted)}.leaderboard-xp{font-weight:800;color:var(--reward-ink);white-space:nowrap}.quest-card{display:flex;align-items:center;gap:.9rem;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-md);padding:1rem 1.1rem}.quest-card-done{border-color:var(--primary-ink);background:var(--success-bg)}.quest-icon{width:40px;height:40px;border-radius:12px;background:var(--warning-bg);color:var(--reward-ink);display:flex;align-items:center;justify-content:center;flex-shrink:0}.quest-icon-done{background:var(--success);color:#fff}.quest-body{flex:1 1;min-width:0;display:flex;flex-direction:column;gap:.35rem}.quest-title{font-weight:800;color:var(--text);font-size:var(--text-sm)}.quest-desc{font-size:var(--text-xs);color:var(--text-muted)}.quest-track{height:8px;border-radius:4px;background:var(--surface-2);overflow:hidden}.quest-bar{height:100%;border-radius:4px;background:var(--gradient-primary);width:100%;transform-origin:left center;transform:scaleX(var(--fill,0));transition:transform var(--dur-normal)}.quest-card-done .quest-bar{background:var(--success)}.quest-progress{font-size:var(--text-xs);font-weight:700;color:var(--text-soft)}.quest-reward{font-weight:800;font-size:var(--text-sm);color:var(--reward-ink);white-space:nowrap}.lesson-session-head{margin-bottom:1rem}.lesson-session-meta{display:flex;justify-content:space-between;align-items:center;gap:.75rem;margin-bottom:.6rem}.lesson-session-back{font-size:var(--text-xs);font-weight:700;color:var(--text-muted);cursor:pointer}.lesson-session-back:hover,.lesson-session-concept{color:var(--primary-ink)}.lesson-session-concept{font-size:var(--text-xs);font-weight:800;display:inline-flex;align-items:center;gap:.35rem;background:var(--primary-tint);padding:.25rem .7rem;border-radius:var(--radius-pill)}.lesson-session-count{font-size:var(--text-xs);font-weight:700;color:var(--text-muted);margin-bottom:.3rem;display:block;text-align:right}.lesson-progress-track{height:10px;border-radius:5px}.question-badge-row{display:flex;justify-content:flex-end;margin-bottom:.5rem}.option-correct{border-color:var(--primary-ink)!important;background:var(--success-bg)!important;box-shadow:0 0 0 3px rgba(46,204,113,.15)!important}.option-incorrect{border-color:var(--danger-ink)!important;background:var(--danger-bg)!important;box-shadow:0 0 0 3px rgba(231,76,60,.12)!important}.option-dimmed{opacity:.45}.option-correct .option-number{background:var(--success);color:#fff}.option-incorrect .option-number{background:var(--danger);color:#fff}.complete-stats{width:100%;display:grid;grid-template-columns:repeat(3,1fr);grid-gap:.75rem;gap:.75rem}.complete-stat{background:var(--background-color);border:2px solid var(--border-color);border-radius:12px;padding:.9rem .5rem}.complete-stat-value{font-size:var(--text-md);font-weight:800;color:var(--primary-color)}.complete-stat-xp{color:var(--success-color)}.complete-stat-label{font-size:.75rem;color:var(--text-light);margin-top:.15rem}.complete-mastery{width:100%;text-align:left}.complete-mastery-name{font-weight:800;font-size:var(--text-sm);margin-bottom:.4rem}.complete-next{width:100%;text-align:left;background:var(--primary-tint);border:1px solid var(--primary-soft);border-radius:var(--radius-md);padding:.9rem 1.1rem}.complete-next-label{font-size:var(--text-xs);font-weight:800;color:var(--primary-ink);text-transform:uppercase;letter-spacing:.05em;display:flex;align-items:center;gap:.35rem}.complete-next-name{font-weight:800;font-size:var(--text-md);color:var(--text);margin-top:.25rem}.complete-next-reason{font-size:var(--text-xs);color:var(--text-muted);margin-top:.2rem}.complete-actions{width:100%;display:flex;gap:.7rem;flex-wrap:wrap}.continue-card{display:flex;align-items:center;gap:.6rem;width:100%;background:var(--gradient-primary);border:none;border-radius:var(--radius-md);padding:.7rem .8rem;color:#fff;cursor:pointer;text-align:left;margin:.25rem 0 .5rem;transition:transform var(--dur-fast),box-shadow var(--dur-fast)}.continue-card:hover{transform:translateY(-1px);box-shadow:var(--shadow-elevated)}.continue-card-icon{width:30px;height:30px;border-radius:50%;background:hsla(0,0%,100%,.22);display:flex;align-items:center;justify-content:center;flex-shrink:0}.continue-card-body{min-width:0;display:flex;flex-direction:column}.continue-card-label{font-size:.65rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em;opacity:.85}.continue-card-value{font-size:var(--text-xs);font-weight:800;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.stats-badge-xp{color:var(--reward-ink)!important;font-weight:800}@media (max-width:560px){.complete-stats{grid-template-columns:1fr}.path-node-circle{width:54px;height:54px}}.ordering-grid{display:flex;flex-direction:column;gap:.6rem;align-items:stretch}.ordering-option{width:100%;justify-content:flex-start}.ordering-clear{align-self:flex-end;display:inline-flex;align-items:center;gap:.35rem;margin-top:.4rem;padding:.4rem .8rem;border:1px solid var(--border);border-radius:var(--radius-md);background:transparent;color:var(--text-soft);font-size:var(--text-sm);font-weight:600;cursor:pointer}.ordering-clear:hover{background:var(--bg);color:var(--text)}.matching-grid{display:flex;flex-direction:column;gap:.7rem}.matching-row{gap:.75rem;padding:.7rem .9rem;border:1px solid var(--border);border-radius:var(--radius-md);background:var(--surface);transition:border-color var(--motion-fast),background var(--motion-fast)}.matching-left,.matching-row{display:flex;align-items:center}.matching-left{flex:1 1;gap:.5rem;font-weight:600;font-size:var(--text-sm)}.matching-select{max-width:55%;padding:.5rem .7rem;border:1px solid var(--border);border-radius:var(--radius-md);background:var(--surface);color:var(--text);font-size:var(--text-sm);font-weight:500}.matching-select:focus{outline:2px solid var(--primary);outline-offset:1px}.matching-correct{border-color:var(--primary-ink);background:color-mix(in srgb,var(--success) 8%,var(--surface))}.matching-incorrect{border-color:var(--danger-ink);background:color-mix(in srgb,var(--danger) 8%,var(--surface))}.matching-dimmed{opacity:.6}.matching-correct .matching-left,.matching-incorrect .matching-left{color:var(--text)}.kg-head{display:flex;flex-direction:column;gap:.5rem;margin-bottom:1rem}.kg-back{display:inline-flex;align-items:center;gap:.35rem;padding:.4rem .8rem;border:1px solid var(--border);border-radius:var(--radius-md);background:var(--surface);color:var(--text-soft);font-size:var(--text-sm);font-weight:600;cursor:pointer;transition:background var(--motion-fast),color var(--motion-fast)}.kg-back:hover{background:var(--bg);color:var(--text)}.kg-sub{font-size:var(--text-sm);color:var(--text-soft);margin:0}.kg-card{padding:1.25rem;overflow-x:auto}.kg-svg{width:100%;min-width:560px;height:auto;display:block}.kg-edge{stroke:var(--border-strong);stroke-width:2;opacity:.85}.kg-edge-arrow{fill:var(--border-strong)}.kg-node{stroke:var(--surface);stroke-width:3;transition:r .15s ease}.kg-node-mastered{fill:color-mix(in srgb,var(--success) 22%,var(--surface));stroke:var(--success)}.kg-node-learning{fill:color-mix(in srgb,#facc15 25%,var(--surface));stroke:#eab308}.kg-node-new{fill:color-mix(in srgb,var(--primary) 16%,var(--surface));stroke:var(--primary)}.kg-node-locked{fill:var(--bg);stroke:var(--border-strong);stroke-dasharray:4 3}.kg-node-clickable{cursor:pointer}.kg-node-clickable:hover .kg-node{filter:brightness(1.08)}.kg-node-clickable:hover .kg-node-learning,.kg-node-clickable:hover .kg-node-new{stroke-width:4}.kg-node-recommended-ring{fill:none;stroke:var(--primary);stroke-width:2;opacity:.55;animation:kg-pulse 1.6s ease-in-out infinite}@keyframes kg-pulse{0%,to{opacity:.3;r:24}50%{opacity:.7}}.kg-node-letter{font-size:14px;font-weight:700}.kg-node-letter,.kg-node-name{fill:var(--text);pointer-events:none}.kg-node-name{font-size:12px;font-weight:600}.kg-node-pct{font-size:10.5px;fill:var(--text-soft);pointer-events:none}.kg-legend{display:flex;flex-wrap:wrap;gap:.9rem;justify-content:center;margin-top:1rem;padding-top:1rem;border-top:1px solid var(--border);font-size:var(--text-sm);color:var(--text-soft)}.kg-legend-item{display:inline-flex;align-items:center;gap:.4rem}.kg-dot{width:12px;height:12px;border-radius:50%;border:2px solid;display:inline-block}.kg-dot-mastered{background:color-mix(in srgb,var(--success) 22%,var(--surface));border-color:var(--primary-ink)}.kg-dot-learning{background:color-mix(in srgb,#facc15 25%,var(--surface));border-color:#eab308}.kg-dot-new{background:color-mix(in srgb,var(--primary) 16%,var(--surface));border-color:var(--primary-ink)}.kg-dot-locked{background:var(--bg);border-color:var(--border-strong);border-style:dashed}.celebrate{position:fixed;inset:0;pointer-events:none;z-index:60;overflow:hidden}.confetti{position:absolute;top:-12px;width:9px;height:15px;border-radius:2px;opacity:0;animation-name:confetti-fall;animation-timing-function:ease-in;animation-iteration-count:1;animation-fill-mode:forwards}@keyframes confetti-fall{0%{transform:translateY(-20px) rotate(0deg);opacity:1}to{transform:translateY(110vh) rotate(540deg);opacity:.7}}.xp-float{position:absolute;top:26%;left:50%;transform:translateX(-50%);font-size:2rem;font-weight:800;color:var(--primary-ink);text-shadow:0 2px 0 rgba(0,0,0,.12);animation:xp-float-up 2.2s ease-out forwards}@keyframes xp-float-up{0%{opacity:0;transform:translate(-50%,24px) scale(.8)}25%{opacity:1;transform:translate(-50%) scale(1.15)}70%{opacity:1}to{opacity:0;transform:translate(-50%,-70px) scale(1)}}.shell-authed{background:radial-gradient(1000px 520px at -12% -8%,rgba(108,92,231,.06),transparent 60%),radial-gradient(900px 460px at 112% 4%,rgba(96,165,250,.055),transparent 55%),radial-gradient(700px 380px at 50% 115%,rgba(24,154,91,.035),transparent 60%),var(--bg)}.path-node{animation:node-in .45s var(--ease-out) backwards}@keyframes node-in{0%{opacity:0;transform:translateY(12px) scale(.88)}to{opacity:1;transform:translateY(0) scale(1)}}.path-node-name{max-width:148px;font-size:var(--text-sm);font-weight:700;color:var(--text-soft);text-align:center;line-height:1.25;transition:color var(--dur-fast)}.path-node:not(:disabled):hover .path-node-name{color:var(--text)}.path-node-mastered .path-node-circle{--node-press:var(--reward-press);border-color:#f59e0b;background:linear-gradient(135deg,#f59e0b,#fbbf24);color:#fff;box-shadow:0 4px 14px rgba(245,158,11,.35)}.path-node-mastery-gold{background:#fef3c7!important;color:#b45309!important}.path-node-review .path-node-circle{--node-press:var(--accent-press);border-color:#2563eb;background:#3b82f6;color:#fff;box-shadow:0 4px 14px rgba(59,130,246,.3)}.path-node-challenge .path-node-circle{--node-press:var(--reward-press);border-style:dashed;border-color:var(--primary-soft);background:var(--primary-tint);color:var(--primary-ink)}.path-node-current .path-node-circle{box-shadow:0 0 0 5px rgba(108,92,231,.22),0 6px 18px rgba(108,92,231,.35)!important;transform:scale(1.12)}.path-node-current .path-node-name{color:var(--primary-ink);font-weight:800}.xp-pop-in{display:inline-block;animation:xp-pop .45s var(--ease-out)}@keyframes xp-pop{0%{transform:scale(1)}40%{transform:scale(1.28)}to{transform:scale(1)}}.learn-continue-glow{animation:continue-glow 2.4s ease-in-out infinite}@keyframes continue-glow{0%,to{box-shadow:0 0 0 0 hsla(0,0%,100%,.45)}50%{box-shadow:0 0 0 8px hsla(0,0%,100%,0)}}.app-booting{min-height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1rem;background:var(--bg)}.brand-mark-lg{width:56px;height:56px;font-size:1.4rem}.app-booting-dots{display:flex;gap:6px}.app-booting-dots i{width:8px;height:8px;border-radius:50%;background:var(--primary-soft);animation:boot-dot 1.2s ease-in-out infinite}.app-booting-dots i:nth-child(2){animation-delay:.15s}.app-booting-dots i:nth-child(3){animation-delay:.3s}@keyframes boot-dot{0%,to{opacity:.3;transform:translateY(0)}50%{opacity:1;transform:translateY(-4px)}}@media (prefers-reduced-motion:reduce){*,:after,:before{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.path-section{display:flex;flex-direction:column;gap:var(--space-5)}.path-section-head{display:flex;align-items:baseline;flex-wrap:wrap;gap:.5rem;padding:.9rem 1.2rem;border-radius:var(--radius-lg);background:var(--primary);color:var(--on-primary);box-shadow:0 var(--press-depth) 0 var(--primary-press)}.path-section-label{font-size:var(--text-sm);font-weight:800;letter-spacing:.06em;text-transform:uppercase;opacity:.9}.path-section-label:after{content:" ·"}.path-section-title{font-size:var(--text-lg);font-weight:800;line-height:1.2;overflow-wrap:anywhere}.app-h1-voice,h1,h2,h3{font-weight:800;letter-spacing:-.02em;text-wrap:balance}h1{font-weight:900}li,p{max-width:var(--measure)}.path-node-mastery,.stat-value,[class*=-count],[class*=-xp]{font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.path-node-busy .path-node-circle{background:var(--accent);color:var(--on-primary);--node-press:var(--accent-press)}.path-node:disabled .path-node-name{opacity:.65}.auth-legal{margin-top:var(--space-5);text-align:center;font-size:var(--text-xs);line-height:1.6;color:var(--text-muted)}.auth-legal a{color:var(--accent-ink);font-weight:700;text-decoration:none}.auth-legal a:hover{text-decoration:underline}