.landing{min-height:100dvh;display:flex;flex-direction:column;background:linear-gradient(160deg,#1e1b4b,#312e81 40%,#4f46e5);color:#fff}.landing__nav,.landing__hero{display:none}.landing__mobile-hero{display:flex;flex-direction:column;align-items:center;text-align:center;gap:.5rem;padding:2.5rem 1.5rem 0}.landing__logo{font-size:4.5rem;line-height:1;margin-bottom:.25rem;filter:drop-shadow(0 4px 12px rgba(0,0,0,.3))}.landing__title-mobile{font-size:3.25rem;font-weight:900;letter-spacing:-2px;margin:0;background:linear-gradient(135deg,#fff 30%,#c4b5fd);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.landing__tagline{font-size:1.15rem;font-weight:700;opacity:.95;margin:0}.landing__sub-mobile{font-size:.875rem;opacity:.7;max-width:280px;line-height:1.6;margin:.25rem 0 0}.landing__mobile-features{display:flex;flex-direction:column;gap:.6rem;padding:1.5rem 1.5rem 0;width:100%;max-width:360px;align-self:center}.landing__feature-pill{display:flex;align-items:center;gap:.85rem;background:#ffffff1a;border:1px solid rgba(255,255,255,.15);border-radius:12px;padding:.7rem 1rem;font-size:.9rem;font-weight:600;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);transition:background .15s}.landing__feature-pill:hover{background:#ffffff29}.landing__mobile-actions{display:flex;flex-direction:column;gap:.75rem;padding:1.5rem 1.5rem 0;width:100%;max-width:360px;align-self:center}.landing__pricing{padding:2rem 1.5rem;display:flex;flex-direction:column;align-items:center;gap:1.25rem;margin-top:1.5rem;background:#0000001f;border-top:1px solid rgba(255,255,255,.08)}.landing__pricing-header{text-align:center}.landing__pricing-title{font-size:1.4rem;font-weight:900;margin:0 0 .35rem;letter-spacing:-.5px}.landing__pricing-sub{font-size:.875rem;opacity:.65;margin:0}.landing__plans{display:flex;flex-direction:column;gap:1.25rem;width:100%;max-width:420px}.landing__plan{flex:1;background:#ffffff14;border:1px solid rgba(255,255,255,.15);border-radius:20px;padding:1.5rem 1.25rem;display:flex;flex-direction:column;gap:.75rem;position:relative;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);transition:transform .15s}.landing__plan:hover{transform:translateY(-2px)}.landing__plan--featured{background:#ffffff21;border-color:#c4b5fd80;box-shadow:0 0 0 1px #c4b5fd4d,0 8px 32px #00000040}.landing__plan-badge{position:absolute;top:-12px;left:50%;transform:translate(-50%);background:linear-gradient(135deg,#c4b5fd,#818cf8);color:#1e1b4b;font-size:.68rem;font-weight:800;padding:.2rem .75rem;border-radius:20px;white-space:nowrap;letter-spacing:.05em;text-transform:uppercase}.landing__plan-name{font-size:.78rem;font-weight:800;margin:0;opacity:.85;text-transform:uppercase;letter-spacing:.06em}.landing__plan-price{display:flex;align-items:baseline;gap:.1rem;line-height:1}.landing__plan-currency{font-size:1.1rem;font-weight:700;opacity:.8;align-self:flex-start;margin-top:.35rem}.landing__plan-amount{font-size:2.75rem;font-weight:900;letter-spacing:-1.5px}.landing__plan-period{font-size:.8rem;opacity:.55;font-weight:500}.landing__plan-credits{font-size:.78rem;font-weight:700;opacity:.65;margin:0;background:#ffffff1a;border-radius:8px;padding:.3rem .6rem;text-align:center}.landing__plan-features{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.45rem;flex:1}.landing__plan-features li{font-size:.82rem;opacity:.85;display:flex;align-items:flex-start;gap:.5rem;line-height:1.4}.landing__plan-check{color:#86efac;font-weight:800;flex-shrink:0}.landing__plan-btn{width:100%;padding:.8rem;border-radius:12px;font-size:.9rem;font-weight:800;cursor:pointer;transition:opacity .15s,transform .12s;margin-top:auto}.landing__plan-btn:hover{opacity:.88;transform:translateY(-1px)}.landing__plan-btn--primary{background:#fff;color:#4f46e5;border:none;box-shadow:0 4px 16px #0003}.landing__plan-btn--outline{background:transparent;color:#fff;border:2px solid rgba(255,255,255,.4)}.landing__plan-btn--outline:hover{border-color:#fff;background:#ffffff14}.landing__footer{display:flex;align-items:center;justify-content:center;gap:.5rem;flex-wrap:wrap;padding:1.25rem 1.5rem;font-size:.78rem;opacity:.4;border-top:1px solid rgba(255,255,255,.08);margin-top:auto}.landing__footer-sep{opacity:.5}.landing__footer-link{color:#fff;text-decoration:none}.btn-primary{background:#fff;color:#4f46e5;border:none;border-radius:14px;padding:.95rem 1.25rem;font-size:1rem;font-weight:800;cursor:pointer;box-shadow:0 4px 20px #0003;transition:opacity .15s,transform .12s}.btn-primary:hover{opacity:.93;transform:translateY(-1px)}.btn-outline{background:transparent;color:#fff;border:2px solid rgba(255,255,255,.5);border-radius:14px;padding:.95rem 1.25rem;font-size:1rem;font-weight:700;cursor:pointer;transition:background .15s,border-color .15s}.btn-outline:hover{background:#ffffff1f;border-color:#fff}@media (min-width: 1024px){.landing__mobile-hero,.landing__mobile-features,.landing__mobile-actions{display:none}.landing__nav{display:flex;align-items:center;justify-content:space-between;padding:0 3rem;height:68px;background:#0003;border-bottom:1px solid rgba(255,255,255,.08);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);position:sticky;top:0;z-index:50;flex-shrink:0}.landing__nav-brand{display:flex;align-items:center;gap:.6rem}.landing__nav-logo{font-size:1.6rem;line-height:1}.landing__nav-name{font-size:1.4rem;font-weight:900;letter-spacing:-.5px;background:linear-gradient(135deg,#fff 30%,#c4b5fd);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.landing__nav-links{display:flex;gap:2rem}.landing__nav-link{color:#ffffffb3;text-decoration:none;font-size:.9rem;font-weight:600;transition:color .15s}.landing__nav-link:hover{color:#fff}.landing__nav-actions{display:flex;gap:.75rem;align-items:center}.landing__nav-btn-outline{background:transparent;color:#fff;border:1.5px solid rgba(255,255,255,.4);border-radius:10px;padding:.5rem 1.25rem;font-size:.875rem;font-weight:700;cursor:pointer;transition:background .15s,border-color .15s}.landing__nav-btn-outline:hover{background:#ffffff1a;border-color:#fff}.landing__nav-btn-primary{background:#fff;color:#4f46e5;border:none;border-radius:10px;padding:.5rem 1.25rem;font-size:.875rem;font-weight:800;cursor:pointer;box-shadow:0 2px 12px #0003;transition:opacity .15s}.landing__nav-btn-primary:hover{opacity:.9}.landing__hero{display:flex;flex-direction:row;align-items:center;justify-content:center;gap:5rem;padding:5rem 4rem;max-width:1280px;margin:0 auto;width:100%;flex:1}.landing__hero-copy{display:flex;flex-direction:column;align-items:flex-start;text-align:left;gap:1.25rem;flex:1;max-width:520px}.landing__hero-badge{display:inline-block;background:#ffffff1f;border:1px solid rgba(255,255,255,.2);border-radius:20px;padding:.3rem .9rem;font-size:.78rem;font-weight:600;letter-spacing:.02em}.landing__title{font-size:3.75rem;font-weight:900;letter-spacing:-2.5px;margin:0;line-height:1.1;background:linear-gradient(135deg,#fff 30%,#c4b5fd);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.landing__sub{font-size:1.05rem;opacity:.75;line-height:1.7;margin:0;max-width:440px}.landing__hero-actions{display:flex;flex-direction:row;gap:.85rem}.btn-hero-primary{background:#fff;color:#4f46e5;border:none;border-radius:12px;padding:.85rem 2rem;font-size:.95rem;font-weight:800;cursor:pointer;box-shadow:0 4px 20px #0003;transition:opacity .15s,transform .12s}.btn-hero-primary:hover{opacity:.92;transform:translateY(-1px)}.btn-hero-outline{background:transparent;color:#fff;border:2px solid rgba(255,255,255,.45);border-radius:12px;padding:.85rem 2rem;font-size:.95rem;font-weight:700;cursor:pointer;transition:background .15s,border-color .15s}.btn-hero-outline:hover{background:#ffffff1a;border-color:#fff}.landing__hero-features{display:grid;grid-template-columns:1fr 1fr;gap:1rem;flex:1;max-width:520px}.landing__feature-card{display:flex;align-items:flex-start;gap:.85rem;background:#ffffff12;border:1px solid rgba(255,255,255,.12);border-radius:16px;padding:1.1rem 1rem;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);transition:background .15s,transform .15s}.landing__feature-card:hover{background:#ffffff1f;transform:translateY(-2px)}.landing__feature-icon{font-size:1.5rem;line-height:1;flex-shrink:0;margin-top:.1rem}.landing__feature-title{font-size:.875rem;font-weight:800;margin:0 0 .2rem;color:#fff}.landing__feature-desc{font-size:.78rem;opacity:.65;margin:0;line-height:1.5}.landing__pricing{padding:5rem 4rem;gap:2.5rem;margin-top:0}.landing__pricing-title{font-size:2.25rem;letter-spacing:-1px}.landing__pricing-sub{font-size:1rem}.landing__plans{flex-direction:row;align-items:stretch;max-width:860px;gap:1.5rem}.landing__plan{padding:2.25rem 2rem}.landing__plan-amount{font-size:3.5rem}.landing__plan-features li{font-size:.9rem}.landing__plan-btn{padding:1rem;font-size:1rem}.landing__footer{padding:1.5rem 4rem;justify-content:flex-start;gap:1rem;font-size:.82rem}}@media (min-width: 1440px){.landing__hero{padding:6rem;gap:7rem}.landing__title{font-size:4.5rem}.landing__plans{max-width:960px}}.auth-page{min-height:100dvh;display:flex;align-items:center;justify-content:center;padding:1.5rem;background:linear-gradient(160deg,#1e1b4b,#312e81 40%,#4f46e5)}.auth-card{background:#fff;border-radius:24px;padding:2.25rem 1.75rem;width:100%;max-width:380px;display:flex;flex-direction:column;align-items:center;gap:.5rem;box-shadow:0 24px 64px #00000059}.auth-logo{font-size:2.75rem;line-height:1;margin-bottom:.25rem}.auth-title{font-size:1.6rem;font-weight:800;color:#1a1a2e;margin:0;letter-spacing:-.4px}.auth-sub{font-size:.875rem;color:#6b7280;margin:0 0 .5rem;font-weight:500}.auth-error{background:#fef2f2;border:1px solid #fca5a5;color:#dc2626;border-radius:10px;padding:.65rem .9rem;font-size:.875rem;width:100%;text-align:center;margin:0;font-weight:500}.auth-form{display:flex;flex-direction:column;gap:1rem;width:100%;margin-top:.5rem}.auth-field{display:flex;flex-direction:column;gap:.4rem}.auth-field label{font-size:.85rem;font-weight:700;color:#374151}.auth-field input{border:1.5px solid #e8eaf0;border-radius:12px;padding:.75rem 1rem;font-size:.95rem;color:#1a1a2e;background:#f9fafb;transition:border-color .15s,box-shadow .15s;width:100%}.auth-field input:focus{outline:none;border-color:#4f46e5;background:#fff;box-shadow:0 0 0 3px #4f46e51f}.auth-btn{background:linear-gradient(135deg,#4f46e5,#7c3aed);color:#fff;border:none;border-radius:14px;padding:.95rem;font-size:1rem;font-weight:700;cursor:pointer;width:100%;margin-top:.25rem;box-shadow:0 4px 16px #4f46e566;transition:opacity .15s,transform .12s,box-shadow .15s;letter-spacing:.01em}.auth-btn:disabled{opacity:.55;cursor:not-allowed;transform:none;box-shadow:none}.auth-btn:hover:not(:disabled),.auth-btn:focus-visible:not(:disabled){opacity:.92;transform:translateY(-1px);box-shadow:0 6px 20px #4f46e580;outline:2px solid #4f46e5;outline-offset:2px}.auth-switch{font-size:.875rem;color:#6b7280;margin:.25rem 0 0;text-align:center}.auth-switch a{color:#4f46e5;font-weight:700;text-decoration:none}.auth-switch a:hover{text-decoration:underline}.auth-optional{font-weight:400;color:#9ca3af;font-size:.8rem}.auth-select{border:1.5px solid #e8eaf0;border-radius:12px;padding:.75rem 1rem;font-size:.95rem;color:#1a1a2e;background:#f9fafb;width:100%;-webkit-appearance:none;-moz-appearance:none;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%236b7280' stroke-width='1.5' fill='none' stroke-linecap='round'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 1rem center;cursor:pointer;transition:border-color .15s,box-shadow .15s}.auth-select:focus{outline:none;border-color:#4f46e5;background-color:#fff;box-shadow:0 0 0 3px #4f46e51f}.auth-hint{font-size:.78rem;color:#4f46e5;margin:0;font-weight:500;background:#eef2ff;border-radius:8px;padding:.4rem .65rem}.auth-role-badge{display:inline-flex;align-items:center;gap:.35rem;border-radius:20px;padding:.3rem .9rem;font-size:.8rem;font-weight:700;margin-bottom:.25rem}.auth-role-badge--student{background:#ede9fe;color:#4f46e5}.auth-role-badge--teacher{background:#e0f2fe;color:#0891b2}.auth-role-badge--parent{background:#d1fae5;color:#059669}.auth-required{color:#ef4444;font-weight:700;margin-left:2px}.auth-hint-muted{font-size:.75rem;color:#9ca3af;margin:0;font-weight:400}.auth-back-link{background:none;border:none;color:#4f46e5;font-weight:700;font-size:.875rem;cursor:pointer;padding:0;text-decoration:none}.auth-back-link:hover{text-decoration:underline}.auth-success-box{background:#f0fdf4;border:1.5px solid #86efac;border-radius:14px;padding:1.25rem 1rem;text-align:center;width:100%;display:flex;flex-direction:column;gap:.4rem}.auth-success-icon{font-size:2rem;line-height:1;margin:0}.auth-success-title{font-size:1rem;font-weight:800;color:#15803d;margin:0}.auth-success-sub{font-size:.85rem;color:#166534;margin:0;line-height:1.5}.auth-premium-banner{background:linear-gradient(135deg,#ede9fe,#ddd6fe);border:1px solid #c4b5fd;border-radius:12px;padding:.75rem 1rem;font-size:.82rem;color:#4f46e5;line-height:1.5;text-align:center}.role-page{min-height:100dvh;display:flex;align-items:center;justify-content:center;padding:1.5rem;background:linear-gradient(160deg,#1e1b4b,#312e81 40%,#4f46e5)}.role-card{background:#fff;border-radius:24px;padding:2.25rem 1.75rem;width:100%;max-width:400px;display:flex;flex-direction:column;align-items:center;gap:.5rem;box-shadow:0 24px 64px #00000059}.role-logo{font-size:2.75rem;line-height:1;margin-bottom:.25rem}.role-title{font-size:1.6rem;font-weight:800;color:#1a1a2e;margin:0;letter-spacing:-.4px}.role-sub{font-size:.875rem;color:#6b7280;margin:0 0 .75rem;font-weight:500}.role-options{display:flex;flex-direction:column;gap:.65rem;width:100%;margin-bottom:.5rem}.role-option{display:flex;align-items:center;gap:.9rem;background:#f9fafb;border:2px solid #e8eaf0;border-radius:16px;padding:1rem;cursor:pointer;text-align:left;width:100%;transition:border-color .15s,background .15s,box-shadow .15s,transform .12s;position:relative}.role-option:hover,.role-option:focus-visible{border-color:var(--role-color);background:#fafafa;box-shadow:0 4px 16px #00000014;transform:translateY(-1px);outline:none}.role-option--selected{border-color:var(--role-color);background:#fff;box-shadow:0 0 0 3px color-mix(in srgb,var(--role-color) 15%,transparent)}.role-option-icon{font-size:2rem;line-height:1;flex-shrink:0;width:2.5rem;text-align:center}.role-option-text{flex:1;display:flex;flex-direction:column;gap:.2rem;min-width:0}.role-option-title{font-size:.95rem;font-weight:700;color:#1a1a2e}.role-option--selected .role-option-title{color:var(--role-color)}.role-option-desc{font-size:.75rem;color:#6b7280;line-height:1.4;font-weight:400}.role-option-check{width:22px;height:22px;border-radius:50%;border:2px solid #e8eaf0;display:flex;align-items:center;justify-content:center;font-size:.7rem;font-weight:800;color:#fff;flex-shrink:0;transition:background .15s,border-color .15s;background:transparent}.role-option--selected .role-option-check{background:var(--role-gradient);border-color:transparent}.role-continue-btn{background:linear-gradient(135deg,#4f46e5,#7c3aed);color:#fff;border:none;border-radius:14px;padding:.95rem;font-size:1rem;font-weight:700;cursor:pointer;width:100%;margin-top:.25rem;box-shadow:0 4px 16px #4f46e566;transition:opacity .15s,transform .12s;letter-spacing:.01em}.role-continue-btn:disabled{opacity:.4;cursor:not-allowed;transform:none;box-shadow:none}.role-continue-btn:hover:not(:disabled),.role-continue-btn:focus-visible:not(:disabled){opacity:.92;transform:translateY(-1px);outline:2px solid #4f46e5;outline-offset:2px}.role-switch{font-size:.875rem;color:#6b7280;margin:.25rem 0 0;text-align:center}.role-switch a{color:#4f46e5;font-weight:700;text-decoration:none}.role-switch a:hover{text-decoration:underline}.institution-search{position:relative;width:100%}.institution-search__input{width:100%;padding:.7rem 1rem;border:1.5px solid #e8eaf0;border-radius:12px;font-size:.9rem;color:#1a1a2e;background:#fff;outline:none;transition:border-color .15s,box-shadow .15s;box-shadow:0 1px 4px #0000000f}.institution-search__input:focus{border-color:#4f46e5;box-shadow:0 0 0 3px #4f46e51f}.institution-search__dropdown{position:absolute;top:calc(100% + 6px);left:0;right:0;background:#fff;border:1px solid #e8eaf0;border-radius:12px;box-shadow:0 8px 24px #0000001f;list-style:none;z-index:200;max-height:240px;overflow-y:auto}.institution-search__item{padding:.7rem 1rem;font-size:.875rem;color:#1a1a2e;cursor:pointer;transition:background .1s;display:flex;justify-content:space-between;align-items:center;gap:.5rem}.institution-search__item:hover{background:#f5f3ff}.institution-search__item+.institution-search__item{border-top:1px solid #f0f2f8}.institution-search__name{flex:1;font-weight:500}.institution-search__meta{font-size:.78rem;color:#9ca3af;white-space:nowrap}.institution-search__item--loading,.institution-search__item--empty{color:#9ca3af;cursor:default;font-style:italic}.institution-search__item--loading:hover,.institution-search__item--empty:hover{background:transparent}.institution-search__item--add{color:#4f46e5;font-weight:600;border-top:1px solid #e8eaf0}.institution-search__item--add:hover{background:#eef2ff}.pending-page{min-height:100dvh;display:flex;align-items:center;justify-content:center;padding:1.5rem;background:linear-gradient(160deg,#0c4a6e,#0891b2 60%,#22d3ee)}.pending-card{background:#fff;border-radius:24px;padding:2.25rem 1.75rem;width:100%;max-width:400px;display:flex;flex-direction:column;align-items:center;gap:1rem;box-shadow:0 24px 64px #0000004d;text-align:center}.pending-icon{font-size:3.5rem;line-height:1;animation:pending-pulse 2s ease-in-out infinite}@keyframes pending-pulse{0%,to{transform:scale(1);opacity:1}50%{transform:scale(1.08);opacity:.8}}.pending-title{font-size:1.5rem;font-weight:800;color:#1a1a2e;margin:0;letter-spacing:-.3px}.pending-sub{font-size:.9rem;color:#6b7280;margin:0;line-height:1.5}.pending-info{width:100%;background:#f9fafb;border:1px solid #e8eaf0;border-radius:14px;overflow:hidden}.pending-info-row{display:flex;align-items:center;justify-content:space-between;padding:.75rem 1rem;border-bottom:1px solid #f0f0f5;gap:.5rem}.pending-info-row:last-child{border-bottom:none}.pending-info-label{font-size:.8rem;font-weight:700;color:#6b7280;text-transform:uppercase;letter-spacing:.04em;flex-shrink:0}.pending-info-value{font-size:.875rem;color:#1a1a2e;font-weight:500;text-align:right}.pending-status-badge{background:#fef3c7;color:#d97706;border-radius:20px;padding:.2rem .75rem;font-size:.75rem;font-weight:700}.pending-steps{width:100%;text-align:left}.pending-steps-title{font-size:.82rem;font-weight:700;color:#374151;text-transform:uppercase;letter-spacing:.05em;margin:0 0 .5rem}.pending-steps-list{margin:0;padding-left:1.25rem;display:flex;flex-direction:column;gap:.35rem}.pending-steps-list li{font-size:.85rem;color:#4b5563;line-height:1.5}.pending-note{font-size:.78rem;color:#9ca3af;margin:0;line-height:1.5}.pending-logout-btn{background:transparent;border:1.5px solid #e8eaf0;border-radius:10px;color:#6b7280;font-size:.875rem;font-weight:600;padding:.65rem 1.5rem;cursor:pointer;transition:background .15s,border-color .15s}.pending-logout-btn:hover,.pending-logout-btn:focus-visible{background:#f9fafb;border-color:#d1d5db;outline:none}.pending-card--rejected{border-top:4px solid #dc2626}.pending-denial-box{width:100%;background:#fef2f2;border:1.5px solid #fca5a5;border-radius:12px;padding:.9rem 1rem;text-align:left}.pending-denial-label{font-size:.72rem;font-weight:800;color:#dc2626;text-transform:uppercase;letter-spacing:.05em;margin:0 0 .35rem}.pending-denial-text{font-size:.875rem;color:#7f1d1d;font-style:italic;margin:0;line-height:1.55}.pending-status-badge{border-radius:20px;padding:.2rem .75rem;font-size:.75rem;font-weight:700}.pending-status-badge--pending{background:#fef3c7;color:#d97706}.pending-status-badge--approved{background:#d1fae5;color:#059669}.pending-status-badge--rejected{background:#fee2e2;color:#dc2626}.pending-footer-actions{display:flex;flex-direction:column;gap:.5rem;width:100%}.pending-reapply-btn{background:linear-gradient(135deg,#4f46e5,#7c3aed);color:#fff;border:none;border-radius:10px;padding:.8rem;font-size:.9rem;font-weight:700;cursor:pointer;width:100%;box-shadow:0 3px 10px #4f46e559;transition:opacity .15s}.pending-reapply-btn:hover{opacity:.88}.td-page{padding:1rem 1rem 2rem;display:flex;flex-direction:column;gap:1.25rem;min-height:100dvh;background:#f5f6fa}.td-header{background:linear-gradient(135deg,#0891b2,#0e7490);color:#fff;border-radius:16px;padding:1.4rem 1.1rem;display:flex;align-items:flex-start;justify-content:space-between;box-shadow:0 4px 20px #0891b259}.td-header-label{font-size:.72rem;font-weight:600;opacity:.75;text-transform:uppercase;letter-spacing:.06em;margin:0}.td-header-name{font-size:1.3rem;font-weight:800;margin:0;letter-spacing:-.3px}.td-header-school{font-size:.82rem;opacity:.85;margin:.2rem 0 0}.td-logout-btn{background:#ffffff26;border:1px solid rgba(255,255,255,.3);border-radius:10px;color:#fff;font-size:.8rem;font-weight:600;padding:.4rem .85rem;cursor:pointer;white-space:nowrap;transition:background .15s}.td-logout-btn:hover{background:#ffffff47}.td-section{display:flex;flex-direction:column;gap:.75rem}.td-section-header{display:flex;align-items:center;justify-content:space-between}.td-section-title{font-size:.95rem;font-weight:800;color:#1a1a2e;margin:0}.td-count{font-size:.78rem;font-weight:700;color:#6b7280;background:#f3f4f6;border-radius:20px;padding:.2rem .65rem}.td-search{border:1.5px solid #e8eaf0;border-radius:10px;padding:.65rem 1rem;font-size:.9rem;color:#1a1a2e;background:#fff;width:100%;transition:border-color .15s}.td-search:focus{outline:none;border-color:#0891b2;box-shadow:0 0 0 3px #0891b21f}.td-loading,.td-error{text-align:center;font-size:.9rem;padding:2rem 0;color:#9ca3af}.td-error{color:#dc2626}.td-empty{display:flex;flex-direction:column;align-items:center;gap:.5rem;padding:2.5rem 1rem;text-align:center;color:#9ca3af;font-size:.875rem}.td-empty-icon{font-size:2.5rem;line-height:1}.td-student-list{display:flex;flex-direction:column;gap:.6rem}.td-student-card{display:flex;align-items:center;gap:.85rem;background:#fff;border:1px solid #e8eaf0;border-radius:14px;padding:.9rem 1rem;cursor:pointer;text-align:left;width:100%;box-shadow:0 1px 4px #0000000f;transition:box-shadow .15s,transform .12s,border-color .15s}.td-student-card:hover,.td-student-card:focus-visible{box-shadow:0 4px 14px #0891b21f;border-color:#67e8f9;transform:translateY(-1px);outline:none}.td-student-avatar{width:42px;height:42px;border-radius:50%;background:linear-gradient(135deg,#0891b2,#0e7490);color:#fff;display:flex;align-items:center;justify-content:center;font-size:1.1rem;font-weight:800;flex-shrink:0}.td-student-info{flex:1;min-width:0;display:flex;flex-direction:column;gap:.25rem}.td-student-name{font-size:.9rem;font-weight:700;color:#1a1a2e;margin:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.td-student-meta{font-size:.75rem;color:#6b7280;margin:0}.td-student-right{display:flex;flex-direction:column;align-items:flex-end;gap:.2rem;flex-shrink:0}.td-avg-pct{font-size:1rem;font-weight:800}.td-avg-pct--none{color:#d1d5db}.td-arrow{font-size:1.2rem;color:#d1d5db}.td-bar-track{height:6px;background:#f3f4f6;border-radius:4px;overflow:hidden;width:100%}.td-bar-fill{height:100%;border-radius:4px;transition:width .4s ease;min-width:2px}.td-detail{display:flex;flex-direction:column;gap:1rem}.td-back-btn{background:none;border:none;color:#0891b2;font-size:.875rem;font-weight:700;cursor:pointer;padding:0;text-align:left}.td-back-btn:hover{text-decoration:underline}.td-detail-header{display:flex;align-items:center;gap:1rem;background:linear-gradient(135deg,#0891b2,#0e7490);color:#fff;border-radius:16px;padding:1.25rem 1.1rem;box-shadow:0 4px 16px #0891b24d}.td-detail-avatar{width:56px;height:56px;border-radius:50%;background:#ffffff38;border:2px solid rgba(255,255,255,.4);display:flex;align-items:center;justify-content:center;font-size:1.5rem;font-weight:800;flex-shrink:0}.td-detail-name{font-size:1.1rem;font-weight:800;margin:0;letter-spacing:-.2px}.td-detail-meta{font-size:.78rem;opacity:.85;margin:.2rem 0 0}.td-detail-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:.5rem}.td-stat-card{background:#fff;border:1px solid #e8eaf0;border-radius:12px;padding:.75rem .4rem;display:flex;flex-direction:column;align-items:center;gap:.2rem;text-align:center;box-shadow:0 1px 4px #0000000d}.td-stat-icon{font-size:1.1rem;line-height:1}.td-stat-value{font-size:.9rem;font-weight:800;color:#0891b2}.td-stat-label{font-size:.65rem;color:#9ca3af;font-weight:500}.td-progress-list{background:#fff;border:1px solid #e8eaf0;border-radius:14px;overflow:hidden;box-shadow:0 1px 4px #0000000f}.td-progress-row{display:flex;align-items:center;gap:.75rem;padding:.75rem 1rem;border-bottom:1px solid #f0f0f5}.td-progress-row:last-child{border-bottom:none}.td-progress-topic{font-size:.82rem;font-weight:600;color:#374151;width:120px;flex-shrink:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.td-bar-track--wide{flex:1;height:8px}.td-progress-pct{font-size:.78rem;font-weight:800;width:36px;text-align:right;flex-shrink:0}@media (min-width: 1024px){.td-page{padding:0}.td-student-list{display:grid;grid-template-columns:repeat(2,1fr);gap:.75rem}.td-detail-stats{grid-template-columns:repeat(4,1fr)}}.td-overview-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:.5rem}@media (min-width: 640px){.td-overview-grid{grid-template-columns:repeat(6,1fr)}}.td-needs-attention{background:#fff5f5;border:1px solid #fecaca;border-radius:14px;padding:.75rem 1rem;display:flex;flex-direction:column;gap:.5rem}.td-all-on-track{font-size:.9rem;color:#16a34a;font-weight:600;margin:0;padding:.25rem 0}.td-attention-card{display:flex;align-items:center;justify-content:space-between;background:#fff;border:1px solid #fecaca;border-radius:10px;padding:.65rem .85rem;gap:.75rem}.td-attention-subject{font-size:.7rem;font-weight:700;color:#9ca3af;text-transform:uppercase;letter-spacing:.05em}.td-attention-topic{font-size:.85rem;font-weight:700;color:#1a1a2e;margin:.15rem 0 0}.td-attention-incorrect{font-size:.75rem;color:#6b7280;margin:.1rem 0 0}.td-attention-score{font-size:1rem;font-weight:800;color:#ef4444;background:#fee2e2;border-radius:8px;padding:.3rem .6rem;flex-shrink:0}.td-subject-accordion{background:#fff;border:1px solid #e8eaf0;border-radius:14px;overflow:hidden;box-shadow:0 1px 4px #0000000f}.td-subject-header{display:flex;align-items:center;justify-content:space-between;width:100%;background:none;border:none;padding:.9rem 1rem;cursor:pointer;text-align:left;gap:.75rem;transition:background .12s}.td-subject-header:hover{background:#f9fafb}.td-subject-title{font-size:.9rem;font-weight:800;color:#1a1a2e;flex:1}.td-subject-right{display:flex;align-items:center;gap:.6rem;flex-shrink:0}.td-subject-avg{font-size:.8rem;font-weight:700}.td-subject-avg--none{color:#9ca3af;font-size:.78rem}.td-subject-body{border-top:1px solid #f0f0f5;padding:.25rem 0}.td-no-activity{font-size:.85rem;color:#9ca3af;padding:.75rem 1rem;margin:0}.td-topic-row{border-bottom:1px solid #f0f0f5}.td-topic-row:last-child{border-bottom:none}.td-topic-header{display:flex;align-items:center;justify-content:space-between;width:100%;background:none;border:none;padding:.7rem 1rem;cursor:pointer;text-align:left;gap:.75rem;transition:background .12s}.td-topic-header:hover{background:#f9fafb}.td-topic-title{font-size:.82rem;font-weight:600;color:#374151;flex-shrink:0;width:130px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.td-topic-right{display:flex;align-items:center;gap:.5rem;flex:1;justify-content:flex-end}.td-topic-pct{font-size:.78rem;font-weight:800;width:36px;text-align:right;flex-shrink:0}.td-topic-body{padding:.75rem 1rem 1rem;background:#fafafa;border-top:1px solid #f0f0f5;display:flex;flex-direction:column;gap:.6rem}.td-last-accessed{font-size:.75rem;color:#9ca3af;margin:0}.td-perf-summary{display:flex;gap:1rem;flex-wrap:wrap;background:#f3f4f6;border-radius:8px;padding:.5rem .75rem;font-size:.8rem;font-weight:600;color:#374151}.td-perf-warning{background:#fff7ed;border:1px solid #fed7aa;color:#c2410c}.td-warn-badge{margin-left:.25rem}.td-answer-list{display:flex;flex-direction:column;gap:.5rem}.td-no-answers{font-size:.82rem;color:#9ca3af;margin:0;padding:.25rem 0}.td-answer-row{background:#fff;border:1px solid #e8eaf0;border-radius:10px;padding:.65rem .85rem;border-left-width:4px}.td-answer-row--correct{border-left-color:#22c55e}.td-answer-row--wrong{border-left-color:#ef4444}.td-answer-top{display:flex;gap:.6rem;align-items:flex-start}.td-answer-indicator{font-size:.9rem;font-weight:800;flex-shrink:0;margin-top:.1rem}.td-answer-row--correct .td-answer-indicator{color:#22c55e}.td-answer-row--wrong .td-answer-indicator{color:#ef4444}.td-answer-content{flex:1;display:flex;flex-direction:column;gap:.2rem}.td-answer-question{font-size:.82rem;font-weight:600;color:#1a1a2e;margin:0}.td-answer-given,.td-answer-correct{font-size:.78rem;color:#374151;margin:0}.td-answer-time{font-size:.7rem;color:#9ca3af;margin:0}.td-answer-explanation{margin-top:.5rem;padding:.5rem .65rem;background:#fef9c3;border-radius:6px;font-size:.78rem;color:#713f12;line-height:1.5}.td-detail-loading{display:flex;flex-direction:column;align-items:center;gap:.75rem;padding:3rem 1rem;color:#9ca3af;font-size:.875rem}.td-spinner{width:36px;height:36px;border:3px solid #e8eaf0;border-top-color:#0891b2;border-radius:50%;animation:td-spin .7s linear infinite}@keyframes td-spin{to{transform:rotate(360deg)}}.td-detail-error{display:flex;flex-direction:column;align-items:center;gap:.75rem;padding:2rem 1rem;text-align:center;color:#dc2626;font-size:.875rem}.td-retry-btn{background:#0891b2;color:#fff;border:none;border-radius:8px;padding:.45rem 1.1rem;font-size:.85rem;font-weight:700;cursor:pointer;transition:background .15s}.td-retry-btn:hover{background:#0e7490}.td-chevron{font-size:.7rem;color:#9ca3af;flex-shrink:0}.parent-page{padding:1rem 1rem 2rem;display:flex;flex-direction:column;gap:1.25rem;min-height:100dvh;background:#f5f6fa}.parent-header{background:linear-gradient(135deg,#059669,#047857);color:#fff;border-radius:16px;padding:1.4rem 1.1rem;display:flex;align-items:center;justify-content:space-between;box-shadow:0 4px 20px #05966959}.parent-header-greeting{font-size:.8rem;opacity:.8;margin:0;font-weight:500}.parent-header-name{font-size:1.3rem;font-weight:800;margin:0;letter-spacing:-.3px}.parent-logout-btn{background:#ffffff2e;border:1px solid rgba(255,255,255,.3);border-radius:10px;color:#fff;font-size:.8rem;font-weight:600;padding:.4rem .85rem;cursor:pointer;transition:background .15s}.parent-logout-btn:hover{background:#ffffff4d}.parent-loading,.parent-error{text-align:center;color:#6b7280;font-size:.95rem;padding:2rem 0}.parent-error{color:#dc2626}.parent-section{display:flex;flex-direction:column;gap:.6rem}.parent-section-title{font-size:.82rem;font-weight:800;color:#374151;text-transform:uppercase;letter-spacing:.06em;margin:0}.parent-link-card{background:#fff;border:1px solid #e8eaf0;border-radius:16px;padding:1.5rem 1.25rem;display:flex;flex-direction:column;align-items:center;gap:.75rem;text-align:center;box-shadow:0 2px 8px #0000000f}.parent-link-icon{font-size:2.5rem;line-height:1}.parent-link-title{font-size:1rem;font-weight:800;color:#1a1a2e;margin:0}.parent-link-sub{font-size:.85rem;color:#6b7280;margin:0;line-height:1.5}.parent-link-form{display:flex;flex-direction:column;gap:.6rem;width:100%}.parent-link-input{border:1.5px solid #e8eaf0;border-radius:10px;padding:.75rem 1rem;font-size:.9rem;color:#1a1a2e;background:#f9fafb;width:100%;transition:border-color .15s}.parent-link-input:focus{outline:none;border-color:#059669;background:#fff;box-shadow:0 0 0 3px #0596691f}.parent-link-error{font-size:.8rem;color:#dc2626;margin:0;text-align:center}.parent-link-btn{background:linear-gradient(135deg,#059669,#047857);color:#fff;border:none;border-radius:10px;padding:.8rem;font-size:.9rem;font-weight:700;cursor:pointer;box-shadow:0 3px 12px #05966959;transition:opacity .15s}.parent-link-btn:disabled{opacity:.55;cursor:not-allowed}.parent-link-btn:hover:not(:disabled){opacity:.9}.parent-child-card{background:#fff;border:1px solid #e8eaf0;border-radius:14px;padding:1rem 1.1rem;display:flex;align-items:center;gap:.85rem;box-shadow:0 1px 4px #0000000f}.parent-child-avatar{width:48px;height:48px;border-radius:50%;background:linear-gradient(135deg,#059669,#047857);color:#fff;display:flex;align-items:center;justify-content:center;font-size:1.3rem;font-weight:800;flex-shrink:0}.parent-child-info{flex:1;min-width:0}.parent-child-name{font-size:.95rem;font-weight:700;color:#1a1a2e;margin:0}.parent-child-meta{font-size:.78rem;color:#6b7280;margin:.15rem 0 0}.parent-child-status{font-size:.72rem;font-weight:700;border-radius:20px;padding:.2rem .65rem;flex-shrink:0}.parent-child-status--active{background:#d1fae5;color:#059669}.parent-stats-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:.6rem}.parent-stat-card{background:#fff;border:1px solid #e8eaf0;border-radius:14px;padding:.9rem .5rem;display:flex;flex-direction:column;align-items:center;gap:.25rem;text-align:center;box-shadow:0 1px 4px #0000000f}.parent-stat-icon{font-size:1.3rem;line-height:1}.parent-stat-value{font-size:1rem;font-weight:800;color:#059669}.parent-stat-label{font-size:.7rem;color:#6b7280;font-weight:500}.parent-progress-list{background:#fff;border:1px solid #e8eaf0;border-radius:14px;overflow:hidden;box-shadow:0 1px 4px #0000000f}.parent-progress-row{display:flex;align-items:center;gap:.75rem;padding:.75rem 1rem;border-bottom:1px solid #f0f0f5}.parent-progress-row:last-child{border-bottom:none}.parent-progress-subject{font-size:.82rem;font-weight:600;color:#374151;width:110px;flex-shrink:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.parent-progress-bar-wrap{flex:1;height:8px;background:#f3f4f6;border-radius:4px;overflow:hidden}.parent-progress-bar{height:100%;background:linear-gradient(90deg,#059669,#34d399);border-radius:4px;transition:width .4s ease;min-width:4px}.parent-progress-pct{font-size:.75rem;font-weight:700;color:#059669;width:32px;text-align:right;flex-shrink:0}.parent-tips-card{background:#ecfdf5;border:1px solid #a7f3d0;border-radius:14px;padding:1rem 1.1rem}.parent-tips-title{font-size:.85rem;font-weight:700;color:#065f46;margin:0 0 .5rem}.parent-tips-list{margin:0;padding-left:1.2rem;display:flex;flex-direction:column;gap:.3rem}.parent-tips-list li{font-size:.8rem;color:#047857;line-height:1.5}@media (min-width: 1024px){.parent-page{padding:1.5rem 2rem 2rem;display:grid;grid-template-columns:1fr 1fr;grid-template-rows:auto 1fr;column-gap:1.75rem;row-gap:0;align-items:start}.parent-header{grid-column:1 / -1;margin-bottom:.5rem}.parent-col--left{grid-column:1;display:flex;flex-direction:column;gap:1.25rem}.parent-col--right{grid-column:2;display:flex;flex-direction:column;gap:1.25rem}.parent-loading,.parent-error-block,.parent-section:only-child{grid-column:1 / -1}.parent-section--full{grid-column:1 / -1}}.parent-overview-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:.5rem}@media (min-width: 640px){.parent-overview-grid{grid-template-columns:repeat(6,1fr)}}.parent-needs-attention{background:#fff5f5;border:1px solid #fecaca;border-radius:14px;padding:.75rem 1rem;display:flex;flex-direction:column;gap:.5rem}.parent-all-on-track{font-size:.9rem;color:#059669;font-weight:600;margin:0;padding:.25rem 0}.parent-attention-card{display:flex;align-items:center;justify-content:space-between;background:#fff;border:1px solid #fecaca;border-radius:10px;padding:.65rem .85rem;gap:.75rem}.parent-attention-subject{font-size:.7rem;font-weight:700;color:#9ca3af;text-transform:uppercase;letter-spacing:.05em}.parent-attention-topic{font-size:.85rem;font-weight:700;color:#1a1a2e;margin:.15rem 0 0}.parent-attention-incorrect{font-size:.75rem;color:#6b7280;margin:.1rem 0 0}.parent-attention-score{font-size:1rem;font-weight:800;color:#dc2626;background:#fee2e2;border-radius:8px;padding:.3rem .6rem;flex-shrink:0}.parent-subject-accordion{background:#fff;border:1px solid #e8eaf0;border-radius:14px;overflow:hidden;box-shadow:0 1px 4px #0000000f}.parent-subject-header{display:flex;align-items:center;justify-content:space-between;width:100%;background:none;border:none;padding:.9rem 1rem;cursor:pointer;text-align:left;gap:.75rem;transition:background .12s}.parent-subject-header:hover{background:#f9fafb}.parent-subject-title{font-size:.9rem;font-weight:800;color:#1a1a2e;flex:1}.parent-subject-right{display:flex;align-items:center;gap:.6rem;flex-shrink:0}.parent-subject-body{border-top:1px solid #f0f0f5;padding:.25rem 0}.parent-chevron{font-size:.7rem;color:#9ca3af;flex-shrink:0}.parent-topic-row{border-bottom:1px solid #f0f0f5}.parent-topic-row:last-child{border-bottom:none}.parent-topic-header{display:flex;align-items:center;justify-content:space-between;width:100%;background:none;border:none;padding:.7rem 1rem;cursor:pointer;text-align:left;gap:.75rem;transition:background .12s}.parent-topic-header:hover{background:#f9fafb}.parent-topic-title{font-size:.82rem;font-weight:600;color:#374151;flex-shrink:0;width:130px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.parent-topic-right{display:flex;align-items:center;gap:.5rem;flex:1;justify-content:flex-end}.parent-topic-body{padding:.75rem 1rem 1rem;background:#fafafa;border-top:1px solid #f0f0f5;display:flex;flex-direction:column;gap:.6rem}.parent-last-accessed{font-size:.75rem;color:#9ca3af;margin:0}.parent-bar-track{flex:1;height:8px;background:#f3f4f6;border-radius:4px;overflow:hidden}.parent-bar-fill{height:100%;border-radius:4px;transition:width .4s ease;min-width:2px}.parent-perf-summary{display:flex;gap:1rem;flex-wrap:wrap;background:#f3f4f6;border-radius:8px;padding:.5rem .75rem;font-size:.8rem;font-weight:600;color:#374151}.parent-perf-warning{background:#fff7ed;border:1px solid #fed7aa;color:#c2410c}.parent-answer-list{display:flex;flex-direction:column;gap:.5rem}.parent-no-answers,.parent-no-activity{font-size:.82rem;color:#9ca3af;margin:0}.parent-answer-row{background:#fff;border:1px solid #e8eaf0;border-radius:10px;padding:.65rem .85rem;border-left-width:4px}.parent-answer-row--correct{border-left-color:#059669}.parent-answer-row--wrong{border-left-color:#dc2626}.parent-answer-top{display:flex;gap:.6rem;align-items:flex-start}.parent-answer-indicator{font-size:.9rem;font-weight:800;flex-shrink:0;margin-top:.1rem}.parent-answer-indicator--correct{color:#059669}.parent-answer-indicator--wrong{color:#dc2626}.parent-answer-content{flex:1;display:flex;flex-direction:column;gap:.2rem}.parent-answer-question{font-size:.82rem;font-weight:600;color:#1a1a2e;margin:0}.parent-answer-given,.parent-answer-correct{font-size:.78rem;color:#374151;margin:0}.parent-answer-time{font-size:.7rem;color:#9ca3af;margin:0}.parent-answer-explanation{margin-top:.5rem;padding:.5rem .65rem;background:#fef9c3;border-radius:6px;font-size:.78rem;color:#713f12;line-height:1.5}.parent-error-block{display:flex;flex-direction:column;align-items:center;gap:.75rem;padding:2rem 1rem;text-align:center}.parent-retry-btn{background:#059669;color:#fff;border:none;border-radius:8px;padding:.45rem 1.1rem;font-size:.85rem;font-weight:700;cursor:pointer}.parent-retry-btn:hover{background:#047857}.admin-page{padding:1rem 1rem 2rem;display:flex;flex-direction:column;gap:1.25rem;min-height:100dvh;background:#f5f6fa}.admin-header{background:linear-gradient(135deg,#1e1b4b,#4f46e5);color:#fff;border-radius:16px;padding:1.4rem 1.1rem;display:flex;align-items:center;justify-content:space-between;box-shadow:0 4px 20px #4f46e559}.admin-header-label{font-size:.72rem;font-weight:600;opacity:.75;text-transform:uppercase;letter-spacing:.06em;margin:0}.admin-header-name{font-size:1.3rem;font-weight:800;margin:0;letter-spacing:-.3px}.admin-logout-btn{background:#ffffff26;border:1px solid rgba(255,255,255,.3);border-radius:10px;color:#fff;font-size:.8rem;font-weight:600;padding:.4rem .85rem;cursor:pointer;transition:background .15s}.admin-logout-btn:hover{background:#ffffff47}.admin-toast{border-radius:12px;padding:.75rem 1rem;font-size:.875rem;font-weight:600;text-align:center;animation:toast-in .2s ease}@keyframes toast-in{0%{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:translateY(0)}}.admin-toast--ok{background:#d1fae5;color:#065f46}.admin-toast--err{background:#fee2e2;color:#991b1b}.admin-section{display:flex;flex-direction:column;gap:.75rem}.admin-section-title{font-size:1rem;font-weight:800;color:#1a1a2e;margin:0}.admin-section-sub{font-size:.82rem;color:#6b7280;margin:0}.admin-tabs{display:flex;gap:.4rem;background:#fff;border:1px solid #e8eaf0;border-radius:12px;padding:.3rem}.admin-tab{flex:1;background:transparent;border:none;border-radius:9px;padding:.55rem .5rem;font-size:.8rem;font-weight:600;color:#6b7280;cursor:pointer;transition:background .15s,color .15s;white-space:nowrap}.admin-tab--active{background:linear-gradient(135deg,#4f46e5,#7c3aed);color:#fff;box-shadow:0 2px 8px #4f46e54d}.admin-tab:hover:not(.admin-tab--active){background:#f3f4f6;color:#374151}.admin-loading{text-align:center;color:#9ca3af;font-size:.9rem;padding:2rem 0}.admin-empty{display:flex;flex-direction:column;align-items:center;gap:.5rem;padding:2.5rem 1rem;text-align:center}.admin-empty-icon{font-size:2.5rem;line-height:1}.admin-empty-text{font-size:.875rem;color:#9ca3af;font-weight:500}.admin-teacher-list{display:flex;flex-direction:column;gap:.75rem}.admin-teacher-card{background:#fff;border:1px solid #e8eaf0;border-radius:16px;padding:1rem 1.1rem;display:flex;gap:.85rem;box-shadow:0 1px 4px #0000000f;transition:box-shadow .15s}.admin-teacher-card:hover{box-shadow:0 4px 14px #4f46e51a}.admin-teacher-avatar{width:44px;height:44px;border-radius:50%;background:linear-gradient(135deg,#4f46e5,#7c3aed);color:#fff;display:flex;align-items:center;justify-content:center;font-size:1.2rem;font-weight:800;flex-shrink:0}.admin-teacher-info{flex:1;min-width:0;display:flex;flex-direction:column;gap:.2rem}.admin-teacher-name{font-size:.9rem;font-weight:700;color:#1a1a2e;margin:0}.admin-teacher-email{font-size:.75rem;color:#6b7280;margin:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.admin-teacher-school,.admin-teacher-subjects{font-size:.78rem;color:#4b5563;margin:0;font-weight:500}.admin-teacher-date{font-size:.72rem;color:#9ca3af;margin:.1rem 0 0}.admin-teacher-right{display:flex;flex-direction:column;align-items:flex-end;gap:.5rem;flex-shrink:0}.admin-badge{display:inline-block;border-radius:20px;padding:.2rem .7rem;font-size:.72rem;font-weight:700;white-space:nowrap}.badge--pending{background:#fef3c7;color:#d97706}.badge--approved{background:#d1fae5;color:#059669}.badge--rejected{background:#fee2e2;color:#dc2626}.admin-teacher-actions{display:flex;flex-direction:column;gap:.35rem}.admin-btn-approve,.admin-btn-reject{border:none;border-radius:8px;padding:.4rem .85rem;font-size:.78rem;font-weight:700;cursor:pointer;transition:opacity .15s,transform .12s;white-space:nowrap}.admin-btn-approve{background:linear-gradient(135deg,#059669,#047857);color:#fff;box-shadow:0 2px 8px #0596694d}.admin-btn-reject{background:#fee2e2;color:#dc2626}.admin-btn-approve:hover{opacity:.88;transform:translateY(-1px)}.admin-btn-reject:hover{background:#fecaca}.admin-denial-reason{max-width:160px;text-align:right}.admin-denial-label{font-size:.68rem;font-weight:700;color:#9ca3af;text-transform:uppercase;letter-spacing:.04em;margin:0 0 .15rem}.admin-denial-text{font-size:.72rem;color:#dc2626;font-style:italic;margin:0;line-height:1.4;word-break:break-word}.admin-modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000080;display:flex;align-items:flex-end;justify-content:center;z-index:500;padding:0;animation:overlay-in .2s ease}@keyframes overlay-in{0%{opacity:0}to{opacity:1}}.admin-modal{background:#fff;border-radius:24px 24px 0 0;padding:1.75rem 1.5rem 2rem;width:100%;max-width:480px;display:flex;flex-direction:column;gap:.75rem;animation:modal-up .25s ease}@keyframes modal-up{0%{transform:translateY(40px);opacity:0}to{transform:translateY(0);opacity:1}}.admin-modal-title{font-size:1.1rem;font-weight:800;color:#1a1a2e;margin:0}.admin-modal-sub{font-size:.85rem;color:#6b7280;margin:0;line-height:1.5}.admin-modal-label{font-size:.82rem;font-weight:700;color:#374151;display:block;margin-bottom:.35rem}.admin-required{color:#ef4444}.admin-modal-textarea{width:100%;border:1.5px solid #e8eaf0;border-radius:12px;padding:.75rem 1rem;font-size:.875rem;color:#1a1a2e;background:#f9fafb;resize:vertical;font-family:inherit;line-height:1.5;transition:border-color .15s}.admin-modal-textarea:focus{outline:none;border-color:#ef4444;background:#fff;box-shadow:0 0 0 3px #ef44441a}.admin-modal-error{font-size:.8rem;color:#dc2626;margin:0}.admin-modal-actions{display:flex;gap:.6rem;margin-top:.25rem}.admin-modal-cancel{flex:1;background:#f3f4f6;border:none;border-radius:10px;color:#374151;font-size:.9rem;font-weight:600;padding:.8rem;cursor:pointer;transition:background .15s}.admin-modal-cancel:hover{background:#e5e7eb}.admin-modal-reject-btn{flex:1;background:linear-gradient(135deg,#dc2626,#b91c1c);border:none;border-radius:10px;color:#fff;font-size:.9rem;font-weight:700;padding:.8rem;cursor:pointer;box-shadow:0 3px 10px #dc262659;transition:opacity .15s}.admin-modal-reject-btn:hover{opacity:.88}@media (min-width: 1024px){.admin-page{padding:0}.admin-teacher-list{display:grid;grid-template-columns:repeat(2,1fr);gap:.85rem}.admin-modal-overlay{align-items:center}.admin-modal{border-radius:20px;max-width:520px;width:100%}}.admin-section-tabs{display:flex;gap:.5rem;background:#fff;border:1px solid #e8eaf0;border-radius:14px;padding:.4rem;box-shadow:0 1px 4px #0000000f}.admin-section-tab{flex:1;background:none;border:none;border-radius:10px;padding:.65rem .75rem;font-size:.82rem;font-weight:700;color:#6b7280;cursor:pointer;transition:background .15s,color .15s;text-align:center}.admin-section-tab--active{background:#4f46e5;color:#fff}.admin-section-tab:hover:not(.admin-section-tab--active){background:#f3f4f6;color:#374151}.admin-user-filters{display:flex;gap:.5rem;flex-wrap:wrap;margin-bottom:.25rem}.admin-user-filters .td-search{flex:1;min-width:180px}.admin-role-select{border:1.5px solid #e8eaf0;border-radius:10px;padding:.6rem .85rem;font-size:.85rem;color:#374151;background:#fff;cursor:pointer;outline:none}.admin-role-select:focus{border-color:#4f46e5}.admin-search-btn{background:#4f46e5;color:#fff;border:none;border-radius:10px;padding:.6rem 1.1rem;font-size:.85rem;font-weight:700;cursor:pointer;transition:opacity .15s;white-space:nowrap}.admin-search-btn:hover{opacity:.88}.admin-user-row{display:flex;align-items:center;gap:.85rem;background:#fff;border:1px solid #e8eaf0;border-radius:14px;padding:.9rem 1rem;box-shadow:0 1px 4px #0000000d}.admin-btn-delete{background:#fee2e2;color:#dc2626;border:1px solid #fca5a5;border-radius:8px;padding:.4rem .75rem;font-size:.78rem;font-weight:700;cursor:pointer;white-space:nowrap;transition:background .15s}.admin-btn-delete:hover{background:#fecaca}.upgrade-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0000008c;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;z-index:1000;padding:1rem}.upgrade-modal{background:#fff;border-radius:24px;padding:2rem 1.5rem 1.5rem;max-width:400px;width:100%;display:flex;flex-direction:column;align-items:center;gap:.85rem;position:relative;box-shadow:0 20px 60px #00000040;text-align:center}.upgrade-close{position:absolute;top:1rem;right:1rem;background:#f3f4f6;border:none;border-radius:50%;width:32px;height:32px;font-size:.8rem;cursor:pointer;color:#6b7280;display:flex;align-items:center;justify-content:center;transition:background .15s}.upgrade-close:hover{background:#e5e7eb}.upgrade-icon{font-size:2.5rem;line-height:1}.upgrade-title{font-size:1.2rem;font-weight:900;color:#1a1a2e;margin:0}.upgrade-sub{font-size:.875rem;color:#6b7280;margin:0;line-height:1.6}.upgrade-compare{display:flex;align-items:center;gap:.75rem;width:100%;margin:.25rem 0}.upgrade-plan{flex:1;background:#f9fafb;border:1px solid #e5e7eb;border-radius:14px;padding:.85rem .5rem;display:flex;flex-direction:column;gap:.2rem}.upgrade-plan--premium{background:linear-gradient(135deg,#ede9fe,#ddd6fe);border-color:#c4b5fd}.upgrade-plan-name{font-size:.8rem;font-weight:800;color:#374151;margin:0}.upgrade-plan--premium .upgrade-plan-name{color:#4f46e5}.upgrade-plan-credits{font-size:.75rem;color:#6b7280;margin:0;font-weight:600}.upgrade-plan-price{font-size:.9rem;font-weight:900;color:#1a1a2e;margin:0}.upgrade-arrow{font-size:1.2rem;color:#9ca3af;flex-shrink:0}.upgrade-btn{width:100%;background:linear-gradient(135deg,#4f46e5,#7c3aed);color:#fff;border:none;border-radius:14px;padding:.9rem 1rem;font-size:.95rem;font-weight:800;cursor:pointer;box-shadow:0 4px 16px #4f46e559;transition:opacity .15s,transform .12s}.upgrade-btn:hover:not(:disabled){opacity:.9;transform:translateY(-1px)}.upgrade-btn:disabled{opacity:.55;cursor:not-allowed}.upgrade-skip{background:none;border:none;color:#9ca3af;font-size:.78rem;cursor:pointer;padding:.25rem;transition:color .15s}.upgrade-skip:hover{color:#6b7280}.upgrade-error{font-size:.8rem;color:#dc2626;margin:0}.upgrade-note{display:flex;align-items:flex-start;gap:.5rem;background:#f0f9ff;border:1px solid #bae6fd;border-radius:10px;padding:.65rem .85rem;font-size:.78rem;color:#0369a1;line-height:1.5;text-align:left;width:100%}.upgrade-pending-badge{display:flex;align-items:center;gap:.5rem;background:#fef3c7;border:1px solid #fde68a;border-radius:10px;padding:.65rem 1rem;font-size:.85rem;font-weight:700;color:#92400e;width:100%;justify-content:center}.upgrade-banking{background:#f0fdf4;border:1.5px solid #86efac;border-radius:14px;padding:1rem 1.1rem;width:100%;text-align:left}.upgrade-banking-title{font-size:.85rem;font-weight:800;color:#166534;margin:0 0 .75rem}.upgrade-banking-table{width:100%;border-collapse:collapse;font-size:.82rem}.upgrade-banking-table td{padding:.3rem 0;color:#374151;vertical-align:top}.upgrade-banking-table td:first-child{color:#6b7280;width:45%;padding-right:.5rem}.upgrade-banking-note{font-size:.75rem;color:#166534;margin:.75rem 0 0;font-style:italic}.home-page{padding:1rem 1rem 1.5rem;display:flex;flex-direction:column;gap:1.25rem}.home-header{background:linear-gradient(135deg,#4f46e5,#7c3aed 60%,#a855f7);color:#fff;border-radius:16px;padding:1.4rem 1.1rem;box-shadow:0 4px 20px #4f46e559}.home-greeting{font-size:1.3rem;font-weight:800;margin-bottom:.6rem;letter-spacing:-.3px}.home-stats{display:flex;gap:.6rem;flex-wrap:wrap}.home-stat{font-size:.85rem;font-weight:600;background:#ffffff2e;border:1px solid rgba(255,255,255,.25);border-radius:20px;padding:.25rem .85rem;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.home-section{display:flex;flex-direction:column;gap:.6rem}.home-section-title{font-size:.95rem;font-weight:700;color:#374151;text-transform:uppercase;letter-spacing:.05em}.home-muted{font-size:.9rem;color:#6b7280}.btn-primary{background:linear-gradient(135deg,#4f46e5,#7c3aed);color:#fff;border:none;border-radius:14px;padding:.95rem 1.25rem;font-size:1rem;font-weight:700;cursor:pointer;box-shadow:0 4px 16px #4f46e566;transition:opacity .15s,transform .12s,box-shadow .15s;letter-spacing:.01em}.btn-primary:hover,.btn-primary:focus-visible{opacity:.92;transform:translateY(-1px);box-shadow:0 6px 20px #4f46e580;outline:2px solid #4f46e5;outline-offset:2px}.btn-full{width:100%;text-align:center}.goal-card{display:flex;align-items:center;gap:.85rem;background:#fff;border:1px solid #e8eaf0;border-radius:14px;padding:.95rem 1.1rem;cursor:pointer;font-size:.95rem;font-weight:500;-webkit-user-select:none;user-select:none;box-shadow:0 1px 4px #0000000f;transition:background .15s,box-shadow .15s}.goal-card:hover{background:#f5f3ff;box-shadow:0 3px 10px #4f46e51a}.goal-check{font-size:1.25rem;line-height:1}.goal-check--done{opacity:.8}.goal-text--done{text-decoration:line-through;color:#9ca3af}.weak-list{list-style:none;display:flex;flex-direction:column;gap:.5rem}.weak-item{display:flex;justify-content:space-between;align-items:center;background:#fff;border:1px solid #e8eaf0;border-left:3px solid #f87171;border-radius:12px;padding:.7rem 1rem;font-size:.9rem;box-shadow:0 1px 4px #0000000d}.weak-score{font-weight:700;color:#ef4444;font-size:.875rem}.quick-actions{display:flex;flex-direction:column;gap:.5rem}.btn-action{background:#fff;border:1px solid #e8eaf0;border-radius:14px;padding:.9rem 1.1rem;font-size:.95rem;font-weight:600;text-align:left;cursor:pointer;box-shadow:0 1px 4px #0000000f;transition:background .15s,border-color .15s,box-shadow .15s,transform .12s;color:#1a1a2e}.btn-action:hover,.btn-action:focus-visible{background:#f5f3ff;border-color:#a5b4fc;box-shadow:0 4px 14px #4f46e51f;transform:translateY(-1px);outline:none}@media (min-width: 1024px){.home-page{padding:0}.home-desktop-grid{display:grid;grid-template-columns:1fr 320px;gap:1.5rem;align-items:start}.home-greeting{font-size:1.6rem}.quick-actions{flex-direction:row;flex-wrap:wrap}.btn-action{flex:1 1 calc(50% - .25rem)}}.home-stat--credits{background:#ffffff38}.home-stat--low{background:#ef444459;border-color:#ef444480;animation:credits-pulse 2s ease-in-out infinite}@keyframes credits-pulse{0%,to{opacity:1}50%{opacity:.7}}.home-credits-warning{font-size:.78rem;font-weight:600;color:#ffdcb4;margin:.5rem 0 0;opacity:.95;display:flex;align-items:center;gap:.5rem}.home-upgrade-link{background:none;border:none;color:#fff;font-size:.78rem;font-weight:800;cursor:pointer;text-decoration:underline;padding:0}.home-upgrade-banner{display:block;width:100%;margin-top:.75rem;background:linear-gradient(135deg,#7c3aedb3,#4f46e5b3);border:1px solid rgba(196,181,253,.4);border-radius:10px;color:#fff;font-size:.82rem;font-weight:700;padding:.55rem .85rem;cursor:pointer;text-align:left;transition:background .15s}.home-upgrade-banner:hover{background:linear-gradient(135deg,#7c3aede6,#4f46e5e6)}.ai-chat-fab{position:fixed;bottom:76px;right:1rem;z-index:200;display:flex;align-items:center;gap:.4rem;background:linear-gradient(135deg,#4f46e5,#7c3aed);color:#fff;border:none;border-radius:24px;padding:.65rem 1.15rem;font-size:.9rem;font-weight:700;cursor:pointer;box-shadow:0 4px 16px #4f46e580;transition:transform .15s,box-shadow .15s;letter-spacing:.01em}.ai-chat-fab:hover,.ai-chat-fab:focus-visible{transform:translateY(-2px);box-shadow:0 6px 20px #4f46e599;outline:2px solid rgba(255,255,255,.6);outline-offset:2px}.ai-chat-panel{position:fixed;bottom:76px;right:.75rem;left:.75rem;z-index:200;display:flex;flex-direction:column;background:#fff;border:1px solid #e8eaf0;border-radius:18px;box-shadow:0 8px 32px #00000026;max-height:70dvh;overflow:hidden}@media (min-width: 480px){.ai-chat-panel{left:auto;width:360px}}.ai-chat-header{display:flex;align-items:center;justify-content:space-between;padding:.75rem 1rem;background:linear-gradient(135deg,#4f46e5,#7c3aed);border-radius:16px 16px 0 0;color:#fff;flex-shrink:0}.ai-chat-header-title{font-size:1rem;font-weight:700}.ai-chat-close-btn{background:#fff3;border:none;border-radius:50%;color:#fff;width:28px;height:28px;display:flex;align-items:center;justify-content:center;font-size:.8rem;cursor:pointer;transition:background .15s}.ai-chat-close-btn:hover,.ai-chat-close-btn:focus-visible{background:#ffffff59;outline:2px solid rgba(255,255,255,.6);outline-offset:2px}.ai-chat-messages{flex:1;overflow-y:auto;padding:.75rem 1rem;display:flex;flex-direction:column;gap:.5rem;min-height:80px}.ai-chat-empty{font-size:.875rem;color:#9ca3af;text-align:center;padding:1rem 0}.ai-chat-bubble{max-width:85%;padding:.55rem .85rem;border-radius:12px;font-size:.875rem;line-height:1.5;word-break:break-word}.ai-chat-bubble--user{align-self:flex-end;background:linear-gradient(135deg,#4f46e5,#7c3aed);color:#fff;border-bottom-right-radius:4px}.ai-chat-bubble--ai{align-self:flex-start;background:#f3f4f6;color:#1a1a1a;border-bottom-left-radius:4px}.ai-chat-loading{padding:.65rem 1rem}.ai-chat-dots{display:flex;gap:4px;align-items:center}.ai-chat-dots span{width:7px;height:7px;border-radius:50%;background:#9ca3af;animation:ai-dot-bounce 1.2s infinite ease-in-out}.ai-chat-dots span:nth-child(2){animation-delay:.2s}.ai-chat-dots span:nth-child(3){animation-delay:.4s}@keyframes ai-dot-bounce{0%,80%,to{transform:scale(.7);opacity:.5}40%{transform:scale(1);opacity:1}}.ai-chat-error{font-size:.8rem;color:#dc2626;text-align:center;padding:.25rem 0}.ai-chat-suggestions{display:flex;flex-wrap:wrap;gap:.4rem;padding:0 1rem .75rem;flex-shrink:0}.ai-chat-chip{background:#f3f4f6;border:1px solid #e5e7eb;border-radius:20px;color:#4f46e5;font-size:.78rem;font-weight:500;padding:.3rem .75rem;cursor:pointer;transition:background .15s,border-color .15s;white-space:nowrap}.ai-chat-chip:hover,.ai-chat-chip:focus-visible{background:#ede9fe;border-color:#4f46e5;outline:none}.ai-chat-chip:disabled{opacity:.5;cursor:not-allowed}.ai-chat-form{display:flex;gap:.5rem;padding:.75rem 1rem;border-top:1px solid #e5e7eb;flex-shrink:0}.ai-chat-input{flex:1;border:1px solid #e5e7eb;border-radius:8px;padding:.5rem .75rem;font-size:.875rem;color:#1a1a1a;background:#f9fafb;transition:border-color .15s;min-width:0}.ai-chat-input:focus{outline:none;border-color:#4f46e5;background:#fff}.ai-chat-input:disabled{opacity:.6}.ai-chat-send-btn{background:linear-gradient(135deg,#4f46e5,#7c3aed);color:#fff;border:none;border-radius:8px;padding:.5rem .9rem;font-size:.875rem;font-weight:600;cursor:pointer;white-space:nowrap;transition:opacity .15s}.ai-chat-send-btn:disabled{opacity:.45;cursor:not-allowed}.ai-chat-send-btn:hover:not(:disabled),.ai-chat-send-btn:focus-visible:not(:disabled){opacity:.9;outline:2px solid #4f46e5;outline-offset:2px}.ai-chat-panel--subject{position:static;bottom:auto;right:auto;left:auto;width:100%;max-height:420px;border-radius:16px;box-shadow:0 4px 20px #4f46e51f}.upload-modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:300;background:#00000073;display:flex;align-items:center;justify-content:center;padding:1rem;animation:upload-backdrop-in .15s ease}@keyframes upload-backdrop-in{0%{opacity:0}to{opacity:1}}.upload-modal{background:#fff;border-radius:16px;box-shadow:0 12px 40px #0003;width:100%;max-width:480px;max-height:90dvh;display:flex;flex-direction:column;overflow:hidden;animation:upload-modal-in .18s ease}@keyframes upload-modal-in{0%{opacity:0;transform:translateY(12px) scale(.97)}to{opacity:1;transform:translateY(0) scale(1)}}.upload-modal__header{display:flex;align-items:center;justify-content:space-between;padding:1rem 1.25rem;background:linear-gradient(135deg,#4f46e5,#7c3aed);border-radius:16px 16px 0 0;flex-shrink:0}.upload-modal__title{font-size:1.05rem;font-weight:700;color:#fff;margin:0}.upload-modal__close-btn{background:#fff3;border:none;border-radius:50%;color:#fff;width:30px;height:30px;display:flex;align-items:center;justify-content:center;font-size:.85rem;cursor:pointer;transition:background .15s;flex-shrink:0}.upload-modal__close-btn:hover,.upload-modal__close-btn:focus-visible{background:#ffffff59;outline:2px solid rgba(255,255,255,.6);outline-offset:2px}.upload-modal__body{flex:1;overflow-y:auto;padding:1.25rem}.upload-modal__form{display:flex;flex-direction:column;gap:1rem}.upload-modal__dropzone{border:2px dashed #d1d5db;border-radius:12px;padding:1.5rem 1rem;display:flex;flex-direction:column;align-items:center;gap:.5rem;text-align:center;background:#f9fafb;transition:border-color .15s,background .15s;cursor:default;min-height:120px;justify-content:center}.upload-modal__dropzone--active{border-color:#4f46e5;background:#ede9fe}.upload-modal__dropzone--disabled{opacity:.5;cursor:not-allowed;pointer-events:none}.upload-modal__dropzone--has-file{border-color:#10b981;background:#ecfdf5;cursor:default}.upload-modal__dropzone-icon{font-size:2rem;line-height:1}.upload-modal__dropzone-text{font-size:.875rem;color:#6b7280;margin:0}.upload-modal__dropzone-hint{font-size:.78rem;color:#9ca3af;margin:0}.upload-modal__browse-btn{background:#fff;border:1.5px solid #4f46e5;border-radius:8px;color:#4f46e5;font-size:.85rem;font-weight:600;padding:.4rem 1rem;cursor:pointer;transition:background .15s,color .15s}.upload-modal__browse-btn:hover:not(:disabled),.upload-modal__browse-btn:focus-visible:not(:disabled){background:#ede9fe;outline:2px solid #4f46e5;outline-offset:2px}.upload-modal__browse-btn:disabled{opacity:.45;cursor:not-allowed}.upload-modal__file-input{display:none}.upload-modal__file-info{display:flex;align-items:center;gap:.75rem;width:100%;text-align:left}.upload-modal__file-icon{font-size:1.75rem;flex-shrink:0}.upload-modal__file-details{flex:1;min-width:0;display:flex;flex-direction:column;gap:.15rem}.upload-modal__file-name{font-size:.875rem;font-weight:600;color:#111827;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.upload-modal__file-size{font-size:.78rem;color:#6b7280}.upload-modal__file-clear{background:#f3f4f6;border:none;border-radius:50%;color:#6b7280;width:26px;height:26px;display:flex;align-items:center;justify-content:center;font-size:.75rem;cursor:pointer;flex-shrink:0;transition:background .15s,color .15s}.upload-modal__file-clear:hover,.upload-modal__file-clear:focus-visible{background:#fee2e2;color:#dc2626;outline:2px solid #dc2626;outline-offset:2px}.upload-modal__divider{display:flex;align-items:center;gap:.75rem;color:#9ca3af;font-size:.8rem}.upload-modal__divider:before,.upload-modal__divider:after{content:"";flex:1;height:1px;background:#e5e7eb}.upload-modal__url-group{display:flex;flex-direction:column;gap:.35rem}.upload-modal__label{font-size:.875rem;font-weight:600;color:#374151}.upload-modal__url-input{width:100%;padding:.6rem .75rem;border:1px solid #d1d5db;border-radius:8px;font-size:.875rem;color:#111827;background:#fff;transition:border-color .15s,box-shadow .15s;box-sizing:border-box}.upload-modal__url-input:focus{outline:none;border-color:#4f46e5;box-shadow:0 0 0 2px #4f46e526}.upload-modal__url-input:disabled{background:#f3f4f6;color:#9ca3af;cursor:not-allowed}.upload-modal__textarea{resize:vertical;min-height:100px;font-family:inherit;line-height:1.5}.upload-modal__hint{font-size:.78rem;color:#9ca3af;margin:0}.upload-modal__validation{font-size:.85rem;color:#dc2626;background:#fef2f2;border:1px solid #fecaca;border-radius:8px;padding:.5rem .75rem;margin:0}.upload-modal__submit-btn{background:linear-gradient(135deg,#4f46e5,#7c3aed);color:#fff;border:none;border-radius:10px;padding:.7rem 1.25rem;font-size:.95rem;font-weight:700;cursor:pointer;transition:opacity .15s;width:100%}.upload-modal__submit-btn:hover:not(:disabled),.upload-modal__submit-btn:focus-visible:not(:disabled){opacity:.9;outline:2px solid #4f46e5;outline-offset:2px}.upload-modal__submit-btn:disabled{opacity:.45;cursor:not-allowed}.upload-modal__status{display:flex;flex-direction:column;align-items:center;gap:.75rem;padding:1.5rem .5rem;text-align:center}.upload-modal__status-title{font-size:1rem;font-weight:700;color:#111827;margin:0}.upload-modal__status-sub{font-size:.875rem;color:#6b7280;margin:0;max-width:340px}.upload-modal__status-icon{font-size:2.5rem;line-height:1}.upload-modal__status--success .upload-modal__status-title{color:#059669}.upload-modal__status--error .upload-modal__status-title{color:#dc2626}.upload-modal__spinner{width:40px;height:40px;border:4px solid #e5e7eb;border-top-color:#4f46e5;border-radius:50%;animation:upload-spin .75s linear infinite}@keyframes upload-spin{to{transform:rotate(360deg)}}.upload-modal__dismiss-btn{background:transparent;border:1.5px solid #d1d5db;border-radius:8px;color:#6b7280;font-size:.875rem;font-weight:500;padding:.45rem 1rem;cursor:pointer;transition:border-color .15s,color .15s;margin-top:.25rem}.upload-modal__dismiss-btn:hover,.upload-modal__dismiss-btn:focus-visible{border-color:#4f46e5;color:#4f46e5;outline:2px solid #4f46e5;outline-offset:2px}.upload-modal__retry-btn{background:linear-gradient(135deg,#4f46e5,#7c3aed);color:#fff;border:none;border-radius:8px;padding:.55rem 1.25rem;font-size:.875rem;font-weight:600;cursor:pointer;transition:opacity .15s;margin-top:.25rem}.upload-modal__retry-btn:hover,.upload-modal__retry-btn:focus-visible{opacity:.9;outline:2px solid #4f46e5;outline-offset:2px}.learn-page{padding:1rem 1rem 1.5rem;display:flex;flex-direction:column;gap:1rem}.learn-header{display:flex;align-items:center;gap:.75rem;background:linear-gradient(135deg,#4f46e5,#7c3aed 60%,#a855f7);color:#fff;border-radius:16px;padding:1.4rem 1.1rem;box-shadow:0 4px 20px #4f46e559}.learn-title{font-size:1.3rem;font-weight:800;flex:1;letter-spacing:-.3px}.learn-back-btn{background:#ffffff2e;border:1px solid rgba(255,255,255,.3);border-radius:10px;color:#fff;font-size:.875rem;font-weight:600;padding:.4rem .85rem;cursor:pointer;white-space:nowrap;transition:background .15s;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.learn-back-btn:hover,.learn-back-btn:focus-visible{background:#ffffff4d;outline:2px solid rgba(255,255,255,.6);outline-offset:2px}.learn-loading,.learn-empty{font-size:.95rem;color:#6b7280;text-align:center;padding:3rem 0}.learn-list-actions{display:flex;justify-content:flex-end;margin-bottom:.25rem}.learn-upload-btn{display:inline-flex;align-items:center;gap:.4rem;background:linear-gradient(135deg,#4f46e5,#7c3aed);color:#fff;border:none;border-radius:10px;padding:.55rem 1.1rem;font-size:.875rem;font-weight:700;cursor:pointer;box-shadow:0 3px 12px #4f46e566;transition:opacity .15s,transform .15s,box-shadow .15s;letter-spacing:.01em}.learn-upload-btn:hover,.learn-upload-btn:focus-visible{opacity:.92;transform:translateY(-1px);box-shadow:0 5px 16px #4f46e580;outline:2px solid #4f46e5;outline-offset:2px}.learn-list{display:flex;flex-direction:column;gap:.6rem}.learn-card{display:flex;align-items:center;justify-content:space-between;background:#fff;border:1px solid #e8eaf0;border-radius:14px;padding:1rem 1.1rem;font-size:.95rem;font-weight:500;text-align:left;cursor:pointer;transition:background .15s,border-color .15s,box-shadow .15s,transform .12s;width:100%;box-shadow:0 1px 4px #0000000f}.learn-card:hover,.learn-card:focus-visible{background:#f5f3ff;border-color:#a5b4fc;box-shadow:0 4px 14px #4f46e51f;transform:translateY(-1px);outline:none}.learn-card-name{flex:1;color:#1a1a2e;font-weight:600}.learn-card-arrow{font-size:1.3rem;color:#a5b4fc;line-height:1;transition:color .15s,transform .15s}.learn-card:hover .learn-card-arrow{color:#4f46e5;transform:translate(2px)}.learn-lesson{display:flex;flex-direction:column;gap:1rem}.learn-lesson-title{font-size:1.15rem;font-weight:800;color:#1a1a2e;letter-spacing:-.2px}.learn-video-wrapper{position:relative;width:100%;padding-top:56.25%;border-radius:14px;overflow:hidden;background:#000;box-shadow:0 4px 16px #00000026}.learn-video{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;border:none}.learn-lesson-content{background:#fff;border:1px solid #e8eaf0;border-radius:14px;padding:1.1rem;font-size:.95rem;line-height:1.75;color:#374151;box-shadow:0 1px 4px #0000000f}.learn-lesson-paragraph{margin:0 0 .85rem}.learn-lesson-paragraph:last-child{margin-bottom:0}.learn-empty-state{display:flex;flex-direction:column;align-items:center;gap:.5rem;padding:3rem 1rem;text-align:center}.learn-empty-icon{font-size:3rem;line-height:1;opacity:.5}.learn-empty-title{font-size:1rem;font-weight:700;color:#374151}.learn-empty-sub{font-size:.875rem;color:#9ca3af;max-width:260px;line-height:1.5}.learn-group{display:flex;flex-direction:column;gap:.5rem;margin-bottom:.5rem}.learn-group-title{font-size:.75rem;font-weight:800;text-transform:uppercase;letter-spacing:.07em;color:#6b7280;padding:0 .25rem;margin:0}.learn-grade-prompt{display:flex;align-items:flex-start;gap:.75rem;background:#eef2ff;border:1px solid #c7d2fe;border-radius:14px;padding:.9rem 1rem}.learn-grade-prompt-icon{font-size:1.5rem;line-height:1;flex-shrink:0}.learn-grade-prompt-title{font-size:.875rem;font-weight:700;color:#3730a3;margin:0 0 .2rem}.learn-grade-prompt-sub{font-size:.8rem;color:#4f46e5;margin:0}.learn-grade-prompt-link{background:none;border:none;color:#4f46e5;font-weight:700;font-size:.8rem;cursor:pointer;padding:0;text-decoration:underline}.learn-upload-cta{display:inline-flex;align-items:center;gap:.4rem;background:linear-gradient(135deg,#4f46e5,#7c3aed);color:#fff;border:none;border-radius:12px;padding:.7rem 1.25rem;font-size:.875rem;font-weight:700;cursor:pointer;margin-top:.5rem;box-shadow:0 3px 12px #4f46e566;transition:opacity .15s,transform .12s}.learn-upload-cta:hover,.learn-upload-cta:focus-visible{opacity:.9;transform:translateY(-1px);outline:2px solid #4f46e5;outline-offset:2px}@media (min-width: 1024px){.learn-page{padding:0}.learn-card{padding:1.1rem 1.4rem;font-size:1rem}.learn-list{display:grid;grid-template-columns:repeat(2,1fr);gap:.75rem}.learn-header{grid-column:1 / -1;display:grid;grid-template-columns:auto 1fr}.learn-list-actions,.learn-empty-state{grid-column:1 / -1}.learn-lesson-content{font-size:1rem;line-height:1.8;padding:1.5rem}}.learn-create-btn{display:inline-flex;align-items:center;gap:.4rem;background:linear-gradient(135deg,#4f46e5,#7c3aed);color:#fff;border:none;border-radius:10px;padding:.55rem 1.1rem;font-size:.875rem;font-weight:700;cursor:pointer;box-shadow:0 3px 12px #4f46e566;transition:opacity .15s,transform .15s}.learn-create-btn:hover,.learn-create-btn:focus-visible{opacity:.9;transform:translateY(-1px);outline:2px solid #4f46e5;outline-offset:2px}.learn-folder-row{display:flex;align-items:center;gap:.5rem}.learn-card--folder{flex:1}.learn-folder-icon{font-size:1.1rem;flex-shrink:0}.learn-folder-delete{background:none;border:1px solid #e8eaf0;border-radius:8px;padding:.55rem .65rem;font-size:.9rem;cursor:pointer;color:#9ca3af;flex-shrink:0;transition:background .15s,color .15s,border-color .15s}.learn-folder-delete:hover,.learn-folder-delete:focus-visible{background:#fef2f2;border-color:#fca5a5;color:#dc2626;outline:none}.learn-modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000073;display:flex;align-items:flex-end;justify-content:center;z-index:400;padding:0;animation:learn-overlay-in .2s ease}@keyframes learn-overlay-in{0%{opacity:0}to{opacity:1}}.learn-modal{background:#fff;border-radius:20px 20px 0 0;padding:1.5rem 1.5rem 2rem;width:100%;max-width:480px;display:flex;flex-direction:column;gap:.75rem;animation:learn-modal-up .22s ease}@keyframes learn-modal-up{0%{transform:translateY(30px);opacity:0}to{transform:translateY(0);opacity:1}}@media (min-width: 640px){.learn-modal-backdrop{align-items:center}.learn-modal{border-radius:20px}}.learn-modal-header{display:flex;align-items:center;justify-content:space-between}.learn-modal-title{font-size:1.05rem;font-weight:800;color:#1a1a2e;margin:0}.learn-modal-close{background:#f3f4f6;border:none;border-radius:50%;width:28px;height:28px;display:flex;align-items:center;justify-content:center;font-size:.8rem;cursor:pointer;color:#6b7280;transition:background .15s}.learn-modal-close:hover{background:#e5e7eb}.learn-modal-sub{font-size:.85rem;color:#6b7280;margin:0;line-height:1.5}.learn-modal-form{display:flex;flex-direction:column;gap:.65rem}.learn-modal-input{border:1.5px solid #e8eaf0;border-radius:10px;padding:.75rem 1rem;font-size:.95rem;color:#1a1a2e;background:#f9fafb;width:100%;transition:border-color .15s}.learn-modal-input:focus{outline:none;border-color:#4f46e5;background:#fff;box-shadow:0 0 0 3px #4f46e51f}.learn-modal-error{font-size:.8rem;color:#dc2626;margin:0}.learn-modal-actions{display:flex;gap:.6rem;margin-top:.25rem}.learn-modal-cancel{flex:1;background:#f3f4f6;border:none;border-radius:10px;color:#374151;font-size:.9rem;font-weight:600;padding:.8rem;cursor:pointer;transition:background .15s}.learn-modal-cancel:hover{background:#e5e7eb}.learn-modal-submit{flex:1;background:linear-gradient(135deg,#4f46e5,#7c3aed);border:none;border-radius:10px;color:#fff;font-size:.9rem;font-weight:700;padding:.8rem;cursor:pointer;box-shadow:0 3px 10px #4f46e559;transition:opacity .15s}.learn-modal-submit:disabled{opacity:.5;cursor:not-allowed}.learn-modal-submit:hover:not(:disabled){opacity:.9}.learn-modal-delete{flex:1;background:linear-gradient(135deg,#dc2626,#b91c1c);border:none;border-radius:10px;color:#fff;font-size:.9rem;font-weight:700;padding:.8rem;cursor:pointer;box-shadow:0 3px 10px #dc26264d;transition:opacity .15s}.learn-modal-delete:hover{opacity:.88}.quiz-page{padding:1rem 1rem 1.5rem;display:flex;flex-direction:column;gap:1rem;min-height:calc(100dvh - 56px)}.quiz-header{display:flex;flex-direction:column;gap:.5rem}.quiz-title{font-size:1.4rem;font-weight:800;color:#1a1a2e;letter-spacing:-.3px}.quiz-back-btn{background:none;border:none;color:#4f46e5;font-size:.95rem;font-weight:700;cursor:pointer;padding:0;text-align:left}.quiz-hint{font-size:.875rem;color:#6b7280;font-weight:500}.quiz-list{display:flex;flex-direction:column;gap:.6rem}.quiz-card{display:flex;justify-content:space-between;align-items:center;background:#fff;border:1px solid #e8eaf0;border-radius:14px;padding:.95rem 1.1rem;font-size:.95rem;font-weight:600;cursor:pointer;text-align:left;box-shadow:0 1px 4px #0000000f;transition:background .15s,border-color .15s,box-shadow .15s,transform .12s;color:#1a1a2e}.quiz-card:hover,.quiz-card:focus-visible{background:#f5f3ff;border-color:#a5b4fc;box-shadow:0 4px 14px #4f46e51f;transform:translateY(-1px);outline:none}.quiz-card-arrow{color:#a5b4fc;font-size:1.25rem;transition:color .15s,transform .15s}.quiz-card:hover .quiz-card-arrow{color:#4f46e5;transform:translate(2px)}.quiz-progress-row{display:flex;justify-content:space-between;align-items:center}.quiz-progress-label{font-size:.85rem;color:#6b7280;font-weight:600}.quiz-timer-label{font-size:.95rem;font-weight:800;color:#4f46e5;min-width:2.5rem;text-align:right}.quiz-timer-label--danger{color:#ef4444}.quiz-timer-bar-track{height:6px;background:#e8eaf0;border-radius:99px;overflow:hidden}.quiz-timer-bar-fill{height:100%;background:linear-gradient(90deg,#4f46e5,#7c3aed);border-radius:99px;transition:width 1s linear,background .3s}.quiz-timer-bar-fill--danger{background:linear-gradient(90deg,#f87171,#ef4444)}.quiz-question-card{background:linear-gradient(135deg,#4f46e5,#7c3aed 60%,#a855f7);color:#fff;border-radius:16px;padding:1.4rem 1.1rem;box-shadow:0 4px 20px #4f46e559}.quiz-question-text{font-size:1.05rem;font-weight:700;line-height:1.55}.quiz-options{display:flex;flex-direction:column;gap:.55rem}.quiz-option{display:flex;align-items:center;gap:.85rem;background:#fff;border:2px solid #e8eaf0;border-radius:12px;padding:.85rem 1rem;font-size:.95rem;font-weight:500;cursor:pointer;text-align:left;box-shadow:0 1px 4px #0000000d;transition:background .15s,border-color .15s,box-shadow .15s,transform .1s;color:#1a1a2e}.quiz-option:hover:not(:disabled),.quiz-option:focus-visible:not(:disabled){background:#f5f3ff;border-color:#a5b4fc;box-shadow:0 3px 10px #4f46e51f;transform:translateY(-1px);outline:none}.quiz-option--selected{border-color:#4f46e5;background:#eef2ff;box-shadow:0 3px 10px #4f46e526}.quiz-option--disabled{cursor:default}.quiz-option--correct{border-color:#22c55e;background:#f0fdf4}.quiz-option--wrong{border-color:#ef4444;background:#fef2f2}.quiz-option-letter{display:inline-flex;align-items:center;justify-content:center;width:1.85rem;height:1.85rem;border-radius:50%;background:#f0f2f8;font-size:.8rem;font-weight:800;flex-shrink:0;color:#374151;transition:background .15s,color .15s}.quiz-option--correct .quiz-option-letter{background:#22c55e;color:#fff}.quiz-option--wrong .quiz-option-letter{background:#ef4444;color:#fff}.quiz-option--selected .quiz-option-letter{background:#4f46e5;color:#fff}.quiz-feedback-card{border-radius:14px;padding:1.1rem;display:flex;flex-direction:column;gap:.45rem}.quiz-feedback-card--correct{background:#f0fdf4;border:1px solid #86efac;box-shadow:0 2px 8px #22c55e1a}.quiz-feedback-card--incorrect{background:#fef2f2;border:1px solid #fca5a5;box-shadow:0 2px 8px #ef44441a}.quiz-feedback-result{font-size:1.05rem;font-weight:800}.quiz-feedback-answer{font-size:.9rem;color:#374151}.quiz-feedback-explanation{font-size:.9rem;color:#4b5563;line-height:1.55;margin-top:.25rem}.quiz-btn-next{background:linear-gradient(135deg,#4f46e5,#7c3aed);color:#fff;border:none;border-radius:14px;padding:.95rem 1.25rem;font-size:1rem;font-weight:700;cursor:pointer;width:100%;box-shadow:0 4px 16px #4f46e566;transition:opacity .15s,transform .12s,box-shadow .15s;margin-top:auto;letter-spacing:.01em}.quiz-btn-next:hover,.quiz-btn-next:focus-visible{opacity:.92;transform:translateY(-1px);box-shadow:0 6px 20px #4f46e580;outline:2px solid #4f46e5;outline-offset:2px}.quiz-summary-card{background:linear-gradient(135deg,#4f46e5,#7c3aed 60%,#a855f7);color:#fff;border-radius:16px;padding:1.75rem 1rem;text-align:center;box-shadow:0 4px 20px #4f46e559}.quiz-summary-score{font-size:3.5rem;font-weight:900;line-height:1;letter-spacing:-2px}.quiz-summary-label{font-size:1rem;font-weight:700;margin-top:.3rem;opacity:.9}.quiz-summary-detail{font-size:.9rem;opacity:.75;margin-top:.2rem}.quiz-summary-list{display:flex;flex-direction:column;gap:.45rem}.quiz-summary-item{display:flex;align-items:flex-start;gap:.65rem;background:#fff;border:1px solid #e8eaf0;border-radius:10px;padding:.7rem .9rem;font-size:.875rem;box-shadow:0 1px 3px #0000000d}.quiz-summary-item--correct{border-left:3px solid #22c55e}.quiz-summary-item--incorrect{border-left:3px solid #ef4444}.quiz-summary-icon{flex-shrink:0;font-size:1rem}.quiz-summary-q{color:#374151;line-height:1.4}.quiz-loading,.quiz-empty,.quiz-error{font-size:.9rem;color:#6b7280;text-align:center;padding:1rem 0}.quiz-error{color:#ef4444}@media (min-width: 1024px){.quiz-page{padding:0;max-width:720px}.quiz-question-text{font-size:1.15rem}.quiz-options{gap:.65rem}.quiz-option{padding:1rem 1.25rem;font-size:1rem}}.fc-page{padding:1rem 1rem 2rem;display:flex;flex-direction:column;gap:1rem;min-height:100dvh;background:#f5f6fa}.fc-header{display:flex;align-items:center;gap:.75rem;background:linear-gradient(135deg,#7c3aed,#a855f7);color:#fff;border-radius:16px;padding:1.4rem 1.1rem;box-shadow:0 4px 20px #7c3aed59}.fc-title{font-size:1.3rem;font-weight:800;flex:1;letter-spacing:-.3px}.fc-back-btn{background:#ffffff2e;border:1px solid rgba(255,255,255,.3);border-radius:10px;color:#fff;font-size:.875rem;font-weight:600;padding:.4rem .85rem;cursor:pointer;white-space:nowrap;transition:background .15s}.fc-back-btn:hover{background:#ffffff4d}.fc-loading{text-align:center;color:#9ca3af;font-size:.9rem;padding:2rem 0}.fc-home{display:flex;flex-direction:column;gap:.85rem}.fc-due-card{display:flex;align-items:center;gap:.85rem;background:linear-gradient(135deg,#7c3aed,#a855f7);color:#fff;border-radius:16px;padding:1.25rem 1.1rem;box-shadow:0 4px 16px #7c3aed4d;cursor:pointer;transition:transform .12s,box-shadow .15s}.fc-due-card:hover{transform:translateY(-1px);box-shadow:0 6px 20px #7c3aed66}.fc-due-card--empty{background:#f3f4f6;color:#6b7280;cursor:default;box-shadow:none}.fc-due-card--empty:hover{transform:none;box-shadow:none}.fc-due-icon{font-size:2rem;line-height:1;flex-shrink:0}.fc-due-count{font-size:1rem;font-weight:800;margin:0}.fc-due-sub{font-size:.78rem;opacity:.85;margin:.15rem 0 0}.fc-due-arrow{font-size:1.4rem;margin-left:auto;flex-shrink:0}.fc-browse-btn{background:#fff;border:1.5px solid #e8eaf0;border-radius:14px;padding:1rem 1.1rem;font-size:.95rem;font-weight:700;text-align:left;cursor:pointer;color:#1a1a2e;box-shadow:0 1px 4px #0000000f;transition:background .15s,border-color .15s}.fc-browse-btn:hover{background:#f5f3ff;border-color:#a5b4fc}.fc-empty-hint{font-size:.82rem;color:#9ca3af;text-align:center;padding:.5rem 0}.fc-list{display:flex;flex-direction:column;gap:.6rem}.fc-card-btn{display:flex;align-items:center;gap:.75rem;background:#fff;border:1px solid #e8eaf0;border-radius:14px;padding:.95rem 1.1rem;font-size:.95rem;font-weight:600;text-align:left;cursor:pointer;color:#1a1a2e;box-shadow:0 1px 4px #0000000f;transition:background .15s,border-color .15s,transform .12s;width:100%}.fc-card-btn:hover{background:#f5f3ff;border-color:#a5b4fc;transform:translateY(-1px)}.fc-card-icon{font-size:1.1rem;flex-shrink:0}.fc-card-label{flex:1}.fc-card-arrow{color:#a5b4fc;font-size:1.2rem}.fc-empty{text-align:center;color:#9ca3af;font-size:.9rem;padding:2rem 0}.fc-cards-view{display:flex;flex-direction:column;gap:1rem}.fc-cards-actions{display:flex;align-items:center;justify-content:space-between}.fc-cards-count{font-size:.82rem;font-weight:700;color:#6b7280}.fc-generate-btn{background:linear-gradient(135deg,#7c3aed,#a855f7);color:#fff;border:none;border-radius:10px;padding:.5rem 1rem;font-size:.82rem;font-weight:700;cursor:pointer;box-shadow:0 2px 8px #7c3aed59;transition:opacity .15s}.fc-generate-btn:disabled{opacity:.55;cursor:not-allowed}.fc-generate-btn:hover:not(:disabled){opacity:.9}.fc-card-grid{display:flex;flex-direction:column;gap:1rem}.fc-empty-state{display:flex;flex-direction:column;align-items:center;gap:.5rem;padding:3rem 1rem;text-align:center}.fc-empty-icon{font-size:3rem;line-height:1;opacity:.5}.fc-empty-title{font-size:1rem;font-weight:700;color:#374151}.fc-empty-sub{font-size:.875rem;color:#9ca3af;max-width:260px;line-height:1.5}.fc-review-btn{background:linear-gradient(135deg,#7c3aed,#a855f7);color:#fff;border:none;border-radius:14px;padding:.95rem;font-size:1rem;font-weight:700;cursor:pointer;width:100%;box-shadow:0 4px 16px #7c3aed66;transition:opacity .15s,transform .12s}.fc-review-btn:hover{opacity:.9;transform:translateY(-1px)}.fc-scene{perspective:1000px;cursor:pointer;min-height:200px}.fc-card{position:relative;width:100%;min-height:200px;transform-style:preserve-3d;transition:transform .5s ease}.fc-card--flipped{transform:rotateY(180deg)}.fc-face{position:absolute;top:0;right:0;bottom:0;left:0;backface-visibility:hidden;-webkit-backface-visibility:hidden;border-radius:16px;padding:1.5rem;display:flex;flex-direction:column;justify-content:center;align-items:center;text-align:center;gap:.75rem;box-shadow:0 4px 20px #0000001a}.fc-face--front{background:linear-gradient(135deg,#7c3aed,#a855f7);color:#fff}.fc-face--back{background:#fff;border:1.5px solid #e8eaf0;color:#1a1a2e;transform:rotateY(180deg);justify-content:flex-start;padding-top:1.25rem}.fc-face-label{font-size:.72rem;font-weight:800;text-transform:uppercase;letter-spacing:.08em;opacity:.7;margin:0}.fc-face--back .fc-face-label{color:#9ca3af}.fc-face-text{font-size:1rem;font-weight:600;line-height:1.55;margin:0}.fc-tap-hint{font-size:.72rem;opacity:.6;margin:0}.fc-rating-row{width:100%;margin-top:.5rem;border-top:1px solid #f0f0f5;padding-top:.75rem}.fc-rating-label{font-size:.75rem;color:#6b7280;font-weight:600;margin:0 0 .5rem;text-align:center}.fc-rating-btns{display:flex;gap:.5rem;justify-content:center}.fc-btn{flex:1;border:none;border-radius:10px;padding:.55rem .5rem;font-size:.78rem;font-weight:700;cursor:pointer;transition:opacity .15s,transform .12s}.fc-btn:hover{opacity:.88;transform:translateY(-1px)}.fc-btn--hard{background:#fee2e2;color:#dc2626}.fc-btn--medium{background:#fef3c7;color:#d97706}.fc-btn--easy{background:#d1fae5;color:#059669}.fc-session{display:flex;flex-direction:column;gap:1rem}.fc-session-header{display:flex;align-items:center;gap:.75rem}.fc-session-count{font-size:.82rem;font-weight:700;color:#6b7280;white-space:nowrap;flex-shrink:0}.fc-session-bar-track{flex:1;height:6px;background:#e8eaf0;border-radius:4px;overflow:hidden}.fc-session-bar-fill{height:100%;background:linear-gradient(90deg,#7c3aed,#a855f7);border-radius:4px;transition:width .3s ease}.fc-done{display:flex;flex-direction:column;align-items:center;gap:.75rem;padding:2rem 1rem;text-align:center}.fc-done-icon{font-size:3.5rem;line-height:1}.fc-done-title{font-size:1.3rem;font-weight:800;color:#1a1a2e;margin:0}.fc-done-sub{font-size:.875rem;color:#6b7280;margin:0;line-height:1.5}@media (min-width: 1024px){.fc-page{padding:0}.fc-card-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:1rem}.fc-scene,.fc-card{min-height:220px}}.progress-page{padding:1rem 1rem 1.5rem;display:flex;flex-direction:column;gap:1.25rem}.progress-header{background:linear-gradient(135deg,#4f46e5,#7c3aed 60%,#a855f7);color:#fff;border-radius:16px;padding:1.4rem 1.1rem;box-shadow:0 4px 20px #4f46e559}.progress-title{font-size:1.3rem;font-weight:800;margin-bottom:.2rem;letter-spacing:-.3px}.progress-subtitle{font-size:.875rem;opacity:.8;font-weight:500}.progress-section{display:flex;flex-direction:column;gap:.6rem}.progress-section-title{font-size:.95rem;font-weight:700;color:#374151;text-transform:uppercase;letter-spacing:.05em}.progress-muted{font-size:.9rem;color:#6b7280}.chart{display:flex;flex-direction:column;gap:.7rem;background:#fff;border:1px solid #e8eaf0;border-radius:14px;padding:1rem 1.1rem;box-shadow:0 1px 4px #0000000f}.chart-row{display:flex;align-items:center;gap:.6rem}.chart-label{flex:0 0 7rem;font-size:.8rem;color:#374151;font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.chart-track{flex:1;height:10px;background:#f0f2f8;border-radius:6px;overflow:hidden}.chart-bar{height:100%;border-radius:6px;transition:width .5s ease;min-width:2px}.chart-value{flex:0 0 2.5rem;font-size:.8rem;font-weight:700;color:#374151;text-align:right}.mastery-list{list-style:none;display:flex;flex-direction:column;gap:.6rem}.mastery-item{background:#fff;border:1px solid #e8eaf0;border-radius:14px;padding:.85rem 1.1rem;display:flex;flex-direction:column;gap:.45rem;box-shadow:0 1px 4px #0000000f}.mastery-item-header{display:flex;justify-content:space-between;align-items:center}.mastery-name{font-size:.9rem;font-weight:600;color:#1a1a2e}.mastery-pct{font-size:.875rem;font-weight:800}.mastery-pct--green{color:#16a34a}.mastery-pct--yellow{color:#ca8a04}.mastery-pct--red{color:#dc2626}.mastery-track{height:8px;background:#f0f2f8;border-radius:4px;overflow:hidden}.mastery-fill{height:100%;border-radius:4px;transition:width .5s ease;min-width:2px}.bar--green{background:linear-gradient(90deg,#22c55e,#16a34a)}.bar--yellow{background:linear-gradient(90deg,#facc15,#eab308)}.bar--red{background:linear-gradient(90deg,#f87171,#ef4444)}.achievement-list{list-style:none;display:flex;flex-direction:column;gap:.55rem}.achievement-item{display:flex;align-items:flex-start;gap:.85rem;background:#fff;border:1px solid #e8eaf0;border-radius:14px;padding:.85rem 1.1rem;box-shadow:0 1px 4px #0000000f}.achievement-icon{font-size:1.6rem;line-height:1;flex-shrink:0}.achievement-info{display:flex;flex-direction:column;gap:.15rem}.achievement-type{font-size:.9rem;font-weight:700;color:#1a1a2e;text-transform:capitalize}.achievement-desc{font-size:.8rem;color:#6b7280}.achievement-date{font-size:.75rem;color:#9ca3af}@media (min-width: 1024px){.progress-page{padding:0;display:grid;grid-template-columns:1fr 1fr;gap:1.5rem;align-items:start}.progress-header{grid-column:1 / -1}.chart-label{flex:0 0 9rem}}.leaderboard-status{font-size:.875rem;color:#6b7280;text-align:center;padding:.5rem 0}.leaderboard-status--error{color:#ef4444}.leaderboard-list{list-style:none;display:flex;flex-direction:column;gap:.4rem}.leaderboard-item{display:flex;align-items:center;gap:.75rem;background:#fff;border:1px solid #e5e7eb;border-radius:8px;padding:.6rem .75rem}.leaderboard-rank{font-size:.9rem;font-weight:700;min-width:2rem;text-align:center;color:#4f46e5}.leaderboard-name{flex:1;font-size:.875rem;font-weight:500;color:#111827;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.leaderboard-xp{font-size:.8rem;color:#4b5563;white-space:nowrap}.follow-btn{padding:.35rem .85rem;border-radius:20px;border:2px solid #4f46e5;background:#4f46e5;color:#fff;font-size:.8rem;font-weight:600;cursor:pointer;transition:background .15s,color .15s;white-space:nowrap}.follow-btn--following{background:transparent;color:#4f46e5}.follow-btn:disabled{opacity:.6;cursor:not-allowed}.follow-btn:not(:disabled):hover{opacity:.85}.student-card{display:flex;align-items:center;gap:.75rem;background:#fff;border:1px solid #e5e7eb;border-radius:10px;padding:.75rem}.student-card__avatar{width:40px;height:40px;border-radius:50%;background:linear-gradient(135deg,#4f46e5,#7c3aed);color:#fff;display:flex;align-items:center;justify-content:center;font-size:1rem;font-weight:700;flex-shrink:0}.student-card__info{flex:1;display:flex;flex-direction:column;gap:.15rem;min-width:0}.student-card__name{font-size:.9rem;font-weight:600;color:#111827;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.student-card__institution{font-size:.75rem;color:#6b7280;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.student-card__actions{display:flex;align-items:center;gap:.4rem;flex-shrink:0}.student-card__chat-btn{background:#ede9fe;border:1px solid #c4b5fd;border-radius:8px;width:34px;height:34px;font-size:1rem;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background .15s,transform .12s;flex-shrink:0}.student-card__chat-btn:hover{background:#ddd6fe;transform:scale(1.08)}.student-card__stats{display:flex;gap:.6rem;font-size:.75rem;color:#4b5563}.profile-page{padding:1rem 1rem 1.5rem;display:flex;flex-direction:column;gap:1.25rem}.profile-header{background:linear-gradient(135deg,#4f46e5,#7c3aed 60%,#a855f7);color:#fff;border-radius:16px;padding:1.75rem 1rem 1.5rem;display:flex;flex-direction:column;align-items:center;gap:.4rem;text-align:center;box-shadow:0 4px 20px #4f46e559}.profile-avatar{width:72px;height:72px;border-radius:50%;background:#ffffff38;border:2px solid rgba(255,255,255,.4);display:flex;align-items:center;justify-content:center;font-size:1.9rem;font-weight:800;margin-bottom:.3rem;box-shadow:0 4px 12px #00000026}.profile-name{font-size:1.3rem;font-weight:800;letter-spacing:-.3px}.profile-email{font-size:.875rem;opacity:.8;font-weight:500}.profile-section{display:flex;flex-direction:column;gap:.6rem}.profile-section-title{font-size:.95rem;font-weight:700;color:#374151;text-transform:uppercase;letter-spacing:.05em}.profile-stats-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:.6rem}.profile-stat-card{background:#fff;border:1px solid #e8eaf0;border-radius:14px;padding:.9rem .5rem;display:flex;flex-direction:column;align-items:center;gap:.25rem;text-align:center;box-shadow:0 1px 4px #0000000f;transition:box-shadow .15s,transform .12s}.profile-stat-card:hover{box-shadow:0 4px 14px #4f46e51a;transform:translateY(-1px)}.profile-stat-icon{font-size:1.35rem;line-height:1}.profile-stat-value{font-size:1rem;font-weight:800;color:#4f46e5}.profile-stat-label{font-size:.72rem;color:#6b7280;font-weight:500}.profile-settings-card{background:#fff;border:1px solid #e8eaf0;border-radius:14px;overflow:hidden;box-shadow:0 1px 4px #0000000f}.btn-settings,.btn-logout{width:100%;background:transparent;border:none;padding:1rem 1.1rem;font-size:.95rem;font-weight:600;text-align:left;cursor:pointer;transition:background .15s}.btn-settings{color:#374151}.btn-settings:disabled{opacity:.45;cursor:not-allowed}.btn-settings:not(:disabled):hover,.btn-settings:not(:disabled):focus-visible{background:#f5f3ff;outline:none}.btn-logout{color:#ef4444}.btn-logout:hover,.btn-logout:focus-visible{background:#fef2f2;outline:none}.profile-divider{border:none;border-top:1px solid #e8eaf0;margin:0}.profile-subsection-title{font-size:.875rem;font-weight:700;color:#4b5563;margin-bottom:.4rem}.profile-social-empty{font-size:.875rem;color:#9ca3af;text-align:center;padding:.5rem 0}.profile-student-list{display:flex;flex-direction:column;gap:.5rem}.profile-grade-badge{display:inline-block;background:#ffffff38;border:1px solid rgba(255,255,255,.35);border-radius:20px;padding:.2rem .75rem;font-size:.8rem;font-weight:700;letter-spacing:.03em;color:#fff}.profile-edit-card{background:#fff;border:1px solid #e8eaf0;border-radius:14px;padding:1rem 1.1rem;display:flex;flex-direction:column;gap:.85rem;box-shadow:0 1px 4px #0000000f}.profile-edit-field{display:flex;flex-direction:column;gap:.35rem}.profile-edit-label{font-size:.82rem;font-weight:700;color:#374151}.profile-edit-select{border:1.5px solid #e8eaf0;border-radius:10px;padding:.7rem 1rem;font-size:.9rem;color:#1a1a2e;background:#f9fafb;width:100%;-webkit-appearance:none;-moz-appearance:none;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%236b7280' stroke-width='1.5' fill='none' stroke-linecap='round'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 1rem center;cursor:pointer;transition:border-color .15s,box-shadow .15s}.profile-edit-select:focus{outline:none;border-color:#4f46e5;background-color:#fff;box-shadow:0 0 0 3px #4f46e51f}.profile-save-btn{background:linear-gradient(135deg,#4f46e5,#7c3aed);color:#fff;border:none;border-radius:10px;padding:.75rem;font-size:.9rem;font-weight:700;cursor:pointer;width:100%;box-shadow:0 3px 12px #4f46e559;transition:opacity .15s,transform .12s}.profile-save-btn:disabled{opacity:.55;cursor:not-allowed;transform:none}.profile-save-btn:hover:not(:disabled),.profile-save-btn:focus-visible:not(:disabled){opacity:.9;transform:translateY(-1px)}.profile-save-msg{font-size:.82rem;font-weight:600;text-align:center;margin:0;padding:.35rem 0;border-radius:8px}.profile-save-msg--ok{color:#16a34a;background:#f0fdf4}.profile-save-msg--err{color:#dc2626;background:#fef2f2}@media (min-width: 1024px){.profile-page{padding:0;display:grid;grid-template-columns:300px 1fr;grid-template-rows:auto;gap:1.5rem;align-items:start}.profile-header{grid-column:1;grid-row:1;position:sticky;top:0}.profile-section:nth-child(2){grid-column:1;grid-row:2}.profile-section:nth-child(3){grid-column:2;grid-row:1 / 3}.profile-section:nth-child(4),.profile-section:nth-child(5){grid-column:2}.profile-avatar{width:88px;height:88px;font-size:2.2rem}.profile-stats-grid{grid-template-columns:repeat(3,1fr)}}.profile-credits-card{background:#fff;border:1.5px solid #e8eaf0;border-radius:14px;padding:1rem 1.1rem;display:flex;align-items:center;justify-content:space-between;box-shadow:0 1px 4px #0000000f;transition:border-color .15s}.profile-credits-card--low{border-color:#fca5a5;background:#fff5f5}.profile-credits-left{display:flex;align-items:center;gap:.85rem}.profile-credits-icon{font-size:2rem;line-height:1}.profile-credits-value{font-size:1.6rem;font-weight:900;color:#4f46e5;margin:0;line-height:1}.profile-credits-card--low .profile-credits-value{color:#dc2626}.profile-credits-label{font-size:.75rem;color:#6b7280;font-weight:500;margin:.15rem 0 0}.profile-credits-right{flex-shrink:0}.profile-credits-badge{display:inline-block;border-radius:20px;padding:.25rem .85rem;font-size:.75rem;font-weight:700}.profile-credits-badge--ok{background:#d1fae5;color:#059669}.profile-credits-badge--medium{background:#fef3c7;color:#d97706}.profile-credits-badge--low{background:#fee2e2;color:#dc2626}.profile-credits-info{background:#f9fafb;border:1px solid #e8eaf0;border-radius:10px;padding:.75rem 1rem;display:flex;flex-direction:column;gap:.3rem}.profile-credits-info p{font-size:.8rem;color:#6b7280;margin:0;line-height:1.5}.profile-credits-info strong{color:#374151}.profile-upgrade-card{display:flex;align-items:center;justify-content:space-between;gap:1rem;background:linear-gradient(135deg,#ede9fe,#ddd6fe);border:1.5px solid #c4b5fd;border-radius:14px;padding:1rem 1.1rem}.profile-upgrade-left{flex:1;min-width:0}.profile-upgrade-title{font-size:.9rem;font-weight:800;color:#4f46e5;margin:0 0 .2rem}.profile-upgrade-desc{font-size:.78rem;color:#5b21b6;margin:0;line-height:1.5}.profile-upgrade-btn{background:linear-gradient(135deg,#4f46e5,#7c3aed);color:#fff;border:none;border-radius:10px;padding:.55rem 1.25rem;font-size:.875rem;font-weight:800;cursor:pointer;white-space:nowrap;box-shadow:0 3px 12px #4f46e559;transition:opacity .15s,transform .12s;flex-shrink:0}.profile-upgrade-btn:hover{opacity:.9;transform:translateY(-1px)}.chat-page{display:flex;flex:1;height:100%;min-height:0;background:#f5f6fa;overflow:hidden}.chat-sidebar{width:100%;max-width:360px;flex-shrink:0;background:#fff;border-right:1px solid #e8eaf0;display:flex;flex-direction:column;overflow:hidden}.chat-sidebar-header{padding:1.25rem 1.1rem .75rem;border-bottom:1px solid #f0f0f5;flex-shrink:0}.chat-sidebar-title{font-size:1.15rem;font-weight:900;color:#1a1a2e;margin:0;letter-spacing:-.3px}.chat-conv-list{flex:1;overflow-y:auto}.chat-conv-item{display:flex;align-items:center;gap:.85rem;width:100%;padding:.85rem 1.1rem;background:none;border:none;border-bottom:1px solid #f5f6fa;cursor:pointer;text-align:left;transition:background .12s}.chat-conv-item:hover{background:#f9fafb}.chat-conv-item--active{background:#ede9fe}.chat-conv-item--active:hover{background:#ddd6fe}.chat-conv-info{flex:1;min-width:0}.chat-conv-top{display:flex;align-items:baseline;justify-content:space-between;gap:.5rem}.chat-conv-name{font-size:.9rem;font-weight:700;color:#1a1a2e;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.chat-conv-time{font-size:.7rem;color:#9ca3af;flex-shrink:0}.chat-conv-bottom{display:flex;align-items:center;justify-content:space-between;gap:.5rem;margin-top:.15rem}.chat-conv-preview{font-size:.78rem;color:#6b7280;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex:1}.chat-unread-badge{background:#4f46e5;color:#fff;font-size:.65rem;font-weight:800;border-radius:20px;padding:.1rem .45rem;flex-shrink:0;min-width:18px;text-align:center}.chat-avatar{border-radius:50%;background:linear-gradient(135deg,#4f46e5,#7c3aed);color:#fff;display:flex;align-items:center;justify-content:center;font-weight:800;flex-shrink:0}.chat-thread{flex:1;display:flex;flex-direction:column;min-width:0;overflow:hidden;background:#f5f6fa}.chat-thread-header{display:flex;align-items:center;gap:.75rem;padding:.9rem 1.1rem;background:#fff;border-bottom:1px solid #e8eaf0;flex-shrink:0}.chat-back-btn{background:none;border:none;font-size:1.2rem;cursor:pointer;color:#4f46e5;padding:.25rem .5rem .25rem 0;display:none}.chat-thread-peer-info{flex:1;min-width:0}.chat-thread-peer-name{font-size:.95rem;font-weight:800;color:#1a1a2e;margin:0}.chat-thread-peer-meta{font-size:.72rem;color:#9ca3af;margin:.1rem 0 0}.chat-messages{flex:1;overflow-y:auto;padding:1rem 1.1rem;display:flex;flex-direction:column;gap:.35rem}.chat-load-more{align-self:center;background:none;border:1px solid #e8eaf0;border-radius:20px;padding:.35rem 1rem;font-size:.75rem;color:#6b7280;cursor:pointer;margin-bottom:.5rem;transition:background .12s}.chat-load-more:hover{background:#f3f4f6}.chat-empty-thread{text-align:center;color:#9ca3af;font-size:.875rem;margin:auto;padding:2rem 1rem}.chat-bubble-wrap{display:flex;justify-content:flex-start}.chat-bubble-wrap--mine{justify-content:flex-end}.chat-bubble{max-width:72%;border-radius:18px;padding:.55rem .85rem;display:flex;flex-direction:column;gap:.2rem}.chat-bubble--theirs{background:#fff;border:1px solid #e8eaf0;border-bottom-left-radius:4px}.chat-bubble--mine{background:linear-gradient(135deg,#4f46e5,#7c3aed);color:#fff;border-bottom-right-radius:4px}.chat-bubble-text{font-size:.875rem;line-height:1.5;margin:0;word-break:break-word}.chat-bubble--theirs .chat-bubble-text{color:#1a1a2e}.chat-bubble-time{font-size:.65rem;opacity:.65;align-self:flex-end}.chat-bubble--mine .chat-bubble-time{color:#fffc}.chat-read-tick{font-size:.65rem;color:#86efac}.chat-input-form{padding:.75rem 1rem;background:#fff;border-top:1px solid #e8eaf0;flex-shrink:0}.chat-send-error{font-size:.75rem;color:#dc2626;margin:0 0 .4rem}.chat-input-row{display:flex;gap:.5rem;align-items:center}.chat-input{flex:1;border:1.5px solid #e8eaf0;border-radius:24px;padding:.65rem 1rem;font-size:.875rem;color:#1a1a2e;background:#f9fafb;outline:none;transition:border-color .15s}.chat-input:focus{border-color:#4f46e5;background:#fff;box-shadow:0 0 0 3px #4f46e51a}.chat-send-btn{width:40px;height:40px;border-radius:50%;background:linear-gradient(135deg,#4f46e5,#7c3aed);color:#fff;border:none;font-size:1rem;cursor:pointer;display:flex;align-items:center;justify-content:center;flex-shrink:0;transition:opacity .15s,transform .12s}.chat-send-btn:hover:not(:disabled){opacity:.88;transform:scale(1.05)}.chat-send-btn:disabled{opacity:.4;cursor:not-allowed}.chat-placeholder{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.75rem;color:#9ca3af}.chat-placeholder-icon{font-size:3rem;line-height:1}.chat-placeholder-text{font-size:.9rem;font-weight:600}.chat-loading{padding:1.5rem 1.1rem;color:#9ca3af;font-size:.875rem}.chat-empty-state{display:flex;flex-direction:column;align-items:center;gap:.5rem;padding:2.5rem 1.5rem;text-align:center}.chat-empty-icon{font-size:2.5rem;line-height:1}.chat-empty-title{font-size:.95rem;font-weight:700;color:#374151;margin:0}.chat-empty-sub{font-size:.8rem;color:#9ca3af;margin:0;line-height:1.5}@media (max-width: 767px){.chat-sidebar{width:100%;max-width:100%;border-right:none}.chat-sidebar--hidden-mobile{display:none}.chat-thread{width:100%;position:fixed;top:0;right:0;left:0;bottom:60px;z-index:50}.chat-back-btn{display:block}.chat-placeholder{display:none!important}.chat-bubble{max-width:85%}}@media (min-width: 768px){.chat-sidebar{width:300px}}@media (min-width: 1024px){.chat-sidebar{width:340px}}.bottom-nav{position:fixed;bottom:0;left:0;right:0;display:flex;justify-content:space-around;align-items:center;height:60px;background:#fff;border-top:1px solid #e8eaf0;box-shadow:0 -4px 20px #00000012;z-index:100;min-width:320px}@media (min-width: 768px) and (max-width: 1023px){.bottom-nav{max-width:520px;left:50%;transform:translate(-50%)}}.bottom-nav__tab{display:flex;flex-direction:column;align-items:center;justify-content:center;flex:1;height:100%;text-decoration:none;color:#9ca3af;font-size:.65rem;font-weight:600;gap:3px;transition:color .15s ease;position:relative}.bottom-nav__tab:hover{color:#6b7280}.bottom-nav__tab--active{color:#4f46e5}.bottom-nav__tab--active:after{content:"";position:absolute;bottom:6px;width:4px;height:4px;border-radius:50%;background:#4f46e5}.bottom-nav__icon{font-size:1.3rem;line-height:1;transition:transform .15s}.bottom-nav__tab--active .bottom-nav__icon{transform:translateY(-1px)}.bottom-nav__label{line-height:1;letter-spacing:.01em}.bottom-nav__icon-wrap{position:relative;display:inline-flex;align-items:center;justify-content:center}.bottom-nav__badge{position:absolute;top:-5px;right:-8px;background:#ef4444;color:#fff;font-size:.55rem;font-weight:800;border-radius:20px;padding:.1rem .3rem;min-width:14px;text-align:center;line-height:1.4;border:1.5px solid #fff}.side-nav{position:fixed;top:0;left:0;bottom:0;width:220px;background:#fff;border-right:1px solid #e8eaf0;display:flex;flex-direction:column;padding:1.5rem 0 1rem;z-index:100;box-shadow:2px 0 12px #0000000d}.side-nav__logo{display:flex;align-items:center;gap:.6rem;padding:0 1.25rem 1.5rem;cursor:pointer;border-bottom:1px solid #f0f0f5;margin-bottom:.75rem}.side-nav__logo-icon{font-size:1.75rem;line-height:1}.side-nav__logo-text{font-size:1.3rem;font-weight:900;color:#4f46e5;letter-spacing:-.5px}.side-nav__links{display:flex;flex-direction:column;gap:.2rem;padding:0 .75rem;flex:1}.side-nav__link{display:flex;align-items:center;gap:.75rem;padding:.7rem .85rem;border-radius:12px;text-decoration:none;color:#6b7280;font-size:.9rem;font-weight:600;transition:background .15s,color .15s}.side-nav__link:hover{background:#f5f3ff;color:#4f46e5}.side-nav__link--active{background:#ede9fe;color:#4f46e5}.side-nav__link-icon{font-size:1.15rem;line-height:1;width:1.5rem;text-align:center;flex-shrink:0}.side-nav__link-label{line-height:1}.side-nav__user{display:flex;align-items:center;gap:.65rem;padding:.85rem 1.1rem;margin:0 .75rem;border-radius:12px;background:#f9fafb;border:1px solid #e8eaf0}.side-nav__user-avatar{width:36px;height:36px;border-radius:50%;background:linear-gradient(135deg,#4f46e5,#7c3aed);color:#fff;display:flex;align-items:center;justify-content:center;font-size:1rem;font-weight:800;flex-shrink:0}.side-nav__user-info{min-width:0}.side-nav__user-name{font-size:.82rem;font-weight:700;color:#1a1a2e;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin:0}.side-nav__user-role{font-size:.72rem;color:#9ca3af;margin:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.side-nav__link-icon-wrap{position:relative;display:inline-flex;align-items:center;justify-content:center;width:1.5rem;flex-shrink:0}.side-nav__badge{position:absolute;top:-5px;right:-8px;background:#ef4444;color:#fff;font-size:.55rem;font-weight:800;border-radius:20px;padding:.1rem .3rem;min-width:14px;text-align:center;line-height:1.4;border:1.5px solid #fff}.app-shell{display:flex;flex-direction:column;min-height:100dvh}.app-shell__content{flex:1;padding-bottom:60px;min-width:320px}.side-nav{display:none}@media (min-width: 768px) and (max-width: 1023px){.app-shell{max-width:520px;margin:0 auto}}@media (min-width: 1024px){.side-nav{display:flex}.bottom-nav{display:none!important}.app-shell{flex-direction:row;max-width:100%;margin:0}.app-shell__content{margin-left:220px;padding-bottom:0;flex:1;min-width:0;max-width:900px;padding:1.5rem 2rem 2rem}}@media (min-width: 1280px){.app-shell__content{max-width:1100px;padding:2rem 2.5rem 2.5rem}}.app-shell--chat{height:100dvh;max-height:100dvh;overflow:hidden}.app-shell--chat .app-shell__content{padding:0!important;max-width:none!important;height:calc(100dvh - 60px);max-height:calc(100dvh - 60px);overflow:hidden;display:flex;flex-direction:column;flex:1;min-height:0}@media (min-width: 1024px){.app-shell--chat .app-shell__content{height:100dvh;max-height:100dvh}}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{font-size:16px;-webkit-text-size-adjust:100%}body{min-width:320px;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Open Sans,Helvetica Neue,sans-serif;background-color:#f0f2f8;color:#1a1a2e;line-height:1.5}#root{min-height:100dvh;display:flex;flex-direction:column}@media (min-width: 768px) and (max-width: 1023px){body{max-width:520px;margin:0 auto}}@media (min-width: 1024px){body{max-width:100%;margin:0;background-color:#eef0f8}}
