:root,[data-theme=dark]{--gold: #c9a84c;--gold-hover: #dfbc5e;--gold-light: #f6e6b4;--gold-soft: rgba(201, 168, 76, .14);--gold-glow: rgba(201, 168, 76, .28);--gold-border: rgba(201, 168, 76, .35);--bg-dark: #090a0f;--bg-surface: #12141d;--bg-surface-soft: #1a1d28;--bg-card: #141622;--bg-card-hover: #1c1f30;--card-gradient: linear-gradient(135deg, #12141d 0%, #1e1b4b 100%);--hero-radial: radial-gradient(circle at 50% 20%, rgba(30, 27, 75, .5), transparent 70%);--border-color: rgba(255, 255, 255, .08);--border-subtle: rgba(255, 255, 255, .04);--text-primary: #f8fafc;--text-secondary: #94a3b8;--text-muted: #64748b;--green: #10b981;--green-soft: rgba(16, 185, 129, .15);--blue: #3b82f6;--blue-soft: rgba(59, 130, 246, .15);--purple: #8b5cf6;--purple-soft: rgba(139, 92, 246, .15);--amber: #f59e0b;--amber-soft: rgba(245, 158, 11, .15);--red: #ef4444;--font-main: "Plus Jakarta Sans", "Noto Sans TC", system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;--font-mono: "JetBrains Mono", monospace}[data-theme=light]{--bg-dark: #f8fafc;--bg-surface: #ffffff;--bg-surface-soft: #f1f5f9;--bg-card: #ffffff;--bg-card-hover: #f8fafc;--card-gradient: linear-gradient(135deg, #ffffff 0%, #f1f5f9 100%);--hero-radial: radial-gradient(circle at 50% 20%, rgba(201, 168, 76, .12), transparent 70%);--border-color: rgba(0, 0, 0, .09);--border-subtle: rgba(0, 0, 0, .05);--border-gold: rgba(201, 168, 76, .55);--text-primary: #0f172a;--text-secondary: #475569;--text-muted: #94a3b8}*{box-sizing:border-box;margin:0;padding:0}html,body{background-color:var(--bg-dark);color:var(--text-primary);font-family:var(--font-main);line-height:1.6;min-height:100vh;display:flex;flex-direction:column;-webkit-font-smoothing:antialiased;transition:background-color .2s ease,color .2s ease}.demo-role-banner{background:linear-gradient(90deg,#1e1b4b,#311042);border-bottom:1px solid rgba(201,168,76,.3);padding:6px 16px;font-size:12px}.banner-inner{max-width:1280px;margin:0 auto;display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:8px}.banner-label{color:var(--gold-light);font-weight:700}.banner-buttons{display:flex;align-items:center;gap:6px;flex-wrap:wrap}.role-btn{background:#ffffff1a;border:1px solid rgba(255,255,255,.2);color:#fff;font-size:11.5px;font-weight:600;padding:3px 9px;border-radius:6px;cursor:pointer;transition:all .15s ease}.role-btn:hover{background:var(--gold);color:#0b0c10;border-color:var(--gold)}.role-btn.is-cabinet{background:#c9a84c40;border-color:var(--gold);color:var(--gold-light)}.role-btn.is-admin{background:#ef444433;border-color:#ef444480}.role-btn.is-teacher{background:#3b82f633;border-color:#3b82f680}.banner-close{background:none;border:none;color:#9ca3af;cursor:pointer;font-size:13px;padding:0 4px}.voice-header{position:sticky;top:0;z-index:100;background:#12141deb;backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border-bottom:1px solid var(--border-color);transition:background-color .2s ease,border-color .2s ease}[data-theme=light] .voice-header{background:#fffffff0}.header-container{max-width:1320px;margin:0 auto;padding:0 20px;height:70px;display:flex;align-items:center;justify-content:space-between;gap:16px}.header-brand-wrap{display:flex;align-items:center;flex-shrink:0}.voice-logo{display:flex;align-items:center;gap:8px;text-decoration:none;color:inherit;transition:opacity .16s ease}.voice-logo:hover{opacity:.9}.brand-nova-logo-img{height:30px;width:auto;object-fit:contain;filter:drop-shadow(0 2px 6px rgba(0,0,0,.12))}[data-theme=dark] .brand-nova-logo-img{filter:brightness(1.15) drop-shadow(0 2px 8px rgba(201,168,76,.25))}.brand-voice-text{font-size:13.5px;font-weight:900;letter-spacing:2.5px;font-family:var(--font-main);color:var(--gold);background:var(--gold-soft);border:1px solid var(--gold-border);padding:3px 8px;border-radius:6px;line-height:1;display:inline-block}.voice-nav{display:flex;align-items:center;gap:4px;overflow-x:auto;padding:4px}.nav-item{display:inline-flex;align-items:center;gap:5px;padding:7px 14px;border-radius:10px;text-decoration:none;color:var(--text-secondary);font-size:13.5px;font-weight:600;white-space:nowrap;transition:all .16s ease}.nav-item:hover{color:var(--text-primary);background:var(--bg-surface-soft)}.nav-item.is-active{background:var(--gold);color:#0b0c10;font-weight:700}.nav-portal,.nav-teacher{border:1px solid transparent}.nav-portal.has-access,.nav-teacher.has-access{border-color:var(--gold-border);color:var(--gold)}.nav-badge{background:#ef4444;color:#fff;font-size:9px;font-weight:800;padding:1px 5px;border-radius:6px;letter-spacing:.5px}.nav-badge.badge-teacher{background:#3b82f6}.header-actions{display:flex;align-items:center;gap:10px;flex-shrink:0;position:relative}.lang-dropdown-wrap{position:relative}.lang-pill-btn{height:38px;padding:0 14px;border-radius:9999px;border:1px solid var(--border-color);background:var(--bg-surface-soft);color:var(--text-primary);display:flex;align-items:center;gap:7px;cursor:pointer;font-size:13px;font-weight:700;transition:all .16s ease;box-shadow:0 2px 6px #0000000a}.lang-pill-btn:hover{border-color:var(--gold)}.lang-globe-svg{color:var(--text-secondary)}.lang-cur-label{font-size:13px;color:var(--text-primary)}.lang-chevron-svg{color:var(--text-muted);transition:transform .18s ease}.lang-pill-btn[aria-expanded=true] .lang-chevron-svg{transform:rotate(180deg)}.lang-menu-card{position:absolute;top:calc(100% + 8px);right:0;min-width:200px;background:var(--bg-surface);border:1px solid var(--border-color);border-radius:18px;padding:6px;box-shadow:0 14px 40px #0000002e,0 4px 12px #00000014;display:none;flex-direction:column;gap:3px;z-index:150}.lang-menu-card.is-open{display:flex;animation:dropdownPop .16s cubic-bezier(.16,1,.3,1)}@keyframes dropdownPop{0%{opacity:0;transform:translateY(-6px) scale(.97)}to{opacity:1;transform:translateY(0) scale(1)}}.lang-menu-item{display:flex;align-items:center;justify-content:space-between;padding:10px 14px;border-radius:12px;text-decoration:none;color:var(--text-primary);font-size:13px;font-weight:700;transition:all .12s ease}.lang-menu-item .item-left{display:flex;align-items:center;gap:8px}.lang-code-tag{font-size:11px;font-weight:800;font-family:var(--font-mono);color:var(--text-muted);letter-spacing:.5px}.lang-name-text{color:inherit}.lang-menu-item.is-selected{background:#0f172a;color:#fff}.lang-menu-item.is-selected .lang-code-tag{color:#94a3b8}.lang-menu-item.is-selected .check-icon{color:#fff}[data-theme=dark] .lang-menu-item.is-selected{background:#1e2235;color:#fff;border:1px solid var(--gold-border)}[data-theme=dark] .lang-menu-item.is-selected .check-icon{color:var(--gold-light)}.lang-menu-item:not(.is-selected):hover{background:var(--bg-surface-soft)}.circle-theme-btn{width:38px;height:38px;border-radius:50%;border:1px solid var(--border-color);background:var(--bg-surface-soft);color:var(--text-primary);display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all .16s ease;box-shadow:0 2px 6px #0000000a}.circle-theme-btn:hover{border-color:var(--gold);transform:scale(1.05)}.circle-theme-btn .icon-sun{display:block;color:#f59e0b}.circle-theme-btn .icon-moon{display:none;color:var(--text-primary)}[data-theme=light] .circle-theme-btn .icon-sun{display:none}[data-theme=light] .circle-theme-btn .icon-moon{display:block}.user-pill{display:flex;align-items:center;gap:8px;background:var(--bg-surface-soft);border:1px solid var(--gold-border);padding:5px 12px;border-radius:30px}.user-avatar{font-size:15px}.user-info{display:flex;align-items:center;gap:6px}.user-name{font-size:12.5px;font-weight:700;color:var(--text-primary)}.user-role-badge{font-size:10.5px;padding:2px 6px;border-radius:6px;font-family:var(--font-mono);font-weight:700}.role-cabinet{background:#c9a84c33;color:var(--gold)}.role-admin{background:#ef444433;color:#ef4444}.role-student{background:#3b82f633;color:#60a5fa}.role-teacher{background:#10b98133;color:#34d399}.btn-logout{margin-left:4px;padding-left:8px;border-left:1px solid var(--border-color);color:var(--text-muted);font-size:11px;text-decoration:none;font-weight:600}.btn-logout:hover{color:#ef4444}.btn-login{display:inline-flex;align-items:center;padding:8px 16px;background:var(--gold);color:#0b0c10;border-radius:10px;text-decoration:none;font-size:12.5px;font-weight:700;transition:all .16s ease}.btn-login:hover{background:var(--gold-hover);transform:translateY(-1px);box-shadow:0 4px 12px var(--gold-glow)}.voice-main{flex:1}.voice-footer{background:var(--bg-surface);border-top:1px solid var(--border-color);padding:48px 20px 24px;margin-top:60px;transition:background-color .2s ease}.footer-container{max-width:1280px;margin:0 auto;display:grid;grid-template-columns:1.2fr 2fr;gap:40px}.footer-brand-section{display:flex;flex-direction:column;gap:12px}.footer-logo{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.footer-nova-logo-img{height:34px;width:auto;object-fit:contain}[data-theme=dark] .footer-nova-logo-img{filter:brightness(1.15)}.footer-voice-text{font-size:13px;font-weight:900;letter-spacing:2px;color:var(--gold);background:var(--gold-soft);border:1px solid var(--gold-border);padding:2px 7px;border-radius:6px;line-height:1}.footer-brand-text{margin-left:4px}.footer-brand-text strong{font-size:15px;color:var(--text-primary);display:block}.footer-brand-text p{font-size:12px;color:var(--gold);font-weight:600}.footer-motto{font-size:13px;color:var(--text-secondary);line-height:1.6}.footer-links-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:32px}.footer-col h4{font-size:13px;font-weight:700;color:var(--text-primary);margin-bottom:12px;text-transform:uppercase;letter-spacing:.5px}.footer-col a{display:block;color:var(--text-secondary);text-decoration:none;font-size:12.5px;margin-bottom:8px;transition:color .15s ease}.footer-col a:hover{color:var(--gold)}.footer-bottom{max-width:1280px;margin:40px auto 0;padding-top:20px;border-top:1px solid var(--border-color)}.bottom-container{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:12px}.bottom-container small{color:var(--text-muted);font-size:12px}.bottom-links a{color:var(--gold);text-decoration:none;font-size:12px;font-weight:600}@media(max-width:1024px){.header-container{height:auto;padding:12px 16px;flex-wrap:wrap}.voice-nav{order:3;width:100%}.footer-container{grid-template-columns:1fr}}@media(max-width:640px){.footer-links-grid{grid-template-columns:1fr}}
