@import"https://fonts.googleapis.com/css2?family=Outfit:wght@300;400;500;600;700&family=Plus+Jakarta+Sans:wght@400;500;600;700&display=swap";:root{--bg-primary: #0f1115;--bg-secondary: #1a1d24;--bg-tertiary: #252a34;--accent-primary: #6366f1;--accent-secondary: #8b5cf6;--accent-glow: rgba(99, 102, 241, .4);--text-primary: #f8fafc;--text-secondary: #94a3b8;--text-muted: #64748b;--success: #10b981;--success-bg: rgba(16, 185, 129, .1);--error: #ef4444;--error-bg: rgba(239, 68, 68, .1);--warning: #f59e0b;--border-color: rgba(255, 255, 255, .08);--border-light: rgba(255, 255, 255, .15);--shadow-sm: 0 4px 6px -1px rgba(0, 0, 0, .3);--shadow-md: 0 10px 15px -3px rgba(0, 0, 0, .4);--shadow-lg: 0 20px 25px -5px rgba(0, 0, 0, .5);--font-heading: "Outfit", sans-serif;--font-body: "Plus Jakarta Sans", sans-serif;--transition-fast: .15s ease;--transition-normal: .3s cubic-bezier(.4, 0, .2, 1);--transition-slow: .5s cubic-bezier(.4, 0, .2, 1)}*{box-sizing:border-box;margin:0;padding:0}body{font-family:var(--font-body);background-color:var(--bg-primary);color:var(--text-primary);min-height:100vh;line-height:1.6;-webkit-font-smoothing:antialiased;background-image:radial-gradient(circle at 15% 50%,rgba(99,102,241,.05) 0%,transparent 50%),radial-gradient(circle at 85% 30%,rgba(139,92,246,.05) 0%,transparent 50%);background-attachment:fixed}h1,h2,h3,h4,h5,h6{font-family:var(--font-heading);font-weight:600;line-height:1.2;color:var(--text-primary)}a{color:var(--accent-primary);text-decoration:none;transition:color var(--transition-fast)}a:hover{color:var(--accent-secondary)}button{font-family:var(--font-body);cursor:pointer;border:none;background:none;transition:all var(--transition-normal)}.btn-primary{background:linear-gradient(135deg,var(--accent-primary),var(--accent-secondary));color:#fff;padding:.8rem 1.75rem;border-radius:12px;font-weight:600;display:flex;align-items:center;justify-content:center;gap:8px;box-shadow:0 4px 15px #6366f14d;border:1px solid rgba(255,255,255,.1)}.btn-primary:hover{transform:translateY(-2px);box-shadow:0 8px 25px #6366f180;filter:brightness(1.1)}.btn-primary:active{transform:translateY(0)}.btn-secondary{background:var(--bg-tertiary);color:var(--text-primary);padding:.8rem 1.75rem;border-radius:12px;font-weight:600;display:flex;align-items:center;justify-content:center;gap:8px;border:1px solid var(--border-light);box-shadow:var(--shadow-sm)}.btn-secondary:hover{background:var(--bg-secondary);border-color:var(--accent-primary);transform:translateY(-2px)}.btn-vibrant{background:linear-gradient(135deg,#f59e0b,#ef4444);color:#fff;padding:.8rem 1.75rem;border-radius:12px;font-weight:700;display:flex;align-items:center;justify-content:center;gap:8px;box-shadow:0 4px 15px #f59e0b4d;text-transform:uppercase;letter-spacing:.5px}.btn-vibrant:hover{transform:scale(1.05);box-shadow:0 8px 25px #f59e0b80}input[type=text],input[type=password],input[type=email],textarea{background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:10px;padding:.75rem 1rem;color:var(--text-primary);font-family:var(--font-body);width:100%;transition:all var(--transition-fast)}input:focus,textarea:focus{outline:none;border-color:var(--accent-primary);box-shadow:0 0 0 3px #6366f126;background:var(--bg-tertiary)}.glass-panel{background:#1a1d24b3;backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border:1px solid var(--border-light);border-radius:20px;box-shadow:var(--shadow-lg)}.text-gradient{background:linear-gradient(135deg,var(--accent-primary),var(--accent-secondary));-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}.status-badge{padding:.35rem .75rem;border-radius:30px;font-size:.75rem;font-weight:600;display:inline-flex;align-items:center;gap:5px}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:var(--bg-primary)}::-webkit-scrollbar-thumb{background:var(--bg-tertiary);border-radius:4px}::-webkit-scrollbar-thumb:hover{background:var(--text-muted)}.app-header{display:flex;justify-content:space-between;align-items:center;padding:1rem 2rem;margin-bottom:2rem;position:sticky;top:1rem;z-index:100}.header-brand{display:flex;align-items:center;gap:1rem}.logo-container{background:linear-gradient(135deg,var(--accent-primary),var(--accent-secondary));border-radius:12px;padding:.75rem;display:flex;align-items:center;justify-content:center;box-shadow:0 4px 15px var(--accent-glow)}.logo-icon{color:#fff}.header-title{font-size:1.5rem;margin:0}.header-subtitle{font-size:.85rem;color:var(--text-secondary);margin:0}.settings-btn{background:var(--bg-tertiary);color:var(--text-primary);border:1px solid var(--border-color);padding:.6rem;border-radius:50%;display:flex;align-items:center;justify-content:center;transition:all var(--transition-fast);position:relative}.settings-btn:hover{background:var(--bg-secondary);border-color:var(--border-light);transform:translateY(-2px);box-shadow:0 4px 12px #0003}.api-badge{position:absolute;top:-8px;right:-8px;background:var(--error);color:#fff;font-size:.65rem;padding:2px 6px;border-radius:10px;font-weight:600;white-space:nowrap;animation:pulse 2s infinite}.header-actions{display:flex;align-items:center;gap:1rem}.header-nav{display:flex;gap:1.5rem;margin:0 2rem}.nav-link{background:none;border:none;font-weight:600;color:var(--text-muted);font-size:.95rem;padding:.5rem .25rem;cursor:pointer;transition:all var(--transition-fast);position:relative}.nav-link:hover{color:var(--text-primary)}.nav-link.active{color:var(--accent-primary)}.nav-link.active:after{content:"";position:absolute;bottom:0;left:0;width:100%;height:2px;background:linear-gradient(90deg,var(--accent-primary),var(--accent-secondary));border-radius:2px}.user-profile{display:flex;align-items:center;gap:1rem;padding:.5rem 1rem;background:var(--bg-tertiary);border:1px solid var(--border-color);border-radius:20px}.user-avatar{background:linear-gradient(135deg,var(--accent-primary),var(--accent-secondary));color:#fff;width:32px;height:32px;border-radius:50%;display:flex;align-items:center;justify-content:center}.user-details{display:flex;flex-direction:column}.user-name{font-weight:600;font-size:.9rem;color:var(--text-primary);line-height:1.2}.user-role{font-size:.75rem;color:var(--text-secondary);text-transform:capitalize}.logout-btn{color:var(--text-muted);padding:.25rem;border-radius:4px;display:flex;align-items:center;justify-content:center;margin-left:.5rem;transition:all var(--transition-fast)}.logout-btn:hover{color:var(--error);background:#ef44441a}@keyframes pulse{0%{box-shadow:0 0 #ef444466}70%{box-shadow:0 0 0 4px #ef444400}to{box-shadow:0 0 #ef444400}}@media(max-width:600px){.app-header{padding:.75rem 1rem;top:0;border-radius:0}.header-title{font-size:1.25rem}.header-subtitle{display:none}.user-profile{padding:.25rem .5rem}.user-name{display:none}}.upload-container{width:100%;max-width:900px;margin:0 auto;padding:1rem}.type-selection{text-align:center;margin-bottom:2rem}.section-title{font-size:1.75rem;margin-bottom:.5rem;background:linear-gradient(135deg,#fff,var(--accent-secondary));-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.section-desc{color:var(--text-secondary);margin-bottom:2.5rem}.type-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:1.5rem}.type-card{padding:2.5rem 1.5rem;display:flex;flex-direction:column;align-items:center;gap:1.5rem;cursor:pointer;transition:all var(--transition-normal);border:1px solid var(--border-color);position:relative;overflow:hidden}.type-card:before{content:"";position:absolute;top:0;left:0;width:100%;height:4px;background:var(--accent);opacity:.3;transition:opacity var(--transition-fast)}.type-card:hover{transform:translateY(-8px);border-color:var(--accent);background:#ffffff08;box-shadow:0 20px 40px #0006,0 0 20px var(--accent)}.type-card:hover:before{opacity:1}.type-icon{width:64px;height:64px;border-radius:16px;background:var(--bg-primary);display:flex;align-items:center;justify-content:center;color:var(--accent);border:1px solid var(--border-color);transition:all var(--transition-normal)}.type-card:hover .type-icon{transform:scale(1.1) rotate(5deg);background:var(--accent);color:#fff;box-shadow:0 0 15px var(--accent)}.type-label{font-weight:600;font-size:1.1rem;color:var(--text-primary)}.layout-analyzing{padding:4rem;text-align:center;display:flex;flex-direction:column;align-items:center;gap:1.5rem}.spin-animation{animation:spin 1s linear infinite;color:var(--accent-primary)}.layout-confirmation{width:100%;max-width:1000px;margin:0 auto}.confirmation-header{margin-bottom:2rem;text-align:center}.confirmation-header h3{display:flex;align-items:center;justify-content:center;gap:.75rem;font-size:1.5rem;color:var(--text-primary)}.confirmation-header p{color:var(--text-secondary);margin-top:.5rem}.segments-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:1.5rem;margin-bottom:2.5rem;max-height:60vh;overflow-y:auto;padding:1rem}.segment-card{display:flex;flex-direction:column;overflow:hidden;border:1px solid rgba(255,255,255,.1);transition:all .3s ease}.segment-card:hover{transform:translateY(-4px);border-color:var(--accent-primary);box-shadow:0 10px 30px #0000004d}.segment-preview{height:180px;background:#111;display:flex;align-items:center;justify-content:center;overflow:hidden}.segment-preview img{width:100%;height:100%;object-fit:contain}.segment-info{padding:1.25rem;display:flex;align-items:center;gap:1rem;background:#ffffff08}.segment-label{font-weight:600;font-size:.9rem;color:var(--accent-secondary);white-space:nowrap}.segment-type-select{flex:1;background:#0000004d;border:1px solid rgba(255,255,255,.1);color:#fff;padding:.5rem;border-radius:8px;font-size:.9rem;outline:none}.btn-icon-danger{background:#ef44441a;border:1px solid rgba(239,68,68,.2);color:#ef4444;padding:.5rem;border-radius:8px;cursor:pointer;transition:all .2s}.btn-icon-danger:hover{background:#ef4444;color:#fff}.confirmation-actions{display:flex;justify-content:flex-end;gap:1.5rem;padding:1.5rem 0;border-top:1px solid rgba(255,255,255,.1)}.upload-container.disabled{opacity:.5;pointer-events:none}.upload-zone{position:relative;min-height:350px;display:flex;align-items:center;justify-content:center;border:2px dashed var(--border-light);border-radius:24px;transition:all var(--transition-normal);overflow:hidden}.upload-zone:hover:not(.has-file){border-color:var(--accent-secondary);background:#8b5cf60d;transform:translateY(-2px);box-shadow:0 10px 30px #0003,inset 0 0 20px #8b5cf60d}.upload-zone.dragging{border-color:var(--accent-primary);background:#6366f11a;transform:scale(1.02)}.file-input{position:absolute;width:0;height:0;opacity:0}.upload-label{display:flex;flex-direction:column;align-items:center;justify-content:center;width:100%;height:100%;padding:3rem 2rem;cursor:pointer;z-index:10}.upload-prompt{display:flex;flex-direction:column;align-items:center;text-align:center}.upload-icon-wrapper{width:96px;height:96px;border-radius:50%;background:linear-gradient(135deg,#6366f11a,#8b5cf61a);display:flex;align-items:center;justify-content:center;margin-bottom:2rem;box-shadow:0 0 30px #6366f133;transition:all var(--transition-normal)}.upload-zone:hover .upload-icon-wrapper{transform:translateY(-5px);box-shadow:0 10px 40px #8b5cf64d}.upload-icon{color:var(--accent-secondary)}.subject-selection{margin-bottom:1.5rem;width:100%;max-width:300px}.subject-dropdown{width:100%;padding:.75rem 1rem;border-radius:12px;background:var(--bg-tertiary);border:1px solid var(--border-color);color:var(--text-primary);font-weight:600;cursor:pointer;outline:none;transition:all var(--transition-fast)}.subject-dropdown:hover{border-color:var(--accent-primary);background:var(--bg-secondary)}.subject-dropdown:focus{border-color:var(--accent-primary);box-shadow:0 0 0 2px #6366f133}.pulse{animation:pulse-ring 2s infinite}.upload-prompt h3{font-size:1.75rem;margin-bottom:.75rem;background:linear-gradient(to right,#fff,#a5b4fc);-webkit-background-clip:text;-webkit-text-fill-color:transparent}.upload-prompt p{color:var(--text-secondary);font-size:1.1rem;max-width:400px;margin-bottom:2.5rem}.supported-formats{display:flex;gap:1rem}.format-badge{display:flex;align-items:center;gap:.5rem;padding:.5rem 1rem;background:var(--bg-tertiary);border:1px solid var(--border-color);border-radius:20px;font-size:.85rem;color:var(--text-primary);font-weight:500}.upload-success{display:flex;flex-direction:column;align-items:center;text-align:center;animation:scaleIn .4s cubic-bezier(.175,.885,.32,1.275)}.success-icon-wrapper{color:var(--success);margin-bottom:1.5rem;filter:drop-shadow(0 0 15px rgba(16,185,129,.4))}.upload-success h3{font-size:1.5rem;color:#fff;margin-bottom:.5rem;word-break:break-all;max-width:90%}.upload-success p{color:var(--success);font-weight:500;margin-bottom:2rem}.btn-change-file{padding:.75rem 1.5rem;background:var(--bg-tertiary);color:var(--text-primary);border:1px solid var(--border-color);border-radius:12px;font-weight:500;transition:all var(--transition-fast);z-index:20}.btn-change-file:hover{background:var(--bg-secondary);border-color:var(--border-light);transform:translateY(-2px)}@keyframes pulse-ring{0%{transform:scale(.95);box-shadow:0 0 #6366f180}70%{transform:scale(1);box-shadow:0 0 0 20px #6366f100}to{transform:scale(.95);box-shadow:0 0 #6366f100}}@keyframes scaleIn{0%{transform:scale(.8);opacity:0}to{transform:scale(1);opacity:1}}.results-container{width:100%;max-width:900px;margin:0 auto;animation:slideUp .4s ease-out}.results-header{display:flex;flex-direction:column;gap:2rem;margin-bottom:2rem}.results-stats{display:flex;gap:1.5rem}.stat-box{flex:1;background:var(--bg-tertiary);border:1px solid var(--border-color);border-radius:16px;padding:1.5rem;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;box-shadow:var(--shadow-sm)}.error-stat{border-bottom:4px solid var(--error)}.score-stat{border-bottom:4px solid var(--success)}.score-stat .stat-value{color:var(--success)}.practice-stat{border-bottom:4px solid var(--accent-primary)}.stat-value{font-size:2.5rem;font-weight:700;font-family:var(--font-heading);line-height:1;margin-bottom:.5rem}.error-stat .stat-value{color:var(--error)}.practice-stat .stat-value{background:linear-gradient(135deg,var(--accent-primary),var(--accent-secondary));-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}.stat-label{color:var(--text-secondary);font-weight:500;font-size:.9rem;text-transform:uppercase;letter-spacing:.5px}.tabs{display:flex;background:var(--bg-secondary);padding:.5rem;border-radius:12px;border:1px solid var(--border-color)}.tab-btn{flex:1;display:flex;align-items:center;justify-content:center;gap:.5rem;padding:.75rem;border-radius:8px;color:var(--text-secondary);font-weight:600;transition:all var(--transition-fast)}.tab-btn:hover{color:var(--text-primary);background:#ffffff0d}.tab-btn.active{background:var(--bg-tertiary);color:var(--text-primary);box-shadow:var(--shadow-sm)}.tab-content{min-height:400px}.corrections-list{display:flex;flex-direction:column;gap:2rem}.correction-card{padding:2rem;border-left:4px solid var(--error)}.card-header{margin-bottom:1.5rem}.question-number{font-size:.85rem;color:var(--text-muted);text-transform:uppercase;letter-spacing:1px;font-weight:700}.question-text{font-size:1.25rem;margin-top:.5rem;color:var(--text-primary)}.answers-comparison{display:flex;align-items:stretch;gap:1rem;margin-bottom:2rem}.answer-box{flex:1;border-radius:12px;padding:1.25rem;border:1px solid transparent}.student-answer{background:var(--error-bg);border-color:#ef444433}.student-answer .box-label{color:var(--error)}.correct-answer{background:var(--success-bg);border-color:#10b98133}.correct-answer .box-label{color:var(--success)}.box-label{display:flex;align-items:center;gap:.5rem;font-weight:600;font-size:.85rem;margin-bottom:.75rem;text-transform:uppercase;letter-spacing:.5px}.box-content{font-size:1.1rem}.arrow-divider{display:flex;align-items:center;justify-content:center;color:var(--text-muted)}.explanation-section{background:var(--bg-primary);padding:1.5rem;border-radius:12px;border:1px solid var(--border-color)}.explanation-section .box-label{color:var(--accent-secondary)}.markdown-content{color:var(--text-secondary);line-height:1.7}.markdown-content p{margin-bottom:1rem}.markdown-content p:last-child{margin-bottom:0}.practice-list{display:flex;flex-direction:column;gap:1.5rem}.practice-intro{padding:1.5rem;text-align:center;background:linear-gradient(135deg,#6366f11a,#8b5cf61a);border-color:#6366f133}.practice-intro h3{color:var(--accent-primary);margin-bottom:.5rem}.practice-intro p{color:var(--text-secondary)}.practice-card{padding:2rem;border-left:4px solid var(--accent-primary)}.practice-header{margin-bottom:1.5rem}.badge{display:inline-block;background:#6366f126;color:var(--accent-secondary);padding:.25rem .75rem;border-radius:12px;font-size:.75rem;font-weight:700;text-transform:uppercase;letter-spacing:.5px;margin-bottom:1rem}.practice-header h4{font-size:1.25rem;line-height:1.4}.practice-action{display:flex;justify-content:center;margin-top:2rem}.btn-reveal{background:var(--bg-tertiary);color:var(--text-primary);border:1px solid var(--border-color);padding:.875rem 2rem;border-radius:20px;font-weight:600;transition:all var(--transition-fast)}.btn-reveal:hover{background:var(--bg-secondary);border-color:var(--accent-primary);color:var(--accent-secondary);box-shadow:0 0 15px var(--accent-glow)}.practice-solution{margin-top:1.5rem;background:var(--bg-primary);border-radius:12px;border:1px solid var(--border-color);overflow:hidden}.scale-in{animation:scaleIn .3s cubic-bezier(.16,1,.3,1)}.solution-answer{background:var(--success-bg);padding:1rem 1.5rem;border-bottom:1px solid rgba(16,185,129,.2);color:var(--text-primary)}.solution-answer strong{color:var(--success);margin-right:.5rem}.solution-explanation{padding:1.5rem;color:var(--text-secondary);line-height:1.6}@media(max-width:768px){.results-stats{flex-direction:column;gap:1rem}.stat-box{padding:1rem}.stat-value{font-size:2rem}.correction-card,.practice-card{padding:1.5rem 1.25rem}.answers-comparison{flex-direction:column}.arrow-divider{transform:rotate(90deg);padding:.5rem 0}.box-content{font-size:1rem}}.login-container{display:flex;align-items:center;justify-content:center;min-height:calc(100vh - 120px);padding:2rem;animation:fadeIn .4s ease-out}.login-card{width:100%;max-width:480px;padding:3rem 2.5rem}.login-hero{text-align:center;margin-bottom:2rem}.login-hero h2{font-size:2.25rem;margin-bottom:.75rem;background:linear-gradient(135deg,var(--accent-primary),var(--accent-secondary));-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}.login-hero p{color:var(--text-secondary);font-size:1.05rem}.auth-form{display:flex;flex-direction:column;gap:1.25rem}.form-group{display:flex;flex-direction:column;gap:.5rem}.form-group label{font-size:.9rem;font-weight:600;color:var(--text-primary);margin-left:.25rem}.form-group input{padding:.875rem 1rem;border-radius:12px;border:1px solid var(--border-color);background:var(--bg-primary);color:var(--text-primary);font-size:1rem;transition:all var(--transition-fast);font-family:inherit}.form-group input:focus{outline:none;border-color:var(--accent-primary);box-shadow:0 0 0 3px #6366f126}.auth-error{background:#ef44441a;color:#ef4444;padding:.875rem;border-radius:8px;font-size:.9rem;text-align:center;border:1px solid rgba(239,68,68,.2)}.auth-submit{margin-top:.5rem;padding:1rem;font-size:1.05rem;width:100%}.role-selector{display:flex;gap:.5rem}.role-btn{flex:1;display:flex;align-items:center;justify-content:center;gap:.5rem;padding:.75rem .5rem;background:var(--bg-tertiary);border:1px solid var(--border-color);border-radius:8px;color:var(--text-secondary);font-size:.85rem;font-weight:600;cursor:pointer;transition:all var(--transition-fast)}.role-btn:hover{background:var(--bg-secondary);color:var(--text-primary)}.role-btn.active{background:#6366f11a;border-color:var(--accent-primary);color:var(--accent-primary)}.auth-switch{text-align:center;margin-top:1.5rem;font-size:.95rem;color:var(--text-secondary)}.text-link{background:none;border:none;color:var(--accent-primary);font-weight:600;cursor:pointer;padding:0;margin-left:.25rem;font-size:inherit;font-family:inherit}.text-link:hover{text-decoration:underline}.third-party-divider{display:flex;align-items:center;text-align:center;margin:1.5rem 0;color:var(--text-muted);font-size:.85rem}.third-party-divider:before,.third-party-divider:after{content:"";flex:1;border-bottom:1px solid var(--border-color)}.third-party-divider span{padding:0 1rem}.third-party-buttons{display:flex;flex-direction:column;gap:.75rem}.btn-third-party{display:flex;align-items:center;justify-content:center;gap:.75rem;width:100%;padding:.75rem;border-radius:12px;background:var(--bg-primary);border:1px solid var(--border-color);color:var(--text-primary);font-size:.95rem;font-weight:500;cursor:pointer;transition:all var(--transition-fast)}.btn-third-party:hover{background:var(--bg-tertiary);transform:translateY(-1px)}.btn-line:hover{border-color:#00c300;color:#00c300}.btn-google:hover,.btn-gmail:hover{border-color:#ea4335;color:#ea4335}.login-footer{margin-top:3rem;text-align:center;font-size:.85rem;color:var(--text-muted);border-top:1px solid var(--border-color);padding-top:1.5rem}@media(max-width:480px){.login-card{padding:2rem 1.5rem}.login-hero h2{font-size:1.75rem}.role-selector{flex-wrap:wrap}}.stats-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:1.25rem;margin-bottom:2rem}.stats-card{display:flex;align-items:center;gap:1.25rem;padding:1.25rem;transition:transform .3s ease,box-shadow .3s ease}.stats-card:hover{transform:translateY(-4px);box-shadow:0 12px 24px #0003}.stats-icon-wrapper{width:48px;height:48px;border-radius:12px;display:flex;align-items:center;justify-content:center;flex-shrink:0}.stats-icon-wrapper.score{background:#6366f11a;color:var(--accent-primary)}.stats-icon-wrapper.count{background:#10b9811a;color:var(--success)}.stats-icon-wrapper.trend{background:#f59e0b1a;color:var(--warning)}.stats-icon-wrapper.perfect{background:#ec48991a;color:#ec4899}.stats-info{display:flex;flex-direction:column}.stats-info label{font-size:.8rem;font-weight:600;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.05em;margin-bottom:4px}.stats-value-row{display:flex;align-items:baseline;gap:4px}.stats-value{font-size:1.75rem;font-weight:800;color:var(--text-primary)}.stats-unit{font-size:.9rem;color:var(--text-secondary);font-weight:500}.progress-mini{width:100%;height:6px;background:var(--bg-primary);border-radius:3px;margin-top:8px;overflow:hidden}.progress-mini-fill{height:100%;background:var(--accent-gradient);border-radius:3px;transition:width 1s cubic-bezier(.4,0,.2,1)}.sparkline-container{height:30px;width:100%;margin-top:8px}.sparkline-svg{width:100%;height:100%;overflow:visible}.stats-summary-empty{padding:2rem;text-align:center;color:var(--text-secondary);margin-bottom:2rem}.stats-breakdown{grid-column:1 / -1;padding:1.5rem;display:flex;flex-direction:column;gap:1.25rem}.stats-breakdown h4{font-size:1rem;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.1em;margin:0}.subject-list{display:flex;flex-direction:column;gap:1rem}.subject-row{display:flex;flex-direction:column;gap:.5rem}.subject-info{display:flex;justify-content:space-between;align-items:center}.subject-name{font-weight:600;color:var(--text-primary)}.subject-avg{font-weight:700;color:var(--accent-primary)}.subject-bar-container{height:8px;background:var(--bg-primary);border-radius:4px;overflow:hidden}.subject-bar{height:100%;border-radius:4px;transition:width 1s ease-out}@media(max-width:480px){.stats-grid{grid-template-columns:1fr 1fr}}.dashboard-container{width:100%;max-width:1000px;margin:0 auto}.dashboard-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:3rem;padding-bottom:1.5rem;border-bottom:1px solid var(--border-color)}.dashboard-header h2{font-size:2rem;background:linear-gradient(135deg,#fff,#a5b4fc);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}.start-btn{padding:.75rem 1.5rem}.history-section h3{font-size:1.25rem;margin-bottom:1.5rem;color:var(--text-secondary)}.empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:4rem 2rem;text-align:center;border-style:dashed}.empty-icon{color:var(--text-muted);margin-bottom:1.5rem}.empty-state h4{font-size:1.5rem;margin-bottom:.5rem}.empty-state p{color:var(--text-secondary);margin-bottom:2rem;max-width:300px}.history-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:1.5rem}.history-card{padding:1.5rem;cursor:pointer;transition:all var(--transition-normal);display:flex;flex-direction:column;border-left:4px solid var(--accent-primary)}.history-card:hover{transform:translateY(-4px);border-color:var(--accent-secondary);background:#8b5cf60d;box-shadow:0 10px 25px #0003}.card-top{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem}.exam-date{font-size:.85rem;color:var(--text-muted);font-weight:500}.status-badge{display:flex;align-items:center;gap:.25rem;font-size:.75rem;font-weight:700;padding:.25rem .5rem;border-radius:12px;text-transform:uppercase}.status-badge.success{background:var(--success-bg);color:var(--success)}.status-badge.warning{background:#f59e0b26;color:var(--warning)}.exam-name{font-size:1.25rem;margin-bottom:1.5rem;flex-grow:1}.card-footer{display:flex;justify-content:space-between;align-items:center;padding-top:1rem;border-top:1px solid var(--border-light)}.practice-count{font-size:.85rem;color:var(--accent-secondary);font-weight:600}.arrow-icon{color:var(--text-muted);transition:transform var(--transition-fast)}.history-card:hover .arrow-icon{color:var(--accent-primary);transform:translate(4px)}@media(max-width:768px){.dashboard-header{flex-direction:column;align-items:stretch;gap:1.5rem;margin-bottom:2rem}.dashboard-header h2{font-size:1.5rem}.history-grid{grid-template-columns:1fr}.history-card{padding:1.25rem}}.subject-badge{font-size:.7rem;font-weight:700;padding:.2rem .5rem;background:#6366f11a;color:var(--accent-primary);border-radius:6px;text-transform:uppercase}.subject-edit-row{margin-bottom:1rem}.subject-mini-select{background:transparent;border:1px solid var(--border-color);color:var(--text-secondary);font-size:.75rem;padding:.2rem .4rem;border-radius:4px;outline:none;cursor:pointer}.subject-mini-select:hover{border-color:var(--accent-primary);color:var(--text-primary)}.history-card.locked{opacity:.7;cursor:not-allowed;filter:grayscale(.5)}.history-card.pending{border:1px dashed var(--warning);background:#f59e0b0d;animation:pulse-border 2s infinite ease-in-out}@keyframes pulse-border{0%{border-color:#f59e0b4d}50%{border-color:#f59e0bcc}to{border-color:#f59e0b4d}}.spin-animation{animation:spin 1s linear infinite}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.code-display{background:var(--bg-primary);border:1px solid var(--border-color);padding:.75rem 1.25rem;border-radius:12px;display:flex;align-items:center;transition:all var(--transition-fast)}.code-display:hover{border-color:var(--accent-primary);background:#6366f10d;transform:translateY(-2px)}.subject-badge{font-size:.7rem;font-weight:700;padding:.2rem .5rem;background:#6366f11a;color:var(--accent-primary);border-radius:6px;text-transform:uppercase;margin-right:.5rem}.app-layout{max-width:1200px;margin:0 auto}.main-content{padding:0 2rem 4rem;display:flex;flex-direction:column;align-items:center;width:100%}.landing-section{width:100%;display:flex;flex-direction:column;align-items:center;animation:fadeIn .5s ease-out}.hero-text{text-align:center;max-width:600px;margin-bottom:3rem;animation:slideUp .8s ease-out}.hero-image{max-width:600px;width:100%;border-radius:24px;box-shadow:0 20px 50px #0000004d;margin:2rem 0}.hero-text h2{font-size:3rem;margin-bottom:1rem;background:linear-gradient(135deg,#fff,#a5b4fc);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}.hero-text p{font-size:1.15rem;color:var(--text-secondary)}.api-warning{margin-top:1.5rem;color:var(--error);font-weight:500;display:flex;align-items:center;gap:.5rem}.type-cards-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:1.5rem;width:100%}.type-card{background:var(--bg-tertiary);border:1px solid var(--border-color);border-radius:16px;padding:1.5rem;text-align:left;cursor:pointer;transition:all var(--transition-fast);display:flex;flex-direction:column;gap:.75rem}.type-card:hover{background:var(--bg-secondary);border-color:var(--accent-primary);transform:translateY(-4px);box-shadow:0 4px 20px #6366f126}.type-card-icon{font-size:2.5rem;margin-bottom:.5rem}.type-card h4{color:var(--text-primary);font-size:1.1rem;margin:0}.type-card p{color:var(--text-secondary);font-size:.9rem;margin:0;line-height:1.4}.analyzing-state{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:4rem 2rem;text-align:center;width:100%;max-width:600px;animation:fadeIn .3s ease-out}.loading-spinner{color:var(--accent-primary);margin-bottom:2rem;filter:drop-shadow(0 0 20px var(--accent-glow))}.spin-animation{animation:spin 2s linear infinite}.analyzing-state h3{font-size:1.75rem;margin-bottom:.5rem}.analyzing-state p{color:var(--text-secondary);margin-bottom:2.5rem}.progress-bar{width:100%;height:6px;background:var(--bg-tertiary);border-radius:10px;overflow:hidden}.progress-fill{height:100%;background:linear-gradient(90deg,var(--accent-primary),var(--accent-secondary));width:50%;border-radius:10px;animation:progressPulse 2s ease-in-out infinite alternate}.error-state{padding:3rem;text-align:center;border-left:4px solid var(--error);max-width:600px;width:100%}.error-state h3{color:var(--error);margin-bottom:1rem}.error-state p{color:var(--text-secondary);margin-bottom:2rem}.btn-retry{background:var(--bg-tertiary);color:var(--text-primary);border:1px solid var(--border-color);padding:.75rem 2rem;border-radius:12px;font-weight:600;transition:all var(--transition-fast)}.btn-retry:hover{background:var(--bg-secondary);border-color:var(--border-light)}.results-section{width:100%;display:flex;flex-direction:column;align-items:center}.btn-back{align-self:flex-start;margin-bottom:2rem;color:var(--text-secondary);font-weight:600;display:flex;align-items:center;gap:.5rem;padding:.5rem 1rem;border-radius:8px;transition:all var(--transition-fast)}.btn-back:hover{color:var(--text-primary);background:#ffffff0d}@keyframes spin{to{transform:rotate(360deg)}}@keyframes fadeIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@keyframes progressPulse{0%{width:10%}to{width:90%}}@media(max-width:768px){.main-content{padding:0 1rem 2rem}.hero-text h2{font-size:2.25rem}.hero-text{margin-bottom:2rem}.exam-metadata-input{flex-direction:column;align-items:stretch;gap:.5rem}.analyzing-state h3{font-size:1.5rem}.error-state{padding:2rem 1.5rem}}.text-gradient{background:var(--accent-gradient);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;display:inline-block}
