.loading-spinner{width:40px;height:40px;border:4px solid rgba(var(--color-primary-rgb),.2);border-top-color:var(--color-primary);border-radius:50%;animation:spin .8s linear infinite}.loading-spinner.small{width:20px;height:20px;border-width:2px}.loading-spinner.large{width:60px;height:60px;border-width:6px}@keyframes spin{to{transform:rotate(360deg)}}.loading-spinner.pulse{animation:pulse 1.5s ease-in-out infinite;border:none;background:var(--color-primary);opacity:.6}@keyframes pulse{0%,to{opacity:.6;transform:scale(1)}50%{opacity:1;transform:scale(1.1)}}.loading-spinner.dots{border:none;background:none;display:flex;gap:8px;align-items:center;justify-content:center}.loading-spinner.dots:before,.loading-spinner.dots:after{content:"";width:8px;height:8px;background:var(--color-primary);border-radius:50%;animation:dots-bounce 1.4s ease-in-out infinite both}.loading-spinner.dots:before{animation-delay:-.32s}.loading-spinner.dots:after{animation-delay:-.16s}@keyframes dots-bounce{0%,80%,to{transform:scale(0)}40%{transform:scale(1)}}html[data-theme=dark] .loading-spinner{border-color:rgba(var(--color-white-rgb),.2);border-top-color:var(--color-primary)}html[data-theme=dark] .loading-spinner.pulse{background:var(--color-primary)}.layout-wrapper{display:flex;height:100vh;overflow:hidden;background:var(--gradient-bg-light);position:relative}html[data-theme=dark] .layout-wrapper{background:var(--gradient-bg-dark)}.sidebar-left{width:min(17.5rem,80vw);min-width:min(17.5rem,80vw);max-width:min(17.5rem,80vw);transform:translate(calc(-100% - var(--gap-4)));transition:transform .35s cubic-bezier(.4,0,.2,1);overflow:hidden;background:var(--color-light-1);border-right:1px solid var(--color-light-3);display:flex;flex-direction:column;position:fixed;left:0;top:0;height:100vh;z-index:1000;box-shadow:none;touch-action:pan-y;pointer-events:none}html[data-theme=dark] .sidebar-left{background:var(--color-dark-1);border-right:1px solid rgba(var(--color-white-rgb),.08)}.sidebar-left.open{transform:translate(0);box-shadow:var(--shadow-light);pointer-events:auto}html[data-theme=dark] .sidebar-left.open{box-shadow:var(--shadow-dark)}.sidebar-close-mobile{position:absolute;top:var(--gap-3);right:var(--gap-3);background:var(--gradient-secondary-light);display:none;z-index:1001}.sidebar-header{padding:var(--gap-4) var(--gap-3) var(--gap-3) var(--gap-3);padding-right:var(--gap-5);border-bottom:1px solid var(--color-light-3);display:flex;align-items:center;gap:var(--gap-2)}html[data-theme=dark] .sidebar-header{border-bottom:1px solid rgba(var(--color-white-rgb),.08)}.sidebar-logo{width:2.25rem;height:2.25rem;border-radius:var(--radius-btn);filter:drop-shadow(0 2px 8px rgba(var(--color-blue-contrast-rgb),.4));flex-shrink:0}.sidebar-app-name{font-family:var(--font-heading);font-weight:var(--font-weight-bold);font-size:var(--font-size-lg);background:var(--gradient-primary);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sidebar-app-version{font-size:var(--font-size-xs);opacity:.6;margin-top:.125rem}.sidebar-nav{flex:1;overflow-y:auto;padding:var(--gap-3)}.sidebar-nav-section-title{font-size:var(--font-size-xs);font-weight:var(--font-weight-bold);opacity:.5;margin-bottom:var(--gap-1);letter-spacing:1px;text-transform:uppercase}.sidebar-nav-item{display:flex;align-items:center;gap:var(--gap-2);padding:var(--gap-1) var(--gap-2);border-radius:var(--radius-btn);text-decoration:none;color:var(--text);transition:all .2s;margin-bottom:4px}html[data-theme=dark] .sidebar-nav-item{color:var(--text-inv)}.sidebar-nav-item.hover-bg:hover{background:var(--color-light-2)}html[data-theme=dark] .sidebar-nav-item.hover-bg:hover{background:var(--color-dark-2)}.sidebar-nav-item.active{background:var(--gradient-primary);color:var(--text-inv)}.sidebar-nav-item.active span{font-weight:600}.sidebar-footer{padding:var(--gap-3);border-top:1px solid var(--color-light-3)}html[data-theme=dark] .sidebar-footer{border-top:1px solid rgba(var(--color-white-rgb),.08)}.sidebar-notifications-section{margin-bottom:var(--gap-0-5);display:flex;align-items:center;gap:var(--gap-2)}.notification-button{width:2.5rem;height:2.5rem;font-size:var(--font-size-sm);font-weight:var(--font-weight-bold);background:var(--gradient-secondary-light);position:relative}.notification-button.has-unread{background:var(--gradient-accent-rose)}.notification-badge{position:absolute;top:-.25rem;right:-.25rem;width:.75rem;height:.75rem;border-radius:50%;background:var(--color-accent-teal);border:.125rem solid var(--color-light-1);animation:ping 2s cubic-bezier(0,0,.2,1) infinite}html[data-theme=dark] .notification-badge{border-color:var(--color-dark-1)}.sidebar-actions-grid{display:grid;gap:var(--gap-1)}.sidebar-action-row{display:grid;grid-template-columns:1fr 1fr;gap:var(--gap-1)}.sidebar-action-btn{background:transparent;border:1px solid var(--color-light-3);color:var(--text-muted);transition:all .2s ease;font-size:var(--font-size-xs);padding:var(--gap-1) var(--gap-2);border-radius:var(--radius-btn);display:flex;align-items:center;gap:8px}html[data-theme=dark] .sidebar-action-btn{border-color:rgba(var(--color-white-rgb),.12);color:var(--text-inv-muted)}.sidebar-action-btn:hover{background-color:var(--color-light-2);color:var(--color-primary)}html[data-theme=dark] .sidebar-action-btn:hover{background-color:var(--color-dark-2);color:var(--color-primary)}.sidebar-action-btn.help-btn{border-color:var(--color-accent-rose);color:var(--color-accent-rose)}.sidebar-action-btn.help-btn:hover{background-color:rgba(var(--color-accent-rose-rgb),.1)}.sidebar-action-btn.logout-btn{border-color:var(--color-accent-rose);color:var(--color-accent-rose)}.sidebar-action-btn.logout-btn:hover{background-color:rgba(var(--color-accent-rose-rgb),.1)}.overlay-mobile{position:fixed;top:0;right:0;bottom:0;left:0;background:rgba(var(--color-black-rgb),.5);z-index:999}.main-content-area{flex:1;display:flex;flex-direction:column;overflow:hidden;margin-left:0;transition:margin-left .3s cubic-bezier(.4,0,.2,1)}.main-header{display:flex;align-items:center;justify-content:space-between;padding:var(--gap-1) var(--gap-2);border-bottom:1px solid var(--color-light-3);background:var(--color-light-1);box-shadow:var(--shadow-light);flex-wrap:nowrap;gap:var(--gap-1);min-height:3rem;max-height:3rem;flex-shrink:0}html[data-theme=dark] .main-header{border-bottom:1px solid rgba(var(--color-white-rgb),.08);background:var(--color-dark-1);box-shadow:var(--shadow-dark)}.main-header-toggle-button{background:var(--gradient-primary);width:2rem;height:2rem;min-width:2rem;min-height:2rem;flex-shrink:0;display:flex;align-items:center;justify-content:center}.main-header-right-panel-button{width:2rem;height:2rem;min-width:2rem;min-height:2rem;background:var(--gradient-secondary-light)}.main-header-right-panel-button.open{background:var(--gradient-primary)}.main-content-scrollable{flex:1;overflow-y:auto;padding:var(--gap-2) var(--gap-4);-webkit-overflow-scrolling:touch;margin-top:0}.sidebar-right{width:0;min-width:0;max-width:0;transition:all .3s cubic-bezier(.4,0,.2,1);overflow:hidden;background:var(--color-light-1);border-left:1px solid var(--color-light-3);position:fixed;right:0;top:0;height:100vh;z-index:1000;padding:0;overflow-y:auto;box-shadow:none;touch-action:pan-y}html[data-theme=dark] .sidebar-right{background:var(--color-dark-1);border-left:1px solid rgba(var(--color-white-rgb),.08)}.sidebar-right.open{width:min(20rem,85vw);min-width:min(20rem,85vw);max-width:100vw;padding:var(--gap-4);padding-top:90px;box-shadow:var(--shadow-light)}html[data-theme=dark] .sidebar-right.open{box-shadow:var(--shadow-dark)}@media (max-width: 768px){.sidebar-close-mobile{display:flex!important}.user-info-desktop{display:none!important}.main-content-area{margin-left:0!important}.sidebar-left,.sidebar-right{max-width:100vw}.sidebar-left.open{transform:translate(0)}.sidebar-right.open{transform:translate(0);left:auto}.main-content-scrollable{padding:var(--gap-3)}}@keyframes spin-open{0%{transform:rotate(0)}to{transform:rotate(1080deg)}}@keyframes spin-close{0%{transform:rotate(1080deg)}to{transform:rotate(0)}}:root{--font-body: "Visby Round", system-ui, -apple-system, Segoe UI, Roboto, sans-serif;--font-heading: "Visby Round", sans-serif;--color-primary: #5E3AFF;--color-primary-strong: #6A4DFF;--color-blue-contrast: #6EC1FF;--color-accent-rose: #FF6EA8;--color-accent-teal: #3DE1C6;--color-dark-1: #111318;--color-dark-2: #151728;--color-dark-3: #1A132B;--color-light-1: #F5F6FF;--color-light-2: #E9EDFF;--color-light-3: #DCE8FF;--text-strong: #0E0F12;--text: #1B1C21;--text-muted: #5A5D66;--text-inv: #FFFFFF;--text-inv-muted: #C7C9D3;--color-orange: #FF9800;--color-gold: #FFD700;--color-success: #10B981;--color-warning: #F59E0B;--color-error: #EF4444;--color-info: #3B82F6;--color-white: #FFFFFF;--color-black: #000000;--color-near-black: #0F0B16;--color-near-white: #FBFAFE;--gradient-bg-light: linear-gradient(135deg, var(--color-light-1), var(--color-light-2), var(--color-light-3));--gradient-bg-dark: linear-gradient(135deg, var(--color-dark-1), var(--color-dark-2), var(--color-dark-3));--gradient-primary: linear-gradient(180deg, var(--color-primary-strong), var(--color-primary));--gradient-secondary-light: linear-gradient(180deg, var(--color-blue-contrast), rgba(var(--color-blue-contrast-rgb), .8));--gradient-secondary-dark: linear-gradient(180deg, rgba(var(--color-dark-2-rgb, 42, 55, 82), 1), rgba(var(--color-dark-3-rgb, 32, 50, 71), 1));--gradient-accent-yellow: linear-gradient(135deg, var(--color-gold), rgba(var(--color-orange-rgb), .8));--gap-1: 8px;--gap-2: 12px;--gap-3: 16px;--gap-4: 24px;--gap-5: 32px;--radius-card: 16px;--radius-btn: 12px;--radius-input: 10px;--radius-sm: 6px;--shadow-light: 0 8px 30px rgba(30, 46, 80, .12);--shadow-dark: 0 8px 30px rgba(0,0,0,.35);--color-primary-rgb: 94, 58, 255;--color-primary-strong-rgb: 106, 77, 255;--color-blue-contrast-rgb: 110, 193, 255;--color-accent-rose-rgb: 255, 110, 168;--color-accent-teal-rgb: 61, 225, 198;--color-orange-rgb: 255, 152, 0;--color-gold-rgb: 255, 215, 0;--color-success-rgb: 16, 185, 129;--color-warning-rgb: 245, 158, 11;--color-error-rgb: 239, 68, 68;--color-info-rgb: 59, 130, 246;--color-white-rgb: 255, 255, 255;--color-black-rgb: 0, 0, 0;--font-size-xs: clamp(.625rem, 1.5vw, .75rem);--font-size-sm: clamp(.75rem, 2vw, .875rem);--font-size-base: clamp(.875rem, 2.5vw, 1rem);--font-size-lg: clamp(1rem, 3vw, 1.125rem);--font-size-xl: clamp(1.125rem, 3.5vw, 1.25rem);--font-size-2xl: clamp(1.25rem, 4vw, 1.5rem);--font-size-3xl: clamp(1.5rem, 5vw, 1.875rem);--font-size-4xl: clamp(1.875rem, 6vw, 2.25rem);--font-size-xxs: .625rem;--font-weight-normal: 400;--font-weight-medium: 500;--font-weight-semibold: 600;--font-weight-bold: 700;--font-weight-extrabold: 800}html[data-theme=dark]{--text-strong: #F9FAFF;--text: #E6EBFF;--text-muted: rgba(229, 233, 255, .68);--text-inv: #FFFFFF;--text-inv-muted: rgba(231, 233, 255, .6)}@keyframes spin-gradient{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes pulse-glow{0%,to{opacity:1;filter:drop-shadow(0 0 8px var(--color-primary))}50%{opacity:.6;filter:drop-shadow(0 0 16px var(--color-primary))}}@keyframes bell-ring{0%,to{transform:rotate(0)}10%,30%{transform:rotate(-10deg)}20%,40%{transform:rotate(10deg)}50%{transform:rotate(0)}}@keyframes badge-pulse{0%,to{transform:scale(1);box-shadow:0 0 12px currentColor}50%{transform:scale(1.1);box-shadow:0 0 20px currentColor}}@keyframes dot-bounce{0%,80%,to{transform:scale(.8) translateY(0);opacity:.5}40%{transform:scale(1.2) translateY(-8px);opacity:1}}@keyframes wave{0%,40%,to{transform:scaleY(.4)}20%{transform:scaleY(1)}}@keyframes rotate-glow{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes pulse-ring{0%,to{transform:scale(1);opacity:.6}50%{transform:scale(1.1);opacity:.3}}@keyframes shimmer{0%{background-position:-1000px 0}to{background-position:1000px 0}}@keyframes progress-fill{0%{transform:scaleX(0)}to{transform:scaleX(1)}}@keyframes fade-in-up{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@keyframes fade-in-down{0%{opacity:0;transform:translateY(-20px)}to{opacity:1;transform:translateY(0)}}@keyframes fade-in-left{0%{opacity:0;transform:translate(-20px)}to{opacity:1;transform:translate(0)}}@keyframes fade-in-right{0%{opacity:0;transform:translate(20px)}to{opacity:1;transform:translate(0)}}@keyframes scale-in{0%{opacity:0;transform:scale(.9)}to{opacity:1;transform:scale(1)}}@keyframes slide-in-bottom{0%{transform:translateY(100%)}to{transform:translateY(0)}}@keyframes bounce-soft{0%,to{transform:translateY(0)}50%{transform:translateY(-4px)}}@keyframes shake{0%,to{transform:translate(0)}10%,30%,50%,70%,90%{transform:translate(-4px)}20%,40%,60%,80%{transform:translate(4px)}}@keyframes ping{0%{transform:scale(1);opacity:1}75%,to{transform:scale(1.5);opacity:0}}@keyframes notification-pop{0%{transform:scale(.8) translateY(10px);opacity:0}50%{transform:scale(1.05)}to{transform:scale(1) translateY(0);opacity:1}}@keyframes ripple{0%{transform:scale(0);opacity:.6}to{transform:scale(2);opacity:0}}@keyframes button-press{0%,to{transform:scale(1)}50%{transform:scale(.95)}}@keyframes gradient-shift{0%,to{background-position:0% 50%}50%{background-position:100% 50%}}@keyframes float-slow{0%,to{transform:translateY(0) rotate(0)}50%{transform:translateY(-10px) rotate(2deg)}}@keyframes float-medium{0%,to{transform:translateY(0) translate(0)}33%{transform:translateY(-8px) translate(4px)}66%{transform:translateY(-4px) translate(-4px)}}.animate-fade-in{animation:fade-in-up .4s cubic-bezier(.4,0,.2,1)}.animate-fade-in-fast{animation:fade-in-up .2s cubic-bezier(.4,0,.2,1)}.animate-scale-in{animation:scale-in .3s cubic-bezier(.4,0,.2,1)}.animate-bounce{animation:bounce-soft 2s ease-in-out infinite}.animate-pulse{animation:pulse-glow 2s ease-in-out infinite}.animate-float{animation:float-slow 6s ease-in-out infinite}.animate-gradient{background-size:200% 200%;animation:gradient-shift 4s ease infinite}.delay-100{animation-delay:.1s}.delay-200{animation-delay:.2s}.delay-300{animation-delay:.3s}.delay-400{animation-delay:.4s}.delay-500{animation-delay:.5s}.skeleton{background:linear-gradient(90deg,#ffffff0d 25%,#ffffff26,#ffffff0d 75%);background-size:1000px 100%;animation:shimmer 2s infinite linear;border-radius:var(--radius-card)}.transition-fast{transition:all .15s cubic-bezier(.4,0,.2,1)}.transition-normal{transition:all .3s cubic-bezier(.4,0,.2,1)}.transition-slow{transition:all .5s cubic-bezier(.4,0,.2,1)}.hover-lift{transition:all .2s cubic-bezier(.4,0,.2,1)}.hover-lift:hover{transform:translateY(-2px);box-shadow:0 8px 24px #0000004d}.hover-glow{transition:all .2s cubic-bezier(.4,0,.2,1)}.hover-glow:hover{filter:brightness(1.1) drop-shadow(0 0 12px currentColor)}.hover-scale{transition:all .2s cubic-bezier(.4,0,.2,1)}.hover-scale:hover{transform:scale(1.05)}.notification-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:rgba(var(--color-black-rgb),.5);z-index:9998}.notification-panel{position:fixed;top:0;right:0;width:100%;max-width:26.25rem;height:100vh;background:var(--color-light-1);box-shadow:var(--shadow-light);z-index:9999;display:flex;flex-direction:column;overflow:hidden}html[data-theme=dark] .notification-panel{background:var(--color-dark-1);box-shadow:var(--shadow-dark)}.notification-panel-header{padding:var(--gap-4) var(--gap-4) var(--gap-3) var(--gap-4);padding-right:var(--gap-5);border-bottom:1px solid var(--color-light-3);display:flex;align-items:center;justify-content:space-between;position:relative}html[data-theme=dark] .notification-panel-header{border-bottom:1px solid rgba(var(--color-white-rgb),.08)}.notification-panel-title{font-size:var(--font-size-lg);font-weight:var(--font-weight-bold);margin:0;margin-bottom:var(--gap-1)}.notification-panel-unread-count{font-size:var(--font-size-xs);opacity:.6;margin:0}.notification-panel-close-btn{background:var(--gradient-secondary-light);position:absolute;top:var(--gap-3);right:var(--gap-3);z-index:10}.notification-panel-filters{padding:var(--gap-3) var(--gap-4);display:flex;gap:var(--gap-1);border-bottom:1px solid var(--color-light-3)}html[data-theme=dark] .notification-panel-filters{border-bottom:1px solid rgba(var(--color-white-rgb),.08)}.notification-filter-btn{flex:1}.notification-panel-actions{padding:var(--gap-2) var(--gap-4);border-bottom:1px solid var(--color-light-3)}html[data-theme=dark] .notification-panel-actions{border-bottom:1px solid rgba(var(--color-white-rgb),.08)}.notification-mark-all-read-btn{width:100%;font-size:var(--font-size-xs);display:flex;align-items:center;justify-content:center;gap:var(--gap-1)}.notification-permission-prompt{padding:var(--gap-2) var(--gap-4);background:rgba(var(--color-primary-rgb),.1);border-bottom:1px solid var(--color-light-3)}html[data-theme=dark] .notification-permission-prompt{border-bottom:1px solid rgba(var(--color-white-rgb),.08)}.notification-permission-text{font-size:var(--font-size-xs);margin-bottom:var(--gap-1);opacity:.9}.notification-permission-btn{width:100%;font-size:var(--font-size-xs);display:flex;align-items:center;justify-content:center;gap:var(--gap-1)}.notification-list-container{flex:1;overflow-y:auto;padding:var(--gap-3) var(--gap-4)}.notification-empty-state{text-align:center;padding:var(--gap-5) var(--gap-4)}.notification-empty-state-text{font-size:var(--font-size-sm);opacity:.6}.notification-grid{display:grid;gap:var(--gap-2)}.notification-card{padding:var(--gap-2);opacity:1;border-left:3px solid;cursor:pointer}.notification-card.read{opacity:.6}.notification-content-wrapper{display:flex;gap:var(--gap-2);align-items:flex-start}.notification-icon-wrapper{width:2.25rem;height:2.25rem;border-radius:50%;display:flex;align-items:center;justify-content:center;flex-shrink:0}.notification-text-content{flex:1}.notification-title-row{display:flex;align-items:center;gap:var(--gap-1);margin-bottom:var(--gap-1)}.notification-title{font-size:var(--font-size-sm);font-weight:var(--font-weight-bold);margin:0}.notification-unread-dot{width:.5rem;height:.5rem;border-radius:50%;flex-shrink:0}.notification-message{font-size:var(--font-size-xs);opacity:.8;margin:0;margin-bottom:var(--gap-1)}.notification-timestamp{font-size:var(--font-size-xxs);opacity:.5}.notification-delete-btn{width:1.75rem;height:1.75rem;background:rgba(var(--color-accent-rose-rgb),.15);flex-shrink:0}@keyframes slide-in-right{0%{transform:translate(100%)}to{transform:translate(0)}}.animate-slide-in-right{animation:slide-in-right .3s cubic-bezier(.4,0,.2,1)}.app-clock{padding:var(--gap-3);border-radius:var(--radius-card);background:var(--color-bg-primary);border:1px solid var(--color-border);box-shadow:var(--shadow-light)}.app-clock-header h3{font-size:var(--font-size-lg);font-weight:var(--font-weight-semibold);margin-bottom:var(--gap-3);color:var(--text-strong)}.app-clock-body,.app-clock-info{display:flex;flex-direction:column;gap:var(--gap-2)}.app-clock-item{display:flex;justify-content:space-between;align-items:center;padding:var(--gap-2);border-radius:var(--radius-sm);background:var(--color-bg-secondary);transition:all .2s ease}.app-clock-item:hover{background:var(--color-bg-tertiary);transform:translate(2px)}.app-clock-label{font-size:var(--font-size-sm);color:var(--text-muted);font-weight:var(--font-weight-medium)}.app-clock-value{font-size:var(--font-size-sm);color:var(--text-strong);font-weight:var(--font-weight-semibold);font-family:Courier New,monospace}.app-clock-compact{display:inline-flex;align-items:center;gap:var(--gap-2);padding:var(--gap-1) var(--gap-2);border-radius:var(--radius-sm);background:var(--color-bg-secondary);border:1px solid var(--color-border);font-size:var(--font-size-xs);color:var(--text-muted)}.app-clock-version{font-weight:var(--font-weight-semibold);color:var(--color-primary)}.app-clock-time{font-family:Courier New,monospace;color:var(--text)}html[data-theme=dark] .app-clock{background:var(--color-bg-primary);border-color:var(--color-border)}html[data-theme=dark] .app-clock-item{background:var(--color-bg-secondary)}html[data-theme=dark] .app-clock-item:hover{background:var(--color-bg-tertiary)}@media (max-width: 768px){.app-clock{padding:var(--gap-2)}.app-clock-item{flex-direction:column;align-items:flex-start;gap:var(--gap-1)}.app-clock-compact{flex-direction:column;gap:var(--gap-1);text-align:center}}.exam-score-screen{max-width:800px;margin:0 auto;padding:32px 24px;min-height:100vh}.score-header{text-align:center;margin-bottom:48px;animation:fade-in .6s ease-out}.score-percentage-container{display:flex;flex-direction:column;align-items:center;gap:16px}.score-circle{width:200px;height:200px;border-radius:50%;background:var(--gradient-primary);display:flex;align-items:center;justify-content:center;box-shadow:0 16px 48px rgba(var(--color-primary-rgb),.4);position:relative;animation:scale-in .8s cubic-bezier(.34,1.56,.64,1)}.score-circle:before{content:"";position:absolute;top:-4px;right:-4px;bottom:-4px;left:-4px;border-radius:50%;background:var(--gradient-primary);opacity:.3;filter:blur(12px);z-index:-1;animation:pulse-ring 2s ease-in-out infinite}.score-circle span{font-size:72px;font-weight:900;color:var(--text-inv);text-shadow:0 4px 12px rgba(var(--color-black-rgb),.3)}.score-label{font-size:20px;font-weight:700;opacity:.9;color:var(--text-strong)}html[data-theme=dark] .score-label{color:var(--text-inv)}.score-content{display:flex;flex-direction:column;gap:0}.score-toast{will-change:transform,opacity}.toast-visible{animation:toast-enter .5s cubic-bezier(.34,1.56,.64,1) forwards}.level-up-toast{animation:level-up-pulse 2s ease-in-out infinite}@keyframes fade-in{0%{opacity:0;transform:translateY(-20px)}to{opacity:1;transform:translateY(0)}}@keyframes scale-in{0%{transform:scale(0);opacity:0}to{transform:scale(1);opacity:1}}@keyframes pulse-ring{0%,to{transform:scale(1);opacity:.3}50%{transform:scale(1.1);opacity:.1}}@keyframes toast-enter{0%{transform:translateY(20px) scale(.95);opacity:0}to{transform:translateY(0) scale(1);opacity:1}}@keyframes level-up-pulse{0%,to{box-shadow:0 8px 24px rgba(var(--color-warning-rgb),.3)}50%{box-shadow:0 8px 32px rgba(var(--color-warning-rgb),.6)}}@keyframes pulse-glow{0%,to{box-shadow:0 0 20px rgba(var(--color-warning-rgb),.5)}50%{box-shadow:0 0 40px rgba(var(--color-warning-rgb),.8)}}@media (max-width: 768px){.exam-score-screen{padding:24px 16px}.score-circle{width:160px;height:160px}.score-circle span{font-size:56px}.score-label{font-size:16px}}.exam-results-container{padding:var(--gap-4);max-width:1200px;margin:0 auto;display:flex;flex-direction:column;gap:var(--gap-4)}.exam-results-header{text-align:center}.exam-results-header h1{font-size:28px;font-weight:700;margin-bottom:var(--gap-4);background:var(--gradient-primary);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.score-summary{display:flex;flex-direction:column;align-items:center;gap:var(--gap-4);margin-top:var(--gap-4)}.score-circle{width:120px;height:120px;border-radius:50%;background:var(--gradient-primary);display:flex;flex-direction:column;align-items:center;justify-content:center;box-shadow:var(--shadow-light)}.score-number{font-size:36px;font-weight:700;color:var(--text-inv)}.score-label{font-size:14px;color:var(--text-inv);opacity:.9}.score-details{display:flex;gap:var(--gap-4);flex-wrap:wrap;justify-content:center}.score-stat{display:flex;align-items:center;gap:var(--gap-2);padding:var(--gap-2) var(--gap-3);border-radius:var(--radius-btn);font-size:14px}.score-stat.correct{background:rgba(var(--color-success-rgb),.1);color:var(--color-success)}.score-stat.incorrect{background:rgba(var(--color-error-rgb),.1);color:var(--color-error)}.stat-icon{display:inline-block}.stat-label{font-weight:600}.stat-value{font-weight:700;font-size:16px}.results-questions-list{display:flex;flex-direction:column;gap:var(--gap-3)}.result-question{padding:var(--gap-4)}.result-question.correct{border-left:4px solid var(--color-success)}.result-question.incorrect{border-left:4px solid var(--color-warning)}.question-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--gap-2)}.question-number{font-weight:600;color:var(--text-muted);font-size:14px}.result-badge{display:inline-flex;align-items:center;padding:4px 12px;border-radius:var(--radius-btn);font-size:12px;font-weight:600}.result-badge.correct{background:rgba(var(--color-success-rgb),.1);color:var(--color-success)}.result-badge.incorrect{background:rgba(var(--color-warning-rgb),.1);color:var(--color-warning)}.question-text{margin-bottom:var(--gap-3);font-size:16px;line-height:1.6}.question-metadata{display:flex;gap:var(--gap-2);flex-wrap:wrap;margin-bottom:var(--gap-3)}.badge{padding:4px 8px;border-radius:6px;font-size:11px;font-weight:600;text-transform:uppercase}.badge-methodology{background:rgba(var(--color-primary-rgb),.1);color:var(--color-primary)}.badge-difficulty{background:rgba(var(--color-blue-contrast-rgb),.1);color:var(--color-blue-contrast)}.badge-type{background:rgba(var(--color-accent-teal-rgb),.1);color:var(--color-accent-teal)}.badge-score{background:rgba(var(--color-gold-rgb),.1);color:var(--color-gold)}.answer-compare{display:flex;flex-direction:column;gap:var(--gap-2);margin-top:var(--gap-3)}.compare-row{display:flex;justify-content:space-between;align-items:center;padding:var(--gap-2) var(--gap-3);border-radius:var(--radius-input);font-size:14px}.compare-row.correct{background:rgba(var(--color-success-rgb),.1);color:var(--color-success)}.compare-row.incorrect{background:rgba(var(--color-error-rgb),.1);color:var(--color-error)}.compare-label{font-weight:600}.compare-value{font-weight:500}.open-feedback{margin-top:var(--gap-3)}.score-chip{display:inline-block;padding:8px 16px;border-radius:var(--radius-btn);background:var(--gradient-primary);color:var(--text-inv);font-weight:700;font-size:16px;margin-bottom:var(--gap-2)}.ai-feedback{padding:var(--gap-3);background:rgba(var(--color-blue-contrast-rgb),.08);border-radius:var(--radius-input);border-left:3px solid var(--color-blue-contrast);margin:var(--gap-2) 0;line-height:1.6}.open-user-answer{margin-top:var(--gap-2);padding:var(--gap-2);background:var(--color-light-2);border-radius:var(--radius-input)}.open-user-answer strong{display:block;margin-bottom:var(--gap-1);font-size:13px;color:var(--text-muted)}.open-user-answer p{margin:0;line-height:1.6}.question-explanation{margin-top:var(--gap-3);padding:var(--gap-3);background:rgba(var(--color-warning-rgb),.08);border-radius:var(--radius-input);border-left:3px solid var(--color-warning)}.question-explanation strong{display:flex;align-items:center;gap:var(--gap-1);margin-bottom:var(--gap-2);font-size:14px;color:var(--color-warning)}.question-explanation p{margin:0;line-height:1.6;font-size:14px}.results-footer{margin-top:var(--gap-4);padding-top:var(--gap-4);border-top:1px solid var(--color-light-3)}html[data-theme=dark] .exam-results-container{color:var(--text)}html[data-theme=dark] .exam-results-header h1{color:var(--text-strong)}html[data-theme=dark] .score-circle{box-shadow:var(--shadow-dark),0 0 20px rgba(var(--color-primary-rgb),.4)}html[data-theme=dark] .result-question{background:var(--color-bg-primary);border-color:var(--color-border);color:var(--text)}html[data-theme=dark] .result-question.correct{border-left-color:var(--color-success);background:rgba(var(--color-success-rgb),.05)}html[data-theme=dark] .result-question.incorrect{border-left-color:var(--color-warning);background:rgba(var(--color-warning-rgb),.05)}html[data-theme=dark] .question-text{color:var(--text)}html[data-theme=dark] .question-number{color:var(--text-muted)}html[data-theme=dark] .open-user-answer{background:var(--color-bg-secondary);border-color:var(--color-border);color:var(--text)}html[data-theme=dark] .open-user-answer strong{color:var(--text-muted)}html[data-theme=dark] .open-user-answer p{color:var(--text)}html[data-theme=dark] .results-footer{border-top-color:var(--color-border)}
