:root{--bg-color:#101219;--surface-color:#191b24;--surface-elevated:#22252f;--border-color:#3d435c4d;--text-primary:#e7e9ef;--text-secondary:#9099ad;--accent-gradient:linear-gradient(135deg, #995af2, #36d4e2);--success-color:#35d48a;--warning-color:#f7b23b;--error-color:#e45858;--sidebar-width:260px;--transition-speed:.2s;--radius-sm:6px;--radius-md:12px;--radius-lg:20px;--shadow-sm:0 4px 6px -1px #0000001a, 0 2px 4px -1px #0000000f;--shadow-md:0 10px 15px -3px #0000004d, 0 4px 6px -2px #00000026;--shadow-glow:0 0 15px #995af24d}*,:before,:after{box-sizing:border-box}body{background-color:var(--bg-color);color:var(--text-primary);-webkit-font-smoothing:antialiased;min-height:100vh;margin:0;padding:0;font-family:Inter,sans-serif}h1,h2,h3,h4,h5,h6{color:var(--text-primary);margin-top:0;font-weight:600}a{color:inherit;text-decoration:none}button{cursor:pointer;background:0 0;border:none;font-family:inherit}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:var(--bg-color)}::-webkit-scrollbar-thumb{background:var(--surface-elevated);border-radius:4px}::-webkit-scrollbar-thumb:hover{background:#3d435ccc}.app-layout{min-height:100vh;display:flex}.main-content{height:100vh;margin-left:var(--sidebar-width);flex:1;padding:2rem;overflow-y:auto}.page-container{max-width:1200px;margin:0 auto}.sidebar{width:var(--sidebar-width);-webkit-backdrop-filter:blur(16px);border-right:1px solid var(--border-color);z-index:100;transition:transform var(--transition-speed) ease;background-color:#191b24b3;flex-direction:column;display:flex;position:fixed;top:0;bottom:0;left:0}.sidebar-brand{background:var(--accent-gradient);-webkit-text-fill-color:transparent;-webkit-background-clip:text;align-items:center;gap:.5rem;padding:2rem 1.5rem;font-size:1.5rem;font-weight:700;display:flex}.sidebar-nav{flex-direction:column;gap:.5rem;padding:0 1rem;display:flex}.sidebar-link{border-radius:var(--radius-md);color:var(--text-secondary);transition:all var(--transition-speed) ease;align-items:center;gap:.75rem;padding:.75rem 1rem;font-weight:500;display:flex;position:relative}.sidebar-link:hover{background-color:var(--surface-elevated);color:var(--text-primary)}.sidebar-link.active{color:var(--text-primary);background-color:#995af21a}.sidebar-link.active:before{content:"";background:var(--accent-gradient);border-radius:0 4px 4px 0;width:4px;height:80%;position:absolute;top:10%;left:0}.sidebar-link svg{width:20px;height:20px}.sidebar-toggle{z-index:200;background:var(--surface-elevated);border:1px solid var(--border-color);border-radius:var(--radius-md);color:var(--text-primary);padding:.5rem;display:none;position:fixed;top:1rem;left:1rem}.sidebar-overlay{z-index:90;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#00000080;display:none;position:fixed;inset:0}.dashboard-hero{margin-bottom:3rem;animation:.5s fadeIn}.dashboard-hero h1{margin-bottom:.5rem;font-size:2.5rem}.gradient-text{background:var(--accent-gradient);-webkit-text-fill-color:transparent;-webkit-background-clip:text}.stats-row{grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:1.5rem;margin-bottom:3rem;display:grid}.stat-card{-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border:1px solid var(--border-color);border-radius:var(--radius-md);background-color:#191b2499;flex-direction:column;gap:.5rem;padding:1.5rem;display:flex}.stat-card-header{color:var(--text-secondary);align-items:center;gap:.5rem;font-size:.875rem;font-weight:500;display:flex}.stat-value{color:var(--text-primary);font-size:2rem;font-weight:700}.topics-section h2{margin-bottom:1.5rem;font-size:1.5rem}.topics-grid{grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:1.5rem;display:grid}.empty-state{text-align:center;border:1px dashed var(--border-color);border-radius:var(--radius-md);color:var(--text-secondary);background-color:#191b2466;padding:4rem 2rem}.empty-state svg{opacity:.5;width:48px;height:48px;margin-bottom:1rem}.topic-card{-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border:1px solid var(--border-color);border-radius:var(--radius-md);transition:all var(--transition-speed) ease;background-color:#191b2499;flex-direction:column;gap:1rem;padding:1.5rem;animation:.4s forwards slideUp;display:flex;position:relative;overflow:hidden}.topic-card:before{content:"";background:var(--accent-gradient);opacity:0;height:2px;transition:opacity var(--transition-speed) ease;position:absolute;top:0;left:0;right:0}.topic-card:hover{box-shadow:var(--shadow-md);border-color:#995af24d;transform:translateY(-4px)}.topic-card:hover:before{opacity:1}.topic-card-header{justify-content:space-between;align-items:flex-start;display:flex}.topic-card-header h3{margin:0;font-size:1.25rem;line-height:1.3}.topic-card-meta{color:var(--text-secondary);flex-direction:column;gap:.25rem;font-size:.875rem;display:flex}.topic-card-actions{justify-content:flex-end;margin-top:auto;display:flex}.btn-primary{background:var(--accent-gradient);color:#fff;border-radius:var(--radius-sm);transition:all var(--transition-speed) ease;justify-content:center;align-items:center;gap:.5rem;padding:.625rem 1.25rem;font-size:.875rem;font-weight:600;display:inline-flex;box-shadow:0 2px 10px #995af233}.btn-primary:hover{box-shadow:var(--shadow-glow);filter:brightness(1.1)}.btn-primary:disabled{opacity:.6;cursor:not-allowed;filter:grayscale(.5);box-shadow:none}.btn-secondary{color:var(--text-primary);border:1px solid var(--border-color);border-radius:var(--radius-sm);transition:all var(--transition-speed) ease;background:0 0;justify-content:center;align-items:center;gap:.5rem;padding:.625rem 1.25rem;font-size:.875rem;font-weight:500;display:inline-flex}.btn-secondary:hover{background:var(--surface-elevated);border-color:#8592ad4d}.btn-danger{color:var(--error-color);border-radius:var(--radius-sm);transition:all var(--transition-speed) ease;background:0 0;justify-content:center;align-items:center;padding:.5rem;display:inline-flex}.btn-danger:hover{background:#e458581a}.ingestion-page{animation:.5s fadeIn}.ingestion-card{background-color:var(--surface-color);border:1px solid var(--border-color);border-radius:var(--radius-lg);max-width:800px;margin:0 auto;padding:2rem}.form-group{margin-bottom:1.5rem}.form-label{color:var(--text-secondary);margin-bottom:.5rem;font-weight:500;display:block}.form-input,.form-select,.form-textarea{border:1px solid var(--border-color);width:100%;color:var(--text-primary);border-radius:var(--radius-sm);transition:all var(--transition-speed) ease;background-color:#0c0d1380;padding:.75rem 1rem;font-family:inherit;font-size:1rem}.form-input:focus,.form-select:focus,.form-textarea:focus{border-color:#995af2;outline:none;box-shadow:0 0 0 2px #995af233}.form-textarea{resize:vertical;min-height:200px;line-height:1.5}.file-drop-zone{border:2px dashed var(--border-color);border-radius:var(--radius-md);text-align:center;cursor:pointer;transition:all var(--transition-speed) ease;background-color:#191b244d;margin-bottom:1rem;padding:2rem}.file-drop-zone:hover,.file-drop-zone.dragover{background-color:#995af20d;border-color:#995af2}.file-drop-zone svg{width:32px;height:32px;color:var(--text-secondary);margin-bottom:.5rem}.char-count{text-align:right;color:var(--text-secondary);margin-top:.25rem;font-size:.75rem;display:block}.form-actions{gap:1rem;margin-top:2rem;display:flex}.ingestion-progress{background-color:var(--surface-elevated);border-radius:2px;height:4px;margin-top:1rem;overflow:hidden}.ingestion-progress-bar{background:var(--accent-gradient);width:30%;height:100%;animation:1.5s ease-in-out infinite indeterminateProgress}@keyframes indeterminateProgress{0%{transform:translate(-100%)}to{transform:translate(400%)}}.ingestion-result{border:1px solid var(--success-color);border-radius:var(--radius-md);background-color:#35d48a1a;margin-top:1.5rem;padding:1.5rem;animation:.4s slideUp}.study-page{flex-direction:column;gap:2rem;max-width:800px;margin:0 auto;animation:.5s fadeIn;display:flex}.study-header{flex-direction:column;gap:1rem;display:flex}.study-header-top{justify-content:space-between;align-items:center;display:flex}.study-header-top h2{margin:0;font-size:1.5rem}.progress-bar-track{background-color:var(--surface-elevated);border-radius:4px;height:8px;overflow:hidden}.progress-bar-fill{background:var(--accent-gradient);height:100%;transition:width .3s}.flashcard-container{perspective:1000px;min-height:250px}.flashcard{width:100%;height:100%;min-height:250px;transform-style:preserve-3d;transition:transform .6s cubic-bezier(.4,0,.2,1);position:relative}.flashcard.flipped{transform:rotateY(180deg)}.flashcard-face{backface-visibility:hidden;background-color:var(--surface-color);border:1px solid var(--border-color);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);flex-direction:column;padding:2rem;display:flex;position:absolute;inset:0}.flashcard-front{text-align:center;justify-content:center;align-items:center}.flashcard-front:before{content:"";background:var(--accent-gradient);border-radius:var(--radius-lg) var(--radius-lg) 0 0;height:3px;position:absolute;top:0;left:0;right:0}.flashcard-back{overflow-y:auto;transform:rotateY(180deg)}.card-question{font-size:1.25rem;font-weight:500;line-height:1.5}.card-meta{justify-content:space-between;display:flex;position:absolute;top:1rem;left:1rem;right:1rem}.difficulty-badge{text-transform:uppercase;letter-spacing:.05em;border-radius:4px;padding:.25rem .5rem;font-size:.75rem;font-weight:600}.difficulty-badge.easy{color:var(--success-color);background:#35d48a1a}.difficulty-badge.medium{color:var(--warning-color);background:#f7b23b1a}.difficulty-badge.hard{color:var(--error-color);background:#e458581a}.card-number{color:var(--text-secondary);font-size:.875rem}.answer-section{border-radius:var(--radius-lg);border:1px solid var(--border-color);background-color:#191b2466;flex-direction:column;gap:1rem;padding:1.5rem;display:flex}.answer-input-wrapper{gap:1rem;display:flex;position:relative}.answer-textarea{flex:1;min-height:120px}.voice-btn-container{flex-direction:column;align-items:center;gap:.5rem;width:60px;display:flex}.voice-btn{background-color:var(--surface-elevated);border:1px solid var(--border-color);width:50px;height:50px;color:var(--text-primary);transition:all var(--transition-speed) ease;border-radius:50%;justify-content:center;align-items:center;display:flex;position:relative}.voice-btn svg{width:24px;height:24px}.voice-btn:hover{background-color:#3d435c80}.voice-btn.listening{border-color:var(--error-color);color:var(--error-color);background-color:#e4585833;animation:1.5s infinite pulse-ring}@keyframes pulse-ring{0%{box-shadow:0 0 #e4585866}70%{box-shadow:0 0 0 10px #e4585800}to{box-shadow:0 0 #e4585800}}.voice-indicator{color:var(--error-color);text-align:center;font-size:.75rem;font-weight:500}.evaluation-card{flex-direction:column;gap:1.5rem;height:100%;display:flex}.eval-header{border-bottom:1px solid var(--border-color);justify-content:space-between;align-items:flex-start;padding-bottom:1rem;display:flex}.verdict-badge{border-radius:var(--radius-lg);text-transform:uppercase;align-items:center;gap:.5rem;padding:.5rem 1rem;font-size:.875rem;font-weight:600;display:inline-flex}.verdict-correct{color:var(--success-color);background-color:#35d48a26}.verdict-partial{color:var(--warning-color);background-color:#f7b23b26}.verdict-incorrect{color:var(--error-color);background-color:#e4585826}.score-display{font-size:1.5rem;font-weight:700}.eval-body{flex-direction:column;flex:1;gap:1rem;display:flex}.eval-section h4{color:var(--text-secondary);text-transform:uppercase;letter-spacing:.05em;margin:0 0 .5rem;font-size:.875rem}.eval-section p{margin:0;font-size:.9375rem;line-height:1.6}.missed-points{color:var(--warning-color);margin:0;padding-left:1.5rem}.missed-points li{margin-bottom:.25rem}.results-page{justify-content:center;align-items:center;min-height:calc(100vh - 4rem);animation:.5s fadeIn;display:flex}.results-card{background-color:var(--surface-color);border:1px solid var(--border-color);border-radius:var(--radius-lg);text-align:center;width:100%;max-width:600px;box-shadow:var(--shadow-md);flex-direction:column;gap:2.5rem;padding:3rem;display:flex}.results-header h2{margin-bottom:.5rem;font-size:2rem}.score-ring-container{justify-content:center;display:flex}.results-breakdown{border-top:1px solid var(--border-color);border-bottom:1px solid var(--border-color);justify-content:center;gap:2rem;padding:1.5rem 0;display:flex}.breakdown-item{flex-direction:column;align-items:center;gap:.25rem;display:flex}.breakdown-item.correct .count{color:var(--success-color)}.breakdown-item.partial .count{color:var(--warning-color)}.breakdown-item.incorrect .count{color:var(--error-color)}.breakdown-item .count{font-size:1.5rem;font-weight:700}.breakdown-item .label{color:var(--text-secondary);text-transform:uppercase;font-size:.75rem}.weak-spots-section{text-align:left}.weak-spots-section h4{color:var(--text-secondary);margin:0 0 1rem}.weak-spots-list{flex-wrap:wrap;gap:.5rem;display:flex}.weak-spot-item{color:#ed9191;border-radius:var(--radius-md);background-color:#e458581a;padding:.375rem .75rem;font-size:.875rem}.results-actions{justify-content:center;gap:1rem;display:flex}.progress-ring{transform:rotate(-90deg)}.progress-ring-bg{fill:#0000;stroke:var(--surface-elevated)}.progress-ring-fill{fill:#0000;stroke:url(#ring-gradient);stroke-linecap:round;transition:stroke-dashoffset 1s ease-out}.progress-ring-text{fill:var(--text-primary);font-family:inherit;font-weight:700;transform:rotate(90deg)}.loading-spinner{border:3px solid #995af233;border-top-color:#995af2;border-radius:50%;width:40px;height:40px;margin:2rem auto;animation:1s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.notice{border-radius:var(--radius-sm);margin-bottom:1.5rem;padding:1rem;font-size:.875rem}.notice.success{border:1px solid var(--success-color);color:#96e9c2;background-color:#35d48a1a}.notice.error{border:1px solid var(--error-color);color:#ed9191;background-color:#e458581a}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@media (width<=1024px){.page-container{padding:0 1rem}}@media (width<=768px){.app-layout{flex-direction:column}.sidebar{transform:translate(-100%)}.sidebar.open{transform:translate(0)}.sidebar-toggle,.sidebar-overlay.open{display:block}.main-content{margin-left:0;padding-top:4rem}.dashboard-hero h1{font-size:2rem}.results-card{padding:1.5rem}.results-breakdown{flex-direction:column;gap:1rem}}
