
:root{
  --bg:#05070d;
  --card:#0b0f18;
  --card2:#0f1420;
  --text:#f4f6fb;
  --muted:#8f99ad;
  --line:#1d2433;
  --accent:#6f7cff;
  --accent2:#8b5cf6;
  --good:#3ddc97;
  --warn:#ffbd59;
  --danger:#ff6b6b;
  --shadow:0 24px 70px rgba(0,0,0,.55);
}
*{box-sizing:border-box}
body{
  margin:0;
  font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  background:
    radial-gradient(circle at top left, rgba(111,124,255,.10), transparent 28%),
    radial-gradient(circle at top right, rgba(139,92,246,.08), transparent 32%),
    var(--bg);
  color:var(--text);
  min-height:100vh;
}
button,input,textarea,select{font:inherit}
button{cursor:pointer}
.topbar{
  position:sticky;top:0;z-index:30;
  display:flex;justify-content:flex-start;align-items:center;
  gap:18px;padding:10px 18px 10px 8px;
  background:rgba(2,2,3,.96);
  backdrop-filter:blur(14px);
  border-bottom:1px solid rgba(255,255,255,.06);
}
.brand{
  display:flex;align-items:center;padding:0;margin:0 12px 0 0;
  background:transparent;border:0;border-radius:14px;text-align:left;color:var(--text);
  cursor:pointer;user-select:none;flex:0 0 auto
}
.brand:hover{transform:none;background:transparent}
.brand:focus-visible{outline:2px solid rgba(237,31,42,.62);outline-offset:4px}
.brand-logo-only{margin-right:auto}
.brand-logo-image{
  display:block;height:54px;width:auto;max-width:min(220px,42vw);object-fit:contain;
  filter:drop-shadow(0 7px 18px rgba(237,31,42,.16));
}
.nav-actions{display:flex;flex-wrap:wrap;gap:8px;margin-left:auto}
button{
  border:0;border-radius:12px;padding:10px 14px;
  color:var(--text);transition:.18s ease;
}
button:hover{transform:translateY(-1px)}
.ghost{background:#0c111b;border:1px solid var(--line)}
.primary{background:linear-gradient(135deg,var(--accent),var(--accent2));font-weight:800}
.danger{background:rgba(255,107,107,.14);color:#ffb6b6;border:1px solid rgba(255,107,107,.28)}
.success{background:rgba(61,220,151,.15);color:#a8ffd7;border:1px solid rgba(61,220,151,.3)}
main{max-width:1180px;margin:0 auto;padding:34px 22px 72px}
.hero{
  display:grid;grid-template-columns:1.35fr .65fr;gap:24px;
  align-items:stretch;margin-top:16px
}
.hero-panel,.card,.admin-panel{
  background:linear-gradient(180deg,rgba(15,20,32,.98),rgba(9,13,21,.98));
  border:1px solid rgba(255,255,255,.07);
  border-radius:24px;box-shadow:var(--shadow)
}
.hero-panel{padding:38px}
.eyebrow{font-size:12px;font-weight:800;letter-spacing:.14em;text-transform:uppercase;color:#aab5ff}
h1{font-size:clamp(38px,6vw,68px);line-height:1.02;margin:12px 0 18px}
.hero p{color:var(--muted);font-size:18px;line-height:1.7}
.hero-actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:26px}
.profile-card{padding:28px;display:flex;flex-direction:column;justify-content:space-between}
.avatar{
  width:84px;height:84px;border-radius:24px;display:grid;place-items:center;
  font-size:30px;font-weight:900;background:linear-gradient(135deg,#161d2f,#33224f);
  border:1px solid rgba(255,255,255,.08)
}
.profile-grid{display:grid;gap:10px;margin-top:20px}
.meta-row{display:flex;justify-content:space-between;gap:16px;padding:10px 0;border-bottom:1px solid var(--line)}
.meta-row span:first-child{color:var(--muted)}
.section{margin-top:34px}
.section-head{display:flex;justify-content:space-between;align-items:end;gap:18px;margin-bottom:16px}
.section h2{font-size:28px;margin:0}
.section p.sub{color:var(--muted);margin:6px 0 0}
.grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
.card{padding:20px}
.month-card{display:flex;flex-direction:column;min-height:250px}
.month-top{display:flex;justify-content:space-between;gap:12px;align-items:center}
.pill{font-size:12px;font-weight:800;padding:7px 10px;border-radius:999px;background:#111827;color:#c9d2ff}
.price{font-weight:900;font-size:22px}
.month-card h3{font-size:21px;margin:18px 0 8px}
.month-card p{color:var(--muted);line-height:1.55;flex:1}
.locked{opacity:.82}
.card-actions{display:flex;gap:8px;margin-top:16px}
.banner{
  padding:18px 20px;border-radius:18px;
  border:1px solid rgba(124,140,255,.25);
  background:rgba(124,140,255,.09);color:#d9ddff
}
.forum-list{display:grid;gap:12px}
.forum-item{
  display:flex;justify-content:space-between;gap:18px;align-items:center;
  background:var(--card);border:1px solid var(--line);border-radius:18px;padding:18px 20px
}
.forum-item .desc{color:var(--muted);font-size:14px;margin-top:5px}
.lock-icon{font-size:20px}
.modal-backdrop{
  position:fixed;inset:0;background:rgba(0,0,0,.66);display:grid;place-items:center;
  z-index:100;padding:20px
}
.hidden{display:none!important}
.modal{
  width:min(680px,100%);max-height:90vh;overflow:auto;
  background:#080c14;border:1px solid var(--line);border-radius:24px;padding:24px;box-shadow:var(--shadow)
}
.modal h2{margin-top:0}
.field{display:grid;gap:7px;margin:14px 0}
.field label{font-size:13px;color:var(--muted);font-weight:700}
.field input,.field textarea,.field select{
  width:100%;background:#070a11;color:var(--text);
  border:1px solid var(--line);border-radius:12px;padding:11px 12px;outline:none
}
.field textarea{min-height:100px;resize:vertical}
.checkbox-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}
.check{
  display:flex;gap:8px;align-items:center;background:#0a0f19;border:1px solid var(--line);
  padding:10px;border-radius:12px
}
.qr-wrap{display:grid;place-items:center;margin:18px 0}
canvas.qr{background:#fff;border-radius:14px;padding:10px;width:220px;height:220px}
.note{font-size:13px;color:var(--muted);line-height:1.5}
.admin-shell{display:grid;grid-template-columns:240px 1fr;gap:18px}
.admin-menu{padding:16px;position:sticky;top:90px;height:max-content}
.admin-menu button{width:100%;text-align:left;margin:4px 0}
.admin-menu-chat-btn{display:flex;align-items:center;justify-content:space-between;gap:10px}
.admin-menu-unread-badge,.admin-top-unread-badge{display:inline-flex;align-items:center;justify-content:center;min-width:22px;height:22px;padding:0 6px;border-radius:999px;background:#e31b23;color:#fff;font-size:11px;font-weight:900;line-height:1;box-shadow:0 0 0 2px rgba(227,27,35,.12)}
.admin-top-btn{display:inline-flex;align-items:center;gap:8px}
.admin-top-unread-badge{min-width:20px;height:20px;padding:0 5px;background:#ff3038;box-shadow:0 0 0 2px rgba(255,255,255,.12)}
.admin-panel{padding:24px}
.admin-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.admin-table{width:100%;border-collapse:collapse}
.admin-table th,.admin-table td{padding:11px 8px;border-bottom:1px solid var(--line);text-align:left}
.admin-table th{font-size:12px;text-transform:uppercase;color:var(--muted)}
.toast{
  position:fixed;right:20px;bottom:20px;z-index:150;
  background:#0c111b;border:1px solid var(--line);padding:12px 16px;border-radius:14px;box-shadow:var(--shadow)
}
.small{font-size:13px;color:var(--muted)}
.sep{height:1px;background:var(--line);margin:20px 0}
.scoreboard-cell.pending .scoreboard-cell-time,.scoreboard-cell.partial .scoreboard-cell-time{color:#ffd84a!important;text-shadow:0 0 10px rgba(255,216,74,.18)!important}
html[data-theme="light"] .scoreboard-cell.pending .scoreboard-cell-time,html[data-theme="light"] .scoreboard-cell.partial .scoreboard-cell-time{color:#ffe167!important;text-shadow:none!important}
@media(max-width:900px){
  .admin-chat-layout{grid-template-columns:1fr}
  .admin-chat-list{max-height:280px}

  .hero,.admin-shell{grid-template-columns:1fr}
  .grid{grid-template-columns:1fr 1fr}
  .admin-menu{position:static}
}
@media(max-width:640px){
  .topbar{align-items:flex-start;padding:9px 12px 9px 6px}
  .brand-logo-image{height:46px;max-width:50vw}
  .grid,.admin-grid,.checkbox-grid{grid-template-columns:1fr}
  main{padding:22px 14px 60px}
  .hero-panel{padding:24px}
  .profile-card{padding:22px}
}

.admin-top-btn{
  box-shadow:0 0 0 1px rgba(255,255,255,.05),0 12px 30px rgba(111,124,255,.22);
}
.floating-admin{
  position:fixed;
  right:18px;
  bottom:18px;
  z-index:90;
  background:linear-gradient(135deg,#7c8cff,#9a6cff);
  color:white;
  font-weight:900;
  padding:14px 18px;
  border-radius:16px;
  box-shadow:0 16px 44px rgba(0,0,0,.55);
  border:1px solid rgba(255,255,255,.16);
}
.admin-title{
  display:flex;justify-content:space-between;align-items:center;gap:16px;
  margin-bottom:18px;
}
.admin-badge{
  display:inline-flex;align-items:center;gap:8px;
  background:rgba(61,220,151,.12);
  color:#adffd9;border:1px solid rgba(61,220,151,.26);
  border-radius:999px;padding:7px 10px;font-size:12px;font-weight:800;
}
@media(max-width:640px){
  .floating-admin{right:12px;bottom:12px;padding:12px 14px;font-size:12px}
}

/* Darker visual pass */
body{
  background:
    radial-gradient(circle at 12% 0%, rgba(111,124,255,.08), transparent 26%),
    radial-gradient(circle at 88% 4%, rgba(139,92,246,.06), transparent 30%),
    linear-gradient(180deg,#05070d 0%,#060911 55%,#04060a 100%);
}
.topbar{
  border-bottom:1px solid rgba(255,255,255,.055);
  box-shadow:0 10px 30px rgba(0,0,0,.22);
}
.hero-panel,.card,.admin-panel{
  border-color:rgba(255,255,255,.055);
}
.hero-panel{
  background:linear-gradient(180deg,rgba(13,18,29,.98),rgba(8,11,18,.98));
}
.profile-card{
  background:linear-gradient(180deg,rgba(12,16,26,.98),rgba(7,10,16,.98));
}
.card{
  background:linear-gradient(180deg,rgba(12,17,27,.98),rgba(8,11,18,.98));
}
.month-card:hover{
  border-color:rgba(111,124,255,.25);
  transform:translateY(-2px);
}
a{color:#9aa6ff}
.primary{
  background:linear-gradient(135deg,#6574ff,#7c4de8);
  box-shadow:0 10px 24px rgba(75,72,190,.16);
}
.ghost{
  background:#0a0e17;
  border-color:#1a2230;
}
.ghost:hover{
  background:#101622;
  border-color:#2a3550;
}
.banner{
  background:rgba(111,124,255,.055);
  border-color:rgba(111,124,255,.18);
}
.forum-item{
  background:linear-gradient(180deg,#0b1019,#080c13);
  border-color:#1a2130;
}
.admin-panel{
  background:linear-gradient(180deg,#0b0f18,#070a10);
}
.admin-menu{
  background:linear-gradient(180deg,#0b0f18,#070a10);
}
.field input,.field textarea,.field select,
.admin-table input,
.admin-table textarea{
  background:#06090f;
  color:var(--text);
  caret-color:var(--text);
  border-color:#1a2230;
}
.field input:focus,.field textarea:focus,.field select:focus,
.admin-table input:focus,.admin-table textarea:focus{
  border-color:#5566e8;
  box-shadow:0 0 0 3px rgba(85,102,232,.10);
}
.pill{
  background:#0f1520;
  border:1px solid #1d2737;
  color:#b8c2d8;
}
.floating-admin{
  background:linear-gradient(135deg,#5f6df0,#7546d9);
  border-color:rgba(255,255,255,.10);
}


/* Real Google account UI */
#btnLogin{
  display:inline-flex;
  align-items:center;
  gap:8px;
  max-width:230px;
}
#btnLogin span{
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.nav-user-avatar{
  width:24px;
  height:24px;
  border-radius:50%;
  object-fit:cover;
  flex:0 0 auto;
  border:1px solid rgba(255,255,255,.18);
}
.google-login-wrap{
  min-height:96px;
  display:grid;
  place-items:center;
  gap:12px;
  padding:18px 0 6px;
}
#googleSignInButton{
  width:min(360px,100%);
  display:flex;
  justify-content:center;
}
.account-card{
  display:flex;
  align-items:center;
  gap:14px;
  padding:16px;
  margin:12px 0 16px;
  border:1px solid var(--line);
  background:#070a11;
  border-radius:16px;
}
.account-avatar{
  width:54px;
  height:54px;
  border-radius:50%;
  object-fit:cover;
  flex:0 0 auto;
  border:1px solid rgba(255,255,255,.12);
}
.account-avatar-fallback{
  display:grid;
  place-items:center;
  background:linear-gradient(135deg,var(--accent),var(--accent2));
  font-weight:900;
}
.account-name{
  font-size:18px;
  font-weight:800;
  margin-bottom:4px;
}
.account-school{
  color:#c5cbd8;
  font-size:13px;
  margin:2px 0 4px;
}
.profile-editor-head{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;margin-bottom:14px}
.profile-editor-head h2{margin:0 0 4px}
.profile-editor-avatar-row{display:flex;align-items:center;gap:18px;padding:16px;margin:8px 0 16px;border:1px solid var(--line);border-radius:16px;background:#070a11}
.profile-editor-avatar{width:82px;height:82px;border-radius:50%;object-fit:cover;border:2px solid rgba(255,255,255,.12);display:grid;place-items:center;font-size:28px;font-weight:900;flex:0 0 auto}
.profile-avatar-picker{display:grid;gap:6px;min-width:0;flex:1}
.profile-avatar-picker input[type="file"]{max-width:100%;font-size:12px;color:var(--muted)}
@media(max-width:640px){
  #btnLogin{max-width:170px}
}

/* Real admin / user management */
.role-badge,.status-badge,.demo-tag,.me-tag{
  display:inline-flex;
  align-items:center;
  width:max-content;
  border-radius:999px;
  font-size:10px;
  font-weight:900;
  letter-spacing:.06em;
  padding:4px 8px;
  margin-top:6px;
  border:1px solid #273146;
  background:#0f1520;
  color:#b9c3d8;
}
.admin-role{
  border-color:rgba(124,140,255,.38);
  background:rgba(124,140,255,.12);
  color:#cdd3ff;
}
.demo-tag{
  vertical-align:middle;
  margin:0 0 0 8px;
  color:#ffd89b;
  border-color:rgba(255,190,92,.24);
  background:rgba(255,190,92,.07);
}
.me-tag{
  margin:0 0 0 5px;
  color:#b9c6ff;
}
.status-active{
  color:#a8ffd7;
  border-color:rgba(61,220,151,.3);
  background:rgba(61,220,151,.10);
}
.status-banned{
  color:#ffb6b6;
  border-color:rgba(255,107,107,.3);
  background:rgba(255,107,107,.10);
}
.admin-user-head{
  display:flex;
  justify-content:space-between;
  align-items:flex-start;
  gap:18px;
  margin-bottom:18px;
}
.admin-user-head h2{margin:0 0 6px}
.admin-user-stats{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:10px;
  margin:14px 0 18px;
}
.admin-user-stats>div{
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:10px;
  padding:12px 14px;
  border:1px solid var(--line);
  background:#080c14;
  border-radius:14px;
}
.admin-user-stats span{font-size:12px;color:var(--muted)}
.admin-user-stats b{font-size:18px}
.admin-table-wrap{overflow:auto}
.user-table{min-width:860px}
.admin-user-cell{display:flex;align-items:center;gap:11px;min-width:220px}
.admin-user-avatar{
  width:40px;
  height:40px;
  border-radius:50%;
  object-fit:cover;
  border:1px solid rgba(255,255,255,.12);
  flex:0 0 auto;
}
.admin-user-fallback{
  display:grid;
  place-items:center;
  background:linear-gradient(135deg,var(--accent),var(--accent2));
  font-weight:900;
}
.user-actions{display:flex;align-items:center;gap:7px;white-space:nowrap}
.user-actions button{padding:7px 10px;font-size:12px}
.banned-row{opacity:.68}
.tiny{font-size:10px;color:#657086;margin-top:3px}
.admin-loading{
  padding:34px;
  text-align:center;
  color:var(--muted);
  border:1px dashed var(--line);
  border-radius:16px;
}
.error-text{color:#ffb6b6}
@media(max-width:640px){
  .admin-user-head{flex-direction:column}
  .admin-user-stats{grid-template-columns:1fr}
}


.real-tag{
  display:inline-flex;
  align-items:center;
  padding:4px 8px;
  border-radius:999px;
  font-size:11px;
  font-weight:800;
  letter-spacing:.04em;
  color:#a8ffd7;
  background:rgba(61,220,151,.14);
  border:1px solid rgba(61,220,151,.28);
  vertical-align:middle;
}
.error-banner{border-color:rgba(255,107,107,.32);color:#ffc4c4}

/* Homepage landing page */
.landing-hero{align-items:stretch}
.hero-copy{display:flex;flex-direction:column;justify-content:center}
.hero-proof{
  display:flex;flex-wrap:wrap;gap:10px 22px;margin-top:26px;padding-top:20px;
  border-top:1px solid var(--line);color:var(--muted);font-size:13px
}
.hero-proof span{display:flex;align-items:baseline;gap:6px}
.hero-proof b{color:var(--text);font-size:18px}
.combo-offer{position:relative;overflow:hidden;display:flex;flex-direction:column;justify-content:flex-start}
.combo-offer:before{
  content:"";position:absolute;width:240px;height:240px;border-radius:50%;right:-90px;top:-100px;
  background:radial-gradient(circle,rgba(111,124,255,.24),transparent 68%);pointer-events:none
}
.combo-badge{
  width:max-content;max-width:100%;font-size:11px;letter-spacing:.08em;font-weight:900;
  color:#dce1ff;border:1px solid rgba(111,124,255,.32);background:rgba(111,124,255,.10);
  border-radius:999px;padding:7px 10px;margin-bottom:20px
}
.combo-kicker{color:var(--muted);font-size:13px;font-weight:800;text-transform:uppercase;letter-spacing:.08em}
.combo-offer h2{font-size:30px;line-height:1.12;margin:8px 0 12px}
.combo-offer p{font-size:14px;margin:0 0 18px}
.combo-price{display:flex;flex-direction:column;gap:4px;margin:8px 0 2px}
.combo-old-price{color:var(--muted);text-decoration:line-through;font-size:15px}
.combo-price strong{font-size:34px;letter-spacing:-.03em}
.combo-save{color:#a8ffd7;font-size:13px;font-weight:800;margin-bottom:18px}
.combo-button{width:100%;padding:13px 16px}
.text-button{background:transparent;color:#aab5ff;padding:12px 0 0;text-align:left}
.text-button:hover{transform:none;color:#d8dcff}
.section-label{
  display:inline-flex;align-items:center;gap:10px;width:fit-content;
  padding:8px 14px;border-radius:999px;margin-bottom:12px;
  font-size:11px;font-weight:900;letter-spacing:.18em;text-transform:uppercase;
  color:#d8deff;background:linear-gradient(135deg,rgba(111,124,255,.18),rgba(111,124,255,.08));
  border:1px solid rgba(111,124,255,.32);box-shadow:0 10px 24px rgba(17,24,39,.18)
}
.section-label:before{content:"";width:8px;height:8px;border-radius:999px;background:#7f8cff;box-shadow:0 0 0 4px rgba(127,140,255,.14)}
.landing-two-col{display:grid;grid-template-columns:.75fr 1.25fr;gap:44px;align-items:start}

.intro-course-layout{display:grid;grid-template-columns:minmax(0,1.55fr) minmax(280px,.75fr);gap:28px;align-items:stretch;margin-top:10px}
.intro-video-card{min-width:0}
.intro-video-frame{position:relative;width:100%;aspect-ratio:16/9;border-radius:22px;overflow:hidden;border:1px solid var(--line);background:#05070b;box-shadow:0 20px 50px rgba(0,0,0,.25)}
.intro-video-frame iframe{position:absolute;inset:0;width:100%;height:100%;border:0;display:block}
.intro-video-placeholder{width:100%;aspect-ratio:16/9;border-radius:22px;border:1px dashed #30394b;background:linear-gradient(135deg,#0b1018,#07090e);display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:26px;color:var(--muted);gap:9px}
.intro-video-placeholder b{color:#fff;font-size:19px}
.intro-video-placeholder span{max-width:420px;font-size:14px;line-height:1.6}
.intro-video-play{width:58px;height:58px;border-radius:999px;display:flex;align-items:center;justify-content:center;padding-left:4px;background:rgba(230,23,35,.16);border:1px solid rgba(230,23,35,.36);color:#ff3947;font-size:22px;margin-bottom:3px}
.intro-course-copy{padding:16px 4px 14px 2px;display:flex;flex-direction:column;justify-content:center}
.intro-course-copy h2{font-size:34px;line-height:1.08;margin:0 0 18px}
.intro-course-copy .landing-copy{font-size:16px;line-height:1.72}
.landing-two-col h2,.mission-card h2,.teacher-copy h2{font-size:36px;line-height:1.08;margin:0}
.landing-copy{color:#c4cad7;font-size:18px;line-height:1.8}
.course-highlights{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:14px;margin-top:26px}
.course-highlights>div{
  padding:20px;border:1px solid var(--line);border-radius:18px;
  background:linear-gradient(180deg,rgba(13,18,29,.75),rgba(8,11,18,.7))
}
.course-highlights span{display:block;color:#7f8cff;font-size:12px;font-weight:900;margin-bottom:26px}
.course-highlights b{font-size:17px}
.course-highlights p{color:var(--muted);font-size:14px;line-height:1.6;margin:8px 0 0}
.mission-card{
  position:relative;overflow:hidden;padding:36px;border:1px solid rgba(111,124,255,.20);border-radius:24px;
  background:linear-gradient(135deg,rgba(111,124,255,.10),rgba(139,92,246,.05) 50%,rgba(8,11,18,.95))
}
.mission-card:after{
  content:"";position:absolute;right:-80px;bottom:-120px;width:300px;height:300px;border-radius:50%;
  background:radial-gradient(circle,rgba(139,92,246,.16),transparent 68%);pointer-events:none
}
.mission-card p{position:relative;z-index:1;max-width:860px;color:#d6dae5;font-size:19px;line-height:1.8;margin:18px 0 0}
.landing-section-head{
  align-items:center;
  margin-bottom:22px;
  padding:0 0 16px;
  border-bottom:1px solid rgba(111,124,255,.14)
}
.landing-section-head>div{display:flex;flex-direction:column;align-items:flex-start}
.landing-section-head h2{margin-top:0}
.achievement-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}
.achievement-card{
  min-height:190px;display:flex;flex-direction:column;padding:22px;border-radius:20px;
  border:1px solid var(--line);background:linear-gradient(180deg,#0c111a,#080b12)
}
.achievement-meta{display:flex;justify-content:space-between;align-items:center;gap:10px}
.achievement-year{font-size:12px;color:#c8ceff;background:rgba(111,124,255,.10);border:1px solid rgba(111,124,255,.20);padding:6px 9px;border-radius:999px}
.achievement-icon{color:#8b98ff;font-size:18px}
.achievement-card h3{font-size:19px;line-height:1.45;margin:24px 0 10px;flex:1}
.achievement-card p{color:var(--muted);margin:0;font-size:14px}
.empty-achievements{
  grid-column:1/-1;padding:24px;border-radius:18px;border:1px dashed #283247;color:var(--muted);
  background:rgba(255,255,255,.015);text-align:center
}
.teacher-section{display:grid;grid-template-columns:.8fr 1.2fr;gap:26px;align-items:stretch}
.teacher-copy{padding:28px 6px;display:flex;flex-direction:column;justify-content:flex-start}
.teacher-copy p{color:var(--muted);font-size:17px;line-height:1.75;margin:18px 0 0}
.teacher-profile{padding:26px;border:1px solid var(--line);border-radius:24px;background:linear-gradient(180deg,#0c1019,#070a10)}
.teacher-gallery{position:relative;min-height:440px;border-radius:22px;overflow:hidden;margin-bottom:22px;background:linear-gradient(135deg,rgba(111,124,255,.12),rgba(255,255,255,.03));border:1px solid rgba(255,255,255,.06);display:flex;align-items:center;justify-content:center}
.teacher-gallery-empty{color:var(--muted);text-align:center;padding:28px}
.teacher-gallery-image{display:block;width:100%;height:440px;object-fit:cover;background:#05070c}
.teacher-gallery-nav{position:absolute;top:50%;transform:translateY(-50%);width:42px;height:42px;border-radius:999px;border:1px solid rgba(255,255,255,.18);background:rgba(5,8,15,.78);color:#fff;font-size:28px;line-height:1;display:flex;align-items:center;justify-content:center;cursor:pointer;z-index:2}
.teacher-gallery-prev{left:14px}
.teacher-gallery-next{right:14px}
.teacher-gallery-dots{position:absolute;left:50%;bottom:12px;transform:translateX(-50%);display:flex;gap:8px;z-index:2}
.teacher-gallery-dot{width:10px;height:10px;border-radius:999px;border:0;background:rgba(255,255,255,.32);cursor:pointer;padding:0}
.teacher-gallery-dot.active{background:#fff}
.teacher-identity{display:flex;align-items:center;gap:18px}
.teacher-identity h2{margin:0;font-size:26px}
.teacher-avatar-photo,.teacher-avatar-fallback{width:106px;height:106px;flex:0 0 106px;border-radius:18px;object-fit:cover;border:1px solid rgba(255,255,255,.10);background:#241f4a}
.teacher-avatar-fallback{display:flex;align-items:center;justify-content:center;font-size:28px;font-weight:900}
.teacher-avatar-admin-box{margin-top:16px;padding:18px;border-radius:18px;border:1px solid var(--line);background:#080c13}
.teacher-avatar-admin-row{display:flex;align-items:center;gap:16px;margin-top:14px;flex-wrap:wrap}
.teacher-avatar-admin-preview{width:100px;height:100px;border-radius:18px;object-fit:cover;border:1px solid var(--line);background:#0b1018}
.teacher-avatar-admin-fallback{display:flex;align-items:center;justify-content:center;font-size:24px;font-weight:900}
.teacher-avatar-admin-actions{display:flex;gap:8px;flex-wrap:wrap}
.teacher-media-admin-box{margin-top:16px;padding:18px;border-radius:18px;border:1px solid var(--line);background:#080c13}
.teacher-media-upload-btn{display:inline-flex;align-items:center;cursor:pointer}
.teacher-media-admin-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:14px;margin-top:14px}
.teacher-media-admin-item{border:1px solid var(--line);border-radius:16px;padding:10px;background:#0b1018}
.teacher-media-admin-item img{width:100%;height:120px;display:block;object-fit:cover;border-radius:12px}
.teacher-media-admin-actions{display:flex;gap:8px;justify-content:center;margin-top:10px;flex-wrap:wrap}
.final-cta{
  display:flex;justify-content:space-between;align-items:center;gap:26px;padding:30px 32px;border-radius:24px;
  border:1px solid rgba(111,124,255,.22);background:linear-gradient(120deg,rgba(111,124,255,.10),rgba(9,13,21,.95) 55%)
}
.final-cta h2{font-size:32px;margin:7px 0 8px}
.final-cta p{color:var(--muted);margin:0;max-width:650px;line-height:1.6}
.final-cta-actions{display:flex;flex-wrap:wrap;gap:8px;justify-content:flex-end}
.achievement-editor-new,.achievement-editor-row{
  border:1px solid var(--line);border-radius:18px;padding:18px;background:#080c13;margin-top:14px
}
.achievement-editor-list{display:grid;gap:12px;margin-top:16px}
.achievement-editor-actions{display:flex;gap:8px;justify-content:flex-end;margin-top:10px}
.achievement-order-bar{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:14px;padding-bottom:12px;border-bottom:1px solid var(--line)}
.achievement-order-status{display:flex;align-items:baseline;gap:5px;white-space:nowrap}
.achievement-order-buttons{display:flex;align-items:center;justify-content:flex-end;gap:8px;flex-wrap:wrap}
.achievement-order-buttons button:disabled{opacity:.42;cursor:not-allowed}
.achievement-position-field{display:flex;align-items:center;gap:7px;font-size:12px;color:var(--muted);white-space:nowrap}
.achievement-position-field input{width:72px;padding:8px 9px;border-radius:10px}

.scoreboard-cell.pending .scoreboard-cell-time,.scoreboard-cell.partial .scoreboard-cell-time{color:#ffd84a!important;text-shadow:0 0 10px rgba(255,216,74,.18)!important}
html[data-theme="light"] .scoreboard-cell.pending .scoreboard-cell-time,html[data-theme="light"] .scoreboard-cell.partial .scoreboard-cell-time{color:#ffe167!important;text-shadow:none!important}
@media(max-width:900px){
  .admin-chat-layout{grid-template-columns:1fr}
  .admin-chat-list{max-height:280px}

  .landing-two-col,.teacher-section,.intro-course-layout{grid-template-columns:1fr}
  .intro-course-copy{padding:4px 2px 0}
  .intro-course-copy h2{font-size:29px;margin-bottom:12px}
  .teacher-gallery{min-height:320px}
  .teacher-gallery-image{height:320px}
  .course-highlights,.achievement-grid{grid-template-columns:1fr 1fr}
  .final-cta{align-items:flex-start;flex-direction:column}
  .final-cta-actions{justify-content:flex-start}
}
@media(max-width:640px){
  .course-highlights,.achievement-grid{grid-template-columns:1fr}
  .landing-two-col{gap:16px}
  .landing-two-col h2,.mission-card h2,.teacher-copy h2{font-size:29px}
  .mission-card{padding:24px}
  .mission-card p{font-size:16px}
  .combo-offer h2{font-size:26px}
  .combo-price strong{font-size:30px}
  .final-cta{padding:24px}
  .final-cta h2{font-size:27px}
}

/* Bunny Stream test player */
.video-player-head{
  display:flex;justify-content:space-between;gap:16px;align-items:center;margin-bottom:16px
}
.video-player-wrap{
  position:relative;width:100%;aspect-ratio:16/9;background:#000;border-radius:16px;overflow:hidden;
  border:1px solid var(--line);box-shadow:0 12px 35px rgba(0,0,0,.35)
}
.video-player-wrap iframe{
  position:absolute;inset:0;width:100%;height:100%;border:0
}
@media(max-width:640px){
  .video-player-head{align-items:flex-start;flex-direction:column}
}


/* Orders & real bank-transfer checkout */
.checkout-create{width:100%;margin-top:16px;padding:13px 16px}
.checkout-create:disabled{opacity:.45;cursor:not-allowed;transform:none}

.checkout-month{position:relative;min-height:72px;cursor:pointer;transition:border-color .18s ease,background .18s ease,transform .18s ease}
.checkout-month:hover{border-color:rgba(88,129,255,.42);transform:translateY(-1px)}
.checkout-month-info{display:flex;flex-direction:column;gap:4px;min-width:0;flex:1}
.checkout-month-title{font-weight:800}
.checkout-month small{color:var(--muted);line-height:1.35}
.owned-check{opacity:1;cursor:not-allowed;border-color:rgba(61,220,151,.34);background:rgba(61,220,151,.08)}
.owned-check:hover{transform:none;border-color:rgba(61,220,151,.34)}
.owned-check input{accent-color:#3ddc97;cursor:not-allowed}
.owned-check .checkout-month-title{color:#caffea}
.owned-check small{color:#8fcdb2}
.owned-badge{flex:0 0 auto;align-self:flex-start;padding:5px 8px;border-radius:999px;font-size:11px;font-weight:900;color:#a8ffd7;border:1px solid rgba(61,220,151,.32);background:rgba(61,220,151,.12);white-space:nowrap}
.expired-check{border-color:rgba(255,190,92,.28);background:rgba(255,190,92,.06)}
.expired-check .checkout-month-title{color:#ffe1ad}
.expired-badge{flex:0 0 auto;align-self:flex-start;padding:5px 8px;border-radius:999px;font-size:11px;font-weight:900;color:#ffd89b;border:1px solid rgba(255,190,92,.3);background:rgba(255,190,92,.1);white-space:nowrap}
@media(max-width:640px){.owned-badge,.expired-badge{margin-left:auto}}
.order-success-head{display:flex;justify-content:space-between;align-items:flex-start;gap:16px}
.status-pending{color:#ffd89b;border-color:rgba(255,190,92,.3);background:rgba(255,190,92,.10)}
.payment-code{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;letter-spacing:.04em;color:#dce1ff}
.payment-bank-card{display:grid;gap:8px;padding:15px;margin-top:16px;border:1px solid var(--line);border-radius:16px;background:#080c14}
.payment-bank-card>div{display:flex;justify-content:space-between;gap:16px}
.payment-bank-card span{color:var(--muted);font-size:13px}
.vietqr-image{display:block;width:min(320px,100%);height:auto;background:white;border-radius:16px;padding:8px}
.order-table{min-width:980px}
@media(max-width:640px){.order-success-head{flex-direction:column}.payment-bank-card>div{flex-direction:column;gap:3px}}
.account-actions{display:flex;gap:8px;flex-wrap:wrap}
.order-user-item{align-items:flex-start}
.order-user-item-button{width:100%;color:inherit;font:inherit;text-align:left;cursor:pointer;transition:.16s ease}
.order-user-item-button:hover{transform:translateY(-1px);border-color:#303b58;background:linear-gradient(180deg,#101724,#0a0f18)}
.order-user-item-button:focus-visible{outline:2px solid #6f7cff;outline-offset:2px}
.order-open-hint{margin-top:7px;color:#aeb8ff;font-size:12px;font-weight:800}

/* General forum v1 */
.forum-page{max-width:980px;margin-left:auto;margin-right:auto}
.forum-page-head,.forum-post-detail-head,.forum-compose-head{
  display:flex;justify-content:space-between;align-items:center;gap:16px;margin-bottom:18px
}
.forum-page-head-left{display:flex;align-items:center;gap:16px}
.forum-head-actions,.forum-detail-actions,.forum-compose-footer,.forum-comment-submit,.forum-comment-actions{
  display:flex;align-items:center;gap:10px;flex-wrap:wrap
}
.forum-category-card{border-color:rgba(111,124,255,.28);box-shadow:0 12px 36px rgba(72,74,170,.10)}
.forum-post-list{display:grid;gap:12px}
.forum-post-card{
  display:grid;grid-template-columns:1fr auto;gap:20px;align-items:center;
  background:linear-gradient(180deg,#0c111b,#080c13);border:1px solid #1a2230;
  border-radius:20px;padding:20px;cursor:pointer;transition:.18s ease
}
.forum-post-card:hover{transform:translateY(-2px);border-color:rgba(111,124,255,.38);box-shadow:0 14px 34px rgba(0,0,0,.24)}
.forum-post-card.is-pinned{border-color:rgba(245,190,76,.30);background:linear-gradient(180deg,rgba(28,23,16,.88),#090c12)}
.forum-post-card h3{margin:14px 0 7px;font-size:20px;line-height:1.35}
.forum-post-card p{margin:0;color:var(--muted);line-height:1.55}
.forum-post-author-row{display:flex;align-items:center;gap:10px}
.forum-avatar{width:38px;height:38px;border-radius:50%;object-fit:cover;border:1px solid rgba(255,255,255,.12);flex:0 0 auto}
.forum-avatar-large{width:46px;height:46px}
.forum-avatar-fallback{display:grid;place-items:center;background:linear-gradient(135deg,#5365d9,#7744b8);font-weight:900;color:#fff}
.forum-author-name{font-weight:800;font-size:14px}
.forum-school{font-size:11px;color:#aeb8cc;margin-top:2px;max-width:420px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.forum-admin-tag{display:inline-flex;margin-left:5px;padding:2px 6px;border-radius:999px;font-size:10px;text-transform:uppercase;letter-spacing:.05em;background:rgba(111,124,255,.16);color:#bfc7ff;border:1px solid rgba(111,124,255,.24)}
.forum-time{font-size:12px;color:var(--muted);margin-top:2px}
.forum-post-side{display:flex;flex-direction:column;align-items:stretch;gap:8px;min-width:86px}
.forum-post-stats{min-width:86px;text-align:center;padding:12px;border-radius:14px;background:#080c14;border:1px solid var(--line)}
.forum-post-stats b{display:block;font-size:20px}
.forum-post-stats span{display:block;color:var(--muted);font-size:11px;margin-top:3px}
.forum-list-delete{padding:8px 10px;font-size:12px;white-space:nowrap}
.forum-badges{display:flex;gap:7px;flex-wrap:wrap;margin-top:12px}
.forum-badge{display:inline-flex;align-items:center;gap:5px;font-size:11px;font-weight:800;padding:5px 8px;border-radius:999px;background:#101621;border:1px solid #202a3a;color:#bfc8d9}
.forum-badge.pin{background:rgba(245,190,76,.10);border-color:rgba(245,190,76,.25);color:#ffd98b}
.forum-empty{text-align:center;padding:42px 22px}
.forum-empty-icon{font-size:42px;margin-bottom:8px}
.forum-login-card{text-align:center;padding:34px}
.forum-post-detail{padding:28px}
.forum-post-detail h1{font-size:clamp(28px,5vw,42px);line-height:1.18;margin:14px 0 18px}
.forum-post-content{font-size:16px;line-height:1.75;margin-top:24px;word-break:break-word}
.forum-code-wrap{margin-top:24px;border:1px solid #202a3a;border-radius:16px;overflow:hidden;background:#05080d}
.forum-code-head{display:flex;justify-content:space-between;align-items:center;padding:10px 12px;background:#0d131e;border-bottom:1px solid #202a3a;font-size:12px;font-weight:800;color:#b8c3d9}
.forum-copy-btn{padding:6px 10px;font-size:12px}
.forum-code-wrap pre{margin:0;padding:18px;overflow:auto;max-height:620px;tab-size:4}
.forum-code-wrap code{font-family:"SFMono-Regular",Consolas,"Liberation Mono",Menlo,monospace;font-size:13px;line-height:1.6;color:#dce5f5;white-space:pre}
.forum-attachments{display:grid;gap:12px;margin-top:24px}
.forum-image-link{display:block;width:max-content;max-width:100%}
.forum-post-image{display:block;max-width:100%;max-height:650px;border-radius:16px;border:1px solid var(--line);background:#05070b;object-fit:contain}
.forum-file-card{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:12px;text-decoration:none;color:var(--text);padding:13px 14px;border-radius:14px;border:1px solid #202a3a;background:#080d15}
.forum-file-card:hover{border-color:#3b4a69;background:#0b111c}
.forum-file-icon{font-size:22px}.forum-file-card b{display:block}.forum-file-card span{display:block;color:var(--muted);font-size:12px;margin-top:3px}.forum-download{white-space:nowrap!important;color:#aeb8ff!important;font-weight:800!important}
.forum-comment-box{margin-top:18px;padding:22px}.forum-comment-box h3{margin-top:0}.forum-comment-box textarea{min-height:100px}.forum-comment-submit{justify-content:space-between}
.forum-comments{display:grid;gap:12px;margin-top:14px}.forum-comment{padding:18px}.forum-comment-head{display:flex;justify-content:space-between;gap:12px;align-items:flex-start}.forum-comment-content{margin-top:14px;line-height:1.65;word-break:break-word}.forum-comment-actions button{padding:6px 9px;font-size:12px}.forum-no-comments{margin-top:14px;padding:22px;text-align:center;color:var(--muted);border:1px dashed #253047;border-radius:16px}
.forum-compose-page-card{padding:24px}.forum-compose-content{min-height:180px!important}.forum-code-input{min-height:220px!important;font-family:"SFMono-Regular",Consolas,"Liberation Mono",Menlo,monospace;font-size:13px;line-height:1.55;tab-size:4}.forum-compose-tools{display:grid;grid-template-columns:180px 1fr;gap:14px;align-items:start}.forum-code-field{margin:14px 0}.forum-compose-footer{justify-content:flex-end;margin-top:18px}.forum-selected-files{display:flex;gap:8px;flex-wrap:wrap;margin-top:8px}.forum-selected-file{display:inline-flex;align-items:center;gap:6px;padding:7px 9px;border-radius:10px;background:#0b111b;border:1px solid #202a3a;font-size:12px}.forum-selected-file small{color:var(--muted)}.forum-safety-note{margin-top:14px}.error-banner{border-color:rgba(255,107,107,.25);background:rgba(255,107,107,.07);color:#ffd0d0}
@media(max-width:760px){
  .forum-page-head,.forum-post-detail-head,.forum-compose-head,.forum-comment-head{align-items:flex-start;flex-direction:column}
  .forum-page-head-left{align-items:flex-start;flex-direction:column}
  .forum-head-actions,.forum-detail-actions{width:100%}.forum-head-actions button{flex:1}
  .forum-post-card{grid-template-columns:1fr}.forum-post-side{flex-direction:row;align-items:center;justify-content:flex-start;flex-wrap:wrap}.forum-post-stats{display:flex;gap:5px;justify-content:center;align-items:center}.forum-post-stats b,.forum-post-stats span{display:inline;margin:0}
  .forum-compose-tools{grid-template-columns:1fr}.forum-file-card{grid-template-columns:auto 1fr}.forum-download{grid-column:2}
}


/* TopAlgo black/red visual pass + SePay checkout */
:root{
  --bg:#020203;
  --card:#07080b;
  --card2:#0a0b10;
  --text:#f5f5f6;
  --muted:#92939b;
  --line:#202126;
  --accent:#e31b23;
  --accent2:#8f1017;
  --shadow:0 26px 78px rgba(0,0,0,.68);
}
body{
  background:
    radial-gradient(circle at 10% -8%,rgba(227,27,35,.10),transparent 25%),
    radial-gradient(circle at 92% 4%,rgba(125,13,20,.08),transparent 24%),
    linear-gradient(180deg,#020203 0%,#040407 54%,#020203 100%);
}
.topbar{background:rgba(2,2,3,.96);box-shadow:0 10px 34px rgba(0,0,0,.42)}
.hero-panel,.card,.admin-panel{
  background:linear-gradient(180deg,rgba(10,11,15,.985),rgba(5,6,8,.985));
  border-color:rgba(255,255,255,.055);
}
.ghost{background:#08090d;border-color:#202126}
.ghost:hover{border-color:#34353c;background:#0b0c10}
.primary{background:linear-gradient(135deg,#e31b23,#8f1017);box-shadow:0 10px 28px rgba(227,27,35,.15)}
.eyebrow{color:#ff9ba0}
.pill{background:#111115;color:#e5e5e8;border:1px solid #25262b}
.banner{border-color:rgba(227,27,35,.20);background:rgba(227,27,35,.055);color:#ececef}
.admin-top-btn{box-shadow:0 0 0 1px rgba(255,255,255,.04),0 12px 30px rgba(227,27,35,.16)}
.floating-admin{background:linear-gradient(135deg,#e31b23,#8f1017)}
.order-open-hint{color:#ff9ba0}
.order-user-item-button:hover{border-color:#3a292c;background:linear-gradient(180deg,#100b0d,#080709)}
.order-user-item-button:focus-visible{outline-color:#e31b23}
.sepay-checkout-card{margin-top:18px;padding:18px;border-radius:18px;border:1px solid rgba(227,27,35,.24);background:linear-gradient(180deg,rgba(227,27,35,.075),rgba(9,7,8,.88))}
.sepay-checkout-title{display:flex;align-items:center;gap:11px;margin-bottom:14px}
.sepay-dot{width:11px;height:11px;border-radius:50%;background:#e31b23;box-shadow:0 0 0 5px rgba(227,27,35,.10),0 0 20px rgba(227,27,35,.45)}
.sepay-pay-button{width:100%;padding:13px 16px}
.manual-payment-details{margin-top:14px;border:1px solid #202126;border-radius:16px;background:#07080b;overflow:hidden}
.manual-payment-details summary{cursor:pointer;padding:14px 16px;font-weight:800;color:#b8b9bf}
.manual-payment-details[open] summary{border-bottom:1px solid #202126}
.manual-payment-details .payment-bank-card{border:0;border-bottom:1px solid #202126;border-radius:0;margin:0}
.manual-payment-details .qr-wrap{padding:16px}
.manual-payment-details .note{padding:0 16px 16px;margin:0}
@media(max-width:640px){
  .topbar{align-items:center}
  .brand-logo-image{height:44px;max-width:48vw}
  .nav-actions{justify-content:flex-end}
}


/* Payment live status + user order cancellation */
.order-user-main{min-width:0;flex:1}
.order-user-main[role="button"]{cursor:pointer}
.order-user-main[role="button"]:hover b{color:#fff}
.order-user-actions{display:flex;align-items:flex-end;justify-content:center;gap:10px;flex-direction:column;flex:0 0 auto}
.payment-waiting-status{margin-top:14px;text-align:center;color:var(--muted);font-weight:800;letter-spacing:.01em}
.payment-confirmed-card{text-align:center;padding:10px 4px 4px}
.payment-confirmed-icon{width:68px;height:68px;margin:0 auto 16px;border-radius:50%;display:grid;place-items:center;font-size:34px;font-weight:1000;color:#d8ffea;background:rgba(61,220,151,.13);border:1px solid rgba(61,220,151,.34);box-shadow:0 0 36px rgba(61,220,151,.12)}
.payment-confirmed-card h2{margin:8px 0 10px}
.payment-confirmed-card p{color:var(--muted);line-height:1.65}
.success-banner{border-color:rgba(61,220,151,.30)!important;background:rgba(61,220,151,.08)!important;color:#c8ffe2!important}
@media(max-width:640px){
  .order-user-item{align-items:stretch;flex-direction:column}
  .order-user-actions{align-items:stretch;width:100%}
  .order-user-actions .account-actions{width:100%}
  .order-user-actions .account-actions button{flex:1}
}

/* Course lesson bundle: Bunny video + exercise link + C++ source */
.lesson-item{align-items:flex-start}
.lesson-copy{min-width:0;flex:1}
.lesson-actions{display:flex;flex-wrap:wrap;gap:8px;justify-content:flex-end;max-width:430px}
.lesson-actions button{white-space:nowrap}
.admin-lessons-button{margin-top:8px;white-space:nowrap}
.lesson-admin-modal{width:min(980px,100%)}
.lesson-admin-title{display:flex;justify-content:space-between;gap:16px;align-items:flex-start;margin-bottom:16px}
.lesson-admin-title h2{margin:4px 0 0}
.lesson-admin-list{display:grid;gap:16px;margin-top:18px}
.lesson-admin-card{padding:18px;border:1px solid var(--line);border-radius:18px;background:linear-gradient(180deg,#0b1019,#080c13)}
.lesson-admin-head{display:flex;justify-content:space-between;gap:14px;align-items:center;margin-bottom:8px}
.lesson-admin-grid{grid-template-columns:1fr 1fr}
.lesson-source-editor{min-height:260px;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;line-height:1.5;tab-size:2}
.lesson-file-row{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-top:4px}
.lesson-file-row input[type="file"]{max-width:100%;padding:8px;border:1px dashed var(--line);border-radius:10px;background:#06090f;color:var(--muted)}
.lesson-admin-footer{display:flex;justify-content:flex-end;gap:10px;position:sticky;bottom:-24px;margin:20px -24px -24px;padding:16px 24px;background:rgba(8,12,20,.96);border-top:1px solid var(--line);backdrop-filter:blur(10px)}
@media(max-width:760px){
  .lesson-item{flex-direction:column}
  .lesson-actions{width:100%;max-width:none;justify-content:flex-start}
  .lesson-actions button{flex:1 1 140px}
  .lesson-admin-title,.lesson-admin-head{flex-direction:column}
  .lesson-admin-grid{grid-template-columns:1fr}
  .lesson-admin-footer{bottom:-24px}
}

/* Multiple exercises inside each lesson */
.lesson-heading-row{display:flex;justify-content:space-between;gap:16px;align-items:flex-start}
.lesson-exercise-list{display:grid;gap:10px;margin-top:14px}
.lesson-exercise-item{display:flex;justify-content:space-between;align-items:center;gap:14px;padding:12px 14px;border:1px solid var(--line);border-radius:12px;background:#070b12}
.lesson-exercise-copy{min-width:0;flex:1}
.lesson-exercises-admin{margin-top:18px;padding-top:16px;border-top:1px solid var(--line)}
.lesson-exercises-admin-title{display:flex;justify-content:space-between;gap:14px;align-items:center;margin-bottom:12px}
.lesson-exercises-admin-list{display:grid;gap:12px}
.lesson-exercise-admin-card{padding:14px;border:1px solid var(--line);border-radius:14px;background:#06090f}
.lesson-exercise-admin-head{display:flex;justify-content:space-between;gap:12px;align-items:center;margin-bottom:10px}
@media(max-width:700px){
  .lesson-heading-row,.lesson-exercise-item,.lesson-exercises-admin-title,.lesson-exercise-admin-head{flex-direction:column;align-items:stretch}
  .lesson-exercise-item .lesson-actions{width:100%}
}

.course-bulk-import-banner{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:14px;
  margin:14px 0;
}
.course-bulk-import-banner>div{flex:1;min-width:0}
.bulk-course-preview{display:grid;gap:8px;margin:14px 0}
.bulk-course-preview-month{
  display:grid;
  grid-template-columns:110px 90px 1fr;
  gap:10px;
  align-items:center;
  padding:10px 12px;
  border:1px solid var(--border);
  border-radius:10px;
  background:rgba(255,255,255,.02);
}
.bulk-course-warnings{max-height:260px;overflow:auto;margin-top:8px;line-height:1.55}
@media(max-width:760px){
  .course-bulk-import-banner{align-items:stretch;flex-direction:column}
  .bulk-course-preview-month{grid-template-columns:1fr auto}
  .bulk-course-preview-month .small{grid-column:1/-1}
}


/* Dedicated learning page */
body.learning-mode main#app{max-width:none;width:100%;padding:18px clamp(12px,1.5vw,24px) 72px}
.learning-page{margin-top:8px;width:100%;max-width:none}
.learning-breadcrumb{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin:0 0 14px;color:var(--muted);font-size:13px}
.learning-breadcrumb .text-button{padding:0;color:var(--muted)}
.learning-breadcrumb .text-button:hover{color:var(--text)}
.learning-layout{display:grid;grid-template-columns:minmax(190px,225px) minmax(0,1fr);gap:16px;align-items:start}
.learning-sidebar{position:sticky;top:82px;max-height:calc(100vh - 104px);overflow:auto;border:1px solid var(--line);border-radius:18px;background:linear-gradient(180deg,#0b1019,#080c13);box-shadow:0 14px 36px rgba(0,0,0,.22)}
.learning-sidebar-head{padding:18px 18px 14px;border-bottom:1px solid var(--line)}
.learning-sidebar-head h3{margin:6px 0 0;font-size:16px;line-height:1.4}
.learning-lesson-list{display:grid;padding:8px}
.learning-lesson-link{width:100%;display:grid;grid-template-columns:34px 1fr;gap:10px;align-items:start;text-align:left;padding:11px;border:0;border-radius:12px;background:transparent;color:var(--text);cursor:pointer}
.learning-lesson-link:hover{background:rgba(255,255,255,.045)}
.learning-lesson-link.active{background:rgba(93,129,255,.14);box-shadow:inset 0 0 0 1px rgba(93,129,255,.28)}
.learning-lesson-link span:last-child{min-width:0;display:grid;gap:4px}
.learning-lesson-link b{font-size:13px;line-height:1.35;white-space:normal}
.learning-lesson-link small{display:block;color:var(--muted);font-size:11px;line-height:1.35}
.learning-lesson-index{width:30px;height:30px;border-radius:10px;display:grid;place-items:center;font-size:12px;font-weight:900;background:#111927;border:1px solid var(--line)}
.learning-lesson-link.active .learning-lesson-index{background:rgba(93,129,255,.22);border-color:rgba(93,129,255,.36)}
.learning-main{min-width:0;max-width:none;width:100%;margin:0;padding:0}
.learning-main-card{width:100%;max-width:none;box-sizing:border-box;border:1px solid var(--line);border-radius:20px;background:linear-gradient(180deg,#0b1019,#080c13);padding:16px;box-shadow:0 18px 44px rgba(0,0,0,.24)}
.learning-title-row{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:16px}
.learning-title-row h1{margin:5px 0 0;font-size:clamp(24px,3vw,34px);line-height:1.18}
.learning-video{border-radius:16px;width:100%}
.learning-video-loading{display:grid;place-items:center;color:var(--muted);font-weight:700}
.learning-no-video{display:grid;place-items:center;min-height:220px;border:1px dashed var(--line);border-radius:16px;color:var(--muted);background:#05080d}
.learning-materials-head{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;margin:24px 0 12px}
.learning-materials-head h2{margin:0 0 5px;font-size:21px}
.learning-materials-head p{margin:0}
.learning-exercises{display:grid;gap:12px}
.learning-exercise-card{border:1px solid var(--line);border-radius:15px;background:#070b12;overflow:hidden}
.learning-exercise-card.source-open{border-color:rgba(93,129,255,.36);box-shadow:0 0 0 1px rgba(93,129,255,.08)}
.learning-exercise-main{display:grid;grid-template-columns:38px minmax(0,1fr) auto;gap:12px;align-items:center;padding:13px 14px}
.learning-exercise-number{width:34px;height:34px;border-radius:10px;display:grid;place-items:center;background:#111927;border:1px solid var(--line);font-weight:900}
.learning-exercise-copy{min-width:0;display:grid;gap:3px}
.learning-exercise-actions{max-width:none}
.learning-source-panel{border-top:1px solid var(--line);background:#04070c}
.learning-source-head{display:flex;justify-content:space-between;gap:12px;align-items:center;padding:12px 14px;background:#080d15}
.learning-source-actions{display:flex;gap:8px;flex-wrap:wrap}
.learning-code{margin:0;padding:16px 18px;max-height:560px;overflow:auto;background:#03060a;color:#dfe8f5;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;font-size:13px;line-height:1.6;tab-size:4;white-space:pre;overscroll-behavior:contain}
.learning-code code{font:inherit;color:inherit}
.learning-code-loading{padding:24px;color:var(--muted)}
.learning-mobile-list{display:none}
.learning-empty{max-width:760px;margin:36px auto 0}
.scoreboard-cell.pending .scoreboard-cell-time,.scoreboard-cell.partial .scoreboard-cell-time{color:#ffd84a!important;text-shadow:0 0 10px rgba(255,216,74,.18)!important}
html[data-theme="light"] .scoreboard-cell.pending .scoreboard-cell-time,html[data-theme="light"] .scoreboard-cell.partial .scoreboard-cell-time{color:#ffe167!important;text-shadow:none!important}
@media(max-width:900px){
  .admin-chat-layout{grid-template-columns:1fr}
  .admin-chat-list{max-height:280px}

  body.learning-mode main#app{padding:14px 12px 60px}
  .learning-page{width:100%}
  .learning-layout{grid-template-columns:1fr}
  .learning-sidebar{position:static;max-height:none;display:none}
  .learning-mobile-list{display:inline-flex}
}
@media(max-width:700px){
  .learning-main-card{padding:14px}
  .learning-title-row,.learning-materials-head,.learning-source-head{flex-direction:column;align-items:stretch}
  .learning-exercise-main{grid-template-columns:34px minmax(0,1fr)}
  .learning-exercise-actions{grid-column:1 / -1;width:100%;justify-content:flex-start}
  .learning-exercise-actions button{flex:1 1 140px}
  .learning-source-actions{width:100%}
  .learning-source-actions button{flex:1}
  .learning-code{font-size:12px;padding:14px;max-height:65vh}
}


/* C++ syntax highlighting inside lesson source */
.learning-code code.hljs{
  display:block;
  padding:0;
  background:transparent;
  color:#dfe8f5;
}
.learning-code .hljs-keyword,
.learning-code .hljs-type,
.learning-code .hljs-built_in,
.learning-code .hljs-literal{
  font-weight:800;
}
.learning-code .hljs-meta{
  font-weight:800;
}
.learning-code .hljs-comment{
  font-style:italic;
  opacity:.9;
}
.learning-code .hljs-title.function_,
.learning-code .hljs-title.class_{
  font-weight:750;
}
.learning-code::selection,
.learning-code code::selection,
.learning-code code *::selection{
  background:rgba(93,129,255,.35);
}

/* Monthly support forum + reactions */
.forum-support-banner{margin:0 0 14px;border-color:rgba(255,70,70,.22);background:rgba(90,10,18,.16)}
.forum-item-locked{opacity:.72}
.forum-reaction-bar{display:flex;align-items:center;gap:8px;margin-top:16px;flex-wrap:wrap}
.forum-reaction-bar.compact{margin-top:10px}
.forum-reaction-btn{display:inline-flex;align-items:center;gap:7px;padding:8px 12px;border-radius:999px;border:1px solid #273044;background:#0b0f16;color:#dbe2ee;font-weight:700;cursor:pointer;transition:.16s ease}
.forum-reaction-btn:hover{transform:translateY(-1px);border-color:#505b73;background:#121824}
.forum-reaction-btn.active{border-color:rgba(84,137,255,.7);background:rgba(50,92,190,.18);box-shadow:0 0 0 1px rgba(84,137,255,.12) inset}
.forum-reaction-btn.love.active{border-color:rgba(255,70,91,.72);background:rgba(170,24,45,.18);box-shadow:0 0 0 1px rgba(255,70,91,.12) inset}
.forum-reaction-btn span{min-width:10px;text-align:center;font-size:13px}
.forum-comment .forum-reaction-bar{margin-top:12px}

@media(max-width:560px){.profile-editor-avatar-row{align-items:flex-start}.profile-editor-avatar{width:68px;height:68px}.profile-avatar-picker{font-size:13px}}

/* Public CP class promotions */
.promoted-classes-page{margin-top:10px}
.promoted-classes-hero{
  display:flex;justify-content:space-between;align-items:flex-end;gap:28px;
  padding:34px 36px;margin-bottom:20px;border:1px solid rgba(237,31,42,.20);border-radius:26px;
  background:
    radial-gradient(circle at 84% 10%,rgba(237,31,42,.17),transparent 35%),
    linear-gradient(145deg,rgba(13,15,21,.99),rgba(7,8,12,.99));
  box-shadow:var(--shadow)
}
.promoted-classes-hero>div{max-width:760px}
.promoted-classes-hero h1{font-size:clamp(34px,5vw,58px);margin:10px 0 14px}
.promoted-classes-hero p{margin:0;color:var(--muted);font-size:17px;line-height:1.7}
.promoted-classes-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}
.promoted-class-card{
  position:relative;overflow:hidden;display:flex;flex-direction:column;min-height:390px;padding:26px;
  border:1px solid rgba(255,255,255,.08);border-radius:24px;
  background:linear-gradient(180deg,#0d1119,#080b11);box-shadow:0 18px 48px rgba(0,0,0,.30)
}
.promoted-class-card:before{
  content:"";position:absolute;inset:0 auto auto 0;width:100%;height:3px;
  background:linear-gradient(90deg,#ed1f2a,#ff6a72 45%,transparent 88%)
}
.promoted-class-top{display:flex;align-items:center;justify-content:space-between;gap:12px}
.promoted-class-badge{
  display:inline-flex;padding:7px 11px;border-radius:999px;background:rgba(237,31,42,.12);
  border:1px solid rgba(237,31,42,.30);color:#ff9ba0;font-size:12px;font-weight:900;letter-spacing:.04em
}
.promoted-class-index{font-size:11px;font-weight:900;letter-spacing:.14em;color:#687186}
.promoted-class-card h2{font-size:28px;line-height:1.18;margin:22px 0 12px}
.promoted-class-description{color:#b0b8c8;line-height:1.7;margin-bottom:18px}
.promoted-class-details{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:auto}
.promoted-class-details>div{padding:12px 13px;border-radius:14px;border:1px solid var(--line);background:#070a10;min-width:0}
.promoted-class-details span{display:block;color:var(--muted);font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.08em;margin-bottom:5px}
.promoted-class-details b{font-size:14px;line-height:1.45;font-weight:750}
.promoted-class-actions{display:flex;gap:10px;margin-top:18px}
a.promoted-class-link{display:inline-flex;align-items:center;justify-content:center;text-decoration:none;border-radius:12px;padding:11px 15px;color:white;font-weight:850;background:linear-gradient(135deg,#ed1f2a,#b4121b)}
a.promoted-class-contact-link{display:inline-flex;align-items:center;justify-content:center;text-decoration:none;border-radius:12px;padding:10px 14px;color:var(--text);font-weight:750}
#contact{scroll-margin-top:96px}
.promoted-classes-empty{text-align:center;padding:44px}

/* Admin editor for promoted CP classes */
.promoted-class-admin-new,.promoted-class-admin-card{padding:18px;border:1px solid var(--line);border-radius:18px;background:#080c13;margin-top:16px}
.promoted-class-admin-new h3{margin:0 0 8px}
.promoted-class-admin-list{display:grid;gap:14px}
.promoted-class-admin-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:8px}
.promoted-class-admin-actions{display:flex;justify-content:flex-end;margin-top:12px}
.promo-publish-toggle{display:flex;align-items:center;gap:9px;color:#dfe5ef;font-size:14px;font-weight:700;margin-top:8px}
.promo-publish-toggle input{width:18px;height:18px;accent-color:#ed1f2a}

@media(max-width:800px){
  .promoted-classes-hero{align-items:stretch;flex-direction:column;padding:26px}
  .promoted-classes-grid{grid-template-columns:1fr}
}
@media(max-width:540px){
  .promoted-class-details{grid-template-columns:1fr}
  .promoted-class-card{padding:20px;min-height:0}
  .promoted-class-admin-head{align-items:stretch;flex-direction:column}
}

/* Editable current/old prices + combo discount controls */
.month-price-stack{display:flex;flex-direction:column;align-items:flex-end;gap:2px;line-height:1.1}
.old-price,.checkout-old-price{color:var(--muted);text-decoration:line-through;text-decoration-thickness:2px;text-decoration-color:rgba(255,255,255,.55)}
.old-price{font-size:13px;font-weight:700}
.checkout-old-price{font-size:11px;margin-right:4px}
.combo-admin-card{margin:14px 0 18px;padding:16px}
.combo-admin-card h3{margin:0 0 4px}
.combo-discount-table select,.combo-discount-table input{width:100%;min-width:120px}
@media(max-width:700px){
  .month-price-stack{align-items:flex-end}
  .combo-admin-card .admin-user-head{align-items:stretch}
}

/* 0016 · course registration welcome gift */
.registration-gift-card{
  position:relative;
  display:grid;
  grid-template-columns:auto 1fr;
  gap:16px;
  align-items:center;
  margin:18px 0;
  padding:22px;
  border:1px solid rgba(255,70,70,.38);
  border-radius:18px;
  background:linear-gradient(135deg,rgba(86,0,0,.28),rgba(18,18,22,.95) 52%,rgba(48,0,0,.32));
  box-shadow:0 18px 50px rgba(0,0,0,.26), inset 0 1px 0 rgba(255,255,255,.04);
  overflow:hidden;
}
.registration-gift-card::after{
  content:"";
  position:absolute;
  width:180px;height:180px;
  right:-80px;top:-100px;
  border-radius:50%;
  background:rgba(255,35,35,.12);
  filter:blur(6px);
  pointer-events:none;
}
.registration-gift-card.compact{padding:18px;margin:14px 0 4px}
.registration-gift-ribbon{
  position:absolute;
  right:14px;top:12px;
  font-size:10px;
  font-weight:900;
  letter-spacing:.12em;
  color:#ff9b9b;
}
.registration-gift-icon{
  display:grid;
  place-items:center;
  width:72px;height:72px;
  border-radius:20px;
  font-size:38px;
  background:rgba(255,35,35,.11);
  border:1px solid rgba(255,80,80,.3);
}
.registration-gift-content{position:relative;z-index:1;min-width:0}
.registration-gift-content h3{margin:0 0 8px;font-size:22px}
.registration-gift-description{line-height:1.65;color:var(--muted);margin-right:80px}
.registration-gift-link{display:inline-flex;margin-top:14px;text-decoration:none;align-items:center;justify-content:center}
.registration-gift-note{margin-top:9px;opacity:.78}
.registration-gift-modal-head h2{margin-top:6px}
.gift-account-button{
  border:1px solid rgba(255,80,80,.42);
  background:rgba(125,0,0,.28);
  color:#fff;
}
.gift-account-button:hover{background:rgba(170,0,0,.38)}
.registration-gift-admin-card{max-width:980px}
.gift-enable-row{
  display:flex;
  gap:10px;
  align-items:center;
  padding:14px 16px;
  margin-bottom:18px;
  border-radius:14px;
  border:1px solid rgba(255,80,80,.28);
  background:rgba(255,40,40,.06);
}
.gift-enable-row input{width:18px;height:18px}
.registration-gift-admin-preview{margin:18px 0}
@media(max-width:680px){
  .registration-gift-card{grid-template-columns:1fr;padding-top:42px}
  .registration-gift-icon{width:58px;height:58px;font-size:30px}
  .registration-gift-description{margin-right:0}
  .registration-gift-link{width:100%}
}
.registration-gift-teaser{
  display:flex;
  align-items:flex-start;
  gap:12px;
  margin:0 0 18px;
  padding:15px 17px;
  border-radius:16px;
  border:1px solid rgba(255,75,75,.28);
  background:linear-gradient(90deg,rgba(120,0,0,.22),rgba(30,30,34,.78));
}
.registration-gift-teaser-icon{font-size:26px;line-height:1}
.registration-gift-teaser b{display:block;margin-bottom:4px}
.checkout-gift-note{
  display:flex;
  flex-wrap:wrap;
  gap:6px 10px;
  align-items:center;
  margin:12px 0 14px;
  padding:12px 14px;
  border:1px solid rgba(255,75,75,.28);
  border-radius:14px;
  background:rgba(110,0,0,.16);
}
.checkout-gift-note span{color:var(--muted);font-size:13px}

.registration-gift-actions{display:flex;flex-wrap:wrap;gap:10px;align-items:center;margin-top:14px}
.registration-gift-actions .registration-gift-link{margin-top:0}
.registration-gift-file{display:inline-flex;align-items:center;justify-content:center;text-decoration:none}
.registration-gift-file-admin{margin-top:14px}
.registration-gift-file-admin input[type="file"]{margin-top:10px}
@media(max-width:640px){.registration-gift-actions{display:grid;grid-template-columns:1fr}.registration-gift-actions a{width:100%}}


/* Stable teacher slider controls: do not jump on hover. */
.teacher-gallery-nav,
.teacher-gallery-nav:hover,
.teacher-gallery-nav:active{
  transform:translateY(-50%);
}

.site-news-home{
  padding-top:24px;
  padding-inline:6px;
  border-left:4px solid rgba(111,124,255,.34)
}
.site-post-card{border:1px solid var(--line);border-radius:24px;background:linear-gradient(180deg,#0b0f16,#070a10);padding:26px;overflow:hidden}
.site-post-meta{display:flex;gap:12px;align-items:center;flex-wrap:wrap;color:var(--muted);font-size:12px;text-transform:uppercase;letter-spacing:.08em}
.site-post-card h3{font-size:30px;line-height:1.15;margin:12px 0 16px}
.site-post-content{color:#c8ced8;font-size:16px;line-height:1.8;white-space:normal}
.site-post-content>*:first-child{margin-top:0}.site-post-content>*:last-child{margin-bottom:0}
.site-post-content h1,.site-post-content h2,.site-post-content h3,.site-post-content h4{color:#f4f7fb;line-height:1.28;margin:1.5em 0 .65em;letter-spacing:-.02em}
.site-post-content h1{font-size:30px}.site-post-content h2{font-size:25px;padding-bottom:8px;border-bottom:1px solid rgba(255,255,255,.08)}.site-post-content h3{font-size:21px}.site-post-content h4{font-size:18px}
.site-post-content p{margin:.75em 0}.site-post-content ul,.site-post-content ol{padding-left:1.5em;margin:.8em 0}.site-post-content li{margin:.28em 0}.site-post-content li::marker{color:#8d9cff}
.site-post-content blockquote{margin:1.15em 0;padding:10px 16px;border-left:4px solid #6f7cff;border-radius:0 10px 10px 0;background:rgba(111,124,255,.08);color:#d7dceb}
.site-post-content a{color:#8da2ff;text-decoration:none;border-bottom:1px solid rgba(141,162,255,.35)}.site-post-content a:hover{color:#b4c0ff;border-bottom-color:currentColor}
.site-post-content hr{border:0;border-top:1px solid var(--line);margin:24px 0}
.site-post-content code{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono",monospace;background:#111826;border:1px solid rgba(255,255,255,.06);padding:.15em .38em;border-radius:6px;font-size:.9em;color:#e8edf7}
.site-post-content pre{margin:18px 0;overflow:auto;border:1px solid #202838;border-radius:14px;background:#06090f;box-shadow:0 12px 30px rgba(0,0,0,.16)}
.site-post-content pre code{display:block;background:transparent;border:0;border-radius:0;padding:17px!important;font-size:13px;line-height:1.6}
.site-post-content table{width:100%;border-collapse:separate;border-spacing:0;margin:18px 0;border:1px solid var(--line);border-radius:12px;overflow:hidden;font-size:14px}
.site-post-content th,.site-post-content td{padding:10px 12px;text-align:left;border-right:1px solid var(--line);border-bottom:1px solid var(--line);vertical-align:top}.site-post-content th:last-child,.site-post-content td:last-child{border-right:0}.site-post-content tr:last-child td{border-bottom:0}.site-post-content th{background:#101621;color:#f4f7fb}.site-post-content tbody tr:nth-child(even){background:rgba(255,255,255,.018)}
.site-post-content img{display:block;max-width:100%;height:auto;margin:18px auto;border-radius:14px;border:1px solid var(--line);background:#05070b}
.markdown-editor-shell{margin:14px 0 18px;border:1px solid var(--line);border-radius:16px;overflow:hidden;background:#070b11}
.markdown-editor-head{display:flex;justify-content:space-between;gap:14px;align-items:center;padding:12px 14px;border-bottom:1px solid var(--line);background:#0b1018}
.markdown-toolbar{display:flex;gap:6px;align-items:center;flex-wrap:wrap}.markdown-toolbar button{min-width:auto;padding:7px 9px;font-size:12px}
.markdown-editor-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);min-height:430px}
.markdown-editor-pane,.markdown-preview-pane{min-width:0;position:relative}.markdown-editor-pane{border-right:1px solid var(--line)}
.markdown-pane-label{height:34px;display:flex;align-items:center;padding:0 12px;border-bottom:1px solid var(--line);font-size:10px;letter-spacing:.12em;color:var(--muted);background:#080c13}
.site-post-markdown-editor{display:block;width:100%;min-height:395px;resize:vertical;border:0!important;border-radius:0!important;outline:none;background:#070a10!important;color:#dce3ee!important;padding:16px!important;font:13.5px/1.7 ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono",monospace!important;tab-size:2}
.site-post-markdown-preview{height:395px;overflow:auto;padding:18px;background:#090d14}.markdown-preview-empty{color:var(--muted);font-style:italic}
.markdown-help{border-top:1px solid var(--line);padding:10px 14px;background:#080c13}.markdown-help summary{cursor:pointer;color:#cbd3df;font-size:13px}.markdown-help-grid{display:flex;gap:8px;flex-wrap:wrap;margin-top:10px}.markdown-help-grid code{padding:5px 8px;border-radius:8px;background:#111826;border:1px solid var(--line);color:#cbd3df;font-size:12px}
.site-post-images{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-top:20px}
.site-post-images.single{grid-template-columns:1fr}
.site-post-image-link{display:block;border-radius:18px;overflow:hidden;background:#05070b;border:1px solid rgba(255,255,255,.06)}
.site-post-image{display:block;width:100%;height:300px;object-fit:cover;transition:transform .2s ease}
.site-post-image-link:hover .site-post-image{transform:scale(1.01)}
.site-post-code{margin-top:20px;border:1px solid #202838;border-radius:16px;overflow:hidden;background:#06090f}
.site-post-code-head{display:flex;align-items:center;justify-content:space-between;padding:10px 12px;border-bottom:1px solid #202838;color:#cbd3df;font-size:13px}
.site-post-code pre{margin:0;max-height:520px;overflow:auto}
.site-post-code code{display:block;padding:18px!important;font-size:13px;line-height:1.55}
.site-post-files{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:10px;margin-top:18px}
.site-post-file{display:flex;gap:12px;align-items:center;padding:12px 14px;border:1px solid var(--line);border-radius:14px;background:#0a0e15;color:#fff;text-decoration:none}
.site-post-file:hover{border-color:#3a465f;background:#0d121b}
.site-post-file span:first-child{font-size:20px}.site-post-file span:last-child{display:flex;flex-direction:column;min-width:0}.site-post-file b{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.site-post-file small{color:var(--muted);margin-top:3px}
.site-post-footer{display:flex;justify-content:flex-end;gap:10px;flex-wrap:wrap;margin-top:18px}
.site-post-archive{padding-top:36px}
.site-post-archive-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:16px}
.site-post-archive-card{border:1px solid var(--line);border-radius:20px;padding:20px;background:#090d14;cursor:pointer;transition:border-color .18s ease,background .18s ease}
.site-post-archive-card:hover{border-color:#39445b;background:#0c111a}
.site-post-archive-card h2{margin:10px 0 10px;font-size:22px}.site-post-archive-card p{color:var(--muted);line-height:1.6;min-height:52px}
.site-post-archive-tags{display:flex;gap:8px;flex-wrap:wrap;margin:14px 0}.site-post-archive-tags span{font-size:12px;padding:5px 8px;border-radius:999px;border:1px solid var(--line);color:#c9d0dd}
.site-post-modal{max-width:900px;margin:0 auto}
.site-post-detail-page{max-width:1040px;margin:0 auto;padding-top:34px;padding-bottom:64px}
.site-post-detail-nav{display:flex;align-items:center;margin-bottom:16px}
.site-post-detail-page .site-post-card{padding:clamp(22px,4vw,48px);border-radius:28px}
.site-post-detail-page .site-post-card h3{font-size:clamp(34px,5vw,56px);line-height:1.08;margin:16px 0 24px}
.site-post-detail-page .site-post-content{font-size:18px;line-height:1.8}
.site-post-detail-page .site-post-content h1,.site-post-detail-page .site-post-content h2,.site-post-detail-page .site-post-content h3{scroll-margin-top:100px}
.site-post-detail-bottom{display:flex;justify-content:flex-start;margin-top:18px}
.site-post-composer{border:1px solid var(--line);border-radius:18px;padding:18px;background:#080c13;margin-top:14px}
.site-post-admin-list{display:grid;gap:10px}
.site-post-admin-row{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:14px 16px;border:1px solid var(--line);border-radius:14px;background:#090d14}
@media(max-width:700px){
  .site-post-images{grid-template-columns:1fr}.site-post-image{height:220px}.site-post-card{padding:18px}.site-post-card h3{font-size:24px}.site-post-admin-row{align-items:flex-start;flex-direction:column}
}

/* Editable hero admin */
.home-hero-admin-card{margin-top:14px;padding:20px}
.home-hero-admin-card h3{margin:0 0 6px}
.home-hero-admin-card h4{margin:18px 0 8px;font-size:16px}
.home-hero-admin-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin-top:8px}
.course-highlights-admin{margin:18px 0 20px;padding:18px;border:1px solid var(--line);border-radius:18px;background:#080c13}
.course-highlights-admin .admin-user-head{margin-bottom:12px}
.course-highlights-admin h3{margin:0 0 5px}
.course-highlights-admin-list{display:grid;gap:12px}
.course-highlight-admin-item{padding:16px;border:1px solid var(--line);border-radius:15px;background:#0a0f17}
.course-highlight-admin-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:12px}
.course-highlight-admin-grid{grid-template-columns:minmax(120px,.32fr) minmax(0,1fr)}
.course-highlight-admin-item .field:last-child{margin-bottom:0}

/* Floating contact box */
.contact-widget{
  position:fixed;
  right:18px;
  bottom:18px;
  z-index:88;
  width:min(380px,calc(100vw - 28px));
  border:1px solid rgba(255,255,255,.10);
  border-radius:18px;
  background:linear-gradient(180deg,rgba(14,18,27,.98),rgba(8,10,16,.98));
  box-shadow:0 18px 50px rgba(0,0,0,.48);
  overflow:hidden;
  backdrop-filter:blur(12px);
}
.contact-widget.hidden{display:none!important}
.contact-widget-head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px 14px 12px}
.contact-widget-head b{font-size:15px}
.contact-widget-head .small{margin-top:2px;font-size:11px}
.contact-widget-toggle{
  flex:0 0 34px;width:34px;height:34px;padding:0;border-radius:10px;
  display:flex;align-items:center;justify-content:center;font-size:20px;
  background:#101722;border:1px solid #263043;color:#fff
}
.contact-widget-toggle:hover,.contact-widget-toggle:active{transform:none}
.contact-widget-body{display:grid;gap:8px;padding:0 12px 12px}
.contact-widget-body a{
  display:flex;align-items:center;gap:10px;text-decoration:none;color:var(--text);
  padding:10px 11px;border:1px solid rgba(255,255,255,.07);border-radius:13px;background:rgba(255,255,255,.025)
}
.contact-widget-body a:hover{border-color:rgba(59,130,246,.38);background:rgba(37,99,235,.12)}
.contact-widget-body a>span{
  width:30px;height:30px;border-radius:9px;display:flex;align-items:center;justify-content:center;
  background:rgba(59,130,246,.16);color:#60a5fa;font-weight:900
}
.contact-widget-body small{display:block;color:var(--muted);font-size:10px;margin-bottom:2px}
.contact-widget-body b{display:block;font-size:12px;word-break:break-word}
.site-chat-loading,.site-chat-error{padding:18px;color:var(--muted);font-size:13px}
.site-chat-error{color:#ff8b91}
.site-chat-messages{height:300px;overflow:auto;padding:4px 12px 12px;display:flex;flex-direction:column;gap:10px;scrollbar-width:thin}
.site-chat-empty{margin:auto 0;padding:18px;border:1px dashed rgba(255,255,255,.12);border-radius:14px;color:var(--muted);font-size:13px;line-height:1.55;text-align:center}
.site-chat-empty b{display:block;color:var(--text);font-size:15px;margin-bottom:4px}
.site-chat-message{max-width:86%;padding:10px 12px;border-radius:15px;font-size:13px;line-height:1.5;word-break:break-word}
.site-chat-message small{display:block;margin-top:5px;font-size:10px;opacity:.68}
.site-chat-message.from-visitor{align-self:flex-end;background:linear-gradient(135deg,#3b82f6,#1d4ed8);color:#fff;border-bottom-right-radius:5px}
.site-chat-message.from-admin{align-self:flex-start;background:#151b26;border:1px solid #283244;color:var(--text);border-bottom-left-radius:5px}
.site-chat-compose{border-top:1px solid rgba(255,255,255,.08);padding:12px;display:grid;gap:8px}
.site-chat-compose textarea,.site-chat-compose input{margin:0;width:100%}
.site-chat-guest-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.site-chat-compose .primary{justify-self:end;min-width:84px}
.admin-chat-layout{display:grid;grid-template-columns:minmax(250px,.8fr) minmax(0,1.5fr);gap:16px;min-height:540px}
.admin-chat-list{display:flex;flex-direction:column;gap:8px;max-height:650px;overflow:auto}
.admin-chat-row{width:100%;text-align:left;padding:12px;border:1px solid var(--line);border-radius:14px;background:#090d14;color:var(--text);display:block}
.admin-chat-row:hover,.admin-chat-row:active{transform:none;border-color:#35425a}
.admin-chat-row.active{border-color:rgba(59,130,246,.48);background:rgba(37,99,235,.12)}
.admin-chat-row>div:first-child{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.admin-chat-preview{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-top:7px}
.admin-chat-unread{display:inline-flex;align-items:center;justify-content:center;min-width:20px;height:20px;padding:0 6px;border-radius:999px;background:#e31b23;color:#fff;font-size:11px;font-weight:800}
.admin-chat-detail{border:1px solid var(--line);border-radius:18px;background:#080c13;padding:16px;min-width:0}
.admin-chat-detail-head{display:flex;justify-content:space-between;gap:12px;align-items:flex-start;padding-bottom:12px;border-bottom:1px solid var(--line)}
.admin-chat-detail-head h3{margin:0 0 4px}
.admin-chat-messages{height:360px;overflow:auto;display:flex;flex-direction:column;gap:10px;padding:14px 2px}
.admin-chat-quick-actions{display:flex;gap:8px;flex-wrap:wrap;border-top:1px solid var(--line);padding-top:12px;margin-top:2px}
.admin-chat-reply{display:grid;grid-template-columns:1fr auto;gap:10px;align-items:end;padding-top:10px}
.admin-submission-chat-action{margin-top:7px}
.admin-submission-chat-action .ghost{padding:6px 9px;font-size:11px}
.admin-chat-reply textarea{margin:0}
.contact-widget.collapsed{
  width:58px;min-width:58px;height:58px;padding:0;border:0;background:transparent;box-shadow:none;overflow:visible
}
.contact-widget-launcher{
  width:58px;height:58px;border-radius:50%;border:1px solid rgba(255,255,255,.16);
  background:linear-gradient(135deg,#3b82f6,#1d4ed8);color:#fff;display:flex;align-items:center;justify-content:center;
  padding:0;cursor:pointer;box-shadow:0 12px 30px rgba(37,99,235,.32);transition:background .18s ease,border-color .18s ease,box-shadow .18s ease
}
.contact-widget-launcher svg{width:27px;height:27px;fill:none;stroke:currentColor;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round}
.site-chat-launcher-unread{position:absolute;top:-5px;right:-5px;min-width:22px;height:22px;padding:0 6px;border-radius:999px;background:#e31b23;color:#fff;border:2px solid #070a10;display:flex;align-items:center;justify-content:center;font-size:10px;font-weight:900;line-height:1;box-shadow:0 4px 12px rgba(227,27,35,.35)}
.contact-widget-launcher:hover{
  transform:none;background:linear-gradient(135deg,#60a5fa,#2563eb);border-color:rgba(147,197,253,.55);box-shadow:0 14px 34px rgba(37,99,235,.42)
}
.contact-widget-launcher:active{transform:none}

.scoreboard-cell.pending .scoreboard-cell-time,.scoreboard-cell.partial .scoreboard-cell-time{color:#ffd84a!important;text-shadow:0 0 10px rgba(255,216,74,.18)!important}
html[data-theme="light"] .scoreboard-cell.pending .scoreboard-cell-time,html[data-theme="light"] .scoreboard-cell.partial .scoreboard-cell-time{color:#ffe167!important;text-shadow:none!important}
@media(max-width:900px){
  .admin-chat-layout{grid-template-columns:1fr}
  .admin-chat-list{max-height:280px}

  .home-hero-admin-grid{grid-template-columns:1fr}
}
@media(max-width:640px){
  .contact-widget{right:10px;bottom:10px;width:min(360px,calc(100vw - 20px))}
  .site-chat-messages{height:260px}
  .site-chat-guest-grid{grid-template-columns:1fr}
  .contact-widget.collapsed{width:54px;min-width:54px;height:54px}
  .contact-widget-launcher{width:54px;height:54px}
}

/* =========================================================
   Light / Dark theme toggle
   Dark remains the default TopAlgo look. Light mode is local
   to each browser and activated with html[data-theme="light"].
   ========================================================= */
html{color-scheme:dark}
html[data-theme="light"]{
  color-scheme:light;
  --bg:#f6f7fb;
  --card:#ffffff;
  --card2:#f1f3f8;
  --text:#151821;
  --muted:#626b7c;
  --line:#d9deea;
  --accent:#d71920;
  --accent2:#ad1017;
  --good:#16875f;
  --warn:#a96800;
  --danger:#c92b35;
  --shadow:0 18px 48px rgba(31,38,55,.10);
}

.theme-toggle{display:inline-flex;align-items:center;justify-content:center;gap:7px;white-space:nowrap;min-width:88px}
.theme-toggle:hover,.theme-toggle:active{transform:none}
#themeIcon{font-size:16px;line-height:1}
.theme-toggle-label{font-size:13px;font-weight:700}

html[data-theme="light"] body{
  background:
    radial-gradient(circle at 10% 0%,rgba(215,25,32,.055),transparent 28%),
    radial-gradient(circle at 90% 4%,rgba(72,92,170,.05),transparent 30%),
    linear-gradient(180deg,#fbfbfd 0%,#f5f6fa 55%,#f1f3f7 100%);
  color:var(--text);
}
html[data-theme="light"] .topbar{
  background:rgba(255,255,255,.94);
  border-bottom-color:#e2e5ec;
  box-shadow:0 8px 28px rgba(35,39,52,.07);
}
html[data-theme="light"] .brand-logo-image{filter:drop-shadow(0 5px 12px rgba(200,20,28,.10))}
html[data-theme="light"] .ghost{background:#fff;border-color:#d7dce6;color:#20232c}
html[data-theme="light"] .ghost:hover{background:#f4f5f8;border-color:#c5cad5}
html[data-theme="light"] .primary{color:#fff;background:linear-gradient(135deg,#e31b23,#ae1017)}
html[data-theme="light"] .danger{background:#fff0f1;color:#a91f29;border-color:#f1c7cb}
html[data-theme="light"] .success{background:#eaf8f2;color:#116b4d;border-color:#b9e5d3}
html[data-theme="light"] .eyebrow{color:#c51b23}
html[data-theme="light"] .section-label{
  color:#a1151d;
  background:linear-gradient(135deg,rgba(227,27,35,.12),rgba(227,27,35,.05));
  border-color:rgba(227,27,35,.22);
  box-shadow:0 12px 24px rgba(227,27,35,.08)
}
html[data-theme="light"] .section-label:before{background:#e31b23;box-shadow:0 0 0 4px rgba(227,27,35,.12)}

html[data-theme="light"] .hero-panel,
html[data-theme="light"] .card,
html[data-theme="light"] .admin-panel,
html[data-theme="light"] .profile-card,
html[data-theme="light"] .teacher-profile,
html[data-theme="light"] .lesson-admin-card,
html[data-theme="light"] .learning-sidebar,
html[data-theme="light"] .learning-main-card,
html[data-theme="light"] .site-post-card{
  background:linear-gradient(180deg,#fff,#fafbfc);
  border-color:#dde1e9;
  box-shadow:var(--shadow);
}
html[data-theme="light"] .combo-offer{background:linear-gradient(180deg,#fbfbfd,#f4f5f8)!important;border-color:#dde1e9!important}
html[data-theme="light"] .combo-offer::before{opacity:.28}
html[data-theme="light"] .landing-section-head{border-bottom-color:rgba(227,27,35,.12)}
html[data-theme="light"] .site-news-home{border-left-color:rgba(227,27,35,.25)}

html[data-theme="light"] .hero p,
html[data-theme="light"] .teacher-copy p,
html[data-theme="light"] .site-post-content{color:#555f70}
html[data-theme="light"] .site-post-content h1,html[data-theme="light"] .site-post-content h2,html[data-theme="light"] .site-post-content h3,html[data-theme="light"] .site-post-content h4{color:#20242d}
html[data-theme="light"] .site-post-content h2{border-bottom-color:#e1e5eb}
html[data-theme="light"] .site-post-content blockquote{background:#eef1ff;color:#46506a}
html[data-theme="light"] .site-post-content code{background:#f1f3f6;border-color:#e0e4ea;color:#303744}
html[data-theme="light"] .site-post-content pre{background:#f6f8fa;border-color:#d8dee8;box-shadow:none}
html[data-theme="light"] .site-post-content th{background:#f0f2f5;color:#20242d}
html[data-theme="light"] .site-post-content tbody tr:nth-child(even){background:#fafbfc}
html[data-theme="light"] .markdown-editor-shell,html[data-theme="light"] .markdown-editor-head,html[data-theme="light"] .markdown-preview-pane,html[data-theme="light"] .markdown-help{background:#fff;border-color:#dce1e9}
html[data-theme="light"] .markdown-pane-label{background:#f7f8fa;border-color:#dce1e9}
html[data-theme="light"] .markdown-editor-pane{border-color:#dce1e9}
html[data-theme="light"] .site-post-markdown-editor{background:#fbfcfd!important;color:#303744!important}
html[data-theme="light"] .site-post-markdown-preview{background:#fff}
html[data-theme="light"] .markdown-help-grid code{background:#f3f5f7;border-color:#dce1e9;color:#4d5667}
html[data-theme="light"] .pill{background:#edf0f6;color:#424b5d;border-color:#d9dee8}
html[data-theme="light"] .banner{background:#f2f4ff;color:#434d69;border-color:#d6dcf8}
html[data-theme="light"] .error-banner{background:#fff2f3;color:#9f2630;border-color:#efcbd0}
html[data-theme="light"] .sep{background:#e0e4ec}

html[data-theme="light"] .modal{
  background:#fff;border-color:#d9dee7;box-shadow:0 24px 70px rgba(30,35,48,.18)
}
html[data-theme="light"] .modal-backdrop{background:rgba(35,40,52,.38)}
html[data-theme="light"] .field input,
html[data-theme="light"] .field textarea,
html[data-theme="light"] .field select,
html[data-theme="light"] .site-chat-compose textarea,
html[data-theme="light"] .site-chat-compose input,
html[data-theme="light"] .admin-chat-reply textarea{
  background:#fff;color:#1b1f28;border-color:#cfd5df
}
html[data-theme="light"] .field input:focus,
html[data-theme="light"] .field textarea:focus,
html[data-theme="light"] .field select:focus,
html[data-theme="light"] .site-chat-compose textarea:focus,
html[data-theme="light"] .site-chat-compose input:focus{
  border-color:#d65b61;box-shadow:0 0 0 3px rgba(215,25,32,.09)
}
html[data-theme="light"] .check,
html[data-theme="light"] .profile-editor-avatar-row,
html[data-theme="light"] .payment-bank-card,
html[data-theme="light"] .lesson-exercise-item,
html[data-theme="light"] .lesson-exercise-admin-card,
html[data-theme="light"] .teacher-avatar-admin-box,
html[data-theme="light"] .teacher-media-admin-box,
html[data-theme="light"] .achievement-editor-new,
html[data-theme="light"] .achievement-editor-row,
html[data-theme="light"] .course-highlights-admin,
html[data-theme="light"] .course-highlight-admin-item,
html[data-theme="light"] .promoted-class-admin-new,
html[data-theme="light"] .promoted-class-admin-card,
html[data-theme="light"] .site-post-composer,
html[data-theme="light"] .admin-chat-detail{
  background:#fafbfc;border-color:#dce1e9
}
html[data-theme="light"] .lesson-file-row input[type="file"]{background:#fff;color:#606979;border-color:#cfd5df}
html[data-theme="light"] .lesson-admin-footer{background:rgba(255,255,255,.95);border-color:#dce1e9}

html[data-theme="light"] .forum-item,
html[data-theme="light"] .forum-post-row,
html[data-theme="light"] .forum-post-stats,
html[data-theme="light"] .forum-file-card,
html[data-theme="light"] .forum-selected-file,
html[data-theme="light"] .forum-reaction-btn{
  background:#fff;color:#20242e;border-color:#d9dee7
}
html[data-theme="light"] .forum-file-card:hover,
html[data-theme="light"] .forum-reaction-btn:hover{background:#f5f6f9;border-color:#c6ccd7}
html[data-theme="light"] .forum-badge{background:#f0f2f6;color:#50596a;border-color:#d8dde6}
html[data-theme="light"] .forum-code-wrap,
html[data-theme="light"] .site-post-code{background:#f6f8fa;border-color:#d8dee8}
html[data-theme="light"] .forum-code-head,
html[data-theme="light"] .site-post-code-head{background:#eef1f5;border-color:#d8dee8;color:#4d5667}
html[data-theme="light"] .forum-post-image,
html[data-theme="light"] .site-post-image-link{background:#f2f3f6;border-color:#dfe3ea}

html[data-theme="light"] .intro-video-placeholder{background:linear-gradient(135deg,#f5f6f9,#eceff4);border-color:#ccd2dd;color:#687184}
html[data-theme="light"] .intro-video-frame{background:#eef0f4;border-color:#dce1e9;box-shadow:0 16px 40px rgba(32,37,50,.10)}
html[data-theme="light"] .teacher-gallery{background:linear-gradient(135deg,#f3f5f8,#fff);border-color:#dce1e9}
html[data-theme="light"] .teacher-gallery-empty{background:#fafbfc}
html[data-theme="light"] .teacher-gallery-nav{background:rgba(255,255,255,.88);color:#20242e;border-color:#d3d9e3;box-shadow:0 6px 20px rgba(25,30,42,.12)}
html[data-theme="light"] .teacher-gallery-dot{background:rgba(40,45,58,.25)}
html[data-theme="light"] .teacher-gallery-dot.active{background:#d71920}
html[data-theme="light"] .teacher-avatar-admin-preview,
html[data-theme="light"] .teacher-media-admin-item{background:#fff;border-color:#dce1e9}

html[data-theme="light"] .learning-lesson-index,
html[data-theme="light"] .learning-exercise-number{background:#eef1f6;border-color:#d9dee7;color:#343b49}
html[data-theme="light"] .learning-no-video{background:#f7f8fa}
html[data-theme="light"] .learning-exercise-card{background:#fff;border-color:#dce1e9}
html[data-theme="light"] .learning-source-panel{background:#f6f8fa;border-color:#dce1e9}
html[data-theme="light"] .learning-source-head{background:#eef1f5;color:#343b49}
html[data-theme="light"] .learning-code{background:#f6f8fa;color:#24292f}

html[data-theme="light"] .promoted-class-card,
html[data-theme="light"] .promoted-class-details>div{background:#fff;border-color:#dce1e9}
html[data-theme="light"] .site-post-file{background:#f7f8fa;color:#20242d;border-color:#dce1e9}
html[data-theme="light"] .site-post-file:hover{background:#f0f2f5;border-color:#c8ced9}
html[data-theme="light"] .site-post-archive-card,
html[data-theme="light"] .site-post-admin-row{background:#fff;border-color:#dce1e9}
html[data-theme="light"] .site-post-archive-card:hover{background:#f7f8fa;border-color:#c8ced8}
html[data-theme="light"] .site-post-archive-tags span{color:#596273}

html[data-theme="light"] .registration-gift-card{background:linear-gradient(135deg,#fff7f7,#fff);border-color:#efc7ca}
html[data-theme="light"] .registration-gift-teaser{background:linear-gradient(90deg,#fff1f2,#fafafa);border-color:#efc7ca}
html[data-theme="light"] .checkout-gift-note{background:#fff4f4;border-color:#efc7ca}
html[data-theme="light"] .gift-account-button{background:#fff0f1;color:#a91c25;border-color:#e9bfc3}

html[data-theme="light"] .contact-widget{
  background:linear-gradient(180deg,rgba(255,255,255,.99),rgba(247,248,251,.99));
  border-color:#d7dce6;box-shadow:0 18px 48px rgba(29,34,47,.16)
}
html[data-theme="light"] .contact-widget-toggle{background:#fff;color:#262b35;border-color:#d5dae4}
html[data-theme="light"] .site-chat-empty{border-color:#d8dde6}
html[data-theme="light"] .site-chat-message.from-admin{background:#eef1f5;border-color:#d9dee8;color:#20242d}
html[data-theme="light"] .site-chat-compose{border-color:#dce1e9}
html[data-theme="light"] .admin-chat-row{background:#fff;color:#222731;border-color:#dce1e9}
html[data-theme="light"] .admin-chat-row:hover{background:#f5f7f9;border-color:#c9d0db}
html[data-theme="light"] .admin-chat-row.active{background:#eff6ff;border-color:#93c5fd}

html[data-theme="light"] .toast{background:#fff;color:#1d222b;border-color:#d8dde6;box-shadow:0 12px 34px rgba(29,34,47,.16)}
html[data-theme="light"] .admin-badge{background:#eaf8f2;color:#146848;border-color:#bfe4d3}
html[data-theme="light"] .admin-top-btn{box-shadow:0 8px 22px rgba(215,25,32,.18)}
html[data-theme="light"] .meta-row{border-color:#e0e4eb}


/* Light mode: landing/home cards that use dark hard-coded colors in the base theme. */
html[data-theme="light"] .landing-copy{
  color:#555f70;
}
html[data-theme="light"] .course-highlights>div{
  background:linear-gradient(180deg,#ffffff,#f8f9fb);
  border-color:#dce1e9;
  box-shadow:0 10px 28px rgba(31,38,55,.06);
}
html[data-theme="light"] .course-highlights span{
  color:#5967c9;
}
html[data-theme="light"] .course-highlights b{
  color:#171b24;
}
html[data-theme="light"] .course-highlights p{
  color:#667083;
}
html[data-theme="light"] .achievement-card{
  background:linear-gradient(180deg,#ffffff,#f8f9fb);
  border-color:#dce1e9;
  box-shadow:0 10px 28px rgba(31,38,55,.07);
  color:#171b24;
}
html[data-theme="light"] .achievement-card h3{
  color:#171b24;
}
html[data-theme="light"] .achievement-card p{
  color:#667083;
}
html[data-theme="light"] .achievement-year{
  color:#4653ad;
  background:#eef0ff;
  border-color:#d4d9f8;
}
html[data-theme="light"] .achievement-icon{
  color:#5967d8;
}
html[data-theme="light"] .empty-achievements{
  background:#ffffff;
  border-color:#cfd6e2;
  color:#667083;
}
html[data-theme="light"] .brand-logo-image{
  filter:drop-shadow(0 4px 9px rgba(200,20,28,.08));
}

@media(max-width:760px){
  .theme-toggle{min-width:44px;padding-left:11px;padding-right:11px}
  .theme-toggle-label{display:none}
}


/* Light mode polish: readable C++ source + clean TopAlgo logo backing */
html[data-theme="light"] .brand-logo-only{
  background:#05070a;
  border:1px solid #20242d;
  border-radius:14px;
  padding:5px 9px;
  box-shadow:0 5px 14px rgba(20,24,32,.10);
}
html[data-theme="light"] .brand-logo-only:hover,
html[data-theme="light"] .brand-logo-only:active{
  background:#05070a;
  transform:none;
}
html[data-theme="light"] .brand-logo-image{
  filter:none;
}

html[data-theme="light"] .learning-code,
html[data-theme="light"] .learning-code code,
html[data-theme="light"] .learning-code code.hljs{
  background:#f6f8fa !important;
  color:#24292f !important;
  opacity:1;
}
html[data-theme="light"] .learning-code .hljs-comment,
html[data-theme="light"] .learning-code .hljs-quote{
  color:#57606a !important;
  opacity:1;
}
html[data-theme="light"] .learning-code .hljs-keyword,
html[data-theme="light"] .learning-code .hljs-type,
html[data-theme="light"] .learning-code .hljs-built_in,
html[data-theme="light"] .learning-code .hljs-literal,
html[data-theme="light"] .learning-code .hljs-meta{
  color:#cf222e !important;
}
html[data-theme="light"] .learning-code .hljs-number,
html[data-theme="light"] .learning-code .hljs-symbol,
html[data-theme="light"] .learning-code .hljs-bullet{
  color:#0550ae !important;
}
html[data-theme="light"] .learning-code .hljs-string,
html[data-theme="light"] .learning-code .hljs-regexp{
  color:#0a3069 !important;
}
html[data-theme="light"] .learning-code .hljs-title,
html[data-theme="light"] .learning-code .hljs-title.function_,
html[data-theme="light"] .learning-code .hljs-title.class_,
html[data-theme="light"] .learning-code .hljs-function{
  color:#8250df !important;
}
html[data-theme="light"] .learning-code .hljs-variable,
html[data-theme="light"] .learning-code .hljs-params,
html[data-theme="light"] .learning-code .hljs-operator,
html[data-theme="light"] .learning-code .hljs-punctuation,
html[data-theme="light"] .learning-code .hljs-property,
html[data-theme="light"] .learning-code .hljs-subst{
  color:#24292f !important;
}
html[data-theme="light"] .learning-code .hljs-name,
html[data-theme="light"] .learning-code .hljs-attr,
html[data-theme="light"] .learning-code .hljs-attribute{
  color:#116329 !important;
}


/* Light mode fixes: purchased months + promoted CP classes */
html[data-theme="light"] .owned-check{
  background:#ecfdf5;
  border-color:#a7e7c8;
  color:#173f31;
  opacity:1;
}
html[data-theme="light"] .owned-check:hover{
  background:#ecfdf5;
  border-color:#8bd9b5;
  transform:none;
}
html[data-theme="light"] .owned-check .checkout-month-title{
  color:#17613f;
}
html[data-theme="light"] .owned-check small{
  color:#3d7a62;
}
html[data-theme="light"] .owned-badge{
  color:#14633f;
  background:#d7f7e7;
  border-color:#8fdcb7;
}
html[data-theme="light"] .owned-check input{
  accent-color:#168557;
  opacity:.75;
}
html[data-theme="light"] .expired-check{
  background:#fff8eb;
  border-color:#e7c990;
}
html[data-theme="light"] .expired-check .checkout-month-title{
  color:#765016;
}
html[data-theme="light"] .expired-badge{
  color:#765016;
  background:#fff1cf;
  border-color:#e4c179;
}
html[data-theme="light"] .checkout-old-price,
html[data-theme="light"] .old-price{
  color:#697386;
  text-decoration-color:#7b8494;
}

html[data-theme="light"] .promoted-classes-hero{
  background:
    radial-gradient(circle at 84% 10%,rgba(215,25,32,.08),transparent 34%),
    linear-gradient(145deg,#ffffff,#f7f8fb);
  border-color:#e4c6c9;
  box-shadow:0 16px 42px rgba(31,38,55,.08);
}
html[data-theme="light"] .promoted-classes-hero .eyebrow{
  color:#b81c25;
}
html[data-theme="light"] .promoted-classes-hero h1{
  color:#151922;
}
html[data-theme="light"] .promoted-classes-hero p{
  color:#5f697b;
}
html[data-theme="light"] .promoted-classes-hero .ghost{
  background:#fff;
  color:#202631;
  border-color:#cfd6e1;
}
html[data-theme="light"] .promoted-classes-hero .ghost:hover{
  background:#f5f7fa;
  border-color:#bcc5d2;
  transform:none;
}
html[data-theme="light"] .promoted-class-card{
  background:linear-gradient(180deg,#ffffff,#fafbfc);
  border-color:#dce1e9;
  box-shadow:0 14px 36px rgba(31,38,55,.08);
  color:#171b24;
}
html[data-theme="light"] .promoted-class-card h2{
  color:#171b24;
}
html[data-theme="light"] .promoted-class-description{
  color:#5f697b;
}
html[data-theme="light"] .promoted-class-badge{
  color:#b4232c;
  background:#fff0f1;
  border-color:#efbfc3;
}
html[data-theme="light"] .promoted-class-index{
  color:#667085;
}
html[data-theme="light"] .promoted-class-details>div{
  background:#f7f8fa;
  border-color:#dce1e9;
}
html[data-theme="light"] .promoted-class-details span{
  color:#667085;
}
html[data-theme="light"] .promoted-class-details b{
  color:#252b35;
}
html[data-theme="light"] .promoted-classes-empty{
  background:#fff;
  color:#1f2430;
  border-color:#dce1e9;
}


/* =========================================================
   Mobile responsive hardening
   Keep desktop untouched; prevent horizontal overflow and
   make all major TopAlgo screens usable on phones.
   ========================================================= */
@media(max-width:820px){
  html,body{max-width:100%;overflow-x:hidden}
  body{min-width:0}
  img,video,iframe,canvas{max-width:100%}

  .topbar{
    flex-direction:column;
    align-items:stretch;
    gap:7px;
    padding:7px 8px 8px;
  }
  .brand-logo-only{
    align-self:flex-start;
    margin:0;
  }
  .brand-logo-image{
    height:40px;
    width:auto;
    max-width:165px;
  }
  .nav-actions{
    width:100%;
    max-width:100%;
    margin:0;
    display:flex;
    flex-wrap:nowrap;
    justify-content:flex-start;
    gap:6px;
    overflow-x:auto;
    overflow-y:hidden;
    padding:0 0 2px;
    scrollbar-width:none;
    -webkit-overflow-scrolling:touch;
  }
  .nav-actions::-webkit-scrollbar{display:none}
  .nav-actions button{
    flex:0 0 auto;
    min-height:38px;
    padding:8px 11px;
    border-radius:10px;
    font-size:13px;
    white-space:nowrap;
  }
  #btnLogin{max-width:180px}
  .nav-user-avatar{width:22px;height:22px}
  .theme-toggle{min-width:40px}

  main,
  body.learning-mode main#app{
    width:100%;
    max-width:100%;
    margin:0;
    padding:14px 10px 52px;
  }

  .hero,
  .landing-two-col,
  .intro-course-layout,
  .teacher-section,
  .admin-shell,
  .learning-layout{
    grid-template-columns:minmax(0,1fr);
  }
  .hero{gap:12px;margin-top:6px}
  .hero-panel,
  .card,
  .admin-panel,
  .teacher-profile,
  .learning-main-card{
    min-width:0;
    border-radius:18px;
  }
  .hero-panel{padding:20px 16px}
  .profile-card,.teacher-profile{padding:17px}
  h1{font-size:clamp(34px,10vw,48px);line-height:1.03;overflow-wrap:anywhere}
  .hero p{font-size:15px;line-height:1.65}
  .eyebrow{font-size:10px;line-height:1.5}
  .combo-offer h2{font-size:27px}
  .combo-price strong{font-size:30px}
  .combo-badge{margin-bottom:14px;white-space:normal}
  .hero-proof{
    display:grid;
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:8px;
    margin-top:20px;
    padding-top:16px;
  }
  .hero-proof span{display:block;min-width:0;font-size:11px;line-height:1.35}
  .hero-proof b{display:block;font-size:17px;margin-bottom:3px}

  .section{margin-top:25px}
  .section-head,.landing-section-head{
    flex-direction:column;
    align-items:flex-start;
    gap:8px;
  }
  .site-news-home{padding-inline:0;border-left-width:0}
  .section h2{font-size:25px;line-height:1.15}
  .landing-two-col,.intro-course-layout,.teacher-section{gap:16px}
  .landing-two-col h2,.teacher-copy h2{font-size:29px}
  .landing-copy{font-size:16px;line-height:1.7}
  .intro-course-copy{padding:2px 0 0}
  .intro-course-copy h2{font-size:28px}
  .intro-video-frame,.intro-video-placeholder{border-radius:16px}
  .course-highlights,.achievement-grid,.grid{grid-template-columns:minmax(0,1fr)}
  .course-highlights{gap:10px;margin-top:18px}
  .course-highlights>div,.achievement-card{padding:16px;min-height:0}
  .course-highlights span{margin-bottom:14px}
  .achievement-card h3{margin:16px 0 8px}

  .teacher-copy{padding:8px 2px}
  .teacher-gallery{min-height:280px;border-radius:16px;margin-bottom:16px}
  .teacher-gallery-image{height:280px}
  .teacher-gallery-nav{width:40px;height:40px}
  .teacher-gallery-prev{left:8px}.teacher-gallery-next{right:8px}
  .teacher-identity{gap:12px;align-items:center}
  .teacher-avatar-photo,.teacher-avatar-fallback{width:78px;height:78px;flex-basis:78px;border-radius:15px}
  .teacher-identity h2{font-size:22px;overflow-wrap:anywhere}
  .profile-grid{margin-top:14px}
  .meta-row{flex-direction:column;gap:4px;align-items:flex-start;padding:9px 0}
  .meta-row b,.meta-row a{max-width:100%;overflow-wrap:anywhere}

  .promoted-classes-page,.site-post-archive,.forum-page,.learning-page{min-width:0}
  .promoted-classes-hero{
    padding:20px 16px;
    border-radius:18px;
    flex-direction:column;
    align-items:stretch;
    gap:16px;
  }
  .promoted-classes-hero h1{font-size:34px;overflow-wrap:anywhere}
  .promoted-classes-hero p{font-size:15px}
  .promoted-classes-grid{grid-template-columns:minmax(0,1fr);gap:12px}
  .promoted-class-card{padding:17px;min-height:0;border-radius:18px}
  .promoted-class-card h2{font-size:24px;overflow-wrap:anywhere}
  .promoted-class-details{grid-template-columns:minmax(0,1fr)}

  .site-post-card{padding:16px;border-radius:18px}
  .markdown-editor-head{align-items:flex-start;flex-direction:column}
  .markdown-editor-grid{grid-template-columns:minmax(0,1fr);min-height:0}
  .markdown-editor-pane{border-right:0;border-bottom:1px solid var(--line)}
  .site-post-markdown-editor{min-height:320px}.site-post-markdown-preview{height:auto;min-height:260px;max-height:480px}
  .site-post-content table{display:block;overflow-x:auto;white-space:nowrap}
  .site-post-card h3{font-size:24px;overflow-wrap:anywhere}
  .site-post-content{font-size:15px;line-height:1.7;overflow-wrap:anywhere}
  .site-post-images,.site-post-images.single{grid-template-columns:minmax(0,1fr)}
  .site-post-image{height:auto;max-height:420px;object-fit:contain}
  .site-post-files{grid-template-columns:minmax(0,1fr)}
  .site-post-footer{justify-content:stretch}
  .site-post-footer button{flex:1 1 140px}
  .site-post-archive-list{grid-template-columns:minmax(0,1fr)}

  .forum-page-head,.forum-post-detail-head,.forum-compose-head,.forum-comment-head{
    flex-direction:column;align-items:stretch
  }
  .forum-page-head-left{flex-direction:column;align-items:flex-start}
  .forum-head-actions,.forum-detail-actions,.forum-compose-footer,.forum-comment-submit{width:100%}
  .forum-head-actions button,.forum-detail-actions button,.forum-compose-footer button{flex:1 1 130px}
  .forum-post-card{grid-template-columns:minmax(0,1fr);gap:12px;padding:15px}
  .forum-post-title,.forum-comment-content,.forum-post-content{overflow-wrap:anywhere}
  .forum-post-side{flex-direction:row;align-items:center;justify-content:flex-start;flex-wrap:wrap}
  .forum-post-stats{display:flex;justify-content:flex-start;gap:8px;flex-wrap:wrap}
  .forum-file-card{grid-template-columns:auto minmax(0,1fr);gap:10px}
  .forum-download{grid-column:2;white-space:normal!important}
  .forum-compose-tools{grid-template-columns:minmax(0,1fr)}
  .forum-code-wrap pre{padding:12px;max-width:100%}
  .forum-code-wrap code{font-size:12px}

  .learning-sidebar{display:none;position:static;max-height:none}
  .learning-mobile-list{display:inline-flex}
  .learning-main-card{padding:12px;border-radius:16px}
  .learning-title-row,.learning-materials-head,.learning-source-head{flex-direction:column;align-items:stretch;gap:10px}
  .learning-title-row h1{font-size:27px}
  .learning-no-video{min-height:150px}
  .learning-exercise-main{grid-template-columns:32px minmax(0,1fr);padding:11px}
  .learning-exercise-actions{grid-column:1/-1;width:100%;justify-content:stretch}
  .learning-exercise-actions button{flex:1 1 120px;white-space:normal}
  .learning-source-actions{width:100%}
  .learning-source-actions button{flex:1 1 110px}
  .learning-code{padding:12px;font-size:11.5px;line-height:1.55;max-width:100%;max-height:58vh;overflow:auto}

  .modal-backdrop{
    padding:6px;
    align-items:end;
  }
  .modal{
    width:100%;
    max-width:100%;
    max-height:calc(100vh - 12px);
    padding:16px;
    border-radius:18px;
  }
  .modal h2{font-size:25px;line-height:1.2}
  .field input,.field textarea,.field select,
  .site-chat-compose textarea,.site-chat-compose input,
  .admin-chat-reply textarea{font-size:16px}
  .checkbox-grid,.admin-grid,.lesson-admin-grid,.home-hero-admin-grid{grid-template-columns:minmax(0,1fr)}
  .check{min-width:0;align-items:flex-start}
  .checkout-month{min-width:0}
  .checkout-month-info{min-width:0}
  .checkout-month-title,.checkout-month small{overflow-wrap:anywhere}
  .payment-bank-card>div{flex-direction:column;gap:3px}
  .vietqr-image{width:min(280px,100%)}
  canvas.qr{width:min(220px,100%);height:auto;aspect-ratio:1/1}

  .admin-title{flex-direction:column;align-items:stretch}
  .admin-title h1{font-size:30px!important}
  .admin-menu{
    position:static;
    display:flex;
    flex-direction:row;
    align-items:center;
    gap:6px;
    overflow-x:auto;
    padding:8px;
    scrollbar-width:none;
  }
  .admin-menu::-webkit-scrollbar{display:none}
  .admin-menu .eyebrow,.admin-menu h3{display:none}
  .admin-menu button{width:auto;flex:0 0 auto;margin:0;white-space:nowrap;padding:8px 10px;font-size:12px}
  .admin-panel{padding:14px}
  .admin-table-wrap{max-width:100%;overflow:auto;-webkit-overflow-scrolling:touch}
  .admin-table th,.admin-table td{padding:9px 7px}
  .admin-user-head{align-items:flex-start;flex-direction:column;gap:10px}
  .admin-user-stats{grid-template-columns:repeat(2,minmax(0,1fr))}
  .lesson-admin-modal{width:100%}
  .lesson-admin-title,.lesson-admin-head,.lesson-heading-row,.lesson-exercise-item,.lesson-exercises-admin-title,.lesson-exercise-admin-head{flex-direction:column;align-items:stretch}
  .lesson-actions{max-width:none;width:100%;justify-content:stretch}
  .lesson-actions button{flex:1 1 120px;white-space:normal}
  .lesson-admin-footer{margin:18px -16px -16px;padding:12px 16px;bottom:-16px;flex-wrap:wrap}
  .lesson-admin-footer button{flex:1 1 120px}
  .course-bulk-import-banner{flex-direction:column;align-items:stretch}
  .teacher-avatar-admin-row{align-items:flex-start}
  .teacher-media-admin-list{grid-template-columns:repeat(2,minmax(0,1fr))}

  .admin-chat-layout{grid-template-columns:minmax(0,1fr);min-height:0}
  .admin-chat-list{max-height:260px}
  .admin-chat-detail{padding:12px}
  .admin-chat-detail-head{flex-direction:column}
  .admin-chat-messages{height:280px}
  .admin-chat-reply{grid-template-columns:minmax(0,1fr)}
  .admin-chat-reply button{width:100%}

  .contact-widget{
    right:8px;
    bottom:8px;
    width:calc(100vw - 16px);
    max-height:calc(100vh - 16px);
    border-radius:16px;
    display:flex;
    flex-direction:column;
  }
  .contact-widget.collapsed{width:52px;min-width:52px;height:52px;display:block}
  .contact-widget-launcher{width:52px;height:52px}
  .site-chat-messages{height:min(260px,36vh);min-height:130px}
  .site-chat-guest-grid{grid-template-columns:minmax(0,1fr)}
  .site-chat-compose{flex:0 0 auto}

  .floating-admin{display:none!important}
  button:hover{transform:none}
}

@media(max-width:480px){
  .topbar{padding-left:6px;padding-right:6px}
  .brand-logo-image{height:36px;max-width:145px}
  .nav-actions button{font-size:12px;padding:7px 9px;min-height:36px}
  #btnLogin{max-width:150px}
  main,body.learning-mode main#app{padding-left:8px;padding-right:8px}
  h1{font-size:clamp(31px,10.5vw,42px)}
  .hero-panel{padding:18px 14px}
  .hero-proof{gap:6px}
  .hero-proof b{font-size:16px}
  .hero-proof span{font-size:10px}
  .combo-offer h2{font-size:25px}
  .combo-price strong{font-size:28px}
  .section h2{font-size:23px}
  .teacher-media-admin-list{grid-template-columns:minmax(0,1fr)}
  .teacher-gallery-image{height:240px}
  .teacher-gallery{min-height:240px}
  .teacher-avatar-photo,.teacher-avatar-fallback{width:68px;height:68px;flex-basis:68px}
  .teacher-identity h2{font-size:20px}
  .site-post-card h3,.promoted-class-card h2{font-size:22px}
  .forum-head-actions button,.forum-detail-actions button,.forum-compose-footer button{flex-basis:100%}
  .learning-exercise-actions button,.learning-source-actions button{flex-basis:100%}
  .modal{padding:14px;border-radius:16px}
  .lesson-admin-footer{margin-left:-14px;margin-right:-14px;margin-bottom:-14px;padding-left:14px;padding-right:14px;bottom:-14px}
  .admin-panel{padding:12px}
  .admin-user-stats{grid-template-columns:minmax(0,1fr)}
  .contact-widget-head{padding:12px}
  .site-chat-messages{height:min(230px,34vh)}
}


/* Light mode contrast hotfixes */
html[data-theme="light"] .combo-badge{
  color:#55627a !important;
  background:#eef2ff !important;
  border-color:#c8d2ff !important;
}
html[data-theme="light"] .combo-kicker{
  color:#5c6981 !important;
}
html[data-theme="light"] .combo-offer h2{
  color:#111827 !important;
}
html[data-theme="light"] .combo-offer p{
  color:#556274 !important;
}
html[data-theme="light"] .combo-old-price{
  color:#6b7280 !important;
  text-decoration-color:#8a92a1 !important;
}
html[data-theme="light"] .combo-price strong{
  color:#0f172a !important;
}
html[data-theme="light"] .combo-save{
  color:#0f8a55 !important;
}
html[data-theme="light"] .owned-check{
  background:#ecfbf3 !important;
  border-color:#9cdec0 !important;
}
html[data-theme="light"] .owned-check .checkout-month-title{
  color:#15603d !important;
}
html[data-theme="light"] .owned-check small{
  color:#3c725b !important;
}
html[data-theme="light"] .owned-badge{
  color:#145a38 !important;
  background:#d8f5e6 !important;
  border-color:#90d6b0 !important;
}
html[data-theme="light"] .promoted-classes-hero,
html[data-theme="light"] .promoted-class-card{
  background:#ffffff !important;
}
html[data-theme="light"] .promoted-classes-hero h1,
html[data-theme="light"] .promoted-class-card h2{
  color:#141923 !important;
}
html[data-theme="light"] .promoted-classes-hero p,
html[data-theme="light"] .promoted-class-description{
  color:#5c6678 !important;
}
html[data-theme="light"] .promoted-class-index{
  color:#6b7487 !important;
}
html[data-theme="light"] .promoted-class-details > div{
  background:#f7f8fb !important;
  border-color:#dde2ea !important;
}
html[data-theme="light"] .promoted-class-details span{
  color:#6b7487 !important;
}
html[data-theme="light"] .promoted-class-details b{
  color:#232935 !important;
}


.google-login-shell{
  position:relative;
  width:min(360px,100%);
  height:46px;
}
.google-login-visual{
  position:absolute;
  inset:0;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  padding:0 16px;
  border-radius:999px;
  border:1px solid rgba(255,255,255,.14);
  background:linear-gradient(180deg,#151a24,#0f141d);
  color:#f5f7fb;
  box-shadow:0 10px 24px rgba(0,0,0,.24);
  pointer-events:none;
}
.google-login-visual-main{
  display:flex;
  align-items:center;
  gap:12px;
  font-weight:700;
}
.google-login-g{
  width:28px;
  height:28px;
  border-radius:50%;
  display:grid;
  place-items:center;
  background:#fff;
  color:#4285f4;
  font-weight:800;
  box-shadow:inset 0 0 0 1px rgba(0,0,0,.08);
}
.google-login-arrow{
  color:#c9d0dd;
  font-size:18px;
  line-height:1;
}
#googleSignInButton{
  position:absolute;
  inset:0;
  width:100% !important;
  height:100%;
  display:block;
  overflow:hidden;
  border-radius:999px;
  opacity:.01;
}
#googleSignInButton > div,
#googleSignInButton iframe{
  width:100% !important;
  height:100% !important;
  display:block;
  margin:0 !important;
}
html[data-theme="light"] .google-login-visual{
  background:#ffffff;
  color:#172033;
  border-color:#d7dfeb;
  box-shadow:0 8px 20px rgba(21,32,51,.08);
}
html[data-theme="light"] .google-login-arrow{
  color:#5e6b82;
}
@media (max-width:640px){
  .google-login-shell{width:100%;}
  .google-login-visual-main{font-size:14px;}
}

/* News workflow: newest post on homepage, older posts in archive */
.site-news-home-first{padding-top:36px}
.site-post-admin-head{align-items:center;gap:18px}
.site-post-admin-head>div{min-width:0;flex:1}
.site-post-composer-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:16px}
.site-post-composer-head h3,.site-post-admin-section h3{margin-top:0}
.site-post-admin-title-line{display:flex;align-items:center;gap:9px;flex-wrap:wrap}
.site-post-status{font-size:10px;font-weight:800;letter-spacing:.08em;padding:4px 7px;border:1px solid var(--line);border-radius:999px;color:var(--muted)}
.site-post-admin-current{border-color:#48536b}
@media(max-width:700px){
  .site-post-admin-head,.site-post-composer-head{align-items:stretch;flex-direction:column}
  .site-post-admin-head>button,.site-post-composer-head>button{width:100%}
}

/* Light mode: forum cards and forum-specific hard-coded dark colors */
html[data-theme="light"] .forum-post-card{
  background:linear-gradient(180deg,#ffffff,#f8f9fb);
  border-color:#d9dee7;
  color:#20242e;
  box-shadow:0 8px 24px rgba(31,38,55,.06);
}
html[data-theme="light"] .forum-post-card:hover{
  background:#ffffff;
  border-color:#c5ccd8;
  box-shadow:0 12px 30px rgba(31,38,55,.10);
}
html[data-theme="light"] .forum-post-card.is-pinned{
  background:linear-gradient(180deg,#fffaf0,#fffdf8);
  border-color:#ead39a;
}
html[data-theme="light"] .forum-post-card h3,
html[data-theme="light"] .forum-author-name,
html[data-theme="light"] .forum-post-stats b,
html[data-theme="light"] .forum-post-detail h1,
html[data-theme="light"] .forum-comment-content,
html[data-theme="light"] .forum-post-content{
  color:#20242e;
}
html[data-theme="light"] .forum-post-card p,
html[data-theme="light"] .forum-school,
html[data-theme="light"] .forum-time,
html[data-theme="light"] .forum-post-stats span{
  color:#626b7c;
}
html[data-theme="light"] .forum-avatar{
  border-color:#d9dee7;
}
html[data-theme="light"] .forum-admin-tag{
  background:#eef0ff;
  color:#4c58b5;
  border-color:#d2d7f6;
}
html[data-theme="light"] .forum-badge.pin{
  background:#fff7df;
  border-color:#ead39a;
  color:#835a00;
}
html[data-theme="light"] .forum-support-banner{
  background:#fff3f4;
  color:#7d2930;
  border-color:#efc9cd;
}
html[data-theme="light"] .forum-code-wrap code{
  color:#24292f;
}
html[data-theme="light"] .forum-download{
  color:#4e5bb8!important;
}
html[data-theme="light"] .forum-no-comments{
  border-color:#ccd3df;
}
html[data-theme="light"] .forum-reaction-btn.active{
  border-color:#93a2e8;
  background:#eef1ff;
  color:#36448f;
}
html[data-theme="light"] .forum-reaction-btn.love.active{
  border-color:#e9aeb8;
  background:#fff0f3;
  color:#a5263a;
}

/* ===== Output-only contests & practice ===== */
.contest-heading{font-size:clamp(34px,5vw,54px);margin:8px 0 14px}
.contest-grid{display:grid;grid-template-columns:minmax(0,1fr);gap:14px;width:100%}
.contest-card{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:28px;min-height:0;width:100%;padding:24px 26px}
.contest-card h2{margin:9px 0 0;font-size:19px;line-height:1.25;letter-spacing:-.012em}
.contest-card-main{min-width:0}.contest-card-side{display:flex;align-items:center;justify-content:flex-end}.contest-card .primary{margin:0;white-space:nowrap}
.contest-card-top,.contest-problem-header,.contest-attempt-bar,.practice-dataset-ready{display:flex;justify-content:space-between;align-items:center;gap:14px;flex-wrap:wrap}
.contest-card .contest-description{max-width:900px;margin-top:8px}.contest-card .contest-meta{margin-top:14px}
.contest-status{display:inline-flex;align-items:center;width:max-content;padding:6px 10px;border-radius:999px;font-size:11px;font-weight:900;letter-spacing:.06em;border:1px solid var(--line);background:var(--card2)}
.contest-status.running{color:var(--good);border-color:rgba(61,220,151,.35);background:rgba(61,220,151,.08)}
.contest-status.upcoming{color:var(--warn);border-color:rgba(255,189,89,.35);background:rgba(255,189,89,.08)}
.contest-status.ended{color:var(--muted)}
.contest-description{color:var(--muted);line-height:1.6;max-height:110px;overflow:hidden}
.contest-description p{margin:.45em 0}
.contest-meta{display:flex;flex-wrap:wrap;gap:8px 16px;color:var(--muted);font-size:13px}
.contest-hero{margin-top:16px;padding:28px}
.contest-hero-title-row{display:flex;align-items:center;gap:14px;flex-wrap:wrap;margin:8px 0 14px}
.contest-hero-title-row .contest-heading{font-size:clamp(25px,3.3vw,38px);line-height:1.08;margin:0;letter-spacing:-.018em}
.contest-hero-title-row .contest-scoreboard-open{margin:0;justify-content:flex-start}
.contest-problem-list{display:grid;gap:10px;margin-top:14px}
.contest-problem-row{display:grid;grid-template-columns:68px minmax(0,1fr);gap:14px;align-items:center;padding:14px;border:1px solid var(--line);border-radius:16px;background:var(--card2)}
.contest-problem-row-clickable{cursor:pointer;transition:border-color .16s ease,background .16s ease,transform .16s ease,box-shadow .16s ease}
.contest-problem-row-clickable:hover{border-color:rgba(255,58,76,.34);background:rgba(255,255,255,.025);transform:translateY(-1px);box-shadow:0 10px 26px rgba(0,0,0,.12)}
.contest-problem-row-clickable:focus-visible{outline:2px solid rgba(255,58,76,.62);outline-offset:2px}
.contest-problem-row-disabled{opacity:.72;cursor:default}
.contest-problem-inline-verdict{margin-top:8px}
.contest-problem-code{display:grid;place-items:center;min-height:48px;border-radius:12px;background:rgba(111,124,255,.10);border:1px solid rgba(111,124,255,.2);font-size:20px;font-weight:900}
.contest-problem-main{display:flex;flex-direction:column;gap:4px;min-width:0}
.contest-problem-action{display:flex;align-items:center;justify-content:flex-end}
.contest-verdict{display:inline-flex;align-items:center;justify-content:center;min-width:64px;padding:7px 10px;border-radius:10px;font-weight:900;font-size:12px}
.contest-verdict.ac{background:rgba(61,220,151,.12);color:var(--good);border:1px solid rgba(61,220,151,.28)}
.contest-verdict.wa,.contest-verdict.expired{background:rgba(255,107,107,.11);color:var(--danger);border:1px solid rgba(255,107,107,.25)}
.contest-verdict.pending{background:rgba(255,189,89,.10);color:var(--warn);border:1px solid rgba(255,189,89,.28)}
.contest-standings{margin-top:18px}
.contest-scoreboard-open{display:flex;justify-content:flex-end;margin-top:18px}
.contest-problem-page{display:grid;gap:16px}
.contest-problem-header{margin-top:8px}
.contest-attempt-bar{padding:18px 20px;border-radius:18px;border:1px solid rgba(255,189,89,.3);background:rgba(255,189,89,.08)}
.contest-attempt-bar>div{display:flex;flex-direction:column;gap:3px}
#contestCountdown{font-size:32px;line-height:1;font-variant-numeric:tabular-nums}
#contestCountdown.danger-time{color:var(--danger)}
.contest-download{text-decoration:none;color:var(--text);padding:10px 14px;border-radius:12px}
.contest-statement{line-height:1.72;overflow-wrap:anywhere}

/* ===== Problem statement · classic Topcoder-like compact layout ===== */
.contest-problem-page .contest-heading{font-size:clamp(30px,4vw,42px);line-height:1.08;margin:7px 0 10px;letter-spacing:-.02em}
.topcoder-statement{
  padding:24px 28px;
  font-size:15px;
  line-height:1.66;
  overflow-wrap:anywhere;
  background:linear-gradient(180deg,rgba(12,16,24,.99),rgba(8,11,17,.99));
}
.topcoder-statement h1,.topcoder-statement h2{
  font-size:15px;
  line-height:1.35;
  font-weight:900;
  letter-spacing:.01em;
  margin:26px 0 11px;
  padding:7px 10px;
  border:1px solid var(--line);
  border-radius:7px;
  background:rgba(255,255,255,.035);
}
.topcoder-statement>h1:first-child,.topcoder-statement>h2:first-child{margin-top:0}
.topcoder-statement h3{font-size:14px;line-height:1.4;font-weight:900;margin:20px 0 7px;padding:0;border:0;background:none}
.topcoder-statement h4{font-size:13px;line-height:1.4;font-weight:900;margin:17px 0 6px}
.topcoder-statement p{margin:7px 0}
.topcoder-statement ul,.topcoder-statement ol{margin:8px 0 10px;padding-left:24px}
.topcoder-statement li{margin:3px 0}
.topcoder-statement strong{font-weight:850}
.topcoder-statement code{
  font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono",monospace;
  font-size:.92em;
  padding:.08em .32em;
  border:1px solid rgba(255,255,255,.07);
  border-radius:4px;
  background:#111722;
  color:#edf2fb;
}
.topcoder-statement pre{
  margin:10px 0 14px;
  padding:0;
  overflow:auto;
  border:1px solid var(--line);
  border-radius:7px;
  background:#05080d;
  box-shadow:none;
}
.topcoder-statement pre code{display:block;padding:12px 14px;border:0;border-radius:0;background:transparent;font-size:13px;line-height:1.55;color:#e8edf5}
.topcoder-statement blockquote{margin:10px 0;padding:8px 12px;border-left:3px solid var(--muted);background:rgba(255,255,255,.025);color:var(--muted)}
.topcoder-statement hr{height:1px;border:0;background:var(--line);margin:18px 0}
.topcoder-statement table{width:100%;border-collapse:collapse;margin:10px 0 15px;font-size:13.5px}
.topcoder-statement th,.topcoder-statement td{padding:8px 10px;border:1px solid var(--line);text-align:left;vertical-align:top}
.topcoder-statement th{font-weight:900;background:rgba(255,255,255,.04)}
.topcoder-statement tbody tr:nth-child(even){background:rgba(255,255,255,.015)}
.topcoder-statement img{display:block;max-width:100%;height:auto;margin:14px auto;border:1px solid var(--line);border-radius:8px;background:#fff}
.statement-style-tip{margin:12px 0 4px;padding:10px 12px;border:1px solid var(--line);border-radius:10px;background:rgba(111,124,255,.06);color:var(--muted);font-size:13px;line-height:1.55}
.statement-style-tip code{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;color:var(--text)}
html[data-theme="light"] .topcoder-statement{background:#fff}
html[data-theme="light"] .topcoder-statement h1,html[data-theme="light"] .topcoder-statement h2{background:#f3f5f8;border-color:#d9dee7;color:#20242d}
html[data-theme="light"] .topcoder-statement code{background:#f2f4f7;border-color:#dde2e9;color:#242a33}
html[data-theme="light"] .topcoder-statement pre{background:#f7f8fa;border-color:#d9dee7}
html[data-theme="light"] .topcoder-statement pre code{background:transparent;color:#242a33}
html[data-theme="light"] .topcoder-statement blockquote{background:#f7f8fa}
html[data-theme="light"] .topcoder-statement th{background:#f3f5f8}
html[data-theme="light"] .topcoder-statement tbody tr:nth-child(even){background:#fafbfc}
html[data-theme="light"] .statement-style-tip{background:#f4f6ff;border-color:#dce1f3}
@media(max-width:680px){
  .topcoder-statement{padding:18px 16px;font-size:14px}
  .topcoder-statement h1,.topcoder-statement h2{font-size:14px;margin-top:22px;padding:7px 9px}
  .topcoder-statement table{display:block;overflow-x:auto;white-space:nowrap}
}
/* ===== End classic Topcoder-like problem statement ===== */
.contest-final-box,.contest-submit-box,.contest-result-card,.practice-run-card{margin-top:0}
.practice-dataset-ready{padding:12px 0 6px}
.practice-dataset-ready a,.dataset-row a{text-decoration:none;color:var(--text);padding:9px 12px;border-radius:12px}
.contest-admin-problems{display:grid;gap:12px;margin-top:18px}
.contest-admin-problem h3{margin:6px 0}
.dataset-list{display:grid;gap:9px;margin-top:14px}
.dataset-row{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:12px;border:1px solid var(--line);border-radius:14px;background:var(--card2)}
.dataset-textarea{min-height:160px!important;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace}
@media(max-width:760px){
  .contest-grid{grid-template-columns:1fr}
  .contest-problem-row{grid-template-columns:54px minmax(0,1fr)}
  .contest-problem-action,.contest-problem-row>button{grid-column:1/-1;width:100%}
  .contest-problem-action button,.contest-problem-row>button{width:100%}
  .dataset-row{align-items:flex-start;flex-direction:column}
  .dataset-row .user-actions{width:100%;flex-wrap:wrap}
}
html[data-theme="light"] .contest-problem-row,
html[data-theme="light"] .dataset-row,
html[data-theme="light"] .contest-status{background:#f6f8fc}
html[data-theme="light"] .contest-problem-code{background:#eef1ff;color:#334155}
html[data-theme="light"] .contest-attempt-bar{background:#fff8e8;color:#3b2b08}
html[data-theme="light"] .contest-download,
html[data-theme="light"] .practice-dataset-ready a,
html[data-theme="light"] .dataset-row a{color:var(--text)}
/* ===== End contests & practice ===== */
.contest-generator{margin:14px 0;padding:14px;border:1px solid var(--line);border-radius:14px;background:var(--card2)}
.contest-generator summary{cursor:pointer;font-weight:800}
.contest-generator[open] summary{margin-bottom:10px}
html[data-theme="light"] .contest-generator{background:#f6f8fc}
.generator-actions{margin:8px 0 4px;flex-wrap:wrap}
.generator-builder-grid{align-items:start}
.generator-code{min-height:190px!important;line-height:1.55;tab-size:2}
.generator-message{margin:8px 0 0;color:var(--muted)}
.generator-message.error-text{color:var(--danger);font-weight:700}
.generator-guide{margin-top:12px;border-top:1px dashed var(--line);padding-top:10px}
.generator-guide>summary{font-size:14px}
.generator-guide-body{padding-top:8px;color:var(--muted);line-height:1.55}
.generator-guide-body p{margin:8px 0}
.generator-guide-body pre{white-space:pre-wrap;overflow-wrap:anywhere;background:#070a11;border:1px solid var(--line);border-radius:10px;padding:10px;color:var(--text);font-size:12px}
html[data-theme="light"] .generator-guide-body pre{background:#fff}
@media(max-width:760px){.generator-builder-grid{grid-template-columns:1fr}}
/* ===== Contest V2 admin ===== */
.admin-subtabs{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:18px;padding-bottom:14px;border-bottom:1px solid var(--line)}
.generator-plan-row{margin:10px 0;padding:14px}
.generator-plan-row .field{margin-bottom:10px}
@media(max-width:760px){.admin-subtabs button{flex:1 1 140px}.generator-plan-row .admin-grid{grid-template-columns:1fr}}
/* ===== End Contest V2 admin ===== */

/* ===== Course video global Comming Soon / Admin disable toggle ===== */
.coming-soon-shimmer{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  position:relative;
  overflow:hidden;
  font-weight:900;
  letter-spacing:.08em;
  text-transform:uppercase;
  background:linear-gradient(100deg,#fff 0%,#a7b5ff 20%,#fff 40%,#ffe39a 52%,#fff 66%,#9ff6e2 84%,#fff 100%);
  background-size:240% 100%;
  -webkit-background-clip:text;
  background-clip:text;
  color:transparent;
  filter:drop-shadow(0 0 8px rgba(179,198,255,.35));
  animation:courseComingSoonShine 2.2s linear infinite;
}
@keyframes courseComingSoonShine{
  0%{background-position:220% 50%}
  100%{background-position:-20% 50%}
}
.coming-soon-large{
  font-size:13px;
  padding:5px 10px;
  border:1px solid rgba(174,191,255,.24);
  border-radius:999px;
  background-color:rgba(102,123,227,.08);
}
.hero-coming-soon{
  font-size:10px;
  margin-left:5px;
  padding:2px 6px;
  border-radius:999px;
  border:1px solid rgba(174,191,255,.2);
}
.coming-soon-modal{text-align:center;padding:12px 2px}
.coming-soon-modal h2{margin:16px 0 8px}
.coming-soon-modal .primary{margin-top:10px}
.intro-video-coming-soon{gap:7px}
.intro-video-coming-soon small{max-width:300px;color:var(--muted);line-height:1.5}
.course-video-title-row{display:flex;align-items:center;gap:12px;flex-wrap:wrap}
.course-video-section-head{align-items:flex-start}

/* Trang chủ: khi khóa video, toàn bộ giá/combo/nút mua biến mất. */
.combo-offer-coming-soon{
  min-height:0;
  align-self:start;
  display:flex;
  flex-direction:column;
  justify-content:flex-start;
  align-items:center;
  text-align:center;
  padding:32px 28px 34px;
  border-color:rgba(151,170,255,.22)!important;
  background:
    radial-gradient(circle at 50% 0%,rgba(105,127,255,.18),transparent 42%),
    linear-gradient(160deg,rgba(91,111,224,.09),rgba(255,255,255,.018))!important;
}
.combo-offer-coming-soon::before{opacity:.35}
.home-coming-soon-wrap{
  position:relative;
  z-index:1;
  width:min(100%,360px);
  padding:0;
  display:flex;
  flex-direction:column;
  align-items:center;
  gap:12px;
}
.home-coming-soon-wrap h2{margin:6px 0 0!important;font-size:28px!important;line-height:1.18}
.home-coming-soon-wrap p{margin:0!important;max-width:330px;line-height:1.7!important}
.home-coming-soon-text{
  font-size:clamp(34px,4vw,48px);
  line-height:1.05;
  letter-spacing:.06em;
  filter:drop-shadow(0 0 16px rgba(170,190,255,.42));
}
.coming-soon-star{
  width:58px;
  height:58px;
  border-radius:20px;
  display:grid;
  place-items:center;
  font-size:30px;
  color:#dce4ff;
  border:1px solid rgba(162,181,255,.26);
  background:rgba(116,139,255,.09);
  box-shadow:0 0 34px rgba(116,139,255,.12);
  animation:courseComingSoonPulse 1.8s ease-in-out infinite;
}

.course-video-coming-soon-banner{
  display:grid;
  grid-template-columns:auto 1fr auto;
  align-items:center;
  gap:14px;
  margin:0 0 18px;
  padding:18px 20px;
  border:1px solid rgba(153,172,255,.24);
  border-radius:18px;
  background:linear-gradient(135deg,rgba(89,111,231,.10),rgba(255,255,255,.025));
  box-shadow:inset 0 1px 0 rgba(255,255,255,.04),0 16px 40px rgba(0,0,0,.12);
}
.course-video-coming-soon-banner p{margin:5px 0 0;color:var(--muted);line-height:1.55}
.coming-soon-orb{
  width:42px;
  height:42px;
  border-radius:14px;
  display:grid;
  place-items:center;
  font-size:22px;
  background:rgba(113,137,255,.12);
  border:1px solid rgba(153,172,255,.22);
  animation:courseComingSoonPulse 1.8s ease-in-out infinite;
}
@keyframes courseComingSoonPulse{
  0%,100%{transform:scale(1);box-shadow:0 0 0 rgba(120,145,255,0)}
  50%{transform:scale(1.08);box-shadow:0 0 24px rgba(120,145,255,.22)}
}
.course-month-coming-soon{position:relative;border-color:rgba(151,170,255,.16)}
.course-month-coming-soon::after{
  content:"";
  position:absolute;
  inset:0;
  pointer-events:none;
  border-radius:inherit;
  background:linear-gradient(115deg,transparent 30%,rgba(255,255,255,.045) 48%,transparent 66%);
  background-size:220% 100%;
  animation:courseCardSweep 3.4s linear infinite;
}
@keyframes courseCardSweep{
  0%{background-position:220% 0}
  100%{background-position:-20% 0}
}

/* Trang Video khi truy cập bằng URL cũ: chỉ hiện Comming Soon, không hiện giá. */
.course-video-paused-page{display:grid;place-items:center;min-height:62vh}
.course-video-paused-card{
  width:min(760px,100%);
  padding:52px 34px;
  text-align:center;
  display:flex;
  flex-direction:column;
  align-items:center;
  gap:14px;
  border-color:rgba(151,170,255,.22);
  background:
    radial-gradient(circle at 50% 0%,rgba(105,127,255,.16),transparent 42%),
    var(--card);
}
.course-video-paused-orb{width:58px;height:58px;border-radius:20px;font-size:30px}
.course-video-paused-title{font-size:clamp(36px,7vw,66px);line-height:1;letter-spacing:.07em}
.course-video-paused-card h1{margin:4px 0 0;font-size:clamp(28px,4vw,40px)}
.course-video-paused-card p{max-width:620px;margin:0;color:var(--muted);line-height:1.75}
.course-video-paused-card .primary{margin-top:8px}

/* Admin */
.admin-course-video-toggle{margin:14px 0 18px;border-width:1px}
.admin-course-video-toggle.is-disabled{border-color:rgba(255,108,108,.28);background:linear-gradient(135deg,rgba(255,78,78,.06),rgba(255,255,255,.02))}
.admin-course-video-toggle.is-enabled{border-color:rgba(91,222,164,.28);background:linear-gradient(135deg,rgba(52,194,132,.06),rgba(255,255,255,.02))}
.course-video-admin-actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap;justify-content:flex-end}
.course-video-admin-status{font-size:11px;font-weight:900;letter-spacing:.08em;padding:7px 10px;border-radius:999px;border:1px solid}
.course-video-admin-status.enabled{color:#82e8b8;border-color:rgba(82,216,151,.3);background:rgba(82,216,151,.08)}
.course-video-admin-status.disabled{color:#ffaaa5;border-color:rgba(255,102,94,.3);background:rgba(255,102,94,.08)}
.course-learning-coming-soon{text-align:center;padding:30px}

html[data-theme="light"] .coming-soon-shimmer{
  background:linear-gradient(100deg,#33418d 0%,#7864e8 25%,#1c2b73 45%,#d17a00 58%,#33418d 75%,#7864e8 100%);
  background-size:240% 100%;
  -webkit-background-clip:text;
  background-clip:text;
  color:transparent;
  filter:drop-shadow(0 0 6px rgba(75,91,190,.18));
}
html[data-theme="light"] .combo-offer-coming-soon,
html[data-theme="light"] .course-video-paused-card{
  background:
    radial-gradient(circle at 50% 0%,rgba(80,101,217,.10),transparent 42%),
    linear-gradient(180deg,#fbfbfd,#f4f5f8)!important;
  border-color:rgba(80,101,217,.16)!important;
}
html[data-theme="light"] .coming-soon-star,
html[data-theme="light"] .coming-soon-orb{color:#4653a6;background:#eef1ff;border-color:#d8def9}

@media(max-width:760px){
  .combo-offer-coming-soon{min-height:0;padding:26px 20px 28px}
  .home-coming-soon-wrap{padding:22px 10px}
  .home-coming-soon-wrap h2{font-size:24px!important}
  .course-video-coming-soon-banner{grid-template-columns:auto 1fr}
  .course-video-coming-soon-banner>.coming-soon-large{grid-column:1/-1;justify-self:start}
  .course-video-admin-actions{justify-content:flex-start}
  .course-video-title-row{gap:8px}
  .course-video-paused-card{padding:38px 20px}
}
/* ===== End course video Comming Soon ===== */


/* Dataset-select contest flow */
.contest-dataset-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:14px;align-items:start}
.contest-dataset-card,.practice-dataset-card{display:flex;flex-direction:column;gap:12px;min-height:180px;transition:border-color .18s ease,box-shadow .18s ease}
.contest-dataset-card.has-attempt{border-color:rgba(255,189,89,.34)}
.contest-dataset-card.verdict-ac{border-color:rgba(61,220,151,.42)}
.contest-dataset-card.verdict-wa,.contest-dataset-card.verdict-expired{border-color:rgba(255,107,107,.42)}
.contest-dataset-card.verdict-pending{border-color:rgba(255,189,89,.48)}
.contest-dataset-card.active,.practice-dataset-card.active{box-shadow:0 0 0 2px rgba(255,189,89,.16)}
.contest-dataset-card.expanded,.practice-dataset-card.expanded{min-height:0}
.contest-dataset-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}
.contest-dataset-head h3{margin:4px 0 0}
.contest-dataset-action{margin-top:auto;display:flex;align-items:center;justify-content:flex-end;gap:8px;flex-wrap:wrap}
.contest-dataset-download-action{display:flex;align-items:center;justify-content:flex-end;gap:10px;flex-wrap:wrap}
.dataset-card-expanded{margin-top:4px;padding-top:14px;border-top:1px solid var(--line);display:grid;gap:14px}
.dataset-card-toolbar{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;flex-wrap:wrap}
.dataset-card-note{color:var(--muted);font-size:14px;line-height:1.65;max-width:760px}
.dataset-card-primary-actions{margin-top:0;justify-content:flex-start}
.dataset-card-submit{display:grid;gap:12px}
.dataset-card-submit textarea{min-height:118px;max-height:220px}
.contest-submit-head{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap;margin-bottom:6px}
.contest-submit-head h3{margin:0}
.contest-inline-timer{display:flex;align-items:baseline;gap:9px;margin-left:auto;padding:7px 11px;border-radius:12px;border:1px solid rgba(255,189,89,.26);background:rgba(255,189,89,.07)}
.contest-inline-timer strong{font-size:22px;line-height:1;font-variant-numeric:tabular-nums;letter-spacing:.02em}
html[data-theme="light"] .contest-inline-timer{background:#fff8e8;color:#3b2b08}
@media(max-width:680px){.contest-inline-timer{width:100%;justify-content:space-between;margin-left:0}}
.contest-dataset-status{display:inline-flex;align-items:center;padding:6px 9px;border-radius:999px;border:1px solid var(--line);font-size:11px;font-weight:800;letter-spacing:.06em;white-space:nowrap}
.contest-dataset-status.active{border-color:rgba(255,189,89,.38);background:rgba(255,189,89,.10)}
html[data-theme="light"] .contest-dataset-status.active{background:#fff4d7;color:#6d4a00}
@media(max-width:680px){.contest-dataset-grid{grid-template-columns:1fr}.contest-dataset-action button,.contest-dataset-action a{width:100%}.dataset-card-toolbar{flex-direction:column}.dataset-card-note{max-width:none}}

/* ===== Practice persistent dataset results ===== */
.practice-dataset-card{min-height:172px}
.practice-dataset-card.solved{border-color:rgba(61,220,151,.40)}
.practice-dataset-card.wrong{border-color:rgba(255,107,107,.34)}
.practice-dataset-card-head,.practice-run-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;flex-wrap:wrap}
.practice-dataset-card-head h3,.practice-run-head h3{margin:4px 0 0}
.practice-dataset-mark{display:inline-flex;align-items:center;gap:6px;padding:7px 10px;border-radius:999px;font-size:12px;font-weight:900;white-space:nowrap}
.practice-dataset-mark.ac{color:var(--good);background:rgba(61,220,151,.12);border:1px solid rgba(61,220,151,.30)}
.practice-dataset-mark.wa{color:var(--danger);background:rgba(255,107,107,.11);border:1px solid rgba(255,107,107,.28)}
.practice-result-card{display:flex;align-items:center;gap:18px;border-width:2px;padding:22px;margin-top:0}
.practice-result-card.ac{border-color:rgba(61,220,151,.48);background:linear-gradient(135deg,rgba(61,220,151,.10),rgba(61,220,151,.025))}
.practice-result-card.wa{border-color:rgba(255,107,107,.44);background:linear-gradient(135deg,rgba(255,107,107,.09),rgba(255,107,107,.02))}
.practice-result-card h2{margin:3px 0 6px;font-size:30px}
.practice-result-card p{margin:0;color:var(--muted)}
.practice-result-card.ac h2,.practice-result-card.ac .practice-result-icon{color:var(--good)}
.practice-result-card.wa h2,.practice-result-card.wa .practice-result-icon{color:var(--danger)}
.practice-result-icon{width:58px;height:58px;flex:0 0 58px;display:grid;place-items:center;border-radius:50%;font-size:34px;font-weight:1000;background:rgba(255,255,255,.035);border:1px solid currentColor}
.practice-run-card{margin-top:0}
@media(max-width:680px){.practice-result-card{align-items:flex-start}.practice-result-icon{width:48px;height:48px;flex-basis:48px;font-size:28px}.practice-result-card h2{font-size:25px}}
/* ===== End practice persistent dataset results ===== */

/* ===== Practice problem · compact Topcoder-like layout ===== */
.practice-problem-page{max-width:1180px;margin-inline:auto}
.practice-back{margin-bottom:14px}
.practice-problem-titlebar{display:flex;align-items:flex-end;justify-content:space-between;gap:22px;flex-wrap:wrap;padding:18px 22px;margin-bottom:14px;border:1px solid var(--line);border-radius:16px;background:linear-gradient(180deg,rgba(255,255,255,.025),rgba(255,255,255,.008))}
.practice-problem-kicker{font-size:11px;line-height:1.2;font-weight:900;letter-spacing:.14em;color:var(--muted)}
.practice-problem-titlebar h1{font-size:clamp(30px,4vw,42px);line-height:1.12;margin:5px 0 0;letter-spacing:-.025em}
.practice-problem-meta{display:flex;gap:7px;align-items:center;flex-wrap:wrap}
.practice-problem-meta span{display:inline-flex;align-items:center;padding:6px 9px;border:1px solid var(--line);border-radius:8px;font-size:11px;font-weight:800;color:var(--muted);background:rgba(255,255,255,.02)}
.practice-statement{padding:26px 30px;line-height:1.7}
.practice-statement>h1:first-child,.practice-statement h1{font-size:26px;line-height:1.25;margin:0 0 20px;padding:0 0 11px;border-bottom:1px solid var(--line);letter-spacing:-.015em}
.practice-statement h2{font-size:16px;line-height:1.3;margin:28px 0 12px;padding:8px 10px;border-left:3px solid rgba(255,189,89,.8);border-radius:0 8px 8px 0;background:rgba(255,189,89,.06);letter-spacing:.02em}
.practice-statement h3{font-size:16px;line-height:1.35;margin:22px 0 9px}
.practice-statement h4{font-size:14px;line-height:1.4;margin:18px 0 8px}
.practice-statement p{margin:10px 0}
.practice-statement pre{margin:14px 0}
.practice-dataset-section-head{display:flex;align-items:flex-end;justify-content:space-between;gap:18px;flex-wrap:wrap;margin:24px 2px 10px}
.practice-dataset-section-head h2{font-size:22px;margin:0 0 3px}
.practice-dataset-section-head p{margin:0;color:var(--muted);font-size:13px}
.contest-dataset-grid.single{grid-template-columns:minmax(0,1fr)}
.contest-dataset-grid.single .practice-dataset-card{min-height:0}
.practice-result-card{min-height:86px;justify-content:center;gap:13px;padding:18px 22px}
.practice-result-card strong{font-size:30px;line-height:1;font-weight:1000;letter-spacing:-.02em}
.practice-result-card .practice-result-icon{width:44px;height:44px;flex-basis:44px;font-size:25px}
html[data-theme="light"] .practice-problem-titlebar{background:#fff}
html[data-theme="light"] .practice-problem-meta span{background:#f7f8fa}
html[data-theme="light"] .practice-statement h2{background:#fff8e9}
@media(max-width:680px){.practice-problem-titlebar{padding:16px}.practice-problem-titlebar h1{font-size:30px}.practice-statement{padding:20px 17px}.practice-statement h1{font-size:23px}.practice-result-card{justify-content:flex-start}.practice-result-card strong{font-size:26px}}
/* ===== End practice problem compact layout ===== */

/* ===== Practice compact verdict badge ===== */
.practice-submit-title{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-bottom:2px}
.practice-submit-title h3{margin:0}
.practice-result-badge{display:inline-flex;align-items:center;gap:6px;padding:5px 10px;border-radius:999px;font-size:12px;line-height:1;font-weight:900;white-space:nowrap;border:1px solid currentColor}
.practice-result-badge.ac{color:var(--good);background:rgba(61,220,151,.10)}
.practice-result-badge.wa{color:var(--danger);background:rgba(255,107,107,.09)}
/* ===== End practice compact verdict badge ===== */

/* Practice light-mode download button + compact verdict icon fix */
html[data-theme="light"] .contest-download.primary,
html[data-theme="light"] a.contest-download.primary{color:#fff}
.practice-result-badge>span[aria-hidden="true"]{font-size:13px;line-height:1;font-weight:1000}

/* ===== Code Jam-style live scoreboard ===== */
.scoreboard-page{max-width:1540px;margin-inline:auto}
.scoreboard-topbar{display:flex;justify-content:space-between;align-items:flex-end;gap:20px;flex-wrap:wrap;margin-bottom:14px}
.scoreboard-back{margin-bottom:12px}
.scoreboard-title-row{display:flex;align-items:center;gap:14px;flex-wrap:wrap}
.scoreboard-title-row h1{margin:4px 0 0;font-size:clamp(30px,4vw,48px);line-height:1.05;letter-spacing:-.03em}
.scoreboard-end-countdown{display:flex;align-items:center;gap:8px;padding:7px 11px;border-radius:12px;border:1px solid rgba(111,124,255,.28);background:rgba(111,124,255,.08);font-variant-numeric:tabular-nums}
.scoreboard-end-countdown span{font-size:10px;font-weight:900;letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}
.scoreboard-end-countdown strong{font-size:15px;line-height:1;color:var(--text);white-space:nowrap}
.scoreboard-end-countdown.ended{border-color:var(--line);background:var(--card2)}
.scoreboard-end-countdown.ended strong{font-size:11px;color:var(--muted);letter-spacing:.05em}
.scoreboard-live-badge{display:inline-flex;align-items:center;padding:7px 11px;border-radius:999px;border:1px solid var(--line);font-size:11px;font-weight:1000;letter-spacing:.08em;background:var(--card2)}
.scoreboard-live-badge.live{color:#52f29c;border-color:rgba(82,242,156,.58);background:rgba(24,218,112,.16);box-shadow:0 0 16px rgba(24,218,112,.12)}
.scoreboard-live-badge.frozen{color:#ffe45c;border-color:rgba(255,228,92,.62);background:rgba(255,216,35,.16);box-shadow:0 0 16px rgba(255,216,35,.12)}
.scoreboard-live-badge.ended{color:var(--muted)}
.scoreboard-legend{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.scoreboard-legend span{display:inline-flex;align-items:center;padding:6px 9px;border-radius:8px;border:1px solid var(--line);font-size:11px;font-weight:900;background:var(--card2)}
.scoreboard-legend .correct{color:#52f29c;border-color:rgba(82,242,156,.42);background:rgba(24,218,112,.10)}
.scoreboard-legend .partial,.scoreboard-legend .pending{color:#ffe45c;border-color:rgba(255,228,92,.44);background:rgba(255,216,35,.10)}
.scoreboard-pending-mark{color:#e0b24b;text-shadow:0 1px 2px rgba(0,0,0,.32)}
.scoreboard-legend .pending{gap:4px}
.scoreboard-legend .wrong{color:#ff6570;border-color:rgba(255,79,91,.44);background:rgba(255,59,71,.10)}
.scoreboard-freeze-note{margin:10px 0 14px;padding:10px 12px;border:1px solid rgba(247,216,102,.28);border-radius:12px;background:rgba(247,216,102,.07);font-size:12px;color:var(--muted)}
.scoreboard-layout{display:grid;grid-template-columns:minmax(0,1fr) 280px;gap:16px;align-items:start}
.scoreboard-board,.scoreboard-panel{border:1px solid var(--line);border-radius:18px;background:var(--card);overflow:hidden}
.scoreboard-scroll{overflow:auto;max-width:100%;scrollbar-gutter:stable}
.scoreboard-table{width:100%;border-collapse:separate;border-spacing:0;min-width:max-content;font-variant-numeric:tabular-nums}
.scoreboard-table th,.scoreboard-table td{padding:0;border-right:1px solid rgba(255,255,255,.055);border-bottom:1px solid rgba(255,255,255,.055);height:58px;background:#0d1016}
.scoreboard-table th{position:sticky;top:0;z-index:5;height:50px;background:#11151d;color:var(--muted);font-size:11px;font-weight:900;letter-spacing:.04em;text-align:center}
.scoreboard-table tbody tr{cursor:pointer}
.scoreboard-table tbody tr:hover td{background:#121722}
.scoreboard-table tbody tr.selected td{box-shadow:inset 0 1px rgba(111,124,255,.42),inset 0 -1px rgba(111,124,255,.42)}
.scoreboard-table tbody tr.me td{background:#111827}
.scoreboard-table tbody tr.revealing td{filter:brightness(1.12)}
.scoreboard-table tbody tr.rank-move-focus td{box-shadow:inset 0 0 0 1px rgba(255,228,92,.26),0 0 14px rgba(255,216,35,.10)}
.scoreboard-rank-col{width:54px;min-width:54px;text-align:center;position:sticky!important;left:0;z-index:3!important}
.scoreboard-user-col{width:240px;min-width:240px;position:sticky!important;left:54px;z-index:3!important;text-align:left!important;padding:0 12px!important}
.scoreboard-score-col{width:74px;min-width:74px;text-align:center}
.scoreboard-penalty-col{width:94px;min-width:94px;text-align:center;color:var(--muted);font-size:12px}
.scoreboard-table thead .scoreboard-rank-col,.scoreboard-table thead .scoreboard-user-col{z-index:8!important;background:#151a23}
.scoreboard-table tbody .scoreboard-rank-col,.scoreboard-table tbody .scoreboard-user-col{background:#0f131b}
.scoreboard-table tbody tr:hover .scoreboard-rank-col,.scoreboard-table tbody tr:hover .scoreboard-user-col{background:#151b27}
.scoreboard-user-cell{display:flex;align-items:center;gap:9px;min-width:0}
.scoreboard-user-cell>div{display:flex;flex-direction:column;min-width:0;gap:2px}
.scoreboard-user-cell b{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:13px;color:var(--text)}
.scoreboard-user-cell small{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:10px;color:var(--muted)}
.scoreboard-avatar{width:30px;height:30px;flex:0 0 30px;border-radius:50%;object-fit:cover;border:1px solid var(--line);background:var(--card2)}
.scoreboard-avatar-fallback{display:grid;place-items:center;font-size:10px;font-weight:1000;color:var(--muted)}
.scoreboard-avatar.large{width:92px;height:92px;flex-basis:92px;font-size:24px}
.scoreboard-problem-head{width:60px;min-width:60px}
.scoreboard-problem-head span{display:block;color:var(--text);font-size:13px}
.scoreboard-problem-head small{display:block;margin-top:2px;font-size:9px;color:var(--muted);font-weight:800}
.scoreboard-problem-cell{width:60px;min-width:60px;padding:4px!important;background:#090c11!important}
.scoreboard-cell{height:50px;width:52px;display:grid;place-items:center;border-radius:4px;font-size:18px;font-weight:1000;line-height:1;border:1px solid transparent;transition:transform .14s ease,filter .14s ease,background-color .28s ease,border-color .28s ease,color .28s ease,box-shadow .28s ease}
.scoreboard-cell:hover{transform:scale(1.045);filter:brightness(1.08)}
.scoreboard-cell.correct{background:#18d970;color:#fff;border-color:#55f59d;box-shadow:inset 0 0 0 1px rgba(255,255,255,.10),0 0 12px rgba(24,217,112,.24)}
.scoreboard-cell.wrong{background:#f23845;color:#fff;border-color:#ff6b75;box-shadow:inset 0 0 0 1px rgba(255,255,255,.10),0 0 12px rgba(242,56,69,.24)}
.scoreboard-cell.partial{background:#f0c900;color:#16120a;border-color:#ffe45c;font-size:11px;box-shadow:inset 0 0 0 1px rgba(255,255,255,.14),0 0 12px rgba(240,201,0,.22)}
.scoreboard-cell.pending{background:#ffd51f;color:#fff;border-color:#ffed78;box-shadow:inset 0 0 0 1px rgba(255,255,255,.16),0 0 12px rgba(255,213,31,.24);text-shadow:0 1px 2px rgba(0,0,0,.36)}
.scoreboard-cell.revealable{appearance:none;padding:0;font:inherit;cursor:pointer;box-shadow:inset 0 0 0 1px rgba(255,255,255,.14)}
.scoreboard-cell.revealable:hover{transform:scale(1.09);filter:brightness(1.15);box-shadow:0 0 0 3px rgba(228,216,74,.16)}
.scoreboard-cell.revealable:focus-visible{outline:3px solid rgba(228,216,74,.35);outline-offset:2px}
.scoreboard-cell.revealable:disabled{cursor:wait;opacity:.88;transform:none}
.scoreboard-cell.revealable.busy{animation:scoreboard-pending-breathe .7s ease-in-out infinite alternate}
@keyframes scoreboard-pending-breathe{from{filter:brightness(1)}to{filter:brightness(1.2)}}
.scoreboard-cell.idle{background:#11151d;color:#536070;border-color:#1b2230}
.scoreboard-cell.compact{height:40px;width:44px}
.scoreboard-table.compact th,.scoreboard-table.compact td{height:48px}
.scoreboard-table.compact .scoreboard-user-col{width:210px;min-width:210px}
.scoreboard-table.compact .scoreboard-problem-head,.scoreboard-table.compact .scoreboard-problem-cell{width:52px;min-width:52px}
.scoreboard-empty{display:inline-flex;align-items:center;width:max-content;max-width:100%;margin:0;padding:16px 20px;text-align:left;color:var(--muted);border:1px solid var(--line);border-radius:14px;background:var(--card)}
.scoreboard-board:has(>.scoreboard-empty){border:0;background:transparent;overflow:visible;width:max-content;max-width:100%}
.scoreboard-panel{position:sticky;top:84px;padding:18px}
.scoreboard-panel-profile{text-align:center;padding:8px 6px 16px;border-bottom:1px solid var(--line)}
.scoreboard-panel-profile .scoreboard-avatar{margin-inline:auto}
.scoreboard-panel-profile h2{font-size:20px;margin:10px 0 4px;overflow-wrap:anywhere}
.scoreboard-panel-profile p{margin:0;color:var(--muted);font-size:12px}
.scoreboard-panel-stats{display:grid;grid-template-columns:1fr 1fr;gap:8px;padding:14px 0}
.scoreboard-panel-stats>div{padding:10px;border:1px solid var(--line);border-radius:10px;background:var(--card2);display:flex;flex-direction:column;gap:4px}
.scoreboard-panel-stats span{font-size:10px;text-transform:uppercase;letter-spacing:.08em;color:var(--muted);font-weight:800}
.scoreboard-panel-stats b{font-size:16px}
.scoreboard-panel-problems{display:grid;gap:7px;max-height:390px;overflow:auto}
.scoreboard-panel-problems>div{display:grid;grid-template-columns:24px 36px 1fr;align-items:center;gap:7px;font-size:12px}
.scoreboard-panel-problems>div>span:last-child{text-align:right;color:var(--muted)}
.scoreboard-mini-state{width:22px;height:22px;display:grid;place-items:center;border-radius:5px;font-weight:1000;background:var(--card2)}
.scoreboard-mini-state.correct{color:#52f29c;background:rgba(24,218,112,.12);border:1px solid rgba(82,242,156,.28)}
.scoreboard-mini-state.wrong{color:#ff6570;background:rgba(255,59,71,.12);border:1px solid rgba(255,101,112,.28)}
.scoreboard-mini-state.pending{color:#fff;background:rgba(255,216,35,.18);border:1px solid rgba(255,228,92,.38);text-shadow:0 1px 2px rgba(0,0,0,.42)}
.scoreboard-mini-state.partial{color:#ffe45c;background:rgba(255,216,35,.12);border:1px solid rgba(255,228,92,.28)}
.scoreboard-reveal-controls{display:flex;align-items:center;gap:8px;flex-wrap:wrap;padding:10px 12px;margin-bottom:12px;border:1px solid rgba(111,124,255,.24);border-radius:14px;background:rgba(111,124,255,.06)}
.scoreboard-reveal-controls.manual{justify-content:space-between;gap:14px}
.scoreboard-manual-reveal-copy{display:flex;flex-direction:column;gap:3px;min-width:0;flex:1}
.scoreboard-manual-reveal-copy b{font-size:13px}
.scoreboard-manual-reveal-copy span{font-size:11px;color:var(--muted);line-height:1.45}
.scoreboard-speed{display:flex;gap:5px}
.scoreboard-speed button{padding:7px 9px}
html[data-theme="light"] .scoreboard-board,html[data-theme="light"] .scoreboard-panel{background:#fff}
html[data-theme="light"] .scoreboard-table th{background:#eef2f7;border-color:#d9dee7;color:#5a6473}
html[data-theme="light"] .scoreboard-table td{background:#fff;border-color:#e3e7ee}
html[data-theme="light"] .scoreboard-table tbody .scoreboard-rank-col,html[data-theme="light"] .scoreboard-table tbody .scoreboard-user-col{background:#f8fafc}
html[data-theme="light"] .scoreboard-table tbody tr:hover td,html[data-theme="light"] .scoreboard-table tbody tr:hover .scoreboard-rank-col,html[data-theme="light"] .scoreboard-table tbody tr:hover .scoreboard-user-col{background:#f0f4f8}
html[data-theme="light"] .scoreboard-table tbody tr.me td{background:#f2f5ff}
html[data-theme="light"] .scoreboard-problem-cell{background:#f7f8fa!important}
html[data-theme="light"] .scoreboard-cell.idle{background:#e8edf3;color:#8994a3;border-color:#d8dee7}
html[data-theme="light"] .scoreboard-live-badge,html[data-theme="light"] .scoreboard-legend span,html[data-theme="light"] .scoreboard-panel-stats>div{background:#f7f8fa}
html[data-theme="light"] .scoreboard-freeze-note{background:#fffbe7;color:#6b5d14}
@media(max-width:1100px){.scoreboard-layout{grid-template-columns:1fr}.scoreboard-panel{position:static;display:grid;grid-template-columns:180px 1fr;gap:14px}.scoreboard-panel-profile{border-bottom:0;border-right:1px solid var(--line);padding-right:16px}.scoreboard-panel-problems{grid-column:1/-1;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));max-height:none}}
@media(max-width:680px){.scoreboard-page{padding-inline:8px}.scoreboard-layout{gap:10px}.scoreboard-end-countdown{width:100%;justify-content:space-between}.scoreboard-user-col{width:180px;min-width:180px}.scoreboard-table.compact .scoreboard-user-col{width:170px;min-width:170px}.scoreboard-panel{display:block}.scoreboard-panel-profile{border-right:0;border-bottom:1px solid var(--line);padding-right:6px}.scoreboard-topbar{align-items:flex-start}.scoreboard-legend{width:100%}}
/* ===== End Code Jam-style live scoreboard ===== */

/* ===== Dataset-level contest progress + scoreboard columns ===== */
.contest-problem-dataset-results{display:flex;align-items:center;gap:6px;margin-top:7px;min-height:24px}
.contest-problem-dataset-state{width:24px;height:24px;display:grid;place-items:center;border-radius:7px;border:1px solid var(--line);font-size:14px;font-weight:1000;line-height:1;background:var(--card);color:transparent}
.contest-problem-dataset-state.ac{background:rgba(61,220,151,.14);border-color:rgba(61,220,151,.42);color:var(--good)}
.contest-problem-dataset-state.wa{background:rgba(255,107,107,.13);border-color:rgba(255,107,107,.40);color:var(--danger)}
.contest-problem-dataset-state.expired{background:rgba(255,107,107,.10);border-color:rgba(255,107,107,.36);color:var(--danger);font-family:Arial,sans-serif;font-size:15px}
.contest-problem-dataset-state.pending{background:rgba(247,216,102,.13);border-color:rgba(247,216,102,.42);color:#f7d866}
.contest-problem-dataset-state.idle{background:transparent;border-color:rgba(127,138,158,.18)}
.scoreboard-table.dataset-columns thead tr:first-child th{height:34px;top:0}
.scoreboard-table.dataset-columns thead tr:nth-child(2) th{height:34px;top:34px}
.scoreboard-table.dataset-columns thead th[rowspan="2"]{height:68px;vertical-align:middle}
.scoreboard-problem-group-head{min-width:58px;text-align:center;background:#151a23!important;border-bottom-color:rgba(111,124,255,.32)!important}
.scoreboard-problem-group-head span{display:block;color:var(--text);font-size:13px}
.scoreboard-problem-group-head small{display:block;margin-top:1px;font-size:9px;color:var(--muted);font-weight:800}
.scoreboard-dataset-head{width:58px;min-width:58px;background:#11151d!important}
.scoreboard-dataset-head span{display:block;color:var(--text);font-size:10px;font-weight:1000}
.scoreboard-dataset-head small{display:block;margin-top:1px;font-size:9px;color:var(--muted);font-weight:900}
.scoreboard-table.dataset-columns.compact thead tr:first-child th{height:30px}
.scoreboard-table.dataset-columns.compact thead tr:nth-child(2) th{height:30px;top:30px}
.scoreboard-table.dataset-columns.compact thead th[rowspan="2"]{height:60px}
html[data-theme="light"] .scoreboard-problem-group-head{background:#e9eef6!important}
html[data-theme="light"] .scoreboard-dataset-head{background:#f2f5f9!important}
html[data-theme="light"] .contest-problem-dataset-state.idle{background:#f8fafc;border-color:#e2e8f0}
/* ===== End dataset-level contest progress + scoreboard columns ===== */


/* Final statement specificity: keep contest + practice statements compact even after legacy practice rules. */
.practice-statement.topcoder-statement{padding:24px 28px;line-height:1.66}
.practice-statement.topcoder-statement h1,.practice-statement.topcoder-statement h2{font-size:15px;line-height:1.35;margin:26px 0 11px;padding:7px 10px;border:1px solid var(--line);border-radius:7px;background:rgba(255,255,255,.035);letter-spacing:.01em}
.practice-statement.topcoder-statement>h1:first-child,.practice-statement.topcoder-statement>h2:first-child{margin-top:0}
.practice-statement.topcoder-statement h3{font-size:14px;line-height:1.4;margin:20px 0 7px;padding:0;border:0;background:none}
.practice-statement.topcoder-statement h4{font-size:13px;line-height:1.4;margin:17px 0 6px}
.practice-statement.topcoder-statement p{margin:7px 0}
.practice-statement.topcoder-statement pre{margin:10px 0 14px}
html[data-theme="light"] .practice-statement.topcoder-statement h1,html[data-theme="light"] .practice-statement.topcoder-statement h2{background:#f3f5f8;border-color:#d9dee7;color:#20242d}
@media(max-width:680px){.practice-statement.topcoder-statement{padding:18px 16px}.practice-statement.topcoder-statement h1,.practice-statement.topcoder-statement h2{font-size:14px}}

/* Upcoming contest + contest archive sections */
.home-upcoming-contest{
  width:100%;margin:0 0 14px;padding:12px 16px;border-radius:16px;
  display:grid;grid-template-columns:auto minmax(0,1fr) auto auto;align-items:center;gap:14px;
  text-align:left;background:var(--card);border:1px solid var(--line);color:var(--text);
  box-shadow:none;
}
.home-upcoming-contest:hover{border-color:rgba(255,189,89,.42);background:var(--card2)}
.home-upcoming-label{font-size:10px;font-weight:900;letter-spacing:.12em;color:var(--warn);white-space:nowrap}
.home-upcoming-main{display:flex;align-items:baseline;gap:10px;min-width:0}
.home-upcoming-main b{font-size:15px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.home-upcoming-main span{font-size:12px;color:var(--muted);white-space:nowrap}
.home-upcoming-countdown{display:flex;flex-direction:column;align-items:flex-end;justify-content:center;gap:2px;min-width:145px;padding:7px 11px;border-radius:12px;border:1px solid rgba(96,165,250,.30);background:rgba(37,99,235,.08);font-variant-numeric:tabular-nums}
.home-upcoming-countdown small{font-size:9px;font-weight:900;letter-spacing:.08em;text-transform:uppercase;color:#7dd3fc;white-space:nowrap}
.home-upcoming-countdown strong{font-size:14px;line-height:1.1;color:#fde68a;white-space:nowrap;letter-spacing:.02em}
.home-upcoming-countdown.ended{border-color:var(--line);background:var(--card2)}
.home-upcoming-countdown.ended small{color:var(--muted)}
.home-upcoming-countdown.ended strong{color:var(--text)}
.home-upcoming-action{font-size:12px;font-weight:850;color:var(--text);white-space:nowrap}
.contest-list-section{margin-top:28px}
.contest-list-section:first-of-type{margin-top:22px}
.contest-list-title{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:12px;padding-bottom:9px;border-bottom:1px solid var(--line)}
.contest-list-title h2{margin:0;font-size:20px}
.contest-list-title span{font-size:12px;color:var(--muted)}
.contest-empty-card{min-height:0;padding:16px 18px}
.contest-empty-card p{margin:0}
@media(max-width:640px){
  .home-upcoming-contest{grid-template-columns:1fr auto;gap:8px 10px;padding:11px 13px}
  .home-upcoming-label{grid-column:1/-1}
  .home-upcoming-main{grid-column:1/-1;display:grid;gap:2px}
  .home-upcoming-main span{white-space:normal}
  .home-upcoming-countdown{justify-self:start;align-items:flex-start;min-width:0}
  .home-upcoming-action{align-self:center}
}

html[data-theme="light"] .home-upcoming-countdown{background:#eef5ff;border-color:#c6dcff}
html[data-theme="light"] .home-upcoming-countdown small{color:#2563eb}
html[data-theme="light"] .home-upcoming-countdown strong{color:#a16207}


/* ===== Competitive Programming roadmap ===== */
.roadmap-page{max-width:1180px;margin-inline:auto}
.roadmap-hero{display:flex;align-items:flex-end;justify-content:space-between;gap:28px;padding:28px 30px;border:1px solid var(--line);border-radius:20px;background:linear-gradient(135deg,rgba(111,124,255,.08),rgba(255,189,89,.035));margin-bottom:28px}
.roadmap-hero>div:first-child{max-width:760px}
.roadmap-hero h1{font-size:clamp(36px,5vw,58px);line-height:1.02;letter-spacing:-.035em;margin:8px 0 14px}
.roadmap-hero p{margin:0;color:var(--muted);line-height:1.7;font-size:15px}
.roadmap-summary{display:flex;gap:10px;flex-wrap:wrap;justify-content:flex-end}
.roadmap-summary>div{min-width:106px;padding:13px 15px;border:1px solid var(--line);border-radius:14px;background:rgba(0,0,0,.12);display:grid;gap:3px}
.roadmap-summary strong{font-size:24px;line-height:1;font-variant-numeric:tabular-nums}
.roadmap-summary span{font-size:11px;color:var(--muted);font-weight:800;text-transform:uppercase;letter-spacing:.06em}
.roadmap-timeline{position:relative;display:grid;gap:16px}
.roadmap-timeline:before{content:"";position:absolute;left:29px;top:30px;bottom:30px;width:2px;background:linear-gradient(180deg,rgba(111,124,255,.55),rgba(255,189,89,.4),rgba(61,220,151,.42));border-radius:2px}
.roadmap-step{position:relative;display:grid;grid-template-columns:60px minmax(0,1fr);gap:18px;align-items:start}
.roadmap-marker{position:relative;z-index:1;width:60px;height:60px;border-radius:50%;display:grid;place-items:center;background:var(--bg);border:2px solid rgba(111,124,255,.48);font-size:14px;font-weight:1000;letter-spacing:.04em;font-variant-numeric:tabular-nums;box-shadow:0 0 0 6px var(--bg)}
.roadmap-card{min-width:0;padding:20px 22px;border:1px solid var(--line);border-radius:17px;background:var(--card);transition:border-color .16s ease,transform .16s ease,background .16s ease}
.roadmap-card:hover{border-color:rgba(111,124,255,.34);transform:translateY(-1px);background:var(--card2)}
.roadmap-card-head{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;flex-wrap:wrap}
.roadmap-month{font-size:11px;line-height:1.2;font-weight:950;letter-spacing:.12em;text-transform:uppercase;color:var(--muted);margin-bottom:5px}
.roadmap-card h2{font-size:23px;line-height:1.22;letter-spacing:-.02em;margin:0}
.roadmap-lesson-count{display:inline-flex;align-items:center;padding:6px 9px;border-radius:999px;border:1px solid var(--line);background:rgba(255,255,255,.025);font-size:11px;font-weight:850;color:var(--muted);white-space:nowrap}
.roadmap-lessons{list-style:none;padding:0;margin:17px 0 0;display:grid;gap:8px}
.roadmap-lessons li{position:relative;padding:9px 12px 9px 34px;border-radius:10px;background:rgba(255,255,255,.022);color:var(--text);line-height:1.5;font-size:14px}
.roadmap-lessons li:before{content:"›";position:absolute;left:13px;top:8px;color:var(--warn);font-weight:1000;font-size:17px}
.roadmap-empty{margin:15px 0 0;color:var(--muted);font-size:13px}
.roadmap-footer-action{display:flex;justify-content:center;margin-top:24px}
.roadmap-phases{display:grid;gap:24px}
.roadmap-phase{padding:22px 22px 24px;border:1px solid rgba(59,130,246,.24);border-radius:22px;background:linear-gradient(180deg,rgba(59,130,246,.045),rgba(255,255,255,.012));box-shadow:inset 0 1px 0 rgba(255,255,255,.025)}
.roadmap-phase-head{display:flex;align-items:flex-end;justify-content:space-between;gap:18px;margin:0 0 20px 78px;padding-bottom:16px;border-bottom:1px solid rgba(59,130,246,.18)}
.roadmap-phase-kicker{font-size:12px;font-weight:950;letter-spacing:.14em;text-transform:uppercase;color:#60a5fa;margin-bottom:5px}
.roadmap-phase-head h2{margin:0;font-size:27px;letter-spacing:-.025em}
.roadmap-phase-count{display:inline-flex;align-items:center;padding:7px 11px;border-radius:999px;border:1px solid rgba(59,130,246,.28);background:rgba(59,130,246,.08);color:#93c5fd;font-size:11px;font-weight:900;text-transform:uppercase;letter-spacing:.05em;white-space:nowrap}
.roadmap-phase .roadmap-timeline{gap:14px}
html[data-theme="light"] .roadmap-phase{border-color:rgba(37,99,235,.24);background:linear-gradient(180deg,rgba(37,99,235,.045),#fff)}
html[data-theme="light"] .roadmap-phase-head{border-bottom-color:rgba(37,99,235,.18)}
html[data-theme="light"] .roadmap-phase-kicker{color:#1d4ed8}
html[data-theme="light"] .roadmap-phase-count{border-color:rgba(37,99,235,.28);background:rgba(37,99,235,.08);color:#1d4ed8}
@media(max-width:700px){
  .roadmap-phase{padding:17px 14px 18px;border-radius:18px}
  .roadmap-phase-head{margin-left:54px;align-items:flex-start;flex-direction:column;gap:10px;padding-bottom:13px}
  .roadmap-phase-head h2{font-size:22px}
}

html[data-theme="light"] .roadmap-hero{background:linear-gradient(135deg,#f5f7ff,#fffaf0)}
html[data-theme="light"] .roadmap-summary>div{background:#fff}
html[data-theme="light"] .roadmap-marker{background:#fff;box-shadow:0 0 0 6px var(--bg)}
html[data-theme="light"] .roadmap-card{background:#fff}
html[data-theme="light"] .roadmap-card:hover{background:#f8f9fc}
html[data-theme="light"] .roadmap-lessons li{background:#f6f7fa}
@media(max-width:720px){
  .roadmap-hero{align-items:flex-start;flex-direction:column;padding:22px 20px}
  .roadmap-hero h1{font-size:38px}
  .roadmap-summary{justify-content:flex-start}
  .roadmap-timeline:before{left:20px}
  .roadmap-step{grid-template-columns:42px minmax(0,1fr);gap:12px}
  .roadmap-marker{width:42px;height:42px;font-size:11px;box-shadow:0 0 0 4px var(--bg)}
  .roadmap-card{padding:17px 16px}
  .roadmap-card h2{font-size:20px}
  .roadmap-lessons li{padding-left:30px}
}
/* ===== End Competitive Programming roadmap ===== */

/* Lớp Online CP · attention when a published class is “Sắp mở” */
#btnClasses.classes-nav-upcoming{
  position:relative;overflow:hidden;isolation:isolate;
  border-color:rgba(255,189,89,.42);
  background:linear-gradient(120deg,#0b0c10 0%,rgba(255,189,89,.09) 42%,#0b0c10 72%);
  box-shadow:0 0 0 1px rgba(255,189,89,.08),0 0 20px rgba(255,189,89,.10);
}
#btnClasses.classes-nav-upcoming::before{
  content:"";position:absolute;z-index:-1;inset:-45% -75%;pointer-events:none;
  background:linear-gradient(105deg,transparent 42%,rgba(255,255,255,.04) 46%,rgba(255,226,151,.48) 50%,rgba(255,255,255,.06) 54%,transparent 58%);
  transform:translateX(-46%);animation:classes-nav-shimmer 3.1s ease-in-out infinite;
}
#btnClasses.classes-nav-upcoming::after{
  content:"✦";position:absolute;top:2px;right:6px;pointer-events:none;
  color:#ffd98a;font-size:10px;line-height:1;text-shadow:0 0 8px rgba(255,217,138,.8);
  animation:classes-nav-twinkle 1.55s ease-in-out infinite;
}
#btnClasses.classes-nav-upcoming:hover{
  border-color:rgba(255,201,111,.68);
  box-shadow:0 0 0 1px rgba(255,189,89,.14),0 0 25px rgba(255,189,89,.16);
}
@keyframes classes-nav-shimmer{0%,30%{transform:translateX(-52%)}68%,100%{transform:translateX(52%)}}
@keyframes classes-nav-twinkle{0%,100%{opacity:.35;transform:scale(.78) rotate(0deg)}50%{opacity:1;transform:scale(1.15) rotate(18deg)}}
html[data-theme="light"] #btnClasses.classes-nav-upcoming{
  border-color:#e5bd68;background:linear-gradient(120deg,#fff 0%,#fff7df 44%,#fff 74%);
  box-shadow:0 0 0 1px rgba(184,127,18,.06),0 0 18px rgba(184,127,18,.08);
}
html[data-theme="light"] #btnClasses.classes-nav-upcoming::after{color:#b47508;text-shadow:0 0 7px rgba(180,117,8,.32)}
@media(prefers-reduced-motion:reduce){
  #btnClasses.classes-nav-upcoming::before,#btnClasses.classes-nav-upcoming::after{animation:none}
  #btnClasses.classes-nav-upcoming::before{transform:none;opacity:.35}
}

/* ===== Upcoming contest gate + compact heading scale ===== */
.contest-upcoming-gate{
  display:grid;grid-template-columns:auto minmax(0,1fr);gap:18px;align-items:center;
  padding:22px 24px;margin-top:16px;border-color:rgba(255,189,89,.28);
  background:linear-gradient(135deg,rgba(255,189,89,.07),rgba(111,124,255,.035));
}
.contest-upcoming-lock{
  width:52px;height:52px;border-radius:16px;display:grid;place-items:center;font-size:24px;
  border:1px solid rgba(255,189,89,.28);background:rgba(255,189,89,.08)
}
.contest-upcoming-copy{min-width:0}
.contest-upcoming-copy h2{font-size:20px;margin:4px 0 7px}
.contest-start-countdown{
  display:block;width:max-content;max-width:100%;font-size:clamp(30px,4vw,44px);line-height:1.05;
  letter-spacing:.035em;font-variant-numeric:tabular-nums;color:var(--warn);overflow-wrap:anywhere
}
.contest-upcoming-copy p{margin:9px 0 5px;color:var(--muted);font-size:14px}
html[data-theme="light"] .contest-upcoming-gate{background:linear-gradient(135deg,#fff9e9,#f5f7ff)}
html[data-theme="light"] .contest-upcoming-lock{background:#fff5d9}

/* Keep titles compact across public pages. */
h1{font-size:clamp(32px,4.5vw,52px)}
.section h2{font-size:25px}
.contest-heading{font-size:clamp(28px,3.8vw,42px)}
.contest-problem-page .contest-heading{font-size:clamp(25px,3vw,35px)}
.practice-problem-titlebar h1{font-size:clamp(26px,3.3vw,36px)}
.promoted-classes-hero h1{font-size:clamp(30px,4vw,46px)}
.roadmap-hero h1{font-size:clamp(30px,4vw,46px)}
.forum-post-detail h1{font-size:clamp(26px,3.6vw,36px)}
.contest-list-title h2{font-size:24px}
@media(max-width:720px){
  .contest-upcoming-gate{grid-template-columns:1fr;padding:18px}
  .contest-upcoming-lock{width:44px;height:44px;font-size:20px}
  .contest-start-countdown{font-size:32px}
  h1{font-size:clamp(29px,9vw,40px)}
  .promoted-classes-hero h1,.roadmap-hero h1{font-size:32px}
  .practice-problem-titlebar h1{font-size:28px}
}
/* ===== End upcoming contest gate + compact heading scale ===== */

@media(max-width:780px){.contest-card{grid-template-columns:1fr;gap:18px;padding:20px}.contest-card-side{justify-content:flex-start}.contest-card-side .primary{width:100%}}

.scoreboard-reveal-actions{display:flex;align-items:center;justify-content:flex-end;gap:10px;flex-wrap:wrap}
@media(max-width:680px){.scoreboard-reveal-actions{width:100%}.scoreboard-reveal-actions button{flex:1 1 auto}}

/* Problem lists: show real problem names instead of A/B/C codes */
.practice-problem-list{display:grid;gap:10px}
.practice-list-row{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:16px;padding:18px 20px;border:1px solid var(--line);border-radius:14px;background:var(--card2);cursor:pointer;transition:border-color .16s ease,background .16s ease,transform .16s ease}
.practice-list-row:hover{border-color:rgba(255,58,76,.34);background:rgba(255,255,255,.026);transform:translateY(-1px)}
.practice-list-row:focus-visible{outline:2px solid rgba(255,58,76,.62);outline-offset:2px}
.practice-list-row .contest-problem-main>b{font-size:17px}
.practice-list-arrow{font-size:20px;color:var(--muted);transition:transform .16s ease,color .16s ease}
.practice-list-row:hover .practice-list-arrow{transform:translateX(3px);color:var(--text)}
.contest-problem-row-title-only{grid-template-columns:minmax(0,1fr) auto}
.contest-problem-row-title-only .contest-problem-main>b{font-size:16px}
.scoreboard-problem-group-head{min-width:92px}
.scoreboard-problem-group-head span{font-size:12px;line-height:1.2;white-space:normal;overflow-wrap:anywhere}
.scoreboard-dataset-head span:empty{display:none}
.scoreboard-panel-problems>div{grid-template-columns:24px minmax(82px,1fr) auto}
@media(max-width:680px){.practice-list-row{padding:15px 16px}.contest-problem-row-title-only{grid-template-columns:1fr}.contest-problem-row-title-only .contest-problem-inline-verdict{margin-top:6px}}

/* Admin problem identity + public URL */
.problem-title-warning{display:none;margin:-6px 0 12px;color:var(--danger);font-size:12px;font-weight:800}
.problem-title-warning.show{display:block}


/* ===== Contest list emphasis + denser scoreboard ===== */
.contest-list-title{padding-bottom:10px;border-bottom-color:rgba(255,255,255,.10)}
.contest-list-title h2{position:relative;padding-left:13px;font-size:21px!important;line-height:1.2;letter-spacing:-.01em}
.contest-list-title h2::before{content:"";position:absolute;left:0;top:2px;bottom:2px;width:3px;border-radius:3px;background:var(--muted)}
.contest-list-section.upcoming .contest-list-title h2,.contest-list-section.running .contest-list-title h2,.contest-list-section.ended .contest-list-title h2{color:#ffd36a}
.contest-list-section.upcoming .contest-list-title h2::before,.contest-list-section.running .contest-list-title h2::before,.contest-list-section.ended .contest-list-title h2::before{background:#f0b429;box-shadow:0 0 10px rgba(240,180,41,.24)}
.contest-list-section .contest-list-title span{font-size:11px}
.contest-card{padding:20px 22px;gap:22px}
.contest-card .contest-meta{margin-top:11px}
.contest-card .contest-status{padding:5px 9px;font-size:10px}

/* Keep the scoreboard closer to a contest table than a set of cards. */
.scoreboard-board,.scoreboard-panel{border-radius:12px}
.scoreboard-table th,.scoreboard-table td{height:48px}
.scoreboard-rank-col{width:48px;min-width:48px}
.scoreboard-user-col{left:48px;width:225px;min-width:225px;padding:0 10px!important}
.scoreboard-score-col{width:66px;min-width:66px}
.scoreboard-penalty-col{width:82px;min-width:82px}
.scoreboard-problem-head{width:45px;min-width:45px}
.scoreboard-problem-cell{width:45px;min-width:45px;padding:1px!important}
.scoreboard-cell{height:42px;width:42px;border-radius:2px;font-size:17px;box-shadow:none}
.scoreboard-cell:hover{transform:none;filter:brightness(1.06)}
.scoreboard-cell.correct{box-shadow:inset 0 0 0 1px rgba(255,255,255,.09)}
.scoreboard-cell.wrong{box-shadow:inset 0 0 0 1px rgba(255,255,255,.09)}
.scoreboard-cell.pending,.scoreboard-cell.partial{box-shadow:inset 0 0 0 1px rgba(255,255,255,.12)}
.scoreboard-cell.revealable:hover{transform:none;filter:brightness(1.10);box-shadow:inset 0 0 0 2px rgba(255,255,255,.16)}
.scoreboard-table.compact th,.scoreboard-table.compact td{height:43px}
.scoreboard-table.compact .scoreboard-user-col{width:200px;min-width:200px}
.scoreboard-table.compact .scoreboard-problem-head,.scoreboard-table.compact .scoreboard-problem-cell{width:41px;min-width:41px}
.scoreboard-cell.compact{height:38px;width:38px}
.scoreboard-table.dataset-columns thead tr:first-child th{height:31px}
.scoreboard-table.dataset-columns thead tr:nth-child(2) th{height:31px;top:31px}
.scoreboard-table.dataset-columns thead th[rowspan="2"]{height:62px}
.scoreboard-table.dataset-columns.compact thead tr:first-child th{height:28px}
.scoreboard-table.dataset-columns.compact thead tr:nth-child(2) th{height:28px;top:28px}
.scoreboard-table.dataset-columns.compact thead th[rowspan="2"]{height:56px}
html[data-theme="light"] .contest-list-title{border-bottom-color:#d8dfef}
html[data-theme="light"] .contest-list-section.upcoming .contest-list-title h2,html[data-theme="light"] .contest-list-section.running .contest-list-title h2,html[data-theme="light"] .contest-list-section.ended .contest-list-title h2{color:#a56700}
@media(max-width:680px){
  .contest-card{padding:17px 16px}
  .contest-card h2{font-size:18px}
  .scoreboard-problem-head,.scoreboard-problem-cell{width:42px;min-width:42px}
  .scoreboard-cell{width:39px;height:39px}
}
/* ===== End contest list emphasis + denser scoreboard ===== */

/* ===== Final compact contest titles + tight scoreboard grid ===== */
/* Contest item titles stay secondary to section headings. */
.contest-card h2{
  font-size:16px!important;
  line-height:1.25;
  margin:8px 0 0;
  font-weight:850;
  letter-spacing:-.006em;
}
.contest-list-title h2{
  font-size:20px!important;
}

/* Scoreboard Dataset cells behave like a real table: no card gaps, only 1px dividers. */
.scoreboard-table th,.scoreboard-table td{
  border-right:1px solid rgba(255,255,255,.075);
  border-bottom:1px solid rgba(255,255,255,.075);
}
.scoreboard-problem-head,
.scoreboard-problem-cell,
.scoreboard-table.compact .scoreboard-problem-head,
.scoreboard-table.compact .scoreboard-problem-cell{
  width:43px;
  min-width:43px;
}
.scoreboard-problem-cell{
  padding:0!important;
  background:#090c11!important;
}
.scoreboard-cell,
.scoreboard-cell.compact{
  width:100%;
  height:100%;
  min-height:42px;
  border:0!important;
  border-radius:0!important;
  box-shadow:none!important;
}
.scoreboard-table.compact .scoreboard-problem-cell .scoreboard-cell{
  min-height:38px;
}
.scoreboard-cell:hover,
.scoreboard-cell.revealable:hover{
  transform:none;
  box-shadow:none!important;
}
.scoreboard-cell.pending{color:#fff!important}
html[data-theme="light"] .scoreboard-table th,
html[data-theme="light"] .scoreboard-table td{
  border-right-color:#d8dee7;
  border-bottom-color:#d8dee7;
}
@media(max-width:680px){
  .contest-card h2{font-size:15px!important}
  .contest-list-title h2{font-size:19px!important}
  .scoreboard-problem-head,
  .scoreboard-problem-cell,
  .scoreboard-table.compact .scoreboard-problem-head,
  .scoreboard-table.compact .scoreboard-problem-cell{width:40px;min-width:40px}
}
/* ===== End final compact contest titles + tight scoreboard grid ===== */

/* ===== Code Jam dense scoreboard palette + 12-column safe layout ===== */
/* Keep the matrix dense like classic Code Jam: wide-ish cells, short rows, 1px separators. */
.scoreboard-scroll{
  overflow-x:auto;
  overflow-y:auto;
  max-width:100%;
  overscroll-behavior-x:contain;
  -webkit-overflow-scrolling:touch;
}
.scoreboard-table{
  width:max-content;
  min-width:100%;
  border-collapse:separate;
  border-spacing:0;
}
.scoreboard-table th,
.scoreboard-table td{
  height:33px!important;
  border-right:1px solid rgba(255,255,255,.09)!important;
  border-bottom:1px solid rgba(255,255,255,.09)!important;
}
.scoreboard-table tbody tr:hover td{background:#10151c}
.scoreboard-rank-col{width:45px;min-width:45px}
.scoreboard-user-col{
  left:45px!important;
  width:232px!important;
  min-width:232px!important;
  padding:0 10px!important;
}
.scoreboard-score-col{
  width:62px;
  min-width:62px;
}
.scoreboard-penalty-col{
  width:82px;
  min-width:82px;
}
.scoreboard-user-cell{gap:8px}
.scoreboard-avatar{
  width:25px;
  height:25px;
  flex:0 0 25px;
}
.scoreboard-user-cell b{font-size:12px}
.scoreboard-user-cell small{font-size:9px}

/* A Dataset cell is intentionally wider than it is tall. */
.scoreboard-problem-head,
.scoreboard-problem-cell,
.scoreboard-table.compact .scoreboard-problem-head,
.scoreboard-table.compact .scoreboard-problem-cell{
  width:49px!important;
  min-width:49px!important;
}
.scoreboard-problem-cell{
  padding:0!important;
  background:#0b0f14!important;
}
.scoreboard-cell,
.scoreboard-cell.compact{
  width:100%!important;
  height:32px!important;
  min-height:32px!important;
  border:0!important;
  border-radius:0!important;
  box-shadow:none!important;
  font-size:17px;
}

/* Classic Code Jam-inspired status palette: strong, flat and easy to scan. */
.scoreboard-cell.correct{
  background:#27ad39!important;
  color:#fff!important;
}
.scoreboard-cell.wrong{
  background:#a91520!important;
  color:#fff!important;
}
.scoreboard-cell.pending,
.scoreboard-cell.partial{
  background:#f0ba18!important;
  color:#fff!important;
  text-shadow:0 1px 1px rgba(0,0,0,.35);
}
.scoreboard-cell.idle{
  background:#0d1218!important;
  color:#6f7b88!important;
}
.scoreboard-cell:hover,
.scoreboard-cell.revealable:hover{
  transform:none!important;
  filter:brightness(1.08);
  box-shadow:none!important;
}
.scoreboard-cell.pending{color:#fff!important}

/* Shorter two-row problem header. */
.scoreboard-table.dataset-columns thead tr:first-child th{
  height:25px!important;
}
.scoreboard-table.dataset-columns thead tr:nth-child(2) th{
  height:23px!important;
  top:25px!important;
}
.scoreboard-table.dataset-columns thead th[rowspan="2"]{
  height:48px!important;
}
.scoreboard-table.dataset-columns.compact thead tr:first-child th{
  height:24px!important;
}
.scoreboard-table.dataset-columns.compact thead tr:nth-child(2) th{
  height:22px!important;
  top:24px!important;
}
.scoreboard-table.dataset-columns.compact thead th[rowspan="2"]{
  height:46px!important;
}
.scoreboard-problem-group-head{min-width:98px}
.scoreboard-problem-group-head span{font-size:11px;line-height:1.05}
.scoreboard-problem-group-head small{font-size:8px;margin-top:1px}
.scoreboard-dataset-head{width:49px!important;min-width:49px!important}
.scoreboard-dataset-head span{font-size:9px}
.scoreboard-dataset-head small{font-size:8px}

/* Slightly quieter legends/panel to let the matrix carry the visual weight. */
.scoreboard-legend .correct{color:#6fd27b;border-color:rgba(39,173,57,.45);background:rgba(39,173,57,.10)}
.scoreboard-legend .wrong{color:#e46b73;border-color:rgba(169,21,32,.45);background:rgba(169,21,32,.10)}
.scoreboard-legend .partial,.scoreboard-legend .pending{color:#f2c64d;border-color:rgba(240,186,24,.48);background:rgba(240,186,24,.12)}
.scoreboard-mini-state.correct{color:#7bd786;background:rgba(39,173,57,.14);border-color:rgba(39,173,57,.35)}
.scoreboard-mini-state.wrong{color:#ea747d;background:rgba(169,21,32,.14);border-color:rgba(169,21,32,.35)}
.scoreboard-mini-state.pending,.scoreboard-mini-state.partial{color:#fff;background:rgba(240,186,24,.26);border-color:rgba(240,186,24,.48)}

html[data-theme="light"] .scoreboard-table th,
html[data-theme="light"] .scoreboard-table td{
  border-right-color:#d8dde5!important;
  border-bottom-color:#d8dde5!important;
}
html[data-theme="light"] .scoreboard-problem-cell{background:#fff!important}
html[data-theme="light"] .scoreboard-cell.correct{background:#2ca43b!important}
html[data-theme="light"] .scoreboard-cell.wrong{background:#a61924!important}
html[data-theme="light"] .scoreboard-cell.pending,
html[data-theme="light"] .scoreboard-cell.partial{background:#efb61c!important;color:#fff!important}
html[data-theme="light"] .scoreboard-cell.idle{background:#f7f8fa!important;color:#788493!important}

@media(max-width:680px){
  .scoreboard-user-col{width:180px!important;min-width:180px!important}
  .scoreboard-problem-head,
  .scoreboard-problem-cell,
  .scoreboard-table.compact .scoreboard-problem-head,
  .scoreboard-table.compact .scoreboard-problem-cell{
    width:46px!important;
    min-width:46px!important;
  }
}
/* ===== End Code Jam dense scoreboard palette + 12-column safe layout ===== */

/* ===== Scoreboard: no detail panel; highlight current contestant ===== */
.scoreboard-layout{display:block}
.scoreboard-board{width:100%}
.scoreboard-table tbody tr{cursor:default}
.scoreboard-table tbody tr.me td{
  box-shadow:inset 0 1px rgba(91,145,230,.72),inset 0 -1px rgba(91,145,230,.72);
}
.scoreboard-table tbody tr.me .scoreboard-rank-col{
  box-shadow:inset 3px 0 #5b91e6,inset 0 1px rgba(91,145,230,.72),inset 0 -1px rgba(91,145,230,.72);
}
.scoreboard-table tbody tr.me .scoreboard-user-col,
.scoreboard-table tbody tr.me .scoreboard-rank-col,
.scoreboard-table tbody tr.me .scoreboard-score-col,
.scoreboard-table tbody tr.me .scoreboard-penalty-col{
  background:#132033!important;
}
.scoreboard-table tbody tr.me .scoreboard-user-cell b{color:#dceaff}
html[data-theme="light"] .scoreboard-table tbody tr.me td{
  box-shadow:inset 0 1px #7da4df,inset 0 -1px #7da4df;
}
html[data-theme="light"] .scoreboard-table tbody tr.me .scoreboard-rank-col{
  box-shadow:inset 3px 0 #4f7fc7,inset 0 1px #7da4df,inset 0 -1px #7da4df;
}
html[data-theme="light"] .scoreboard-table tbody tr.me .scoreboard-user-col,
html[data-theme="light"] .scoreboard-table tbody tr.me .scoreboard-rank-col,
html[data-theme="light"] .scoreboard-table tbody tr.me .scoreboard-score-col,
html[data-theme="light"] .scoreboard-table tbody tr.me .scoreboard-penalty-col{background:#edf4ff!important}
/* ===== End scoreboard current contestant highlight ===== */


/* ===== Scoreboard symbol polish + zero penalty ===== */
/* Make verdict marks more legible without making the cells taller. */
.scoreboard-cell > span{
  font-weight:1000;
  font-size:20px;
  line-height:1;
  text-shadow:0 1px 1px rgba(0,0,0,.28);
}
.scoreboard-cell.pending > span{
  font-size:18px;
  font-weight:1000;
  color:#fff!important;
}
.scoreboard-cell.correct > span{
  font-size:21px;
  font-weight:1000;
}
/* Hand-drawn-style X: two rounded strokes instead of a square Unicode glyph. */
.scoreboard-cell.wrong > span{
  position:relative;
  display:block;
  width:19px;
  height:18px;
  font-size:0!important;
  line-height:0;
  transform:none!important;
  filter:drop-shadow(0 1px 0 rgba(0,0,0,.16));
}
.scoreboard-cell.wrong > span::before,
.scoreboard-cell.wrong > span::after{
  content:"";
  position:absolute;
  left:50%;
  top:50%;
  height:3.2px;
  background:#fff;
  border-radius:999px;
  transform-origin:center;
}
.scoreboard-cell.wrong > span::before{
  width:20px;
  transform:translate(-50%,-50%) rotate(43deg) translateY(-.35px);
}
.scoreboard-cell.wrong > span::after{
  width:18px;
  transform:translate(-50%,-50%) rotate(-47deg) translateX(.45px);
}
html[data-theme="light"] .scoreboard-cell.wrong > span::before,
html[data-theme="light"] .scoreboard-cell.wrong > span::after{
  background:#fff;
}
/* ===== End scoreboard symbol polish ===== */

/* ===== Scoreboard Code Jam header cleanup + hand-drawn verdicts ===== */
.scoreboard-table.dataset-columns{border-collapse:collapse!important;border-spacing:0!important}
.scoreboard-table.dataset-columns .scoreboard-problem-cell,
.scoreboard-table.dataset-columns .scoreboard-dataset-head{
  width:52px!important;
  min-width:52px!important;
  max-width:52px!important;
}
.scoreboard-table.dataset-columns .scoreboard-problem-group-head{
  min-width:0!important;
  padding:0!important;
}
.scoreboard-table.dataset-columns .scoreboard-problem-group-head span{
  display:block;
  padding:0 5px;
  font-size:11px;
  line-height:1.05;
  white-space:nowrap;
}
.scoreboard-table.dataset-columns .scoreboard-problem-group-head small{display:none!important}
.scoreboard-table.dataset-columns .scoreboard-dataset-head span{
  display:block;
  font-size:10px!important;
  line-height:1;
  font-weight:1000;
  color:var(--text);
}
.scoreboard-table.dataset-columns .scoreboard-dataset-head small{display:none!important}
.scoreboard-table.dataset-columns .scoreboard-problem-cell{padding:0!important}
.scoreboard-table.dataset-columns .scoreboard-cell,
.scoreboard-table.dataset-columns .scoreboard-cell.compact{
  width:100%!important;
  height:31px!important;
  min-height:31px!important;
  border-radius:0!important;
}

/* Draw the check mark from two imperfect strokes instead of a font glyph. */
.scoreboard-cell.correct > span{
  position:relative;
  display:block;
  width:22px;
  height:19px;
  font-size:0!important;
  line-height:0;
  transform:rotate(-2deg)!important;
  filter:drop-shadow(0 1px 0 rgba(0,0,0,.14));
}
.scoreboard-cell.correct > span::before,
.scoreboard-cell.correct > span::after{
  content:"";
  position:absolute;
  background:#fff;
  transform-origin:left center;
}
.scoreboard-cell.correct > span::before{
  width:9px;
  height:3.6px;
  left:1px;
  top:10px;
  border-radius:70% 45% 60% 35%;
  clip-path:polygon(0 30%,94% 0,100% 68%,5% 100%);
  transform:rotate(46deg) skewX(-7deg);
}
.scoreboard-cell.correct > span::after{
  width:16px;
  height:3.7px;
  left:7px;
  top:12px;
  border-radius:50% 80% 35% 70%;
  clip-path:polygon(0 22%,95% 0,100% 60%,4% 100%);
  transform:rotate(-49deg) skewX(5deg);
}

/* More organic X: uneven length, angle and tapered brush-like strokes. */
.scoreboard-cell.wrong > span{
  position:relative;
  display:block;
  width:22px;
  height:19px;
  font-size:0!important;
  line-height:0;
  transform:rotate(1deg)!important;
  filter:drop-shadow(0 1px 0 rgba(0,0,0,.14));
}
.scoreboard-cell.wrong > span::before,
.scoreboard-cell.wrong > span::after{
  content:"";
  position:absolute;
  left:50%;
  top:50%;
  background:#fff;
  transform-origin:center;
}
.scoreboard-cell.wrong > span::before{
  width:22px;
  height:3.5px;
  border-radius:65% 35% 75% 30%;
  clip-path:polygon(1% 34%,93% 0,100% 62%,7% 100%);
  transform:translate(-52%,-48%) rotate(40deg) skewX(5deg);
}
.scoreboard-cell.wrong > span::after{
  width:18px;
  height:3.1px;
  border-radius:30% 75% 35% 70%;
  clip-path:polygon(0 18%,96% 4%,100% 72%,5% 100%);
  transform:translate(-45%,-53%) rotate(-52deg) skewX(-5deg);
}
.scoreboard-cell.pending > span{color:#fff!important;font-size:18px!important;font-weight:1000!important}

/* Inline article image insertion UI. */
.markdown-image-btn{border-color:rgba(111,124,255,.24)!important}
.site-post-inline-existing-list{display:grid;gap:10px;margin-top:10px}
.site-post-inline-existing{display:grid;grid-template-columns:76px minmax(0,1fr);gap:12px;align-items:center;padding:8px;border:1px solid var(--line);border-radius:10px;background:rgba(255,255,255,.018)}
.site-post-inline-existing img{width:76px;height:56px;object-fit:cover;border-radius:8px;border:1px solid var(--line)}
.site-post-inline-existing>div{display:flex;align-items:center;justify-content:space-between;gap:10px;min-width:0}
.site-post-inline-existing b{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:12px}
.site-post-inline-existing button{flex:0 0 auto;padding:7px 9px;font-size:11px}
@media(max-width:680px){
  .scoreboard-table.dataset-columns .scoreboard-problem-cell,
  .scoreboard-table.dataset-columns .scoreboard-dataset-head{width:48px!important;min-width:48px!important;max-width:48px!important}
  .site-post-inline-existing{grid-template-columns:58px minmax(0,1fr)}
  .site-post-inline-existing img{width:58px;height:48px}
  .site-post-inline-existing>div{align-items:flex-start;flex-direction:column}
}
/* ===== End scoreboard/article image polish ===== */


/* Refined scoreboard glyphs: cleaner tick/X with rounded vector strokes. */
.scoreboard-cell{position:relative;overflow:hidden}
.scoreboard-glyph{display:inline-flex;align-items:center;justify-content:center;width:20px;height:20px}
.scoreboard-glyph svg{display:block;width:20px;height:20px}
.scoreboard-glyph svg path{fill:none;stroke:currentColor;stroke-width:3.1;stroke-linecap:round;stroke-linejoin:round}
.scoreboard-glyph.mark-check{color:#fff;transform:rotate(-7deg) translateY(.5px)}
.scoreboard-glyph.mark-cross{color:#fff;transform:rotate(-3deg)}
.scoreboard-glyph.mark-cross svg path:first-child{stroke-width:2.9}
.scoreboard-glyph.mark-cross svg path:last-child{stroke-width:3.3}
.scoreboard-glyph.mark-pending{color:#fff;font-size:22px;font-weight:1000;line-height:1;text-shadow:0 1px 1px rgba(0,0,0,.35)}
.scoreboard-glyph.mark-idle{color:#708198;font-size:18px;font-weight:900;line-height:1;transform:translateY(-1px)}
.scoreboard-cell.correct .scoreboard-glyph,
.scoreboard-cell.wrong .scoreboard-glyph,
.scoreboard-cell.pending .scoreboard-glyph,
.scoreboard-cell.partial .scoreboard-glyph{filter:drop-shadow(0 1px 0 rgba(0,0,0,.12))}


/* ===== Code Jam classic verdict glyphs ===== */
/* Cancel older experimental pseudo-stroke marks. */
.scoreboard-cell.correct > .scoreboard-glyph::before,
.scoreboard-cell.correct > .scoreboard-glyph::after,
.scoreboard-cell.wrong > .scoreboard-glyph::before,
.scoreboard-cell.wrong > .scoreboard-glyph::after{content:none!important;display:none!important}
.scoreboard-glyph{
  display:inline-block!important;
  width:auto!important;
  height:auto!important;
  color:#fff;
  font-family:Arial,"Helvetica Neue","Segoe UI Symbol",sans-serif!important;
  line-height:1!important;
  text-align:center;
  filter:none!important;
  text-shadow:none!important;
}
.scoreboard-glyph.mark-check{
  font-size:21px!important;
  font-weight:700!important;
  transform:rotate(-7deg) translateY(-.5px)!important;
  letter-spacing:-1px;
}
.scoreboard-glyph.mark-cross{
  font-size:25px!important;
  font-weight:400!important;
  transform:translateY(-1px)!important;
  letter-spacing:0;
}
.scoreboard-glyph.mark-pending{
  font-size:18px!important;
  font-weight:700!important;
  color:#fff!important;
  transform:translateY(-.5px)!important;
}
.scoreboard-glyph.mark-idle{
  font-size:17px!important;
  font-weight:400!important;
  color:#79838f!important;
  transform:translateY(-1px)!important;
}
/* Flat Code Jam-like cells: compact, rectangular, no glow/card feel. */
.scoreboard-table.dataset-columns .scoreboard-cell,
.scoreboard-table.dataset-columns .scoreboard-cell.compact{
  height:29px!important;
  min-height:29px!important;
  border-radius:0!important;
  box-shadow:none!important;
}
.scoreboard-cell.correct{background:#24ad38!important}
.scoreboard-cell.wrong{background:#a41520!important}
.scoreboard-cell.pending,.scoreboard-cell.partial{background:#d79a18!important}
.scoreboard-cell.idle{background:#0d1218!important}
.scoreboard-table.dataset-columns .scoreboard-problem-cell,
.scoreboard-table.dataset-columns .scoreboard-dataset-head{
  width:50px!important;
  min-width:50px!important;
  max-width:50px!important;
}
.scoreboard-table.dataset-columns thead tr:first-child th{height:23px!important}
.scoreboard-table.dataset-columns thead tr:nth-child(2) th{height:20px!important;top:23px!important}
.scoreboard-table.dataset-columns thead th[rowspan="2"]{height:43px!important}
.scoreboard-table.dataset-columns .scoreboard-problem-group-head span{font-size:11px!important;line-height:1!important}
.scoreboard-table.dataset-columns .scoreboard-dataset-head span{font-size:10px!important;line-height:1!important}
/* ===== End Code Jam classic verdict glyphs ===== */


/* ===== FINAL scoreboard verdict glyph fix =====
   Keep the marks font-based and override older experimental font-size:0 rules. */
.scoreboard-cell.correct > .scoreboard-glyph.mark-check{
  display:inline-block!important;
  width:auto!important;
  height:auto!important;
  font-family:Arial,"Segoe UI Symbol",sans-serif!important;
  font-size:22px!important;
  font-weight:700!important;
  line-height:1!important;
  color:#fff!important;
  transform:rotate(-6deg) translateY(-1px)!important;
  text-shadow:none!important;
  filter:none!important;
}
.scoreboard-cell.wrong > .scoreboard-glyph.mark-cross{
  display:inline-block!important;
  width:auto!important;
  height:auto!important;
  font-family:Arial,"Segoe UI Symbol",sans-serif!important;
  font-size:25px!important;
  font-weight:400!important;
  line-height:1!important;
  color:#fff!important;
  transform:translateY(-1px)!important;
  text-shadow:none!important;
  filter:none!important;
}
.scoreboard-cell.pending > .scoreboard-glyph.mark-pending{
  display:inline-block!important;
  width:auto!important;
  height:auto!important;
  font-family:Arial,sans-serif!important;
  font-size:19px!important;
  font-weight:800!important;
  line-height:1!important;
  color:#fff!important;
  transform:none!important;
}
.scoreboard-cell.idle > .scoreboard-glyph.mark-idle{
  display:inline-block!important;
  width:auto!important;
  height:auto!important;
  font-family:Arial,sans-serif!important;
  font-size:16px!important;
  font-weight:400!important;
  line-height:1!important;
  color:#79838f!important;
  transform:translateY(-1px)!important;
}
.scoreboard-cell.correct > .scoreboard-glyph.mark-check::before,
.scoreboard-cell.correct > .scoreboard-glyph.mark-check::after,
.scoreboard-cell.wrong > .scoreboard-glyph.mark-cross::before,
.scoreboard-cell.wrong > .scoreboard-glyph.mark-cross::after{
  content:none!important;
  display:none!important;
}
/* ===== End FINAL scoreboard verdict glyph fix ===== */



/* ===== User-drawn scoreboard verdict icons =====
   Correct/Incorrect use the exact hand-drawn marks supplied by the site owner.
   The PNGs have transparent backgrounds; cell colors remain controlled by scoreboard CSS. */
.scoreboard-cell > img.scoreboard-glyph.scoreboard-glyph-image{
  display:block!important;
  flex:none!important;
  width:25px!important;
  height:25px!important;
  max-width:25px!important;
  max-height:25px!important;
  object-fit:contain!important;
  object-position:center!important;
  margin:0 auto!important;
  padding:0!important;
  transform:none!important;
  filter:none!important;
  opacity:1!important;
  pointer-events:none!important;
  user-select:none!important;
}
.scoreboard-cell.correct > img.scoreboard-glyph.mark-check{
  width:26px!important;
  height:26px!important;
  max-width:26px!important;
  max-height:26px!important;
}
.scoreboard-cell.wrong > img.scoreboard-glyph.mark-cross{
  width:25px!important;
  height:25px!important;
  max-width:25px!important;
  max-height:25px!important;
}
.scoreboard-cell.pending > .scoreboard-glyph.mark-pending{
  color:#fff!important;
}
/* ===== End user-drawn scoreboard verdict icons ===== */


/* Reliable inline image picker for site-post Markdown editor. */
.markdown-inline-image-picker{position:absolute!important;width:1px!important;height:1px!important;opacity:0!important;overflow:hidden!important;pointer-events:none!important}
.markdown-image-btn{display:inline-flex;align-items:center;justify-content:center;cursor:pointer;user-select:none}
.markdown-inline-image-status{margin:8px 0 0;padding:9px 11px;border:1px solid var(--line);border-radius:10px;color:var(--muted);font-size:12px;line-height:1.5;background:rgba(255,255,255,.025)}
html[data-theme="light"] .markdown-inline-image-status{background:#f8fafc}

.contest-download-warning{text-align:left}
.contest-download-warning-icon{font-size:32px;line-height:1;margin-bottom:12px}
.contest-download-warning h2{margin-bottom:10px}
.contest-download-warning>p{color:var(--muted);line-height:1.65;margin:0 0 16px}
.contest-download-warning-points{display:grid;gap:10px;margin:14px 0 20px}
.contest-download-warning-points>div{display:grid;gap:3px;padding:12px 14px;border:1px solid var(--line);border-radius:12px;background:rgba(124,140,255,.05)}
.contest-download-warning-points span{font-size:13px;line-height:1.5;color:var(--muted)}

/* Contest download warning + Admin-only practice test access */
.contest-download-warning-points>div.contest-download-warning-file-rule{border-color:rgba(255,190,70,.55);background:rgba(255,190,70,.1)}
.contest-download-warning-file-rule b{font-size:15px}
.contest-download-warning-points>div.contest-download-warning-output-rule{border-color:rgba(255,86,98,.72);background:rgba(255,70,82,.12);box-shadow:inset 3px 0 0 rgba(255,86,98,.78)}
.contest-download-warning-output-rule b{font-size:16px;color:#ff8e98}
.contest-download-warning-output-rule span b{font-size:inherit;color:inherit}
html[data-theme="light"] .contest-download-warning-points>div.contest-download-warning-output-rule{border-color:rgba(201,32,47,.45);background:rgba(218,43,58,.08);box-shadow:inset 3px 0 0 rgba(201,32,47,.7)}
html[data-theme="light"] .contest-download-warning-output-rule b{color:#b91c2c}

.practice-list-title-line{display:flex;align-items:center;gap:9px;flex-wrap:wrap}
.practice-admin-test-badge{display:inline-flex;align-items:center;padding:3px 7px;border:1px solid rgba(255,190,70,.45);border-radius:999px;background:rgba(255,190,70,.08);font-size:10px;font-weight:800;letter-spacing:.05em;line-height:1.2}
.practice-admin-test-badge.muted{opacity:.68;border-color:var(--line);background:rgba(128,128,128,.08)}
.contest-dataset-status.expired{border-color:rgba(255,92,92,.38);background:rgba(255,92,92,.10);color:#ff9a9a}
html[data-theme="light"] .contest-dataset-status.expired{background:#fff0f0;color:#9f1f1f;border-color:#efb5b5}
.practice-list-row.admin-contest-test{border-style:dashed}
.practice-admin-test-banner{margin-bottom:16px}

/* 0038 · course vouchers */
.checkout-voucher-box{margin:0 0 16px;padding:14px 16px;border:1px solid var(--line);border-radius:14px;background:#080b11}
.checkout-voucher-toggle{display:flex;align-items:center;gap:11px;cursor:pointer}
.checkout-voucher-toggle input{width:18px;height:18px;flex:0 0 auto}
.checkout-voucher-toggle span{display:grid;gap:3px}
.checkout-voucher-toggle small{color:var(--muted);font-weight:500}
.checkout-voucher-picker{margin-top:13px;padding-top:13px;border-top:1px solid var(--line);display:grid;gap:7px}
.checkout-voucher-picker label{font-size:12px;font-weight:850;color:var(--muted);text-transform:uppercase;letter-spacing:.05em}
.checkout-voucher-picker select{width:100%;padding:11px 12px;border-radius:10px;border:1px solid var(--line);background:#07090e;color:var(--text);font:inherit;font-weight:800}
.voucher-summary-row b{color:#8ff0ba}
.checkout-total-row{padding-top:10px;border-top:1px solid var(--line);margin-top:5px}
.checkout-total-row b{font-size:1.08em}
.voucher-gift-section h3{margin:0 0 4px}
.course-voucher-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:12px;margin-top:12px}
.course-voucher-card{position:relative;overflow:hidden;padding:17px;border:1px solid rgba(61,220,151,.28);border-radius:16px;background:linear-gradient(145deg,rgba(61,220,151,.10),rgba(8,11,17,.98))}
.course-voucher-card::after{content:"";position:absolute;right:-18px;top:-18px;width:74px;height:74px;border-radius:50%;border:1px dashed rgba(255,255,255,.12)}
.course-voucher-card.reserved{border-color:rgba(255,190,75,.28);background:linear-gradient(145deg,rgba(255,190,75,.08),rgba(8,11,17,.98))}
.course-voucher-ticket{font-size:10px;font-weight:950;letter-spacing:.14em;color:var(--muted)}
.course-voucher-value{font-size:25px;font-weight:950;line-height:1.15;margin:5px 0}
.course-voucher-copy{font-size:12px;color:var(--muted);margin-bottom:9px}
.course-voucher-state{padding-top:8px;border-top:1px dashed rgba(255,255,255,.10)}
.voucher-admin-overview{margin-top:16px}
.voucher-admin-denoms{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin:12px 0}
.voucher-admin-denoms>div{padding:14px;border:1px solid var(--line);border-radius:13px;background:#070a10;display:grid;gap:3px}
.voucher-admin-denoms b{font-size:20px}
.voucher-admin-denoms span{font-size:11px;color:var(--muted);text-transform:uppercase;letter-spacing:.05em}
.admin-user-clickable{cursor:pointer;border-radius:10px;padding:5px;margin:-5px;transition:.15s ease}
.admin-user-clickable:hover{background:rgba(255,255,255,.045)}
.voucher-admin-grant{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
.admin-voucher-list{display:grid;gap:9px}
.admin-voucher-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 13px;border:1px solid var(--line);border-radius:12px;background:#070a10}
.admin-voucher-row.muted{opacity:.72}
.voucher-used-history{margin-top:14px}
.voucher-used-history summary{cursor:pointer;font-weight:800;color:var(--muted);margin-bottom:10px}
@media(max-width:680px){.voucher-admin-denoms,.voucher-admin-grant{grid-template-columns:1fr}.course-voucher-list{grid-template-columns:1fr}}

/* ===== TopAlgo scoreboard 2026 visual redesign ===== */
.scoreboard-page{max-width:1540px;margin-inline:auto;padding-top:18px}
.scoreboard-hero{display:grid;grid-template-columns:minmax(0,1fr) 310px;gap:24px;align-items:center;margin-bottom:18px;padding:24px 28px;border:1px solid #243143;border-radius:18px;background:linear-gradient(135deg,#0e1723 0%,#101b28 58%,#0d151f 100%);box-shadow:0 18px 44px rgba(0,0,0,.16)}
.scoreboard-hero-main{min-width:0}
.scoreboard-title-line{display:flex;align-items:center;gap:16px;flex-wrap:wrap;margin-top:12px}
.scoreboard-title-line h1{margin:0;font-size:clamp(28px,3.2vw,42px);line-height:1.08;letter-spacing:-.025em;color:#eef4ff}
.scoreboard-title-line .scoreboard-back{margin:0;padding:8px 14px;border-color:#4f77ff;color:#cbd9ff;background:rgba(70,106,220,.08)}
.scoreboard-live-badge{position:relative;gap:8px;padding:6px 11px;border-radius:9px;font-size:11px;font-weight:900;letter-spacing:.04em;box-shadow:none!important}
.scoreboard-live-badge::before{content:"";width:7px;height:7px;border-radius:50%;background:currentColor;box-shadow:0 0 9px currentColor}
.scoreboard-live-badge.live{color:#ff7b84;border-color:rgba(255,74,87,.52);background:rgba(145,29,38,.26)}
.scoreboard-live-badge.frozen{color:#ffe16b;border-color:rgba(255,214,70,.45);background:rgba(134,103,16,.22)}
.scoreboard-live-badge.ended{color:#a9b5c5;background:rgba(255,255,255,.035)}
.scoreboard-meta{display:flex;align-items:center;gap:0;flex-wrap:wrap;margin-top:17px;color:#9dacbf;font-size:13px}
.scoreboard-meta span{display:inline-flex;align-items:center;gap:5px;padding:0 15px;border-right:1px solid #263447;line-height:20px}
.scoreboard-meta span:first-child{padding-left:0}
.scoreboard-meta span:last-child{border-right:0}
.scoreboard-meta b{color:#c8d3e2;font-weight:700}
.scoreboard-end-countdown{min-height:112px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;padding:18px 20px;border-radius:16px;border:1px solid #324156;background:rgba(8,15,23,.34);font-variant-numeric:tabular-nums}
.scoreboard-end-countdown span{font-size:13px;font-weight:600;letter-spacing:0;text-transform:none;color:#aab6c6}
.scoreboard-end-countdown strong{font-size:clamp(30px,3.5vw,48px);line-height:1;color:#55e8a3;letter-spacing:.035em;font-weight:850;white-space:nowrap;text-shadow:0 0 18px rgba(64,229,155,.12);max-width:100%;text-align:center}
.scoreboard-end-countdown.has-days strong{font-size:clamp(22px,2.15vw,28px);letter-spacing:.01em}
.scoreboard-end-countdown.ended strong{font-size:17px;color:#aab6c6;letter-spacing:.06em}
.scoreboard-end-countdown.unlimited{gap:3px}
.scoreboard-end-countdown.unlimited strong{font-size:38px;line-height:.95;letter-spacing:0;color:#55e8a3}
.scoreboard-end-countdown.unlimited em{font-style:normal;font-size:16px;font-weight:800;line-height:1.2;color:#d9e4f2;white-space:nowrap}
.scoreboard-subbar{display:flex;align-items:center;justify-content:space-between;gap:18px;margin-bottom:16px;padding:12px 18px;border:1px solid #202c3c;border-radius:14px;background:#111b27;color:#8fa0b5;font-size:12px}
.scoreboard-subbar>div:first-child{display:flex;align-items:center;gap:12px}
.scoreboard-subbar b{color:#7fa5ff;font-size:14px}
.scoreboard-subbar-rule{color:#77889d;text-align:right}
.scoreboard-layout{display:block}
.scoreboard-board{border:1px solid #243244;border-radius:15px;background:#0b121a;overflow:hidden;box-shadow:0 14px 36px rgba(0,0,0,.12)}
.scoreboard-scroll{overflow:auto;max-width:100%;scrollbar-gutter:stable}
.scoreboard-table{width:100%;border-collapse:separate;border-spacing:0;min-width:max-content;font-variant-numeric:tabular-nums;background:#0a1119}
.scoreboard-table th,.scoreboard-table td{height:56px;padding:0;border-right:1px solid #203043;border-bottom:1px solid #203043;background:#0c151f}
.scoreboard-table th{position:sticky;top:0;z-index:5;background:#101b28;color:#d5dfec;font-size:12px;font-weight:800;letter-spacing:0;text-align:center}
.scoreboard-table tbody tr{cursor:default}
.scoreboard-table tbody tr:hover td{background:#101c29}
.scoreboard-table tbody tr.me td{background:#10233d}
.scoreboard-table tbody tr.me .scoreboard-rank-col,.scoreboard-table tbody tr.me .scoreboard-user-col{background:#10233d}
.scoreboard-table tbody tr.revealing td{filter:brightness(1.10)}
.scoreboard-table tbody tr.rank-move-focus td{box-shadow:inset 0 0 0 1px rgba(255,222,91,.28)}
.scoreboard-rank-col{width:72px;min-width:72px;text-align:center;position:sticky!important;left:0;z-index:3!important}
.scoreboard-user-col{width:210px;min-width:210px;position:sticky!important;left:72px;z-index:3!important;text-align:left!important;padding:0 18px!important}
.scoreboard-score-col{width:88px;min-width:88px;text-align:center}
.scoreboard-score-col b{font-size:15px;color:#edf4ff}
.scoreboard-penalty-col{width:110px;min-width:110px;text-align:center;color:#b3c1d1;font-size:13px}
.scoreboard-table thead .scoreboard-rank-col,.scoreboard-table thead .scoreboard-user-col{z-index:8!important;background:#101b28}
.scoreboard-table tbody .scoreboard-rank-col,.scoreboard-table tbody .scoreboard-user-col{background:#0c151f}
.scoreboard-table tbody tr:hover .scoreboard-rank-col,.scoreboard-table tbody tr:hover .scoreboard-user-col{background:#101c29}
.scoreboard-rank-wrap{display:flex;align-items:center;justify-content:center;gap:7px;min-height:100%}
.scoreboard-rank-wrap>b{font-size:13px;color:#d9e2ee}
.scoreboard-rank-medal{font-size:23px;line-height:1;transform:translateY(-1px)}
.scoreboard-rank-medal.gold{color:#ffd848;text-shadow:0 0 12px rgba(255,210,55,.2)}
.scoreboard-rank-medal.silver{color:#c3d1e7}
.scoreboard-rank-medal.bronze{color:#dd844d}
.scoreboard-user-cell{display:flex;align-items:center;min-width:0}
.scoreboard-user-cell>div{display:flex;flex-direction:column;min-width:0;gap:2px}
.scoreboard-user-cell b{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:13px;color:#eff5fd}
.scoreboard-user-cell small{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:10px;color:#7f90a6}
.scoreboard-table.dataset-columns .scoreboard-problem-group-head{min-width:92px!important;background:#0f1a27!important;border-bottom-color:#2c4058!important}
.scoreboard-table.dataset-columns .scoreboard-problem-group-head span{font-size:12px!important;line-height:1.1!important;color:#8eb1ff!important;font-weight:900;letter-spacing:.015em;text-transform:none}
.scoreboard-table.dataset-columns .scoreboard-dataset-head,.scoreboard-table.dataset-columns .scoreboard-problem-cell{width:92px!important;min-width:92px!important;max-width:92px!important}
.scoreboard-table.dataset-columns .scoreboard-dataset-head{background:#0d1722!important}
.scoreboard-table.dataset-columns .scoreboard-dataset-head span{font-size:11px!important;line-height:1!important;color:#c7d7f7!important;font-weight:900}
.scoreboard-table.dataset-columns thead tr:first-child th{height:36px!important;top:0}
.scoreboard-table.dataset-columns thead tr:nth-child(2) th{height:30px!important;top:36px!important}
.scoreboard-table.dataset-columns thead th[rowspan="2"]{height:66px!important;vertical-align:middle}
.scoreboard-problem-cell{padding:3px!important;background:#081019!important}
.scoreboard-table.dataset-columns .scoreboard-cell,.scoreboard-table.dataset-columns .scoreboard-cell.compact{width:100%!important;height:49px!important;min-height:49px!important;border-radius:6px!important;display:flex!important;align-items:center!important;justify-content:center!important;gap:8px!important;padding:0 8px!important;box-sizing:border-box!important;border:1px solid transparent!important;box-shadow:none!important;font-size:18px!important;transition:filter .14s ease,background-color .25s ease,border-color .25s ease!important}
.scoreboard-table.dataset-columns .scoreboard-cell:hover{transform:none!important;filter:brightness(1.08)}
.scoreboard-cell.correct{background:#073d2c!important;border-color:#0d5e43!important;color:#4df0a4!important}
.scoreboard-cell.wrong{background:#451721!important;border-color:#6d2531!important;color:#ff6d79!important}
.scoreboard-cell.pending,.scoreboard-cell.partial{background:linear-gradient(180deg,#cf9f12 0%,#e0b124 100%)!important;border-color:#f1c649!important;color:#fff0a6!important;box-shadow:inset 0 1px 0 rgba(255,240,170,.14)!important}
.scoreboard-cell.idle{background:#111c28!important;border-color:#172738!important;color:#7f91a7!important}
.scoreboard-cell-time{display:inline-block;font-size:11px;font-weight:650;line-height:1;color:currentColor;opacity:.92;white-space:nowrap;font-variant-numeric:tabular-nums}
.scoreboard-cell.pending .scoreboard-cell-time,.scoreboard-cell.idle .scoreboard-cell-time{display:none}
.scoreboard-cell.pending > .scoreboard-glyph.mark-pending{color:#fff4b8!important;font-size:19px!important;filter:drop-shadow(0 0 6px rgba(255,236,140,.24))!important}
.scoreboard-cell.idle > .scoreboard-glyph.mark-idle{color:#9aabc0!important;font-size:17px!important}
.scoreboard-cell.revealable{cursor:pointer!important}
.scoreboard-cell.revealable:hover{transform:none!important;filter:brightness(1.16)!important;box-shadow:inset 0 0 0 1px rgba(255,225,87,.26)!important}
.scoreboard-empty{display:inline-flex;align-items:center;width:max-content;max-width:100%;margin:0;padding:16px 20px;text-align:left;color:#8799af;border:1px solid #253447;border-radius:13px;background:#0e1823}
.scoreboard-board:has(>.scoreboard-empty){border:0;background:transparent;overflow:visible;width:max-content;max-width:100%;box-shadow:none}
.scoreboard-footer{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-top:16px;padding:14px 18px;border:1px solid #202f41;border-radius:14px;background:#0d1721}
.scoreboard-legend{display:flex;align-items:center;gap:20px;flex-wrap:wrap}
.scoreboard-legend span{display:inline-flex;align-items:center;gap:8px;padding:0;border:0;background:transparent!important;font-size:11px;font-weight:700}
.scoreboard-legend span>b{width:32px;height:32px;display:grid;place-items:center;border-radius:7px;font-size:18px;font-style:normal}
.scoreboard-legend span>em{font-style:normal;color:#a9b6c7;white-space:nowrap}
.scoreboard-legend .correct>b{color:#4df0a4;background:#073d2c;border:1px solid #0d5e43}
.scoreboard-legend .wrong>b{color:#ff6d79;background:#451721;border:1px solid #6d2531}
.scoreboard-legend .pending>b{color:#fff0a6;background:linear-gradient(180deg,#cf9f12 0%,#e0b124 100%);border:1px solid #f1c649;text-shadow:none;box-shadow:inset 0 1px 0 rgba(255,240,170,.14)}
.scoreboard-legend .idle>b{color:#9aabc0;background:#111c28;border:1px solid #172738}
.scoreboard-refresh-info{display:flex;flex-direction:column;align-items:flex-end;gap:5px;color:#8c9db2;font-size:11px;white-space:nowrap}
.scoreboard-refresh-info b{color:#bfcbd9}
.scoreboard-refresh-live{color:#69e9a8!important}
.scoreboard-reveal-controls{border-color:#293a50;background:#101b28;border-radius:13px;margin-bottom:14px}
html[data-theme="light"] .scoreboard-hero{background:linear-gradient(135deg,#f6f9fd,#eef4fb);border-color:#d6e0eb;box-shadow:none}
html[data-theme="light"] .scoreboard-title-line h1{color:#172335}
html[data-theme="light"] .scoreboard-meta{color:#64748b}
html[data-theme="light"] .scoreboard-meta b{color:#334155}
html[data-theme="light"] .scoreboard-end-countdown{background:#fff;border-color:#d5dfeb}
html[data-theme="light"] .scoreboard-end-countdown strong{color:#159968;text-shadow:none}
html[data-theme="light"] .scoreboard-subbar,html[data-theme="light"] .scoreboard-footer{background:#f7f9fc;border-color:#dbe3ec}
html[data-theme="light"] .scoreboard-board{background:#fff;border-color:#dbe3ec;box-shadow:none}
html[data-theme="light"] .scoreboard-table{background:#fff}
html[data-theme="light"] .scoreboard-table th{background:#eef3f8;color:#344256;border-color:#dbe4ee}
html[data-theme="light"] .scoreboard-table td{background:#fff;border-color:#e0e7ef}
html[data-theme="light"] .scoreboard-table thead .scoreboard-rank-col,html[data-theme="light"] .scoreboard-table thead .scoreboard-user-col{background:#eef3f8}
html[data-theme="light"] .scoreboard-table tbody .scoreboard-rank-col,html[data-theme="light"] .scoreboard-table tbody .scoreboard-user-col{background:#fff}
html[data-theme="light"] .scoreboard-table tbody tr:hover td,html[data-theme="light"] .scoreboard-table tbody tr:hover .scoreboard-rank-col,html[data-theme="light"] .scoreboard-table tbody tr:hover .scoreboard-user-col{background:#f5f8fb}
html[data-theme="light"] .scoreboard-table tbody tr.me td,html[data-theme="light"] .scoreboard-table tbody tr.me .scoreboard-rank-col,html[data-theme="light"] .scoreboard-table tbody tr.me .scoreboard-user-col{background:#eaf2ff}
html[data-theme="light"] .scoreboard-table.dataset-columns .scoreboard-problem-group-head{background:#e8eef6!important}
html[data-theme="light"] .scoreboard-table.dataset-columns .scoreboard-dataset-head{background:#f2f6fa!important}
html[data-theme="light"] .scoreboard-problem-cell{background:#f7f9fc!important}
html[data-theme="light"] .scoreboard-cell.correct{background:#dff8ed!important;border-color:#b5ead4!important;color:#10865a!important}
html[data-theme="light"] .scoreboard-cell.wrong{background:#fde9eb!important;border-color:#f4c5ca!important;color:#c83f4d!important}
html[data-theme="light"] .scoreboard-cell.pending{background:#eef2f7!important;border-color:#dbe3ed!important;color:#1f2937!important}
html[data-theme="light"] .scoreboard-cell.pending > .scoreboard-glyph.mark-pending{color:#1f2937!important}
html[data-theme="light"] .scoreboard-cell.idle{background:#f1f4f8!important;border-color:#e0e6ed!important;color:#718096!important}
.scoreboard-cell.pending .scoreboard-cell-time,.scoreboard-cell.partial .scoreboard-cell-time{color:#ffd84a!important;text-shadow:0 0 10px rgba(255,216,74,.18)!important}
html[data-theme="light"] .scoreboard-cell.pending .scoreboard-cell-time,html[data-theme="light"] .scoreboard-cell.partial .scoreboard-cell-time{color:#ffe167!important;text-shadow:none!important}
@media(max-width:900px){.scoreboard-hero{grid-template-columns:1fr}.scoreboard-end-countdown{min-height:92px}.scoreboard-end-countdown.has-days strong{font-size:clamp(22px,7vw,30px)}.scoreboard-subbar{align-items:flex-start;flex-direction:column}.scoreboard-subbar-rule{text-align:left}.scoreboard-footer{align-items:flex-start;flex-direction:column}.scoreboard-refresh-info{align-items:flex-start}}
@media(max-width:680px){.scoreboard-page{padding-inline:8px}.scoreboard-hero{padding:18px}.scoreboard-title-line h1{font-size:27px}.scoreboard-meta{align-items:flex-start;flex-direction:column;gap:6px}.scoreboard-meta span{padding:0;border:0}.scoreboard-rank-col{width:58px;min-width:58px}.scoreboard-user-col{width:170px;min-width:170px;left:58px;padding:0 12px!important}.scoreboard-table.dataset-columns .scoreboard-dataset-head,.scoreboard-table.dataset-columns .scoreboard-problem-cell{width:78px!important;min-width:78px!important;max-width:78px!important}.scoreboard-legend{gap:12px}.scoreboard-legend span>em{display:none}}
/* ===== End TopAlgo scoreboard 2026 visual redesign ===== */

/* ===== Scoreboard light-mode contrast + redesigned verdict icons ===== */
/* New verdict marks are inline SVG, so they stay crisp at every DPI and no longer use the old PNG assets. */
.scoreboard-table.dataset-columns .scoreboard-glyph.mark-check,
.scoreboard-table.dataset-columns .scoreboard-glyph.mark-cross{
  display:inline-flex!important;
  width:21px!important;
  height:21px!important;
  flex:0 0 21px!important;
  align-items:center!important;
  justify-content:center!important;
  transform:none!important;
  color:currentColor!important;
}
.scoreboard-glyph.mark-check svg,
.scoreboard-glyph.mark-cross svg{
  display:block!important;
  width:21px!important;
  height:21px!important;
  overflow:visible;
}
.scoreboard-glyph.mark-check svg path,
.scoreboard-glyph.mark-cross svg path{
  fill:none!important;
  stroke:currentColor!important;
  stroke-width:3.15!important;
  stroke-linecap:round!important;
  stroke-linejoin:round!important;
  vector-effect:non-scaling-stroke;
}
.scoreboard-glyph.mark-check svg{transform:rotate(-4deg)}
.scoreboard-glyph.mark-cross svg{transform:rotate(-2deg)}
.scoreboard-cell.correct .scoreboard-glyph.mark-check{color:#4df0a4!important}
.scoreboard-cell.wrong .scoreboard-glyph.mark-cross{color:#ff6d79!important}
.scoreboard-legend .scoreboard-glyph.mark-check,
.scoreboard-legend .scoreboard-glyph.mark-cross{width:19px!important;height:19px!important;flex-basis:19px!important}
.scoreboard-legend .scoreboard-glyph svg{width:19px!important;height:19px!important}
.scoreboard-legend .correct .scoreboard-glyph.mark-check{color:#4df0a4!important}
.scoreboard-legend .wrong .scoreboard-glyph.mark-cross{color:#ff6d79!important}

/* Light theme: explicitly override every dark-only scoreboard text/background that was making the board washed out. */
html[data-theme="light"] .scoreboard-page{color:#172335}
html[data-theme="light"] .scoreboard-hero{
  background:linear-gradient(135deg,#ffffff 0%,#f7faff 58%,#eef4fb 100%)!important;
  border-color:#cbd7e5!important;
  box-shadow:0 10px 28px rgba(31,50,75,.07)!important;
}
html[data-theme="light"] .scoreboard-title-line h1{color:#142033!important}
html[data-theme="light"] .scoreboard-title-line .scoreboard-back{color:#315fc4!important;border-color:#94afea!important;background:#f5f8ff!important}
html[data-theme="light"] .scoreboard-live-badge.live{color:#b42335!important;border-color:#e7a8b0!important;background:#fff1f3!important}
html[data-theme="light"] .scoreboard-live-badge.frozen{color:#7a5a00!important;border-color:#dec56c!important;background:#fff9dc!important}
html[data-theme="light"] .scoreboard-live-badge.ended{color:#475569!important;border-color:#cbd5e1!important;background:#f1f5f9!important}
html[data-theme="light"] .scoreboard-meta{color:#59697d!important}
html[data-theme="light"] .scoreboard-meta span{border-right-color:#d7e0eb!important}
html[data-theme="light"] .scoreboard-meta b{color:#233249!important}
html[data-theme="light"] .scoreboard-end-countdown{background:#fff!important;border-color:#cbd8e7!important}
html[data-theme="light"] .scoreboard-end-countdown span{color:#526174!important}
html[data-theme="light"] .scoreboard-end-countdown strong{color:#0b8b59!important;text-shadow:none!important}
html[data-theme="light"] .scoreboard-end-countdown.unlimited em{color:#24364d!important}
html[data-theme="light"] .scoreboard-subbar{background:#f5f8fc!important;border-color:#d3deea!important;color:#536378!important}
html[data-theme="light"] .scoreboard-subbar b{color:#315fc4!important}
html[data-theme="light"] .scoreboard-subbar-rule{color:#64748b!important}
html[data-theme="light"] .scoreboard-reveal-controls{background:#f6f8fc!important;border-color:#cfdaea!important}
html[data-theme="light"] .scoreboard-manual-reveal-copy b{color:#1f2d42!important}
html[data-theme="light"] .scoreboard-manual-reveal-copy span{color:#5d6d80!important}

html[data-theme="light"] .scoreboard-board{background:#fff!important;border-color:#cbd8e6!important;box-shadow:0 8px 24px rgba(31,50,75,.055)!important}
html[data-theme="light"] .scoreboard-table{background:#fff!important}
html[data-theme="light"] .scoreboard-table th,
html[data-theme="light"] .scoreboard-table td{border-right-color:#d8e1eb!important;border-bottom-color:#d8e1eb!important}
html[data-theme="light"] .scoreboard-table th{background:#eaf0f7!important;color:#27364b!important}
html[data-theme="light"] .scoreboard-table td{background:#fff!important;color:#243247!important}
html[data-theme="light"] .scoreboard-table thead .scoreboard-rank-col,
html[data-theme="light"] .scoreboard-table thead .scoreboard-user-col{background:#e5edf6!important;color:#223148!important}
html[data-theme="light"] .scoreboard-table tbody .scoreboard-rank-col,
html[data-theme="light"] .scoreboard-table tbody .scoreboard-user-col{background:#fff!important}
html[data-theme="light"] .scoreboard-table tbody tr:hover td,
html[data-theme="light"] .scoreboard-table tbody tr:hover .scoreboard-rank-col,
html[data-theme="light"] .scoreboard-table tbody tr:hover .scoreboard-user-col{background:#f3f7fb!important}
html[data-theme="light"] .scoreboard-table tbody tr.me td,
html[data-theme="light"] .scoreboard-table tbody tr.me .scoreboard-rank-col,
html[data-theme="light"] .scoreboard-table tbody tr.me .scoreboard-user-col,
html[data-theme="light"] .scoreboard-table tbody tr.me .scoreboard-score-col,
html[data-theme="light"] .scoreboard-table tbody tr.me .scoreboard-penalty-col{background:#e6f0ff!important}
html[data-theme="light"] .scoreboard-table tbody tr.me .scoreboard-rank-col{box-shadow:inset 3px 0 #3f75cb,inset 0 1px #94b5e8,inset 0 -1px #94b5e8!important}
html[data-theme="light"] .scoreboard-table tbody tr.me td{box-shadow:inset 0 1px #94b5e8,inset 0 -1px #94b5e8}
html[data-theme="light"] .scoreboard-rank-wrap>b{color:#26364d!important}
html[data-theme="light"] .scoreboard-rank-medal.silver{color:#64748b!important}
html[data-theme="light"] .scoreboard-rank-medal.bronze{color:#a8582d!important}
html[data-theme="light"] .scoreboard-user-cell b{color:#17263a!important}
html[data-theme="light"] .scoreboard-user-cell small{color:#65758a!important}
html[data-theme="light"] .scoreboard-score-col b{color:#17263a!important}
html[data-theme="light"] .scoreboard-penalty-col{color:#475569!important}

html[data-theme="light"] .scoreboard-table.dataset-columns .scoreboard-problem-group-head{background:#dfe8f4!important;border-bottom-color:#c3d0df!important}
html[data-theme="light"] .scoreboard-table.dataset-columns .scoreboard-problem-group-head span{color:#234d9b!important}
html[data-theme="light"] .scoreboard-table.dataset-columns .scoreboard-dataset-head{background:#edf2f7!important}
html[data-theme="light"] .scoreboard-table.dataset-columns .scoreboard-dataset-head span{color:#26374d!important}
html[data-theme="light"] .scoreboard-problem-cell{background:#f5f7fa!important}
html[data-theme="light"] .scoreboard-cell.correct{background:#dcf5e9!important;border-color:#9edbbd!important;color:#08784d!important}
html[data-theme="light"] .scoreboard-cell.correct .scoreboard-glyph.mark-check{color:#08784d!important}
html[data-theme="light"] .scoreboard-cell.wrong{background:#fde7ea!important;border-color:#e9a9b1!important;color:#b42335!important}
html[data-theme="light"] .scoreboard-cell.wrong .scoreboard-glyph.mark-cross{color:#b42335!important}
/* Keep Pending/Frozen high-contrast and preserve the white question mark rule. */
html[data-theme="light"] .scoreboard-cell.pending,
html[data-theme="light"] .scoreboard-cell.partial{background:linear-gradient(180deg,#d1a21b 0%,#e6b82b 100%)!important;border-color:#ebb93a!important;color:#fff4c1!important}
html[data-theme="light"] .scoreboard-cell.pending > .scoreboard-glyph.mark-pending,
html[data-theme="light"] .scoreboard-cell.partial > .scoreboard-glyph.mark-pending{color:#fff6d0!important;text-shadow:none!important;filter:drop-shadow(0 0 4px rgba(255,239,170,.14))!important}
html[data-theme="light"] .scoreboard-cell.idle{background:#edf2f7!important;border-color:#d5dee8!important;color:#64748b!important}
html[data-theme="light"] .scoreboard-cell.idle > .scoreboard-glyph.mark-idle{color:#64748b!important}
html[data-theme="light"] .scoreboard-cell-time{opacity:1!important}

html[data-theme="light"] .scoreboard-footer{background:#f7f9fc!important;border-color:#d3deea!important}
html[data-theme="light"] .scoreboard-legend span>em{color:#435268!important}
html[data-theme="light"] .scoreboard-legend .correct>b{background:#dcf5e9!important;border-color:#9edbbd!important;color:#08784d!important}
html[data-theme="light"] .scoreboard-legend .correct .scoreboard-glyph.mark-check{color:#08784d!important}
html[data-theme="light"] .scoreboard-legend .wrong>b{background:#fde7ea!important;border-color:#e9a9b1!important;color:#b42335!important}
html[data-theme="light"] .scoreboard-legend .wrong .scoreboard-glyph.mark-cross{color:#b42335!important}
html[data-theme="light"] .scoreboard-legend .pending>b{background:linear-gradient(180deg,#d1a21b 0%,#e6b82b 100%)!important;border-color:#ebb93a!important;color:#fff4c1!important}
html[data-theme="light"] .scoreboard-legend .pending .scoreboard-pending-mark{color:#fff!important}
html[data-theme="light"] .scoreboard-legend .idle>b{background:#edf2f7!important;border-color:#d5dee8!important;color:#64748b!important}
html[data-theme="light"] .scoreboard-refresh-info{color:#59697d!important}
html[data-theme="light"] .scoreboard-refresh-info b{color:#243247!important}
html[data-theme="light"] .scoreboard-refresh-live{color:#08784d!important}
html[data-theme="light"] .scoreboard-empty{color:#475569!important;border-color:#d3deea!important;background:#fff!important}
/* ===== End scoreboard light-mode contrast + redesigned verdict icons ===== */
.scoreboard-legend .scoreboard-glyph.mark-check,
.scoreboard-legend .scoreboard-glyph.mark-cross{display:inline-flex!important;align-items:center!important;justify-content:center!important;transform:none!important;letter-spacing:0!important;font-size:0!important}

/* ===== Manual pending reveal animation ===== */
.scoreboard-cell{position:relative;isolation:isolate}
.scoreboard-cell.correct{--scoreboard-reveal-accent:#55f59d}
.scoreboard-cell.wrong{--scoreboard-reveal-accent:#ff6b75}
.scoreboard-cell.pending,.scoreboard-cell.partial{--scoreboard-reveal-accent:#ffe45c}
.scoreboard-cell.expired{--scoreboard-reveal-accent:#ff6b75}
/* Reveal result is immediate: no translate/opacity animation on the verdict cell itself. */
.scoreboard-cell.just-revealed{z-index:4;overflow:visible;filter:brightness(1.08)}
.scoreboard-cell.just-revealed::after{content:"";position:absolute;inset:-2px;border:2px solid var(--scoreboard-reveal-accent,#fff);border-radius:7px;pointer-events:none;opacity:.72}
/* Only the ranking row moves, slowly and smoothly, after the new verdict is already visible. */
.scoreboard-row.rank-move-focus td{box-shadow:inset 0 1px rgba(255,255,255,.08),inset 0 -1px rgba(255,255,255,.08)}
html[data-theme="light"] .scoreboard-row.rank-move-focus td{box-shadow:inset 0 1px rgba(74,112,166,.20),inset 0 -1px rgba(74,112,166,.20)}
@media(prefers-reduced-motion:reduce){.scoreboard-cell.just-revealed{filter:none!important}.scoreboard-cell.just-revealed::after{display:none!important}}
/* ===== End manual pending reveal animation ===== */

/* ===== Large problem editor workspace ===== */
.modal.problem-editor-modal{
  width:min(1320px,calc(100vw - 32px));
  max-width:none;
  height:calc(100vh - 32px);
  max-height:calc(100vh - 32px);
  padding:0;
  overflow:hidden;
  border-radius:20px;
}
.problem-editor-shell{height:100%;display:flex;flex-direction:column;min-height:0}
.problem-editor-head{
  flex:0 0 auto;display:flex;align-items:flex-start;justify-content:space-between;gap:20px;
  padding:22px 26px 18px;border-bottom:1px solid var(--line);background:#080c14
}
.problem-editor-head h2{margin:5px 0 4px;font-size:28px;line-height:1.15}
.problem-editor-head p{margin:0}
.problem-editor-close{flex:0 0 auto}
.problem-editor-body{flex:1 1 auto;min-height:0;overflow:auto;padding:20px 26px 28px}
.problem-editor-top-grid{display:grid;grid-template-columns:minmax(0,1.45fr) minmax(280px,.8fr);gap:18px;align-items:start}
.problem-editor-settings{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;align-items:start}
.problem-editor-settings .field{margin:8px 0}
.problem-editor-notes{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin:8px 0 12px}
.problem-editor-notes .banner{margin:0}
.problem-editor-statement .markdown-editor-shell{margin-top:12px}
.problem-editor-modal .markdown-editor-grid{min-height:610px}
.problem-editor-modal .site-post-markdown-editor{height:570px;min-height:570px;max-height:none;resize:none}
.problem-editor-modal .site-post-markdown-preview{height:570px;min-height:570px;max-height:none}
.problem-editor-practice{margin:4px 0 0}
.problem-editor-footer{
  flex:0 0 auto;display:flex;align-items:center;justify-content:space-between;gap:18px;
  padding:14px 26px;border-top:1px solid var(--line);background:#080c14;box-shadow:0 -12px 30px rgba(0,0,0,.14)
}
html[data-theme="light"] .problem-editor-head,
html[data-theme="light"] .problem-editor-footer{background:#fff;border-color:#d9dee7}
html[data-theme="light"] .problem-editor-footer{box-shadow:0 -12px 30px rgba(30,35,48,.07)}
@media(max-width:1050px){
  .problem-editor-settings{grid-template-columns:repeat(2,minmax(0,1fr))}
  .problem-editor-top-grid{grid-template-columns:minmax(0,1fr)}
  .problem-editor-notes{grid-template-columns:minmax(0,1fr)}
  .problem-editor-modal .markdown-editor-grid{grid-template-columns:minmax(0,1fr)}
  .problem-editor-modal .markdown-editor-pane{border-right:0;border-bottom:1px solid var(--line)}
  .problem-editor-modal .site-post-markdown-editor{height:430px;min-height:430px}
  .problem-editor-modal .site-post-markdown-preview{height:auto;min-height:390px;max-height:none}
}
@media(max-width:700px){
  .modal.problem-editor-modal{width:100%;height:calc(100vh - 12px);max-height:calc(100vh - 12px);border-radius:18px}
  .problem-editor-head{padding:16px;align-items:center}
  .problem-editor-head h2{font-size:24px}
  .problem-editor-head p{display:none}
  .problem-editor-body{padding:14px 16px 22px}
  .problem-editor-settings{grid-template-columns:minmax(0,1fr)}
  .problem-editor-footer{padding:12px 16px;align-items:stretch;flex-direction:column}
  .problem-editor-footer>.small{display:none}
  .problem-editor-footer .user-actions{width:100%}
  .problem-editor-footer .user-actions button{flex:1}
}
/* ===== End large problem editor workspace ===== */


/* ===== Contest list title polish + heavy pasted-output warning ===== */
.contest-list-head{align-items:center}
.contest-page-title{display:flex;align-items:center;gap:14px;min-height:48px}
.contest-page-title-accent{display:block;width:5px;height:42px;border-radius:999px;background:linear-gradient(180deg,#ff4b5c,#e5162d);box-shadow:0 0 18px rgba(235,30,49,.28);flex:0 0 5px}
.contest-page-title h1{margin:0;font-size:clamp(31px,4vw,42px);line-height:1.05;letter-spacing:-.025em}
.contest-page-subtitle{margin:9px 0 0 19px!important}
.output-paste-warning{margin:0 0 9px;padding:9px 11px;border:1px solid rgba(224,178,75,.36);border-radius:9px;background:rgba(224,178,75,.08);color:#d6c79b;font-size:12px;line-height:1.45}
.output-paste-warning b{color:#ffd85a}
html[data-theme="light"] .contest-page-title-accent{background:linear-gradient(180deg,#e32636,#c91c2b);box-shadow:0 0 14px rgba(201,28,43,.16)}
html[data-theme="light"] .output-paste-warning{border-color:#e7c45c;background:#fff9df;color:#66572b}
html[data-theme="light"] .output-paste-warning b{color:#8a6400}
@media(max-width:680px){.contest-list-head{align-items:flex-start}.contest-page-title{gap:10px}.contest-page-title-accent{height:34px}.contest-page-title h1{font-size:30px}.contest-page-subtitle{margin-left:15px!important}}
/* ===== End contest list title polish + heavy pasted-output warning ===== */

/* Contest list header: compact kicker, no duplicated large title/action. */
.contest-page-kicker{margin-bottom:10px;letter-spacing:.16em}
.contest-list-head{align-items:flex-start}


/* ===== Flat contest list + Markdown contest guide ===== */
.contest-flat-list{display:grid;grid-template-columns:minmax(0,1fr);gap:22px;width:100%;margin-top:22px}
.contest-flat-empty{margin-top:22px}
.contest-guide-button{flex:0 0 auto;white-space:nowrap;padding:10px 14px}
.modal.contest-guide-modal{width:min(980px,calc(100vw - 32px));max-height:min(90vh,900px);padding:0;overflow:hidden}
.contest-guide-shell{display:grid;grid-template-rows:auto minmax(0,1fr) auto;max-height:min(90vh,900px)}
.contest-guide-head{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;padding:22px 26px 18px;border-bottom:1px solid var(--line);background:#080c14;position:sticky;top:0;z-index:2}
.contest-guide-head .eyebrow{margin-bottom:6px}
.contest-guide-head h2{margin:0;font-size:27px;line-height:1.2}
.contest-guide-close{width:42px;height:42px;padding:0;display:grid;place-items:center;border-radius:12px;flex:0 0 auto}
.contest-guide-content{overflow:auto;padding:24px 28px 30px;line-height:1.7}
.contest-guide-content h1{font-size:28px;margin:0 0 18px}
.contest-guide-content h2{font-size:20px;margin:28px 0 10px}
.contest-guide-content h3{font-size:16px;margin:22px 0 8px}
.contest-guide-content img{max-width:100%;height:auto;border-radius:14px;border:1px solid var(--line);display:block;margin:16px auto}
.contest-guide-content table{width:100%;border-collapse:collapse;margin:16px 0}
.contest-guide-content th,.contest-guide-content td{border:1px solid var(--line);padding:9px 11px;text-align:left}
.contest-guide-footer{display:flex;justify-content:flex-end;padding:14px 26px 18px;border-top:1px solid var(--line);background:#080c14}
.contest-guide-loading{padding:28px}
html[data-theme="light"] .contest-guide-head,html[data-theme="light"] .contest-guide-footer{background:#fff}
@media(max-width:680px){.contest-list-head{gap:14px}.contest-guide-button{width:100%}.modal.contest-guide-modal{width:calc(100vw - 12px);max-height:calc(100vh - 12px)}.contest-guide-shell{max-height:calc(100vh - 12px)}.contest-guide-head{padding:18px 16px 14px}.contest-guide-head h2{font-size:23px}.contest-guide-content{padding:19px 16px 24px}.contest-guide-footer{padding:12px 16px 16px}.contest-flat-list{gap:14px;margin-top:18px}}
/* ===== End flat contest list + Markdown contest guide ===== */


/* ===== Contest guide Markdown images ===== */
.contest-guide-figure{
  margin:20px auto 24px;
  width:min(100%,860px);
  padding:0;
}
.contest-guide-image{
  display:block;
  width:100%;
  max-width:100%;
  height:auto;
  margin:0!important;
  border:1px solid #28364a!important;
  border-radius:14px!important;
  background:#0d1622;
  box-shadow:0 12px 30px rgba(0,0,0,.22);
}
.contest-guide-figure figcaption{
  margin-top:8px;
  text-align:center;
  color:#8fa0b6;
  font-size:12px;
  line-height:1.45;
}
html[data-theme="light"] .contest-guide-image{
  border-color:#d3deea!important;
  background:#f6f8fb;
  box-shadow:0 10px 24px rgba(30,50,75,.08);
}
html[data-theme="light"] .contest-guide-figure figcaption{color:#607086}
@media(max-width:680px){
  .contest-guide-figure{margin:16px auto 20px}
  .contest-guide-image{border-radius:10px!important}
  .contest-guide-figure figcaption{text-align:left;font-size:11px}
}
/* ===== End contest guide Markdown images ===== */

/* Admin contest submission output viewer */
.admin-submission-output-actions{display:flex;gap:8px;align-items:center;white-space:nowrap}
.admin-submission-output-actions .ghost{padding:7px 10px;font-size:12px}
.modal.admin-output-modal{width:min(1100px,calc(100vw - 32px));max-height:min(92vh,920px);overflow:auto}
.admin-output-shell{min-width:0}
.admin-output-head{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;margin-bottom:14px}
.admin-output-head h2{margin:5px 0 5px}
.admin-output-meta{display:flex;flex-wrap:wrap;gap:8px 18px;color:var(--muted);font-size:13px;margin-bottom:14px}
.output-preview-warning{margin:0 0 14px}
.admin-output-preview{margin:0;max-height:62vh;overflow:auto;white-space:pre;tab-size:4;padding:18px;border:1px solid var(--line);border-radius:14px;background:#05080e;color:#e9eef7;font:13px/1.55 ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono",monospace}
.admin-output-preview code{font:inherit;color:inherit;background:none;border:0;padding:0}
html[data-theme="light"] .admin-output-preview{background:#f7f9fc;color:#121826}
@media(max-width:680px){.admin-submission-output-actions{flex-direction:column;align-items:stretch}.modal.admin-output-modal{width:calc(100vw - 12px);max-height:calc(100vh - 12px)}.admin-output-head{flex-direction:column}.admin-output-preview{max-height:55vh;font-size:12px;padding:13px}}


/* ===== Final scoreboard palette refresh (World Finals bright + improved light mode) ===== */
.scoreboard-table.dataset-columns .scoreboard-cell,
.scoreboard-table.dataset-columns .scoreboard-cell.compact{gap:10px!important;padding:0 10px!important;font-weight:800!important}
.scoreboard-cell-time{display:inline-block!important;font-size:12px!important;font-weight:800!important;line-height:1!important;opacity:1!important;white-space:nowrap!important;font-variant-numeric:tabular-nums!important}
.scoreboard-cell.idle .scoreboard-cell-time{display:none!important}
.scoreboard-cell.correct{background:linear-gradient(180deg,#00b050 0%,#00d95f 100%)!important;border-color:#33eb86!important;color:#ffffff!important;box-shadow:inset 0 1px 0 rgba(255,255,255,.14)!important}
.scoreboard-cell.correct .scoreboard-glyph.mark-check,
.scoreboard-cell.correct .scoreboard-cell-time{color:#ffffff!important}
.scoreboard-cell.wrong{background:linear-gradient(180deg,#e74c3c 0%,#ff4040 100%)!important;border-color:#ff7a7a!important;color:#ffffff!important;box-shadow:inset 0 1px 0 rgba(255,255,255,.10)!important}
.scoreboard-cell.wrong .scoreboard-glyph.mark-cross,
.scoreboard-cell.wrong .scoreboard-cell-time{color:#ffffff!important}
.scoreboard-cell.pending,
.scoreboard-cell.expired,
.scoreboard-cell.partial{background:linear-gradient(180deg,#f1c40f 0%,#ffd200 100%)!important;border-color:#ffe36d!important;color:#ffffff!important;box-shadow:inset 0 1px 0 rgba(255,255,255,.18)!important}
.scoreboard-cell.pending .scoreboard-glyph.mark-pending,
.scoreboard-cell.expired .scoreboard-glyph.mark-pending,
.scoreboard-cell.partial .scoreboard-glyph.mark-pending,
.scoreboard-cell.pending .scoreboard-cell-time,
.scoreboard-cell.expired .scoreboard-cell-time,
.scoreboard-cell.partial .scoreboard-cell-time{color:#ffffff!important;text-shadow:none!important;filter:none!important}
.scoreboard-legend .correct>b{background:linear-gradient(180deg,#00b050 0%,#00d95f 100%)!important;border-color:#33eb86!important;color:#ffffff!important}
.scoreboard-legend .wrong>b{background:linear-gradient(180deg,#e74c3c 0%,#ff4040 100%)!important;border-color:#ff7a7a!important;color:#ffffff!important}
.scoreboard-legend .pending>b{background:linear-gradient(180deg,#f1c40f 0%,#ffd200 100%)!important;border-color:#ffe36d!important;color:#ffffff!important}
.scoreboard-legend .correct .scoreboard-glyph.mark-check,
.scoreboard-legend .wrong .scoreboard-glyph.mark-cross,
.scoreboard-legend .pending .scoreboard-pending-mark{color:#ffffff!important}

html[data-theme="light"] .scoreboard-page{color:#183054!important}
html[data-theme="light"] .scoreboard-hero{background:linear-gradient(135deg,#ffffff 0%,#f6f9fd 62%,#eef4fb 100%)!important;border:1px solid #d7e1ee!important;border-radius:24px!important;box-shadow:0 14px 40px rgba(45,70,103,.08)!important}
html[data-theme="light"] .scoreboard-title-line h1{color:#18305f!important}
html[data-theme="light"] .scoreboard-meta{color:#60738b!important}
html[data-theme="light"] .scoreboard-meta b{color:#243f73!important}
html[data-theme="light"] .scoreboard-subbar,
html[data-theme="light"] .scoreboard-footer{background:#f8fbff!important;border-color:#d6e1ee!important}
html[data-theme="light"] .scoreboard-board{background:#ffffff!important;border:1px solid #d5dfeb!important;border-radius:28px!important;box-shadow:0 18px 48px rgba(45,70,103,.10)!important}
html[data-theme="light"] .scoreboard-table{background:#ffffff!important}
html[data-theme="light"] .scoreboard-table th,
html[data-theme="light"] .scoreboard-table td{border-right-color:#d8e1ec!important;border-bottom-color:#d8e1ec!important}
html[data-theme="light"] .scoreboard-table th{background:#dfe7f1!important;color:#173c80!important;font-weight:900!important}
html[data-theme="light"] .scoreboard-table td{background:#fbfdff!important;color:#183054!important}
html[data-theme="light"] .scoreboard-table thead .scoreboard-rank-col,
html[data-theme="light"] .scoreboard-table thead .scoreboard-user-col{background:#d5dfeb!important;color:#183054!important}
html[data-theme="light"] .scoreboard-table tbody .scoreboard-rank-col,
html[data-theme="light"] .scoreboard-table tbody .scoreboard-user-col{background:#fbfdff!important}
html[data-theme="light"] .scoreboard-table tbody tr:hover td,
html[data-theme="light"] .scoreboard-table tbody tr:hover .scoreboard-rank-col,
html[data-theme="light"] .scoreboard-table tbody tr:hover .scoreboard-user-col{background:#f3f7fc!important}
html[data-theme="light"] .scoreboard-table tbody tr.me td,
html[data-theme="light"] .scoreboard-table tbody tr.me .scoreboard-rank-col,
html[data-theme="light"] .scoreboard-table tbody tr.me .scoreboard-user-col,
html[data-theme="light"] .scoreboard-table tbody tr.me .scoreboard-score-col,
html[data-theme="light"] .scoreboard-table tbody tr.me .scoreboard-penalty-col{background:#e7f0fb!important}
html[data-theme="light"] .scoreboard-table tbody tr.me .scoreboard-rank-col{box-shadow:inset 4px 0 #4c84d6,inset 0 1px #94b5e8,inset 0 -1px #94b5e8!important}
html[data-theme="light"] .scoreboard-table tbody tr.me td{box-shadow:inset 0 1px #94b5e8,inset 0 -1px #94b5e8!important}
html[data-theme="light"] .scoreboard-rank-wrap>b,
html[data-theme="light"] .scoreboard-user-cell b,
html[data-theme="light"] .scoreboard-score-col b,
html[data-theme="light"] .scoreboard-penalty-col{color:#18305f!important}
html[data-theme="light"] .scoreboard-user-cell small{color:#6d8098!important}
html[data-theme="light"] .scoreboard-table.dataset-columns .scoreboard-problem-group-head{background:#d5dfeb!important;border-bottom-color:#c1cfdf!important}
html[data-theme="light"] .scoreboard-table.dataset-columns .scoreboard-problem-group-head span{color:#204a9d!important}
html[data-theme="light"] .scoreboard-table.dataset-columns .scoreboard-dataset-head{background:#eaf0f6!important}
html[data-theme="light"] .scoreboard-table.dataset-columns .scoreboard-dataset-head span{color:#18305f!important}
html[data-theme="light"] .scoreboard-problem-cell{background:#f3f7fc!important}
html[data-theme="light"] .scoreboard-cell.correct{background:#cae8da!important;border-color:#9dd1b3!important;color:#0c8153!important;box-shadow:none!important}
html[data-theme="light"] .scoreboard-cell.correct .scoreboard-glyph.mark-check,
html[data-theme="light"] .scoreboard-cell.correct .scoreboard-cell-time{color:#0c8153!important}
html[data-theme="light"] .scoreboard-cell.wrong{background:#f7dfe3!important;border-color:#e8a8b2!important;color:#c12d46!important;box-shadow:none!important}
html[data-theme="light"] .scoreboard-cell.wrong .scoreboard-glyph.mark-cross,
html[data-theme="light"] .scoreboard-cell.wrong .scoreboard-cell-time{color:#c12d46!important}
html[data-theme="light"] .scoreboard-cell.pending,
html[data-theme="light"] .scoreboard-cell.expired,
html[data-theme="light"] .scoreboard-cell.partial{background:linear-gradient(180deg,#f4e3a5 0%,#efcf74 100%)!important;border-color:#dfba51!important;color:#c77a00!important;box-shadow:none!important}
html[data-theme="light"] .scoreboard-cell.pending .scoreboard-glyph.mark-pending,
html[data-theme="light"] .scoreboard-cell.expired .scoreboard-glyph.mark-pending,
html[data-theme="light"] .scoreboard-cell.partial .scoreboard-glyph.mark-pending,
html[data-theme="light"] .scoreboard-cell.pending .scoreboard-cell-time,
html[data-theme="light"] .scoreboard-cell.expired .scoreboard-cell-time,
html[data-theme="light"] .scoreboard-cell.partial .scoreboard-cell-time{color:#c77a00!important}
html[data-theme="light"] .scoreboard-cell.idle{background:#eef3f8!important;border-color:#d5deea!important;color:#6a7c94!important}
html[data-theme="light"] .scoreboard-cell.idle > .scoreboard-glyph.mark-idle{color:#6a7c94!important}
html[data-theme="light"] .scoreboard-legend .correct>b{background:#cae8da!important;border-color:#9dd1b3!important;color:#0c8153!important}
html[data-theme="light"] .scoreboard-legend .correct .scoreboard-glyph.mark-check{color:#0c8153!important}
html[data-theme="light"] .scoreboard-legend .wrong>b{background:#f7dfe3!important;border-color:#e8a8b2!important;color:#c12d46!important}
html[data-theme="light"] .scoreboard-legend .wrong .scoreboard-glyph.mark-cross{color:#c12d46!important}
html[data-theme="light"] .scoreboard-legend .pending>b{background:linear-gradient(180deg,#f4e3a5 0%,#efcf74 100%)!important;border-color:#dfba51!important;color:#c77a00!important}
html[data-theme="light"] .scoreboard-legend .pending .scoreboard-pending-mark{color:#c77a00!important}
html[data-theme="light"] .scoreboard-legend .idle>b{background:#eef3f8!important;border-color:#d5deea!important;color:#6a7c94!important}
/* ===== End final scoreboard palette refresh ===== */

/* ===== Light theme account modal fix ===== */
html[data-theme="light"] .account-card{
  background:linear-gradient(135deg,#f8fbff 0%,#eef4fb 100%)!important;
  border-color:#d3deeb!important;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.9),0 8px 20px rgba(42,67,99,.06)!important;
}
html[data-theme="light"] .account-name{color:#17263a!important}
html[data-theme="light"] .account-school{color:#52657d!important}
html[data-theme="light"] .account-card .small{color:#66778d!important}
html[data-theme="light"] .account-avatar{border-color:#cbd7e5!important;box-shadow:0 2px 8px rgba(38,61,91,.10)!important}
html[data-theme="light"] .role-badge,
html[data-theme="light"] .status-badge,
html[data-theme="light"] .demo-tag,
html[data-theme="light"] .me-tag{
  background:#eef2f7!important;
  border-color:#d3dae5!important;
  color:#536176!important;
}
html[data-theme="light"] .admin-role{
  background:#eef0ff!important;
  border-color:#b7c0ee!important;
  color:#4050a7!important;
}
/* ===== End light theme account modal fix ===== */


/* ===== Fix revealed Time Expired: red ? + elapsed time, not yellow Pending ===== */
.scoreboard-cell.pending,
.scoreboard-cell.partial{
  background:linear-gradient(180deg,#f1c40f 0%,#ffd200 100%)!important;
  border-color:#ffe36d!important;
  color:#ffffff!important;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.18)!important;
}
.scoreboard-cell.pending .scoreboard-glyph.mark-pending,
.scoreboard-cell.partial .scoreboard-glyph.mark-pending,
.scoreboard-cell.pending .scoreboard-cell-time,
.scoreboard-cell.partial .scoreboard-cell-time{
  color:#ffffff!important;
  text-shadow:none!important;
  filter:none!important;
}
.scoreboard-cell.expired{
  background:linear-gradient(180deg,#e74c3c 0%,#ff4040 100%)!important;
  border-color:#ff7a7a!important;
  color:#ffffff!important;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.10)!important;
  --scoreboard-reveal-accent:#ff6b75;
}
.scoreboard-cell.expired .scoreboard-glyph.mark-pending,
.scoreboard-cell.expired .scoreboard-cell-time{
  color:#ffffff!important;
  text-shadow:none!important;
  filter:none!important;
}
.scoreboard-cell.pending,.scoreboard-cell.partial{--scoreboard-reveal-accent:#ffe45c}

html[data-theme="light"] .scoreboard-cell.pending,
html[data-theme="light"] .scoreboard-cell.partial{
  background:linear-gradient(180deg,#f4e3a5 0%,#efcf74 100%)!important;
  border-color:#dfba51!important;
  color:#c77a00!important;
  box-shadow:none!important;
}
html[data-theme="light"] .scoreboard-cell.pending .scoreboard-glyph.mark-pending,
html[data-theme="light"] .scoreboard-cell.partial .scoreboard-glyph.mark-pending,
html[data-theme="light"] .scoreboard-cell.pending .scoreboard-cell-time,
html[data-theme="light"] .scoreboard-cell.partial .scoreboard-cell-time{
  color:#c77a00!important;
}
html[data-theme="light"] .scoreboard-cell.expired{
  background:#f7dfe3!important;
  border-color:#e8a8b2!important;
  color:#c12d46!important;
  box-shadow:none!important;
}
html[data-theme="light"] .scoreboard-cell.expired .scoreboard-glyph.mark-pending,
html[data-theme="light"] .scoreboard-cell.expired .scoreboard-cell-time{
  color:#c12d46!important;
  text-shadow:none!important;
  filter:none!important;
}
/* ===== End revealed Time Expired visual fix ===== */


/* ===== Scoreboard reveal flight layering fix ===== */
.scoreboard-flight-overlay{
  position:fixed!important;
  z-index:2147483000!important;
  pointer-events:none!important;
  margin:0!important;
  padding:0!important;
  overflow:visible!important;
  will-change:transform!important;
  transform:translateY(0);
  isolation:isolate;
}
.scoreboard-flight-overlay .scoreboard-flight-table{
  margin:0!important;
  border-collapse:separate!important;
  border-spacing:0!important;
  table-layout:fixed!important;
  box-shadow:0 16px 36px rgba(0,0,0,.38)!important;
}
.scoreboard-flight-overlay .scoreboard-flight-row,
.scoreboard-flight-overlay .scoreboard-flight-row td{visibility:visible!important}
.scoreboard-flight-overlay .scoreboard-rank-col,
.scoreboard-flight-overlay .scoreboard-user-col{
  position:relative!important;
  left:auto!important;
  z-index:auto!important;
}
.scoreboard-flight-overlay td{position:relative!important;z-index:auto!important}
html[data-theme="light"] .scoreboard-flight-overlay .scoreboard-flight-table{box-shadow:0 16px 36px rgba(42,65,94,.24)!important}
/* ===== End scoreboard reveal flight layering fix ===== */


/* ===== Wider scoreboard desktop layout ===== */
main:has(.scoreboard-page){
  max-width:none!important;
  width:100%;
  padding:8px clamp(16px,1.5vw,28px) 72px!important;
}
.scoreboard-page{
  width:100%!important;
  max-width:none!important;
  margin:0 auto!important;
  padding-top:0!important;
}
.scoreboard-page.section{margin-top:0!important}
.scoreboard-hero,.scoreboard-subbar,.scoreboard-layout,.scoreboard-footer{
  width:100%;
}
@media(max-width:680px){
  main:has(.scoreboard-page){padding:6px 10px 56px!important}
  .scoreboard-page{width:100%!important;padding-inline:0!important}
}

/* The scoreboard board itself is a <main>, so override the global main container limits. */
.scoreboard-layout > main.scoreboard-board{
  width:100%!important;
  max-width:none!important;
  margin:0!important;
  padding:0!important;
}

/* ===== End wider scoreboard desktop layout ===== */

/* ===== Global Admin Broadcast ===== */
.global-broadcast-host{
  position:fixed;
  left:clamp(10px,2vw,28px);
  right:clamp(10px,2vw,28px);
  z-index:140;
  display:flex;
  justify-content:center;
  pointer-events:none;
}
.global-broadcast-host.hidden{display:none!important}
.global-broadcast-card{
  width:min(1180px,100%);
  display:grid;
  grid-template-columns:auto minmax(0,1fr) auto;
  align-items:center;
  gap:14px;
  padding:13px 17px;
  border:1px solid rgba(255,194,69,.66);
  border-radius:14px;
  background:linear-gradient(135deg,rgba(69,43,4,.98),rgba(30,22,7,.98));
  box-shadow:0 18px 48px rgba(0,0,0,.38),0 0 0 1px rgba(255,217,105,.06) inset;
  color:#fff7d6;
  pointer-events:auto;
  animation:global-broadcast-enter .22s ease-out both;
}
.global-broadcast-label{font-size:11px;font-weight:1000;letter-spacing:.07em;color:#ffd45d;white-space:nowrap}
.global-broadcast-card strong{font-size:15px;line-height:1.45;color:#fff;overflow-wrap:anywhere}
.global-broadcast-card small{font-size:10px;color:#d9c99c;white-space:nowrap;font-variant-numeric:tabular-nums}
@keyframes global-broadcast-enter{from{opacity:0;transform:translateY(-8px) scale(.99)}to{opacity:1;transform:translateY(0) scale(1)}}
.global-broadcast-admin-card textarea{min-height:110px;resize:vertical}
.global-broadcast-preview-card{margin-top:14px}
.global-broadcast-preview{display:flex;flex-direction:column;gap:8px;padding:14px 16px;border:1px solid rgba(255,194,69,.34);border-radius:12px;background:rgba(255,194,69,.07)}
.global-broadcast-preview>b{color:#ffd45d;font-size:12px;letter-spacing:.05em}
.global-broadcast-preview>span{color:var(--text);font-weight:800;line-height:1.55}
.global-broadcast-preview>small{color:var(--muted)}
html[data-theme="light"] .global-broadcast-card{background:linear-gradient(135deg,#fff6cf,#fffaf0);border-color:#e6b93d;color:#513b00;box-shadow:0 14px 38px rgba(80,59,0,.16)}
html[data-theme="light"] .global-broadcast-label{color:#8a5d00}
html[data-theme="light"] .global-broadcast-card strong{color:#2b2413}
html[data-theme="light"] .global-broadcast-card small{color:#806d3d}
@media(max-width:680px){
  .global-broadcast-host{left:8px;right:8px}
  .global-broadcast-card{grid-template-columns:1fr;gap:5px;padding:11px 13px}
  .global-broadcast-label{white-space:normal}
  .global-broadcast-card strong{font-size:14px}
  .global-broadcast-card small{justify-self:start}
}
/* ===== End Global Admin Broadcast ===== */


/* ===== Scoreboard participant name truncation ===== */
.scoreboard-user-col{
  width:190px!important;
  min-width:190px!important;
  max-width:190px!important;
}
.scoreboard-user-cell,
.scoreboard-user-cell>div{
  width:100%;
  max-width:100%;
  min-width:0;
  overflow:hidden;
}
.scoreboard-user-cell b,
.scoreboard-user-cell small{
  display:block;
  max-width:100%;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}
@media(max-width:680px){
  .scoreboard-user-col{
    width:155px!important;
    min-width:155px!important;
    max-width:155px!important;
  }
}
/* ===== End scoreboard participant name truncation ===== */


/* ===== Practice source code + finalized scoreboard refresh ===== */
.scoreboard-refresh-final{color:#aab6c6!important}
.problem-editor-practice-source{margin-top:14px}
.problem-source-code-input{min-height:260px!important;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace!important;font-size:13px!important;line-height:1.55!important;tab-size:4;white-space:pre}
.practice-source-card{margin-top:18px;padding:0!important;overflow:hidden}
.practice-source-card summary{cursor:pointer;padding:16px 18px;font-weight:900;list-style:none;display:flex;align-items:center;justify-content:space-between;gap:12px}
.practice-source-card summary::-webkit-details-marker{display:none}
.practice-source-card summary::after{content:"▾";color:var(--muted);transition:transform .15s ease}
.practice-source-card[open] summary::after{transform:rotate(180deg)}
.practice-source-note{padding:0 18px 12px;color:var(--muted);font-size:12px}
.practice-source-code{margin:0!important;border-top:1px solid var(--line);border-radius:0!important;max-height:720px}
/* ===== End practice source code + finalized scoreboard refresh ===== */

/* 0043 · adjustable voucher + contest bulk grant */
.voucher-admin-config{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:14px;align-items:end;margin:14px 0 10px;padding:14px;border:1px solid var(--line);border-radius:14px;background:#070a10}
.voucher-admin-config .field{margin:0}
.voucher-admin-config .primary{min-height:44px;white-space:nowrap}
.voucher-current-preview{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:13px 15px;border:1px solid rgba(61,220,151,.28);border-radius:13px;background:rgba(61,220,151,.08)}
.voucher-current-preview span{font-size:12px;color:var(--muted);font-weight:800;text-transform:uppercase;letter-spacing:.05em}
.voucher-current-preview b{font-size:23px;color:#8ff0ba}
.voucher-contest-grant{display:grid;grid-template-columns:minmax(0,1fr) minmax(320px,.9fr);gap:18px;align-items:end;margin-bottom:12px}
.voucher-contest-grant h4{margin:0 0 5px;font-size:16px}
.voucher-contest-grant p{margin:0}
.voucher-contest-grant-controls{display:grid;gap:9px}
.voucher-contest-grant-controls select{width:100%;padding:11px 12px;border:1px solid var(--line);border-radius:11px;background:#070a10;color:var(--text);font:inherit;font-weight:700}
.voucher-admin-grant-single{grid-template-columns:1fr!important}
.voucher-admin-grant-single .tiny{padding:0 2px}
html[data-theme="light"] .voucher-admin-config,html[data-theme="light"] .voucher-contest-grant-controls select{background:#f7f9fc}
html[data-theme="light"] .voucher-current-preview{background:#edf9f3;border-color:#bce6d0}
html[data-theme="light"] .voucher-current-preview b{color:#157449}
@media(max-width:760px){.voucher-admin-config,.voucher-contest-grant{grid-template-columns:1fr}.voucher-admin-config .primary{width:100%}}

/* ===== Contest reward recipient picker ===== */
.modal.contest-reward-picker-modal{width:min(1180px,calc(100vw - 32px));max-width:none;max-height:92vh;overflow:auto}
.contest-reward-picker-head{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;margin-bottom:14px}
.contest-reward-picker-head h2{margin:5px 0 6px}
.contest-reward-picker-summary{display:flex;flex-direction:column;align-items:flex-end;gap:7px;min-width:230px}
.contest-reward-picker-summary span{display:inline-flex;padding:7px 10px;border:1px solid var(--line);border-radius:10px;background:#080c13;font-size:12px;font-weight:850;text-align:right}
.contest-reward-picker-toolbar{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:11px 12px;border:1px solid var(--line);border-radius:12px;background:#080c13;margin-bottom:10px}
.contest-reward-table-wrap{max-height:52vh;overflow:auto;border:1px solid var(--line);border-radius:13px}
.contest-reward-table{min-width:760px;margin:0}
.contest-reward-table th{position:sticky;top:0;z-index:2;background:#101620}
.contest-reward-table td,.contest-reward-table th{vertical-align:middle}
.contest-reward-check-col{width:68px;text-align:center!important}
.contest-reward-candidate-check{width:18px;height:18px;accent-color:#6f7cff;cursor:pointer}
.contest-reward-picker-note{display:grid;gap:7px;margin-top:12px;padding:12px 14px;border:1px solid var(--line);border-radius:12px;background:#080c13;color:var(--muted);font-size:12px;line-height:1.55}
.contest-reward-picker-actions{position:sticky;bottom:-1px;z-index:3;margin:14px -1px -1px;padding:12px 1px 1px;background:linear-gradient(180deg,rgba(8,11,17,0),#080b11 24%)}
.contest-reward-list{display:grid;gap:12px;margin-top:12px}
.contest-reward-card{margin:0!important}
.contest-reward-source{margin-bottom:4px;color:#aeb9ca;text-transform:uppercase;letter-spacing:.04em;font-weight:800}
html[data-theme="light"] .contest-reward-picker-summary span,html[data-theme="light"] .contest-reward-picker-toolbar,html[data-theme="light"] .contest-reward-picker-note{background:#f7f9fc}
html[data-theme="light"] .contest-reward-table th{background:#f0f4f9}
html[data-theme="light"] .contest-reward-picker-actions{background:linear-gradient(180deg,rgba(255,255,255,0),#fff 24%)}
@media(max-width:760px){.modal.contest-reward-picker-modal{width:calc(100vw - 12px);max-height:calc(100vh - 12px)}.contest-reward-picker-head{flex-direction:column}.contest-reward-picker-summary{align-items:flex-start;min-width:0}.contest-reward-picker-toolbar{align-items:flex-start;flex-direction:column}.contest-reward-picker-actions{display:grid;grid-template-columns:1fr}.contest-reward-picker-actions button{width:100%}}
/* ===== End contest reward recipient picker ===== */

/* 0045 · personal message attached to each voucher */
.course-voucher-note{margin:10px 0 9px;padding:10px 11px;border:1px solid rgba(255,255,255,.09);border-radius:11px;background:rgba(255,255,255,.035);font-size:12px;line-height:1.55;color:var(--text)}
.course-voucher-note>b{display:block;margin-bottom:4px;color:#ffd782;font-size:11px;letter-spacing:.02em}
.contest-reward-voucher-message{margin:14px 0;padding:14px;border:1px solid var(--line);border-radius:14px;background:#070a10}
.contest-reward-voucher-message label{display:block;margin-bottom:8px;font-size:12px;font-weight:900;color:var(--text)}
.contest-reward-voucher-message textarea,.voucher-admin-message-field textarea{width:100%;min-height:92px;resize:vertical;box-sizing:border-box;padding:11px 12px;border:1px solid var(--line);border-radius:11px;background:#05080d;color:var(--text);font:inherit;line-height:1.55}
.contest-reward-voucher-message textarea:focus,.voucher-admin-message-field textarea:focus{outline:none;border-color:rgba(111,124,255,.65);box-shadow:0 0 0 3px rgba(111,124,255,.10)}
.admin-voucher-note{margin-top:6px;padding:7px 9px;border-left:2px solid rgba(255,215,130,.55);background:rgba(255,215,130,.055);border-radius:0 8px 8px 0;color:#d9c59c!important;max-width:620px;white-space:pre-wrap}
html[data-theme="light"] .course-voucher-note{background:#fff8e8;border-color:#ead8ae;color:#344054}
html[data-theme="light"] .course-voucher-note>b{color:#9a6400}
html[data-theme="light"] .contest-reward-voucher-message{background:#f8fafc}
html[data-theme="light"] .contest-reward-voucher-message textarea,html[data-theme="light"] .voucher-admin-message-field textarea{background:#fff;color:#172335}
html[data-theme="light"] .admin-voucher-note{background:#fff8e8;color:#7a5a1b!important;border-left-color:#ddb45d}
/* end 0045 */


/* ===== One-time reward arrival popup ===== */
.reward-arrival-popup{text-align:left}
.reward-arrival-icon{width:58px;height:58px;display:grid;place-items:center;margin:0 auto 10px;border-radius:18px;background:linear-gradient(145deg,rgba(255,206,84,.20),rgba(111,124,255,.16));border:1px solid rgba(255,213,102,.28);font-size:30px}
.reward-arrival-popup>.eyebrow,.reward-arrival-popup>h2,.reward-arrival-popup>.reward-arrival-intro{text-align:center}
.reward-arrival-popup>h2{margin:5px 0 8px;font-size:28px}
.reward-arrival-intro{margin:0 auto 18px;max-width:560px;color:var(--muted);line-height:1.65}
.reward-arrival-section{margin-top:16px;padding-top:15px;border-top:1px solid var(--line)}
.reward-arrival-section>h3{margin:0 0 10px;font-size:14px}
.reward-arrival-popup .course-voucher-list{grid-template-columns:1fr}
.reward-arrival-popup .contest-reward-list{grid-template-columns:1fr}
.reward-arrival-actions{margin-top:18px}
html[data-theme="light"] .reward-arrival-icon{background:linear-gradient(145deg,#fff6d8,#eef1ff);border-color:#ead79c}
@media(max-width:560px){.reward-arrival-popup>h2{font-size:24px}.reward-arrival-actions{display:grid;grid-template-columns:1fr}.reward-arrival-actions button{width:100%}}
/* ===== End one-time reward arrival popup ===== */

/* ===== Homepage hero/profile redesign ===== */
.home-redesign-grid{
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(360px,430px);
  gap:28px;
  align-items:stretch;
  margin:24px 0 0;
}
.home-intro-panel,.home-profile-card,.home-side-offer{
  border:1px solid var(--line);
  border-radius:28px;
  background:linear-gradient(180deg,#090d13 0%,#070a0f 100%);
  box-shadow:0 24px 60px rgba(0,0,0,.22);
}
.home-intro-panel{padding:54px 44px 42px;min-width:0}
.home-intro-panel h1{
  margin:10px 0 30px;
  max-width:950px;
}
.home-hero-title{
  font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  font-size:clamp(38px,3.35vw,52px);
  line-height:1.04;
  letter-spacing:-.04em;
  font-weight:900;
  text-transform:uppercase;
}
.home-hero-line{display:block;white-space:nowrap}
.home-hero-blue{color:#3b82f6}
.home-faq-list{display:grid;gap:10px}
.home-faq-row{
  display:grid;
  grid-template-columns:54px minmax(170px,220px) minmax(0,1fr);
  align-items:center;
  min-height:82px;
  border:1px solid #273140;
  border-radius:18px;
  background:linear-gradient(180deg,#0d131c,#0a1017);
  overflow:hidden;
}
.home-faq-row:hover{border-color:#39475d;background:linear-gradient(180deg,#101824,#0b121b)}
.home-faq-icon{
  width:38px;height:38px;margin-left:14px;display:grid;place-items:center
}
.home-faq-icon span{
  width:17px;height:17px;border-radius:999px;background:#7c83ff;
  box-shadow:0 0 0 7px rgba(124,131,255,.12),0 0 18px rgba(124,131,255,.28)
}
.home-faq-question{padding:18px 18px 18px 8px;font-size:16px;font-weight:900;color:var(--text);border-right:1px solid #273140}
.home-faq-answer{padding:18px 24px;color:#aeb9c9;font-size:15px;line-height:1.55}
.home-faq-answer p{margin:0}
.home-faq-empty{padding:22px;border:1px dashed var(--line);border-radius:16px;color:var(--muted)}
.home-main-column,.home-profile-column{display:grid;gap:18px;min-width:0;height:100%}
.home-intro-panel,.home-profile-card{height:100%;box-sizing:border-box}
.home-profile-card{padding:20px;background:linear-gradient(155deg,#171226 0%,#100c17 54%,#14090f 100%);border-color:#453554}
.home-profile-head{display:grid;grid-template-columns:minmax(0,1fr);gap:14px}
.home-profile-photo{
  display:block;width:100%;height:305px;object-fit:cover;object-position:center top;border-radius:20px;
  border:1px solid rgba(255,255,255,.10);background:#090b10
}
.home-profile-photo-fallback{display:grid;place-items:center;font-size:46px;font-weight:1000;color:#fff}
.home-profile-identity{padding:0 4px 4px}
.home-profile-identity span{display:block;color:#aeb7ff;font-size:12px;font-weight:900;letter-spacing:.1em;text-transform:uppercase;margin-bottom:3px}
.home-profile-identity h2{margin:0;font-size:30px;line-height:1.08}
.home-profile-section{padding:18px 4px 2px;border-top:1px solid rgba(255,255,255,.10);margin-top:12px}
.home-profile-section h3{display:flex;align-items:center;gap:9px;margin:0 0 13px;font-size:16px}
.home-profile-section ul{list-style:none;display:grid;gap:9px;padding:0;margin:0}
.home-profile-section li{position:relative;padding-left:18px;color:#c8cfda;font-size:13.5px;line-height:1.5}
.home-profile-section li:before{content:"";position:absolute;left:0;top:.58em;width:7px;height:7px;border-radius:999px;background:#ffc83d;box-shadow:0 0 10px rgba(255,200,61,.28)}
.home-profile-section-students li:before{background:#ff426d;box-shadow:0 0 10px rgba(255,66,109,.25)}
.home-profile-section-students .home-student-stats{gap:11px}
.home-profile-section-students .home-student-stats li{padding:10px 12px;font-size:14px;line-height:1.45;display:flex;align-items:baseline;gap:7px;border:1px solid rgba(255,255,255,.075);border-radius:12px;background:rgba(255,255,255,.028)}
.home-profile-section-students .home-student-stats li:before{display:none}
.home-student-stat-number{flex:0 0 auto;color:#ffd45a;font-size:22px;font-weight:1000;letter-spacing:-.025em;line-height:1}
.home-student-stat-plus{font-size:.82em;margin-left:1px}
.home-student-stat-text{min-width:0;color:#c7cfdd;font-weight:720}
.home-profile-section li b{font-weight:650;color:#d7deea}
.home-profile-section li small{display:block;color:#8d9aae;margin-top:2px;font-size:11px}
.home-side-offer{padding:24px;min-height:220px}
.home-side-offer.combo-offer-coming-soon{min-height:240px}
.home-side-offer .home-coming-soon-wrap{padding:10px 8px 4px}
.home-side-offer .home-coming-soon-text{font-size:clamp(28px,3vw,40px)}
.home-side-offer .home-coming-soon-wrap h2{font-size:23px!important}
.home-profile-admin-card,.home-faq-admin-card,.home-side-offer-admin-card{margin-top:18px}
.home-photo-position-editor{display:grid;grid-template-columns:minmax(260px,430px) minmax(280px,1fr);gap:18px;align-items:center;margin:16px 0 20px}
.home-photo-position-preview{position:relative;overflow:hidden;border:1px solid var(--line);border-radius:20px;background:#090b10;cursor:ns-resize;touch-action:none;user-select:none}
.home-photo-position-preview.dragging{cursor:grabbing}
.home-photo-position-preview .home-profile-photo{height:320px;border:0;border-radius:0;pointer-events:none}
.home-photo-drag-hint{position:absolute;left:50%;bottom:12px;transform:translateX(-50%);padding:7px 11px;border-radius:999px;background:rgba(5,8,13,.82);border:1px solid rgba(255,255,255,.16);color:#dfe7f3;font-size:11px;font-weight:800;white-space:nowrap;pointer-events:none;backdrop-filter:blur(6px)}
.home-photo-position-control{min-width:0}
.home-photo-position-label{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-bottom:10px}
.home-photo-position-label span{font-variant-numeric:tabular-nums;color:#aeb7ff;font-weight:900}
.home-photo-position-control input[type="range"]{width:100%;accent-color:#7c83ff}
.home-photo-position-scale{display:flex;justify-content:space-between;gap:12px;margin-top:4px;color:var(--muted);font-size:11px}
html[data-theme="light"] .home-photo-drag-hint{background:rgba(255,255,255,.88);border-color:#d7e1ec;color:#33445d}
@media(max-width:820px){.home-photo-position-editor{grid-template-columns:1fr}.home-photo-position-preview{max-width:520px}.home-photo-position-preview .home-profile-photo{height:300px}}


html[data-theme="light"] .home-intro-panel,
html[data-theme="light"] .home-profile-card,
html[data-theme="light"] .home-side-offer{
  background:#fff;
  border-color:#d9e1eb;
  box-shadow:0 16px 38px rgba(41,58,82,.07);
}
html[data-theme="light"] .home-profile-card{background:linear-gradient(155deg,#fff 0%,#f9f7ff 55%,#fff8fa 100%)}
html[data-theme="light"] .home-faq-row{background:#fff;border-color:#dbe3ec}
html[data-theme="light"] .home-faq-row:hover{background:#f8fafc;border-color:#c7d4e2}
html[data-theme="light"] .home-faq-question{border-color:#dbe3ec;color:#152238}
html[data-theme="light"] .home-faq-answer{color:#52627a}
html[data-theme="light"] .home-profile-section{border-color:#e4e8ef}
html[data-theme="light"] .home-profile-section li,
html[data-theme="light"] .home-profile-section li b{color:#33445d}
html[data-theme="light"] .home-profile-section-students .home-student-stats li{background:#f8fafc;border-color:#e4e8ef}
html[data-theme="light"] .home-student-stat-number{color:#b66c00}
html[data-theme="light"] .home-student-stat-text{color:#33445d}
html[data-theme="light"] .home-profile-identity h2{color:#17243a}

@media(max-width:1100px){
  .home-redesign-grid{grid-template-columns:minmax(0,1fr) 360px;gap:18px}
  .home-intro-panel{padding:40px 28px 32px}
  .home-faq-row{grid-template-columns:50px minmax(150px,190px) minmax(0,1fr)}
}
@media(max-width:900px){
  .home-redesign-grid{grid-template-columns:1fr}
  .home-profile-column{grid-template-columns:1fr;align-items:start}
  .home-profile-photo{height:300px}
}
@media(max-width:700px){
  .home-redesign-grid{margin-top:12px;gap:14px}
  .home-intro-panel,.home-profile-card,.home-side-offer{border-radius:20px}
  .home-intro-panel{padding:26px 16px 18px}
  .home-intro-panel h1{margin-bottom:22px}.home-hero-title{font-size:clamp(32px,9.4vw,44px);line-height:1.02}.home-hero-line{white-space:normal}
  .home-faq-row{grid-template-columns:48px minmax(0,1fr);min-height:0}
  .home-faq-icon{grid-row:1/3;align-self:stretch;height:auto;margin:9px 0 9px 9px}
  .home-faq-question{padding:13px 13px 5px;border-right:0}
  .home-faq-answer{padding:3px 13px 14px;font-size:13px}
  .home-profile-column{grid-template-columns:1fr}
  .home-profile-photo{height:265px}
}
/* ===== End homepage hero/profile redesign ===== */

/* ===== Contest email reminder admin ===== */
.contest-email-admin{min-width:0}
.contest-email-body{min-height:220px;resize:vertical;line-height:1.6}
.contest-email-vars{margin:-4px 0 12px;color:var(--muted)}
.contest-email-vars code{display:inline-block;margin:3px 2px;padding:3px 6px;border:1px solid var(--line);border-radius:7px;background:var(--card2);color:var(--text)}
.contest-email-preview-wrap{margin-top:16px;padding:14px;border:1px solid var(--line);border-radius:14px;background:var(--card2)}
.contest-email-preview{margin-top:8px;padding:22px;border:1px solid var(--line);border-radius:14px;background:#fff;color:#172033;box-shadow:0 8px 24px rgba(0,0,0,.08)}
.contest-email-preview-kicker{font-size:11px;font-weight:900;letter-spacing:.12em;color:#3b82f6;margin-bottom:10px}
.contest-email-preview h3{margin:0 0 16px;color:#111827;font-size:22px;line-height:1.25}
.contest-email-preview p{margin:0 0 14px;line-height:1.65;color:#243044}
.contest-email-preview-button{display:inline-block;margin-top:8px;padding:10px 16px;border-radius:9px;background:#2563eb;color:#fff;font-weight:900}
.contest-email-schedule{display:flex;align-items:center;gap:18px;flex-wrap:wrap;margin:14px 0;padding:14px 16px;border:1px solid var(--line);border-radius:14px;background:var(--card2)}
.contest-email-schedule>div:first-child{margin-right:auto;min-width:220px}
.contest-email-kind-switch{display:flex;gap:10px;flex-wrap:wrap;margin:16px 0 12px}
.contest-email-kind-switch button{min-width:150px}
.contest-email-editor-note{margin-bottom:14px}
.contest-email-error{margin-top:4px;max-width:360px;color:#fca5a5;white-space:normal;word-break:break-word}
.contest-email-actions{flex-wrap:wrap}
.contest-email-history{max-height:260px;overflow:auto}
@media(max-width:680px){.contest-email-preview{padding:16px}.contest-email-actions button{width:100%}}
/* ===== End contest email reminder admin ===== */

/* ===== Homepage intro points + FAQ jump/section ===== */
.home-faq-jump{
  width:100%;margin-top:16px;padding:14px 18px;border:1px solid #2b3545;border-radius:16px;
  background:rgba(255,255,255,.025);color:var(--text);display:flex;align-items:center;justify-content:space-between;
  gap:14px;font:inherit;font-weight:900;cursor:pointer;text-align:left;transition:.18s ease
}
.home-faq-jump:hover{border-color:#56627a;background:rgba(124,131,255,.08);transform:translateY(-1px)}
.home-faq-jump b{display:grid;place-items:center;width:32px;height:32px;border-radius:999px;background:rgba(124,131,255,.13);color:#aeb3ff;font-size:18px;transition:transform .28s ease}
.home-faq-jump[aria-expanded="true"] b{transform:rotate(180deg)}
.home-faq-expand{display:grid;grid-template-rows:0fr;opacity:0;margin-top:0;transition:grid-template-rows .34s ease,opacity .24s ease,margin-top .34s ease}
.home-faq-expand.open{grid-template-rows:1fr;opacity:1;margin-top:14px}
.home-faq-expand-inner{overflow:hidden}
.home-frequent-questions-list{display:grid;gap:12px;max-width:980px}
.home-frequent-question{border:1px solid var(--line);border-radius:18px;background:rgba(255,255,255,.025);overflow:hidden}
.home-frequent-question-title{padding:18px 20px;font-weight:900;color:var(--text);font-size:16px}
.home-frequent-answer{padding:16px 20px 20px;color:#aeb9c9;line-height:1.65;border-top:1px solid rgba(255,255,255,.06)}
.home-frequent-answer p{margin:0}
.home-frequent-answer p+p{margin-top:10px}
html[data-theme="light"] .home-faq-jump{background:#fff;border-color:#dbe3ec;color:#152238}
html[data-theme="light"] .home-faq-jump:hover{background:#f8fafc;border-color:#c7d4e2}
html[data-theme="light"] .home-frequent-question{background:#fff;border-color:#dbe3ec}
html[data-theme="light"] .home-frequent-answer{color:#52627a;border-color:#e4e8ef}
@media(max-width:700px){
  .home-faq-jump{margin-top:12px;padding:12px 14px;border-radius:14px}
  .home-frequent-question-title{padding:15px 16px;font-size:15px}
  .home-frequent-answer{padding:14px 16px 16px;font-size:14px}
}
/* ===== End homepage intro points + FAQ jump/section ===== */

/* ===== TopAlgo blue-black visual system =====
   Public-facing accents use one blue family. Semantic danger/admin stays red. */
:root{
  --bg:#020611;
  --card:#07101d;
  --card2:#0a1424;
  --text:#f5f8ff;
  --muted:#91a0b8;
  --line:#1b2b43;
  --accent:#2563eb;
  --accent2:#3b82f6;
  --shadow:0 26px 78px rgba(0,0,0,.64);
}
body{
  background:
    radial-gradient(circle at 10% -8%,rgba(37,99,235,.15),transparent 28%),
    radial-gradient(circle at 92% 2%,rgba(59,130,246,.10),transparent 26%),
    linear-gradient(180deg,#020611 0%,#030914 52%,#02050c 100%);
}
.topbar{
  background:rgba(2,6,17,.94);
  border-bottom-color:rgba(96,165,250,.10);
  box-shadow:0 10px 34px rgba(0,0,0,.42);
}
.brand:focus-visible{outline-color:rgba(59,130,246,.72)}
.brand-logo-image{filter:drop-shadow(0 7px 18px rgba(37,99,235,.10))}
.hero-panel,.card,.admin-panel{
  background:linear-gradient(180deg,rgba(8,17,31,.985),rgba(4,10,20,.985));
  border-color:rgba(96,165,250,.10);
}
.profile-card{background:linear-gradient(180deg,rgba(8,16,31,.99),rgba(5,9,20,.99))}
.ghost{background:#07101c;border-color:#1b2b43}
.ghost:hover{background:#0b1728;border-color:#31527e}
.primary{
  background:linear-gradient(135deg,#2563eb,#3b82f6);
  box-shadow:0 10px 28px rgba(37,99,235,.22);
}
.primary:hover{box-shadow:0 13px 34px rgba(37,99,235,.30)}
.eyebrow{color:#8ab4ff}
a{color:#7fb0ff}
a:hover{color:#a9c8ff}
.pill{background:#0b1627;color:#d4e3ff;border-color:#223a5d}
.banner{border-color:rgba(59,130,246,.24);background:rgba(37,99,235,.08);color:#dbeafe}
.section-label{color:#dbeafe;border-color:rgba(59,130,246,.34);background:rgba(37,99,235,.11)}
.section-label:before{background:#3b82f6;box-shadow:0 0 0 4px rgba(59,130,246,.15)}
.field input:focus,.field textarea:focus,.field select:focus,
.admin-table input:focus,.admin-table textarea:focus{
  border-color:#3b82f6;
  box-shadow:0 0 0 3px rgba(59,130,246,.13);
}
.month-card:hover,.forum-category-card:hover,.roadmap-card:hover{
  border-color:rgba(59,130,246,.35);
}
.intro-video-play{
  background:rgba(37,99,235,.14);
  border-color:rgba(59,130,246,.38);
  color:#60a5fa;
}
.teacher-gallery{background:linear-gradient(135deg,rgba(37,99,235,.12),rgba(255,255,255,.025))}
.teacher-avatar-photo,.teacher-avatar-fallback{background:#0b1b38}
.site-post-content blockquote{border-left-color:#3b82f6;background:rgba(37,99,235,.08)}
.site-post-content a{color:#7fb0ff;border-bottom-color:rgba(127,176,255,.35)}
.site-post-content a:hover{color:#b6d0ff}

/* Public chat/contact follows the blue brand system. */
.contact-widget-body a:hover{border-color:rgba(59,130,246,.34);background:rgba(37,99,235,.10)}
.contact-widget-icon{background:rgba(37,99,235,.15);color:#60a5fa}
.site-chat-message.from-visitor{background:linear-gradient(135deg,#2563eb,#1d4ed8);color:#fff}
.admin-chat-row.active{border-color:rgba(59,130,246,.45);background:rgba(37,99,235,.10)}
.site-chat-launcher{
  background:linear-gradient(135deg,#2563eb,#1d4ed8);
  box-shadow:0 12px 30px rgba(37,99,235,.30);
}
.site-chat-launcher:hover{
  background:linear-gradient(135deg,#3b82f6,#2563eb);
  border-color:rgba(255,255,255,.28);
  box-shadow:0 14px 34px rgba(37,99,235,.38);
}
/* Unread badges stay red: they are alert indicators. */

/* Payment/promo surfaces: blue instead of old decorative red. */
.sepay-checkout-card{border-color:rgba(59,130,246,.26);background:linear-gradient(180deg,rgba(37,99,235,.09),rgba(5,10,20,.90))}
.sepay-dot{background:#3b82f6;box-shadow:0 0 0 5px rgba(59,130,246,.11),0 0 20px rgba(59,130,246,.42)}
.order-open-hint{color:#8ab4ff}
.order-user-item-button:hover{border-color:#24446d;background:linear-gradient(180deg,#081627,#050a13)}
.order-user-item-button:focus-visible{outline-color:#3b82f6}

/* Contest list: blue CTA/status/highlights rather than amber/red decoration. */
.contest-status.upcoming{
  color:#8ab4ff;
  border-color:rgba(59,130,246,.38);
  background:rgba(37,99,235,.10);
}
.home-upcoming-contest:hover{border-color:rgba(59,130,246,.44);background:var(--card2)}
.home-upcoming-label{color:#60a5fa}
.contest-problem-row-clickable:hover,.practice-list-row:hover{
  border-color:rgba(59,130,246,.38);
  background:rgba(37,99,235,.035);
}
.contest-problem-row-clickable:focus-visible,.practice-list-row:focus-visible{
  outline-color:rgba(59,130,246,.70);
}
.contest-list-section.upcoming .contest-list-title h2,
.contest-list-section.running .contest-list-title h2,
.contest-list-section.ended .contest-list-title h2{color:#8ab4ff}
.contest-list-section.upcoming .contest-list-title h2::before,
.contest-list-section.running .contest-list-title h2::before,
.contest-list-section.ended .contest-list-title h2::before{
  background:#3b82f6;
  box-shadow:0 0 10px rgba(59,130,246,.30);
}
.contest-upcoming-gate{
  border-color:rgba(59,130,246,.30);
  background:linear-gradient(135deg,rgba(37,99,235,.10),rgba(8,17,31,.72));
}
.contest-upcoming-lock{border-color:rgba(59,130,246,.32);background:rgba(37,99,235,.10)}
.contest-start-countdown{color:#60a5fa}

/* The highlighted Lớp Online CP nav item uses the same blue family. */
#btnClasses.classes-nav-upcoming{
  border-color:rgba(59,130,246,.48);
  background:linear-gradient(120deg,#07101c 0%,rgba(37,99,235,.14) 42%,#07101c 72%);
  box-shadow:0 0 0 1px rgba(59,130,246,.10),0 0 22px rgba(37,99,235,.16);
}
#btnClasses.classes-nav-upcoming::before{
  background:linear-gradient(105deg,transparent 42%,rgba(255,255,255,.04) 46%,rgba(147,197,253,.55) 50%,rgba(255,255,255,.06) 54%,transparent 58%);
}
#btnClasses.classes-nav-upcoming::after{color:#93c5fd;text-shadow:0 0 8px rgba(59,130,246,.78)}
#btnClasses.classes-nav-upcoming:hover{
  border-color:rgba(96,165,250,.72);
  box-shadow:0 0 0 1px rgba(59,130,246,.17),0 0 28px rgba(37,99,235,.24);
}

/* Roadmap decorative accent. */
.roadmap-marker{border-color:rgba(59,130,246,.52)}
.roadmap-lessons li:before{color:#60a5fa}

/* Light mode keeps blue accents instead of the old red/gold brand pass. */
html[data-theme="light"] body{
  background:
    radial-gradient(circle at 10% 0%,rgba(37,99,235,.06),transparent 28%),
    radial-gradient(circle at 90% 4%,rgba(96,165,250,.05),transparent 30%),
    #f7f9fd;
}
html[data-theme="light"] .primary{color:#fff;background:linear-gradient(135deg,#2563eb,#3b82f6);box-shadow:0 10px 24px rgba(37,99,235,.16)}
html[data-theme="light"] .section-label{background:linear-gradient(135deg,rgba(37,99,235,.11),rgba(59,130,246,.05));border-color:rgba(37,99,235,.22)}
html[data-theme="light"] .section-label:before{background:#2563eb;box-shadow:0 0 0 4px rgba(37,99,235,.12)}
html[data-theme="light"] .landing-section-head{border-bottom-color:rgba(37,99,235,.13)}
html[data-theme="light"] .site-news-home{border-left-color:rgba(37,99,235,.26)}
html[data-theme="light"] #btnClasses.classes-nav-upcoming{
  border-color:#93b8ff;
  background:linear-gradient(120deg,#fff 0%,#edf4ff 44%,#fff 74%);
  box-shadow:0 0 0 1px rgba(37,99,235,.07),0 0 18px rgba(37,99,235,.09);
}
html[data-theme="light"] #btnClasses.classes-nav-upcoming::after{color:#2563eb;text-shadow:0 0 7px rgba(37,99,235,.28)}
html[data-theme="light"] .contest-upcoming-gate{background:linear-gradient(135deg,#edf4ff,#f8fbff)}
html[data-theme="light"] .contest-upcoming-lock{background:#eaf2ff}

/* Keep semantic danger/destructive/admin accents red on purpose. */
/* ===== End TopAlgo blue-black visual system ===== */
/* Contest detail top actions */
.contest-detail-actions{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}
.contest-detail-actions .contest-guide-button{margin-left:auto}
@media(max-width:680px){.contest-detail-actions{align-items:stretch}.contest-detail-actions .contest-guide-button{margin-left:0;width:100%}}


.contest-email-manual-send{margin-top:18px;padding:16px;border:1px solid var(--line);border-radius:14px;background:var(--card2);display:grid;gap:12px}
.contest-email-send-all{display:flex;flex-wrap:wrap;gap:10px}
.contest-email-send-one{display:grid;grid-template-columns:minmax(220px,1fr) auto;gap:10px;align-items:center}
.contest-email-send-one select{width:100%;min-width:0}
@media(max-width:680px){.contest-email-send-one{grid-template-columns:1fr}.contest-email-send-all button,.contest-email-send-one button{width:100%}}

/* ===== 2026-09-18 · Blue/black restore polish =====
   Keep the previous blue-black visual language, fix the CP class promo
   accents that were still red, and improve blue contrast in light mode. */

/* Public CP class promotions: use the same blue family as the rest of TopAlgo. */
.promoted-classes-hero{
  border-color:rgba(59,130,246,.24);
  background:
    radial-gradient(circle at 84% 10%,rgba(37,99,235,.17),transparent 35%),
    linear-gradient(145deg,rgba(8,17,31,.99),rgba(4,10,20,.99));
}
.promoted-class-card:before{
  background:linear-gradient(90deg,#2563eb,#60a5fa 45%,transparent 88%);
}
.promoted-class-badge{
  background:rgba(37,99,235,.12);
  border-color:rgba(59,130,246,.34);
  color:#93c5fd;
}
a.promoted-class-link{
  background:linear-gradient(135deg,#2563eb,#1d4ed8);
  box-shadow:0 10px 24px rgba(37,99,235,.18);
}
a.promoted-class-link:hover{
  background:linear-gradient(135deg,#3b82f6,#2563eb);
  box-shadow:0 12px 28px rgba(37,99,235,.26);
}

/* Light mode: use darker, crisper blues so accents do not look washed out. */
html[data-theme="light"]{
  --accent:#1d4ed8;
  --accent2:#2563eb;
}
html[data-theme="light"] a{color:#1d4ed8}
html[data-theme="light"] a:hover{color:#1e40af}
html[data-theme="light"] .primary{
  background:linear-gradient(135deg,#1d4ed8,#2563eb);
  box-shadow:0 10px 24px rgba(29,78,216,.20);
}
html[data-theme="light"] .primary:hover{
  background:linear-gradient(135deg,#2563eb,#1d4ed8);
  box-shadow:0 12px 28px rgba(29,78,216,.26);
}
html[data-theme="light"] .eyebrow{color:#1d4ed8}
html[data-theme="light"] .home-hero-blue{color:#1d4ed8}
html[data-theme="light"] .section-label{
  color:#1e40af;
  background:linear-gradient(135deg,#eaf2ff,#f4f8ff);
  border-color:#93b8ff;
  box-shadow:0 10px 22px rgba(29,78,216,.10);
}
html[data-theme="light"] .section-label:before{
  background:#1d4ed8;
  box-shadow:0 0 0 4px rgba(29,78,216,.13);
}
html[data-theme="light"] .course-highlights span{color:#1d4ed8}
html[data-theme="light"] .achievement-year{
  color:#1e40af;
  background:#eaf2ff;
  border-color:#b7cdf8;
}
html[data-theme="light"] .achievement-icon{color:#2563eb}
html[data-theme="light"] .contact-widget-icon{color:#1d4ed8;background:#eaf2ff}
html[data-theme="light"] .site-post-content a{color:#1d4ed8;border-bottom-color:#93b8ff}
html[data-theme="light"] .site-post-content a:hover{color:#1e40af}
html[data-theme="light"] .home-upcoming-label,
html[data-theme="light"] .contest-start-countdown{color:#1d4ed8}
html[data-theme="light"] .contest-status.upcoming{
  color:#1e40af;
  border-color:#93b8ff;
  background:#eaf2ff;
}
html[data-theme="light"] .contest-list-section.upcoming .contest-list-title h2,
html[data-theme="light"] .contest-list-section.running .contest-list-title h2,
html[data-theme="light"] .contest-list-section.ended .contest-list-title h2{color:#1e40af}
html[data-theme="light"] #btnClasses.classes-nav-upcoming{
  color:#172033;
  border-color:#6f9df4;
  background:linear-gradient(120deg,#fff 0%,#e7f0ff 44%,#fff 74%);
  box-shadow:0 0 0 1px rgba(29,78,216,.10),0 0 18px rgba(29,78,216,.12);
}
html[data-theme="light"] #btnClasses.classes-nav-upcoming::after{
  color:#1d4ed8;
  text-shadow:none;
}

/* CP class promotion section in light mode. */
html[data-theme="light"] .promoted-classes-hero{
  border-color:#b7cdf8;
  background:
    radial-gradient(circle at 84% 10%,rgba(37,99,235,.10),transparent 34%),
    linear-gradient(145deg,#ffffff,#f6f9ff);
}
html[data-theme="light"] .promoted-classes-hero .eyebrow{color:#1d4ed8}
html[data-theme="light"] .promoted-class-badge{
  color:#1e40af;
  background:#eaf2ff;
  border-color:#a9c5f8;
}
html[data-theme="light"] .promoted-class-card:before{
  background:linear-gradient(90deg,#1d4ed8,#60a5fa 45%,transparent 88%);
}
html[data-theme="light"] a.promoted-class-link{
  color:#fff;
  background:linear-gradient(135deg,#1d4ed8,#2563eb);
}
/* ===== End blue/black restore polish ===== */


/* ===== Current section highlight in the top navigation ===== */
.nav-actions button.top-nav-active:not(.admin-top-btn){
  color:#fff;
  background:linear-gradient(180deg,rgba(37,99,235,.24),rgba(29,78,216,.16));
  border-color:rgba(96,165,250,.72);
  box-shadow:inset 0 0 0 1px rgba(96,165,250,.12),0 0 20px rgba(37,99,235,.18);
}
.nav-actions button.top-nav-active:not(.admin-top-btn):hover{
  background:linear-gradient(180deg,rgba(59,130,246,.30),rgba(37,99,235,.20));
  border-color:rgba(147,197,253,.88);
  box-shadow:inset 0 0 0 1px rgba(147,197,253,.14),0 0 24px rgba(37,99,235,.24);
}
#btnClasses.classes-nav-upcoming.top-nav-active{
  color:#fff;
  border-color:rgba(96,165,250,.82);
  background:linear-gradient(120deg,rgba(37,99,235,.24) 0%,rgba(59,130,246,.30) 46%,rgba(37,99,235,.20) 100%);
  box-shadow:inset 0 0 0 1px rgba(147,197,253,.14),0 0 26px rgba(37,99,235,.26);
}
html[data-theme="light"] .nav-actions button.top-nav-active:not(.admin-top-btn){
  color:#1d4ed8;
  background:linear-gradient(180deg,#e7f0ff,#dbeafe);
  border-color:#2563eb;
  box-shadow:inset 0 0 0 1px rgba(37,99,235,.10),0 3px 12px rgba(37,99,235,.12);
  font-weight:800;
}
html[data-theme="light"] #btnClasses.classes-nav-upcoming.top-nav-active{
  color:#1d4ed8;
  border-color:#2563eb;
  background:linear-gradient(120deg,#e7f0ff 0%,#dbeafe 48%,#edf4ff 100%);
  box-shadow:inset 0 0 0 1px rgba(37,99,235,.10),0 3px 14px rgba(37,99,235,.14);
}
/* ===== End current top navigation highlight ===== */

/* Markdown content for promoted Online CP classes */
.promoted-class-markdown-details{
  margin-top:18px;
  padding:18px 20px;
  border:1px solid rgba(59,130,246,.22);
  border-radius:16px;
  background:rgba(15,23,42,.42);
  line-height:1.7;
}
.promoted-class-markdown-details > :first-child,
.promoted-class-description > :first-child,
.promoted-class-detail-value > :first-child{margin-top:0}
.promoted-class-markdown-details > :last-child,
.promoted-class-description > :last-child,
.promoted-class-detail-value > :last-child{margin-bottom:0}
.promoted-class-markdown-details ul,
.promoted-class-markdown-details ol{padding-left:22px}
.promoted-class-detail-value p{margin:0}
.promoted-class-detail-value ul,
.promoted-class-detail-value ol{margin:4px 0;padding-left:20px}
.promoted-class-markdown-admin{margin:18px 0}
.promoted-class-markdown-admin h4{margin:18px 0 8px}
.promoted-class-legacy-fields{
  margin:16px 0;
  padding:14px 16px;
  border:1px solid var(--line);
  border-radius:14px;
  background:rgba(255,255,255,.02);
}
.promoted-class-legacy-fields summary{cursor:pointer;font-weight:700}
.promoted-class-legacy-fields .admin-grid{margin-top:14px}
html[data-theme="light"] .promoted-class-markdown-details{background:#f8fbff;border-color:#bfdbfe}
html[data-theme="light"] .promoted-class-legacy-fields{background:#f8fafc}

@media(max-width:700px){
  .achievement-order-bar{align-items:flex-start;flex-direction:column}
  .achievement-order-buttons{justify-content:flex-start;width:100%}
}

/* ===== Rich global broadcast + floating contest countdown ===== */
.global-broadcast-card{
  grid-template-columns:88px minmax(0,1fr) auto;
  gap:18px;
  padding:16px 18px;
  border-color:rgba(96,165,250,.42);
  border-radius:20px;
  background:
    radial-gradient(circle at 8% 18%,rgba(59,130,246,.24),transparent 28%),
    radial-gradient(circle at 92% 110%,rgba(250,204,21,.15),transparent 34%),
    linear-gradient(135deg,rgba(8,17,32,.985),rgba(8,12,20,.985));
  box-shadow:0 22px 60px rgba(0,0,0,.46),0 0 0 1px rgba(96,165,250,.05) inset;
  overflow:hidden;
}
.global-broadcast-visual{
  position:relative;
  width:76px;
  height:76px;
  border-radius:20px;
  display:flex;
  align-items:center;
  justify-content:center;
  overflow:hidden;
  border:1px solid rgba(147,197,253,.26);
  background:linear-gradient(145deg,rgba(37,99,235,.24),rgba(30,41,59,.62));
  box-shadow:0 12px 28px rgba(0,0,0,.24),0 0 26px rgba(59,130,246,.12) inset;
}
.global-broadcast-visual>span{position:relative;z-index:2;font-size:38px;line-height:1;filter:drop-shadow(0 8px 12px rgba(0,0,0,.28))}
.global-broadcast-visual>i,.global-broadcast-visual>b{position:absolute;border-radius:50%;pointer-events:none}
.global-broadcast-visual>i{width:52px;height:52px;right:-20px;top:-18px;background:rgba(250,204,21,.18)}
.global-broadcast-visual>b{width:42px;height:42px;left:-15px;bottom:-14px;background:rgba(96,165,250,.22)}
.global-broadcast-visual.has-image{background:#0b1220}
.global-broadcast-visual.has-image img{width:100%;height:100%;object-fit:cover;display:block}
.global-broadcast-copy{min-width:0;display:flex;flex-direction:column;align-items:flex-start;gap:4px}
.global-broadcast-label{color:#7dd3fc;font-size:10px;letter-spacing:.11em}
.global-broadcast-copy h3{margin:0;color:#fff;font-size:clamp(17px,2vw,22px);line-height:1.22;overflow-wrap:anywhere}
.global-broadcast-copy p{margin:1px 0 0;color:#d4deea;font-size:13px;line-height:1.5;overflow-wrap:anywhere;white-space:pre-line}
.global-broadcast-countdown{margin-top:7px;display:inline-flex;align-items:center;gap:9px;padding:6px 10px;border-radius:10px;border:1px solid rgba(250,204,21,.24);background:rgba(250,204,21,.08);font-variant-numeric:tabular-nums}
.global-broadcast-countdown span{font-size:10px;font-weight:850;color:#f9d76e;text-transform:uppercase;letter-spacing:.06em}
.global-broadcast-countdown strong{font-size:14px!important;color:#fff3b0!important;line-height:1!important;letter-spacing:.025em;white-space:nowrap}
.global-broadcast-countdown.ended{border-color:rgba(74,222,128,.24);background:rgba(34,197,94,.08)}
.global-broadcast-countdown.ended span,.global-broadcast-countdown.ended strong{color:#86efac!important}
.global-broadcast-actions{min-width:128px;display:flex;flex-direction:column;align-items:flex-end;justify-content:center;gap:8px}
.global-broadcast-cta{
  display:inline-flex!important;align-items:center;justify-content:center;gap:6px;
  min-width:0;padding:10px 15px!important;border-radius:999px!important;
  border:1px solid rgba(147,197,253,.30)!important;
  background:linear-gradient(135deg,#2563eb,#3b82f6)!important;
  color:#fff!important;text-decoration:none!important;white-space:nowrap;
  font-size:12px!important;font-weight:850!important;line-height:1!important;letter-spacing:.01em;
  box-shadow:0 8px 20px rgba(37,99,235,.24)!important;
  transition:transform .18s ease,box-shadow .18s ease,border-color .18s ease,filter .18s ease;
}
.global-broadcast-cta:hover{transform:translateY(-1px);border-color:rgba(191,219,254,.62)!important;box-shadow:0 11px 26px rgba(37,99,235,.34)!important;filter:brightness(1.05)}
.global-broadcast-cta:active{transform:translateY(0);box-shadow:0 6px 15px rgba(37,99,235,.24)!important}
.global-broadcast-actions small{font-size:9px;color:#8190a3;white-space:nowrap}
.global-broadcast-admin-grid{grid-template-columns:1fr 1fr}
.global-broadcast-preview-rich{margin-top:12px;display:grid;grid-template-columns:64px minmax(0,1fr) auto;align-items:center;gap:14px;padding:14px;border:1px solid rgba(96,165,250,.28);border-radius:16px;background:linear-gradient(135deg,rgba(37,99,235,.09),rgba(250,204,21,.04))}
.global-broadcast-preview-visual{width:64px;height:64px;border-radius:16px;display:flex;align-items:center;justify-content:center;overflow:hidden;background:rgba(59,130,246,.14);border:1px solid rgba(96,165,250,.22)}
.global-broadcast-preview-visual span{font-size:32px}
.global-broadcast-preview-visual img{width:100%;height:100%;object-fit:cover}
.global-broadcast-preview-copy{min-width:0;display:grid;gap:3px}
.global-broadcast-preview-copy>b{font-size:10px;color:#60a5fa;letter-spacing:.08em}
.global-broadcast-preview-copy h3{margin:0;font-size:17px}
.global-broadcast-preview-copy p{margin:0;color:var(--muted);font-size:12px;line-height:1.45;white-space:pre-line}
.global-broadcast-preview-copy strong{margin-top:3px;font-size:12px;color:#f5c84c}
.global-broadcast-preview-button{pointer-events:none;white-space:nowrap}
.global-contest-countdown-host{position:fixed;left:18px;bottom:18px;z-index:87;width:min(390px,calc(100vw - 96px));pointer-events:none}
.global-contest-countdown-host.hidden{display:none!important}
.global-contest-countdown-card{
  width:100%;
  display:grid;
  grid-template-columns:46px minmax(0,1fr) auto;
  grid-template-areas:"icon copy timer" "icon copy action";
  align-items:center;
  gap:2px 11px;
  padding:11px 13px;
  border-radius:17px;
  border:1px solid rgba(96,165,250,.34);
  color:#eaf3ff;
  background:linear-gradient(135deg,rgba(10,22,40,.97),rgba(8,12,20,.98));
  box-shadow:0 16px 44px rgba(0,0,0,.42),0 0 28px rgba(37,99,235,.09) inset;
  text-align:left;
  pointer-events:auto;
  backdrop-filter:blur(12px);
}
.global-contest-countdown-card:hover{transform:translateY(-2px);border-color:rgba(96,165,250,.58);box-shadow:0 19px 48px rgba(0,0,0,.48),0 0 30px rgba(37,99,235,.13) inset}
.global-contest-countdown-icon{grid-area:icon;width:46px;height:46px;border-radius:14px;display:flex;align-items:center;justify-content:center;font-size:25px;background:linear-gradient(145deg,rgba(250,204,21,.17),rgba(37,99,235,.16));border:1px solid rgba(250,204,21,.18)}
.global-contest-countdown-copy{grid-area:copy;min-width:0;display:grid;gap:1px}
.global-contest-countdown-copy small{font-size:8px;font-weight:900;letter-spacing:.1em;color:#7dd3fc}
.global-contest-countdown-copy b{font-size:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:#fff}
.global-contest-countdown-copy span{font-size:9px;color:#8ea0b5}
.global-contest-countdown-card>strong{grid-area:timer;align-self:end;font-size:14px;line-height:1;color:#fde68a;font-variant-numeric:tabular-nums;white-space:nowrap;letter-spacing:.02em}
.global-contest-countdown-card>i{grid-area:action;align-self:start;justify-self:end;font-style:normal;font-size:9px;font-weight:800;color:#60a5fa}
html[data-theme="light"] .global-broadcast-card{background:radial-gradient(circle at 8% 18%,rgba(59,130,246,.12),transparent 28%),linear-gradient(135deg,#f8fbff,#fffdf4);border-color:#b8d5ff;color:#17243a;box-shadow:0 18px 45px rgba(29,78,216,.13)}
html[data-theme="light"] .global-broadcast-copy h3{color:#12203a}
html[data-theme="light"] .global-broadcast-copy p{color:#526174}
html[data-theme="light"] .global-broadcast-label{color:#1d4ed8}
html[data-theme="light"] .global-broadcast-countdown{background:#fff8db;border-color:#ead074}
html[data-theme="light"] .global-broadcast-countdown span{color:#8a6200}
html[data-theme="light"] .global-broadcast-countdown strong{color:#6f4e00!important}
html[data-theme="light"] .global-broadcast-actions small{color:#6b7280}
html[data-theme="light"] .global-broadcast-cta{border-color:rgba(37,99,235,.18)!important;box-shadow:0 8px 18px rgba(37,99,235,.18)!important}
html[data-theme="light"] .global-contest-countdown-card{background:linear-gradient(135deg,#f7fbff,#fff);border-color:#bfd7ff;color:#23334b;box-shadow:0 14px 34px rgba(30,64,175,.14)}
html[data-theme="light"] .global-contest-countdown-copy b{color:#17243a}
html[data-theme="light"] .global-contest-countdown-card>strong{color:#a16207}
@media(max-width:760px){
  .global-broadcast-card{grid-template-columns:54px minmax(0,1fr);gap:10px 12px;padding:12px;border-radius:16px}
  .global-broadcast-visual{width:54px;height:54px;border-radius:15px;align-self:start}
  .global-broadcast-visual>span{font-size:28px}
  .global-broadcast-actions{grid-column:1/-1;width:100%;min-width:0;flex-direction:row;align-items:center;justify-content:space-between}
  .global-broadcast-cta{min-width:0;padding:9px 13px!important;font-size:11px!important}
  .global-broadcast-copy h3{font-size:16px}
  .global-broadcast-copy p{font-size:11px;line-height:1.4}
  .global-broadcast-countdown{padding:5px 8px;gap:6px}
  .global-broadcast-countdown strong{font-size:12px!important}
  .global-broadcast-admin-grid{grid-template-columns:1fr}
  .global-broadcast-preview-rich{grid-template-columns:50px minmax(0,1fr)}
  .global-broadcast-preview-visual{width:50px;height:50px;border-radius:13px}
  .global-broadcast-preview-button{grid-column:1/-1;justify-self:start}
  .global-contest-countdown-host{left:10px;bottom:10px;width:min(360px,calc(100vw - 84px))}
  .global-contest-countdown-card{grid-template-columns:38px minmax(0,1fr) auto;padding:9px 10px;border-radius:14px;gap:1px 8px}
  .global-contest-countdown-icon{width:38px;height:38px;border-radius:11px;font-size:21px}
  .global-contest-countdown-copy small{font-size:7px}
  .global-contest-countdown-copy b{font-size:11px}
  .global-contest-countdown-copy span{font-size:8px}
  .global-contest-countdown-card>strong{font-size:11px}
}
/* ===== End rich global broadcast + floating contest countdown ===== */


/* ===== Admin broadcast exact live preview ===== */
.global-broadcast-live-preview-card{margin-top:14px;overflow:hidden}
.global-broadcast-preview-head{display:flex;align-items:flex-start;justify-content:space-between;gap:18px}
.global-broadcast-preview-head h3{margin:4px 0 3px;font-size:18px}
.global-broadcast-preview-head p{margin:0}
.global-broadcast-preview-status{flex:0 0 auto;display:inline-flex;align-items:center;padding:7px 10px;border-radius:999px;border:1px solid rgba(250,204,21,.30);background:rgba(250,204,21,.08);color:#fde68a;font-size:10px;font-weight:900;letter-spacing:.07em;white-space:nowrap}
.global-broadcast-demo-shell{margin-top:14px;padding:18px;border-radius:18px;border:1px dashed rgba(96,165,250,.28);background:radial-gradient(circle at 20% 0,rgba(37,99,235,.08),transparent 38%),rgba(3,8,18,.28)}
.global-broadcast-demo-card{width:100%;max-width:none;pointer-events:none;animation:none}
.global-broadcast-demo-cta{pointer-events:none;user-select:none}
html[data-theme="light"] .global-broadcast-preview-status{background:#fff8db;border-color:#ead074;color:#7a5700}
html[data-theme="light"] .global-broadcast-demo-shell{background:#f5f9ff;border-color:#bfd7ff}
@media(max-width:760px){
  .global-broadcast-preview-head{flex-direction:column;gap:9px}
  .global-broadcast-demo-shell{padding:10px;border-radius:14px}
}
/* ===== End admin broadcast exact live preview ===== */

.global-broadcast-card{position:relative}
.global-broadcast-close{position:absolute;top:8px;right:9px;z-index:5;width:29px;height:29px;padding:0;border:1px solid rgba(148,163,184,.28);border-radius:9px;background:rgba(15,23,42,.74);color:#dce7f5;font-size:21px;font-weight:700;line-height:25px;text-align:center;cursor:pointer;box-shadow:none;transition:background .15s ease,border-color .15s ease,transform .15s ease}
.global-broadcast-close:hover{transform:none;background:rgba(239,68,68,.16);border-color:rgba(248,113,113,.44);color:#fff}
html[data-theme="light"] .global-broadcast-close{background:rgba(255,255,255,.9);border-color:#cbd5e1;color:#475569}
html[data-theme="light"] .global-broadcast-close:hover{background:#fff1f2;border-color:#fda4af;color:#be123c}
@media(max-width:700px){.global-broadcast-close{top:7px;right:7px;width:27px;height:27px;font-size:19px;line-height:23px}.global-broadcast-copy{padding-right:26px}}

/* ===== Dataset-specific practice solution source ===== */
.practice-dataset-source{margin-top:14px;border:1px solid rgba(91,140,255,.28);border-radius:15px;overflow:hidden;background:linear-gradient(180deg,rgba(20,29,47,.86),rgba(8,12,20,.94));box-shadow:0 12px 34px rgba(0,0,0,.14)}
.practice-dataset-source summary{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:13px 14px;cursor:pointer;list-style:none;user-select:none;background:linear-gradient(135deg,rgba(76,108,255,.13),rgba(104,65,198,.08));transition:background .18s ease,border-color .18s ease}
.practice-dataset-source summary::-webkit-details-marker{display:none}
.practice-dataset-source summary:hover{background:linear-gradient(135deg,rgba(76,108,255,.2),rgba(104,65,198,.13))}
.practice-source-summary-main{display:flex;align-items:center;gap:11px;min-width:0}
.practice-source-summary-main>span:last-child{display:flex;flex-direction:column;gap:2px;min-width:0}
.practice-source-summary-main b{font-size:13px;letter-spacing:.01em}
.practice-source-summary-main small{font-size:10px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.practice-source-icon{display:grid;place-items:center;flex:0 0 auto;width:34px;height:34px;border:1px solid rgba(112,145,255,.34);border-radius:10px;background:rgba(72,103,236,.16);font:900 12px/1 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;color:#9db5ff}
.practice-source-summary-tag{flex:0 0 auto;padding:5px 8px;border:1px solid rgba(84,217,166,.3);border-radius:999px;background:rgba(43,184,132,.1);color:#86e6ba;font:800 10px/1 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;letter-spacing:.04em}
.practice-dataset-source[open] summary{border-bottom:1px solid rgba(110,136,190,.2)}
.practice-code-window{overflow:hidden;background:#090d15}
.practice-code-toolbar{display:flex;align-items:center;gap:10px;min-height:38px;padding:0 10px 0 12px;border-bottom:1px solid rgba(126,145,185,.16);background:linear-gradient(180deg,#121927,#0d131f);color:#9aa9be;font:700 10px/1.2 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace}
.practice-code-toolbar>span:not(.practice-source-summary-tag){min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.practice-code-dots{display:flex;gap:5px;margin-right:2px}
.practice-code-dots i{width:8px;height:8px;border-radius:50%;background:#ff6b6b;box-shadow:0 0 0 1px rgba(0,0,0,.18)}
.practice-code-dots i:nth-child(2){background:#ffd166}
.practice-code-dots i:nth-child(3){background:#4dd39b}
.practice-code-copy{margin-left:auto!important;min-height:27px!important;padding:5px 9px!important;border-radius:8px!important;font-size:10px!important}
.practice-dataset-source .practice-source-code{margin:0!important;border:0!important;border-radius:0!important;max-height:560px;padding:16px 18px!important;background:#090d15!important;font-size:12.5px;line-height:1.62}
.practice-dataset-source .practice-source-code code{display:block;min-width:max-content}
.practice-source-status{appearance:none;border:1px solid rgba(126,145,185,.24);border-radius:9px;padding:7px 9px;background:rgba(255,255,255,.025);color:var(--muted);font-size:11px;font-weight:800;line-height:1.1;font-family:inherit;cursor:pointer;white-space:nowrap}
.practice-source-status:hover{border-color:rgba(91,140,255,.5);color:var(--text)}
.practice-source-status.ready{border-color:rgba(77,211,155,.3);background:rgba(77,211,155,.08);color:#83e5b9}
.dataset-source-editor-shell{min-width:min(920px,90vw)}
.dataset-source-editor-head{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:14px}
.dataset-source-editor-head h2{margin:4px 0 5px}
.admin-dataset-code-window{border:1px solid rgba(105,135,198,.25);border-radius:14px;box-shadow:0 18px 50px rgba(0,0,0,.18)}
.admin-dataset-code-window .practice-code-toolbar .practice-source-summary-tag{margin-left:auto}
.dataset-source-code-editor{display:block;width:100%;min-height:430px;max-height:66vh;resize:vertical;border:0!important;border-radius:0!important;outline:0!important;padding:18px!important;background:#090d15!important;color:#dfe8f5!important;font:13px/1.6 ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace!important;tab-size:2;white-space:pre;box-shadow:none!important}
html[data-theme="light"] .practice-dataset-source{background:linear-gradient(180deg,#f9fbff,#f3f6fb);border-color:#cad6ee}
html[data-theme="light"] .practice-dataset-source summary{background:linear-gradient(135deg,#f0f4ff,#f7f2ff)}
html[data-theme="light"] .practice-source-icon{background:#eaf0ff;border-color:#c6d3f4;color:#405fc0}
html[data-theme="light"] .practice-source-summary-tag{background:#edf9f4;border-color:#bfe6d3;color:#16744c}
html[data-theme="light"] .practice-code-window,html[data-theme="light"] .practice-dataset-source .practice-source-code,html[data-theme="light"] .dataset-source-code-editor{background:#0d1117!important;color:#e6edf3!important}
html[data-theme="light"] .practice-code-toolbar{background:linear-gradient(180deg,#171e2a,#111722);color:#b4c0d0}
html[data-theme="light"] .practice-source-status.ready{background:#edf9f4;border-color:#bfe6d3;color:#16744c}
@media(max-width:680px){.practice-dataset-source .practice-source-code{padding:13px!important;font-size:11.5px}.practice-source-summary-tag{display:none}.dataset-source-editor-shell{min-width:0}.dataset-source-code-editor{min-height:350px;font-size:12px}.dataset-source-editor-head{align-items:center}}
/* ===== End dataset-specific practice solution source ===== */

/* ===== Problem bank quick Public toggle ===== */
.problem-public-toggle{display:inline-flex;align-items:center;gap:9px;min-width:112px;cursor:pointer;user-select:none;font-weight:800;font-size:12px;color:var(--muted)}
.problem-public-toggle input{position:absolute;opacity:0;pointer-events:none}
.problem-public-toggle-track{position:relative;display:inline-flex;width:42px;height:23px;border-radius:999px;background:rgba(255,255,255,.10);border:1px solid var(--line);transition:.18s ease;box-shadow:inset 0 1px 2px rgba(0,0,0,.3)}
.problem-public-toggle-knob{position:absolute;top:3px;left:3px;width:15px;height:15px;border-radius:50%;background:#a8b0bd;transition:.18s ease;box-shadow:0 2px 5px rgba(0,0,0,.35)}
.problem-public-toggle.is-on{color:#72e7ae}
.problem-public-toggle.is-on .problem-public-toggle-track{background:rgba(61,220,151,.18);border-color:rgba(61,220,151,.55);box-shadow:0 0 0 3px rgba(61,220,151,.06)}
.problem-public-toggle.is-on .problem-public-toggle-knob{left:22px;background:#3ddc97;box-shadow:0 0 10px rgba(61,220,151,.45)}
.problem-public-toggle.is-saving{opacity:.55;cursor:wait}
.problem-public-toggle input:focus-visible + .problem-public-toggle-track{outline:2px solid #6d8cff;outline-offset:2px}
html[data-theme="light"] .problem-public-toggle-track{background:#e9edf3;border-color:#cfd5df}
html[data-theme="light"] .problem-public-toggle-knob{background:#8a94a3}
html[data-theme="light"] .problem-public-toggle.is-on{color:#168a58}
html[data-theme="light"] .problem-public-toggle.is-on .problem-public-toggle-track{background:#dff7eb;border-color:#59c995}
html[data-theme="light"] .problem-public-toggle.is-on .problem-public-toggle-knob{background:#22aa6f}
/* ===== Practice solution popup viewer ===== */
.practice-dataset-source{appearance:none;width:100%;margin-top:14px;border:1px solid rgba(91,140,255,.28);border-radius:15px;padding:13px 14px;display:flex;align-items:center;justify-content:space-between;gap:12px;text-align:left;cursor:pointer;color:inherit;background:linear-gradient(135deg,rgba(76,108,255,.13),rgba(104,65,198,.08));box-shadow:0 10px 28px rgba(0,0,0,.09);font:inherit;transition:transform .16s ease,border-color .16s ease,background .16s ease,box-shadow .16s ease}
.practice-dataset-source:hover{transform:translateY(-1px);border-color:rgba(91,140,255,.55);background:linear-gradient(135deg,rgba(76,108,255,.2),rgba(104,65,198,.13));box-shadow:0 14px 34px rgba(0,0,0,.13)}
.modal.practice-solution-modal{width:min(1180px,calc(100vw - 28px));max-width:none;max-height:min(92vh,940px);padding:0;overflow:hidden;background:#0c111b}
.practice-solution-viewer{display:flex;flex-direction:column;max-height:min(92vh,940px);min-height:min(720px,86vh)}
.practice-solution-viewer-head{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;padding:20px 22px 17px;border-bottom:1px solid rgba(126,145,185,.16);background:linear-gradient(180deg,#151d2b,#101722)}
.practice-solution-viewer-head h2{margin:4px 0 5px!important;color:#f3f6fb}
.practice-solution-viewer-head .small{color:#93a3b8}
.practice-solution-close{flex:0 0 auto}
.practice-solution-code-window{display:flex;flex:1;min-height:0;flex-direction:column;border-radius:0!important}
.practice-solution-code-window .practice-code-toolbar{flex:0 0 auto;min-height:44px;padding:0 14px}
.practice-solution-code-window .practice-source-summary-tag{margin-left:auto}
.practice-solution-code-window .practice-code-copy{margin-left:0!important}
.practice-solution-code-window .practice-source-code{flex:1;min-height:0;max-height:none!important;margin:0!important;border:0!important;border-radius:0!important;padding:20px 22px!important;overflow:auto;background:#090d15!important;font-size:13px;line-height:1.65}
.practice-solution-code-window .practice-source-code code{display:block;min-width:max-content}
html[data-theme="light"] .practice-dataset-source{background:linear-gradient(135deg,#f0f4ff,#f7f2ff);border-color:#cad6ee}
html[data-theme="light"] .practice-dataset-source:hover{border-color:#9eb2df;background:linear-gradient(135deg,#e9efff,#f2edff)}
html[data-theme="light"] .modal.practice-solution-modal{background:#0c111b}
@media(max-width:680px){.modal.practice-solution-modal{width:calc(100vw - 10px);max-height:calc(100vh - 10px);border-radius:16px}.practice-solution-viewer{min-height:calc(100vh - 10px);max-height:calc(100vh - 10px)}.practice-solution-viewer-head{padding:15px 14px 13px;align-items:center}.practice-solution-viewer-head h2{font-size:21px}.practice-solution-viewer-head .small{display:none}.practice-solution-code-window .practice-source-code{padding:15px!important;font-size:11.5px}.practice-solution-code-window .practice-source-summary-tag{display:none}.practice-dataset-source{padding:12px}.practice-source-summary-main small{white-space:normal}}
/* ===== End practice solution popup viewer ===== */

/* ===== Homepage recruiting course banner ===== */
.home-recruiting-banner{
  display:flex;align-items:center;justify-content:space-between;gap:18px;
  margin:0 0 16px;padding:16px 18px;border:1px solid rgba(59,130,246,.34);border-radius:18px;
  background:linear-gradient(135deg,rgba(37,99,235,.12),rgba(15,23,42,.74));
  box-shadow:0 16px 44px rgba(0,0,0,.12);overflow:hidden;position:relative
}
.home-recruiting-banner:before{content:"";position:absolute;inset:0 auto 0 0;width:4px;background:#3b82f6}
.home-recruiting-copy{display:flex;align-items:center;gap:16px;min-width:0}
.home-recruiting-badge{flex:0 0 auto;padding:7px 10px;border-radius:999px;background:rgba(59,130,246,.16);border:1px solid rgba(96,165,250,.35);color:#93c5fd;font-size:10px;font-weight:1000;letter-spacing:.12em}
.home-recruiting-label{font-size:11px;color:var(--muted);font-weight:800;margin-bottom:3px}
.home-recruiting-banner h2{margin:0;font-size:20px;line-height:1.25;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.home-recruiting-view{flex:0 0 auto;min-width:96px}
.home-recruiting-admin-card{margin-bottom:18px}
.home-recruiting-admin-toggle{display:flex;align-items:center;gap:9px;padding:9px 12px;border:1px solid var(--line);border-radius:12px;background:rgba(255,255,255,.025);font-size:13px;font-weight:850;cursor:pointer;white-space:nowrap}
.home-recruiting-admin-toggle input{width:17px;height:17px;accent-color:#3b82f6}
html[data-theme="light"] .home-recruiting-banner{background:linear-gradient(135deg,#eff6ff,#fff);border-color:#bfdbfe;box-shadow:0 12px 34px rgba(37,99,235,.08)}
html[data-theme="light"] .home-recruiting-badge{background:#dbeafe;border-color:#bfdbfe;color:#1d4ed8}
html[data-theme="light"] .home-recruiting-admin-toggle{background:#f8fafc}
@media(max-width:680px){
  .home-recruiting-banner{align-items:stretch;padding:14px;gap:12px}
  .home-recruiting-copy{align-items:flex-start;flex-direction:column;gap:8px}
  .home-recruiting-banner h2{font-size:17px;white-space:normal}
  .home-recruiting-view{align-self:center;min-width:82px;padding-inline:13px}
}
/* ===== End homepage recruiting course banner ===== */

/* Home intro video: only mount/play while the user is hovering the preview. */
.intro-video-auto{position:relative;width:100%;aspect-ratio:16/9;border-radius:22px;overflow:hidden}
.intro-video-auto>.intro-video-placeholder,.intro-video-auto>.intro-video-frame{position:absolute;inset:0;width:100%;height:100%;aspect-ratio:auto}
.intro-video-auto-placeholder{transition:border-color .18s ease,box-shadow .18s ease}
.intro-video-auto-frame{border-radius:inherit}
.nav-invite-badge{display:inline-flex;align-items:center;justify-content:center;min-width:20px;height:20px;padding:0 6px;margin-left:5px;border-radius:999px;background:#ef4444;color:white;font-size:11px;font-weight:800}
.study-group-invitations{margin-bottom:22px}.study-invitation-list{display:grid;gap:12px}.study-invitation-card{display:flex;align-items:center;justify-content:space-between;gap:18px;border-color:rgba(59,130,246,.32)}.study-invitation-card h3{margin:0 0 5px}.study-pending-invites{margin-top:12px;padding-top:10px;border-top:1px solid var(--border)}
@media (max-width:700px){.intro-video-auto{border-radius:16px}.intro-video-auto-placeholder span{font-size:12px}.study-invitation-card{align-items:flex-start;flex-direction:column}.study-invitation-card .user-actions{width:100%}}

/* Compact Dataset source link */
.practice-dataset-source{width:auto;min-width:0;margin-top:12px;padding:8px 11px;border-radius:10px;display:inline-flex;justify-content:flex-start;box-shadow:none;background:rgba(76,108,255,.08)}
.practice-dataset-source:hover{transform:none;box-shadow:none;background:rgba(76,108,255,.14)}
.practice-source-summary-main{gap:8px}
.practice-source-summary-main b{font-size:13px;font-weight:750}
.practice-source-icon{width:27px;height:27px;border-radius:8px;font-size:10px}
html[data-theme="light"] .practice-dataset-source{background:#f3f6ff}
html[data-theme="light"] .practice-dataset-source:hover{background:#eaf0ff}

/* Contest one-ZIP importer */
.contest-zip-import{max-width:920px}
.contest-zip-import h2,.contest-zip-result h2{margin:.35rem 0 .65rem}
.contest-zip-example{margin:14px 0;padding:16px 18px;border:1px solid var(--line);border-radius:16px;background:rgba(15,23,42,.45);overflow:auto}
.contest-zip-example code{display:block;line-height:1.7;white-space:nowrap;color:var(--text)}
.contest-zip-status{margin-top:14px;padding:12px 14px;border:1px solid var(--line);border-radius:14px;background:rgba(59,130,246,.07);color:var(--muted);min-height:46px}
.contest-zip-status .error{color:#fb7185;font-weight:700}
.contest-zip-report{display:grid;gap:8px;margin:14px 0;max-height:320px;overflow:auto;padding:12px;border:1px solid var(--line);border-radius:14px}
.contest-zip-report>div{font-size:.92rem;color:var(--muted)}
@media (max-width:720px){.contest-zip-example{font-size:.82rem;padding:12px}.contest-zip-import .lesson-admin-footer{flex-wrap:wrap}.contest-zip-import .lesson-admin-footer button{flex:1}}

/* Study groups */
.study-groups-page{max-width:1180px;margin:0 auto}.study-group-list{display:grid;gap:18px}.study-group-card{padding:22px}.study-group-header,.study-month-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px}.study-group-header h2,.study-month-head h3{margin:0 0 5px}.study-month-list{display:grid;gap:14px;margin-top:18px}.study-month-card{border:1px solid var(--line);border-radius:18px;padding:16px;background:color-mix(in srgb,var(--card) 92%,transparent)}.study-month-contests{display:grid;gap:9px;margin-top:12px}.study-contest-row{width:100%;display:flex;align-items:center;justify-content:space-between;gap:16px;text-align:left;border:1px solid var(--line);border-radius:14px;padding:13px 15px;background:var(--bg);color:var(--text);cursor:pointer}.study-contest-row:hover{transform:translateY(-1px);border-color:var(--accent)}.study-contest-row span{display:grid;gap:4px}.study-contest-row small,.study-month-empty{color:var(--muted)}.study-contest-row strong{white-space:nowrap;color:var(--accent)}
.study-admin-back{margin-bottom:14px}.study-admin-grid{display:grid;grid-template-columns:minmax(280px,.8fr) minmax(420px,1.4fr);gap:18px;margin-top:18px}.study-admin-members,.study-admin-months{padding:18px}.study-member-list,.study-admin-month-list,.study-admin-contests{display:grid;gap:10px;margin-top:14px}.study-member-row,.study-admin-contest-row{display:flex;align-items:center;justify-content:space-between;gap:14px;border:1px solid var(--line);border-radius:13px;padding:11px 12px}.study-admin-month-card{border:1px solid var(--line);border-radius:17px;padding:15px}.study-admin-month-card+.study-admin-month-card{margin-top:12px}.study-add-contest{width:100%;margin-top:10px}.study-invite-results{display:grid;gap:8px;max-height:360px;overflow:auto}.study-invite-user{display:flex;align-items:center;justify-content:space-between;gap:14px;width:100%;padding:12px 14px;border:1px solid var(--line);border-radius:13px;background:var(--card);color:var(--text);text-align:left;cursor:pointer}.study-invite-user:hover{border-color:var(--accent)}.study-invite-user span{display:grid;gap:3px}.study-invite-user small{color:var(--muted)}.study-invite-user strong{color:var(--accent);white-space:nowrap}
@media(max-width:860px){.study-admin-grid{grid-template-columns:1fr}.study-group-header,.study-month-head,.study-member-row,.study-admin-contest-row{align-items:stretch;flex-direction:column}.study-contest-row{align-items:flex-start}.study-contest-row strong{align-self:flex-end}}
