@font-face{font-family:Fraunces;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/fraunces-latin-500-normal-DnGCNyPD.woff2) format("woff2"),url(/assets/fraunces-latin-500-normal-BTR4KCeb.woff) format("woff")}@font-face{font-family:Instrument Sans;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/instrument-sans-latin-400-normal-DRC__1Mx.woff2) format("woff2"),url(/assets/instrument-sans-latin-400-normal-D1W7dsQl.woff) format("woff")}@font-face{font-family:Instrument Sans;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/instrument-sans-latin-500-normal-Dk9ku72i.woff2) format("woff2"),url(/assets/instrument-sans-latin-500-normal-Z6ESRlEs.woff) format("woff")}@font-face{font-family:Instrument Sans;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/instrument-sans-latin-600-normal-B7fBEWYG.woff2) format("woff2"),url(/assets/instrument-sans-latin-600-normal-B9e8oLYv.woff) format("woff")}:root{--gray-50: #f9fafb;--gray-100: #f3f4f6;--gray-200: #e5e7eb;--gray-300: #d1d5db;--gray-400: #9ca3af;--gray-500: #6b7280;--gray-600: #4b5563;--gray-700: #374151;--gray-800: #1f2937;--gray-900: #111827;--success-500: #22c55e;--success-50: #f0fdf4;--success-200: #bbf7d0;--warning-500: #f59e0b;--warning-50: #fffbeb;--error-500: #ef4444;--error-50: #fef2f2;--info-500: #0ea5e9;--info-50: #f0f9ff;--space-1: .25rem;--space-2: .5rem;--space-3: .75rem;--space-4: 1rem;--space-5: 1.25rem;--space-6: 1.5rem;--space-8: 2rem;--space-10: 2.5rem;--space-12: 3rem;--space-16: 4rem;--radius-sm: .375rem;--radius-md: .5rem;--radius-lg: .75rem;--radius-xl: 1rem;--radius-2xl: 1.5rem;--radius-full: 9999px;--shadow-sm: 0 1px 2px 0 rgb(0 0 0 / .05);--shadow-md: 0 4px 6px -1px rgb(0 0 0 / .1), 0 2px 4px -2px rgb(0 0 0 / .1);--shadow-lg: 0 10px 15px -3px rgb(0 0 0 / .1), 0 4px 6px -4px rgb(0 0 0 / .1);--shadow-xl: 0 20px 25px -5px rgb(0 0 0 / .1), 0 8px 10px -6px rgb(0 0 0 / .1);--transition-fast: .15s ease;--transition-normal: .2s ease;--transition-slow: .3s ease}*,*:before,*:after{margin:0;padding:0;box-sizing:border-box}html{font-size:16px;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body{font-family:var(--font-sans);background-color:var(--gray-50);color:var(--gray-800);line-height:1.6;min-height:100vh}#root{min-height:100vh}a{color:var(--primary-600);text-decoration:none;transition:color var(--transition-fast)}a:hover{color:var(--primary-700)}button{cursor:pointer;font-family:inherit}input,textarea,select{font-family:inherit;font-size:inherit}img{max-width:100%;height:auto}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.text-center{text-align:center}.text-primary{color:var(--primary-600)}.text-muted{color:var(--gray-500)}.text-error{color:var(--error-500)}.text-success{color:var(--success-500)}*::-webkit-scrollbar{width:5px;height:5px}*::-webkit-scrollbar-track{background:var(--primary-100);border-radius:10px}*::-webkit-scrollbar-thumb{background:var(--primary-500);border-radius:10px}@supports not selector(::-webkit-scrollbar){*{scrollbar-color:var(--primary-500) var(--primary-100)}}:root{--petrol: #0E4A57;--ink: #122B31;--text-body: #3A4549;--text-muted: #5B6468;--amber: #D9692F;--amber-deep: #B8551F;--amber-text: #A34A1A;--amber-light: #F2B48E;--ivory: #F6F2EA;--sand: #E9E1D3;--surface: #FFFFFF;--line: #E3DACB;--on-petrol-muted: #D7E4E6;--petrol-tint: #E6EEEF;--success: #47754B;--success-tint: #E7EFE5;--warning: #915F18;--warning-tint: #F5E9D3;--sidebar-bg: var(--petrol);--sidebar-active: #12596A;--sidebar-hover: rgb(255 255 255 / .08);--sidebar-divider: rgb(255 255 255 / .14);--sidebar-group: #F5BC99;--sidebar-danger: #FFC2B8;--primary-50: #FBEDE3;--primary-100: #F8E1D1;--primary-200: #EDB794;--primary-300: #E48A55;--primary-400: #D9692F;--primary-500: #A8603C;--primary-600: #94532F;--primary-700: #7C4527;--primary-800: #623620;--primary-900: #482819;--gray-50: #F6F2EA;--gray-100: #EFE9DC;--gray-200: #E3DACB;--gray-300: #CFC5B2;--gray-400: #626A6E;--gray-500: #555F63;--gray-600: #4A5458;--gray-700: #3A4549;--gray-800: #22363B;--gray-900: #122B31;--success-50: #E7EFE5;--success-100: #D6E5D3;--success-200: #BCD3B8;--success-300: #98BB94;--success-500: #47754B;--success-600: #3B6340;--success-700: #2F5033;--warning-50: #F5E9D3;--warning-100: #EFDDB9;--warning-200: #E5CB98;--warning-300: #D6B26F;--warning-500: #915F18;--warning-600: #7A4F13;--warning-700: #653F0E;--warning-800: #523209;--error-50: #FCEBE8;--error-200: #F4C2BA;--error-300: #EA9D92;--error-500: #B42318;--error-600: #9B1C13;--error-700: #7F150E;--danger-50: #FCEBE8;--danger-100: #F8D8D3;--danger-200: #F4C2BA;--danger-300: #EA9D92;--danger-500: #B42318;--danger-600: #9B1C13;--info-50: #E6EEEF;--info-500: #12596A;--card-bg: var(--surface);--background: var(--ivory);--bg-secondary: var(--ivory);--hover-bg: var(--petrol-tint);--border: var(--line);--border-color: var(--line);--text-primary: var(--ink);--text-secondary: var(--text-muted);--text-tertiary: var(--text-muted);--primary: var(--petrol);--radius: 10px;--radius-sm: 8px;--radius-md: 10px;--radius-lg: 10px;--radius-xl: 16px;--radius-2xl: 16px;--radius-full: 999px;--radius-pill: 999px;--radius-card: 16px;--font-sans: "Instrument Sans", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--font-display: "Fraunces", Georgia, "Times New Roman", serif}body{font-family:var(--font-sans);background-color:var(--ivory);color:var(--text-body)}h1,h2,h3,.top-bar-title,.sidebar-brand-name{font-family:var(--font-display);font-weight:500}button,input,select,textarea{font-family:inherit}:focus-visible{outline:3px solid var(--petrol);outline-offset:2px}.toast-container{position:fixed;top:20px;right:20px;z-index:10000;display:flex;flex-direction:column;gap:12px;pointer-events:none}.toast{display:flex;align-items:center;gap:12px;padding:14px 20px;border-radius:12px;background:#fff;box-shadow:0 8px 30px #0000001f;min-width:300px;max-width:450px;animation:slideIn .3s ease-out;pointer-events:auto}@keyframes slideIn{0%{transform:translate(100%);opacity:0}to{transform:translate(0);opacity:1}}.toast-icon{display:flex;align-items:center;justify-content:center;width:24px;height:24px;border-radius:50%;font-size:14px;font-weight:700;flex-shrink:0}.toast-message{flex:1;font-size:.9rem;font-weight:500;color:var(--gray-800)}.toast-close{background:none;border:none;font-size:20px;color:var(--gray-500);cursor:pointer;padding:0;line-height:1;transition:color .2s}.toast-close:hover{color:var(--gray-600)}.toast-success{border-left:4px solid var(--success-500)}.toast-success .toast-icon{background:var(--success-100);color:var(--success-500)}.toast-error{border-left:4px solid var(--error-500)}.toast-error .toast-icon{background:var(--error-50);color:var(--error-500)}.toast-warning{border-left:4px solid var(--warning-500)}.toast-warning .toast-icon{background:var(--warning-50);color:var(--warning-500)}.toast-info{border-left:4px solid var(--petrol)}.toast-info .toast-icon{background:var(--petrol-tint);color:var(--petrol)}.dialog-overlay{position:fixed;inset:0;background:#00000080;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;z-index:10001;animation:fadeIn .2s ease-out}@keyframes scaleIn{0%{transform:scale(.9);opacity:0}to{transform:scale(1);opacity:1}}.dialog-container{background:#fff;border-radius:16px;box-shadow:0 20px 60px #0000004d;min-width:360px;max-width:480px;overflow:hidden;animation:scaleIn .2s ease-out}.dialog-header{display:flex;align-items:center;gap:12px;padding:20px 24px;border-bottom:1px solid var(--gray-200)}.dialog-header h3{margin:0;font-size:1.1rem;font-weight:600;color:var(--gray-800)}.dialog-icon{display:flex;align-items:center;justify-content:center;width:32px;height:32px;border-radius:50%;font-size:16px;font-weight:700;flex-shrink:0}.dialog-header-info .dialog-icon{background:var(--petrol-tint);color:var(--petrol)}.dialog-header-success .dialog-icon{background:var(--success-100);color:var(--success-500)}.dialog-header-warning .dialog-icon{background:var(--warning-50);color:var(--warning-500)}.dialog-header-danger .dialog-icon,.dialog-header-error .dialog-icon{background:var(--error-50);color:var(--error-500)}.dialog-body{padding:24px}.dialog-body p{margin:0;font-size:.95rem;color:var(--gray-600);line-height:1.6}.dialog-footer{display:flex;justify-content:flex-end;gap:12px;padding:16px 24px;background:var(--gray-50);border-top:1px solid var(--gray-200)}.dialog-btn{padding:10px 20px;border-radius:8px;font-size:.9rem;font-weight:600;cursor:pointer;transition:all .2s;border:none}.dialog-btn-cancel{background:var(--gray-200);color:var(--gray-600)}.dialog-btn-cancel:hover{background:var(--gray-300)}.dialog-btn-confirm{color:#fff}.dialog-btn-info,.dialog-btn-info:hover{background:var(--petrol)}.dialog-btn-success{background:var(--success-500)}.dialog-btn-success:hover{background:linear-gradient(135deg,var(--success-500) 0%,var(--success-700) 100%)}.dialog-btn-warning{background:var(--warning-500)}.dialog-btn-warning:hover{background:linear-gradient(135deg,var(--warning-500) 0%,var(--warning-700) 100%)}.dialog-btn-danger,.dialog-btn-error{background:var(--error-500)}.dialog-btn-danger:hover,.dialog-btn-error:hover{background:linear-gradient(135deg,var(--error-500) 0%,var(--error-600) 100%)}@media(max-width:480px){.toast-container{inset:auto 20px 20px}.toast{min-width:auto;max-width:100%}.dialog-container{min-width:auto;max-width:calc(100% - 40px);margin:0 20px}}.auth-layout{display:flex;min-height:100vh}.auth-hero{flex:0 0 45%;max-width:500px;background:var(--sand);color:var(--petrol);padding:var(--space-8);display:flex;flex-direction:column;position:relative;overflow:hidden}.auth-hero-logo{display:flex;align-items:center;gap:var(--space-3);position:relative;z-index:1}.auth-hero-logo-icon{width:40px;height:40px;background:#fff;border-radius:var(--radius-lg);display:flex;align-items:center;justify-content:center;font-size:1.25rem}.auth-hero-nest{display:block;width:100%;max-width:440px;height:auto;margin:-40px auto -70px;mix-blend-mode:multiply}.auth-hero-logo-text{font-size:1.125rem;font-weight:600}.auth-hero-content{margin-top:auto;position:relative;z-index:1}.auth-hero-title{color:var(--petrol);font-size:2.75rem;font-weight:700;line-height:1.2;margin-bottom:var(--space-4)}.auth-hero-description{font-size:1.2rem;color:var(--gray-700);line-height:1.6;margin-bottom:var(--space-6)}.auth-hero-steps{margin:0;padding-left:1.25rem;display:grid;gap:var(--space-2);font-size:1.1rem;font-weight:500;line-height:1.5;color:var(--petrol)}.auth-form-panel{flex:1;display:flex;align-items:center;justify-content:center;padding:var(--space-8);background:#fff}.auth-form-container{width:100%;max-width:420px}.auth-form-header{margin-bottom:var(--space-8)}.auth-form-title{font-size:1.75rem;font-weight:700;color:var(--gray-900);margin-bottom:var(--space-2)}.auth-form-subtitle{color:var(--gray-500);font-size:.95rem}.auth-tabs{display:flex;background:var(--gray-100);border-radius:var(--radius-lg);padding:4px;margin-bottom:var(--space-6)}.auth-tab{flex:1;padding:var(--space-3) var(--space-4);border:none;background:transparent;border-radius:var(--radius-md);font-size:.9rem;font-weight:500;color:var(--gray-500);transition:all var(--transition-fast)}.auth-tab:hover{color:var(--gray-700)}.auth-tab.active{background:#fff;color:var(--gray-900);box-shadow:var(--shadow-sm)}.auth-form{display:flex;flex-direction:column;gap:var(--space-5)}.form-label{font-size:.875rem;font-weight:500;color:var(--gray-700)}.form-input-wrapper{position:relative;display:flex;align-items:center}.form-input-icon{position:absolute;left:var(--space-4);color:var(--gray-400);pointer-events:none;display:flex;align-items:center;justify-content:center}.form-input{width:100%;padding:var(--space-3) var(--space-4);border:1px solid var(--gray-200);border-radius:var(--radius-lg);font-size:.95rem;transition:all var(--transition-fast);background:#fff}.form-input:focus{outline:none;border-color:var(--primary-500);box-shadow:0 0 0 3px #0e4a571a}.form-input::placeholder{color:var(--gray-400)}.form-input.error{border-color:var(--error-500)}.form-input-toggle{position:absolute;right:var(--space-4);background:none;border:none;color:var(--gray-400);padding:0;cursor:pointer;display:flex;align-items:center}.form-input-toggle:hover{color:var(--gray-600)}.form-goal-toggle{display:flex;align-items:center;gap:var(--space-2);width:100%;padding:var(--space-3) var(--space-4);background:var(--primary-50);border:1px dashed var(--primary-300);border-radius:var(--radius-lg);color:var(--primary-700);font-size:.9rem;font-weight:500;cursor:pointer;transition:background var(--transition-fast)}.form-goal-toggle:hover{background:var(--primary-100)}.form-goal-toggle span{flex:1;text-align:left}.form-goal-panel{display:flex;flex-direction:column;gap:var(--space-4);padding:var(--space-4);background:var(--gray-50);border-radius:var(--radius-lg)}.form-goal-hint{font-size:.8rem;color:var(--gray-500);margin:0}.form-row{display:flex;justify-content:space-between;align-items:center}.form-checkbox-label{display:flex;align-items:center;gap:var(--space-2);font-size:.875rem;color:var(--gray-600);cursor:pointer}.form-checkbox{width:16px;height:16px;border-radius:var(--radius-sm);border:1px solid var(--gray-300);accent-color:var(--primary-600)}.form-link{font-size:.875rem;color:var(--primary-600);font-weight:500}.form-link:hover{color:var(--primary-700);text-decoration:underline}.btn-submit{width:100%;padding:var(--space-4);background:var(--primary-600);color:#fff;border:none;border-radius:var(--radius-lg);font-size:1rem;font-weight:600;cursor:pointer;transition:all var(--transition-fast);display:flex;align-items:center;justify-content:center;gap:var(--space-2)}.btn-submit:hover{background:var(--primary-700);transform:translateY(-1px)}.btn-submit:active{transform:translateY(0)}.btn-submit:disabled{background:var(--gray-300);cursor:not-allowed;transform:none}.auth-social-buttons{display:flex;flex-direction:column;gap:var(--space-3);margin-bottom:var(--space-5)}.auth-divider{display:flex;align-items:center;gap:var(--space-4);color:var(--gray-400);font-size:.8rem;text-transform:uppercase;letter-spacing:.5px;margin-bottom:var(--space-5)}.auth-divider:before,.auth-divider:after{content:"";flex:1;height:1px;background:var(--gray-200)}.btn-social{flex:1;padding:var(--space-3) var(--space-4);border:1px solid var(--gray-200);border-radius:var(--radius-lg);background:#fff;font-size:.9rem;font-weight:500;color:var(--gray-700);cursor:pointer;transition:all var(--transition-fast);display:flex;align-items:center;justify-content:center;gap:var(--space-2);text-decoration:none}.btn-social:hover{background:var(--gray-50);border-color:var(--gray-300)}.btn-social-icon{width:20px;height:20px}.auth-footer{margin-top:var(--space-6);text-align:center;font-size:.875rem;color:var(--gray-500)}.auth-footer a{color:var(--primary-600);font-weight:500}.auth-footer-links{margin-top:var(--space-4);display:flex;justify-content:center;gap:var(--space-4);font-size:.8rem;color:var(--gray-400)}.auth-footer-links a{color:var(--gray-400)}.auth-footer-links a:hover{color:var(--gray-600)}.form-error{background:var(--error-50);color:var(--error-500);padding:var(--space-3) var(--space-4);border-radius:var(--radius-md);font-size:.875rem;display:flex;align-items:center;gap:var(--space-2)}.form-success{background:var(--success-50);color:var(--success-500);padding:var(--space-3) var(--space-4);border-radius:var(--radius-md);font-size:.875rem;display:flex;align-items:center;gap:var(--space-2)}.spinner{width:20px;height:20px;border:2px solid rgba(255,255,255,.3);border-top-color:#fff;border-radius:50%;animation:spin .8s linear infinite}@media(max-width:900px){.auth-hero{display:none}.auth-form-panel{padding:var(--space-6)}}@media(max-width:480px){.auth-form-panel{padding:var(--space-4)}.auth-form-title{font-size:1.5rem}}.dashboard-layout{display:flex;min-height:100vh;background:var(--gray-100)}@media(max-width:768px){.dashboard-layout{flex-direction:column}}.sidebar{width:240px;background:var(--sidebar-bg);color:var(--on-petrol-muted);border-right:none;display:flex;flex-direction:column;position:fixed;top:0;left:0;bottom:0;z-index:100;transition:width .25s ease}.sidebar.collapsed{width:68px}.sidebar.collapsed .sidebar-brand,.sidebar.collapsed .nav-item-label{display:none}.sidebar.collapsed .sidebar-header{flex-direction:column;align-items:center;justify-content:center;padding:var(--space-4) var(--space-2)}.sidebar.collapsed .sidebar-logo{display:flex;width:44px;height:44px;min-width:44px;max-width:44px}.sidebar.collapsed .sidebar-nav{padding:var(--space-2);overflow-x:hidden;overflow-y:auto}.sidebar.collapsed .nav-item{justify-content:center;padding:var(--space-3);gap:0;position:relative}.sidebar.collapsed .sidebar-footer{padding:var(--space-2)}.sidebar.collapsed .nav-item:after{content:attr(data-tooltip);position:absolute;left:calc(100% + 8px);top:50%;transform:translateY(-50%);background:var(--gray-900);color:#fff;padding:4px 10px;border-radius:var(--radius-md);font-size:.8rem;font-weight:500;white-space:nowrap;opacity:0;pointer-events:none;transition:opacity .15s ease;z-index:200}.sidebar.collapsed .nav-item:hover:after{opacity:1}.sidebar-collapse-btn{display:flex;align-items:center;justify-content:center;width:28px;height:28px;border:1px solid var(--sidebar-divider);background:transparent;border-radius:var(--radius-md);cursor:pointer;color:var(--on-petrol-muted);transition:all var(--transition-fast);flex-shrink:0;margin-left:auto}.sidebar-collapse-btn:hover{background:var(--sidebar-hover);color:#fff}.sidebar.collapsed .sidebar-collapse-btn{margin:var(--space-2) auto 0}@media(max-width:768px){.mobile-nav-overlay{position:fixed;inset:0;background:#00000080;z-index:250;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.sidebar{position:fixed;top:60px;left:-100%;width:280px;height:calc(100vh - 60px);flex-direction:column;background:var(--sidebar-bg);border-right:none;z-index:260;transition:left .3s ease-in-out;overflow-y:auto;padding:0}.sidebar.open{left:0}.sidebar-header{padding:var(--space-4);border-bottom:1px solid var(--sidebar-divider);flex-shrink:0}.sidebar-nav{display:flex;flex-direction:column;padding:var(--space-3);flex:1}.sidebar-footer{display:block;padding:var(--space-3);border-top:1px solid var(--sidebar-divider)}.mobile-menu-btn{display:flex;align-items:center;justify-content:center;width:40px;height:40px;border:none;background:var(--gray-100);border-radius:var(--radius-lg);cursor:pointer;transition:all var(--transition-fast)}.mobile-menu-btn:hover{background:var(--gray-200)}.mobile-menu-btn svg{width:20px;height:20px;color:var(--gray-600)}.mobile-nav-footer{display:block;border-top:1px solid var(--gray-100);padding-top:var(--space-3);margin-top:var(--space-3)}}@media(min-width:769px){.mobile-menu-btn,.mobile-nav-footer{display:none}}@media(max-width:768px){.sidebar-collapse-btn{display:none}.sidebar.collapsed{width:280px}.sidebar.collapsed .sidebar-brand,.sidebar.collapsed .nav-item-label{display:flex}.sidebar.collapsed .sidebar-logo{display:none}.sidebar.collapsed .nav-item{justify-content:flex-start;gap:var(--space-3)}}.sidebar-header{padding:var(--space-4) 12px;align-items:flex-start;border-bottom:1px solid var(--sidebar-divider);display:flex;align-items:center;gap:var(--space-3)}.sidebar-logo{display:none;width:52px;height:52px;min-width:52px;max-width:52px;padding:7px;box-sizing:border-box;align-items:center;justify-content:center;background:var(--ivory);border-radius:var(--radius-pill);font-size:1.25rem;transition:all .25s ease}.sidebar-logo img{width:100%;height:100%;object-fit:contain}.sidebar-brand{display:flex;flex-direction:column;transition:opacity .2s ease}.sidebar-logo-full{display:block;width:176px;max-width:100%;height:auto}.sidebar-brand-tagline{font-size:.75rem;color:var(--amber-light)}.sidebar-nav{flex:1;padding:var(--space-4);overflow-y:auto}.nav-item{display:flex;align-items:center;gap:var(--space-3);padding:10px 12px;border-radius:8px;color:var(--on-petrol-muted);font-size:.9375rem;font-weight:500;text-decoration:none;margin-bottom:var(--space-1);transition:all var(--transition-fast);border:none;background:none;width:100%;cursor:pointer;text-align:left;position:relative}.nav-item-label{white-space:nowrap;overflow:hidden;transition:opacity .2s ease}.nav-item:hover{background:var(--sidebar-hover);color:#fff}.nav-item.active{background:var(--sidebar-active);color:#fff;font-weight:600}.nav-item:focus-visible{outline-color:#fff}.nav-group-label{font-size:.6875rem;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--sidebar-group);padding:0 12px;margin:16px 0 4px}.sidebar.collapsed .nav-group-label{display:none}.sidebar.collapsed .nav-group+.nav-group{margin-top:var(--space-2);padding-top:var(--space-2);border-top:1px solid var(--sidebar-divider)}.nav-item-icon{width:20px;height:20px;display:flex;align-items:center;justify-content:center}.sidebar-footer{padding:var(--space-4);border-top:1px solid var(--sidebar-divider)}.nav-item.logout{color:var(--sidebar-danger)}.nav-item.logout:hover{background:var(--sidebar-hover);color:var(--sidebar-danger)}.main-content{flex:1;margin-left:240px;display:flex;flex-direction:column;transition:margin-left .25s ease}.main-content.sidebar-collapsed{margin-left:68px}.main-content.fullscreen-mode{margin-left:0;margin-top:0}.page-content.no-padding{padding:0}@media(max-width:768px){.main-content{margin-left:0;margin-top:60px}}.top-bar{background:#fff;border-bottom:1px solid var(--gray-200);padding:var(--space-4) var(--space-6);display:flex;align-items:center;justify-content:space-between;position:sticky;top:0;z-index:50}.top-bar-left{display:flex;align-items:center;gap:var(--space-3)}.top-bar-left .mobile-menu-btn{display:none}@media(max-width:768px){.top-bar{padding:var(--space-3) var(--space-4);position:fixed;top:0;left:0;right:0;z-index:300}.top-bar-left .mobile-menu-btn{display:flex;align-items:center;justify-content:center;width:40px;height:40px;border:none;background:var(--gray-100);border-radius:var(--radius-lg);cursor:pointer;transition:all var(--transition-fast)}.top-bar-left .mobile-menu-btn:hover{background:var(--gray-200)}.top-bar-left .mobile-menu-btn svg{width:20px;height:20px;color:var(--gray-600)}.top-bar-title{white-space:nowrap;flex:1;min-width:0}.top-bar-left{flex:1;min-width:0;gap:var(--space-2)}}@media(max-width:480px){.top-bar-title{font-size:1rem;font-weight:600;color:var(--gray-900)}}.top-bar-title{font-size:1.25rem;font-weight:600;color:var(--gray-900)}.top-bar-actions{display:flex;align-items:center;gap:var(--space-4)}.top-bar-next-step{border:0;cursor:pointer;font-family:inherit;display:inline-flex;align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-4);border-radius:999px;background:var(--petrol);color:#fff;font-size:.9rem;font-weight:600;text-decoration:none;white-space:nowrap}.top-bar-next-step:hover{opacity:.9}@media(max-width:768px){.top-bar-actions{gap:var(--space-2);flex-shrink:0}.top-bar-next-step{position:relative;justify-content:center;width:40px;height:40px;padding:0}.top-bar-next-step span{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}.top-bar-title{overflow:hidden;text-overflow:ellipsis}}.search-box{display:flex;align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-4);background:var(--gray-50);border:1px solid var(--gray-200);border-radius:var(--radius-lg);min-width:240px}@media(max-width:768px){.search-box{min-width:200px;flex:1}}.search-box-icon{color:var(--gray-400)}.search-box-input{border:none;background:none;outline:none;flex:1;font-size:.875rem;color:var(--gray-700)}.search-box-input::placeholder{color:var(--gray-400)}.notification-btn{width:40px;height:40px;border-radius:var(--radius-lg);border:1px solid var(--gray-200);background:#fff;display:flex;align-items:center;justify-content:center;cursor:pointer;position:relative;color:var(--gray-600);transition:all var(--transition-fast)}.notification-btn:hover{background:var(--gray-50);border-color:var(--gray-300)}.notification-badge{position:absolute;top:-4px;right:-4px;width:18px;height:18px;background:var(--error-500);color:#fff;font-size:.65rem;font-weight:600;border-radius:50%;display:flex;align-items:center;justify-content:center}.user-avatar{width:40px;height:40px;border-radius:50%;background:var(--primary-100);color:var(--primary-600);display:flex;align-items:center;justify-content:center;font-weight:600;font-size:.9rem;cursor:pointer;border:2px solid white;box-shadow:var(--shadow-sm);overflow:hidden}.user-avatar img{width:100%;height:100%;object-fit:cover}.page-content{flex:1;padding:var(--space-6)}.page-header{margin-bottom:var(--space-6)}@media(max-width:768px){.page-header{margin-bottom:var(--space-4)}}@media(max-width:480px){.page-header{margin-bottom:var(--space-3)}}.page-header h1{font-size:1.75rem;font-weight:700;color:var(--gray-900);margin-bottom:var(--space-2)}@media(max-width:768px){.page-header h1{font-size:1.5rem}}@media(max-width:480px){.page-header h1{font-size:1.25rem}}.page-header p{color:var(--gray-500);font-size:.95rem}.card{background:#fff;border-radius:var(--radius-xl);box-shadow:var(--shadow-sm);border:1px solid var(--gray-100);padding:var(--space-6)}@media(max-width:768px){.card{padding:var(--space-5);border-radius:var(--radius-lg)}}@media(max-width:480px){.card{padding:var(--space-4);border-radius:var(--radius-md)}}.card-header{padding:var(--space-5);border-bottom:1px solid var(--gray-100);display:flex;align-items:center;justify-content:space-between}.card-title{font-size:1rem;font-weight:600;color:var(--gray-900);display:flex;align-items:center;gap:var(--space-2)}.card-body{padding:var(--space-5)}.dashboard-grid{display:grid;grid-template-columns:1fr 320px;gap:var(--space-6)}.dashboard-main,.dashboard-sidebar{display:flex;flex-direction:column;gap:var(--space-6)}.dashboard-test-cards{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-4)}.dashboard-tile-soon{opacity:.75;cursor:default}.course-card{display:flex;gap:var(--space-5);padding:var(--space-5)}.course-image{width:160px;height:120px;border-radius:var(--radius-lg);background:var(--primary-100);overflow:hidden;flex-shrink:0}.course-image img{width:100%;height:100%;object-fit:cover}.course-content{flex:1;display:flex;flex-direction:column}.course-label{font-size:.7rem;font-weight:600;color:var(--primary-600);text-transform:uppercase;letter-spacing:.5px;margin-bottom:var(--space-1)}.course-title{font-size:1.125rem;font-weight:600;color:var(--gray-900);margin-bottom:var(--space-1)}.course-module{font-size:.85rem;color:var(--gray-500);margin-bottom:var(--space-3)}.course-progress{margin-top:auto}.progress-header{display:flex;justify-content:space-between;font-size:.8rem;color:var(--gray-500);margin-bottom:var(--space-2)}.progress-percentage{color:var(--primary-600);font-weight:600}.progress-bar{height:8px;background:var(--gray-100);border-radius:var(--radius-full);overflow:hidden}.progress-fill{height:100%;background:linear-gradient(90deg,var(--primary-500),var(--primary-600));border-radius:var(--radius-full);transition:width var(--transition-slow)}.btn-resume{display:flex;align-items:center;justify-content:center;gap:var(--space-2);padding:var(--space-3) var(--space-6);background:var(--primary-600);color:#fff;border:none;border-radius:var(--radius-lg);font-size:.9rem;font-weight:600;cursor:pointer;transition:all var(--transition-fast);margin-top:var(--space-4)}.btn-resume:hover{background:var(--primary-700)}.quick-actions{display:grid;grid-template-columns:repeat(2,1fr);gap:var(--space-4);padding:var(--space-5)}.quick-action{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--space-2);padding:var(--space-4);border:1px solid var(--gray-200);border-radius:var(--radius-lg);cursor:pointer;transition:all var(--transition-fast);background:#fff;text-decoration:none}.quick-action:hover{border-color:var(--primary-300);background:var(--primary-50)}.quick-action-icon{width:40px;height:40px;border-radius:var(--radius-lg);background:var(--gray-50);display:flex;align-items:center;justify-content:center;color:var(--primary-600)}.quick-action-label{font-size:.8rem;font-weight:500;color:var(--gray-700)}.grade-list{display:flex;flex-direction:column}.grade-item{display:flex;align-items:center;gap:var(--space-4);padding:var(--space-4) var(--space-5);border-bottom:1px solid var(--gray-100)}.grade-item:last-child{border-bottom:none}.grade-icon{width:40px;height:40px;border-radius:var(--radius-lg);display:flex;align-items:center;justify-content:center;font-size:1rem}.grade-icon.quiz{background:var(--primary-50);color:var(--primary-600)}.grade-icon.essay{background:var(--warning-50);color:var(--warning-500)}.grade-icon.lab{background:var(--success-50);color:var(--success-500)}.grade-info{flex:1}.grade-title{font-size:.9rem;font-weight:500;color:var(--gray-900);margin-bottom:2px}.grade-date{font-size:.75rem;color:var(--gray-400)}.grade-score{text-align:right}.grade-value{font-size:1rem;font-weight:700}.grade-value.excellent{color:var(--success-500)}.grade-value.good{color:var(--primary-600)}.grade-value.solid{color:var(--warning-500)}.grade-label{font-size:.65rem;text-transform:uppercase;letter-spacing:.3px;color:var(--gray-400)}.class-list{display:flex;flex-direction:column;gap:var(--space-4);padding:var(--space-5)}.class-item{padding:var(--space-4);background:var(--gray-50);border-radius:var(--radius-lg);border-left:3px solid var(--primary-500)}.class-item.today{background:var(--primary-50);border-left-color:var(--primary-600)}.class-time{font-size:.7rem;font-weight:600;color:var(--primary-600);margin-bottom:var(--space-1)}.class-title{font-size:.9rem;font-weight:600;color:var(--gray-900);margin-bottom:2px}.class-teacher{font-size:.75rem;color:var(--gray-500)}.btn-join{display:inline-flex;align-items:center;gap:var(--space-1);padding:var(--space-2) var(--space-3);background:var(--primary-600);color:#fff;border:none;border-radius:var(--radius-md);font-size:.75rem;font-weight:500;cursor:pointer;margin-top:var(--space-3);transition:all var(--transition-fast)}.btn-join:hover{background:var(--primary-700)}.feature-alert{background:linear-gradient(135deg,var(--primary-500),var(--primary-600));color:#fff;padding:var(--space-4);border-radius:var(--radius-xl);display:flex;gap:var(--space-3)}.feature-alert-icon{width:40px;height:40px;background:#fff3;border-radius:var(--radius-lg);display:flex;align-items:center;justify-content:center;font-size:1.25rem;flex-shrink:0}.feature-alert-content h4{font-size:.9rem;font-weight:600;margin-bottom:4px}.feature-alert-content p{font-size:.8rem;opacity:.9;line-height:1.4}@media(max-width:1200px){.dashboard-grid{grid-template-columns:1fr}.dashboard-sidebar{flex-direction:row;flex-wrap:wrap}.dashboard-sidebar>*{flex:1;min-width:280px}}@media(max-width:768px){.sidebar{transform:translate(-100%);transition:transform var(--transition-normal)}.sidebar.open{transform:translate(0)}.main-content{margin-left:0}.top-bar{padding:var(--space-4)}.search-box{display:none}.page-content{padding:var(--space-4)}.course-card{flex-direction:column}.course-image{width:100%;height:160px}.quick-actions{grid-template-columns:repeat(4,1fr)}.dashboard-test-cards{grid-template-columns:1fr}}@media(max-width:480px){.quick-actions{grid-template-columns:repeat(2,1fr)}}.test-history-list{display:flex;flex-direction:column}.test-history-item{display:flex;justify-content:space-between;align-items:center;padding:var(--space-4);border-bottom:1px solid var(--gray-100);transition:background var(--transition-fast)}.test-history-item:last-child{border-bottom:none}.test-history-item:hover{background:var(--gray-50)}.test-history-info{display:flex;flex-direction:column;gap:var(--space-1)}.test-history-date{font-weight:600;color:var(--gray-900);font-size:.95rem}.test-history-meta{display:flex;gap:var(--space-3);color:var(--gray-500);font-size:.8rem}.test-history-result{display:flex;align-items:center;gap:var(--space-3)}.test-history-score{font-size:1.1rem;font-weight:700}.test-history-badge{padding:var(--space-1) var(--space-3);border-radius:var(--radius-full);font-size:.75rem;font-weight:600}.test-history-badge.pending{background:var(--warning-50);color:var(--warning-700)}.test-history-badge.level{background:var(--primary-50);color:var(--primary-700)}.main-content.lesson-focus{margin-left:0;margin-top:0}@media(max-width:768px){.top-bar-next-step.in-page{width:auto;height:auto;padding:var(--space-2) var(--space-4)}.top-bar-next-step.in-page span{position:static;width:auto;height:auto;clip:auto}}.skill-cards-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-4);margin-bottom:var(--space-4);align-items:stretch}@media(max-width:700px){.skill-cards-grid{grid-template-columns:minmax(0,1fr)}}.lessons-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:var(--space-4)}.lesson-card{display:flex;flex-direction:column;gap:var(--space-2)}.lesson-card>.btn-primary{align-self:flex-start;margin-top:var(--space-2);background:var(--primary-50);color:var(--primary-700);border:1px solid var(--primary-200)}.lesson-card>.btn-primary:hover:not(:disabled){background:var(--primary-100)}.lesson-meta{font-size:.8rem;color:var(--text-muted)}.lesson-view{max-width:44rem;margin:0 auto}.lesson-objective{background:var(--petrol-tint);border-left:4px solid var(--petrol);border-radius:8px;padding:var(--space-3) var(--space-4);margin-bottom:var(--space-4)}.lesson-block{margin-bottom:var(--space-4);line-height:1.65}.lesson-rich>*{margin:0 0 var(--space-3)}.lesson-rich>:last-child{margin-bottom:0}.lesson-rich h3,.lesson-rich h4{font-size:1.05rem;line-height:1.35;margin-top:var(--space-4)}.lesson-rich h4{font-size:.98rem}.lesson-rich>:first-child{margin-top:0}.lesson-rich ol,.lesson-rich ul{padding-left:1.4rem}.lesson-rich li{margin-bottom:4px}.lesson-block.example,.lesson-block.warning,.lesson-block.key_takeaway{border-radius:8px;padding:var(--space-3) var(--space-4);border-left:4px solid}.lesson-block.example{background:var(--sand);border-color:var(--text-muted)}.lesson-block.warning{background:var(--warning-tint);border-color:var(--warning)}.lesson-block.key_takeaway{background:var(--success-tint);border-color:var(--success)}.lesson-image{display:block;max-width:100%;height:auto;margin:0 auto var(--space-3);background:#fff;border:1px solid var(--border, #ddd);border-radius:6px}.lesson-block-label{display:block;font-size:.72rem;font-weight:600;letter-spacing:.06em;text-transform:uppercase;margin-bottom:4px}.lesson-video{position:relative;aspect-ratio:16 / 9;margin-bottom:var(--space-4)}.lesson-video iframe{position:absolute;inset:0;width:100%;height:100%;border:0;border-radius:8px}.lesson-quiz-question{margin-bottom:var(--space-4)}.lesson-quiz-option{display:flex;gap:var(--space-2);align-items:center;padding:6px 0}.lesson-quiz-option.correct{color:var(--success);font-weight:600}.lesson-quiz-option.wrong{color:var(--amber-text)}.lesson-editor{max-width:900px}.lesson-editor .form-group{margin-bottom:var(--space-3)}.lesson-editor-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:var(--space-3)}.lesson-editor-block{border:1px solid var(--line);border-radius:8px;padding:var(--space-3);margin-bottom:var(--space-3);background:var(--surface)}.lesson-editor-block-head{display:flex;gap:var(--space-2);align-items:center;margin-bottom:var(--space-2)}.lesson-editor-block-head select{flex:1}.lesson-editor-error{color:var(--amber-text);margin:var(--space-3) 0}.lp{max-width:40rem}.lp-progress{height:6px;background:var(--sand);border-radius:999px;overflow:hidden}.lp-progress>span{display:block;height:100%;background:var(--petrol);border-radius:999px;transition:width .25s ease}.lp-label{margin:var(--space-2) 0 var(--space-4);font-size:.85rem;color:var(--text-muted)}.lp-stage h2{font-size:1.35rem;line-height:1.3;margin:0 0 var(--space-3)}.lp-stage h2:focus,.lp-stage h2:focus-visible{outline:none}.lp-stage .lesson-block{font-size:1.1rem;line-height:1.75}.lp-actions{display:flex;flex-wrap:wrap;gap:var(--space-3);margin-top:var(--space-5)}.lp-options{display:grid;gap:var(--space-2)}.lp-option{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-3) var(--space-4);background:var(--surface);border:1.5px solid var(--line);border-radius:10px;cursor:pointer;font-size:1rem}.lp-option:hover{border-color:var(--petrol)}.lp-option.selected{border-color:var(--petrol);background:var(--petrol-tint)}.lp-option:focus-within{outline:2px solid var(--petrol);outline-offset:2px}.lp-option input{accent-color:var(--petrol);width:1.1rem;height:1.1rem;flex-shrink:0}.lp-score{font-size:1.6rem;font-weight:700;margin:0 0 var(--space-2)}.lp-score.great{color:var(--success)}.lp-score.close{color:var(--warning)}.lp-score.again{color:var(--amber-text)}.lp-review{margin-top:var(--space-5)}.lp-review summary{cursor:pointer;font-weight:600}.lp-review-item{margin-top:var(--space-3)}.lp-review-item p{margin:0 0 4px}.lp-right{color:var(--success)}.lp-wrong{color:var(--amber-text)}@media(prefers-reduced-motion:reduce){.lp-progress>span{transition:none}}.lesson-topbar{display:flex;justify-content:space-between;gap:var(--space-3);margin-bottom:var(--space-4);font-size:.9rem}.lp{margin:0 auto}.lp-mark{background:linear-gradient(transparent 40%,var(--warning-tint) 40%);color:inherit;padding:0 .15em;border-radius:3px;font-weight:600}.lp-chip{display:inline-block;padding:1px 10px;border-radius:999px;font-size:.82rem;font-weight:700;letter-spacing:.03em;border:1.5px solid;vertical-align:baseline}.lp-chip.true{background:var(--success-tint);border-color:var(--success);color:var(--success)}.lp-chip.false{background:var(--error-50);border-color:var(--error-300);color:var(--error-600)}.lp-chip.notgiven{background:var(--petrol-tint);border-color:var(--petrol);color:var(--petrol)}.lp-q{display:grid;gap:var(--space-3);margin:0 0 var(--space-4)}.lp-q-part{border-radius:10px;padding:var(--space-3) var(--space-4)}.lp-q-part p{margin:0;font-size:1.05rem;line-height:1.6}.lp-q-part.passage{background:var(--sand);border-left:4px solid var(--text-muted)}.lp-q-part.statement{background:var(--petrol-tint);border-left:4px solid var(--petrol)}.lp-q-tag{display:block;font-size:.72rem;font-weight:600;letter-spacing:.06em;text-transform:uppercase;margin-bottom:4px;color:var(--text-muted)}.path-progress{margin:var(--space-2) 0 var(--space-3)}.path-progress-bar{display:flex;gap:4px;list-style:none;margin:0;padding:0}.path-progress-seg{flex:1;height:8px;border-radius:999px;background:var(--gray-200)}.path-progress-seg.done{background:var(--success-500)}.path-progress-seg.teacher{background:var(--warning-500)}.path-progress-seg.current{background:var(--petrol)}.path-progress-caption{margin:var(--space-1) 0 0;font-size:.85rem;color:var(--gray-600)}.settings-page{max-width:800px;padding:var(--space-4)}@media(max-width:768px){.settings-page{padding:var(--space-3)}}@media(max-width:480px){.settings-page{padding:var(--space-2)}}.settings-tabs{display:flex;gap:var(--space-1);background:var(--gray-100);padding:4px;border-radius:var(--radius-lg);margin-bottom:var(--space-6);width:fit-content}@media(max-width:480px){.settings-tabs{width:100%;justify-content:center;flex-wrap:wrap}.settings-tab{flex:1;text-align:center;min-width:0}}.settings-tab{padding:var(--space-2) var(--space-4);border:none;background:transparent;border-radius:var(--radius-md);font-size:.875rem;font-weight:500;color:var(--gray-500);cursor:pointer;transition:all var(--transition-fast)}.settings-tab:hover{color:var(--gray-700)}.settings-tab.active{background:#fff;color:var(--gray-900);box-shadow:var(--shadow-sm)}.settings-section{margin-bottom:var(--space-6)}.settings-section-title{font-size:1rem;font-weight:600;color:var(--gray-900);margin-bottom:var(--space-4);padding-bottom:var(--space-3);border-bottom:1px solid var(--gray-100)}.profile-header{display:flex;align-items:center;gap:var(--space-6);margin-bottom:var(--space-6)}@media(max-width:768px){.profile-header{flex-direction:column;text-align:center;gap:var(--space-4)}}.profile-avatar-container{position:relative}.profile-avatar{width:100px;height:100px;border-radius:50%;background:var(--primary-100);color:var(--primary-600);display:flex;align-items:center;justify-content:center;font-size:2rem;font-weight:600;overflow:hidden}.profile-avatar img{width:100%;height:100%;object-fit:cover}.profile-avatar-upload{position:absolute;bottom:0;right:0;width:32px;height:32px;border-radius:50%;background:var(--primary-600);color:#fff;border:3px solid white;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all var(--transition-fast)}.profile-avatar-upload:hover{background:var(--primary-700)}.profile-avatar-upload input{display:none}.profile-info h2{font-size:1.5rem;font-weight:600;color:var(--gray-900);margin-bottom:var(--space-1)}.profile-info p{color:var(--gray-500);font-size:.9rem}.profile-badges{display:flex;gap:var(--space-2);margin-top:var(--space-2)}.badge{padding:var(--space-1) var(--space-2);border-radius:var(--radius-full);font-size:.7rem;font-weight:500;text-transform:uppercase}.badge-primary{background:var(--primary-50);color:var(--primary-600)}.badge-success{background:var(--success-50);color:var(--success-500)}.badge-warning{background:var(--warning-50);color:var(--warning-500)}.settings-form{display:flex;flex-direction:column;gap:var(--space-5)}.settings-form-row{display:grid;grid-template-columns:repeat(2,1fr);gap:var(--space-4)}.settings-form-actions{display:flex;justify-content:flex-end;gap:var(--space-3);margin-top:var(--space-4);padding-top:var(--space-4);border-top:1px solid var(--gray-100)}.btn-secondary{padding:var(--space-3) var(--space-6);background:#fff;color:var(--gray-700);border:1px solid var(--gray-200);border-radius:var(--radius-lg);font-size:.9rem;font-weight:500;cursor:pointer;transition:all var(--transition-fast)}.btn-secondary:hover{background:var(--gray-50);border-color:var(--gray-300)}.btn-primary{padding:var(--space-3) var(--space-6);background:var(--primary-600);color:#fff;border:none;border-radius:var(--radius-lg);font-size:.9rem;font-weight:500;cursor:pointer;transition:all var(--transition-fast)}.btn-primary:hover{background:var(--primary-700)}.btn-primary:disabled{background:var(--gray-300);cursor:not-allowed}.btn-danger,.btn-danger:hover{background:var(--error-500)}.info-box{background:var(--info-50);border:1px solid var(--primary-200);border-radius:var(--radius-lg);padding:var(--space-4);display:flex;align-items:flex-start;gap:var(--space-3);margin-bottom:var(--space-4)}.info-box-icon{color:var(--primary-600);flex-shrink:0}.info-box-content h4{font-size:.9rem;font-weight:600;color:var(--gray-900);margin-bottom:4px}.info-box-content p{font-size:.85rem;color:var(--gray-600);line-height:1.4}.danger-zone{margin-top:var(--space-8);padding:var(--space-5);background:var(--error-50);border:1px solid var(--error-200);border-radius:var(--radius-xl)}.danger-zone h3{font-size:1rem;font-weight:600;color:var(--error-500);margin-bottom:var(--space-3)}.danger-zone p{font-size:.875rem;color:var(--gray-600);margin-bottom:var(--space-4)}.sessions-list{display:flex;flex-direction:column;gap:var(--space-3)}.session-item{display:flex;align-items:center;justify-content:space-between;padding:var(--space-4);background:var(--gray-50);border-radius:var(--radius-lg)}.session-info{display:flex;align-items:center;gap:var(--space-3)}.session-icon{width:40px;height:40px;border-radius:var(--radius-lg);background:#fff;display:flex;align-items:center;justify-content:center;color:var(--gray-500)}.session-details h4{font-size:.9rem;font-weight:500;color:var(--gray-900);margin-bottom:2px}.session-details p{font-size:.75rem;color:var(--gray-500)}.session-current{font-size:.7rem;padding:var(--space-1) var(--space-2);background:var(--success-50);color:var(--success-500);border-radius:var(--radius-full);font-weight:500}.btn-revoke{padding:var(--space-2) var(--space-3);background:#fff;color:var(--error-500);border:1px solid var(--error-200);border-radius:var(--radius-md);font-size:.8rem;font-weight:500;cursor:pointer;transition:all var(--transition-fast)}.btn-revoke:hover{background:var(--error-50)}.btn-sm{padding:var(--space-2) var(--space-3);font-size:.8rem}@media(max-width:600px){.settings-form-row{grid-template-columns:1fr}.profile-header{flex-direction:column;text-align:center}.settings-tabs{width:100%;overflow-x:auto}}.aintro{max-width:720px;margin:0 auto;padding:32px 20px 48px}.aintro-badge{display:inline-block;font-size:.72rem;font-weight:700;letter-spacing:.08em;padding:4px 12px;border-radius:999px;background:var(--petrol-tint);color:var(--petrol)}.aintro-title{margin:14px 0 6px;font-size:2rem;line-height:1.2;color:var(--petrol)}.aintro-lead{margin:0 0 20px;font-size:1.1rem;line-height:1.55}.aintro-facts{list-style:none;margin:0 0 24px;padding:0;display:flex;gap:12px;flex-wrap:wrap}.aintro-facts li{flex:1;min-width:110px;background:#fff;border:1px solid var(--gray-200);border-radius:12px;padding:12px 16px;display:flex;flex-direction:column}.aintro-facts strong{font-size:1.6rem;color:var(--petrol);line-height:1.1}.aintro-facts span{font-size:.85rem;color:var(--gray-500)}.aintro-section{margin:0 0 22px}.aintro-section h2{font-size:1.05rem;color:var(--petrol);margin:0 0 10px}.aintro-section ol{margin:0;padding-left:1.3rem;display:grid;gap:6px;line-height:1.55}.aintro-types{display:grid;gap:8px}.aintro-types details{background:#fff;border:1px solid var(--gray-200);border-radius:10px;padding:10px 14px}.aintro-types summary{cursor:pointer;font-weight:600}.aintro-types details[open] summary{margin-bottom:6px;color:var(--petrol)}.aintro-types p{margin:0;line-height:1.55;color:var(--gray-500)}.aintro-good{background:var(--petrol-tint);border-left:4px solid var(--petrol);border-radius:8px;padding:12px 16px;margin:0 0 14px}.aintro-conn{display:flex;align-items:center;gap:8px;font-size:.9rem;color:var(--gray-500);margin:0 0 18px}.aintro-conn.stable{color:var(--success)}.aintro-conn.offline,.aintro-conn.unstable{color:var(--error-600)}.aintro-actions{display:flex;gap:12px;flex-wrap:wrap;justify-content:space-between}.aintro-timer{margin:10px 0 0;font-size:.82rem;color:var(--gray-500);text-align:right}@media(max-width:560px){.aintro-title{font-size:1.6rem}.aintro-actions{flex-direction:column-reverse}}.aintro-once{display:flex;align-items:flex-start;gap:8px;margin:0 0 14px;font-size:.9rem;line-height:1.5;color:var(--gray-500)}.aintro-once svg{flex:none;margin-top:3px}.aintro-path{list-style:none;padding:0;display:grid;gap:8px}.aintro-path li{background:#fff;border:1px solid var(--gray-200);border-radius:10px;padding:10px 14px}.aintro-path li.aintro-path-here{border-color:var(--petrol);background:var(--petrol-tint)}.aintro-path p{margin:4px 0 0;line-height:1.55;color:var(--gray-500)}.aintro-path-tag{margin-inline-start:8px;font-size:.75rem;font-weight:600;color:var(--petrol)}.aintro-conn .mic-level-container{display:inline-block;vertical-align:middle}.aintro-conn .mic-level-fill{display:block;height:100%}.training-page{max-width:1200px;padding:var(--space-4)}@media(max-width:768px){.training-page{padding:var(--space-3)}}@media(max-width:480px){.training-page{padding:var(--space-2)}}.training-section{margin-bottom:var(--space-8)}.training-section-title{font-size:1.25rem;font-weight:700;color:var(--gray-900);margin-bottom:var(--space-2);display:flex;align-items:center;gap:var(--space-2)}.training-section-desc{font-size:.95rem;color:var(--gray-500);margin-bottom:var(--space-6)}.in-progress-cards{display:flex;flex-direction:column;gap:var(--space-3)}.in-progress-card{display:flex;align-items:center;justify-content:space-between;background:var(--warning-500);border-radius:var(--radius-xl);padding:var(--space-5);color:#fff}@media(max-width:768px){.in-progress-card{flex-direction:column;text-align:center;gap:var(--space-3);padding:var(--space-4)}}.in-progress-info h3{font-size:1.1rem;font-weight:600;margin-bottom:var(--space-1)}.in-progress-info p{font-size:.85rem;opacity:.9}.btn-resume-test{display:flex;align-items:center;gap:var(--space-2);padding:var(--space-3) var(--space-5);background:#fff;color:var(--warning-500);border:none;border-radius:var(--radius-lg);font-size:.9rem;font-weight:600;text-decoration:none;transition:all var(--transition-fast)}.btn-resume-test:hover{transform:translateY(-2px);box-shadow:0 4px 12px #00000026}.tests-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:var(--space-6)}@media(max-width:768px){.tests-grid{grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:var(--space-4)}}@media(max-width:480px){.tests-grid{grid-template-columns:1fr;gap:var(--space-3)}}.test-card{background:#fff;border-radius:var(--radius-xl);padding:var(--space-6);border:1px solid var(--gray-100);box-shadow:var(--shadow-sm);display:flex;flex-direction:column;transition:all var(--transition-fast)}.test-card:hover{transform:translateY(-4px);box-shadow:var(--shadow-lg);border-color:var(--gray-200)}.test-card-header{margin-bottom:var(--space-3)}.test-type-badge{display:inline-block;padding:4px 10px;border-radius:var(--radius-sm);font-size:.7rem;font-weight:600;text-transform:uppercase;letter-spacing:.5px}.test-type-badge.academic{background:var(--petrol-tint);color:var(--petrol)}.test-type-badge.general_training{background:var(--success-100);color:var(--success-500)}.test-type-badge.general{background:var(--error-500);color:#fff}.general-test-card{border:2px solid var(--amber);background:linear-gradient(135deg,var(--warning-50),#ffffff)}.general-test-card:hover{border-color:var(--amber-deep);box-shadow:0 8px 24px #f9731633}.test-card-title{font-size:1.125rem;font-weight:700;color:var(--gray-900);margin-bottom:var(--space-2)}.test-card-description{font-size:.875rem;color:var(--gray-500);line-height:1.5;margin-bottom:var(--space-4);flex:1}.test-card-info{display:flex;align-items:center;gap:var(--space-4);font-size:.8rem;color:var(--gray-500);margin-bottom:var(--space-3)}.test-card-info span{display:flex;align-items:center;gap:var(--space-1)}.test-card-sections{font-size:.8rem;color:var(--gray-400);margin-bottom:var(--space-5)}.btn-start-test{display:flex;align-items:center;justify-content:center;gap:var(--space-2);width:100%;padding:var(--space-3) var(--space-4);background:var(--gray-900);color:#fff;border:none;border-radius:var(--radius-lg);font-size:.9rem;font-weight:600;text-decoration:none;transition:all var(--transition-fast)}.btn-start-test:hover{background:var(--gray-800);transform:translateY(-2px)}.test-card-desc{font-size:.875rem;color:var(--gray-500);line-height:1.5;margin-bottom:var(--space-4);flex:1}.test-card-meta{display:flex;align-items:center;gap:var(--space-4);font-size:.8rem;color:var(--gray-400);margin-bottom:var(--space-4)}.test-card-meta span{display:flex;align-items:center;gap:var(--space-1)}.test-card-sections{display:flex;gap:var(--space-3);margin-bottom:var(--space-5)}.section-badge{width:36px;height:36px;border-radius:var(--radius-md);background:var(--gray-50);display:flex;align-items:center;justify-content:center}.section-badge svg{width:18px;height:18px}.test-card-btn{width:100%;padding:var(--space-3) var(--space-4);background:var(--gray-900);color:#fff;border:none;border-radius:var(--radius-lg);font-size:.9rem;font-weight:600;cursor:pointer;transition:all var(--transition-fast)}.test-card-btn:hover:not(:disabled){background:var(--gray-800)}.test-card-btn:disabled{opacity:.7;cursor:not-allowed}.results-table-wrapper{overflow-x:auto}.results-table{width:100%;border-collapse:collapse}.results-table th,.results-table td{padding:var(--space-3) var(--space-4);text-align:left;border-bottom:1px solid var(--gray-100)}.results-table th{font-size:.75rem;font-weight:600;color:var(--gray-500);text-transform:uppercase;letter-spacing:.5px;background:var(--gray-50)}.results-table td{font-size:.875rem;color:var(--gray-700)}.results-table tbody tr:hover{background:var(--gray-50)}.test-name-cell{font-weight:500;color:var(--gray-900);max-width:200px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.score-cell{font-weight:500;text-align:center!important}.overall-cell{font-weight:700;color:var(--primary-600);text-align:center!important}.status-badge{display:inline-block;padding:2px 8px;border-radius:var(--radius-sm);font-size:.7rem;font-weight:600}.status-badge.graded{background:var(--success-50);color:var(--success-600)}.status-badge.submitted{background:var(--warning-50);color:var(--warning-600)}.status-badge.in_progress{background:var(--primary-50);color:var(--primary-600)}.view-results-btn{padding:var(--space-1) var(--space-3);background:var(--primary-50);color:var(--primary-600);border:none;border-radius:var(--radius-md);font-size:.8rem;font-weight:500;text-decoration:none;transition:all var(--transition-fast)}.view-results-btn:hover{background:var(--primary-100)}.training-tips{padding:var(--space-6)}.training-tips .card-title{margin-bottom:var(--space-5)}.tips-list{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:var(--space-4)}.tips-list li{display:flex;align-items:flex-start;gap:var(--space-3);font-size:.9rem;color:var(--gray-600);line-height:1.6}.tips-list li svg{color:var(--success-500);flex-shrink:0;margin-top:2px}.modal-overlay{position:fixed;inset:0;background:#00000080;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;z-index:1000;padding:var(--space-4)}.modal-content{background:#fff;border-radius:var(--radius-xl);padding:var(--space-8);max-width:420px;width:100%;text-align:center;box-shadow:var(--shadow-xl);animation:modalSlideIn .2s ease-out}@media(max-width:768px){.modal-content{padding:var(--space-6);border-radius:var(--radius-lg);margin:var(--space-4)}}@media(max-width:480px){.modal-content{padding:var(--space-4);margin:var(--space-2);max-width:100%}.modal-icon{width:56px;height:56px;font-size:1.5rem}}@keyframes modalSlideIn{0%{opacity:0;transform:translateY(-20px) scale(.95)}to{opacity:1;transform:translateY(0) scale(1)}}.modal-icon{width:72px;height:72px;border-radius:var(--radius-xl);display:flex;align-items:center;justify-content:center;margin:0 auto var(--space-5);font-size:2rem}.modal-content h2{font-size:1.25rem;font-weight:700;color:var(--gray-900);margin-bottom:var(--space-2)}.modal-content>p{font-size:.9rem;color:var(--gray-500);margin-bottom:var(--space-4)}.modal-test-info{background:var(--gray-50);border-radius:var(--radius-lg);padding:var(--space-4);margin-bottom:var(--space-4)}.modal-test-info .info-row{display:flex;justify-content:space-between;padding:var(--space-2) 0;font-size:.875rem;border-bottom:1px solid var(--gray-100)}.modal-test-info .info-row:last-child{border-bottom:none}.modal-test-info .info-row span:first-child{color:var(--gray-600)}.modal-test-info .info-row span:last-child{font-weight:600;color:var(--gray-900)}.modal-warning{font-size:.8rem;color:var(--warning-600);background:var(--warning-50);padding:var(--space-3);border-radius:var(--radius-md);margin-bottom:var(--space-6)}.modal-actions{display:flex;gap:var(--space-3)}@media(max-width:480px){.modal-actions{flex-direction:column;gap:var(--space-2)}}.modal-actions .btn-secondary{flex:1;padding:var(--space-3) var(--space-4);background:var(--gray-100);color:var(--gray-700);border:none;border-radius:var(--radius-lg);font-size:.9rem;font-weight:600;cursor:pointer;transition:all var(--transition-fast)}.modal-actions .btn-secondary:hover{background:var(--gray-200)}.modal-actions .btn-primary{flex:1;padding:var(--space-3) var(--space-4);color:#fff;border:none;border-radius:var(--radius-lg);font-size:.9rem;font-weight:600;cursor:pointer;display:flex;align-items:center;justify-content:center;gap:var(--space-2);transition:all var(--transition-fast)}.modal-actions .btn-primary:hover{opacity:.9}.loading-state{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:var(--space-16)}.loading-state .spinner{width:40px;height:40px;border:3px solid var(--gray-200);border-top-color:var(--primary-600);border-radius:50%;animation:spin .8s linear infinite;margin-bottom:var(--space-4)}.loading-state p{color:var(--gray-500);font-size:.9rem}.empty-state{padding:var(--space-12);text-align:center;color:var(--gray-500)}@media(max-width:768px){.tests-grid{grid-template-columns:1fr}.in-progress-card{flex-direction:column;text-align:center;gap:var(--space-4)}.results-table th,.results-table td{padding:var(--space-2);font-size:.75rem}}.vconsent{background:#fff;border:1px solid var(--gray-200);border-radius:12px;padding:18px 20px;display:grid;gap:12px}.vconsent h2{margin:0;font-size:1.1rem;color:var(--petrol);display:flex;align-items:center;gap:8px}.vconsent p{margin:0;line-height:1.55}.vconsent-box{display:flex;align-items:flex-start;gap:10px;line-height:1.5;cursor:pointer}.vconsent-box input{flex:none;margin-top:4px;width:18px;height:18px}.vconsent-details{background:var(--petrol-tint);border-radius:10px;padding:10px 14px}.vconsent-details summary{cursor:pointer;font-weight:600;color:var(--petrol)}.vconsent-details ul{margin:8px 0;padding-left:1.2rem;display:grid;gap:6px;line-height:1.5}.vconsent[dir=rtl] .vconsent-details ul{padding-left:0;padding-right:1.2rem}.vconsent-hint{font-size:.9rem;color:var(--gray-500)}.vconsent-error{font-size:.9rem;color:var(--error-600)}.vconsent button:disabled{opacity:.55;cursor:not-allowed}.visual-completion{margin:0 0 var(--space-4, 16px)}.visual-title{margin:0 0 var(--space-2, 8px);font-weight:700;color:var(--petrol)}.visual-table-wrap{overflow-x:auto;border:1px solid var(--gray-200);border-radius:10px}.visual-table{width:100%;border-collapse:collapse;background:#fff;font-size:.95rem}.visual-table th,.visual-table td{padding:10px 14px;border-bottom:1px solid var(--gray-200);border-right:1px solid var(--gray-200);text-align:left;vertical-align:middle}.visual-table th:last-child,.visual-table td:last-child{border-right:0}.visual-table tbody tr:last-child th,.visual-table tbody tr:last-child td{border-bottom:0}.visual-table thead th{background:var(--petrol-tint);color:var(--petrol);font-weight:700}.visual-table tbody th{font-weight:600;background:#fff;position:sticky;left:0}.visual-blank{display:inline-flex;align-items:center;gap:6px;vertical-align:middle}.visual-blank-n{flex:none;min-width:22px;height:22px;padding:0 6px;border-radius:999px;background:var(--petrol);color:#fff;font-size:.75rem;font-weight:700;display:inline-flex;align-items:center;justify-content:center}.visual-blank-q{width:auto;min-width:36px;height:32px;padding:0 8px}.visual-blank-input{width:9rem;max-width:100%;padding:6px 10px;border:1.5px solid var(--gray-300);border-radius:var(--radius-md, 8px);font-size:.95rem;background:#fff;color:var(--gray-800)}.visual-blank-input:focus{outline:none;border-color:var(--primary-500, var(--petrol));box-shadow:0 0 0 2px #0e4a571f}.visual-blank-input:disabled{background:var(--gray-100)}.visual-lines{display:grid;gap:var(--space-2, 8px);background:#fff;border:1px solid var(--gray-200);border-radius:10px;padding:var(--space-4, 16px)}.visual-lines p{margin:0;line-height:2}.visual-flow{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;align-items:center;gap:4px}.visual-flow li{display:flex;flex-direction:column;align-items:center;gap:4px;width:100%;max-width:420px}.visual-flow-step{width:100%;text-align:center;background:#fff;border:1.5px solid var(--petrol);border-radius:10px;padding:10px 14px}.visual-flow-arrow{color:var(--petrol)}@media(max-width:600px){.visual-blank-input{width:7rem}}.visual-table .visual-blank-input{width:6.5rem}.test-taking-page{min-height:100vh;background:var(--gray-50);padding:var(--space-2)}@media(max-width:768px){.test-taking-page{padding:var(--space-1)}}@media(max-width:480px){.test-taking-page{padding:4px}}.loading-container .spinner{width:48px;height:48px;border:4px solid var(--gray-200);border-top-color:var(--primary-600);border-radius:50%;animation:spin .8s linear infinite}.error-container button{padding:var(--space-3) var(--space-6);background:var(--primary-600);color:#fff;border:none;border-radius:var(--radius-lg);cursor:pointer}.section-select-container{max-width:900px;margin:0 auto;padding:var(--space-6) var(--space-4)}@media(max-width:768px){.section-select-container{max-width:100%;padding:var(--space-4) var(--space-3)}}@media(max-width:480px){.section-select-container{padding:var(--space-3) var(--space-2)}}.exam-header{margin-bottom:var(--space-6)}.exam-header-badges{display:flex;gap:var(--space-2);margin-bottom:var(--space-3)}.exam-badge{display:inline-block;padding:3px 12px;border-radius:var(--radius-full);font-size:.72rem;font-weight:700;letter-spacing:.5px;text-transform:uppercase}.exam-badge.module{background:var(--primary-600);color:#fff}.exam-badge.test-id{background:var(--gray-100);color:var(--gray-600)}.exam-title{font-size:1.65rem;font-weight:600;color:var(--gray-900);margin-bottom:var(--space-2);line-height:1.3}.exam-subtitle{font-size:.9rem;color:var(--gray-500);line-height:1.5}.exam-stats-row{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--space-4);margin-bottom:var(--space-6)}.exam-stat-card{background:#fff;border:1px solid var(--gray-200);border-radius:var(--radius-xl);padding:var(--space-4) var(--space-5);display:flex;align-items:center;gap:var(--space-3)}.exam-stat-icon{width:40px;height:40px;background:var(--primary-50);color:var(--primary-600);border-radius:var(--radius-lg);display:flex;align-items:center;justify-content:center;flex-shrink:0}.exam-stat-info{display:flex;flex-direction:column}.exam-stat-label{font-size:.68rem;font-weight:600;color:var(--gray-400);letter-spacing:.5px;text-transform:uppercase;margin-bottom:2px}.exam-stat-value{font-size:1.35rem;font-weight:700;color:var(--gray-900)}.exam-section-heading{font-size:1.1rem;font-weight:700;color:var(--gray-900);margin-bottom:var(--space-4)}.exam-structure{margin-bottom:var(--space-6)}.exam-structure-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:var(--space-3)}.exam-structure-card{background:#fff;border:1px solid var(--gray-200);border-radius:var(--radius-xl);padding:var(--space-4);position:relative;transition:all var(--transition-fast)}.exam-structure-card:hover{border-color:var(--primary-300);box-shadow:var(--shadow-sm)}.exam-structure-card.completed{background:var(--success-50);border-color:var(--success-200)}.exam-structure-card.next{border-color:var(--primary-500);box-shadow:0 0 0 3px #0e4a571a}.card-completed-badge{position:absolute;top:var(--space-2);right:var(--space-2);display:flex;align-items:center;gap:3px;background:var(--success-500);color:#fff;font-size:.68rem;font-weight:600;padding:2px 8px;border-radius:var(--radius-full)}.card-next-badge{position:absolute;top:var(--space-2);right:var(--space-2);background:var(--primary-600);color:#fff;font-size:.68rem;font-weight:600;padding:2px 8px;border-radius:var(--radius-full)}.structure-card-icon{width:44px;height:44px;background:var(--gray-50);border-radius:var(--radius-lg);display:flex;align-items:center;justify-content:center;color:var(--primary-600);margin-bottom:var(--space-3)}.exam-structure-card.completed .structure-card-icon{background:var(--success-100);color:var(--success-600)}.exam-structure-card.next .structure-card-icon{background:var(--primary-100);color:var(--primary-700)}.structure-card-title{font-size:.95rem;font-weight:700;color:var(--gray-900);margin-bottom:2px}.structure-card-duration{font-size:.78rem;font-weight:600;color:var(--primary-600);display:block;margin-bottom:var(--space-2)}.structure-card-desc{font-size:.8rem;color:var(--gray-500);line-height:1.5}.exam-info-row{display:grid;grid-template-columns:1.2fr .8fr;gap:var(--space-5);margin-bottom:var(--space-6)}.exam-rules{background:#fff;border:1px solid var(--gray-200);border-radius:var(--radius-xl);padding:var(--space-5)}.exam-rules-list{display:flex;flex-direction:column;gap:var(--space-4)}.exam-rule-item{display:flex;gap:var(--space-3);align-items:flex-start}.rule-icon{width:32px;height:32px;border-radius:var(--radius-md);display:flex;align-items:center;justify-content:center;flex-shrink:0}.rule-icon.warning{background:var(--warning-50);color:var(--warning-500)}.rule-icon.info{background:var(--primary-50);color:var(--primary-600)}.rule-icon.success{background:var(--success-50);color:var(--success-600)}.rule-content strong{font-size:.88rem;color:var(--gray-900);display:block;margin-bottom:2px}.rule-content p{font-size:.82rem;color:var(--gray-500);line-height:1.4;margin:0}.exam-system-check{background:#fff;border:1px solid var(--gray-200);border-radius:var(--radius-xl);padding:var(--space-5)}.system-check-list{display:flex;flex-direction:column;gap:var(--space-3);margin-bottom:var(--space-4)}.system-check-item{display:flex;align-items:center;justify-content:space-between;padding:var(--space-3) var(--space-4);background:var(--gray-50);border-radius:var(--radius-lg)}.check-item-left{display:flex;align-items:center;gap:var(--space-3);color:var(--gray-700);font-size:.9rem;font-weight:500}.check-item-left svg{color:var(--gray-400)}.check-status{font-size:.78rem;font-weight:600;padding:2px 10px;border-radius:var(--radius-full)}.check-status.stable{background:var(--success-50);color:var(--success-600)}.check-status.checking{background:var(--gray-100);color:var(--gray-500);animation:pulse-fade 1.2s ease-in-out infinite}.check-status.unstable{background:var(--warning-50);color:var(--warning-500)}.check-status.offline{background:var(--error-50);color:var(--error-500)}.check-status.testing{background:var(--primary-50);color:var(--primary-600);animation:pulse-fade 1s ease-in-out infinite}@keyframes pulse-fade{0%,to{opacity:1}50%{opacity:.5}}.check-item-right{display:flex;align-items:center;gap:var(--space-2)}.mic-level-container{width:100px;height:10px;background:var(--gray-200);border-radius:var(--radius-full);overflow:hidden;position:relative}.mic-level-container:after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,transparent,rgba(34,197,94,.15),transparent);animation:mic-shimmer 1.5s ease-in-out infinite}@keyframes mic-shimmer{0%,to{transform:translate(-100%)}50%{transform:translate(100%)}}.mic-level-fill{height:100%;background:var(--success-500);border-radius:var(--radius-full);transition:width .1s ease-out;min-width:0;position:relative;z-index:1}.system-check-item.mic-active{border:1.5px solid var(--success-300);background:var(--success-50)}.system-check-item.mic-active .check-item-left svg{color:var(--success-500)}.check-action-btn{font-size:.78rem;font-weight:600;color:var(--primary-600);background:none;border:none;cursor:pointer;padding:2px 8px;border-radius:var(--radius-md);transition:all var(--transition-fast)}.check-action-btn:hover{background:var(--primary-50)}.check-action-btn:disabled{opacity:.5;cursor:not-allowed}.system-check-hint{display:flex;align-items:center;gap:var(--space-2);font-size:.8rem;color:var(--gray-500);background:var(--primary-50);padding:var(--space-3) var(--space-4);border-radius:var(--radius-lg);line-height:1.4}.hint-icon{font-size:1rem;flex-shrink:0}.exam-footer{text-align:center;padding-top:var(--space-5);border-top:1px solid var(--gray-200)}.exam-footer-note{font-size:.85rem;color:var(--gray-500);line-height:1.5;margin-bottom:var(--space-4)}.exam-footer-actions{display:flex;justify-content:center;gap:var(--space-3)}.exam-back-btn{display:inline-flex;align-items:center;gap:var(--space-2);padding:var(--space-3) var(--space-6);background:#fff;color:var(--gray-700);border:1px solid var(--gray-300);border-radius:var(--radius-lg);font-size:.9rem;font-weight:600;cursor:pointer;transition:all var(--transition-fast)}.exam-back-btn:hover{background:var(--gray-50);border-color:var(--gray-400)}.exam-start-btn{display:inline-flex;align-items:center;gap:var(--space-2);padding:var(--space-3) var(--space-6);background:var(--primary-600);color:#fff;border:2px solid var(--primary-600);border-radius:var(--radius-lg);font-size:.95rem;font-weight:700;cursor:pointer;transition:all var(--transition-fast)}.exam-start-btn:hover{background:var(--primary-700);border-color:var(--primary-700)}.exam-complete-screen{max-width:480px;margin:var(--space-8) auto;text-align:center;background:#fff;border-radius:var(--radius-xl);padding:var(--space-8);box-shadow:var(--shadow-md)}.complete-icon-wrapper{width:80px;height:80px;background:var(--success-50);color:var(--success-500);border-radius:50%;display:flex;align-items:center;justify-content:center;margin:0 auto var(--space-5)}.exam-complete-screen h2{font-size:1.35rem;font-weight:700;color:var(--gray-900);margin-bottom:var(--space-2)}.exam-complete-screen p{font-size:.9rem;color:var(--gray-500);margin-bottom:var(--space-6);line-height:1.5}@media(max-width:900px){.exam-structure-grid{grid-template-columns:repeat(2,1fr)}}@media(max-width:768px){.exam-title{font-size:1.35rem}.exam-stats-row{grid-template-columns:1fr;gap:var(--space-3)}.exam-stat-card{padding:var(--space-3) var(--space-4)}.exam-structure-grid{grid-template-columns:repeat(2,1fr)}.exam-info-row{grid-template-columns:1fr}}@media(max-width:480px){.exam-title{font-size:1.15rem}.exam-structure-grid{grid-template-columns:1fr}.exam-footer-actions{flex-direction:column}.exam-back-btn,.exam-start-btn{width:100%;justify-content:center}}.test-taking-page.active-test{padding-top:65px;padding-bottom:75px;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;position:relative;height:100vh;overflow:hidden}.content-protection-overlay{position:fixed;inset:0;background:#000000f2;z-index:9999;display:flex;align-items:center;justify-content:center;animation:fadeIn .15s ease-out}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.protection-message{text-align:center;color:#fff;padding:var(--space-8);max-width:400px}.protection-icon{font-size:4rem;display:block;margin-bottom:var(--space-4)}.protection-message h2{font-size:1.5rem;font-weight:700;margin-bottom:var(--space-3)}.protection-message p{font-size:1rem;color:#fffc;margin-bottom:var(--space-2)}.protection-warning{font-size:.875rem;color:var(--error-300);margin-top:var(--space-4)}.content-blurred{filter:blur(20px);pointer-events:none}.test-taking-page.active-test input,.test-taking-page.active-test textarea,.test-taking-page.active-test select,.test-taking-page.active-test option,.test-taking-page.active-test button,.test-taking-page.active-test [contenteditable=true],.test-taking-page.active-test .reading-passage,.test-taking-page.active-test .reading-panel{-webkit-user-select:text;-moz-user-select:text;-ms-user-select:text;user-select:text}.timer-bar{position:fixed;top:0;left:0;right:0;height:60px;background:#fff;border-bottom:1px solid var(--gray-200);display:flex;align-items:center;justify-content:space-between;padding:0 var(--space-4);z-index:100;box-shadow:var(--shadow-sm)}.timer-bar.warning{background:var(--warning-50);border-color:var(--warning-500)}.timer-bar.danger{background:var(--error-50);border-color:var(--error-500)}.timer-section-info{display:flex;align-items:center;gap:var(--space-2);font-weight:600;color:var(--gray-700);min-width:0}.timer-section-info .section-icon{font-size:1.25rem;flex-shrink:0}.timer-test-title{font-size:.95rem;font-weight:700;color:var(--gray-900);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.timer-section-label{font-size:.85rem;font-weight:500;color:var(--primary-600);background:var(--primary-50);padding:2px 10px;border-radius:var(--radius-full);white-space:nowrap}.timer-display{display:flex;align-items:center;gap:var(--space-2);font-size:1.5rem;font-weight:700;font-family:SF Mono,Monaco,monospace}.timer-bar.warning .timer-display{color:var(--warning-700)}.timer-bar.danger .timer-display{color:var(--error-500)}.timer-icon{font-size:1.25rem}.timer-actions{display:flex;align-items:center;gap:var(--space-2)}.submit-section-btn{padding:var(--space-2) var(--space-5);background:var(--primary-600);color:#fff;border:none;border-radius:var(--radius-lg);font-size:.9rem;font-weight:600;cursor:pointer;transition:all var(--transition-fast)}.submit-section-btn:hover:not(:disabled){background:var(--primary-700)}.submit-section-btn:disabled{opacity:.6;cursor:not-allowed}.exit-btn{display:flex;align-items:center;gap:var(--space-1);padding:var(--space-2) var(--space-3);background:none;color:var(--gray-500);border:1px solid var(--gray-300);border-radius:var(--radius-lg);font-size:.85rem;font-weight:500;cursor:pointer;transition:all var(--transition-fast)}.exit-btn:hover{background:var(--error-50);color:var(--error-500);border-color:var(--error-300)}.exit-confirm-overlay{position:fixed;inset:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:9998;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.exit-confirm-modal{background:#fff;border-radius:var(--radius-xl);padding:var(--space-6);max-width:400px;width:90%;box-shadow:var(--shadow-xl, 0 20px 60px rgba(0,0,0,.2))}.exit-confirm-modal h3{font-size:1.125rem;font-weight:700;color:var(--gray-900);margin-bottom:var(--space-2)}.exit-confirm-modal p{font-size:.9rem;color:var(--gray-600);line-height:1.5;margin-bottom:var(--space-5)}.exit-confirm-actions{display:flex;gap:var(--space-3);justify-content:flex-end}.btn-cancel{padding:var(--space-2) var(--space-5);background:var(--gray-100);color:var(--gray-700);border:none;border-radius:var(--radius-lg);font-size:.9rem;font-weight:500;cursor:pointer;transition:all var(--transition-fast)}.btn-cancel:hover{background:var(--gray-200)}.btn-confirm-exit{padding:var(--space-2) var(--space-5);background:var(--error-500);color:#fff;border:none;border-radius:var(--radius-lg);font-size:.9rem;font-weight:600;cursor:pointer;transition:all var(--transition-fast)}.btn-confirm-exit:hover{background:var(--error-600, var(--error-500))}.test-split-layout{display:flex;height:calc(100vh - 135px);overflow:hidden}.test-left-panel{flex:1;overflow-y:auto;border-right:1px solid var(--gray-200);background:#fff;padding:var(--space-5)}.test-right-panel{flex:1;overflow-y:auto;background:var(--gray-50);padding:var(--space-5)}.test-split-layout.speaking-single-column{display:block;overflow-y:auto}.test-speaking-panel{max-width:760px;margin:0 auto;background:var(--gray-50);padding:var(--space-5)}.speaking-merged-item{flex-direction:column;align-items:flex-start}.speaking-merged-item .question-header{flex-direction:row;align-items:center;width:100%;margin-bottom:var(--space-3)}.speaking-merged-item .question-content{width:100%}.panel-heading{display:flex;align-items:center;gap:var(--space-2);font-size:1.1rem;font-weight:700;color:var(--gray-900);margin-bottom:var(--space-4)}.left-section-block{margin-bottom:var(--space-5)}.left-section-title{font-size:1.15rem;font-weight:700;color:var(--gray-900);margin-bottom:var(--space-3)}.listening-audio-block{margin-bottom:var(--space-5);padding:var(--space-4);background:var(--primary-50);border-radius:var(--radius-lg);border:1px solid var(--primary-100)}.listening-audio-player{width:100%;height:48px;border-radius:var(--radius-md)}.audio-error-banner{margin-top:var(--space-3);padding:var(--space-3) var(--space-4);background:var(--warning-50, var(--warning-50));border:1px solid var(--warning-300, var(--amber));border-radius:var(--radius-md);display:flex;align-items:flex-start;gap:var(--space-2);color:var(--warning-800, var(--warning-700))}.audio-error-banner p{margin:0 0 var(--space-2) 0;font-size:.9rem;font-weight:500}.audio-resume-btn{padding:var(--space-2) var(--space-4);background:var(--warning-600, var(--warning-500));color:#fff;border:none;border-radius:var(--radius-md);font-size:.85rem;font-weight:600;cursor:pointer}.audio-resume-btn:hover{background:var(--warning-700, var(--warning-700))}.test-left-panel .reading-passage{max-height:none;background:var(--gray-50);border-radius:var(--radius-lg);padding:var(--space-5);margin-top:var(--space-3)}.test-left-panel .passage-content{font-size:.95rem;line-height:1.9;color:var(--gray-700);white-space:pre-wrap}.passage-tabs{display:flex;gap:var(--space-2);margin-bottom:var(--space-4);border-bottom:2px solid var(--gray-200);padding-bottom:var(--space-1)}.passage-tab{padding:var(--space-2) var(--space-4);background:none;border:none;border-bottom:2px solid transparent;margin-bottom:-3px;font-size:.9rem;font-weight:600;color:var(--gray-500);cursor:pointer;transition:all var(--transition-fast)}.passage-tab:hover{color:var(--gray-700)}.passage-tab.active{color:var(--primary-600);border-bottom-color:var(--primary-600)}.writing-task-prompt{margin-bottom:var(--space-6)}.task-badge{display:inline-block;padding:3px 12px;background:var(--primary-600);color:#fff;border-radius:var(--radius-full);font-size:.8rem;font-weight:600;margin-bottom:var(--space-3);text-transform:uppercase;letter-spacing:.3px}.task-description{font-size:1.05rem;font-weight:600;color:var(--gray-900);line-height:1.6;margin-bottom:var(--space-3)}.task-instructions{font-size:.9rem;color:var(--gray-600);font-style:italic;margin-bottom:var(--space-4);line-height:1.5}.chart-display{margin:var(--space-4) 0;text-align:center}.task-chart-image{max-width:100%;max-height:400px;border-radius:var(--radius-lg);border:1px solid var(--gray-200);display:block;margin:0 auto}.word-minimum{font-size:.85rem;color:var(--gray-500);font-style:italic;margin-top:var(--space-2)}.speaking-part-badge{display:inline-block;padding:2px 10px;background:var(--primary-100);color:var(--primary-700);border-radius:var(--radius-full);font-size:.78rem;font-weight:600;margin-bottom:var(--space-2);text-transform:capitalize}.speaking-prompt-text{font-size:1rem;font-weight:500;color:var(--gray-900);line-height:1.6;margin-bottom:var(--space-2)}.speaking-prompt-instructions{font-size:.85rem;color:var(--gray-500);font-style:italic}.right-section-block{margin-bottom:var(--space-4)}.right-section-title{font-size:1.05rem;font-weight:700;color:var(--gray-900);margin-bottom:var(--space-4);padding-bottom:var(--space-2);border-bottom:1px solid var(--gray-200)}.question-item{display:flex;gap:var(--space-3);padding:var(--space-4);background:#fff;border-radius:var(--radius-lg);border:1px solid var(--gray-200);transition:border-color var(--transition-fast),box-shadow var(--transition-fast)}.question-item.active{border-color:var(--primary-400);box-shadow:0 0 0 2px #0e4a571a}.question-header{display:flex;flex-direction:column;align-items:center;gap:var(--space-2);flex-shrink:0}.flag-btn{background:none;border:none;color:var(--gray-300);cursor:pointer;padding:2px;border-radius:var(--radius-sm);transition:all var(--transition-fast)}.flag-btn:hover,.flag-btn.flagged{color:var(--warning-500)}.writing-response{height:100%;display:flex;flex-direction:column}.writing-editor-block{flex:1;display:flex;flex-direction:column;margin-bottom:var(--space-4)}.writing-editor-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--space-3)}.task-badge-sm{display:inline-block;padding:2px 10px;background:var(--primary-100);color:var(--primary-700);border-radius:var(--radius-full);font-size:.78rem;font-weight:600}.writing-editor-block .essay-container{flex:1;display:flex;flex-direction:column}.writing-editor-block .essay-input{flex:1;min-height:400px}.section-instructions{padding:var(--space-4);background:var(--primary-50);border-radius:var(--radius-lg);color:var(--primary-700);font-size:.9rem;line-height:1.6;margin-bottom:var(--space-6)}.section-image-display{margin-bottom:var(--space-6);text-align:center}.section-image-display .section-image{max-width:100%;max-height:500px;border-radius:var(--radius-lg);border:1px solid var(--gray-200);object-fit:contain}.audio-player{margin-bottom:var(--space-6)}.audio-player audio{width:100%;border-radius:var(--radius-lg)}.reading-passage{background:var(--gray-50);border-radius:var(--radius-lg);padding:var(--space-4);margin-bottom:var(--space-4);overflow-y:auto}.passage-title{font-size:1.1rem;font-weight:700;color:var(--gray-900);margin-bottom:var(--space-4)}.passage-content{font-size:.95rem;line-height:1.8;color:var(--gray-700);white-space:pre-wrap}.questions-list{display:flex;flex-direction:column;gap:var(--space-6)}.question-number{width:40px;height:40px;background:var(--primary-600);color:#fff;border-radius:var(--radius-md);display:flex;align-items:center;justify-content:center;font-weight:700;font-size:.8rem;flex-shrink:0}.question-content{flex:1}.question-text{font-size:1rem;font-weight:500;color:var(--gray-900);margin-bottom:var(--space-3);line-height:1.6}.question-instructions{font-size:.85rem;color:var(--gray-500);font-style:italic;margin-bottom:var(--space-4)}.options-list{display:flex;flex-direction:column;gap:var(--space-2)}.options-list.horizontal{flex-direction:row;flex-wrap:wrap;gap:var(--space-3)}.option-item{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-3) var(--space-4);background:#fff;border-radius:var(--radius-md);border:1px solid var(--gray-200);cursor:pointer;transition:all var(--transition-fast)}.option-item:hover{border-color:var(--primary-400);background:var(--primary-50)}.option-item:has(input:checked){border-color:var(--primary-600);background:var(--primary-50)}.option-item input{margin:0}.option-label{width:24px;height:24px;background:var(--gray-100);border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:.75rem;font-weight:600;color:var(--gray-600)}.option-item:has(input:checked) .option-label{background:var(--primary-600);color:#fff}.option-text{flex:1;font-size:.9rem;color:var(--gray-700)}.option-item.compact{padding:var(--space-2) var(--space-4)}.option-item.compact .option-text{font-size:.85rem;font-weight:500}.answer-input{width:100%;padding:var(--space-3) var(--space-4);border:1px solid var(--gray-300);border-radius:var(--radius-md);font-size:.95rem;transition:border-color var(--transition-fast)}.answer-input:focus{outline:none;border-color:var(--primary-500);box-shadow:0 0 0 3px #0e4a571a}.essay-container{display:flex;flex-direction:column;gap:var(--space-2)}.essay-input{width:100%;padding:var(--space-4);border:1px solid var(--gray-300);border-radius:var(--radius-lg);font-size:.95rem;line-height:1.7;resize:vertical;min-height:300px;font-family:inherit}.essay-input:focus{outline:none;border-color:var(--primary-500)}.word-count{font-size:.8rem;color:var(--gray-500);text-align:right}.speaking-container{padding:var(--space-4);background:#fff;border-radius:var(--radius-lg);border:1px dashed var(--gray-300)}.speaking-instructions{font-size:.9rem;color:var(--gray-600);margin-bottom:var(--space-4)}.audio-recorder{display:flex;flex-direction:column;align-items:center;gap:var(--space-4)}.record-btn{padding:var(--space-4) var(--space-8);background:var(--error-500);color:#fff;border:none;border-radius:var(--radius-xl);font-size:1rem;font-weight:600;cursor:pointer;display:flex;align-items:center;gap:var(--space-2)}.recording-note{font-size:.8rem;color:var(--gray-400);text-align:center}.speaking-text-fallback{width:100%;padding:var(--space-3);border:1px solid var(--gray-200);border-radius:var(--radius-md);font-size:.9rem;resize:vertical}.bottom-bar{position:fixed;bottom:0;left:0;right:0;height:70px;background:#fff;border-top:1px solid var(--gray-200);display:flex;align-items:center;justify-content:space-between;padding:0 var(--space-3);z-index:100;box-shadow:0 -4px 12px #0000000d;gap:var(--space-3)}.bottom-bar-left{display:flex;align-items:center;overflow-x:auto;flex-shrink:1;min-width:0}.question-nav-pills{display:flex;gap:3px;align-items:center}.question-pill{width:28px;height:28px;border-radius:var(--radius-md);border:1px solid var(--gray-300);background:#fff;color:var(--gray-600);font-size:.75rem;font-weight:600;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all var(--transition-fast);flex-shrink:0}.question-pill:hover{border-color:var(--primary-400);background:var(--primary-50)}.question-pill.answered{background:var(--primary-600);color:#fff;border-color:var(--primary-600)}.question-pill.current{border-color:var(--primary-600);box-shadow:0 0 0 2px #0e4a5740}.question-pill.flagged{border-color:var(--warning-500);position:relative}.question-pill.flagged:after{content:"";position:absolute;top:-2px;right:-2px;width:6px;height:6px;background:var(--warning-500);border-radius:50%}.bottom-bar-center{display:flex;align-items:center;gap:var(--space-2);flex-shrink:0}.progress-label{font-size:.78rem;color:var(--gray-500);font-weight:500;white-space:nowrap}.progress-bar-mini{width:80px;height:6px;background:var(--gray-200);border-radius:var(--radius-full);overflow:hidden}.progress-fill-mini{height:100%;background:var(--primary-600);border-radius:var(--radius-full);transition:width .3s ease}.progress-text{font-size:.78rem;color:var(--gray-600);font-weight:500;white-space:nowrap}.bottom-bar-right{display:flex;align-items:center;gap:var(--space-2);flex-shrink:0}.nav-btn{display:flex;align-items:center;gap:var(--space-1);padding:var(--space-2) var(--space-3);background:#fff;color:var(--gray-700);border:1px solid var(--gray-300);border-radius:var(--radius-lg);font-size:.85rem;font-weight:500;cursor:pointer;transition:all var(--transition-fast);white-space:nowrap}.nav-btn:hover:not(:disabled){border-color:var(--primary-400);color:var(--primary-600)}.nav-btn:disabled{opacity:.4;cursor:not-allowed}.nav-btn.next{background:var(--primary-600);color:#fff;border-color:var(--primary-600)}.nav-btn.next:hover:not(:disabled){background:var(--primary-700);border-color:var(--primary-700);color:#fff}.nav-btn.next:disabled{opacity:.5}.audio-recorder-container{width:100%;padding:var(--space-4);background:var(--gray-50);border-radius:var(--radius-lg);border:1px solid var(--gray-200)}.audio-recorder-controls{display:flex;flex-direction:column;align-items:center;gap:var(--space-4)}.audio-recorder-controls .record-btn{display:flex;align-items:center;gap:var(--space-2);padding:var(--space-4) var(--space-6);background:var(--error-500);color:#fff;border:none;border-radius:var(--radius-xl);font-size:1rem;font-weight:600;cursor:pointer;transition:all var(--transition-fast)}.audio-recorder-controls .record-btn:hover:not(:disabled){background:var(--error-500);transform:scale(1.02)}.audio-recorder-controls .record-btn:disabled{opacity:.6;cursor:not-allowed}.record-icon{font-size:1.25rem}.recording-indicator{display:flex;align-items:center;gap:var(--space-2)}.recording-dot{width:12px;height:12px;background:var(--error-500);border-radius:50%;animation:pulse-recording 1s ease-in-out infinite}@keyframes pulse-recording{0%,to{transform:scale(1);opacity:1}50%{transform:scale(1.2);opacity:.7}}.recording-text{font-size:1rem;font-weight:600;color:var(--error-500)}.recording-timer{display:flex;align-items:center;gap:var(--space-2);font-family:SF Mono,Monaco,monospace;font-size:1.75rem;font-weight:700;color:var(--gray-800)}.timer-separator{color:var(--gray-400)}.max-time{color:var(--gray-500);font-size:1.25rem}.time-remaining{font-size:.9rem;color:var(--gray-600)}.remaining-value.warning{color:var(--error-500);font-weight:600;animation:blink .5s ease-in-out infinite}@keyframes blink{0%,to{opacity:1}50%{opacity:.5}}.stop-btn{display:flex;align-items:center;gap:var(--space-2);padding:var(--space-3) var(--space-6);background:var(--gray-800);color:#fff;border:none;border-radius:var(--radius-lg);font-size:1rem;font-weight:600;cursor:pointer;transition:all var(--transition-fast)}.stop-btn:hover{background:var(--gray-700)}.stop-icon{font-size:1rem}.playback-container{width:100%;display:flex;flex-direction:column;align-items:center;gap:var(--space-4)}.playback-header{display:flex;align-items:center;gap:var(--space-2);font-size:1rem;font-weight:600;color:var(--success-600)}.playback-icon{font-size:1.25rem}.audio-playback{width:100%;max-width:400px}.audio-playback audio{width:100%;height:48px;border-radius:var(--radius-lg)}.playback-actions{display:flex;gap:var(--space-3)}.re-record-btn{display:flex;align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-4);background:#fff;color:var(--gray-700);border:1px solid var(--gray-300);border-radius:var(--radius-md);font-size:.9rem;font-weight:500;cursor:pointer;transition:all var(--transition-fast)}.re-record-btn:hover:not(:disabled){border-color:var(--primary-500);color:var(--primary-600)}.re-record-btn:disabled{opacity:.6;cursor:not-allowed}.recording-hint{font-size:.85rem;color:var(--gray-500);text-align:center;margin-top:var(--space-2)}.permission-error{display:flex;flex-direction:column;align-items:center;gap:var(--space-3);padding:var(--space-6);text-align:center}.permission-error .error-icon{font-size:2rem}.permission-error p{font-size:.95rem;color:var(--gray-700);margin:0}.permission-error .error-hint{font-size:.85rem;color:var(--gray-500)}.retry-btn{padding:var(--space-2) var(--space-4);background:var(--primary-600);color:#fff;border:none;border-radius:var(--radius-md);font-size:.9rem;font-weight:500;cursor:pointer;transition:all var(--transition-fast)}.retry-btn:hover{background:var(--primary-700)}.upload-progress-container{width:100%;max-width:300px;margin-top:var(--space-2)}.upload-progress-bar{width:100%;height:4px;background:var(--gray-200);border-radius:2px;overflow:hidden}.upload-progress-fill{height:100%;background:var(--primary-600);transition:width .3s ease}.upload-status{font-size:.8rem;color:var(--gray-600);text-align:center;margin-top:var(--space-1)}.upload-status.error{color:var(--error-500)}.upload-status.success{color:var(--success-600)}.optional-notes-container{width:100%;margin-top:var(--space-4);padding-top:var(--space-4);border-top:1px dashed var(--gray-300)}.optional-notes-label{font-size:.85rem;color:var(--gray-500);margin-bottom:var(--space-2)}.speaking-text-fallback{width:100%;padding:var(--space-3);border:1px solid var(--gray-200);border-radius:var(--radius-md);font-size:.9rem;resize:vertical;min-height:60px}.speaking-text-fallback:focus{outline:none;border-color:var(--primary-500)}@media(max-width:768px){.section-select-container{padding:var(--space-3) var(--space-2)}.timer-bar{padding:0 var(--space-2)}.timer-test-title{display:none}.timer-display{font-size:1.25rem}.test-split-layout{flex-direction:column;height:auto;overflow:visible}.test-left-panel{border-right:none;border-bottom:1px solid var(--gray-200);max-height:40vh;overflow-y:auto;padding:var(--space-3)}.test-right-panel{flex:1;padding:var(--space-3);overflow-y:auto}.test-taking-page.active-test{height:auto;overflow:auto}.question-item{flex-direction:column;padding:var(--space-3);gap:var(--space-2)}.question-header{flex-direction:row;justify-content:space-between;width:100%}.question-number{margin-bottom:var(--space-2);align-self:flex-start}.reading-passage{padding:var(--space-3)}.options-list.horizontal{flex-direction:column}.bottom-bar{padding:0 var(--space-2);height:auto;min-height:60px;flex-wrap:wrap;gap:var(--space-1);padding-top:var(--space-2);padding-bottom:var(--space-2)}.bottom-bar-left{order:2;width:100%}.bottom-bar-center{display:none}.bottom-bar-right{order:1;width:100%;justify-content:space-between}.nav-btn span,.exit-btn span{display:none}.recording-timer{font-size:1.5rem}.max-time{font-size:1rem}.audio-playback{max-width:100%}}@media(max-width:480px){.question-item{padding:var(--space-2)}.reading-passage{padding:var(--space-2);margin-bottom:var(--space-3)}.timer-bar{padding:0 8px;height:56px}.timer-display{font-size:1.1rem}.timer-section-info{font-size:.85rem}.timer-section-label{display:none}.submit-section-btn{padding:var(--space-2) var(--space-3);font-size:.8rem}.bottom-bar{padding:0 8px}}.image-completion-question{display:flex;flex-direction:column;gap:16px}.question-image-display{width:100%;text-align:center;padding:12px;background:var(--gray-50, var(--gray-50));border-radius:var(--radius-lg, 12px);border:1px solid var(--gray-200, var(--gray-200))}.completion-image{max-width:100%;max-height:420px;border-radius:var(--radius-md, 8px);object-fit:contain;display:block;margin:0 auto}.summary-completion-question{display:flex;flex-direction:column;gap:16px}.word-bank{background:linear-gradient(135deg,var(--petrol-tint) 0%,var(--success-50) 100%);border:1.5px solid var(--petrol-tint);border-radius:var(--radius-lg, 12px);padding:14px 18px}.word-bank-label{display:block;font-size:.78rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--primary-700, var(--petrol));margin-bottom:10px}.word-bank-chips{display:flex;flex-wrap:wrap;gap:8px}.word-chip{display:inline-flex;align-items:center;padding:5px 14px;background:#fff;border:1.5px solid var(--primary-300, var(--petrol-tint));border-radius:20px;font-size:.88rem;font-weight:500;color:var(--primary-700, var(--petrol));cursor:pointer;transition:all .2s ease;-webkit-user-select:none;user-select:none}.word-chip:hover{background:var(--primary-50, var(--petrol-tint));border-color:var(--primary-500, var(--petrol));transform:translateY(-1px);box-shadow:0 2px 6px #0e4a5726}.matching-group{display:flex;flex-direction:column;gap:var(--space-3)}.matching-options-box{background:var(--gray-50);border:1.5px solid var(--gray-200);border-radius:var(--radius-lg);padding:var(--space-4) var(--space-5);margin-bottom:var(--space-2)}.matching-options-title{font-size:.95rem;font-weight:700;color:var(--gray-800);margin-bottom:var(--space-3);text-align:center;text-transform:uppercase;letter-spacing:.02em;border-bottom:1.5px solid var(--gray-200);padding-bottom:var(--space-2)}.matching-options-list{display:flex;flex-direction:column;gap:var(--space-1)}.matching-option-item{display:flex;align-items:baseline;gap:var(--space-3);padding:var(--space-1) 0;font-size:.92rem;line-height:1.5}.matching-option-label{font-weight:700;color:var(--primary-700);min-width:28px;flex-shrink:0}.matching-option-text{color:var(--gray-700)}.matching-question-item{padding:var(--space-3) var(--space-4)}.matching-question-content{display:flex;align-items:center;gap:var(--space-4);flex:1;min-width:0}.matching-question-content .question-text{margin-bottom:0;flex:1;min-width:0;white-space:normal;overflow-wrap:anywhere}.matching-select{width:220px;min-width:160px;flex-shrink:0;padding:8px 12px;border-radius:var(--radius-md);border:1.5px solid var(--gray-300);font-size:.9rem;background:#fff;cursor:pointer;appearance:auto;color:var(--gray-700);transition:border-color var(--transition-fast)}.matching-select:focus{outline:none;border-color:var(--primary-500);box-shadow:0 0 0 2px #0e4a571a}.matching-select:has(option:checked:not([value=""])){border-color:var(--primary-400);color:var(--gray-900)}@media(max-width:700px){.matching-question-content{flex-direction:column;align-items:flex-start;gap:var(--space-2)}.matching-question-content .question-text{white-space:normal}.matching-select{width:100%}.matching-option-label{min-width:22px}}.completion-group{display:flex;flex-direction:column;gap:var(--space-3)}.completion-group-header{display:flex;align-items:center;justify-content:space-between;padding:var(--space-3) var(--space-4);background:var(--primary-50);border:1.5px solid var(--primary-200);border-radius:var(--radius-lg)}.completion-group-title{font-size:.95rem;font-weight:700;color:var(--primary-700);text-transform:uppercase;letter-spacing:.02em}.completion-group-range{font-size:.82rem;color:var(--gray-500);font-weight:500}.completion-group-instructions{font-size:.88rem;color:var(--gray-600);line-height:1.55;padding:var(--space-2) var(--space-4);background:var(--gray-50);border-left:3px solid var(--primary-300);border-radius:0 var(--radius-md) var(--radius-md) 0;font-style:italic}.completion-group-image{border:1.5px solid var(--gray-200);border-radius:var(--radius-lg);overflow:hidden;background:#fff}.completion-group-image img{width:100%;height:auto;display:block;cursor:zoom-in;transition:transform var(--transition-normal)}.completion-group-image img:hover{transform:scale(1.02)}.completion-word-bank{background:var(--gray-50);border:1.5px solid var(--gray-200);border-radius:var(--radius-lg);padding:var(--space-3) var(--space-4)}.completion-word-bank-title{font-size:.85rem;font-weight:700;color:var(--gray-600);text-transform:uppercase;letter-spacing:.04em;margin-bottom:var(--space-2)}.completion-word-bank-chips{display:flex;flex-wrap:wrap;gap:var(--space-2)}.completion-word-chip{display:inline-block;padding:var(--space-1) var(--space-3);background:#fff;border:1.5px solid var(--gray-300);border-radius:var(--radius-full);font-size:.87rem;color:var(--gray-700);font-weight:500;cursor:default;-webkit-user-select:text;user-select:text}.completion-question-item{padding:var(--space-3) var(--space-4)}.completion-question-content{display:flex;align-items:center;gap:var(--space-4);flex:1}.completion-question-content .question-text{margin-bottom:0;flex:1;font-size:.92rem;color:var(--gray-700)}.completion-answer-input{width:220px;min-width:160px;flex-shrink:0;padding:8px 12px;border-radius:var(--radius-md);border:1.5px solid var(--gray-300);font-size:.9rem;background:#fff;color:var(--gray-800);transition:border-color var(--transition-fast),box-shadow var(--transition-fast)}.completion-answer-input:focus{outline:none;border-color:var(--primary-500);box-shadow:0 0 0 2px #0e4a571a}.completion-answer-input:not(:placeholder-shown){border-color:var(--primary-400)}.completion-answer-input:disabled{background:var(--gray-100);cursor:not-allowed}@media(max-width:700px){.completion-question-content{flex-direction:column;align-items:flex-start;gap:var(--space-2)}.completion-answer-input{width:100%}.completion-group-header{flex-direction:column;gap:var(--space-1);align-items:flex-start}}.results-page{max-width:1000px}@media(max-width:768px){.results-page{padding:var(--space-6) var(--space-3)}}@media(max-width:480px){.results-page{padding:var(--space-4) var(--space-2)}}.results-container{max-width:800px;margin:0 auto}@media(max-width:768px){.results-container{max-width:100%}}.loading-container,.error-container{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:60vh;gap:var(--space-4)}.results-header{text-align:center;margin-bottom:var(--space-8)}.back-link{display:inline-block;color:var(--primary-600);text-decoration:none;font-size:.9rem;margin-bottom:var(--space-4);transition:color var(--transition-fast)}.back-link:hover{color:var(--primary-700)}.results-header h1{font-size:1.75rem;font-weight:700;color:var(--gray-900);margin-bottom:var(--space-2)}.test-meta{font-size:.95rem;color:var(--gray-500)}.status-banner{display:flex;align-items:flex-start;gap:var(--space-4);padding:var(--space-5);border-radius:var(--radius-xl);margin-bottom:var(--space-8)}@media(max-width:480px){.status-banner{padding:var(--space-4);gap:var(--space-3)}}.status-banner.pending{background:var(--warning-50);border:1px solid var(--warning-500)}.status-banner.graded{background:var(--success-100);border:1px solid var(--success-500)}.status-icon{font-size:1.5rem}.status-banner h3{font-size:1rem;font-weight:600;margin-bottom:var(--space-4);color:var(--gray-800)}.latest-results{margin-bottom:var(--space-8)}.latest-results h2{font-size:1.25rem;font-weight:600;margin-bottom:var(--space-4);color:var(--gray-800)}.results-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:var(--space-5)}.result-card{background:#fff;border-radius:var(--radius-xl);box-shadow:var(--shadow-md);overflow:hidden;border:1px solid var(--gray-100)}.result-card-header{padding:var(--space-4) var(--space-5);display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid var(--gray-100)}.test-type-badge{padding:var(--space-1) var(--space-3);border-radius:var(--radius-full);font-size:.75rem;font-weight:600}.test-type-badge.general{background:var(--petrol-tint);color:var(--petrol)}.test-type-badge.ielts{background:linear-gradient(135deg,var(--success-100),var(--success-50));color:var(--success-700)}.test-type-badge.small{font-size:.65rem;padding:var(--space-1) var(--space-2)}.result-date{font-size:.8rem;color:var(--gray-500)}.result-card-body{padding:var(--space-5)}.result-card-footer{padding:var(--space-4) var(--space-5);border-top:1px solid var(--gray-100);background:var(--gray-50)}.score-display{text-align:center;margin-bottom:var(--space-4)}.score-main{font-size:2.5rem;font-weight:700;line-height:1.2}.score-main.band{font-size:2rem}.score-percentage{font-size:1rem;color:var(--gray-500);margin-top:var(--space-1)}.result-level{text-align:center;margin-bottom:var(--space-4)}.level-badge{display:inline-block;padding:var(--space-2) var(--space-4);background:var(--primary-50);color:var(--primary-700);border-radius:var(--radius-lg);font-weight:600;font-size:.9rem}.level-badge.small{padding:var(--space-1) var(--space-2);font-size:.75rem}.result-meta{text-align:center;color:var(--gray-500);font-size:.85rem}.band-breakdown{display:grid;grid-template-columns:repeat(4,1fr);gap:var(--space-4);margin-bottom:var(--space-8)}@media(max-width:768px){.section-scores-grid{grid-template-columns:repeat(2,1fr);gap:var(--space-3)}}@media(max-width:480px){.section-scores-grid{grid-template-columns:1fr;gap:var(--space-3)}}.section-score-card{background:#fff;border-radius:var(--radius-xl);padding:var(--space-5);text-align:center;box-shadow:var(--shadow-sm)}.section-score-header{display:flex;align-items:center;justify-content:center;gap:var(--space-2);margin-bottom:var(--space-3)}.section-score-header .section-icon{font-size:1.25rem}.section-score-header .section-name{font-size:.85rem;font-weight:600;color:var(--gray-700)}.section-score-value{font-size:2rem;font-weight:600;margin-bottom:var(--space-1)}.section-score-raw{font-size:.75rem;color:var(--gray-400);margin-bottom:var(--space-2)}.section-score-level{font-size:.8rem;font-weight:600;color:var(--gray-600)}.band-scale-card{background:#fff;border-radius:var(--radius-xl);padding:var(--space-6);margin-bottom:var(--space-8);box-shadow:var(--shadow-sm)}.band-scale-card h3{font-size:1rem;font-weight:600;color:var(--gray-700);margin-bottom:var(--space-5);text-align:center}.band-scale{display:flex;justify-content:space-between;gap:var(--space-2);margin-bottom:var(--space-4);padding:var(--space-3);background:var(--gray-50);border-radius:var(--radius-lg)}@media(max-width:768px){.band-scale{flex-wrap:wrap;justify-content:center;gap:var(--space-1)}.band-item{min-width:calc(25% - var(--space-1));margin-bottom:var(--space-1)}}@media(max-width:480px){.band-scale{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--space-1)}.band-item{min-width:unset;margin-bottom:0}}.band-item{text-align:center}.band-label{display:block;font-size:.65rem;color:var(--gray-500);margin-bottom:2px;text-transform:uppercase;text-align:center}.band-value{font-size:1.1rem;font-weight:700;color:var(--gray-800)}.results-history{background:#fff;border-radius:var(--radius-xl);box-shadow:var(--shadow-sm);border:1px solid var(--gray-100);padding:var(--space-5)}.section-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--space-4);flex-wrap:wrap;gap:var(--space-3)}.section-header h2{font-size:1.1rem;font-weight:600;color:var(--gray-800);margin:0}.type-filter{display:flex;gap:var(--space-2)}.filter-btn{padding:var(--space-2) var(--space-4);border:1px solid var(--gray-200);background:#fff;border-radius:var(--radius-lg);font-size:.85rem;font-weight:500;color:var(--gray-600);cursor:pointer;transition:all var(--transition-fast)}.filter-btn:hover{border-color:var(--primary-300);color:var(--primary-600)}.filter-btn.active{background:var(--primary-600);border-color:var(--primary-600);color:#fff}.history-list{display:flex;flex-direction:column}.history-item{display:flex;align-items:center;justify-content:space-between;gap:var(--space-4);padding:var(--space-4);border-bottom:1px solid var(--gray-100);transition:background var(--transition-fast)}.history-item:last-child{border-bottom:none}.history-item:hover{background:var(--gray-50)}.history-main{display:flex;align-items:center;gap:var(--space-4);flex:1;min-width:0}.history-type{flex-shrink:0}.history-info{flex:1;min-width:0}.history-date{font-weight:600;color:var(--gray-800);font-size:.9rem}.history-meta{font-size:.8rem;color:var(--gray-500);margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.history-details{display:flex;align-items:center;gap:var(--space-4);flex-shrink:0}.history-breakdown{display:flex;gap:var(--space-3);margin-right:var(--space-2)}.breakdown-item{text-align:center;min-width:24px}.breakdown-item .label{display:block;font-size:.6rem;color:var(--gray-400);font-weight:600;margin-bottom:2px}.breakdown-item .value{display:block;font-size:.9rem;font-weight:600;color:var(--gray-700)}.history-score{display:flex;align-items:center;gap:var(--space-3);min-width:80px;justify-content:flex-end}.history-score .score{font-size:1rem;font-weight:700}.history-score .score.band{font-size:.9rem}.view-btn{opacity:0;transform:translate(10px);transition:all var(--transition-fast)}.history-item:hover .view-btn{opacity:1;transform:translate(0)}.no-history{text-align:center;padding:var(--space-6);color:var(--gray-500)}.status-badge{display:inline-block;padding:var(--space-1) var(--space-3);border-radius:var(--radius-full);font-size:.75rem;font-weight:600}.status-badge.submitted{background:var(--warning-50);color:var(--warning-700)}.status-badge.graded{background:var(--success-50);color:var(--success-700)}.status-badge.expired{background:var(--gray-100);color:var(--gray-600)}.empty-state{text-align:center;padding:var(--space-10)}.empty-icon{font-size:4rem;margin-bottom:var(--space-4)}.empty-state h3{font-size:1.25rem;color:var(--gray-800);margin-bottom:var(--space-2)}.empty-state p{color:var(--gray-500)}@media(max-width:768px){.history-item{flex-direction:column;align-items:flex-start;gap:var(--space-3)}.history-main{width:100%;border-bottom:1px solid var(--gray-100);padding-bottom:var(--space-3);margin-bottom:-4px}.history-details{width:100%;justify-content:space-between;flex-wrap:wrap}.view-btn{opacity:1;transform:none}.history-breakdown{display:none}}@media(max-width:640px){.results-cards{grid-template-columns:1fr}.band-breakdown{grid-template-columns:repeat(2,1fr)}.section-header{flex-direction:column;align-items:flex-start}}.results-nav{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--space-6)}.results-nav .back-link{display:flex;align-items:center;gap:var(--space-2);margin-bottom:0}.print-btn{display:flex;align-items:center;gap:var(--space-2)}.status-pill{display:inline-block;padding:var(--space-1) var(--space-3);border-radius:var(--radius-full);font-size:.75rem;font-weight:600}.status-pill.graded{background:var(--success-100);color:var(--success-700)}.status-pill.pending{background:var(--warning-50);color:var(--warning-500)}.ielts-results-card{background:#fff;border-radius:var(--radius-xl);box-shadow:var(--shadow-md);overflow:hidden;border:1px solid var(--gray-100)}.ielts-results-header{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-4);padding:var(--space-5);background:linear-gradient(135deg,var(--gray-50),white);border-bottom:1px solid var(--gray-100)}.candidate-info,.test-info{display:flex;flex-direction:column;gap:var(--space-2)}.info-row{display:flex;align-items:center;gap:var(--space-2);font-size:.9rem}.info-row svg{color:var(--primary-500);flex-shrink:0}.info-label{color:var(--gray-500);min-width:60px}.info-value{font-weight:600;color:var(--gray-800)}.ielts-test-title{display:flex;justify-content:space-between;align-items:center;padding:var(--space-5);border-bottom:1px solid var(--gray-100)}.ielts-test-title h2{font-size:1.25rem;font-weight:700;color:var(--gray-900);margin:0}.overall-band-section{display:flex;flex-direction:column;align-items:center;padding:var(--space-8) var(--space-5);background:linear-gradient(180deg,var(--primary-50) 0%,white 100%);border-bottom:1px solid var(--gray-100)}.overall-band-display{width:140px;height:140px;border-radius:50%;border:6px solid;display:flex;flex-direction:column;align-items:center;justify-content:center;background:#fff;box-shadow:0 8px 24px #0000001a}.overall-band-display .band-number{font-size:3rem;font-weight:600;line-height:1}.overall-band-display .band-label{font-size:.75rem;color:var(--gray-500);text-transform:uppercase;letter-spacing:.5px;margin-top:var(--space-1)}.band-level{margin-top:var(--space-3);font-size:1.1rem;font-weight:600}.cefr-level{display:flex;align-items:center;gap:var(--space-2);margin-top:var(--space-4);max-width:480px;text-align:left}.cefr-badge{flex-shrink:0;display:flex;align-items:center;justify-content:center;width:44px;height:44px;border-radius:50%;color:#fff;font-weight:600;font-size:1rem;letter-spacing:.5px}.cefr-text{font-size:.85rem;color:var(--gray-600);line-height:1.4}.cefr-text strong{color:var(--gray-800)}.general-score-section{background:linear-gradient(180deg,var(--petrol-tint) 0%,white 100%)}.general-score-section.pending-state{background:linear-gradient(180deg,var(--warning-50) 0%,white 100%)}.general-score-display .band-number{font-size:2.4rem}.general-score-display.pending{border-color:var(--warning-500)}.general-score-display.pending .band-number{color:var(--warning-500)}.section-scores-enhanced{padding:var(--space-5);border-bottom:1px solid var(--gray-100)}.section-title{font-size:1rem;font-weight:600;color:var(--gray-700);margin-bottom:var(--space-4);display:flex;align-items:center;gap:var(--space-2)}.scores-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:var(--space-3)}.general-summary-grid .score-card-band{font-size:1.3rem}.general-summary-grid .score-card-raw{max-width:100%}.score-card{display:flex;flex-direction:column;align-items:center;padding:var(--space-4);border-radius:var(--radius-lg);background:var(--gray-50);transition:transform var(--transition-fast),box-shadow var(--transition-fast)}.score-card:hover{transform:translateY(-2px);box-shadow:var(--shadow-md)}.score-card-icon{width:48px;height:48px;border-radius:50%;display:flex;align-items:center;justify-content:center;margin-bottom:var(--space-3)}.score-card.listening .score-card-icon{background:var(--petrol-tint);color:var(--petrol)}.score-card.reading .score-card-icon{background:var(--success-50);color:var(--success-500)}.score-card.writing .score-card-icon{background:var(--warning-50);color:var(--warning-500)}.score-card.speaking .score-card-icon{background:var(--primary-50);color:var(--amber-text)}.score-card-content{text-align:center}.score-card-label{display:block;font-size:.8rem;color:var(--gray-600);margin-bottom:var(--space-1)}.score-card-band{display:block;font-size:1.75rem;font-weight:700;line-height:1.2}.score-card-raw{display:block;font-size:.75rem;color:var(--gray-500);margin-top:var(--space-1)}.score-card-cefr{display:flex;flex-direction:column;align-items:center;gap:4px;margin-top:var(--space-3);padding-top:var(--space-3);border-top:1px solid var(--gray-200)}.score-card-cefr-badge{display:flex;align-items:center;justify-content:center;width:28px;height:28px;border-radius:50%;color:#fff;font-weight:600;font-size:.7rem}.score-card-cefr-text{font-size:.7rem;color:var(--gray-600);line-height:1.35}.score-card-cefr-text strong{color:var(--gray-800)}.answer-stats-section{padding:var(--space-5);border-bottom:1px solid var(--gray-100);background:var(--gray-50)}.answer-stats-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:var(--space-4)}.answer-stat{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-4);background:#fff;border-radius:var(--radius-lg);box-shadow:var(--shadow-sm)}.answer-stat svg{color:var(--primary-500)}.stat-label{flex:1;font-weight:500;color:var(--gray-700)}.stat-value{font-weight:700;font-size:1.1rem}.stat-value .correct{color:var(--success-600)}.stat-value .separator{color:var(--gray-400);margin:0 2px}.stat-value .total{color:var(--gray-600)}.feedback-section{padding:var(--space-5);border-bottom:1px solid var(--gray-100)}.feedback-section .feedback-content{background:var(--gray-50);padding:var(--space-4);border-radius:var(--radius-lg);color:var(--gray-700);line-height:1.7;white-space:pre-wrap}.recommendation-section .feedback-content p+p{margin-top:var(--space-3)}.band-scale-section{padding:var(--space-5);border-bottom:1px solid var(--gray-100)}.band-scale-compact{display:flex;flex-wrap:wrap;gap:var(--space-2);justify-content:center}.band-scale-item{display:flex;flex-direction:column;align-items:center;padding:var(--space-2) var(--space-3);border-radius:var(--radius-md);background:var(--gray-50);min-width:80px;transition:all var(--transition-fast)}.band-scale-item.active{background:var(--primary-100);box-shadow:0 0 0 2px var(--primary-500)}.band-scale-item .band-num{font-size:1.25rem;font-weight:700;color:var(--gray-800)}.band-scale-item .band-desc{font-size:.65rem;color:var(--gray-500);text-align:center}.detailed-answers{padding:var(--space-5);border-bottom:1px solid var(--gray-100)}.detailed-answers summary{cursor:pointer;font-weight:600;color:var(--primary-600);padding:var(--space-2)}.detailed-answers .answers-grid{display:flex;flex-wrap:wrap;gap:var(--space-2);margin-top:var(--space-4)}.detailed-answers .answer-item{display:flex;flex-direction:column;align-items:center;justify-content:center;width:40px;height:40px;border-radius:var(--radius-md);font-size:.75rem;font-weight:600}.detailed-answers .answer-item.correct{background:var(--success-100);color:var(--success-700)}.detailed-answers .answer-item.incorrect{background:var(--error-50);color:var(--error-500)}.detailed-answers .answer-number{font-size:.65rem}.print-header,.print-footer{display:none}.results-actions{display:flex;gap:var(--space-3);justify-content:center;margin-top:var(--space-6)}.results-actions .btn-primary,.results-actions .btn-secondary{display:flex;align-items:center;gap:var(--space-2)}.detailed-answers{margin-top:var(--space-3)}.detailed-answers details{border:1px solid var(--border);border-radius:var(--radius-lg);overflow:hidden;background:var(--card-bg)}.detailed-answers summary{padding:var(--space-4) var(--space-5);cursor:pointer;font-weight:600;font-size:.95rem;color:var(--text-primary);background:var(--background);-webkit-user-select:none;user-select:none;display:flex;align-items:center;gap:var(--space-2);transition:background .2s}.detailed-answers summary:hover{background:var(--hover-bg, rgba(0, 0, 0, .03))}.detailed-answers details[open] summary{border-bottom:1px solid var(--border)}.review-section{padding:var(--space-4) var(--space-5);border-bottom:1px solid var(--border)}.review-section:last-child{border-bottom:none}.review-section-header{display:flex;align-items:center;gap:var(--space-2);margin-bottom:var(--space-4);color:var(--text-primary)}.review-section-header h4{font-size:1rem;font-weight:600;margin:0;flex:1}.review-section-header svg{color:var(--petrol)}.review-section-stats{font-size:.82rem;font-weight:600;color:var(--petrol);background:#0e4a571a;padding:2px 10px;border-radius:20px}.review-questions-list{display:flex;flex-direction:column;gap:var(--space-3)}.review-question{padding:var(--space-3) var(--space-4);border-radius:var(--radius);border:1px solid var(--border);background:var(--background);transition:border-color .2s}.review-question.review-correct{border-left:3px solid var(--success-500);background:#47754b08}.review-question.review-incorrect{border-left:3px solid var(--error-500);background:#ef444408}.review-question.review-pending{border-left:3px solid var(--warning-500);background:#f59e0b0a}.review-q-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--space-2)}.review-q-number{font-weight:700;font-size:.82rem;color:var(--text-secondary);background:#0000000d;padding:2px 8px;border-radius:4px}.review-q-status svg{display:block}.review-correct .review-q-status svg{color:var(--success-500)}.review-incorrect .review-q-status svg{color:var(--error-500)}.review-q-text{font-size:.88rem;color:var(--text-primary);line-height:1.5;margin:0 0 var(--space-3) 0}.review-answers-row{display:flex;gap:var(--space-4);flex-wrap:wrap}.review-answer-block{display:flex;flex-direction:column;gap:2px;min-width:0;flex:1}.review-answer-label{font-size:.7rem;font-weight:600;text-transform:uppercase;letter-spacing:.5px;color:var(--text-tertiary, var(--gray-500))}.review-answer-value{font-size:.88rem;font-weight:500;padding:4px 10px;border-radius:var(--radius);word-break:break-word}.review-answer-value.answer-correct{background:#47754b1a;color:var(--success-700)}.review-answer-value.answer-incorrect{background:#ef444414;color:var(--error-500)}.review-answer-value.answer-pending{background:#f59e0b24;color:var(--warning-700)}.general-options-row{display:flex;flex-wrap:wrap;gap:var(--space-2);margin-bottom:var(--space-3)}.general-option-pill{display:inline-flex;align-items:center;padding:4px 10px;border-radius:var(--radius-full);border:1px solid var(--border);background:var(--background);color:var(--text-secondary);font-size:.78rem;line-height:1.25}.general-option-pill.selected{border-color:var(--petrol);background:#0e4a571a;color:var(--petrol)}.general-option-pill.correct{border-color:var(--success-500);background:#10b9811a;color:var(--success-700)}.general-option-pill.selected.correct{border-color:var(--success-500);background:#47754b29;color:var(--success-700)}.review-essay-answer{margin-top:var(--space-2)}.review-essay-text{font-size:.85rem;line-height:1.7;color:var(--text-primary);background:#00000005;padding:var(--space-3) var(--space-4);border-radius:var(--radius);border:1px solid var(--border);white-space:pre-wrap;margin:var(--space-2) 0 0 0;max-height:200px;overflow-y:auto}.review-audio{width:100%;margin-top:var(--space-2);border-radius:var(--radius)}@media print{.sidebar,.top-bar,.mobile-nav-overlay,.mobile-menu-btn,.no-print,.results-nav,.results-actions,.status-banner,.detailed-answers{display:none!important}@page{size:A4;margin:0}*{-webkit-print-color-adjust:exact!important;print-color-adjust:exact!important;box-sizing:border-box}html,body{background:#fff!important;padding:0!important;margin:0!important;font-family:Segoe UI,Helvetica Neue,Arial,sans-serif;font-size:12px!important;line-height:1.4!important}.dashboard-layout{display:block!important}.main-content{margin-left:0!important;padding:0!important;width:100%!important}.page-content{padding:0!important}.results-page{padding:8mm 10mm!important;max-width:100%!important}.results-container{max-width:100%!important}.print-header{display:flex!important;align-items:center;gap:16px;padding:0 0 8px;border-bottom:2.5px solid var(--petrol);margin-bottom:8px}.print-logo{display:flex;align-items:center;flex-shrink:0}.print-logo-img{height:56px;width:auto}.print-header-text{flex:1}.print-header-text h1{font-size:1.3rem;font-weight:700;color:var(--ink);margin:0;letter-spacing:-.5px}.print-subtitle{font-size:.7rem;color:var(--petrol);margin:1px 0 0;font-weight:500;letter-spacing:.5px;text-transform:uppercase}.ielts-results-card{box-shadow:none!important;border:1px solid var(--gray-300);border-radius:6px!important;overflow:hidden}.ielts-results-header{display:grid!important;grid-template-columns:1fr 1fr;gap:4px 12px;padding:8px 14px!important;background:var(--gray-50)!important;border-bottom:1px solid var(--gray-200)}.candidate-info,.test-info{gap:2px!important}.info-row{font-size:.72rem!important;gap:4px!important}.info-row svg{color:var(--petrol)!important;width:12px!important;height:12px!important}.info-label{color:var(--gray-500)!important;font-size:.7rem;min-width:48px!important}.info-value{font-weight:600;color:var(--ink)!important}.ielts-test-title{padding:6px 14px!important;border-bottom:1px solid var(--gray-200)}.ielts-test-title h2{font-size:.92rem!important;color:var(--ink)!important}.status-pill{font-size:.6rem!important;padding:1px 6px!important}.status-pill.graded{background:var(--success-100)!important;color:var(--success-700)!important}.overall-band-section{padding:10px!important;background:#fff!important;border-bottom:1px solid var(--gray-200)}.overall-band-display{width:80px!important;height:80px!important;border-width:4px!important;box-shadow:none!important}.overall-band-display .band-number{font-size:1.75rem!important}.overall-band-display .band-label{font-size:.55rem!important;margin-top:1px!important}.band-level{font-size:.82rem!important;margin-top:4px!important}.cefr-level{margin-top:6px!important;max-width:100%!important}.cefr-badge{width:32px!important;height:32px!important;font-size:.75rem!important}.cefr-text{font-size:.7rem!important}.section-scores-enhanced{padding:8px 14px!important;border-bottom:1px solid var(--gray-200)}.section-title{font-size:.78rem!important;color:var(--ink)!important;margin-bottom:6px!important}.scores-grid{grid-template-columns:repeat(4,1fr)!important;gap:6px!important}.score-card{padding:6px!important;background:var(--gray-50)!important;border:1px solid var(--gray-200);border-radius:6px!important;flex-direction:row!important;gap:6px}.score-card:hover{transform:none!important;box-shadow:none!important}.score-card-icon{width:28px!important;height:28px!important;margin-bottom:0!important;flex-shrink:0}.score-card-icon svg{width:14px!important;height:14px!important}.score-card-content{text-align:left!important}.score-card-label{font-size:.62rem!important;margin-bottom:0!important}.score-card-band{font-size:1.1rem!important;line-height:1.1!important}.score-card-raw{font-size:.58rem!important;margin-top:0!important}.score-card-cefr{margin-top:4px!important;padding-top:4px!important;align-items:flex-start!important}.score-card-cefr-badge{width:18px!important;height:18px!important;font-size:.5rem!important}.score-card-cefr-text{font-size:.55rem!important}.answer-stats-section{padding:6px 14px!important;background:var(--gray-50)!important;border-bottom:1px solid var(--gray-200)}.answer-stats-grid{gap:6px!important}.answer-stat{padding:6px 8px!important;box-shadow:none!important;border:1px solid var(--gray-200);gap:6px!important}.answer-stat svg{width:14px!important;height:14px!important}.stat-label{font-size:.72rem!important}.stat-value{font-size:.85rem!important}.feedback-section{padding:8px 14px!important;border-bottom:1px solid var(--gray-200)}.feedback-section .feedback-content{background:var(--gray-50)!important;padding:8px 10px!important;font-size:.72rem!important;line-height:1.5!important;border-left:3px solid var(--petrol)}.band-scale-section{padding:6px 14px!important;border-bottom:1px solid var(--gray-200)}.band-scale-compact{gap:3px!important}.band-scale-item{min-width:auto!important;flex:1;padding:3px 4px!important;background:var(--gray-50)!important;border:1px solid var(--gray-200)}.band-scale-item.active{background:var(--petrol-tint)!important;border-color:var(--petrol)!important;box-shadow:0 0 0 1px var(--petrol)!important}.band-scale-item .band-num{font-size:.82rem!important}.band-scale-item .band-desc{font-size:.5rem!important}.print-footer{display:block!important;text-align:center;padding:6px 14px;font-size:.62rem;color:var(--gray-500);border-top:2px solid var(--petrol);margin-top:6px}.print-footer p{margin:1px 0}.ielts-results-card{page-break-inside:avoid}}@media(max-width:768px){.ielts-results-header{grid-template-columns:1fr}.scores-grid{grid-template-columns:repeat(2,1fr)}.ielts-test-title{flex-direction:column;gap:var(--space-2);text-align:center}.results-nav{flex-direction:column;gap:var(--space-3)}.overall-band-display{width:120px;height:120px}.overall-band-display .band-number{font-size:2.5rem}}@media(max-width:480px){.scores-grid,.answer-stats-grid{grid-template-columns:1fr}.band-scale-compact{flex-direction:column}.band-scale-item{flex-direction:row;justify-content:center;gap:var(--space-2)}}.asum{background:#fff;border:1px solid var(--gray-200);border-radius:14px;padding:20px 22px;margin:0 0 20px}.asum-title{margin:0 0 6px;font-size:1.15rem;color:var(--petrol)}.asum-score{margin:0;font-size:1.1rem;color:var(--gray-700, #3f3a33)}.asum-score strong{font-size:2rem;color:var(--petrol)}.asum-band{margin:6px 0 0;font-size:.9rem;color:var(--gray-500);display:flex;align-items:center;gap:8px;flex-wrap:wrap}.asum-tag{font-size:.7rem;font-weight:600;text-transform:uppercase;letter-spacing:.04em;padding:2px 8px;border-radius:999px;background:var(--gray-100);color:var(--gray-500)}.asum-info{display:inline-flex;color:var(--gray-500);cursor:help}.asum-families{margin-top:18px;padding-top:16px;border-top:1px solid var(--gray-200)}.asum-sub{margin:0 0 10px;font-size:.95rem;color:var(--petrol)}.asum-families ul{list-style:none;margin:0;padding:0;display:grid;gap:8px}.asum-row{display:grid;grid-template-columns:minmax(140px,220px) 1fr 52px;align-items:center;gap:12px;font-size:.9rem}.asum-bar{height:10px;border-radius:999px;background:var(--gray-100);overflow:hidden}.asum-bar-fill{display:block;height:100%;background:var(--petrol);border-radius:999px}.asum-count{text-align:right;font-variant-numeric:tabular-nums;color:var(--gray-500)}.asum-note{margin:12px 0 0;font-size:.8rem;color:var(--gray-500)}@media(max-width:560px){.asum-row{grid-template-columns:1fr 52px}.asum-label{grid-column:1 / -1}.asum-bar{grid-column:1}}.lpath{margin:0 0 var(--space-5, 20px)}.lpath ol{display:flex;gap:8px;list-style:none;margin:0;padding:0}.lpath-step{flex:1;display:flex;align-items:center;gap:10px;padding:10px 12px;border-radius:10px;background:#fff;border:1px solid var(--gray-200);color:var(--gray-500)}.lpath-dot{flex:none;width:26px;height:26px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;font-size:.8rem;font-weight:700;background:var(--gray-100);color:var(--gray-500)}.lpath-label{display:flex;flex-direction:column;font-size:.9rem;font-weight:600;line-height:1.25}.lpath-here{font-style:normal;font-size:.72rem;font-weight:600;color:var(--amber-text)}.lpath-step.done{color:var(--petrol)}.lpath-step.done .lpath-dot{background:var(--petrol);color:#fff}.lpath-step.current{border-color:var(--petrol);box-shadow:0 0 0 2px var(--petrol-tint);color:var(--petrol)}.lpath-step.current .lpath-dot{background:var(--amber-text);color:#fff}.lpath-more{display:block;margin:var(--space-4, 16px) auto 0;background:none;border:0;color:var(--petrol);font-weight:600;cursor:pointer;text-decoration:underline}@media(max-width:720px){.lpath ol{flex-direction:column}}.dash-help{margin:var(--space-6, 24px) 0 0;text-align:center;font-size:.9rem;color:var(--gray-500)}.dash-help a{color:var(--petrol);font-weight:600}.journey-global-card{margin-bottom:var(--space-6)}.journey-recommendation-card{margin-bottom:var(--space-6);border-left:3px solid var(--primary-500, var(--petrol))}.journey-recommendation-card p{color:var(--gray-700);line-height:1.6;margin-top:var(--space-2)}.journey-recommendation-card p+p{margin-top:var(--space-3)}.journey-global-content{display:flex;flex-direction:column;align-items:flex-start;gap:var(--space-3);margin-top:var(--space-4)}.journey-global-band{font-size:2.5rem;font-weight:700;line-height:1;display:flex;align-items:baseline;gap:var(--space-3)}.journey-global-band-label{font-size:.9rem;font-weight:500;color:var(--gray-500)}.journey-cefr{display:flex;align-items:center;gap:var(--space-3)}.journey-cefr-badge{display:inline-flex;align-items:center;justify-content:center;min-width:2.25rem;padding:var(--space-1) var(--space-2);border-radius:var(--radius-md);color:#fff;font-weight:700;font-size:.9rem}.journey-cefr-badge.small{min-width:1.75rem;font-size:.8rem}.journey-cefr-text{font-size:.9rem;color:var(--gray-700)}.journey-muted{font-size:.85rem;color:var(--gray-500)}.journey-practice-card{margin-bottom:var(--space-6)}.journey-streak{display:flex;align-items:center;gap:var(--space-3);margin-top:var(--space-3);font-size:1.1rem;font-weight:600;color:var(--gray-900)}.journey-mastery-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:var(--space-3);margin-top:var(--space-4)}.journey-mastery-item{display:flex;align-items:center;justify-content:space-between;gap:var(--space-2);padding:var(--space-2) var(--space-3);background:var(--gray-50);border-radius:var(--radius-lg);border:1px solid var(--gray-100)}.journey-mastery-label{display:flex;align-items:center;gap:var(--space-1);font-size:.85rem;font-weight:600;color:var(--gray-700)}.journey-mastery-badge{padding:2px var(--space-2);border-radius:var(--radius-md);font-size:.75rem;font-weight:700;color:#fff}.journey-skills-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:var(--space-4);margin-bottom:var(--space-6)}.journey-skill-card{display:flex;flex-direction:column;gap:var(--space-2)}.journey-skill-title{display:flex;align-items:center;gap:var(--space-2);font-size:.95rem;font-weight:600;color:var(--gray-900)}.journey-skill-band{font-size:1.75rem;font-weight:700;line-height:1}.journey-sparkline{margin-top:var(--space-2)}.journey-footer-link{text-align:center;padding:var(--space-4) 0}.journey-footer-link a{color:var(--primary-600, var(--petrol));font-weight:600;text-decoration:none}.journey-footer-link a:hover{text-decoration:underline}.journey-header-row{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--space-4);flex-wrap:wrap}.journey-goal-btn{display:inline-flex;align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-4);background:var(--primary-50);border:1px solid var(--primary-200);border-radius:var(--radius-md);color:var(--primary-700);font-weight:600;font-size:.9rem;text-decoration:none;white-space:nowrap}.journey-goal-btn:hover{background:var(--primary-100)}.goal-gauge{display:flex;flex-direction:column;gap:var(--space-2);margin-top:var(--space-2)}.goal-gauge-track{position:relative;height:10px;background:var(--gray-100);border-radius:var(--radius-full, 999px);overflow:visible}.goal-gauge-fill{height:100%;border-radius:var(--radius-full, 999px);transition:width .3s ease}.goal-gauge-marker{position:absolute;top:-3px;width:2px;height:16px;background:var(--gray-700);transform:translate(-1px)}.goal-gauge-labels{display:flex;align-items:baseline;gap:var(--space-1);font-size:.8rem;color:var(--gray-600)}.goal-gauge-current{font-weight:700;font-size:.95rem;color:var(--gray-900)}.goal-gauge-goal{color:var(--gray-500)}.goal-gauge-reached{margin-left:auto;color:var(--success-600, var(--success-500));font-weight:600}.journey-two-cols{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-6);margin:var(--space-6) 0}.journey-family-list,.journey-activity-list{list-style:none;margin:var(--space-3) 0 0;padding:0;display:grid;gap:var(--space-3)}.journey-family-list li{display:grid;grid-template-columns:9rem 1fr 3rem;align-items:center;gap:var(--space-3);font-size:.9rem}.journey-family-track{height:8px;background:var(--gray-200);border-radius:999px;overflow:hidden}.journey-family-track span{display:block;height:100%;background:var(--petrol);border-radius:999px}.journey-family-value{text-align:right;color:var(--gray-500)}.journey-activity-list li{display:grid;grid-template-columns:4rem 1fr auto;gap:var(--space-3);font-size:.9rem;align-items:baseline}.journey-activity-date,.journey-activity-status{color:var(--gray-500)}.journey-soon{margin-top:var(--space-6)}@media(max-width:720px){.journey-two-cols{grid-template-columns:1fr}.journey-family-list li{grid-template-columns:7rem 1fr 3rem}}.exercises-stats-card{margin-bottom:var(--space-6)}.exercise-timer{display:flex;align-items:center;gap:var(--space-2);font-size:1.1rem;font-weight:700;font-family:SF Mono,Monaco,monospace;color:var(--gray-700);background:var(--gray-100);padding:4px 12px;border-radius:var(--radius-full, 999px);flex-shrink:0}.exercise-timer.warning{color:var(--warning-700);background:var(--warning-50)}.exercise-timer.danger{color:var(--error-500);background:var(--error-50)}.exercise-stats-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:var(--space-4);margin-top:var(--space-4)}.exercise-stat-item{display:flex;flex-direction:column;gap:var(--space-1);padding:var(--space-3) var(--space-4);background:var(--gray-50);border-radius:var(--radius-lg);border:1px solid var(--gray-100)}.exercise-stat-label{font-size:.8rem;color:var(--gray-600);font-weight:600}.exercise-stat-value{font-size:1.4rem;font-weight:700;color:var(--gray-900)}.exercise-stat-meta{font-size:.75rem;color:var(--gray-500)}.exercise-filter-row{display:flex;flex-wrap:wrap;gap:var(--space-2);margin-bottom:var(--space-4)}.exercise-filter-btn{display:inline-flex;align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-4);background:#fff;border:1px solid var(--gray-200);border-radius:var(--radius-full, 999px);color:var(--gray-700);font-weight:600;font-size:.9rem;cursor:pointer}.exercise-filter-btn.subtype{font-weight:500;font-size:.85rem}.exercise-filter-btn.active{background:var(--primary-50);border-color:var(--primary-300, var(--primary-200));color:var(--primary-700)}.exercises-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:var(--space-4)}.exercise-card{display:flex;flex-direction:column;gap:var(--space-2)}.exercise-card-header{display:flex;align-items:center;justify-content:space-between;gap:var(--space-2)}.exercise-skill-badge{display:inline-flex;align-items:center;gap:var(--space-1);padding:2px var(--space-2);border-radius:var(--radius-md);font-size:.75rem;font-weight:600}.exercise-skill-badge.listening{background:var(--warning-50);color:var(--warning-700)}.exercise-skill-badge.reading{background:var(--petrol-tint);color:var(--petrol)}.exercise-skill-badge.writing{background:var(--primary-50);color:var(--amber-deep)}.exercise-skill-badge.speaking{background:var(--primary-50);color:var(--amber-text)}.exercise-subtype-label{font-size:.75rem;color:var(--gray-500)}.exercise-level-badge{padding:2px var(--space-2);border-radius:var(--radius-md);font-size:.7rem;font-weight:700;background:var(--gray-100);color:var(--gray-600)}.exercise-goal-banner{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-3) var(--space-4);background:var(--primary-50);border:1px solid var(--primary-200, var(--primary-100));border-radius:var(--radius-lg);margin-bottom:var(--space-4);color:var(--primary-700, var(--gray-700))}.exercise-goal-banner p{margin:0;font-size:.9rem;flex:1}.exercise-goal-banner.muted{background:var(--gray-50);border-color:var(--gray-200);color:var(--gray-600);justify-content:space-between}.exercise-goal-banner-link{display:inline-flex;align-items:center;gap:4px;background:none;border:none;padding:0;font:inherit;font-weight:700;text-decoration:underline;color:inherit;cursor:pointer;white-space:nowrap}.exercise-card-title{font-size:1.05rem;font-weight:700;color:var(--gray-900)}.exercise-card-desc{font-size:.85rem;color:var(--gray-600)}.exercise-card-meta{font-size:.8rem;color:var(--gray-500)}.exercise-start-btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);margin-top:auto}.exercise-taking-page,.exercise-result-page{max-width:760px;margin:0 auto}.exercise-question-block{margin-bottom:var(--space-6);padding-bottom:var(--space-6);border-bottom:1px solid var(--gray-100)}.exercise-question-block:last-child{border-bottom:none}.exercise-question-number{font-size:.85rem;font-weight:700;color:var(--gray-500);margin-bottom:var(--space-2)}.exercise-question-block .question-text{font-size:1rem;font-weight:500;color:var(--gray-900);margin-bottom:var(--space-3);line-height:1.6}.exercise-question-block .question-instructions{font-size:.85rem;color:var(--gray-500);font-style:italic;margin-bottom:var(--space-4)}.exercise-completion-group{display:flex;flex-direction:column;gap:var(--space-3)}.exercise-completion-group-image{border:1.5px solid var(--gray-200);border-radius:var(--radius-lg);overflow:hidden;background:#fff}.exercise-completion-group-image img{width:100%;height:auto;display:block}.exercise-completion-item{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-3) 0;border-bottom:1px solid var(--gray-100)}.exercise-completion-item:last-child{border-bottom:none}.exercise-completion-item-number{font-size:.8rem;font-weight:700;color:var(--gray-500);flex-shrink:0}.exercise-completion-item-label{flex:1;font-size:.92rem;color:var(--gray-700)}.exercise-completion-item-input{width:220px;min-width:160px;flex-shrink:0;padding:8px 12px;border-radius:var(--radius-md);border:1.5px solid var(--gray-300);font-size:.9rem;background:#fff;color:var(--gray-800)}.exercise-completion-item-input:focus{outline:none;border-color:var(--primary-500);box-shadow:0 0 0 2px #0e4a571a}@media(max-width:600px){.exercise-completion-item{flex-direction:column;align-items:flex-start;gap:var(--space-2)}.exercise-completion-item-input{width:100%}}.exercise-result-summary{text-align:center;padding:var(--space-6) 0}.exercise-result-score{font-size:3rem;font-weight:700;color:var(--gray-900)}.exercise-result-score-label{font-size:.95rem;color:var(--gray-500);margin-top:var(--space-2)}.exercise-result-encouragement{font-size:1rem;font-weight:500;color:var(--gray-700);margin-top:var(--space-4);max-width:480px;margin-left:auto;margin-right:auto}.exercise-criteria-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:var(--space-3);margin-top:var(--space-5);text-align:left}.exercise-criteria-item{display:flex;flex-direction:column;gap:var(--space-1);padding:var(--space-3);background:var(--gray-50);border-radius:var(--radius-lg);border:1px solid var(--gray-100)}.exercise-criteria-label{font-size:.8rem;color:var(--gray-600);font-weight:600}.exercise-criteria-value{font-size:1.2rem;font-weight:700;color:var(--gray-900)}.exercise-review-item{padding:var(--space-4);border-radius:var(--radius-lg);margin-bottom:var(--space-3);border:1px solid var(--gray-100)}.exercise-review-item.correct{background:var(--success-50);border-color:var(--success-200)}.exercise-review-item.incorrect{background:var(--error-50);border-color:var(--error-200)}.exercise-review-answer-row{display:flex;gap:var(--space-4);margin-top:var(--space-2);font-size:.85rem;flex-wrap:wrap}.exercise-review-answer-label{color:var(--gray-500);margin-right:var(--space-1)}.exercise-history-pagination{display:flex;align-items:center;justify-content:center;gap:var(--space-4);padding:var(--space-4) 0}.exercise-history-pagination button{padding:var(--space-2) var(--space-4);background:#fff;border:1px solid var(--gray-200);border-radius:var(--radius-md);font-size:.85rem;color:var(--gray-700);cursor:pointer}.exercise-history-pagination button:hover:not(:disabled){background:var(--gray-50);border-color:var(--gray-300)}.exercise-history-pagination button:disabled{opacity:.5;cursor:not-allowed}.exercise-history-pagination span{font-size:.85rem;color:var(--gray-500)}.exercise-count-row{display:flex;align-items:center;gap:var(--space-3, 12px);margin:var(--space-3, 12px) 0;font-size:.9rem;color:var(--gray-500)}.exercise-bar{position:sticky;top:0;z-index:60;display:flex;align-items:center;justify-content:space-between;gap:var(--space-3, 12px);padding:10px 0;margin-bottom:var(--space-3, 12px);background:var(--gray-100);border-bottom:1px solid var(--gray-200)}.exercise-bar-progress{font-size:.9rem;color:var(--gray-500)}@media(max-width:480px){.exercise-bar-progress{display:none}}.loop-bar{background:var(--white, #fff);border:1px solid var(--gray-200);border-radius:var(--radius-md, 12px);padding:var(--space-3) var(--space-4);margin-bottom:var(--space-4)}.loop-bar-chips,.loop-bar-subs{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:6px}.loop-bar-chip{display:inline-flex;align-items:center;gap:4px;font-size:.8rem;padding:3px 10px;border-radius:999px;border:1px solid var(--gray-200);color:var(--gray-600)}.loop-bar-chip.done{background:var(--success-50, #eaf6ee);border-color:var(--success-500);color:var(--success-700, #1f6b3a)}.loop-bar-chip.teacher{border-color:var(--warning-500)}.loop-bar-chip.current{background:var(--petrol-tint);border-color:var(--petrol);color:var(--petrol);font-weight:600}.loop-bar-subs{margin-top:var(--space-3);gap:0;align-items:center}.loop-bar-sub{display:inline-flex;align-items:center;gap:6px;font-size:.85rem;color:var(--gray-600)}.loop-bar-sub+.loop-bar-sub:before{content:"";width:26px;height:0;border-top:2px solid var(--gray-200);margin-inline:8px}.loop-bar-sub.optional+.loop-bar-sub:before,.loop-bar-sub+.loop-bar-sub.optional:before{border-top-style:dashed}.loop-bar-sub.done{color:var(--gray-800, #333)}.loop-bar-sub.current{color:var(--petrol);font-weight:600}.loop-bar-sub.optional{color:var(--gray-500, #888);font-style:italic}.loop-bar-dot{width:14px;height:14px;border-radius:50%;border:2px solid var(--gray-300, #bbb);display:inline-flex;align-items:center;justify-content:center;flex:none;color:#fff}.loop-bar-sub.optional .loop-bar-dot{border-style:dashed}.loop-bar-sub.done .loop-bar-dot{background:var(--success-500);border-color:var(--success-500)}.loop-bar-sub.current .loop-bar-dot{border-color:var(--petrol);box-shadow:0 0 0 3px var(--petrol-tint)}.loop-bar-narrow{display:none}.loop-bar-summary{display:flex;align-items:center;gap:var(--space-3);width:100%;background:none;border:none;padding:0;text-align:start;cursor:pointer;color:inherit;font:inherit}.loop-bar-ring{width:38px;height:38px;border-radius:50%;border:3px solid var(--gray-200);border-top-color:var(--petrol);border-inline-end-color:var(--petrol);display:inline-flex;align-items:center;justify-content:center;font-size:.7rem;font-weight:600;flex:none}.loop-bar-summary-text{display:flex;flex-direction:column;flex:1;min-width:0}.loop-bar-summary-text small{color:var(--gray-600)}.loop-bar-toggle{display:inline-flex;align-items:center;gap:2px;font-size:.8rem;color:var(--petrol);flex:none}.loop-bar-open{margin-top:var(--space-3);border-top:1px solid var(--gray-200);padding-top:var(--space-3);display:flex;flex-direction:column}@media(max-width:720px){.loop-bar-wide{display:none}.loop-bar-narrow{display:block}}.admin-page{max-width:1200px;padding:var(--space-4)}@media(max-width:768px){.admin-page{padding:var(--space-3)}}@media(max-width:480px){.admin-page{padding:var(--space-2)}}.page-header-content{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--space-4)}@media(max-width:768px){.page-header-content{flex-direction:column;align-items:stretch;gap:var(--space-3)}}.btn-create{display:flex;align-items:center;gap:var(--space-2);padding:var(--space-3) var(--space-5);background:var(--primary-600);color:#fff;border:none;border-radius:var(--radius-lg);font-size:.9rem;font-weight:600;cursor:pointer;transition:all var(--transition-fast);flex-shrink:0}.btn-create:hover{background:var(--primary-700);transform:translateY(-1px)}.stats-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:var(--space-4);margin-bottom:var(--space-6);padding:var(--space-6) 0}@media(max-width:768px){.stats-grid{grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:var(--space-3);padding:var(--space-4) 0}}@media(max-width:480px){.stats-grid{grid-template-columns:1fr;gap:var(--space-2)}}.stat-card{background:#fff;border-radius:var(--radius-xl);padding:var(--space-5);display:flex;align-items:center;gap:var(--space-4);box-shadow:var(--shadow-sm);border:1px solid var(--gray-100)}.stat-content{display:flex;flex-direction:row;gap:var(--space-1)}.stat-icon{width:48px;height:48px;border-radius:var(--radius-lg);display:flex;align-items:center;justify-content:center;font-size:1.5rem;flex-shrink:0}.stat-icon.reading{background:var(--petrol-tint)}.stat-icon.writing{background:var(--success-100)}.stat-icon.listening{background:var(--warning-50)}.stat-icon.speaking{background:var(--error-50)}.stat-icon.primary{background:var(--primary-50)}.stat-icon.success{background:var(--success-50)}.stat-icon.info{background:var(--petrol-tint)}.stat-icon.warning{background:var(--warning-50)}.stat-info{display:flex;flex-direction:column}.stat-value{font-size:1.5rem;font-weight:700;color:var(--gray-900);line-height:1}.stat-label{font-size:.8rem;color:var(--gray-500);margin-top:var(--space-1)}.admin-filters{padding:var(--space-4);margin-bottom:var(--space-6)}.filters-form{display:flex;gap:var(--space-3);align-items:center;flex-wrap:wrap}@media(max-width:768px){.filters-form{flex-direction:column;align-items:stretch;gap:var(--space-2)}}.filter-group{display:flex;align-items:center;gap:var(--space-2)}.filter-group label{font-size:.85rem;font-weight:500;color:var(--gray-600)}.filter-select{padding:var(--space-2) var(--space-3);border:1px solid var(--gray-200);border-radius:var(--radius-md);background:#fff;font-size:.875rem;color:var(--gray-700);cursor:pointer;transition:all var(--transition-fast)}.filter-select:hover{border-color:var(--gray-300)}.filter-select:focus{outline:none;border-color:var(--primary-500);box-shadow:0 0 0 2px var(--primary-100)}.role-badges-cell{display:flex;flex-wrap:wrap;gap:var(--space-1)}.search-input-wrapper{display:flex;align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-4);background:var(--gray-50);border:1px solid var(--gray-200);border-radius:var(--radius-lg);flex:1;min-width:240px}@media(max-width:768px){.search-input-wrapper{min-width:unset;width:100%}}.search-input-wrapper svg{color:var(--gray-400);flex-shrink:0}.search-input{border:none;background:none;outline:none;flex:1;font-size:.9rem;color:var(--gray-700)}.search-input::placeholder{color:var(--gray-400)}.filter-select{padding:var(--space-2) var(--space-4);background:var(--gray-50);border:1px solid var(--gray-200);border-radius:var(--radius-lg);font-size:.9rem;color:var(--gray-700);min-width:140px;cursor:pointer}.filter-btn{padding:var(--space-2) var(--space-5);background:var(--gray-900);color:#fff;border:none;border-radius:var(--radius-lg);font-size:.9rem;font-weight:500;cursor:pointer;transition:all var(--transition-fast)}.filter-btn:hover{background:var(--gray-800)}.admin-table-wrapper{overflow-x:auto}.admin-table-wrapper .card-header{border-bottom:none;padding-bottom:0}.admin-table{width:100%;border-collapse:collapse}.admin-table th,.admin-table td{padding:var(--space-4);text-align:left;border-bottom:1px solid var(--gray-100)}.admin-table th{font-size:.75rem;font-weight:600;color:var(--gray-500);text-transform:uppercase;letter-spacing:.5px;background:var(--gray-50)}.admin-table td{font-size:.9rem;color:var(--gray-700)}.admin-table tbody tr:hover{background:var(--gray-50)}.admin-table th.col-actions,.admin-table td.col-actions{position:sticky;right:0;background:#fff;box-shadow:-1px 0 0 var(--gray-100)}.admin-table th.col-actions,.admin-table tbody tr:hover td.col-actions{background:var(--gray-50)}.admin-table .type-more{color:var(--gray-500);font-weight:600}.user-cell{display:flex;align-items:center;gap:var(--space-3)}.user-avatar-small{width:32px;height:32px;border-radius:50%;background:var(--primary-100);color:var(--primary-600);display:flex;align-items:center;justify-content:center;font-size:.7rem;font-weight:600;flex-shrink:0}.test-title-cell{font-weight:500;color:var(--gray-900)}.role-badge,.type-badge{display:inline-block;padding:2px 8px;border-radius:var(--radius-sm);font-size:.7rem;font-weight:600;text-transform:uppercase;letter-spacing:.3px}.badge-admin{background:var(--error-50);color:var(--error-500)}.badge-student{background:var(--success-100);color:var(--success-500)}.badge-reading{background:var(--petrol-tint);color:var(--petrol)}.badge-writing{background:var(--success-100);color:var(--success-500)}.badge-listening{background:var(--warning-50);color:var(--warning-500)}.badge-speaking{background:var(--error-50);color:var(--error-500)}.status-badge{display:inline-block;padding:2px 8px;border-radius:var(--radius-sm);font-size:.75rem;font-weight:500}.status-badge.active,.status-badge.published{background:var(--success-50);color:var(--success-600)}.status-badge.inactive{background:var(--gray-100);color:var(--gray-500)}.status-badge.draft{background:var(--warning-50);color:var(--warning-600)}.status-badge.info{background:var(--petrol-tint);color:var(--petrol)}.status-badge.rejected{background:var(--error-50);color:var(--error-500)}.status-badge.pending-reveal{background:var(--warning-50);color:var(--warning-600)}.status-badge.revealed{background:var(--success-50);color:var(--success-600)}.score-badge{display:inline-block;padding:2px 10px;background:var(--primary-50);color:var(--primary-600);border-radius:var(--radius-md);font-size:.85rem;font-weight:600}.score-na{color:var(--gray-400)}.action-buttons{display:flex;gap:var(--space-2)}.action-btn{width:32px;height:32px;border-radius:var(--radius-md);border:1px solid var(--gray-200);background:#fff;color:var(--gray-600);display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all var(--transition-fast)}.action-btn:hover{background:var(--gray-50);border-color:var(--gray-300);color:var(--gray-900)}.action-btn.active{background:var(--success-50);border-color:var(--success-200, var(--success-100));color:var(--success-600)}.action-btn.danger:hover{background:var(--error-50);border-color:var(--error-200);color:var(--error-500)}.pagination{display:flex;align-items:center;justify-content:center;gap:var(--space-4);padding:var(--space-4);border-top:1px solid var(--gray-100)}.pagination button{padding:var(--space-2) var(--space-4);background:#fff;border:1px solid var(--gray-200);border-radius:var(--radius-md);font-size:.85rem;color:var(--gray-700);cursor:pointer;transition:all var(--transition-fast)}.pagination button:hover:not(:disabled){background:var(--gray-50);border-color:var(--gray-300)}.pagination button:disabled{opacity:.5;cursor:not-allowed}.pagination span{font-size:.85rem;color:var(--gray-500)}.loading-state,.empty-state,.error-state{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:var(--space-12);text-align:center}.loading-state .spinner{width:32px;height:32px;border:3px solid var(--gray-200);border-top-color:var(--primary-600);border-radius:50%;animation:spin .8s linear infinite;margin-bottom:var(--space-4)}.loading-state p,.empty-state p,.error-state p{color:var(--gray-500);font-size:.9rem}.error-state button{margin-top:var(--space-4);padding:var(--space-2) var(--space-4);background:var(--primary-600);color:#fff;border:none;border-radius:var(--radius-md);cursor:pointer}.create-modal{max-width:450px}.create-modal h2{margin-bottom:var(--space-3)}.create-modal>p{color:var(--gray-500);font-size:.9rem;line-height:1.6;margin-bottom:var(--space-6)}.create-modal .modal-actions{justify-content:flex-end}@media(max-width:768px){.page-header-content{flex-direction:column}.btn-create{width:100%;justify-content:center}.filters-form{flex-direction:column}.search-input-wrapper,.filter-select,.filter-btn{width:100%}.stats-grid{grid-template-columns:repeat(2,1fr)}.admin-table-wrapper{overflow-x:scroll;-webkit-overflow-scrolling:touch}.admin-table{min-width:600px}.admin-table th,.admin-table td{padding:var(--space-2) var(--space-3);font-size:.8rem}.user-cell{gap:var(--space-2)}.user-avatar-small{width:24px;height:24px;font-size:.6rem}.action-buttons{gap:var(--space-1)}.action-btn{width:28px;height:28px}.pagination{flex-direction:column;gap:var(--space-2)}.pagination button{min-width:120px}}@media(max-width:480px){.stats-grid{grid-template-columns:1fr}.admin-table{min-width:500px}.stat-card{padding:var(--space-3);gap:var(--space-3)}.stat-icon{width:36px;height:36px;font-size:1.2rem}.stat-value{font-size:1.2rem}}.test-editor{animation:fadeIn .3s ease-out}@keyframes fadeIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.test-editor .page-header{display:flex;justify-content:space-between;align-items:flex-start;flex-wrap:wrap;gap:var(--space-4);margin-bottom:var(--space-6)}@media(max-width:768px){.test-editor .page-header{flex-direction:column;align-items:stretch;gap:var(--space-3)}.test-editor .header-actions{justify-content:stretch}.test-editor .header-actions button,.test-editor .header-actions .btn-primary,.test-editor .header-actions .btn-secondary{flex:1}}.test-editor .page-header-left{display:flex;flex-direction:column;gap:var(--space-2)}.test-editor .page-title-row{display:flex;align-items:center;gap:var(--space-3);flex-wrap:wrap}.test-editor .page-title-row h1{margin:0}.test-editor .header-actions{display:flex;gap:var(--space-3);flex-wrap:wrap}.back-link{display:inline-flex;align-items:center;gap:var(--space-2);color:var(--primary-600);text-decoration:none;font-size:.9rem;font-weight:500;padding:var(--space-2) 0;transition:all var(--transition-fast)}.back-link:hover{color:var(--primary-700);gap:var(--space-3)}.back-link .back-icon{transition:transform var(--transition-fast)}.back-link:hover .back-icon{transform:translate(-3px)}.status-badge{display:inline-flex;align-items:center;gap:var(--space-1);padding:var(--space-1) var(--space-3);border-radius:var(--radius-full);font-size:.8rem;font-weight:600;text-transform:capitalize}.status-badge.draft{background:var(--warning-50);color:var(--warning-700);border:1px solid var(--warning-200)}.status-badge.published{background:var(--success-50);color:var(--success-700);border:1px solid var(--success-200)}.status-badge.archived{background:var(--gray-100);color:var(--gray-600);border:1px solid var(--gray-200)}.btn-success{display:inline-flex;align-items:center;gap:var(--space-2);padding:var(--space-3) var(--space-5);background:var(--success-500);color:#fff;border:none;border-radius:var(--radius-lg);font-size:.9rem;font-weight:600;cursor:pointer;transition:all var(--transition-fast);box-shadow:0 2px 4px #47754b33}.btn-success:hover{background:linear-gradient(135deg,var(--success-500),var(--success-700));transform:translateY(-1px);box-shadow:0 4px 8px #47754b4d}.btn-primary{display:inline-flex;align-items:center;gap:var(--space-2);padding:var(--space-3) var(--space-5);background:var(--primary-500);color:#fff;border:none;border-radius:var(--radius-lg);font-size:.9rem;font-weight:500;cursor:pointer;transition:background var(--transition-fast)}.btn-primary:hover:not(:disabled){background:var(--primary-600)}.btn-primary:disabled{opacity:.7;cursor:not-allowed;transform:none}.btn-secondary{display:inline-flex;align-items:center;gap:var(--space-2);padding:var(--space-3) var(--space-5);background:#fff;color:var(--gray-700);border:1px solid var(--gray-300);border-radius:var(--radius-lg);font-size:.9rem;font-weight:600;cursor:pointer;transition:all var(--transition-fast)}.btn-secondary:hover{background:var(--gray-50);border-color:var(--gray-400)}.btn-cancel{display:inline-flex;align-items:center;gap:var(--space-2);padding:var(--space-3) var(--space-5);background:transparent;color:var(--gray-600);border:1px solid var(--gray-300);border-radius:var(--radius-lg);font-size:.9rem;font-weight:500;cursor:pointer;transition:all var(--transition-fast)}.btn-cancel:hover{background:var(--gray-100);color:var(--gray-700)}.settings-card .card-header{margin-bottom:var(--space-5)}.settings-card .card-title-row{display:flex;align-items:center;gap:var(--space-2)}.settings-card .card-icon{font-size:1.25rem}.settings-card .card-subtitle{display:block;font-size:.85rem;color:var(--gray-500);margin-top:var(--space-1)}.form-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:var(--space-4)}@media(max-width:768px){.form-grid{grid-template-columns:1fr;gap:var(--space-3)}}.form-group{display:flex;flex-direction:column;gap:var(--space-2)}.form-group.full-width{grid-column:1 / -1}.form-group label{font-size:.85rem;font-weight:600;color:var(--gray-700)}.form-group input,.form-group select,.form-group textarea{padding:var(--space-3) var(--space-4);border:1px solid var(--gray-300);border-radius:var(--radius-lg);font-size:.9rem;transition:all var(--transition-fast);background:#fff}.form-group input:hover,.form-group select:hover,.form-group textarea:hover{border-color:var(--gray-400)}.form-group input:focus,.form-group select:focus,.form-group textarea:focus{outline:none;border-color:var(--primary-500);box-shadow:0 0 0 3px #0e4a571a}.form-actions{display:flex;gap:var(--space-3);margin-top:var(--space-5);justify-content:flex-end}@media(max-width:480px){.form-actions{flex-direction:column-reverse;gap:var(--space-2)}.form-actions .btn-secondary,.form-actions .btn-primary{width:100%;justify-content:center}}.form-header{margin-bottom:var(--space-4)}.form-header h3{font-size:1.1rem;font-weight:600;color:var(--gray-800);margin-bottom:var(--space-1)}.form-subtitle{font-size:.85rem;color:var(--gray-500)}.section-tabs-container{margin-bottom:var(--space-5)}.section-tabs{display:flex;gap:var(--space-3);overflow-x:auto;padding:var(--space-2) 0;-webkit-overflow-scrolling:touch}.section-tabs::-webkit-scrollbar{height:5px}.section-tabs::-webkit-scrollbar-track{background:var(--gray-100);border-radius:2px}.section-tabs::-webkit-scrollbar-thumb{background:var(--gray-300);border-radius:2px}.section-tab{display:flex;flex-direction:column;align-items:center;gap:var(--space-2);padding:var(--space-4) var(--space-5);background:#fff;border:2px solid var(--gray-200);border-radius:var(--radius-xl);font-size:.85rem;font-weight:500;color:var(--gray-600);cursor:pointer;white-space:nowrap;transition:all var(--transition-fast);min-width:140px}@media(max-width:768px){.section-tab{min-width:120px;padding:var(--space-3) var(--space-4);gap:var(--space-1)}.section-tab .tab-icon{font-size:1.2rem}.section-tab .tab-label{font-size:.8rem}}@media(max-width:480px){.section-tab{min-width:100px;padding:var(--space-2) var(--space-3)}}.section-tab:hover{background:var(--gray-50);border-color:var(--gray-300);transform:translateY(-2px)}.section-tab.active{background:linear-gradient(135deg,var(--primary-500),var(--primary-600));color:#fff;border-color:var(--primary-600);box-shadow:0 4px 12px #0e4a574d}.section-tab .tab-icon{font-size:1.5rem}.section-tab .tab-label{font-weight:600;font-size:.9rem}.section-tab .tab-stats{display:flex;gap:var(--space-2)}.section-tab .stat-badge{font-size:.7rem;padding:2px 6px;border-radius:var(--radius-full);background:#0000001a}.section-tab.active .stat-badge{background:#fff3}.sections-card{animation:slideUp .3s ease-out}@keyframes slideUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.sections-card .section-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:var(--space-5);padding-bottom:var(--space-4);border-bottom:1px solid var(--gray-100);flex-wrap:wrap;gap:var(--space-3)}@media(max-width:768px){.sections-card .section-header{flex-direction:column;align-items:stretch;gap:var(--space-2)}}.sections-card .section-header-left{display:flex;flex-direction:column;gap:var(--space-1)}.sections-card .section-description{font-size:.85rem;color:var(--gray-500);margin:0}.btn-add-section{display:inline-flex;align-items:center;gap:var(--space-2);padding:var(--space-3) var(--space-4);background:#fff;color:var(--primary-600);border:2px dashed var(--primary-300);border-radius:var(--radius-lg);font-size:.9rem;font-weight:600;cursor:pointer;transition:all var(--transition-fast)}.btn-add-section:hover{background:var(--primary-50);border-color:var(--primary-500);border-style:solid}.btn-icon-left{font-size:.8rem}.empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:var(--space-10) var(--space-6);background:var(--gray-50);border:2px dashed var(--gray-200);border-radius:var(--radius-xl);text-align:center}.empty-state .empty-icon{font-size:3rem;margin-bottom:var(--space-4);opacity:.6}.empty-state h3{font-size:1.1rem;font-weight:600;color:var(--gray-700);margin-bottom:var(--space-2)}.empty-state p{font-size:.9rem;color:var(--gray-500);margin:0}.sections-list{display:flex;flex-direction:column;gap:var(--space-4)}.section-item{background:#fff;border-radius:var(--radius-xl);padding:var(--space-5);border:1px solid var(--gray-200);transition:all var(--transition-fast);box-shadow:0 1px 3px #0000000d}.section-item:hover{border-color:var(--gray-300);box-shadow:0 4px 12px #00000014}.section-item-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--space-4);gap:var(--space-3);flex-wrap:wrap}.section-item-title{display:flex;align-items:center;gap:var(--space-3)}.section-number{width:32px;height:32px;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,var(--primary-500),var(--primary-600));color:#fff;border-radius:var(--radius-full);font-size:.85rem;font-weight:700;flex-shrink:0}.section-title-info h3{font-size:1rem;font-weight:600;color:var(--gray-900);margin:0 0 var(--space-1) 0}.question-count-badge{font-size:.75rem;color:var(--gray-500);background:var(--gray-100);padding:2px 8px;border-radius:var(--radius-full)}.section-item-actions{display:flex;gap:var(--space-2)}.btn-action{display:inline-flex;align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-3);background:#fff;border:1px solid var(--gray-200);border-radius:var(--radius-lg);font-size:.85rem;font-weight:500;cursor:pointer;transition:all var(--transition-fast);color:var(--gray-600)}.btn-action:hover{background:var(--gray-50);border-color:var(--gray-300)}.btn-action.add{color:var(--primary-600);border-color:var(--primary-200)}.btn-action.add:hover{background:var(--primary-50);border-color:var(--primary-400)}.btn-action.danger:hover{background:var(--error-50);border-color:var(--error-200);color:var(--error-500)}.btn-action-text{display:none}@media(min-width:640px){.btn-action-text{display:inline}}.section-instructions-box{background:var(--gray-50);border-radius:var(--radius-lg);padding:var(--space-3) var(--space-4);margin-bottom:var(--space-4);border-left:3px solid var(--primary-400)}.section-instructions-box .instructions-label{font-size:.75rem;font-weight:600;color:var(--gray-500);text-transform:uppercase;letter-spacing:.5px;display:block;margin-bottom:var(--space-1)}.section-instructions-box p{font-size:.85rem;color:var(--gray-700);margin:0;line-height:1.5}.edit-section-meta-form{background:var(--gray-50);border:1px solid var(--gray-200);border-radius:var(--radius-lg);padding:var(--space-4);margin-bottom:var(--space-4)}.edit-section-meta-form .form-actions{margin-top:var(--space-4)}.section-image-block{margin-bottom:var(--space-4)}.section-image-preview{display:flex;align-items:flex-start;gap:var(--space-3);padding:var(--space-3);background:var(--gray-50);border-radius:var(--radius-lg);border:1px solid var(--gray-200)}.section-image-thumb{max-width:240px;max-height:160px;border-radius:var(--radius-md);object-fit:contain;border:1px solid var(--gray-200)}.section-image-remove{flex-shrink:0}.section-image-upload-label{display:inline-flex;align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-3);font-size:.8rem;font-weight:500;color:var(--gray-600);background:var(--gray-50);border:1px dashed var(--gray-300);border-radius:var(--radius-md);cursor:pointer;transition:all var(--transition-fast)}.section-image-upload-label:hover{color:var(--primary-600);border-color:var(--primary-400);background:var(--primary-50)}.section-question-image-hint{display:flex;align-items:center;gap:var(--space-2);margin-top:var(--space-2);font-size:.8rem;color:var(--gray-500)}.questions-list{display:flex;flex-direction:column;gap:var(--space-2)}.question-item-compact{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-3) var(--space-4);background:var(--gray-50);border-radius:var(--radius-lg);font-size:.85rem;transition:all var(--transition-fast);border:1px solid transparent}.question-item-compact:hover{background:#fff;border-color:var(--gray-200)}.q-number{font-weight:700;color:var(--primary-600);min-width:36px;height:24px;display:flex;align-items:center;justify-content:center;background:var(--primary-50);border-radius:var(--radius-md);font-size:.8rem}.q-content{flex:1;display:flex;flex-direction:column;gap:var(--space-1);min-width:0}.q-text{color:var(--gray-700);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:500}.q-type{font-size:.7rem;padding:2px 8px;background:var(--gray-200);color:var(--gray-600);border-radius:var(--radius-full);text-transform:capitalize;width:fit-content}.q-actions{display:flex;gap:var(--space-1);opacity:0;transition:opacity var(--transition-fast)}.question-item-compact:hover .q-actions{opacity:1}.btn-icon-sm{width:28px;height:28px;border:none;background:#fff;border-radius:var(--radius-md);cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:.85rem;transition:all var(--transition-fast);border:1px solid var(--gray-200)}.btn-icon-sm:hover{background:var(--gray-100)}.btn-icon-sm.edit:hover{background:var(--primary-50);border-color:var(--primary-300)}.btn-icon-sm.danger:hover{background:var(--error-50);border-color:var(--error-200);color:var(--error-500)}.no-questions{display:flex;align-items:center;justify-content:center;gap:var(--space-2);font-size:.85rem;color:var(--gray-400);padding:var(--space-4);background:var(--gray-50);border-radius:var(--radius-lg);border:1px dashed var(--gray-200)}.add-section-form{margin-top:var(--space-6);padding:var(--space-5);background:var(--gray-50);border-radius:var(--radius-xl);border:1px solid var(--gray-200)}.btn-icon{width:32px;height:32px;border:none;background:#fff;border-radius:var(--radius-md);cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:1rem;transition:all var(--transition-fast)}.btn-icon:hover{background:var(--gray-100)}.btn-icon.danger:hover{background:var(--error-50)}.btn-icon.small{width:24px;height:24px;font-size:.9rem}.modal-overlay{position:fixed;inset:0;background:#0009;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;z-index:1000;padding:var(--space-4);animation:fadeIn .2s ease-out}@media(max-width:768px){.modal-overlay{padding:var(--space-3);align-items:flex-start;padding-top:var(--space-8)}}@media(max-width:480px){.modal-overlay{padding:var(--space-2);padding-top:var(--space-6)}}.modal-content{background:#fff;border-radius:var(--radius-2xl);padding:var(--space-6);max-width:500px;width:100%;max-height:90vh;overflow-y:auto;animation:slideUp .3s ease-out;box-shadow:0 20px 60px #0000004d}@media(max-width:768px){.modal-content{padding:var(--space-5);max-height:95vh;border-radius:var(--radius-xl)}}@media(max-width:480px){.modal-content{padding:var(--space-4);max-width:100%;border-radius:var(--radius-lg);margin:0}}.modal-content.large{max-width:700px}.modal-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--space-5);padding-bottom:var(--space-4);border-bottom:1px solid var(--gray-100)}.modal-header h2{font-size:1.25rem;font-weight:700;color:var(--gray-900);margin:0;display:flex;align-items:center;gap:var(--space-2)}.modal-close-btn{width:36px;height:36px;border:none;background:var(--gray-100);border-radius:var(--radius-full);cursor:pointer;font-size:1.5rem;color:var(--gray-500);display:flex;align-items:center;justify-content:center;transition:all var(--transition-fast);line-height:1}.modal-close-btn:hover{background:var(--gray-200);color:var(--gray-700)}.modal-content h2:not(.modal-header h2){font-size:1.25rem;font-weight:700;color:var(--gray-900);margin-bottom:var(--space-5)}.modal-actions{display:flex;gap:var(--space-3);margin-top:var(--space-6);justify-content:flex-end;padding-top:var(--space-4);border-top:1px solid var(--gray-100)}@media(max-width:480px){.modal-actions{flex-direction:column-reverse;gap:var(--space-2)}.modal-actions .btn-secondary,.modal-actions .btn-primary{width:100%;justify-content:center}}.qe-modal{max-width:740px;padding:0;display:flex;flex-direction:column;overflow:hidden}.qe-modal>.form-grid,.qe-modal>.qe-section{padding-left:var(--space-6);padding-right:var(--space-6)}.qe-header{background:linear-gradient(135deg,var(--primary-600),var(--primary-700));padding:var(--space-5) var(--space-6)!important;margin-bottom:0!important;border-bottom:none!important;border-radius:var(--radius-2xl) var(--radius-2xl) 0 0}.qe-header h2{color:#fff!important;font-size:1.15rem!important}.qe-header h2 svg{color:#ffffffd9}.qe-header .modal-close-btn{background:#ffffff26;color:#ffffffe6}.qe-header .modal-close-btn:hover{background:#ffffff40;color:#fff}.qe-modal>.form-grid:first-of-type{padding-top:var(--space-5)}.qe-modal{max-height:90vh;overflow-y:auto}.qe-section{padding-top:var(--space-4);padding-bottom:var(--space-1)}.qe-section-label{font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:var(--primary-500);position:relative;padding-bottom:var(--space-2)}.qe-section-label:after{content:"";position:absolute;left:0;bottom:0;width:100%;height:1px;background:linear-gradient(to right,var(--primary-200),transparent)}.qe-required{color:var(--danger-500, var(--error-500));margin-left:2px}.qe-callout{font-size:.82rem;line-height:1.5;border-radius:var(--radius-lg);padding:var(--space-3) var(--space-4);margin-bottom:var(--space-1)}.qe-callout-info{background:var(--petrol-tint);border-left:3px solid var(--primary-400);color:var(--primary-800, var(--petrol))}.qe-callout-muted{background:var(--gray-50);border-left:3px solid var(--gray-300);color:var(--gray-600)}.qe-option-list{display:flex;flex-direction:column;gap:6px}.qe-option-row{display:flex;align-items:center;gap:var(--space-3);padding:6px var(--space-3);border-radius:var(--radius-lg);background:var(--gray-50);border:1px solid var(--gray-200);transition:border-color var(--transition-fast),box-shadow var(--transition-fast)}.qe-option-row:hover{border-color:var(--gray-300);box-shadow:0 1px 3px #0000000a}.qe-option-row:focus-within{border-color:var(--primary-400);box-shadow:0 0 0 2px #0e4a5714;background:#fff}.qe-radio{accent-color:var(--success-600, var(--success-500));width:18px;height:18px;cursor:pointer;flex-shrink:0}.qe-option-label{font-weight:700;color:var(--primary-600);min-width:30px;text-align:center;flex-shrink:0;font-size:.88rem}.qe-option-input{flex:1;border:none!important;background:transparent!important;padding:var(--space-2) 0!important;font-size:.9rem;outline:none;box-shadow:none!important}.qe-option-input:focus{border:none!important;box-shadow:none!important}.qe-remove-btn{display:flex;align-items:center;justify-content:center;width:28px;height:28px;border:none;background:none;color:var(--gray-400);border-radius:var(--radius-full);cursor:pointer;flex-shrink:0;transition:all var(--transition-fast)}.qe-remove-btn:hover{background:var(--danger-50, var(--error-50));color:var(--danger-500, var(--error-500))}.qe-add-btn{display:inline-flex;align-items:center;gap:var(--space-1);padding:var(--space-2) var(--space-4);font-size:.82rem;font-weight:600;color:var(--primary-600);background:var(--primary-50);border:1.5px dashed var(--primary-300);border-radius:var(--radius-lg);cursor:pointer;transition:all var(--transition-fast);margin-top:var(--space-2)}.qe-add-btn:hover{background:var(--primary-100);border-color:var(--primary-400)}.qe-correct-badge{display:inline-flex;align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-3);font-size:.82rem;font-weight:600;color:var(--success-700, var(--success-700));background:var(--success-50, var(--success-50));border:1px solid var(--success-200, var(--success-200));border-radius:var(--radius-full);margin-top:var(--space-2)}.qe-correct-badge svg{color:var(--success-500, var(--success-500))}.qe-image-preview{display:flex;flex-direction:column;gap:var(--space-3);margin-bottom:var(--space-2)}.qe-image-preview img{max-width:100%;max-height:300px;object-fit:contain;border-radius:var(--radius-lg);border:1.5px solid var(--gray-200);background:var(--gray-50)}.qe-image-remove{display:inline-flex;align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-3);font-size:.82rem;font-weight:600;color:var(--danger-600, var(--error-500));background:var(--danger-50, var(--error-50));border:1px solid var(--danger-200, var(--error-200));border-radius:var(--radius-lg);cursor:pointer;transition:all var(--transition-fast);align-self:flex-start}.qe-image-remove:hover{background:var(--danger-100, var(--error-50));border-color:var(--danger-300, var(--error-200))}.qe-dropzone{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--space-2);padding:var(--space-6) var(--space-4);border:2px dashed var(--gray-300);border-radius:var(--radius-xl);background:var(--gray-50);cursor:pointer;transition:all var(--transition-fast);color:var(--gray-400);font-size:.88rem;font-weight:500}.qe-dropzone:hover{border-color:var(--primary-400);background:var(--primary-50);color:var(--primary-500)}.qe-dropzone svg{opacity:.5}.qe-dropzone:hover svg{opacity:.8}.qe-uploading{font-size:.84rem;color:var(--gray-500);margin-top:var(--space-2);display:flex;align-items:center;gap:var(--space-2)}.qe-uploading:before{content:"";width:14px;height:14px;border:2px solid var(--gray-300);border-top-color:var(--primary-500);border-radius:50%;animation:spin .7s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.qe-actions{padding:var(--space-4) var(--space-6);margin-top:auto;background:var(--gray-50);border-radius:0 0 var(--radius-2xl) var(--radius-2xl)}.qe-save-btn{min-width:150px}@media(max-width:768px){.qe-modal{max-width:100%}.qe-modal>.form-grid,.qe-modal>.qe-section{padding-left:var(--space-4);padding-right:var(--space-4)}.qe-header{padding:var(--space-4) var(--space-4)!important}.qe-actions{padding:var(--space-4)}}@media(max-width:480px){.qe-header h2{font-size:1rem!important}.qe-option-row{padding:4px var(--space-2)}.qe-dropzone{padding:var(--space-4) var(--space-3)}}.grading-page .subtitle{font-size:.95rem;color:var(--gray-500);margin-top:var(--space-1)}.scores-row{display:flex;gap:var(--space-6)}@media(max-width:768px){.scores-row{flex-wrap:wrap;gap:var(--space-4)}.score-item{flex:1;min-width:calc(50% - var(--space-2))}}@media(max-width:480px){.scores-row{flex-direction:column;gap:var(--space-3)}.score-item{min-width:unset}}.score-item{display:flex;flex-direction:column;align-items:center;padding:var(--space-4) var(--space-6);background:var(--gray-50);border-radius:var(--radius-lg)}.score-label{font-size:.85rem;color:var(--gray-600);margin-bottom:var(--space-2)}.score-value{font-size:2rem;font-weight:700;color:var(--gray-900)}.score-raw{font-size:.75rem;color:var(--gray-400);margin-top:var(--space-1)}.answers-list{display:flex;flex-direction:column;gap:var(--space-4)}.answer-block{padding:var(--space-4);background:var(--gray-50);border-radius:var(--radius-lg)}.answer-block h3{font-size:.95rem;font-weight:600;color:var(--gray-800);margin-bottom:var(--space-3)}.answer-content{background:#fff;padding:var(--space-4);border-radius:var(--radius-md);font-size:.9rem;line-height:1.7;color:var(--gray-700);white-space:pre-wrap;max-height:300px;overflow-y:auto}.word-count{font-size:.75rem;color:var(--gray-400);text-align:right;margin-top:var(--space-2)}.empty-text{font-size:.9rem;color:var(--gray-400);font-style:italic}.grade-input-row{display:flex;align-items:center;gap:var(--space-4);margin-top:var(--space-4);padding-top:var(--space-4);border-top:1px solid var(--gray-200)}.grade-input-row label{font-size:.9rem;font-weight:600;color:var(--gray-700)}.grade-input-row input{width:80px;padding:var(--space-2) var(--space-3);border:1px solid var(--gray-300);border-radius:var(--radius-md);font-size:1.25rem;font-weight:600;text-align:center}.feedback-textarea{width:100%;padding:var(--space-4);border:1px solid var(--gray-300);border-radius:var(--radius-lg);font-size:.9rem;line-height:1.6;resize:vertical}.feedback-textarea:focus{outline:none;border-color:var(--primary-500)}.actions-bar{display:flex;gap:var(--space-4);padding:var(--space-6) 0}.print-only{display:none}.print-trigger-btn{display:inline-flex;align-items:center;gap:var(--space-2);white-space:nowrap}.grading-print-feedback{white-space:pre-wrap}.print-audio-note{font-size:.82rem;color:var(--gray-600);font-style:italic;margin-top:var(--space-2)}@media print{@page{size:A4;margin:10mm}.sidebar,.top-bar,.mobile-nav-overlay,.mobile-menu-btn,.no-print{display:none!important}.print-only{display:block!important}*{-webkit-print-color-adjust:exact!important;print-color-adjust:exact!important;box-sizing:border-box}html,body{background:#fff!important;margin:0!important;padding:0!important;font-size:12px!important;line-height:1.4!important}.dashboard-layout{display:block!important}.main-content{margin-left:0!important;width:100%!important;padding:0!important}.page-content{padding:0!important}.grading-print-shell{max-width:100%!important;padding:0!important}.grading-print-header{display:flex!important;align-items:center;gap:12px;border-bottom:2px solid var(--petrol);padding-bottom:8px;margin-bottom:10px}.grading-print-logo{height:56px;width:auto;flex-shrink:0}.grading-print-title h1{margin:0;font-size:1.2rem;color:var(--ink)}.grading-print-title p{margin:2px 0 0;color:var(--petrol);font-size:.72rem;text-transform:uppercase;letter-spacing:.5px;font-weight:600}.grading-print-meta{border:1px solid var(--gray-300)!important;box-shadow:none!important;margin-bottom:10px!important}.grading-print-meta-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px 14px}.grading-print-meta-item{font-size:.78rem;color:var(--gray-700);line-height:1.45}.grading-print-meta-item strong{color:var(--ink)}.grading-page .card{box-shadow:none!important;border:1px solid var(--gray-300)!important;margin-bottom:10px!important;page-break-inside:avoid;break-inside:avoid}.grading-page .card-title{font-size:.96rem}.grading-page .scores-row{gap:10px}.grading-page .score-item{border:1px solid var(--gray-200);background:var(--gray-50);padding:8px 10px}.grading-page .score-value{font-size:1.4rem}.grading-page .score-raw{color:var(--gray-500)}.grading-page .answers-list{gap:8px}.grading-page .answer-block{background:#fff;border:1px solid var(--gray-200);padding:10px;page-break-inside:avoid;break-inside:avoid}.grading-page .answer-block h3{margin-bottom:8px;font-size:.9rem}.grading-page .answer-content{max-height:none!important;overflow:visible!important;border:1px solid var(--gray-200);font-size:.84rem;line-height:1.45}.grading-page .word-count{font-size:.68rem}.grading-print-feedback{background:var(--gray-50);border:1px solid var(--petrol-tint);padding:10px 12px;border-radius:8px;font-size:.82rem;line-height:1.5;color:var(--gray-800);white-space:pre-wrap}.grading-print-shell audio{display:none!important}.print-audio-note{display:block!important}.grading-print-footer{display:block!important;text-align:center;border-top:2px solid var(--petrol);margin-top:12px;padding-top:6px;font-size:.68rem;color:var(--gray-500)}.grading-print-footer p{margin:1px 0}}.data-table{width:100%;border-collapse:collapse}.data-table th,.data-table td{padding:var(--space-3) var(--space-4);text-align:left;border-bottom:1px solid var(--gray-100)}.data-table th{font-size:.75rem;font-weight:600;color:var(--gray-500);text-transform:uppercase;background:var(--gray-50)}.data-table td{font-size:.9rem;color:var(--gray-700)}.student-cell{display:flex;flex-direction:column}.student-cell strong{color:var(--gray-900)}.student-cell small{font-size:.75rem;color:var(--gray-400)}.score-cell{text-align:center;font-weight:600}.score-cell.pending{color:var(--warning-500)}.btn-small{padding:var(--space-2) var(--space-4);font-size:.8rem;font-weight:600;border:none;border-radius:var(--radius-md);cursor:pointer;text-decoration:none}.btn-small.primary{background:var(--primary-600);color:#fff}.btn-small.primary:hover{background:var(--primary-700)}.roles-checkboxes{display:flex;flex-wrap:wrap;gap:var(--space-3)}.checkbox-label{display:flex;align-items:center;gap:var(--space-2);font-size:.9rem;color:var(--gray-700);cursor:pointer}.checkbox-label input[type=checkbox]{width:18px;height:18px;accent-color:var(--primary-600)}.modal-subtitle{font-size:.9rem;color:var(--gray-500);margin-top:-.5rem;margin-bottom:var(--space-4)}.badge-admin{background:var(--error-50);color:var(--error-700)}.badge-teacher{background:var(--petrol-tint);color:var(--petrol)}.badge-student{background:var(--success-100);color:var(--success-700)}.badge-visitor{background:var(--gray-100);color:var(--gray-600)}.stat-card.highlight{background:linear-gradient(135deg,var(--primary-500) 0%,var(--primary-700) 100%);color:#fff}.stat-card.highlight .stat-icon{background:#fff3}.stat-card.highlight .stat-label{color:#fffc}.section-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:var(--space-4)}.section-stat{display:flex;flex-direction:column;align-items:center;padding:var(--space-5);background:var(--gray-50);border-radius:var(--radius-lg);text-align:center}.section-icon{font-size:2rem;margin-bottom:var(--space-2)}.section-name{font-weight:600;color:var(--gray-700);margin-bottom:var(--space-1)}.section-score{font-size:1.5rem;font-weight:700;color:var(--primary-600)}.badge-in_progress{background:var(--warning-50);color:var(--warning-700)}.badge-submitted{background:var(--petrol-tint);color:var(--petrol)}.badge-graded{background:var(--success-50);color:var(--success-700)}.badge-expired{background:var(--gray-100);color:var(--gray-600)}.tabs{display:flex;gap:var(--space-2);border-bottom:2px solid var(--gray-200);padding-bottom:0}.tab-btn{display:flex;align-items:center;gap:var(--space-2);padding:var(--space-3) var(--space-5);background:transparent;border:none;border-bottom:3px solid transparent;margin-bottom:-2px;font-size:.95rem;font-weight:500;color:var(--gray-600)}.listening-audio-section{background:var(--warning-50);border:2px solid var(--amber);border-radius:var(--radius-xl);padding:var(--space-5);margin-bottom:var(--space-5);transition:all var(--transition-fast)}.listening-audio-section:hover{box-shadow:0 4px 12px #fde0474d}.listening-audio-section h3{font-size:1.1rem;font-weight:700;color:var(--gray-800);margin-bottom:var(--space-2);display:flex;align-items:center;gap:var(--space-2)}.listening-audio-section .help-text{font-size:.85rem;color:var(--gray-600);margin-bottom:var(--space-4);line-height:1.5}.listening-audio-section .existing-audio{display:flex;flex-direction:column;gap:var(--space-4)}.listening-audio-section .audio-preview{background:#fff;padding:var(--space-4);border-radius:var(--radius-lg);border:1px solid var(--gray-200);box-shadow:0 2px 8px #0000000d}.listening-audio-section .audio-preview audio{width:100%;border-radius:var(--radius-md)}.listening-audio-section .audio-actions{display:flex;gap:var(--space-3);flex-wrap:wrap}.listening-audio-section .pending-upload{display:flex;align-items:center;gap:var(--space-3);flex-wrap:wrap;background:#fff;padding:var(--space-4);border-radius:var(--radius-lg);border:2px solid var(--primary-200);animation:pulseGlow 2s infinite}@keyframes pulseGlow{0%,to{box-shadow:0 0 #0e4a5733}50%{box-shadow:0 0 0 8px #0e4a5700}}.listening-audio-section .pending-upload span{color:var(--gray-700);font-size:.9rem;font-weight:500}.listening-audio-section .no-audio{display:flex;flex-direction:column;align-items:center;width:100%}.listening-audio-section .upload-area{display:flex;flex-direction:column;align-items:center;justify-content:center;width:100%;padding:var(--space-8);background:#fff;border:2px dashed var(--gray-300);border-radius:var(--radius-xl);cursor:pointer;transition:all var(--transition-fast)}.tab-btn:hover{color:var(--primary-600);background:var(--gray-50)}.tab-btn.active{color:var(--primary-600);border-bottom-color:var(--primary-600);font-weight:600}.tab-btn .badge{display:inline-flex;align-items:center;justify-content:center;min-width:20px;height:20px;padding:0 var(--space-2);background:var(--primary-600);color:#fff;font-size:.75rem;font-weight:600;border-radius:10px}.tab-btn:not(.active) .badge{background:var(--gray-400)}.listening-audio-section .upload-area:hover{border-color:var(--primary-400);background:var(--primary-50);transform:scale(1.01)}.listening-audio-section .upload-placeholder{display:flex;flex-direction:column;align-items:center;gap:var(--space-3);text-align:center}.listening-audio-section .upload-icon{font-size:3rem;animation:bounce 2s infinite}@keyframes bounce{0%,to{transform:translateY(0)}50%{transform:translateY(-5px)}}.listening-audio-section .upload-placeholder span:nth-child(2){font-weight:600;color:var(--gray-700);font-size:1rem}.listening-audio-section .upload-hint{font-size:.8rem;color:var(--gray-400);background:var(--gray-100);padding:var(--space-1) var(--space-3);border-radius:var(--radius-full)}.btn-danger{display:inline-flex;align-items:center;gap:var(--space-2);background:var(--error-500);color:#fff;border:none;padding:var(--space-3) var(--space-4);border-radius:var(--radius-lg);font-size:.9rem;font-weight:600;cursor:pointer;transition:all var(--transition-fast);box-shadow:0 2px 4px #dc262633}.btn-danger:hover{background:linear-gradient(135deg,var(--error-500),var(--error-600));transform:translateY(-1px);box-shadow:0 4px 8px #dc26264d}.table-container{overflow-x:auto;-webkit-overflow-scrolling:touch}.table-container .data-table{min-width:720px}.prog-page{max-width:1040px}.prog-page .page-header{margin-bottom:8px}.prog-page .page-header h1{margin-bottom:2px}.prog-page .page-header p{margin:0}.prog-switches{display:flex;align-items:center;gap:16px;flex-wrap:wrap;margin-top:8px}.prog-switches [role=tablist]{margin:0!important}.prog-strip{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin:0 0 12px}.prog-chip{display:flex;flex-direction:column;gap:0;padding:6px 12px;border:1px solid var(--gray-200);border-radius:10px;background:#fff;font-size:.8rem}.prog-chip strong{color:var(--petrol)}.prog-chip span{color:var(--gray-500)}.prog-chip.done{border-color:var(--petrol)}.prog-chip.soon{border-style:dashed;background:var(--gray-50, #faf9f7)}.prog-chip.soon strong{color:var(--gray-500)}.prog-grid{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,6fr);gap:12px;align-items:start}.prog-col{display:grid;gap:12px}.prog-card{margin-bottom:0;padding:14px 18px}.prog-hero{border-inline-start:3px solid var(--petrol)}.prog-h{margin:0 0 6px;color:var(--petrol);font-size:1.05rem}.prog-sub{margin:10px 0 6px;color:var(--gray-500);font-size:.8rem;font-weight:600;text-transform:uppercase;letter-spacing:.04em}.prog-lead{margin:0;font-size:.9rem;color:var(--gray-500)}.prog-proposals{margin:14px 0 8px}.prog-score{display:flex;align-items:flex-end;gap:14px;flex-wrap:wrap}.prog-score>div{display:flex;flex-direction:column}.prog-score strong{font-size:1.7rem;color:var(--gray-700, #3f3a33);line-height:1.1}.prog-score strong.prog-final{color:var(--petrol)}.prog-score small{color:var(--gray-500);font-size:.85rem}.prog-label{font-size:.75rem;color:var(--gray-500)}.prog-arrow{font-size:1.4rem;color:var(--gray-400, #a8a29e);padding-bottom:4px}.prog-gain{margin-bottom:4px;padding:3px 10px;border-radius:999px;background:var(--gray-100);color:var(--petrol);font-weight:600;font-size:.85rem}.prog-line{margin:6px 0 0;color:var(--gray-700, #3f3a33);line-height:1.4;font-size:.9rem}.prog-band{margin:6px 0 0;font-size:.85rem;color:var(--gray-500);display:flex;align-items:center;gap:8px;flex-wrap:wrap}.prog-tag{font-size:.68rem;font-weight:600;text-transform:uppercase;letter-spacing:.04em;padding:2px 8px;border-radius:999px;background:var(--gray-100);color:var(--gray-500)}.prog-info{display:inline-flex;color:var(--gray-500);cursor:help}.prog-rows{list-style:none;margin:0;padding:0;display:grid;gap:8px}.prog-row{display:grid;grid-template-columns:minmax(90px,160px) 1fr 40px;align-items:center;gap:10px;font-size:.85rem}.prog-bars{display:grid;gap:3px}.prog-bar{height:6px;border-radius:999px;background:var(--gray-100);overflow:hidden}.prog-fill{display:block;height:100%;border-radius:999px}.prog-fill.start,.prog-dot.start{background:var(--gray-400, #a8a29e)}.prog-fill.final,.prog-dot.final{background:var(--petrol)}.prog-trend{text-align:end;font-variant-numeric:tabular-nums;color:var(--gray-500);font-size:.8rem}.prog-trend.up{color:var(--petrol);font-weight:600}.prog-legend{margin:8px 0 0;font-size:.75rem;color:var(--gray-500);display:flex;align-items:center;gap:6px;flex-wrap:wrap}.prog-dot{display:inline-block;width:9px;height:9px;border-radius:50%;margin-inline-start:8px}.prog-dot:first-child{margin-inline-start:0}.prog-note{margin:8px 0 0;font-size:.75rem;color:var(--gray-500)}.prog-options{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.prog-option{display:flex;flex-direction:column;gap:1px;padding:8px 14px;border:1px solid var(--gray-200);border-radius:10px;background:#fff;text-decoration:none;color:inherit;font-size:.9rem}.prog-option:hover{border-color:var(--petrol)}.prog-option strong{color:var(--petrol)}.prog-option span{font-size:.8rem;color:var(--gray-500)}.prog-option em{font-size:.8rem;font-style:normal;color:var(--petrol);text-decoration:underline}.prog-option.recommended{border:2px solid var(--petrol);grid-column:1 / -1}.prog-option.locked{background:var(--gray-50, #faf9f7);border-style:dashed}.prog-reco{align-self:flex-start;margin-bottom:2px;padding:1px 9px;border-radius:999px;background:var(--petrol);color:#fff!important;font-size:.7rem!important;font-weight:600}.prog-links{display:flex;gap:16px;flex-wrap:wrap;margin:12px 0 4px;font-size:.85rem}@media(max-width:860px){.prog-grid{grid-template-columns:minmax(0,1fr)}}@media(max-width:560px){.prog-strip{grid-template-columns:repeat(2,minmax(0,1fr))}.prog-options{grid-template-columns:minmax(0,1fr)}.prog-row{grid-template-columns:1fr 40px}.prog-name{grid-column:1 / -1}.prog-bars{grid-column:1}}.join-cohort{max-width:480px;margin:0 auto;padding:24px 16px;display:flex;flex-direction:column;gap:12px}.join-cohort h1{display:flex;align-items:center;gap:8px;font-size:1.4rem;margin:0}.join-cohort form{display:flex;flex-direction:column;gap:10px}.join-cohort input{padding:10px 12px;font-size:1.05rem;letter-spacing:.06em;border:1px solid var(--border-color, #d0d5dd);border-radius:8px}.join-cohort .join-cohort-error{color:var(--error-color, #b42318);margin:0}.join-cohort .exam-start-btn{align-self:flex-start;text-decoration:none}.rich-text-editor{border:1px solid var(--gray-200);border-radius:.5rem;overflow:hidden;background:#fff}.editor-toolbar{display:flex;flex-wrap:wrap;gap:.25rem;padding:.5rem;background:var(--gray-50);border-bottom:1px solid var(--gray-200)}.editor-toolbar button{background:none;border:none;padding:.35rem;border-radius:.25rem;color:var(--gray-600);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .2s}.editor-toolbar button:hover{background:var(--gray-200);color:var(--ink)}.editor-toolbar button.is-active{background:var(--petrol-tint);color:var(--petrol)}.editor-toolbar button:disabled{opacity:.5;cursor:not-allowed}.toolbar-separator{width:1px;background:var(--gray-200);margin:0 .25rem}.editor-content{min-height:300px;padding:1rem}.ProseMirror{outline:none;min-height:300px}.ProseMirror p.is-editor-empty:first-child:before{color:var(--gray-500);content:attr(data-placeholder);float:left;height:0;pointer-events:none}.ProseMirror>*+*{margin-top:.75em}.ProseMirror ul,.ProseMirror ol{padding:0 1rem}.ProseMirror h1,.ProseMirror h2,.ProseMirror h3,.ProseMirror h4,.ProseMirror h5,.ProseMirror h6{line-height:1.1}.ProseMirror blockquote{border-left:3px solid var(--gray-200);padding-left:1rem;color:var(--gray-600);font-style:italic}.ProseMirror img{max-width:100%;height:auto;border-radius:.5rem}.ProseMirror a{color:var(--petrol);text-decoration:underline;cursor:pointer}.calendar-empty{display:flex;flex-direction:column;align-items:center;gap:1rem;padding:3rem 2rem;background:var(--card-bg, #fff);border-radius:12px;border:2px dashed var(--border-color, var(--gray-200));text-align:center}.calendar-empty h3{margin:0;font-size:1.25rem;color:var(--text-primary, var(--ink))}.calendar-empty p{margin:0;color:var(--text-secondary, var(--gray-500));max-width:400px}.calendar-empty svg{color:var(--text-secondary, var(--gray-500))}.calendar-timeline{display:flex;flex-direction:column;gap:1.5rem}.calendar-day-group{background:var(--card-bg, #fff);border-radius:12px;border:1px solid var(--border-color, var(--gray-200));overflow:hidden}.calendar-day-header{display:flex;align-items:center;gap:.75rem;padding:.875rem 1.25rem;background:var(--petrol);color:#fff;font-weight:600;font-size:.95rem}.calendar-day-header svg{flex-shrink:0}.calendar-slots-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:1rem;padding:1rem 1.25rem}.calendar-slot-card{position:relative;display:flex;flex-direction:column;gap:.5rem;padding:1rem;border-radius:10px;border:1px solid var(--border-color, var(--gray-200));background:var(--bg-secondary, var(--gray-50));transition:box-shadow .2s}.calendar-slot-card:hover{box-shadow:0 4px 12px #00000014}.calendar-slot-card.booked{border-left:4px solid var(--warning-500);background:var(--warning-50)}.slot-time{display:flex;align-items:center;gap:.5rem;font-weight:600;font-size:.95rem;color:var(--text-primary, var(--ink))}.slot-time svg{color:var(--petrol);flex-shrink:0}.slot-title{font-weight:500;color:var(--text-primary, var(--gray-700))}.slot-description{font-size:.85rem;color:var(--text-secondary, var(--gray-500));line-height:1.4}.slot-status{display:flex;align-items:center;gap:.75rem;flex-wrap:wrap;margin-top:.25rem}.slot-visitor{font-size:.85rem;color:var(--text-secondary, var(--gray-500));font-style:italic}.slot-actions{display:flex;gap:.5rem;margin-top:.25rem}.booking-slots-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:1rem;padding:1rem 1.25rem}.booking-slot-card{cursor:pointer;display:flex;flex-direction:column;gap:.5rem;padding:1rem;border-radius:10px;border:2px solid var(--border-color, var(--gray-200));background:var(--card-bg, #fff);transition:border-color .2s,box-shadow .2s,transform .15s}.booking-slot-card:hover{border-color:var(--petrol);box-shadow:0 4px 16px #0e4a5726;transform:translateY(-2px)}.slot-teacher{display:flex;align-items:center;gap:.4rem;font-size:.85rem;color:var(--text-secondary, var(--gray-500))}.slot-teacher svg{color:var(--petrol)}.btn-book{margin-top:auto;padding:.5rem 1rem;border:none;border-radius:8px;background:var(--petrol);color:#fff;font-weight:600;font-size:.85rem;cursor:pointer;transition:opacity .2s;text-align:center}.btn-book:hover{opacity:.9}.booking-section{margin-bottom:2rem}.section-title{font-size:1.1rem;font-weight:600;color:var(--text-primary, var(--ink));margin:0 0 1rem}.my-appointments-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:1rem}.my-appointment-card{display:flex;flex-direction:column;gap:.6rem;padding:1.25rem;border-radius:12px;border:1px solid var(--border-color, var(--gray-200));background:var(--card-bg, #fff);box-shadow:0 1px 4px #0000000a}.apt-header{display:flex;justify-content:space-between;align-items:center}.apt-datetime,.apt-teacher{display:flex;align-items:center;gap:.5rem;font-size:.9rem;color:var(--text-primary, var(--gray-700))}.apt-datetime svg,.apt-teacher svg{color:var(--petrol);flex-shrink:0}.apt-reason{font-size:.85rem;color:var(--text-secondary, var(--gray-500))}.calendar-modal-overlay{position:fixed;inset:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000;padding:1rem;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.calendar-modal{background:var(--card-bg, #fff);border-radius:16px;width:100%;max-width:480px;max-height:90vh;overflow-y:auto;box-shadow:0 20px 60px #0003}.calendar-modal-header{display:flex;justify-content:space-between;align-items:center;padding:1.25rem 1.5rem;border-bottom:1px solid var(--border-color, var(--gray-200))}.calendar-modal-header h2{margin:0;font-size:1.15rem;font-weight:600}.modal-close-btn{background:none;border:none;cursor:pointer;padding:.25rem;color:var(--text-secondary, var(--gray-500));border-radius:6px;transition:background .15s}.modal-close-btn:hover{background:var(--bg-secondary, var(--gray-100))}.calendar-modal-form{padding:1.5rem;display:flex;flex-direction:column;gap:1rem}.calendar-modal-form .form-group{display:flex;flex-direction:column;gap:.375rem}.calendar-modal-form label{font-size:.875rem;font-weight:500;color:var(--text-primary, var(--gray-700))}.calendar-modal-form input,.calendar-modal-form textarea,.calendar-modal-form select{padding:.625rem .875rem;border:1px solid var(--border-color, var(--gray-300));border-radius:8px;font-size:.9rem;background:var(--bg-secondary, var(--gray-50));color:var(--text-primary, var(--ink));transition:border-color .15s}.calendar-modal-form input:focus,.calendar-modal-form textarea:focus,.calendar-modal-form select:focus{outline:none;border-color:var(--petrol);box-shadow:0 0 0 3px #0e4a571a}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:1rem}.calendar-modal-actions{display:flex;justify-content:flex-end;gap:.75rem;padding-top:.5rem}.btn-secondary{padding:.625rem 1.25rem;border:1px solid var(--border-color, var(--gray-300));border-radius:8px;background:var(--card-bg, #fff);color:var(--text-primary, var(--gray-700));font-weight:500;cursor:pointer;transition:background .15s}.btn-secondary:hover{background:var(--bg-secondary, var(--gray-100))}.booking-summary{display:flex;flex-direction:column;gap:.5rem;padding:1rem 1.5rem;background:linear-gradient(135deg,var(--petrol-tint) 0%,var(--primary-50) 100%);border-bottom:1px solid var(--border-color, var(--gray-200))}.booking-summary-item{display:flex;align-items:center;gap:.5rem;font-size:.9rem;color:var(--text-primary, var(--gray-700))}.booking-summary-item svg{color:var(--petrol);flex-shrink:0}.table-actions{display:flex;flex-wrap:wrap;align-items:center;gap:.75rem 1rem;margin-bottom:1rem}.filter-group{display:flex;align-items:center;gap:.5rem}.filter-group select{padding:.5rem .75rem;border:1px solid var(--border-color, var(--gray-300));border-radius:8px;font-size:.9rem;background:var(--card-bg, #fff);color:var(--text-primary, var(--ink))}.filter-group svg{color:var(--text-secondary, var(--gray-500))}.status-completed{background:var(--petrol-tint);color:var(--petrol)}.success-text{color:var(--success-500)}@media(max-width:768px){.calendar-slots-grid,.booking-slots-grid,.my-appointments-grid,.form-row{grid-template-columns:1fr}.calendar-modal{max-width:100%;margin:.5rem}}.row-highlighted{animation:row-highlight-fade 3s ease-out}@keyframes row-highlight-fade{0%{background-color:var(--warning-100, var(--warning-50))}to{background-color:transparent}}.status-badge.status-pending{background:var(--warning-50);color:var(--warning-700)}.status-badge.status-approved{background:var(--success-50);color:var(--success-700)}.status-badge.status-rejected{background:var(--error-50);color:var(--error-700)}.status-badge.status-completed{background:var(--gray-100);color:var(--gray-600)}.cockpit-cohorts{display:flex;flex-wrap:wrap;gap:var(--space-2);margin-bottom:var(--space-4)}.cockpit-chip{padding:var(--space-2) var(--space-3);border:1px solid var(--line);border-radius:999px;background:var(--surface);color:var(--ink);font:inherit;font-size:.9rem;cursor:pointer}.cockpit-chip:hover{background:var(--petrol-tint)}.cockpit-chip.is-active{background:var(--petrol);border-color:var(--petrol);color:#fff}.cockpit-chip.is-static{cursor:default;background:var(--petrol-tint)}.cockpit-silent-count,.cockpit-silent{color:var(--amber-text);font-weight:600}.cockpit-toolbar{padding:var(--space-3)}.cockpit-toolbar input{width:100%;max-width:320px}.cockpit-empty{padding:var(--space-5);text-align:center;color:var(--text-muted)}.cockpit-back{display:inline-flex;align-items:center;gap:var(--space-1);margin-bottom:var(--space-3);color:var(--petrol)}.cockpit-summary{padding:var(--space-4);margin-bottom:var(--space-4)}.cockpit-summary dl{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:var(--space-3);margin:0}.cockpit-summary dt{font-size:.8rem;color:var(--text-muted)}.cockpit-summary dd{margin:0;color:var(--ink)}.cockpit-skills{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:var(--space-4);margin-bottom:var(--space-5)}.cockpit-skill{padding:var(--space-4)}.cockpit-skill h3{margin-top:0}.cockpit-skill ul{padding-left:var(--space-4);margin:0 0 var(--space-3)}.cockpit-weaknesses{display:flex;flex-wrap:wrap;gap:var(--space-2)}.cockpit-hint{color:var(--text-muted);font-size:.9rem}.cockpit-notes{padding:var(--space-4);margin-bottom:var(--space-5)}.cockpit-notes h2{margin-top:0}.cockpit-notes textarea{width:100%;margin-bottom:var(--space-2);font:inherit}.cockpit-note-list{list-style:none;padding:0;margin:var(--space-4) 0 0}.cockpit-note-list li{padding:var(--space-3) 0;border-top:1px solid var(--line)}.cockpit-note-meta{font-size:.85rem;color:var(--text-muted)}.cockpit-note-body{margin:var(--space-1) 0;white-space:pre-wrap;overflow-wrap:anywhere}.cockpit-note-actions{display:flex;gap:var(--space-2)}
