@import"https://fonts.googleapis.com/css2?family=Manrope:wght@400;500;600;700&family=JetBrains+Mono:wght@400;600&display=swap";:root{--mono: "JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;font-family:Manrope,Segoe UI,Helvetica Neue,Arial,sans-serif;line-height:1.35;font-weight:500;color:#dbe8f6;background:#050911;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}*{box-sizing:border-box}body{margin:0;min-width:320px;min-height:100vh}a{color:inherit}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:#39ff8840;border-radius:3px}::-webkit-scrollbar-thumb:hover{background:#39ff8880}.authPage{min-height:100vh;display:grid;place-items:center;padding:24px;background:radial-gradient(720px 360px at 20% 6%,rgba(53,121,255,.2),transparent 55%),radial-gradient(680px 360px at 85% 0%,rgba(57,255,136,.13),transparent 58%),radial-gradient(circle at 20% 0%,#09111a,#04070c 58%,#020409);overflow:hidden}.authCard{position:relative;width:min(560px,100%);background:linear-gradient(180deg,#0d151fe0,#0a111ad1);border:1px solid rgba(57,255,136,.18);border-radius:16px;padding:28px 24px;box-shadow:0 30px 60px #00000085,0 0 80px #39ff880f,0 1px #ffffff14 inset;-webkit-backdrop-filter:blur(24px) saturate(140%);backdrop-filter:blur(24px) saturate(140%);overflow:hidden}.authCard:before{content:"";position:absolute;inset:-2px;border-radius:18px;padding:2px;background:conic-gradient(from 0deg,transparent 0deg,rgba(57,255,136,.4) 60deg,transparent 120deg,rgba(53,121,255,.3) 240deg,transparent 300deg);-webkit-mask:linear-gradient(#fff 0 0) content-box,linear-gradient(#fff 0 0);-webkit-mask-composite:xor;mask-composite:exclude;animation:borderRotate 8s linear infinite;pointer-events:none}@keyframes borderRotate{to{rotate:360deg}}.authHeader{display:flex;gap:14px;align-items:center;margin-bottom:18px}.authHeader h1{margin:0;font-size:28px;color:#eef6ff;letter-spacing:-.02em}.authHeader p{margin:2px 0 0;color:#91a4bc;font-size:14px}.authCard h2{color:#ecf3fd;margin:0 0 14px;font-size:18px;letter-spacing:-.01em}.authNotice{margin:0 0 16px;border:1px solid rgba(57,255,136,.22);border-radius:10px;padding:12px 14px;display:flex;align-items:center;gap:10px;background:linear-gradient(180deg,#122234b8,#0c1927a8);color:#9cb4cd;-webkit-backdrop-filter:blur(12px) saturate(125%);backdrop-filter:blur(12px) saturate(125%);font-size:13px;line-height:1.5}.guidanceBadge{width:22px;height:22px;border-radius:999px;display:inline-flex;align-items:center;justify-content:center;border:1px solid rgba(57,255,136,.6);color:#bce2ff;font-size:11px;font-weight:700;background:#1d3a58bf;flex-shrink:0}.consoleApp{min-height:100vh;display:grid;grid-template-columns:260px 1fr;background:#040710}.sidebar{background:linear-gradient(180deg,#070d16,#080e17);border-right:1px solid rgba(57,255,136,.08);padding:18px 14px;display:flex;flex-direction:column}.sideBrand{display:flex;align-items:center;gap:12px;margin-bottom:22px;padding:12px;border:1px solid rgba(57,255,136,.12);border-radius:12px;background:#08121d99;-webkit-backdrop-filter:blur(10px) saturate(130%);backdrop-filter:blur(10px) saturate(130%);transition:border-color .3s,box-shadow .3s}.sideBrand:hover{border-color:#39ff884d;box-shadow:0 0 20px #39ff8814}.globeMark{width:38px;height:38px;overflow:visible}.globeHalo{fill:#39ff883d;stroke:#7effb6;stroke-width:1.35;filter:drop-shadow(0 0 14px rgba(57,255,136,.9))}.globeCore{fill:#092015f7;stroke:#72ffb4;stroke-width:1}.globeLine{fill:none;stroke:#7bffba;stroke-width:1.15;filter:drop-shadow(0 0 10px rgba(57,255,136,1))}.globeScan{height:3;fill:#80ffbefa;filter:drop-shadow(0 0 12px rgba(57,255,136,1))}.sideTitle{font-weight:700;color:#eaf4ff;font-size:15px}.sideSub{color:#87a0bb;font-size:12px}.mainNav{display:grid;gap:4px}.navItem{text-align:left;position:relative;border:1px solid transparent;color:#9ab0ca;background:transparent;padding:10px 12px 10px 14px;border-radius:10px;cursor:pointer;font-weight:600;font-size:13.5px;transition:all .25s cubic-bezier(.23,1,.32,1);overflow:hidden}.navItem:before{content:"";position:absolute;left:0;top:50%;transform:translateY(-50%) scaleY(0);width:3px;height:60%;border-radius:0 3px 3px 0;background:#39ff88;box-shadow:0 0 10px #39ff88cc;transition:transform .3s cubic-bezier(.23,1,.32,1)}.navItem:hover{background:#39ff880a;color:#c8dae9}.navItem:hover:before{transform:translateY(-50%) scaleY(.5)}.navItem.active{background:#39ff881a;border-color:#39ff8833;color:#d8ffe9;box-shadow:0 0 20px #39ff880f}.navItem.active:before{transform:translateY(-50%) scaleY(1)}.navSection{margin-top:14px;margin-bottom:4px;font-size:10px;text-transform:uppercase;letter-spacing:.1em;color:#39ff8866;padding:0 14px;font-weight:700}.sideProgress{margin-top:auto;padding-top:16px}.workspace{background:#050b12;padding:20px;overflow-y:auto}.topBar{background:linear-gradient(180deg,#0a131fd9,#09111cbf);color:#e6f0fd;border-radius:14px;padding:14px 18px;border:1px solid rgba(57,255,136,.1);display:flex;justify-content:space-between;align-items:center;gap:12px;-webkit-backdrop-filter:blur(16px) saturate(120%);backdrop-filter:blur(16px) saturate(120%)}.topBar h1{margin:0;font-size:22px;letter-spacing:-.02em}.actions{display:flex;gap:8px}.contentGrid{margin-top:16px;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.oneCol{grid-template-columns:1fr}.recordsLayout{grid-template-columns:minmax(290px,400px) 1fr;align-items:start}.panel{position:relative;background:linear-gradient(180deg,#0c1622d1,#0a121cc2);border:1px solid rgba(57,255,136,.1);border-radius:14px;padding:18px;-webkit-backdrop-filter:blur(14px) saturate(120%);backdrop-filter:blur(14px) saturate(120%);transition:all .35s cubic-bezier(.23,1,.32,1)}.panel:hover{border-color:#39ff8838;box-shadow:0 4px 30px #39ff880f;transform:translateY(-1px)}.panel h2{margin:0 0 12px;font-size:11px;text-transform:uppercase;letter-spacing:.1em;color:#7fa0c0;font-weight:700}.kpi{overflow:hidden}.kpi .kpiValue{position:relative}.kpiValue{font-size:26px;font-weight:800;margin-bottom:6px;color:#eaf2fe;letter-spacing:-.02em}.form{display:grid;gap:12px}.label{margin-bottom:5px;font-size:11px;text-transform:uppercase;letter-spacing:.08em;color:#7f9cbc;font-weight:600}.infoChipWrap{position:relative;display:inline-flex;align-items:center}.infoChip{width:18px;height:18px;margin-left:6px;border:1px solid rgba(88,166,255,.34);border-radius:999px;background:#58a6ff1f;color:#9ed0ff;font-size:11px;font-weight:800;cursor:pointer;display:inline-flex;align-items:center;justify-content:center}.infoChip.open,.infoChip:hover{border-color:#39ff8866;color:#d7fff0}.infoPopover{position:absolute;top:calc(100% + 8px);left:0;z-index:20;width:min(280px,70vw);padding:10px 12px;border-radius:10px;border:1px solid rgba(88,166,255,.22);background:#080e16f5;box-shadow:0 20px 40px #00000059;display:grid;gap:6px;color:#b9cee4;font-size:12px;line-height:1.5}.infoPopover strong{color:#eef8ff}.recordLearningHint{border:1px solid rgba(88,166,255,.16);border-radius:12px;padding:12px 14px;background:linear-gradient(180deg,#0c1725e6,#080f18e0);display:grid;gap:8px}.recordLearningHintTitle{color:#eef8ff;font-weight:800;font-size:13px}.recordLearningHintBody{color:#9db7d2;line-height:1.55;font-size:13px}.recordLearningHintMeta{display:grid;gap:4px;color:#79eab0;font-size:12px}.hint{font-size:12px;color:#7a96b2}input,select{width:100%;border:1px solid rgba(57,255,136,.15);background:#0a131dcc;color:#e6f0fb;border-radius:10px;padding:10px 12px;outline:none;font-size:14px;transition:all .3s cubic-bezier(.23,1,.32,1)}input::placeholder{color:#7f9cbc80}input:focus,select:focus{border-color:#39ff88;box-shadow:0 0 0 3px #39ff8826,0 0 20px #39ff881a;background:#0a131d}input:disabled{opacity:.5;cursor:not-allowed}.row{display:grid;grid-template-columns:1fr 1fr;gap:10px;align-items:end}.check{display:flex;align-items:center;gap:8px;padding:8px 0;color:#a4bbd4;cursor:pointer}.check input[type=checkbox]{width:18px;height:18px;accent-color:#39ff88;cursor:pointer}.btn{position:relative;border:1px solid rgba(57,255,136,.15);border-radius:10px;padding:10px 14px;background:#0f1926cc;color:#cfdeef;font-weight:600;font-size:13px;cursor:pointer;overflow:hidden;transition:all .3s cubic-bezier(.23,1,.32,1);z-index:1}.btn:before{content:"";position:absolute;inset:0;background:#39ff880f;transform:scaleX(0);transform-origin:left;transition:transform .4s cubic-bezier(.23,1,.32,1);z-index:-1;border-radius:inherit}.btn:hover{border-color:#39ff884d;color:#e8f4ff}.btn:hover:before{transform:scaleX(1)}.btn:active{transform:scale(.97)}.btn:disabled{opacity:.45;cursor:not-allowed}.btn:disabled:before{display:none}.primary{border-color:#39ff8880;background:#0f3320cc;color:#b9ffd7;box-shadow:0 0 20px #39ff8826}.primary:before{background:#39ff8826}.primary:hover{border-color:#39ff88;box-shadow:0 0 30px #39ff884d;color:#d5ffe8}.primary:active{box-shadow:0 0 10px #39ff8866}.btn.link{background:none;border:none;color:#58a6ff;padding:0;box-shadow:none}.btn.link:before{display:none}.btn.link:hover{color:#79bbff;text-decoration:underline}.danger{border-color:#f851494d;color:#ffc4cb;background:#2a1418cc}.danger:before{background:#f851491a}.danger:hover{border-color:#f8514999;box-shadow:0 0 20px #f851491a}.statusRow{display:flex;align-items:center;gap:10px}.statusBadge{display:inline-flex;align-items:center;border:1px solid #39ff88;background:#39ff881a;color:#9effc9;border-radius:999px;padding:4px 12px;font-size:11px;text-transform:uppercase;letter-spacing:.06em;font-weight:700;box-shadow:0 0 12px #39ff8826}.statusBadge.available{border-color:#39ff88;background:#39ff881a;color:#9effc9}.statusBadge.used{border-color:#ffaa39;background:#ffaa391a;color:#ffdd9a}.table{display:grid;gap:6px}.thead,.trow{display:grid;grid-template-columns:1.3fr .7fr 1.6fr .9fr .6fr;gap:8px;align-items:center}.thead{position:sticky;top:0;background:#122133e6;border:1px solid rgba(57,255,136,.1);border-radius:10px;font-size:10px;text-transform:uppercase;letter-spacing:.08em;color:#7fa0c0;padding:10px 12px;font-weight:700;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.trow{border:1px solid rgba(57,255,136,.06);border-radius:10px;padding:10px 12px;background:#0b152299;transition:all .25s cubic-bezier(.23,1,.32,1)}.trow:hover{border-color:#39ff8833;background:#0b1522e6;box-shadow:0 0 20px #39ff880a;transform:translate(2px)}.clip{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.meta{margin-left:5px;color:#6a879f;font-size:11px}.right{display:flex;justify-content:flex-end}.empty{border:1px dashed rgba(57,255,136,.15);border-radius:10px;padding:20px;color:#7a96b2;text-align:center;font-size:13px}.error{border:1px solid rgba(248,81,73,.4);background:#2b161acc;border-radius:10px;padding:12px 14px;color:#ffbcc6;font-size:13px;animation:shakeIn .4s cubic-bezier(.23,1,.32,1)}@keyframes shakeIn{0%{transform:translate(-6px);opacity:0}40%{transform:translate(4px)}70%{transform:translate(-2px)}to{transform:translate(0);opacity:1}}.success{border:1px solid rgba(57,255,136,.35);background:#39ff8814;border-radius:10px;padding:12px 14px;color:#9affbf;font-size:13px;animation:fadeSlideIn .3s ease-out}@keyframes fadeSlideIn{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}.globalError,.globalSuccess{margin-top:12px}.errorMeta{margin-top:4px;font-size:11px;opacity:.7}.healthGrid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.healthCard{border:1px solid rgba(57,255,136,.1);border-radius:10px;padding:14px;background:#0b152299;transition:all .3s ease}.healthCard:hover{border-color:#39ff8833;box-shadow:0 0 16px #39ff880d}.healthState{font-weight:700;margin-top:6px;font-size:15px}.healthState.ok{color:#39ff88;text-shadow:0 0 10px rgba(57,255,136,.4)}.healthState.warn{color:#f85149;text-shadow:0 0 10px rgba(248,81,73,.3)}.trendStrip{margin-top:14px;display:grid;grid-template-columns:repeat(8,1fr);gap:6px;align-items:end;height:28px}.trendStrip span{border-radius:4px;background:linear-gradient(180deg,#39ff88e6,#39ff884d);box-shadow:0 0 8px #39ff8833;animation:barPulse 2s ease-in-out infinite}.trendStrip span:nth-child(1){height:24px;animation-delay:0s}.trendStrip span:nth-child(2){height:17px;animation-delay:.1s}.trendStrip span:nth-child(3){height:22px;animation-delay:.2s}.trendStrip span:nth-child(4){height:19px;animation-delay:.3s}.trendStrip span:nth-child(5){height:15px;animation-delay:.4s}.trendStrip span:nth-child(6){height:23px;animation-delay:.5s}.trendStrip span:nth-child(7){height:18px;animation-delay:.6s}.trendStrip span:nth-child(8){height:21px;animation-delay:.7s}@keyframes barPulse{0%,to{opacity:.7}50%{opacity:1}}.mono{font-family:var(--mono)}@media(max-width:1024px){.consoleApp{grid-template-columns:1fr}.sidebar{border-right:0;border-bottom:1px solid rgba(57,255,136,.08)}.mainNav{grid-template-columns:repeat(4,minmax(0,1fr))}.recordsLayout{grid-template-columns:1fr}}@media(max-width:760px){.contentGrid,.healthGrid{grid-template-columns:1fr}.mainNav{grid-template-columns:repeat(2,minmax(0,1fr))}.topBar{flex-direction:column;align-items:flex-start}.actions,.actions .btn{width:100%}.thead{display:none}.trow{grid-template-columns:1fr}.right{justify-content:flex-start}}.modalOverlay{position:fixed;inset:0;background:#000000bf;display:flex;align-items:center;justify-content:center;z-index:1000;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}.modalContent{position:relative;background:linear-gradient(180deg,#0e1825fa,#0a121cf2);border:1px solid rgba(57,255,136,.15);border-radius:16px;padding:28px;min-width:400px;max-width:90vw;max-height:90vh;overflow-y:auto;box-shadow:0 20px 60px #00000080,0 0 40px #39ff880d}.modalContent h3{margin:0 0 16px;color:#e9f2fe;font-size:18px}@keyframes shimmer{0%{background-position:-200% 0}to{background-position:200% 0}}.skeleton{background:linear-gradient(90deg,#1e293b99 25%,#37415199,#1e293b99 75%);background-size:200% 100%;animation:shimmer 1.5s ease-in-out infinite;border-radius:6px}.skeleton-text{height:16px;margin-bottom:8px}.skeleton-text:last-child{width:60%}.skeleton-title{height:24px;width:40%;margin-bottom:12px}.skeleton-avatar{width:48px;height:48px;border-radius:50%}.skeleton-card{height:120px;border-radius:12px}.skeleton-badge{width:60px;height:24px;border-radius:12px}.btn{transition:all .2s cubic-bezier(.23,1,.32,1)}.btn:focus-visible{outline:2px solid rgba(57,255,136,.6);outline-offset:2px}.btn.primary:focus-visible{outline-color:#39ff88cc}.ripple-container{position:relative;overflow:hidden}.ripple-effect{position:absolute;border-radius:50%;background:#39ff884d;transform:scale(0);animation:ripple-animation .6s ease-out;pointer-events:none}@keyframes ripple-animation{to{transform:scale(4);opacity:0}}.loading-spinner{width:32px;height:32px;border:3px solid rgba(57,255,136,.15);border-top-color:#39ff88;border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}@keyframes error-shake{0%,to{transform:translate(0)}20%{transform:translate(-6px)}40%{transform:translate(6px)}60%{transform:translate(-4px)}80%{transform:translate(4px)}}.error-shake{animation:error-shake .4s ease-in-out}@keyframes pulse-glow{0%,to{box-shadow:0 0 #39ff8866}50%{box-shadow:0 0 0 8px #39ff8800}}.pulse-glow{animation:pulse-glow 2s ease-in-out infinite}.stagger-item{opacity:0;transform:translateY(20px);animation:stagger-in .4s ease-out forwards}@keyframes stagger-in{to{opacity:1;transform:translateY(0)}}.stagger-item:nth-child(1){animation-delay:0ms}.stagger-item:nth-child(2){animation-delay:50ms}.stagger-item:nth-child(3){animation-delay:.1s}.stagger-item:nth-child(4){animation-delay:.15s}.stagger-item:nth-child(5){animation-delay:.2s}.stagger-item:nth-child(6){animation-delay:.25s}.stagger-item:nth-child(7){animation-delay:.3s}.stagger-item:nth-child(8){animation-delay:.35s}input:focus,select:focus,textarea:focus{outline:none;border-color:#39ff8880!important;box-shadow:0 0 0 3px #39ff8826!important}@keyframes badge-pop{0%{transform:scale(0)}50%{transform:scale(1.2)}to{transform:scale(1)}}.badge-pop{animation:badge-pop .3s ease-out}.courses-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(340px,1fr));gap:20px;padding:4px}.course-card{background:linear-gradient(135deg,#142030e6,#0f1926f2);border:1px solid rgba(57,255,136,.15);border-radius:16px;padding:24px;cursor:pointer;transition:all .25s cubic-bezier(.23,1,.32,1)}.course-card:hover{border-color:#39ff8866;transform:translateY(-4px);box-shadow:0 12px 40px #0006,0 0 30px #39ff881a}.course-card.active{border-color:#39ff884d}.course-card.draft{border-color:#f59e0b33}.course-card.archived{opacity:.6}.course-card-header{display:flex;align-items:center;gap:8px;margin-bottom:12px}.status-dot{width:8px;height:8px;border-radius:50%;background:#6b7280}.status-dot.active{background:#22c55e;box-shadow:0 0 8px #22c55e80}.status-dot.draft{background:#f59e0b}.status-dot.archived{background:#6b7280}.course-status{font-size:12px;color:#6b7280;text-transform:uppercase;letter-spacing:.5px}.course-title{margin:0 0 8px;font-size:20px;color:#e9f2fe}.course-desc{margin:0 0 16px;font-size:14px;color:#6b7280;line-height:1.5}.course-stats{display:flex;gap:24px;margin-bottom:16px;padding:12px 0;border-top:1px solid rgba(57,255,136,.1);border-bottom:1px solid rgba(57,255,136,.1)}.course-stats .stat{display:flex;flex-direction:column}.course-stats .stat-value{font-size:18px;font-weight:600;color:#e9f2fe}.course-stats .stat-label{font-size:11px;color:#6b7280;text-transform:uppercase}.course-actions{display:flex;gap:8px}.empty-state{text-align:center;padding:60px 20px;background:#0f192699;border:1px dashed rgba(57,255,136,.2);border-radius:12px}.empty-icon{font-size:48px;margin-bottom:16px}.empty-state h3{margin:0 0 8px;color:#e9f2fe}.empty-state p{margin:0 0 20px;color:#6b7280}.course-header{padding:20px 24px}.back-link{background:none;border:none;color:#3b82f6;cursor:pointer;font-size:14px;padding:0;margin-bottom:16px}.back-link:hover{text-decoration:underline}.course-header-content{display:flex;justify-content:space-between;align-items:flex-start;gap:24px}.course-status-row{display:flex;align-items:center;gap:12px;margin-bottom:8px}.status-badge{font-size:11px;font-weight:600;padding:4px 10px;border-radius:12px;text-transform:uppercase;letter-spacing:.5px}.status-badge.active{background:#22c55e26;color:#22c55e}.status-badge.draft{background:#f59e0b26;color:#f59e0b}.status-badge.archived{background:#6b728026;color:#6b7280}.course-quick-stats{display:flex;gap:32px}.quick-stat{text-align:center}.quick-stat-value{display:block;font-size:32px;font-weight:700;color:#39ff88}.quick-stat-label{font-size:12px;color:#6b7280;text-transform:uppercase}.tabs-nav{display:flex;gap:4px;padding:4px;background:#0f1926cc;border-radius:12px;margin-bottom:16px}.tab-btn{flex:1;padding:12px 16px;background:none;border:none;border-radius:8px;color:#6b7280;font-size:14px;font-weight:500;cursor:pointer;transition:all .2s}.tab-btn:hover{color:#e9f2fe;background:#39ff880d}.tab-btn.active{background:#39ff8826;color:#39ff88}.section-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px}.section-header h2{margin:0;font-size:18px;color:#e9f2fe}.students-list{display:flex;flex-direction:column;gap:12px}.student-row{display:flex;align-items:center;gap:16px;padding:16px;background:#0f192699;border:1px solid rgba(57,255,136,.1);border-radius:12px;transition:all .2s}.student-row:hover{background:#0f1926e6;border-color:#39ff8833}.student-avatar{width:44px;height:44px;border-radius:50%;background:linear-gradient(135deg,#3b82f6,#8b5cf6);display:flex;align-items:center;justify-content:center;font-size:18px;font-weight:600;color:#fff;flex-shrink:0}.student-info{flex:1;min-width:0}.student-email{display:block;font-size:15px;color:#e9f2fe;font-weight:500}.student-meta{display:block;font-size:12px;color:#6b7280;margin-top:2px}.student-stats{text-align:right}.domain-count{font-size:13px;color:#3b82f6}.student-actions{display:flex;gap:8px}.tokens-list{display:flex;flex-direction:column;gap:12px}.token-row{display:flex;align-items:center;gap:16px;padding:16px 20px;background:#0f192699;border:1px solid rgba(57,255,136,.1);border-radius:12px}.token-row.revoked{opacity:.5}.token-info{flex:1}.token-value{display:flex;align-items:center;gap:8px}.token-code{font-size:16px;font-weight:600;color:#39ff88;background:#39ff881a;padding:6px 12px;border-radius:6px}.btn-copy{background:none;border:none;cursor:pointer;font-size:16px;opacity:.6;transition:opacity .2s}.btn-copy:hover{opacity:1}.token-desc{display:block;font-size:13px;color:#6b7280;margin-top:4px}.token-stats{display:flex;flex-direction:column;align-items:flex-end;gap:4px}.token-uses{font-size:13px;color:#e9f2fe}.token-uses.exhausted{color:#ef4444}.token-status{font-size:11px;font-weight:600;padding:2px 8px;border-radius:10px;text-transform:uppercase}.token-status.active{background:#22c55e26;color:#22c55e}.token-status.used{background:#3b82f626;color:#3b82f6}.token-status.revoked{background:#6b728026;color:#6b7280}.token-actions{min-width:80px}.domains-list{display:flex;flex-direction:column;gap:8px}.domain-row{padding:12px;background:#0f192699;border-radius:8px}.domain-fqdn{display:block;font-size:14px;color:#39ff88;margin-bottom:4px}.domain-meta{font-size:12px;color:#6b7280}@media(max-width:768px){.courses-grid{grid-template-columns:1fr}.course-header-content{flex-direction:column}.student-row{flex-wrap:wrap}.student-actions{width:100%;margin-top:8px}.token-row{flex-wrap:wrap}.token-actions{width:100%;margin-top:8px}}.validation-indicator{margin-top:6px;min-height:24px}.validation-message{display:flex;align-items:flex-start;gap:8px;padding:8px 12px;border-radius:6px;font-size:13px;line-height:1.4}.validation-message.error{background:#ef44441a;border:1px solid rgba(239,68,68,.3);color:#f87171}.validation-message.warning{background:#f59e0b1a;border:1px solid rgba(245,158,11,.3);color:#fbbf24}.validation-message.success{background:#22c55e1a;border:1px solid rgba(34,197,94,.3);color:#4ade80}.validation-icon{font-size:14px;flex-shrink:0}.validation-text{flex:1}.validated-input-wrapper{display:flex;flex-direction:column}.validated-input{transition:border-color .2s,box-shadow .2s}.validated-input:focus{border-color:#3b82f6!important;box-shadow:0 0 0 3px #3b82f633}.validated-input-wrapper.invalid .validated-input{border-color:#ef4444!important}.validated-input-wrapper.invalid .validated-input:focus{box-shadow:0 0 0 3px #ef444433}.validated-input-wrapper.has-warning .validated-input{border-color:#f59e0b!important}@keyframes input-shake{0%,to{transform:translate(0)}20%{transform:translate(-4px)}40%{transform:translate(4px)}60%{transform:translate(-3px)}80%{transform:translate(3px)}}.validated-input-wrapper.invalid .validated-input:focus{animation:input-shake .4s ease-in-out}.propagation-indicator{position:fixed;bottom:24px;right:24px;z-index:1000;max-width:360px}.propagation-content{background:#1f2937;border:1px solid #374151;border-radius:12px;padding:20px;box-shadow:0 12px 40px #0006}.propagation-title{font-size:16px;font-weight:600;color:#f3f4f6;margin-bottom:16px;text-align:center}.propagation-nodes{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px;position:relative}.propagation-nodes:before{content:"";position:absolute;top:12px;left:24px;right:24px;height:2px;background:#374151;z-index:0}.propagation-node{display:flex;flex-direction:column;align-items:center;gap:6px;position:relative;z-index:1}.node-pulse{width:24px;height:24px;border-radius:50%;background:#374151;display:flex;align-items:center;justify-content:center}.propagation-node.active .node-pulse{background:#3b82f6;box-shadow:0 0 12px #3b82f680}.node-label{font-size:10px;color:#6b7280;text-transform:uppercase;letter-spacing:.5px}.propagation-node.active .node-label{color:#3b82f6}.propagation-hint{font-size:12px;color:#6b7280;text-align:center;line-height:1.5}@keyframes success-pop{0%{transform:scale(.8);opacity:0}50%{transform:scale(1.1)}to{transform:scale(1);opacity:1}}.validation-message.success{animation:success-pop .3s ease-out}.dns-viz-overlay{position:fixed;inset:0;background:#000000d9;display:flex;align-items:center;justify-content:center;z-index:2000;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.dns-viz-modal{background:linear-gradient(180deg,#0e1825fa,#0a121cf2);border:1px solid rgba(57,255,136,.2);border-radius:16px;width:min(900px,95vw);max-height:90vh;overflow:hidden;box-shadow:0 24px 80px #0009}.dns-viz-header{display:flex;justify-content:space-between;align-items:center;padding:20px 24px;border-bottom:1px solid rgba(57,255,136,.1)}.dns-viz-header h2{margin:0;font-size:20px;color:#e9f2fe}.close-btn{background:none;border:none;color:#6b7280;font-size:28px;cursor:pointer;line-height:1;padding:0}.close-btn:hover{color:#e9f2fe}.dns-viz-content{display:grid;grid-template-columns:1fr 320px;gap:24px;padding:24px}.dns-viz-area{position:relative;background:#0f1926cc;border:1px solid rgba(57,255,136,.1);border-radius:12px;aspect-ratio:16 / 10;overflow:hidden}.dns-viz-svg{width:100%;height:100%}.connection-line{stroke:#374151;stroke-width:.3}.active-connection{pointer-events:none;animation:pulse-line 1s ease-in-out infinite}@keyframes pulse-line{0%,to{opacity:.5}50%{opacity:1}}.node-label{font-size:3px;fill:#9ca3af;font-family:system-ui,sans-serif}.circle.resolved{filter:drop-shadow(0 0 3px currentColor)}.dns-packet{position:absolute;width:24px;height:24px;background:#3b82f6;border-radius:50%;display:flex;align-items:center;justify-content:center;transform:translate(-50%,-50%);box-shadow:0 0 12px #3b82f699;z-index:10}.packet-label{font-size:8px;font-weight:700;color:#fff}.dns-viz-steps{display:flex;flex-direction:column;gap:20px}.current-step{background:#0f1926cc;border:1px solid rgba(57,255,136,.15);border-radius:12px;padding:20px}.step-indicator{font-size:12px;color:#6b7280;text-transform:uppercase;letter-spacing:1px;margin-bottom:12px}.step-details{display:flex;flex-direction:column;gap:12px}.step-query{display:flex;align-items:flex-start;gap:12px;font-size:15px;color:#e9f2fe;line-height:1.5}.query-icon{width:24px;height:24px;background:#3b82f633;color:#3b82f6;border-radius:50%;display:flex;align-items:center;justify-content:center;font-weight:700;flex-shrink:0}.step-latency{font-size:13px;color:#22c55e;background:#22c55e1a;padding:6px 12px;border-radius:6px;width:fit-content}.complete-message{display:flex;align-items:center;gap:12px;font-size:18px;color:#22c55e}.check-icon{width:32px;height:32px;background:#22c55e33;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:18px}.step-history{background:#0f192699;border:1px solid rgba(57,255,136,.1);border-radius:12px;padding:16px;flex:1;overflow-y:auto;max-height:200px}.step-history h4{margin:0 0 12px;font-size:13px;color:#6b7280;text-transform:uppercase;letter-spacing:.5px}.step-history ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}.step-history li{font-size:12px;color:#9ca3af;padding-left:16px;position:relative}.step-history li:before{content:"→";position:absolute;left:0;color:#3b82f6}.dns-viz-controls{display:flex;justify-content:center;gap:12px;padding:20px 24px;border-top:1px solid rgba(57,255,136,.1);background:#0a111a80}.dns-viz-controls .btn.playing{background:#3b82f633;border-color:#3b82f6}@media(max-width:768px){.dns-viz-content{grid-template-columns:1fr}.dns-viz-area{aspect-ratio:4 / 3}}.simulator-overlay{position:fixed;inset:0;background:#000000e6;display:flex;align-items:center;justify-content:center;z-index:3000;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);padding:20px}.simulator-modal{background:linear-gradient(180deg,#0e1825fc,#0a121cfa);border:1px solid rgba(57,255,136,.25);border-radius:20px;width:min(950px,100%);max-height:90vh;overflow:hidden;box-shadow:0 32px 100px #000000b3;display:flex;flex-direction:column}.simulator-header{display:flex;justify-content:space-between;align-items:center;padding:20px 24px;border-bottom:1px solid rgba(57,255,136,.15);background:#0f1926cc}.simulator-header h2{margin:0;font-size:22px;color:#e9f2fe;background:linear-gradient(135deg,#39ff88,#3b82f6);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.simulator-content{flex:1;overflow-y:auto;padding:24px}.scenario-list h3{margin:0 0 20px;font-size:16px;color:#6b7280;text-transform:uppercase;letter-spacing:1px}.scenarios-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:16px}.scenario-card{background:#0f1926e6;border:1px solid rgba(57,255,136,.15);border-radius:12px;padding:20px;cursor:pointer;transition:all .2s}.scenario-card:hover{border-color:#39ff8866;transform:translateY(-2px);box-shadow:0 8px 30px #0000004d}.scenario-card h4{margin:0 0 8px;font-size:16px;color:#e9f2fe}.scenario-card p{margin:0 0 12px;font-size:13px;color:#9ca3af;line-height:1.5}.scenario-difficulty{font-size:11px;padding:4px 10px;border-radius:12px;background:#3b82f626;color:#3b82f6;text-transform:uppercase;letter-spacing:.5px}.scenario-active{display:flex;flex-direction:column;gap:20px}.scenario-header{display:flex;gap:16px;align-items:flex-start}.back-btn{background:none;border:none;color:#3b82f6;cursor:pointer;font-size:14px;padding:0;white-space:nowrap}.back-btn:hover{text-decoration:underline}.scenario-info h3{margin:0 0 6px;font-size:18px;color:#e9f2fe}.scenario-info p{margin:0;font-size:14px;color:#9ca3af}.scenario-goal{background:#3b82f61a;border:1px solid rgba(59,130,246,.25);border-radius:10px;padding:16px;display:flex;gap:10px}.goal-label{font-size:12px;color:#3b82f6;text-transform:uppercase;font-weight:600}.goal-text{font-size:14px;color:#e9f2fe}.zone-editor{background:#0a111acc;border:1px solid rgba(57,255,136,.15);border-radius:12px;overflow:hidden}.zone-editor h4{margin:0;padding:12px 16px;font-size:13px;color:#6b7280;background:#0f1926cc;border-bottom:1px solid rgba(57,255,136,.1);text-transform:uppercase;letter-spacing:.5px}.zone-records{padding:8px}.zone-header,.zone-row{display:grid;grid-template-columns:1fr 80px 80px 2fr 40px;gap:8px;padding:10px 12px;align-items:center;font-size:13px}.zone-header{font-size:11px;color:#6b7280;text-transform:uppercase;letter-spacing:.5px;border-bottom:1px solid rgba(57,255,136,.1)}.zone-row{background:#0f192699;border-radius:6px;margin-bottom:4px}.zone-row:hover{background:#0f1926e6}.zone-empty{padding:32px;text-align:center;color:#6b7280;font-size:13px}.record-type{background:#8b5cf626;color:#a78bfa;padding:3px 8px;border-radius:4px;font-size:11px;font-weight:600;width:fit-content}.remove-btn{width:24px;height:24px;border-radius:50%;background:#ef444426;border:none;color:#ef4444;cursor:pointer;font-size:16px;display:flex;align-items:center;justify-content:center;opacity:0;transition:opacity .2s}.zone-row:hover .remove-btn{opacity:1}.remove-btn:hover{background:#ef44444d}.add-record-form{display:flex;gap:8px;padding:12px;background:#0f192699;border-top:1px solid rgba(57,255,136,.1)}.add-record-form input,.add-record-form select{padding:10px 12px;background:#0f1926e6;border:1px solid rgba(57,255,136,.2);border-radius:8px;color:#e9f2fe;font-size:13px}.add-record-form input:focus,.add-record-form select:focus{outline:none;border-color:#39ff8880}.add-record-form input::placeholder{color:#6b7280}.result-panel{display:flex;align-items:center;gap:12px;padding:16px 20px;border-radius:10px;font-size:14px}.result-panel.success{background:#22c55e26;border:1px solid rgba(34,197,94,.3);color:#4ade80}.result-panel.error{background:#ef444426;border:1px solid rgba(239,68,68,.3);color:#f87171}.result-icon{font-size:20px}.hint-panel{display:flex;align-items:flex-start;gap:12px;padding:16px;background:#f59e0b1a;border:1px solid rgba(245,158,11,.3);border-radius:10px;color:#fbbf24;font-size:14px}.hint-icon{font-size:18px}.scenario-controls{display:flex;justify-content:center;gap:12px}.simulator-launcher{display:flex;align-items:center;gap:8px}@media(max-width:640px){.zone-header,.zone-row{grid-template-columns:1fr 60px 1fr}.zone-header span:nth-child(2),.zone-row span:nth-child(2),.zone-header span:nth-child(4),.zone-row span:nth-child(4){display:none}.add-record-form{flex-wrap:wrap}.add-record-form input,.add-record-form select{flex:1;min-width:120px}}.progress-widget{background:linear-gradient(180deg,#0c1622d1,#0a121cc2);border:1px solid rgba(57,255,136,.1);border-radius:14px;padding:20px;margin-bottom:20px;transition:border-color .3s,box-shadow .3s}.progress-widget:hover{border-color:#39ff8833;box-shadow:0 0 20px #39ff880d}.level-header{display:flex;align-items:center;gap:16px;margin-bottom:16px}.level-badge{display:flex;flex-direction:column;align-items:center;justify-content:center;width:56px;height:56px;background:linear-gradient(135deg,#39ff88,#1ecc5f);border-radius:50%;box-shadow:0 0 24px #39ff8859;animation:badgePulse 3s ease-in-out infinite}@keyframes badgePulse{0%,to{box-shadow:0 0 24px #39ff8859}50%{box-shadow:0 0 32px #39ff888c}}.level-number{font-size:24px;font-weight:800;color:#000;line-height:1}.level-label{font-size:9px;color:#000;text-transform:uppercase;letter-spacing:.5px;font-weight:700}.xp-info{flex:1}.xp-total{font-size:22px;font-weight:700;color:#fff;letter-spacing:-.02em}.xp-to-next{font-size:12px;color:#7a96b2;margin-top:2px}.progress-bar-container{display:flex;align-items:center;gap:12px}.progress-bar-bg{flex:1;height:8px;background:#ffffff12;border-radius:4px;overflow:hidden}.progress-bar-fill{height:100%;background:linear-gradient(90deg,#39ff88,#1ecc5f);border-radius:4px;transition:width .6s cubic-bezier(.23,1,.32,1);box-shadow:0 0 8px #39ff8866}.progress-text{font-size:12px;color:#7a96b2;min-width:35px;text-align:right;font-weight:600}.streak-indicator{display:flex;align-items:center;gap:8px;margin-top:14px;padding-top:14px;border-top:1px solid rgba(255,255,255,.06)}.streak-icon{font-size:20px}.streak-count{font-size:22px;font-weight:800;color:#ff6b35;text-shadow:0 0 12px rgba(255,107,53,.3)}.streak-label{font-size:13px;color:#7a96b2}.streak-record{font-size:11px;color:gold;margin-left:auto;font-weight:600}.achievement-badge{display:flex;align-items:center;gap:14px;padding:16px;background:#0c162299;border:1px solid rgba(57,255,136,.08);border-radius:12px;transition:all .3s cubic-bezier(.23,1,.32,1)}.achievement-badge.locked{opacity:.45;filter:grayscale(.6)}.achievement-badge.unlocked:hover{transform:translateY(-3px);box-shadow:0 8px 30px #0000004d;border-color:#ffd7004d}.achievement-icon{font-size:32px;width:48px;height:48px;display:flex;align-items:center;justify-content:center;flex-shrink:0}.achievement-info{flex:1;min-width:0}.achievement-name{font-size:14px;font-weight:700;color:#e8f2fe;margin-bottom:3px}.achievement-description{font-size:12px;color:#7a96b2;margin-bottom:6px;line-height:1.4}.achievement-meta{display:flex;gap:12px;font-size:11px}.achievement-tier{font-weight:700;text-transform:uppercase;letter-spacing:.5px}.achievement-xp{color:#39ff88;font-weight:600;white-space:nowrap}.achievement-unlock-date{font-size:10px;color:#5c7590;flex-shrink:0}.achievements-panel{background:linear-gradient(180deg,#0c1622d1,#0a121cc2);border:1px solid rgba(57,255,136,.1);border-radius:14px;padding:24px}.achievements-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px}.achievements-header h2{margin:0;font-size:18px;color:#e8f2fe;font-weight:700}.achievements-progress{font-size:13px;color:#7a96b2;font-weight:600}.achievements-filters{display:flex;gap:14px;margin-bottom:20px;flex-wrap:wrap;align-items:center}.filter-tabs{display:flex;gap:6px}.filter-tab{padding:8px 16px;border:1px solid rgba(57,255,136,.12);background:transparent;color:#7a96b2;border-radius:8px;cursor:pointer;font-size:12px;font-weight:600;transition:all .25s cubic-bezier(.23,1,.32,1);position:relative;overflow:hidden}.filter-tab:before{content:"";position:absolute;inset:0;background:#39ff8814;transform:scaleX(0);transform-origin:left;transition:transform .3s cubic-bezier(.23,1,.32,1);z-index:-1}.filter-tab:hover{border-color:#39ff8859;color:#39ff88}.filter-tab:hover:before{transform:scaleX(1)}.filter-tab.active{background:#39ff881a;border-color:#39ff8866;color:#39ff88;box-shadow:0 0 12px #39ff881a}.category-select{padding:8px 14px;border:1px solid rgba(57,255,136,.12);background:#0a131dcc;color:#e8f2fe;border-radius:8px;cursor:pointer;font-size:12px;transition:border-color .3s}.category-select:focus{border-color:#39ff88}.achievements-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:12px}.achievements-empty{text-align:center;padding:40px;color:#5c7590;font-size:13px}.notification-container{position:fixed;bottom:20px;right:20px;z-index:1000;display:flex;flex-direction:column;gap:10px}.notification-toast{display:flex;align-items:center;gap:12px;padding:16px 20px;background:#0c1622f2;border:1px solid rgba(57,255,136,.15);border-radius:14px;box-shadow:0 8px 40px #00000080;max-width:400px;min-width:300px;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.notification-toast.achievement{border-left:3px solid #ffd700}.notification-toast.level_up{border-left:3px solid #39ff88}.notification-toast.streak_milestone{border-left:3px solid #ff6b35}.notification-toast.challenge_complete{border-left:3px solid #58a6ff}.notification-icon{font-size:28px}.notification-content{flex:1}.notification-title{font-weight:700;color:#e8f2fe;margin-bottom:2px;font-size:14px}.notification-message{font-size:12px;color:#7a96b2}.notification-close{background:none;border:none;color:#5c7590;font-size:20px;cursor:pointer;padding:0 4px;transition:color .2s}.notification-close:hover{color:#e8f2fe}.leaderboard{background:linear-gradient(180deg,#0c1622d1,#0a121cc2);border:1px solid rgba(57,255,136,.1);border-radius:14px;padding:22px}.leaderboard-header{margin-bottom:16px}.leaderboard-header h3{margin:0;font-size:16px;color:#e8f2fe;font-weight:700}.leaderboard-list{display:flex;flex-direction:column;gap:6px}.leaderboard-entry{display:flex;align-items:center;gap:12px;padding:12px 16px;background:#ffffff05;border:1px solid transparent;border-radius:10px;transition:all .25s cubic-bezier(.23,1,.32,1)}.leaderboard-entry:hover{background:#ffffff0d;border-color:#39ff881a;transform:translate(3px)}.leaderboard-entry.current-user{background:#39ff8814;border:1px solid rgba(57,255,136,.2)}.leaderboard-rank{font-size:18px;font-weight:800;width:40px;text-align:center}.leaderboard-user{flex:1;display:flex;align-items:center;gap:8px}.user-name{font-weight:600;color:#e8f2fe;font-size:14px}.you-badge{font-size:10px;background:#39ff8826;color:#39ff88;padding:2px 8px;border-radius:12px;text-transform:uppercase;font-weight:700;letter-spacing:.05em}.leaderboard-score{font-weight:700;color:#39ff88;font-variant-numeric:tabular-nums;font-size:15px}.skill-tree{background:linear-gradient(180deg,#0c1622d1,#0a121cc2);border:1px solid rgba(57,255,136,.1);border-radius:14px;padding:22px}.skill-tree h3{margin:0 0 20px;font-size:16px;color:#e8f2fe;font-weight:700}.skill-path{margin-bottom:22px}.skill-path:last-child{margin-bottom:0}.path-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px}.path-name{font-weight:700;color:#c8dae9;font-size:14px}.path-progress{font-size:12px;color:#5c7590;font-weight:600}.path-bar{height:6px;background:#ffffff0f;border-radius:3px;overflow:hidden;margin-bottom:12px}.path-fill{height:100%;background:linear-gradient(90deg,#39ff88,#1ecc5f);border-radius:3px;transition:width .6s cubic-bezier(.23,1,.32,1);box-shadow:0 0 6px #39ff884d}.skills-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:10px}.skill-node{display:flex;align-items:center;gap:10px;padding:10px 12px;background:#ffffff05;border-radius:8px;border:1px solid transparent;transition:all .25s ease}.skill-node:hover{background:#ffffff0a;border-color:#39ff881a}.skill-node.level-5{border-color:#ffd70040;background:#ffd70008}.skill-icon{font-size:18px}.skill-info{flex:1}.skill-name{font-size:12px;font-weight:600;color:#c8dae9;margin-bottom:2px}.skill-level{font-size:10px;color:#5c7590;font-weight:600}.challenges-panel{background:linear-gradient(180deg,#0c1622d1,#0a121cc2);border:1px solid rgba(57,255,136,.1);border-radius:14px;padding:24px}.challenges-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px}.challenges-header h2{margin:0;font-size:18px;color:#e8f2fe;font-weight:700}.challenges-list{display:flex;flex-direction:column;gap:10px;margin-top:14px}.challenge-card{padding:16px;background:#ffffff05;border:1px solid rgba(57,255,136,.08);border-radius:12px;transition:all .3s cubic-bezier(.23,1,.32,1)}.challenge-card:hover{border-color:#58a6ff4d;box-shadow:0 4px 20px #58a6ff0f;transform:translateY(-1px)}.challenge-card-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:6px}.challenge-title{font-weight:700;color:#e8f2fe;font-size:14px}.challenge-difficulty{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.06em}.challenge-description{font-size:12px;color:#7a96b2;margin-bottom:8px;line-height:1.4}.challenge-meta{display:flex;gap:12px;font-size:11px}.challenge-xp{color:#39ff88;font-weight:700;white-space:nowrap}.challenge-type{color:#5c7590;text-transform:capitalize}.challenge-timer{color:#ffa657;font-weight:600}.challenge-completed-badge{display:inline-block;margin-top:8px;padding:4px 12px;background:#39ff881a;border:1px solid rgba(57,255,136,.25);color:#39ff88;border-radius:999px;font-size:11px;font-weight:700}.challenge-start-btn{margin-top:12px;width:100%}.certifications-panel{background:linear-gradient(180deg,#0c1622d1,#0a121cc2);border:1px solid rgba(57,255,136,.1);border-radius:14px;padding:24px}.certifications-panel h2{margin:0 0 20px;font-size:18px;color:#e8f2fe;font-weight:700}.certifications-grid{display:flex;flex-direction:column;gap:12px}.certification-card{display:flex;align-items:center;gap:16px;padding:18px;background:#ffffff05;border:1px solid rgba(57,255,136,.08);border-radius:14px;transition:all .3s cubic-bezier(.23,1,.32,1)}.certification-card:hover{border-color:#ffd70033;transform:translateY(-1px)}.certification-card.earned{border-color:#ffd7004d;background:#ffd70008;box-shadow:0 0 20px #ffd7000d}.certification-icon{font-size:36px;flex-shrink:0}.certification-info{flex:1;min-width:0}.certification-name{font-weight:700;font-size:15px;color:#e8f2fe;margin-bottom:3px}.certification-description{font-size:12px;color:#7a96b2;margin-bottom:6px;line-height:1.4}.certification-requirement{font-size:12px;font-weight:600}.certification-earned{text-align:right;flex-shrink:0}.certification-badge{background:#ffd70026;color:gold;padding:4px 12px;border-radius:999px;font-size:11px;font-weight:700}.certification-number{font-size:10px;color:#5c7590;margin-top:4px}.celebration-overlay{position:fixed;inset:0;background:#000000d9;display:flex;align-items:center;justify-content:center;z-index:2000;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.celebration-modal{position:relative;background:linear-gradient(180deg,#161b22fa,#0d1117f2);border:2px solid rgba(255,215,0,.35);border-radius:20px;padding:44px 36px;text-align:center;max-width:400px;width:90%;box-shadow:0 0 80px #ffd70026}.celebration-particles{position:absolute;top:50%;left:50%;pointer-events:none}.celebration-particles .particle{position:absolute;font-size:24px}.celebration-icon{font-size:64px;margin-bottom:16px}.celebration-title{font-size:22px;color:#e8f2fe;margin:0 0 8px;font-weight:800}.celebration-name{font-size:20px;font-weight:800;margin-bottom:8px}.celebration-desc{font-size:13px;color:#7a96b2;margin-bottom:16px;line-height:1.5}.celebration-xp{font-size:28px;font-weight:800;color:#39ff88;margin-bottom:20px;text-shadow:0 0 20px rgba(57,255,136,.4);white-space:nowrap}.xp-toast-container{position:fixed;top:80px;right:20px;z-index:1500;display:flex;flex-direction:column;gap:8px;pointer-events:none}.xp-toast{display:flex;align-items:center;gap:10px;padding:10px 18px;background:#39ff881a;border:1px solid rgba(57,255,136,.35);border-radius:10px;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);box-shadow:0 4px 20px #39ff881a}.xp-toast-amount{font-size:18px;font-weight:800;color:#39ff88;text-shadow:0 0 10px rgba(57,255,136,.4);white-space:nowrap}.xp-toast-action{font-size:12px;color:#7a96b2;font-weight:500}.help-panel{background:linear-gradient(180deg,#0c1622d1,#0a121cc2);border:1px solid rgba(57,255,136,.1);border-radius:14px;padding:24px}.help-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px}.help-header h2{margin:0;font-size:18px;color:#e8f2fe;font-weight:700}.help-form{display:flex;flex-direction:column;gap:10px;margin-bottom:20px;padding:16px;background:#ffffff05;border:1px solid rgba(57,255,136,.08);border-radius:12px}.help-form input,.help-form textarea,.help-form select{width:100%;padding:10px 12px;background:#0a131dcc;border:1px solid rgba(57,255,136,.12);border-radius:10px;color:#e8f2fe;font-family:inherit;font-size:13px;resize:vertical;transition:border-color .3s,box-shadow .3s}.help-form input:focus,.help-form textarea:focus,.help-form select:focus{border-color:#39ff88;box-shadow:0 0 0 3px #39ff881f;outline:none}.help-requests-list{display:flex;flex-direction:column;gap:10px}.help-request-card{padding:16px;background:#ffffff05;border:1px solid rgba(57,255,136,.06);border-radius:12px;transition:all .25s ease}.help-request-card:hover{border-color:#39ff8826}.help-request-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:6px}.help-request-title{font-weight:700;color:#e8f2fe;font-size:14px}.help-status{font-size:10px;padding:3px 10px;border-radius:999px;text-transform:uppercase;font-weight:700;letter-spacing:.05em}.help-status-open{background:#58a6ff1f;color:#58a6ff}.help-status-in_progress{background:#ffa6571f;color:#ffa657}.help-status-resolved{background:#39ff881f;color:#39ff88}.help-request-body{font-size:12px;color:#7a96b2;margin-bottom:8px;line-height:1.5}.help-request-meta{display:flex;gap:12px;font-size:11px;color:#5c7590}.help-category-tag{background:#ffffff0a;padding:2px 8px;border-radius:4px}.help-reply-form{margin-top:12px;display:flex;flex-direction:column;gap:8px}.help-reply-form textarea{width:100%;padding:10px 12px;background:#0a131dcc;border:1px solid rgba(57,255,136,.12);border-radius:10px;color:#e8f2fe;font-family:inherit;font-size:13px;resize:vertical}.help-reply-form textarea:focus{border-color:#39ff88;box-shadow:0 0 0 3px #39ff881f;outline:none}.help-reply-actions{display:flex;gap:8px}.gamification-page{display:grid;gap:16px}.gamification-page .row{display:grid;grid-template-columns:1fr 1fr;gap:16px}.gamification-page .full-width{grid-column:1 / -1}.nav-badge{display:inline-flex;align-items:center;justify-content:center;min-width:20px;height:20px;padding:0 6px;background:#39ff8826;color:#39ff88;border-radius:10px;font-size:10px;font-weight:700;margin-left:auto}.main-tabs{display:flex;gap:10px;margin-bottom:18px}.main-tab{border:1px solid rgba(57,255,136,.12);background:#0a121cb3;color:#8fa5bf;padding:10px 14px;border-radius:10px;font-weight:700;cursor:pointer;transition:all .2s ease}.main-tab.active,.main-tab:hover{color:#eaf8ff;border-color:#39ff8857;box-shadow:0 0 0 1px #39ff881f inset}.learning-panel{display:grid;gap:16px}.learning-header{display:flex;justify-content:space-between;gap:16px;padding:18px;border-radius:14px;border:1px solid rgba(88,166,255,.14);background:linear-gradient(135deg,#0b1826f0,#0a121dd6)}.learning-header h3{margin:0 0 6px;color:#edf7ff;font-size:18px}.learning-header p{margin:0;color:#8ca7c1;max-width:640px;line-height:1.55}.learning-overall-progress{min-width:160px;color:#d9ecff;font-size:12px;font-weight:700}.learning-overall-bar,.learning-module-progress-bar{height:8px;background:#ffffff0f;border-radius:999px;overflow:hidden;margin-top:8px}.learning-overall-fill,.learning-module-progress-fill{height:100%;background:linear-gradient(90deg,#58a6ff,#39ff88);border-radius:inherit}.learning-modules{display:grid;gap:14px}.learning-module{border:1px solid rgba(88,166,255,.1);border-radius:14px;background:#09101ae0;overflow:hidden}.learning-module.locked{opacity:.62}.learning-module-header{width:100%;display:flex;justify-content:space-between;gap:16px;padding:18px;background:transparent;border:0;text-align:left;cursor:pointer}.learning-module-main{flex:1}.learning-module-title-row{display:flex;align-items:center;gap:10px;margin-bottom:6px}.learning-module-title{font-size:16px;font-weight:800;color:#edf7ff}.learning-status{display:inline-flex;align-items:center;padding:4px 8px;border-radius:999px;font-size:10px;font-weight:800;text-transform:uppercase;letter-spacing:.06em}.learning-status.available{background:#58a6ff1f;color:#58a6ff}.learning-status.in_progress{background:#ffa6571f;color:#ffa657}.learning-status.completed{background:#39ff881f;color:#39ff88}.learning-status.locked{background:#ffffff14;color:#97a7ba}.learning-module-description{color:#91a7c0;line-height:1.5;margin-bottom:10px}.learning-module-meta{display:flex;flex-wrap:wrap;gap:12px;font-size:11px;color:#64819f;font-weight:700}.learning-module-progress-wrap{width:120px;color:#cfe6ff;font-size:12px;font-weight:700}.learning-cards-list{display:grid;gap:12px;padding:0 18px 18px}.learning-card{border:1px solid rgba(57,255,136,.08);border-radius:12px;background:linear-gradient(180deg,#0e1723eb,#080e16f5);padding:16px}.learning-card.completed{border-color:#39ff8838}.learning-card-header{display:flex;justify-content:space-between;gap:16px;align-items:flex-start;margin-bottom:12px}.learning-card-type{color:#58a6ff;text-transform:uppercase;font-size:10px;letter-spacing:.08em;font-weight:800;margin-bottom:4px}.learning-card-title{color:#edf7ff;font-size:16px;font-weight:800}.learning-card-content{color:#bfd3e8;line-height:1.7}.learning-card-content h4,.learning-card-content h5{color:#f4fbff;margin:12px 0 6px}.learning-card-content p,.learning-card-content li{margin:0 0 8px}.learning-code-line{margin:8px 0;padding:8px 10px;border-radius:8px;background:#0000003d;color:#b8f9d0;white-space:pre-wrap;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:12px}.learning-card-hint{margin-top:10px;padding:10px 12px;border-radius:10px;background:#58a6ff14;color:#9ac2eb;font-size:12px}.blooms-level-badge{display:inline-flex;align-items:center;gap:8px;padding:8px 12px;border:1px solid;border-radius:10px;transition:all .3s cubic-bezier(.23,1,.32,1)}.blooms-level-badge.clickable{cursor:pointer}.blooms-level-badge.locked{opacity:.6}.blooms-badge-icon{font-size:16px;flex-shrink:0}.blooms-badge-content{display:flex;flex-direction:column;gap:1px}.blooms-badge-label{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.04em;line-height:1.2}.blooms-badge-meta{display:flex;gap:8px;align-items:center}.blooms-badge-number{font-size:9px;opacity:.8;font-weight:600}.blooms-badge-score{font-size:11px;font-weight:800}.blooms-badge-check{font-size:14px;margin-left:4px}.blooms-badge-small{padding:6px 10px}.blooms-badge-small .blooms-badge-icon{font-size:14px}.blooms-badge-small .blooms-badge-label,.blooms-badge-small .blooms-badge-score{font-size:10px}.blooms-badge-medium{padding:10px 14px}.blooms-badge-medium .blooms-badge-icon{font-size:18px}.blooms-badge-medium .blooms-badge-label{font-size:12px}.blooms-badge-large{padding:14px 18px}.blooms-badge-large .blooms-badge-icon{font-size:24px}.blooms-badge-large .blooms-badge-label{font-size:14px}.blooms-progress-ring{display:flex;flex-direction:column;gap:16px}.blooms-ring-container{display:flex;align-items:center;gap:24px}.blooms-ring-svg{flex-shrink:0}.blooms-ring-status{display:flex;flex-direction:column;gap:8px}.blooms-status-item{display:flex;align-items:center;gap:8px;font-size:12px;font-weight:600}.blooms-status-dot{width:10px;height:10px;border-radius:50%;box-shadow:0 0 8px currentColor}.blooms-status-label{color:#7a96b2;min-width:70px}.blooms-status-count{color:#e8f2fe;font-weight:700}.blooms-ring-legend{display:flex;flex-wrap:wrap;gap:8px;justify-content:center}.blooms-ring-small .blooms-ring-svg{width:80px;height:80px}.blooms-ring-medium .blooms-ring-svg{width:120px;height:120px}.blooms-ring-large .blooms-ring-svg{width:160px;height:160px}.blooms-panel{background:linear-gradient(180deg,#0c1622d1,#0a121cc2);border:1px solid rgba(88,166,255,.15);border-radius:14px;padding:20px}.blooms-panel-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:16px;flex-wrap:wrap;gap:12px}.blooms-panel-title{margin:0 0 4px;font-size:16px;color:#e8f2fe;font-weight:700}.blooms-panel-subtitle{margin:0;font-size:12px;color:#7a96b2}.blooms-panel-content{display:flex;gap:24px;align-items:flex-start;flex-wrap:wrap}.blooms-levels-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;flex:1;min-width:200px}.mastery-gate{display:inline-flex;align-items:center;gap:8px;padding:8px 14px;border-radius:10px;font-size:12px;font-weight:700}.mastery-gate.locked{background:#f851491a;border:1px solid rgba(248,81,73,.3);color:#f85149}.mastery-gate.unlocked{background:#39ff881a;border:1px solid rgba(57,255,136,.3);color:#39ff88}.mastery-gate-icon{font-size:14px}.mastery-gate-text{white-space:nowrap}.blooms-current-focus{display:flex;align-items:center;flex-wrap:wrap;gap:8px;margin-top:16px;padding:12px 16px;background:#58a6ff14;border:1px solid rgba(88,166,255,.2);border-radius:10px;font-size:13px}.focus-label{color:#7a96b2;font-weight:600}.focus-level{color:#58a6ff;font-weight:700}.focus-description{color:#9ab6d4}.focus-unlock-requirement{color:#ffa657;font-size:11px;font-weight:600;margin-left:auto}.learning-module-badges{display:flex;gap:8px;align-items:center}.blooms-mini-badge{display:inline-flex;align-items:center;gap:4px;padding:4px 8px;border-radius:6px;font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.04em;transition:all .25s ease}.blooms-mini-badge.locked{background:#646e7833;border:1px solid rgba(100,110,120,.3);color:#6b7b8c}.blooms-mini-badge.unlocked{background:#58a6ff26;border:1px solid rgba(88,166,255,.35);color:#58a6ff}.blooms-mini-icon{font-size:12px}.blooms-mini-text{line-height:1}.blooms-mini-lock{font-size:9px;margin-left:2px}.blooms-meta-score{font-weight:700}.blooms-meta-score.locked{color:#6b7b8c}.blooms-meta-score.in_progress{color:#58a6ff}.blooms-meta-score.mastered{color:#39ff88}@media(max-width:768px){.main-tabs,.learning-header,.learning-module-header,.learning-card-header{flex-direction:column}.achievements-grid,.skills-list{grid-template-columns:1fr}.notification-container{left:20px;right:20px}.notification-toast{max-width:100%}.blooms-panel-content{flex-direction:column;align-items:center}.blooms-levels-grid{grid-template-columns:repeat(2,1fr);width:100%}.blooms-panel-header{flex-direction:column;align-items:flex-start}.mastery-gate{width:100%;justify-content:center}.blooms-current-focus{flex-direction:column;align-items:flex-start;gap:6px}.focus-unlock-requirement{margin-left:0}}.blooms-analytics{padding:24px;max-width:1400px;margin:0 auto}.analytics-access-denied{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:60px 24px;text-align:center;background:linear-gradient(180deg,#ef44440d,#ef444405);border:1px solid rgba(239,68,68,.2);border-radius:16px}.access-denied-icon{font-size:56px;margin-bottom:16px;opacity:.8}.analytics-access-denied h2{font-size:24px;color:#ef4444;margin-bottom:8px;font-weight:700}.analytics-access-denied p{color:#9ca3af;font-size:14px}.analytics-loading,.analytics-error{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:80px 24px;text-align:center}.loading-spinner,.error-icon{font-size:48px;margin-bottom:16px}.analytics-error h3{color:#ef4444;margin-bottom:8px}.analytics-error p{color:#9ca3af;margin-bottom:16px}.analytics-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:16px;gap:16px;flex-wrap:wrap}.analytics-title{font-size:28px;font-weight:800;color:#e8f2fe;margin-bottom:6px;display:flex;align-items:center;gap:12px}.title-icon{font-size:32px}.analytics-subtitle{color:#7a96b2;font-size:14px}.analytics-controls{display:flex;gap:12px;align-items:center}.module-select{padding:10px 16px;background:#0c1622cc;border:1px solid rgba(57,255,136,.2);border-radius:8px;color:#e8f2fe;font-size:14px;cursor:pointer;transition:all .2s}.module-select:hover{border-color:#39ff8866}.module-select:focus{outline:none;border-color:#39ff88;box-shadow:0 0 0 3px #39ff881a}.refresh-btn{padding:10px 14px;font-size:16px;background:#0c1622cc;border:1px solid rgba(57,255,136,.2);border-radius:8px;cursor:pointer;transition:all .2s}.refresh-btn:hover{background:#39ff881a;border-color:#39ff8866;transform:rotate(180deg)}.refresh-indicator{display:flex;align-items:center;gap:8px;font-size:12px;color:#7a96b2;margin-bottom:24px}.pulse-dot{width:8px;height:8px;background:#10b981;border-radius:50%;animation:pulse 2s ease-in-out infinite}@keyframes pulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.5;transform:scale(.8)}}.analytics-section{margin-bottom:32px}.section-title{font-size:18px;font-weight:700;color:#e8f2fe;margin-bottom:16px;display:flex;align-items:center;gap:8px}.badge{padding:2px 8px;border-radius:12px;font-size:11px;font-weight:700}.badge.danger{background:#ef444433;color:#ef4444}.overview-grid{display:grid;grid-template-columns:280px 1fr;gap:20px}.overview-card{background:linear-gradient(180deg,#0c1622d1,#0a121cc2);border:1px solid rgba(57,255,136,.1);border-radius:14px;padding:20px}.stats-card{display:flex;flex-direction:column;gap:16px}.stat-item{display:flex;flex-direction:column;gap:4px}.stat-value{font-size:32px;font-weight:800;color:#e8f2fe;line-height:1}.stat-label{font-size:12px;color:#7a96b2;text-transform:uppercase;letter-spacing:.5px}.chart-card h4{font-size:14px;color:#7a96b2;margin-bottom:16px;font-weight:600}.blooms-bar-chart{display:flex;flex-direction:column;gap:12px}.bar-row{display:grid;grid-template-columns:100px 1fr 45px;align-items:center;gap:12px}.bar-label{font-size:12px;color:#9ca3af;font-weight:500}.bar-track{height:8px;background:#ffffff0f;border-radius:4px;overflow:hidden}.bar-fill{height:100%;border-radius:4px;transition:width .8s cubic-bezier(.23,1,.32,1)}.bar-value{font-size:12px;color:#e8f2fe;font-weight:600;text-align:right}.blooms-levels-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}.blooms-level-card{background:linear-gradient(180deg,#0c1622e6,#0a121cd9);border:1px solid;border-radius:14px;overflow:hidden;transition:transform .3s,box-shadow .3s}.blooms-level-card:hover{transform:translateY(-4px)}.level-card-header{display:flex;align-items:center;gap:10px;padding:14px 16px;border-bottom:1px solid;background:#ffffff05}.level-icon{font-size:20px}.level-name{font-weight:700;color:#e8f2fe;font-size:14px}.level-card-body{padding:16px}.level-score-row{margin-bottom:16px}.level-score-badge{display:inline-flex;flex-direction:column;align-items:center;padding:10px 16px;border:1px solid;border-radius:10px;min-width:80px}.score-value{font-size:24px;font-weight:800;line-height:1}.score-label{font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:.5px;margin-top:2px}.level-metrics{display:grid;grid-template-columns:repeat(2,1fr);gap:12px;margin-bottom:16px}.metric{display:flex;flex-direction:column;gap:2px}.metric-value{font-size:18px;font-weight:700;color:#e8f2fe}.metric-label{font-size:11px;color:#7a96b2;text-transform:uppercase;letter-spacing:.5px}.level-progress-bar{height:4px;background:#ffffff14;border-radius:2px;overflow:hidden}.level-progress-fill{height:100%;border-radius:2px;transition:width .6s cubic-bezier(.23,1,.32,1)}.struggling-students-list{background:linear-gradient(180deg,#0c1622d1,#0a121cc2);border:1px solid rgba(239,68,68,.15);border-radius:14px;overflow:hidden}.students-table-header{display:grid;grid-template-columns:2fr 1fr 80px 80px 120px 140px;gap:12px;padding:12px 16px;background:#ef44440d;border-bottom:1px solid rgba(239,68,68,.1);font-size:11px;font-weight:700;color:#9ca3af;text-transform:uppercase;letter-spacing:.5px}.student-row{display:grid;grid-template-columns:2fr 1fr 80px 80px 120px 140px;gap:12px;padding:14px 16px;align-items:center;border-bottom:1px solid rgba(255,255,255,.04);transition:background .2s}.student-row:hover{background:#ffffff05}.student-row:last-child{border-bottom:none}.col-email{display:flex;align-items:center;gap:10px}.student-avatar{width:32px;height:32px;background:linear-gradient(135deg,#3b82f6,#8b5cf6);border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:14px}.student-email{font-weight:600;color:#e8f2fe;font-size:13px}.level-badge-sm{padding:4px 10px;border-radius:6px;font-size:11px;font-weight:700;color:#fff;text-transform:uppercase;letter-spacing:.5px}.score-low{font-weight:700;color:#ef4444;font-size:14px}.col-attempts,.col-activity{color:#9ca3af;font-size:13px}.remediation-btn{padding:6px 12px;background:#ef444426;border:1px solid rgba(239,68,68,.3);color:#ef4444;border-radius:6px;font-size:12px;font-weight:600;cursor:pointer;transition:all .2s}.remediation-btn:hover{background:#ef444440;border-color:#ef444480;transform:translateY(-1px)}.empty-state{display:flex;flex-direction:column;align-items:center;padding:40px;text-align:center;background:linear-gradient(180deg,#0c1622d1,#0a121cc2);border:1px solid rgba(57,255,136,.1);border-radius:14px}.empty-icon{font-size:40px;margin-bottom:12px}.empty-state p{color:#7a96b2;font-size:14px}.extended-analytics-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:20px}.extended-card{background:linear-gradient(180deg,#0c1622d1,#0a121cc2);border:1px solid rgba(57,255,136,.1);border-radius:14px;padding:20px}.extended-card h4{font-size:14px;color:#7a96b2;margin-bottom:16px;font-weight:600}.distribution-list{display:flex;flex-direction:column;gap:10px}.distribution-item{display:grid;grid-template-columns:100px 1fr 40px;align-items:center;gap:12px}.dist-label{font-size:12px;color:#9ca3af;text-transform:capitalize}.dist-bar{height:6px;background:#ffffff0f;border-radius:3px;overflow:hidden}.dist-fill{height:100%;background:linear-gradient(90deg,#8b5cf6,#06b6d4);border-radius:3px;transition:width .6s cubic-bezier(.23,1,.32,1)}.dist-count{font-size:12px;color:#e8f2fe;font-weight:600;text-align:right}.challenge-rates-list{display:flex;flex-direction:column;gap:12px}.challenge-rate-item{display:grid;grid-template-columns:1fr 80px 45px;align-items:center;gap:12px}.challenge-title{font-size:12px;color:#e8f2fe;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.rate-bar{height:6px;background:#ffffff0f;border-radius:3px;overflow:hidden}.rate-fill{height:100%;border-radius:3px;transition:width .6s cubic-bezier(.23,1,.32,1)}.rate-value{font-size:12px;color:#e8f2fe;font-weight:600;text-align:right}.remediation-modal-overlay{position:fixed;inset:0;background:#000000b3;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);display:flex;align-items:center;justify-content:center;z-index:1000;padding:20px}.remediation-modal{background:linear-gradient(180deg,#0f1720,#0a0f16);border:1px solid rgba(57,255,136,.2);border-radius:16px;padding:28px;max-width:480px;width:100%;box-shadow:0 25px 50px #00000080,0 0 40px #39ff881a}.remediation-modal h3{font-size:20px;color:#e8f2fe;margin-bottom:20px;font-weight:700}.remediation-student-info{background:#ffffff08;border-radius:10px;padding:16px;margin-bottom:20px}.remediation-student-info p{margin:6px 0;font-size:14px;color:#9ca3af}.remediation-student-info strong{color:#e8f2fe}.remediation-options{display:flex;flex-direction:column;gap:10px;margin-bottom:20px}.remediation-option{display:flex;align-items:center;gap:12px;padding:14px 16px;background:#ffffff0d;border:1px solid rgba(57,255,136,.15);border-radius:10px;cursor:pointer;transition:all .2s;text-align:left;width:100%;color:#e8f2fe;font-size:14px}.remediation-option:hover{background:#39ff881a;border-color:#39ff884d;transform:translate(4px)}.remediation-option.primary{background:linear-gradient(135deg,#39ff8833,#39ff881a);border-color:#39ff8866}.option-icon{font-size:20px}.option-label{font-weight:600}.cancel-btn{width:100%;padding:12px;background:#ffffff0d;border:1px solid rgba(255,255,255,.1);border-radius:8px;color:#9ca3af;cursor:pointer;transition:all .2s}.cancel-btn:hover{background:#ffffff1a;color:#e8f2fe}@media(max-width:1024px){.overview-grid{grid-template-columns:1fr}.blooms-levels-grid{grid-template-columns:repeat(2,1fr)}.extended-analytics-grid{grid-template-columns:1fr}}@media(max-width:768px){.blooms-analytics{padding:16px}.analytics-header{flex-direction:column}.blooms-levels-grid{grid-template-columns:1fr}.students-table-header,.student-row{grid-template-columns:1fr 80px 60px;gap:8px}.col-level,.col-activity{display:none}.bar-row{grid-template-columns:80px 1fr 40px}}.empty-chart{color:#7a96b2;font-size:14px;text-align:center;padding:40px}.learning-dashboard{padding:0}.learning-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:24px;padding-bottom:16px;border-bottom:1px solid #374151}.learning-header-content h2{font-size:24px;color:#f3f4f6;margin:0 0 8px}.learning-subtitle{color:#9ca3af;font-size:14px;margin:0}.learning-stats{text-align:right}.learning-stat{display:flex;flex-direction:column}.stat-value{font-size:28px;font-weight:700;color:#3b82f6}.stat-label{font-size:12px;color:#9ca3af}.modules-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:16px}.module-card{background:#1f2937;border:1px solid #374151;border-radius:12px;padding:20px;position:relative;transition:all .2s}.module-card:not(.locked):hover{border-color:#3b82f6;transform:translateY(-2px);box-shadow:0 8px 24px #0000004d}.module-card.locked{opacity:.6}.module-locked-overlay{position:absolute;inset:0;background:#00000080;border-radius:12px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;z-index:10}.locked-icon{font-size:32px}.locked-text{font-size:12px;color:#9ca3af;text-align:center;padding:0 16px}.module-card-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:12px}.module-icon{width:48px;height:48px;border-radius:12px;display:flex;align-items:center;justify-content:center}.module-difficulty{font-size:14px;letter-spacing:2px}.module-title{font-size:18px;color:#f3f4f6;margin:0 0 8px}.module-description{font-size:13px;color:#9ca3af;margin:0 0 16px;line-height:1.5}.module-meta{display:flex;gap:16px;font-size:12px;color:#6b7280;margin-bottom:16px}.module-progress{display:flex;align-items:center;gap:12px}.progress-bar{flex:1;height:6px;background:#374151;border-radius:3px;overflow:hidden}.progress-fill{height:100%;border-radius:3px;transition:width .3s}.progress-text{font-size:12px;color:#9ca3af;min-width:40px}.module-blooms{display:flex;justify-content:center;margin-top:12px;padding-top:12px;border-top:1px solid #374151}.module-completed-badge{position:absolute;top:12px;right:12px;background:#22c55e;color:#fff;font-size:11px;padding:4px 8px;border-radius:4px;font-weight:600}.module-view{padding:0}.module-view-header{margin-bottom:24px}.back-button{background:none;border:none;color:#3b82f6;cursor:pointer;font-size:14px;padding:0;margin-bottom:16px}.back-button:hover{text-decoration:underline}.module-info h2{font-size:24px;color:#f3f4f6;margin:0 0 8px}.module-info p{color:#9ca3af;font-size:14px;margin:0 0 16px}.module-stats-row{display:flex;gap:24px;font-size:13px;color:#6b7280;margin-bottom:16px}.module-blooms-ring{display:flex;justify-content:center;padding:16px;background:#1f2937;border-radius:12px;border:1px solid #374151}.cards-list{display:flex;flex-direction:column;gap:12px}.card-preview{background:#1f2937;border:1px solid #374151;border-radius:8px;padding:16px;cursor:pointer;transition:all .2s}.card-preview:not(.locked):hover{border-color:#3b82f6;background:#252d3d}.card-preview.locked{cursor:not-allowed}.card-preview-header{display:flex;align-items:center;gap:8px;margin-bottom:8px}.card-type-badge{font-size:10px;font-weight:700;padding:3px 8px;border-radius:4px;letter-spacing:.5px}.blooms-badge{font-size:10px;font-weight:500;padding:3px 8px;border-radius:4px;text-transform:capitalize}.xp-badge{font-size:11px;color:#fbbf24;font-weight:600;margin-left:auto}.completed-badge{margin-left:auto;color:#22c55e;font-size:18px}.card-preview-title{font-size:15px;color:#e5e7eb;margin:0}.card-preview-locked{font-size:12px;color:#6b7280;margin:4px 0 0}.card-modal-overlay{position:fixed;inset:0;background:#000000b3;display:flex;align-items:center;justify-content:center;z-index:1000;padding:20px}.card-modal{background:#1f2937;border:1px solid #374151;border-radius:16px;width:100%;max-width:700px;max-height:80vh;overflow-y:auto}.card-modal-header{display:flex;justify-content:space-between;align-items:flex-start;padding:20px 24px;border-bottom:1px solid #374151}.card-modal-header h3{font-size:20px;color:#f3f4f6;margin:8px 0 0}.close-button{background:none;border:none;color:#9ca3af;font-size:28px;cursor:pointer;line-height:1;padding:0}.close-button:hover{color:#f3f4f6}.card-modal-content{padding:24px}.card-content-markdown{color:#e5e7eb;line-height:1.7;font-size:15px}.card-content-markdown h2{font-size:20px;color:#f3f4f6;margin:0 0 16px}.card-content-markdown h3{font-size:17px;color:#f3f4f6;margin:24px 0 12px}.card-content-markdown p{margin:0 0 16px}.card-content-markdown code{background:#374151;padding:2px 6px;border-radius:4px;font-family:monospace;font-size:13px}.card-content-markdown li{margin:8px 0}.card-content-markdown strong{color:#f3f4f6}.card-content-markdown table{width:100%;border-collapse:collapse;margin:16px 0}.card-content-markdown td{padding:8px 12px;border:1px solid #374151}.card-modal-footer{padding:16px 24px;border-top:1px solid #374151}.card-modal-footer .btn{width:100%}.quiz-card{display:flex;flex-direction:column;gap:16px}.quiz-question h4{font-size:18px;color:#e5e7eb;margin:0}.quiz-options{display:flex;flex-direction:column;gap:8px}.quiz-option{display:flex;align-items:center;gap:12px;padding:12px 16px;background:#1f2937;border:2px solid #374151;border-radius:8px;cursor:pointer;transition:all .2s;text-align:left}.quiz-option:hover:not(:disabled){border-color:#3b82f6;background:#1e3a5f}.quiz-option.selected{border-color:#3b82f6;background:#1e3a5f}.quiz-option.correct{border-color:#22c55e;background:#22c55e1a}.quiz-option.incorrect{border-color:#ef4444;background:#ef44441a}.quiz-option:disabled{cursor:not-allowed;opacity:.7}.option-label{width:28px;height:28px;display:flex;align-items:center;justify-content:center;background:#374151;border-radius:50%;font-weight:700;color:#e5e7eb}.option-value{color:#e5e7eb;text-transform:capitalize}.hint-button{background:none;border:1px dashed #f59e0b;color:#f59e0b;padding:8px 16px;border-radius:6px;cursor:pointer;font-size:14px}.hint-revealed{background:#f59e0b1a;border:1px solid #f59e0b;border-radius:6px;padding:12px;color:#fbbf24;font-size:14px}.quiz-feedback{display:flex;align-items:center;gap:12px;padding:16px;border-radius:8px;font-size:14px}.quiz-feedback.success{background:#22c55e1a;border:1px solid #22c55e;color:#22c55e}.quiz-feedback.error{background:#ef44441a;border:1px solid #ef4444;color:#ef4444}.feedback-icon{font-size:20px}.misconceptions{background:#1f2937;border-radius:8px;padding:12px;font-size:13px;color:#9ca3af}.misconceptions ul{margin:8px 0 0 20px}.quiz-submit,.quiz-retry{width:100%}.quiz-xp-reward{display:inline-block;font-size:12px;color:#fbbf24;background:#fbbf241a;padding:4px 10px;border-radius:12px;margin-top:8px}.confidence-meter{background:#1f2937;border:1px solid #374151;border-radius:8px;padding:16px;margin-bottom:8px}.confidence-label{font-size:13px;color:#9ca3af;margin-bottom:10px;text-align:center}.confidence-buttons{display:flex;justify-content:center;gap:8px}.confidence-btn{width:44px;height:44px;border-radius:50%;background:#374151;border:2px solid #4b5563;font-size:20px;cursor:pointer;transition:all .2s;display:flex;align-items:center;justify-content:center}.confidence-btn:hover{border-color:#3b82f6;background:#1e3a5f}.confidence-btn.selected{border-color:#3b82f6;background:#1e3a5f;box-shadow:0 0 0 3px #3b82f64d}.confidence-hints{text-align:center;margin-top:8px;min-height:20px}.confidence-hint{font-size:12px;color:#6b7280;font-style:italic}.progressive-hint{background:linear-gradient(135deg,#f59e0b26,#f59e0b0d);border:1px solid #f59e0b}.hint-header{display:flex;align-items:center;gap:8px;margin-bottom:6px}.hint-icon{font-size:16px}.hint-level{font-size:11px;color:#fbbf24;text-transform:uppercase;letter-spacing:.5px}.option-feedback-icon{margin-left:auto;font-size:18px;font-weight:700}.option-feedback-icon.correct{color:#22c55e}.option-feedback-icon.incorrect{color:#ef4444}.quiz-feedback{flex-direction:column;align-items:flex-start;text-align:left}.feedback-content{display:flex;flex-direction:column;gap:4px}.explanation-panel{background:#1f2937;border:1px solid #374151;border-radius:8px;padding:16px;margin-top:8px}.explanation-toggle{background:none;border:none;color:#3b82f6;cursor:pointer;font-size:14px;padding:0}.explanation-toggle:hover{text-decoration:underline}.explanation-content{margin-top:16px;padding-top:16px;border-top:1px solid #374151}.explanation-section{margin-bottom:16px}.explanation-section:last-child{margin-bottom:0}.explanation-section h5{font-size:13px;color:#e5e7eb;margin:0 0 8px}.explanation-section p{font-size:14px;color:#9ca3af;margin:0;line-height:1.6}.explanation-section.misconceptions{background:#ef44440d;border:1px solid rgba(239,68,68,.2);border-radius:6px;padding:12px}.explanation-section.misconceptions h5{color:#ef4444}.explanation-section.misconceptions ul{margin:8px 0 0;padding-left:20px}.explanation-section.misconceptions li{font-size:13px;color:#9ca3af;margin:4px 0}.spaced-repetition-hint{display:flex;align-items:center;gap:8px;padding:12px;background:#8b5cf61a;border:1px solid rgba(139,92,246,.3);border-radius:6px;font-size:13px;color:#a78bfa}.sr-icon{font-size:16px}.quiz-actions{display:flex;flex-direction:column;gap:8px;margin-top:8px}.quiz-continue{background:linear-gradient(135deg,#22c55e,#16a34a)!important}.quiz-option{position:relative}.quiz-option:active:not(:disabled){transform:scale(.98)}@keyframes shake{0%,to{transform:translate(0)}25%{transform:translate(-4px)}75%{transform:translate(4px)}}.quiz-option.incorrect{animation:shake .3s ease-in-out}.blooms-ring-container{display:flex;flex-direction:column;align-items:center;gap:8px}.blooms-ring-labels{display:flex;gap:4px;flex-wrap:wrap;justify-content:center;max-width:180px}.blooms-ring-label{font-size:10px;padding:2px 6px;border-radius:4px;background:#6b728033;color:#6b7280}.blooms-ring-label.locked{background:#6b728033;color:#6b7280}.blooms-ring-label.in_progress{background:#3b82f633;color:#3b82f6}.blooms-ring-label.mastered{background:#22c55e33;color:#22c55e;font-weight:700}
