:root{--primary-hue:194;--primary:#00b4d8;--primary-light:#90e0ef;--primary-dark:#0077b6;--primary-rgb:0, 180, 216;--primary-text:#006d91;--on-primary:#07111f;--on-primary-muted:color-mix(in srgb, var(--on-primary) 82%, transparent);--accent-subtle:rgba(var(--primary-rgb), .06);--accent-soft:rgba(var(--primary-rgb), .11);--accent-medium:rgba(var(--primary-rgb), .2);--accent-border:rgba(var(--primary-rgb), .3);--bg:#f7fafe;--bg-alt:#eff6fc;--surface:#fff;--surface-2:#f1f6fb;--surface-3:#e7f1f9;--surface-raised:var(--surface);--surface-sunken:var(--bg-alt);--surface-glass:#f7fafee0;--surface-hover:color-mix(in srgb, var(--surface) 90%, var(--primary) 10%);--surface-selected:color-mix(in srgb, var(--surface) 84%, var(--primary) 16%);--scrim:#0f172a80;--blueprint-grid:rgba(var(--primary-rgb), .035);--blueprint-major:rgba(var(--primary-rgb), .055);--page-background:radial-gradient(circle at 84% -12%, rgba(var(--primary-rgb), .105), transparent 34rem), linear-gradient(var(--blueprint-grid) 1px, transparent 1px), linear-gradient(90deg, var(--blueprint-grid) 1px, transparent 1px), var(--bg);--page-background-size:auto, 32px 32px, 32px 32px, auto;--text:#122033;--text-secondary:#526176;--text-muted:#718096;--text-inverse:#fff;--success:#10b981;--success-text:#047857;--success-light:#d1fae5;--success-rgb:16, 185, 129;--error:#ef4444;--error-text:#b42318;--error-light:#fee2e2;--error-rgb:239, 68, 68;--warning:#f59e0b;--warning-text:#92400e;--warning-light:#fef3c7;--warning-rgb:245, 158, 11;--info:#3b82f6;--info-text:#1d4ed8;--info-light:#dbeafe;--info-rgb:59, 130, 246;--premium:#7c3aed;--premium-text:#6d28d9;--on-premium:#fff;--premium-light:#7c3aed21;--premium-rgb:124, 58, 237;--border:#dce6f0;--border-strong:#c8d6e5;--shadow-sm:0 1px 2px #1023380f, 0 1px 3px #1023380d;--shadow:0 8px 24px #10233812, 0 2px 6px #1023380a;--shadow-md:0 16px 40px #1023381a, 0 4px 12px #1023380d;--shadow-lg:0 28px 64px #10233824, 0 10px 24px #10233812;--neon-glow:0 0 14px rgba(var(--primary-rgb),.55), 0 0 40px rgba(var(--primary-rgb),.14);--neon-glow-strong:0 0 20px rgba(var(--primary-rgb),.8), 0 0 55px rgba(var(--primary-rgb),.28), 0 0 100px rgba(var(--primary-rgb),.11);--neon-glow-sm:0 0 8px rgba(var(--primary-rgb),.48);--card-shadow:0 8px 26px #1023380e, 0 1px 2px #1023380a;--card-shadow-hover:0 14px 38px rgba(var(--primary-rgb),.16), 0 6px 18px #10233814;--interactive-shadow:0 5px 18px rgba(var(--primary-rgb), .28);--focus-ring:0 0 0 3px rgba(var(--primary-rgb), .24);--focus-ring-error:0 0 0 3px rgba(var(--error-rgb), .18);--radius-sm:8px;--radius:12px;--radius-md:16px;--radius-lg:22px;--radius-xl:28px;--radius-full:9999px;--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:20px;--space-6:24px;--space-8:32px;--space-10:40px;--space-12:48px;--space-16:64px;--space-20:80px;--space-24:96px;--font-heading:"Manrope", "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--font-body:"Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;--font-mono:"JetBrains Mono", "Fira Code", Consolas, monospace;--text-xs:.75rem;--text-sm:.875rem;--text-base:1rem;--text-lg:1.125rem;--text-xl:1.25rem;--text-2xl:1.5rem;--text-3xl:1.875rem;--text-4xl:2.25rem;--text-5xl:3rem;--leading-tight:1.25;--leading-snug:1.375;--leading-normal:1.5;--leading-relaxed:1.625;--font-light:300;--font-normal:400;--font-medium:500;--font-semibold:600;--font-bold:700;--font-extrabold:800;--transition-fast:.15s cubic-bezier(.2,.8,.2,1);--transition:.24s cubic-bezier(.2,.8,.2,1);--transition-slow:.36s cubic-bezier(.2,.8,.2,1);--transition-bounce:.3s cubic-bezier(.34,1.56,.64,1);--sidebar-width:260px;--sidebar-collapsed:72px;--header-height:64px;--container-max:1280px;--content-max:800px;--content-wide:1120px;--content-narrow:680px;--control-height:44px;--control-height-sm:36px;--page-gutter:clamp(16px, 2.2vw, 32px);--section-gap:clamp(28px, 4vw, 56px);--z-below:-1;--z-base:0;--z-raised:10;--z-dropdown:100;--z-sticky:200;--z-mobile-chrome:250;--z-overlay:300;--z-modal:400;--z-toast:500;--z-tooltip:600}:root[data-theme=dark]{--bg:#0a0f1c;--bg-alt:#0d1422;--surface:#131a2b;--surface-2:#1a2236;--surface-3:#232d47;--surface-glass:#0a0f1ce6;--surface-hover:color-mix(in srgb, var(--surface) 88%, var(--primary) 12%);--surface-selected:color-mix(in srgb, var(--surface) 80%, var(--primary) 20%);--scrim:#000000ad;--blueprint-grid:rgba(var(--primary-rgb), .025);--blueprint-major:rgba(var(--primary-rgb), .05);--page-background:radial-gradient(circle at 82% -10%, rgba(var(--primary-rgb), .13), transparent 36rem), linear-gradient(var(--blueprint-grid) 1px, transparent 1px), linear-gradient(90deg, var(--blueprint-grid) 1px, transparent 1px), var(--bg);--exam-header-bg:#0d1422eb;--text:#e6edfa;--text-secondary:#aab6cd;--text-muted:#8290ac;--text-inverse:#0a0f1c;--primary-text:#74dcfb;--success-light:#10b9811f;--success-text:#6ee7b7;--error-light:#ef44441f;--error-text:#fca5a5;--warning-light:#f59e0b1f;--warning-text:#fcd34d;--info-light:#3b82f61f;--info-text:#93c5fd;--premium-text:#c4b5fd;--border:#232d47;--border-strong:#2e3a58;--shadow-sm:0 1px 3px #00000073;--shadow:0 4px 10px #00000080;--shadow-md:0 10px 25px #0009;--shadow-lg:0 20px 40px #000000b3;--card-shadow:0 2px 14px rgba(var(--primary-rgb),.16), 0 1px 3px #0000004d;--card-shadow-hover:0 8px 36px rgba(var(--primary-rgb),.35), 0 4px 12px #0006;--neon-glow:0 0 14px rgba(var(--primary-rgb),.68), 0 0 40px rgba(var(--primary-rgb),.2);--neon-glow-strong:0 0 22px rgba(var(--primary-rgb),.85), 0 0 55px rgba(var(--primary-rgb),.35), 0 0 100px rgba(var(--primary-rgb),.14);--neon-glow-sm:0 0 10px rgba(var(--primary-rgb),.6);--interactive-shadow:0 5px 20px rgba(var(--primary-rgb), .25);--focus-ring:0 0 0 3px rgba(var(--primary-rgb), .34);--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}:root[data-neon="0"]{--neon-glow:none;--neon-glow-strong:none;--neon-glow-sm:none;--card-shadow:var(--shadow-sm);--card-shadow-hover:var(--shadow-md);--interactive-shadow:var(--shadow-sm)}@media (width<=480px){:root{--bp:"xs"}}@media (width<=768px){:root{--bp:"sm"}}@media (width<=1024px){:root{--bp:"md"}}@media (width>=1025px){:root{--bp:"lg"}}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth;scroll-padding-top:calc(var(--header-height) + var(--space-4));-webkit-text-size-adjust:100%;tab-size:2;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;background:var(--bg)}body{font-family:var(--font-body);font-size:var(--text-base);line-height:var(--leading-normal);color:var(--text);background:var(--page-background);background-size:var(--page-background-size);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background-attachment:fixed;min-height:100vh}img,picture,video,canvas,svg{max-width:100%;display:block}input,button,textarea,select{font:inherit;color:inherit}button,[role=button]{cursor:pointer}button,a,[role=button]{touch-action:manipulation}button:disabled,[role=button][aria-disabled=true]{cursor:not-allowed}p,h1,h2,h3,h4,h5,h6{overflow-wrap:break-word}#app{min-height:100vh}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:var(--surface-2);border-radius:var(--radius-full)}::-webkit-scrollbar-thumb{background:var(--primary-light);border-radius:var(--radius-full);transition:background var(--transition)}::-webkit-scrollbar-thumb:hover{background:var(--primary)}*{scrollbar-width:thin;scrollbar-color:var(--primary-light) var(--surface-2)}::selection{background-color:rgba(var(--primary-rgb), .2);color:var(--primary-dark)}h1,h2,h3,h4,h5,h6{font-family:var(--font-heading);font-weight:var(--font-bold);line-height:var(--leading-tight);color:var(--text);text-wrap:balance;letter-spacing:-.025em}:where(h1,h2,h3,h4,h5,h6,section)[id]{scroll-margin-top:calc(var(--header-height) + var(--space-4))}h1{font-size:var(--text-4xl)}h2{font-size:var(--text-3xl)}h3{font-size:var(--text-2xl)}h4{font-size:var(--text-xl)}h5{font-size:var(--text-lg)}h6{font-size:var(--text-base);font-weight:var(--font-semibold)}@media (width<=768px){h1{font-size:var(--text-3xl)}h2{font-size:var(--text-2xl)}h3{font-size:var(--text-xl)}}p{line-height:var(--leading-relaxed);color:var(--text-secondary);text-wrap:pretty}a{color:var(--primary);transition:color var(--transition-fast);text-decoration:none}a:hover{color:var(--primary-dark);text-decoration:underline}a:focus-visible{outline:2px solid var(--primary);outline-offset:2px;border-radius:var(--radius-sm)}ul,ol{list-style:none}strong,b{font-weight:var(--font-semibold)}em,i{font-style:italic}code,kbd,samp,pre{font-family:var(--font-mono);font-size:.9em}code{background:var(--surface-2);border-radius:var(--radius-sm);color:var(--primary-dark);padding:2px 6px}pre{background:var(--text);color:var(--text-inverse);padding:var(--space-4);border-radius:var(--radius);overflow-x:auto}pre code{color:inherit;background:0 0;padding:0}hr{border:none;border-top:1px solid var(--border);margin:var(--space-6) 0}:focus-visible{outline:2px solid var(--primary);outline-offset:3px;border-radius:var(--radius-sm)}.skip-link{top:var(--space-3);left:var(--space-3);z-index:calc(var(--z-tooltip) + 1);min-height:var(--control-height);padding:0 var(--space-4);border:1px solid var(--accent-border);border-radius:var(--radius);background:var(--surface-raised);color:var(--primary-text);box-shadow:var(--shadow-md), var(--focus-ring);font-weight:var(--font-semibold);transform:translateY(calc(-100% - var(--space-5)));transition:transform var(--transition-fast);align-items:center;display:inline-flex;position:fixed}.skip-link:focus{text-decoration:none;transform:translateY(0)}.container{width:100%;max-width:var(--container-max);padding-left:var(--page-gutter);padding-right:var(--page-gutter);margin-left:auto;margin-right:auto}@media (width<=768px){.container{padding-left:var(--space-4);padding-right:var(--space-4)}}.hidden{display:none!important}.invisible{visibility:hidden}.sr-only{clip:rect(0,0,0,0);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.flex{display:flex}.flex-col{flex-direction:column;display:flex}.flex-center{justify-content:center;align-items:center;display:flex}.flex-between{justify-content:space-between;align-items:center;display:flex}.flex-start{justify-content:flex-start;align-items:center;display:flex}.flex-end{justify-content:flex-end;align-items:center;display:flex}.flex-wrap{flex-wrap:wrap}.flex-1{flex:1}.items-center{align-items:center}.items-start{align-items:flex-start}.items-end{align-items:flex-end}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.gap-1{gap:var(--space-1)}.gap-2{gap:var(--space-2)}.gap-3{gap:var(--space-3)}.gap-4{gap:var(--space-4)}.gap-6{gap:var(--space-6)}.gap-8{gap:var(--space-8)}.grid{display:grid}.grid-2{gap:var(--space-6);grid-template-columns:repeat(2,1fr);display:grid}.grid-3{gap:var(--space-6);grid-template-columns:repeat(3,1fr);display:grid}.grid-4{gap:var(--space-6);grid-template-columns:repeat(4,1fr);display:grid}@media (width<=1024px){.grid-4,.grid-3{grid-template-columns:repeat(2,1fr)}}@media (width<=768px){.grid-4,.grid-3,.grid-2{grid-template-columns:1fr}}.text-center{text-align:center}.text-left{text-align:left}.text-right{text-align:right}.text-xs{font-size:var(--text-xs)}.text-sm{font-size:var(--text-sm)}.text-base{font-size:var(--text-base)}.text-lg{font-size:var(--text-lg)}.text-xl{font-size:var(--text-xl)}.text-2xl{font-size:var(--text-2xl)}.text-primary{color:var(--primary)}.text-secondary{color:var(--text-secondary)}.text-muted{color:var(--text-muted)}.text-success{color:var(--success)}.text-error{color:var(--error)}.text-warning{color:var(--warning)}.font-medium{font-weight:var(--font-medium)}.font-semibold{font-weight:var(--font-semibold)}.font-bold{font-weight:var(--font-bold)}.mt-auto{margin-top:auto}.mb-auto{margin-bottom:auto}.mx-auto{margin-left:auto;margin-right:auto}.p-4{padding:var(--space-4)}.p-6{padding:var(--space-6)}.p-8{padding:var(--space-8)}.px-4{padding-left:var(--space-4);padding-right:var(--space-4)}.py-4{padding-top:var(--space-4);padding-bottom:var(--space-4)}.mt-4{margin-top:var(--space-4)}.mt-6{margin-top:var(--space-6)}.mt-8{margin-top:var(--space-8)}.mb-4{margin-bottom:var(--space-4)}.mb-6{margin-bottom:var(--space-6)}.w-full{width:100%}.h-full{height:100%}.min-h-screen{min-height:100dvh}.surface{background:var(--surface)}.rounded{border-radius:var(--radius)}.rounded-full{border-radius:var(--radius-full)}.overflow-hidden{overflow:hidden}.truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.relative{position:relative}.absolute{position:absolute}.fixed{position:fixed}.sticky{position:sticky}.cursor-pointer{cursor:pointer}.empty-state{justify-content:center;align-items:center;gap:var(--space-4);padding:var(--space-16) var(--space-6);text-align:center;flex-direction:column;display:flex}.empty-state,.fl-state-block{border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--card-shadow)}.empty-state__icon{border-radius:var(--radius-full);background:var(--surface-2);justify-content:center;align-items:center;width:64px;height:64px;font-size:28px;display:flex}.empty-state__title{font-family:var(--font-heading);font-size:var(--text-xl);font-weight:var(--font-semibold);color:var(--text)}.empty-state__description{font-size:var(--text-sm);color:var(--text-secondary);max-width:320px}.section{padding:var(--space-16) 0}@media (width<=768px){.section{padding:var(--space-10) 0}}.section__header{text-align:center;margin-bottom:var(--space-12)}.section__title{font-size:var(--text-3xl);font-weight:var(--font-bold);color:var(--text);margin-bottom:var(--space-3)}.section__subtitle{font-size:var(--text-lg);color:var(--text-secondary);max-width:560px;margin:0 auto}.page-header{margin-bottom:clamp(var(--space-6), 3vw, var(--space-10))}.page-title{font-family:var(--font-heading);font-size:var(--text-3xl);font-weight:var(--font-bold);color:var(--text);margin-bottom:var(--space-2)}.page-subtitle{font-size:var(--text-base);color:var(--text-secondary);max-width:68ch}@media (width<=480px){body{background-size:auto,24px 24px,24px 24px,auto}.page-title{font-size:clamp(1.65rem,8vw,2rem)}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}.app-shell{background:var(--page-background);background-size:var(--page-background-size);background-attachment:fixed;min-height:100dvh;display:flex}.sidebar{width:var(--sidebar-width);background:color-mix(in srgb, var(--surface-raised) 96%, var(--primary) 4%);border-right:1px solid var(--border);height:100dvh;z-index:var(--z-sticky);transition:transform var(--transition), width var(--transition);flex-direction:column;display:flex;position:fixed;top:0;left:0;overflow:hidden}.sidebar--collapsed{width:var(--sidebar-collapsed)}.sidebar__logo{align-items:center;gap:var(--space-3);padding:var(--space-5) var(--space-5);border-bottom:1px solid var(--border);min-height:var(--header-height);text-decoration:none;display:flex}.sidebar__logo-icon{border-radius:var(--radius);background:var(--primary);width:36px;height:36px;box-shadow:var(--neon-glow-sm);color:var(--on-primary);flex-shrink:0;justify-content:center;align-items:center;font-size:18px;display:flex}.sidebar__logo-text{transition:opacity var(--transition), width var(--transition);flex-direction:column;display:flex;overflow:hidden}.sidebar__logo-title{font-family:var(--font-heading);font-size:var(--text-sm);font-weight:var(--font-bold);color:var(--text);white-space:nowrap;line-height:1.2}.sidebar__logo-subtitle{font-size:var(--text-xs);color:var(--text-muted);white-space:nowrap}.sidebar--collapsed .sidebar__logo-text{opacity:0;pointer-events:none;width:0}.sidebar__nav{padding:var(--space-4) var(--space-3);flex:1;overflow:hidden auto}.sidebar__nav-section{margin-bottom:var(--space-6)}.sidebar__nav-label{font-size:var(--text-xs);font-weight:var(--font-semibold);color:var(--text-muted);text-transform:uppercase;letter-spacing:.08em;padding:0 var(--space-3);margin-bottom:var(--space-2);white-space:nowrap;transition:opacity var(--transition);overflow:hidden}.sidebar--collapsed .sidebar__nav-label{opacity:0}.sidebar__nav-link{align-items:center;gap:var(--space-3);padding:var(--space-3) var(--space-3);min-height:var(--control-height);border-radius:var(--radius);color:var(--text-secondary);font-size:var(--text-sm);font-weight:var(--font-medium);white-space:nowrap;transition:background-color var(--transition-fast), color var(--transition-fast), box-shadow var(--transition-fast);text-decoration:none;display:flex;position:relative;overflow:hidden}.sidebar__nav-link:hover{background:var(--surface-hover);color:var(--primary);text-decoration:none}.sidebar__nav-link.active{background:var(--surface-selected);color:var(--primary-text);font-weight:var(--font-semibold)}.sidebar__nav-link.active:before{content:"";background:var(--primary);border-radius:0 var(--radius-full) var(--radius-full) 0;width:3px;box-shadow:var(--neon-glow-sm);position:absolute;top:20%;bottom:20%;left:0}.sidebar__nav-icon{flex-shrink:0;justify-content:center;align-items:center;width:20px;height:20px;font-size:18px;display:flex}.sidebar__nav-text{transition:opacity var(--transition), width var(--transition);overflow:hidden}.sidebar--collapsed .sidebar__nav-text{opacity:0;width:0}.sidebar__nav-badge{background:var(--primary);color:var(--on-primary);font-size:10px;font-weight:var(--font-bold);border-radius:var(--radius-full);transition:opacity var(--transition);flex-shrink:0;margin-left:auto;padding:2px 6px}.sidebar--collapsed .sidebar__nav-badge{opacity:0}.sidebar__nav-link--ai{color:var(--primary-text)}.sidebar__nav-link--ai:hover{background:rgba(var(--primary-rgb), .08);color:var(--primary-text)}.sidebar__nav-link--ai.active{background:rgba(var(--primary-rgb), .12)}.sidebar__nav-icon--ai{filter:drop-shadow(0 0 5px rgba(var(--primary-rgb), .55));color:var(--primary)}.sidebar__nav-text--ai{background:linear-gradient(90deg, var(--primary), var(--primary-light));-webkit-text-fill-color:transparent;font-weight:var(--font-semibold);letter-spacing:.02em;-webkit-background-clip:text;background-clip:text}.sidebar--collapsed .sidebar__nav-text--ai{opacity:0;width:0}.sidebar__nav-badge--new{font-size:9px;font-weight:var(--font-bold);border-radius:var(--radius-sm);background:rgba(var(--primary-rgb), .18);color:var(--primary-text);letter-spacing:.04em;transition:opacity var(--transition);flex-shrink:0;margin-left:auto;padding:2px 6px}.sidebar--collapsed .sidebar__nav-badge--new{display:none}.sidebar__footer{border-top:1px solid var(--border);padding:var(--space-2) 0}.sidebar__toggle{width:var(--control-height);height:var(--control-height);border-radius:var(--radius);border:1px solid var(--border);background:var(--surface);color:var(--text-secondary);cursor:pointer;transition:background-color var(--transition-fast), border-color var(--transition-fast), color var(--transition-fast), box-shadow var(--transition-fast);justify-content:center;align-items:center;margin-left:auto;display:flex}.sidebar__toggle:hover{border-color:var(--primary);color:var(--primary);background:rgba(var(--primary-rgb), .06)}.main-wrapper{margin-left:var(--sidebar-width);min-width:0;transition:margin-left var(--transition);flex-direction:column;flex:1;display:flex}.main-wrapper--collapsed{margin-left:var(--sidebar-collapsed)}.app-header{height:var(--header-height);background:var(--surface-glass);-webkit-backdrop-filter:blur(18px)saturate(135%);border-bottom:1px solid var(--border);box-shadow:0 1px 0 rgba(var(--primary-rgb), .04);padding:0 var(--space-6);align-items:center;gap:var(--space-4);z-index:var(--z-sticky);display:flex;position:relative;top:auto}.app-header__left{align-items:center;gap:var(--space-3);flex:1;display:flex}.app-header__hamburger{border-radius:var(--radius);cursor:pointer;width:40px;height:40px;color:var(--text-secondary);transition:background-color var(--transition-fast), color var(--transition-fast), box-shadow var(--transition-fast);background:0 0;border:none;justify-content:center;align-items:center;display:none}.app-header__hamburger:hover{background:var(--surface-2);color:var(--primary)}.app-header__breadcrumb{align-items:center;gap:var(--space-2);font-size:var(--text-sm);color:var(--text-secondary);display:flex}.app-header__breadcrumb-sep{color:var(--border-strong)}.app-header__breadcrumb-current{color:var(--text);font-weight:var(--font-medium)}.app-header__right{align-items:center;gap:var(--space-3);display:flex}.public-header{height:var(--header-height);background:color-mix(in srgb, var(--bg) 92%, transparent);-webkit-backdrop-filter:blur(18px)saturate(135%);border-bottom:1px solid var(--border);z-index:var(--z-sticky);position:sticky;top:0}.public-header__inner{height:100%;max-width:var(--container-max);padding:0 var(--space-6);justify-content:space-between;align-items:center;margin:0 auto;display:flex}.public-header__logo{align-items:center;gap:var(--space-3);text-decoration:none;display:flex}.public-header__logo-icon{border-radius:var(--radius);background:var(--primary);width:36px;height:36px;color:var(--on-primary);box-shadow:var(--neon-glow-sm);justify-content:center;align-items:center;font-size:18px;display:flex}.public-header__logo-title{font-family:var(--font-heading);font-size:var(--text-base);font-weight:var(--font-bold);color:var(--text)}.public-header__nav{align-items:center;gap:var(--space-2);display:flex}.public-header__hamburger{cursor:pointer;padding:var(--space-2);border-radius:var(--radius-sm);background:0 0;border:none;flex-direction:column;gap:5px;display:none}.public-header__hamburger span{background:var(--text);width:24px;height:2px;transition:opacity var(--transition), transform var(--transition);border-radius:2px;display:block}.main-content{padding:clamp(var(--space-6), 3vw, var(--space-10)) var(--page-gutter);flex:1}@media (width<=768px){.main-content{padding:var(--space-6) var(--space-4)}}.page-layout{min-height:100dvh;display:flex}.auth-layout{min-height:100dvh;padding:var(--space-6);background:var(--bg);justify-content:center;align-items:center;display:flex;position:relative;overflow:hidden}.auth-layout:before{content:"";background:radial-gradient(circle, rgba(var(--primary-rgb), .08) 0%, transparent 70%);pointer-events:none;width:600px;height:600px;position:absolute;top:-30%;right:-20%}.auth-layout:after{content:"";background:radial-gradient(circle, rgba(var(--primary-rgb), .05) 0%, transparent 70%);pointer-events:none;width:400px;height:400px;position:absolute;bottom:-20%;left:-10%}:root[data-theme=dark] .auth-layout:before{background:radial-gradient(circle, rgba(var(--primary-rgb), .14) 0%, transparent 70%)}:root[data-theme=dark] .auth-layout:after{background:radial-gradient(circle, rgba(var(--primary-rgb), .09) 0%, transparent 70%)}.auth-box{background:var(--surface);border-radius:var(--radius-lg);width:100%;max-width:440px;padding:var(--space-10) var(--space-8);box-shadow:var(--shadow-lg);border:1px solid var(--border);z-index:1;animation:.4s slideUp;position:relative}@media (width<=480px){.auth-box{padding:var(--space-8) var(--space-6)}.auth-layout{padding:var(--space-4);padding-top:var(--space-10);align-items:flex-start}}.dashboard-stats{gap:var(--space-4);margin-bottom:var(--space-8);grid-template-columns:repeat(4,1fr);display:grid}@media (width<=1024px){.dashboard-stats{grid-template-columns:repeat(2,1fr)}}@media (width<=480px){.dashboard-stats{gap:var(--space-3);grid-template-columns:repeat(2,1fr)}}.dashboard-grid{gap:var(--space-6);grid-template-columns:1fr 340px;display:grid}@media (width<=1100px){.dashboard-grid{grid-template-columns:1fr}}.db-header{justify-content:space-between;align-items:flex-end;gap:var(--space-4);margin-bottom:var(--space-6);flex-wrap:wrap;display:flex}.db-header__date{font-size:var(--text-xs);color:var(--text-muted);text-transform:capitalize;margin-bottom:var(--space-2)}.db-header__title{font-family:var(--font-heading);color:var(--text);margin:0 0 var(--space-2);letter-spacing:-.02em;font-size:1.75rem;font-weight:700;line-height:1.2}.db-header__sub{font-size:var(--text-sm);color:var(--text-secondary);align-items:center;gap:var(--space-3);flex-wrap:wrap;display:flex}.db-header__highlight{color:var(--primary-text);font-weight:700}.db-streak-badge{background:var(--warning-light);color:var(--warning);font-size:var(--text-xs);border-radius:var(--radius-full);align-items:center;gap:4px;padding:3px 10px;font-weight:600;display:inline-flex}.db-header__actions{gap:var(--space-3);flex-wrap:wrap;flex-shrink:0;display:flex}.db-onboarding{margin-bottom:var(--space-6);background:linear-gradient(135deg, rgba(var(--primary-rgb),.05), rgba(var(--primary-rgb),.14))!important;border:1px solid rgba(var(--primary-rgb),.3)!important}.db-onboarding__inner{align-items:center;gap:var(--space-5);flex-wrap:wrap;display:flex}.db-onboarding__emoji{flex-shrink:0;font-size:48px}.db-onboarding__text{flex:1;min-width:200px}.db-onboarding__title{font-family:var(--font-heading);font-size:var(--text-xl);margin:0 0 var(--space-2);font-weight:700}.db-onboarding__desc{color:var(--text-secondary);font-size:var(--text-sm);line-height:var(--leading-relaxed);margin:0}.db-top-row{gap:var(--space-5);margin-bottom:var(--space-5);grid-template-columns:repeat(3,1fr);display:grid}.db-card-label{font-family:var(--font-heading);font-size:var(--text-sm);color:var(--text-secondary);text-transform:uppercase;letter-spacing:.04em;margin-bottom:var(--space-4);font-weight:600}.db-countdown{padding:var(--space-5)}.db-countdown__body{align-items:center;gap:var(--space-5);display:flex}.db-ring{--ring-size:110px;--ring-stroke:10px;--ring-color:var(--primary);--ring-bg:var(--surface-2);width:var(--ring-size);height:var(--ring-size);background:conic-gradient(var(--ring-color) calc(var(--ring-pct,0) * 1%), var(--ring-bg) 0);box-shadow:0 0 0 var(--ring-stroke) var(--surface);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;transition:background .4s;display:flex;position:relative}.db-ring__inner{width:calc(var(--ring-size) - var(--ring-stroke) * 3);height:calc(var(--ring-size) - var(--ring-stroke) * 3);background:var(--surface);text-align:center;border-radius:50%;flex-direction:column;justify-content:center;align-items:center;display:flex}.db-ring__num{font-family:var(--font-heading);color:var(--text);letter-spacing:-.03em;font-size:1.6rem;font-weight:800;line-height:1}.db-ring__sub{color:var(--text-muted);margin-top:2px;font-size:10px}.db-countdown__info{gap:var(--space-1);flex-direction:column;display:flex}.db-countdown__date{font-size:var(--text-sm);color:var(--text);font-weight:600}.db-countdown__caption{font-size:var(--text-xs);color:var(--text-secondary)}.db-countdown__tip{font-size:var(--text-xs);color:var(--primary-text);margin-top:var(--space-2);font-weight:500}.db-progress-card{padding:var(--space-5)}.db-progress-card__stats{gap:var(--space-4);flex-direction:column;display:flex}.db-metric__value{font-family:var(--font-heading);font-size:var(--text-2xl);color:var(--text);letter-spacing:-.02em;font-weight:800;line-height:1}.db-metric__label{font-size:var(--text-xs);color:var(--text-secondary);margin:4px 0 6px}.db-metric__bar{background:var(--surface-2);border-radius:var(--radius-full);height:5px;overflow:hidden}.db-metric__fill{border-radius:var(--radius-full);min-width:2px;height:100%;transition:width .6s cubic-bezier(.25,.46,.45,.94)}.db-weak-card{padding:var(--space-5)}.db-weak-list{gap:var(--space-2);flex-direction:column;display:flex}.db-weak-item{align-items:center;gap:var(--space-3);padding:var(--space-2) var(--space-3);border-radius:var(--radius);background:var(--surface-2);transition:background var(--transition-fast), transform var(--transition-fast);cursor:pointer;text-decoration:none;display:flex}.db-weak-item:hover{background:var(--surface-3);transform:translate(2px)}.db-weak-item__pct{border-radius:var(--radius);width:40px;height:40px;font-size:var(--text-xs);font-weight:700;font-family:var(--font-mono);flex-shrink:0;justify-content:center;align-items:center;display:flex}.db-weak-item__name{font-size:var(--text-sm);color:var(--text);flex:1;line-height:1.35}.db-weak-item__arrow{color:var(--text-muted);font-size:1.2rem}.db-empty-hint{text-align:center;padding:var(--space-6) var(--space-4);font-size:var(--text-sm);color:var(--text-muted);line-height:var(--leading-relaxed)}.db-bottom-row{gap:var(--space-5);grid-template-columns:1fr 300px;display:grid}.db-topics-card{padding:var(--space-5)}.db-topics-list{gap:var(--space-1);margin-top:var(--space-2);flex-direction:column;display:flex}.db-topic-row{align-items:center;gap:var(--space-3);padding:var(--space-3) var(--space-2);border-radius:var(--radius);transition:background var(--transition-fast);text-decoration:none;display:flex}.db-topic-row:hover{background:var(--surface-2)}.db-topic-row__dot{border-radius:50%;flex-shrink:0;width:10px;height:10px}.db-topic-row__info{flex:1;min-width:0}.db-topic-row__name{font-size:var(--text-sm);color:var(--text);white-space:nowrap;text-overflow:ellipsis;margin-bottom:5px;font-weight:500;overflow:hidden}.db-topic-row__bar{background:var(--surface-2);border-radius:var(--radius-full);height:5px;overflow:hidden}.db-topic-row__fill{border-radius:var(--radius-full);min-width:2px;height:100%;transition:width .5s}.db-topic-row__meta{text-align:right;flex-shrink:0}.db-topic-row__count{font-family:var(--font-mono);font-size:var(--text-xs);color:var(--text-muted)}.db-side-col{gap:var(--space-4);flex-direction:column;display:flex}.db-actions-card{padding:var(--space-5)}.db-actions-list{gap:var(--space-2);flex-direction:column;display:flex}.db-action-btn{align-items:center;gap:var(--space-3);padding:var(--space-3) var(--space-4);border-radius:var(--radius);background:var(--surface-2);transition:background var(--transition-fast), border-color var(--transition-fast), transform var(--transition-fast);border:1px solid #0000;text-decoration:none;display:flex}.db-action-btn:hover{background:var(--surface-3);border-color:var(--border);transform:translate(2px)}.db-action-btn--primary{background:rgba(var(--primary-rgb), .08);border-color:rgba(var(--primary-rgb), .2)}.db-action-btn--primary:hover{background:rgba(var(--primary-rgb), .14);border-color:rgba(var(--primary-rgb), .35)}.db-action-btn__icon{text-align:center;flex-shrink:0;width:24px;font-size:1.1rem}.db-action-btn__text{flex:1;min-width:0}.db-action-btn__label{font-size:var(--text-sm);color:var(--text);font-weight:500}.db-action-btn__hint{font-size:var(--text-xs);color:var(--text-muted);margin-top:1px}.db-action-btn__arrow{color:var(--text-muted);flex-shrink:0;font-size:1.2rem}.db-streak-card{padding:var(--space-4) var(--space-5);background:linear-gradient(135deg,#f59e0b0f,#f59e0b05)!important;border-color:#f59e0b33!important}.db-streak-card__header{align-items:center;gap:var(--space-3);margin-bottom:var(--space-4);display:flex}.db-streak-card__icon{font-size:1.6rem}.db-streak-card__days{font-family:var(--font-heading);font-size:var(--text-xl);color:var(--text);font-weight:700;line-height:1}.db-streak-card__sub{font-size:var(--text-xs);color:var(--text-secondary)}.db-streak-dots{gap:var(--space-1);display:flex}.db-streak-dot{text-align:center;flex:1}.db-streak-dot__label{color:var(--text-muted);margin-bottom:4px;font-size:9px}.db-streak-dot__mark{border-radius:var(--radius-sm);background:var(--surface-2);height:26px;color:var(--text-muted);justify-content:center;align-items:center;font-size:10px;display:flex}.db-streak-dot--active .db-streak-dot__mark{background:var(--warning);color:#fff;font-size:11px}@media (width<=1100px){.db-top-row{grid-template-columns:1fr 1fr}.db-weak-card{grid-column:span 2}.db-bottom-row{grid-template-columns:1fr}.db-side-col{flex-flow:wrap}.db-actions-card,.db-streak-card{flex:1;min-width:220px}}@media (width<=768px){.db-header{flex-direction:column;align-items:flex-start}.db-header__title{font-size:1.4rem}.db-top-row{grid-template-columns:1fr}.db-weak-card{grid-column:span 1}.db-bottom-row{grid-template-columns:1fr}.db-side-col{flex-direction:column}.db-countdown__body{gap:var(--space-4)}.db-ring{--ring-size:90px;--ring-stroke:8px}.db-ring__num{font-size:1.3rem}}.topics-grid{gap:var(--space-6);grid-template-columns:repeat(auto-fill,minmax(280px,1fr));display:grid}.sidebar-overlay{z-index:calc(var(--z-sticky) - 1);-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);background:#0006;animation:.2s fadeIn;display:none;position:fixed;inset:0}.sidebar-overlay.visible{display:block}@media (width<=768px){.sidebar{max-width:320px;box-shadow:var(--shadow-lg);z-index:1000;transform:translate(-100%);width:80vw!important}.sidebar.mobile-open{transform:translate(0)}.sidebar--collapsed{max-width:320px;width:80vw!important}.sidebar--collapsed .sidebar__nav-text,.sidebar--collapsed .sidebar__logo-text{opacity:1!important;display:block!important}.sidebar-overlay{z-index:999}.main-wrapper,.main-wrapper--collapsed{margin-left:0}.app-header__hamburger,.public-header__hamburger{display:flex}.public-header__nav{top:var(--header-height);background:var(--surface);border-bottom:1px solid var(--border);padding:var(--space-4);gap:var(--space-2);box-shadow:var(--shadow-md);flex-direction:column;display:none;position:absolute;left:0;right:0}.public-header__nav.open{display:flex}#sidebar-collapse-btn{display:none}}.no-sidebar-layout{flex-direction:column;min-height:100dvh;display:flex}.no-sidebar-layout .main-content{flex:1}.sidebar-tier-badge{letter-spacing:.05em;border-radius:999px;align-items:center;margin-top:2px;margin-bottom:1px;padding:1px 7px;font-size:10px;font-weight:800;line-height:1.6;display:inline-flex}.sidebar-tier-badge--pro{background:var(--primary);color:#fff}.sidebar-tier-badge--premium{background:linear-gradient(135deg, var(--primary), #9333ea);color:#fff}.sidebar-tier-badge--max{background:var(--premium);color:var(--on-premium);box-shadow:0 0 12px color-mix(in srgb, var(--premium) 28%, transparent)}.btn{justify-content:center;align-items:center;gap:var(--space-2);min-height:var(--control-height);border-radius:var(--radius);font-family:var(--font-heading);font-size:var(--text-sm);font-weight:var(--font-semibold);cursor:pointer;white-space:nowrap;transition:background-color var(--transition-fast), border-color var(--transition-fast), color var(--transition-fast), box-shadow var(--transition-fast), transform var(--transition-fast);-webkit-user-select:none;user-select:none;border:1px solid #0000;padding:10px 20px;line-height:1;text-decoration:none;display:inline-flex;position:relative;overflow:hidden}.btn:focus-visible{outline:2px solid var(--primary);outline-offset:3px;box-shadow:var(--focus-ring)}.btn:disabled,.btn[disabled]{opacity:.55;cursor:not-allowed;pointer-events:none}.btn--sm{min-height:var(--control-height-sm);font-size:var(--text-xs);border-radius:var(--radius-sm);padding:6px 14px}.btn--lg{min-height:50px;font-size:var(--text-base);border-radius:var(--radius-md);padding:14px 28px}.btn--full{width:100%}.btn--icon{width:40px;height:40px;padding:0}.btn-primary{background:var(--primary);color:var(--on-primary);box-shadow:var(--interactive-shadow);border-color:#0000;transition:box-shadow .2s,transform .1s}.btn-primary:hover{box-shadow:0 6px 24px rgba(var(--primary-rgb), .65), var(--neon-glow);color:var(--on-primary);text-decoration:none;transform:translateY(-1px)}.btn-primary:active{box-shadow:var(--neon-glow-sm);transform:scale(.98)}.btn-secondary{background:var(--surface);color:var(--primary);border-color:var(--primary)}.btn-secondary:hover{background:rgba(var(--primary-rgb), .06);box-shadow:var(--neon-glow-sm);color:var(--primary);text-decoration:none;transform:translateY(-1px)}.btn-ghost{color:var(--text-secondary);border-color:var(--border);background:0 0}.btn-ghost:hover{background:var(--surface-2);color:var(--text);border-color:var(--border-strong);text-decoration:none}.btn-danger{background:var(--error);color:#fff;box-shadow:0 2px 8px rgba(var(--error-rgb), .25);border-color:#0000}.btn-danger:hover{background:color-mix(in srgb, var(--error) 80%, #000);box-shadow:0 4px 16px rgba(var(--error-rgb), .4);color:#fff;text-decoration:none;transform:translateY(-1px)}.btn-success{background:var(--success);color:#fff;border-color:#0000}.btn-success:hover{background:color-mix(in srgb, var(--success) 80%, #000);box-shadow:0 4px 16px rgba(var(--success-rgb), .35);color:#fff;text-decoration:none;transform:translateY(-1px)}.btn-google{background:var(--surface);color:var(--text);border:1.5px solid var(--border);gap:var(--space-3)}.btn-google:hover{background:var(--surface-2);border-color:var(--border-strong);box-shadow:var(--shadow);color:var(--text);text-decoration:none;transform:translateY(-1px)}.btn-google__icon{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%234285F4' d='M22.56 12.25c0-.78-.07-1.53-.2-2.25H12v4.26h5.92c-.26 1.37-1.04 2.53-2.21 3.31v2.77h3.57c2.08-1.92 3.28-4.74 3.28-8.09z'/%3E%3Cpath fill='%2334A853' d='M12 23c2.97 0 5.46-.98 7.28-2.66l-3.57-2.77c-.98.66-2.23 1.06-3.71 1.06-2.86 0-5.29-1.93-6.16-4.53H2.18v2.84C3.99 20.53 7.7 23 12 23z'/%3E%3Cpath fill='%23FBBC05' d='M5.84 14.09c-.22-.66-.35-1.36-.35-2.09s.13-1.43.35-2.09V7.07H2.18C1.43 8.55 1 10.22 1 12s.43 3.45 1.18 4.93l2.85-2.22.81-.62z'/%3E%3Cpath fill='%23EA4335' d='M12 5.38c1.62 0 3.06.56 4.21 1.64l3.15-3.15C17.45 2.09 14.97 1 12 1 7.7 1 3.99 3.47 2.18 7.07l3.66 2.84c.87-2.6 3.3-4.53 6.16-4.53z'/%3E%3C/svg%3E");background-position:50%;background-repeat:no-repeat;background-size:contain;flex-shrink:0;width:18px;height:18px}.btn--loading{color:#0000;pointer-events:none}.btn--loading:after{content:"";width:16px;height:16px;color:var(--on-primary);border:2px solid #0000;border-top-color:currentColor;border-top-color:var(--on-primary);border-radius:50%;animation:.7s linear infinite spin;position:absolute}@keyframes spin{to{transform:rotate(360deg)}}.card{background:var(--surface);border-radius:var(--radius-md);border:1px solid var(--border);padding:var(--space-6);box-shadow:var(--card-shadow);isolation:isolate;transition:border-color var(--transition), box-shadow var(--transition), transform var(--transition), background-color var(--transition);position:relative}.card--clickable:hover,a.card:hover,button.card:hover{border-color:var(--accent-border);background:var(--surface-hover);box-shadow:var(--card-shadow-hover);transform:translateY(-2px)}.card--neon:hover{box-shadow:var(--neon-glow), var(--card-shadow-hover)}.card--flat{box-shadow:none}.card--flat:hover{transform:none}.card--clickable{cursor:pointer}.card--glass{-webkit-backdrop-filter:blur(18px)saturate(140%);background:linear-gradient(135deg,#ffffff0a,#ffffff04);border:1px solid #ffffff14;box-shadow:0 10px 30px #0006,inset 0 1px #ffffff0d}:root:not([data-theme=dark]) .card--glass{box-shadow:0 10px 30px rgba(var(--primary-rgb),.1), inset 0 1px 0 #fffc;background:linear-gradient(135deg,#ffffffd9,#ffffff8c);border:1px solid #ffffffe6}.topic-card{cursor:pointer}.topic-card:hover{box-shadow:0 12px 32px rgba(var(--primary-rgb), .15);transform:translateY(-4px)}.card--sm{padding:var(--space-4)}.card--lg{padding:var(--space-8)}.card__header{margin-bottom:var(--space-4);justify-content:space-between;align-items:center;display:flex}.card__title{font-family:var(--font-heading);font-size:var(--text-lg);font-weight:var(--font-semibold);color:var(--text)}.card__subtitle{font-size:var(--text-sm);color:var(--text-secondary);margin-top:var(--space-1)}.stat-card{background:var(--surface);border-radius:var(--radius-md);border:1px solid var(--border);padding:var(--space-5);box-shadow:var(--card-shadow);transition:border-color var(--transition), box-shadow var(--transition), transform var(--transition);gap:var(--space-3);flex-direction:column;display:flex}.stat-card:hover{border-color:rgba(var(--primary-rgb), .3);box-shadow:var(--card-shadow-hover);transform:translateY(-2px)}.stat-card__icon{border-radius:var(--radius);flex-shrink:0;justify-content:center;align-items:center;width:44px;height:44px;font-size:22px;display:flex}.stat-card__icon--primary{background:rgba(var(--primary-rgb), .1);color:var(--primary)}.stat-card__icon--success{background:var(--success-light);color:var(--success)}.stat-card__icon--warning{background:var(--warning-light);color:var(--warning)}.stat-card__icon--error{background:var(--error-light);color:var(--error)}.stat-card__value{font-family:var(--font-heading);font-size:var(--text-3xl);font-weight:var(--font-bold);color:var(--text);line-height:1}.stat-card__label{font-size:var(--text-sm);color:var(--text-secondary)}.stat-card__trend{font-size:var(--text-xs);font-weight:var(--font-medium);align-items:center;gap:4px;display:inline-flex}.stat-card__trend--up{color:var(--success)}.stat-card__trend--down{color:var(--error)}.form-group{gap:var(--space-2);flex-direction:column;display:flex}.form-label{font-size:var(--text-sm);font-weight:var(--font-medium);color:var(--text)}.form-label .required{color:var(--error);margin-left:3px}.input-group{align-items:center;display:flex;position:relative}.input-group .input{padding-right:44px}.input-group__icon{color:var(--text-muted);pointer-events:none;align-items:center;display:flex;position:absolute;right:14px}.input-group__icon--left{pointer-events:none;left:14px;right:auto}.input-group .input.has-left-icon{padding-left:44px}.input{width:100%;min-height:var(--control-height);background:var(--surface-raised);border:1.5px solid var(--border);border-radius:var(--radius);color:var(--text);font-size:var(--text-sm);transition:background-color var(--transition-fast), border-color var(--transition-fast), box-shadow var(--transition-fast);outline:2px solid #0000;padding:11px 16px;line-height:1.5}.input::placeholder{color:var(--text-muted)}.input:hover{border-color:var(--primary-light)}.input:focus-visible{border-color:var(--primary);box-shadow:var(--focus-ring)}.input--error{border-color:var(--error)}.input--error:focus-visible{box-shadow:var(--focus-ring-error)}.input--success{border-color:var(--success)}.form-hint{font-size:var(--text-xs);color:var(--text-muted)}.form-error{font-size:var(--text-xs);color:var(--error);align-items:center;gap:4px;display:flex}select.input{cursor:pointer;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 24 24' stroke='%236B7280'%3E%3Cpath stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M19 9l-7 7-7-7'/%3E%3C/svg%3E");background-position:right 12px center;background-repeat:no-repeat;background-size:16px;padding-right:40px}select.input option{background:var(--surface-raised);color:var(--text)}textarea.input{resize:vertical;min-height:100px}.checkbox-group,.radio-group{gap:var(--space-2);flex-direction:column;display:flex}.checkbox-item,.radio-item{align-items:center;gap:var(--space-3);cursor:pointer;display:flex}.checkbox-item input[type=checkbox],.radio-item input[type=radio]{width:18px;height:18px;accent-color:var(--primary);cursor:pointer}.checkbox-item__label,.radio-item__label{font-size:var(--text-sm);color:var(--text)}.modal-overlay{background:var(--scrim);-webkit-backdrop-filter:blur(10px);z-index:var(--z-modal);padding:max(var(--space-4), env(safe-area-inset-top)) max(var(--space-4), env(safe-area-inset-right)) max(var(--space-4), env(safe-area-inset-bottom)) max(var(--space-4), env(safe-area-inset-left));overscroll-behavior:contain;justify-content:center;align-items:center;animation:.2s fadeIn;display:flex;position:fixed;inset:0}.modal{background:var(--surface);border-radius:var(--radius-lg);overscroll-behavior:contain;width:100%;max-width:520px;max-height:min(90vh,90dvh);box-shadow:var(--shadow-lg);border:1px solid var(--border);animation:.3s slideUp;overflow-y:auto}.modal--sm{max-width:380px}.modal--lg{max-width:720px}.modal__header{padding:var(--space-6) var(--space-6) var(--space-4);border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;display:flex}.modal__title{font-family:var(--font-heading);font-size:var(--text-lg);font-weight:var(--font-semibold);color:var(--text)}.modal__close{width:var(--control-height);height:var(--control-height);border-radius:var(--radius-sm);background:var(--surface-2);color:var(--text-secondary);cursor:pointer;transition:background-color var(--transition-fast), color var(--transition-fast), box-shadow var(--transition-fast);border:none;flex-shrink:0;justify-content:center;align-items:center;display:flex}.modal__close:hover{background:var(--error-light);color:var(--error)}.modal__body{padding:var(--space-6)}.modal__footer{justify-content:flex-end;align-items:center;gap:var(--space-3);padding:var(--space-4) var(--space-6) var(--space-6);border-top:1px solid var(--border);display:flex}.modal__footer-actions{justify-content:flex-end;align-items:center;gap:var(--space-3);width:100%;display:flex}@media (width<=480px){.modal__footer-actions{flex-direction:column-reverse}.modal__footer-actions .btn{width:100%}}.badge{border-radius:var(--radius-full);font-size:var(--text-xs);font-weight:var(--font-semibold);white-space:nowrap;align-items:center;gap:4px;padding:3px 10px;line-height:1.4;display:inline-flex}.badge--primary{background:rgba(var(--primary-rgb),.12);color:var(--primary-dark)}.badge--success{background:var(--success-light);color:var(--success)}.badge--error{background:var(--error-light);color:var(--error)}.badge--warning{background:var(--warning-light);color:var(--warning)}.badge--neutral{background:var(--surface-2);color:var(--text-secondary)}.tag{align-items:center;gap:var(--space-1);border-radius:var(--radius-full);font-size:var(--text-xs);font-weight:var(--font-medium);background:var(--surface-2);color:var(--text-secondary);border:1px solid var(--border);cursor:default;transition:background-color var(--transition-fast), border-color var(--transition-fast), color var(--transition-fast);padding:4px 12px;display:inline-flex}.tag:hover{background:rgba(var(--primary-rgb),.08);border-color:var(--primary-light);color:var(--primary)}.tag--active{background:rgba(var(--primary-rgb),.12);border-color:var(--primary-light);color:var(--primary)}.progress-bar{background:var(--surface-2);border-radius:var(--radius-full);width:100%;height:8px;overflow:hidden}.progress-bar--sm{height:4px}.progress-bar--lg{height:12px}.progress-bar__fill{border-radius:var(--radius-full);background:linear-gradient(90deg, var(--primary-dark), var(--primary));height:100%;transition:width .8s cubic-bezier(.25,.46,.45,.94);position:relative;overflow:hidden}.progress-bar__fill:after{content:"";background:linear-gradient(90deg,#0000,#fff6,#0000);width:60%;height:100%;animation:2s infinite shimmer;position:absolute;top:0;left:-100%}.progress-bar__fill--success{background:linear-gradient(90deg, color-mix(in srgb, var(--success) 75%, #000), var(--success))}.progress-bar__fill--warning{background:linear-gradient(90deg, color-mix(in srgb, var(--warning) 75%, #000), var(--warning))}.progress-bar__fill--error{background:linear-gradient(90deg, color-mix(in srgb, var(--error) 75%, #000), var(--error))}.alert{align-items:flex-start;gap:var(--space-3);padding:var(--space-4) var(--space-5);border-radius:var(--radius);font-size:var(--text-sm);line-height:var(--leading-normal);border:1px solid;display:flex}.alert__icon{flex-shrink:0;margin-top:1px;font-size:18px}.alert__content{flex:1}.alert__title{font-weight:var(--font-semibold);margin-bottom:4px}.alert-success{background:var(--success-light);border-color:rgba(var(--success-rgb), .3);color:var(--success)}.alert-error{background:var(--error-light);border-color:rgba(var(--error-rgb), .3);color:var(--error)}.alert-warning{background:var(--warning-light);border-color:rgba(var(--warning-rgb), .3);color:var(--warning)}.alert-info{background:var(--info-light);border-color:rgba(var(--info-rgb), .3);color:var(--info)}.skeleton{background:linear-gradient(90deg, var(--surface-2) 25%, var(--surface-3) 50%, var(--surface-2) 75%);border-radius:var(--radius);background-size:200% 100%;animation:1.5s infinite shimmer;display:block}.skeleton--text{border-radius:var(--radius-sm);height:16px}.skeleton--title{border-radius:var(--radius-sm);height:24px}.skeleton--circle{border-radius:50%}.skeleton--card{border-radius:var(--radius-md);height:200px}.avatar{border-radius:var(--radius-full);background:var(--primary);color:#fff;font-family:var(--font-heading);font-weight:var(--font-semibold);-webkit-user-select:none;user-select:none;text-overflow:clip;white-space:nowrap;text-transform:uppercase;flex-shrink:0;justify-content:center;align-items:center;line-height:1;display:flex;overflow:hidden}.avatar__letter{text-align:center;white-space:nowrap;width:100%;display:block;overflow:hidden}.avatar--sm{width:28px;height:28px;font-size:var(--text-xs);min-width:28px}.avatar{width:36px;height:36px;font-size:var(--text-sm);min-width:36px}.avatar--md{width:44px;height:44px;font-size:var(--text-base);min-width:44px}.avatar--lg{width:64px;height:64px;font-size:var(--text-xl);min-width:64px}.avatar--xl{width:96px;height:96px;font-size:var(--text-3xl);min-width:96px}.avatar img{object-fit:cover;width:100%;height:100%;display:block}.avatar:not(:has(img)){white-space:nowrap;text-overflow:clip;line-height:1;overflow:hidden}.divider{align-items:center;gap:var(--space-3);color:var(--text-muted);font-size:var(--text-sm);display:flex}.divider:before,.divider:after{content:"";border-top:1px solid var(--border);flex:1}[data-tooltip]{position:relative}[data-tooltip]:after{content:attr(data-tooltip);background:var(--text);color:#fff;font-size:var(--text-xs);border-radius:var(--radius-sm);white-space:nowrap;pointer-events:none;opacity:0;transition:opacity var(--transition-fast);z-index:var(--z-tooltip);padding:5px 10px;position:absolute;bottom:calc(100% + 8px);left:50%;transform:translate(-50%)}[data-tooltip]:before{content:"";border:5px solid #0000;border-top-color:var(--text);pointer-events:none;opacity:0;transition:opacity var(--transition-fast);z-index:var(--z-tooltip);position:absolute;bottom:calc(100% + 3px);left:50%;transform:translate(-50%)}[data-tooltip]:hover:after,[data-tooltip]:hover:before{opacity:1}.dropdown{display:inline-block;position:relative}.dropdown__menu{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-md);min-width:180px;padding:var(--space-2);z-index:var(--z-dropdown);animation:.2s slideUp;position:absolute;top:calc(100% + 8px);right:0}.dropdown__menu--left{left:0;right:auto}.dropdown__item{align-items:center;gap:var(--space-3);padding:var(--space-2) var(--space-3);border-radius:var(--radius-sm);font-size:var(--text-sm);color:var(--text-secondary);cursor:pointer;min-height:40px;transition:background-color var(--transition-fast), color var(--transition-fast);background:0 0;border:none;width:100%;text-decoration:none;display:flex}.dropdown__item:hover{background:var(--surface-2);color:var(--text);text-decoration:none}.dropdown__item--danger:hover{background:var(--error-light);color:var(--error)}.dropdown__divider{border:none;border-top:1px solid var(--border);margin:var(--space-2) 0}.tabs{border-bottom:1px solid var(--border);margin-bottom:var(--space-6);gap:0;display:flex}.tab{padding:var(--space-3) var(--space-5);font-size:var(--text-sm);font-weight:var(--font-medium);color:var(--text-secondary);cursor:pointer;min-height:var(--control-height);transition:border-color var(--transition-fast), color var(--transition-fast);white-space:nowrap;background:0 0;border:none;border-bottom:2px solid #0000;margin-bottom:-1px}.tab:hover{color:var(--primary)}.tab.active{color:var(--primary);border-bottom-color:var(--primary)}.question-nav{gap:var(--space-2);flex-wrap:wrap;display:flex}.question-nav__btn{border-radius:var(--radius-sm);border:1.5px solid var(--border);background:var(--surface);width:40px;height:40px;color:var(--text-secondary);font-size:var(--text-sm);font-weight:var(--font-medium);cursor:pointer;transition:background-color var(--transition-fast), border-color var(--transition-fast), color var(--transition-fast), box-shadow var(--transition-fast), transform var(--transition-fast);justify-content:center;align-items:center;display:flex}.question-nav__btn:hover{border-color:var(--primary-light);color:var(--primary);background:rgba(var(--primary-rgb),.06)}.question-nav__btn.current{border-color:var(--primary);background:var(--primary);color:#fff;box-shadow:var(--neon-glow-sm)}.question-nav__btn.answered{background:var(--success-light);border-color:rgba(var(--success-rgb),.4);color:var(--success)}.question-nav__btn.skipped{background:var(--warning-light);border-color:rgba(var(--warning-rgb),.4);color:var(--warning)}.result-item{align-items:start;gap:var(--space-4);padding:var(--space-4) var(--space-5);border-radius:var(--radius);border:1px solid var(--border);transition:border-color var(--transition-fast);grid-template-columns:auto 1fr auto;display:grid}.result-item:hover{border-color:var(--border-strong)}.result-item--correct{border-color:rgba(var(--success-rgb),.3);background:rgba(var(--success-rgb),.03)}.result-item--incorrect{border-color:rgba(var(--error-rgb),.3);background:rgba(var(--error-rgb),.03)}.spinner{border:3px solid rgba(var(--primary-rgb), .2);border-top-color:var(--primary);border-radius:50%;width:24px;height:24px;animation:.7s linear infinite spin;display:inline-block}.spinner--sm{border-width:2px;width:16px;height:16px}.spinner--lg{border-width:4px;width:40px;height:40px}.loading-container{justify-content:center;align-items:center;gap:var(--space-4);padding:var(--space-16);color:var(--text-secondary);font-size:var(--text-sm);flex-direction:column;display:flex}@media (width<=768px){.question-card{padding:var(--space-4) var(--space-4)!important;border-radius:var(--radius)!important}.question-card__images img{max-height:200px!important}.question-nav{flex-wrap:wrap;gap:6px!important}.question-nav__btn{min-width:40px!important;min-height:40px!important;font-size:var(--text-sm)!important}.topics-grid{gap:var(--space-4);grid-template-columns:1fr!important}.topic-card{padding:var(--space-4)!important}.section__title{font-size:var(--text-2xl)!important}.section__subtitle{font-size:var(--text-sm)!important}.page-title{font-size:var(--text-2xl)!important}.tabs{-webkit-overflow-scrolling:touch;scrollbar-width:none;overflow-x:auto;flex-wrap:nowrap!important}.tabs::-webkit-scrollbar{display:none}.tab{white-space:nowrap;font-size:var(--text-xs);flex-shrink:0;padding:8px 14px}.card{padding:var(--space-4)}.hero-section{padding:var(--space-10) 0 var(--space-8)!important}.btn{min-height:44px;padding:10px 16px}.btn--sm{min-height:36px;padding:6px 12px}.auth-box{border-radius:var(--radius);box-shadow:var(--shadow)}.modal{margin:16px;width:calc(100vw - 32px)!important;max-width:none!important}.exam-header-sticky{padding:var(--space-2) 0!important}.progress-bar{height:6px}.input-group{max-width:none!important}.divider{font-size:var(--text-xs)}#google-btn-container{min-height:44px}}@media (width<=480px){.main-content{padding:var(--space-4) var(--space-3)!important}.hero-section h1{font-size:clamp(1.5rem,7vw,2.2rem)!important}.hero-stats{gap:var(--space-3)!important;grid-template-columns:repeat(2,1fr)!important}.timer-display{font-size:var(--text-xl)!important}.badge{padding:2px 8px;font-size:10px}.dashboard-stats{gap:var(--space-2)!important}}.notif-bell{align-items:center;display:inline-flex;position:relative}.notif-bell__btn{border-radius:var(--radius);width:36px;height:36px;color:var(--text-secondary);cursor:pointer;transition:background var(--transition-fast), color var(--transition-fast);background:0 0;border:none;justify-content:center;align-items:center;padding:0;display:inline-flex;position:relative}.notif-bell__btn:hover{background:var(--surface-2,#0000000d);color:var(--primary)}.notif-bell__badge{color:#fff;pointer-events:none;background:#ef4444;border-radius:9999px;justify-content:center;align-items:center;min-width:16px;height:16px;padding:0 4px;font-size:10px;font-weight:700;line-height:1;display:inline-flex;position:absolute;top:4px;right:4px}.notif-bell__dropdown{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);width:320px;box-shadow:var(--shadow-md);z-index:var(--z-dropdown,100);animation:.15s slideUp;position:absolute;top:calc(100% + 8px);right:0;overflow:hidden}.notif-bell__list{max-height:340px;overflow-y:auto}.notif-bell__empty{padding:var(--space-6) var(--space-4);text-align:center;color:var(--text-tertiary);font-size:var(--text-sm)}.notif-bell__item{align-items:flex-start;gap:var(--space-3);padding:var(--space-3) var(--space-4);cursor:pointer;border-bottom:1px solid var(--border);background:var(--surface-accent,rgba(var(--primary-rgb,59 130 246) / .04));transition:background var(--transition-fast);display:flex}.notif-bell__item:last-child{border-bottom:none}.notif-bell__item:hover{background:var(--surface-2,#0000000a)}.notif-bell__item:focus{outline:2px solid var(--primary);outline-offset:-2px}.notif-bell__item--read{background:var(--surface)}.notif-bell__item--read:hover{background:var(--surface-2,#0000000a)}.notif-bell__icon{color:var(--primary);flex-shrink:0;margin-top:2px}.notif-bell__content{flex:1;min-width:0}.notif-bell__title{font-size:var(--text-sm);font-weight:var(--font-medium);color:var(--text-primary);line-height:1.4}.notif-bell__body{font-size:var(--text-xs,12px);color:var(--text-secondary);white-space:nowrap;text-overflow:ellipsis;margin-top:2px;overflow:hidden}.notif-bell__time{color:var(--text-tertiary);white-space:nowrap;flex-shrink:0;margin-top:2px;font-size:11px}.notif-bell__footer{padding:var(--space-2) var(--space-4);text-align:center;font-size:var(--text-sm);font-weight:var(--font-medium);color:var(--primary);border-top:1px solid var(--border);background:var(--surface);transition:background var(--transition-fast);text-decoration:none;display:block}.notif-bell__footer:hover{background:var(--surface-2,#0000000a)}.notif-page{max-width:640px;margin:0 auto}.notif-page__toolbar{justify-content:space-between;align-items:center;gap:var(--space-4);margin-bottom:var(--space-5);flex-wrap:wrap;display:flex}.notif-page__chips{gap:var(--space-2);display:flex}.chip{padding:var(--space-1) var(--space-3);border:1px solid var(--border);background:var(--surface);font-size:var(--text-sm);font-weight:var(--font-medium);color:var(--text-secondary);cursor:pointer;min-height:var(--control-height-sm);transition:background-color var(--transition-fast), border-color var(--transition-fast), color var(--transition-fast);white-space:nowrap;border-radius:9999px;align-items:center;display:inline-flex}.chip:hover{border-color:var(--primary);color:var(--primary)}.chip--active{background:var(--primary);border-color:var(--primary);color:#fff}.chip--active:hover{opacity:.9;color:#fff}@media (pointer:coarse),(width<=768px){.btn--sm,.btn--icon,.modal__close,.dropdown__item,.question-nav__btn,.chip{min-width:var(--control-height);min-height:var(--control-height)}.input{font-size:var(--text-base)}}.notif-page__list{border:1px solid var(--border);border-radius:var(--radius);flex-direction:column;gap:0;display:flex;overflow:hidden}.notif-page__empty{justify-content:center;align-items:center;gap:var(--space-3);padding:var(--space-12,48px) var(--space-4);color:var(--text-tertiary);font-size:var(--text-sm);text-align:center;border:1px solid var(--border);border-radius:var(--radius);flex-direction:column;display:flex}.notif-item{align-items:flex-start;gap:var(--space-3);padding:var(--space-4) var(--space-5);background:var(--surface-accent,rgba(var(--primary-rgb,59 130 246) / .04));border-bottom:1px solid var(--border);cursor:pointer;transition:background var(--transition-fast);display:flex;position:relative}.notif-item:last-child{border-bottom:none}.notif-item:hover{background:var(--surface-2,#0000000a)}.notif-item--read{background:var(--surface)}.notif-item--read:hover{background:var(--surface-2,#0000000a)}.notif-item__icon{flex-shrink:0;margin-top:2px}.notif-item__body{flex:1;min-width:0}.notif-item__title{font-size:var(--text-sm);font-weight:var(--font-medium);color:var(--text-primary);line-height:1.4}.notif-item__desc{font-size:var(--text-sm);color:var(--text-secondary);margin-top:var(--space-1);-webkit-line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.notif-item__time{color:var(--text-tertiary);margin-top:var(--space-1);font-size:12px}.notif-item__dot{top:50%;right:var(--space-4);background:var(--primary);border-radius:50%;flex-shrink:0;width:8px;height:8px;position:absolute;transform:translateY(-50%)}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes fadeOut{0%{opacity:1}to{opacity:0}}@keyframes slideUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@keyframes slideDown{0%{opacity:0;transform:translateY(-20px)}to{opacity:1;transform:translateY(0)}}@keyframes slideIn{0%{opacity:0;transform:translate(-20px)}to{opacity:1;transform:translate(0)}}@keyframes slideInRight{0%{opacity:0;transform:translate(20px)}to{opacity:1;transform:translate(0)}}@keyframes scaleIn{0%{opacity:0;transform:scale(.92)}to{opacity:1;transform:scale(1)}}@keyframes scaleOut{0%{opacity:1;transform:scale(1)}to{opacity:0;transform:scale(.92)}}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}@keyframes shake{0%,to{transform:translate(0)}20%{transform:translate(-6px)}40%{transform:translate(6px)}60%{transform:translate(-4px)}80%{transform:translate(4px)}}@keyframes bounce{0%,to{transform:translateY(0)}50%{transform:translateY(-8px)}}@keyframes glow{0%,to{box-shadow:0 0 12px rgba(var(--primary-rgb),.4), 0 0 28px rgba(var(--primary-rgb),.12)}50%{box-shadow:0 0 22px rgba(var(--primary-rgb),.8), 0 0 50px rgba(var(--primary-rgb),.28)}}@keyframes shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}@keyframes ripple{0%{opacity:1;transform:scale(0)}to{opacity:0;transform:scale(2.5)}}@keyframes float{0%,to{transform:translateY(0)rotate(0)}33%{transform:translateY(-12px)rotate(1deg)}66%{transform:translateY(-6px)rotate(-1deg)}}@keyframes counterUp{0%{opacity:0;transform:translateY(100%)}to{opacity:1;transform:translateY(0)}}@keyframes progressFill{0%{width:0}}@keyframes toastSlideIn{0%{opacity:0;transform:translate(100%)}to{opacity:1;transform:translate(0)}}@keyframes toastSlideOut{0%{opacity:1;transform:translate(0)}to{opacity:0;transform:translate(100%)}}@keyframes neonPulse{0%,to{box-shadow:0 0 8px rgba(var(--primary-rgb),.55), 0 0 20px rgba(var(--primary-rgb),.28), 0 0 40px rgba(var(--primary-rgb),.11)}50%{box-shadow:0 0 14px rgba(var(--primary-rgb),.9), 0 0 35px rgba(var(--primary-rgb),.48), 0 0 65px rgba(var(--primary-rgb),.2)}}@keyframes heartbeat{0%{transform:scale(1)}14%{transform:scale(1.12)}28%{transform:scale(1)}42%{transform:scale(1.08)}70%{transform:scale(1)}to{transform:scale(1)}}@keyframes typing{0%,to{opacity:0}50%{opacity:1}}.animate-fade-in{animation:.3s both fadeIn}.animate-slide-up{animation:.4s both slideUp}.animate-slide-down{animation:.3s both slideDown}.animate-slide-in{animation:.3s both slideIn}.animate-scale-in{animation:.3s both scaleIn}.animate-pulse{animation:2s infinite pulse}.animate-bounce{animation:1s infinite bounce}.animate-glow{animation:2s infinite glow}.animate-float{animation:4s ease-in-out infinite float}.animate-neon-pulse{animation:2.5s infinite neonPulse}.animate-heartbeat{animation:1.4s infinite heartbeat}.animate-spin{animation:.7s linear infinite spin}.stagger-children>*{animation:.4s both slideUp}.stagger-children>:first-child{animation-delay:0s}.stagger-children>:nth-child(2){animation-delay:60ms}.stagger-children>:nth-child(3){animation-delay:.12s}.stagger-children>:nth-child(4){animation-delay:.18s}.stagger-children>:nth-child(5){animation-delay:.24s}.stagger-children>:nth-child(6){animation-delay:.3s}.stagger-children>:nth-child(7){animation-delay:.36s}.stagger-children>:nth-child(8){animation-delay:.42s}.page-enter{animation:.35s cubic-bezier(.25,.46,.45,.94) both pageEnter}@keyframes pageEnter{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}.page-exit{animation:.2s both pageExit}@keyframes pageExit{0%{opacity:1}to{opacity:0}}.neon-hover{transition:box-shadow var(--transition), border-color var(--transition)}.neon-hover:hover{box-shadow:var(--neon-glow);border-color:rgba(var(--primary-rgb), .4)}.glow-text{color:var(--primary);text-shadow:0 0 20px rgba(var(--primary-rgb), .4)}.gradient-text{background:linear-gradient(135deg, var(--primary), var(--primary-dark));-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text}.skeleton-shimmer{background:linear-gradient(90deg, var(--surface-2) 0%, var(--surface-3) 40%, var(--surface-2) 80%, var(--surface-2) 100%);background-size:300% 100%;animation:1.8s ease-in-out infinite shimmer}.ripple{position:relative;overflow:hidden}.ripple__circle{pointer-events:none;background:#ffffff4d;border-radius:50%;animation:.6s linear ripple;position:absolute;transform:scale(0)}.timer--warning{animation:1s infinite timerPulse;color:var(--error)!important}@keyframes timerPulse{0%,to{opacity:1}50%{opacity:.6}}@keyframes timer-pulse{0%,to{opacity:1}50%{opacity:.6}}.timer--urgent{color:#ef4444!important}.timer--critical{font-weight:700;animation:1s ease-in-out infinite timer-pulse;color:#ef4444!important}.progress-animated .progress-bar__fill{animation:.8s cubic-bezier(.25,.46,.45,.94) both progressFill}.hover-scale{transition:transform var(--transition)}.hover-scale:hover{transform:scale(1.03)}.hover-lift{transition:transform var(--transition), box-shadow var(--transition)}.hover-lift:hover{box-shadow:var(--shadow-md);transform:translateY(-4px)}.delay-100{animation-delay:.1s}.delay-200{animation-delay:.2s}.delay-300{animation-delay:.3s}.delay-400{animation-delay:.4s}.delay-500{animation-delay:.5s}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}
