:root{--md-primary:#ffc84d;--md-primary-bright:#ffd87f;--md-primary-dark:#e0a82e;--md-amber:#ffc84d;--md-amber-bright:#ffd87f;--md-amber-light:#ffe3a6;--md-amber-muted:#c79a2b;--md-amber-pressed:#c7961f;--md-accent:#ffc84d;--md-highlight:#ffe3a6;--md-primary-container:#4b3a12;--md-on-primary:#241800;--md-on-primary-container:#ffe3a6;--md-secondary:#262c33;--md-secondary-container:#3a3322;--md-on-secondary:#e7eaee;--md-on-secondary-container:#ffe3a6;--md-surface-container-lowest:#0b0d10;--md-surface-container-low:#12151a;--md-surface:#15181d;--md-surface-variant:#1b1f25;--md-surface-container:#1b1f25;--md-surface-container-high:#20262c;--md-surface-container-highest:#29303a;--md-on-surface:#e7eaee;--md-on-surface-variant:#9aa2ab;--md-outline:#3c434b;--md-outline-variant:#262c33;--md-warning:#ffc84d;--md-warning-container:#4b3a12;--md-error:#ff6b6e;--md-error-container:#3e1c1e;--md-success:#5fcb7a;--md-success-container:#1a3a23;--md-elevation-1:0 1px 2px #00000080, 0 1px 3px 1px #0000004d;--md-elevation-2:0 2px 6px 2px #00000052, 0 1px 2px #0000006b;--md-elevation-3:0 4px 8px 3px #0000005c, 0 2px 4px #0006;--md-shape-xs:6px;--md-shape-sm:8px;--md-shape-md:12px;--md-shape-lg:16px;--md-shape-xl:20px;--md-shape-full:999px}*{box-sizing:border-box;margin:0;padding:0}html{background:var(--md-surface-container-lowest)}body{background:radial-gradient(1100px 700px at 75% -10%, #ffc84d0e, transparent 60%), radial-gradient(900px 600px at -5% 110%, #5fcb7a09, transparent 55%), var(--md-surface-container-lowest);color:var(--md-on-surface);--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;min-height:100vh;font-family:Nunito,system-ui,-apple-system,sans-serif}::selection{background:var(--md-primary);color:#000}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:var(--md-surface-container-highest);border-radius:var(--md-shape-full);border:2px solid var(--md-surface-container-lowest)}::-webkit-scrollbar-thumb:hover{background:var(--md-outline)}h1,h2,h3,h4,h5{letter-spacing:-.01em;font-family:Nunito,sans-serif}.md-btn{border-radius:var(--md-shape-full);border:1px solid var(--md-outline-variant);letter-spacing:.2px;cursor:pointer;color:var(--md-primary);background:0 0;justify-content:center;align-items:center;gap:8px;padding:10px 22px;font-family:Nunito,sans-serif;font-size:13px;font-weight:700;line-height:1.2;text-decoration:none;transition:background .15s,color .15s,border-color .15s,box-shadow .2s,transform .1s;display:inline-flex}.md-btn:hover{border-color:var(--md-primary);background:#ffc84d14}.md-btn:active{transform:translateY(1px)}.md-btn:focus-visible{outline:2px solid var(--md-highlight);outline-offset:2px}.md-btn-filled{background:var(--md-primary);border:1px solid var(--md-primary);color:var(--md-on-primary);box-shadow:var(--md-elevation-1)}.md-btn-filled:hover{background:var(--md-primary-bright);border-color:var(--md-primary-bright);box-shadow:var(--md-elevation-2);color:var(--md-on-primary)}.md-btn-filled-secondary{background:var(--md-surface-container-high);border:1px solid var(--md-outline-variant);color:var(--md-on-surface)}.md-btn-filled-secondary:hover{background:var(--md-surface-container-highest);border-color:var(--md-outline);color:var(--md-on-surface)}.md-btn-tonal{background:var(--md-primary-container);color:var(--md-on-primary-container);border:1px solid #0000}.md-btn-tonal:hover{color:var(--md-on-primary-container);background:#553f16;border-color:#0000}.md-btn-outlined{border:1px solid var(--md-outline);color:var(--md-primary);background:0 0}.md-btn-outlined:hover{border-color:var(--md-primary);background:#ffc84d14}.md-btn:disabled{opacity:.45;cursor:not-allowed;box-shadow:none;background:var(--md-surface-container-high);border-color:var(--md-outline-variant);color:var(--md-on-surface-variant);transform:none}.md-field{width:100%;position:relative}.md-field label{color:var(--md-on-surface-variant);pointer-events:none;letter-spacing:.2px;padding:0;font-family:Nunito,sans-serif;font-size:13px;transition:all .18s;position:absolute;top:17px;left:14px}.md-field input{border:1px solid var(--md-outline-variant);border-radius:var(--md-shape-md);width:100%;color:var(--md-on-surface);background:var(--md-surface-container-high);caret-color:var(--md-primary);outline:none;padding:23px 14px 9px;font-family:Nunito,sans-serif;font-size:15px;font-weight:500;transition:border-color .15s,box-shadow .2s,background .2s}.md-field input:hover{border-color:var(--md-outline)}.md-field input:focus{border-color:var(--md-primary);box-shadow:0 0 0 3px #ffc84d29}.md-field input:focus+label,.md-field input:not(:placeholder-shown)+label{letter-spacing:.6px;text-transform:uppercase;color:var(--md-primary);background:var(--md-surface-container-low);border-radius:var(--md-shape-xs);padding:0 6px;font-size:11px;font-weight:800;top:-9px;left:12px}.md-card{background:var(--md-surface);border:1px solid var(--md-outline-variant);border-radius:var(--md-shape-lg);box-shadow:var(--md-elevation-1);padding:24px}.md-card-elevated{box-shadow:var(--md-elevation-2);border-color:var(--md-outline-variant)}.md-top-app-bar{z-index:50;-webkit-backdrop-filter:blur(14px);border-bottom:1px solid var(--md-outline-variant);min-height:60px;color:var(--md-on-surface);background:#12151ad1;align-items:center;gap:12px;padding:12px 28px;display:flex;position:sticky;top:0}.md-top-app-bar h1{letter-spacing:.4px;flex:1;font-family:Varela Round,Nunito,sans-serif;font-size:21px;font-weight:700}.md-table-container{border:1px solid var(--md-outline-variant);border-radius:var(--md-shape-md);background:var(--md-surface);width:100%;overflow-x:auto}.md-table{border-collapse:collapse;width:100%;font-size:14px}.md-table th{background:var(--md-surface-container-high);color:var(--md-on-surface-variant);text-align:left;white-space:nowrap;text-transform:uppercase;letter-spacing:.5px;border-bottom:1px solid var(--md-outline-variant);padding:14px 16px;font-family:Nunito,sans-serif;font-size:12px;font-weight:700}.md-table td{border-bottom:1px solid var(--md-outline-variant);padding:13px 16px}.md-table tr:last-child td{border-bottom:none}.md-table tbody tr{transition:background .12s}.md-table tbody tr:hover td{background:var(--md-surface-container-low)}.md-table .term-header{background:var(--md-primary-container);color:var(--md-on-primary-container);text-align:center;text-transform:uppercase;letter-spacing:.5px;font-size:12px;font-weight:800}.md-chip{border-radius:var(--md-shape-full);letter-spacing:.3px;justify-content:center;align-items:center;gap:6px;padding:6px 14px;font-family:Nunito,sans-serif;font-size:12px;font-weight:800;display:inline-flex}.md-chip-pass{background:var(--md-success-container);color:var(--md-success);border:1px solid #5fcb7a59}.md-chip-fail{background:var(--md-error-container);color:var(--md-error);border:1px solid #ff6b6e59}.md-upload-zone{border:2px dashed var(--md-outline);border-radius:var(--md-shape-lg);text-align:center;cursor:pointer;background:var(--md-surface-container-low);padding:34px 24px;transition:all .2s}.md-upload-zone:hover{border-color:var(--md-primary);background:var(--md-surface-container)}.md-upload-zone.dragging{border-color:var(--md-primary);background:#ffc84d14}.md-snackbar{background:var(--md-surface-container-highest);color:var(--md-on-surface);border-radius:var(--md-shape-lg);border:1px solid var(--md-outline-variant);box-shadow:var(--md-elevation-3);z-index:1000;padding:14px 24px;font-family:Nunito,sans-serif;font-size:14px;font-weight:600;animation:.3s snackIn;position:fixed;bottom:28px;left:50%;transform:translate(-50%)}.md-snackbar.error{background:var(--md-error-container);color:#ffb4b6;border-color:#ff6b6e66}@keyframes snackIn{0%{opacity:0;transform:translate(-50%)translateY(16px)}to{opacity:1;transform:translate(-50%)translateY(0)}}.modal-backdrop{-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);z-index:900;background:#0000008c;justify-content:center;align-items:center;padding:24px;animation:.2s modalBackdropIn;display:flex;position:fixed;inset:0}.modal-card{background:var(--md-surface-container);color:var(--md-on-surface);border:1px solid var(--md-outline-variant);border-radius:var(--md-shape-lg);box-shadow:var(--md-elevation-3);width:100%;padding:24px;animation:.25s modalCardIn}@keyframes modalBackdropIn{0%{opacity:0}to{opacity:1}}@keyframes modalCardIn{0%{opacity:0;transform:scale(.96)translateY(12px)}to{opacity:1;transform:scale(1)translateY(0)}}.md-tabs{border-radius:var(--md-shape-lg);background:var(--md-surface-container-low);border:1px solid var(--md-outline-variant);gap:8px;margin-bottom:24px;padding:4px;display:flex}.md-tab{border-radius:var(--md-shape-md);color:var(--md-on-surface-variant);cursor:pointer;white-space:nowrap;background:0 0;border:none;flex:1;padding:10px 16px;font-family:Nunito,sans-serif;font-size:13px;font-weight:700;transition:color .15s,background .15s}.md-tab:hover{color:var(--md-on-surface);background:var(--md-surface-container-high)}.md-tab.active{color:var(--md-on-primary-container);background:var(--md-primary-container);box-shadow:var(--md-elevation-1)}.md-divider{background:var(--md-outline-variant);height:1px;margin:20px 0}.md-badge{border-radius:var(--md-shape-full);background:var(--md-primary-container);color:var(--md-on-primary-container);align-items:center;padding:4px 12px;font-family:Nunito,sans-serif;font-size:12px;font-weight:700;display:inline-flex}.page-container{max-width:1180px;margin:0 auto;padding:28px 24px 56px}.page-container>.md-card{margin-bottom:20px}.flex-between{justify-content:space-between;align-items:center;gap:16px;display:flex}.flex-col{flex-direction:column;gap:16px;display:flex}.grade-pass{color:var(--md-success)}.grade-fail{color:var(--md-error)}@keyframes bounce{0%{transform:translateY(0)}to{transform:translateY(-4px)}}@keyframes shake{0%,to{transform:translate(0)}25%{transform:translate(-3px)}75%{transform:translate(3px)}}@keyframes pulse{0%{transform:translate(-50%,-50%)scale(1)}to{transform:translate(-50%,-50%)scale(1.05)}}@keyframes confettiFall{0%{opacity:1;transform:translateY(-20px)rotate(0)}to{opacity:0;transform:translateY(80px)rotate(360deg)}}.confetti{border-radius:var(--md-shape-xs);width:8px;height:8px;animation:linear infinite confettiFall;position:absolute;top:-10px}.status-gif{border-radius:var(--md-shape-md);object-fit:contain;border:1px solid var(--md-outline-variant);height:52px}.grade-progress-bar{background:var(--md-surface-container-highest);border-radius:var(--md-shape-full);border:1px solid var(--md-outline-variant);width:100%;height:10px;position:relative;overflow:hidden}.grade-progress-fill{border-radius:var(--md-shape-full);height:100%;transition:width .5s cubic-bezier(.4,0,.2,1);box-shadow:0 0 6px #0000004d}.grade-progress-fill.high{background:linear-gradient(90deg, #4fb86b, var(--md-success))}.grade-progress-fill.mid{background:linear-gradient(90deg, var(--md-amber-pressed), var(--md-amber))}.grade-progress-fill.low{background:linear-gradient(90deg, #d8454a, var(--md-error))}.score-pill{border-radius:var(--md-shape-full);background:var(--md-surface-container-high);border:1px solid var(--md-outline-variant);align-items:center;gap:6px;padding:4px 12px;font-family:Nunito,sans-serif;font-size:12px;font-weight:700;display:inline-flex}.score-pill.high{color:var(--md-success);border-color:#5fcb7a66}.score-pill.mid{color:var(--md-amber);border-color:#ffc84d66}.score-pill.low{color:var(--md-error);border-color:#ff6b6e66}.grade-summary-card{background:var(--md-surface);border-radius:var(--md-shape-lg);border:1px solid var(--md-outline-variant);flex-direction:column;gap:16px;padding:20px;display:flex}.grade-row{border-radius:var(--md-shape-md);border-bottom:1px solid var(--md-outline-variant);justify-content:space-between;align-items:center;gap:12px;padding:12px 14px;transition:background .15s;display:flex}.grade-row:last-child{border-bottom:none}.grade-row:hover{background:var(--md-surface-container-low)}.grade-row-label{color:var(--md-on-surface-variant);min-width:100px;font-family:Nunito,sans-serif;font-size:13px;font-weight:600}.grade-row-value{flex:1;justify-content:flex-end;align-items:center;gap:12px;display:flex}.grade-row-bar{flex:1;max-width:180px}.exam-score-ring{width:128px;height:128px;position:relative}.exam-score-ring svg{width:100%;height:100%;display:block;transform:rotate(-90deg)}.exam-score-ring-label{text-align:center;color:var(--md-on-surface);flex-direction:column;justify-content:center;align-items:center;font-family:Nunito,sans-serif;font-size:21px;font-weight:800;line-height:1.1;display:flex;position:absolute;inset:0}.exam-score-ring-label small{color:var(--md-on-surface-variant);text-transform:uppercase;letter-spacing:.5px;margin-top:2px;font-size:10px;font-weight:700}.term-grade-hero{text-align:center;background:linear-gradient(180deg, var(--md-surface-container-low), var(--md-surface));border-radius:var(--md-shape-xl);border:1px solid var(--md-outline-variant);padding:28px 20px}.term-grade-hero-value{letter-spacing:0;font-family:Varela Round,Nunito,sans-serif;font-size:52px;font-weight:700;line-height:1}.term-grade-hero-label{color:var(--md-on-surface-variant);text-transform:uppercase;letter-spacing:1px;margin-top:6px;font-family:Nunito,sans-serif;font-size:12px;font-weight:800}.rank-badge{background:var(--md-surface-container-high);border:1px solid var(--md-outline-variant);width:32px;height:32px;color:var(--md-on-surface-variant);border-radius:50%;justify-content:center;align-items:center;font-family:Nunito,sans-serif;font-size:12px;font-weight:800;display:inline-flex}.rank-badge.gold{background:linear-gradient(135deg, var(--md-primary-bright), var(--md-primary));color:var(--md-on-primary);border-color:#0000;box-shadow:0 0 10px #ffc84d59}.rank-badge.silver{color:#1b1f25;background:linear-gradient(135deg,#dde1e6,#a8aeb6);border-color:#0000}.rank-badge.bronze{color:#fff;background:linear-gradient(135deg,#c98f4a,#9c621f);border-color:#0000}.rank-badge.normal{background:var(--md-surface-container-high);color:var(--md-on-surface-variant)}.console-label{color:var(--md-on-surface);letter-spacing:.2px;font-family:Nunito,sans-serif}@media (width<=600px){.page-container{padding:18px 14px 40px}.md-card{padding:18px}.md-table{font-size:12px}.md-table th,.md-table td{white-space:nowrap;padding:10px 8px}.status-gif{height:34px!important}.md-top-app-bar{min-height:56px;padding:10px 16px}.md-top-app-bar h1{font-size:18px!important}.md-tabs{gap:6px;padding:4px;overflow-x:auto}.md-tab{min-width:max-content;padding:9px 8px;font-size:12px}.term-grade-hero-value{font-size:44px}}@media (width<=480px){.md-table-container{-webkit-overflow-scrolling:touch;overflow-x:auto}.md-table{min-width:560px}}
