@import"https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700;800;900&family=Source+Code+Pro:wght@400;500;600;700&display=swap";@import"https://fonts.googleapis.com/css2?family=Be+Vietnam+Pro:wght@400;500;600;700&family=Space+Grotesk:wght@500;600;700&display=swap";@import"https://fonts.googleapis.com/css2?family=Be+Vietnam+Pro:wght@300;400;500;600;700;800&family=Inter:wght@300;400;500;600&display=swap";@import"https://fonts.googleapis.com/css2?family=Be+Vietnam+Pro:wght@300;400;500;600;700;800&family=Inter:wght@300;400;500;600;700&display=swap";@import"https://fonts.googleapis.com/css2?family=Lexend:wght@400;500;600;700;800&family=Be+Vietnam+Pro:ital,wght@0,300;0,400;0,500;0,600;0,700;1,400&display=swap";@import"https://fonts.googleapis.com/css2?family=Cormorant+Garamond:ital,wght@0,400;0,600;0,700;1,400&family=Be+Vietnam+Pro:wght@300;400;500;600;700&display=swap";@import"https://fonts.googleapis.com/css2?family=Be+Vietnam+Pro:wght@300;400;500;600;700;800&display=swap";@import"https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700&display=swap";@import"https://fonts.googleapis.com/css2?family=Be+Vietnam+Pro:wght@400;500;600;700&display=swap";:root{--primary-color: #5B67F1;--primary-dark: #4850d4;--secondary-color: #8B5CF6;--success-color: #10B981;--warning-color: #FBBF24;--error-color: #EF4444;--info-color: #3B82F6;--accent-pink: #F472B6;--accent-orange: #FBBF24;--accent-teal: #14B8A6;--white: #ffffff;--black: #000000;--gray-50: #F9FAFB;--gray-100: #F3F4F6;--gray-200: #E5E7EB;--gray-300: #D1D5DB;--gray-400: #9CA3AF;--gray-500: #6B7280;--gray-600: #4B5563;--gray-700: #374151;--gray-800: #1F2937;--gray-900: #111827;--bg-primary: #F5F7FA;--bg-dark: #1A1A1B;--font-family: "Source Code Pro", "Consolas", monospace;--font-heading: "Inter", "Segoe UI", sans-serif;--font-size-xs: .75rem;--font-size-sm: .875rem;--font-size-base: 1rem;--font-size-lg: 1.125rem;--font-size-xl: 1.25rem;--font-size-2xl: 1.5rem;--font-size-3xl: 1.875rem;--font-size-4xl: 2.25rem;--spacing-xs: .25rem;--spacing-sm: .5rem;--spacing-md: 1rem;--spacing-lg: 1.5rem;--spacing-xl: 2rem;--spacing-2xl: 3rem;--radius-sm: 4px;--radius-md: 8px;--radius-lg: 12px;--radius-xl: 16px;--radius-2xl: 24px;--radius-full: 9999px;--shadow-sm: 0 1px 2px 0 rgba(0, 0, 0, .04);--shadow-md: 0 4px 12px -1px rgba(0, 0, 0, .06);--shadow-lg: 0 12px 32px -3px rgba(0, 0, 0, .08);--shadow-xl: 0 20px 40px -5px rgba(0, 0, 0, .1);--transition-fast: .15s ease-in-out;--transition-base: .25s ease-in-out;--transition-slow: .35s ease-in-out;--z-dropdown: 1000;--z-sticky: 1020;--z-fixed: 1030;--z-modal-backdrop: 1040;--z-modal: 1050;--z-popover: 1060;--z-tooltip: 1070}*{margin:0;padding:0;box-sizing:border-box}:root{font-family:var(--font-family);line-height:1.6;font-weight:400;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body{margin:0;padding:0;min-width:320px;min-height:100vh;background-color:var(--bg-primary);color:var(--gray-700);overflow-x:hidden}#root{width:100%;min-height:100vh}h1,h2,h3,h4,h5,h6{font-family:var(--font-heading);color:var(--gray-900)}h1{font-size:3.2em;line-height:1.1}a{color:var(--primary-color);text-decoration:none;transition:color var(--transition-fast)}a:hover{color:var(--primary-dark)}button{border-radius:var(--radius-md);border:1px solid transparent;padding:.6em 1.2em;font-size:1em;font-weight:500;font-family:var(--font-family);background-color:var(--bg-dark);color:var(--white);cursor:pointer;transition:all var(--transition-base)}button:hover{background-color:var(--primary-color);border-color:var(--primary-color)}button:focus,button:focus-visible{outline:2px solid var(--primary-color);outline-offset:2px}::selection{background-color:#5b67f133;color:var(--gray-900)}:root{--c-primary: #5E5CE6;--c-primary-soft: rgba(94, 92, 230, .08);--c-primary-glow: rgba(94, 92, 230, .18);--c-dark: #0E0C15;--c-dark-alt: #1A1725;--c-bg: #FAFAFF;--c-surface: #ffffff;--c-text-1: #0E0C15;--c-text-2: #3F3A52;--c-text-3: #756B85;--c-border: #E8E5F0;--c-border-soft: #F0EDF8;--c-accent-pink: #FF98E2;--c-accent-gold: #FFC876;--f-heading: "Be Vietnam Pro", -apple-system, sans-serif;--f-body: "Inter", -apple-system, sans-serif;--r-sm: 12px;--r-md: 16px;--r-lg: 20px;--r-xl: 24px;--r-pill: 100px;--max-w: 1120px;--shadow-xs: 0 1px 2px rgba(14, 12, 21, .04);--shadow-sm: 0 2px 4px rgba(14, 12, 21, .03), 0 4px 12px rgba(14, 12, 21, .04);--shadow-md: 0 4px 8px rgba(14, 12, 21, .03), 0 8px 24px rgba(14, 12, 21, .06);--shadow-lg: 0 8px 16px rgba(14, 12, 21, .04), 0 16px 48px rgba(14, 12, 21, .08);--shadow-glow: 0 4px 32px rgba(94, 92, 230, .12)}.homepage{font-family:var(--f-body);color:var(--c-text-2);background:var(--c-bg);overflow-x:hidden;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.container{max-width:var(--max-w);margin:0 auto;padding:0 1.5rem;width:100%}.homepage-header{position:sticky;top:0;z-index:100;background:#fafaffd9;backdrop-filter:blur(16px) saturate(180%);-webkit-backdrop-filter:blur(16px) saturate(180%);border-bottom:1px solid var(--c-border-soft);padding:.625rem 0}.navbar{display:flex;align-items:center;justify-content:space-between;height:48px}.navbar-brand .logo{display:flex;align-items:center;gap:.5rem;text-decoration:none}.logo-icon{font-size:1.4rem;font-weight:800;color:var(--c-primary);font-family:var(--f-heading)}.logo-text{font-size:1.05rem;font-weight:600;color:var(--c-text-1);font-family:var(--f-heading);letter-spacing:-.3px}.navbar-menu{display:flex;gap:.25rem;align-items:center}.nav-link{color:var(--c-text-3);text-decoration:none;font-weight:500;font-size:.82rem;padding:.4rem .75rem;border-radius:var(--r-sm);transition:all .2s ease;letter-spacing:-.1px}.nav-link:hover{color:var(--c-text-1);background:var(--c-primary-soft)}.navbar-actions{display:flex;gap:.5rem;align-items:center}.btn-outline-white{background:transparent;border:1px solid var(--c-border);color:var(--c-text-2);padding:.4rem 1.1rem;border-radius:var(--r-pill);text-decoration:none;font-weight:500;font-size:.8rem;transition:all .2s ease}.btn-outline-white:hover{border-color:var(--c-primary);color:var(--c-primary);background:var(--c-primary-soft)}.btn-primary-gradient{background:var(--c-primary);color:#fff;padding:.4rem 1.1rem;border-radius:var(--r-pill);text-decoration:none;font-weight:600;font-size:.8rem;border:1px solid var(--c-primary);transition:all .2s ease;box-shadow:var(--shadow-xs)}.btn-primary-gradient:hover{background:#4e4cc6;box-shadow:var(--shadow-glow);transform:translateY(-1px)}.unique-approach-section{background:#fff;padding-bottom:2.5rem;overflow:hidden}.unique-approach__title{display:inline-block;font-family:Be Vietnam Pro,Sora,sans-serif;font-size:3rem;font-weight:600;line-height:60px;color:#0e0c15;margin-bottom:2.5rem;text-align:left;width:100%}@media(min-width:768px){.unique-approach__title{margin-bottom:5rem;text-align:center}}@media(min-width:976px){.unique-approach__title{font-size:3.75rem;font-weight:700;line-height:1.25;margin-bottom:120px}}.unique-approach__title .text-accent{color:#5e5ce6;position:relative}.unique-approach__content{display:flex;flex-direction:column}@media(min-width:768px){.unique-approach__content{flex-direction:row}}.unique-approach__steps{display:grid;gap:1.5rem}@media(min-width:768px){.unique-approach__steps{gap:3rem}}.unique-approach__step{display:grid;gap:.5rem;width:335px}@media(min-width:768px){.unique-approach__step{gap:1rem;width:357px}}.step-badge{display:flex;justify-content:center;align-items:center;border-radius:100px;width:fit-content;padding:4px 12px;font-family:Source Code Pro,monospace;font-size:10px;text-transform:uppercase;letter-spacing:1.5px;color:#0e0c15;margin-bottom:.5rem}@media(min-width:768px){.step-badge{margin-bottom:0;line-height:0}}.step-badge--1{background-color:#5e5ce6;color:#fff}.step-badge--2{background-color:#ff9fd3}.step-badge--3{background-color:#ffc87d}.step-title{font-family:Be Vietnam Pro,Sora,sans-serif;font-size:32px;line-height:40px;color:#0e0c15;margin:0}@media(min-width:768px){.step-title{font-size:40px;line-height:52px;font-weight:600}}.step-desc{font-family:Source Code Pro,monospace;font-size:15px;line-height:20px;color:#4d4d4d;margin:0}@media(min-width:768px){.step-desc{font-size:18px;line-height:1.5}}.unique-approach__phones{width:100%;position:relative;height:455px;margin-top:5rem}@media(min-width:768px){.unique-approach__phones{height:726px;margin-top:0}}.unique-approach__phones img{position:absolute;top:0;right:-90px;height:455px;max-width:432px;object-fit:contain}@media(min-width:768px){.unique-approach__phones img{top:100px;right:-150px;height:550px;max-width:500px}}@media(min-width:1024px){.unique-approach__phones img{top:0;right:-150px;height:100%;max-width:685px}}.intro-section{padding:5rem 0;background:#fff}@media(min-width:768px){.intro-section{padding:120px 0}}.intro-content{display:flex;flex-direction:column;gap:2.5rem}@media(min-width:768px){.intro-content{flex-direction:row;justify-content:space-between;align-items:flex-start;width:100%}}.intro-icon-card{flex-shrink:0;width:120px;height:120px;margin-bottom:2.5rem}@media(min-width:768px){.intro-icon-card{width:140px;height:140px;margin-bottom:0}}@media(min-width:1024px){.intro-icon-card{width:200px;height:200px}}.intro-icon-card img,.intro-icon-card svg{width:100%;height:100%}.intro-math-icon{width:100%;height:100%;background:#fff;border-radius:24px;box-shadow:0 4px 24px #00000014;padding:16px}.intro-text{color:#1a1a2e;max-width:552px}.intro-title{font-family:Be Vietnam Pro,sans-serif;font-size:52px;line-height:65px;font-weight:600;color:#1a1a2e;margin:0 0 .5rem}@media(min-width:1024px){.intro-title{font-size:88px;line-height:1}}.intro-title-accent{color:#5e5ce6}.intro-description{font-size:1.125rem;color:#1a1a2e;margin:0;line-height:1.6}@media(min-width:1024px){.intro-description{font-size:28px;line-height:36px}}.intro-features{list-style:disc;padding-left:1rem;margin-top:2.5rem;color:#1a1a2e}@media(min-width:1024px){.intro-features{margin-top:3rem}}.intro-features li{font-family:Source Code Pro,monospace;font-size:.875rem;font-weight:400;line-height:1.6;margin-bottom:.25rem}@media(min-width:768px){.intro-features li{font-size:1rem}}.hero-section{position:relative;padding:6rem 0 4rem;min-height:88vh;display:flex;align-items:center;overflow:hidden;background-color:#f8f8ff;background-image:linear-gradient(rgba(94,92,230,.06) 1px,transparent 1px),linear-gradient(90deg,rgba(94,92,230,.06) 1px,transparent 1px);background-size:80px 80px}.hero-bg{display:none}.hero-decorations{position:absolute;inset:0;pointer-events:none;z-index:0}.math-symbol{position:absolute;font-family:Be Vietnam Pro,serif;font-weight:700;color:#5e5ce6;pointer-events:none;will-change:transform;z-index:1}.symbol-1{top:8%;left:10%;font-size:2.5rem;opacity:.3;animation:mathFloat 8s ease-in-out infinite}.symbol-2{top:15%;right:12%;font-size:3rem;opacity:.25;animation:mathFloat 10s ease-in-out infinite 1s}.symbol-3{top:40%;left:4%;font-size:4rem;opacity:.2;animation:mathFloat 9s ease-in-out infinite 2s}.symbol-4{bottom:30%;right:8%;font-size:2rem;opacity:.35;animation:mathFloat 7s ease-in-out infinite .5s}.symbol-5{bottom:15%;left:15%;font-size:2.2rem;opacity:.28;animation:mathFloat 11s ease-in-out infinite 3s}.symbol-6{top:25%;right:25%;font-size:1.8rem;opacity:.22;animation:mathFloat 14s ease-in-out infinite 4s}.symbol-7{bottom:40%;left:25%;font-size:1.6rem;opacity:.3;animation:mathFloat 6s ease-in-out infinite 1.5s}.symbol-8{top:55%;right:5%;font-size:2.8rem;opacity:.18;animation:mathFloat 12s ease-in-out infinite 2.5s}.symbol-9{top:5%;left:35%;font-size:1.5rem;opacity:.22;animation:mathFloat 9s ease-in-out infinite 3.5s}.symbol-10{bottom:8%;right:20%;font-size:2rem;opacity:.2;animation:mathFloat 11s ease-in-out infinite 1s}.symbol-11{top:65%;left:8%;font-size:2.4rem;opacity:.18;animation:mathFloat 13s ease-in-out infinite 2s}.symbol-12{bottom:25%;right:35%;font-size:1.8rem;opacity:.25;animation:mathFloat 8s ease-in-out infinite 4.5s}.geo-shape{position:absolute;pointer-events:none;will-change:transform;z-index:1}.geo-sphere{top:4%;left:28%;width:100px;height:100px;color:#5e5ce6;opacity:.55;animation:mathFloat 14s ease-in-out infinite}.geo-cylinder{top:55%;left:5%;width:160px;height:160px;color:#ffb347;opacity:.6;animation:mathFloat 12s ease-in-out infinite 1s}.geo-pyramid{top:30%;right:2%;width:160px;height:160px;color:#ff6b9c;opacity:.55;animation:mathFloat 14s ease-in-out infinite 2s}.geo-cube{bottom:2%;right:8%;width:130px;height:130px;color:#5e5ce6;opacity:.5;animation:mathFloat 10s ease-in-out infinite 4s}@keyframes mathFloat{0%,to{transform:translateY(0) rotate(0)}50%{transform:translateY(-10px) rotate(3deg)}}.hero-content{position:relative;display:flex;flex-direction:column;align-items:center;text-align:center;z-index:1}.hero-text{max-width:720px}.hero-badge{display:inline-flex;align-items:center;gap:.4rem;background:var(--c-surface);border:1px solid var(--c-border);padding:.35rem 1rem;border-radius:var(--r-pill);font-size:.72rem;font-weight:500;color:var(--c-text-3);margin-bottom:1.75rem;box-shadow:var(--shadow-xs)}.badge-icon{font-size:.85rem}.hero-title{font-size:clamp(2.5rem,5.5vw,4.25rem);font-weight:700;line-height:1.12;letter-spacing:-1.5px;margin:0 0 1.5rem;font-family:var(--f-heading);color:var(--c-text-1)}.gradient-text{color:var(--c-primary);background:linear-gradient(135deg,var(--c-primary),#858DFF);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;position:relative;display:inline}.gradient-text:after{content:"";position:absolute;bottom:-6px;left:0;width:100%;height:8px;background:url(https://gcdn.fx2.io/math-master.org/_nuxt/line1.2e3dcbd2.svg) no-repeat center / contain;opacity:.5;pointer-events:none}.hero-description{font-size:1.05rem;line-height:1.7;color:var(--c-text-3);margin:0 auto 2rem;max-width:540px}.hero-actions{display:flex;gap:.75rem;margin-bottom:3.5rem;justify-content:center;flex-wrap:wrap}.btn-primary-large{background:var(--c-primary);color:#fff;padding:.75rem 1.75rem;border-radius:var(--r-md);font-size:.85rem;font-weight:600;text-decoration:none;display:inline-flex;align-items:center;gap:.5rem;transition:all .25s cubic-bezier(.4,0,.2,1);border:none;box-shadow:0 1px 2px #5e5ce633,0 4px 16px #5e5ce633}.btn-primary-large:hover{background:#4e4cc6;box-shadow:0 4px 12px #5e5ce640,0 8px 32px #5e5ce633;transform:translateY(-2px)}.btn-icon{font-size:1rem;transition:transform .2s ease}.btn-primary-large:hover .btn-icon{transform:translate(3px)}.btn-video{background:var(--c-surface);border:1px solid var(--c-border);color:var(--c-text-2);padding:.75rem 1.75rem;border-radius:var(--r-md);font-size:.85rem;font-weight:500;display:inline-flex;align-items:center;gap:.5rem;cursor:pointer;transition:all .25s cubic-bezier(.4,0,.2,1);box-shadow:var(--shadow-xs)}.btn-video:hover{border-color:var(--c-primary);color:var(--c-primary);background:var(--c-primary-soft);transform:translateY(-2px);box-shadow:var(--shadow-sm)}.play-icon{font-size:.7rem}.hero-stats{display:flex;gap:0;justify-content:center}.stat-item{text-align:center;padding:1.25rem 2.25rem;border:1px solid var(--c-border);background:#ffffffb3;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);display:flex;align-items:center;gap:1rem}.stat-item:first-child{border-radius:var(--r-lg) 0 0 var(--r-lg)}.stat-item:last-child{border-radius:0 var(--r-lg) var(--r-lg) 0}.stat-item:not(:last-child){border-right:none}.stat-number{font-size:1.75rem;font-weight:700;color:var(--c-text-1);font-family:var(--f-heading);line-height:1;letter-spacing:-.5px}.stat-label{font-size:.72rem;color:var(--c-text-3);text-align:left;line-height:1.4}.hero-image,.dashboard-preview,.preview-card,.floating-math-symbols,.math-float,.card-chart,.card-icon,.card-title,.card-content,.card-graph,.math-equation,.hero-shape{display:none}.help-section{padding:5rem 0 2rem;background:var(--c-bg)}.help-title{font-size:clamp(2rem,4vw,3rem);font-weight:700;text-align:center;margin-bottom:4rem;font-family:var(--f-heading);color:var(--c-text-1);letter-spacing:-.8px;line-height:1.2}.help-row{display:flex;flex-direction:row;justify-content:flex-end;align-items:flex-start;gap:3.5rem;padding-bottom:4rem}.help-row--reverse{flex-direction:row-reverse}.help-image{flex-shrink:0;width:160px}.help-image img{width:100%;height:auto;display:block}.help-text{max-width:453px}.help-subtitle{font-size:clamp(1.75rem,3vw,2.5rem);font-weight:600;color:var(--c-text-1);margin-bottom:.5rem;font-family:var(--f-heading);line-height:1.3;letter-spacing:-.5px}.dot-accent{color:#155e75;font-weight:700}.help-desc{font-size:1rem;color:var(--c-text-3);line-height:1.7;font-family:var(--f-body)}.features-section{padding:7rem 0;background:var(--c-surface);position:relative;overflow:hidden}.features-bg-dots{position:absolute;inset:0;background-image:radial-gradient(circle,rgba(94,92,230,.06) 1px,transparent 1px);background-size:28px 28px;pointer-events:none;z-index:0}.features-section:before{content:"";position:absolute;top:0;left:50%;transform:translate(-50%);width:min(90%,800px);height:1px;background:linear-gradient(90deg,transparent,var(--c-border),transparent);z-index:1}.features-section .container{position:relative;z-index:1}.section-header{text-align:center;margin-bottom:4rem}.section-title{font-size:clamp(1.75rem,3.5vw,2.75rem);font-weight:700;color:var(--c-text-1);margin:0 0 .75rem;font-family:var(--f-heading);line-height:1.2;letter-spacing:-.8px}.section-description{font-size:1rem;color:var(--c-text-3);margin:0;max-width:450px;margin-inline:auto;line-height:1.6}.features-bento{display:grid;grid-template-columns:repeat(3,1fr);gap:1.25rem}.ft-card{background:#ffffffd9;backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border:1px solid var(--c-border-soft);border-radius:var(--r-xl);padding:2rem 1.75rem;position:relative;overflow:hidden;box-shadow:var(--shadow-xs);transition:all .4s cubic-bezier(.4,0,.2,1);cursor:default;display:flex;flex-direction:column}.ft-card__glow{position:absolute;width:160px;height:160px;border-radius:50%;top:-40px;right:-40px;background:radial-gradient(circle,rgba(94,92,230,.12),transparent 70%);filter:blur(30px);opacity:0;transition:opacity .5s ease;pointer-events:none;z-index:0}.ft-card:hover .ft-card__glow{opacity:1}.ft-card:before{content:"";position:absolute;inset:0;border-radius:inherit;padding:1px;background:conic-gradient(from var(--angle, 0deg),transparent 40%,rgba(94,92,230,.4) 50%,rgba(133,141,255,.4) 55%,transparent 65%);-webkit-mask:linear-gradient(#fff 0 0) content-box,linear-gradient(#fff 0 0);mask:linear-gradient(#fff 0 0) content-box,linear-gradient(#fff 0 0);-webkit-mask-composite:xor;mask-composite:exclude;opacity:0;transition:opacity .4s ease;pointer-events:none}.ft-card:hover:before{opacity:1;animation:rotateBorder 3s linear infinite}@property --angle{syntax: "<angle>"; initial-value: 0deg; inherits: false;}@keyframes rotateBorder{to{--angle: 360deg}}.ft-card:hover{transform:translateY(-8px);box-shadow:0 4px 16px #5e5ce614,0 12px 40px #5e5ce61a;border-color:#5e5ce61f}.ft-card--hero{grid-column:span 2}.ft-card--hero .ft-card__glow{width:240px;height:240px;top:-60px;right:-40px;background:radial-gradient(circle,rgba(94,92,230,.15),transparent 70%)}.ft-card--wide{grid-column:span 2}.ft-card--wide .ft-card__glow{width:200px;height:200px;top:-50px;right:-30px;background:radial-gradient(circle,rgba(20,184,166,.15),transparent 70%)}.ft-badge{display:inline-flex;align-items:center;font-size:.65rem;font-weight:600;letter-spacing:.5px;text-transform:uppercase;padding:.25rem .7rem;border-radius:var(--r-pill);margin-bottom:1.25rem;width:fit-content;position:relative;z-index:1}.ft-badge--purple{background:#5e5ce61a;color:#5e5ce6}.ft-badge--blue{background:#3b82f61a;color:#3b82f6}.ft-badge--green{background:#10b9811a;color:#10b981}.ft-badge--orange{background:#f59e0b1a;color:#d97706}.ft-badge--pink{background:#ec48991a;color:#ec4899}.ft-badge--teal{background:#14b8a61a;color:#14b8a6}.ft-icon{width:52px;height:52px;border-radius:14px;display:flex;align-items:center;justify-content:center;margin-bottom:1.25rem;position:relative;z-index:1;transition:transform .35s cubic-bezier(.4,0,.2,1)}.ft-card:hover .ft-icon{transform:scale(1.1) rotate(-3deg)}.ft-icon svg{width:26px;height:26px}.ft-icon--purple{background:linear-gradient(135deg,#5e5ce61f,#858dff2e);color:#5e5ce6}.ft-icon--blue{background:linear-gradient(135deg,#3b82f61f,#60a5fa2e);color:#3b82f6}.ft-icon--green{background:linear-gradient(135deg,#10b9811f,#34d3992e);color:#10b981}.ft-icon--orange{background:linear-gradient(135deg,#f59e0b1f,#fbbf242e);color:#d97706}.ft-icon--pink{background:linear-gradient(135deg,#ec48991f,#f472b62e);color:#ec4899}.ft-icon--teal{background:linear-gradient(135deg,#14b8a61f,#2dd4bf2e);color:#14b8a6}.ft-title{font-size:1.15rem;font-weight:600;color:var(--c-text-1);margin:0 0 .5rem;font-family:var(--f-heading);letter-spacing:-.2px;position:relative;z-index:1}.ft-desc{font-size:.85rem;color:var(--c-text-3);line-height:1.7;margin:0 0 1.25rem;position:relative;z-index:1;flex:1}.ft-link{font-size:.8rem;font-weight:500;color:var(--c-primary);display:inline-flex;align-items:center;gap:.35rem;cursor:pointer;position:relative;z-index:1;transition:color .25s ease;margin-top:auto}.ft-link:hover{color:#4e4cc6}.ft-arrow{display:inline-block;transition:transform .3s cubic-bezier(.4,0,.2,1)}.ft-card:hover .ft-arrow{transform:translate(5px)}.how-it-works-section{padding:7rem 0;background:var(--c-bg);position:relative}.how-steps-container{display:grid;grid-template-columns:repeat(3,1fr);gap:1.5rem;max-width:960px;margin:0 auto}.how-step-item{text-align:left;padding:1.75rem;background:var(--c-surface);border:1px solid var(--c-border-soft);border-radius:var(--r-xl);transition:all .3s cubic-bezier(.4,0,.2,1);box-shadow:var(--shadow-xs);position:relative}.how-step-item:hover{transform:translateY(-4px);box-shadow:var(--shadow-md)}.how-step-number{display:inline-flex;align-items:center;justify-content:center;font-size:.72rem;font-weight:700;margin:0 0 1.25rem;padding:.3rem .85rem;border-radius:var(--r-pill);color:#fff;font-family:var(--f-heading)}.how-step-item:nth-child(1) .how-step-number{background:var(--c-primary)}.how-step-item:nth-child(2) .how-step-number{background:var(--c-accent-pink);color:var(--c-dark)}.how-step-item:nth-child(3) .how-step-number{background:var(--c-accent-gold);color:var(--c-dark)}.step-connector{display:none}.how-step-title{font-size:1.25rem;font-weight:600;color:var(--c-text-1);margin:0 0 .6rem;font-family:var(--f-heading);letter-spacing:-.3px;line-height:1.3}.how-step-description{font-size:.85rem;color:var(--c-text-3);line-height:1.65;margin:0}.testimonials-section{padding:5rem 0 7rem;background:var(--c-bg);position:relative}.testimonials-grid{display:flex;flex-wrap:wrap;gap:2.5rem 4rem;justify-content:center;max-width:960px;margin:0 auto}.testimonial-card{background:var(--c-surface);border:1px solid var(--c-primary);border-radius:36px;padding:2rem 2.25rem;position:relative;width:calc(50% - 2rem);min-width:280px;margin-bottom:1rem}.testimonial-card--center{width:calc(60% - 2rem);max-width:520px}.bubble-tail{position:absolute;bottom:-28px;left:36px;display:flex;flex-direction:column;align-items:flex-start;gap:4px}.bubble-tail:before,.bubble-tail:after{content:"";border-radius:50%;border:1px solid var(--c-primary);background:transparent}.bubble-tail:before{width:14px;height:14px}.bubble-tail:after{width:9px;height:9px;margin-left:1px}.testimonial-text{font-size:1rem;color:var(--c-text-1);line-height:1.5;margin:0 0 1rem;font-family:var(--f-body)}.testimonial-author{display:flex;align-items:center;gap:.5rem}.author-name-inline{font-weight:400;color:var(--c-primary);font-size:.875rem;font-family:var(--f-heading)}.author-dot{color:var(--c-primary);font-size:.875rem}.author-role-inline{color:var(--c-primary);font-size:.875rem;font-weight:400;font-family:var(--f-heading)}.testimonial-rating,.author-avatar{display:none}.unique-section{padding:5rem 0;background:var(--c-bg);text-align:center}.unique-title{font-size:clamp(2rem,4vw,3rem);font-weight:700;margin-bottom:4rem;font-family:var(--f-heading);color:var(--c-text-1);letter-spacing:-.8px;line-height:1.25}.unique-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:2rem;margin-bottom:4rem}.unique-card{background:var(--c-surface);border:1px solid var(--c-border);border-radius:var(--r-xl);padding:2.5rem 1.5rem;text-align:center;transition:all .3s ease}.unique-card:hover{transform:translateY(-6px);box-shadow:var(--shadow-lg);border-color:var(--c-primary)}.unique-icon{width:64px;height:64px;margin:0 auto 1.5rem}.unique-icon img{width:100%;height:100%;object-fit:contain}.unique-card-title{font-size:1.35rem;font-weight:600;color:var(--c-text-1);margin-bottom:.75rem;font-family:var(--f-heading)}.unique-card-desc{font-size:.95rem;color:var(--c-text-3);line-height:1.6;font-family:var(--f-body)}.unique-mockups{text-align:center;max-width:800px;margin:0 auto}.mockup-center{width:100%;height:auto;display:block}.subjects-section{padding:5rem 0;background:var(--c-surface);text-align:center}.subjects-title{font-size:clamp(2rem,4vw,3rem);font-weight:700;margin-bottom:3rem;font-family:var(--f-heading);color:var(--c-text-1);letter-spacing:-.8px;line-height:1.25}.subjects-grid{display:flex;flex-wrap:wrap;gap:.75rem;justify-content:center;max-width:700px;margin:0 auto}.subject-pill{display:inline-block;padding:.5rem 1.5rem;border:1px solid var(--c-border);border-radius:var(--r-pill);font-size:1rem;font-family:Source Code Pro,monospace;color:var(--c-text-1);background:var(--c-surface);cursor:default;transition:all .3s ease}.subject-pill:hover{background:var(--c-primary);color:#fff;border-color:var(--c-primary);box-shadow:0 4px 40px #5e5ce666}.trusted-section{padding:5rem 0;background:var(--c-bg)}.trusted-header{text-align:center;max-width:548px;margin:0 auto 4rem}.trusted-title{font-size:clamp(2rem,4vw,3rem);font-weight:700;font-family:var(--f-heading);color:var(--c-text-1);letter-spacing:-.8px;margin-bottom:1rem;line-height:1.25}.trusted-desc{font-size:1.05rem;color:var(--c-text-3);line-height:1.7;font-family:var(--f-body)}.trusted-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:1.5rem;max-width:900px;margin:0 auto}.trusted-stat-card{background:var(--c-surface);border:1px solid var(--c-border);border-radius:var(--r-lg);padding:2rem 1rem;text-align:center;display:flex;flex-direction:column;gap:.5rem;transition:all .3s ease}.trusted-stat-card:hover{transform:translateY(-4px);box-shadow:var(--shadow-md);border-color:var(--c-primary)}.trusted-stat-number{font-size:2.5rem;font-weight:700;color:var(--c-primary);font-family:var(--f-heading);line-height:1}.trusted-stat-label{font-size:.85rem;color:var(--c-text-3);font-family:var(--f-body)}.cta-section{padding:7.5rem 0;background:linear-gradient(180deg,#fff,#f5f3ff 40%,#eeedf8);text-align:center;position:relative;z-index:1;overflow:hidden}.cta-deco{position:absolute;color:var(--c-primary);opacity:.08;pointer-events:none}.cta-deco-1{width:80px;height:110px;top:15%;left:8%;animation:float 8s ease-in-out infinite}.cta-deco-2{width:70px;height:70px;bottom:12%;right:10%;animation:float 10s ease-in-out infinite reverse}.cta-content{max-width:580px;margin:0 auto;position:relative}.cta-title{font-size:clamp(1.75rem,3.5vw,2.75rem);font-weight:700;margin:0 0 1.25rem;font-family:var(--f-heading);letter-spacing:-.8px;line-height:1.2;color:var(--c-text-1)}.cta-description{font-size:1rem;color:var(--c-text-3);margin:0 0 2.5rem;line-height:1.7;font-family:var(--f-body)}.btn-cta-primary{background:var(--c-primary);color:#fff;padding:.9rem 2.5rem;border-radius:36px;font-size:.9rem;font-weight:600;text-decoration:none;display:inline-flex;align-items:center;gap:.5rem;transition:all .3s cubic-bezier(.4,0,.2,1);border:none;box-shadow:0 4px 20px #5e5ce633;font-family:var(--f-heading);cursor:pointer}.btn-cta-primary:hover{background:#4e4cc6;transform:translateY(-3px);box-shadow:0 8px 32px #5e5ce64d}.btn-cta-primary .btn-icon{transition:transform .2s ease}.btn-cta-primary:hover .btn-icon{transform:translate(3px)}.cta-note{margin-top:1.5rem;font-size:.82rem;color:var(--c-text-3);font-family:var(--f-body)}.btn-white-large{display:none}.homepage-footer{background:#f7f7fe;color:var(--c-text-2);padding:4rem 0 2rem;border-top:1px solid var(--c-border)}.footer-content{display:grid;grid-template-columns:auto 1fr 1fr 1fr;gap:3rem;margin-bottom:3rem}.footer-logo-img{width:56px;height:64px}.footer-brand-name{font-size:1.75rem;font-weight:600;color:var(--c-text-1);margin-top:1rem;font-family:var(--f-body);line-height:1.3}.footer-title{font-size:.78rem;font-weight:700;margin:0 0 1.25rem;color:var(--c-text-1);text-transform:uppercase;letter-spacing:.5px;font-family:var(--f-body)}.footer-social{display:flex;gap:.75rem;align-items:center}.social-icon{display:flex;align-items:center;justify-content:center;width:48px;height:48px;border-radius:50%;background:var(--c-border-soft);color:var(--c-text-1);transition:all .2s ease}.social-icon:hover{background:var(--c-border);color:var(--c-primary)}.footer-links{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:.6rem}.footer-links a{color:var(--c-text-3);text-decoration:none;font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.42px;transition:color .2s ease;font-family:var(--f-body)}.footer-links a:hover{color:var(--c-primary)}.footer-app-buttons{display:flex;flex-direction:column;gap:.75rem}.footer-app-btn{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;padding:.75rem 1.5rem;border-radius:var(--r-md);font-size:.78rem;font-weight:600;text-decoration:none;text-transform:uppercase;letter-spacing:.42px;font-family:var(--f-body);transition:all .25s cubic-bezier(.4,0,.2,1);border:1px solid var(--c-border)}.footer-app-btn--primary{background:var(--c-surface);color:var(--c-text-1);box-shadow:0 3px 0 0 var(--c-border)}.footer-app-btn--primary:hover{background:var(--c-primary);color:#fff;border-color:var(--c-primary);box-shadow:0 4px 24px #5e5ce640;transform:translateY(-2px)}.footer-app-btn--dark{background:var(--c-text-1);color:#fff;border-color:var(--c-text-1);box-shadow:0 3px #0e0c154d}.footer-app-btn--dark:hover{background:var(--c-primary);border-color:var(--c-primary);box-shadow:0 4px 24px #5e5ce640;transform:translateY(-2px)}.footer-bottom{padding-top:2rem;border-top:1px solid var(--c-border-soft)}.footer-copyright{font-size:.8rem;color:var(--c-text-3);margin:0;font-family:var(--f-body)}@media(max-width:1024px){.features-bento{grid-template-columns:repeat(2,1fr)}.ft-card--hero,.ft-card--wide{grid-column:span 2}.testimonials-grid{grid-template-columns:repeat(2,1fr)}.how-steps-container{grid-template-columns:1fr;gap:1rem}.navbar-menu{display:none}.footer-content{grid-template-columns:1fr 1fr}.deco-math-1{width:100px;height:100px;top:5%;left:3%}.deco-math-2{width:90px;height:90px}}@media(max-width:768px){.hero-section{padding:4rem 0 2.5rem;min-height:auto}.hero-title{font-size:2.25rem;letter-spacing:-1px}.hero-actions{flex-direction:column;align-items:center}.hero-stats{flex-direction:column;gap:0}.stat-item{border-radius:0!important;border-right:1px solid var(--c-border)!important}.stat-item:first-child{border-radius:var(--r-lg) var(--r-lg) 0 0!important}.stat-item:last-child{border-radius:0 0 var(--r-lg) var(--r-lg)!important}.stat-item:not(:last-child){border-bottom:none}.features-bento,.testimonials-grid{grid-template-columns:1fr}.ft-card--hero,.ft-card--wide{grid-column:span 1}.footer-content{grid-template-columns:1fr;gap:1.5rem}.footer-bottom{flex-direction:column;gap:1rem;text-align:center}.cta-content{padding:3rem 1.5rem}.deco-math-1{width:80px;height:80px;opacity:.5}.deco-math-2{width:70px;height:70px;opacity:.5}}@media(max-width:480px){.hero-title{font-size:1.85rem}.hero-description{font-size:.9rem}.ft-card{padding:1.5rem}.deco-math{display:none}}.page-hero{padding:120px 0 80px;background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;text-align:center;position:relative;overflow:hidden}.page-hero:before{content:"";position:absolute;inset:0;background:url("data:image/svg+xml,%3Csvg width='60' height='60' viewBox='0 0 60 60' xmlns='http://www.w3.org/2000/svg'%3E%3Cg fill='none' fill-rule='evenodd'%3E%3Cg fill='%23ffffff' fill-opacity='0.05'%3E%3Cpath d='M36 34v-4h-2v4h-4v2h4v4h2v-4h4v-2h-4zm0-30V0h-2v4h-4v2h4v4h2V6h4V4h-4zM6 34v-4H4v4H0v2h4v4h2v-4h4v-2H6zM6 4V0H4v4H0v2h4v4h2V6h4V4H6z'/%3E%3C/g%3E%3C/g%3E%3C/svg%3E");opacity:.1}.page-title{font-size:3.5rem;font-weight:800;margin-bottom:1.5rem;position:relative;z-index:1}.page-subtitle{font-size:1.25rem;opacity:.95;max-width:700px;margin:0 auto;line-height:1.8;position:relative;z-index:1}.section-title{font-size:2.5rem;font-weight:700;text-align:center;margin-bottom:3rem;color:#1a202c}.section-text{font-size:1.1rem;line-height:1.8;color:#4a5568;margin-bottom:1.5rem}.features-page-hero{padding:8rem 0 4rem;background:var(--c-bg, #FAFAFF);text-align:center;position:relative;overflow:hidden}.features-hero-dots{position:absolute;inset:0;background-image:radial-gradient(circle,rgba(94,92,230,.06) 1px,transparent 1px);background-size:28px 28px;pointer-events:none}.features-hero-content{position:relative;z-index:1;display:flex;flex-direction:column;align-items:center}.features-hero-title{font-size:clamp(2.5rem,5vw,4rem);font-weight:700;line-height:1.15;letter-spacing:-1.5px;margin:0 0 1.25rem;font-family:Be Vietnam Pro,Inter,sans-serif;color:var(--c-text-1, #0E0C15)}.features-hero-desc{font-size:1.05rem;line-height:1.7;color:var(--c-text-3, #6E6A80);max-width:560px;margin:0 auto}.features-page-grid{padding:2rem 0 5rem;background:var(--c-surface, #ffffff);position:relative;overflow:hidden}.fp-bento{display:grid;grid-template-columns:repeat(3,1fr);gap:1.25rem}.fp-card{padding:2rem 1.75rem 1.75rem}.fp-details{list-style:none;padding:0;margin:.5rem 0 0;position:relative;z-index:1}.fp-details li{display:flex;align-items:center;gap:.75rem;padding:.6rem 0;font-size:.85rem;color:var(--c-text-2, #3F3A52);border-bottom:1px solid var(--c-border-soft, rgba(0, 0, 0, .04));line-height:1.5}.fp-details li:last-child{border-bottom:none}.fp-check{display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;min-width:22px;border-radius:6px;background:linear-gradient(135deg,#5e5ce61f,#858dff33);color:#5e5ce6}.fp-check svg{width:13px;height:13px}.fp-check--green{background:linear-gradient(135deg,#10b9811f,#34d39933);color:#10b981}.fp-check--blue{background:linear-gradient(135deg,#3b82f61f,#60a5fa33);color:#3b82f6}.fp-check--orange{background:linear-gradient(135deg,#f59e0b1f,#fbbf2433);color:#d97706}.fp-check--pink{background:linear-gradient(135deg,#ec48991f,#f472b633);color:#ec4899}.fp-check--teal{background:linear-gradient(135deg,#14b8a61f,#2dd4bf33);color:#14b8a6}.about-hero{padding:8rem 0 5rem;background:var(--c-bg, #FAFAFF);text-align:center;position:relative;overflow:hidden}.about-hero-dots{position:absolute;inset:0;background-image:radial-gradient(circle,rgba(94,92,230,.06) 1px,transparent 1px);background-size:28px 28px;pointer-events:none}.about-hero-content{position:relative;z-index:1;display:flex;flex-direction:column;align-items:center}.about-hero-title{font-size:clamp(2.5rem,5vw,4rem);font-weight:700;line-height:1.15;letter-spacing:-1.5px;margin:0 0 1.25rem;font-family:Be Vietnam Pro,Inter,sans-serif;color:var(--c-text-1, #0E0C15)}.about-hero-desc{font-size:1.1rem;line-height:1.7;color:var(--c-text-3, #6E6A80);max-width:580px;margin:0 auto}.about-story-section{padding:5rem 0;background:var(--c-surface, #ffffff);position:relative}.about-story-section:before{content:"";position:absolute;top:0;left:50%;transform:translate(-50%);width:min(90%,800px);height:1px;background:linear-gradient(90deg,transparent,var(--c-border, rgba(0,0,0,.06)),transparent)}.about-story-grid{display:grid;grid-template-columns:1fr 1fr;gap:3.5rem;align-items:center}.about-story-text{max-width:520px}.about-label{display:inline-flex;align-items:center;gap:.5rem;font-size:.75rem;font-weight:600;letter-spacing:.3px;text-transform:uppercase;color:var(--c-primary, #5E5CE6);margin-bottom:1.25rem}.about-label svg{opacity:.7}.about-label--blue{color:#3b82f6}.about-heading{font-size:clamp(1.75rem,3.5vw,2.5rem);font-weight:700;color:var(--c-text-1, #0E0C15);margin:0 0 1.25rem;font-family:Be Vietnam Pro,Inter,sans-serif;line-height:1.2;letter-spacing:-.8px}.about-body{font-size:.95rem;color:var(--c-text-3, #6E6A80);line-height:1.8;margin:0 0 1rem}.about-story-visual{display:flex;justify-content:center}.about-visual-card{background:#ffffffd9;backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border:1px solid var(--c-border-soft, rgba(0, 0, 0, .04));border-radius:var(--r-xl, 20px);padding:2.5rem 2rem;position:relative;overflow:hidden;box-shadow:var(--shadow-sm, 0 2px 8px rgba(0,0,0,.04));transition:all .4s cubic-bezier(.4,0,.2,1);max-width:380px;width:100%}.about-visual-card:before{content:"";position:absolute;width:200px;height:200px;border-radius:50%;top:-60px;right:-60px;background:radial-gradient(circle,rgba(94,92,230,.1),transparent 70%);filter:blur(30px);pointer-events:none}.about-visual-card:hover{transform:translateY(-6px);box-shadow:0 4px 16px #5e5ce614,0 12px 40px #5e5ce61a;border-color:#5e5ce61f}.about-visual-icon{width:56px;height:56px;border-radius:16px;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#5e5ce61f,#858dff2e);color:var(--c-primary, #5E5CE6);margin-bottom:1.25rem}.about-visual-icon svg{width:28px;height:28px}.about-visual-title{font-size:1.25rem;font-weight:700;color:var(--c-text-1, #0E0C15);margin:0 0 .5rem;font-family:Be Vietnam Pro,Inter,sans-serif;letter-spacing:-.3px}.about-visual-desc{font-size:.85rem;color:var(--c-text-3, #6E6A80);line-height:1.6;margin:0 0 1.5rem}.about-visual-stats{display:flex;gap:0;border-top:1px solid var(--c-border-soft, rgba(0, 0, 0, .06));padding-top:1.25rem}.about-stat{flex:1;text-align:center;position:relative}.about-stat:not(:last-child):after{content:"";position:absolute;right:0;top:10%;height:80%;width:1px;background:var(--c-border-soft, rgba(0, 0, 0, .06))}.about-stat-num{display:block;font-size:1.5rem;font-weight:700;color:var(--c-primary, #5E5CE6);font-family:Be Vietnam Pro,Inter,sans-serif;letter-spacing:-.5px;line-height:1;margin-bottom:.25rem}.about-stat-label{font-size:.7rem;color:var(--c-text-3, #6E6A80);text-transform:uppercase;letter-spacing:.3px;font-weight:500}.about-vision-section{padding:5rem 0;background:var(--c-bg, #FAFAFF);position:relative;overflow:hidden}.about-vision-card{display:flex;align-items:center;gap:2.5rem;background:#ffffffe6;backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border:1px solid var(--c-border-soft, rgba(0, 0, 0, .04));border-radius:var(--r-xl, 20px);padding:3rem;position:relative;z-index:1;box-shadow:var(--shadow-sm, 0 2px 8px rgba(0,0,0,.04));transition:all .4s cubic-bezier(.4,0,.2,1);overflow:hidden}.about-vision-card:before{content:"";position:absolute;width:300px;height:300px;border-radius:50%;top:-100px;left:-80px;background:radial-gradient(circle,rgba(59,130,246,.08),transparent 70%);filter:blur(40px);pointer-events:none}.about-vision-card:hover{transform:translateY(-4px);box-shadow:0 4px 16px #3b82f60f,0 12px 40px #3b82f614;border-color:#3b82f61f}.about-vision-icon{flex-shrink:0;width:72px;height:72px;border-radius:20px;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#3b82f61a,#60a5fa29);color:#3b82f6}.about-vision-icon svg{width:34px;height:34px}.about-vision-content{flex:1;min-width:0}.about-values-section{padding:5rem 0 6rem;background:var(--c-surface, #ffffff);position:relative}.about-values-section:before{content:"";position:absolute;top:0;left:50%;transform:translate(-50%);width:min(90%,800px);height:1px;background:linear-gradient(90deg,transparent,var(--c-border, rgba(0,0,0,.06)),transparent)}.about-section-header{text-align:center;margin-bottom:3rem;display:flex;flex-direction:column;align-items:center}.about-values-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:1.25rem;max-width:800px;margin:0 auto}.about-value-card{min-height:180px}.about-benefits-section{padding:5rem 0;background:var(--c-bg, #FAFAFF);position:relative;overflow:hidden}.about-benefits-desc{font-size:1rem;color:var(--c-text-3, #6E6A80);max-width:480px;margin:0 auto;line-height:1.6;text-align:center}.about-benefits-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1.25rem;position:relative;z-index:1}.about-benefit-card{padding:2rem 1.75rem 1.75rem}.about-benefit-highlight{display:flex;align-items:center;gap:.75rem;padding:.75rem 1rem;background:var(--c-primary-soft, rgba(94, 92, 230, .08));border-radius:var(--r-md, 12px);margin-top:auto;position:relative;z-index:1}.about-benefit-stat{font-size:1.1rem;font-weight:700;color:var(--c-primary, #5E5CE6);font-family:Be Vietnam Pro,Inter,sans-serif;letter-spacing:-.3px;white-space:nowrap}.about-benefit-stat-text{font-size:.78rem;color:var(--c-text-2, #3F3A52);line-height:1.4}.about-cta-section{padding:5rem 0 6rem;background:var(--c-surface, #ffffff);position:relative}.about-cta-section:before{content:"";position:absolute;top:0;left:50%;transform:translate(-50%);width:min(90%,800px);height:1px;background:linear-gradient(90deg,transparent,var(--c-border, rgba(0,0,0,.06)),transparent)}.about-cta-card{text-align:center;padding:4rem 2rem;border-radius:var(--r-xl, 20px);background:var(--c-bg, #FAFAFF);border:1px solid var(--c-border-soft, rgba(0, 0, 0, .04));position:relative;overflow:hidden;display:flex;flex-direction:column;align-items:center}.about-cta-glow{position:absolute;width:400px;height:400px;border-radius:50%;top:-150px;left:50%;transform:translate(-50%);background:radial-gradient(circle,rgba(94,92,230,.06),transparent 70%);filter:blur(50px);pointer-events:none}.about-cta-title{font-size:clamp(1.75rem,3.5vw,2.5rem);font-weight:700;color:var(--c-text-1, #0E0C15);margin:0 0 1rem;font-family:Be Vietnam Pro,Inter,sans-serif;line-height:1.2;letter-spacing:-.8px}.about-cta-desc{font-size:1rem;color:var(--c-text-3, #6E6A80);max-width:500px;margin:0 auto 2rem;line-height:1.7}.about-cta-actions{display:flex;gap:.75rem;justify-content:center;flex-wrap:wrap;position:relative;z-index:1}@media(max-width:968px){.about-story-grid{grid-template-columns:1fr;gap:2.5rem}.about-story-text{max-width:100%}.about-story-visual{order:-1}.about-visual-card{max-width:100%}.about-vision-card{flex-direction:column;text-align:center;padding:2.5rem 2rem;gap:1.5rem}.about-vision-content .about-label{justify-content:center}.about-values-grid{grid-template-columns:1fr}.about-benefits-grid{grid-template-columns:1fr;max-width:420px;margin:0 auto}}@media(max-width:640px){.about-hero{padding:5rem 0 3rem}.about-hero-title{font-size:2rem;letter-spacing:-.8px}.about-hero-desc{font-size:.95rem}.about-story-section,.about-vision-section,.about-values-section,.about-benefits-section,.about-cta-section{padding:3rem 0}.about-heading{font-size:1.5rem}.about-vision-card{padding:2rem 1.5rem}.about-visual-stats{flex-direction:column;gap:1rem}.about-stat:not(:last-child):after{display:none}.about-stat{padding-bottom:1rem;border-bottom:1px solid var(--c-border-soft, rgba(0, 0, 0, .06))}.about-stat:last-child{padding-bottom:0;border-bottom:none}.about-cta-card{padding:3rem 1.5rem}.about-cta-title{font-size:1.5rem}}.pricing-section{padding:100px 0;background:#f8f9fa}.pricing-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:2.5rem;max-width:1200px;margin:0 auto 5rem}.pricing-card{background:#fff;border-radius:20px;padding:3rem 2.5rem;box-shadow:0 10px 40px #00000014;transition:all .3s ease;position:relative;border:2px solid transparent}.pricing-card.highlighted{border-color:#667eea;transform:scale(1.05);box-shadow:0 20px 60px #667eea40}.pricing-card:hover{transform:translateY(-10px) scale(1.02);box-shadow:0 20px 60px #00000026}.pricing-card.highlighted:hover{transform:translateY(-10px) scale(1.07)}.popular-badge{position:absolute;top:-15px;left:50%;transform:translate(-50%);background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;padding:.5rem 1.5rem;border-radius:50px;font-size:.85rem;font-weight:700;box-shadow:0 4px 15px #667eea66}.plan-name{font-size:1.5rem;font-weight:700;color:#1a202c;margin-bottom:1rem;text-align:center}.plan-price{text-align:center;margin-bottom:1rem}.price{font-size:3rem;font-weight:800;color:#667eea;display:block}.period{font-size:1rem;color:#718096}.plan-description{text-align:center;color:#4a5568;margin-bottom:2rem;font-size:.95rem}.plan-features{list-style:none;padding:0;margin:2rem 0}.plan-features li{padding:.75rem 0;color:#2d3748;display:flex;align-items:center;font-size:.95rem}.pricing-faq{max-width:1000px;margin:5rem auto 0}.faq-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:2rem;margin-top:2rem}.faq-item{background:#fff;padding:2rem;border-radius:15px;box-shadow:0 5px 20px #0000000d;transition:all .3s ease}.faq-item:hover{transform:translateY(-5px);box-shadow:0 10px 30px #0000001a}.faq-item h4{font-size:1.1rem;font-weight:600;color:#1a202c;margin-bottom:1rem}.faq-item p{color:#4a5568;line-height:1.6;font-size:.95rem}.contact-section{padding:100px 0;background:#fff}.contact-content{display:grid;grid-template-columns:1fr 1.5fr;gap:4rem;max-width:1200px;margin:0 auto}.contact-info{display:flex;flex-direction:column;gap:2rem}.info-card{background:linear-gradient(135deg,#f8f9fa,#fff);padding:2rem;border-radius:15px;border-left:4px solid #667eea;transition:all .3s ease}.info-card:hover{transform:translate(10px);box-shadow:0 10px 30px #0000001a}.info-icon{font-size:2.5rem;margin-bottom:1rem;display:block}.info-card h3{font-size:1.2rem;font-weight:700;color:#1a202c;margin-bottom:.75rem}.info-card p{color:#4a5568;margin:.5rem 0;font-size:.95rem}.contact-form-wrapper{background:linear-gradient(135deg,#f8f9fa,#fff);padding:3rem;border-radius:20px;box-shadow:0 10px 40px #00000014}.contact-form-wrapper h2{font-size:2rem;font-weight:700;color:#1a202c;margin-bottom:2rem}.contact-form .form-group{margin-bottom:1.5rem}.contact-form label{display:block;font-weight:600;color:#2d3748;margin-bottom:.5rem;font-size:.95rem}.contact-form .form-control{width:100%;padding:.875rem 1rem;border:2px solid #e2e8f0;border-radius:10px;font-size:1rem;transition:all .3s ease;background:#fff}.contact-form .form-control:focus{outline:none;border-color:#667eea;box-shadow:0 0 0 3px #667eea1a}.contact-form textarea.form-control{resize:vertical;min-height:120px}@media(max-width:968px){.page-title{font-size:2.5rem}.page-subtitle{font-size:1.1rem}.fp-bento{grid-template-columns:repeat(2,1fr)}.fp-bento .ft-card--hero,.fp-bento .ft-card--wide{grid-column:span 2}.contact-content{grid-template-columns:1fr;gap:3rem}.pricing-grid{grid-template-columns:1fr}.pricing-card.highlighted{transform:scale(1)}.values-grid,.faq-grid{grid-template-columns:1fr}}@media(max-width:640px){.page-hero,.features-page-hero{padding:5rem 0 2.5rem}.page-title{font-size:2rem}.section-title{font-size:1.8rem}.fp-bento{grid-template-columns:1fr}.fp-bento .ft-card--hero,.fp-bento .ft-card--wide{grid-column:span 1}.fp-card{padding:1.5rem}.contact-form-wrapper{padding:2rem 1.5rem}.cta-content h2{font-size:2rem}}@keyframes contactFadeUp{0%{opacity:0;transform:translateY(28px)}to{opacity:1;transform:translateY(0)}}.contact-animate-in{animation:contactFadeUp .7s cubic-bezier(.22,1,.36,1) both}.contact-hero{padding:8rem 0 4rem;background:var(--c-bg, #FAFAFF);text-align:center;position:relative;overflow:hidden}.contact-hero-dots{position:absolute;inset:0;background-image:radial-gradient(circle,rgba(94,92,230,.06) 1px,transparent 1px);background-size:28px 28px;pointer-events:none}.contact-hero-content{position:relative;z-index:1;display:flex;flex-direction:column;align-items:center}.contact-hero-title{font-size:clamp(2.5rem,5vw,4rem);font-weight:700;line-height:1.15;letter-spacing:-1.5px;margin:0 0 1.25rem;font-family:var(--f-heading, "Be Vietnam Pro", sans-serif);color:var(--c-text-1, #0E0C15)}.contact-hero-desc{font-size:1.1rem;line-height:1.7;color:var(--c-text-3, #756B85);max-width:560px;margin:0 auto}.contact-main-section{padding:1rem 0 5rem;background:var(--c-bg, #FAFAFF);position:relative}.contact-grid{display:grid;grid-template-columns:1fr 1.3fr;gap:2rem;max-width:1060px;margin:0 auto;align-items:start}.contact-info-panel{display:flex;flex-direction:column;gap:1.25rem}.contact-info-card{background:#ffffffe0;backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border:1px solid var(--c-border-soft, #F0EDF8);border-radius:var(--r-xl, 24px);padding:1.75rem 1.5rem;position:relative;overflow:hidden;box-shadow:var(--shadow-sm, 0 2px 4px rgba(14, 12, 21, .03), 0 4px 12px rgba(14, 12, 21, .04));transition:all .3s ease;display:flex;align-items:flex-start;gap:1rem}.contact-info-card:before{content:"";position:absolute;width:140px;height:140px;border-radius:50%;top:-50px;right:-50px;background:radial-gradient(circle,rgba(94,92,230,.1),transparent 70%);filter:blur(25px);opacity:0;transition:opacity .5s ease;pointer-events:none;z-index:0}.contact-info-card:hover:before{opacity:1}.contact-info-card:hover{transform:translateY(-6px);box-shadow:0 4px 16px #5e5ce614,0 12px 36px #5e5ce61a;border-color:#5e5ce61f}.contact-info-icon{display:flex;align-items:center;justify-content:center;width:48px;height:48px;min-width:48px;border-radius:14px;background:linear-gradient(135deg,#5e5ce61a,#858dff26);color:var(--c-primary, #5E5CE6);font-size:1.25rem;position:relative;z-index:1;transition:transform .25s ease}.contact-info-card:hover .contact-info-icon{transform:scale(1.08)}.contact-info-text{position:relative;z-index:1}.contact-info-title{font-family:var(--f-heading, "Be Vietnam Pro", sans-serif);font-size:1.05rem;font-weight:700;color:var(--c-text-1, #0E0C15);margin:0 0 .35rem;letter-spacing:-.2px}.contact-info-value{font-size:.88rem;color:var(--c-text-3, #756B85);line-height:1.6;margin:0}.contact-trust-notes{display:flex;flex-direction:column;gap:.75rem;margin-top:.5rem}.contact-trust-note{display:flex;align-items:center;gap:.65rem;padding:.85rem 1.25rem;background:#ffffffb3;border:1px solid var(--c-border-soft, #F0EDF8);border-radius:var(--r-md, 16px);font-size:.82rem;color:var(--c-text-2, #3F3A52);line-height:1.45}.contact-trust-icon{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;min-width:28px;border-radius:8px;background:linear-gradient(135deg,#10b9811f,#34d39933);color:#10b981;font-size:.78rem}.contact-form-card{background:#ffffffeb;backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border:1px solid var(--c-border-soft, #F0EDF8);border-radius:var(--r-xl, 24px);padding:2.5rem 2rem;box-shadow:0 2px 4px #0e0c1508,0 8px 24px #0e0c150f;position:relative;overflow:hidden}.contact-form-card:before{content:"";position:absolute;width:200px;height:200px;border-radius:50%;top:-80px;right:-60px;background:radial-gradient(circle,rgba(94,92,230,.08),transparent 70%);filter:blur(35px);pointer-events:none;z-index:0}.contact-form-title{font-family:var(--f-heading, "Be Vietnam Pro", sans-serif);font-size:1.35rem;font-weight:700;color:var(--c-text-1, #0E0C15);letter-spacing:-.3px;margin:0 0 .4rem;position:relative;z-index:1}.contact-form-subtitle{font-size:.88rem;color:var(--c-text-3, #756B85);margin:0 0 2rem;line-height:1.5;position:relative;z-index:1}.contact-form{display:flex;flex-direction:column;gap:1.25rem;position:relative;z-index:1}.contact-form-group{display:flex;flex-direction:column;gap:.4rem}.contact-form-row{display:grid;grid-template-columns:1fr 1fr;gap:1.25rem}.contact-form-label{font-family:var(--f-heading, "Be Vietnam Pro", sans-serif);font-size:.82rem;font-weight:600;color:var(--c-text-2, #3F3A52);letter-spacing:.1px}.contact-form-label span{color:var(--c-primary, #5E5CE6);margin-left:2px}.contact-form-input,.contact-form-select,.contact-form-textarea{width:100%;padding:.85rem 1rem;font-size:.88rem;font-family:inherit;color:var(--c-text-1, #0E0C15);background:#fffc;border:1.5px solid var(--c-border, #E8E5F0);border-radius:var(--r-md, 16px);outline:none;transition:all .25s ease;-webkit-appearance:none;appearance:none}.contact-form-input::placeholder,.contact-form-textarea::placeholder{color:var(--c-text-3, #756B85);opacity:.6}.contact-form-input:focus,.contact-form-select:focus,.contact-form-textarea:focus{border-color:var(--c-primary, #5E5CE6);box-shadow:0 0 0 4px #5e5ce61a;background:#fff}.contact-form-select{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%23756B85' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 1rem center;padding-right:2.5rem;cursor:pointer}.contact-form-textarea{resize:vertical;min-height:120px;line-height:1.6}.contact-submit-btn{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;width:100%;padding:.95rem 1.5rem;background:var(--c-primary, #5E5CE6);color:#fff;border:none;border-radius:var(--r-md, 16px);font-family:var(--f-heading, "Be Vietnam Pro", sans-serif);font-size:.92rem;font-weight:600;letter-spacing:-.1px;cursor:pointer;transition:all .3s ease;box-shadow:0 2px 8px #5e5ce633,0 4px 16px #5e5ce626;margin-top:.5rem}.contact-submit-btn:hover{background:#4e4cc6;transform:translateY(-3px);box-shadow:0 4px 12px #5e5ce640,0 8px 32px #5e5ce633}.contact-submit-btn:active{transform:translateY(-1px)}.contact-submit-btn svg{opacity:.9;transition:transform .2s ease}.contact-submit-btn:hover svg{transform:translate(3px)}@media(max-width:968px){.contact-grid{grid-template-columns:1fr;max-width:560px;margin:0 auto}.contact-info-panel{order:2}.contact-form-card{order:1}}@media(max-width:640px){.contact-hero{padding:5rem 0 2.5rem}.contact-hero-title{font-size:2rem;letter-spacing:-.8px}.contact-hero-desc{font-size:.95rem}.contact-main-section{padding:.5rem 0 3rem}.contact-form-card{padding:1.75rem 1.5rem}.contact-form-row{grid-template-columns:1fr}.contact-info-card{padding:1.5rem 1.25rem}.contact-info-card:hover{transform:none}}@keyframes pricingFadeUp{0%{opacity:0;transform:translateY(32px)}to{opacity:1;transform:translateY(0)}}.pricing-animate-in{animation:pricingFadeUp .7s cubic-bezier(.22,1,.36,1) both}.pricing-animate-in:nth-child(1){animation-delay:0s}.pricing-animate-in:nth-child(2){animation-delay:.1s}.pricing-animate-in:nth-child(3){animation-delay:.2s}.pricing-animate-in:nth-child(4){animation-delay:.3s}.pricing-hero{padding:8rem 0 4rem;background:var(--c-bg, #FAFAFF);text-align:center;position:relative;overflow:hidden}.pricing-hero-dots{position:absolute;inset:0;background-image:radial-gradient(circle,rgba(94,92,230,.06) 1px,transparent 1px);background-size:28px 28px;pointer-events:none}.pricing-hero-content{position:relative;z-index:1;display:flex;flex-direction:column;align-items:center}.pricing-hero-title{font-size:clamp(2.5rem,5vw,4rem);font-weight:700;line-height:1.15;letter-spacing:-1.5px;margin:0 0 1.25rem;font-family:var(--f-heading, "Be Vietnam Pro", sans-serif);color:var(--c-text-1, #0E0C15)}.pricing-hero-desc{font-size:1.1rem;line-height:1.7;color:var(--c-text-3, #756B85);max-width:560px;margin:0 auto}.pricing-cards-section{padding:1rem 0 5rem;background:var(--c-bg, #FAFAFF);position:relative}.pricing-cards-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1.5rem;align-items:center;max-width:1060px;margin:0 auto}.pricing-plan-card{background:#ffffffe0;backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border:1px solid var(--c-border-soft, #F0EDF8);border-radius:var(--r-xl, 24px);padding:2.5rem 2rem;position:relative;overflow:hidden;box-shadow:var(--shadow-sm, 0 2px 4px rgba(14, 12, 21, .03), 0 4px 12px rgba(14, 12, 21, .04));transition:all .3s ease;display:flex;flex-direction:column}.pricing-plan-card:before{content:"";position:absolute;width:180px;height:180px;border-radius:50%;top:-60px;right:-60px;background:radial-gradient(circle,rgba(94,92,230,.1),transparent 70%);filter:blur(30px);opacity:0;transition:opacity .5s ease;pointer-events:none;z-index:0}.pricing-plan-card:hover:before{opacity:1}.pricing-plan-card:hover{transform:translateY(-10px);box-shadow:0 6px 20px #5e5ce61a,0 16px 48px #5e5ce621;border-color:#5e5ce62e}.pricing-plan-card--featured{border-color:#5e5ce640;background:#fffffff2;transform:scale(1.04);box-shadow:0 4px 16px #5e5ce614,0 16px 48px #5e5ce61f;z-index:2}.pricing-plan-card--featured:before{opacity:1;width:260px;height:260px;top:-80px;right:-60px;background:radial-gradient(circle,rgba(94,92,230,.16),transparent 70%)}.pricing-plan-card--featured:hover{transform:scale(1.04) translateY(-10px);box-shadow:0 8px 28px #5e5ce624,0 24px 64px #5e5ce62e;border-color:#5e5ce64d}.pricing-plan-card--featured:hover .pricing-plan-btn--primary{background:#4e4cc6;box-shadow:0 6px 20px #5e5ce659,0 10px 40px #5e5ce640;filter:brightness(1.08)}.pricing-popular-badge{display:inline-flex;align-items:center;gap:.35rem;background:var(--c-primary, #5E5CE6);color:#fff;font-size:.68rem;font-weight:600;letter-spacing:.5px;text-transform:uppercase;padding:.35rem .9rem;border-radius:var(--r-pill, 100px);margin-bottom:1.25rem;width:fit-content;box-shadow:0 2px 12px #5e5ce64d;position:relative;z-index:1}.pricing-popular-badge svg{opacity:.9}.pricing-plan-header{margin-bottom:1.5rem;position:relative;z-index:1}.pricing-plan-name{font-size:1.35rem;font-weight:700;color:var(--c-text-1, #0E0C15);margin:0 0 .35rem;font-family:var(--f-heading, "Be Vietnam Pro", sans-serif);letter-spacing:-.3px}.pricing-plan-desc{font-size:.88rem;color:var(--c-text-3, #756B85);line-height:1.5;margin:0}.pricing-plan-price-block{display:flex;align-items:baseline;gap:.15rem;margin-bottom:1.75rem;position:relative;z-index:1}.pricing-plan-price{font-size:clamp(2.25rem,3.5vw,2.75rem);font-weight:800;color:var(--c-text-1, #0E0C15);font-family:var(--f-heading, "Be Vietnam Pro", sans-serif);letter-spacing:-1px;line-height:1}.pricing-plan-card--featured .pricing-plan-price{background:linear-gradient(135deg,var(--c-primary, #5E5CE6),#858DFF);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.pricing-plan-period{font-size:.9rem;font-weight:500;color:var(--c-text-3, #756B85)}.pricing-plan-btn{display:inline-flex;align-items:center;justify-content:center;width:100%;padding:.85rem 1.5rem;border-radius:var(--r-md, 16px);font-size:.88rem;font-weight:600;text-decoration:none;transition:all .3s ease;cursor:pointer;position:relative;z-index:1;font-family:var(--f-heading, "Be Vietnam Pro", sans-serif);letter-spacing:-.1px}.pricing-plan-btn--primary{background:var(--c-primary, #5E5CE6);color:#fff;border:1px solid var(--c-primary, #5E5CE6);box-shadow:0 2px 8px #5e5ce633,0 4px 16px #5e5ce626}.pricing-plan-btn--primary:hover{background:#4e4cc6;transform:translateY(-2px);box-shadow:0 4px 12px #5e5ce640,0 8px 32px #5e5ce633}.pricing-plan-btn--outline{background:transparent;color:var(--c-text-1, #0E0C15);border:1px solid var(--c-border, #E8E5F0)}.pricing-plan-btn--outline:hover{border-color:var(--c-primary, #5E5CE6);color:var(--c-primary, #5E5CE6);background:#5e5ce60d;transform:translateY(-2px);box-shadow:var(--shadow-sm, 0 2px 4px rgba(14, 12, 21, .03), 0 4px 12px rgba(14, 12, 21, .04))}.pricing-plan-divider{width:100%;height:1px;background:linear-gradient(90deg,transparent,var(--c-border, #E8E5F0),transparent);margin:1.75rem 0;position:relative;z-index:1}.pricing-plan-features{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:.75rem;position:relative;z-index:1;flex:1}.pricing-plan-features li{display:flex;align-items:center;gap:.75rem;font-size:.88rem;color:var(--c-text-2, #3F3A52);line-height:1.45}.pricing-check{display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;min-width:22px;border-radius:6px;background:linear-gradient(135deg,#10b9811f,#34d39933);color:#10b981;transition:transform .2s ease}.pricing-check--primary{background:linear-gradient(135deg,#5e5ce61f,#858dff33);color:#5e5ce6}.pricing-plan-features li:hover .pricing-check{transform:scale(1.15)}.pricing-comparison-section{padding:5rem 0;background:var(--c-bg, #FAFAFF);position:relative;overflow:hidden}.pricing-comparison-section:before{content:"";position:absolute;top:0;left:50%;transform:translate(-50%);width:min(90%,800px);height:1px;background:linear-gradient(90deg,transparent,var(--c-border, #E8E5F0),transparent);z-index:1}.pricing-comparison-header{text-align:center;margin-bottom:3rem;display:flex;flex-direction:column;align-items:center;position:relative;z-index:1}.pricing-comparison-title{font-size:clamp(1.75rem,3.5vw,2.75rem);font-weight:700;color:var(--c-text-1, #0E0C15);margin:0;font-family:var(--f-heading, "Be Vietnam Pro", sans-serif);line-height:1.2;letter-spacing:-.8px}.pricing-comparison-table-wrap{max-width:900px;margin:0 auto;background:var(--c-surface, #ffffff);border:1px solid var(--c-border-soft, #F0EDF8);border-radius:var(--r-xl, 24px);overflow:hidden;box-shadow:var(--shadow-sm, 0 2px 4px rgba(14,12,21,.03), 0 4px 12px rgba(14,12,21,.04));position:relative;z-index:1}.pricing-comparison-table{display:grid;grid-template-columns:1.6fr 1fr 1fr 1fr;width:100%}.pricing-ct-header{display:contents}.pricing-ct-header-cell{padding:1.5rem 1.25rem;font-family:var(--f-heading, "Be Vietnam Pro", sans-serif);font-weight:700;font-size:.95rem;color:var(--c-text-1, #0E0C15);text-align:center;border-bottom:1px solid var(--c-border-soft, #F0EDF8);background:var(--c-surface, #ffffff);letter-spacing:-.2px}.pricing-ct-header-cell:first-child{text-align:left;font-size:.82rem;font-weight:600;color:var(--c-text-3, #756B85);text-transform:uppercase;letter-spacing:.5px}.pricing-ct-header-cell--featured{background:#5e5ce60a;color:var(--c-primary, #5E5CE6)}.pricing-ct-row{display:contents}.pricing-ct-cell{padding:1rem 1.25rem;font-size:.88rem;color:var(--c-text-2, #3F3A52);border-bottom:1px solid var(--c-border-soft, #F0EDF8);display:flex;align-items:center;justify-content:center;transition:background .2s ease}.pricing-ct-cell:first-child{justify-content:flex-start;font-weight:500;color:var(--c-text-1, #0E0C15)}.pricing-ct-cell--featured,.pricing-ct-row:hover .pricing-ct-cell{background:#5e5ce608}.pricing-ct-row:hover .pricing-ct-cell--featured{background:#5e5ce60f}.pricing-ct-row:last-child .pricing-ct-cell{border-bottom:none}.pricing-ct-check{display:inline-flex;align-items:center;justify-content:center;width:24px;height:24px;border-radius:50%;background:linear-gradient(135deg,#10b9811f,#34d39933);color:#10b981}.pricing-ct-check--primary{background:linear-gradient(135deg,#5e5ce61f,#858dff33);color:#5e5ce6}.pricing-ct-cross{display:inline-flex;align-items:center;justify-content:center;width:24px;height:24px;border-radius:50%;background:#0e0c150a;color:var(--c-text-3, #756B85);font-size:.85rem;font-weight:500}.pricing-ct-text{font-size:.82rem;font-weight:600;color:var(--c-text-2, #3F3A52)}.pricing-ct-text--featured{color:var(--c-primary, #5E5CE6)}.pricing-faq-section{padding:5rem 0;background:var(--c-surface, #ffffff);position:relative;overflow:hidden}.pricing-faq-section:before{content:"";position:absolute;top:0;left:50%;transform:translate(-50%);width:min(90%,800px);height:1px;background:linear-gradient(90deg,transparent,var(--c-border, #E8E5F0),transparent);z-index:1}.pricing-faq-header{text-align:center;margin-bottom:3rem;display:flex;flex-direction:column;align-items:center;position:relative;z-index:1}.pricing-faq-title{font-size:clamp(1.75rem,3.5vw,2.75rem);font-weight:700;color:var(--c-text-1, #0E0C15);margin:0;font-family:var(--f-heading, "Be Vietnam Pro", sans-serif);line-height:1.2;letter-spacing:-.8px}.pricing-faq-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:1.25rem;max-width:860px;margin:0 auto;position:relative;z-index:1}.pricing-faq-card{background:#ffffffd9;backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border:1px solid var(--c-border-soft, #F0EDF8);border-radius:var(--r-xl, 24px);padding:2rem 1.75rem;box-shadow:var(--shadow-xs, 0 1px 2px rgba(14, 12, 21, .04));transition:all .3s ease;position:relative;overflow:hidden}.pricing-faq-card:before{content:"";position:absolute;width:120px;height:120px;border-radius:50%;top:-40px;right:-40px;background:radial-gradient(circle,rgba(59,130,246,.1),transparent 70%);filter:blur(25px);opacity:0;transition:opacity .5s ease;pointer-events:none}.pricing-faq-card:hover:before{opacity:1}.pricing-faq-card:hover{transform:translateY(-6px);box-shadow:0 4px 16px #5e5ce60f,0 12px 36px #5e5ce614;border-color:#5e5ce61f}.pricing-faq-q{font-size:1.05rem;font-weight:600;color:var(--c-text-1, #0E0C15);margin:0 0 .65rem;font-family:var(--f-heading, "Be Vietnam Pro", sans-serif);letter-spacing:-.2px;line-height:1.35}.pricing-faq-a{font-size:.88rem;color:var(--c-text-3, #756B85);line-height:1.7;margin:0}.pricing-cta-section{padding:5rem 0 6rem;background:var(--c-bg, #FAFAFF);position:relative}.pricing-cta-section:before{content:"";position:absolute;top:0;left:50%;transform:translate(-50%);width:min(90%,800px);height:1px;background:linear-gradient(90deg,transparent,var(--c-border, #E8E5F0),transparent)}.pricing-cta-card{text-align:center;padding:4rem 2rem;border-radius:var(--r-xl, 24px);background:linear-gradient(180deg,#fff,#f5f3ff,#eeedf8);border:1px solid var(--c-border-soft, #F0EDF8);position:relative;overflow:hidden;display:flex;flex-direction:column;align-items:center;box-shadow:var(--shadow-sm, 0 2px 4px rgba(14, 12, 21, .03), 0 4px 12px rgba(14, 12, 21, .04))}.pricing-cta-glow{position:absolute;width:400px;height:400px;border-radius:50%;top:-150px;left:50%;transform:translate(-50%);background:radial-gradient(circle,rgba(94,92,230,.08),transparent 70%);filter:blur(50px);pointer-events:none}.pricing-cta-title{font-size:clamp(1.75rem,3.5vw,2.5rem);font-weight:700;color:var(--c-text-1, #0E0C15);margin:0 0 1rem;font-family:var(--f-heading, "Be Vietnam Pro", sans-serif);line-height:1.2;letter-spacing:-.8px;position:relative;z-index:1}.pricing-cta-desc{font-size:1rem;color:var(--c-text-3, #756B85);max-width:500px;margin:0 auto 2rem;line-height:1.7;position:relative;z-index:1}.pricing-cta-actions{display:flex;gap:.75rem;justify-content:center;flex-wrap:wrap;position:relative;z-index:1}@media(max-width:968px){.pricing-cards-grid{grid-template-columns:1fr;max-width:420px;margin:0 auto;gap:1.25rem}.pricing-plan-card--featured{transform:scale(1);order:-1}.pricing-plan-card--featured:hover{transform:translateY(-8px)}.pricing-faq-grid{grid-template-columns:1fr;max-width:520px}.pricing-comparison-table-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch}.pricing-comparison-table{min-width:640px}}@media(max-width:640px){.pricing-hero{padding:5rem 0 2.5rem}.pricing-hero-title{font-size:2rem;letter-spacing:-.8px}.pricing-hero-desc{font-size:.95rem}.pricing-cards-section{padding:.5rem 0 3rem}.pricing-plan-card{padding:2rem 1.5rem}.pricing-plan-card:hover,.pricing-plan-card--featured:hover,.pricing-faq-card:hover{transform:none}.pricing-faq-section,.pricing-cta-section,.pricing-comparison-section{padding:3rem 0}.pricing-cta-card{padding:3rem 1.5rem}.pricing-cta-title,.pricing-faq-title,.pricing-comparison-title{font-size:1.5rem}.pricing-comparison-table-wrap{border-radius:var(--r-lg, 20px)}.pricing-comparison-table{min-width:580px}.pricing-ct-header-cell,.pricing-ct-cell{padding:.85rem 1rem;font-size:.82rem}}.navbar-top{height:68px;background:#fafaffeb;border-bottom:1px solid #e8e5f0;backdrop-filter:blur(16px) saturate(180%);-webkit-backdrop-filter:blur(16px) saturate(180%);position:fixed;top:0;left:var(--sidebar-w, 248px);right:0;z-index:100;display:flex;align-items:center;padding:0 1.5rem;transition:left .22s ease}.navbar-content{width:100%;display:flex;align-items:center}.navbar-actions{margin-left:auto;display:flex;align-items:center;gap:.55rem;min-width:0;flex-shrink:0}.navbar-action-btn{position:relative;width:38px;height:38px;padding:0;line-height:1;border:1px solid #e8e5f0;background:#fff;border-radius:11px;display:inline-flex;align-items:center;justify-content:center;text-decoration:none;color:#3f3a52;transition:all var(--transition-fast)}.navbar-action-btn .action-icon{width:18px;height:18px;display:inline-block;color:currentColor;stroke:currentColor;flex-shrink:0}.navbar-action-btn:hover{border-color:#c5c3f8;color:#5b67f1;box-shadow:0 8px 18px #5b67f124}.notification-badge{position:absolute;top:-4px;right:-5px;background:#ef4444;color:#fff;font-size:.64rem;font-weight:600;width:17px;height:17px;border-radius:50%;display:flex;align-items:center;justify-content:center;border:2px solid #f8fafc}.navbar-user-badge{display:flex;align-items:center;gap:.55rem;max-width:min(100%,230px);padding:.35rem .45rem;border:1px solid #e8e5f0;background:#fff;border-radius:14px;min-width:0}.navbar-user-avatar{width:34px;height:34px;border-radius:50%;background:linear-gradient(135deg,#5b67f1,#8b5cf6);color:#fff;display:inline-flex;align-items:center;justify-content:center;font-weight:700;font-size:.8rem;flex-shrink:0}.navbar-user-meta{min-width:0;max-width:150px}.navbar-user-name{font-size:.83rem;font-weight:600;color:#0f172a;line-height:1.15;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.navbar-user-role{font-size:.74rem;color:#64748b;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.notifications-dropdown{position:absolute;top:calc(100% + .6rem);right:1.25rem;width:356px;max-height:500px;background:#fff;border:1px solid #dbe4f0;border-radius:12px;box-shadow:0 22px 50px #0f172a24;overflow:hidden}.notifications-header{display:flex;align-items:center;justify-content:space-between;padding:1rem 1.25rem;border-bottom:1px solid #e2e8f0}.notifications-header h3{margin:0;font-size:1rem;font-weight:600;color:#0f172a}.mark-all-read{padding:.375rem .75rem;border:none;background:transparent;color:#5b67f1;font-size:.813rem;font-weight:600;cursor:pointer;border-radius:8px;transition:background-color var(--transition-fast)}.mark-all-read:hover{background:#5b67f114}.notifications-list{max-height:350px;overflow-y:auto}.notification-item{display:flex;gap:.9rem;padding:1rem 1.25rem;border-bottom:1px solid #f1f5f9;transition:background-color var(--transition-fast);cursor:pointer}.notification-item:hover{background:#f8fafc}.notification-item.unread{background:#5b67f10d}.notification-icon{font-size:1.5rem;flex-shrink:0}.notification-title{font-size:.9rem;font-weight:600;color:#0f172a;margin-bottom:.25rem}.notification-message{font-size:.82rem;color:#64748b;margin-bottom:.25rem;display:-webkit-box;-webkit-line-clamp:2;line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.notification-time{font-size:.74rem;color:#94a3b8}.view-all-notifications{display:block;text-align:center;padding:.875rem;color:#5b67f1;text-decoration:none;font-size:.88rem;font-weight:600;border-top:1px solid #e8e5f0;transition:background-color var(--transition-fast)}.view-all-notifications:hover{background:#f8fafc}@media(max-width:1280px){.navbar-top{padding:0 1rem}.navbar-user-badge{max-width:210px}.navbar-user-meta{max-width:124px}}@media(max-width:1100px){.navbar-user-role{display:none}.navbar-user-badge{max-width:170px}.navbar-user-meta{max-width:90px}}@media(max-width:980px){.help-btn{display:none}.navbar-user-badge{max-width:120px;gap:.4rem}.navbar-user-meta{max-width:72px}}@media(max-width:860px){.message-btn,.navbar-user-meta{display:none}.navbar-user-badge{max-width:44px;padding:.25rem;border-radius:50%}}@media(max-width:768px){.navbar-top{left:76px;height:68px;padding:0 .85rem}.notifications-dropdown{width:300px;right:.5rem}}.sidebar{--sb-w: 248px;--sb-w-col: 64px;--sb-primary: #5e5ce6;--sb-primary-soft: rgba(94, 92, 230, .08);--sb-text-1: #0e0c15;--sb-text-2: #3f3a52;--sb-text-3: #9ca3af;--sb-border: #e8e5f0;--sb-bg: #ffffff;--sb-radius: 7px;--sb-f-body: "Inter", -apple-system, sans-serif;--sb-f-head: "Be Vietnam Pro", -apple-system, sans-serif;width:var(--sb-w);min-width:var(--sb-w);height:100vh;background:var(--sb-bg);border-right:1px solid var(--sb-border);display:flex;flex-direction:column;position:sticky;left:0;top:0;z-index:110;flex-shrink:0;transition:width .22s ease,min-width .22s ease;overflow:visible}.sidebar--collapsed{width:var(--sb-w-col);min-width:var(--sb-w-col)}.sidebar-header{display:flex;align-items:center;justify-content:space-between;padding:0 .875rem;height:68px;border-bottom:1px solid var(--sb-border);flex-shrink:0;gap:.5rem;overflow:hidden}.sidebar-logo{display:flex;align-items:center;gap:.55rem;text-decoration:none;min-width:0;flex:1;overflow:hidden}.sb-logo-icon{width:28px;height:28px;border-radius:7px;font-size:.8rem;font-weight:800;color:#fff;background:var(--sb-primary);display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;font-family:var(--sb-f-head)}.sb-logo-text{font-size:.9rem;font-weight:600;color:var(--sb-text-1);font-family:var(--sb-f-head);letter-spacing:-.2px;white-space:nowrap}.sb-toggle{position:absolute;right:-14px;top:88px;width:14px;height:36px;border:1px solid var(--sb-border);border-left:none;border-radius:0 8px 8px 0;background:#fff;color:var(--sb-text-2);display:flex;flex-direction:row;align-items:center;justify-content:center;gap:0;cursor:pointer;padding:0;z-index:120;box-shadow:2px 0 6px #0e0c1514;transition:background .15s ease,color .15s ease,box-shadow .15s ease}.sb-toggle svg{margin:0 -4px;flex-shrink:0}.sb-toggle:hover{background:var(--sb-primary-soft);color:var(--sb-primary);box-shadow:2px 0 10px #5e5ce62e}.sidebar--collapsed .sb-toggle{transform:rotate(180deg);right:-14px}.sidebar-nav{flex:1;padding:.625rem;overflow-y:auto;overflow-x:hidden}.sidebar-nav::-webkit-scrollbar{width:3px}.sidebar-nav::-webkit-scrollbar-track{background:transparent}.sidebar-nav::-webkit-scrollbar-thumb{background:var(--sb-border);border-radius:3px}.sb-group{margin-bottom:.125rem}.sb-group+.sb-group{margin-top:.375rem;padding-top:.375rem;border-top:1px solid var(--sb-border)}.sb-group-label{margin:.375rem .5rem .25rem;font-size:.67rem;font-weight:600;text-transform:uppercase;letter-spacing:.08em;color:var(--sb-text-3);font-family:var(--sb-f-body);white-space:nowrap}.sb-item{position:relative;display:flex;align-items:center;gap:.6rem;width:100%;padding:.45rem .6rem;border-radius:var(--sb-radius);border:none;background:transparent;color:var(--sb-text-2);text-decoration:none;font-family:var(--sb-f-body);font-size:.855rem;font-weight:400;cursor:pointer;transition:background .14s ease,color .14s ease;white-space:nowrap;line-height:1}.sb-item:hover{background:var(--sb-primary-soft);color:var(--sb-primary)}.sb-item.active{background:var(--sb-primary-soft);color:var(--sb-primary);font-weight:500}.sb-item.active:before{content:"";position:absolute;left:0;top:18%;height:64%;width:2.5px;border-radius:0 2px 2px 0;background:var(--sb-primary)}.sb-icon{width:17px;height:17px;display:inline-flex;align-items:center;justify-content:center;flex-shrink:0}.sb-label{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis}.sb-tooltip{position:absolute;left:calc(100% + 12px);top:50%;transform:translateY(-50%);background:var(--sb-text-1);color:#fff;font-size:.775rem;font-weight:500;padding:.28rem .6rem;border-radius:6px;white-space:nowrap;pointer-events:none;opacity:0;transition:opacity .14s ease;z-index:200;font-family:var(--sb-f-body)}.sb-tooltip:before{content:"";position:absolute;right:100%;top:50%;transform:translateY(-50%);border:5px solid transparent;border-right-color:var(--sb-text-1)}.sidebar--collapsed .sb-item:hover .sb-tooltip{opacity:1}.sb-item--logout{color:var(--sb-text-3)}.sb-item--logout:hover{color:#dc2626;background:#dc26260f}.sidebar-footer{padding:.625rem;border-top:1px solid var(--sb-border);flex-shrink:0}.sidebar--collapsed .sb-item{justify-content:center;padding:.5rem}.sidebar--collapsed .sidebar-header{justify-content:center;padding:0}.sidebar--collapsed .sidebar-logo{flex:0;justify-content:center}.dashboard-layout{display:flex;min-height:100vh;background:radial-gradient(circle at 12% 8%,rgba(91,103,241,.07),transparent 34%),radial-gradient(circle at 88% 4%,rgba(139,92,246,.07),transparent 28%),#fafaff}.dashboard-main{flex:1;display:flex;flex-direction:column;min-width:0}.dashboard-content{flex:1;margin-top:68px;padding:1.5rem 1.75rem 1.75rem;overflow-y:auto}@media(max-width:768px){.dashboard-content{margin-top:68px;padding:1rem}}.subscription-management-page{max-width:1600px;margin:0 auto}.revenue-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:1.5rem;margin-bottom:3rem}.stat-card.highlight{grid-column:span 1}.stat-trend{font-size:.813rem;font-weight:600;margin-top:.5rem}.plans-section{margin-bottom:3rem}.section-title{font-size:1.5rem;font-weight:700;color:var(--gray-900);margin-bottom:1.5rem}.plans-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(350px,1fr));gap:2rem}.plan-card{background:#fff;border-radius:16px;padding:2rem;box-shadow:0 2px 8px #0000001a;transition:all .3s;position:relative;border:2px solid transparent}.plan-card:hover{transform:translateY(-4px);box-shadow:0 8px 24px #00000026}.plan-card.featured{border:2px solid var(--primary-color);box-shadow:0 4px 16px #667eea33}.featured-badge{position:absolute;top:-12px;left:50%;transform:translate(-50%);background:var(--gradient-primary);color:#fff;padding:.375rem 1rem;border-radius:20px;font-size:.813rem;font-weight:700;white-space:nowrap}.plan-header{text-align:center;padding-bottom:1.5rem;border-bottom:2px solid var(--gray-200);margin-bottom:1.5rem}.plan-name{font-size:1.75rem;font-weight:800;color:var(--gray-900);margin:0 0 1rem}.plan-price{display:flex;align-items:baseline;justify-content:center;gap:.25rem;margin-bottom:1rem}.price-amount{font-size:2.5rem;font-weight:800;background:var(--gradient-primary);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.price-period{font-size:1rem;color:var(--gray-600);font-weight:600}.plan-description{color:var(--gray-600);font-size:.9375rem;line-height:1.6;margin:0}.plan-metrics{display:grid;grid-template-columns:1fr 1fr;gap:1rem;margin-bottom:1.5rem}.metric{padding:1rem;background:var(--gray-50);border-radius:12px;text-align:center}.metric-label{font-size:.813rem;color:var(--gray-600);margin-bottom:.5rem}.metric-value{font-size:1.25rem;font-weight:700;color:var(--gray-900);margin-bottom:.25rem}.metric-change{font-size:.75rem;font-weight:600}.metric-change.positive{color:var(--success-color)}.metric-change.negative{color:var(--error-color)}.plan-features{margin-bottom:1.5rem}.features-title{font-size:.875rem;font-weight:700;color:var(--gray-700);margin:0 0 1rem}.features-list{list-style:none;padding:0;margin:0}.features-list li{padding:.5rem 0;color:var(--gray-700);font-size:.9375rem;line-height:1.6}.features-list .more-features{color:var(--primary-color);font-weight:600;font-style:italic}.plan-actions{display:grid;grid-template-columns:1fr 1fr;gap:.75rem}.recent-subscriptions{margin-bottom:2rem}.subscriptions-table-container{background:#fff;border-radius:16px;overflow:hidden;box-shadow:0 2px 8px #0000001a}.subscriptions-table{width:100%;border-collapse:collapse}.subscriptions-table thead{background:var(--gray-50)}.subscriptions-table th{padding:1rem;text-align:left;font-size:.875rem;font-weight:700;color:var(--gray-700);border-bottom:2px solid var(--gray-200)}.subscriptions-table td{padding:1rem;border-bottom:1px solid var(--gray-200);font-size:.9375rem}.user-avatar{width:40px;height:40px;border-radius:50%;background:var(--gradient-primary);color:#fff;display:flex;align-items:center;justify-content:center;font-weight:700;flex-shrink:0}.user-email{font-size:.813rem;color:var(--gray-600);margin-top:.125rem}.plan-badge{padding:.375rem .875rem;border-radius:20px;font-size:.813rem;font-weight:600;display:inline-block}.plan-badge.free{background:var(--gray-300);color:var(--gray-700)}.plan-badge.pro{background:var(--gradient-primary);color:#fff}.plan-badge.enterprise{background:linear-gradient(135deg,#ffd89b,#19547b);color:#fff}.amount-cell{font-weight:700;color:var(--success-color)}.status-badge.expired{background:var(--gray-400);color:#fff}.action-btn:hover{transform:scale(1.1);box-shadow:0 2px 8px #0000001a;border-color:var(--primary-color)}.plan-detail-header{text-align:center;padding:1.5rem;background:var(--gray-50);border-radius:12px;margin-bottom:1.5rem}.plan-detail-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem;margin-bottom:1.5rem}.detail-stat .stat-value.positive{color:var(--success-color)}.detail-stat .stat-value.negative{color:var(--error-color)}.plan-features-full{margin-bottom:1.5rem}.plan-features-full h4{font-size:1rem;font-weight:700;color:var(--gray-900);margin:0 0 1rem}.plan-features-full ul{list-style:none;padding:0;margin:0}.plan-features-full li{padding:.625rem 0;color:var(--gray-700);font-size:.9375rem;line-height:1.6;border-bottom:1px solid var(--gray-200)}.plan-features-full li:last-child{border-bottom:none}.plan-actions-section h4{font-size:1rem;font-weight:700;color:var(--gray-900);margin:0 0 1rem}@media(max-width:1024px){.plans-grid{grid-template-columns:repeat(auto-fit,minmax(300px,1fr))}}@media(max-width:768px){.page-header{flex-direction:column;gap:1rem}.revenue-stats,.plans-grid{grid-template-columns:1fr}.subscriptions-table-container{overflow-x:auto}.subscriptions-table{min-width:900px}.form-row,.plan-detail-stats,.action-buttons-grid,.plan-actions{grid-template-columns:1fr}}.user-management-page{max-width:1600px;margin:0 auto}.user-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:1.5rem;margin-bottom:2rem}.users-toolbar{display:flex;justify-content:space-between;align-items:center;gap:1rem;margin-bottom:1.5rem}.search-input{padding:.625rem 1rem;border:2px solid var(--gray-300);border-radius:8px;font-size:.9375rem;min-width:300px;transition:all .2s}.users-table-container{background:#fff;border-radius:16px;overflow:hidden;box-shadow:0 2px 8px #0000001a;margin-bottom:1.5rem}.users-table{width:100%;border-collapse:collapse}.users-table thead{background:var(--gray-50)}.users-table th{padding:1rem;text-align:left;font-size:.875rem;font-weight:700;color:var(--gray-700);border-bottom:2px solid var(--gray-200)}.users-table td{padding:1rem;border-bottom:1px solid var(--gray-200);font-size:.9375rem}.user-cell{display:flex;align-items:center;gap:1rem}.user-avatar{width:40px;height:40px;border-radius:50%;background:var(--gradient-primary);color:#fff;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:1rem;flex-shrink:0}.user-info{flex:1}.user-name{font-weight:600;color:var(--gray-900)}.email-cell{color:var(--gray-600)}.role-badge{padding:.375rem .875rem;border-radius:20px;font-size:.813rem;font-weight:600;display:inline-block}.role-badge.teacher{background:linear-gradient(135deg,#43e97b,#38f9d7);color:#fff}.role-badge.student{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff}.role-badge.admin{background:linear-gradient(135deg,#ffd89b,#19547b);color:#fff}.status-badge{padding:.375rem .875rem;border-radius:20px;font-size:.813rem;font-weight:600}.status-badge.active{background:var(--success-color);color:#fff}.status-badge.inactive{background:var(--gray-400);color:#fff}.action-buttons{display:flex;gap:.5rem}.action-btn{width:32px;height:32px;border:1px solid var(--gray-300);background:#fff;border-radius:6px;font-size:.875rem;cursor:pointer;transition:all .2s;display:flex;align-items:center;justify-content:center}.action-btn:hover{transform:scale(1.1);box-shadow:0 2px 8px #0000001a}.action-btn.view:hover{border-color:var(--primary-color);background:#667eea1a}.action-btn.edit:hover{border-color:var(--warning-color);background:#ffc7001a}.action-btn.delete:hover{border-color:var(--error-color);background:#f443361a}.form-group input,.form-group select{width:100%;padding:.75rem 1rem;border:2px solid var(--gray-300);border-radius:8px;font-size:.9375rem;transition:all .2s}.form-group input:focus,.form-group select:focus{outline:none;border-color:var(--primary-color);box-shadow:0 0 0 3px #667eea1a}.user-detail-header{display:flex;gap:1.5rem;align-items:center;padding:1.5rem;background:var(--gray-50);border-radius:12px;margin-bottom:1.5rem}.detail-avatar{width:80px;height:80px;border-radius:50%;background:var(--gradient-primary);color:#fff;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:2rem;flex-shrink:0}.detail-info h3{font-size:1.5rem;font-weight:700;color:var(--gray-900);margin:0 0 .5rem}.user-detail-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem;margin-bottom:1.5rem}.detail-stat .stat-value{font-size:1rem;font-weight:700;color:var(--gray-900)}.user-actions-section h4{font-size:1rem;font-weight:700;color:var(--gray-900);margin:0 0 1rem}.action-buttons-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:.75rem}@media(max-width:768px){.page-header{flex-direction:column;gap:1rem}.users-toolbar{flex-direction:column;align-items:stretch}.filter-tabs{flex-wrap:wrap}.toolbar-actions{flex-direction:column}.search-input{min-width:100%}.users-table-container{overflow-x:auto}.users-table{min-width:800px}.form-row,.user-detail-stats,.action-buttons-grid{grid-template-columns:1fr}.modal-footer{flex-direction:column}}.gemini-chat-page{--bg-soft: #eceff4;--bg-panel: #ffffff;--bg-panel-2: #f8f9fc;--line-soft: #d5dbe8;--text-main: #1f242d;--text-muted: #626b7f;--brand: #1d74cf;--brand-hover: #0f62bb;--danger: #cf3f3f;display:grid;grid-template-columns:minmax(0,1fr) 360px;height:calc(100dvh - 68px - 3.25rem);max-height:calc(100dvh - 68px - 3.25rem);min-height:560px;border-radius:24px;background:radial-gradient(130% 90% at 50% -30%,#f8fbff,#eceff4 58%),linear-gradient(160deg,#f4f7fb,#e9edf4);font-family:Be Vietnam Pro,sans-serif;transition:grid-template-columns .26s cubic-bezier(.2,.7,.18,1);overflow:hidden}.gemini-chat-page.session-collapsed{grid-template-columns:minmax(0,1fr) 82px}.gemini-sidebar{display:flex;flex-direction:column;border-left:1px solid var(--line-soft);background:#ecf0f7e6;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);padding:1rem .9rem;gap:.75rem;overflow:hidden;transition:padding .22s ease,background-color .22s ease}.gemini-sidebar.right{min-width:0;position:sticky;top:.9rem;height:calc(100vh - 98px);align-self:start}.gemini-sidebar.collapsed{padding:.8rem .55rem;align-items:center}.gemini-chat-page .sidebar-icon-btn{appearance:none;-webkit-appearance:none;font:inherit;line-height:1;padding:0;margin:0;border:1px solid #c9d0df;background:#fffffff5;color:#474f63;display:inline-flex;align-items:center;justify-content:center;cursor:pointer;transition:border-color .18s ease,background-color .18s ease,color .18s ease}.gemini-chat-page .sidebar-icon-btn:hover:not(:disabled){background:#fff;border-color:#b7c1d8;color:#2f3a53}.gemini-chat-page .sidebar-icon-btn:focus,.gemini-chat-page .sidebar-icon-btn:focus-visible{outline:2px solid #8ab0df;outline-offset:2px}.sidebar-toggle-btn{align-self:flex-start;width:46px;height:46px;border-radius:999px;font-weight:700}.gemini-sidebar.collapsed .sidebar-toggle-btn{align-self:center}.collapsed-actions{display:grid;gap:.85rem;justify-items:center;width:100%;margin-top:.2rem;transition:opacity .18s ease,transform .2s ease}.collapsed-actions.is-visible{opacity:1;transform:translateY(0);pointer-events:auto}.collapsed-actions.is-hidden{opacity:0;transform:translateY(8px);pointer-events:none;height:0;margin-top:0}.new-session-btn.collapsed{text-align:center;width:46px;height:46px;padding:0;border-radius:14px}.sidebar-toggle-btn svg,.new-session-btn.collapsed svg{display:block}.new-session-btn{border:1px solid #c4cce0;background:var(--bg-panel);color:var(--text-main);border-radius:16px;font-size:.92rem;font-weight:600;text-align:left;padding:.8rem 1rem;cursor:pointer}.new-session-btn:hover{background:#f3f6ff}.new-session-btn:disabled{opacity:.65;cursor:not-allowed}.session-list-title{color:#3d4353;font-size:.92rem;font-weight:700;margin-top:.2rem}.session-list{display:flex;flex-direction:column;flex:1;gap:.4rem;overflow-y:auto;min-height:0;padding-right:.2rem}.session-panel-expanded{display:flex;flex-direction:column;gap:.75rem;min-height:0;flex:1;transition:opacity .22s ease,transform .24s ease}.session-panel-expanded.is-visible{opacity:1;transform:translate(0);pointer-events:auto}.session-panel-expanded.is-hidden{opacity:0;transform:translate(14px);pointer-events:none;width:0;min-width:0;height:0;overflow:hidden;gap:0}.session-item{border:0;background:transparent;text-align:left;padding:.7rem .72rem;border-radius:12px;cursor:pointer;display:grid;gap:.2rem}.session-item:hover{background:#ffffffbf}.session-item.active{background:#fff;box-shadow:0 1px 2px #1929521a}.session-title{color:var(--text-main);font-size:.95rem;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.session-subtitle{color:var(--text-muted);font-size:.78rem}.session-muted{color:var(--text-muted);font-size:.83rem;padding:.65rem .3rem}.session-footer{margin-top:auto;display:grid;gap:.2rem;border-top:1px solid var(--line-soft);padding-top:.8rem}.gemini-main{display:flex;flex-direction:column;min-width:0;min-height:0;height:100%;padding:1rem 1.2rem 1.1rem}.main-header{display:flex;justify-content:space-between;gap:1rem;width:min(1080px,100%);margin:0 auto;padding:1.2rem 0 .9rem}.session-heading h1{margin:0;color:var(--text-main);font-family:Space Grotesk,sans-serif;font-size:clamp(2rem,3.8vw,3.5rem);letter-spacing:-.02em;line-height:1.06}.session-heading p{margin:.68rem 0 0;color:var(--text-muted);font-size:.95rem}.title-edit-row{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap}.title-edit-row input{min-width:250px;max-width:460px;width:100%;border:1px solid #c2c9dd;background:var(--bg-panel);border-radius:11px;padding:.62rem .75rem;font-size:.95rem}.header-actions{display:flex;gap:.4rem;align-items:flex-start}.header-actions button,.title-edit-row button{border:1px solid #cad1e5;background:var(--bg-panel);color:var(--text-main);border-radius:11px;padding:.56rem .75rem;font-size:.82rem;font-weight:600;cursor:pointer}.header-actions .ghost,.title-edit-row .ghost{background:transparent}.header-actions .danger{border-color:#e8bbbb;color:var(--danger)}.header-actions button:disabled,.title-edit-row button:disabled,.composer-box textarea:disabled,.send-btn:disabled{opacity:.6;cursor:not-allowed}.message-stream{flex:1;min-height:0;overflow-y:auto;width:min(1080px,100%);margin:0 auto;padding:.8rem 0 .7rem;display:flex;flex-direction:column;gap:1rem}.empty-state{margin:auto;text-align:center;max-width:460px;color:var(--text-muted)}.empty-state-session{margin:.15rem auto 0;width:min(420px,100%);border:1px solid #dfe5f1;background:#ffffffb8;border-radius:16px;padding:.8rem .95rem;box-shadow:0 6px 16px #2c3d650f}.empty-state-session h3{font-size:.98rem;margin-bottom:.2rem}.empty-state-session p{font-size:.84rem;line-height:1.45}.empty-state-welcome{margin:auto}.empty-state h3{color:var(--text-main);margin-bottom:.4rem}.error-banner{border:1px solid #efc7c7;background:#fff0f0;color:#a63333;border-radius:12px;padding:.7rem .8rem;font-size:.9rem}.chat-row{display:grid;grid-template-columns:34px minmax(0,1fr);gap:.75rem;align-items:flex-start}.chat-avatar{width:36px;height:36px;border-radius:50%;background:#dde4f8;color:#2c3d73;font-weight:700;font-size:.8rem;display:flex;align-items:center;justify-content:center}.chat-user .chat-avatar{background:#ddf4e8;color:#20593f}.chat-body{background:var(--bg-panel);border:1px solid #e3e6ef;border-radius:18px;padding:.85rem .95rem;box-shadow:0 8px 20px #2535550a}.chat-body p{margin:0;color:var(--text-main);line-height:1.57;white-space:pre-wrap}.chat-body time{margin-top:.45rem;display:inline-block;color:var(--text-muted);font-size:.76rem}.chat-user .chat-body{background:#edf3ff;border-color:#d5e0fb}.chat-body.typing{width:66px;display:flex;gap:.35rem;align-items:center}.chat-body.typing span{width:7px;height:7px;border-radius:50%;background:#7384af;animation:ai-typing 1s infinite ease-in-out}.chat-body.typing span:nth-child(2){animation-delay:.1s}.chat-body.typing span:nth-child(3){animation-delay:.2s}@keyframes ai-typing{0%,to{transform:translateY(0);opacity:.55}50%{transform:translateY(-5px);opacity:1}}.composer-wrap{width:min(1080px,100%);margin:0 auto;padding:.55rem 0 1rem;display:grid;gap:.8rem}.quick-chips{display:flex;justify-content:center;gap:.55rem;flex-wrap:wrap}.chip{border:1px solid #dde2ee;background:#ffffffd6;color:#3f485d;border-radius:999px;padding:.46rem .96rem;font-size:.84rem;cursor:pointer}.chip:hover{background:#f4f7ff}.composer-box{border:1px solid #d6ddea;background:#fff;border-radius:34px;padding:.85rem 1rem .72rem;box-shadow:0 12px 28px #1b2a441a;transition:border-radius .18s ease,padding .18s ease}.composer-box.compact{border-radius:24px;padding:.5rem .8rem}.composer-box textarea{width:100%;resize:none;border:0;background:transparent;min-height:82px;max-height:160px;outline:none;color:var(--text-main);font-size:1.1rem;font-family:inherit;line-height:1.45;transition:min-height .18s ease,font-size .18s ease}.composer-box.compact textarea{min-height:52px;max-height:110px;font-size:1rem}.composer-actions{margin-top:.3rem;display:flex;justify-content:flex-end;align-items:center;gap:.6rem}.send-btn{border:0;background:var(--brand);color:#fff;font-weight:600;font-size:.92rem;border-radius:999px;padding:.62rem 1.35rem;cursor:pointer}.send-btn:hover:not(:disabled){background:var(--brand-hover)}.message-stream::-webkit-scrollbar,.session-list::-webkit-scrollbar{width:8px}.message-stream::-webkit-scrollbar-thumb,.session-list::-webkit-scrollbar-thumb{background:#c5cbdd;border-radius:999px}@media(max-width:1024px){.gemini-chat-page{grid-template-columns:1fr;height:auto;max-height:none;min-height:auto}.gemini-chat-page.session-collapsed{grid-template-columns:1fr}.gemini-sidebar{position:static;height:auto;border-left:0;border-bottom:1px solid var(--line-soft)}.gemini-sidebar.collapsed{align-items:stretch;padding:.85rem 1rem}.session-list{max-height:180px}.main-header{flex-direction:column;align-items:flex-start}}@media(max-width:768px){.main-header,.message-stream,.composer-wrap{width:100%;padding-left:.65rem;padding-right:.65rem}.composer-actions{flex-direction:column;align-items:stretch}.send-btn{width:100%}}@font-face{font-display:block;font-family:KaTeX_AMS;font-style:normal;font-weight:400;src:url(/assets/KaTeX_AMS-Regular-BQhdFMY1.woff2) format("woff2"),url(/assets/KaTeX_AMS-Regular-DMm9YOAa.woff) format("woff"),url(/assets/KaTeX_AMS-Regular-DRggAlZN.ttf) format("truetype")}@font-face{font-display:block;font-family:KaTeX_Caligraphic;font-style:normal;font-weight:700;src:url(/assets/KaTeX_Caligraphic-Bold-Dq_IR9rO.woff2) format("woff2"),url(/assets/KaTeX_Caligraphic-Bold-BEiXGLvX.woff) format("woff"),url(/assets/KaTeX_Caligraphic-Bold-ATXxdsX0.ttf) format("truetype")}@font-face{font-display:block;font-family:KaTeX_Caligraphic;font-style:normal;font-weight:400;src:url(/assets/KaTeX_Caligraphic-Regular-Di6jR-x-.woff2) format("woff2"),url(/assets/KaTeX_Caligraphic-Regular-CTRA-rTL.woff) format("woff"),url(/assets/KaTeX_Caligraphic-Regular-wX97UBjC.ttf) format("truetype")}@font-face{font-display:block;font-family:KaTeX_Fraktur;font-style:normal;font-weight:700;src:url(/assets/KaTeX_Fraktur-Bold-CL6g_b3V.woff2) format("woff2"),url(/assets/KaTeX_Fraktur-Bold-BsDP51OF.woff) format("woff"),url(/assets/KaTeX_Fraktur-Bold-BdnERNNW.ttf) format("truetype")}@font-face{font-display:block;font-family:KaTeX_Fraktur;font-style:normal;font-weight:400;src:url(/assets/KaTeX_Fraktur-Regular-CTYiF6lA.woff2) format("woff2"),url(/assets/KaTeX_Fraktur-Regular-Dxdc4cR9.woff) format("woff"),url(/assets/KaTeX_Fraktur-Regular-CB_wures.ttf) format("truetype")}@font-face{font-display:block;font-family:KaTeX_Main;font-style:normal;font-weight:700;src:url(/assets/KaTeX_Main-Bold-Cx986IdX.woff2) format("woff2"),url(/assets/KaTeX_Main-Bold-Jm3AIy58.woff) format("woff"),url(/assets/KaTeX_Main-Bold-waoOVXN0.ttf) format("truetype")}@font-face{font-display:block;font-family:KaTeX_Main;font-style:italic;font-weight:700;src:url(/assets/KaTeX_Main-BoldItalic-DxDJ3AOS.woff2) format("woff2"),url(/assets/KaTeX_Main-BoldItalic-SpSLRI95.woff) format("woff"),url(/assets/KaTeX_Main-BoldItalic-DzxPMmG6.ttf) format("truetype")}@font-face{font-display:block;font-family:KaTeX_Main;font-style:italic;font-weight:400;src:url(/assets/KaTeX_Main-Italic-NWA7e6Wa.woff2) format("woff2"),url(/assets/KaTeX_Main-Italic-BMLOBm91.woff) format("woff"),url(/assets/KaTeX_Main-Italic-3WenGoN9.ttf) format("truetype")}@font-face{font-display:block;font-family:KaTeX_Main;font-style:normal;font-weight:400;src:url(/assets/KaTeX_Main-Regular-B22Nviop.woff2) format("woff2"),url(/assets/KaTeX_Main-Regular-Dr94JaBh.woff) format("woff"),url(/assets/KaTeX_Main-Regular-ypZvNtVU.ttf) format("truetype")}@font-face{font-display:block;font-family:KaTeX_Math;font-style:italic;font-weight:700;src:url(/assets/KaTeX_Math-BoldItalic-CZnvNsCZ.woff2) format("woff2"),url(/assets/KaTeX_Math-BoldItalic-iY-2wyZ7.woff) format("woff"),url(/assets/KaTeX_Math-BoldItalic-B3XSjfu4.ttf) format("truetype")}@font-face{font-display:block;font-family:KaTeX_Math;font-style:italic;font-weight:400;src:url(/assets/KaTeX_Math-Italic-t53AETM-.woff2) format("woff2"),url(/assets/KaTeX_Math-Italic-DA0__PXp.woff) format("woff"),url(/assets/KaTeX_Math-Italic-flOr_0UB.ttf) format("truetype")}@font-face{font-display:block;font-family:KaTeX_SansSerif;font-style:normal;font-weight:700;src:url(/assets/KaTeX_SansSerif-Bold-D1sUS0GD.woff2) format("woff2"),url(/assets/KaTeX_SansSerif-Bold-DbIhKOiC.woff) format("woff"),url(/assets/KaTeX_SansSerif-Bold-CFMepnvq.ttf) format("truetype")}@font-face{font-display:block;font-family:KaTeX_SansSerif;font-style:italic;font-weight:400;src:url(/assets/KaTeX_SansSerif-Italic-C3H0VqGB.woff2) format("woff2"),url(/assets/KaTeX_SansSerif-Italic-DN2j7dab.woff) format("woff"),url(/assets/KaTeX_SansSerif-Italic-YYjJ1zSn.ttf) format("truetype")}@font-face{font-display:block;font-family:KaTeX_SansSerif;font-style:normal;font-weight:400;src:url(/assets/KaTeX_SansSerif-Regular-DDBCnlJ7.woff2) format("woff2"),url(/assets/KaTeX_SansSerif-Regular-CS6fqUqJ.woff) format("woff"),url(/assets/KaTeX_SansSerif-Regular-BNo7hRIc.ttf) format("truetype")}@font-face{font-display:block;font-family:KaTeX_Script;font-style:normal;font-weight:400;src:url(/assets/KaTeX_Script-Regular-D3wIWfF6.woff2) format("woff2"),url(/assets/KaTeX_Script-Regular-D5yQViql.woff) format("woff"),url(/assets/KaTeX_Script-Regular-C5JkGWo-.ttf) format("truetype")}@font-face{font-display:block;font-family:KaTeX_Size1;font-style:normal;font-weight:400;src:url(/assets/KaTeX_Size1-Regular-mCD8mA8B.woff2) format("woff2"),url(/assets/KaTeX_Size1-Regular-C195tn64.woff) format("woff"),url(/assets/KaTeX_Size1-Regular-Dbsnue_I.ttf) format("truetype")}@font-face{font-display:block;font-family:KaTeX_Size2;font-style:normal;font-weight:400;src:url(/assets/KaTeX_Size2-Regular-Dy4dx90m.woff2) format("woff2"),url(/assets/KaTeX_Size2-Regular-oD1tc_U0.woff) format("woff"),url(/assets/KaTeX_Size2-Regular-B7gKUWhC.ttf) format("truetype")}@font-face{font-display:block;font-family:KaTeX_Size3;font-style:normal;font-weight:400;src:url(data:font/woff2;base64,d09GMgABAAAAAA4oAA4AAAAAHbQAAA3TAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAABmAAgRQIDgmcDBEICo1oijYBNgIkA14LMgAEIAWJAAeBHAyBHBvbGiMRdnO0IkRRkiYDgr9KsJ1NUAf2kILNxgUmgqIgq1P89vcbIcmsQbRps3vCcXdYOKSWEPEKgZgQkprQQsxIXUgq0DqpGKmIvrgkeVGtEQD9DzAO29fM9jYhxZEsL2FeURH2JN4MIcTdO049NCVdxQ/w9NrSYFEBKTDKpLKfNkCGDc1RwjZLQcm3vqJ2UW9Xfa3tgAHz6ivp6vgC2yD4/6352ndnN0X0TL7seypkjZlMsjmZnf0Mm5Q+JykRWQBKCVCVPbARPXWyQtb5VgLB6Biq7/Uixcj2WGqdI8tGSgkuRG+t910GKP2D7AQH0DB9FMDW/obJZ8giFI3Wg8Cvevz0M+5m0rTh7XDBlvo9Y4vm13EXmfttwI4mBo1EG15fxJhUiCLbiiyCf/ZA6MFAhg3pGIZGdGIVjtPn6UcMk9A/UUr9PhoNsCENw1APAq0gpH73e+M+0ueyHbabc3vkbcdtzcf/fiy+NxQEjf9ud/ELBHAXJ0nk4z+MXH2Ev/kWyV4k7SkvpPc9Qr38F6RPWnM9cN6DJ0AdD1BhtgABtmoRoFCvPsBAumNm6soZG2Gk5GyVTo2sJncSyp0jQTYoR6WDvTwaaEcHsxHfvuWhHA3a6bN7twRKtcGok6NsCi7jYRrM2jExsUFMxMQYuJbMhuWNOumEJy9hi29Dmg5zMp/A5+hhPG19j1vBrq8JTLr8ki5VLPmG/PynJHVul440bxg5xuymHUFPBshC+nA9I1FmwbRBTNHAcik3Oae0cxKoI3MOriM42UrPe51nsaGxJ+WfXubAsP84aabUlQSJ1IiE0iPETLUU4CATgfXSCSpuRFRmCGbO+wSpAnzaeaCYW1VNEysRtuXCEL1kUFUbbtMv3Tilt/1c11jt3Q5bbMa84cpWipp8Elw3MZhOHsOlwwVUQM3lAR35JiFQbaYCRnMF2lxAWoOg2gyoIV4PouX8HytNIfLhqpJtXB4vjiViUI8IJ7bkC4ikkQvKksnOTKICwnqWSZ9YS5f0WCxmpgjbIq7EJcM4aI2nmhLNY2JIUgOjXZFWBHb+x5oh6cwb0Tv1ackHdKi0I9OO2wE9aogIOn540CCCziyhN+IaejtgAONKznHlHyutPrHGwCx9S6B8kfS4Mfi4Eyv7OU730bT1SCBjt834cXsf43zVjPUqqJjgrjeGnBxSG4aYAKFuVbeCfkDIjAqMb6yLNIbCuvXhMH2/+k2vkNpkORhR59N1CkzoOENvneIosjYmuTxlhUzaGEJQ/iWqx4dmwpmKjrwTiTGTCVozNAYqk/zXOndWxuWSmJkQpJw3pK5KX6QrLt5LATMqpmPAQhkhK6PUjzHUn7E0gHE0kPE0iKkolgkUx9SZmVAdDgpffdyJKg3k7VmzYGCwVXGz/tXmkOIp+vcWs+EMuhhvN0h9uhfzWJziBQmCREGSIFmQIkgVpAnSBRmC//6hkLZwaVhwxlrJSOdqlFtOYxlau9F2QN5Y98xmIAsiM1HVp2VFX+DHHGg6Ecjh3vmqtidX3qHI2qycTk/iwxSt5UzTmEP92ZBnEWTk4Mx8Mpl78ZDokxg/KWb+Q0QkvdKVmq3TMW+RXEgrsziSAfNXFMhDc60N5N9jQzjfO0kBKpUZl0ZmwJ41j/B9Hz6wmRaJB84niNmQrzp9eSlQCDDzazGDdVi3P36VZQ+Jy4f9UBNp+3zTjqI4abaFAm+GShVaXlsGdF3FYzZcDI6cori4kMxUECl9IjJZpzkvitAoxKue+90pDMvcKRxLl53TmOKCmV/xRolNKSqqUxc6LStOETmFOiLZZptlZepcKiAzteG8PEdpnQpbOMNcMsR4RR2Bs0cKFEvSmIjAFcnarqwUL4lDhHmnVkwu1IwshbiCcgvOheZuYyOteufZZwlcTlLgnZ3o/WcYdzZHW/WGaqaVfmTZ1aWCceJjkbZqsfbkOtcFlUZM/jy+hXHDbaUobWqqXaeWobbLO99yG5N3U4wxco0rQGGcOLASFMXeJoham8M+/x6O2WywK2l4HGbq1CoUyC/IZikQhdq3SiuNrvAEj0AVu9x2x3lp/xWzahaxidezFVtdcb5uEnzyl0ZmYiuKI0exvCd4Xc9CV1KB0db00z92wDPde0kukbvZIWN6jUWFTmPIC/Y4UPCm8UfDTFZpZNon1qLFTkBhxzB+FjQRA2Q/YRJT8pQigslMaUpFyAG8TMlXigiqmAZX4xgijKjRlGpLE0GdplRfCaJo0JQaSxNBk6ZmMzcya0FmrcisDdn0Q3HI2sWSppYigmlM1XT/kLQZSNpMJG0WkjYbSZuDpM1F0uYhFc1HxU4m1QJjDK6iL0S5uSj5rgXc3RejEigtcRBtqYPQsiTskmO5vosV+q4VGIKbOkDg0jtRrq+Em1YloaTFar3EGr1EUC8R0kus1Uus00usL97ABr2BjXoDm/QGNhuWtMVBKOwg/i78lT7hBsAvDmwHc/ao3vmUbBmhjeYySZNWvGkfZAgISDSaDo1SVpzGDsAEkF8B+gEapViUoZgUWXcRIGFZNm6gWbAKk0bp0k1MHG9fLYtV4iS2SmLEQFARzRcnf9PUS0LVn05/J9MiRRBU3v2IrvW974v4N00L7ZMk0wXP1409CHo/an8zTRHD3eSJ6m8D4YMkZNl3M79sqeuAsr/m3f+8/yl7A50aiAEJgeBeMWzu7ui9UfUBCe2TIqZIoOd/3/udRBOQidQZUERzb2/VwZN1H/Sju82ew2H2Wfr6qvfVf3hqwDvAIpkQVFy4B9Pe9e4/XvPeceu7h3dvO56iJPf0+A6cqA2ip18ER+iFgggiuOkvj24bby0N9j2UHIkgqIt+sVgfodC4YghLSMjSZbH0VR/6dMDrYJeKHilKTemt6v6kvzvn3/RrdWtr0GoN/xL+Sex/cPYLUpepx9cz/D46UPU5KXgAQa+NDps1v6J3xP1i2HtaDB0M9aX2deA7SYff//+gUCovMmIK/qfsFcOk+4Y5ZN97XlG6zebqtMbKgeRFi51vnxTQYBUik2rS/Cn6PC8ADR8FGxsRPB82dzfND90gIcshOcYUkfjherBz53odpm6TP8txlwOZ71xmfHHOvq053qFF/MRlS3jP0ELudrf2OeN8DHvp6ZceLe8qKYvWz/7yp0u4dKPfli3CYq0O13Ih71mylJ80tOi10On8wi+F4+LWgDPeJ30msSQt9/vkmHq9/Lvo2b461mP801v3W4xTcs6CbvF9UDdrSt+A8OUbpSh55qAUFXWznBBfdeJ8a4d7ugT5tvxUza3h9m4H7ptTqiG4z0g5dc0X29OcGlhpGFMpQo9ytTS+NViZpNdvU4kWx+LKxNY10kQ1yqGXrhe4/1nvP7E+nd5A92TtaRplbHSqoIdOqtRWti+fkB5/n1+/VvCmz12pG1kpQWsfi1ftlBobm0bpngs16CHkbIwdLnParxtTV3QYRlfJ0KFskH7pdN/YDn+yRuSd7sNH3aO0DYPggk6uWuXrfOc+fa3VTxFVvKaNxHsiHmsXyCLIE5yuOeN3/Jdf8HBL/5M6shjyhxHx9BjB1O0+4NLOnjLLSxwO7ukN4jMbOIcD879KLSi6Pk61Oqm2377n8079PXEEQ7cy7OKEC9nbpet118fxweTafpt69x/Bt8UqGzNQt7aelpc44dn5cqhwf71+qKp/Zf/+a0zcizOUWpl/iBcSXip0pplkatCchoH5c5aUM8I7/dWxAej8WicPL1URFZ9BDJelUwEwTkGqUhgSlydVes95YdXvhh9Gfz/aeFWvgVb4tuLbcv4+wLdutVZv/cUonwBD/6eDlE0aSiKK/uoH3+J1wDE/jMVqY2ysGufN84oIXB0sPzy8ollX/LegY74DgJXJR57sn+VGza0x3DnuIgABFM15LmajjjsNlYj+JEZGbuRYcAMOWxFkPN2w6Wd46xo4gVWQR/X4lyI/R6K/YK0110GzudPRW7Y+UOBGTfNNzHeYT0fiH0taunBpq9HEW8OKSaBGj21L0MqenEmNRWBAWDWAk4CpNoEZJ2tTaPFgbQYj8HxtFilErs3BTRwT8uO1NXQaWfIotchmPkAF5mMBAliEmZiOGVgCG9LgRzpscMAOOwowlT3JhusdazXGSC/hxR3UlmWVwWHpOIKheqONvjyhSiTHIkVUco5bnji8m//zL7PKaT1Vl5I6UE609f+gkr6MZKVyKc7zJRmCahLsdlyA5fdQkRSan9LgnnLEyGSkaKJCJog0wAgvepWBt80+1yKln1bMVtCljfNWDueKLsWwaEbBSfSPTEmVRsUcYYMnEjcjeyCZzBXK9E9BYBXLKjOSpUDR+nEV3TFSUdQaz+ot98QxgXwx0GQ+EEUAKB2qZPkQQ0GqFD8UPFMqyaCHM24BZmSGic9EYMagKizOw9Hz50DMrDLrqqLkTAhplMictiCAx5S3BIUQdeJeLnBy2CNtMfz6cV4u8XKoFZQesbf9YZiIERiHjaNodDW6LgcirX/mPnJIkBGDUpTBhSa0EIr38D5hCIszhCM8URGBqImoWjpvpt1ebu/v3Gl3qJfMnNM+9V+kiRFyROTPHQWOcs1dNW94/ukKMPZBvDi55i5CttdeJz84DLngLqjcdwEZ87bFFR8CIG35OAkDVN6VRDZ7aq67NteYqZ2lpT8oYB2CytoBd6VuAx4WgiAsnuj3WohG+LugzXiQRDeM3XYXlULv4dp5VFYC) format("woff2"),url(/assets/KaTeX_Size3-Regular-CTq5MqoE.woff) format("woff"),url(/assets/KaTeX_Size3-Regular-DgpXs0kz.ttf) format("truetype")}@font-face{font-display:block;font-family:KaTeX_Size4;font-style:normal;font-weight:400;src:url(/assets/KaTeX_Size4-Regular-Dl5lxZxV.woff2) format("woff2"),url(/assets/KaTeX_Size4-Regular-BF-4gkZK.woff) format("woff"),url(/assets/KaTeX_Size4-Regular-DWFBv043.ttf) format("truetype")}@font-face{font-display:block;font-family:KaTeX_Typewriter;font-style:normal;font-weight:400;src:url(/assets/KaTeX_Typewriter-Regular-CO6r4hn1.woff2) format("woff2"),url(/assets/KaTeX_Typewriter-Regular-C0xS9mPB.woff) format("woff"),url(/assets/KaTeX_Typewriter-Regular-D3Ib7_Hf.ttf) format("truetype")}.katex{font: 1.21em KaTeX_Main,Times New Roman,serif;line-height:1.2;position:relative;text-indent:0;text-rendering:auto}.katex *{-ms-high-contrast-adjust:none!important;border-color:currentColor}.katex .katex-version:after{content:"0.16.42"}.katex .katex-mathml{clip:rect(1px,1px,1px,1px);border:0;height:1px;overflow:hidden;padding:0;position:absolute;width:1px}.katex .katex-html>.newline{display:block}.katex .base{position:relative;white-space:nowrap;width:-webkit-min-content;width:-moz-min-content;width:min-content}.katex .base,.katex .strut{display:inline-block}.katex .textbf{font-weight:700}.katex .textit{font-style:italic}.katex .textrm{font-family:KaTeX_Main}.katex .textsf{font-family:KaTeX_SansSerif}.katex .texttt{font-family:KaTeX_Typewriter}.katex .mathnormal{font-family:KaTeX_Math;font-style:italic}.katex .mathit{font-family:KaTeX_Main;font-style:italic}.katex .mathrm{font-style:normal}.katex .mathbf{font-family:KaTeX_Main;font-weight:700}.katex .boldsymbol{font-family:KaTeX_Math;font-style:italic;font-weight:700}.katex .amsrm,.katex .mathbb,.katex .textbb{font-family:KaTeX_AMS}.katex .mathcal{font-family:KaTeX_Caligraphic}.katex .mathfrak,.katex .textfrak{font-family:KaTeX_Fraktur}.katex .mathboldfrak,.katex .textboldfrak{font-family:KaTeX_Fraktur;font-weight:700}.katex .mathtt{font-family:KaTeX_Typewriter}.katex .mathscr,.katex .textscr{font-family:KaTeX_Script}.katex .mathsf,.katex .textsf{font-family:KaTeX_SansSerif}.katex .mathboldsf,.katex .textboldsf{font-family:KaTeX_SansSerif;font-weight:700}.katex .mathitsf,.katex .mathsfit,.katex .textitsf{font-family:KaTeX_SansSerif;font-style:italic}.katex .mainrm{font-family:KaTeX_Main;font-style:normal}.katex .vlist-t{border-collapse:collapse;display:inline-table;table-layout:fixed}.katex .vlist-r{display:table-row}.katex .vlist{display:table-cell;position:relative;vertical-align:bottom}.katex .vlist>span{display:block;height:0;position:relative}.katex .vlist>span>span{display:inline-block}.katex .vlist>span>.pstrut{overflow:hidden;width:0}.katex .vlist-t2{margin-right:-2px}.katex .vlist-s{display:table-cell;font-size:1px;min-width:2px;vertical-align:bottom;width:2px}.katex .vbox{align-items:baseline;display:inline-flex;flex-direction:column}.katex .hbox{width:100%}.katex .hbox,.katex .thinbox{display:inline-flex;flex-direction:row}.katex .thinbox{max-width:0;width:0}.katex .msupsub{text-align:left}.katex .mfrac>span>span{text-align:center}.katex .mfrac .frac-line{border-bottom-style:solid;display:inline-block;width:100%}.katex .hdashline,.katex .hline,.katex .mfrac .frac-line,.katex .overline .overline-line,.katex .rule,.katex .underline .underline-line{min-height:1px}.katex .mspace{display:inline-block}.katex .smash{display:inline;line-height:0}.katex .clap,.katex .llap,.katex .rlap{position:relative;width:0}.katex .clap>.inner,.katex .llap>.inner,.katex .rlap>.inner{position:absolute}.katex .clap>.fix,.katex .llap>.fix,.katex .rlap>.fix{display:inline-block}.katex .llap>.inner{right:0}.katex .clap>.inner,.katex .rlap>.inner{left:0}.katex .clap>.inner>span{margin-left:-50%;margin-right:50%}.katex .rule{border:0 solid;display:inline-block;position:relative}.katex .hline,.katex .overline .overline-line,.katex .underline .underline-line{border-bottom-style:solid;display:inline-block;width:100%}.katex .hdashline{border-bottom-style:dashed;display:inline-block;width:100%}.katex .sqrt>.root{margin-left:.2777777778em;margin-right:-.5555555556em}.katex .fontsize-ensurer.reset-size1.size1,.katex .sizing.reset-size1.size1{font-size:1em}.katex .fontsize-ensurer.reset-size1.size2,.katex .sizing.reset-size1.size2{font-size:1.2em}.katex .fontsize-ensurer.reset-size1.size3,.katex .sizing.reset-size1.size3{font-size:1.4em}.katex .fontsize-ensurer.reset-size1.size4,.katex .sizing.reset-size1.size4{font-size:1.6em}.katex .fontsize-ensurer.reset-size1.size5,.katex .sizing.reset-size1.size5{font-size:1.8em}.katex .fontsize-ensurer.reset-size1.size6,.katex .sizing.reset-size1.size6{font-size:2em}.katex .fontsize-ensurer.reset-size1.size7,.katex .sizing.reset-size1.size7{font-size:2.4em}.katex .fontsize-ensurer.reset-size1.size8,.katex .sizing.reset-size1.size8{font-size:2.88em}.katex .fontsize-ensurer.reset-size1.size9,.katex .sizing.reset-size1.size9{font-size:3.456em}.katex .fontsize-ensurer.reset-size1.size10,.katex .sizing.reset-size1.size10{font-size:4.148em}.katex .fontsize-ensurer.reset-size1.size11,.katex .sizing.reset-size1.size11{font-size:4.976em}.katex .fontsize-ensurer.reset-size2.size1,.katex .sizing.reset-size2.size1{font-size:.8333333333em}.katex .fontsize-ensurer.reset-size2.size2,.katex .sizing.reset-size2.size2{font-size:1em}.katex .fontsize-ensurer.reset-size2.size3,.katex .sizing.reset-size2.size3{font-size:1.1666666667em}.katex .fontsize-ensurer.reset-size2.size4,.katex .sizing.reset-size2.size4{font-size:1.3333333333em}.katex .fontsize-ensurer.reset-size2.size5,.katex .sizing.reset-size2.size5{font-size:1.5em}.katex .fontsize-ensurer.reset-size2.size6,.katex .sizing.reset-size2.size6{font-size:1.6666666667em}.katex .fontsize-ensurer.reset-size2.size7,.katex .sizing.reset-size2.size7{font-size:2em}.katex .fontsize-ensurer.reset-size2.size8,.katex .sizing.reset-size2.size8{font-size:2.4em}.katex .fontsize-ensurer.reset-size2.size9,.katex .sizing.reset-size2.size9{font-size:2.88em}.katex .fontsize-ensurer.reset-size2.size10,.katex .sizing.reset-size2.size10{font-size:3.4566666667em}.katex .fontsize-ensurer.reset-size2.size11,.katex .sizing.reset-size2.size11{font-size:4.1466666667em}.katex .fontsize-ensurer.reset-size3.size1,.katex .sizing.reset-size3.size1{font-size:.7142857143em}.katex .fontsize-ensurer.reset-size3.size2,.katex .sizing.reset-size3.size2{font-size:.8571428571em}.katex .fontsize-ensurer.reset-size3.size3,.katex .sizing.reset-size3.size3{font-size:1em}.katex .fontsize-ensurer.reset-size3.size4,.katex .sizing.reset-size3.size4{font-size:1.1428571429em}.katex .fontsize-ensurer.reset-size3.size5,.katex .sizing.reset-size3.size5{font-size:1.2857142857em}.katex .fontsize-ensurer.reset-size3.size6,.katex .sizing.reset-size3.size6{font-size:1.4285714286em}.katex .fontsize-ensurer.reset-size3.size7,.katex .sizing.reset-size3.size7{font-size:1.7142857143em}.katex .fontsize-ensurer.reset-size3.size8,.katex .sizing.reset-size3.size8{font-size:2.0571428571em}.katex .fontsize-ensurer.reset-size3.size9,.katex .sizing.reset-size3.size9{font-size:2.4685714286em}.katex .fontsize-ensurer.reset-size3.size10,.katex .sizing.reset-size3.size10{font-size:2.9628571429em}.katex .fontsize-ensurer.reset-size3.size11,.katex .sizing.reset-size3.size11{font-size:3.5542857143em}.katex .fontsize-ensurer.reset-size4.size1,.katex .sizing.reset-size4.size1{font-size:.625em}.katex .fontsize-ensurer.reset-size4.size2,.katex .sizing.reset-size4.size2{font-size:.75em}.katex .fontsize-ensurer.reset-size4.size3,.katex .sizing.reset-size4.size3{font-size:.875em}.katex .fontsize-ensurer.reset-size4.size4,.katex .sizing.reset-size4.size4{font-size:1em}.katex .fontsize-ensurer.reset-size4.size5,.katex .sizing.reset-size4.size5{font-size:1.125em}.katex .fontsize-ensurer.reset-size4.size6,.katex .sizing.reset-size4.size6{font-size:1.25em}.katex .fontsize-ensurer.reset-size4.size7,.katex .sizing.reset-size4.size7{font-size:1.5em}.katex .fontsize-ensurer.reset-size4.size8,.katex .sizing.reset-size4.size8{font-size:1.8em}.katex .fontsize-ensurer.reset-size4.size9,.katex .sizing.reset-size4.size9{font-size:2.16em}.katex .fontsize-ensurer.reset-size4.size10,.katex .sizing.reset-size4.size10{font-size:2.5925em}.katex .fontsize-ensurer.reset-size4.size11,.katex .sizing.reset-size4.size11{font-size:3.11em}.katex .fontsize-ensurer.reset-size5.size1,.katex .sizing.reset-size5.size1{font-size:.5555555556em}.katex .fontsize-ensurer.reset-size5.size2,.katex .sizing.reset-size5.size2{font-size:.6666666667em}.katex .fontsize-ensurer.reset-size5.size3,.katex .sizing.reset-size5.size3{font-size:.7777777778em}.katex .fontsize-ensurer.reset-size5.size4,.katex .sizing.reset-size5.size4{font-size:.8888888889em}.katex .fontsize-ensurer.reset-size5.size5,.katex .sizing.reset-size5.size5{font-size:1em}.katex .fontsize-ensurer.reset-size5.size6,.katex .sizing.reset-size5.size6{font-size:1.1111111111em}.katex .fontsize-ensurer.reset-size5.size7,.katex .sizing.reset-size5.size7{font-size:1.3333333333em}.katex .fontsize-ensurer.reset-size5.size8,.katex .sizing.reset-size5.size8{font-size:1.6em}.katex .fontsize-ensurer.reset-size5.size9,.katex .sizing.reset-size5.size9{font-size:1.92em}.katex .fontsize-ensurer.reset-size5.size10,.katex .sizing.reset-size5.size10{font-size:2.3044444444em}.katex .fontsize-ensurer.reset-size5.size11,.katex .sizing.reset-size5.size11{font-size:2.7644444444em}.katex .fontsize-ensurer.reset-size6.size1,.katex .sizing.reset-size6.size1{font-size:.5em}.katex .fontsize-ensurer.reset-size6.size2,.katex .sizing.reset-size6.size2{font-size:.6em}.katex .fontsize-ensurer.reset-size6.size3,.katex .sizing.reset-size6.size3{font-size:.7em}.katex .fontsize-ensurer.reset-size6.size4,.katex .sizing.reset-size6.size4{font-size:.8em}.katex .fontsize-ensurer.reset-size6.size5,.katex .sizing.reset-size6.size5{font-size:.9em}.katex .fontsize-ensurer.reset-size6.size6,.katex .sizing.reset-size6.size6{font-size:1em}.katex .fontsize-ensurer.reset-size6.size7,.katex .sizing.reset-size6.size7{font-size:1.2em}.katex .fontsize-ensurer.reset-size6.size8,.katex .sizing.reset-size6.size8{font-size:1.44em}.katex .fontsize-ensurer.reset-size6.size9,.katex .sizing.reset-size6.size9{font-size:1.728em}.katex .fontsize-ensurer.reset-size6.size10,.katex .sizing.reset-size6.size10{font-size:2.074em}.katex .fontsize-ensurer.reset-size6.size11,.katex .sizing.reset-size6.size11{font-size:2.488em}.katex .fontsize-ensurer.reset-size7.size1,.katex .sizing.reset-size7.size1{font-size:.4166666667em}.katex .fontsize-ensurer.reset-size7.size2,.katex .sizing.reset-size7.size2{font-size:.5em}.katex .fontsize-ensurer.reset-size7.size3,.katex .sizing.reset-size7.size3{font-size:.5833333333em}.katex .fontsize-ensurer.reset-size7.size4,.katex .sizing.reset-size7.size4{font-size:.6666666667em}.katex .fontsize-ensurer.reset-size7.size5,.katex .sizing.reset-size7.size5{font-size:.75em}.katex .fontsize-ensurer.reset-size7.size6,.katex .sizing.reset-size7.size6{font-size:.8333333333em}.katex .fontsize-ensurer.reset-size7.size7,.katex .sizing.reset-size7.size7{font-size:1em}.katex .fontsize-ensurer.reset-size7.size8,.katex .sizing.reset-size7.size8{font-size:1.2em}.katex .fontsize-ensurer.reset-size7.size9,.katex .sizing.reset-size7.size9{font-size:1.44em}.katex .fontsize-ensurer.reset-size7.size10,.katex .sizing.reset-size7.size10{font-size:1.7283333333em}.katex .fontsize-ensurer.reset-size7.size11,.katex .sizing.reset-size7.size11{font-size:2.0733333333em}.katex .fontsize-ensurer.reset-size8.size1,.katex .sizing.reset-size8.size1{font-size:.3472222222em}.katex .fontsize-ensurer.reset-size8.size2,.katex .sizing.reset-size8.size2{font-size:.4166666667em}.katex .fontsize-ensurer.reset-size8.size3,.katex .sizing.reset-size8.size3{font-size:.4861111111em}.katex .fontsize-ensurer.reset-size8.size4,.katex .sizing.reset-size8.size4{font-size:.5555555556em}.katex .fontsize-ensurer.reset-size8.size5,.katex .sizing.reset-size8.size5{font-size:.625em}.katex .fontsize-ensurer.reset-size8.size6,.katex .sizing.reset-size8.size6{font-size:.6944444444em}.katex .fontsize-ensurer.reset-size8.size7,.katex .sizing.reset-size8.size7{font-size:.8333333333em}.katex .fontsize-ensurer.reset-size8.size8,.katex .sizing.reset-size8.size8{font-size:1em}.katex .fontsize-ensurer.reset-size8.size9,.katex .sizing.reset-size8.size9{font-size:1.2em}.katex .fontsize-ensurer.reset-size8.size10,.katex .sizing.reset-size8.size10{font-size:1.4402777778em}.katex .fontsize-ensurer.reset-size8.size11,.katex .sizing.reset-size8.size11{font-size:1.7277777778em}.katex .fontsize-ensurer.reset-size9.size1,.katex .sizing.reset-size9.size1{font-size:.2893518519em}.katex .fontsize-ensurer.reset-size9.size2,.katex .sizing.reset-size9.size2{font-size:.3472222222em}.katex .fontsize-ensurer.reset-size9.size3,.katex .sizing.reset-size9.size3{font-size:.4050925926em}.katex .fontsize-ensurer.reset-size9.size4,.katex .sizing.reset-size9.size4{font-size:.462962963em}.katex .fontsize-ensurer.reset-size9.size5,.katex .sizing.reset-size9.size5{font-size:.5208333333em}.katex .fontsize-ensurer.reset-size9.size6,.katex .sizing.reset-size9.size6{font-size:.5787037037em}.katex .fontsize-ensurer.reset-size9.size7,.katex .sizing.reset-size9.size7{font-size:.6944444444em}.katex .fontsize-ensurer.reset-size9.size8,.katex .sizing.reset-size9.size8{font-size:.8333333333em}.katex .fontsize-ensurer.reset-size9.size9,.katex .sizing.reset-size9.size9{font-size:1em}.katex .fontsize-ensurer.reset-size9.size10,.katex .sizing.reset-size9.size10{font-size:1.2002314815em}.katex .fontsize-ensurer.reset-size9.size11,.katex .sizing.reset-size9.size11{font-size:1.4398148148em}.katex .fontsize-ensurer.reset-size10.size1,.katex .sizing.reset-size10.size1{font-size:.2410800386em}.katex .fontsize-ensurer.reset-size10.size2,.katex .sizing.reset-size10.size2{font-size:.2892960463em}.katex .fontsize-ensurer.reset-size10.size3,.katex .sizing.reset-size10.size3{font-size:.337512054em}.katex .fontsize-ensurer.reset-size10.size4,.katex .sizing.reset-size10.size4{font-size:.3857280617em}.katex .fontsize-ensurer.reset-size10.size5,.katex .sizing.reset-size10.size5{font-size:.4339440694em}.katex .fontsize-ensurer.reset-size10.size6,.katex .sizing.reset-size10.size6{font-size:.4821600771em}.katex .fontsize-ensurer.reset-size10.size7,.katex .sizing.reset-size10.size7{font-size:.5785920926em}.katex .fontsize-ensurer.reset-size10.size8,.katex .sizing.reset-size10.size8{font-size:.6943105111em}.katex .fontsize-ensurer.reset-size10.size9,.katex .sizing.reset-size10.size9{font-size:.8331726133em}.katex .fontsize-ensurer.reset-size10.size10,.katex .sizing.reset-size10.size10{font-size:1em}.katex .fontsize-ensurer.reset-size10.size11,.katex .sizing.reset-size10.size11{font-size:1.1996142719em}.katex .fontsize-ensurer.reset-size11.size1,.katex .sizing.reset-size11.size1{font-size:.2009646302em}.katex .fontsize-ensurer.reset-size11.size2,.katex .sizing.reset-size11.size2{font-size:.2411575563em}.katex .fontsize-ensurer.reset-size11.size3,.katex .sizing.reset-size11.size3{font-size:.2813504823em}.katex .fontsize-ensurer.reset-size11.size4,.katex .sizing.reset-size11.size4{font-size:.3215434084em}.katex .fontsize-ensurer.reset-size11.size5,.katex .sizing.reset-size11.size5{font-size:.3617363344em}.katex .fontsize-ensurer.reset-size11.size6,.katex .sizing.reset-size11.size6{font-size:.4019292605em}.katex .fontsize-ensurer.reset-size11.size7,.katex .sizing.reset-size11.size7{font-size:.4823151125em}.katex .fontsize-ensurer.reset-size11.size8,.katex .sizing.reset-size11.size8{font-size:.578778135em}.katex .fontsize-ensurer.reset-size11.size9,.katex .sizing.reset-size11.size9{font-size:.6945337621em}.katex .fontsize-ensurer.reset-size11.size10,.katex .sizing.reset-size11.size10{font-size:.8336012862em}.katex .fontsize-ensurer.reset-size11.size11,.katex .sizing.reset-size11.size11{font-size:1em}.katex .delimsizing.size1{font-family:KaTeX_Size1}.katex .delimsizing.size2{font-family:KaTeX_Size2}.katex .delimsizing.size3{font-family:KaTeX_Size3}.katex .delimsizing.size4{font-family:KaTeX_Size4}.katex .delimsizing.mult .delim-size1>span{font-family:KaTeX_Size1}.katex .delimsizing.mult .delim-size4>span{font-family:KaTeX_Size4}.katex .nulldelimiter{display:inline-block;width:.12em}.katex .delimcenter,.katex .op-symbol{position:relative}.katex .op-symbol.small-op{font-family:KaTeX_Size1}.katex .op-symbol.large-op{font-family:KaTeX_Size2}.katex .accent>.vlist-t,.katex .op-limits>.vlist-t{text-align:center}.katex .accent .accent-body{position:relative}.katex .accent .accent-body:not(.accent-full){width:0}.katex .overlay{display:block}.katex .mtable .vertical-separator{display:inline-block;min-width:1px}.katex .mtable .arraycolsep{display:inline-block}.katex .mtable .col-align-c>.vlist-t{text-align:center}.katex .mtable .col-align-l>.vlist-t{text-align:left}.katex .mtable .col-align-r>.vlist-t{text-align:right}.katex .svg-align{text-align:left}.katex svg{fill:currentColor;stroke:currentColor;display:block;height:inherit;position:absolute;width:100%}.katex svg path{stroke:none}.katex svg{fill-rule:nonzero;fill-opacity:1;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1}.katex img{border-style:none;max-height:none;max-width:none;min-height:0;min-width:0}.katex .stretchy{display:block;overflow:hidden;position:relative;width:100%}.katex .stretchy:after,.katex .stretchy:before{content:""}.katex .hide-tail{overflow:hidden;position:relative;width:100%}.katex .halfarrow-left{left:0;overflow:hidden;position:absolute;width:50.2%}.katex .halfarrow-right{overflow:hidden;position:absolute;right:0;width:50.2%}.katex .brace-left{left:0;overflow:hidden;position:absolute;width:25.1%}.katex .brace-center{left:25%;overflow:hidden;position:absolute;width:50%}.katex .brace-right{overflow:hidden;position:absolute;right:0;width:25.1%}.katex .x-arrow-pad{padding:0 .5em}.katex .cd-arrow-pad{padding:0 .55556em 0 .27778em}.katex .mover,.katex .munder,.katex .x-arrow{text-align:center}.katex .boxpad{padding:0 .3em}.katex .fbox,.katex .fcolorbox{border:.04em solid;box-sizing:border-box}.katex .cancel-pad{padding:0 .2em}.katex .cancel-lap{margin-left:-.2em;margin-right:-.2em}.katex .sout{border-bottom-style:solid;border-bottom-width:.08em}.katex .angl{border-right:.049em solid;border-top:.049em solid;box-sizing:border-box;margin-right:.03889em}.katex .anglpad{padding:0 .03889em}.katex .eqn-num:before{content:"(" counter(katexEqnNo) ")";counter-increment:katexEqnNo}.katex .mml-eqn-num:before{content:"(" counter(mmlEqnNo) ")";counter-increment:mmlEqnNo}.katex .mtr-glue{width:50%}.katex .cd-vert-arrow{display:inline-block;position:relative}.katex .cd-label-left{display:inline-block;position:absolute;right:calc(50% + .3em);text-align:left}.katex .cd-label-right{display:inline-block;left:calc(50% + .3em);position:absolute;text-align:right}.katex-display{display:block;margin:1em 0;text-align:center}.katex-display>.katex{display:block;text-align:center;white-space:nowrap}.katex-display>.katex>.katex-html{display:block;position:relative}.katex-display>.katex>.katex-html>.tag{position:absolute;right:0}.katex-display.leqno>.katex>.katex-html>.tag{left:0;right:auto}.katex-display.fleqn>.katex{padding-left:2em;text-align:left}body{counter-reset:katexEqnNo mmlEqnNo}.ai-slide-page{max-width:1200px;margin:0 auto;display:flex;flex-direction:column;gap:1.1rem;font-family:var(--font-family)}.ai-slide-page input,.ai-slide-page select,.ai-slide-page textarea,.ai-slide-page button{font-family:inherit}.ai-slide-header{margin-bottom:.25rem}.ai-slide-title{margin:0;font-size:1.8rem;font-weight:800;color:var(--gray-900);font-family:var(--font-heading)}.ai-slide-subtitle{margin:.35rem 0 0;color:var(--gray-600);line-height:1.5}.ai-slide-stepper{margin:.8rem 0 0;padding:0;list-style:none;display:flex;align-items:flex-start}.ai-slide-step-item{position:relative;flex:1;min-width:0;display:flex;flex-direction:column;align-items:center;gap:.4rem;padding:0 .35rem;color:#64748b;transition:color .2s ease}.ai-slide-step-item:after{content:"";position:absolute;left:calc(50% + 14px);width:calc(100% - 28px);top:12px;height:1px;background:#d1d5db}.ai-slide-step-item:last-child:after{display:none}.ai-slide-step-dot{width:24px;height:24px;border-radius:999px;border:1px solid #cbd5e1;background:#fff;color:#475569;display:inline-flex;align-items:center;justify-content:center;font-size:.76rem;font-weight:700;flex-shrink:0;z-index:1}.ai-slide-step-text{font-size:.8rem;font-weight:600;line-height:1.25;text-align:center;white-space:normal}.ai-slide-step-item.done{color:#1d4ed8}.ai-slide-step-item.done .ai-slide-step-dot{border-color:#93c5fd;background:#eff6ff;color:#1d4ed8}.ai-slide-step-item.done:after{background:#93c5fd}.ai-slide-step-item.active{color:#0f172a}.ai-slide-step-item.active .ai-slide-step-dot{border-color:#3b82f6;background:#3b82f6;color:#fff;box-shadow:0 0 0 3px #3b82f62e}.ai-slide-step-item.active .ai-slide-step-text{font-weight:700}.ai-slide-step-item.active:after{background:linear-gradient(90deg,#93c5fd,#d1d5db)}.ai-slide-card{background:linear-gradient(180deg,#fff,#f8fafc);border-radius:16px;border:1px solid #e2e8f0;padding:1.1rem;box-shadow:0 8px 24px #0f172a14}.ai-slide-card h2{margin:0 0 .85rem;font-size:1.1rem;color:var(--gray-900);font-family:var(--font-heading)}.ai-slide-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.85rem}.ai-slide-step-list{display:grid;grid-template-columns:1fr;gap:.95rem}.ai-slide-config-grid{grid-template-columns:180px 1fr}.ai-slide-page label{display:flex;flex-direction:column;gap:.35rem}.ai-slide-page label span{font-size:.875rem;color:var(--gray-700);font-weight:600}.ai-slide-page select,.ai-slide-page input,.ai-slide-page textarea{width:100%;border:1px solid #d1d5db;border-radius:10px;padding:.65rem .75rem;font-size:.92rem;background:#fff;color:#0f172a}.ai-slide-page select:focus,.ai-slide-page input:focus,.ai-slide-page textarea:focus{outline:none;border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f626}.ai-slide-full-width{margin-top:.85rem}.ai-slide-format-hint{margin-top:.35rem;color:#64748b;font-size:.8rem;line-height:1.4}.ai-slide-fieldset{border:0;margin:0;padding:0;display:flex;flex-direction:column;gap:0}.ai-slide-fieldset:disabled{opacity:.65}.ai-slide-actions{margin-top:.9rem;display:flex;flex-wrap:wrap;gap:.65rem}.module-layout-container .ai-slide-page .btn,.ai-slide-page .btn{border-radius:12px;border:1px solid transparent;padding:.62rem 1rem;min-height:40px;font-size:.9rem;font-weight:700;line-height:1;letter-spacing:.01em;display:inline-flex;align-items:center;justify-content:center;gap:.45rem;cursor:pointer;transition:transform .16s ease,box-shadow .18s ease,background-color .18s ease,border-color .18s ease,color .18s ease}.module-layout-container .ai-slide-page .btn:focus-visible,.ai-slide-page .btn:focus-visible{outline:none;box-shadow:0 0 0 3px #2563eb33}.module-layout-container .ai-slide-page .btn-primary,.ai-slide-page .btn-primary{background:linear-gradient(135deg,#2563eb,#1d4ed8);border-color:#1d4ed8;color:#fff;box-shadow:0 8px 16px #2563eb3d}.module-layout-container .ai-slide-page .btn-primary:hover:not(:disabled),.ai-slide-page .btn-primary:hover:not(:disabled){background:linear-gradient(135deg,#1d4ed8,#1e40af);border-color:#1e40af;transform:translateY(-1px);box-shadow:0 10px 20px #1e40af47}.module-layout-container .ai-slide-page .btn-outline,.ai-slide-page .btn-outline{background:#fff;border-color:#c7d2fe;color:#1e3a8a;box-shadow:0 2px 10px #1e3a8a14}.module-layout-container .ai-slide-page .btn-outline:hover:not(:disabled),.ai-slide-page .btn-outline:hover:not(:disabled){background:#eff6ff;border-color:#93c5fd;color:#1e40af;transform:translateY(-1px);box-shadow:0 8px 16px #3b82f62e}.module-layout-container .ai-slide-page .btn:disabled,.ai-slide-page .btn:disabled{opacity:.6;cursor:not-allowed;transform:none;box-shadow:none}.ai-slide-template-gallery{margin-top:.9rem;display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:.8rem}.ai-slide-template-card{border:1px solid #cbd5e1;border-radius:12px;background:#fff;padding:.55rem;text-align:left;cursor:pointer;transition:transform .18s ease,box-shadow .18s ease,border-color .18s ease}.ai-slide-template-card:hover{transform:translateY(-2px);border-color:#3b82f6;box-shadow:0 8px 18px #2563eb29}.ai-slide-template-card.active{border-color:#2563eb;box-shadow:0 0 0 3px #2563eb33;animation:ai-slide-template-pop .22s ease}.ai-slide-template-thumb{width:100%;aspect-ratio:16 / 9;border-radius:10px;overflow:hidden;background:#f8fafc;border:1px solid #e2e8f0}.ai-slide-template-thumb img{width:100%;height:100%;object-fit:cover;display:block}.ai-slide-template-placeholder{width:100%;height:100%;display:grid;place-items:center;color:#64748b;font-size:.82rem;font-weight:700;background:repeating-linear-gradient(45deg,#f1f5f9,#f1f5f9 12px,#e2e8f0 12px 24px)}.ai-slide-template-meta{margin-top:.55rem;display:flex;flex-direction:column;gap:.2rem}.ai-slide-template-meta strong{color:#0f172a;font-size:.92rem}.ai-slide-template-meta span{color:#475569;font-size:.8rem;line-height:1.35;display:-webkit-box;-webkit-line-clamp:2;line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.ai-slide-loading-inline{display:inline-flex;align-items:center;gap:.45rem;font-weight:600}.ai-slide-spinner{width:16px;height:16px;border-radius:999px;border:2px solid #bfdbfe;border-top-color:#2563eb;animation:ai-slide-spin .8s linear infinite}@keyframes ai-slide-spin{to{transform:rotate(360deg)}}@keyframes ai-slide-template-pop{0%{transform:scale(.985)}to{transform:scale(1)}}.ai-slide-info{margin:.75rem 0 0;color:var(--gray-600);font-size:.9rem}.ai-slide-error,.ai-slide-success{margin:.7rem 0 0;font-size:.92rem;font-weight:600}.ai-slide-error{color:#dc2626}.ai-slide-success{color:#16a34a}.ai-slide-list{display:flex;flex-direction:column;gap:.75rem}.ai-slide-preview-wrap{border:1px solid #e2e8f0;border-radius:14px;padding:.9rem;background:#fff;margin-top:.8rem;margin-bottom:1rem}.ai-slide-preview-toolbar{display:flex;align-items:center;justify-content:space-between;gap:.5rem;margin-bottom:.75rem}.ai-slide-preview-toolbar span{font-weight:700;color:#334155}.ai-slide-preview-canvas{min-height:220px;border-radius:14px;padding:1rem;background:radial-gradient(circle at 90% 10%,rgba(56,189,248,.12),transparent 35%),radial-gradient(circle at 15% 90%,rgba(37,99,235,.12),transparent 30%),#f8fafc;border:1px solid #cbd5e1;display:flex;flex-direction:column;gap:.65rem}.ai-slide-preview-heading{margin:0;color:#0f172a;font-size:1.2rem;font-weight:700;line-height:1.35;white-space:pre-wrap}.ai-slide-preview-content{margin:0;line-height:1.55;color:#334155;white-space:pre-wrap}.ai-slide-preview-heading .katex,.ai-slide-preview-content .katex{font-size:1em}.ai-slide-math-block{display:block;margin:.45rem 0;overflow-x:auto}.ai-slide-preview-tag{align-self:flex-start;border-radius:999px;background:#e0e7ff;color:#3730a3;font-size:.78rem;font-weight:700;padding:.2rem .6rem}.ai-slide-edit-heading{margin:0 0 .75rem;font-size:1rem;color:#0f172a}.ai-slide-item{border:1px solid #e5e7eb;border-radius:10px;padding:.85rem;background:#fafafa}.ai-slide-item-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:.55rem;color:#0f172a}.ai-slide-item-header span{font-size:.8rem;color:#475569;background:#e2e8f0;border-radius:999px;padding:.2rem .55rem}@media(max-width:900px){.ai-slide-stepper{flex-wrap:wrap;gap:.55rem 0}.ai-slide-step-item{flex:1 1 50%;padding:0 .35rem}.ai-slide-step-item:after{display:none}.ai-slide-grid,.ai-slide-config-grid{grid-template-columns:1fr}.ai-slide-actions .btn{width:100%}.ai-slide-preview-toolbar{flex-direction:column;align-items:stretch}}@media(max-width:560px){.ai-slide-step-item{flex-basis:100%}}.teacher-analytics-page{max-width:1600px;margin:0 auto}.header-actions{display:flex;gap:.75rem}.header-actions select{padding:.625rem 1rem;border:2px solid var(--gray-300);border-radius:8px;font-size:.9375rem;background:#fff;cursor:pointer}.key-metrics{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:1.5rem;margin-bottom:2rem}.metric-card{background:#fff;border-radius:16px;padding:1.5rem;display:flex;gap:1rem;box-shadow:0 2px 8px #0000001a;transition:transform .2s}.metric-card:hover{transform:translateY(-2px)}.metric-icon{width:60px;height:60px;border-radius:12px;display:flex;align-items:center;justify-content:center;font-size:1.75rem;flex-shrink:0}.metric-content{flex:1}.metric-value{font-size:2rem;font-weight:800;color:var(--gray-900);line-height:1;margin-bottom:.25rem}.metric-label{font-size:.875rem;color:var(--gray-600);margin-bottom:.5rem}.metric-trend{font-size:.813rem;font-weight:600}.metric-trend.positive{color:var(--success-color)}.metric-trend.negative{color:var(--error-color)}.analytics-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:1.5rem;margin-bottom:2rem}.analytics-card{background:#fff;border-radius:16px;padding:1.5rem;box-shadow:0 2px 8px #0000001a}.analytics-card.large{grid-column:span 2}.card-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1.5rem;padding-bottom:1rem;border-bottom:2px solid var(--gray-200)}.card-title{font-size:1.125rem;font-weight:700;color:var(--gray-900);margin:0}.student-performance-table{overflow-x:auto}.student-performance-table table{width:100%;border-collapse:collapse}.student-performance-table th{background:var(--gray-50);padding:.875rem;text-align:left;font-size:.875rem;font-weight:700;color:var(--gray-700)}.student-performance-table td{padding:.875rem;border-bottom:1px solid var(--gray-200)}.student-name{display:flex;align-items:center;gap:.75rem;font-weight:600}.student-avatar{width:32px;height:32px;border-radius:50%;background:var(--gradient-primary);color:#fff;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:.875rem}.score-badge{padding:.375rem .75rem;border-radius:8px;font-weight:700;font-size:.875rem}.score-badge.high{background:linear-gradient(135deg,#43e97b,#38f9d7);color:#fff}.score-badge.medium{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff}.score-badge.low{background:linear-gradient(135deg,#ffd89b,#19547b);color:#fff}.improvement{font-weight:700;font-size:.875rem}.improvement.positive{color:var(--success-color)}.improvement.negative{color:var(--error-color)}.attendance-bar{position:relative;height:24px;background:var(--gray-200);border-radius:12px;overflow:hidden;min-width:100px}.attendance-fill{height:100%;background:var(--gradient-primary);transition:width .3s}.attendance-text{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);font-size:.75rem;font-weight:700;color:var(--gray-700)}.activity-chart{display:flex;gap:1rem;align-items:flex-end;height:200px;padding:1rem 0}.activity-bar-group{flex:1;display:flex;flex-direction:column;align-items:center;gap:.5rem}.activity-bar{width:100%;background:var(--gradient-primary);border-radius:8px 8px 0 0;position:relative;min-height:20px;display:flex;align-items:flex-start;justify-content:center;padding-top:.5rem;transition:height .3s}.bar-value{color:#fff;font-weight:700;font-size:.875rem}.bar-label{font-size:.875rem;font-weight:600;color:var(--gray-700)}.bar-detail{font-size:.75rem;color:var(--gray-500)}.course-progress-list{display:flex;flex-direction:column;gap:1.5rem}.progress-item{padding:1rem;background:var(--gray-50);border-radius:12px}.progress-header{display:flex;justify-content:space-between;margin-bottom:.75rem}.progress-course-name{font-weight:600;color:var(--gray-900)}.progress-students{font-size:.875rem;color:var(--gray-600)}.progress-stats{display:flex;gap:2rem;margin-bottom:.75rem}.stat{display:flex;flex-direction:column;gap:.25rem}.stat-label{font-size:.75rem;color:var(--gray-600)}.stat-value{font-size:1.125rem;font-weight:700;color:var(--primary-color)}.progress-bar-wrapper{margin-top:.75rem}.progress-fill{height:100%;background:var(--gradient-primary);border-radius:4px;transition:width .3s}.assignment-stats-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:1rem}.stat-box{background:var(--gray-50);padding:1.5rem;border-radius:12px;text-align:center}.stat-icon{font-size:2rem;margin-bottom:.5rem}.stat-number{font-size:1.75rem;font-weight:800;color:var(--gray-900);margin-bottom:.25rem}.stat-name{font-size:.875rem;color:var(--gray-600)}.insights-section{margin-top:2rem}.section-title{font-size:1.5rem;font-weight:700;color:var(--gray-900);margin:0 0 1.5rem}.insights-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:1.5rem}.insight-card{display:flex;gap:1rem;padding:1.5rem;border-radius:12px;border-left:4px solid}.insight-card.positive{background:#43e97b1a;border-color:var(--success-color)}.insight-card.warning{background:#ffc7001a;border-color:var(--warning-color)}.insight-card.info{background:#667eea1a;border-color:var(--primary-color)}.insight-icon{font-size:2rem;flex-shrink:0}.insight-content{flex:1}.insight-title{font-size:1rem;font-weight:700;color:var(--gray-900);margin:0 0 .5rem}.insight-text{font-size:.875rem;color:var(--gray-700);line-height:1.6;margin:0}@media(max-width:1024px){.analytics-grid{grid-template-columns:1fr}.analytics-card.large{grid-column:span 1}.assignment-stats-grid{grid-template-columns:1fr}}@media(max-width:768px){.page-header{flex-direction:column;gap:1rem}.header-actions{flex-direction:column;width:100%}.header-actions select,.header-actions button{width:100%}.student-performance-table{font-size:.813rem}.activity-chart{height:150px}.insights-grid{grid-template-columns:1fr}}.sa-page{max-width:1200px;margin:0 auto;padding:0 0 56px;font-family:"Inter",var(--font-heading, "Segoe UI"),sans-serif;font-feature-settings:"cv11","ss01","tnum"}.sa-hub{background:linear-gradient(135deg,#4f46e5,#3b82f6);border-radius:20px;padding:28px 32px 0;margin-bottom:20px;position:relative;overflow:hidden}.sa-hub:before,.sa-hub:after{content:"";position:absolute;border-radius:50%;pointer-events:none}.sa-hub:before{width:280px;height:280px;top:-80px;right:-60px;background:radial-gradient(circle,rgba(255,255,255,.07) 0%,transparent 70%)}.sa-hub:after{width:180px;height:180px;bottom:40px;left:-30px;background:radial-gradient(circle,rgba(255,255,255,.05) 0%,transparent 70%)}.sa-hub-top{display:flex;align-items:flex-end;gap:24px;margin-bottom:24px;flex-wrap:wrap}.sa-greeting{display:flex;align-items:flex-start;gap:12px;flex:1;min-width:220px}.sa-wave{font-size:26px;line-height:1;margin-top:3px;flex-shrink:0}.sa-greet-main{font-size:1.1875rem;font-weight:400;color:#ffffffe6;margin:0 0 4px;line-height:1.3}.sa-greet-main strong{color:#fff;font-weight:700}.sa-greet-sub{font-size:.9375rem;color:#ffffffb8;margin:0;line-height:1.4}.sa-stats{display:flex;align-items:center;background:#ffffff1a;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border:1px solid rgba(255,255,255,.16);border-radius:12px;padding:12px 20px;gap:0;flex-shrink:0}.sa-stat{display:flex;flex-direction:column;gap:2px;padding:0 18px}.sa-stat:first-child{padding-left:0}.sa-stat:last-child{padding-right:0}.sa-stat-n{font-size:1.25rem;font-weight:800;color:#fff;line-height:1;font-feature-settings:"tnum"}.sa-stat-l{font-size:.6875rem;font-weight:500;color:#fff9;text-transform:uppercase;letter-spacing:.055em;white-space:nowrap}.sa-stat-sep{width:1px;height:30px;background:#ffffff2e;flex-shrink:0}.sa-ring-wrap{position:relative;display:flex;flex-direction:column;align-items:center;gap:10px;flex-shrink:0;padding-bottom:4px}.sa-ring-svg{display:block}.sa-ring-center{position:absolute;top:0;left:0;right:0;height:100px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1px}.sa-ring-pct{font-size:1.125rem;font-weight:800;color:#fff;line-height:1;font-feature-settings:"tnum"}.sa-ring-lbl{font-size:.5625rem;font-weight:600;color:#ffffffa6;text-transform:uppercase;letter-spacing:.07em}.sa-ring-info{display:flex;flex-direction:column;align-items:center;gap:3px}.sa-ring-detail{display:flex;align-items:center;gap:5px;font-size:.72rem;font-weight:500;color:#ffffffc7;white-space:nowrap}.sa-ring-detail--warn{color:#fca5a5}.sa-cta-row{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:16px}.sa-cta-next{display:inline-flex;align-items:center;gap:7px;padding:10px 18px 10px 14px;background:#ffffff2e;backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border:1px solid rgba(255,255,255,.32);border-radius:10px;color:#fff;font-family:inherit;font-size:.875rem;font-weight:500;cursor:pointer;white-space:nowrap;max-width:100%;overflow:hidden;transition:background .18s,border-color .18s,box-shadow .18s;text-overflow:ellipsis}.sa-cta-next:hover{background:#ffffff42;border-color:#ffffff80;box-shadow:0 4px 24px #0000002e}.sa-cta-next:focus-visible{outline:2px solid rgba(255,255,255,.7);outline-offset:2px}.sa-cta-ico{flex-shrink:0;opacity:.9}.sa-cta-lbl{font-weight:400;opacity:.82;font-size:.8125rem;flex-shrink:0}.sa-cta-title{font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:260px}.sa-cta-arr{flex-shrink:0;margin-left:2px;opacity:.75;transition:transform .18s}.sa-cta-next:hover .sa-cta-arr{transform:translate(3px)}.sa-toast{display:inline-flex;align-items:center;gap:6px;padding:8px 14px;background:#fbbf242e;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border:1px solid rgba(251,191,36,.4);border-radius:999px;color:#fef3c7;font-size:.8125rem;font-weight:500;white-space:nowrap;animation:sa-toast-pulse 2.4s ease-in-out infinite}.sa-toast strong{color:#fde68a}@keyframes sa-toast-pulse{0%,to{background:#fbbf242e;border-color:#fbbf2466}50%{background:#fbbf2447;border-color:#fbbf24a6}}.sa-task--next{box-shadow:0 0 0 2px #6366f159,0 4px 20px #6366f11f!important}.sa-cmdbar{display:flex;align-items:center;gap:10px;padding-bottom:20px}.sa-search{flex:1;position:relative;display:flex;align-items:center}.sa-search-ico{position:absolute;left:13px;color:#ffffff8c;pointer-events:none;flex-shrink:0}.sa-search-inp{width:100%;padding:11px 44px 11px 38px;background:#ffffff1c;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border:1px solid rgba(255,255,255,.2);border-radius:10px;font-family:inherit;font-size:.9375rem;color:#fff;outline:none;transition:background .18s,border-color .18s}.sa-search-inp::placeholder{color:#ffffff73}.sa-search-inp:focus{background:#ffffff2b;border-color:#ffffff61}.sa-search-inp::-webkit-search-cancel-button{display:none}.sa-search-clr{position:absolute;right:11px;background:none;border:none;color:#ffffff8c;cursor:pointer;padding:4px;display:flex;align-items:center;border-radius:4px;transition:color .15s}.sa-search-clr:hover{color:#fff}.sa-filters{display:flex;gap:8px;flex-shrink:0}.sa-sel-wrap{position:relative;display:flex;align-items:center}.sa-sel{appearance:none;padding:10px 30px 10px 13px;background:#ffffff1c;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);border:1px solid rgba(255,255,255,.2);border-radius:10px;font-family:inherit;font-size:.875rem;font-weight:500;color:#ffffffe0;cursor:pointer;outline:none;transition:background .18s,border-color .18s;min-width:115px}.sa-sel option{background:#3730a3;color:#fff}.sa-sel:hover,.sa-sel:focus{background:#ffffff2b;border-color:#ffffff57}.sa-sel-ico{position:absolute;right:9px;color:#ffffff8c;pointer-events:none}.sa-tabs{display:flex;gap:2px;background:#0000002e;border-radius:12px 12px 0 0;margin:0 -32px;padding:6px 32px 0;overflow-x:auto;scrollbar-width:none}.sa-tabs::-webkit-scrollbar{display:none}.sa-tab{position:relative;display:inline-flex;align-items:center;padding:8px 15px 12px;background:none;border:none;cursor:pointer;border-radius:9px 9px 0 0;font-family:inherit;font-size:.875rem;font-weight:500;color:#ffffff94;transition:color .18s;white-space:nowrap;outline:none}.sa-tab:hover{color:#ffffffe0}.sa-tab:focus-visible{box-shadow:inset 0 0 0 2px #fff6}.sa-tab--on{color:#fff}.sa-tab-pill{position:absolute;inset:0;background:#ffffff21;border-radius:9px 9px 0 0;z-index:0}.sa-tab-txt{position:relative;z-index:1;display:flex;align-items:center;gap:6px}.sa-tab-n{display:inline-flex;align-items:center;justify-content:center;min-width:19px;height:17px;padding:0 5px;background:#ffffff2e;border-radius:100px;font-size:.6875rem;font-weight:700;font-feature-settings:"tnum";line-height:1}.sa-tab--on .sa-tab-n{background:#ffffff47}.sa-engine{display:flex;flex-direction:column;gap:8px}.sa-group{background:#fff;border-radius:16px;border:1px solid var(--gray-200, #e5e7eb);box-shadow:0 1px 3px #0000000a;overflow:hidden}.sa-group-hd{display:flex;align-items:center;gap:8px;width:100%;padding:13px 20px;background:none;border:none;cursor:pointer;font-family:inherit;text-align:left;border-radius:16px;transition:background .14s}.sa-group-hd:hover{background:var(--gray-50, #f9fafb)}.sa-group-hd:focus-visible{box-shadow:inset 0 0 0 2px #4f46e559}.sa-group-chevron{display:flex;align-items:center;color:var(--gray-400, #9ca3af);flex-shrink:0}.sa-group-icon{display:flex;align-items:center;color:var(--gray-500, #6b7280);flex-shrink:0}.sa-group-title{font-size:.75rem;font-weight:700;color:var(--gray-600, #4b5563);text-transform:uppercase;letter-spacing:.065em}.sa-group-count{display:inline-flex;align-items:center;justify-content:center;min-width:22px;height:20px;padding:0 7px;border-radius:100px;font-size:.6875rem;font-weight:700;font-feature-settings:"tnum"}.sa-group-rule{flex:1;height:1px;background:var(--gray-200, #e5e7eb);margin-left:6px}.sa-group-items{padding:0 14px 12px;display:flex;flex-direction:column;gap:6px}.sa-task{display:flex;align-items:stretch;background:#fff;border:1px solid var(--gray-200, #e5e7eb);border-radius:11px;position:relative;cursor:pointer;transition:box-shadow .22s cubic-bezier(.4,0,.2,1),transform .22s cubic-bezier(.4,0,.2,1),border-color .22s cubic-bezier(.4,0,.2,1);outline:none}.sa-task:not(.sa-task--overdue):hover,.sa-task:not(.sa-task--overdue):focus-visible{box-shadow:0 20px 25px -5px #00000017,0 8px 10px -6px #0000000d;transform:translateY(-2px);border-color:transparent;z-index:2}.sa-task:focus-visible{box-shadow:0 0 0 3px #4f46e547}.sa-task--pending:hover{border-color:#f59e0b47}.sa-task--in-progress:hover{border-color:#3b82f647}.sa-task--completed:hover{border-color:#10b98147}.sa-task--overdue:hover,.sa-task--overdue:focus-visible{border-color:#e11d484d;animation:sa-shake .48s cubic-bezier(.36,.07,.19,.97) both;z-index:2}.sa-task-bar{width:4px;flex-shrink:0;align-self:stretch;border-radius:0;transition:width .2s}.sa-task:hover .sa-task-bar{width:5px}.sa-task-body{flex:1;padding:13px 14px 11px;min-width:0}.sa-task-row1{display:flex;align-items:flex-start;gap:10px;margin-bottom:5px}.sa-task-chips{display:flex;align-items:center;gap:5px;flex-wrap:wrap;flex:1;min-width:0}.sa-chip{display:inline-flex;align-items:center;padding:2px 8px;border-radius:5px;font-size:.6875rem;font-weight:600;white-space:nowrap;letter-spacing:.01em}.sa-chip--type{background:var(--gray-100, #f3f4f6);color:var(--gray-500, #6b7280)}.sa-task-right{display:flex;align-items:center;gap:7px;flex-shrink:0;flex-wrap:wrap;justify-content:flex-end}.sa-deadline{display:inline-flex;align-items:center;gap:4px;padding:3px 8px;border-radius:6px;font-size:.6875rem;font-weight:700;white-space:nowrap;background:var(--gray-100, #f3f4f6);color:var(--gray-600, #4b5563);font-feature-settings:"tnum";transition:background .15s}.sa-deadline--urgent{background:#f59e0b1c;color:#b45309;animation:sa-pulse 2.2s ease-in-out infinite}.sa-deadline--overdue{background:#e11d481a;color:#e11d48}.sa-score{display:inline-flex;align-items:center;gap:4px;padding:3px 8px;border-radius:6px;font-size:.6875rem;font-weight:700;white-space:nowrap;font-feature-settings:"tnum"}.sa-score--high{background:#10b9811a;color:#059669}.sa-score--mid{background:#f59e0b1a;color:#b45309}.sa-score--low{background:#e11d481a;color:#e11d48}.sa-quick-actions{display:flex;align-items:center;justify-content:flex-end;gap:5px;min-width:152px;flex-shrink:0}.sa-qa{display:inline-flex;align-items:center;gap:4px;padding:4px 10px;border-radius:6px;font-family:inherit;font-size:.72rem;font-weight:600;cursor:pointer;border:1px solid transparent;transition:opacity .14s,transform .1s,background .14s;white-space:nowrap;line-height:1.2}.sa-qa:active{transform:scale(.95)}.sa-qa--primary{background:linear-gradient(135deg,#4f46e5,#3b82f6);color:#fff;width:96px;justify-content:center}.sa-qa--primary:hover{opacity:.88}.sa-qa--ghost{background:var(--gray-100, #f3f4f6);color:var(--gray-700, #374151);border-color:var(--gray-200, #e5e7eb)}.sa-qa--ghost:hover{background:var(--gray-200, #e5e7eb)}.sa-qa--danger{background:#e11d4817;color:#e11d48;border-color:#e11d4833}.sa-qa--danger:hover{background:#e11d4829}.sa-task-title{font-size:.9375rem;font-weight:600;color:var(--gray-900, #111827);margin:0 0 6px;line-height:1.35;letter-spacing:-.011em}.sa-task--completed .sa-task-title{color:var(--gray-400, #9ca3af)}.sa-task-meta{display:flex;align-items:center;gap:5px;flex-wrap:wrap;font-size:.72rem;color:var(--gray-500, #6b7280)}.sa-meta-subject{display:inline-flex;align-items:center;gap:3px;font-weight:600}.sa-meta-course{color:var(--gray-400, #9ca3af)}.sa-meta-time,.sa-meta-q{display:inline-flex;align-items:center;gap:3px;font-feature-settings:"tnum"}.sa-meta-dot{color:var(--gray-300, #d1d5db);font-size:.9rem;line-height:1}.sa-task-prog{height:7px;background:var(--gray-100, #f3f4f6);position:absolute;bottom:0;left:4px;right:0;border-radius:0 0 10px;overflow:hidden}.sa-task-prog-fill{height:100%;background:linear-gradient(90deg,#3b82f6,#6366f1 60%,#4f46e5);border-radius:0 0 10px;position:relative;overflow:hidden}.sa-task-prog-fill:after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,transparent 0%,rgba(255,255,255,.45) 50%,transparent 100%);background-size:200% 100%;animation:sa-shimmer 1.6s linear infinite}.sa-task-prog-pct{position:absolute;right:6px;bottom:10px;font-size:.6875rem;font-weight:600;color:#6366f1;letter-spacing:.02em;font-feature-settings:"tnum";pointer-events:none;line-height:1}.sa-empty{text-align:center;padding:72px 24px;background:#fff;border-radius:16px;border:1px solid var(--gray-200, #e5e7eb)}.sa-empty-ico{font-size:3rem;margin-bottom:16px;line-height:1}.sa-empty-h{font-size:1rem;font-weight:600;color:var(--gray-800, #1f2937);margin:0 0 8px}.sa-empty-p{font-size:.875rem;color:var(--gray-500, #6b7280);margin:0 0 24px}.sa-empty-btn{padding:9px 22px;background:var(--gray-900, #111827);color:#fff;border:none;border-radius:8px;font-family:inherit;font-size:.875rem;font-weight:600;cursor:pointer;transition:opacity .15s}.sa-empty-btn:hover{opacity:.82}@keyframes sa-pulse{0%,to{opacity:1;box-shadow:0 0 #f59e0b59}50%{opacity:.82;box-shadow:0 0 0 5px #f59e0b00}}@keyframes sa-shake{0%,to{transform:translate(0)}15%{transform:translate(-4px)}30%{transform:translate(4px)}45%{transform:translate(-3px)}60%{transform:translate(3px)}75%{transform:translate(-2px)}90%{transform:translate(1px)}}@keyframes sa-shimmer{0%{background-position:-200% 0}to{background-position:200% 0}}@media(max-width:900px){.sa-hub-top,.sa-stats{flex-wrap:wrap}.sa-ring-wrap{display:none}}@media(max-width:768px){.sa-hub{padding:20px 20px 0;border-radius:16px;margin-bottom:16px}.sa-tabs{margin:0 -20px;padding:6px 20px 0}.sa-cmdbar{flex-direction:column;align-items:stretch}.sa-filters{width:100%}.sa-sel{flex:1;min-width:0}.sa-stats{display:none}.sa-task-row1{flex-direction:column;gap:6px}.sa-task-right{flex-direction:row;flex-wrap:wrap;justify-content:flex-start}padding: 0 8px 10px}} @media (max-width: 480px){.sa-greet-main{font-size:1rem}.sa-task-title{font-size:.875rem}.sa-tab{padding:7px 11px 11px;font-size:.8rem}.sa-hub{padding:16px 16px 0}.sa-tabs{padding-left:16px;padding-right:16px;margin:0 -16px}}.teacher-assignments-page{max-width:1400px;margin:0 auto}.assignments-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:1.5rem;margin-bottom:2rem}.stat-card{background:#fff;border-radius:16px;padding:1.5rem;display:flex;gap:1rem;box-shadow:0 2px 8px #0000001a;transition:transform .2s}.stat-card:hover{transform:translateY(-2px)}.stat-icon{width:60px;height:60px;border-radius:12px;display:flex;align-items:center;justify-content:center;font-size:1.75rem}.stat-content{flex:1;display:flex;flex-direction:column;justify-content:center}.assignments-toolbar{display:flex;justify-content:space-between;align-items:center;gap:1rem;margin-bottom:1.5rem}.filter-tabs{display:flex;gap:.5rem}.filter-tab{padding:.625rem 1.25rem;border:2px solid var(--gray-300);background:#fff;border-radius:8px;font-size:.9375rem;font-weight:600;color:var(--gray-700);cursor:pointer;transition:all .2s}.filter-tab:hover{border-color:var(--primary-color)}.filter-tab.active{background:var(--gradient-primary);color:#fff;border-color:transparent}.toolbar-actions{display:flex;gap:.75rem}.search-input{padding:.625rem 1rem;border:2px solid var(--gray-300);border-radius:8px;font-size:.9375rem;min-width:250px;transition:all .2s}.sort-select{padding:.625rem 1rem;border:2px solid var(--gray-300);border-radius:8px;font-size:.9375rem;background:#fff;cursor:pointer}.assignments-list{display:flex;flex-direction:column;gap:1.5rem}.assignment-card{background:#fff;border-radius:16px;padding:1.5rem;box-shadow:0 2px 8px #0000001a;transition:all .3s}.assignment-card:hover{box-shadow:0 8px 24px #667eea26}.assignment-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:1rem;padding-bottom:1rem;border-bottom:1px solid var(--gray-200)}.assignment-title-section{display:flex;align-items:center;gap:1rem}.assignment-title{font-size:1.25rem;font-weight:700;color:var(--gray-900);margin:0}.assignment-status{padding:.375rem .875rem;border-radius:20px;font-size:.813rem;font-weight:600}.assignment-status.active{background:var(--success-color);color:#fff}.assignment-status.overdue{background:var(--warning-color);color:#fff}.assignment-actions{display:flex;gap:.5rem}.assignment-info{display:flex;gap:2rem;margin-bottom:1.5rem;flex-wrap:wrap}.info-item{display:flex;align-items:center;gap:.5rem;font-size:.9375rem;color:var(--gray-700)}.info-icon{font-size:1.125rem}.assignment-progress{background:var(--gray-50);padding:1rem;border-radius:12px;margin-bottom:1rem}.progress-header{display:flex;justify-content:space-between;margin-bottom:.75rem;font-size:.875rem;color:var(--gray-700)}.progress-bars{display:flex;flex-direction:column;gap:.75rem}.progress-bar-wrapper{display:flex;align-items:center;gap:1rem}.progress-bar{flex:1;height:8px;background:var(--gray-200);border-radius:4px;overflow:hidden}.progress-fill{height:100%;border-radius:4px;transition:width .3s}.progress-fill.completion{background:linear-gradient(90deg,#43e97b,#38f9d7)}.progress-fill.graded{background:linear-gradient(90deg,#667eea,#764ba2)}.progress-percent{font-size:.875rem;font-weight:600;color:var(--gray-700);min-width:45px;text-align:right}.assignment-alert{display:flex;align-items:center;gap:1rem;padding:1rem;background:linear-gradient(135deg,#ffc7001a,#ff98001a);border:1px solid rgba(255,199,0,.3);border-radius:8px}.alert-icon{font-size:1.25rem}.alert-text{flex:1;font-size:.9375rem;color:var(--gray-900);font-weight:600}.form-group input,.form-group textarea,.form-group select{width:100%;padding:.75rem 1rem;border:2px solid var(--gray-300);border-radius:8px;font-size:.9375rem;transition:all .2s}.form-group input:focus,.form-group textarea:focus,.form-group select:focus{outline:none;border-color:var(--primary-color);box-shadow:0 0 0 3px #667eea1a}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:1rem}.file-upload{display:flex;gap:.5rem}.file-upload input[type=file]{display:none}.file-upload-label{padding:.75rem 1.5rem;background:var(--gray-200);border-radius:8px;font-size:.875rem;font-weight:600;cursor:pointer;transition:all .2s}.file-upload-label:hover{background:var(--gray-300)}.checkbox-label{display:flex;align-items:center;gap:.75rem;margin-bottom:.75rem;cursor:pointer}@media(max-width:768px){.page-header{flex-direction:column;gap:1rem}.assignments-toolbar{flex-direction:column;align-items:stretch}.filter-tabs{flex-wrap:wrap}.toolbar-actions{flex-direction:column}.search-input{min-width:100%}.assignment-header{flex-direction:column;gap:1rem}.assignment-actions{width:100%;flex-wrap:wrap}.assignment-info{flex-direction:column;gap:.75rem}.form-row{grid-template-columns:1fr}.modal-footer{flex-direction:column}}:root{--auth-primary: #5e5ce6;--auth-primary-soft: rgba(94, 92, 230, .08);--auth-primary-glow: rgba(94, 92, 230, .18);--auth-dark: #0e0c15;--auth-dark-alt: #1a1725;--auth-bg: #fafaff;--auth-surface: #ffffff;--auth-text: #0e0c15;--auth-text-body: #3f3a52;--auth-text-muted: #756b85;--auth-border: #e8e5f0;--auth-error: #ef4444;--auth-success: #22c55e;--auth-pink: #ff98e2}.auth-container{display:flex;min-height:100vh;background:var(--auth-bg);font-family:Inter,sans-serif}.auth-left{flex:1;display:flex;flex-direction:column;align-items:flex-start;justify-content:center;padding:3.5rem 3.5rem 3rem;background:linear-gradient(150deg,#2d2880,#3730a3 40%,#4f46e5 75%,#1e1b4b);color:#fff;position:relative;overflow:hidden}.auth-left:before{content:"";position:absolute;inset:0;background-image:radial-gradient(circle,rgba(255,255,255,.07) 1px,transparent 1px);background-size:28px 28px;z-index:0}.auth-left:after{content:"";position:absolute;width:380px;height:380px;background:radial-gradient(circle,rgba(255,255,255,.1) 0%,transparent 65%);border-radius:50%;top:-90px;right:-90px;z-index:0}.auth-math-bg{position:absolute;inset:0;z-index:1;pointer-events:none;-webkit-user-select:none;user-select:none;overflow:hidden}.auth-math-sym{position:absolute;font-family:Be Vietnam Pro,Georgia,serif;font-weight:300;color:#ffffff1c;line-height:1}.auth-math-sym.ms1{font-size:5.5rem;top:7%;left:4%}.auth-math-sym.ms2{font-size:7rem;top:2%;right:6%}.auth-math-sym.ms3{font-size:4rem;top:36%;right:4%}.auth-math-sym.ms4{font-size:3.5rem;top:53%;left:7%}.auth-math-sym.ms5{font-size:5.5rem;bottom:25%;right:10%}.auth-math-sym.ms6{font-size:4.5rem;bottom:14%;left:3%}.auth-math-sym.ms7{font-size:3rem;top:23%;left:44%}.auth-math-sym.ms8{font-size:3.5rem;bottom:7%;right:28%}.auth-brand{z-index:2;margin-bottom:2.75rem;position:relative}.auth-brand-link{color:inherit;text-decoration:none;display:inline-flex;align-items:center;gap:.75rem}.auth-brand-link:hover{opacity:.9}.auth-logo-mark{width:44px;height:44px;background:linear-gradient(135deg,#5e5ce6,#9896f5);border-radius:12px;display:flex;align-items:center;justify-content:center;font-family:Be Vietnam Pro,sans-serif;font-size:1.3rem;font-weight:800;color:#fff;flex-shrink:0;box-shadow:0 4px 16px #5e5ce666}.auth-brand h1{font-family:Be Vietnam Pro,sans-serif;font-size:1.9rem;font-weight:800;margin:0;letter-spacing:-.03em;color:#fff}.brand-tagline{font-size:.85rem;color:#ffffff73;font-weight:400;margin-top:.6rem;letter-spacing:.01em}.auth-features{z-index:2;position:relative;display:flex;flex-direction:column;gap:1.1rem;width:100%;max-width:340px;margin-bottom:2.5rem}.auth-feature-item{display:flex;align-items:flex-start;gap:1rem;font-size:.875rem;color:#ffffffa6;line-height:1.5}.auth-feature-icon{width:30px;height:30px;background:#5e5ce62e;border:1px solid rgba(94,92,230,.4);border-radius:8px;display:flex;align-items:center;justify-content:center;font-family:Be Vietnam Pro,sans-serif;font-size:.6rem;font-weight:800;color:#fff;letter-spacing:.5px;flex-shrink:0;margin-top:1px}.auth-stats{z-index:2;position:relative;display:flex;gap:2rem;width:100%;max-width:340px;padding-top:1.75rem;border-top:1px solid rgba(255,255,255,.08)}.auth-stat{display:flex;flex-direction:column;gap:2px}.auth-stat-number{font-family:Be Vietnam Pro,sans-serif;font-size:1.3rem;font-weight:800;color:#fff;letter-spacing:-.03em}.auth-stat-label{font-size:.75rem;color:#fff6;font-weight:400}.auth-right{flex:1.1;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:2rem;background:var(--auth-bg);position:relative;background-image:radial-gradient(ellipse 60% 40% at 80% 20%,rgba(94,92,230,.07) 0%,transparent 70%)}.auth-right:before{content:"";position:absolute;top:0;left:0;right:0;height:3px;background:linear-gradient(90deg,var(--auth-primary),var(--auth-pink))}.auth-nav{position:absolute;top:1.5rem;left:1.75rem}.auth-nav-link{display:inline-flex;align-items:center;gap:.4rem;font-size:.8rem;font-weight:500;color:var(--auth-text-muted);text-decoration:none;transition:color .15s}.auth-nav-link:hover{color:var(--auth-primary)}.auth-card{width:100%;max-width:460px;padding:2.5rem 2.75rem;background:#fff;border:1px solid var(--auth-border);border-radius:20px;box-shadow:0 2px 4px #0e0c1508,0 8px 32px #5e5ce614}.auth-header{text-align:center;margin-bottom:2rem}.auth-header:before{content:"";display:block;width:36px;height:4px;background:linear-gradient(90deg,var(--auth-primary),var(--auth-pink));border-radius:100px;margin:0 auto 1rem}.auth-header h2{font-family:Be Vietnam Pro,sans-serif;font-size:1.75rem;font-weight:800;color:var(--auth-text);margin:0 0 .4rem;letter-spacing:-.025em}.auth-header p{font-size:.9rem;color:var(--auth-text-muted);margin:0}.auth-form{margin-bottom:1.5rem}.form-group{margin-bottom:1.1rem}.form-label{display:block;margin-bottom:.45rem;font-size:.875rem;font-weight:600;color:var(--auth-text-body)}.required{color:var(--auth-error)}.form-control{width:100%;padding:.7rem 1rem;font-size:.92rem;font-family:Inter,sans-serif;line-height:1.5;color:var(--auth-text);background:#fafaff;border:1.5px solid var(--auth-border);border-radius:12px;transition:border-color .2s,box-shadow .2s,background .2s;box-sizing:border-box;-webkit-appearance:none;appearance:none}.form-control:focus{outline:none;border-color:var(--auth-primary);background:#fff;box-shadow:0 0 0 3px var(--auth-primary-glow)}.form-control.error{border-color:var(--auth-error)}.form-control.error:focus{box-shadow:0 0 0 3px #ef44441f}.form-error{display:block;margin-top:.3rem;font-size:.8rem;color:var(--auth-error)}.form-row{display:flex;justify-content:space-between;align-items:center;margin-bottom:1.25rem}.form-row-2{display:grid;grid-template-columns:1fr 1fr;gap:1rem}.checkbox-label{display:flex;align-items:flex-start;gap:.5rem;cursor:pointer;font-size:.875rem;color:var(--auth-text-body)}.checkbox-label input[type=checkbox]{margin-top:2px;cursor:pointer;width:16px;height:16px;accent-color:var(--auth-primary);flex-shrink:0}.link-text{color:var(--auth-primary);text-decoration:none;font-size:.875rem;font-weight:500;transition:opacity .15s}.link-text:hover{opacity:.75}.link-primary{color:var(--auth-primary);text-decoration:none;font-weight:500;transition:opacity .15s}.link-primary:hover{opacity:.75;text-decoration:underline}.alert{padding:.75rem 1rem;border-radius:12px;font-size:.875rem;margin-bottom:1.25rem}.alert-success{background:#f0fdf4;color:#14532d;border:1px solid #bbf7d0}.alert-error{background:#fef2f2;color:#7f1d1d;border:1px solid #fecaca}.auth-container .btn{display:inline-flex;align-items:center;justify-content:center;padding:.8rem 1.5rem;font-size:.95rem;font-family:Inter,sans-serif;font-weight:600;line-height:1.5;border:none;border-radius:100px;cursor:pointer;transition:all .2s;text-decoration:none;-webkit-user-select:none;user-select:none;gap:.5rem}.auth-container .btn:disabled{opacity:.5;cursor:not-allowed;transform:none!important}.auth-container .btn-primary{background:linear-gradient(135deg,#5e5ce6,#7b79f7);color:#fff!important;box-shadow:0 4px 20px #5e5ce659;border:none;letter-spacing:.01em}.auth-container .btn-primary:hover:not(:disabled){background:linear-gradient(135deg,#4b49d4,#6b69e8);transform:translateY(-2px);box-shadow:0 8px 28px #5e5ce673}.auth-container .btn-block{width:100%}.auth-container .btn-google{background:#fff!important;color:var(--auth-text-body)!important;border:1.5px solid var(--auth-border)!important;border-radius:100px;font-weight:500;box-shadow:0 1px 4px #0e0c150a}.auth-container .btn-google:hover{background:#f8f7ff!important;border-color:var(--auth-primary)!important;box-shadow:0 2px 8px #5e5ce61a}.divider{display:flex;align-items:center;margin:1.25rem 0;color:var(--auth-text-muted);font-size:.8rem}.divider:before,.divider:after{content:"";flex:1;height:1px;background:var(--auth-border)}.divider span{padding:0 .75rem}.auth-footer{text-align:center;margin-top:1.5rem;padding-top:1.25rem;border-top:1px solid var(--auth-border)}.auth-footer p{margin:0;font-size:.875rem;color:var(--auth-text-muted)}.google-btn-wrapper{display:flex;justify-content:center}.autocomplete-wrapper{position:relative}.autocomplete-dropdown{position:absolute;top:100%;left:0;right:0;background:var(--auth-surface);border:1.5px solid var(--auth-border);border-radius:12px;box-shadow:0 8px 24px #0e0c151a;z-index:100;max-height:220px;overflow-y:auto;margin-top:4px}.autocomplete-item{padding:.7rem 1rem;cursor:pointer;font-size:.875rem;color:var(--auth-text-body);border-bottom:1px solid var(--auth-border);transition:background .15s;display:flex;flex-direction:column;gap:2px}.autocomplete-item:last-child{border-bottom:none}.autocomplete-item:hover{background:var(--auth-primary-soft)}.autocomplete-item-main{font-weight:500;color:var(--auth-text)}.autocomplete-item-sub{font-size:.8rem;color:var(--auth-text-muted)}.autocomplete-loading{padding:.75rem 1rem;font-size:.875rem;color:var(--auth-text-muted);text-align:center}@media(max-width:768px){.auth-container{flex-direction:column}.auth-right:before{display:none}.auth-nav{display:none}.auth-left{flex:none;padding:2rem 1.5rem;min-height:220px;align-items:center}.auth-brand{margin-bottom:1.5rem}.auth-brand h1{font-size:1.5rem}.auth-features,.auth-stats{display:none}.auth-right{padding:1.5rem 1rem;background-image:none}.auth-card{padding:1.5rem 1.25rem;border-radius:16px}.form-row-2{grid-template-columns:1fr}}:root{--ob-primary: #5e5ce6;--ob-primary-hover: #4f46e5;--ob-primary-glow: rgba(94, 92, 230, .28);--ob-teal: #14b8a6;--ob-teal-hover: #0d9488;--ob-teal-glow: rgba(20, 184, 166, .28);--ob-bg-from: #0e0c15;--ob-bg-to: #1a1725;--ob-card-bg: rgba(255, 255, 255, .97);--ob-border: #e8e5f0;--ob-text: #0e0c15;--ob-text-muted: #756b85;--ob-input-border: #ddd8ee;--ob-input-focus: #5e5ce6;--ob-r: 20px;--ob-font: "Inter", -apple-system, sans-serif;--ob-font-head: "Be Vietnam Pro", -apple-system, sans-serif}.ob-page{min-height:100dvh;height:100dvh;overflow:hidden;display:flex;flex-direction:column;align-items:center;justify-content:center;background:linear-gradient(135deg,var(--ob-bg-from) 0%,#1c1a2e 50%,var(--ob-bg-to) 100%);font-family:var(--ob-font);position:relative;padding:1.5rem;-webkit-font-smoothing:antialiased}.ob-logo{position:fixed;top:1.25rem;left:1.75rem;display:flex;align-items:center;gap:.5rem;text-decoration:none;z-index:20}.ob-logo-icon{font-size:1.35rem;font-weight:800;color:var(--ob-primary);font-family:var(--ob-font-head);line-height:1}.ob-logo-text{font-size:1rem;font-weight:700;color:#fff;font-family:var(--ob-font-head);letter-spacing:-.3px}.ob-bg-symbols{position:fixed;inset:0;pointer-events:none;overflow:hidden;z-index:0}.ob-sym{position:absolute;font-family:Be Vietnam Pro,Georgia,serif;font-weight:300;color:#ffffff0a;-webkit-user-select:none;user-select:none;animation:ob-float linear infinite}.ob-sym-1{font-size:5rem;top:8%;left:5%;animation-duration:18s;animation-delay:0s}.ob-sym-2{font-size:3.5rem;top:15%;left:20%;animation-duration:22s;animation-delay:-4s}.ob-sym-3{font-size:6rem;top:5%;left:75%;animation-duration:20s;animation-delay:-8s}.ob-sym-4{font-size:4rem;top:70%;left:8%;animation-duration:25s;animation-delay:-2s}.ob-sym-5{font-size:3rem;top:80%;left:30%;animation-duration:19s;animation-delay:-6s}.ob-sym-6{font-size:4.5rem;top:10%;left:90%;animation-duration:23s;animation-delay:-12s}.ob-sym-7{font-size:3.5rem;top:55%;left:88%;animation-duration:21s;animation-delay:-3s}.ob-sym-8{font-size:2.5rem;top:90%;left:70%;animation-duration:26s;animation-delay:-9s}.ob-sym-9{font-size:3rem;top:40%;left:3%;animation-duration:17s;animation-delay:-14s}.ob-sym-10{font-size:4rem;top:35%;left:95%;animation-duration:28s;animation-delay:-1s}.ob-sym-11{font-size:2.8rem;top:65%;left:55%;animation-duration:24s;animation-delay:-7s}.ob-sym-12{font-size:3.2rem;top:22%;left:48%;animation-duration:20s;animation-delay:-10s}@keyframes ob-float{0%{transform:translateY(0) rotate(0);opacity:.04}33%{transform:translateY(-20px) rotate(5deg);opacity:.07}66%{transform:translateY(10px) rotate(-4deg);opacity:.04}to{transform:translateY(0) rotate(0);opacity:.04}}.ob-geo{position:fixed;border-radius:50%;pointer-events:none;z-index:0}.ob-geo-1{width:500px;height:500px;top:-120px;right:-120px;background:radial-gradient(circle,rgba(94,92,230,.12) 0%,transparent 70%)}.ob-geo-2{width:400px;height:400px;bottom:-100px;left:-80px;background:radial-gradient(circle,rgba(20,184,166,.08) 0%,transparent 70%)}.ob-card{position:relative;z-index:10;width:100%;max-width:860px;background:var(--ob-card-bg);border-radius:28px;box-shadow:0 2px 4px #00000014,0 8px 32px #0000002e,0 0 0 1px #ffffff0f;display:flex;flex-direction:column;overflow:hidden;max-height:calc(100dvh - 3rem)}.ob-stepper{display:flex;align-items:center;padding:1.5rem 2.5rem 1rem;background:linear-gradient(to bottom,#f8f7ff,transparent);border-bottom:1px solid rgba(94,92,230,.08);flex-shrink:0}.ob-step-node{display:flex;flex-direction:column;align-items:center;gap:.35rem;flex-shrink:0}.ob-step-circle{width:32px;height:32px;border-radius:50%;border:2px solid var(--ob-border);display:flex;align-items:center;justify-content:center;font-size:.8rem;font-weight:700;color:#b8b1cc;background:#fff;transition:all .3s cubic-bezier(.4,0,.2,1)}.ob-step-label{font-size:.7rem;font-weight:600;color:#b8b1cc;white-space:nowrap;letter-spacing:.3px;transition:color .3s ease}.ob-step-node.active .ob-step-circle{border-color:var(--ob-primary);background:var(--ob-primary);color:#fff;box-shadow:0 0 0 4px var(--ob-primary-glow)}.ob-step-node.active .ob-step-label{color:var(--ob-primary)}.ob-step-node.done .ob-step-circle{border-color:#22c55e;background:#22c55e;color:#fff}.ob-step-node.done .ob-step-label{color:#22c55e}.ob-step-line{flex:1;height:2px;background:var(--ob-border);margin:0 .5rem 1.25rem;border-radius:2px;transition:background .4s ease}.ob-step-line.done{background:#22c55e}.ob-error{margin:.75rem 2.5rem 0;padding:.75rem 1rem;background:#fff1f1;color:#dc2626;border-radius:10px;border:1px solid #fecaca;font-size:.875rem;flex-shrink:0}.ob-card-body{flex:1;overflow-y:auto;padding:1.75rem 2.5rem 2rem;scrollbar-width:none}.ob-card-body::-webkit-scrollbar{display:none}.ob-step-content{display:flex;flex-direction:column;height:100%}.ob-step-title{font-family:var(--ob-font-head);font-size:1.55rem;font-weight:800;color:var(--ob-text);letter-spacing:-.4px;line-height:1.2;margin:0 0 .4rem}.ob-gradient-text{background:linear-gradient(135deg,var(--ob-primary),#a78bfa);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.ob-step-sub{font-size:.92rem;color:var(--ob-text-muted);line-height:1.55;margin:0 0 1.5rem}@keyframes ob-fade-in{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}.fade-in{animation:ob-fade-in .35s cubic-bezier(.4,0,.2,1) both}.ob-role-grid{display:grid;grid-template-columns:1fr 1fr;gap:1rem;flex:1}.ob-role-card{display:flex;flex-direction:column;align-items:flex-start;gap:.75rem;padding:1.75rem 1.75rem 1.5rem;border:2px solid var(--ob-border);border-radius:20px;background:#fff;cursor:pointer;transition:border-color .22s ease,transform .22s cubic-bezier(.4,0,.2,1),box-shadow .22s ease,background .22s ease;text-align:left;position:relative;overflow:hidden;-webkit-tap-highlight-color:transparent}.ob-role-card--teacher:hover{border-color:var(--ob-primary);background:#faf9ff;transform:translateY(-4px);box-shadow:0 12px 40px #5e5ce626,0 0 0 0 var(--ob-primary-glow)}.ob-role-card--teacher:active{transform:translateY(-1px) scale(.985);box-shadow:0 4px 16px #5e5ce62e;background:#f3f1ff;border-color:var(--ob-primary)}.ob-role-card--student:hover{border-color:var(--ob-teal);background:#f0fdfb;transform:translateY(-4px);box-shadow:0 12px 40px #14b8a626,0 0 0 0 var(--ob-teal-glow)}.ob-role-card--student:active{transform:translateY(-1px) scale(.985);box-shadow:0 4px 16px #14b8a62e;background:#e6faf7;border-color:var(--ob-teal)}.ob-role-card h3{font-family:var(--ob-font-head);font-size:1.1rem;font-weight:700;color:var(--ob-text);margin:0;transition:color .2s ease}.ob-role-card--teacher:hover h3{color:var(--ob-primary)}.ob-role-card--student:hover h3{color:var(--ob-teal)}.ob-role-card p{font-size:.84rem;color:var(--ob-text-muted);line-height:1.5;margin:0}.ob-role-icon{width:56px;height:56px;border-radius:16px;display:flex;align-items:center;justify-content:center;transition:transform .22s cubic-bezier(.4,0,.2,1),box-shadow .22s ease}.ob-role-icon--purple{background:#5e5ce61a;color:var(--ob-primary)}.ob-role-card--teacher:hover .ob-role-icon--purple{background:#5e5ce629;transform:scale(1.08);box-shadow:0 4px 16px #5e5ce633}.ob-role-icon--teal{background:#14b8a61a;color:var(--ob-teal)}.ob-role-card--student:hover .ob-role-icon--teal{background:#14b8a629;transform:scale(1.08);box-shadow:0 4px 16px #14b8a633}.ob-role-arrow{margin-top:.25rem;font-size:.8rem;font-weight:600;display:inline-flex;align-items:center;gap:.35rem;opacity:0;transform:translateY(4px);transition:opacity .2s ease,transform .2s ease}.ob-role-arrow--purple{color:var(--ob-primary)}.ob-role-arrow--teal{color:var(--ob-teal)}.ob-role-card:hover .ob-role-arrow{opacity:1;transform:translateY(0)}.ob-form{display:flex;flex-direction:column;gap:1rem;flex:1}.ob-form--two-col{display:grid;grid-template-columns:1fr 1fr;gap:.85rem}.ob-field{display:flex;flex-direction:column;gap:.35rem}.ob-field label{font-size:.82rem;font-weight:600;color:#4a4560;letter-spacing:.2px}.ob-optional{font-weight:400;color:var(--ob-text-muted);font-size:.75rem}.ob-input-wrap{position:relative}.ob-field-icon{position:absolute;left:.875rem;top:50%;transform:translateY(-50%);color:#a099b8;pointer-events:none}.ob-input{width:100%;padding:.65rem .875rem .65rem 2.375rem;border:1.5px solid var(--ob-input-border);border-radius:10px;font-size:.9rem;font-family:var(--ob-font);color:var(--ob-text);background:#fff;outline:none;transition:border-color .2s ease,box-shadow .2s ease;box-sizing:border-box;-webkit-appearance:none;appearance:none}.ob-input:focus{border-color:var(--ob-input-focus);box-shadow:0 0 0 3px #5e5ce61a}.ob-input::placeholder{color:#c4bdd6}.ob-input--error{border-color:#ef4444!important}.ob-input--error:focus{border-color:#ef4444!important;box-shadow:0 0 0 3px #ef44441f!important}.ob-field-footer{display:flex;justify-content:space-between;align-items:center;min-height:1.1rem;margin-top:.25rem}.ob-field-error{font-size:.775rem;color:#ef4444;display:flex;align-items:center;gap:.25rem}.ob-field-error:before{content:"⚠";font-size:.7rem}.ob-char-count{font-size:.725rem;color:#c4bdd6;margin-left:auto;flex-shrink:0}.ob-char-count--warn{color:#f59e0b;font-weight:600}.ob-doc-type-row{display:flex;gap:.75rem}.ob-doc-type-btn{flex:1;padding:.65rem 1rem;border:1.5px solid var(--ob-input-border);border-radius:10px;font-size:.875rem;font-weight:600;color:var(--ob-text-muted);background:#fff;cursor:pointer;transition:all .2s ease;font-family:var(--ob-font)}.ob-doc-type-btn:hover{border-color:var(--ob-primary);color:var(--ob-primary)}.ob-doc-type-btn.active{border-color:var(--ob-primary);background:#5e5ce60f;color:var(--ob-primary)}.ob-upload-zone{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.5rem;padding:1.5rem;border:2px dashed #ddd8ee;border-radius:12px;background:#fafafe;cursor:pointer;transition:all .25s ease;color:var(--ob-text-muted);font-size:.875rem;min-height:90px}.ob-upload-zone:hover{border-color:var(--ob-primary);background:#5e5ce608}.ob-upload-zone.has-file{border-color:#22c55e;background:#22c55e0d;color:#16a34a}.ob-upload-name{font-weight:600;font-size:.8rem}.ob-checkbox-row{display:flex;align-items:flex-start;gap:.6rem;cursor:pointer}.ob-checkbox-row input[type=checkbox]{margin-top:2px;cursor:pointer;accent-color:var(--ob-primary);width:15px;height:15px;flex-shrink:0}.ob-checkbox-row span{font-size:.82rem;color:var(--ob-text-muted);line-height:1.5}.ob-suggestions{position:absolute;top:calc(100% + 4px);left:0;right:0;background:#fff;border:1.5px solid var(--ob-border);border-radius:12px;box-shadow:0 8px 32px #0000001a;z-index:100;max-height:200px;overflow-y:auto}.ob-suggest-item{padding:.65rem 1rem;cursor:pointer;display:flex;flex-direction:column;gap:.15rem;transition:background .15s}.ob-suggest-item:hover{background:#f8f7ff}.ob-suggest-main{font-size:.875rem;font-weight:600;color:#1e293b}.ob-suggest-sub{font-size:.775rem;color:var(--ob-text-muted)}.ob-suggest-empty{padding:1rem;text-align:center;color:var(--ob-text-muted);font-size:.875rem;font-style:italic}.ob-actions{display:flex;gap:.75rem;margin-top:1.25rem;padding-top:1rem;border-top:1px solid var(--ob-border);flex-shrink:0}.ob-btn{display:inline-flex;align-items:center;justify-content:center;gap:.4rem;padding:.65rem 1.5rem;border-radius:10px;font-size:.9rem;font-weight:600;font-family:var(--ob-font);cursor:pointer;border:none;transition:all .22s cubic-bezier(.4,0,.2,1)}.ob-btn-primary{background:var(--ob-primary);color:#fff;margin-left:auto;min-width:130px}.ob-btn-primary:hover:not(:disabled){background:var(--ob-primary-hover);transform:translateY(-1px);box-shadow:0 6px 20px var(--ob-primary-glow)}.ob-btn-primary:disabled{background:#d1cde8;color:#a099b8;cursor:not-allowed}.ob-btn-teal{background:var(--ob-teal);color:#fff;margin-left:auto;min-width:160px}.ob-btn-teal:hover{background:var(--ob-teal-hover);transform:translateY(-1px);box-shadow:0 6px 20px var(--ob-teal-glow)}.ob-btn-ghost{background:transparent;color:var(--ob-text-muted);border:1.5px solid var(--ob-border)}.ob-btn-ghost:hover{background:#f4f3fb;color:var(--ob-text);border-color:#c8c2df}.ob-btn-lg{padding:.875rem 2.5rem;font-size:1rem;border-radius:12px;margin:1.5rem auto 0}.ob-spinner{display:inline-block;width:16px;height:16px;border:2.5px solid rgba(255,255,255,.35);border-top-color:#fff;border-radius:50%;animation:ob-spin .7s linear infinite}@keyframes ob-spin{to{transform:rotate(360deg)}}.ob-success{align-items:center;text-align:center;justify-content:center;padding:1.5rem 0;gap:0}.ob-success-icon{width:72px;height:72px;border-radius:50%;background:linear-gradient(135deg,#4ade80,#22c55e);display:flex;align-items:center;justify-content:center;color:#fff;margin:0 auto 1.5rem;box-shadow:0 8px 32px #22c55e4d;animation:ob-pop .5s cubic-bezier(.4,0,.2,1) both}.ob-success-icon--teal{background:linear-gradient(135deg,#2dd4bf,var(--ob-teal));box-shadow:0 8px 32px var(--ob-teal-glow)}@keyframes ob-pop{0%{transform:scale(.5);opacity:0}70%{transform:scale(1.1)}to{transform:scale(1);opacity:1}}.ob-success .ob-step-title{font-size:1.65rem;margin-bottom:.75rem}.ob-success-p{color:var(--ob-text-muted);max-width:420px;margin:0 auto;font-size:.93rem;line-height:1.65}.ob-success-p strong{color:var(--ob-text)}@media(max-width:640px){.ob-card{max-width:100%;border-radius:20px}.ob-stepper{padding:1.25rem 1.5rem .75rem}.ob-card-body{padding:1.5rem}.ob-role-grid{grid-template-columns:1fr;gap:.75rem}.ob-form--two-col{grid-template-columns:1fr}.ob-step-label{display:none}.ob-step-line{margin-bottom:0}}.calendar-page{max-width:1600px;margin:0 auto}.page-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:2rem}.view-mode-buttons{display:flex;gap:.5rem;background:#fff;padding:.25rem;border-radius:12px;box-shadow:0 2px 8px #0000001a}.view-btn{padding:.625rem 1.25rem;border:none;background:transparent;border-radius:8px;font-size:.875rem;font-weight:600;color:var(--gray-700);cursor:pointer;transition:all .2s}.view-btn:hover{color:var(--primary-color)}.view-btn.active{background:var(--gradient-primary);color:#fff}.calendar-container{display:grid;grid-template-columns:1fr 350px;gap:2rem;margin-bottom:2rem}.calendar-section{background:#fff;border-radius:16px;padding:2rem;box-shadow:0 2px 8px #0000001a}.calendar-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:2rem}.calendar-title{font-size:1.5rem;font-weight:800;color:var(--gray-900);margin:0}.nav-btn{width:40px;height:40px;border:2px solid var(--gray-300);background:#fff;border-radius:50%;font-size:1.25rem;cursor:pointer;transition:all .2s;display:flex;align-items:center;justify-content:center}.nav-btn:hover{border-color:var(--primary-color);color:var(--primary-color);transform:scale(1.1)}.calendar-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:.5rem}.calendar-day-name{text-align:center;font-size:.875rem;font-weight:700;color:var(--gray-700);padding:.75rem;background:var(--gray-100);border-radius:8px}.calendar-day{aspect-ratio:1;border:2px solid var(--gray-200);border-radius:8px;padding:.5rem;cursor:pointer;transition:all .2s;display:flex;flex-direction:column;position:relative}.calendar-day.empty{border-color:transparent;cursor:default}.calendar-day:not(.empty):hover{border-color:var(--primary-color);transform:scale(1.05);box-shadow:0 4px 12px #0000001a}.calendar-day.today{background:linear-gradient(135deg,#667eea1a,#764ba21a);border-color:var(--primary-color)}.calendar-day.has-events{font-weight:600}.day-number{font-size:.875rem;font-weight:600;color:var(--gray-900);margin-bottom:.25rem}.day-events{display:flex;gap:2px;flex-wrap:wrap}.event-dot{width:6px;height:6px;border-radius:50%;flex-shrink:0}.more-events{font-size:.625rem;color:var(--gray-600);font-weight:600}.events-sidebar{background:#fff;border-radius:16px;padding:1.5rem;box-shadow:0 2px 8px #0000001a;display:flex;flex-direction:column;max-height:800px}.sidebar-header{margin-bottom:1.5rem}.sidebar-header h3{font-size:1.25rem;font-weight:700;color:var(--gray-900);margin:0 0 1rem}.type-filter{width:100%;padding:.75rem;border:2px solid var(--gray-300);border-radius:8px;font-size:.875rem;font-weight:600}.events-list{flex:1;overflow-y:auto;margin-bottom:1rem}.event-item{padding:1rem;border-left:4px solid var(--primary-color);background:var(--gray-50);border-radius:8px;margin-bottom:1rem;display:flex;gap:1rem;transition:all .2s}.event-item:hover{background:#fff;box-shadow:0 2px 8px #0000001a;transform:translate(4px)}.event-icon{font-size:1.5rem;flex-shrink:0}.event-content{flex:1;min-width:0}.event-title{font-size:.9375rem;font-weight:700;color:var(--gray-900);margin:0 0 .25rem}.event-course{font-size:.813rem;color:var(--primary-color);font-weight:600;margin:0 0 .5rem}.event-time{font-size:.75rem;color:var(--gray-600);line-height:1.5}.add-event-btn{width:100%;margin-top:auto}.calendar-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:1.5rem}.stat-item{background:#fff;border-radius:16px;padding:1.5rem;box-shadow:0 2px 8px #0000001a;display:flex;align-items:center;gap:1rem}.stat-icon{width:50px;height:50px;border-radius:12px;display:flex;align-items:center;justify-content:center;font-size:1.5rem;flex-shrink:0}.stat-value{font-size:1.75rem;font-weight:800;color:var(--gray-900);line-height:1;margin-bottom:.25rem}@media(max-width:1024px){.calendar-container{grid-template-columns:1fr}.events-sidebar{max-height:400px}.calendar-stats{grid-template-columns:repeat(2,1fr)}}@media(max-width:768px){.page-header{flex-direction:column;align-items:flex-start;gap:1rem}.view-mode-buttons{width:100%}.view-btn{flex:1}.calendar-section{padding:1rem}.calendar-grid{gap:.25rem}.calendar-day{padding:.25rem}.day-number{font-size:.75rem}.event-dot{width:4px;height:4px}.calendar-stats{grid-template-columns:1fr}}.certificates-page{max-width:1400px;margin:0 auto}.certs-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:1.5rem;margin-bottom:2rem}.certs-tabs{display:flex;gap:1rem;margin-bottom:2rem;border-bottom:2px solid var(--gray-200)}.tab-btn{padding:1rem 2rem;border:none;background:transparent;font-size:1rem;font-weight:600;color:var(--gray-600);cursor:pointer;position:relative;transition:all .2s}.tab-btn.active:after{content:"";position:absolute;bottom:-2px;left:0;right:0;height:3px;background:var(--gradient-primary);border-radius:2px 2px 0 0}.certificates-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(400px,1fr));gap:2rem}.certificate-card{background:#fff;border-radius:16px;padding:2rem;box-shadow:0 2px 8px #0000001a;transition:all .3s;cursor:pointer;border:2px solid transparent}.certificate-card:hover{transform:translateY(-4px);box-shadow:0 8px 24px #00000026;border-color:var(--primary-color)}.cert-badge{width:80px;height:80px;margin:0 auto 1.5rem;background:var(--gradient-primary);border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:3rem}.cert-content{text-align:center}.cert-title{font-size:1.25rem;font-weight:700;color:var(--gray-900);margin:0 0 .5rem}.cert-course{font-size:.9375rem;color:var(--gray-600);margin:0 0 1.5rem}.cert-details{background:var(--gray-50);border-radius:12px;padding:1rem;margin-bottom:1.5rem}.cert-detail-item{display:flex;justify-content:space-between;align-items:center;padding:.5rem 0;border-bottom:1px solid var(--gray-200)}.cert-detail-item:last-child{border-bottom:none}.detail-label{font-size:.875rem;color:var(--gray-600)}.detail-value{font-size:.875rem;font-weight:600;color:var(--gray-900)}.detail-value.score{color:var(--success-color);font-size:1rem}.cert-actions{display:grid;grid-template-columns:1fr 1fr;gap:.75rem}.action-btn{padding:.75rem 1rem;border:none;border-radius:8px;font-size:.875rem;font-weight:600;cursor:pointer;transition:all .2s}.achievement-filters{display:flex;gap:1rem;margin-bottom:2rem}.filter-btn{padding:.75rem 1.5rem;border:2px solid var(--gray-300);background:#fff;border-radius:50px;font-size:.9375rem;font-weight:600;cursor:pointer;transition:all .2s}.achievements-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:1.5rem}.achievement-card{background:#fff;border-radius:16px;padding:1.5rem;box-shadow:0 2px 8px #0000001a;text-align:center;transition:all .3s;position:relative;border:2px solid transparent}.achievement-card.earned{border-color:var(--success-color)}.achievement-card.earned:hover{transform:translateY(-4px);box-shadow:0 8px 24px #43e97b33}.achievement-card.locked{opacity:.6}.locked-overlay{position:absolute;top:1rem;right:1rem;width:40px;height:40px;background:var(--gray-300);border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:1.25rem}.ach-icon{width:80px;height:80px;margin:0 auto 1rem;background:var(--gradient-primary);border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:2.5rem}.ach-title{font-size:1.125rem;font-weight:700;color:var(--gray-900);margin:0 0 .5rem}.ach-description{font-size:.875rem;color:var(--gray-600);margin:0 0 1rem;line-height:1.5}.ach-progress{margin-bottom:1rem}.progress-bar{width:100%;height:8px;background:var(--gray-200);border-radius:4px;overflow:hidden;margin-bottom:.5rem}.progress-fill{height:100%;background:var(--gradient-primary);transition:width .3s}.progress-text{font-size:.813rem;font-weight:600;color:var(--gray-700)}.earned-date{font-size:.813rem;color:var(--success-color);font-weight:600;padding:.5rem;background:#43e97b1a;border-radius:8px}.modal-overlay{position:fixed;inset:0;background:#000000b3;display:flex;align-items:center;justify-content:center;z-index:1000;padding:1rem}.modal{background:#fff;border-radius:16px;max-width:900px;width:100%;max-height:90vh;overflow-y:auto;box-shadow:0 20px 60px #0000004d;position:relative}.modal-close{position:absolute;top:1rem;right:1rem;width:40px;height:40px;border:none;background:var(--gray-200);border-radius:50%;font-size:1.5rem;cursor:pointer;transition:all .2s;z-index:10}.certificate-preview{padding:2rem}.cert-frame{background:#fff;border:8px solid var(--primary-color);border-radius:8px;padding:3rem;position:relative;box-shadow:0 4px 16px #0000001a;margin-bottom:2rem}.cert-header{text-align:center;margin-bottom:2rem}.cert-logo{font-size:4rem;margin-bottom:.5rem}.cert-header h2{font-size:1.5rem;font-weight:700;color:var(--primary-color);margin:0;text-transform:uppercase;letter-spacing:2px}.cert-body{text-align:center}.cert-label{font-size:.875rem;color:var(--gray-600);text-transform:uppercase;letter-spacing:3px;margin:0 0 1rem}.cert-main-title{font-size:1.75rem;font-weight:800;color:var(--gray-900);margin:0 0 2rem;text-transform:uppercase}.cert-recipient{font-size:1rem;color:var(--gray-700);margin:0 0 .5rem;font-style:italic}.cert-name{font-size:2.5rem;font-weight:800;background:var(--gradient-primary);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;margin:0 0 2rem}.cert-achievement{font-size:1.125rem;color:var(--gray-700);line-height:1.8;margin:0 0 3rem}.cert-footer-info{display:flex;justify-content:space-around;margin-bottom:3rem}.cert-date,.cert-id{text-align:center}.info-label{font-size:.813rem;color:var(--gray-600);text-transform:uppercase;letter-spacing:1px;margin-bottom:.5rem}.info-value{font-size:1rem;font-weight:700;color:var(--gray-900)}.cert-signature{text-align:center}.signature-line{width:200px;height:2px;background:var(--gray-400);margin:0 auto .5rem}.signature-name{font-size:.9375rem;font-weight:600;color:var(--gray-700)}.cert-decoration{position:absolute;inset:1rem;pointer-events:none}.decoration-corner{position:absolute;width:40px;height:40px;border:3px solid var(--primary-color)}.decoration-corner.tl{top:0;left:0;border-right:none;border-bottom:none}.decoration-corner.tr{top:0;right:0;border-left:none;border-bottom:none}.decoration-corner.bl{bottom:0;left:0;border-right:none;border-top:none}.decoration-corner.br{bottom:0;right:0;border-left:none;border-top:none}.cert-modal-actions{display:flex;justify-content:center;gap:1rem;flex-wrap:wrap}@media(max-width:1024px){.certs-stats{grid-template-columns:repeat(2,1fr)}.certificates-grid{grid-template-columns:1fr}.achievements-grid{grid-template-columns:repeat(2,1fr)}}@media(max-width:768px){.certs-stats{grid-template-columns:1fr}.certs-tabs{flex-direction:column;border-bottom:none}.tab-btn.active:after{display:none}.achievement-filters{flex-wrap:wrap}.achievements-grid{grid-template-columns:1fr}.cert-frame{padding:1.5rem}.cert-name{font-size:1.75rem}.cert-modal-actions{flex-direction:column}.cert-modal-actions .btn{width:100%}}.chat-page{height:calc(100vh - 70px);overflow:hidden}.chat-container{display:grid;grid-template-columns:380px 1fr;height:100%;background:#fff;border-radius:16px;overflow:hidden;box-shadow:0 2px 8px #0000001a}.conversations-sidebar{border-right:2px solid var(--gray-200);display:flex;flex-direction:column;background:var(--gray-50)}.sidebar-header{padding:1.5rem;border-bottom:2px solid var(--gray-200);display:flex;justify-content:space-between;align-items:center;background:#fff}.sidebar-header h2{font-size:1.5rem;font-weight:800;color:var(--gray-900);margin:0}.new-chat-btn{width:40px;height:40px;border:none;background:var(--gradient-primary);color:#fff;border-radius:50%;font-size:1.25rem;cursor:pointer;transition:all .2s}.new-chat-btn:hover{transform:scale(1.1)}.search-box{padding:1rem 1.5rem;background:#fff;border-bottom:1px solid var(--gray-200)}.search-box input{width:100%;padding:.75rem 1rem;border:2px solid var(--gray-300);border-radius:50px;font-size:.9375rem}.search-box input:focus{outline:none;border-color:var(--primary-color)}.conversations-list{flex:1;overflow-y:auto}.conversation-item{padding:1rem 1.5rem;display:flex;gap:1rem;cursor:pointer;transition:all .2s;border-left:4px solid transparent;background:#fff;border-bottom:1px solid var(--gray-100)}.conversation-item:hover{background:var(--gray-50)}.conversation-item.active{background:linear-gradient(135deg,#667eea14,#764ba214);border-left-color:var(--primary-color)}.conv-avatar-wrapper{position:relative;flex-shrink:0}.conv-avatar{width:50px;height:50px;border-radius:50%;background:var(--gradient-primary);display:flex;align-items:center;justify-content:center;font-size:1.75rem}.online-indicator{position:absolute;bottom:2px;right:2px;width:12px;height:12px;background:var(--success-color);border:2px solid white;border-radius:50%}.conv-content{flex:1;min-width:0}.conv-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:.25rem}.conv-name{font-size:1rem;font-weight:600;color:var(--gray-900)}.conv-time{font-size:.75rem;color:var(--gray-600)}.conv-footer{display:flex;justify-content:space-between;align-items:center}.conv-message{font-size:.875rem;color:var(--gray-600);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex:1}.unread-badge{background:var(--primary-color);color:#fff;border-radius:50%;width:20px;height:20px;display:flex;align-items:center;justify-content:center;font-size:.75rem;font-weight:700;flex-shrink:0}.chat-window{display:flex;flex-direction:column;height:100%}.chat-header{padding:1rem 1.5rem;border-bottom:2px solid var(--gray-200);display:flex;justify-content:space-between;align-items:center;background:#fff}.chat-header-left{display:flex;align-items:center;gap:1rem}.header-avatar-wrapper{position:relative}.header-avatar{width:50px;height:50px;border-radius:50%;background:var(--gradient-primary);display:flex;align-items:center;justify-content:center;font-size:1.75rem}.header-info{display:flex;flex-direction:column}.header-name{font-size:1.125rem;font-weight:700;color:var(--gray-900);margin:0 0 .25rem}.header-status{font-size:.875rem;color:var(--success-color)}.chat-header-actions{display:flex;gap:.5rem}.header-action-btn{width:40px;height:40px;border:2px solid var(--gray-300);background:#fff;border-radius:50%;font-size:1.25rem;cursor:pointer;transition:all .2s}.header-action-btn:hover{border-color:var(--primary-color)}.chat-messages{flex:1;overflow-y:auto;padding:1.5rem;background:var(--gray-50);display:flex;flex-direction:column;gap:1rem}.message-wrapper{display:flex;gap:.75rem;align-items:flex-end}.message-wrapper.me{flex-direction:row-reverse}.message-wrapper.system{justify-content:center}.message-avatar{width:32px;height:32px;border-radius:50%;background:var(--gradient-primary);display:flex;align-items:center;justify-content:center;font-size:1.25rem;flex-shrink:0}.message-bubble{max-width:70%;min-width:100px}.message-wrapper.me .message-bubble{background:var(--gradient-primary);color:#fff;border-radius:16px 16px 4px;padding:.75rem 1rem}.message-wrapper.other .message-bubble{background:#fff;border-radius:16px 16px 16px 4px;padding:.75rem 1rem;box-shadow:0 2px 4px #0000000d}.message-wrapper.system .message-bubble{max-width:100%}.system-message{text-align:center;font-size:.813rem;color:var(--gray-600);padding:.5rem 1rem;background:#0000000d;border-radius:12px}.message-sender-name{font-size:.75rem;font-weight:600;color:var(--primary-color);margin-bottom:.25rem}.message-content{font-size:.9375rem;line-height:1.5;margin-bottom:.25rem;word-wrap:break-word}.message-meta{display:flex;justify-content:flex-end;align-items:center;gap:.25rem}.message-wrapper.me .message-meta{opacity:.9}.message-time{font-size:.75rem}.message-wrapper.me .message-time{color:#fff}.message-wrapper.other .message-time{color:var(--gray-600)}.message-status{font-size:.75rem}.chat-input-area{padding:1rem 1.5rem;border-top:2px solid var(--gray-200);display:flex;gap:.75rem;align-items:center;background:#fff}.input-action-btn{width:40px;height:40px;border:2px solid var(--gray-300);background:#fff;border-radius:50%;font-size:1.25rem;cursor:pointer;transition:all .2s;flex-shrink:0}.input-action-btn:hover{border-color:var(--primary-color)}.message-input{flex:1;padding:.75rem 1rem;border:2px solid var(--gray-300);border-radius:20px;font-size:.9375rem;font-family:inherit;resize:none;max-height:120px}.message-input:focus{outline:none;border-color:var(--primary-color)}.send-btn{width:50px;height:50px;border:none;background:var(--gradient-primary);color:#fff;border-radius:50%;font-size:1.5rem;cursor:pointer;transition:all .2s;flex-shrink:0}.send-btn:hover:not(:disabled){transform:scale(1.1)}.send-btn:disabled{opacity:.5;cursor:not-allowed}.chat-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%;color:var(--gray-600);text-align:center}.empty-icon{font-size:5rem;margin-bottom:1rem;opacity:.3}.chat-empty h3{font-size:1.5rem;font-weight:700;color:var(--gray-900);margin:0 0 .5rem}.chat-empty p{font-size:1rem;margin:0}@media(max-width:1024px){.chat-container{grid-template-columns:320px 1fr}}@media(max-width:768px){.chat-container{grid-template-columns:1fr}.conversations-sidebar{display:none}.chat-window{display:flex}.message-bubble{max-width:85%}}:root{--sc-indigo: #4F46E5;--sc-indigo-light: #6366F1;--sc-blue: #3B82F6;--sc-violet: #7C3AED;--sc-surface: #FFFFFF;--sc-surface-alt: #F9FAFB;--sc-border: #F1F5F9;--sc-border-hover: rgba(79, 70, 229, .25);--sc-text-primary: #0F172A;--sc-text-secondary: #475569;--sc-text-muted: #94A3B8;--sc-radius-card: 20px;--sc-radius-badge: 999px;--sc-shadow-card: 0 1px 3px rgba(15,23,42,.06), 0 4px 16px rgba(15,23,42,.04);--sc-shadow-hover: 0 8px 32px rgba(79,70,229,.12), 0 2px 8px rgba(15,23,42,.06);--sc-font: "Inter", "SF Pro Display", -apple-system, BlinkMacSystemFont, sans-serif;--sc-transition: .25s cubic-bezier(.22, 1, .36, 1)}.sc-page{max-width:1320px;margin:0 auto;padding:0 8px;font-family:var(--sc-font);font-feature-settings:"cv11","ss01";-webkit-font-smoothing:antialiased}.sc-hero{position:relative;border-radius:24px;overflow:hidden;margin-bottom:24px;background:radial-gradient(ellipse at 15% 60%,rgba(79,70,229,.13) 0%,transparent 55%),radial-gradient(ellipse at 85% 25%,rgba(59,130,246,.1) 0%,transparent 50%),radial-gradient(ellipse at 55% 90%,rgba(139,92,246,.08) 0%,transparent 45%),#fff;border:1px solid var(--sc-border)}.sc-hero-watermark{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;z-index:0}.sc-hero-glass{position:relative;z-index:1;display:flex;align-items:center;justify-content:space-between;gap:32px;padding:48px 56px;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.sc-greeting-time{display:block;font-size:14px;font-weight:500;color:var(--sc-indigo);letter-spacing:.06em;margin-bottom:8px;text-transform:uppercase}.sc-greeting-name{font-size:40px;font-weight:800;color:var(--sc-text-primary);letter-spacing:-.03em;line-height:1.1;margin-bottom:8px;display:flex;align-items:center;gap:12px}.sc-greeting-wave{font-size:32px;display:inline-block;animation:sc-wave 2.5s ease-in-out 1s 2;transform-origin:70% 80%}@keyframes sc-wave{0%,to{transform:rotate(0)}15%{transform:rotate(14deg)}30%{transform:rotate(-8deg)}45%{transform:rotate(14deg)}60%{transform:rotate(-4deg)}75%{transform:rotate(10deg)}}.sc-greeting-sub{font-size:16px;color:var(--sc-text-secondary);font-weight:400;margin:0}.sc-highlight{color:var(--sc-indigo);font-weight:600}.sc-hero-right{display:flex;flex-direction:column;align-items:flex-end;gap:16px;flex-shrink:0}.sc-searchbar{display:flex;align-items:center;gap:10px;width:340px;padding:0 16px;height:48px;background:#ffffffd9;border:1.5px solid #E2E8F0;border-radius:12px;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);box-shadow:inset 0 1px 3px #0f172a0f,0 1px 2px #0f172a0a;transition:border-color var(--sc-transition),box-shadow var(--sc-transition)}.sc-searchbar:focus-within{border-color:var(--sc-indigo);box-shadow:inset 0 1px 3px #0f172a0f,0 0 0 3px #4f46e51f}.sc-search-icon{color:var(--sc-text-muted);flex-shrink:0}.sc-search-input{flex:1;border:none;background:transparent;outline:none;font-size:14px;font-family:var(--sc-font);color:var(--sc-text-primary)}.sc-search-input::placeholder{color:var(--sc-text-muted)}.sc-kbd{display:inline-flex;align-items:center;padding:2px 7px;border:1px solid #E2E8F0;border-radius:6px;font-size:11px;font-family:var(--sc-font);color:var(--sc-text-muted);background:#f8fafc;line-height:1.6;flex-shrink:0}.sc-explore-btn{display:inline-flex;align-items:center;gap:6px;padding:10px 20px;background:var(--sc-indigo);color:#fff;border:none;border-radius:10px;font-size:14px;font-weight:600;font-family:var(--sc-font);cursor:pointer;transition:background var(--sc-transition),box-shadow var(--sc-transition);box-shadow:0 2px 8px #4f46e540}.sc-explore-btn:hover{background:var(--sc-indigo-light);box-shadow:0 4px 16px #4f46e54d}.sc-kpi-row{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-bottom:32px}.sc-stat-card{background:var(--sc-surface);border:1.5px solid var(--sc-border);border-radius:var(--sc-radius-card);padding:24px;cursor:default;transition:border-color var(--sc-transition),box-shadow var(--sc-transition),transform var(--sc-transition);box-shadow:var(--sc-shadow-card)}.sc-stat-card:hover{border-color:var(--sc-border-hover)}.sc-stat-top{display:flex;align-items:flex-start;justify-content:space-between;margin-bottom:16px}.sc-stat-icon-wrap{width:44px;height:44px;border-radius:12px;display:flex;align-items:center;justify-content:center;flex-shrink:0}.sc-stat-spark{opacity:.85}.sc-stat-value{font-size:28px;font-weight:800;color:var(--sc-text-primary);letter-spacing:-.03em;line-height:1;margin-bottom:6px}.sc-stat-label{font-size:13px;font-weight:500;color:var(--sc-text-secondary);margin-bottom:8px}.sc-stat-delta{font-size:12px;font-weight:600;display:inline-flex;align-items:center;gap:3px}.sc-delta-up{color:#10b981}.sc-delta-dn{color:#ef4444}.sc-section-header{display:flex;align-items:baseline;justify-content:space-between;margin-bottom:24px}.sc-section-title{font-size:22px;font-weight:700;color:var(--sc-text-primary);letter-spacing:-.02em;margin:0 0 4px}.sc-section-sub{font-size:13px;color:var(--sc-text-muted);margin:0}.sc-course-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:24px;margin-bottom:48px}.sc-course-card{background:var(--sc-surface);border:1.5px solid var(--sc-border);border-radius:var(--sc-radius-card);overflow:hidden;cursor:pointer;box-shadow:var(--sc-shadow-card);transition:border-color var(--sc-transition),box-shadow var(--sc-transition);outline:none}.sc-course-card:focus-visible{box-shadow:0 0 0 3px #4f46e540}.sc-course-card:hover{border-color:var(--sc-border-hover);box-shadow:var(--sc-shadow-hover)}.sc-card-thumb-wrap{position:relative;width:100%;aspect-ratio:16 / 9;overflow:hidden}.sc-thumb{width:100%;height:100%;position:relative;display:flex;align-items:center;justify-content:center;transition:filter .4s ease}.sc-course-card:hover .sc-thumb{filter:brightness(.82)}.sc-thumb-orb{position:absolute;border-radius:50%;filter:blur(28px)}.sc-thumb-orb-1{width:120px;height:120px;top:-20px;left:-20px}.sc-thumb-orb-2{width:90px;height:90px;bottom:-10px;right:20px}.sc-thumb-grid{position:absolute;inset:0;width:100%;height:100%}.sc-thumb-symbol{position:relative;z-index:1;display:flex;flex-direction:column;align-items:center;gap:6px}.sc-thumb-glyph{font-family:Georgia,Times New Roman,serif;font-size:64px;font-weight:400;color:#ffffffd9;line-height:1;text-shadow:0 4px 24px rgba(0,0,0,.25);letter-spacing:-.02em}.sc-thumb-sub{font-family:var(--sc-font);font-size:10px;font-weight:700;color:#fff9;letter-spacing:.18em;text-transform:uppercase}.sc-card-hover-cta{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;opacity:0;transition:opacity var(--sc-transition)}.sc-course-card:hover .sc-card-hover-cta{opacity:1}.sc-cta-btn{display:inline-flex;align-items:center;gap:7px;padding:10px 20px;background:#fffffff2;color:var(--sc-text-primary);border:none;border-radius:999px;font-size:13px;font-weight:700;font-family:var(--sc-font);cursor:pointer;box-shadow:0 4px 20px #0003;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.sc-prog-badge{position:absolute;top:12px;right:12px;padding:3px 9px;background:#00000073;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);color:#fff;font-size:11px;font-weight:700;font-family:var(--sc-font);border-radius:var(--sc-radius-badge);letter-spacing:.02em}.sc-card-body{padding:20px 20px 16px}.sc-card-title{font-size:15px;font-weight:700;color:var(--sc-text-primary);letter-spacing:-.01em;line-height:1.45;margin:0 0 8px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.sc-card-teacher{font-size:13px;color:var(--sc-text-secondary);margin:0 0 12px;display:flex;align-items:center;gap:6px}.sc-teacher-dot{display:inline-block;width:6px;height:6px;border-radius:50%;background:#10b981;flex-shrink:0}.sc-card-badges{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:16px}.sc-badge{display:inline-flex;align-items:center;gap:4px;padding:4px 10px;border-radius:var(--sc-radius-badge);font-size:11.5px;font-weight:600;font-family:var(--sc-font);letter-spacing:.01em}.sc-badge-lessons{background:#4f46e514;color:var(--sc-indigo)}.sc-badge-rating{background:#f59e0b1a;color:#b45309}.sc-badge-students{background:#10b9811a;color:#065f46}.sc-prog-track{height:8px;background:#f1f5f9;border-radius:4px;overflow:hidden;position:relative}.sc-prog-fill{height:100%;border-radius:4px;transition:width 1.5s cubic-bezier(.34,1.2,.64,1);position:relative}.sc-prog-fill:after{content:"";position:absolute;right:0;top:-2px;width:8px;height:12px;border-radius:50%;background:inherit;filter:blur(4px);opacity:.8}.sc-card-prog-section{margin-bottom:12px}.sc-card-prog-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:6px}.sc-prog-label{font-size:12px;font-weight:500;color:var(--sc-text-muted)}.sc-prog-pct{font-size:12px;font-weight:700;color:var(--sc-indigo)}.sc-card-footer{display:flex;justify-content:space-between;align-items:center;padding-top:12px;border-top:1px solid #F1F5F9}.sc-last-accessed{font-size:12px;color:var(--sc-text-muted)}.sc-continue-hint{display:inline-flex;align-items:center;gap:3px;font-size:12px;font-weight:600;color:var(--sc-indigo);opacity:0;transition:opacity var(--sc-transition)}.sc-course-card:hover .sc-continue-hint{opacity:1}.sc-empty{grid-column:1 / -1;display:flex;flex-direction:column;align-items:center;gap:12px;padding:80px 0;color:var(--sc-text-muted);font-size:15px}.sc-detail{background:var(--sc-surface);border:1.5px solid var(--sc-border);border-radius:24px;padding:40px;box-shadow:var(--sc-shadow-card)}.sc-back-btn{display:inline-flex;align-items:center;gap:8px;padding:9px 18px;border:1.5px solid #E2E8F0;background:var(--sc-surface);border-radius:10px;font-size:14px;font-weight:600;font-family:var(--sc-font);color:var(--sc-text-secondary);cursor:pointer;transition:all var(--sc-transition);margin-bottom:32px}.sc-back-btn:hover{border-color:var(--sc-indigo);color:var(--sc-indigo);background:#4f46e50a}.sc-detail-header{display:grid;grid-template-columns:360px 1fr;gap:40px;margin-bottom:40px;padding-bottom:40px;border-bottom:1px solid var(--sc-border)}.sc-detail-thumb-wrap{border-radius:16px;overflow:hidden;aspect-ratio:16 / 9}.sc-detail-info{display:flex;flex-direction:column;gap:16px}.sc-detail-title{font-size:26px;font-weight:800;color:var(--sc-text-primary);letter-spacing:-.025em;line-height:1.25;margin:0}.sc-detail-teacher{display:flex;align-items:center;gap:6px;font-size:14px;color:var(--sc-text-secondary);margin:0}.sc-detail-desc{font-size:15px;color:var(--sc-text-secondary);line-height:1.65;margin:0}.sc-detail-badges{display:flex;gap:8px;flex-wrap:wrap}.sc-detail-prog-wrap{background:#f8fafc;border:1px solid var(--sc-border);border-radius:14px;padding:20px 24px}.sc-detail-prog-header{display:flex;justify-content:space-between;align-items:center;font-size:14px;font-weight:600;color:var(--sc-text-secondary);margin-bottom:12px}.sc-detail-prog-header strong{color:var(--sc-indigo);font-size:16px}.sc-tabs{display:flex;gap:4px;margin-bottom:32px;background:#f8fafc;border:1px solid var(--sc-border);border-radius:12px;padding:4px}.sc-tab-btn{display:inline-flex;align-items:center;gap:7px;padding:9px 20px;border:none;background:transparent;border-radius:8px;font-size:13.5px;font-weight:600;font-family:var(--sc-font);color:var(--sc-text-secondary);cursor:pointer;transition:all var(--sc-transition)}.sc-tab-btn:hover{color:var(--sc-text-primary);background:#0f172a0a}.sc-tab-active{background:var(--sc-surface)!important;color:var(--sc-indigo)!important;box-shadow:0 1px 4px #0f172a14}.sc-lessons{display:flex;flex-direction:column;gap:16px}.sc-chapter{background:#f8fafc;border:1px solid var(--sc-border);border-radius:16px;padding:24px}.sc-chapter-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px;padding-bottom:16px;border-bottom:1px solid var(--sc-border)}.sc-chapter-title{font-size:15px;font-weight:700;color:var(--sc-text-primary);margin:0}.sc-chapter-badge{font-size:12px;font-weight:600;color:var(--sc-indigo);background:#4f46e514;padding:3px 10px;border-radius:var(--sc-radius-badge)}.sc-lesson-row{display:flex;align-items:center;gap:14px;padding:14px 16px;background:var(--sc-surface);border:1px solid var(--sc-border);border-radius:12px;margin-bottom:8px;transition:all var(--sc-transition)}.sc-lesson-row:last-child{margin-bottom:0}.sc-lesson-row:not(.sc-lesson-locked):hover{border-color:var(--sc-border-hover);box-shadow:0 2px 12px #4f46e512}.sc-lesson-done .sc-lesson-icon{color:#10b981}.sc-lesson-current .sc-lesson-icon{color:var(--sc-indigo)}.sc-lesson-locked{opacity:.55}.sc-lesson-locked .sc-lesson-icon{color:var(--sc-text-muted)}.sc-lesson-current{border-color:#4f46e540;background:#4f46e505}.sc-lesson-icon{flex-shrink:0;display:flex;align-items:center}.sc-lesson-info{flex:1;min-width:0}.sc-lesson-title{display:block;font-size:14px;font-weight:600;color:var(--sc-text-primary);margin-bottom:3px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sc-lesson-dur{font-size:12px;color:var(--sc-text-muted)}.sc-lesson-btn{padding:7px 16px;border:1.5px solid #E2E8F0;background:var(--sc-surface);border-radius:8px;font-size:13px;font-weight:600;font-family:var(--sc-font);color:var(--sc-text-secondary);cursor:pointer;transition:all var(--sc-transition);flex-shrink:0}.sc-lesson-btn:not(:disabled):hover{border-color:var(--sc-indigo);color:var(--sc-indigo)}.sc-lesson-btn-primary{background:var(--sc-indigo);color:#fff;border-color:var(--sc-indigo)}.sc-lesson-btn-primary:hover{background:var(--sc-indigo-light)!important;border-color:var(--sc-indigo-light)!important;color:#fff!important;box-shadow:0 4px 12px #4f46e547}.sc-lesson-btn:disabled{opacity:.45;cursor:not-allowed}.sc-tab-placeholder{display:flex;flex-direction:column;align-items:center;gap:16px;padding:80px 0;color:var(--sc-text-muted);font-size:15px}@media(max-width:1280px){.sc-kpi-row{grid-template-columns:repeat(2,1fr)}}@media(max-width:1024px){.sc-hero-glass{flex-direction:column;align-items:flex-start;padding:40px}.sc-hero-right{align-items:flex-start;width:100%}.sc-searchbar{width:100%;max-width:440px}.sc-detail-header{grid-template-columns:1fr}.sc-detail-thumb-wrap{max-width:480px}}@media(max-width:768px){.sc-hero-glass{padding:32px 24px}.sc-greeting-name{font-size:28px}.sc-kpi-row{grid-template-columns:repeat(2,1fr);gap:12px}.sc-course-grid{grid-template-columns:1fr}.sc-detail{padding:24px 20px}.sc-tabs{overflow-x:auto;flex-wrap:nowrap}}@media(max-width:480px){.sc-kpi-row{grid-template-columns:1fr}}.teacher-courses-page{max-width:1240px;margin:0 auto}.courses-header h1{margin:0;font-size:clamp(1.8rem,2.3vw,2.3rem);color:#0f172a;font-weight:800}.courses-header p{margin:.45rem 0 0;color:#64748b}.courses-stats{margin-top:1rem;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.8rem}.stat-box{background:#fff;border:1px solid #e2e8f0;border-radius:14px;padding:.9rem;display:flex;align-items:center;gap:.8rem}.stat-icon{width:44px;height:44px;border-radius:12px;display:inline-flex;align-items:center;justify-content:center}.stat-icon.blue{background:#dbeafe}.stat-icon.green{background:#d1fae5}.stat-icon.amber{background:#fef3c7}.stat-icon.violet{background:#ede9fe}.stat-label{font-size:.78rem;font-weight:700;color:#64748b;text-transform:uppercase}.stat-box strong{display:block;color:#0f172a;font-size:1.8rem;line-height:1}.courses-toolbar{margin-top:1.1rem;display:flex;justify-content:space-between;gap:.8rem}.filter-tabs{background:#eef2f7;border-radius:12px;padding:.2rem;display:flex;gap:.2rem}.filter-tabs button{border:none;background:transparent;color:#475569;padding:.62rem 1rem;border-radius:10px;font-family:var(--font-heading);font-size:.88rem;font-weight:700}.filter-tabs button.active{background:#2d7be7;color:#fff}.toolbar-right{display:flex;align-items:center;gap:.5rem}.search-box{width:250px;border:1px solid #dbe4f0;background:#fff;border-radius:10px;display:flex;align-items:center;gap:.45rem;padding:0 .7rem;color:#94a3b8}.search-box input{width:100%;border:none;height:38px;font-size:.88rem;font-family:var(--font-heading);color:#334155;background:transparent}.view-toggle{border:1px solid #dbe4f0;border-radius:10px;overflow:hidden;display:flex}.view-toggle button{width:36px;height:36px;border:none;background:#fff;color:#64748b;display:inline-flex;align-items:center;justify-content:center}.view-toggle button.active{background:#eef4ff;color:#2d7be7}.courses-grid{margin-top:1rem;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem}.courses-grid.list{grid-template-columns:1fr}.course-card{border-radius:16px;overflow:hidden;border:1px solid #dbe4f0;background:#fff;box-shadow:0 14px 28px #0f172a14}.course-cover{padding:1rem;color:#fff}.course-status{display:inline-flex;border-radius:999px;background:#10b981f2;padding:.24rem .55rem;font-size:.62rem;font-weight:800;letter-spacing:.06em}.course-cover h3{margin:.8rem 0 0;font-size:1.65rem;line-height:1.12;font-weight:800}.course-body{padding:.95rem}.course-desc{color:#64748b;font-size:.9rem;line-height:1.5;min-height:54px}.course-metrics{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.4rem}.course-metrics div{background:#f8fafc;border-radius:10px;border:1px solid #eef2f7;padding:.5rem;text-align:center}.course-metrics strong{display:block;color:#0f172a;font-size:.92rem}.course-metrics span{display:block;margin-top:.15rem;color:#64748b;font-size:.72rem}.course-progress{margin-top:.85rem}.progress-head{display:flex;justify-content:space-between;font-size:.8rem;color:#64748b;margin-bottom:.35rem}.progress-track{height:6px;border-radius:999px;background:#e2e8f0;overflow:hidden}.progress-fill{height:100%;border-radius:inherit;background:#2d7be7}.course-actions{margin-top:.85rem;display:grid;grid-template-columns:1fr 1fr;gap:.55rem}.course-actions button{border:1px solid #dbe4f0;background:#f8fafc;color:#334155;border-radius:9px;padding:.58rem;font-family:var(--font-heading);font-size:.84rem;font-weight:700}.course-actions button.primary{background:#2d7be7;color:#fff;border-color:#2d7be7}.course-add-card{border:2px dashed #c7d2e5;border-radius:16px;min-height:240px;display:flex;flex-direction:column;align-items:center;justify-content:center;color:#64748b;text-align:center}.add-circle{width:44px;height:44px;border-radius:50%;background:#dbeafe;color:#2d7be7;display:inline-flex;align-items:center;justify-content:center;font-size:1.6rem;font-weight:700}.course-add-card h3{margin:.8rem 0 .3rem;color:#0f172a;font-weight:800;font-size:1.6rem}.course-add-card p{margin:0}@media(max-width:1100px){.courses-stats,.courses-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:768px){.courses-toolbar{flex-direction:column;align-items:stretch}.toolbar-right,.search-box{width:100%}.courses-stats,.courses-grid{grid-template-columns:1fr}.course-cover h3,.course-add-card h3{font-size:1.25rem}}.modal-box{background:#fff;border-radius:12px;padding:1.5rem;width:100%;max-width:480px;box-shadow:0 20px 60px #0003}.modal-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:1.25rem}.modal-header h2{font-size:1.1rem;font-weight:600;margin:0}.modal-close{background:none;border:none;cursor:pointer;color:#6b7280;padding:4px;border-radius:6px}.modal-close:hover{background:#f3f4f6}.modal-form{display:flex;flex-direction:column;gap:1rem}.modal-form label{display:flex;flex-direction:column;gap:.35rem;font-size:.875rem;font-weight:500;color:#374151}.modal-form input,.modal-form textarea{padding:.5rem .75rem;border:1px solid #d1d5db;border-radius:8px;font-size:.875rem;outline:none;transition:border-color .15s}.modal-form input:focus,.modal-form textarea:focus{border-color:#4f46e5}.required{color:#ef4444}.modal-actions{display:flex;gap:.75rem;justify-content:flex-end;margin-top:.5rem}.btn-primary{display:inline-flex;align-items:center;gap:.4rem;padding:.5rem 1rem;background:#4f46e5;color:#fff;border:none;border-radius:8px;font-size:.875rem;font-weight:500;cursor:pointer;transition:background .15s}.btn-primary:hover:not(:disabled){background:#4338ca}.btn-primary:disabled{opacity:.6;cursor:not-allowed}.btn-secondary{padding:.5rem 1rem;background:#f3f4f6;color:#374151;border:none;border-radius:8px;font-size:.875rem;font-weight:500;cursor:pointer}.btn-secondary:hover{background:#e5e7eb}.course-actions .danger{background:#fee2e2;color:#dc2626;border:none;border-radius:6px;padding:.4rem .75rem;font-size:.8rem;cursor:pointer}.course-actions .danger:hover:not(:disabled){background:#fecaca}.loading-state,.error-state{padding:2rem;text-align:center;color:#6b7280;font-size:.9rem}.error-state{color:#dc2626}.courses-header{display:flex;align-items:flex-start;justify-content:space-between}.admin-dashboard{max-width:1600px;margin:0 auto}.dashboard-grid.full-width{grid-template-columns:1fr;margin-top:1.5rem;margin-bottom:0}.stat-trend{font-size:.75rem;margin-top:.5rem}.stat-trend.positive{color:var(--success-color)}.stat-trend.negative{color:var(--error-color)}.users-table table,.transactions-table table{width:100%;border-collapse:collapse}.users-table th,.transactions-table th{text-align:left;padding:.875rem 1rem;font-size:.813rem;font-weight:600;color:var(--gray-600);border-bottom:2px solid var(--gray-200)}.users-table td,.transactions-table td{padding:1rem;border-bottom:1px solid var(--gray-100);font-size:.9375rem}.user-cell{display:flex;align-items:center;gap:.75rem}.user-avatar{width:40px;height:40px;border-radius:50%;background:var(--gradient-primary);color:#fff;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:.9375rem}.user-name{font-weight:600;color:var(--gray-900);margin-bottom:.125rem}.user-email{font-size:.813rem;color:var(--gray-600)}.role-badge{padding:.375rem .875rem;border-radius:20px;font-size:.75rem;font-weight:600}.role-badge.teacher{background:#667eea1a;color:#667eea}.role-badge.student{background:#43e97b1a;color:#43e97b}.status-badge{padding:.375rem .875rem;border-radius:20px;font-size:.75rem;font-weight:600}.status-badge.active,.status-badge.completed{background:#43e97b1a;color:var(--success-color)}.status-badge.inactive,.status-badge.failed{background:#9e9e9e1a;color:var(--gray-600)}.status-badge.pending{background:#fbbf241a;color:#fbbf24}.plans-list{display:flex;flex-direction:column;gap:1rem}.plan-item{display:flex;justify-content:space-between;align-items:center;padding:1.25rem;border:2px solid var(--gray-200);border-radius:12px;transition:all .2s}.plan-item:hover{border-color:var(--primary-color);box-shadow:0 4px 12px #667eea1a}.plan-name{font-size:1.125rem;font-weight:700;color:var(--gray-900);margin:0 0 .25rem}.plan-price{font-size:.9375rem;color:var(--primary-color);font-weight:600;margin:0}.plan-users{text-align:center}.plan-user-count{display:block;font-size:1.5rem;font-weight:800;color:var(--gray-900)}.plan-user-label{display:block;font-size:.75rem;color:var(--gray-600)}.transaction-id{font-family:monospace;font-weight:600;color:var(--gray-700)}.transaction-amount{font-weight:700;color:var(--success-color)}.payment-method{font-size:.875rem;display:inline-flex;align-items:center;gap:.25rem}.btn-icon{background:transparent;border:none;font-size:1.125rem;cursor:pointer;padding:.375rem;border-radius:4px;transition:background .2s}.btn-icon:hover{background:var(--gray-100)}.revenue-chart{padding:1rem 0}.chart-bars{display:flex;align-items:flex-end;gap:1rem;height:200px}.chart-bar{flex:1;display:flex;flex-direction:column;justify-content:flex-end;align-items:center;gap:.5rem}.bar-fill{width:100%;background:var(--gradient-primary);border-radius:4px 4px 0 0;transition:height .3s}.bar-label{font-size:.75rem;color:var(--gray-600);font-weight:600}.quick-stats{display:flex;flex-direction:column;gap:1.5rem}.quick-stat-item{display:flex;flex-direction:column;gap:.5rem}.quick-stat-label{font-size:.875rem;color:var(--gray-600);font-weight:500}.quick-stat-value{font-size:1.5rem;font-weight:800;color:var(--gray-900)}.quick-stat-bar{height:8px;background:var(--gray-200);border-radius:4px;overflow:hidden}.quick-stat-fill{height:100%;border-radius:4px;transition:width .3s}.system-status{display:grid;grid-template-columns:repeat(2,1fr);gap:1.5rem}.status-item{display:flex;align-items:center;gap:1rem;padding:1rem;border:1px solid var(--gray-200);border-radius:8px}.status-indicator{width:12px;height:12px;border-radius:50%;flex-shrink:0}.status-indicator.active{background:var(--success-color);box-shadow:0 0 0 4px #43e97b33}.status-indicator.warning{background:#fbbf24;box-shadow:0 0 0 4px #fbbf2433}.status-indicator.error{background:var(--error-color);box-shadow:0 0 0 4px #f5576c33}.status-name{font-weight:600;color:var(--gray-900);margin-bottom:.125rem}.status-value{font-size:.813rem;color:var(--gray-600)}.highlight-card{border:2px solid var(--primary-color);background:linear-gradient(to right,#fff,#f0f7ff)}.pending-badge{background:var(--error-color);color:#fff;padding:.25rem .75rem;border-radius:12px;font-size:.813rem;font-weight:700}.card-content p{color:var(--gray-600);margin-bottom:1.5rem}.card-footer{display:flex;justify-content:flex-end}@media(max-width:1200px){.chart-bars{gap:.5rem}.system-status{grid-template-columns:1fr}}@media(max-width:768px){.header-actions{flex-direction:column}.users-table,.transactions-table{overflow-x:auto}.transactions-table table{min-width:800px}}.sd-page{font-family:Be Vietnam Pro,sans-serif;color:#e2e8f0;display:flex;flex-direction:column;gap:1.25rem;margin:-1.5rem -1.75rem -1.75rem;padding:1.75rem 1.75rem 2.5rem;min-height:calc(100vh - 68px);background:linear-gradient(155deg,#11103a,#0d1422 40%,#081a28,#0a2535);position:relative}.sd-page:before,.sd-page:after{content:"";position:fixed;border-radius:50%;pointer-events:none;z-index:0}.sd-page:before{width:560px;height:560px;background:radial-gradient(circle,rgba(79,70,229,.13),transparent 70%);top:-80px;left:180px;filter:blur(70px)}.sd-page:after{width:480px;height:480px;background:radial-gradient(circle,rgba(6,182,212,.1),transparent 70%);bottom:-60px;right:-60px;filter:blur(70px)}.sd-card{position:relative;z-index:1;background:#fff1;backdrop-filter:blur(24px);-webkit-backdrop-filter:blur(24px);border:1px solid rgba(255,255,255,.1);border-radius:20px;padding:1.5rem;transition:transform .25s ease,box-shadow .25s ease,border-color .25s ease}.sd-card:hover{transform:translateY(-3px);box-shadow:0 20px 56px #00000052,0 0 0 1px #ffffff24}@keyframes sdFadeUp{0%{opacity:0;transform:translateY(22px)}to{opacity:1;transform:translateY(0)}}.sd-anim-0{animation:sdFadeUp .5s ease .04s both}.sd-anim-1{animation:sdFadeUp .5s ease .12s both}.sd-anim-2{animation:sdFadeUp .5s ease .21s both}.sd-anim-3{animation:sdFadeUp .5s ease .3s both}.sd-anim-4{animation:sdFadeUp .5s ease .39s both}.sd-banner-teacher{background:linear-gradient(135deg,#4f46e538,#06b6d429);border-color:#6366f161;display:flex;align-items:center;justify-content:space-between;gap:1rem;flex-wrap:wrap}.sd-banner-left{display:flex;align-items:center;gap:.85rem}.sd-banner-icon{width:44px;height:44px;border-radius:12px;background:#2a2d7a;color:#e0e6ff;display:flex;align-items:center;justify-content:center;flex-shrink:0}.sd-banner-teacher h3{margin:0 0 .2rem;font-size:.95rem;font-weight:600;color:#e0e7ff}.sd-banner-teacher p{margin:0;font-size:.82rem;color:#a5b4fc}.sd-header{display:flex;align-items:flex-end;justify-content:space-between;gap:1rem;flex-wrap:wrap;animation:sdFadeUp .5s ease .02s both;position:relative;z-index:1}.sd-greeting-badge{display:inline-block;padding:.28rem .75rem;background:#1e2264;border:1px solid rgba(99,102,241,.5);border-radius:100px;font-size:.77rem;color:#e0e6ff;margin-bottom:.45rem;letter-spacing:.02em}.sd-title{font-family:Lexend,sans-serif;font-size:clamp(1.45rem,3vw,2rem);font-weight:700;color:#f1f5f9;margin:0 0 .35rem;line-height:1.2}.sd-wave{display:inline-block;animation:sdWave 2.2s ease-in-out infinite;transform-origin:70% 70%}@keyframes sdWave{0%,to{transform:rotate(0)}20%,60%{transform:rotate(-18deg)}40%,80%{transform:rotate(12deg)}}.sd-subtitle{margin:0;font-size:.9rem;color:#94a3b8;line-height:1.55}.sd-subtitle strong{color:#c7d2fe}.sd-header-actions{display:flex;gap:.6rem;flex-shrink:0}.sd-btn{display:inline-flex;align-items:center;gap:.4rem;padding:.55rem 1.1rem;border-radius:10px;font-size:.875rem;font-family:Be Vietnam Pro,sans-serif;font-weight:500;cursor:pointer;border:none;transition:all .2s ease;white-space:nowrap}.sd-btn-gradient{background:linear-gradient(135deg,#4f46e5,#06b6d4);color:#fff;box-shadow:0 4px 14px #4f46e561}.sd-btn-gradient:hover{transform:translateY(-2px);box-shadow:0 6px 22px #4f46e585}.sd-btn-ai{background:linear-gradient(135deg,#7c3aed,#4f46e5);color:#e0e7ff;box-shadow:0 4px 14px #7c3aed52}.sd-btn-ai:hover{transform:translateY(-2px);box-shadow:0 6px 20px #7c3aed7a}.sd-btn-outline{background:#192233;color:#e2e8f0;border:1px solid rgba(255,255,255,.18)}.sd-btn-outline:hover{background:#1f2d42;color:#fff}.sd-btn-sm{padding:.28rem .7rem;font-size:.77rem;border-radius:8px;background:transparent;border:1px solid;cursor:pointer;transition:all .2s;flex-shrink:0;font-family:Be Vietnam Pro,sans-serif;font-weight:500}.sd-btn-sm:hover{opacity:.8;transform:scale(.97)}.sd-card-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:1.1rem;gap:.5rem}.sd-card-title{font-family:Lexend,sans-serif;font-size:.93rem;font-weight:600;color:#e2e8f0;margin:0;display:flex;align-items:center;gap:.4rem}.sd-card-title svg{flex-shrink:0}.sd-link{display:inline-flex;align-items:center;gap:.2rem;font-size:.78rem;color:#818cf8;text-decoration:none;transition:color .2s;white-space:nowrap}.sd-link:hover{color:#a5b4fc}.sd-link:focus-visible{outline:2px solid #818cf8;outline-offset:3px}.sd-stats-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:1rem;list-style:none;padding:0}.sd-stat-card{cursor:default}.sd-stat-card:hover{box-shadow:0 18px 44px #00000047,0 0 22px var(--card-glow, rgba(99, 102, 241, .22))}.sd-stat-top{display:flex;align-items:center;justify-content:space-between;margin-bottom:.8rem}.sd-stat-icon{width:44px;height:44px;border-radius:12px;display:flex;align-items:center;justify-content:center;flex-shrink:0}.sd-stat-num{font-family:Lexend,sans-serif;font-size:2rem;font-weight:700;line-height:1;margin-bottom:.25rem}.sd-stat-label{font-size:.79rem;color:#94a3b8;margin-bottom:.5rem;line-height:1.35}.sd-stat-change{font-size:.72rem;font-weight:500}.sd-pos{color:#34d399}.sd-neg{color:#f87171}.sd-stat-skel{display:flex;align-items:flex-start;gap:.85rem;padding:1.1rem}.sd-skel{background:linear-gradient(90deg,#ffffff0d 25%,#ffffff1a,#ffffff0d 75%);background-size:200% 100%;animation:sdShimmer 1.5s infinite;flex-shrink:0}@keyframes sdShimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.sd-main-grid{display:grid;grid-template-columns:1.15fr 1fr;gap:1.25rem}.sd-col{display:flex;flex-direction:column;gap:1.25rem}.sd-tasks-list{display:flex;flex-direction:column;gap:.85rem}.sd-task-item{display:flex;align-items:flex-start;gap:.7rem;padding:.85rem;background:#ffffff0a;border:1px solid rgba(255,255,255,.07);border-radius:12px;transition:all .2s ease}.sd-task-item:hover{background:#ffffff12;transform:translate(4px)}.sd-task-line{width:3px;border-radius:99px;align-self:stretch;flex-shrink:0;min-height:40px}.sd-task-body{flex:1;min-width:0}.sd-task-head{display:flex;align-items:flex-start;justify-content:space-between;gap:.4rem;margin-bottom:.3rem;flex-wrap:wrap}.sd-task-title{font-size:.86rem;font-weight:500;color:#e2e8f0;flex:1;line-height:1.4}.sd-days-badge{display:inline-flex;align-items:center;gap:.25rem;font-size:.71rem;font-weight:600;padding:.18rem .5rem;border-radius:100px;white-space:nowrap;flex-shrink:0}.sd-task-meta{display:flex;align-items:center;gap:.55rem;margin-bottom:.4rem;flex-wrap:wrap}.sd-subject-tag{font-size:.71rem;font-weight:500;padding:.16rem .5rem;border-radius:100px}.sd-task-due{font-size:.71rem;color:#64748b}.sd-task-prog-row{display:flex;align-items:center;gap:.5rem}.sd-task-prog-track{flex:1;height:4px;background:#ffffff14;border-radius:99px;overflow:hidden}.sd-task-prog-fill{height:100%;border-radius:99px;transition:width 1.1s ease}.sd-task-prog-num{font-size:.69rem;color:#64748b;min-width:28px;text-align:right}.sd-prog-list{display:flex;flex-direction:column;gap:1rem}.sd-prog-info{display:flex;justify-content:space-between;margin-bottom:.4rem}.sd-prog-label{font-size:.85rem;font-weight:600}.sd-prog-meta{font-size:.77rem;color:#64748b}.sd-prog-meta strong{color:#94a3b8}.sd-prog-track{height:7px;background:#ffffff14;border-radius:99px;overflow:hidden}.sd-prog-fill{height:100%;border-radius:99px;transition:width 1.3s cubic-bezier(.4,0,.2,1)}.sd-card-motivate{background:linear-gradient(135deg,#4f46e538,#06b6d429);border-color:#6366f152;text-align:center;padding:1.5rem 1.25rem}.sd-motivate-icon{width:50px;height:50px;border-radius:14px;background:#78500059;color:#fde68a;display:flex;align-items:center;justify-content:center;margin:0 auto .75rem}.sd-motivate-icon svg{width:26px;height:26px}.sd-motivate-main{font-size:.93rem;color:#e2e8f0;margin:0 0 .75rem;line-height:1.55}.sd-motivate-main strong{color:#a5b4fc;font-size:1.08rem;font-family:Lexend,sans-serif}.sd-motivate-track{position:relative;height:10px;background:#ffffff1a;border-radius:99px;overflow:hidden;margin-bottom:.5rem}.sd-motivate-fill{height:100%;border-radius:99px;background:linear-gradient(90deg,#4f46e5,#06b6d4);transition:width 1.6s ease}.sd-motivate-pct{position:absolute;right:7px;top:50%;transform:translateY(-50%);font-size:.64rem;color:#fff;font-weight:700;pointer-events:none}.sd-motivate-sub{font-size:.74rem;color:#64748b;margin:0}.sd-grades-list{display:flex;flex-direction:column;gap:.65rem}.sd-grade-row{display:flex;align-items:center;justify-content:space-between;gap:.75rem;padding:.6rem .75rem;background:#ffffff0a;border:1px solid rgba(255,255,255,.06);border-radius:10px;transition:background .2s}.sd-grade-row:hover{background:#ffffff12}.sd-grade-info{flex:1;min-width:0}.sd-grade-title{font-size:.82rem;color:#cbd5e1;margin:0 0 .12rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sd-grade-date{font-size:.71rem;color:#475569;margin:0}.sd-grade-badge{font-family:Lexend,sans-serif;font-size:.9rem;font-weight:700;padding:.28rem .65rem;border-radius:8px;min-width:44px;text-align:center;flex-shrink:0}.sd-streak-count{font-size:.82rem;color:#f97316}.sd-streak-count strong{font-weight:700}.sd-streak-days{display:flex;justify-content:space-between;margin-bottom:.75rem;gap:.2rem;list-style:none;padding:0}.sd-streak-days li{margin:0}.sd-streak-day{display:flex;flex-direction:column;align-items:center;gap:.3rem}.sd-streak-dot{width:30px;height:30px;border-radius:50%;background:#ffffff0f;border:2px solid rgba(255,255,255,.1);transition:all .25s ease}.sd-streak-active .sd-streak-dot{background:linear-gradient(135deg,#f97316,#fbbf24);border-color:transparent;box-shadow:0 0 14px #f9731673}.sd-streak-lbl{font-size:.67rem;color:#475569}.sd-streak-active .sd-streak-lbl{color:#fbbf24;font-weight:600}.sd-streak-msg{font-size:.77rem;color:#64748b;margin:0;text-align:center}.sd-week-range{font-size:.75rem;color:#475569}.sd-weekly-bars{display:flex;align-items:flex-end;justify-content:space-between;gap:.4rem;height:110px;margin-bottom:.75rem}.sd-wcol{flex:1;display:flex;flex-direction:column;align-items:center;gap:.3rem;position:relative}.sd-wval{position:absolute;top:-18px;font-size:.64rem;color:#94a3b8}.sd-wtrack{width:100%;max-width:36px;height:90px;background:#ffffff0d;border-radius:7px;overflow:hidden;display:flex;align-items:flex-end}.sd-wfill{width:100%;border-radius:7px;background:#6366f173;transition:height 1.1s cubic-bezier(.4,0,.2,1);min-height:3px}.sd-wtoday{background:linear-gradient(180deg,#67e8f9,#4f46e5);box-shadow:0 -4px 14px #67e8f959}.sd-wlbl{font-size:.67rem;color:#475569}.sd-wsummary{display:flex;align-items:baseline;gap:.5rem;padding-top:.6rem;border-top:1px solid rgba(255,255,255,.07);margin-top:.3rem}.sd-wsnum{font-family:Lexend,sans-serif;font-size:1.5rem;font-weight:700;color:#67e8f9}.sd-wslbl{font-size:.79rem;color:#64748b}.sd-wslbl strong{color:#34d399}.sd-quick-grid{display:grid;grid-template-columns:repeat(6,1fr);gap:.7rem}.sd-quick-grid>li{display:contents}.sd-qa-btn-full{width:100%}.sd-qa-btn{display:flex;flex-direction:column;align-items:center;gap:.5rem;padding:1rem .4rem;background:#ffffff0d;border:1px solid rgba(255,255,255,.09);border-radius:14px;cursor:pointer;transition:all .22s ease;font-family:Be Vietnam Pro,sans-serif}.sd-qa-btn:hover{background:#ffffff1a;border-color:var(--qa-color, rgba(255, 255, 255, .2));transform:translateY(-4px);box-shadow:0 10px 28px #00000038}.sd-qa-icon{display:flex}.sd-qa-label{font-size:.73rem;color:#94a3b8;text-align:center}.sd-qa-btn:hover .sd-qa-label{color:#cbd5e1}.sd-qa-btn:focus-visible{outline:2px solid var(--qa-color, #818cf8);outline-offset:2px}.sd-roadmap-list{display:flex;flex-direction:column;gap:.55rem}.sd-roadmap-item{display:flex;align-items:center;justify-content:space-between;padding:.75rem 1rem;background:#ffffff0a;border:1px solid rgba(255,255,255,.07);border-radius:12px;text-decoration:none;transition:all .2s ease;gap:1rem}.sd-roadmap-item:hover{background:#ffffff14;border-color:#6366f161;transform:translate(4px)}.sd-rm-name{display:block;font-size:.87rem;font-weight:500;color:#e2e8f0;margin-bottom:.18rem}.sd-rm-sub{font-size:.74rem;color:#475569}.sd-rm-topics{font-size:.74rem;font-weight:600;color:#818cf8;white-space:nowrap}.sd-roadmap-skel{padding:.7rem;background:#ffffff09;border-radius:10px;display:flex;flex-direction:column;gap:.35rem;margin-bottom:.35rem}.sd-empty-msg{font-size:.85rem;color:#475569;margin:0}@media(max-width:1100px){.sd-stats-grid{grid-template-columns:repeat(2,1fr)}.sd-main-grid{grid-template-columns:1fr}.sd-quick-grid{grid-template-columns:repeat(3,1fr)}}@media(max-width:768px){.sd-page{margin:-1rem;padding:1rem 1rem 2rem;gap:1rem}.sd-header{flex-direction:column;align-items:flex-start}.sd-stats-grid{grid-template-columns:repeat(2,1fr)}.sd-quick-grid{grid-template-columns:repeat(3,1fr)}.sd-banner-teacher{flex-direction:column;align-items:flex-start}}@media(max-width:480px){.sd-stats-grid{grid-template-columns:1fr 1fr;gap:.7rem}.sd-stat-num{font-size:1.6rem}.sd-quick-grid{grid-template-columns:repeat(2,1fr)}.sd-title{font-size:1.35rem}}.teacher-dashboard{--td-primary: #5e5ce6;--td-primary-soft: rgba(94, 92, 230, .07);--td-text-1: #0e0c15;--td-text-2: #3f3a52;--td-text-3: #756b85;--td-text-4: #9ca3af;--td-border: #e8e5f0;--td-surface: #ffffff;--td-radius: 14px;--td-f-head: "Be Vietnam Pro", -apple-system, sans-serif;--td-f-body: "Inter", -apple-system, sans-serif;max-width:1180px;margin:0 auto}.dashboard-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:2rem;padding-bottom:1.5rem;border-bottom:1px solid var(--td-border)}.dashboard-title{margin:0;font-size:1.5rem;font-weight:700;color:var(--td-text-1);font-family:var(--td-f-head);letter-spacing:-.3px}.dashboard-subtitle{margin:.3rem 0 0;color:var(--td-text-3);font-size:.875rem;font-family:var(--td-f-body)}.dashboard-date{color:var(--td-text-4);font-size:.8rem;font-weight:500;white-space:nowrap;padding-top:.3rem;font-family:var(--td-f-body)}.stats-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.875rem;margin-bottom:1.25rem}.stat-card{background:var(--td-surface);border:1px solid var(--td-border);border-radius:var(--td-radius);padding:1rem 1.25rem}.stat-head{display:flex;align-items:center;justify-content:space-between}.stat-title{color:var(--td-text-3);font-size:.8rem;font-weight:500;font-family:var(--td-f-body);letter-spacing:.01em}.stat-icon{font-size:1.1rem;opacity:.65}.stat-value{margin-top:.6rem;font-size:1.875rem;line-height:1;font-weight:700;color:var(--td-text-1);font-family:var(--td-f-head);letter-spacing:-.5px}.stat-delta{margin-top:.4rem;font-size:.78rem;font-weight:500;font-family:var(--td-f-body)}.stat-delta.up{color:#059669}.stat-delta.down{color:#dc2626}.dashboard-grid{display:grid;grid-template-columns:minmax(0,2fr) minmax(240px,1fr);gap:.875rem}.dashboard-card{border:1px solid var(--td-border);border-radius:var(--td-radius);background:var(--td-surface);padding:1.25rem 1.5rem}.section-label{margin:0 0 1.1rem;font-size:.72rem;font-weight:600;text-transform:uppercase;letter-spacing:.08em;color:var(--td-text-4);font-family:var(--td-f-body)}.progress-list{display:flex;flex-direction:column;gap:1.1rem}.progress-row{display:flex;justify-content:space-between;align-items:center;margin-bottom:.35rem;font-size:.875rem;color:var(--td-text-2);font-family:var(--td-f-body)}.progress-row strong{color:var(--td-text-3);font-weight:500;font-size:.8rem}.progress-track{width:100%;height:5px;border-radius:999px;background:var(--td-border);overflow:hidden}.progress-fill{height:100%;border-radius:inherit;background:var(--td-primary)}.completion-card{display:flex;flex-direction:column;justify-content:space-between}.ring-wrap{display:flex;justify-content:center;flex:1;padding:.875rem 0}.ring{--value: 78%;width:120px;height:120px;border-radius:50%;padding:8px;background:conic-gradient(var(--td-primary) var(--value),var(--td-border) var(--value))}.ring-center{width:100%;height:100%;border-radius:50%;background:var(--td-surface);display:flex;flex-direction:column;align-items:center;justify-content:center}.ring-value{font-size:1.5rem;line-height:1;color:var(--td-text-1);font-weight:700;font-family:var(--td-f-head);letter-spacing:-.5px}.ring-label{margin-top:.2rem;text-transform:uppercase;letter-spacing:.06em;font-size:.6rem;color:var(--td-text-4);font-weight:600;font-family:var(--td-f-body)}.ring-meta{display:flex;justify-content:center;gap:1.5rem;padding-top:.875rem;border-top:1px solid var(--td-border)}.ring-meta div{display:flex;flex-direction:column;align-items:center;gap:.15rem}.ring-meta span{font-size:.75rem;color:var(--td-text-4);font-family:var(--td-f-body)}.ring-meta strong{color:var(--td-primary);font-size:.9rem;font-weight:600;font-family:var(--td-f-head)}.quick-panel{margin-top:1rem;border:1px solid var(--td-border);border-radius:var(--td-radius);background:var(--td-surface);padding:1rem 1.5rem;display:flex;justify-content:space-between;align-items:center;gap:1rem}.quick-title{font-size:.975rem;line-height:1.3;font-weight:600;color:var(--td-text-1);font-family:var(--td-f-head);letter-spacing:-.1px}.quick-summary p{margin:.2rem 0 0;color:var(--td-text-3);font-size:.8rem;font-family:var(--td-f-body)}.quick-actions{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:.5rem;flex-shrink:0}.quick-actions button{border:1px solid var(--td-border);background:transparent;color:var(--td-text-2);border-radius:100px;padding:.4rem 1rem;font-family:var(--td-f-body);font-size:.8rem;font-weight:500;cursor:pointer;transition:all .2s ease}.quick-actions button:hover{border-color:var(--td-primary);color:var(--td-primary);background:var(--td-primary-soft)}.quick-actions button.primary{background:var(--td-primary);color:#fff;border-color:var(--td-primary);font-weight:600}.quick-actions button.primary:hover{background:#4e4cc6;border-color:#4e4cc6}@media(max-width:1080px){.dashboard-grid{grid-template-columns:1fr}.completion-card{flex-direction:row;align-items:center;gap:1.5rem}.ring-meta{border-top:none;padding-top:0;padding-left:1.5rem;border-left:1px solid var(--td-border);flex-direction:column;align-items:flex-start}.quick-panel{flex-direction:column;align-items:flex-start}.quick-actions{justify-content:flex-start}}@media(max-width:768px){.dashboard-header{flex-direction:column;gap:.25rem;padding-bottom:1rem;margin-bottom:1.25rem}.stats-grid{grid-template-columns:1fr}.completion-card{flex-direction:column}.ring-meta{border-left:none;padding-left:0;border-top:1px solid var(--td-border);padding-top:.75rem;flex-direction:row}.quick-actions{width:100%}.quick-actions button{flex:1}}.forum-page{max-width:1400px;margin:0 auto}.forum-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:1.5rem;margin-bottom:2rem}.forum-controls{display:flex;justify-content:space-between;align-items:center;gap:1rem;margin-bottom:2rem;padding:1rem;background:#fff;border-radius:12px;box-shadow:0 2px 8px #0000001a}.search-filter-group{display:flex;gap:1rem;flex:1}.search-input{flex:1;padding:.75rem 1rem;border:2px solid var(--gray-300);border-radius:8px;font-size:.9375rem}.category-filter{padding:.75rem 1rem;border:2px solid var(--gray-300);border-radius:8px;font-size:.9375rem;font-weight:600;min-width:200px}.sort-buttons{display:flex;gap:.5rem}.sort-btn{padding:.75rem 1rem;border:2px solid var(--gray-300);background:#fff;border-radius:8px;font-size:.875rem;font-weight:600;cursor:pointer;transition:all .2s;white-space:nowrap}.sort-btn:hover{border-color:var(--primary-color)}.sort-btn.active{background:var(--gradient-primary);color:#fff;border-color:transparent}.discussions-container{display:flex;flex-direction:column;gap:1.25rem;margin-bottom:2rem}.discussion-card{background:#fff;border-radius:16px;padding:1.5rem;box-shadow:0 2px 8px #0000001a;display:grid;grid-template-columns:auto 1fr auto;gap:1.5rem;align-items:start;transition:all .2s;position:relative;border:2px solid transparent}.discussion-card:hover{transform:translateY(-2px);box-shadow:0 4px 16px #00000026;border-color:var(--primary-color)}.discussion-card.pinned{background:linear-gradient(135deg,#667eea08,#764ba208);border-color:var(--primary-color)}.pinned-badge{position:absolute;top:1rem;right:1rem;padding:.375rem .75rem;background:var(--primary-color);color:#fff;border-radius:12px;font-size:.75rem;font-weight:700}.solved-badge{position:absolute;top:1rem;right:7rem;padding:.375rem .75rem;background:var(--success-color);color:#fff;border-radius:12px;font-size:.75rem;font-weight:700}.discussion-avatar{width:60px;height:60px;border-radius:50%;background:var(--gradient-primary);display:flex;align-items:center;justify-content:center;font-size:2rem;flex-shrink:0}.discussion-content{flex:1;min-width:0}.discussion-header{display:flex;align-items:center;gap:1rem;margin-bottom:.75rem}.discussion-title{font-size:1.125rem;font-weight:700;color:var(--gray-900);margin:0;flex:1}.category-badge{padding:.375rem .75rem;background:var(--gray-100);border-radius:12px;font-size:.813rem;font-weight:600;color:var(--gray-700);white-space:nowrap}.discussion-excerpt{font-size:.9375rem;color:var(--gray-600);line-height:1.6;margin:0 0 .75rem;display:-webkit-box;-webkit-line-clamp:2;line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.discussion-tags{display:flex;gap:.5rem;flex-wrap:wrap;margin-bottom:.75rem}.tag{padding:.25rem .625rem;background:var(--gray-100);border:1px solid var(--gray-300);border-radius:12px;font-size:.75rem;font-weight:600;color:var(--gray-700)}.discussion-footer{display:flex;justify-content:space-between;align-items:center;padding-top:.75rem;border-top:1px solid var(--gray-200)}.author-info{display:flex;align-items:center;gap:.5rem;font-size:.875rem}.author-name{font-weight:600;color:var(--gray-900)}.separator{color:var(--gray-400)}.created-time{color:var(--gray-600)}.discussion-meta{display:flex;gap:1rem;font-size:.875rem;color:var(--gray-600)}.meta-item{display:flex;align-items:center;gap:.25rem}.discussion-actions{display:flex;flex-direction:column;gap:.5rem}.action-btn{padding:.625rem 1rem;border:none;border-radius:8px;font-size:.875rem;font-weight:600;cursor:pointer;transition:all .2s;white-space:nowrap}.action-btn.secondary:hover{border-color:var(--primary-color);color:var(--primary-color)}.pagination{display:flex;justify-content:center;align-items:center;gap:.5rem}.pagination-btn:hover{border-color:var(--primary-color)}.pagination-pages{display:flex;gap:.25rem}.checkbox-label{display:flex;align-items:center;gap:.75rem;cursor:pointer}.checkbox-label input[type=checkbox]{width:20px;height:20px;cursor:pointer}@media(max-width:1024px){.forum-stats{grid-template-columns:repeat(2,1fr)}.forum-controls{flex-direction:column;align-items:stretch}.search-filter-group{flex-direction:column}.category-filter{width:100%}}@media(max-width:768px){.page-header{flex-direction:column;gap:1rem}.forum-stats{grid-template-columns:1fr}.sort-buttons{flex-wrap:wrap}.discussion-card{grid-template-columns:1fr;text-align:center}.discussion-avatar{margin:0 auto}.discussion-header{flex-direction:column;align-items:center}.discussion-footer{flex-direction:column;gap:.75rem;align-items:flex-start}.discussion-actions,.action-btn{width:100%}.solved-badge,.pinned-badge{position:static;display:inline-block;margin-bottom:.5rem}}:root{--gp-bg: #0f1729;--gp-card: #131e36;--gp-border: rgba(255, 255, 255, .07);--gp-border2: rgba(255, 255, 255, .12);--gp-text-1: #e2e8f0;--gp-text-2: #94a3b8;--gp-text-3: #475569;--gp-font-ui: "Be Vietnam Pro", "Segoe UI", sans-serif;--gp-font-hero: "Cormorant Garamond", Georgia, serif}.gp-page{font-family:var(--gp-font-ui);background:var(--gp-bg);color:var(--gp-text-1);margin:-1.5rem -1.75rem -1.75rem;min-height:calc(100vh - 68px);overflow-x:hidden}.gp-hero{position:relative;padding:3.5rem 2.5rem 3rem;background:linear-gradient(135deg,#0a1020,#162040 55%,#0a1020);overflow:hidden}.gp-hero-glow{position:absolute;inset:0;background:radial-gradient(ellipse 60% 80% at 15% 50%,rgba(129,140,248,.12) 0%,transparent 70%),radial-gradient(ellipse 40% 60% at 78% 40%,rgba(52,211,153,.07) 0%,transparent 60%);pointer-events:none}.gp-hero-noise{position:absolute;inset:0;opacity:.035;pointer-events:none;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");background-size:180px 180px}.gp-hero-inner{position:relative;z-index:1;display:flex;align-items:center;gap:3rem;max-width:1200px;margin:0 auto}.gp-arc-wrapper{position:relative;flex-shrink:0;width:180px;height:180px}.gp-arc-svg{display:block}.gp-arc-center{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;pointer-events:none}.gp-gpa-num{font-family:var(--gp-font-hero);font-size:2.75rem;font-weight:700;line-height:1;letter-spacing:-.02em}.gp-gpa-denom{font-family:var(--gp-font-hero);font-size:1rem;color:var(--gp-text-3);margin-top:2px}.gp-hero-text{flex:1}.gp-hero-eyebrow{font-size:.75rem;font-weight:500;letter-spacing:.12em;text-transform:uppercase;color:var(--gp-text-3);margin:0 0 .5rem}.gp-hero-title{font-family:var(--gp-font-hero);font-size:3rem;font-weight:700;line-height:1.05;letter-spacing:-.01em;color:var(--gp-text-1);margin:0 0 1.25rem}.gp-hero-chips{display:flex;align-items:center;gap:.75rem;flex-wrap:wrap}.gp-grade-chip{display:inline-flex;align-items:center;padding:.35rem 1rem;border-radius:999px;font-size:.8rem;font-weight:600;letter-spacing:.04em;background:color-mix(in srgb,var(--chip-color) 18%,transparent);color:var(--chip-color);border:1px solid color-mix(in srgb,var(--chip-color) 40%,transparent);box-shadow:0 0 16px color-mix(in srgb,var(--chip-color) 30%,transparent)}.gp-rank-chip{display:inline-flex;align-items:center;gap:.4rem;padding:.35rem .85rem;border-radius:999px;background:#ffffff0d;border:1px solid rgba(255,255,255,.1);color:var(--gp-text-2);font-size:.78rem;font-weight:500}.gp-hero-actions{flex-shrink:0}.gp-export-btn{position:relative;overflow:hidden;display:inline-flex;align-items:center;gap:.5rem;padding:.65rem 1.4rem;border-radius:10px;background:transparent;border:1px solid rgba(255,255,255,.22);color:var(--gp-text-1);font-family:var(--gp-font-ui);font-size:.85rem;font-weight:500;cursor:pointer;transition:border-color .2s,background .2s;white-space:nowrap}.gp-export-btn:hover:not(:disabled){border-color:#fff6;background:#ffffff0f}.gp-export-btn:disabled{opacity:.65;cursor:not-allowed}.gp-btn-shimmer{position:absolute;top:0;left:-100%;width:55%;height:100%;background:linear-gradient(90deg,transparent,rgba(255,255,255,.09),transparent);transform:skew(-18deg);transition:left 0s;pointer-events:none}.gp-export-btn:hover:not(:disabled) .gp-btn-shimmer{left:160%;transition:left .65s ease}.gp-spinner{display:inline-block;width:13px;height:13px;border:2px solid rgba(255,255,255,.3);border-top-color:#fff;border-radius:50%;animation:gp-spin .7s linear infinite}@keyframes gp-spin{to{transform:rotate(360deg)}}.gp-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:1rem;padding:1.75rem 2rem;max-width:1200px;margin:0 auto}.gp-stat-card{background:#ffffff08;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border:1px solid var(--gp-border);border-radius:14px;padding:1.25rem 1.4rem;display:flex;align-items:center;gap:1rem;transition:border-color .2s,background .2s,transform .2s;opacity:0;transform:translateY(18px)}.gp-stat-card:hover{border-color:var(--gp-border2);background:#ffffff0e;transform:translateY(-2px)!important}.gp-mounted .gp-stat-card{animation:gp-slide-up .5s cubic-bezier(.22,1,.36,1) both}.gp-stat-icon{flex-shrink:0;width:40px;height:40px;display:flex;align-items:center;justify-content:center;border-radius:10px;background:#ffffff0d}.gp-stat-body{min-width:0}.gp-stat-label{font-size:.7rem;font-weight:500;letter-spacing:.06em;text-transform:uppercase;color:var(--gp-text-3);margin:0 0 .2rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.gp-stat-value{font-family:var(--gp-font-hero);font-size:1.65rem;font-weight:700;line-height:1.1;margin:0 0 .1rem}.gp-stat-sub{font-size:.7rem;color:var(--gp-text-3);margin:0}.gp-tabs{display:flex;gap:.5rem;padding:.25rem 2rem 1.25rem;max-width:1200px;margin:0 auto;flex-wrap:wrap}.gp-tab{padding:.45rem 1.1rem;border-radius:999px;border:1px solid rgba(255,255,255,.12);background:transparent;color:var(--gp-text-2);font-family:var(--gp-font-ui);font-size:.82rem;font-weight:500;cursor:pointer;transition:all .2s;white-space:nowrap}.gp-tab:hover{border-color:#ffffff40;color:var(--gp-text-1);background:#ffffff0a}.gp-tab-active{background:color-mix(in srgb,var(--tab-c) 22%,transparent);border-color:color-mix(in srgb,var(--tab-c) 50%,transparent);color:var(--tab-c);box-shadow:0 0 12px color-mix(in srgb,var(--tab-c) 20%,transparent)}.gp-cards{display:flex;flex-direction:column;gap:1.5rem;padding:0 2rem;max-width:1200px;margin:0 auto}.gp-card{position:relative;background:var(--gp-card);border:1px solid var(--gp-border);border-radius:16px;overflow:hidden;transition:border-color .2s,box-shadow .2s;opacity:0;transform:translateY(20px)}.gp-card:hover{border-color:color-mix(in srgb,var(--sc) 35%,transparent);box-shadow:0 0 30px color-mix(in srgb,var(--sc) 10%,transparent)}.gp-mounted .gp-card{animation:gp-slide-up .55s cubic-bezier(.22,1,.36,1) both}.gp-card:before{content:"";position:absolute;left:0;top:0;bottom:0;width:4px;background:var(--sc);box-shadow:0 0 14px color-mix(in srgb,var(--sc) 60%,transparent)}.gp-card-head{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;padding:1.5rem 1.5rem 1rem 1.75rem}.gp-card-title-block{flex:1;min-width:0}.gp-card-title{font-size:1.05rem;font-weight:600;color:var(--gp-text-1);margin:0 0 .6rem;line-height:1.3}.gp-teacher-chip{display:inline-flex;align-items:center;gap:.5rem}.gp-teacher-avatar{width:26px;height:26px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:.62rem;font-weight:700;color:#fff;flex-shrink:0}.gp-teacher-name{font-size:.8rem;color:var(--gp-text-2)}.gp-avg-badge{display:flex;flex-direction:column;align-items:center;padding:.6rem 1rem;border-radius:12px;background:color-mix(in srgb,var(--ac) 12%,transparent);border:1px solid color-mix(in srgb,var(--ac) 30%,transparent);box-shadow:0 0 18px color-mix(in srgb,var(--ac) 15%,transparent);flex-shrink:0;min-width:88px;text-align:center}.gp-avg-lbl{font-size:.65rem;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--gp-text-3);margin-bottom:.15rem}.gp-avg-val{font-family:var(--gp-font-hero);font-size:1.6rem;font-weight:700;color:var(--ac);line-height:1}.gp-avg-grade{font-size:.68rem;font-weight:500;color:var(--ac);opacity:.8;margin-top:.15rem}.gp-table-wrap{padding:0 1.5rem 0 1.75rem;overflow-x:auto}.gp-table{width:100%;border-collapse:collapse;font-size:.84rem}.gp-table thead tr{border-bottom:1px solid var(--gp-border)}.gp-table th{padding:.6rem .75rem;text-align:left;font-size:.7rem;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--gp-text-3);white-space:nowrap}.gp-table td{padding:.75rem;vertical-align:middle;border-bottom:1px solid rgba(255,255,255,.03)}.gp-row{transition:background .15s}.gp-row:nth-child(2n){background:#ffffff05}.gp-row:hover{background:color-mix(in srgb,var(--rc) 8%,transparent);box-shadow:inset 3px 0 0 var(--rc)}.gp-assn-name{color:var(--gp-text-1);font-weight:500;min-width:220px}.gp-date{color:var(--gp-text-2);white-space:nowrap}.gp-weight-pill{display:inline-block;padding:.2rem .6rem;border-radius:999px;background:#ffffff0f;border:1px solid rgba(255,255,255,.1);font-size:.75rem;color:var(--gp-text-2);white-space:nowrap}.gp-score-cell{display:flex;flex-direction:column;gap:5px;min-width:100px}.gp-score-num{font-weight:600;font-size:.85rem}.gp-score-track{height:4px;background:#ffffff14;border-radius:4px;overflow:hidden}.gp-score-bar{height:100%;border-radius:4px;transition:width .9s cubic-bezier(.22,1,.36,1) .2s}.gp-contrib{font-weight:600;font-size:.84rem}.gp-chart-section{padding:1.25rem 1.5rem 1.5rem 1.75rem;border-top:1px solid var(--gp-border);margin-top:.5rem}.gp-chart-title{font-size:.75rem;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--gp-text-3);margin:0 0 1rem}.gp-chart-wrap{border-radius:10px;overflow:hidden}.gp-chart-tooltip{background:#1e2d4a;border:1px solid rgba(255,255,255,.12);border-radius:10px;padding:.75rem 1rem;box-shadow:0 8px 24px #0006;font-family:var(--gp-font-ui);min-width:180px}.gp-tt-name{font-size:.8rem;font-weight:600;color:var(--gp-text-1);margin:0 0 .4rem;line-height:1.3}.gp-tt-score,.gp-tt-weight,.gp-tt-contrib{font-size:.78rem;color:var(--gp-text-2);margin:0 0 .2rem}.gp-legend{padding:2rem 2rem 3rem;max-width:1200px;margin:1.5rem auto 0;border-top:1px solid var(--gp-border)}.gp-legend-title{font-size:.72rem;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(--gp-text-3);margin:0 0 1rem}.gp-legend-items{display:flex;flex-wrap:wrap;gap:1.25rem}.gp-legend-item{display:flex;align-items:center;gap:.55rem}.gp-legend-dot{width:10px;height:10px;border-radius:50%;flex-shrink:0}.gp-legend-range{font-size:.78rem;color:var(--gp-text-2)}.gp-legend-grade{font-size:.78rem;font-weight:600}.gp-toast{position:fixed;bottom:2rem;left:50%;transform:translate(-50%);display:inline-flex;align-items:center;gap:.55rem;padding:.75rem 1.4rem;border-radius:12px;background:#1a2e1a;border:1px solid rgba(52,211,153,.35);color:#34d399;font-family:var(--gp-font-ui);font-size:.85rem;font-weight:500;box-shadow:0 8px 32px #00000080,0 0 20px #34d39926;z-index:9999;animation:gp-toast-in .3s cubic-bezier(.22,1,.36,1)}@keyframes gp-toast-in{0%{opacity:0;transform:translate(-50%) translateY(12px)}to{opacity:1;transform:translate(-50%) translateY(0)}}@keyframes gp-slide-up{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@media(max-width:1024px){.gp-stats{grid-template-columns:repeat(2,1fr)}}@media(max-width:860px){.gp-hero{padding:2.5rem 1.5rem 2rem}.gp-hero-inner{flex-wrap:wrap;gap:2rem}.gp-hero-actions{width:100%}.gp-stats{padding:1.5rem 1rem;gap:.75rem}.gp-tabs,.gp-cards,.gp-legend{padding-left:1rem;padding-right:1rem}.gp-card-head{flex-wrap:wrap;padding:1.25rem 1.25rem .75rem 1.5rem}}@media(max-width:640px){.gp-page{margin:-1.5rem -1rem -1rem}.gp-stats{grid-template-columns:repeat(2,1fr)}.gp-hero-title{font-size:2.25rem}.gp-gpa-num{font-size:2.2rem}.gp-arc-wrapper{width:150px;height:150px}}.help-center-page{max-width:1200px;margin:0 auto}.page-header,.help-search-section{text-align:center;margin-bottom:3rem}.search-container{max-width:700px;margin:0 auto .75rem;position:relative}.help-search-input{width:100%;padding:1.25rem 1.5rem 1.25rem 4.5rem;border:3px solid var(--primary-color);border-radius:50px;font-size:1.125rem;box-shadow:0 4px 16px #667eea33;transition:all .3s}.help-search-input:focus{outline:none;box-shadow:0 6px 24px #667eea4d}.search-hint{font-size:.875rem;color:var(--gray-600);margin:0}.help-categories{display:flex;justify-content:center;gap:1rem;margin-bottom:3rem;flex-wrap:wrap}.category-btn{padding:.875rem 1.5rem;border:2px solid var(--gray-300);background:#fff;border-radius:50px;font-size:.9375rem;font-weight:600;cursor:pointer;transition:all .2s;display:flex;align-items:center;gap:.5rem}.category-icon{font-size:1.25rem}.category-name{white-space:nowrap}.quick-actions{display:grid;grid-template-columns:repeat(4,1fr);gap:1.5rem;margin-bottom:3rem}.quick-action-card{background:#fff;border-radius:16px;padding:1.5rem;box-shadow:0 2px 8px #0000001a;display:flex;align-items:center;gap:1rem;cursor:pointer;transition:all .2s;border:2px solid transparent}.quick-action-card:hover{transform:translateY(-4px);box-shadow:0 6px 20px #00000026;border-color:var(--primary-color)}.qa-icon{width:60px;height:60px;border-radius:12px;background:var(--gradient-primary);display:flex;align-items:center;justify-content:center;font-size:1.75rem;flex-shrink:0}.qa-content h3{font-size:1rem;font-weight:700;color:var(--gray-900);margin:0 0 .25rem}.qa-content p{font-size:.813rem;color:var(--gray-600);margin:0}.help-section{margin-bottom:3rem}.section-title{font-size:1.75rem;font-weight:800;color:var(--gray-900);margin-bottom:1.5rem}.articles-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1.5rem}.article-card{background:#fff;border-radius:16px;padding:1.5rem;box-shadow:0 2px 8px #0000001a;transition:all .2s;border:2px solid transparent}.article-card:hover{transform:translateY(-4px);box-shadow:0 6px 20px #00000026;border-color:var(--primary-color)}.article-icon{width:60px;height:60px;border-radius:12px;background:linear-gradient(135deg,#667eea1a,#764ba21a);display:flex;align-items:center;justify-content:center;font-size:2rem;margin-bottom:1rem}.article-title{font-size:1.125rem;font-weight:700;color:var(--gray-900);margin:0 0 .75rem}.article-description{font-size:.9375rem;color:var(--gray-600);line-height:1.6;margin:0 0 1rem}.article-footer{display:flex;justify-content:space-between;align-items:center;padding-top:1rem;border-top:1px solid var(--gray-200)}.read-time{font-size:.875rem;color:var(--gray-600)}.read-btn{padding:.5rem 1rem;background:var(--gradient-primary);color:#fff;border:none;border-radius:8px;font-size:.875rem;font-weight:600;cursor:pointer;transition:all .2s}.read-btn:hover{transform:translate(4px)}.faqs-container{display:flex;flex-direction:column;gap:1rem}.faq-item{background:#fff;border-radius:12px;box-shadow:0 2px 8px #0000001a;overflow:hidden;transition:all .2s}.faq-item:hover{box-shadow:0 4px 16px #00000026}.faq-question{padding:1.25rem 1.5rem;display:flex;justify-content:space-between;align-items:center;cursor:pointer;transition:all .2s}.faq-question:hover{background:linear-gradient(135deg,#667eea0d,#764ba20d)}.question-text{font-size:1rem;font-weight:600;color:var(--gray-900);flex:1}.expand-icon{font-size:.875rem;color:var(--gray-600);transition:transform .2s}.faq-answer{padding:0 1.5rem 1.5rem;border-top:1px solid var(--gray-200)}.faq-answer p{font-size:.9375rem;color:var(--gray-700);line-height:1.7;margin:1rem 0}.faq-footer{display:flex;justify-content:space-between;align-items:center;padding-top:1rem;border-top:1px solid var(--gray-100)}.helpful-text{font-size:.813rem;color:var(--gray-600)}.faq-actions{display:flex;gap:.5rem}.faq-action-btn{padding:.5rem 1rem;border:1px solid var(--gray-300);background:#fff;border-radius:8px;font-size:.813rem;font-weight:600;cursor:pointer;transition:all .2s}.faq-action-btn:hover{border-color:var(--primary-color);color:var(--primary-color)}.need-help-section{background:var(--gradient-primary);border-radius:20px;padding:3rem;text-align:center;color:#fff;margin-top:3rem}.need-help-content h2{font-size:2rem;font-weight:800;margin:0 0 1rem}.need-help-content p{font-size:1.125rem;margin:0 0 2rem;opacity:.95}.need-help-content .btn{background:#fff;color:var(--primary-color)}.need-help-content .btn:hover{transform:translateY(-2px);box-shadow:0 6px 20px #0003}.modal.large{max-width:800px}.form-group input,.form-group select,.form-group textarea{width:100%;padding:.75rem 1rem;border:2px solid var(--gray-300);border-radius:8px;font-size:.9375rem;font-family:inherit;transition:all .2s}.form-group input:focus,.form-group select:focus,.form-group textarea:focus{outline:none;border-color:var(--primary-color);box-shadow:0 0 0 3px #667eea1a}.form-group small{display:block;margin-top:.5rem;font-size:.813rem;color:var(--gray-600)}.priority-options{display:flex;gap:1rem}.priority-option{flex:1;padding:.875rem;border:2px solid var(--gray-300);border-radius:8px;display:flex;align-items:center;gap:.5rem;cursor:pointer;transition:all .2s}.priority-option:hover{border-color:var(--primary-color)}.priority-option input[type=radio]{width:auto}.priority-option span{font-size:.9375rem;font-weight:600}@media(max-width:1024px){.quick-actions,.articles-grid{grid-template-columns:repeat(2,1fr)}}@media(max-width:768px){.help-categories{justify-content:flex-start;overflow-x:auto;padding-bottom:.5rem}.category-btn{flex-shrink:0}.quick-actions,.articles-grid{grid-template-columns:1fr}.need-help-section{padding:2rem 1.5rem}.need-help-content h2{font-size:1.5rem}.need-help-content p{font-size:1rem}.priority-options{flex-direction:column}}.materials-page{max-width:1240px;margin:0 auto}.materials-header{display:flex;justify-content:space-between;align-items:flex-start;gap:1rem;margin-bottom:1rem}.materials-header h1{margin:0;font-size:clamp(1.8rem,2.2vw,2.3rem);color:#0f172a;font-weight:800}.beta-badge{margin-left:.45rem;font-size:.7rem;border-radius:8px;padding:.2rem .42rem;color:#2563eb;background:#e0ecff;vertical-align:middle;font-weight:800}.materials-header p{margin:.45rem 0 0;color:#64748b;max-width:720px}.history-btn{border:1px solid #2d7be7;background:#2d7be7;color:#fff;border-radius:10px;padding:.72rem 1rem;font-family:var(--font-heading);font-size:.87rem;font-weight:700;display:inline-flex;align-items:center;gap:.4rem}.tool-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.95rem}.tool-card{border:1px solid #dbe4f0;border-radius:16px;background:#fff;padding:1rem}.tool-icon{width:44px;height:44px;border-radius:12px;background:#eaf1ff;font-size:1.3rem;display:inline-flex;align-items:center;justify-content:center}.tool-card h3{margin:.9rem 0 0;font-size:1.45rem;line-height:1.15;color:#0f172a;font-weight:800}.tool-card p{color:#64748b;font-size:.9rem;line-height:1.6;min-height:74px}.tool-card button{width:100%;border:none;border-radius:10px;background:#eff4fa;color:#2d7be7;font-family:var(--font-heading);font-size:.86rem;font-weight:700;padding:.62rem}.recent-section{margin-top:1rem}.recent-head{display:flex;justify-content:space-between;align-items:center;gap:1rem;margin-bottom:.8rem}.recent-head h2{margin:0;color:#0f172a;font-size:2rem;line-height:1.1;font-weight:800}.search-box{width:280px;border:1px solid #dbe4f0;border-radius:10px;background:#fff;display:flex;align-items:center;gap:.45rem;color:#94a3b8;padding:0 .65rem}.search-box input{width:100%;border:none;height:38px;background:transparent;font-size:.88rem;font-family:var(--font-heading);color:#334155}.search-box input:focus{outline:none}.table-wrap{border:1px solid #dbe4f0;border-radius:14px;background:#fff;overflow:hidden}table{width:100%;border-collapse:collapse}th,td{text-align:left;padding:.85rem .95rem;border-bottom:1px solid #eef2f7;font-size:.85rem}th{text-transform:uppercase;letter-spacing:.04em;color:#64748b;font-weight:700;font-size:.72rem;background:#f8fafc}.file-cell{color:#0f172a;font-weight:700;display:flex;align-items:center;gap:.45rem}.file-dot{display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;border-radius:7px;background:#eef4ff}.tool-tag{display:inline-flex;border-radius:999px;padding:.2rem .55rem;font-size:.68rem;font-weight:800;color:#2d7be7;background:#e8f1ff}.status-tag{display:inline-flex;border-radius:999px;padding:.24rem .55rem;font-size:.73rem;font-weight:700}.status-tag.done{color:#059669;background:#d1fae5}.status-tag.processing{color:#ea580c;background:#ffedd5}.action-cell{color:#2563eb;font-weight:700}.table-footer{padding:.75rem .95rem;font-size:.82rem;color:#64748b;background:#fff}@media(max-width:1150px){.tool-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:768px){.materials-header,.recent-head{flex-direction:column;align-items:flex-start}.search-box{width:100%}.tool-grid{grid-template-columns:1fr}.table-wrap{overflow-x:auto}table{min-width:680px}}.notification-center-page{max-width:1200px;margin:0 auto}.notification-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:1.5rem;margin-bottom:2rem}.notification-filters{display:flex;justify-content:space-between;align-items:center;gap:1rem;margin-bottom:1.5rem;padding:1rem;background:#fff;border-radius:12px;box-shadow:0 2px 8px #0000001a}.filter-group{display:flex;gap:.5rem}.filter-btn{padding:.625rem 1.25rem;border:2px solid var(--gray-300);background:#fff;border-radius:8px;font-size:.9375rem;font-weight:600;color:var(--gray-700);cursor:pointer;transition:all .2s}.filter-btn:hover{border-color:var(--primary-color)}.filter-btn.active{background:var(--gradient-primary);color:#fff;border-color:transparent}.type-filter{padding:.625rem 1rem;border:2px solid var(--gray-300);border-radius:8px;font-size:.9375rem;font-weight:600;cursor:pointer;min-width:200px}.type-filter:focus{outline:none;border-color:var(--primary-color)}.notifications-container{background:#fff;border-radius:16px;box-shadow:0 2px 8px #0000001a;overflow:hidden}.notifications-list{display:flex;flex-direction:column}.notification-item{position:relative;display:flex;align-items:flex-start;gap:1rem;padding:1.5rem;border-bottom:1px solid var(--gray-200);cursor:pointer;transition:all .2s}.notification-item:last-child{border-bottom:none}.notification-item:hover{background:var(--gray-50)}.notification-item.unread{background:#667eea08}.notification-item.priority-high{border-left:4px solid var(--error-color)}.unread-indicator{position:absolute;left:0;top:50%;transform:translateY(-50%);width:8px;height:8px;background:var(--primary-color);border-radius:50%;animation:pulse-dot 2s infinite}@keyframes pulse-dot{0%,to{opacity:1}50%{opacity:.5}}.notification-icon{width:50px;height:50px;border-radius:12px;background:var(--gray-100);display:flex;align-items:center;justify-content:center;font-size:1.5rem;flex-shrink:0}.notification-content{flex:1;min-width:0}.notification-header{display:flex;align-items:center;gap:.75rem;margin-bottom:.5rem}.notification-title{font-size:1rem;font-weight:700;color:var(--gray-900);margin:0}.priority-badge{padding:.25rem .625rem;background:var(--error-color);color:#fff;border-radius:12px;font-size:.75rem;font-weight:600}.notification-message{font-size:.9375rem;color:var(--gray-700);line-height:1.6;margin:0 0 .75rem}.notification-footer{display:flex;gap:1.5rem;font-size:.813rem}.notification-time{color:var(--gray-600)}.notification-type{padding:.25rem .625rem;border-radius:12px;font-weight:600}.notification-type.type-assignment{background:#667eea1a;color:var(--primary-color)}.notification-type.type-grade{background:#43e97b1a;color:var(--success-color)}.notification-type.type-course{background:#ffc7001a;color:var(--warning-color)}.notification-type.type-system{background:#9e9e9e1a;color:var(--gray-700)}.notification-type.type-payment{background:#43e97b1a;color:var(--success-color)}.notification-type.type-message{background:#f443361a;color:var(--error-color)}.notification-action{padding:.625rem 1.25rem;border:2px solid var(--primary-color);background:#fff;color:var(--primary-color);border-radius:8px;font-size:.875rem;font-weight:600;cursor:pointer;transition:all .2s;flex-shrink:0}.notification-action:hover{background:var(--primary-color);color:#fff}.empty-state{text-align:center;padding:4rem 2rem}.empty-icon{font-size:5rem;margin-bottom:1rem}.load-more-container{text-align:center;padding:2rem}@media(max-width:1024px){.notification-stats{grid-template-columns:1fr}}@media(max-width:768px){.page-header{flex-direction:column;gap:1rem}.notification-filters{flex-direction:column;align-items:stretch}.filter-group{flex-wrap:wrap}.type-filter{width:100%}.notification-item{flex-direction:column;align-items:flex-start}.notification-action{width:100%}.notification-footer{flex-direction:column;gap:.5rem}}.course-preview-page{min-height:100vh;background:var(--gray-50)}.preview-header{background:var(--gradient-primary);color:#fff;padding:2rem 0}.header-container{max-width:1200px;margin:0 auto;padding:0 2rem}.back-link{color:#fff;text-decoration:none;font-weight:600;display:inline-block;margin-bottom:1.5rem;opacity:.9;transition:opacity .2s}.back-link:hover{opacity:1}.course-title{font-size:2.5rem;font-weight:800;margin:0 0 .75rem}.course-subtitle{font-size:1.25rem;margin:0 0 1.5rem;opacity:.95}.course-meta{display:flex;align-items:center;gap:.75rem;font-size:.9375rem;flex-wrap:wrap}.separator{opacity:.6}.preview-container{max-width:1200px;margin:-3rem auto 0;padding:0 2rem 3rem;display:grid;grid-template-columns:1fr 400px;gap:2rem;position:relative}.preview-main{background:#fff;border-radius:16px;box-shadow:0 4px 16px #0000001a}.preview-tabs{display:flex;border-bottom:2px solid var(--gray-200)}.tab-btn{flex:1;padding:1.25rem;border:none;background:transparent;font-size:1rem;font-weight:600;color:var(--gray-600);cursor:pointer;position:relative;transition:all .2s}.tab-btn:hover,.tab-btn.active{color:var(--primary-color)}.tab-btn.active:after{content:"";position:absolute;bottom:-2px;left:0;right:0;height:3px;background:var(--gradient-primary)}.tab-content{padding:2rem}.content-section{margin-bottom:3rem}.content-section h2{font-size:1.5rem;font-weight:700;color:var(--gray-900);margin:0 0 1rem}.content-section p{font-size:1rem;line-height:1.7;color:var(--gray-700)}.highlights-list,.requirements-list{list-style:none;padding:0}.highlights-list li,.requirements-list li{padding:.75rem 0;font-size:1rem;color:var(--gray-700);border-bottom:1px solid var(--gray-200)}.learning-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:1rem}.learning-item{display:flex;align-items:flex-start;gap:.75rem;padding:1rem;background:var(--gray-50);border-radius:8px}.check-icon{width:24px;height:24px;background:var(--success-color);color:#fff;border-radius:50%;display:flex;align-items:center;justify-content:center;font-weight:700;flex-shrink:0}.curriculum-header h2{font-size:1.25rem;font-weight:600;color:var(--gray-700);margin:0 0 1.5rem}.curriculum-list{display:flex;flex-direction:column;gap:1rem}.chapter-item{border:2px solid var(--gray-200);border-radius:12px;overflow:hidden}.chapter-header{padding:1.25rem 1.5rem;background:var(--gray-100);display:flex;justify-content:space-between;align-items:center}.chapter-header h3{font-size:1.125rem;font-weight:700;color:var(--gray-900);margin:0}.chapter-info{font-size:.875rem;color:var(--gray-600);font-weight:600}.lessons-list{padding:.5rem}.lesson-item{padding:1rem 1.25rem;display:flex;justify-content:space-between;align-items:center;transition:background .2s}.lesson-item:hover{background:var(--gray-50)}.lesson-info{display:flex;align-items:center;gap:.75rem}.lesson-icon{font-size:1.25rem}.lesson-title{font-size:.9375rem;font-weight:500;color:var(--gray-800)}.free-badge{padding:.25rem .625rem;background:var(--success-color);color:#fff;border-radius:12px;font-size:.75rem;font-weight:600}.lesson-duration{font-size:.875rem;color:var(--gray-600)}.reviews-summary{margin-bottom:2rem;padding:2rem;background:var(--gray-50);border-radius:12px;text-align:center}.rating-number{font-size:3.5rem;font-weight:800;color:var(--gray-900);margin-bottom:.5rem}.rating-stars{font-size:1.5rem;margin-bottom:.5rem}.star{filter:grayscale(100%);opacity:.3}.star.filled{filter:grayscale(0%);opacity:1}.reviews-list{display:flex;flex-direction:column;gap:1.5rem}.review-item{padding:1.5rem;border:1px solid var(--gray-200);border-radius:12px}.review-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:1rem}.review-author{display:flex;gap:.75rem}.author-avatar{font-size:2.5rem}.author-name{font-size:1rem;font-weight:600;color:var(--gray-900)}.review-date{font-size:.875rem;color:var(--gray-600)}.review-content{font-size:.9375rem;line-height:1.7;color:var(--gray-700);margin:0}.preview-sidebar{position:sticky;top:2rem;height:fit-content;display:flex;flex-direction:column;gap:1.5rem}.sidebar-card,.instructor-card{background:#fff;border-radius:16px;padding:1.5rem;box-shadow:0 4px 16px #0000001a}.course-thumbnail{width:100%;aspect-ratio:16/9;background:var(--gradient-primary);border-radius:12px;display:flex;align-items:center;justify-content:center;font-size:6rem;margin-bottom:1.5rem}.price-section{display:flex;align-items:center;gap:1rem;margin-bottom:1.5rem}.current-price{font-size:2rem;font-weight:800;color:var(--gray-900)}.original-price{font-size:1.25rem;color:var(--gray-500);text-decoration:line-through}.discount-badge{padding:.375rem .75rem;background:var(--error-color);color:#fff;border-radius:12px;font-size:.875rem;font-weight:700}.btn-enroll{width:100%;padding:1rem;background:var(--gradient-primary);color:#fff;border:none;border-radius:12px;font-size:1.125rem;font-weight:700;cursor:pointer;transition:all .2s;margin-bottom:1.5rem}.btn-enroll:hover{transform:translateY(-2px);box-shadow:0 6px 20px #667eea4d}.course-includes h3{font-size:1rem;font-weight:700;color:var(--gray-900);margin:0 0 1rem}.course-includes ul{list-style:none;padding:0;margin:0}.course-includes li{padding:.625rem 0;font-size:.9375rem;color:var(--gray-700);border-bottom:1px solid var(--gray-200)}.course-includes li:last-child{border-bottom:none}.instructor-card h3{font-size:1.125rem;font-weight:700;color:var(--gray-900);margin:0 0 1rem}.instructor-info{text-align:center}.instructor-avatar-large{width:80px;height:80px;margin:0 auto .75rem;background:var(--gradient-primary);border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:3rem}.instructor-name{font-size:1.125rem;font-weight:700;color:var(--gray-900);margin-bottom:.25rem}.instructor-title{font-size:.875rem;color:var(--gray-600);margin-bottom:1rem}.instructor-stats{display:flex;flex-direction:column;gap:.5rem}.instructor-stats .stat{font-size:.875rem;color:var(--gray-700)}.modal-overlay{position:fixed;inset:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000}.modal{background:#fff;border-radius:16px;max-width:500px;width:100%;margin:1rem;box-shadow:0 20px 60px #0000004d}.modal-header h2{font-size:1.5rem;font-weight:700;margin:0}.modal-close{width:32px;height:32px;border:none;background:var(--gray-200);border-radius:50%;font-size:1.25rem;cursor:pointer;transition:all .2s}.modal-body{padding:1.5rem;text-align:center}.modal-body p{font-size:1rem;color:var(--gray-700);margin-bottom:1.5rem}.enroll-actions{display:flex;gap:1rem}.enroll-actions .btn{flex:1;padding:.875rem;border-radius:8px;font-size:1rem;font-weight:600;text-decoration:none;text-align:center;transition:all .2s}.btn-primary{background:var(--gradient-primary);color:#fff;border:none}.btn-outline{background:#fff;color:var(--primary-color);border:2px solid var(--primary-color)}@media(max-width:1024px){.preview-container{grid-template-columns:1fr}.preview-sidebar{position:static}.learning-grid{grid-template-columns:1fr}}@media(max-width:768px){.course-title{font-size:1.75rem}.course-subtitle{font-size:1rem}.preview-container{padding:0 1rem 2rem}.tab-content{padding:1.5rem}.enroll-actions{flex-direction:column}}.roadmap-progress-bar{width:100%}.roadmap-progress-bar__meta{display:flex;justify-content:space-between;align-items:center;margin-bottom:.5rem;color:#1f2937;font-size:.9rem}.roadmap-progress-bar__track{height:10px;border-radius:999px;background:#e5e7eb;overflow:hidden}.roadmap-progress-bar__fill{height:100%;border-radius:999px;background:linear-gradient(90deg,#0284c7,#0ea5e9);transition:width .25s ease}.roadmap-progress-bar__native{position:absolute;opacity:0;width:1px;height:1px;pointer-events:none}.roadmap-card{background:#08142de6;border:1px solid #1c315d;border-radius:14px;padding:1rem;display:grid;gap:.75rem;transition:transform .2s ease,border-color .2s ease,box-shadow .2s ease}.roadmap-card:hover{transform:translateY(-2px);border-color:#3b5ea3;box-shadow:0 10px 24px #00000038}.roadmap-card__header{display:flex;justify-content:space-between;align-items:center}.roadmap-card__level{margin:0;color:#91c4ff;font-size:.8rem;font-weight:700;letter-spacing:.04em}.roadmap-card__status{border-radius:999px;padding:.25rem .6rem;font-size:.75rem;font-weight:700}.roadmap-card__status--published{background:#14532d;color:#ecfdf5}.roadmap-card__status--draft{background:#78350f;color:#fffbeb}.roadmap-card__status--archived{background:#334155;color:#f8fafc}.roadmap-card__status--generated{background:#0f766e;color:#ecfeff}.roadmap-card__status--in_progress{background:#1d4ed8;color:#eff6ff}.roadmap-card__status--completed{background:#14532d;color:#ecfdf5}.roadmap-card__title{margin:0;font-size:1.1rem;color:#f8fbff}.roadmap-card__description{margin:0;color:#a9bddf;line-height:1.5}.roadmap-card__stats{display:flex;gap:.75rem;color:#9fb2d8;font-size:.82rem}.roadmap-card__actions{display:flex;justify-content:flex-end}.roadmap-card__cta{text-decoration:none;color:#9ad1ff;font-weight:700}.roadmap-lesson-item{display:flex;justify-content:space-between;align-items:center;gap:.75rem;background:#f8fafc;border:1px solid #e2e8f0;border-radius:10px;padding:.75rem}.roadmap-lesson-item__title{margin:0;font-size:.95rem;color:#0f172a}.roadmap-lesson-item__meta{margin:.25rem 0 0;color:#64748b;font-size:.82rem}.roadmap-lesson-item__action{border:0;border-radius:8px;padding:.5rem .7rem;font-size:.8rem;font-weight:700;color:#fff;background:#0369a1;cursor:pointer}.roadmap-lesson-item__done{color:#16a34a;font-size:.8rem;font-weight:700}.roadmap-lesson-item__locked{color:#64748b;font-size:.8rem;font-weight:700}.roadmap-module{background:#fff;border:1px solid #e5e7eb;border-radius:14px;padding:1rem;display:grid;gap:.75rem}.roadmap-module__header{display:flex;justify-content:space-between;align-items:center}.roadmap-module__title{margin:0;color:#111827;font-size:1.05rem}.roadmap-module__badge{border-radius:999px;background:#e0f2fe;color:#075985;padding:.2rem .65rem;font-size:.75rem;font-weight:700}.roadmap-module__description{margin:0;color:#4b5563}.roadmap-module__lessons{margin:0;padding:0;list-style:none;display:grid;gap:.6rem}.roadmap-dashboard-widget{background:linear-gradient(140deg,#f0f9ff,#ecfeff);border:1px solid #bae6fd;border-radius:16px;padding:1rem;display:grid;gap:1rem}.roadmap-dashboard-widget__header{display:flex;justify-content:space-between;align-items:flex-start;gap:.75rem}.roadmap-dashboard-widget__title{margin:0;color:#0f172a}.roadmap-dashboard-widget__roadmap{color:#0369a1;font-size:.86rem;font-weight:700}.roadmap-dashboard-widget__metrics{display:grid;gap:.75rem;grid-template-columns:repeat(2,minmax(0,1fr))}.roadmap-dashboard-widget__metrics article{background:#fff;border:1px solid #dbeafe;border-radius:10px;padding:.75rem}.roadmap-dashboard-widget__metrics p{margin:0;color:#475569;font-size:.82rem}.roadmap-dashboard-widget__metrics strong{font-size:1.3rem;color:#0f172a}@media(max-width:768px){.roadmap-dashboard-widget__metrics{grid-template-columns:1fr}}.admin-roadmap-editor{background:linear-gradient(155deg,#fff,#f8fbff);border:1px solid #d9e4f2;border-radius:16px;padding:1.1rem;display:grid;gap:1.1rem;box-shadow:0 10px 26px #0f172a14}.admin-roadmap-editor__header h3{margin:0;color:#0f172a}.admin-roadmap-editor__header p{margin:.45rem 0 0;color:#475569}.admin-roadmap-editor__fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.85rem}.admin-roadmap-editor__field{display:grid;gap:.45rem;font-size:.86rem;color:#334155}.admin-roadmap-editor__field input,.admin-roadmap-editor__field textarea,.admin-roadmap-editor__field select{border:1px solid #cddbeb;border-radius:10px;padding:.6rem .7rem;font:inherit;background:#fff}.admin-roadmap-editor__field--wide{grid-column:1 / -1}.admin-roadmap-editor__actions{display:flex;justify-content:flex-end}.admin-roadmap-editor__actions button{border:0;border-radius:10px;padding:.6rem 1rem;color:#fff;background:linear-gradient(135deg,#155eef,#0ea5e9);font-weight:700;cursor:pointer}@media(max-width:768px){.admin-roadmap-editor__fields{grid-template-columns:1fr}}.roadmap-catalog-page{display:grid;gap:1rem;background:radial-gradient(circle at 20% -20%,#132f65,#071229 35%,#050b1b);border:1px solid #142546;border-radius:18px;padding:1rem}.roadmap-catalog-page__header{display:flex;justify-content:space-between;gap:1rem;align-items:flex-start}.roadmap-catalog-page__header h1{margin:0;color:#eaf2ff}.roadmap-catalog-page__header p{margin:.45rem 0 0;color:#9fb2d8}.roadmap-catalog-page__dashboard-link{text-decoration:none;border-radius:10px;background:#234e9f;color:#f8fbff;padding:.55rem .85rem;font-weight:700}.roadmap-catalog-page__grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:1rem}.roadmap-catalog-page__name-topic-panel{display:grid;grid-template-columns:.95fr 1.05fr;gap:1rem}.roadmap-catalog-page__name-list,.roadmap-catalog-page__topic-list{border:1px solid #1f3f76;border-radius:14px;background:#0a1630b3;padding:.9rem;display:grid;gap:.7rem}.roadmap-catalog-page__name-list h3,.roadmap-catalog-page__topic-list h3{margin:0;color:#eaf2ff}.roadmap-catalog-page__name-items,.roadmap-catalog-page__topic-items{display:grid;gap:.45rem}.roadmap-catalog-page__name-item{border:1px solid #2a4c8f;border-radius:10px;background:#102447;color:#dce8ff;text-align:left;padding:.55rem .65rem;cursor:pointer}.roadmap-catalog-page__name-item--active{border-color:#4d81e3;background:#17366f}.roadmap-catalog-page__topic-item{border:1px solid #284778;border-radius:10px;background:#0f2243;padding:.55rem .65rem;display:flex;justify-content:space-between;gap:.5rem}.roadmap-catalog-page__topic-item strong{color:#eaf2ff;font-size:.86rem}.roadmap-catalog-page__topic-item span{color:#9fb2d8;font-size:.78rem}.roadmap-catalog-page__open-link{width:fit-content;text-decoration:none;border-radius:10px;background:#234e9f;color:#f8fbff;padding:.5rem .8rem;font-weight:700}.roadmap-catalog-page__state{margin:0;color:#9fb2d8}@media(max-width:900px){.roadmap-catalog-page__name-topic-panel{grid-template-columns:1fr}}.roadmap-dashboard-page{display:grid;gap:1rem}.roadmap-dashboard-page__header h1{margin:0}.roadmap-dashboard-page__header p{margin:.5rem 0 0;color:#475569}.roadmap-dashboard-page__actions{display:flex;gap:.65rem}.roadmap-dashboard-page__link{text-decoration:none;border-radius:8px;border:1px solid #bae6fd;color:#075985;background:#f0f9ff;padding:.5rem .8rem;font-weight:700}.roadmap-dashboard-page__state{margin:0;color:#64748b}.rdp{display:grid;gap:1.25rem;max-width:1280px;margin:0 auto}.rdp__skeletons{display:grid;gap:1rem}.rdp__skeleton{border-radius:16px;background:linear-gradient(90deg,var(--gray-100) 25%,var(--gray-50) 50%,var(--gray-100) 75%);background-size:200% 100%;animation:rdp-shimmer 1.4s infinite}.rdp__skeleton--hd{height:130px}.rdp__skeleton--road{height:400px}@keyframes rdp-shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.rdp__error{background:#fef2f2;border:1px solid #fecaca;border-radius:12px;padding:1rem 1.25rem;color:#dc2626;font-weight:500}.rdp__header{background:#fff;border:1px solid var(--gray-200);border-radius:16px;padding:1.5rem;display:flex;align-items:flex-start;justify-content:space-between;gap:1.5rem;flex-wrap:wrap}.rdp__badge{display:inline-flex;align-items:center;font-size:.68rem;font-weight:700;color:var(--primary-color);background:#5b67f11a;padding:.18rem .55rem;border-radius:99px;text-transform:uppercase;letter-spacing:.06em;margin-bottom:.6rem}.rdp__title{font-family:var(--font-heading);font-size:1.5rem;font-weight:800;color:var(--gray-900);margin:0 0 .35rem;line-height:1.2}.rdp__desc{font-size:.875rem;color:var(--gray-500);margin:0;max-width:420px;line-height:1.6}.rdp__header-right{display:flex;flex-direction:column;align-items:flex-end;gap:.875rem;min-width:220px}.rdp__prog-row{display:flex;align-items:baseline;gap:.5rem;margin-bottom:.5rem}.rdp__prog-pct{font-size:2rem;font-weight:800;color:var(--primary-color);line-height:1}.rdp__prog-label{font-size:.8rem;color:var(--gray-500)}.rdp__prog-bar{height:8px;width:220px;background:var(--gray-100);border-radius:99px;overflow:hidden}.rdp__prog-fill{height:100%;background:var(--primary-color);border-radius:99px;transition:width .7s ease}.rdp__cta{padding:.6rem 1.25rem;background:var(--primary-color);color:#fff;font-size:.875rem;font-weight:700;border:none;border-radius:8px;cursor:pointer;transition:all var(--transition-fast);white-space:nowrap}.rdp__cta:hover{background:var(--primary-dark);transform:translateY(-1px);box-shadow:0 4px 12px #5b67f14d}.rdp__done-badge{font-size:.875rem;font-weight:700;color:var(--success-color);background:#10b9811a;padding:.45rem .875rem;border-radius:99px}.rdp__entry{background:#fff;border:1px solid var(--gray-200);border-radius:16px;padding:1.25rem 1.5rem;display:flex;align-items:flex-start;justify-content:space-between;flex-wrap:wrap;gap:1rem}.rdp__entry-title{font-size:.925rem;font-weight:700;color:var(--gray-800);margin:0 0 .2rem}.rdp__entry-desc{font-size:.8rem;color:var(--gray-500);margin:0}.rdp__entry-right{display:flex;gap:.5rem;align-items:center;flex-shrink:0}.rdp__entry-input{border:1px solid var(--gray-200);border-radius:8px;padding:.5rem .75rem;font-size:.875rem;color:var(--gray-800);outline:none;transition:border-color var(--transition-fast);min-width:170px}.rdp__entry-input:focus{border-color:var(--primary-color)}.rdp__entry-btn{padding:.5rem 1rem;background:var(--primary-color);color:#fff;border:none;border-radius:8px;font-size:.8rem;font-weight:700;cursor:pointer;transition:all var(--transition-fast);white-space:nowrap}.rdp__entry-btn:disabled{opacity:.5;cursor:not-allowed}.rdp__entry-btn:not(:disabled):hover{background:var(--primary-dark)}.rdp__entry-result{width:100%;margin:.25rem 0 0;padding:.5rem .75rem;background:#10b98114;border-radius:8px;font-size:.8rem;font-weight:600;color:var(--success-color)}.rdp__best-score{padding:.45rem .75rem;border-radius:8px;border:1px solid rgba(91,103,241,.2);background:#5b67f114;color:var(--primary-dark);font-size:.8rem;font-weight:600}.rdp__unlock-result{width:100%;margin-top:.25rem;padding:.6rem .75rem;border-radius:8px;border:1px solid rgba(16,185,129,.25);background:#10b98114}.rdp__unlock-title{margin:0 0 .4rem;font-size:.82rem;font-weight:700;color:var(--success-color)}.rdp__unlock-list{display:flex;flex-wrap:wrap;gap:.4rem}.rdp__unlock-chip{display:inline-flex;align-items:center;border-radius:999px;border:1px solid rgba(16,185,129,.28);background:#fff;color:#065f46;font-size:.74rem;font-weight:600;padding:.2rem .55rem}.rdp__feedback{background:#fff;border:1px solid var(--gray-200);border-radius:16px;padding:1.25rem 1.5rem;display:grid;gap:.85rem}.rdp__feedback-head{display:grid;gap:.2rem}.rdp__feedback-title{margin:0;font-size:.95rem;font-weight:700;color:var(--gray-800)}.rdp__feedback-subtitle{margin:0;font-size:.82rem;color:var(--gray-500)}.rdp__stars{display:flex;gap:.35rem}.rdp__star{border:1px solid #cbd5e1;background:#fff;color:#94a3b8;border-radius:8px;width:2rem;height:2rem;font-size:1.1rem;line-height:1;cursor:pointer}.rdp__star--active{color:#f59e0b;border-color:#fbbf24;background:#fff8e8}.rdp__feedback-field{display:grid;gap:.35rem;font-size:.82rem;color:#334155}.rdp__feedback-field textarea{border:1px solid #cbd5e1;border-radius:8px;padding:.55rem .65rem;resize:vertical;font-size:.875rem}.rdp__counter{justify-self:end;font-size:.72rem;color:#64748b}.rdp__counter--error{color:#b91c1c}.rdp__feedback-message{margin:0;font-size:.82rem;font-weight:600;padding:.45rem .65rem;border-radius:8px}.rdp__feedback-message--success{color:#166534;background:#dcfce7}.rdp__feedback-message--error{color:#991b1b;background:#fee2e2}.rdp__feedback-actions{display:flex;justify-content:flex-end}.rdp__canvas-wrap{background:#fff;border:1px solid var(--gray-200);border-radius:16px;overflow:hidden}.rdp__canvas-head{padding:1.25rem 1.5rem 1rem;border-bottom:1px solid var(--gray-100)}.rdp__canvas-title{font-size:1rem;font-weight:700;color:var(--gray-800);margin:0 0 .2rem}.rdp__canvas-sub{font-size:.8rem;color:var(--gray-500);margin:0}.rdp__canvas{position:relative;background:#f8faff;overflow:visible}.rdp__road-svg{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}.rdp__road-bg{fill:none;stroke:#d4d8e2;stroke-width:28;stroke-linecap:round;stroke-linejoin:round}.rdp__road-prog{fill:none;stroke:var(--primary-color);stroke-width:28;stroke-linecap:round;stroke-linejoin:round;opacity:.28;transition:stroke-dashoffset .8s ease}.rdp__road-dash{fill:none;stroke:#ffffffa6;stroke-width:2.5;stroke-linecap:round;stroke-dasharray:14 12}.rdp__nodes{position:relative;width:100%;height:100%}.rdp__node{position:absolute;transform:translate(-50%,-50%);display:flex;flex-direction:column;align-items:center;z-index:2}.rdp__node-circle{appearance:none;width:44px;height:44px;border-radius:50%;border:3px solid var(--gray-300);background:#fff;display:flex;align-items:center;justify-content:center;font-size:.875rem;font-weight:800;color:var(--gray-600);box-shadow:0 3px 10px #0000001a;position:relative;z-index:2;transition:all var(--transition-base);cursor:default}.rdp__node-circle--clickable{cursor:pointer}.rdp__node-circle:focus-visible{outline:3px solid rgba(91,103,241,.35);outline-offset:3px}.rdp__node-circle:disabled{cursor:not-allowed}.rdp__node--done .rdp__node-circle{background:var(--success-color);border-color:var(--success-color);color:#fff;font-size:1.1rem}.rdp__node--current .rdp__node-circle{background:var(--primary-color);border-color:var(--primary-color);color:#fff;box-shadow:0 4px 16px #5b67f173}.rdp__node--locked .rdp__node-circle{opacity:.5;cursor:not-allowed}.rdp__node-pulse{position:absolute;inset:-6px;border-radius:50%;border:2px solid var(--primary-color);animation:rdp-pulse 2.2s ease-in-out infinite;z-index:1}@keyframes rdp-pulse{0%,to{transform:scale(1);opacity:.45}50%{transform:scale(1.65);opacity:0}}.rdp__node-card{position:absolute;top:50px;left:50%;transform:translate(-50%);width:178px;background:#fff;border:1px solid var(--gray-200);border-radius:12px;padding:.75rem;display:none;flex-direction:column;gap:.4rem;box-shadow:var(--shadow-lg);z-index:10}.rdp__node:hover .rdp__node-card,.rdp__node--current .rdp__node-card{display:flex}.rdp__node--current .rdp__node-card{border-color:var(--primary-color)}.rdp__node-card-top{display:flex;align-items:flex-start;justify-content:space-between;gap:.4rem}.rdp__node-title{font-size:.8rem;font-weight:700;color:var(--gray-800);line-height:1.3;flex:1}.rdp__diff{font-size:.6rem;font-weight:700;padding:.1rem .35rem;border-radius:4px;text-transform:uppercase;white-space:nowrap}.rdp__diff--easy{background:#10b9811f;color:#065f46}.rdp__diff--medium{background:#fbbf2426;color:#92400e}.rdp__diff--hard{background:#ef44441f;color:#991b1b}.rdp__node-meta{display:flex;align-items:center;gap:.4rem;font-size:.72rem;color:var(--gray-500)}.rdp__node-cur-tag{background:#5b67f11a;color:var(--primary-color);font-size:.65rem;font-weight:700;padding:.1rem .3rem;border-radius:4px}.rdp__node-actions{display:flex;gap:.35rem;flex-wrap:wrap}.rdp__node-btn{border:none;border-radius:6px;padding:.3rem .55rem;font-size:.7rem;font-weight:700;cursor:pointer;transition:all var(--transition-fast)}.rdp__node-btn--mat{background:var(--gray-100);color:var(--gray-700)}.rdp__node-btn--mat:hover{background:var(--gray-200)}.rdp__node-btn--finish{background:var(--primary-color);color:#fff}.rdp__node-btn--finish:hover{background:var(--primary-dark)}.rdp__node-done-tag{font-size:.7rem;font-weight:700;color:var(--success-color);background:#10b9811a;padding:.3rem .5rem;border-radius:6px}.rdp__car{position:absolute;z-index:3;transform:translate(-50%);pointer-events:none}.rdp__car-icon{display:block;font-size:2rem;filter:drop-shadow(0 4px 8px rgba(0,0,0,.2))}.rdp__empty{background:#fff;border:1px solid var(--gray-200);border-radius:16px;padding:3rem;text-align:center;color:var(--gray-500)}.rdp__empty span{display:block;font-size:2.5rem;margin-bottom:.75rem}.rdp__materials{background:#fff;border:1px solid var(--gray-200);border-radius:16px;padding:1.25rem 1.5rem}.rdp__materials-hd{display:flex;align-items:center;justify-content:space-between;margin-bottom:1rem;gap:1rem}.rdp__materials-title{font-size:1rem;font-weight:700;color:var(--gray-800);margin:0}.rdp__materials-ctrl{display:flex;align-items:center;gap:.5rem}.rdp__res-select{border:1px solid var(--gray-200);border-radius:8px;padding:.4rem .65rem;font-size:.8rem;color:var(--gray-700);background:#fff;cursor:pointer;outline:none}.rdp__mat-close{width:32px;height:32px;border:1px solid var(--gray-200);border-radius:8px;background:#fff;font-size:.8rem;cursor:pointer;display:flex;align-items:center;justify-content:center;color:var(--gray-500);transition:all var(--transition-fast)}.rdp__mat-close:hover{background:var(--gray-100);color:var(--gray-800)}.rdp__mat-state{text-align:center;color:var(--gray-500);font-size:.875rem;padding:1rem}.rdp__mat-list{display:grid;gap:.5rem}.rdp__mat-item{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.75rem;border:1px solid var(--gray-100);border-radius:10px;background:var(--gray-50);transition:all var(--transition-fast)}.rdp__mat-item:hover{border-color:var(--gray-200);background:#fff}.rdp__mat-name{font-size:.875rem;font-weight:600;color:var(--gray-800)}.rdp__mat-meta{font-size:.75rem;color:var(--gray-500);white-space:nowrap}.rdp__fireworks{position:fixed;inset:0;pointer-events:none;z-index:9999;overflow:hidden}.pyro{position:absolute;width:6px;height:6px}.pyro--1{left:20%;top:18%}.pyro--2{left:78%;top:22%}.pyro--3{left:30%;top:65%}.pyro--4{left:72%;top:70%}.pyro>.before,.pyro>.after{position:absolute;width:5px;height:5px;border-radius:50%;box-shadow:-40px -120px #00f6ff,35px -95px #ff006e,85px -70px #ffb300,-80px -45px #00ff84,110px -35px #6200ff,-20px -10px #ff4000,65px -5px #9f0,-95px -85px #0df,12px -130px #ff009d,-60px -18px #1e00ff;animation:rdp-bang 1s ease-out infinite backwards,rdp-gravity 1s ease-in infinite backwards}.pyro>.after{animation-delay:.55s,.55s;animation-duration:1.2s,1.2s}@keyframes rdp-bang{0%{box-shadow:0 0 #fff,0 0 #fff,0 0 #fff,0 0 #fff,0 0 #fff,0 0 #fff,0 0 #fff,0 0 #fff,0 0 #fff,0 0 #fff}}@keyframes rdp-gravity{to{transform:translateY(90px);opacity:0}}.srp{max-width:1280px;margin:0 auto;padding-bottom:72px}.srp__header{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:1rem;margin-bottom:1.5rem}.srp__title{font-family:var(--font-heading);font-size:1.625rem;font-weight:800;color:var(--gray-900);margin:0 0 .2rem}.srp__subtitle{font-size:.875rem;color:var(--gray-500);margin:0}.srp__stats{display:flex;gap:1.75rem}.srp__stat{text-align:center}.srp__stat-num{display:block;font-size:1.5rem;font-weight:800;color:var(--primary-color);line-height:1;margin-bottom:.15rem}.srp__stat-lbl{font-size:.72rem;color:var(--gray-500);font-weight:500;text-transform:uppercase;letter-spacing:.04em}.srp__body{display:grid;grid-template-columns:272px 1fr;gap:1.5rem;align-items:start}.srp__sidebar{background:#fff;border:1px solid var(--gray-200);border-radius:16px;overflow:hidden;position:sticky;top:1rem}.srp__sidebar-header{display:flex;align-items:center;justify-content:space-between;padding:.875rem 1rem;border-bottom:1px solid var(--gray-100)}.srp__sidebar-title{font-size:.8rem;font-weight:700;color:var(--gray-600);text-transform:uppercase;letter-spacing:.06em}.srp__sidebar-count{background:var(--gray-100);color:var(--gray-600);font-size:.72rem;font-weight:700;padding:.15rem .5rem;border-radius:99px}.srp__list{padding:.5rem;display:flex;flex-direction:column;gap:.25rem;max-height:calc(100vh - 220px);overflow-y:auto}.srp__rm-card{width:100%;background:transparent;border:1px solid transparent;border-radius:10px;padding:.7rem .75rem;text-align:left;cursor:pointer;display:flex;flex-direction:column;gap:.45rem;transition:background var(--transition-fast),border-color var(--transition-fast)}.srp__rm-card:hover{background:var(--gray-50);border-color:var(--gray-200)}.srp__rm-card--active{background:#5b67f10f!important;border-color:var(--primary-color)!important}.srp__rm-card-row{display:flex;align-items:flex-start;gap:.6rem}.srp__rm-icon{width:30px;height:30px;border-radius:7px;background:var(--gray-100);color:var(--gray-600);display:flex;align-items:center;justify-content:center;font-size:.8rem;font-weight:800;flex-shrink:0;transition:background var(--transition-fast),color var(--transition-fast)}.srp__rm-card--active .srp__rm-icon{background:var(--primary-color);color:#fff}.srp__rm-name{font-size:.825rem;font-weight:600;color:var(--gray-800);line-height:1.3}.srp__rm-meta{font-size:.7rem;color:var(--gray-500);margin-top:.1rem}.srp__rm-progress{height:3px;background:var(--gray-100);border-radius:99px;overflow:hidden}.srp__rm-progress-fill{height:100%;background:var(--primary-color);border-radius:99px;transition:width .5s ease}.srp__rm-footer{display:flex;align-items:center;justify-content:space-between}.srp__rm-pct{font-size:.7rem;font-weight:700;color:var(--primary-color)}.srp__badge{font-size:.62rem;font-weight:700;padding:.12rem .4rem;border-radius:99px;text-transform:uppercase;letter-spacing:.04em}.srp__badge--in_progress{background:#5b67f11f;color:var(--primary-color)}.srp__badge--completed{background:#10b9811f;color:#065f46}.srp__badge--generated{background:#fbbf2426;color:#92400e}.srp__badge--archived{background:var(--gray-100);color:var(--gray-500)}.srp__skeletons{display:flex;flex-direction:column;gap:.5rem;padding:.75rem}.srp__skeleton{height:72px;border-radius:10px;background:linear-gradient(90deg,var(--gray-100) 25%,var(--gray-50) 50%,var(--gray-100) 75%);background-size:200% 100%;animation:srp-shimmer 1.4s infinite}.srp__skeleton--tall{height:100px}@keyframes srp-shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.srp__main{display:flex;flex-direction:column;gap:1.25rem}.srp__overview{background:#fff;border:1px solid var(--gray-200);border-radius:16px;padding:1.25rem 1.5rem;display:flex;align-items:flex-start;justify-content:space-between;gap:1.5rem;flex-wrap:wrap}.srp__overview-name{font-size:1.1rem;font-weight:700;color:var(--gray-900);margin:0 0 .25rem}.srp__overview-desc{font-size:.85rem;color:var(--gray-500);margin:0;max-width:360px;line-height:1.5}.srp__overview-right{display:flex;flex-direction:column;align-items:flex-end;gap:.5rem;min-width:190px}.srp__overview-pct{font-size:1.75rem;font-weight:800;color:var(--primary-color);line-height:1}.srp__overview-bar{height:7px;width:190px;background:var(--gray-100);border-radius:99px;overflow:hidden}.srp__overview-fill{height:100%;background:var(--primary-color);border-radius:99px;transition:width .6s ease}.srp__overview-counts{font-size:.75rem;color:var(--gray-500)}.srp__detail-link{display:inline-flex;align-items:center;font-size:.8rem;font-weight:600;color:var(--primary-color);text-decoration:none;padding:.4rem .875rem;border:1.5px solid var(--primary-color);border-radius:8px;transition:all var(--transition-fast);white-space:nowrap}.srp__detail-link:hover{background:var(--primary-color);color:#fff}.srp__congrats{display:flex;align-items:center;gap:1rem;background:#fff;border:1px solid var(--gray-200);border-radius:16px;padding:1.25rem 1.5rem}.srp__congrats span{font-size:2.25rem;flex-shrink:0}.srp__congrats h3{font-size:1rem;font-weight:700;color:var(--gray-900);margin:0 0 .25rem}.srp__congrats p{font-size:.85rem;color:var(--gray-500);margin:0}.srp__steps{background:#fff;border:1px solid var(--gray-200);border-radius:16px;padding:1.25rem 1.5rem;display:flex;flex-direction:column}.srp__step{display:flex;gap:1rem;position:relative;padding-bottom:1.25rem}.srp__step--last{padding-bottom:0}.srp__step-line{position:absolute;left:19px;top:42px;bottom:0;width:2px;background:var(--gray-200);z-index:0}.srp__step-line--done{background:var(--success-color)}.srp__step-indicator{position:relative;flex-shrink:0;width:40px;height:40px;z-index:1}.srp__step-dot{width:40px;height:40px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:.875rem;font-weight:700;background:var(--gray-100);color:var(--gray-500);border:2px solid var(--gray-200);transition:all var(--transition-base)}.srp__step--completed .srp__step-dot{background:var(--success-color);border-color:var(--success-color);color:#fff;font-size:1.05rem}.srp__step--current .srp__step-dot{background:var(--primary-color);border-color:var(--primary-color);color:#fff;font-size:.6rem;box-shadow:0 4px 12px #5b67f159}.srp__step--locked .srp__step-dot{opacity:.45}.srp__step-pulse{position:absolute;inset:-5px;border-radius:50%;border:2px solid var(--primary-color);opacity:.4;animation:srp-pulse 2.2s ease-in-out infinite}@keyframes srp-pulse{0%,to{transform:scale(1);opacity:.4}50%{transform:scale(1.5);opacity:0}}.srp__step-body{flex:1;padding-top:.5rem}.srp__step-header{display:flex;align-items:center;gap:.6rem;flex-wrap:wrap;margin-bottom:.3rem}.srp__step-title{font-size:.925rem;font-weight:600;color:var(--gray-800);margin:0;flex:1}.srp__step--current .srp__step-title{color:var(--gray-900);font-weight:700}.srp__step--locked .srp__step-title{color:var(--gray-400)}.srp__step--completed .srp__step-title{color:var(--gray-600);text-decoration:line-through;text-decoration-color:var(--gray-300)}.srp__step-desc{font-size:.8rem;color:var(--gray-500);margin:0 0 .45rem;line-height:1.5}.srp__step-meta{display:flex;gap:1rem;font-size:.75rem;color:var(--gray-500);font-weight:500}.srp__diff{font-size:.62rem;font-weight:700;padding:.12rem .38rem;border-radius:4px;text-transform:uppercase;letter-spacing:.04em;white-space:nowrap}.srp__diff--easy{background:#10b9811f;color:#065f46}.srp__diff--medium{background:#fbbf2426;color:#92400e}.srp__diff--hard{background:#ef44441f;color:#991b1b}.srp__continue-btn{display:inline-flex;align-items:center;margin-top:.6rem;padding:.42rem .875rem;background:var(--primary-color);color:#fff;font-size:.8rem;font-weight:600;border-radius:8px;text-decoration:none;transition:all var(--transition-fast)}.srp__continue-btn:hover{background:var(--primary-dark);transform:translate(2px)}.srp__empty{background:#fff;border:1px solid var(--gray-200);border-radius:16px;padding:3rem 2rem;text-align:center}.srp__empty-icon{display:block;font-size:3rem;margin-bottom:.875rem}.srp__empty h3{font-size:1.05rem;font-weight:700;color:var(--gray-800);margin:0 0 .4rem}.srp__empty p,.srp__empty-text{color:var(--gray-500);font-size:.875rem;margin:0}.srp__onboarding{padding:1.5rem 1rem;text-align:center;color:var(--gray-500);font-size:.8rem}.srp__onboarding span{display:block;font-size:1.75rem;margin-bottom:.4rem}.srp__onboarding p{margin:0}.srp__sticky{position:fixed;bottom:0;left:0;right:0;background:#fffffff2;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-top:1px solid var(--gray-200);padding:.875rem 1.5rem;z-index:var(--z-sticky);box-shadow:0 -4px 24px #00000012}.srp__sticky-inner{max-width:1280px;margin:0 auto;display:flex;align-items:center;justify-content:space-between;gap:1rem}.srp__sticky-text{display:flex;flex-direction:column;gap:.1rem}.srp__sticky-label{font-size:.72rem;font-weight:500;color:var(--gray-500);text-transform:uppercase;letter-spacing:.04em}.srp__sticky-topic{font-size:.925rem;font-weight:600;color:var(--gray-800)}.srp__sticky-btn{padding:.6rem 1.25rem;background:var(--primary-color);color:#fff;font-size:.875rem;font-weight:700;border-radius:8px;text-decoration:none;white-space:nowrap;transition:all var(--transition-fast)}.srp__sticky-btn:hover{background:var(--primary-dark)}.module-layout-container{--mod-slate-25: #f8fbff;--mod-slate-50: #f3f7fd;--mod-slate-100: #e8eef8;--mod-slate-200: #d6e0ee;--mod-slate-300: #b7c8df;--mod-slate-500: #60748f;--mod-slate-700: #24364b;--mod-ink: #142235;--mod-primary: #1f5eff;--mod-primary-700: #184ee0;--mod-danger: #c63f4d;--mod-warn: #a36a12;--mod-success: #0d845d}.module-layout-container .module-page{padding:1.6rem;width:100%;max-width:1220px;margin:0 auto;display:flex;flex-direction:column;gap:1.1rem}.module-layout-container .page-header{display:flex;justify-content:space-between;align-items:flex-start;gap:1.25rem;flex-wrap:wrap;padding:1rem 1.15rem;border:1px solid var(--mod-slate-100);border-radius:14px;background:linear-gradient(135deg,#f8fbff,#eef5ff);box-shadow:0 6px 16px #1a38630f}.module-layout-container .page-header h2{margin:0;color:var(--mod-ink);font-size:1.95rem;line-height:1.15;letter-spacing:-.02em;font-weight:800}.module-layout-container .page-header p{color:var(--mod-slate-500);margin-top:.5rem;max-width:720px;font-size:.98rem}.module-layout-container .toolbar{background:#fffffff2;border:1px solid var(--mod-slate-100);border-radius:14px;padding:.7rem;display:flex;flex-wrap:wrap;align-items:center;gap:.7rem;box-shadow:0 4px 12px #10233e0d}.module-layout-container .row{display:flex;align-items:center;gap:.5rem}.module-layout-container .input,.module-layout-container .select,.module-layout-container .textarea{width:100%;border:1px solid var(--mod-slate-200);border-radius:10px;padding:.62rem .78rem;font-size:.92rem;color:var(--mod-ink);background:#fff;transition:border-color .18s ease,box-shadow .18s ease,background-color .18s ease}.module-layout-container .textarea{resize:vertical}.module-layout-container .input:focus,.module-layout-container .select:focus,.module-layout-container .textarea:focus{outline:none;border-color:#6e92f5;box-shadow:0 0 0 3px #1f5eff1f}.module-layout-container .btn{border:1px solid var(--mod-primary);border-radius:11px;background:var(--mod-primary);color:#fff;padding:.57rem .9rem;font-size:.88rem;font-weight:700;letter-spacing:.01em;display:inline-flex;align-items:center;gap:.38rem;cursor:pointer;transition:transform .14s ease,background-color .18s ease,border-color .18s ease,box-shadow .18s ease;box-shadow:0 6px 14px #1f5eff33}.module-layout-container .btn:hover{background:var(--mod-primary-700);border-color:var(--mod-primary-700);transform:translateY(-1px)}.module-layout-container .btn.secondary{background:#fff;color:var(--mod-slate-700);border-color:var(--mod-slate-200);box-shadow:none}.module-layout-container .btn.secondary:hover{background:var(--mod-slate-50);border-color:var(--mod-slate-300)}.module-layout-container .btn.warn{background:#fff7ea;color:var(--mod-warn);border-color:#f2d194;box-shadow:none}.module-layout-container .btn.warn:hover{background:#ffeed0}.module-layout-container .btn.danger{background:#fff4f4;color:var(--mod-danger);border-color:#f2c4c9;box-shadow:none}.module-layout-container .btn.danger:hover{background:#ffe8e9}.module-layout-container .btn:disabled,.module-layout-container .btn.secondary:disabled,.module-layout-container .btn.warn:disabled,.module-layout-container .btn.danger:disabled{opacity:.56;cursor:not-allowed;transform:none;box-shadow:none}.module-layout-container .pill-group{display:inline-flex;gap:.45rem;flex-wrap:wrap}.module-layout-container .pill-btn{border:1px solid #d8e2f0;background:#fff;color:var(--mod-slate-700);border-radius:10px;padding:.47rem .85rem;font-size:.83rem;font-weight:700;cursor:pointer;transition:all .18s ease}.module-layout-container .pill-btn.active{color:#fff;background:linear-gradient(135deg,var(--mod-primary) 0%,#2f74ff 100%);border-color:var(--mod-primary);box-shadow:0 6px 12px #1f5eff3d}.module-layout-container .pill-btn:hover{border-color:#b8cae8}.module-layout-container .grid-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:1.05rem}.module-layout-container .data-card,.module-layout-container .hero-card,.module-layout-container .stat-card{background:#fff;border:1px solid var(--mod-slate-100);border-radius:14px;box-shadow:0 8px 20px #152c4a0f}.module-layout-container .data-card{padding:1rem 1rem .95rem;display:flex;flex-direction:column;gap:.78rem;transition:transform .17s ease,box-shadow .17s ease,border-color .17s ease}.module-layout-container .data-card:hover{transform:translateY(-2px);border-color:#cfdcf0;box-shadow:0 14px 24px #1931521a}.module-layout-container .data-card h3,.module-layout-container .hero-card h2{margin:0;color:var(--mod-ink);letter-spacing:-.01em}.module-layout-container .data-card h3{font-size:1.08rem;line-height:1.3}.module-layout-container .hero-card{padding:1.25rem 1.35rem}.module-layout-container .hero-kicker{color:#4f6790;font-size:.8rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em;margin-bottom:.35rem}.module-layout-container .stats-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:.8rem}.module-layout-container .stat-card{padding:.95rem 1rem}.module-layout-container .stat-card p{font-size:.8rem;color:var(--mod-slate-500);text-transform:uppercase;letter-spacing:.05em;font-weight:700}.module-layout-container .stat-card h3{margin-top:.34rem;margin-bottom:.25rem;color:var(--mod-ink);font-size:1.4rem}.module-layout-container .stat-card span{color:var(--mod-slate-500);font-size:.83rem}.module-layout-container .badge{display:inline-flex;align-items:center;border-radius:9999px;padding:.24rem .68rem;font-size:.71rem;font-weight:700;letter-spacing:.03em;border:1px solid #e4ebf5}.module-layout-container .badge.draft{background:#eef3fa;color:#405470}.module-layout-container .badge.approved,.module-layout-container .badge.published{background:#e2f8ef;color:var(--mod-success)}.module-layout-container .badge.locked,.module-layout-container .badge.closed,.module-layout-container .badge.archived{background:#fff1f1;color:#a43744}.module-layout-container .table-wrap{border:1px solid var(--mod-slate-100);border-radius:14px;overflow:auto;background:#fff;box-shadow:0 8px 20px #1329470f}.module-layout-container .table{width:100%;border-collapse:collapse}.module-layout-container .table th,.module-layout-container .table td{border-bottom:1px solid #edf2f9;text-align:left;padding:.74rem .8rem;font-size:.88rem}.module-layout-container .table th{font-size:.73rem;text-transform:uppercase;color:#5f7493;letter-spacing:.05em}.module-layout-container .table tbody tr:last-child td{border-bottom:none}.module-layout-container .matrix-level-header{text-align:center}.module-layout-container .matrix-level-header--nb{background:#f3f8ff}.module-layout-container .matrix-level-header--th{background:#eaf4ff}.module-layout-container .matrix-level-header--vd{background:#dcecff}.module-layout-container .matrix-level-header--vdc{background:#d0e4ff}.module-layout-container .matrix-cell{text-align:center;min-width:86px}.module-layout-container .matrix-cell__count{font-weight:700;color:var(--mod-ink)}.module-layout-container .matrix-cell__point{font-size:.78rem;color:var(--mod-slate-500)}.module-layout-container .matrix-cell--empty{background:#fff6f6;color:#b05a64}.module-layout-container .matrix-chapter-row td{background:#f6f9ff;color:#365079}.module-layout-container .matrix-total-row td{background:#fbfcff}.module-layout-container .matrix-grand-total-row td{background:#edf4ff}.module-layout-container .empty{border:1px dashed #c8d8ee;border-radius:14px;padding:2rem 1rem;text-align:center;color:var(--mod-slate-500);background:linear-gradient(180deg,#fcfdff,#f7faff)}.module-layout-container .muted{color:var(--mod-slate-500)}.module-layout-container .modal-layer{position:fixed;inset:0;z-index:1200;background:#0c1a2e6b;display:flex;align-items:center;justify-content:center;padding:1rem}.module-layout-container .modal-card{width:min(920px,100%);max-height:90vh;overflow:auto;background:#fff;border-radius:16px;border:1px solid #dfe8f5;box-shadow:0 22px 42px #0e1d3438}.module-layout-container .modal-header{padding:1rem 1.25rem;border-bottom:1px solid #edf2f9;display:flex;justify-content:space-between;align-items:center;gap:.75rem;background:linear-gradient(180deg,#fbfdff,#f6faff)}.module-layout-container .modal-body{padding:1rem 1.25rem;display:flex;flex-direction:column;gap:.75rem}.module-layout-container .modal-footer{padding:.9rem 1.25rem;border-top:1px solid #edf2f9;display:flex;justify-content:flex-end;gap:.6rem}.module-layout-container .form-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:.6rem}.module-layout-container .icon-btn{border:1px solid #d5e0ef;background:#fff;color:#3e5471;border-radius:8px;width:34px;height:34px;display:inline-flex;align-items:center;justify-content:center;cursor:pointer}.module-layout-container .icon-btn:hover{background:#f3f8ff}@media(max-width:768px){.module-layout-container .module-page{padding:1rem}.module-layout-container .page-header{padding:.9rem}.module-layout-container .page-header h2{font-size:1.55rem}.module-layout-container .toolbar{padding:.62rem}.module-layout-container .grid-cards{grid-template-columns:1fr}}.module-layout-container .preview-box{margin-top:.5rem;padding:.75rem;border:1px dashed var(--mod-slate-200);border-radius:8px;background:var(--mod-slate-25);font-size:.95rem;color:var(--mod-ink);min-height:1.5rem}.search-results-page{max-width:1400px;margin:0 auto}.search-header{margin-bottom:2rem}.search-bar-large{display:flex;align-items:center;gap:1rem;background:#fff;border-radius:16px;padding:.75rem 1.5rem;box-shadow:0 4px 16px #0000001a}.search-bar-large .search-icon{position:static;left:auto;right:auto;top:auto;transform:none;font-size:1.5rem;color:var(--gray-600);flex-shrink:0}.search-bar-large input{flex:1;border:none;font-size:1.125rem;color:var(--gray-900);outline:none}.search-bar-large input::placeholder{color:var(--gray-500)}.search-btn{padding:.75rem 2rem;background:var(--gradient-primary);color:#fff;border:none;border-radius:10px;font-size:1rem;font-weight:700;cursor:pointer;transition:all .2s;flex-shrink:0}.search-btn:hover{transform:translateY(-2px);box-shadow:0 4px 12px #667eea4d}.results-summary{display:flex;justify-content:space-between;align-items:center;margin-bottom:1.5rem}.results-title{font-size:1.5rem;font-weight:700;color:var(--gray-900);margin:0}.results-title .highlight{color:var(--primary-color)}.results-title .query{color:var(--primary-color);font-style:italic}.sort-filter select{padding:.625rem 1rem;border:2px solid var(--gray-300);border-radius:8px;font-size:.9375rem;font-weight:600;cursor:pointer}.sort-filter select:focus{outline:none;border-color:var(--primary-color)}.category-filters{display:flex;gap:.75rem;margin-bottom:2rem;overflow-x:auto;padding-bottom:.5rem}.category-filters::-webkit-scrollbar{height:4px}.category-filters::-webkit-scrollbar-thumb{background:var(--gray-300);border-radius:2px}.category-btn{padding:.75rem 1.5rem;border:2px solid var(--gray-300);background:#fff;border-radius:12px;font-size:.9375rem;font-weight:600;color:var(--gray-700);cursor:pointer;transition:all .2s;white-space:nowrap;flex-shrink:0}.category-btn:hover{border-color:var(--primary-color);transform:translateY(-2px)}.category-btn.active{background:var(--gradient-primary);color:#fff;border-color:transparent}.results-container{margin-bottom:2rem}.results-list{display:flex;flex-direction:column;gap:1.25rem}.result-card{background:#fff;border-radius:16px;padding:1.5rem;box-shadow:0 2px 8px #0000001a;display:grid;grid-template-columns:auto 1fr auto;gap:1.5rem;align-items:center;transition:all .2s;border:2px solid transparent}.result-card:hover{transform:translateY(-2px);box-shadow:0 4px 16px #00000026;border-color:var(--primary-color)}.result-thumbnail{width:80px;height:80px;border-radius:12px;background:var(--gray-100);display:flex;align-items:center;justify-content:center;font-size:2.5rem;flex-shrink:0}.result-card.type-course .result-thumbnail{background:linear-gradient(135deg,#667eea1a,#764ba21a)}.result-card.type-lesson .result-thumbnail{background:linear-gradient(135deg,#43e97b1a,#38f9d71a)}.result-card.type-assignment .result-thumbnail{background:linear-gradient(135deg,#ffc7001a,#ff57221a)}.result-card.type-material .result-thumbnail{background:linear-gradient(135deg,#f093fb1a,#f5576c1a)}.result-content{flex:1;min-width:0}.result-type-badge{display:inline-block;padding:.25rem .75rem;background:var(--gray-100);border-radius:12px;font-size:.813rem;font-weight:600;color:var(--gray-700);margin-bottom:.5rem}.result-title{font-size:1.25rem;font-weight:700;color:var(--gray-900);margin:0 0 .5rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.result-description{font-size:.9375rem;color:var(--gray-600);line-height:1.6;margin:0 0 .75rem;display:-webkit-box;-webkit-line-clamp:2;line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.result-metadata{font-size:.813rem;color:var(--gray-500);font-weight:600}.result-actions{display:flex;flex-direction:column;gap:.5rem}.action-btn{padding:.625rem 1.25rem;border:none;border-radius:8px;font-size:.875rem;font-weight:600;cursor:pointer;transition:all .2s;white-space:nowrap}.action-btn.primary{background:var(--gradient-primary);color:#fff}.action-btn.primary:hover{transform:translateY(-2px);box-shadow:0 4px 12px #667eea4d}.action-btn.secondary{background:#fff;border:2px solid var(--gray-300);color:var(--gray-700)}.action-btn.secondary:hover{border-color:var(--warning-color);color:var(--warning-color)}.empty-state{text-align:center;padding:4rem 2rem;background:#fff;border-radius:16px;box-shadow:0 2px 8px #0000001a}.empty-icon{font-size:5rem;margin-bottom:1rem;opacity:.5}.empty-state h3{font-size:1.5rem;font-weight:700;color:var(--gray-900);margin:0 0 .5rem}.empty-state p{font-size:1rem;color:var(--gray-600);margin:0}.pagination{display:flex;justify-content:center;align-items:center;gap:.5rem;margin-bottom:2rem}.pagination-btn{padding:.625rem 1rem;border:2px solid var(--gray-300);background:#fff;border-radius:8px;font-size:.875rem;font-weight:600;cursor:pointer;transition:all .2s}.pagination-btn:hover{border-color:var(--primary-color);background:#667eea0d}.pagination-pages{display:flex;gap:.25rem;align-items:center}.pagination-page{width:36px;height:36px;border:2px solid var(--gray-300);background:#fff;border-radius:8px;font-size:.875rem;font-weight:600;cursor:pointer;transition:all .2s}.pagination-page:hover{border-color:var(--primary-color)}.pagination-page.active{background:var(--gradient-primary);color:#fff;border-color:transparent}.search-suggestions{background:#fff;border-radius:16px;padding:2rem;box-shadow:0 2px 8px #0000001a}.search-suggestions h3{font-size:1.125rem;font-weight:700;color:var(--gray-900);margin:0 0 1rem}.suggestions-tags{display:flex;flex-wrap:wrap;gap:.75rem}.tag{padding:.5rem 1rem;background:var(--gray-100);border:2px solid var(--gray-300);border-radius:20px;font-size:.875rem;font-weight:600;color:var(--gray-700);cursor:pointer;transition:all .2s}.tag:hover{background:var(--primary-color);color:#fff;border-color:var(--primary-color)}@media(max-width:1024px){.result-card{grid-template-columns:auto 1fr;gap:1rem}.result-actions{grid-column:1 / -1;flex-direction:row}.action-btn{flex:1}}@media(max-width:768px){.search-bar-large{flex-direction:column;align-items:stretch}.search-btn{width:100%}.results-summary{flex-direction:column;align-items:flex-start;gap:1rem}.category-filters{flex-wrap:nowrap;overflow-x:auto}.result-card{grid-template-columns:1fr;text-align:center}.result-thumbnail{margin:0 auto}.result-title{white-space:normal}.result-actions{flex-direction:column}}.ps-page{max-width:1200px;margin:0 auto;padding:2rem 1.5rem 5rem}.ps-header{display:flex;align-items:flex-start;justify-content:space-between;gap:1.5rem;margin-bottom:2.5rem}.ps-header__title{font-family:var(--font-heading);font-size:1.625rem;font-weight:700;color:var(--gray-900);margin:0 0 .375rem;letter-spacing:-.025em;line-height:1.2}.ps-header__subtitle{font-size:.9375rem;color:var(--gray-500);margin:0;line-height:1.5}.ps-header__meta{display:flex;align-items:center;gap:.875rem;flex-shrink:0;padding-top:.25rem}.ps-header__joined{display:flex;align-items:center;gap:.35rem;font-size:.8125rem;color:var(--gray-400)}.ps-layout{display:grid;grid-template-columns:256px 1fr;gap:1.75rem;align-items:start}.ps-nav{background:#fff;border:1px solid var(--gray-200);border-radius:var(--radius-2xl);padding:.5rem;box-shadow:var(--shadow-sm);position:sticky;top:5.25rem;display:flex;flex-direction:column}.ps-nav__items{display:flex;flex-direction:column;gap:2px}.ps-nav__btn{position:relative;display:flex;align-items:center;gap:.75rem;padding:.6875rem .875rem;border:none;background:transparent;border-radius:var(--radius-lg);cursor:pointer;color:var(--gray-600);font-size:.875rem;font-weight:500;font-family:var(--font-heading);text-align:left;width:100%;transition:background var(--transition-fast),color var(--transition-fast)}.ps-nav__btn:hover{background:var(--gray-50);color:var(--gray-900)}.ps-nav__btn--active{background:#eef2ff;color:var(--primary-color);font-weight:600}.ps-nav__icon{display:flex;align-items:center;justify-content:center;width:30px;height:30px;border-radius:var(--radius-md);flex-shrink:0;transition:background var(--transition-fast)}.ps-nav__btn--active .ps-nav__icon{background:#c7d2fe}.ps-nav__label{flex:1;line-height:1.3}.ps-nav__dot{width:6px;height:6px;border-radius:50%;background:var(--primary-color);flex-shrink:0}.ps-nav__id-card{display:flex;align-items:center;gap:.75rem;margin-top:.625rem;padding:.875rem .75rem .625rem;border-top:1px solid var(--gray-100)}.ps-mini-avatar{width:34px;height:34px;border-radius:50%;overflow:hidden;background:linear-gradient(135deg,var(--primary-color),var(--secondary-color));display:flex;align-items:center;justify-content:center;flex-shrink:0;color:#fff;font-size:.75rem;font-weight:700;font-family:var(--font-heading)}.ps-mini-avatar img{width:100%;height:100%;object-fit:cover}.ps-nav__id-info{display:flex;flex-direction:column;min-width:0;gap:1px}.ps-nav__id-name{font-size:.8125rem;font-weight:600;color:var(--gray-800);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ps-nav__id-roles{font-size:.74rem;color:var(--gray-400)}.ps-main{min-width:0}.ps-tab{display:flex;flex-direction:column;gap:1.125rem}.ps-card{background:#fff;border:1px solid var(--gray-200);border-radius:var(--radius-2xl);box-shadow:var(--shadow-sm);overflow:hidden;transition:transform var(--transition-base),box-shadow var(--transition-base)}.ps-card:hover{transform:translateY(-2px);box-shadow:var(--shadow-md)}.ps-card__header{padding:1.375rem 1.625rem;border-bottom:1px solid var(--gray-100)}.ps-card__title{font-size:.9375rem;font-weight:650;color:var(--gray-900);margin:0 0 .3rem;letter-spacing:-.015em;font-family:var(--font-heading)}.ps-card__desc{font-size:.84375rem;color:var(--gray-500);margin:0;line-height:1.55}.ps-card__body{padding:1.625rem}.ps-card__actions{padding-top:1.375rem;display:flex;gap:.75rem}.ps-form-grid{display:grid;grid-template-columns:1fr 1fr;gap:1.125rem}.ps-form-stack{display:flex;flex-direction:column;gap:1.125rem}.ps-skeleton-field{display:flex;flex-direction:column;gap:6px;margin-bottom:1.25rem}.ps-field{display:flex;flex-direction:column;gap:.375rem}.ps-field__label{font-size:.7375rem;font-weight:700;color:var(--gray-700);letter-spacing:.045em;text-transform:uppercase;font-family:var(--font-heading)}.ps-field__required{color:var(--error-color);margin-left:.2rem}.ps-field__wrap{position:relative;display:flex;align-items:center}.ps-field__icon{position:absolute;left:.8125rem;color:var(--gray-400);display:flex;align-items:center;pointer-events:none;z-index:1}.ps-field__right-el{position:absolute;right:.5rem;display:flex;align-items:center}.ps-field__input,.ps-field__select{width:100%;padding:.6875rem .875rem;font-size:.9375rem;color:var(--gray-900);background:var(--gray-50);border:1.5px solid var(--gray-200);border-radius:.75rem;outline:none;transition:border-color var(--transition-fast),box-shadow var(--transition-fast),background var(--transition-fast);font-family:var(--font-heading);appearance:none;-webkit-appearance:none}.ps-field__input--icon{padding-left:2.4375rem}.ps-field__input--right{padding-right:2.75rem}.ps-field__input:focus,.ps-field__select:focus{border-color:var(--primary-color);background:#fff;box-shadow:0 0 0 3px #5b67f124}.ps-field__input:hover:not(:focus):not([readonly]):not(:disabled),.ps-field__select:hover:not(:focus):not(:disabled){border-color:var(--gray-300)}.ps-field--error .ps-field__input,.ps-field--error .ps-field__select{border-color:var(--error-color);background:#fff8f8}.ps-field--error .ps-field__input:focus{box-shadow:0 0 0 3px #ef44441f}.ps-field--readonly .ps-field__input{background:var(--gray-100);color:var(--gray-500);cursor:default;border-style:dashed}.ps-field__error{display:flex;align-items:center;gap:.3rem;font-size:.8rem;color:var(--error-color);margin:0;line-height:1.4}.ps-field__hint{font-size:.8rem;color:var(--gray-400);margin:0;line-height:1.4}.ps-field__select{cursor:pointer;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%239CA3AF' stroke-width='2'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right .875rem center;padding-right:2.5rem}.ps-field__select--inline{width:auto;min-width:150px}.ps-eye-btn{background:none;border:none;padding:.375rem;cursor:pointer;color:var(--gray-400);display:flex;align-items:center;border-radius:var(--radius-sm);transition:color var(--transition-fast)}.ps-eye-btn:hover{color:var(--gray-700)}.ps-avatar-row{display:flex;align-items:center;gap:1.75rem;margin-bottom:1.875rem;padding-bottom:1.75rem;border-bottom:1px solid var(--gray-100)}.ps-avatar{position:relative;width:92px;height:92px;border-radius:50%;overflow:hidden;cursor:pointer;flex-shrink:0;background:linear-gradient(135deg,var(--primary-color),var(--secondary-color));box-shadow:0 0 0 4px #eef2ff,0 0 0 5px #c7d2fe;border:none;padding:0;transition:box-shadow var(--transition-base)}.ps-avatar:hover{box-shadow:0 0 0 4px #c7d2fe,0 0 0 5px var(--primary-color)}.ps-avatar__img{width:100%;height:100%;object-fit:cover;display:block}.ps-avatar__initials{display:flex;align-items:center;justify-content:center;width:100%;height:100%;color:#fff;font-size:1.625rem;font-weight:700;letter-spacing:-.02em;font-family:var(--font-heading)}.ps-avatar__overlay{position:absolute;inset:0;background:#1118278c;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.25rem;color:#fff;font-size:.725rem;font-weight:600;opacity:0;transition:opacity var(--transition-fast);-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.ps-avatar:hover .ps-avatar__overlay{opacity:1}.ps-avatar-meta{display:flex;flex-direction:column;gap:.25rem}.ps-avatar-meta__name{font-size:1rem;font-weight:650;color:var(--gray-900);margin:0;font-family:var(--font-heading)}.ps-avatar-meta__username{font-size:.875rem;color:var(--gray-500);margin:0;font-family:Source Code Pro,monospace}.ps-avatar-meta__hint{display:flex;align-items:center;gap:.3rem;font-size:.79375rem;color:var(--gray-400);margin:.3rem 0 0;line-height:1.4}.ps-avatar-edit{display:flex;align-items:flex-end;gap:.75rem;padding:1rem 1.125rem;background:#f5f7ff;border:1px solid #c7d2fe;border-radius:var(--radius-lg);margin-bottom:1.5rem}.ps-avatar-edit .ps-field{flex:1}.ps-btn{display:inline-flex;align-items:center;gap:.4375rem;padding:.625rem 1.1875rem;border-radius:var(--radius-lg);font-size:.875rem;font-weight:600;cursor:pointer;border:1.5px solid transparent;transition:all var(--transition-fast);white-space:nowrap;line-height:1;letter-spacing:-.01em;font-family:var(--font-heading)}.ps-btn:disabled{opacity:.55;cursor:not-allowed}.ps-btn--primary{background:var(--primary-color);color:#fff;border-color:var(--primary-color);box-shadow:0 1px 3px #5b67f147}.ps-btn--primary:hover:not(:disabled){background:var(--primary-dark);border-color:var(--primary-dark);box-shadow:0 4px 14px #5b67f161;transform:translateY(-1px)}.ps-btn--primary:active:not(:disabled){transform:translateY(0);box-shadow:0 1px 4px #5b67f147}.ps-btn--ghost{background:transparent;color:var(--gray-600);border-color:var(--gray-200)}.ps-btn--ghost:hover:not(:disabled){background:var(--gray-50);border-color:var(--gray-300);color:var(--gray-800)}.ps-btn--sm{padding:.4375rem .8125rem;font-size:.8125rem}@keyframes ps-spin{to{transform:rotate(360deg)}}.ps-spin{animation:ps-spin .65s linear infinite}.ps-role-section{display:flex;flex-direction:column;gap:.5rem;margin-top:1.375rem;padding-top:1.375rem;border-top:1px solid var(--gray-100)}.ps-roles{display:flex;gap:.5rem;flex-wrap:wrap}.ps-role-chip{display:inline-flex;align-items:center;gap:.3rem;padding:.3125rem .75rem;background:#eef2ff;color:var(--primary-color);border-radius:var(--radius-full);font-size:.8125rem;font-weight:600;border:1px solid #c7d2fe;font-family:var(--font-heading)}.ps-badge{display:inline-flex;align-items:center;padding:.28125rem .75rem;border-radius:var(--radius-full);font-size:.78125rem;font-weight:600;letter-spacing:.02em;font-family:var(--font-heading)}.ps-badge--green{background:#dcfce7;color:#15803d}.ps-badge--gray{background:var(--gray-100);color:var(--gray-600)}.ps-badge--red{background:#fef2f2;color:#b91c1c}.ps-info-table{display:flex;flex-direction:column;margin-top:1.375rem;padding-top:1.25rem;border-top:1px solid var(--gray-100)}.ps-info-row{display:flex;align-items:center;justify-content:space-between;padding:.6875rem 0;border-bottom:1px solid var(--gray-50)}.ps-info-row:last-child{border-bottom:none}.ps-info-row__key{font-size:.875rem;color:var(--gray-500)}.ps-info-row__val{font-size:.875rem;font-weight:500;color:var(--gray-800)}.ps-pw-strength{display:flex;align-items:center;gap:.75rem}.ps-pw-meter{display:flex;gap:4px;flex:1}.ps-pw-seg{height:4px;flex:1;background:var(--gray-200);border-radius:2px;transition:background var(--transition-fast)}.ps-strength--1{background:#ef4444}.ps-strength--2{background:#f97316}.ps-strength--3{background:#eab308}.ps-strength--4{background:#22c55e}.ps-strength--5{background:#10b981}.ps-pw-label{font-size:.78125rem;font-weight:600;min-width:5.5rem;text-align:right;font-family:var(--font-heading)}.ps-pw-rules{padding:.9375rem 1.125rem;background:var(--gray-50);border:1px solid var(--gray-200);border-radius:var(--radius-lg)}.ps-pw-rules__title{font-size:.8rem;font-weight:700;color:var(--gray-600);margin:0 0 .5625rem;text-transform:uppercase;letter-spacing:.04em}.ps-pw-rules ul{margin:0;padding:0;list-style:none;display:flex;flex-direction:column;gap:.3125rem}.ps-pw-rules li{display:flex;align-items:center;gap:.375rem;font-size:.8125rem;color:var(--gray-400);transition:color var(--transition-fast)}.ps-pw-rule--ok{color:var(--success-color)!important}.ps-session{display:flex;align-items:center;gap:1rem;padding:.9375rem 1.125rem;background:#f5f7ff;border:1px solid #c7d2fe;border-radius:var(--radius-lg)}.ps-session__icon{width:42px;height:42px;border-radius:var(--radius-lg);background:#eef2ff;color:var(--primary-color);display:flex;align-items:center;justify-content:center;flex-shrink:0}.ps-session__info{flex:1}.ps-session__title{font-size:.9rem;font-weight:600;color:var(--gray-900);margin:0 0 .2rem;font-family:var(--font-heading)}.ps-session__meta{font-size:.82rem;color:var(--gray-500);margin:0}.ps-save-bar{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.875rem 1.125rem;background:#fff;border:1.5px solid var(--gray-200);border-radius:var(--radius-xl);box-shadow:var(--shadow-md);opacity:0;transform:translateY(6px);pointer-events:none;transition:opacity var(--transition-base),transform var(--transition-base)}.ps-save-bar--visible{opacity:1;transform:translateY(0);pointer-events:all}.ps-save-bar__msg{display:flex;align-items:center;gap:.4rem;font-size:.85rem;color:var(--warning-color);margin:0;font-weight:500}.ps-save-bar__actions{display:flex;gap:.625rem;align-items:center}.ps-toast{position:fixed;top:1.25rem;right:1.25rem;z-index:var(--z-modal);display:flex;align-items:center;gap:.625rem;padding:.8125rem 1.0625rem;border-radius:var(--radius-xl);font-size:.875rem;font-weight:500;box-shadow:var(--shadow-xl);max-width:380px;opacity:0;transform:translate(calc(100% + 2rem));transition:opacity var(--transition-base),transform var(--transition-base);border:1px solid transparent;font-family:var(--font-heading)}.ps-toast--visible{opacity:1;transform:translate(0)}.ps-toast--success{background:#f0fdf4;color:#15803d;border-color:#bbf7d0}.ps-toast--error{background:#fff5f5;color:#b91c1c;border-color:#fca5a5}.ps-toast__close{margin-left:auto;background:none;border:none;cursor:pointer;opacity:.55;color:inherit;padding:.125rem;display:flex;border-radius:var(--radius-sm);transition:opacity var(--transition-fast)}.ps-toast__close:hover{opacity:1}.ps-pref-row{display:flex;align-items:center;justify-content:space-between;gap:2rem;padding:.25rem 0}.ps-pref-text__title{font-size:.9375rem;font-weight:600;color:var(--gray-900);margin:0 0 .2rem;font-family:var(--font-heading)}.ps-pref-text__desc{font-size:.8375rem;color:var(--gray-500);margin:0}.ps-divider{height:1px;background:var(--gray-100);margin:1.125rem 0}.ps-theme-group{display:flex;border:1.5px solid var(--gray-200);border-radius:var(--radius-lg);overflow:hidden}.ps-theme-btn{padding:.5rem .9375rem;border:none;background:transparent;cursor:pointer;font-size:.875rem;font-weight:500;color:var(--gray-500);transition:all var(--transition-fast);white-space:nowrap;font-family:var(--font-heading)}.ps-theme-btn+.ps-theme-btn{border-left:1.5px solid var(--gray-200)}.ps-theme-btn--active{background:var(--primary-color);color:#fff}.ps-toggles{display:flex;flex-direction:column}.ps-toggle-row{display:flex;align-items:center;justify-content:space-between;gap:2rem;padding:.9375rem 0;border-bottom:1px solid var(--gray-100)}.ps-toggle-row:last-child{border-bottom:none}.ps-toggle-row__title{font-size:.9rem;font-weight:600;color:var(--gray-900);margin:0 0 .2rem;font-family:var(--font-heading)}.ps-toggle-row__desc{font-size:.8375rem;color:var(--gray-500);margin:0}.ps-toggle{position:relative;width:44px;height:24px;border-radius:12px;border:none;cursor:pointer;background:var(--gray-300);flex-shrink:0;transition:background var(--transition-fast);padding:0}.ps-toggle--on{background:var(--primary-color)}.ps-toggle__thumb{position:absolute;top:2px;left:2px;width:20px;height:20px;border-radius:50%;background:#fff;box-shadow:0 1px 4px #0003;transition:transform var(--transition-fast)}.ps-toggle--on .ps-toggle__thumb{transform:translate(20px)}.ps-prefs-footer{display:flex;justify-content:flex-end}.ps-skeleton{background:linear-gradient(90deg,var(--gray-100) 25%,var(--gray-200) 50%,var(--gray-100) 75%);background-size:200% 100%;border-radius:var(--radius-md);animation:ps-shimmer 1.4s infinite}@keyframes ps-shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}@media(max-width:960px){.ps-layout{grid-template-columns:1fr}.ps-nav{position:static;flex-direction:column}.ps-nav__items{flex-direction:row;overflow-x:auto;padding-bottom:.125rem;-ms-overflow-style:none;scrollbar-width:none}.ps-nav__items::-webkit-scrollbar{display:none}.ps-nav__btn{flex-direction:column;gap:.25rem;padding:.625rem .875rem;min-width:80px;text-align:center;font-size:.75rem}.ps-nav__dot,.ps-nav__id-card{display:none}.ps-form-grid{grid-template-columns:1fr}.ps-header{flex-direction:column;align-items:flex-start;gap:.75rem}.ps-avatar-row{flex-direction:column;align-items:flex-start;gap:1.25rem}}.teacher-students-page{max-width:1600px;margin:0 auto}.page-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:2rem}.header-actions{display:flex;gap:1rem}.students-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:1.5rem;margin-bottom:2rem}.stat-card{background:#fff;border-radius:16px;padding:1.5rem;box-shadow:0 2px 8px #0000001a;display:flex;align-items:center;gap:1rem}.stat-icon{width:60px;height:60px;border-radius:12px;display:flex;align-items:center;justify-content:center;font-size:1.75rem;flex-shrink:0}.stat-content{flex:1}.stat-value{font-size:2rem;font-weight:800;color:var(--gray-900);line-height:1;margin-bottom:.25rem}.stat-label{font-size:.875rem;color:var(--gray-600)}.students-filters{display:flex;gap:1rem;margin-bottom:2rem}.search-input{flex:1;padding:.75rem 1rem;border:2px solid var(--gray-300);border-radius:8px;font-size:.9375rem;transition:all .2s}.search-input:focus{outline:none;border-color:var(--primary-color)}.filter-select{padding:.75rem 1rem;border:2px solid var(--gray-300);border-radius:8px;font-size:.9375rem;font-weight:600;min-width:200px}.students-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:1.5rem}.student-card{background:#fff;border-radius:16px;padding:2rem;box-shadow:0 2px 8px #0000001a;transition:all .3s;position:relative;text-align:center;border:2px solid transparent}.student-card:hover{transform:translateY(-4px);box-shadow:0 8px 24px #00000026;border-color:var(--primary-color)}.student-card.status-warning{border-color:var(--warning-color)}.warning-badge{position:absolute;top:1rem;right:1rem;padding:.375rem .75rem;background:var(--warning-color);color:#fff;border-radius:12px;font-size:.75rem;font-weight:700}.student-avatar-large{width:80px;height:80px;border-radius:50%;background:var(--gradient-primary);color:#fff;display:flex;align-items:center;justify-content:center;font-size:2rem;font-weight:700;margin:0 auto 1rem}.student-name{font-size:1.25rem;font-weight:700;color:var(--gray-900);margin:0 0 .25rem}.student-email{font-size:.875rem;color:var(--gray-600);margin:0 0 1rem}.student-courses{display:flex;gap:.5rem;justify-content:center;flex-wrap:wrap;margin-bottom:1.5rem}.course-tag{padding:.375rem .75rem;background:var(--gray-100);border-radius:12px;font-size:.813rem;font-weight:600;color:var(--gray-700)}.student-metrics{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem;margin-bottom:1.5rem}.metric{text-align:center}.metric-label{font-size:.75rem;color:var(--gray-600);margin-bottom:.25rem}.metric-value{font-size:1.25rem;font-weight:800;color:var(--gray-900)}.metric-value.good{color:var(--success-color)}.metric-value.normal{color:var(--warning-color)}.metric-value.warning{color:var(--error-color)}.student-progress{margin-bottom:1.5rem}.progress-label{font-size:.813rem;color:var(--gray-600);margin-bottom:.5rem;text-align:left}.progress-bar{height:8px;background:var(--gray-200);border-radius:4px;overflow:hidden}.progress-fill{height:100%;background:var(--gradient-primary);border-radius:4px;transition:width .3s ease}.student-footer{text-align:center;padding-top:1rem;border-top:1px solid var(--gray-200);margin-bottom:1rem}.last-active{font-size:.813rem;color:var(--gray-600)}.student-actions{display:grid;grid-template-columns:1fr 1fr;gap:.75rem}.action-btn{padding:.625rem;border:2px solid var(--primary-color);background:#fff;color:var(--primary-color);border-radius:8px;font-size:.875rem;font-weight:600;cursor:pointer;transition:all .2s}.action-btn:hover{background:var(--primary-color);color:#fff}.modal-overlay{position:fixed;inset:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000;padding:1rem}.modal{background:#fff;border-radius:16px;max-width:600px;width:100%;max-height:90vh;overflow-y:auto;box-shadow:0 20px 60px #0000004d}.modal.large{max-width:900px}.modal-header{padding:1.5rem;border-bottom:1px solid var(--gray-200);display:flex;justify-content:space-between;align-items:center}.modal-title{font-size:1.5rem;font-weight:700;color:var(--gray-900);margin:0}.modal-close{width:32px;height:32px;border:none;background:var(--gray-200);border-radius:8px;font-size:1.25rem;cursor:pointer;transition:all .2s}.modal-close:hover{background:var(--gray-300)}.modal-body{padding:1.5rem}.modal-footer{padding:1.5rem;border-top:1px solid var(--gray-200);display:flex;justify-content:flex-end;gap:1rem}.detail-header{display:flex;gap:1.5rem;align-items:center;padding:1.5rem;background:var(--gray-50);border-radius:12px;margin-bottom:1.5rem}.detail-avatar{width:80px;height:80px;border-radius:50%;background:var(--gradient-primary);color:#fff;display:flex;align-items:center;justify-content:center;font-size:2rem;font-weight:700;flex-shrink:0}.detail-info h3{font-size:1.5rem;font-weight:700;color:var(--gray-900);margin:0 0 .25rem}.detail-info p{color:var(--gray-600);margin:0 0 .75rem}.detail-courses{display:flex;gap:.5rem;flex-wrap:wrap}.detail-stats-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:1rem;margin-bottom:1.5rem}.detail-stat{padding:1rem;background:var(--gray-50);border-radius:12px;text-align:center}.detail-stat .stat-label{font-size:.813rem;color:var(--gray-600);margin-bottom:.5rem}.detail-stat .stat-value{font-size:1.125rem;font-weight:700;color:var(--gray-900)}.detail-section{margin-bottom:1.5rem}.detail-section h4{font-size:1rem;font-weight:700;color:var(--gray-900);margin:0 0 1rem}.activity-list{display:flex;flex-direction:column;gap:1rem}.activity-item{display:flex;gap:1rem;padding:1rem;background:var(--gray-50);border-radius:12px}.activity-icon{width:40px;height:40px;border-radius:8px;background:#fff;display:flex;align-items:center;justify-content:center;font-size:1.25rem;flex-shrink:0}.activity-content{flex:1}.activity-title{font-weight:600;color:var(--gray-900);margin-bottom:.25rem}.activity-time{font-size:.813rem;color:var(--gray-600)}.detail-actions{display:flex;gap:.75rem}.detail-actions .btn{flex:1}.form-group{margin-bottom:1.25rem}.form-group label{display:block;font-size:.875rem;font-weight:600;color:var(--gray-700);margin-bottom:.5rem}.form-group input,.form-group textarea{width:100%;padding:.75rem 1rem;border:2px solid var(--gray-300);border-radius:8px;font-size:.9375rem;font-family:inherit;transition:all .2s}.form-group input:focus,.form-group textarea:focus{outline:none;border-color:var(--primary-color);box-shadow:0 0 0 3px #667eea1a}.form-group input:disabled{background:var(--gray-100);cursor:not-allowed}@media(max-width:1024px){.students-stats{grid-template-columns:repeat(2,1fr)}.students-grid{grid-template-columns:repeat(auto-fill,minmax(280px,1fr))}.detail-stats-grid{grid-template-columns:repeat(2,1fr)}}@media(max-width:768px){.page-header{flex-direction:column;gap:1rem}.header-actions{width:100%;flex-direction:column}.students-stats{grid-template-columns:1fr}.students-filters{flex-direction:column}.filter-select{width:100%}.students-grid{grid-template-columns:1fr}.detail-header{flex-direction:column;text-align:center}.detail-stats-grid{grid-template-columns:1fr}.detail-actions{flex-direction:column}}@keyframes cardGlow{0%,to{background-position:0% 50%}50%{background-position:100% 50%}}@keyframes shimmer{0%{transform:translate(-100%) skew(-15deg)}to{transform:translate(320%) skew(-15deg)}}@keyframes spin{to{transform:rotate(360deg)}}@keyframes fadeSlideIn{0%{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:translateY(0)}}@keyframes skeletonSweep{0%{background-position:100% 0}to{background-position:-100% 0}}@keyframes cardPulse{0%,to{opacity:.45}50%{opacity:1}}.wallet-page{max-width:1240px;margin:0 auto;color:#0f172a}.wallet-header{display:flex;justify-content:space-between;align-items:flex-start;gap:1rem;margin-bottom:1.5rem}.wallet-header h1{margin:0;font-size:2.4rem;font-weight:800;letter-spacing:-.035em;line-height:1.1;background:linear-gradient(135deg,#1e3a8a,#4f46e5 55%,#7c3aed);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.wallet-header p{margin:.3rem 0 0;color:#64748b;font-size:.95rem}.btn-report{display:inline-flex;align-items:center;gap:.45rem;border:1.5px solid #e2e8f0;background:#fff;color:#334155;border-radius:10px;padding:.65rem 1rem;font-size:.88rem;font-weight:700;cursor:pointer;transition:all .2s ease;white-space:nowrap}.btn-report:hover{border-color:#4f46e5;color:#4f46e5;transform:translateY(-1px);box-shadow:0 6px 18px #4f46e51f}.wallet-error-banner{display:flex;align-items:center;gap:.65rem;background:#fff1f2;border:1px solid #fecdd3;border-radius:12px;padding:.85rem 1rem;margin-bottom:1.2rem;color:#be123c;font-size:.9rem;font-weight:500;animation:fadeSlideIn .22s ease}.wallet-error-banner>svg{flex-shrink:0}.wallet-error-banner>span{flex:1}.error-dismiss{background:none;border:none;cursor:pointer;color:#be123c;display:flex;padding:.15rem;border-radius:6px;opacity:.7;transition:opacity .15s}.error-dismiss:hover{opacity:1}.wallet-overview{display:grid;grid-template-columns:1fr 2fr;gap:1.3rem;margin-bottom:1.4rem;align-items:start}.balance-card{position:relative;border-radius:22px;min-height:230px;padding:1.4rem;overflow:hidden;cursor:default;-webkit-user-select:none;user-select:none;background:linear-gradient(135deg,#312e81,#4f46e5 28%,#3b82f6 58%,#7c3aed);background-size:200% 200%;animation:cardGlow 9s ease infinite;box-shadow:0 22px 64px #4f46e561,0 8px 22px #4f46e538,inset 0 1px #ffffff29;display:flex;flex-direction:column;transition:transform .14s ease,box-shadow .14s ease}.balance-card:hover{box-shadow:0 28px 80px #4f46e57a,0 14px 32px #4f46e547,inset 0 1px #fff3}.card-noise{position:absolute;inset:0;border-radius:22px;pointer-events:none;opacity:.05;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.78' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");background-size:160px 160px}.card-light{position:absolute;top:-45%;right:-12%;width:68%;height:130%;background:radial-gradient(ellipse at center,rgba(255,255,255,.17) 0%,transparent 68%);pointer-events:none;transform:rotate(-16deg)}.card-top-row{display:flex;justify-content:space-between;align-items:center;margin-bottom:auto}.card-mc-rings{display:flex;align-items:center}.ring-left,.ring-right{width:30px;height:30px;border-radius:50%;display:block}.ring-left{background:#eb001bd1}.ring-right{background:#f79e1bd1;margin-left:-11px}.card-chip{width:38px;height:28px;border-radius:6px;background:linear-gradient(135deg,#fde68a,#f59e0b 42%,#b45309);box-shadow:inset 0 1px #ffffff47,0 2px 6px #00000040}.card-balance-section{margin-top:1.3rem;flex:1}.card-balance-label{font-size:.74rem;color:#ffffffb3;font-weight:500;letter-spacing:.07em;text-transform:uppercase;margin-bottom:.3rem}.card-balance-skeleton{width:62%;height:2.6rem;border-radius:8px;background:#ffffff26;animation:cardPulse 1.6s ease-in-out infinite}.card-balance-value{font-size:clamp(1.9rem,2.8vw,2.8rem);font-weight:800;letter-spacing:-.04em;color:#fff;line-height:1.05}.card-balance-currency{font-size:1rem;font-weight:600;color:#ffffffad;letter-spacing:0}.card-footer-row{display:flex;justify-content:space-between;align-items:flex-end;margin-top:1.5rem}.card-number{font-family:SF Mono,Fira Code,Cascadia Code,Consolas,monospace;font-size:.88rem;color:#ffffffe6;letter-spacing:.2em;font-weight:500}.card-holder{font-family:SF Mono,Fira Code,Consolas,monospace;font-size:.72rem;color:#fff9;letter-spacing:.13em;margin-top:.22rem;text-transform:uppercase}.card-updated{font-size:.68rem;color:#ffffff80;text-align:right;max-width:88px;line-height:1.35}.wallet-topup-card{background:#fff;border:1.5px solid #e8edf5;border-radius:20px;padding:1.5rem;display:flex;flex-direction:column;gap:1.15rem;box-shadow:0 4px 24px #0f172a0d}.topup-header{display:flex;align-items:center;gap:.55rem}.topup-header h2{margin:0;font-size:1.2rem;font-weight:800;letter-spacing:-.02em;color:#0f172a}.topup-zap{color:#4f46e5}.method-selector{display:grid;grid-template-columns:repeat(3,1fr);gap:.7rem}.method-card{display:flex;flex-direction:column;align-items:center;gap:.32rem;padding:.8rem .5rem;border:1.5px solid #e2e8f0;border-radius:14px;background:#f8fafc;cursor:pointer;transition:all .2s ease}.method-card:hover{border-color:#a5b4fc;background:#eef2ff;transform:translateY(-2px);box-shadow:0 4px 14px #4f46e51a}.method-card.selected{border-color:#4f46e5;background:#eef2ff;box-shadow:0 0 0 3px #4f46e526,0 4px 14px #4f46e524}.method-logo{display:flex;align-items:center;justify-content:center}.method-name{font-size:.8rem;font-weight:800;color:#1e293b}.method-sub{font-size:.7rem;color:#64748b;text-align:center}.amount-field{display:flex;flex-direction:column;gap:.45rem}.amount-field label{font-size:.84rem;font-weight:700;color:#374151}.amount-input-wrap{position:relative}.amount-input{width:100%;border:1.5px solid #e2e8f0;border-radius:12px;padding:.82rem 3.8rem .82rem 1rem;font-size:1.5rem;font-weight:800;color:#0f172a;background:#f8fafc;transition:border-color .2s,box-shadow .2s;box-sizing:border-box}.amount-input:focus{outline:none;border-color:#4f46e5;box-shadow:0 0 0 4px #4f46e51f;background:#fff}.amount-suffix{position:absolute;right:1rem;top:50%;transform:translateY(-50%);font-size:.8rem;font-weight:700;color:#64748b}.quick-amounts{display:flex;flex-wrap:wrap;gap:.5rem}.quick-pill{border:1.5px solid #e2e8f0;background:#f8fafc;color:#475569;border-radius:999px;padding:.3rem .78rem;font-size:.8rem;font-weight:700;cursor:pointer;transition:all .18s ease}.quick-pill:hover{border-color:#4f46e5;color:#4f46e5;background:#eef2ff;transform:scale(1.05)}.quick-pill.active{border-color:#4f46e5;background:#4f46e5;color:#fff;box-shadow:0 3px 10px #4f46e547}.btn-deposit{position:relative;overflow:hidden;width:100%;border:none;border-radius:14px;padding:1rem;font-size:1rem;font-weight:800;cursor:pointer;color:#fff;background:linear-gradient(135deg,#4338ca,#4f46e5 45%,#6366f1);background-size:200% 100%;transition:all .25s ease;display:flex;align-items:center;justify-content:center;gap:.5rem;letter-spacing:.01em}.btn-deposit:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 10px 32px #4f46e56b;background-position:100% 0}.btn-deposit:active:not(:disabled){transform:translateY(0)}.btn-deposit:disabled{opacity:.75;cursor:not-allowed}.btn-deposit.success{background:linear-gradient(135deg,#059669,#10b981)}.btn-shimmer{position:absolute;top:0;left:0;width:38%;height:100%;background:linear-gradient(105deg,transparent 20%,rgba(255,255,255,.28) 50%,transparent 80%);animation:shimmer 3s ease-in-out infinite}.spinner{display:inline-block;width:16px;height:16px;border:2.5px solid rgba(255,255,255,.38);border-top-color:#fff;border-radius:50%;animation:spin .72s linear infinite}.trust-badge{display:flex;align-items:center;justify-content:center;gap:.42rem;color:#64748b;font-size:.74rem;font-weight:500;padding:.52rem;background:#f8fafc;border-radius:10px;border:1px solid #e8edf5}.trust-badge svg{color:#10b981;flex-shrink:0}.transactions-panel{background:#fff;border:1.5px solid #e8edf5;border-radius:20px;overflow:hidden;box-shadow:0 4px 24px #0f172a0d}.transactions-head{padding:1.25rem 1.4rem;border-bottom:1px solid #f1f5f9;display:flex;justify-content:space-between;align-items:flex-start;gap:1rem}.transactions-head h2{margin:0;font-size:1.1rem;font-weight:800;color:#0f172a;letter-spacing:-.02em}.transactions-head p{margin:.2rem 0 0;font-size:.83rem;color:#64748b}.transactions-head p strong{color:#059669}.transactions-controls{display:flex;align-items:center;gap:.6rem}.search-box{display:inline-flex;align-items:center;gap:.42rem;border:1.5px solid #e2e8f0;background:#f8fafc;border-radius:10px;padding:.42rem .72rem;color:#94a3b8;width:255px;transition:border-color .2s}.search-box:focus-within{border-color:#4f46e5}.search-box input{border:none;background:transparent;outline:none;font-size:.86rem;color:#1e293b;width:100%}.transactions-controls select{border:1.5px solid #e2e8f0;border-radius:10px;background:#f8fafc;color:#334155;font-size:.85rem;font-weight:600;padding:.42rem .65rem;cursor:pointer;transition:border-color .2s}.transactions-controls select:focus{outline:none;border-color:#4f46e5}.transaction-list{padding:.35rem 0}.tx-skeleton{height:68px;margin:.3rem 1.2rem;border-radius:12px;background:linear-gradient(90deg,#f1f5f9 25%,#e8edf5,#f1f5f9 75%);background-size:400% 100%;animation:skeletonSweep 1.6s ease-in-out infinite}.empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:3.8rem 1.5rem;text-align:center;gap:.6rem}.empty-icon{color:#c7d2fe;margin-bottom:.5rem}.empty-state h3{margin:0;font-size:1.1rem;font-weight:800;color:#1e293b}.empty-state p{margin:0;font-size:.88rem;color:#64748b;max-width:300px}.btn-empty-cta{margin-top:.55rem;border:none;background:linear-gradient(135deg,#4338ca,#4f46e5);color:#fff;border-radius:999px;padding:.6rem 1.45rem;font-size:.88rem;font-weight:700;cursor:pointer;transition:all .2s}.btn-empty-cta:hover{transform:translateY(-2px);box-shadow:0 6px 18px #4f46e552}.tx-row{display:flex;align-items:center;gap:.95rem;padding:.88rem 1.4rem;border-bottom:1px solid #f8fafc;transition:background-color .14s ease;cursor:default}.tx-row:hover{background-color:#f8fafc}.tx-row:last-child{border-bottom:none}.tx-icon-wrap{width:42px;height:42px;border-radius:50%;display:flex;align-items:center;justify-content:center;flex-shrink:0}.tx-icon-wrap.deposit{background:#d1fae5;color:#059669}.tx-icon-wrap.payment{background:#fee2e2;color:#dc2626}.tx-info{flex:1;min-width:0}.tx-title{font-size:.92rem;font-weight:700;color:#0f172a;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.tx-meta{display:flex;align-items:center;gap:.35rem;margin-top:.16rem}.tx-code{font-family:SF Mono,Consolas,monospace;font-size:.74rem;color:#64748b;font-weight:500}.tx-sep{color:#cbd5e1;font-size:.75rem}.tx-time{font-size:.74rem;color:#94a3b8}.tx-right{display:flex;flex-direction:column;align-items:flex-end;gap:.3rem;flex-shrink:0}.tx-amount{font-size:.96rem;font-weight:800;letter-spacing:-.02em}.tx-amount.positive{color:#059669}.tx-amount.negative{color:#dc2626}.tx-status-badge{display:inline-flex;align-items:center;padding:.14rem .55rem;border-radius:999px;font-size:.71rem;font-weight:700}.tx-status-badge.completed{background:#d1fae5;color:#047857}.tx-status-badge.pending{background:#fef3c7;color:#b45309}.tx-status-badge.failed{background:#fee2e2;color:#b91c1c}.transactions-footer{padding:.92rem 1.4rem;display:flex;justify-content:space-between;align-items:center;gap:1rem;background:#fafbff;border-top:1px solid #f1f5f9}.transactions-footer span{font-size:.82rem;color:#64748b}.pagination{display:inline-flex;gap:.35rem}.pagination button{display:inline-flex;align-items:center;justify-content:center;border:1.5px solid #e2e8f0;background:#fff;color:#334155;min-width:32px;height:32px;padding:0 .35rem;border-radius:8px;font-size:.85rem;font-weight:700;cursor:pointer;transition:all .15s}.pagination button:hover:not(:disabled){border-color:#4f46e5;color:#4f46e5}.pagination button:disabled{opacity:.35;cursor:not-allowed}.pagination button.active{background:#4f46e5;color:#fff;border-color:#4f46e5;box-shadow:0 4px 10px #4f46e547}@media(max-width:1080px){.wallet-overview{grid-template-columns:1fr}.transactions-head{flex-direction:column}}@media(max-width:768px){.wallet-header{flex-direction:column}.wallet-header h1{font-size:2rem}.method-selector{grid-template-columns:repeat(3,1fr)}.transactions-controls{flex-direction:column;align-items:stretch;width:100%}.search-box{width:100%}.transactions-footer{flex-direction:column;align-items:flex-start}}.tp-page{font-family:var(--f-body, "Inter", -apple-system, sans-serif);color:var(--c-text-2, #3f3a52);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;padding:0}.tp-card{background:#fff;border-radius:20px;box-shadow:0 4px 8px #0e0c1508,0 8px 24px #0e0c150f;overflow:hidden;border:1px solid #f0edf8}.tp-card-header{padding:1.75rem 2rem 1.5rem;border-bottom:1px solid #f0edf8;background:linear-gradient(135deg,#fafaff,#f5f3ff);position:relative}.tp-card-header:before{content:"";position:absolute;left:0;top:0;bottom:0;width:4px;background:linear-gradient(180deg,#5e5ce6,#ff98e2);border-radius:20px 0 0 20px}.tp-card-header__top{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;flex-wrap:wrap}.tp-card-header__title{font-family:Be Vietnam Pro,-apple-system,sans-serif;font-size:1.5rem;font-weight:700;color:#0e0c15;margin:0 0 .3rem;letter-spacing:-.5px;line-height:1.25}.tp-card-header__subtitle{font-size:.85rem;color:#756b85;margin:0;line-height:1.5;max-width:520px}.tp-gradient-text{background:linear-gradient(135deg,#5e5ce6,#ff98e2);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.tp-status-badge{display:inline-flex;align-items:center;gap:.35rem;padding:.3rem .8rem;border-radius:100px;font-size:.72rem;font-weight:700;letter-spacing:.2px;white-space:nowrap;flex-shrink:0}.tp-status-badge--pending{background:#fef9c3;color:#854d0e;border:1px solid #fde68a}.tp-status-badge--approved{background:#dcfce7;color:#166534;border:1px solid #bbf7d0}.tp-status-badge--rejected{background:#fee2e2;color:#991b1b;border:1px solid #fecaca}.tp-card-body{padding:1.75rem 2rem}.tp-alert{display:flex;align-items:flex-start;gap:.6rem;padding:.8rem 1rem;border-radius:12px;margin-bottom:1.25rem;font-size:.855rem;line-height:1.55}.tp-alert__icon{flex-shrink:0;font-size:.9rem;margin-top:.1rem}.tp-alert--error{background:#fff5f5;color:#9b1c1c;border:1px solid #fecdd3}.tp-alert--success{background:#f0fff4;color:#14532d;border:1px solid #bbf7d0}.tp-alert--warning{background:#fffbeb;color:#92400e;border:1px solid #fde68a}.tp-alert--info{background:#eff6ff;color:#1e40af;border:1px solid #bfdbfe}.tp-section-label{font-size:.68rem;font-weight:700;letter-spacing:1.2px;text-transform:uppercase;color:#9991a8;margin:0 0 .875rem;display:flex;align-items:center;gap:.5rem}.tp-section-label:after{content:"";flex:1;height:1px;background:#f0edf8}.tp-info-grid{background:#fafaff;border:1px solid #f0edf8;border-radius:14px;overflow:hidden;margin-bottom:1.5rem}.tp-info-row{display:grid;grid-template-columns:150px 1fr;align-items:baseline;padding:.7rem 1.25rem;border-bottom:1px solid #f0edf8;gap:1rem;transition:background .15s ease}.tp-info-row:last-child{border-bottom:none}.tp-info-row:hover{background:#f5f3ff}.tp-info-label{font-size:.78rem;font-weight:600;color:#756b85;text-transform:uppercase;letter-spacing:.3px}.tp-info-value{font-size:.875rem;color:#0e0c15;font-weight:500;word-break:break-word;line-height:1.5}.tp-info-value a{color:#5e5ce6;text-decoration:none;font-weight:500}.tp-info-value a:hover{text-decoration:underline}.tp-info-value--muted{color:#9991a8;font-style:italic;font-weight:400}.tp-admin-comment{background:#fffbeb;border:1px solid #fde68a;border-left:4px solid #f59e0b;border-radius:12px;padding:1rem 1.25rem;margin-bottom:1.5rem}.tp-admin-comment__title{font-size:.78rem;font-weight:700;color:#92400e;text-transform:uppercase;letter-spacing:.5px;margin:0 0 .5rem}.tp-admin-comment__text{font-size:.875rem;color:#78350f;margin:0;line-height:1.6}.tp-form{display:flex;flex-direction:column;gap:1.25rem}.tp-form-grid{display:grid;grid-template-columns:1fr 1fr;gap:1rem}@media(max-width:640px){.tp-form-grid{grid-template-columns:1fr}}.tp-form-group{display:flex;flex-direction:column;gap:.375rem}.tp-label{display:flex;align-items:center;gap:.35rem;font-size:.8rem;font-weight:600;color:#3f3a52;letter-spacing:.1px}.tp-required{color:#ef4444;font-size:.75rem}.tp-input,.tp-textarea{padding:.6rem .875rem;border:1.5px solid #e8e5f0;border-radius:10px;font-size:.875rem;font-family:Inter,-apple-system,sans-serif;color:#0e0c15;background:#fff;transition:border-color .2s ease,box-shadow .2s ease,background .2s ease;width:100%;box-sizing:border-box}.tp-input::placeholder,.tp-textarea::placeholder{color:#c4bfcf}.tp-input:focus,.tp-textarea:focus{outline:none;border-color:#5e5ce6;box-shadow:0 0 0 3px #5e5ce61a;background:#fafaff}.tp-input:disabled,.tp-textarea:disabled{background:#f8f7fc;color:#756b85;cursor:not-allowed}.tp-input--readonly{background:#f5f3ff;color:#756b85;cursor:not-allowed;border-style:dashed;border-color:#d4d0e8}.tp-textarea{min-height:100px;resize:vertical;line-height:1.55}.tp-form-hint{font-size:.775rem;color:#756b85;margin:0;line-height:1.45}.tp-file-zone{border:2px dashed #d4d0e8;border-radius:14px;padding:1.75rem 1.5rem;text-align:center;cursor:pointer;transition:all .25s ease;background:#fafaff;-webkit-user-select:none;user-select:none}.tp-file-zone:hover{border-color:#5e5ce6;background:#f5f3ff}.tp-file-zone--filled{border-color:#22c55e;border-style:solid;background:#f0fff4}.tp-file-zone__icon{display:flex;justify-content:center;margin-bottom:.625rem;color:#9991a8;transition:color .2s ease}.tp-file-zone:hover .tp-file-zone__icon{color:#5e5ce6}.tp-file-zone--filled .tp-file-zone__icon{color:#16a34a}.tp-file-zone__title{font-size:.875rem;font-weight:600;color:#3f3a52;margin:0 0 .2rem}.tp-file-zone__subtitle{font-size:.78rem;color:#9991a8;margin:0}.tp-file-zone__files{display:flex;flex-direction:column;gap:.3rem;align-items:center}.tp-file-zone__file-name{font-size:.8rem;font-weight:600;color:#166534;background:#d1fae5;border-radius:6px;padding:.2rem .6rem;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.tp-file-zone__file-count{font-size:.75rem;color:#6b7280;margin-top:.1rem}.tp-actions{display:flex;gap:.625rem;padding-top:.5rem;flex-wrap:wrap}.tp-btn{display:inline-flex;align-items:center;justify-content:center;gap:.35rem;padding:.575rem 1.25rem;border-radius:100px;font-size:.835rem;font-weight:600;cursor:pointer;transition:all .2s ease;border:1px solid transparent;text-decoration:none;font-family:Inter,-apple-system,sans-serif;white-space:nowrap;letter-spacing:-.1px;line-height:1}.tp-btn:disabled{opacity:.5;cursor:not-allowed;transform:none!important;box-shadow:none!important}.tp-btn--primary{background:#5e5ce6;color:#fff;border-color:#5e5ce6;box-shadow:0 1px 2px #0e0c150a}.tp-btn--primary:hover:not(:disabled){background:#4e4cc6;border-color:#4e4cc6;box-shadow:0 4px 24px #5e5ce638;transform:translateY(-1px)}.tp-btn--ghost{background:transparent;color:#3f3a52;border-color:#e8e5f0}.tp-btn--ghost:hover:not(:disabled){background:#f5f3ff;border-color:#c4bfcf;color:#0e0c15}.tp-btn--danger{background:#fff5f5;color:#dc2626;border-color:#fecdd3}.tp-btn--danger:hover:not(:disabled){background:#fee2e2;border-color:#fca5a5}.tp-btn--large{padding:.7rem 1.625rem;font-size:.875rem}.tp-loading{display:flex;align-items:center;justify-content:center;gap:.75rem;padding:3rem 2rem;color:#756b85;font-size:.875rem}.tp-loading__spinner{width:18px;height:18px;border:2px solid #e8e5f0;border-top-color:#5e5ce6;border-radius:50%;animation:tp-spin .7s linear infinite;flex-shrink:0}@keyframes tp-spin{to{transform:rotate(360deg)}}.tp-success-card{text-align:center;padding:3rem 2rem}.tp-success-card__icon{width:56px;height:56px;background:linear-gradient(135deg,#d1fae5,#a7f3d0);border-radius:50%;display:flex;align-items:center;justify-content:center;margin:0 auto 1rem;font-size:1.4rem;color:#166534}.tp-success-card__title{font-family:Be Vietnam Pro,-apple-system,sans-serif;font-size:1.25rem;font-weight:700;color:#0e0c15;margin:0 0 .375rem;letter-spacing:-.3px}.tp-success-card__subtitle{font-size:.875rem;color:#756b85;margin:0}@media(max-width:768px){.tp-card-header,.tp-card-body{padding-left:1.25rem;padding-right:1.25rem}.tp-card-header__title{font-size:1.25rem}.tp-info-row{grid-template-columns:110px 1fr;padding:.625rem 1rem;gap:.75rem}.tp-info-label{font-size:.72rem}.tp-actions{flex-direction:column}.tp-btn{width:100%;justify-content:center}}body.profile-active .sidebar,body.profile-active aside.sidebar{display:none!important}body.profile-active .main-content,body.profile-active main,body.profile-active .dashboard-layout{margin-left:0!important;width:100%!important;max-width:100%!important}.profile-navbar{position:fixed;top:0;left:0;right:0;height:70px;background:#fff;border-bottom:1px solid #e2e8f0;z-index:1000;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#fffffffa}.profile-navbar-content{max-width:1200px;margin:0 auto;height:100%;padding:0 2rem;display:flex;align-items:center;justify-content:space-between}.profile-navbar h1{font-size:1.375rem;color:#1e293b;margin:0;font-weight:600;letter-spacing:-.01em}.back-button{display:inline-flex;align-items:center;gap:.5rem;padding:.625rem 1rem;background:transparent;border:1px solid #e2e8f0;border-radius:8px;color:#64748b;font-size:.875rem;font-weight:500;cursor:pointer;transition:all .2s ease}.back-button:hover{background:#f8fafc;border-color:#cbd5e1;color:#475569}.profile-page{min-height:100vh;background:linear-gradient(135deg,#f8fafc,#f1f5f9);padding:0;margin-top:70px;margin-left:0!important;width:100vw!important}.profile-container{max-width:1200px;margin:0 auto;padding:2.5rem 2rem;display:flex;gap:2rem}.profile-sidebar{flex:0 0 260px;background:#fff;border-radius:16px;padding:1.5rem;box-shadow:0 1px 3px #0000000d;border:1px solid #e2e8f0;height:fit-content;position:sticky;top:90px}.profile-sidebar h2{font-size:1rem;color:#64748b;margin:0 0 1.25rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em}.profile-nav{display:flex;flex-direction:column;gap:.375rem}.profile-nav-item{display:flex;align-items:center;gap:.875rem;padding:.875rem 1rem;border:none;background:transparent;border-radius:10px;font-size:.9375rem;font-weight:500;color:#64748b;cursor:pointer;transition:all .2s ease;text-align:left;position:relative}.profile-nav-item:hover{background:#f8fafc;color:#334155}.profile-nav-item.active{background:linear-gradient(135deg,#3b82f6,#2563eb);color:#fff;box-shadow:0 4px 12px #3b82f64d}.profile-nav-item .nav-icon{font-size:1.25rem;display:flex;align-items:center;justify-content:center}.profile-content{flex:1;background:#fff;border-radius:16px;box-shadow:0 1px 3px #0000000d;border:1px solid #e2e8f0;overflow:hidden;min-height:600px}.loading{text-align:center;padding:4rem 2rem;color:#64748b;font-size:.9375rem}.profile-content .teacher-profile-page,.profile-content>div{max-width:100%;margin:0;padding:2.5rem;background:transparent}.profile-content .profile-card{box-shadow:none;border:none;border-radius:0;padding:0}.profile-content .profile-header{border-bottom:1px solid #e2e8f0;padding-bottom:1.5rem;margin-bottom:2rem}.profile-content .profile-header h1{font-size:1.75rem;color:#1e293b;font-weight:600;letter-spacing:-.02em}@media(max-width:1024px){.profile-container{padding:2rem 1.5rem;gap:1.5rem}.profile-sidebar{flex:0 0 220px;padding:1.25rem}.profile-content .teacher-profile-page,.profile-content>div{padding:2rem}}@media(max-width:768px){.profile-navbar-content{padding:0 1.5rem}.profile-navbar h1{font-size:1.125rem}.back-button{padding:.5rem .875rem;font-size:.8125rem}.profile-container{flex-direction:column;padding:1.5rem 1rem;gap:1.25rem}.profile-sidebar{flex:none;position:static;padding:1rem}.profile-sidebar h2{font-size:.875rem;margin-bottom:1rem}.profile-nav{flex-direction:row;gap:.5rem;overflow-x:auto;padding-bottom:.5rem;-webkit-overflow-scrolling:touch}.profile-nav::-webkit-scrollbar{height:4px}.profile-nav::-webkit-scrollbar-track{background:#f1f5f9;border-radius:2px}.profile-nav::-webkit-scrollbar-thumb{background:#cbd5e1;border-radius:2px}.profile-nav-item{white-space:nowrap;padding:.75rem 1rem;font-size:.875rem}.profile-nav-item .nav-icon{font-size:1.125rem}.profile-content{border-radius:12px}.profile-content .teacher-profile-page,.profile-content>div{padding:1.5rem}.profile-content .profile-header h1{font-size:1.5rem}}@media(max-width:640px){.profile-navbar{height:60px}.profile-navbar-content{padding:0 1rem}.profile-navbar h1{font-size:1rem}.back-button{padding:.5rem .75rem;font-size:.75rem}.profile-page{margin-top:60px}.profile-container{padding:1rem .75rem}.profile-sidebar{border-radius:12px;padding:.875rem}.profile-sidebar h2{font-size:.8125rem;margin-bottom:.875rem}.profile-nav{gap:.375rem}.profile-nav-item{padding:.625rem .875rem;font-size:.8125rem;gap:.625rem}.profile-nav-item .nav-icon{font-size:1rem}.profile-content{border-radius:12px}.profile-content .teacher-profile-page,.profile-content>div{padding:1.25rem}.profile-content .profile-header{padding-bottom:1rem;margin-bottom:1.5rem}.profile-content .profile-header h1{font-size:1.25rem}}@media(max-width:360px){.profile-navbar-content{padding:0 .75rem}.profile-container{padding:.75rem .5rem}.profile-content .teacher-profile-page,.profile-content>div{padding:1rem}.profile-nav-item{padding:.5rem .75rem;font-size:.75rem}}@keyframes fadeIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.profile-container{animation:fadeIn .3s ease-out}@media print{.profile-navbar,.back-button,.profile-sidebar{display:none!important}.profile-page{margin-top:0;background:#fff}.profile-content{box-shadow:none;border:none}}.admin-roadmap-page{display:grid;gap:1rem}.admin-roadmap-page__header{display:flex;justify-content:space-between;align-items:flex-start;gap:1rem}.admin-roadmap-page__header h1{margin:0}.admin-roadmap-page__header p{margin:.45rem 0 0;color:#475569}.admin-roadmap-page__action{text-decoration:none;border-radius:8px;background:#0369a1;color:#fff;padding:.55rem .85rem;font-weight:700}.admin-roadmap-page__table{border:1px solid #e5e7eb;border-radius:12px;overflow:hidden}.admin-roadmap-page__row{display:grid;grid-template-columns:1.5fr 1fr 1fr .7fr;gap:.75rem;padding:.8rem;background:#fff;border-bottom:1px solid #f1f5f9;align-items:center}.admin-roadmap-page__row--head{background:#f8fafc;font-weight:700}.admin-roadmap-page__state{margin:0;color:#64748b}.admin-roadmap-page__inline-danger{border:0;background:transparent;color:#b91c1c;font-weight:700;cursor:pointer;padding:0}.admin-roadmap-page__inline-danger:disabled{opacity:.6;cursor:not-allowed}.admin-roadmap-page__road-section{border:1px solid #d9e4f2;background:linear-gradient(180deg,#f8fbff,#edf4ff);border-radius:16px;padding:1rem;display:grid;gap:.85rem}.admin-roadmap-page__road-header{display:flex;justify-content:space-between;align-items:flex-start;gap:1rem}.admin-roadmap-page__road-header h3{margin:0}.admin-roadmap-page__road-header p{margin:.35rem 0 0;color:#475569}.admin-roadmap-page__road-visual{position:relative;border-radius:14px;border:1px solid #d4dfef;background:#fff;overflow:hidden;min-height:230px}.admin-roadmap-page__road-svg{width:100%;height:230px}.admin-roadmap-page__road-track-shadow{fill:none;stroke:#dbe8ff;stroke-width:34;stroke-linecap:round}.admin-roadmap-page__road-track{fill:none;stroke:#1e2f73;stroke-width:26;stroke-linecap:round;stroke-dasharray:14 10}.admin-roadmap-page__topic-nodes{position:absolute;inset:0;pointer-events:none}.admin-roadmap-page__topic-node{position:absolute;top:50%;transform:translate(-50%,-50%);background:#fff;border:2px solid #0ea5e9;border-radius:14px;width:160px;padding:.55rem .65rem;display:grid;gap:.15rem;box-shadow:0 12px 24px #1e293b26;pointer-events:auto;cursor:pointer;text-align:left;appearance:none}.admin-roadmap-page__topic-node--active{box-shadow:0 0 0 3px #0ea5e959,0 12px 24px #1e293b26}.admin-roadmap-page__topic-badge{font-style:normal;background:#fef3c7;color:#92400e;border-radius:999px;font-size:.65rem;font-weight:700;width:fit-content;padding:.1rem .42rem}.admin-roadmap-page__topic-node--easy{border-color:#16a34a}.admin-roadmap-page__topic-node--medium{border-color:#d97706}.admin-roadmap-page__topic-node--hard{border-color:#dc2626}.admin-roadmap-page__topic-order{width:1.4rem;height:1.4rem;border-radius:999px;display:inline-flex;align-items:center;justify-content:center;font-size:.75rem;font-weight:700;color:#fff;background:#1d4ed8}.admin-roadmap-page__topic-node strong{font-size:.82rem;color:#0f172a;line-height:1.25}.admin-roadmap-page__topic-node small{color:#475569;font-size:.72rem}.admin-roadmap-page__topic-controls{display:flex;gap:.35rem}.admin-roadmap-page__topic-controls button{border:1px solid #cbd5e1;border-radius:6px;background:#f8fafc;color:#0f172a;font-weight:700;cursor:pointer;min-width:1.6rem;height:1.5rem}.admin-roadmap-page__topic-controls button:disabled{opacity:.45;cursor:not-allowed}.admin-roadmap-page__modal-backdrop{position:fixed;inset:0;background:#0f172a8c;display:grid;place-items:center;z-index:70;padding:1rem}.admin-roadmap-page__modal{width:min(760px,100%);max-height:90vh;overflow:auto;border-radius:14px;background:#fff;border:1px solid #d6e2f3;box-shadow:0 18px 38px #0f172a4d;padding:1rem;display:grid;gap:.8rem}.admin-roadmap-page__modal[open]{display:grid}.admin-roadmap-page__modal-header{display:flex;align-items:center;justify-content:space-between;gap:.75rem}.admin-roadmap-page__modal-header h3{margin:0}.admin-roadmap-page__modal-close{border:0;border-radius:8px;padding:.5rem .7rem;background:#e2e8f0;color:#0f172a;font-weight:700;cursor:pointer}.admin-roadmap-page__form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.7rem}.admin-roadmap-page__form-grid label{display:grid;gap:.35rem;font-size:.82rem;color:#334155}.admin-roadmap-page__form-grid input,.admin-roadmap-page__form-grid textarea,.admin-roadmap-page__form-grid select{border:1px solid #cbd5e1;border-radius:8px;padding:.5rem .6rem}.admin-roadmap-page__form-grid textarea{resize:vertical}.admin-roadmap-page__checkbox-row{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.5rem}.admin-roadmap-page__checkbox-row label{display:flex;align-items:center;gap:.35rem;font-size:.82rem;color:#334155}.admin-roadmap-page__actions{display:flex;gap:.6rem;flex-wrap:wrap}.admin-roadmap-page__button{border:0;border-radius:8px;background:#0369a1;color:#fff;font-weight:700;padding:.55rem .9rem;cursor:pointer}.admin-roadmap-page__button:disabled{opacity:.6;cursor:not-allowed}.admin-roadmap-page__result-list{display:grid;gap:.5rem}.admin-roadmap-page__result-item{border:1px solid #e2e8f0;border-radius:8px;padding:.55rem .7rem;display:grid;gap:.2rem}.admin-roadmap-page__feedback-list{display:grid;gap:.6rem}.admin-roadmap-page__feedback-item{border:1px solid #dbe3ef;border-radius:10px;background:#fff;padding:.7rem .8rem;display:grid;gap:.25rem}.admin-roadmap-page__feedback-main{display:flex;justify-content:space-between;align-items:center;gap:.6rem}.admin-roadmap-page__feedback-stars{color:#a16207;font-weight:700;font-size:.8rem}.admin-roadmap-page__feedback-content{margin:0;color:#334155;font-size:.86rem;line-height:1.45}.admin-roadmap-page__feedback-updated{color:#64748b;font-size:.76rem}.admin-roadmap-page__feedback-pagination{display:flex;align-items:center;justify-content:space-between;gap:.75rem;margin-top:.3rem;flex-wrap:wrap}.admin-roadmap-page__result-item span{color:#475569;font-size:.82rem}.admin-roadmap-page__success{color:#15803d;font-weight:600}@media(max-width:768px){.admin-roadmap-page__form-grid,.admin-roadmap-page__row{grid-template-columns:1fr}.admin-roadmap-page__road-header{flex-direction:column}.admin-roadmap-page__topic-node{width:125px}}.admin-roadmap-topics-page{display:grid;gap:1rem}.admin-roadmap-topics-page__header{display:flex;justify-content:space-between;align-items:flex-start;gap:1rem}.admin-roadmap-topics-page__header h1{margin:0}.admin-roadmap-topics-page__header p{margin:.4rem 0 0;color:#475569}.admin-roadmap-topics-page__header-actions{display:flex;gap:.6rem;flex-wrap:wrap;justify-content:flex-end}.admin-roadmap-topics-page__snake-road{position:relative;border-radius:16px;border:1px solid #d9e4f2;background:linear-gradient(180deg,#f8fbff,#edf4ff);overflow:hidden}.admin-roadmap-topics-page__snake-svg{position:absolute;inset:0;width:100%;height:100%}.admin-roadmap-topics-page__snake-line{fill:none;stroke:#1e2f73;stroke-width:22;stroke-linecap:round;stroke-dasharray:14 10;opacity:.9}.admin-roadmap-topics-page__nodes-layer{position:relative;width:100%;height:100%}.admin-roadmap-topics-page__node-wrap{position:absolute;transform:translate(-50%,-50%)}.admin-roadmap-topics-page__node{position:relative;top:auto;transform:none;width:170px}.admin-roadmap-topics-page__node-delete{position:absolute;top:8px;right:8px;width:24px;height:24px;border:0;border-radius:999px;background:#dc2626;color:#fff;font-weight:700;line-height:1;cursor:pointer;box-shadow:0 8px 14px #0f172a38;z-index:2}.admin-roadmap-topics-page__node-delete:hover{background:#b91c1c}.admin-roadmap-topics-page__archive-button{border:0;border-radius:8px;background:#b91c1c;color:#fff;font-weight:700;padding:.55rem .9rem;cursor:pointer}.admin-roadmap-topics-page__archive-button:disabled{opacity:.6;cursor:not-allowed}.admin-roadmap-topics-page__entry-test-card{border:1px solid #d9e4f2;border-radius:12px;background:#f8fbff;padding:.9rem;display:grid;gap:.7rem}.admin-roadmap-topics-page__entry-test-card h3{margin:0}.admin-roadmap-topics-page__entry-test-card p{margin:.35rem 0 0;color:#475569}.admin-roadmap-topics-page__entry-field{display:grid;gap:.35rem;max-width:420px}.admin-roadmap-topics-page__entry-field span{font-size:.82rem;color:#334155}.admin-roadmap-topics-page__entry-field input{border:1px solid #cbd5e1;border-radius:8px;padding:.5rem .6rem}.admin-roadmap-topics-page__search-results{display:grid;gap:.5rem}.admin-roadmap-topics-page__search-result-item{border:1px solid #dbe5f4;border-radius:10px;background:#fff;padding:.65rem;display:flex;align-items:flex-start;justify-content:space-between;gap:.75rem}.admin-roadmap-topics-page__search-result-item p{margin:.3rem 0;color:#475569;font-size:.84rem}.admin-roadmap-topics-page__search-result-item small{color:#334155;font-size:.77rem}.admin-roadmap-topics-page__material-panel{border:1px solid #dbe5f4;border-radius:10px;background:#f8fbff;padding:.75rem;display:grid;gap:.6rem}.admin-roadmap-topics-page__material-panel h4{margin:0}.admin-roadmap-topics-page__material-panel p{margin:.35rem 0 0;color:#475569}.admin-roadmap-topics-page__material-tabs{display:flex;flex-wrap:wrap;gap:.4rem}.admin-roadmap-topics-page__material-tab{border:1px solid #bfdbfe;background:#eff6ff;color:#1e3a8a;font-weight:700;border-radius:999px;padding:.35rem .65rem;cursor:pointer}.admin-roadmap-topics-page__material-tab--active{background:#1d4ed8;border-color:#1d4ed8;color:#fff}.admin-roadmap-topics-page__lesson-picker{border:1px solid #dbe5f4;border-radius:10px;padding:.6rem;background:#f8fbff;display:grid;gap:.5rem}.admin-roadmap-topics-page__lesson-list{max-height:180px;overflow:auto;display:grid;gap:.4rem}.admin-roadmap-topics-page__lesson-item{display:flex;gap:.45rem;align-items:center;font-size:.82rem;color:#1e293b}.admin-roadmap-topics-page__lesson-count{margin:0;font-size:.8rem;color:#334155;font-weight:600}.admin-roadmap-topics-page__node:active{cursor:grabbing}.admin-roadmap-topics-page .admin-roadmap-page__modal-backdrop{left:240px;right:0;display:flex;justify-content:center;align-items:center;padding:1rem;overflow-y:auto}.admin-roadmap-topics-page .admin-roadmap-page__modal{width:min(720px,calc(100vw - 2rem));max-height:92vh;margin:auto;box-sizing:border-box}.admin-roadmap-topics-page .admin-roadmap-page__modal[open]{display:grid}.admin-roadmap-topics-page__confirm-modal{width:min(560px,calc(100vw - 2rem))}.admin-roadmap-topics-page__toast{position:fixed;right:1rem;bottom:1rem;z-index:120;border-radius:10px;padding:.7rem .9rem;color:#fff;font-size:.84rem;font-weight:600;box-shadow:0 10px 24px #0f172a47}.admin-roadmap-topics-page__toast--success{background:#15803d}.admin-roadmap-topics-page__toast--error{background:#b91c1c}@media(max-width:1024px){.admin-roadmap-topics-page__node{width:146px}}@media(max-width:768px){.admin-roadmap-topics-page__header{flex-direction:column}.admin-roadmap-topics-page__header-actions{justify-content:flex-start}.admin-roadmap-topics-page__snake-road{min-height:780px!important}.admin-roadmap-topics-page__node{width:132px}.admin-roadmap-topics-page .admin-roadmap-page__form-grid{grid-template-columns:1fr}.admin-roadmap-topics-page .admin-roadmap-page__modal{width:min(560px,calc(100vw - 1rem))}.admin-roadmap-topics-page__search-result-item{flex-direction:column}.admin-roadmap-topics-page .admin-roadmap-page__modal-backdrop{left:0}}.rp{--rp-primary: #5e5ce6;--rp-primary-soft: rgba(94, 92, 230, .08);--rp-text-1: #0e0c15;--rp-text-2: #3f3a52;--rp-text-3: #756b85;--rp-text-4: #9ca3af;--rp-border: #e8e5f0;--rp-surface: #ffffff;--rp-bg: #fafaff;--rp-radius: 12px;--rp-f-head: "Be Vietnam Pro", -apple-system, sans-serif;--rp-f-body: "Inter", -apple-system, sans-serif;max-width:1200px;margin:0 auto;padding:0 0 2.5rem;font-family:var(--rp-f-body)}.rp-header{margin-bottom:1.375rem;padding-bottom:1.25rem;border-bottom:1px solid var(--rp-border)}.rp-title{font-size:1.4rem;font-weight:700;color:var(--rp-text-1);font-family:var(--rp-f-head);letter-spacing:-.3px;margin:0 0 .25rem}.rp-subtitle{font-size:.85rem;color:var(--rp-text-3);margin:0}.rp-tabs{display:flex;gap:.2rem;margin-bottom:1.25rem;background:var(--rp-bg);padding:.25rem;border-radius:10px;width:fit-content;border:1px solid var(--rp-border)}.rp-tab{display:flex;align-items:center;gap:.4rem;padding:.45rem .875rem;font-size:.82rem;font-weight:500;color:var(--rp-text-3);background:transparent;border:none;border-radius:7px;cursor:pointer;transition:all .14s ease;font-family:var(--rp-f-body)}.rp-tab:hover{color:var(--rp-text-1);background:var(--rp-surface)}.rp-tab--active{background:var(--rp-surface);color:var(--rp-primary);font-weight:600;box-shadow:0 1px 3px #0e0c151a}.rp-tab-badge{background:var(--rp-primary);color:#fff;font-size:.68rem;font-weight:700;border-radius:9999px;padding:0 5px;min-width:16px;height:16px;line-height:16px;text-align:center;display:inline-block}.rp-error{background:#fef2f2;border:1px solid #fecaca;color:#7f1d1d;border-radius:8px;padding:.75rem 1rem;font-size:.85rem;margin-bottom:1rem}.rp-body{display:grid;grid-template-columns:1fr 360px;gap:1rem;align-items:start}.rp-list{background:var(--rp-surface);border:1px solid var(--rp-border);border-radius:var(--rp-radius);overflow:hidden;display:flex;flex-direction:column}.rp-search-wrap{position:relative;padding:.75rem;border-bottom:1px solid var(--rp-border)}.rp-search-icon{position:absolute;left:1.375rem;top:50%;transform:translateY(-50%);color:var(--rp-text-4);pointer-events:none}.rp-search-input{width:100%;padding:.5rem .75rem .5rem 1.875rem;font-size:.83rem;border:1px solid var(--rp-border);border-radius:8px;background:var(--rp-bg);color:var(--rp-text-1);font-family:var(--rp-f-body);outline:none;transition:border-color .14s ease;box-sizing:border-box}.rp-search-input:focus{border-color:var(--rp-primary)}.rp-list-count{font-size:.73rem;color:var(--rp-text-4);padding:.35rem .875rem;margin:0;background:var(--rp-bg);border-bottom:1px solid var(--rp-border)}.rp-items{overflow-y:auto;max-height:calc(100vh - 300px)}.rp-row{display:flex;align-items:center;gap:.875rem;padding:.875rem 1rem;border:none;border-bottom:1px solid var(--rp-border);background:transparent;cursor:pointer;text-align:left;width:100%;transition:background .12s ease;font-family:var(--rp-f-body)}.rp-row:last-child{border-bottom:none}.rp-row:hover{background:var(--rp-bg)}.rp-row--active,.rp-row--active:hover{background:var(--rp-primary-soft)}.rp-row-avatar{width:36px;height:36px;border-radius:9px;background:var(--rp-primary-soft);color:var(--rp-primary);font-size:.72rem;font-weight:700;display:flex;align-items:center;justify-content:center;flex-shrink:0;font-family:var(--rp-f-head)}.rp-row-main{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}.rp-row-name{font-size:.875rem;font-weight:600;color:var(--rp-text-1);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.rp-row-sub{font-size:.78rem;color:var(--rp-text-3);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.rp-row-date{font-size:.72rem;color:var(--rp-text-4)}.rp-row--skeleton{pointer-events:none}.rp-skel{background:#f0eef8;border-radius:4px;animation:rp-pulse 1.4s ease-in-out infinite}.rp-skel--avatar{width:36px;height:36px;border-radius:9px;flex-shrink:0}.rp-skel--line{height:10px}.rp-skel--badge{width:58px;height:22px;border-radius:9999px;flex-shrink:0}@keyframes rp-pulse{0%,to{opacity:1}50%{opacity:.38}}.rp-empty{padding:3rem 1rem;text-align:center;color:var(--rp-text-3);font-size:.85rem}.rp-pagination{display:flex;align-items:center;justify-content:center;gap:.875rem;padding:.75rem;border-top:1px solid var(--rp-border)}.rp-page-btn{width:28px;height:28px;display:flex;align-items:center;justify-content:center;border:1px solid var(--rp-border);border-radius:6px;background:transparent;cursor:pointer;color:var(--rp-text-2);transition:all .12s ease}.rp-page-btn:disabled{opacity:.3;cursor:not-allowed}.rp-page-btn:not(:disabled):hover{border-color:var(--rp-primary);color:var(--rp-primary)}.rp-pagination-info{font-size:.8rem;color:var(--rp-text-3)}.rp-badge{display:inline-flex;align-items:center;padding:.18rem .55rem;border-radius:9999px;font-size:.71rem;font-weight:600;white-space:nowrap;flex-shrink:0}.badge--pending{background:#fef3c7;color:#92400e}.badge--approved{background:#d1fae5;color:#065f46}.badge--rejected{background:#fee2e2;color:#991b1b}.rp-detail{background:var(--rp-surface);border:1px solid var(--rp-border);border-radius:var(--rp-radius);position:sticky;top:80px;max-height:calc(100vh - 120px);overflow-y:auto;display:flex;flex-direction:column}.rp-detail-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.75rem;padding:4rem 2rem;color:var(--rp-text-4);font-size:.85rem;text-align:center;min-height:320px}.rp-detail-empty p{margin:0}.rp-detail-empty-icon{width:52px;height:52px;border-radius:14px;background:var(--rp-bg);border:1px solid var(--rp-border);display:flex;align-items:center;justify-content:center;color:var(--rp-text-4)}.rpd-header{display:flex;align-items:flex-start;gap:.875rem;padding:1.25rem 1.25rem 1rem;border-bottom:1px solid var(--rp-border)}.rpd-avatar{width:44px;height:44px;border-radius:12px;background:var(--rp-primary-soft);color:var(--rp-primary);font-size:.875rem;font-weight:700;display:flex;align-items:center;justify-content:center;flex-shrink:0;font-family:var(--rp-f-head)}.rpd-header-info{flex:1;min-width:0}.rpd-name{font-size:.975rem;font-weight:700;color:var(--rp-text-1);font-family:var(--rp-f-head);margin:0 0 2px}.rpd-username{font-size:.78rem;color:var(--rp-text-3);margin:0 0 .5rem}.rpd-close{width:28px;height:28px;border-radius:6px;border:1px solid var(--rp-border);background:transparent;cursor:pointer;display:flex;align-items:center;justify-content:center;color:var(--rp-text-3);transition:all .12s ease;flex-shrink:0}.rpd-close:hover{border-color:var(--rp-primary);color:var(--rp-primary)}.rpd-body{padding:1rem 1.25rem 1.5rem;display:flex;flex-direction:column;gap:1rem}.rpd-section{display:flex;flex-direction:column;gap:.5rem}.rpd-section-title{display:flex;align-items:center;gap:.35rem;font-size:.7rem;font-weight:600;color:var(--rp-text-3);text-transform:uppercase;letter-spacing:.05em;font-family:var(--rp-f-body);margin:0}.rpd-rows{border:1px solid var(--rp-border);border-radius:8px;overflow:hidden}.rpd-row{display:flex;gap:.75rem;padding:.5rem .75rem;border-bottom:1px solid var(--rp-border);font-size:.82rem}.rpd-row:last-child{border-bottom:none}.rpd-row-label{display:flex;align-items:center;gap:.25rem;color:var(--rp-text-3);min-width:76px;flex-shrink:0;font-size:.78rem}.rpd-row-value{color:var(--rp-text-1);font-weight:500;flex:1;text-align:right;word-break:break-word}.rpd-link{color:var(--rp-primary);text-decoration:none;font-size:.82rem;word-break:break-all}.rpd-link:hover{text-decoration:underline}.rpd-description{font-size:.83rem;color:var(--rp-text-2);line-height:1.65;background:var(--rp-bg);border:1px solid var(--rp-border);border-radius:8px;padding:.75rem;margin:0}.rpd-admin-note{font-size:.83rem;color:var(--rp-text-2);line-height:1.65;background:#fef9ec;border:1px solid #fde68a;border-left:3px solid #f59e0b;border-radius:8px;padding:.75rem;margin:0}.rpd-download-btn{display:flex;align-items:center;justify-content:center;gap:.5rem;padding:.6rem .875rem;font-size:.82rem;font-weight:500;color:var(--rp-primary);border:1px solid var(--rp-border);border-radius:8px;background:var(--rp-bg);cursor:pointer;transition:all .12s ease;font-family:var(--rp-f-body);width:100%}.rpd-download-btn:hover{border-color:var(--rp-primary);background:var(--rp-primary-soft)}.rpd-actions{border-top:1px solid var(--rp-border);padding-top:1rem;display:flex;flex-direction:column;gap:.625rem}.rpd-action-btns{display:grid;grid-template-columns:1fr 1fr;gap:.5rem}.rpd-approve,.rpd-reject{display:flex;align-items:center;justify-content:center;gap:.4rem;padding:.6rem .75rem;font-size:.82rem;font-weight:600;border-radius:8px;cursor:pointer;transition:all .14s ease;font-family:var(--rp-f-body);border:1.5px solid transparent}.rpd-approve{background:#f0fdf4;color:#166534;border-color:#bbf7d0}.rpd-approve:hover,.rpd-approve--active{background:#15803d;color:#fff;border-color:#15803d}.rpd-reject{background:#fef2f2;color:#991b1b;border-color:#fecaca}.rpd-reject:hover,.rpd-reject--active{background:#dc2626;color:#fff;border-color:#dc2626}.rpd-comment-wrap{display:flex;flex-direction:column;gap:.5rem;animation:rpd-fade-in .15s ease}@keyframes rpd-fade-in{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}.rpd-textarea{width:100%;padding:.6rem .75rem;font-size:.83rem;border:1px solid var(--rp-border);border-radius:8px;font-family:var(--rp-f-body);color:var(--rp-text-1);resize:vertical;outline:none;transition:border-color .12s ease;box-sizing:border-box}.rpd-textarea:focus{border-color:var(--rp-primary)}.rpd-submit{width:100%;padding:.65rem 1rem;font-size:.83rem;font-weight:600;border-radius:8px;border:none;cursor:pointer;transition:opacity .14s ease;font-family:var(--rp-f-body);letter-spacing:.01em}.rpd-submit:disabled{opacity:.5;cursor:not-allowed}.rpd-submit--approve{background:#15803d;color:#fff}.rpd-submit--approve:not(:disabled):hover{background:#166534}.rpd-submit--reject{background:#dc2626;color:#fff}.rpd-submit--reject:not(:disabled):hover{background:#b91c1c}.rp-toast{position:fixed;bottom:2rem;right:2rem;display:flex;align-items:center;gap:.625rem;padding:.75rem 1.125rem;border-radius:10px;font-size:.85rem;font-weight:500;box-shadow:0 4px 20px #0e0c1529;z-index:9999;animation:toast-in .22s ease;font-family:var(--rp-f-body)}@keyframes toast-in{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.rp-toast--success{background:#0e0c15;color:#fff}.rp-toast--error{background:#dc2626;color:#fff}@media(max-width:900px){.rp-body{grid-template-columns:1fr}.rp-detail{position:static;max-height:none}.rp-items{max-height:50vh}}.assessment-builder-flow__step{gap:.95rem}.assessment-builder-flow__orchestration-card{display:grid;gap:.8rem}.assessment-builder-flow__routing-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:.75rem}.assessment-builder-flow__route-item{border:1px solid #dde7f5;border-radius:12px;background:#fff;padding:.8rem;display:grid;gap:.55rem}.assessment-builder-flow__route-item strong{color:#142235}.assessment-builder-flow__route-item p{margin:.2rem 0 0;font-size:.84rem;color:#60748f;line-height:1.45}.assessment-builder-flow__route-icon{width:1.9rem;height:1.9rem;border-radius:10px;display:inline-flex;align-items:center;justify-content:center;background:#edf3ff;color:#1f5eff}.assessment-builder-flow__orchestration-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:1rem}.assessment-builder-flow__review-meta{display:flex;gap:.5rem;flex-wrap:wrap;align-items:center}.assessment-builder-flow__review-stats{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.6rem}.assessment-builder-flow__publish-summary{border-radius:10px;padding:.7rem .75rem;border:1px solid #d9e8d8;background:#f0faf1;display:grid;gap:.3rem}.assessment-builder-flow__publish-summary.warn{border-color:#f0dbb2;background:#fff8ea}.assessment-builder-flow__publish-summary p{margin:0;font-size:.84rem;color:#3b4e68}.assessment-builder-flow__step-title{display:flex;align-items:center;gap:.6rem}.assessment-builder-flow__panel{border:1px solid #dbe8f8;border-radius:12px;padding:.9rem;background:#f8fbff;display:flex;flex-direction:column;gap:.75rem}.assessment-builder-flow__bulk-bar{border:1px dashed #b8cfee;border-radius:12px;padding:.65rem .75rem;display:flex;align-items:center;justify-content:space-between;gap:.6rem;flex-wrap:wrap}.assessment-builder-flow__link-btn{border:0;background:transparent;color:#1f5eff;font-size:.82rem;font-weight:700;margin-top:5px;padding:0;display:inline-flex;align-items:center;gap:.2rem;cursor:pointer}.assessment-builder-flow__distribution{display:inline-flex;gap:.6rem;align-items:center;flex-wrap:wrap;font-size:.85rem;color:#24364b;font-weight:600}.assessment-builder-flow__validation-grid{display:grid;gap:.7rem;grid-template-columns:repeat(auto-fit,minmax(170px,1fr))}.assessment-builder-flow__warning-banner{border:1px solid #f3d9a8;background:#fff7e8;border-radius:11px;padding:.65rem .75rem;color:#8a5a09;display:flex;align-items:center;gap:.45rem;font-size:.88rem}.assessment-builder-flow__issues{margin:0;padding-left:1.2rem;font-size:.87rem}.assessment-builder-flow__issues li+li{margin-top:.3rem}.assessment-builder-flow__issues--error{color:#9f1239}.assessment-builder-flow__issues--warn{color:#7a5a0a}.assessment-builder-flow__generation-summary{border:1px solid #dbe8f8;border-radius:12px;padding:.85rem;background:#f8fbff}.assessment-builder-flow__badge-ai-draft{background:#fff8db;border-color:#f0d27a;color:#946200}.assessment-builder-flow__badge-ai{background:#efe8ff;border-color:#d9c4ff;color:#5b35a5}.assessment-builder-flow__selected-btn{border-color:#2b62f5;color:#2b62f5;background:#eef4ff}.assessment-builder-flow__toast{position:fixed;right:1rem;bottom:1rem;z-index:1300;border-radius:10px;padding:.75rem .95rem;color:#fff;font-size:.88rem;font-weight:600;box-shadow:0 10px 24px #17284133}.assessment-builder-flow__toast--success{background:#0d845d}.assessment-builder-flow__toast--error{background:#b4223f}@media(max-width:768px){.assessment-builder-flow__toast{right:.7rem;bottom:.7rem;left:.7rem}}.lesson-plans-page{max-width:1240px;margin:0 auto}.lp-header{display:flex;justify-content:space-between;align-items:flex-start;gap:1rem;margin-bottom:1.4rem}.lp-header-copy h1{margin:0;font-size:clamp(1.85rem,2vw,2.35rem);line-height:1.16;font-weight:800;color:#0f172a}.lp-header-copy p{margin:.5rem 0 0;max-width:600px;font-size:1rem;line-height:1.6;color:#64748b}.lp-btn-create{display:inline-flex;align-items:center;gap:.6rem;border:none;border-radius:14px;padding:.9rem 1.2rem;background:linear-gradient(135deg,#2563eb,#3b82f6);color:#fff;font-family:var(--font-heading);font-size:.92rem;font-weight:700;box-shadow:0 12px 26px #2563eb38;white-space:nowrap;transition:transform .16s ease,box-shadow .18s ease}.lp-btn-create:hover{transform:translateY(-1px);box-shadow:0 18px 34px #2563eb47}.lp-stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.8rem;margin-bottom:1.2rem}.lp-stat-card{background:#fff;border:1px solid #e2e8f0;border-radius:14px;padding:.95rem 1rem;display:flex;align-items:center;gap:.85rem}.lp-stat-icon{width:46px;height:46px;border-radius:12px;display:inline-flex;align-items:center;justify-content:center;font-size:1.35rem;flex-shrink:0}.lp-stat-icon.blue{background:#dbeafe}.lp-stat-icon.green{background:#d1fae5}.lp-stat-icon.amber{background:#fef3c7}.lp-stat-icon.violet{background:#ede9fe}.lp-stat-label{font-size:.76rem;font-weight:700;color:#64748b;text-transform:uppercase;letter-spacing:.04em}.lp-stat-value{display:block;font-size:1.75rem;font-weight:800;color:#0f172a;line-height:1;margin-top:.15rem}.lp-toolbar{display:flex;align-items:center;gap:.75rem;margin-bottom:1.2rem;flex-wrap:wrap}.lp-search{display:flex;align-items:center;gap:.45rem;border:1px solid #dbe4f0;border-radius:12px;padding:0 .85rem;background:#fff;color:#94a3b8;flex:1;min-width:220px;max-width:360px}.lp-search input{border:none;height:40px;width:100%;font-size:.9rem;font-family:var(--font-heading);color:#334155;background:transparent}.lp-search input:focus{outline:none}.lp-btn-refresh{display:inline-flex;align-items:center;gap:.45rem;border:1px solid #dbe4f0;border-radius:12px;padding:.6rem .95rem;background:#fff;color:#475569;font-family:var(--font-heading);font-size:.88rem;font-weight:700;transition:background .16s ease,border-color .16s ease}.lp-btn-refresh:hover{background:#f8fafc;border-color:#c7d2e5}.lp-state{min-height:340px;border:1px solid #e2e8f0;border-radius:20px;background:#ffffffe6;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:2.5rem 1.5rem;color:#64748b;font-weight:600}.lp-empty-icon{width:160px;height:160px;border-radius:50%;background:radial-gradient(circle at 30% 30%,#fff,#ecf2ff);color:#c2d2fb;display:flex;align-items:center;justify-content:center;margin-bottom:1.2rem;box-shadow:0 20px 50px #2563eb14}.lp-state h3{margin:0;font-size:1.7rem;color:#0f172a}.lp-state p{margin:.8rem 0 1.4rem;max-width:400px;font-size:.96rem;line-height:1.7;color:#64748b;font-weight:400}.lp-empty-cta{display:inline-flex;align-items:center;gap:.45rem;border:none;border-radius:12px;padding:.85rem 1.2rem;background:#eff6ff;color:#0f172a;font-family:var(--font-heading);font-size:.95rem;font-weight:800;transition:background .16s ease}.lp-empty-cta:hover{background:#dbeafe}.lp-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(330px,1fr));gap:1rem}.lp-card{display:flex;flex-direction:column;border:1px solid #e2e8f0;border-radius:18px;background:#fff;box-shadow:0 14px 30px #0f172a0f;overflow:hidden;transition:transform .17s ease,box-shadow .17s ease,border-color .17s ease}.lp-card:hover{transform:translateY(-2px);border-color:#bfd4ff;box-shadow:0 20px 40px #2563eb1a}.lp-card-accent{height:5px;background:linear-gradient(90deg,#2563eb,#60a5fa)}.lp-card-body{padding:1.1rem 1.15rem;display:flex;flex-direction:column;gap:.75rem;flex:1}.lp-card-top{display:flex;justify-content:space-between;align-items:flex-start;gap:.5rem}.lp-card-title{margin:0;font-size:1.05rem;font-weight:700;color:#0f172a;line-height:1.35}.lp-card-date{font-size:.76rem;color:#94a3b8;font-weight:600;white-space:nowrap}.lp-card-strategy{margin:0;font-size:.88rem;color:#64748b;line-height:1.6;display:-webkit-box;-webkit-line-clamp:2;line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.lp-objectives{display:flex;flex-wrap:wrap;gap:.35rem}.lp-obj-chip{background:#eff6ff;color:#1d4ed8;border-radius:8px;padding:3px 9px;font-size:.76rem;font-weight:600;max-width:200px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.lp-obj-more{font-size:.76rem;color:#94a3b8;font-weight:600;align-self:center}.lp-card-meta{display:flex;gap:.85rem;flex-wrap:wrap}.lp-meta-item{display:inline-flex;align-items:center;gap:.3rem;font-size:.8rem;color:#64748b;font-weight:600}.lp-card-footer{padding:.75rem 1.15rem;border-top:1px solid #edf2f7;display:flex;gap:.55rem;flex-wrap:wrap}.lp-btn{display:inline-flex;align-items:center;gap:.38rem;border-radius:10px;padding:.58rem .9rem;font-family:var(--font-heading);font-size:.84rem;font-weight:700;transition:transform .14s ease,background .16s ease,border-color .16s ease}.lp-btn:hover{transform:translateY(-1px)}.lp-btn-primary{background:#2563eb;color:#fff;border:none;box-shadow:0 6px 14px #2563eb33}.lp-btn-primary:hover{background:#1d4ed8}.lp-btn-secondary{background:#fff;color:#334155;border:1px solid #dbe4f0}.lp-btn-secondary:hover{background:#f8fafc;border-color:#c7d2e5}.lp-btn-danger{background:#fff;color:#dc2626;border:1px solid #fecaca}.lp-btn-danger:hover{background:#fef2f2}.lp-btn:disabled{opacity:.55;cursor:not-allowed;transform:none}.lp-modal-overlay{position:fixed;inset:0;z-index:1200;background:#0c1a2e73;display:flex;align-items:center;justify-content:center;padding:1rem}.lp-modal{width:min(680px,100%);max-height:90vh;overflow-y:auto;background:#fff;border-radius:20px;border:1px solid #dfe8f5;box-shadow:0 24px 48px #0e1d3438;display:flex;flex-direction:column}.lp-modal-header{padding:1.1rem 1.3rem;border-bottom:1px solid #edf2f9;display:flex;justify-content:space-between;align-items:flex-start;gap:.75rem;background:linear-gradient(180deg,#fbfdff,#f5f9ff);border-radius:20px 20px 0 0}.lp-modal-header h3{margin:0;font-size:1.15rem;color:#0f172a}.lp-modal-header p{margin:.3rem 0 0;font-size:.88rem;color:#64748b}.lp-modal-close{width:34px;height:34px;border:1px solid #e2e8f0;border-radius:9px;background:#fff;color:#64748b;display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;transition:background .15s ease}.lp-modal-close:hover{background:#f1f5f9}.lp-modal-body{padding:1.1rem 1.3rem;display:flex;flex-direction:column;gap:.9rem;flex:1}.lp-field label{display:block;margin-bottom:.42rem;font-size:.9rem;font-weight:700;color:#334155}.lp-field label span{color:#ef4444;margin-left:2px}.lp-field-hint{font-size:.78rem;color:#94a3b8;font-weight:400;margin-left:4px}.lp-input,.lp-textarea{width:100%;border:1px solid #dbe4f0;border-radius:12px;padding:.82rem .95rem;font-size:.92rem;font-family:var(--font-heading);color:#0f172a;background:#fff;transition:border-color .18s ease,box-shadow .18s ease;box-sizing:border-box}.lp-textarea{resize:vertical}.lp-input:focus,.lp-textarea:focus{outline:none;border-color:#7aa2ff;box-shadow:0 0 0 4px #2563eb14}.lp-modal-footer{padding:.9rem 1.3rem;border-top:1px solid #edf2f9;display:flex;justify-content:flex-end;gap:.6rem}.lp-detail-section{border:1px solid #edf2f9;border-radius:12px;padding:.85rem 1rem;background:#f8fbff}.lp-detail-section-title{margin:0 0 .6rem;font-size:.82rem;font-weight:700;color:#64748b;text-transform:uppercase;letter-spacing:.05em}.lp-detail-list{margin:0;padding-left:1.2rem;display:flex;flex-direction:column;gap:.35rem}.lp-detail-list li{font-size:.92rem;color:#1e293b;line-height:1.55}.lp-detail-text{margin:0;font-size:.92rem;color:#1e293b;line-height:1.65;white-space:pre-wrap}@media(max-width:1100px){.lp-stats{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:768px){.lp-header{flex-direction:column}.lp-btn-create{width:100%;justify-content:center}.lp-stats{grid-template-columns:repeat(2,minmax(0,1fr))}.lp-grid{grid-template-columns:1fr}.lp-modal{border-radius:16px}.lp-card-footer{flex-direction:column}.lp-card-footer .lp-btn{width:100%;justify-content:center}}.lp-steps{display:flex;align-items:center;gap:.5rem;padding:.75rem 1.3rem;border-bottom:1px solid #edf2f9;background:#f8fbff}.lp-step{display:flex;align-items:center;gap:.4rem;font-size:.84rem;font-weight:600;color:#94a3b8}.lp-step.active{color:#0f172a}.lp-step.done{color:#1d4ed8}.lp-step-dot{width:22px;height:22px;border-radius:50%;border:1.5px solid #cbd5e1;background:#fff;color:#64748b;display:inline-flex;align-items:center;justify-content:center;font-size:.72rem;font-weight:700}.lp-step.active .lp-step-dot{border-color:#3b82f6;background:#3b82f6;color:#fff;box-shadow:0 0 0 3px #3b82f626}.lp-step.done .lp-step-dot{border-color:#93c5fd;background:#eff6ff;color:#1d4ed8}.lp-step-arrow{color:#cbd5e1;flex-shrink:0}.lp-selected-lesson{display:flex;align-items:center;gap:.5rem;padding:.65rem .9rem;background:#eff6ff;border:1px solid #bfdbfe;border-radius:10px;font-size:.88rem;color:#1d4ed8}.lp-selected-lesson strong{font-weight:700}.teacher-mindmaps-page{max-width:1240px;margin:0 auto}.mindmaps-header{display:flex;justify-content:space-between;align-items:flex-start;gap:1rem;margin-bottom:1rem}.header-copy h1{margin:0;font-size:clamp(1.85rem,2vw,2.35rem);line-height:1.16;font-weight:800;color:#0f172a}.header-copy p{margin:.55rem 0 0;max-width:640px;font-size:1rem;line-height:1.6;color:#64748b}.btn-generate{display:inline-flex;align-items:center;gap:.7rem;border:none;border-radius:14px;padding:.95rem 1.25rem;background:linear-gradient(135deg,#2563eb,#3b82f6);color:#fff;font-family:var(--font-heading);font-size:.92rem;font-weight:700;box-shadow:0 14px 28px #2563eb38;transition:transform var(--transition-fast),box-shadow var(--transition-fast)}.btn-generate:hover{transform:translateY(-1px);box-shadow:0 18px 34px #2563eb47}.generator-panel{margin:1.4rem 0 1.5rem;padding:1.4rem;border:1px solid #e2e8f0;border-radius:20px;background:linear-gradient(180deg,#fffffffa,#f7fafffa);box-shadow:0 18px 38px #0f172a12}.generator-heading{display:flex;align-items:flex-start;gap:.95rem;margin-bottom:1.35rem}.generator-icon{width:40px;height:40px;border-radius:12px;background:#eff6ff;color:#2563eb;display:inline-flex;align-items:center;justify-content:center;flex-shrink:0}.generator-heading h3{margin:0;font-size:1.12rem;color:#0f172a}.generator-heading p{margin:.35rem 0 0;color:#64748b;font-size:.92rem;line-height:1.55}.mindmap-stepper{margin:.75rem 0 0;padding:0;list-style:none;display:flex;align-items:flex-start}.mindmap-step-item{position:relative;flex:1;min-width:0;display:flex;flex-direction:column;align-items:center;gap:.38rem;padding:0 .35rem;color:#64748b;transition:color .2s ease}.mindmap-step-item:after{content:"";position:absolute;left:calc(50% + 14px);width:calc(100% - 28px);top:12px;height:1px;background:#d1d5db}.mindmap-step-item:last-child:after{display:none}.mindmap-step-dot{width:24px;height:24px;border-radius:999px;border:1px solid #cbd5e1;background:#fff;color:#475569;display:inline-flex;align-items:center;justify-content:center;font-size:.76rem;font-weight:700;z-index:1}.mindmap-step-text{font-size:.78rem;font-weight:600;line-height:1.2;text-align:center}.mindmap-step-item.done{color:#1d4ed8}.mindmap-step-item.done .mindmap-step-dot{border-color:#93c5fd;background:#eff6ff;color:#1d4ed8}.mindmap-step-item.done:after{background:#93c5fd}.mindmap-step-item.active{color:#0f172a}.mindmap-step-item.active .mindmap-step-dot{border-color:#3b82f6;background:#3b82f6;color:#fff;box-shadow:0 0 0 3px #3b82f62e}.mindmap-step-item.active .mindmap-step-text{font-weight:700}.form-group{margin-bottom:1rem}.form-group label{display:block;margin-bottom:.45rem;color:#334155;font-size:.9rem;font-weight:600}.form-group input,.form-group select,.form-group textarea{width:100%;border:1px solid #dbe4f0;border-radius:14px;padding:.88rem 1rem;background:#fff;color:#0f172a;font-family:var(--font-heading);font-size:.94rem;transition:border-color var(--transition-fast),box-shadow var(--transition-fast)}.form-group input:focus,.form-group select:focus,.form-group textarea:focus{outline:none;border-color:#7aa2ff;box-shadow:0 0 0 4px #2563eb14}.generator-step-block{border:1px solid #e2e8f0;border-radius:16px;padding:1rem;background:#fff}.generator-step-title{margin:0 0 .9rem;font-size:1rem;color:#0f172a}.generator-selected-lesson{margin:.3rem 0 .8rem;color:#1d4ed8;font-size:.9rem;font-weight:600}.generator-error{margin:.25rem 0 .9rem;color:#dc2626;font-size:.88rem;font-weight:600}.mindmaps-inline-loading{display:inline-flex;align-items:center;gap:.45rem;color:#1e3a8a;font-size:.88rem;font-weight:600;margin-bottom:.8rem}.mindmaps-spinner{width:.95rem;height:.95rem;border:2px solid rgba(59,130,246,.28);border-top-color:#2563eb;border-radius:50%;animation:mindmaps-spin .8s linear infinite}@keyframes mindmaps-spin{to{transform:rotate(360deg)}}.form-group textarea{min-height:120px;resize:vertical}.form-actions{display:flex;justify-content:flex-end;gap:.75rem;margin-top:1.2rem}.btn-cancel,.btn-submit{border:1px solid transparent;border-radius:12px;padding:.78rem 1.15rem;font-family:var(--font-heading);font-size:.9rem;font-weight:700;transition:transform .16s ease,box-shadow .18s ease,background-color .18s ease,border-color .18s ease,color .18s ease}.btn-cancel{background:#fff;color:#475569;border:1px solid #dbe4f0}.btn-cancel:hover{background:#f8fafc;border-color:#cbd5e1;transform:translateY(-1px)}.btn-submit{background:linear-gradient(135deg,#2563eb,#3b82f6);color:#fff;border:none}.btn-submit:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 14px 28px #2563eb38}.btn-submit:disabled{opacity:.6;cursor:not-allowed}.mindmaps-filter{display:flex;gap:1.5rem;margin-bottom:1.45rem;padding-bottom:.8rem;border-bottom:1px solid #e2e8f0;overflow-x:auto}.mindmaps-filter::-webkit-scrollbar{height:4px}.mindmaps-filter::-webkit-scrollbar-thumb{background:#cbd5e1;border-radius:999px}.filter-tab{position:relative;padding:.2rem .1rem .7rem;background:transparent;border:none;border-radius:0;color:#94a3b8;font-family:var(--font-heading);font-size:.88rem;font-weight:700;white-space:nowrap}.filter-tab:hover{color:#475569}.filter-tab.active{color:#2563eb}.filter-tab.active:after{content:"";position:absolute;left:0;right:0;bottom:-.8rem;height:2px;border-radius:999px;background:#3b82f6}.page-state{display:grid;place-items:center;min-height:320px;border:1px solid #e2e8f0;border-radius:22px;background:#ffffffd1;color:#64748b;font-weight:600}.error-message{color:#dc2626}.empty-state{min-height:440px;border:1px solid #e2e8f0;border-radius:22px;background:#ffffffe6;box-shadow:inset 0 1px #fffc;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:3rem 1.5rem}.empty-visual{margin-bottom:1.2rem}.empty-visual-ring{width:176px;height:176px;border-radius:50%;background:radial-gradient(circle at 30% 30%,#fffffff2,#ecf2ffe6);color:#c2d2fb;display:flex;align-items:center;justify-content:center;box-shadow:inset 0 1px #fffc,0 24px 60px #2563eb14}.empty-state h3{margin:0;font-size:2rem;line-height:1.15;color:#0f172a}.empty-state p{margin:.95rem 0 1.4rem;max-width:430px;font-size:.98rem;line-height:1.7;color:#64748b}.empty-cta{display:inline-flex;align-items:center;gap:.45rem;border:none;border-radius:12px;padding:.9rem 1.25rem;background:#eff6ff;color:#0f172a;font-family:var(--font-heading);font-size:.95rem;font-weight:800}.empty-cta:hover{background:#dbeafe}.mindmaps-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:1rem}.mindmap-card{display:flex;flex-direction:column;min-height:230px;padding:1.2rem;border:1px solid #e2e8f0;border-radius:18px;background:#fffffff5;box-shadow:0 16px 34px #0f172a0f;transition:transform var(--transition-fast),box-shadow var(--transition-fast),border-color var(--transition-fast)}.mindmap-card:hover{transform:translateY(-2px);border-color:#bfd4ff;box-shadow:0 20px 40px #2563eb1a}.card-header{display:flex;justify-content:space-between;align-items:flex-start;gap:.75rem;margin-bottom:.8rem}.card-header h3{margin:0;font-size:1.05rem;line-height:1.35;color:#0f172a}.status-badge{display:inline-flex;align-items:center;justify-content:center;padding:.3rem .7rem;border-radius:999px;font-size:.74rem;font-weight:700;white-space:nowrap}.status-draft{background:#fff7ed;color:#ea580c}.status-published{background:#ecfdf5;color:#059669}.status-archived{background:#f1f5f9;color:#64748b}.card-description{margin:0;color:#64748b;font-size:.9rem;line-height:1.65;display:-webkit-box;-webkit-line-clamp:3;line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}.card-meta{display:flex;gap:.85rem;flex-wrap:wrap;margin:1rem 0 1.15rem}.meta-item{display:inline-flex;align-items:center;gap:.35rem;color:#64748b;font-size:.82rem;font-weight:600}.meta-item .icon{font-size:.62rem;color:#3b82f6}.ai-badge{color:#2563eb}.card-footer{margin-top:auto;display:flex;justify-content:space-between;align-items:center;gap:1rem;padding-top:1rem;border-top:1px solid #edf2f7}.card-date{color:#94a3b8;font-size:.8rem;font-weight:600}.card-actions{display:flex;gap:.6rem}.btn-edit,.btn-delete{border-radius:10px;padding:.62rem .95rem;font-family:var(--font-heading);font-size:.84rem;font-weight:700}.btn-edit{background:#2563eb;color:#fff;border:none}.btn-edit:hover{background:#1d4ed8}.btn-delete{background:#fff;color:#dc2626;border:1px solid #fecaca}.btn-delete:hover{background:#fef2f2}@media(max-width:768px){.mindmaps-header{flex-direction:column}.btn-generate{width:100%;justify-content:center}.generator-panel{padding:1rem}.generator-heading{gap:.75rem}.mindmap-step-item:after{display:none}.form-actions{flex-direction:column}.form-actions button{width:100%}.empty-state{min-height:380px;padding:2.5rem 1rem}.empty-visual-ring{width:144px;height:144px}.empty-state h3{font-size:1.6rem}.mindmaps-grid{grid-template-columns:1fr}.card-footer{flex-direction:column;align-items:flex-start}.card-actions{width:100%}.card-actions button{flex:1}}.map-container{-webkit-tap-highlight-color:rgba(0,0,0,0);font-family:-apple-system,BlinkMacSystemFont,Helvetica Neue,PingFang SC,Microsoft YaHei,Source Han Sans SC,Noto Sans CJK SC,WenQuanYi Micro Hei,sans-serif;user-select:none;-webkit-user-select:none;height:100%;width:100%;overflow:hidden;font-size:16px;outline:none;touch-action:none;background-color:var(--bgcolor)}.map-container p{margin:0}.map-container *{box-sizing:border-box}.map-container::-webkit-scrollbar{width:0px;height:0px}.map-container .selected{outline:2px solid var(--selected);outline-offset:1px}.map-container.space-pressed,.map-container.space-pressed *{cursor:grab!important}.map-container.space-pressed:active,.map-container.space-pressed:active *{cursor:grabbing!important}.map-container .hyper-link{text-decoration:none;margin-left:.3em}.map-container me-main>me-wrapper>me-parent>me-epd{top:50%;transform:translateY(-50%)}.map-container me-epd{top:100%;transform:translateY(-50%)}.map-container .lhs{direction:rtl}.map-container .lhs>me-wrapper>me-parent>me-epd{left:-10px}.map-container .lhs me-epd{left:5px}.map-container .lhs me-tpc{direction:ltr}.map-container .rhs>me-wrapper>me-parent>me-epd{right:-10px}.map-container .rhs me-epd{right:5px}.map-container .map-canvas{position:relative;-webkit-user-select:none;user-select:none;width:fit-content;transform:scale(1)}.map-container .map-canvas me-nodes{position:relative;display:flex;justify-content:center;align-items:center;height:max-content;width:max-content;padding:var(--map-padding)}.map-container me-main>me-wrapper{position:relative;margin:var(--main-gap-y) var(--main-gap-x)}.map-container me-main>me-wrapper>me-parent{margin:10px;padding:0}.map-container me-main>me-wrapper>me-parent>me-tpc{border-radius:var(--main-radius);background-color:var(--main-bgcolor);border:2px solid var(--main-color);color:var(--main-color);padding:8px 25px}.map-container me-wrapper{display:block;pointer-events:none;width:fit-content}.map-container me-children,.map-container me-parent{display:inline-block;vertical-align:middle}.map-container me-root{position:relative;margin:45px 0;z-index:10}.map-container me-root me-tpc{font-size:25px;color:var(--root-color);padding:10px 30px;border-radius:var(--root-radius);border:var(--root-border-color) 2px solid;background-color:var(--root-bgcolor)}.map-container me-parent{position:relative;cursor:pointer;padding:6px var(--node-gap-x);margin-top:var(--node-gap-y);z-index:10}.map-container me-parent me-tpc{position:relative;border-radius:3px;color:var(--color);padding:var(--topic-padding)}.map-container me-parent me-tpc .insert-preview{position:absolute;width:100%;left:0;z-index:9}.map-container me-parent me-tpc .show{background:#7ad5ff;pointer-events:none;opacity:.7;border-radius:3px}.map-container me-parent me-tpc .before{height:14px;top:-14px}.map-container me-parent me-tpc .in{height:100%;top:0}.map-container me-parent me-tpc .after{height:14px;bottom:-14px}.map-container me-parent me-epd{position:absolute;height:18px;width:18px;opacity:.8;background-image:url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBzdGFuZGFsb25lPSJubyI/PjwhRE9DVFlQRSBzdmcgUFVCTElDICItLy9XM0MvL0RURCBTVkcgMS4xLy9FTiIgImh0dHA6Ly93d3cudzMub3JnL0dyYXBoaWNzL1NWRy8xLjEvRFREL3N2ZzExLmR0ZCI+CjxzdmcgdD0iMTY1NjY1NDcxNzI0MiIgY2xhc3M9Imljb24iIHZpZXdCb3g9IjAgMCAxMDI0IDEwMjQiIHZlcnNpb249IjEuMSIKICAgIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIKICAgIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB3aWR0aD0iMjAwIiBoZWlnaHQ9IjIwMCI+CiAgICA8cGF0aCBkPSJNNTEyIDc0LjY2NjY2N0MyNzAuOTMzMzMzIDc0LjY2NjY2NyA3NC42NjY2NjcgMjcwLjkzMzMzMyA3NC42NjY2NjcgNTEyUzI3MC45MzMzMzMgOTQ5LjMzMzMzMyA1MTIgOTQ5LjMzMzMzMyA5NDkuMzMzMzMzIDc1My4wNjY2NjcgOTQ5LjMzMzMzMyA1MTIgNzUzLjA2NjY2NyA3NC42NjY2NjcgNTEyIDc0LjY2NjY2N3oiIHN0cm9rZS13aWR0aD0iNTQiIHN0cm9rZT0nYmxhY2snIGZpbGw9J3doaXRlJyA+PC9wYXRoPgogICAgPHBhdGggZD0iTTY4Mi42NjY2NjcgNDgwaC0xMzguNjY2NjY3VjM0MS4zMzMzMzNjMC0xNy4wNjY2NjctMTQuOTMzMzMzLTMyLTMyLTMycy0zMiAxNC45MzMzMzMtMzIgMzJ2MTM4LjY2NjY2N0gzNDEuMzMzMzMzYy0xNy4wNjY2NjcgMC0zMiAxNC45MzMzMzMtMzIgMzJzMTQuOTMzMzMzIDMyIDMyIDMyaDEzOC42NjY2NjdWNjgyLjY2NjY2N2MwIDE3LjA2NjY2NyAxNC45MzMzMzMgMzIgMzIgMzJzMzItMTQuOTMzMzMzIDMyLTMydi0xMzguNjY2NjY3SDY4Mi42NjY2NjdjMTcuMDY2NjY3IDAgMzItMTQuOTMzMzMzIDMyLTMycy0xNC45MzMzMzMtMzItMzItMzJ6Ij48L3BhdGg+Cjwvc3ZnPg==);background-repeat:no-repeat;background-size:contain;background-position:center;pointer-events:all;z-index:9}.map-container me-parent me-epd.minus{background-image:url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBzdGFuZGFsb25lPSJubyI/PjwhRE9DVFlQRSBzdmcgUFVCTElDICItLy9XM0MvL0RURCBTVkcgMS4xLy9FTiIgImh0dHA6Ly93d3cudzMub3JnL0dyYXBoaWNzL1NWRy8xLjEvRFREL3N2ZzExLmR0ZCI+CjxzdmcgdD0iMTY1NjY1NTU2NDk4NSIgY2xhc3M9Imljb24iIHZpZXdCb3g9IjAgMCAxMDI0IDEwMjQiIHZlcnNpb249IjEuMSIKICAgIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIKICAgIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB3aWR0aD0iMjAwIiBoZWlnaHQ9IjIwMCI+CiAgICA8cGF0aCBkPSJNNTEyIDc0LjY2NjY2N0MyNzAuOTMzMzMzIDc0LjY2NjY2NyA3NC42NjY2NjcgMjcwLjkzMzMzMyA3NC42NjY2NjcgNTEyUzI3MC45MzMzMzMgOTQ5LjMzMzMzMyA1MTIgOTQ5LjMzMzMzMyA5NDkuMzMzMzMzIDc1My4wNjY2NjcgOTQ5LjMzMzMzMyA1MTIgNzUzLjA2NjY2NyA3NC42NjY2NjcgNTEyIDc0LjY2NjY2N3oiIHN0cm9rZS13aWR0aD0iNTQiIHN0cm9rZT0nYmxhY2snIGZpbGw9J3doaXRlJyA+PC9wYXRoPgogICAgPHBhdGggZD0iTTY4Mi42NjY2NjcgNTQ0SDM0MS4zMzMzMzNjLTE3LjA2NjY2NyAwLTMyLTE0LjkzMzMzMy0zMi0zMnMxNC45MzMzMzMtMzIgMzItMzJoMzQxLjMzMzMzNGMxNy4wNjY2NjcgMCAzMiAxNC45MzMzMzMgMzIgMzJzLTE0LjkzMzMzMyAzMi0zMiAzMnoiPjwvcGF0aD4KPC9zdmc+)!important;transition:opacity .3s;opacity:0}@media(hover:hover){.map-container me-parent me-epd.minus:hover{opacity:.8}}@media(hover:none){.map-container me-parent me-epd.minus{opacity:.8}}.map-container .icon{width:1em;height:1em;vertical-align:-.15em;fill:currentColor;overflow:hidden}.map-container .lines,.map-container .summary,.map-container .subLines,.map-container .topiclinks,.map-container .linkcontroller{position:absolute;height:102%;width:100%;top:0;left:0}.map-container .topiclinks,.map-container .linkcontroller,.map-container .summary{pointer-events:none;z-index:20}.map-container .summary>g,.map-container .topiclinks>g{cursor:pointer;pointer-events:stroke;z-index:20}.map-container .label-container{z-index:21}.map-container .lines,.map-container .subLines{pointer-events:none}.map-container #input-box{position:absolute;top:0;left:0;width:max-content;max-width:35em;direction:ltr;-webkit-user-select:auto;user-select:auto;pointer-events:auto;color:var(--color);background-color:var(--bgcolor);outline:1px solid #ccc;border-radius:2px;z-index:100}.map-container me-tpc{display:block;max-width:35em;white-space:pre-wrap;pointer-events:all}.map-container me-tpc>*{pointer-events:none}.map-container me-tpc>a,.map-container me-tpc>iframe{pointer-events:auto}.map-container me-tpc>.text{display:inline-block}.map-container me-tpc>.text a{pointer-events:auto}.map-container me-tpc>img{display:block;margin-bottom:8px;object-fit:cover}.map-container .circle{position:absolute;height:10px;width:10px;margin-top:-5px;margin-left:-5px;border-radius:100%;background:#757575;border:2px solid #ffffff;z-index:50;cursor:pointer}.map-container .circle:before{content:"";position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:30px;height:30px;background:transparent}.map-container .tags{direction:ltr}.map-container .tags span{display:inline-block;border-radius:3px;padding:2px 4px;background:#d6f0f8;color:#276f86;margin:2px 4px 0 0;font-size:12px;line-height:1.3em}.map-container .icons{display:inline-block;direction:ltr;margin-left:5px}.map-container .icons span{display:inline-block;line-height:1.3em}.map-container .mind-elixir-ghost{position:absolute;top:0;left:0;box-sizing:content-box;opacity:.7;background-color:var(--main-bgcolor);border:2px solid var(--main-color);color:var(--main-color);max-width:200px;width:fit-content;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;padding:8px 16px;border-radius:6px;display:none;pointer-events:none;z-index:1000}.map-container .selection-area{background:#4f90f22d;border:1px solid #4f90f2}.map-container .svg-label{position:absolute;overflow-wrap:break-word;-webkit-hyphens:auto;hyphens:auto;line-height:1.2;pointer-events:auto;cursor:pointer;z-index:10;width:max-content;max-width:200px;border-radius:3px;padding:var(--topic-padding)}.map-container .svg-label[data-type=arrow]{background-color:var(--main-bgcolor-transparent)}.map-container h1{font-size:1.5rem;font-weight:700;color:var(--selected)}.map-container h2{font-size:1.25rem;font-weight:600;color:var(--selected)}.map-container h3{font-size:1.125rem;font-weight:600;color:var(--selected)}.map-container h4{font-size:1rem;font-weight:600;color:var(--selected)}.map-container h5{font-size:.875rem;font-weight:600;color:var(--selected)}.map-container h6{font-size:.875rem;font-weight:500;margin:.1rem 0;color:var(--selected);font-style:italic}.map-container strong.asterisk-emphasis,.map-container em{color:var(--selected)}.map-container strong.underscore-emphasis{background:#ffeb3b40;padding:.05em .15em;border-radius:.15em}.map-container a{color:var(--selected)}.map-container a:hover{color:var(--selected);text-decoration:underline}.map-container .context-menu{position:fixed;top:0;left:0;width:100%;height:100%;z-index:99}.map-container .context-menu .menu-list{position:fixed;list-style:none;margin:0;padding:0;color:var(--panel-color);box-shadow:0 12px 15px #0003;border-radius:5px;overflow:hidden}.map-container .context-menu .menu-list li{min-width:200px;overflow:hidden;white-space:nowrap;padding:6px 10px;background:var(--panel-bgcolor);border-bottom:1px solid var(--panel-border-color);cursor:pointer}.map-container .context-menu .menu-list li span{line-height:20px}.map-container .context-menu .menu-list li a{color:#333;text-decoration:none}.map-container .context-menu .menu-list li.disabled{display:none}.map-container .context-menu .menu-list li:hover{filter:brightness(.95)}.map-container .context-menu .menu-list li:last-child{border-bottom:0}.map-container .context-menu .menu-list li span:last-child{float:right}.map-container .context-menu .key{font-size:10px;background-color:#f1f1f1;color:#333;padding:2px 5px;border-radius:3px}.map-container .tips{position:absolute;bottom:28px;left:50%;transform:translate(-50%);color:var(--panel-color);background:var(--panel-bgcolor);opacity:.8;padding:5px 10px;border-radius:5px;font-weight:700}.mind-elixir-toolbar{position:absolute;color:var(--panel-color);background:var(--panel-bgcolor);padding:10px;border-radius:5px;box-shadow:0 1px 2px #0003}.mind-elixir-toolbar svg{display:inline-block}.mind-elixir-toolbar span:active{opacity:.5}.mind-elixir-toolbar.rb{right:20px;bottom:20px}.mind-elixir-toolbar.rb span+span{margin-left:10px}.mind-elixir-toolbar.lt{font-size:20px;left:20px;top:20px}.mind-elixir-toolbar.lt span{display:block}.mind-elixir-toolbar.lt span+span{margin-top:10px}.mindmap-editor-page{height:calc(100vh - 60px);display:flex;flex-direction:column;background:#f7fafc}.editor-header{background:#fff;padding:1.5rem 2rem;border-bottom:1px solid #e2e8f0;display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:1rem}.header-left{display:flex;align-items:center;gap:1.5rem;flex:1}.btn-back{background:#f7fafc;border:1px solid #e2e8f0;padding:.5rem 1rem;border-radius:8px;cursor:pointer;font-weight:600;color:#4a5568;transition:all .3s}.btn-back:hover{background:#edf2f7}.editor-header h1{font-size:1.5rem;color:#1a202c;margin:0 0 .25rem}.editor-header p{color:#718096;font-size:.875rem;margin:0}.header-actions{display:flex;gap:1rem;align-items:center}.interaction-toggle{display:inline-flex;border:1px solid #d7deed;border-radius:10px;padding:.2rem;background:#f8faff}.interaction-btn{border:none;background:transparent;color:#475569;font-size:.85rem;font-weight:600;padding:.45rem .8rem;border-radius:8px;cursor:pointer;transition:all .2s ease}.interaction-btn.active{background:#fff;color:#334155;box-shadow:0 3px 10px #33415524}.btn-export-image{border:none;border-radius:10px;padding:.5rem .9rem;background:linear-gradient(135deg,#0f766e,#0ea5a4);color:#fff;font-size:.83rem;font-weight:700;cursor:pointer;transition:transform .18s ease,box-shadow .18s ease,opacity .18s ease}.btn-export-image:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 8px 16px #0f766e4d}.btn-export-image:disabled{opacity:.62;cursor:not-allowed;transform:none;box-shadow:none}.status-select{padding:.5rem 1rem;border:2px solid #e2e8f0;border-radius:8px;font-size:.875rem;font-weight:600;cursor:pointer;background:#fff;color:#4a5568;transition:all .3s}.status-select:focus{outline:none;border-color:#667eea}.editor-content{flex:1;display:flex;position:relative;overflow:hidden}.flow-container{flex:1;position:relative;background:linear-gradient(135deg,#f5f7fa,#e8eef5)}.interaction-hint{position:absolute;top:.8rem;left:.9rem;z-index:3;background:#0f172ab8;color:#f8fafc;padding:.45rem .7rem;border-radius:8px;font-size:.75rem;max-width:420px;pointer-events:none}.mind-elixir-host{width:100%;height:100%}.mind-elixir-host .mind-elixir{width:100%;height:100%;background:radial-gradient(circle at 15% 20%,rgba(255,255,255,.65),transparent 35%),radial-gradient(circle at 80% 10%,rgba(217,226,252,.6),transparent 40%),linear-gradient(135deg,#f3f5ff,#e9edf7);border-radius:0}.mind-elixir-host .map-container{transition:transform .2s ease}.mind-elixir-host .topic,.mind-elixir-host .box{border-radius:12px;box-shadow:0 8px 20px #33415524}.mind-elixir-host .selected{box-shadow:0 0 0 3px #4f46e547,0 14px 30px #1e293b2e!important}.mind-elixir-host .toolbar{border-radius:12px;box-shadow:0 8px 20px #0f172a29}.mind-elixir-host .mind-elixir-toolbar.lt,.mind-elixir-host .toolbar.lt{transform:translateY(40px)}.edit-panel{position:absolute;top:1rem;right:1rem;width:320px;background:#fff;border-radius:16px;padding:1.5rem;box-shadow:0 20px 40px #00000026,0 0 0 1px #0000000d;z-index:10;max-height:calc(100vh - 200px);overflow-y:auto;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);animation:panelSlideIn .3s cubic-bezier(.34,1.56,.64,1)}@keyframes panelSlideIn{0%{opacity:0;transform:translate(20px)}to{opacity:1;transform:translate(0)}}.edit-panel h3{margin:0 0 1.5rem;color:#1a202c;font-size:1.125rem;font-weight:700;display:flex;align-items:center;gap:.5rem}.edit-panel h3:before{content:"✏️";font-size:1.25rem}.panel-tabs{display:grid;grid-template-columns:1fr 1fr;gap:.4rem;margin-bottom:1rem;padding:.3rem;border-radius:10px;border:1px solid #e2e8f0;background:#f8fafc}.panel-tab{border:none;border-radius:8px;background:transparent;color:#64748b;font-size:.83rem;font-weight:700;padding:.48rem .6rem;cursor:pointer;transition:all .2s ease}.panel-tab.active{background:#fff;color:#1e293b;box-shadow:0 3px 10px #1e293b1f}.edit-panel .form-group{margin-bottom:1.25rem}.edit-panel .form-group label{display:block;margin-bottom:.5rem;color:#4a5568;font-weight:500;font-size:.875rem}.edit-panel .form-group input,.edit-panel .form-group select{width:100%;padding:.625rem;border:2px solid #e2e8f0;border-radius:8px;font-size:.875rem;transition:border-color .3s}.edit-panel .form-group input[type=color]{height:50px;cursor:pointer;border-radius:8px;padding:.25rem}.edit-panel .form-group input:focus,.edit-panel .form-group select:focus{outline:none;border-color:#667eea;box-shadow:0 0 0 3px #667eea1a}.panel-actions{display:flex;gap:.5rem;margin-top:1.5rem}.panel-actions button{flex:1;padding:.75rem;border-radius:10px;font-size:.875rem;font-weight:600;cursor:pointer;transition:all .3s cubic-bezier(.4,0,.2,1);position:relative;overflow:hidden}.panel-actions button:before{content:"";position:absolute;top:50%;left:50%;width:0;height:0;border-radius:50%;background:#ffffff4d;transform:translate(-50%,-50%);transition:width .6s,height .6s}.panel-actions button:hover:before{width:300px;height:300px}.panel-actions .btn-cancel{background:#f7fafc;color:#4a5568;border:1px solid #e2e8f0}.panel-actions .btn-cancel:hover{background:#edf2f7;transform:translateY(-2px);box-shadow:0 4px 8px #0000001a}.panel-actions .btn-delete{background:linear-gradient(135deg,#fc5c7d,#e53e3e);color:#fff;border:none}.panel-actions .btn-delete:hover{transform:translateY(-2px);box-shadow:0 6px 12px #e53e3e4d}.panel-actions .btn-save{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;border:none}.panel-actions .btn-save:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 6px 12px #667eea4d}.panel-actions .btn-save:disabled{opacity:.6;cursor:not-allowed;transform:none}.add-node-block{margin-top:1rem;border-top:1px dashed #dbe4f0;padding-top:1rem}.add-node-block.tab-mode{margin-top:0;border-top:none;padding-top:0}.add-node-block h4{margin:0 0 .75rem;color:#1e293b;font-size:.92rem;font-weight:700}.add-node-block .row-inline{display:grid;grid-template-columns:88px 1fr;gap:.65rem}.add-node-block .row-inline>div{min-width:0}.add-node-block .row-inline input[type=color]{height:44px}.btn-add-child{width:100%;margin-top:.25rem;border:none;border-radius:10px;padding:.7rem .9rem;background:linear-gradient(135deg,#2563eb,#3b82f6);color:#fff;font-size:.86rem;font-weight:700;cursor:pointer;transition:transform .18s ease,box-shadow .18s ease,opacity .18s ease}.btn-add-child:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 8px 16px #2563eb47}.btn-add-child:disabled{opacity:.62;cursor:not-allowed;transform:none;box-shadow:none}.delete-modal-backdrop{position:absolute;inset:0;background:#0f172a66;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);display:grid;place-items:center;z-index:30;padding:1rem}.delete-modal{width:min(440px,100%);border-radius:16px;background:#fff;border:1px solid #fecaca;box-shadow:0 20px 44px #0f172a3d;padding:1rem 1rem .95rem;animation:deleteModalIn .18s ease}.delete-modal h4{margin:0 0 .55rem;color:#991b1b;font-size:1.02rem;font-weight:800}.delete-modal p{margin:0;color:#374151;font-size:.9rem;line-height:1.5}.delete-modal-impact{margin-top:.7rem!important;padding:.65rem .75rem;border:1px solid #fecaca;border-radius:10px;background:#fef2f2;color:#7f1d1d!important}.delete-modal-actions{display:flex;justify-content:flex-end;gap:.6rem;margin-top:.95rem}.delete-modal-actions .btn-cancel,.delete-modal-actions .btn-delete{min-width:112px;padding:.62rem .9rem;border-radius:10px;font-size:.85rem;font-weight:700;border:none;cursor:pointer}.delete-modal-actions .btn-cancel{border:1px solid #e2e8f0;background:#fff;color:#475569}.delete-modal-actions .btn-cancel:hover:not(:disabled){background:#f8fafc}.delete-modal-actions .btn-delete{background:linear-gradient(135deg,#ef4444,#dc2626);color:#fff}.delete-modal-actions .btn-delete:hover:not(:disabled){box-shadow:0 8px 16px #dc26264d}.delete-modal-actions button:disabled{opacity:.65;cursor:not-allowed}@keyframes deleteModalIn{0%{transform:translateY(6px) scale(.985);opacity:0}to{transform:translateY(0) scale(1);opacity:1}}.mindmap-editor-loading,.mindmap-editor-error{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100vh;text-align:center;background:linear-gradient(135deg,#f5f7fa,#e8eef5)}.loader{width:60px;height:60px;border:5px solid transparent;border-top:5px solid #667eea;border-right:5px solid #764ba2;border-radius:50%;animation:spin 1s cubic-bezier(.68,-.55,.265,1.55) infinite;margin-bottom:1.5rem;box-shadow:0 4px 12px #667eea33}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.mindmap-editor-loading p{color:#4a5568;font-size:1.125rem;font-weight:600;animation:pulse 2s ease-in-out infinite}.loading-slow-hint{font-size:.875rem!important;font-weight:400!important;color:#718096!important;margin-top:-.5rem;animation:none!important}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}.mindmap-editor-error h2{color:#e53e3e;margin-bottom:.5rem;font-size:1.5rem}.mindmap-editor-error p{color:#718096;margin-bottom:1.5rem}.mindmap-editor-error button{background:#667eea;color:#fff;border:none;padding:.75rem 1.5rem;border-radius:8px;font-weight:600;cursor:pointer;transition:all .3s}.mindmap-editor-error button:hover{background:#5568d3}.mindmap-editor-error .error-actions{display:flex;gap:.75rem}.mindmap-editor-error .btn-retry{background:#2f855a}.mindmap-editor-error .btn-retry:hover{background:#276749}@media(max-width:768px){.editor-header{padding:1rem}.header-left{flex-direction:column;align-items:flex-start;gap:1rem}.edit-panel{width:calc(100% - 2rem);left:1rem;right:1rem;top:auto;bottom:1rem;max-height:50vh}.header-actions{width:100%;justify-content:space-between}.interaction-hint{max-width:calc(100% - 1.8rem)}}.module-layout-container .template-review-modal{width:min(1040px,100%)}.module-layout-container .template-review-modal__toolbar{display:flex;gap:.75rem;align-items:end;flex-wrap:wrap}.module-layout-container .template-review-modal__selector{display:flex;flex-direction:column;gap:.35rem;min-width:280px;flex:1}.module-layout-container .template-review-modal__list{max-height:54vh;overflow:auto}.module-layout-container .template-review-question{gap:.65rem}.module-layout-container .template-review-table{min-width:920px}.module-layout-container .template-review-table td{vertical-align:top}.module-layout-container .template-review-question__status{border-radius:999px;font-size:.75rem;font-weight:700;padding:.24rem .58rem}.module-layout-container .template-review-question__status.pending{color:#8a5a10;background:#fff4da;border:1px solid #f3d195}.module-layout-container .template-review-question__status.approved{color:#0d845d;background:#e8fff6;border:1px solid #95e2c4}.module-layout-container .template-review-question__text{font-size:.95rem;color:#142235;line-height:1.45}.module-layout-container .template-review-question__explanation{margin:.3rem 0 0}.module-layout-container .template-review-question__actions{justify-content:flex-start;flex-wrap:wrap}.module-layout-container .template-review-question__options{border:1px dashed #d4e0ef;border-radius:10px;padding:.65rem .72rem;background:#f8fbff;display:grid;gap:.35rem;font-size:.88rem}.module-layout-container .template-review-toast{position:fixed;right:1rem;bottom:1rem;z-index:1400;max-width:min(540px,calc(100vw - 2rem));padding:.75rem .9rem;border-radius:10px;font-size:.9rem;font-weight:600;box-shadow:0 12px 24px #0b1a2e38}.module-layout-container .template-review-toast--success{background:#e8fff6;border:1px solid #96e1c4;color:#0c6a4b}.module-layout-container .template-review-toast--error{background:#fff1f2;border:1px solid #f5bec3;color:#9d2d3a}.module-layout-container .template-review-edit-modal{width:min(760px,100%)}.module-layout-container .template-review-edit-modal__field{display:flex;flex-direction:column;gap:.35rem}@media(max-width:768px){.module-layout-container .template-review-modal__toolbar{align-items:stretch}.module-layout-container .template-review-modal__selector{min-width:100%}}#root,.app{width:100%;min-height:100vh}@keyframes logo-spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@media(prefers-reduced-motion:no-preference){a:nth-of-type(2) .logo{animation:logo-spin infinite 20s linear}}.card{padding:2em}.read-the-docs{color:#888}
