:root{--bg: #0f172a;--panel: #111c33;--card: #16233f;--line: #243656;--text: #e8eef8;--muted: #93a4c3;--accent: #3dd6c6;--accent-2: #5b8cff;--danger: #ff6b7a;--warn: #f5c16c;--radius: 16px;font-family:Segoe UI,system-ui,sans-serif}*{box-sizing:border-box}html,body{margin:0;min-height:100%;background:radial-gradient(1200px 600px at 10% -10%,#1c3a5f 0%,var(--bg) 45%);color:var(--text)}a{color:var(--accent);text-decoration:none}button,.btn{background:linear-gradient(135deg,var(--accent),#2aa8c4);color:#042326;border:0;border-radius:12px;padding:10px 16px;font-weight:700;cursor:pointer}button.ghost{background:transparent;color:var(--muted);border:1px solid var(--line)}button.link{background:none;color:var(--accent);padding:0;font-weight:600}button.danger{background:var(--danger);color:#fff}input,select,textarea{width:100%;background:#0d172b;color:var(--text);border:1px solid var(--line);border-radius:10px;padding:10px 12px}.card{background:#16233fe6;border:1px solid var(--line);border-radius:var(--radius);padding:18px}.page{padding:8px 4px 40px}.page-head,.form-row,.brand-row{display:flex;gap:12px;align-items:center;flex-wrap:wrap}.grid{display:grid;gap:16px}.stats{grid-template-columns:repeat(auto-fit,minmax(160px,1fr))}.form-grid{grid-template-columns:repeat(auto-fit,minmax(180px,1fr));align-items:center}.split{display:grid;grid-template-columns:1.4fr 1fr;gap:16px}.table-wrap{overflow:auto;border:1px solid var(--line);border-radius:12px}table{width:100%;border-collapse:collapse}th,td{padding:10px 12px;border-bottom:1px solid var(--line);text-align:left;font-size:14px}th{color:var(--muted);font-weight:600}.stat span{color:var(--muted);text-transform:capitalize}.stat strong{display:block;font-size:28px;margin-top:8px}.login-page{min-height:100vh;display:grid;place-items:center;padding:24px}.login-card{width:min(460px,100%);display:grid;gap:12px}.logo{width:42px;height:42px;display:grid;place-items:center;border-radius:12px;background:var(--accent);color:#042326;font-weight:800}.app-shell{display:grid;grid-template-columns:250px 1fr;min-height:100vh}.sidebar{padding:20px 16px;border-right:1px solid var(--line);background:#0a1222b3;display:flex;flex-direction:column;gap:16px}.sidebar nav{display:grid;gap:6px}.sidebar nav a{padding:10px 12px;border-radius:10px;color:var(--text)}.sidebar nav a.active,.sidebar nav a:hover{background:#1b2d50}.brand{display:flex;gap:10px;align-items:center}.brand small{display:block;color:var(--muted)}.topbar{display:flex;justify-content:space-between;align-items:center;padding:18px 24px 8px}.content main{padding:0 24px}.error{color:var(--danger)}.notice{color:var(--accent)}.hint{color:var(--muted);font-size:12px}.check{display:flex;gap:8px;align-items:center}iframe,video{width:100%;min-height:320px;border:0;border-radius:12px}.option{display:block;padding:10px;border:1px solid var(--line);border-radius:10px;margin:8px 0}.exam-bar{display:flex;justify-content:space-between;align-items:center}.exam-layout{display:grid;grid-template-columns:minmax(0,1fr) 380px;gap:18px;align-items:start}.exam-main{min-width:0}.exam-footer{display:flex;justify-content:space-between;align-items:center;gap:16px;flex-wrap:wrap;margin-top:8px;padding:12px 14px;border-radius:12px;background:#1b6b73}.exam-footer .ghost{background:#fff;color:#16324a;border:0}.exam-clock{font-size:28px;letter-spacing:1px}.options-box{border:1px solid var(--line);border-radius:12px;overflow:hidden;background:#0d172b;margin:16px 0}.option-row{display:flex;justify-content:flex-start;align-items:center;gap:12px;padding:12px 14px;border-bottom:1px solid var(--line);margin:0;cursor:pointer;white-space:nowrap}.option-row input{width:auto;flex:0 0 auto;margin:0}.option-row span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.option-row:last-child{border-bottom:0}.option-row.picked{background:#16324a}.attempt-panel{position:sticky;top:16px;min-width:380px}.attempt-grid{display:grid;grid-template-columns:repeat(6,1fr);gap:10px;margin-top:12px}.q-dot{width:100%;aspect-ratio:1;border-radius:10px;font-weight:800;color:#fff}.q-dot.green{background:#1f8a5b}.q-dot.red{background:#c44555}.q-dot.current{outline:2px solid #fff}@media(max-width:900px){.exam-layout{grid-template-columns:1fr}.attempt-panel{position:static}}.warn{color:var(--warn)}.certificate{text-align:center;border:2px solid var(--accent)}.selected{background:#1b2d50}.span-all{grid-column:1/-1}.legend{display:flex;gap:12px;flex-wrap:wrap;margin:8px 0 16px}.pill{display:inline-block;border-radius:999px;padding:4px 10px;font-size:12px;font-weight:700}.pill.green,.cal-event.green{background:#1f8a5b;color:#e8fff4}.pill.orange,.cal-event.orange{background:#c47b16;color:#fff7e8}.pill.red,.cal-event.red{background:#c44555;color:#ffe8ec}.calendar-card{margin-top:20px}.cal-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:6px}.cal-grid.head{color:var(--muted);font-size:12px;text-align:center;margin-bottom:6px}.cal-cell{min-height:92px;border:1px solid var(--line);border-radius:10px;padding:6px;background:#0d172b}.cal-cell.mute{opacity:.4}.cal-cell .num{display:block;font-size:12px;color:var(--muted);margin-bottom:4px}.cal-event{display:block;width:100%;text-align:left;padding:4px 6px;border-radius:8px;font-size:11px;margin-bottom:4px;color:inherit;cursor:pointer}.cal-event small{display:block;font-weight:600;opacity:.9}.course-card .btn{margin-top:12px;display:inline-block}.exam-cta{margin-top:20px;border-color:var(--accent)}.exam-meta{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:12px;margin:16px 0}.exam-meta span{display:block;color:var(--muted);font-size:12px}.exam-meta strong{display:block;margin-top:4px}.pager{justify-content:space-between;margin-top:12px}.filters input,.filters select{max-width:220px}th{cursor:pointer;-webkit-user-select:none;user-select:none}@media(max-width:900px){.app-shell,.split{grid-template-columns:1fr}.sidebar{flex-direction:row;flex-wrap:wrap;border-right:0;border-bottom:1px solid var(--line)}}
