/* Modern layout v3: Big header + horizontal contest nav (no sidebar) */
:root{
  --bg:#f6f7fb;
  --panel:#ffffff;
  --text:#0f172a;
  --muted:#64748b;
  --border:#e5e7eb;
  --shadow:0 10px 30px rgba(15,23,42,.10);

  --brand:#2563eb;
  --brand2:#0ea5e9;
  --danger:#dc2626;

  --hdr-pad:18px;
  --content-pad:18px;
  --page-content-width:1160px;
}

html,body{ background:var(--bg) !important; }
body{
  margin:0; padding:0;
  background-image:none !important;
  font-family:system-ui,-apple-system,Segoe UI,Roboto,Arial,sans-serif;
  color:var(--text);
}
a{ color:inherit; }
a:hover{ text-decoration:none; }

#container{ width:100%; display:flex; flex-direction:column; min-height:calc(100vh + 24px); }
@supports (height:100dvh) {
  #container {min-height:calc(100dvh + 24px);}
}
#wrapper{
  position:static !important;
  width:100%; flex:1 0 auto; display:flex; flex-direction:column;
}
#nav,#extra{ display:none !important; }
#content{
  width:100%; flex:1 0 auto;
  margin:0 !important;
  padding:var(--content-pad) var(--content-pad) 28px var(--content-pad);
  border-left:none !important;
}

#content img,
#imgdiv img{
  max-width:100%;
  height:auto;
}
#content .task-description img { display:block; }
#imgdiv{
  max-width: 980px;
  margin: 0 auto;
}

/* Header */
#header{
  flex:none;
  position:sticky;
  top:0;
  z-index:50;
  background:var(--panel);
  border-bottom:1px solid var(--border);
}

/* Big header row */
.hdr-wrap{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:18px;
  padding: var(--hdr-pad);
}

.brand{
  display:flex;
  align-items:center;
  gap:18px;
  text-decoration:none !important;
  color:inherit !important;
}
.brand-logo{
  width:96px;
  height:96px;
  object-fit:contain;
  border-radius:24px;
  background:#fff;
  box-shadow:var(--shadow);
}
.brand-title{
  font-weight:900;
  font-size:44px;
  line-height:1.05;
  letter-spacing:.2px;
}
.brand-subtitle{
  margin-top:6px;
  font-weight:700;
  font-size:18px;
  color:var(--muted);
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
  max-width: 64vw;
}
.brand-dot{ color:var(--brand); font-weight:900; }

.hdr-right{
  display:flex;
  align-items:center;
  gap:12px;
  flex-wrap:wrap;
  justify-content:flex-end;
}

.static-links{ display:flex; gap:10px; flex-wrap:wrap; }

/* Pills */
.pill{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  padding:10px 14px;
  border:1px solid var(--border);
  border-radius:14px;
  background:#fff;
  font-weight:900;
  text-decoration:none !important;
  color:#f59e0b;
}
.pill:hover{ border-color:#d1d5db; }
.pill-primary{
  background:linear-gradient(135deg,var(--brand2),var(--brand));
  border-color:transparent;
  color:#fff;
}

/* Account dropdown */
.dropdown{ position:relative; display:inline-block; }
.btn{
  appearance:none;
  border:1px solid var(--border);
  background:#fff;
  border-radius:14px;
  padding:10px 14px;
  font-weight:900;
  cursor:pointer;
  text-decoration:none !important;
  display:inline-flex;
  align-items:center;
  gap:10px;
}
.btn-primary{
  background:linear-gradient(135deg,var(--brand2),var(--brand));
  border-color:transparent;
  color:#fff;
}
.avatar{
  width:26px;
  height:26px;
  border-radius:999px;
  background:rgba(255,255,255,.25);
  display:inline-flex;
  align-items:center;
  justify-content:center;
  font-weight:900;
}
.nick{
  max-width:160px;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}
.badge{
  background:#fff;
  color:var(--brand);
  font-weight:900;
  border-radius:999px;
  padding:2px 8px;
  font-size:12px;
}
.chev{ opacity:.9; }

.dropdown.is-open > .menu{ display:block; }
.menu{
  display:none;
  position:absolute;
  right:0;
  top:calc(100% + 10px);
  min-width:240px;
  background:#fff;
  border:1px solid var(--border);
  border-radius:16px;
  box-shadow:var(--shadow);
  padding:8px;
  z-index:100;
}
/* Keep hover continuous across the visual gap below the account button. */
.dropdown > .menu::before{
  content:"";
  position:absolute;
  left:0;
  right:0;
  top:-11px;
  height:11px;
}
.menu-item{
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:10px;
  padding:10px 10px;
  border-radius:12px;
  font-weight:900;
  text-decoration:none !important;
  color:var(--text) !important;
}
.menu-item:hover{ background:#f3f4f6; }
.menu-item.danger{ color:var(--danger) !important; }
.menu-hint{ color:var(--muted); font-size:12px; font-weight:800; }
.menu-sep{ height:1px; background:var(--border); margin:6px 4px; }

.auth-actions{ display:flex; gap:10px; flex-wrap:wrap; }

/* Contest bar */
.contestbar{ border-top:1px solid var(--border); background:#fff; }
.contestbar-inner{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:16px;
  padding: 12px var(--hdr-pad);
}
.contest-tabs{ display:flex; gap:12px; flex-wrap:wrap; }
.tab{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-width: 180px;
  padding: 12px 16px;
  border:1px solid var(--brand);
  border-radius:12px;
  background:#fff;
  font-weight:900;
  color:#f59e0b;
  text-decoration:none !important;
}
.tab:hover{ background:#f8fafc; }
.tab.is-disabled{
  opacity:.55;
  cursor:not-allowed;
  pointer-events:none;
}
.contest-right{ display:flex; align-items:center; gap:12px; }
.timerpill{
  display:inline-flex;
  align-items:center;
  padding:10px 14px;
  border:1px solid var(--border);
  border-radius:999px;
  background:#fff;
  font-weight:900;
  color:var(--text);
  white-space:nowrap;
}
.leavebtn{
  width:46px;
  height:46px;
  border-radius:14px;
  border:1px solid var(--border);
  background:#fff;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  text-decoration:none !important;
  color:var(--danger);
}
.leavebtn:hover{ border-color:#d1d5db; background:#fff5f5; }

/* Light polish */
table.t, table.stand{
  background:#fff;
  border-radius:16px;
  overflow:hidden;
  box-shadow:0 2px 10px rgba(15,23,42,.04);
}

@media (max-width: 980px){
  .brand-logo{ width:64px; height:64px; border-radius:18px; }
  .brand-title{ font-size:28px; }
  .brand-subtitle{ font-size:14px; max-width: 70vw; }
  .hdr-wrap{ padding: 12px 12px; gap:12px; }
  .contestbar-inner{ padding: 10px 12px; }
  .tab{ min-width: 140px; padding:10px 12px; }
  #imgdiv{ max-width: 100%; }
}

@media (max-width: 640px){
  .hdr-wrap{ flex-direction:column; align-items:flex-start; }
  .hdr-right{ width:100%; justify-content:flex-start; }
  .contestbar-inner{ flex-direction:column; align-items:flex-start; }
  .contest-tabs{ width:100%; }
  .tab{ min-width: 0; flex: 1 1 auto; }
}

body.guest #content{ padding-top: 26px; }

/* Shared page layout: applies to every PHP template using header.php. */
*, *::before, *::after { box-sizing:border-box; }
html { scroll-behavior:smooth; }
body { line-height:1.55; }
#content {
  max-width:1560px;
  min-width:0;
  margin:0 auto !important;
  padding:32px clamp(16px, 3vw, 48px) 52px;
  overflow-wrap:break-word;
}
#content h1, #content h2, #content h3, #content h4 {
  color:var(--text);
  letter-spacing:-.025em;
  line-height:1.25;
}
#content h1 {font-size:clamp(1.65rem, 2.3vw, 2.3rem); margin:0 0 22px; padding:0;}
#content h2, #content .h2 {font-size:1.28rem; margin:24px 0 12px; padding:0; color:#24344e;}
#content h3 {font-size:1.08rem; margin:20px 0 10px; padding:0;}
#content h4 {font-size:1rem; margin:16px 0 8px; padding:0;}
#content p {line-height:1.65; margin:0 0 14px; padding:0;}
#content a:not(.pill):not(.tab):not(.btn):not(.menu-item):not(.za-btn):not(.register-success-button):not(.dots-action-primary):not(.oa-button) {color:#1d4ed8; text-decoration:none;}
#content a:not(.pill):not(.tab):not(.btn):not(.menu-item):not(.za-btn):not(.register-success-button):not(.dots-action-primary):not(.oa-button):hover {color:#1e40af; text-decoration:underline;}
#content a:focus-visible, #header a:focus-visible, #header button:focus-visible,
#content input:focus-visible, #content select:focus-visible, #content textarea:focus-visible {
  outline:3px solid #60a5fa; outline-offset:2px;
}
#content .s, #content .g, #content .hint {color:var(--muted);}
#content .s {font-size:.83rem; line-height:1.5;}
#content .hint {font-size:.88rem; margin:6px 0 12px;}
#content ul:not(.m):not(.hc), #content ol {padding-left:1.5rem; line-height:1.75;}
#content li {margin-bottom:4px;}
#content hr {border:0; border-top:1px solid var(--border); margin:20px 0;}
#content code, #content pre {font-family:ui-monospace,SFMono-Regular,Consolas,monospace;}
#content pre {max-width:100%; overflow:auto; padding:16px; background:#101e33; color:#e2e8f0; border-radius:12px;}

/* Search and filters */
#content .search {
  background:var(--panel); border:1px solid var(--border);
  border-radius:18px; padding:16px 20px; margin:0 0 22px;
  box-shadow:0 3px 12px rgba(15,23,42,.035);
}
#content .search table {width:100%;}
#content .search form {display:inline-flex; gap:9px; align-items:center; flex-wrap:wrap;}
#content .search a.y {display:inline-flex; padding:9px 13px; border-radius:10px; background:#eff6ff; font-size:.92rem !important; text-decoration:none !important;}

/* Inputs and actions */
#content input:not([type=checkbox]):not([type=radio]):not([type=hidden]):not([type=submit]):not([type=button]):not([type=reset]),
#content textarea, #content select {
  max-width:100%; min-height:40px; padding:9px 12px;
  border:1px solid #cbd5e1; border-radius:10px;
  background:#fff; color:var(--text); font:inherit; font-weight:400;
  box-shadow:0 1px 2px rgba(15,23,42,.035);
}
#content textarea {min-height:110px; resize:vertical;}
#content textarea.code {font-family:ui-monospace,SFMono-Regular,Consolas,monospace; font-size:.91rem;}
#content input[type=checkbox], #content input[type=radio] {width:17px; height:17px; accent-color:var(--brand); vertical-align:middle;}
#content input[type=submit], #content input[type=button], #content input[type=reset], #content button:not(.btn) {
  display:inline-flex; align-items:center; justify-content:center;
  min-height:40px; padding:9px 17px; border:1px solid #1d4ed8;
  border-radius:10px; background:linear-gradient(135deg,#3182f6,#1d4ed8);
  color:#fff; font:inherit; font-weight:700; cursor:pointer;
  box-shadow:0 4px 10px rgba(37,99,235,.16);
}
#content input[type=reset] {border-color:#cbd5e1; background:#f8fafc; color:#334155; box-shadow:none;}
#content input[type=submit]:hover, #content input[type=button]:hover, #content button:not(.btn):hover {filter:brightness(.94);}
#content input:disabled, #content select:disabled, #content button:disabled {opacity:.55; cursor:not-allowed;}
#content .ft, #content td.b {font-weight:700; color:#334155;}

/* Table based forms and detail views */
#content > form:not(.i), #content > table:not(.t):not(.stand):not(.tasksample):not(.taskinfo),
#content .page-panel {
  max-width:100%; background:var(--panel);
  border:1px solid var(--border); border-radius:18px;
  box-shadow:0 8px 25px rgba(15,23,42,.045); padding:22px;
  margin:0 0 22px;
}
#content > form:not(.i), #content .page-panel {display:block;}
#content > table:not(.t):not(.stand):not(.tasksample):not(.taskinfo) {width:100%;}
#content > form > table, #content > table:not(.t):not(.stand):not(.tasksample):not(.taskinfo) {
  width:100%; border-collapse:separate; border-spacing:0;
}
#content > form:not(.i) > table {width:100%; border-collapse:collapse;}
#content > form:not(.i) > table td, #content > table:not(.t):not(.stand):not(.tasksample):not(.taskinfo) td {
  padding:10px 12px; vertical-align:top;
}
#content > form:not(.i) > table td:first-child:not([colspan]),
#content > table:not(.t):not(.stand):not(.tasksample):not(.taskinfo) td:first-child.b {min-width:135px;}
#content > form:not(.i) > table tr + tr td,
#content > table:not(.t):not(.stand):not(.tasksample):not(.taskinfo) tr + tr td {border-top:1px solid #f1f5f9;}
#content form.i {margin:0;}
#content .login-page {width:min(100%, 470px); margin:clamp(26px,5vh,64px) auto 48px;}
#content .login-page h1 {margin:0 0 20px; text-align:center; color:var(--text);}
#content .login-page .warning, #content .login-page .error {margin:0 0 16px;}
#content .login-page .warning p {margin:0;}
#content #loginform {
  width:100%; margin:0; padding:clamp(20px,3vw,32px);
  background:#fff; border:1px solid var(--border); border-radius:18px;
  box-shadow:0 12px 35px rgba(15,23,42,.07);
}
#content .login-field {margin:0 0 18px;}
#content .login-field > label, #content .login-field-heading > label {
  display:block; font-weight:700; color:#334155; margin:0 0 7px;
}
#content .login-field-heading {display:flex; justify-content:space-between; align-items:baseline; gap:12px;}
#content .login-field-heading a {font-size:.87rem; text-align:right;}
#content #loginform .login-field input {display:block; width:100%; min-height:46px;}
#content .login-remember {display:inline-flex; align-items:center; gap:9px; cursor:pointer; margin:1px 0 20px;}
#content .login-remember input {margin:0; flex:none;}
#content #loginform .login-submit {width:100%; min-height:46px;}
#content .login-register {text-align:center; margin:18px 0 0; font-size:.92rem;}
#content .login-register a {font-weight:700;}

/* Registration: a short, readable flow instead of a full-width table. */
#content .register-page {width:min(100%, 600px); margin:clamp(26px,5vh,64px) auto 48px;}
#content .register-page h1 {margin:0 0 12px; text-align:center; color:var(--text);}
#content .register-intro {max-width:58ch; margin:0 auto 22px; text-align:center; color:#475569;}
#content .register-page .error {margin:0 0 16px;}
#content #registerform, #content .register-success {
  width:100%; padding:clamp(20px,3vw,32px); margin:0;
  background:#fff; border:1px solid var(--border); border-radius:18px;
  box-shadow:0 12px 35px rgba(15,23,42,.07);
}
#content .register-success p:last-child {margin-bottom:0;}
/* Post-registration page: shared layout, copy supplied by header_settings.php. */
#content .register-page-complete {width:min(100%, 740px); margin:clamp(28px,5vh,64px) auto 52px;}
#content .register-page-complete .register-success {
  position:relative; overflow:hidden; padding:clamp(26px,4.2vw,44px);
  border-radius:22px; box-shadow:0 18px 48px rgba(15,23,42,.08);
}
#content .register-page-complete .register-success::before {
  content:""; position:absolute; inset:0 0 auto; height:4px; background:var(--brand,#2563eb);
}
#content .register-success-icon {
  width:54px; height:54px; display:grid; place-items:center; margin:0 0 22px;
  color:#147a59; background:#e8f7ef; border:1px solid #bce7d1; border-radius:17px;
}
#content .register-success-icon svg {width:32px; height:32px;}
#content .register-success-eyebrow {
  margin:0 0 8px; color:#137854; font-size:.82rem; font-weight:800;
  letter-spacing:.08em; text-transform:uppercase;
}
#content .register-page-complete .register-success h1 {
  margin:0 0 12px; text-align:left; font-size:clamp(1.7rem,3.2vw,2.35rem); line-height:1.17;
}
#content .register-success-lead {margin:0 0 28px; max-width:61ch; color:#475569; font-size:1.05rem; line-height:1.6;}
#content .register-success-steps {display:grid; gap:12px; margin:0 0 28px;}
#content .register-success-step {
  display:flex; gap:16px; padding:17px 19px; border:1px solid #e3e9f1;
  border-radius:14px; background:#f8fafc;
}
#content .register-success-number {
  display:grid; place-items:center; flex:0 0 30px; width:30px; height:30px;
  border-radius:50%; background:#e6edff; color:#1e46a5; font-size:.91rem; font-weight:800;
}
#content .register-success-step h2 {margin:0 0 5px; color:#172b45; font-size:1.03rem; line-height:1.35;}
#content .register-success-step p {margin:0; color:#526174; font-size:.93rem; line-height:1.55; overflow-wrap:anywhere;}
#content .register-success-actions {display:flex; align-items:center; flex-wrap:wrap; gap:14px 22px;}
#content .register-success-button {
  display:inline-flex; align-items:center; justify-content:center; gap:10px;
  min-height:46px; padding:10px 20px; border-radius:10px; background:var(--brand,#2563eb);
  color:#fff; font-weight:700; text-decoration:none; box-shadow:0 6px 16px rgba(37,99,235,.18);
}
#content .register-success-button:hover, #content .register-success-button:focus {color:#fff; filter:brightness(.92); text-decoration:none;}
#content .register-success-secondary {font-size:.94rem; font-weight:700;}
#content .register-page-complete .register-success-help {
  margin:22px 0 0; padding-top:18px; border-top:1px solid #e5eaf0;
  color:#64748b; font-size:.88rem; line-height:1.5;
}
#content .register-success-help a {font-weight:700;}
@media (max-width:600px) {
  #content .register-page-complete {margin:14px auto 28px;}
  #content .register-page-complete .register-success {padding:24px 20px;}
  #content .register-success-step {padding:15px 13px; gap:12px;}
  #content .register-success-actions {align-items:stretch; flex-direction:column; gap:13px;}
  #content .register-success-button {width:100%;}
  #content .register-success-secondary {text-align:center;}
}
#content .register-field {margin:0 0 18px;}
#content .register-field > label {display:block; margin:0 0 7px; font-weight:700; color:#334155;}
#content #registerform .register-field input {width:100%; min-height:46px;}
#content .register-hint {display:block; margin:7px 0 0; color:var(--muted); font-size:.83rem; line-height:1.45;}
#content .register-captcha {display:grid; grid-template-columns:minmax(0,1fr) 120px; gap:12px; align-items:stretch;}
#content .register-captcha a {
  display:flex; align-items:center; justify-content:center; min-height:46px;
  border:1px solid #cbd5e1; border-radius:10px; background:#f8fafc;
}
#content .register-captcha img {width:100px; height:40px; object-fit:contain; image-rendering:pixelated;}
#content #registerform .register-submit {width:100%; min-height:46px; margin-top:4px;}
#content .register-help {margin:20px 0 0; padding:16px 18px; border-radius:12px; background:#eef5ff;
  color:#475569; font-size:.89rem; line-height:1.5;}
#content .register-help p {margin:0 0 8px;}
#content .register-help p:last-child {margin:0;}

/* All steps of password recovery share the same compact layout. */
#content .restore-page {width:min(100%, 600px); margin:clamp(26px,5vh,64px) auto 48px;}
#content .restore-page h1 {margin:0 0 12px; text-align:center; color:var(--text);}
#content .restore-intro {max-width:62ch; margin:0 auto 22px; text-align:center; color:#475569;}
#content .restore-page .error {margin:0 0 16px;}
#content .restore-card {
  width:100%; padding:clamp(20px,3vw,32px); margin:0;
  background:#fff; border:1px solid var(--border); border-radius:18px;
  box-shadow:0 12px 35px rgba(15,23,42,.07);
}
#content .restore-field {margin:0 0 18px;}
#content .restore-field > label {display:block; margin:0 0 7px; font-weight:700; color:#334155;}
#content .restore-card .restore-field input {width:100%; min-height:46px;}
#content .restore-captcha {display:grid; grid-template-columns:minmax(0,1fr) 120px; gap:12px; align-items:stretch;}
#content .restore-captcha a {
  display:flex; align-items:center; justify-content:center; min-height:46px;
  border:1px solid #cbd5e1; border-radius:10px; background:#f8fafc;
}
#content .restore-captcha img {width:100px; height:40px; object-fit:contain; image-rendering:pixelated;}
#content .restore-card .restore-submit {width:100%; min-height:46px; margin-top:4px;}
#content .restore-account {padding:14px 16px; margin:0 0 22px; border-radius:12px; background:#f1f5fa;}
#content .restore-account > div {display:flex; flex-wrap:wrap; justify-content:space-between; gap:4px 16px;}
#content .restore-account > div + div {margin-top:9px;}
#content .restore-account span {color:var(--muted);}
#content .restore-account strong {overflow-wrap:anywhere;}
#content .restore-success p:last-child {margin-bottom:0;}

/* Password change */
#content .password-page {width:min(100%,520px); margin:clamp(26px,5vh,64px) auto 48px;}
#content .password-page h1 {margin:0 0 20px; text-align:center; color:var(--text);}
#content .password-page .error {margin:0 0 16px;}
#content #passwordform {
  width:100%; margin:0; padding:clamp(20px,3vw,32px);
  background:#fff; border:1px solid var(--border); border-radius:18px;
  box-shadow:0 12px 35px rgba(15,23,42,.07);
}
#content .password-field {margin:0 0 20px;}
#content .password-field label {display:block; margin:0 0 7px; color:#334155; font-weight:700;}
#content #passwordform .password-field input {display:block; width:100%; min-height:46px;}
#content .password-field small {display:block; margin:7px 0 0; color:var(--muted); font-size:.83rem;}
#content .password-recovery {display:inline-block; margin-top:9px; font-size:.88rem;}
#content .password-actions {display:flex; gap:10px; margin-top:26px;}
#content .password-actions input[type=submit] {flex:1; min-height:46px;}
#content .password-actions input[type=reset] {min-height:46px;}

/* User profile details */
#content .profile-page {max-width:1040px; margin:24px auto 48px;}
#content .profile-hero {
  display:flex; align-items:center; gap:18px; padding:22px 26px; margin:0 0 18px;
  background:linear-gradient(115deg,#eff6ff,#fff 72%);
  border:1px solid #dbeafe; border-radius:18px;
}
#content .profile-avatar {
  display:flex; flex:none; align-items:center; justify-content:center;
  width:62px; height:62px; border-radius:17px;
  background:linear-gradient(135deg,#3182f6,#1d4ed8); color:#fff;
  font-size:1.7rem; font-weight:800;
}
#content .profile-identity {min-width:0; flex:1;}
#content .profile-identity h1 {margin:0 0 3px; overflow-wrap:anywhere;}
#content .profile-identity p {margin:0; color:#475569;}
#content .profile-id {flex:none; align-self:flex-start; padding:7px 11px; border-radius:999px;
  background:#e0edff; color:#1e40af; font-size:.8rem; font-weight:700;}
#content .profile-card {
  padding:14px 26px; background:#fff; border:1px solid var(--border);
  border-radius:18px; box-shadow:0 8px 25px rgba(15,23,42,.045);
}
#content .profile-card #userinfotable {width:100%; max-width:100%; margin:0; padding:0; border:0; border-collapse:collapse; table-layout:fixed;}
#content .profile-card #userinfotable td {padding:14px 4px; border-bottom:1px solid #edf1f6;
  vertical-align:top; white-space:normal; overflow-wrap:anywhere;}
#content .profile-card #userinfotable tr:last-child td {border-bottom:0;}
#content .profile-card #userinfotable td:first-child {width:225px; padding-right:18px; color:#64748b; font-weight:650;}
#content .profile-card #userinfotable td.h {color:var(--text);}
#content .profile-actions {display:flex; flex-wrap:wrap; gap:10px; margin:18px 0 0;}
#content .profile-actions a {
  display:inline-flex; align-items:center; min-height:40px; padding:9px 14px;
  border:1px solid #dbeafe; border-radius:10px;
  background:#fff; font-weight:700; text-decoration:none;
}
#content .profile-actions a:hover {background:#eff6ff; text-decoration:none !important;}

/* Profile editing */
#content .profile-edit-page {width:min(100%,1080px); margin:8px auto 48px;}
#content .profile-edit-page > h1 {margin:0 0 18px; color:var(--text);}
#content #userinfoform {
  max-width:100%; margin:0; padding:clamp(18px,3vw,32px);
  background:#fff; border:1px solid var(--border); border-radius:18px;
  box-shadow:0 8px 25px rgba(15,23,42,.045);
}
#content #userinfoform #userinfotable {width:100%; border:0; border-collapse:collapse; table-layout:fixed;}
#content #userinfoform .edit-label-column {width:20%;}
#content #userinfoform .edit-field-column {width:39%;}
#content #userinfoform .edit-hint-column {width:41%;}
#content #userinfoform #userinfotable td {padding:14px 10px; border-bottom:1px solid #edf1f6; vertical-align:top;}
#content #userinfoform #userinfotable td:first-child {padding-left:0; color:#475569; font-weight:650;}
#content #userinfoform #userinfotable td.h {min-width:0;}
#content #userinfoform #userinfotable td.h input:not([type=hidden]):not([type=submit]):not([type=reset]):not([type=button]):not([type=checkbox]):not([type=radio]),
#content #userinfoform #userinfotable td.h select,
#content #userinfoform #userinfotable td.h textarea {display:block; width:100% !important; max-width:100%; box-sizing:border-box;}
#content #userinfoform #userinfotable td.h small {display:block; margin-top:7px; color:#64748b; line-height:1.5;}
#content #userinfoform #userinfotable td.h .edit-secondary-input,
#content #userinfoform .edit-secondary-label {margin-top:14px;}
#content #userinfoform .edit-secondary-label {display:block;}
#content #userinfoform #userinfotable td.hint {width:auto; padding-left:20px; color:#64748b; font-size:.85rem; line-height:1.55; overflow-wrap:anywhere;}
#content #userinfoform #userinfotable td.hint font[color=blue] {color:#64748b;}
#content #userinfoform #userinfotable td.hint font[color=red] {color:#b91c1c;}
#content #userinfoform #userinfotable td.hint font[color=green] {color:#15803d;}
#content #userinfoform #userinfotable td.hint br + br,
#content #userinfoform #userinfotable td.hint hr {display:none;}
#content #userinfoform #userinfotable .edit-section-heading th {
  padding:23px 0 10px; border-bottom:2px solid #dbeafe; color:#1e40af;
  text-align:left; font-size:1rem; font-weight:750;
}
#content #userinfoform #userinfotable .edit-section-heading:first-child th {padding-top:0;}
#content #userinfoform #userinfotable .edit-actions td {padding-top:22px; border-bottom:0;}
#content #userinfoform #userinfotable .edit-actions td.h {display:flex; flex-wrap:wrap; gap:10px;}
#content #userinfoform #userinfotable ul.m {margin:0;}
#content form#addsolutionform {width:100%;}
#content #dots-onecompiler-editor {width:100% !important; max-width:100%; border-radius:12px !important; border-color:var(--border) !important;}

/* Data lists, contest results, standings, and samples */
/* Contest browse: time tabs and compact personal progress */
#content .contests-page {max-width:var(--page-content-width); margin:8px auto 48px;}
#content .contests-section + .contests-section {margin-top:34px;}
#content .contests-heading {display:flex; align-items:center; justify-content:space-between; gap:12px; margin-bottom:18px;}
#content .contests-heading h1, #content .contests-heading h2 {
  display:flex; align-items:center; gap:12px; margin:0; padding:0;
  color:#17233b; font-family:system-ui,-apple-system,"Segoe UI",Roboto,Arial,sans-serif;
  font-size:clamp(1.65rem,2.5vw,2.15rem); font-weight:800; line-height:1.2; letter-spacing:-.035em;
}
#content .contests-heading h1::before, #content .contests-heading h2::before {
  content:""; flex:none; width:4px; height:1em; border-radius:4px; background:var(--brand);
}
#content .contests-heading-count {display:inline-flex; align-items:center; justify-content:center;
  min-width:28px; min-height:28px; padding:0 7px; box-sizing:border-box;
  border:1px solid #dbe5f1; border-radius:9px; background:#f0f5fb;
  color:#475569; font-size:.88rem; font-weight:700; letter-spacing:0;}
#content .contests-practices {scroll-margin-top:145px;}
#content .contests-update-status {margin:0 0 12px; color:#475569; font-size:.9rem;}
#content .contests-update-status:empty {display:none;}
#content .contests-update-status a {color:#1d4ed8; text-decoration:underline;}
#content .contest-auth-required {border:1px solid #c8daf7; background:#eff6ff; color:#1d4ed8; text-decoration:none;}
#content .contest-auth-required:hover, #content .contest-auth-required:focus-visible {background:#dbeafe; color:#1e40af;}
#content .contests-create-form {margin:0;}
#content button.contests-create {font:inherit; font-weight:700; cursor:pointer;}
#content .contests-create, #content .contest-item-action, #content .contests-more a {
  display:inline-flex; align-items:center; justify-content:center; padding:9px 15px;
  border:1px solid #c8daf7; border-radius:10px; background:#eff6ff;
  color:#1d4ed8; font-weight:700; text-decoration:none;
}
#content .contests-create:hover, #content .contest-item-action:hover,
#content .contests-more a:hover {background:#dbeafe; text-decoration:none;}
#content .contests-toolbar {
  display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap;
  gap:14px 20px; padding:15px 18px; margin-bottom:16px;
  border:1px solid var(--border); border-radius:16px; background:#fff;
  box-shadow:0 6px 20px rgba(15,23,42,.035);
}
#content .contests-tabs {display:flex; align-items:center; gap:5px; min-width:0;}
#content .contest-tab {display:inline-flex; align-items:center; gap:7px; min-height:40px; padding:9px 12px;
  border-radius:9px; color:#475569; font-weight:650; white-space:nowrap;}
#content .contest-tab.is-active {background:#eaf2ff; color:#1d4ed8;}
#content .contest-tab span {font-size:.78rem; color:#64748b; font-weight:650;}
#content .contests-search {display:flex; align-items:center; gap:8px; margin:0;}
#content .contests-search label {font-size:.94rem; font-weight:600; color:#334155; white-space:nowrap;}
#content .contests-search input {width:min(220px,34vw); min-width:0;}
#content .contests-search button {min-height:40px;}
#content .contests-guest-note {margin:0 0 14px; padding:10px 14px; border-radius:10px; background:#eff6ff; color:#475569; font-size:.9rem;}
#content .contests-list {display:grid; gap:10px;}
#content .contest-item {display:grid; grid-template-columns:minmax(0,1fr) auto;
  grid-template-areas:"main state" "progress progress"; gap:0 18px;
  --contest-color:#64748b; --contest-tint:#f8fafc; --contest-outline:#e2e8f0;
  padding:17px 20px 17px 18px; border:1px solid var(--border); border-left:3px solid var(--contest-color);
  border-radius:15px; background:#fff;
  box-shadow:0 5px 16px rgba(15,23,42,.035);}
#content .contest-item.kind-otbor {--contest-color:#1d4ed8; --contest-tint:#eff6ff; --contest-outline:#bfdbfe;}
#content .contest-item.kind-olympic {--contest-color:#b42332; --contest-tint:#fff1f2; --contest-outline:#fecdd3;}
#content .contest-item.kind-cert {--contest-color:#047857; --contest-tint:#ecfdf5; --contest-outline:#a7f3d0;}
#content .contest-item.kind-acm {--contest-color:#9f2944; --contest-tint:#fff1f2; --contest-outline:#fecdd3;}
#content .contest-item-main {grid-area:main; min-width:0;}
#content .contest-item-title {display:flex; align-items:center; gap:10px; min-width:0;}
#content .contest-item-title a {min-width:0; color:var(--text) !important; font-weight:750; font-size:1.04rem; line-height:1.35; overflow-wrap:anywhere;}
#content .contest-item-title a:hover, #content .contest-item-title a:focus-visible {color:var(--contest-color) !important;}
#content button.contest-type-icon {position:relative; flex:none; display:inline-flex; align-items:center; justify-content:center;
  box-sizing:border-box; width:38px; height:38px; min-height:38px; padding:0;
  border:1px solid var(--contest-outline); border-radius:10px;
  background:var(--contest-tint); color:var(--contest-color);
  box-shadow:none; font:750 1.13rem/1 system-ui,sans-serif; cursor:help;}
#content button.contest-type-icon.kind-acm {font-size:.62rem; letter-spacing:-.01em;}
#content button.contest-type-icon:focus-visible {outline:3px solid var(--contest-color); outline-offset:2px;}
#content .contest-type-icon:hover::after, #content .contest-type-icon:focus::after {
  content:attr(data-tip); position:absolute; top:calc(100% + 6px); left:0; z-index:4;
  width:max-content; max-width:min(230px,80vw); padding:7px 10px; border-radius:8px;
  background:#1e293b; color:#fff; box-shadow:var(--shadow); font-size:.78rem; font-weight:600;
  white-space:normal; text-align:left;
}
#content .contest-hidden {flex:none; padding:3px 8px; border-radius:999px; background:#f1f5f9; color:#475569; font-size:.73rem; font-weight:700;}
#content .contest-meta {display:flex; flex-wrap:wrap; gap:2px 15px; padding-left:48px; margin-top:5px; color:#475569; font-size:.93rem; line-height:1.45;}
#content .contest-meta strong {color:#334155; font-weight:650;}
#content .contest-item-state {grid-area:state; display:flex; flex-direction:column; align-items:flex-end; justify-content:center; gap:7px; min-width:135px;}
#content .contest-state, #content .contest-personal-state {display:inline-flex; align-items:center; padding:5px 10px;
  border-radius:999px; font-size:.8rem; font-weight:700; white-space:nowrap;}
#content .contest-state.state-current {background:#dcfce7; color:#166534;}
#content .contest-state.state-future {background:#fef3c7; color:#92400e;}
#content .contest-state.state-finished {background:#f1f5f9; color:#475569;}
#content .contest-personal-state {background:#f1f5f9; color:#334155;}
#content .contest-personal-state.is-pending {background:#fef3c7; color:#92400e;}
#content .contest-item-action {padding:6px 11px; font-size:.8rem;}
#content .contest-progress {grid-area:progress; margin-top:13px; padding-top:11px; border-top:1px solid #edf1f6;}
#content .contest-progress-label {display:flex; justify-content:space-between; flex-wrap:wrap; gap:4px 12px;
  margin-bottom:9px; color:#475569; font-size:.9rem; line-height:1.4;}
#content .contest-progress-heading {display:inline-flex; align-items:center; gap:9px; font-weight:700;}
#content .contest-progress-percent {padding:2px 8px; border-radius:7px; background:#e6f6f3; color:#0f766e; font-size:.82rem; font-variant-numeric:tabular-nums;}
#content .contest-progress-track {height:10px; overflow:hidden; border-radius:99px; background:#e2e8f0;}
#content .contest-progress-track span {display:block; height:100%; border-radius:inherit; background:linear-gradient(90deg,#0f766e,#0d9488);}
#content .contests-empty {padding:28px 20px; border:1px solid var(--border); border-radius:15px; background:#fff; color:#64748b; text-align:center;}
#content .contests-more {margin:20px 0 0; text-align:center;}

/* Contest details */
#content .contest-details-page {max-width:var(--page-content-width); margin:4px auto 48px;}
#content .contest-details-back {display:inline-flex; margin:0 0 16px; font-size:.91rem; font-weight:700; color:#2563eb; text-decoration:none;}
#content .contest-details-back:hover {text-decoration:underline;}
#content .contest-details-card {min-width:0; padding:clamp(18px,2.6vw,28px); border:1px solid var(--border);
  border-radius:18px; background:#fff; box-shadow:0 6px 22px rgba(15,23,42,.04);}
#content .contest-details-hero {--contest-color:#64748b; --contest-tint:#f8fafc; --contest-outline:#e2e8f0;
  display:grid; grid-template-columns:minmax(0,1fr) auto; align-items:start; gap:18px 28px;
  border-left:4px solid var(--contest-color); margin-bottom:16px;}
#content .contest-details-hero.kind-otbor {--contest-color:#1d4ed8; --contest-tint:#eff6ff; --contest-outline:#bfdbfe;}
#content .contest-details-hero.kind-olympic {--contest-color:#b42332; --contest-tint:#fff1f2; --contest-outline:#fecdd3;}
#content .contest-details-hero.kind-cert {--contest-color:#047857; --contest-tint:#ecfdf5; --contest-outline:#a7f3d0;}
#content .contest-details-hero.kind-acm {--contest-color:#9f2944; --contest-tint:#fff1f2; --contest-outline:#fecdd3;}
#content .contest-details-heading {min-width:0;}
#content .contest-details-type {display:flex; align-items:center; gap:14px; min-width:0; margin-bottom:12px;}
#content .contest-details-kind {color:var(--contest-color); font-size:1.13rem; font-weight:750; line-height:1.2; overflow-wrap:anywhere;}
#content .contest-details-heading h1 {margin:0; color:var(--text); font-size:clamp(1.35rem,2.5vw,2rem); line-height:1.25;
  font-weight:780; letter-spacing:-.025em; overflow-wrap:anywhere; word-break:normal; hyphens:auto;}
#content .contest-details-controls {display:flex; flex-direction:column; align-items:flex-end; gap:12px; min-width:0; max-width:260px;}
#content .contest-details-actions {display:flex; flex-direction:column; align-items:flex-end; gap:10px; min-width:0;}
#content .contest-details-primary {display:inline-flex; justify-content:center; align-items:center; min-height:44px; padding:11px 18px;
  border:1px solid var(--contest-color); border-radius:11px; background:var(--contest-color); color:#fff !important;
  font-weight:750; line-height:1.3; text-decoration:none;}
#content .contest-details-primary:hover {filter:brightness(.9); text-decoration:none;}
#content .contest-details-notice {display:inline-flex; align-items:center; min-height:42px; padding:10px 13px;
  border-radius:10px; background:#f1f5f9; color:#475569; font-weight:650; line-height:1.4;}
#content .contest-details-progress {grid-column:1 / -1; min-width:0; padding-top:16px; border-top:1px solid #edf1f6;}
#content .contest-details-progress .contest-progress {margin:0; padding:0; border:0;}
#content .contest-details-hero .message, #content .contest-details-hero .error {grid-column:1 / -1; margin:0;}
#content .contest-details-grid {display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:16px;}
#content .contest-details-card h2 {margin:0 0 16px; color:var(--text); font-size:1.14rem; font-weight:750; line-height:1.35;}
#content .contest-details-facts {margin:0;}
#content .contest-details-facts > div {display:grid; grid-template-columns:minmax(110px,38%) minmax(0,1fr); gap:8px 12px;
  padding:10px 0; border-bottom:1px solid #edf1f6; line-height:1.5;}
#content .contest-details-facts dt {color:#475569; font-size:.9rem; font-weight:700;}
#content .contest-details-facts dd {min-width:0; margin:0; color:#0f172a; overflow-wrap:anywhere;}
#content .contest-details-description, #content .contest-details-management {margin-top:16px;}
#content .contest-details-section-heading {display:flex; align-items:baseline; justify-content:space-between;
  flex-wrap:wrap; gap:6px 14px; margin-bottom:16px;}
#content .contest-details-section-heading h2 {margin:0;}
#content .contest-details-section-heading a {color:#1d4ed8; font-size:.91rem; font-weight:700; text-decoration:none;}
#content .contest-details-section-heading a:hover {text-decoration:underline;}
#content .contest-details-empty {color:#64748b;}
#content .contest-details-content {line-height:1.7; overflow-wrap:anywhere;}
#content .contest-details-content > :first-child {margin-top:0;}
#content .contest-details-content > :last-child {margin-bottom:0;}
#content .contest-details-content img {max-width:100%; height:auto;}
#content .contest-details-content pre, #content .contest-details-content table {max-width:100%; overflow-x:auto;}
#content .contest-details-management-links, #content .contest-details-secondary {display:flex; flex-wrap:wrap; gap:9px;}
#content .contest-details-management-links a, #content .contest-details-secondary a {
  display:inline-flex; align-items:center; justify-content:center; min-height:42px; padding:9px 13px;
  border:1px solid #c8daf7; border-radius:10px; background:#eff6ff; color:#1d4ed8; font-size:.9rem;
  font-weight:700; line-height:1.35; text-decoration:none;}
#content .contest-details-management-links a:hover, #content .contest-details-secondary a:hover {background:#dbeafe;}
#content .contest-details-secondary {margin-top:16px;}

.table-scroll {max-width:100%; overflow-x:auto; overscroll-behavior-inline:contain; margin:0 0 20px; border-radius:16px; border:1px solid var(--border); background:#fff;}
#content table.t, #content table.stand, #content table.tasksample {
  width:100%; border-collapse:separate; border-spacing:0;
  background:var(--panel); box-shadow:none; border:1px solid var(--border);
  border-radius:16px; overflow:hidden; font-size:.92rem;
}
#content .table-scroll > table.t, #content .table-scroll > table.stand,
#content .table-scroll > table.tasksample {border:0; border-radius:0; margin:0;}
#content table.t th, #content table.stand th, #content table.tasksample th {
  padding:13px 14px; border:0; border-bottom:1px solid #cbd5e1;
  background:#f1f5fa; color:#334155; font:700 .84rem/1.35 system-ui,sans-serif;
  text-align:left; white-space:nowrap;
}
#content table.t td, #content table.stand td, #content table.tasksample td {
  padding:12px 14px; border:0; border-bottom:1px solid #e9eef5;
  vertical-align:middle; font-family:inherit;
}
#content table.t tr:last-child td, #content table.stand tr:last-child td,
#content table.tasksample tr:last-child td {border-bottom:0;}
#content table.t tr:hover td, #content table.stand tr:not(.standsum):not(.standsum2):hover td {background:#f8fbff;}
#content table.t tr.hl td {background:#fffbeb;}
#content table.stand tr.standsum td {background:#fffbeb; font-weight:700;}
#content table.stand tr.standsum2 td {background:#f8fafc;}
#content table.stand .res {font-variant-numeric:tabular-nums;}
#content table.t .pc, #content table.stand .pc, #content table.stand .res {text-align:center;}
#content table.taskinfo {width:auto; max-width:100%; margin:10px 0 22px; background:#eff6ff; border-radius:12px; padding:8px;}
#content table.taskinfo td {padding:6px 12px;}
#content h2.taskhead {font-size:1.5rem; font-weight:750; color:var(--text); margin:0 0 16px;}
#content .task-description {line-height:1.75; background:#fff; border:1px solid var(--border); border-radius:16px; padding:clamp(18px,3vw,34px); margin:16px 0 20px;}
#content .task-description > :last-child {margin-bottom:0;}
#content .task-description pre, #content .task-description table {max-width:100%; overflow-x:auto;}
#content ul.m {display:flex; flex-wrap:wrap; gap:8px; margin:8px 0; padding:0;}
#content ul.m li {list-style:none; margin:0;}
#content ul.m li a {display:inline-flex; padding:9px 13px; border:1px solid #dbeafe; background:#eff6ff; border-radius:10px; font-weight:650;}
#content #inactive {color:var(--muted);}

/* Feedback and overlays */
#content .error, #content .warning, #content .message {
  display:block; border-radius:12px; padding:13px 16px; margin:12px 0;
  font-size:.94rem; line-height:1.5;
}
#content .error {color:#991b1b; background:#fef2f2; border:1px solid #fecaca;}
#content .warning {color:#92400e; background:#fffbeb; border:1px solid #fde68a;}
#content .message {color:#166534; background:#f0fdf4; border:1px solid #bbf7d0;}
.modal_dialog {width:min(640px,calc(100vw - 32px)); max-height:calc(100vh - 40px); overflow:auto;
  left:50%; top:50%; margin:0; transform:translate(-50%,-50%);
  border:1px solid var(--border); border-radius:18px; box-shadow:var(--shadow);}
#footer {height:auto !important; min-height:80px; padding:20px 16px 28px;
  border-top:1px solid var(--border); background:#fff; color:var(--muted) !important;
  font-size:.78rem !important; line-height:1.5;}
#footer p {margin:0 0 8px; padding:0;}
#footer a {color:#2563eb;}

/* Pointer footer: a light card aligned with the main page content. */
#footer.site-footer {box-sizing:border-box; width:100%; max-width:1560px; min-height:0;
  margin:0 auto; padding:0 clamp(16px,3vw,48px) 32px; border:0;
  background:transparent; color:#475569 !important;
  font:400 1rem/1.6 system-ui,-apple-system,"Segoe UI",sans-serif !important; text-align:left;}
#footer.site-footer *, #content .pointer-privacy * {box-sizing:border-box;}
#footer .site-footer-inner {width:100%; max-width:var(--page-content-width); margin:0 auto;
  padding:32px 34px 22px; border:1px solid #dce6f2; border-radius:22px;
  background:linear-gradient(120deg,#fff 65%,#f4f8ff);
  box-shadow:0 8px 28px rgba(30,58,95,.045);}
#footer .site-footer-top {display:grid;
  grid-template-columns:minmax(220px,1.7fr) repeat(3,minmax(120px,1fr)); gap:26px 32px;}
#footer .site-footer-about {max-width:350px;}
#footer .site-footer-brand {display:inline-flex; align-items:center; gap:11px;
  color:#172e4c; font-size:1.25rem; font-weight:800; letter-spacing:-.025em; text-decoration:none;}
#footer .site-footer-brand:hover {color:#1d4ed8;}
#footer img.site-footer-mark {display:block; flex:none; width:44px; height:44px; object-fit:contain;}
#footer .site-footer-brand-dot {color:var(--brand);}
#footer .site-footer-about p {margin:13px 0 12px; max-width:34ch; color:#52667e; font-size:.94rem;}
#footer .site-footer-made {color:#64748b; font-size:.81rem;}
#footer .site-footer-section {display:flex; flex-direction:column; align-items:flex-start; gap:10px; min-width:0;}
#footer .site-footer-section h2 {margin:3px 0 5px; color:#657a94; font-size:.73rem;
  font-weight:800; text-transform:uppercase; letter-spacing:.09em;}
#footer .site-footer-section a, #footer .site-footer-made a {color:#294667; font-size:.9rem;
  line-height:1.45; text-decoration:none; overflow-wrap:anywhere;}
#footer .site-footer-section a:hover, #footer .site-footer-section a:focus,
#footer .site-footer-made a:hover, #footer .site-footer-made a:focus {
  color:#1d4ed8; text-decoration:underline; text-underline-offset:4px;}
#footer a:focus-visible {outline:2px solid #60a5fa; outline-offset:4px; border-radius:4px;}
#footer .site-footer-bottom {display:flex; justify-content:space-between; align-items:flex-start;
  gap:10px 28px; flex-wrap:wrap; margin-top:26px; padding-top:17px; border-top:1px solid #e2eaf4;}
#footer .site-footer-bottom p {margin:0; padding:0; color:#65768a; font-size:.77rem; line-height:1.65;}
#footer .site-footer-bottom p:last-child {max-width:700px;}
@media (max-width:760px) {
  #footer.site-footer {padding:0 14px 24px;}
  #footer .site-footer-inner {padding:27px 22px 20px; border-radius:17px;}
}

/* Public policy page. */
#content .pointer-privacy {width:min(1120px,100%); margin:20px auto 56px; color:#263d5a;
  font:400 1rem/1.68 system-ui,-apple-system,"Segoe UI",sans-serif;}
#content .privacy-hero {padding:clamp(26px,4.5vw,50px); border:1px solid #dbe8f5; border-radius:20px;
  background:radial-gradient(circle at 92% 4%,rgba(69,177,226,.14),transparent 40%),#fff;
  box-shadow:0 12px 36px rgba(19,52,88,.045);}
#content .privacy-kicker, #content .privacy-number {color:#1880bb; font-size:.77rem; font-weight:800; letter-spacing:.095em; text-transform:uppercase;}
#content .privacy-hero h1 {max-width:18ch; margin:12px 0 15px; color:#16304f; font-size:clamp(2rem,4.5vw,3.4rem); line-height:1.1; letter-spacing:-.045em;}
#content .privacy-hero h1 span {color:#1984bf;}
#content .privacy-hero > p {max-width:680px; margin:0 0 23px; color:#516a83; font-size:1.06rem;}
#content .privacy-meta {display:flex; align-items:center; flex-wrap:wrap; gap:9px 22px; color:#647c95; font-size:.86rem;}
#content .privacy-meta a {font-weight:700;}
#content .privacy-layout {display:grid; grid-template-columns:220px minmax(0,1fr); gap:28px; margin-top:26px; align-items:start;}
#content .privacy-toc {position:sticky; top:125px; display:flex; flex-direction:column; gap:3px;
  padding:16px; border:1px solid #e0eaf4; border-radius:16px; background:#fff;}
#content .privacy-toc strong {margin:0 0 7px; padding:0 10px; color:#6a829b; font-size:.78rem; text-transform:uppercase; letter-spacing:.07em;}
#content .privacy-toc a {padding:8px 10px; border-radius:9px; color:#35516f; font-size:.86rem; font-weight:650; text-decoration:none;}
#content .privacy-toc a:hover, #content .privacy-toc a:focus {background:#eef6fd; color:#0a659d;}
#content .privacy-sections {display:grid; gap:17px; min-width:0;}
#content .privacy-card {min-width:0; padding:clamp(22px,3vw,32px); border:1px solid #e0eaf4; border-radius:17px; background:#fff;
  box-shadow:0 8px 26px rgba(28,57,89,.035); scroll-margin-top:125px;}
#content .privacy-card h2 {margin:9px 0 13px; color:#193451; font-size:clamp(1.3rem,2.3vw,1.7rem); line-height:1.25; letter-spacing:-.02em;}
#content .privacy-card p {margin:0 0 13px; color:#455e77;}
#content .privacy-card p:last-child {margin-bottom:0;}
#content .privacy-card ul {margin:0 0 15px; padding-left:22px; color:#455e77;}
#content .privacy-card li {margin:8px 0;}
#content .privacy-card a, #content .privacy-meta a {color:#0c6ea9; text-decoration:underline; text-decoration-color:#b5d9ec; text-underline-offset:3px;}
#content .privacy-card a:hover, #content .privacy-meta a:hover {color:#034c7b;}
#content .privacy-note {padding:13px 16px; border-left:3px solid #5db5db; border-radius:0 10px 10px 0; background:#eff8fc;}
#content .privacy-cookie {display:flex; gap:18px; align-items:flex-start; margin:16px 0; padding:17px;
  border:1px solid #dceaf6; border-radius:12px; background:#f6faff;}
#content .privacy-cookie code {padding:5px 8px; border-radius:7px; background:#e4f1fa; color:#146a9e; font-weight:800;}
#content .privacy-cookie strong {color:#284968;}
#content .privacy-cookie p {margin:4px 0 0; font-size:.93rem;}
#content .privacy-card-last {border-color:#cde5ef; background:#fafdff;}
@media (max-width:900px) {
  #footer .site-footer-top {grid-template-columns:repeat(3,minmax(0,1fr));}
  #footer .site-footer-about {grid-column:1 / -1; max-width:540px;}
  #content .privacy-layout {grid-template-columns:1fr; gap:15px;}
  #content .privacy-toc {position:static; flex-direction:row; flex-wrap:wrap; gap:2px 5px;}
  #content .privacy-toc strong {width:100%;}
}
@media (max-width:600px) {
  #footer .site-footer-inner {padding:24px 20px 18px;}
  #footer .site-footer-top {grid-template-columns:repeat(2,minmax(0,1fr)); gap:27px 18px;}
  #footer .site-footer-about {grid-column:1 / -1;}
  #footer .site-footer-section:last-child {grid-column:1 / -1;}
  #footer .site-footer-bottom {margin-top:28px;}
  #content .pointer-privacy {margin:4px auto 30px;}
  #content .privacy-layout {margin-top:14px;}
  #content .privacy-toc {padding:10px;}
  #content .privacy-card {scroll-margin-top:20px;}
  #content .privacy-cookie {flex-direction:column; gap:8px;}
}

/* Header refinements */
.pill, .tab {color:#1d4ed8 !important; transition:background .15s,border-color .15s,transform .15s;}
.pill-primary {color:#fff !important;}
.pill:hover, .tab:hover {background:#eff6ff; transform:translateY(-1px);}
.pill-primary:hover {background:#1d4ed8; color:#fff !important;}
.tab {min-width:0; border-color:#dbeafe; border-radius:10px; padding:9px 13px;}
.tab.is-disabled {color:#64748b !important;}
.menu {max-height:min(70vh,480px); overflow-y:auto;}
.brand-logo {flex:none;}

@media (max-width:760px) {
  #header {position:relative;}
  #content {padding:22px 14px 36px;}
  #content .contests-page {margin:0 auto 28px;}
  #content .contests-practices {scroll-margin-top:20px;}
  #content .contest-details-page {margin:0 auto 30px;}
  #content .contest-details-grid {grid-template-columns:minmax(0,1fr); gap:12px;}
  #content .contest-details-hero {grid-template-columns:minmax(0,1fr); gap:16px; margin-bottom:12px;}
  #content .contest-details-type {gap:10px; margin-bottom:10px;}
  #content .contest-details-heading h1 {
    font-size:clamp(1.3rem,5.1vw,1.65rem); line-height:1.3;}
  #content .contest-details-controls {align-items:stretch; max-width:none; width:100%;}
  #content .contest-details-controls .contest-state {align-self:flex-start;}
  #content .contest-details-actions, #content .contest-details-primary {width:100%;}
  #content .contest-details-notice {width:100%;}
  #content .contest-details-description, #content .contest-details-management {margin-top:12px;}
  #content .contest-details-management-links {display:grid; grid-template-columns:minmax(0,1fr);}
  #content .contests-section + .contests-section {margin-top:30px;}
  #content .contests-heading {flex-wrap:wrap;}
  #content .contests-toolbar {padding:12px;}
  #content .contests-tabs {width:100%; overflow-x:auto; padding-bottom:2px;}
  #content .contest-tab {padding:8px 10px; font-size:.88rem;}
  #content .contests-events .contests-tabs {display:grid; grid-template-columns:minmax(0,1.4fr) minmax(0,1fr); overflow:visible;}
  #content .contests-events .contest-tab {justify-content:center; text-align:center; white-space:normal; line-height:1.3;}
  #content .contests-search {display:grid; grid-template-columns:minmax(0,1fr) auto; width:100%;}
  #content .contests-search label {grid-column:1 / -1;}
  #content .contests-search input {width:100%;}
  #content .contest-item {grid-template-columns:minmax(0,1fr); grid-template-areas:"main" "state" "progress"; padding:15px;}
  #content .contest-item-title {align-items:flex-start;}
  #content .contest-item-title a {padding-top:6px;}
  #content .contest-meta {padding-left:0; margin-top:9px; font-size:.88rem;}
  #content .contest-item-state {align-items:flex-start; flex-direction:row; flex-wrap:wrap; justify-content:flex-start; min-width:0; margin-top:12px;}
  #content .login-page {margin:14px auto 28px;}
  #content .login-page h1 {margin-bottom:16px;}
  #content #loginform {padding:20px;}
  #content .login-remember {margin-bottom:16px;}
  #content .register-page {margin:14px auto 28px;}
  #content .register-intro {text-align:left;}
  #content #registerform, #content .register-success {padding:20px;}
  #content .restore-page {margin:14px auto 28px;}
  #content .restore-intro {text-align:left;}
  #content .restore-card {padding:20px;}
  #content .password-page {margin:14px auto 28px;}
  #content #passwordform {padding:20px;}
  #content .profile-page {margin:0 auto 28px;}
  #content .profile-hero {
    display:grid;
    grid-template-columns:52px minmax(0,1fr);
    grid-template-areas:"avatar identity" ". badge";
    gap:10px 12px;
    align-items:start;
    padding:18px;
  }
  #content .profile-avatar {grid-area:avatar; width:52px; height:52px; border-radius:14px; font-size:1.4rem;}
  #content .profile-identity {grid-area:identity; width:100%; min-width:0;}
  #content .profile-identity h1 {font-size:clamp(1.35rem,5vw,1.8rem); overflow-wrap:break-word; word-break:normal;}
  #content .profile-identity p {overflow-wrap:break-word; word-break:normal;}
  #content .profile-id {grid-area:badge; justify-self:start; max-width:100%; margin:0;}
  #content .profile-card {padding:10px 18px;}
  #content .profile-card #userinfotable, #content .profile-card #userinfotable tbody, #content .profile-card #userinfotable tr, #content .profile-card #userinfotable td {display:block; width:100%;}
  #content .profile-card #userinfotable tr {padding:11px 0; border-bottom:1px solid #edf1f6;}
  #content .profile-card #userinfotable tr:last-child {border:0;}
  #content .profile-card #userinfotable td, #content .profile-card #userinfotable td:first-child {width:100%; padding:1px 0; border:0;}
  #content .profile-actions a {width:100%; justify-content:center;}
  #content .profile-edit-page {margin:0 auto 28px;}
  #content #userinfoform {padding:18px;}
  #content #userinfoform #userinfotable,
  #content #userinfoform #userinfotable tbody,
  #content #userinfoform #userinfotable tr,
  #content #userinfoform #userinfotable td,
  #content #userinfoform #userinfotable th {display:block; width:100%; box-sizing:border-box;}
  #content #userinfoform #userinfotable colgroup {display:none;}
  #content #userinfoform #userinfotable tr:not(.edit-section-heading) {padding:13px 0; border-bottom:1px solid #edf1f6;}
  #content #userinfoform #userinfotable td,
  #content #userinfoform #userinfotable td:first-child {padding:0; border:0;}
  #content #userinfoform #userinfotable td.b {margin-bottom:7px;}
  #content #userinfoform #userinfotable td.b:empty {display:none;}
  #content #userinfoform #userinfotable td.hint {padding:8px 0 0; font-size:.82rem;}
  #content #userinfoform #userinfotable .edit-section-heading th {padding:22px 0 9px;}
  #content #userinfoform #userinfotable .edit-section-heading:first-child th {padding-top:0;}
  #content #userinfoform #userinfotable .edit-actions {border:0; padding-bottom:0;}
  #content #userinfoform #userinfotable .edit-actions td.h {padding:0;}
  #content #userinfoform #userinfotable .edit-actions input {flex:1 1 130px;}
  #content #userinfoform .edit-secondary-label {display:none;}
  #content #userinfoform #userinfotable td.h .edit-secondary-input {margin-top:10px;}
  #content > form:not(.i), #content > table:not(.t):not(.stand):not(.tasksample):not(.taskinfo),
  #content .page-panel {padding:14px;}
  #content > form:not(.i) > table td {display:block; width:100% !important; min-width:0 !important; padding:5px 2px; border:0 !important;}
  #content > form:not(.i) > table tr {display:block; padding:8px 0; border-bottom:1px solid #f1f5f9;}
  #content > form:not(.i) > table tr:last-child {border:0;}
  #content > table:not(.t):not(.stand):not(.tasksample):not(.taskinfo) td {min-width:0 !important; width:auto !important; padding:9px 6px;}
  #content .search table, #content .search tbody, #content .search tr, #content .search td {display:block; width:100% !important; text-align:left;}
  #content .search td + td {padding-top:12px;}
  #content .search input[type=text] {max-width:100%; flex:1 1 160px;}
  #content table.t, #content table.stand {font-size:.82rem;}
  #content table.t th, #content table.stand th, #content table.t td, #content table.stand td {padding:9px 11px;}
  .hdr-wrap {align-items:stretch;}
  .brand-title {font-size:clamp(22px,6vw,30px);}
  .brand-subtitle {max-width:calc(100vw - 116px); white-space:normal;}
  .static-links {gap:6px;}
  .pill {padding:8px 10px; font-size:.88rem;}
  .contest-tabs {flex-wrap:nowrap; overflow-x:auto; padding-bottom:4px;}
  .contest-tabs .tab {flex:0 0 auto; white-space:nowrap;}
  .contest-right {width:100%; justify-content:space-between;}
}
/* Browse problems */
#content .problems-page {max-width:var(--page-content-width); margin:4px auto 40px;}
#content .problem-success-stat {font-variant-numeric:tabular-nums; font-weight:700; white-space:nowrap; cursor:help;}
#content .problems-heading {display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:10px 18px; margin-bottom:17px;}
#content .problems-heading h1 {margin:0; color:var(--text); font-size:clamp(1.45rem,2.4vw,1.9rem); font-weight:800; line-height:1.25;}
#content .problems-manage {display:inline-flex; align-items:center; justify-content:center; min-height:40px; padding:8px 14px;
  border-radius:10px; border:1px solid #bfdbfe; background:#eff6ff; color:#1d4ed8; font-size:.9rem; font-weight:700; text-decoration:none;}
#content .problems-manage:hover {background:#dbeafe;}
#content .problems-toolbar {display:flex; align-items:center; justify-content:space-between; gap:12px; margin-bottom:16px;
  padding:14px 18px; border:1px solid var(--border); border-radius:15px; background:#fff;}
#content .problems-search {display:flex; align-items:center; flex-wrap:wrap; gap:8px; margin:0; min-width:0;}
#content .problems-search label {font-size:.94rem; font-weight:700; color:#334155;}
#content .problems-search input {box-sizing:border-box; min-width:0; width:min(320px,40vw); height:42px; padding:9px 12px;
  border:1px solid #cbd5e1; border-radius:9px; background:#fff; font:inherit;}
#content .problems-search button {min-height:42px; padding:9px 15px; font-weight:700;}
#content .problems-reset {padding:8px; color:#475569; font-size:.9rem; font-weight:650;}
#content .problems-count {flex:none; color:#64748b; font-size:.9rem; font-weight:650; white-space:nowrap;}
#content .problems-list {overflow-x:auto; border:1px solid var(--border); border-radius:15px; background:#fff;}
#content .problems-list > .problems-table {min-width:600px; width:100%; margin:0; border:0; border-radius:0; table-layout:auto;}
#content .problems-table th {padding:13px 16px; font-size:.87rem;}
#content .problems-table th a {color:#334155; text-decoration:none;}
#content .problems-table th a:hover {color:#1d4ed8; text-decoration:underline;}
#content .problems-table td {padding:13px 16px; font-size:.94rem;}
#content .problems-table .problem-cell-code {width:68px; text-align:center; font-variant-numeric:tabular-nums; font-weight:750; color:#1d4ed8;}
#content .problems-table .problem-cell-code a {color:inherit;}
#content .problems-table .problem-cell-title {min-width:200px; line-height:1.4; overflow-wrap:anywhere;}
#content .problems-table .problem-cell-title a {color:#0f172a; font-weight:700; text-decoration:none;}
#content .problems-table .problem-cell-title a:hover {color:#1d4ed8; text-decoration:underline;}
#content .problems-table td.po, #content .problems-table tr:hover td.po {background:#e6f8ed; color:#166534; text-align:center; font-weight:750;}
#content .problems-table td.pw, #content .problems-table tr:hover td.pw {background:#fff1f2; color:#b42332; text-align:center; font-weight:750;}
#content .problems-table td.po a {color:#166534;}
#content .problems-table td.pw a {color:#b42332;}
#content .problems-pagination {display:flex; align-items:center; flex-wrap:wrap; gap:6px; margin:18px 0 0; color:#475569; font-size:.9rem;}
#content .problems-pagination > span {margin-right:5px; font-weight:700;}
#content .problems-pagination a {display:inline-flex; justify-content:center; align-items:center; min-width:32px; min-height:32px;
  padding:3px 7px; border:1px solid #dbeafe; border-radius:8px; background:#fff; color:#1d4ed8; text-decoration:none;}
#content .problems-pagination a:hover {background:#eff6ff;}
#content .problems-empty {padding:30px 20px; border:1px solid var(--border); border-radius:15px; background:#fff; color:#64748b; text-align:center;}

@media (max-width:760px) {
  #content .problems-page {margin:0 auto 30px;}
  #content .problems-heading {align-items:flex-start; margin-bottom:14px;}
  #content .problems-manage {width:100%; box-sizing:border-box;}
  #content .problems-toolbar {display:block; padding:14px;}
  #content .problems-search {display:grid; grid-template-columns:minmax(0,1fr) auto; gap:8px;}
  #content .problems-search label {grid-column:1 / -1;}
  #content .problems-search input {width:100%;}
  #content .problems-reset {grid-column:1 / -1; justify-self:start;}
  #content .problems-count {display:block; margin-top:10px; font-size:.83rem;}
  #content .problems-list {overflow:visible; border:0; background:transparent;}
  #content .problems-list > .problems-table, #content .problems-table tbody {display:block; min-width:0; width:100%; background:transparent; border:0;}
  #content .problems-table thead {position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap;}
  #content .problems-table tbody tr {display:grid; grid-template-columns:auto minmax(0,1fr); gap:0 12px;
    margin:0 0 11px; padding:15px; border:1px solid var(--border); border-radius:14px; background:#fff;
    box-shadow:0 5px 16px rgba(15,23,42,.035);}
  #content .problems-table tbody td {box-sizing:border-box; min-width:0; width:auto; padding:0; border:0; background:transparent; text-align:left;}
  #content .problems-table tbody td.problem-cell-code {grid-column:1; grid-row:1; width:auto; min-width:36px; height:36px;
    display:flex; align-items:center; justify-content:center; align-self:start; padding:0 8px; border-radius:9px; background:#eff6ff; font-size:.85rem;}
  #content .problems-table tbody td.problem-cell-title {grid-column:2; grid-row:1; align-self:center; min-width:0; font-size:1rem;}
  #content .problems-table tbody td.problem-cell-meta {grid-column:1 / -1; display:flex; align-items:center; justify-content:space-between;
    gap:10px; padding:9px 0 0; margin-top:9px; border-top:1px solid #edf1f6; font-size:.88rem; text-align:right;}
  #content .problems-table tbody td.problem-cell-meta::before {content:attr(data-label); margin-right:auto; color:#64748b; font-weight:650; text-align:left;}
  #content .problems-table tbody td.po, #content .problems-table tbody tr:hover td.po {background:#e6f8ed; padding:9px 10px; border:0; border-radius:8px; color:#166534;}
  #content .problems-table tbody td.pw, #content .problems-table tbody tr:hover td.pw {background:#fff1f2; padding:9px 10px; border:0; border-radius:8px; color:#b42332;}
  #content .problems-table tbody tr:hover td:not(.po):not(.pw) {background:transparent;}
  #content .problems-table tbody tr:hover td.problem-cell-code {background:#eff6ff;}
  #content .problems-pagination {margin-top:15px;}
}
/* Problem list refinements */
#content .problems-heading-main {display:flex; align-items:baseline; flex-wrap:wrap; gap:7px 16px;}
#content .problems-heading-count {color:#64748b; font-size:.92rem; font-weight:650; white-space:nowrap;}
#content .problems-contest-toolbar {flex-wrap:wrap; gap:12px 20px; padding:15px 18px;}
#content .problems-contest-links {display:flex; flex-wrap:wrap; gap:8px;}
#content .problems-contest-links a, #content .problems-leave {display:inline-flex; align-items:center; justify-content:center;
  min-height:42px; box-sizing:border-box; padding:9px 13px; border:1px solid #dbeafe; border-radius:10px;
  background:#fff; color:#1d4ed8; font-size:.94rem; font-weight:700; text-decoration:none;}
#content .problems-contest-links a:hover, #content .problems-leave:hover {background:#eff6ff;}
#content .problems-contest-right {display:flex; align-items:center; flex-wrap:wrap; gap:9px; margin-left:auto;}
#content .problems-contest-right .timerpill {min-height:42px; box-sizing:border-box; padding:9px 13px; font-size:.94rem;}
#content .problems-leave {gap:7px; color:#b45309; border-color:#fde68a; background:#fffbeb;}
#content .problems-leave:hover {background:#fef3c7;}
#content .problems-table th {font-size:.98rem;}
#content .problems-table th.problem-head-center {text-align:center;}
#content .problems-table td {font-size:1.05rem;}
#content .problems-table .problem-cell-title a {font-size:1.05rem;}
#content .problems-table .problem-cell-code {font-size:1rem;}
#content .problems-table td.problem-cell-meta.pd {text-align:center;}
#content .problems-table td.problem-cell-score {min-width:130px;}
#content .problem-score {display:flex; flex-direction:column; gap:7px; width:min(155px,100%); margin:0 auto;}
#content .problem-score-mobile-result {display:none;}
#content .problem-score-value {line-height:1.15; text-align:center; font-variant-numeric:tabular-nums; font-weight:750;}
#content .problem-score-value a {color:#1d4ed8;}
#content .problem-score-track {display:block; width:100%; height:8px; overflow:hidden; border-radius:99px; background:#e2e8f0;}
#content .problem-score-track > span {display:block; height:100%; border-radius:inherit; background:#94a3b8;}
#content .problem-score.is-partial .problem-score-track > span {background:linear-gradient(90deg,#f59e0b,#fbbf24);}
#content .problem-score.is-complete .problem-score-track > span {background:linear-gradient(90deg,#0f766e,#10b981);}

@media (max-width:760px) {
  #content .problems-contest-toolbar {display:grid; gap:13px;}
  #content .problems-contest-links {display:flex;}
  #content .problems-contest-links a {flex:1 1 130px; padding:9px; text-align:center;}
  #content .problems-contest-right {margin:0; flex-wrap:nowrap; justify-content:space-between; gap:8px;}
  #content .problems-contest-right .timerpill {min-width:0; font-size:.88rem;}
  #content .problems-leave {flex:none; width:44px; height:44px; padding:0;}
  #content .problems-leave span {display:none;}
  #content .problems-table tbody td.problem-cell-code {font-size:.94rem;}
  #content .problems-table tbody td.problem-cell-title, #content .problems-table .problem-cell-title a {font-size:1.06rem;}
  #content .problems-table tbody td.problem-cell-meta {font-size:.96rem;}
  #content .problems-table tbody td.problem-cell-score {min-width:0;}
  #content .problem-cell-score .problem-score {display:grid; grid-template-columns:minmax(35px,auto) minmax(65px,100px);
    align-items:center; gap:9px; width:auto; margin:0;}
  #content .problem-cell-score .problem-score-value {text-align:right;}
  #content .problems-table tbody td.problem-cell-result-merged {display:none;}
  #content .problems-table tbody td.problem-cell-score-merged {display:block; width:100%; text-align:left;}
  #content .problems-table tbody td.problem-cell-score-merged::before {display:none;}
  #content .problem-cell-score-merged .problem-score {display:grid; width:100%;
    grid-template-columns:minmax(0,1fr) minmax(65px,100px);
    grid-template-areas:"result points" "result bar"; align-items:center; gap:5px 10px;}
  #content .problem-cell-score-merged .problem-score-mobile-result {grid-area:result; display:flex; align-items:baseline;
    flex-wrap:wrap; gap:3px 6px; min-width:0; color:#475569; font-size:.93rem; font-weight:700; line-height:1.3;}
  #content .problem-score-mobile-result strong {font-weight:650; color:#64748b;}
  #content .problem-score-mobile-result.is-success a {color:#166534;}
  #content .problem-score-mobile-result.is-error a {color:#b42332;}
  #content .problem-cell-score-merged .problem-score-value {grid-area:points; text-align:right;}
  #content .problem-cell-score-merged .problem-score-track {grid-area:bar;}
}
/* Browse solutions */
#content .solutions-page {max-width:var(--page-content-width); margin:4px auto 40px;}
#content .solutions-heading {display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap;
  gap:12px 18px; margin-bottom:17px;}
#content .solutions-heading h1 {margin:0; color:var(--text); font-size:clamp(1.45rem,2.4vw,1.9rem);
  font-weight:800; line-height:1.25;}
#content .solutions-tasks-mobile {display:none;}
#content .solutions-filter-title {margin:7px 0 0; color:#475569; font-size:.96rem; overflow-wrap:anywhere;}
#content .solutions-list {max-width:100%; overflow-x:auto; border:1px solid var(--border); border-radius:15px; background:#fff;}
#content .solutions-list > table.solutions-table {width:100%; min-width:810px; margin:0; border:0; border-radius:0;}
#content .solutions-list > table.solutions-table-all {min-width:1100px;}
#content .solutions-list .solutions-table th {padding:13px 14px; font-size:.95rem;}
#content .solutions-table th.solution-head-center {text-align:center;}
#content .solutions-table th a {color:#334155; text-decoration:none;}
#content .solutions-table th a:hover {color:#1d4ed8; text-decoration:underline;}
#content .solutions-table .solution-sort-indicator {margin-left:5px; font-size:1rem; color:#1d4ed8;}
#content .solutions-list .solutions-table td {padding:12px 14px; font-size:1rem; line-height:1.35;}
#content .solutions-table .solution-cell-id {width:75px; text-align:center; font-weight:750; font-variant-numeric:tabular-nums; color:#1d4ed8;}
#content .solutions-table .solution-cell-problem {min-width:280px; overflow-wrap:anywhere;}
#content .solutions-table .solution-cell-problem a {color:#0f172a; font-weight:700; text-decoration:none;}
#content .solutions-table .solution-cell-problem a:hover {color:#1d4ed8; text-decoration:underline;}
#content .solutions-table td.solution-cell-meta.pd {text-align:center; font-variant-numeric:tabular-nums; white-space:nowrap;}
#content .solutions-table td.solution-cell-score {min-width:105px;}
#content table.solutions-table tr.hl td {background:#fffbeb;}
#content table.solutions-table td.po, #content table.solutions-table tr:hover td.po,
#content table.solutions-table tr.hl td.po {background:#e6f8ed; color:#166534; text-align:center; font-weight:750;}
#content table.solutions-table td.pw, #content table.solutions-table tr:hover td.pw,
#content table.solutions-table tr.hl td.pw {background:#fff1f2; color:#b42332; text-align:center; font-weight:750;}
#content .solutions-table td.po a {color:#166534;}
#content .solutions-table td.pw a {color:#b42332;}
#content .solutions-list table.solutions-table tbody tr.solution-row-ok td,
#content .solutions-list table.solutions-table tbody tr.solution-row-ok:hover td {background:#edf9f1;}
#content .solutions-list table.solutions-table tbody tr.solution-row-partial td,
#content .solutions-list table.solutions-table tbody tr.solution-row-partial:hover td {background:#fff1f3;}
#content .solutions-list table.solutions-table tbody tr.solution-row-neutral td,
#content .solutions-list table.solutions-table tbody tr.solution-row-neutral:hover td {background:#fff;}

@media (max-width:760px) {
  #content .solutions-page {margin:0 auto 30px;}
  #content .solutions-tasks-desktop {display:none;}
  #content .solutions-tasks-mobile {display:inline;}
  #content .solutions-heading {align-items:flex-start;}
  #content .solutions-heading .problems-manage {width:100%; box-sizing:border-box;}
  #content .solutions-search-toolbar {display:block;}
  #content .solutions-list {overflow:visible; border:0; background:transparent;}
  #content .solutions-list > table.solutions-table, #content .solutions-table tbody {display:block; min-width:0; width:100%; border:0; background:transparent;}
  #content .solutions-table thead {position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap;}
  #content .solutions-table tbody tr {display:grid; grid-template-columns:auto minmax(0,1fr); gap:0 12px;
    margin:0 0 11px; padding:15px; border:1px solid var(--border); border-radius:14px; background:#fff;
    box-shadow:0 5px 16px rgba(15,23,42,.035);}
  #content .solutions-table tbody tr.hl {background:#fffbeb;}
  #content .solutions-table tbody tr:hover td:not(.po):not(.pw),
  #content table.solutions-table tr.hl td:not(.po):not(.pw) {background:transparent;}
  #content .solutions-list .solutions-table tbody td {box-sizing:border-box; min-width:0; width:auto; padding:0;
    border:0; background:transparent; text-align:left; overflow-wrap:anywhere;}
  #content .solutions-table tbody td.solution-cell-id {grid-column:1; grid-row:1; display:flex; align-items:center;
    justify-content:center; align-self:start; min-width:56px; min-height:36px; padding:0 8px;
    border-radius:9px; background:#eff6ff; font-size:.85rem;}
  #content .solutions-table tbody td.solution-cell-problem {grid-column:2; grid-row:1; align-self:center; min-width:0; font-size:1.02rem;}
  #content .solutions-table tbody td.solution-cell-meta {grid-column:1 / -1; display:flex; align-items:center;
    justify-content:space-between; gap:9px; padding:9px 0 0; margin-top:9px;
    border-top:1px solid #edf1f6; font-size:.92rem; text-align:right;}
  #content .solutions-table tbody td.solution-cell-meta::before {content:attr(data-label); margin-right:auto;
    color:#64748b; font-weight:650; text-align:left;}
  #content .solutions-table tbody td.solution-cell-meta.pd {white-space:normal; text-align:right;}
  #content .solutions-list .solutions-table tbody td.po,
  #content .solutions-list .solutions-table tbody tr:hover td.po {padding:9px 10px; border:0; border-radius:8px; background:#e6f8ed;}
  #content .solutions-list .solutions-table tbody td.pw,
  #content .solutions-list .solutions-table tbody tr:hover td.pw {padding:9px 10px; border:0; border-radius:8px; background:#fff1f2;}
  #content .solutions-list .solutions-table tbody td.solution-cell-result-merged {display:none;}
  #content .solutions-list .solutions-table tbody td.solution-cell-score-merged {display:block; width:100%; text-align:left;}
  #content .solutions-table tbody td.solution-cell-score-merged::before {display:none;}
  #content .solution-cell-score-merged .problem-score {display:grid; width:100%;
    grid-template-columns:minmax(0,1fr) minmax(65px,100px);
    grid-template-areas:"result points" "result bar"; align-items:center; gap:5px 10px;}
  #content .solution-cell-score-merged .problem-score-mobile-result {grid-area:result; display:flex;
    align-items:baseline; flex-wrap:wrap; gap:3px 6px; min-width:0; color:#475569; font-weight:700;}
  #content .solution-cell-score-merged .problem-score-value {grid-area:points; text-align:right;}
  #content .solution-cell-score-merged .problem-score-track {grid-area:bar;}
  #content .solutions-list table.solutions-table tbody tr.solution-row-ok {background:#edf9f1;}
  #content .solutions-list table.solutions-table tbody tr.solution-row-partial {background:#fff1f3;}
  #content .solutions-list table.solutions-table tbody tr.solution-row-neutral {background:#fff;}
  #content .solutions-list table.solutions-table tbody tr.solution-row-ok td,
  #content .solutions-list table.solutions-table tbody tr.solution-row-partial td,
  #content .solutions-list table.solutions-table tbody tr.solution-row-neutral td,
  #content .solutions-list table.solutions-table tbody tr:hover td {background:transparent;}
}
/* Problem statement and inline code editor */
#content .problem-details-page {max-width:var(--page-content-width); min-width:0; margin:4px auto 40px;}
#content .problem-details-heading {display:flex; align-items:flex-end; justify-content:space-between; flex-wrap:wrap;
  gap:14px 24px; margin:0 0 18px;}
#content .problem-details-actions {display:flex; flex-wrap:wrap; justify-content:flex-end; gap:8px;}
#content .problem-details-actions a {display:inline-flex; align-items:center; justify-content:center;
  min-height:42px; padding:9px 12px; border:1px solid #dbeafe; border-radius:10px;
  background:#fff; color:#1d4ed8; text-align:center; font-size:.91rem; font-weight:700; text-decoration:none;}
#content .problem-details-actions a:hover {background:#eff6ff;}
#content .problem-details-heading h1 {margin:4px 0 10px; color:var(--text); font-size:clamp(1.55rem,2.6vw,2rem);
  font-weight:800; line-height:1.22; overflow-wrap:anywhere;}
#content .problem-details-eyebrow {display:block; color:#64748b; font-size:.94rem; font-weight:750;}
#content .problem-details-complexity, #content .problem-details-extra {display:inline-flex; align-items:center;
  gap:5px; margin:0 14px 0 0; color:#475569; font-size:.96rem;}
#content .problem-details-complexity img {vertical-align:middle;}
#content .problem-details-nav a {white-space:normal; text-align:center;}
#content .problem-details-admin-links {display:flex; flex-wrap:wrap; gap:8px; margin:0 0 18px;}
#content .problem-details-admin-links a {display:inline-flex; align-items:center; min-height:42px; box-sizing:border-box;
  padding:9px 13px; border:1px solid #dbeafe; border-radius:10px; background:#fff;
  color:#1d4ed8; font-weight:700; text-decoration:none;}
#content .problem-details-admin-links a:hover {background:#eff6ff;}
#content .problem-statement .task-description {margin:0 0 20px; padding:clamp(7.5px,1.15vw,14px); overflow:hidden;}
#content .problem-statement #imgdiv {width:100%; max-width:100%; overflow-x:auto; overflow-y:hidden; -webkit-overflow-scrolling:touch;}
#content .problem-statement #imgdiv img {width:100%; max-width:100%; height:auto; margin:0 auto; cursor:zoom-in;}
#content .problem-statement #imgdiv img, #content .problem-image-viewer img {
  -webkit-user-drag:none; -webkit-touch-callout:none; -webkit-user-select:none; user-select:none;}
#content .problem-statement #imgdiv img:focus-visible {outline:3px solid #2563eb; outline-offset:3px;}
#content .problem-image-viewer {position:fixed; width:96vw; height:94vh; max-width:96vw; max-height:94vh;
  box-sizing:border-box; padding:0; border:1px solid #cbd5e1; border-radius:14px; background:#fff; box-shadow:0 25px 60px rgba(15,23,42,.24);}
#content .problem-image-viewer::backdrop {background:rgba(15,23,42,.76);}
#content .problem-image-viewer:not([open]) {display:none;}
#content .problem-image-viewer.is-fallback {display:block; top:50%; left:50%; margin:0;
  transform:translate(-50%,-50%); z-index:150;}
#content .problem-image-backdrop {position:fixed; inset:0; z-index:149; background:rgba(15,23,42,.76);}
#content .problem-image-backdrop[hidden] {display:none;}
body.problem-image-open {overflow:hidden;}
#content .problem-image-viewer-bar {display:flex; align-items:center; justify-content:space-between;
  gap:12px; min-height:52px; box-sizing:border-box; padding:8px 14px; border-bottom:1px solid #e2e8f0;}
#content .problem-image-viewer-bar > div {display:flex; align-items:center; gap:7px;}
#content .problem-image-viewer button {min-height:36px; padding:6px 12px; border:1px solid #dbeafe;
  border-radius:8px; background:#eff6ff; color:#1d4ed8; font-size:.96rem; font-weight:750; cursor:pointer;}
#content .problem-image-viewer-scroll {height:calc(100% - 52px); overflow:auto; overscroll-behavior:contain;}
#content .problem-image-viewer img {display:block; max-width:none; height:auto; margin:18px auto;}
#content .problem-editor-panel {scroll-margin-top:18px; padding:22px; border:1px solid var(--border);
  border-radius:16px; background:#fff;}
#content .problem-editor-heading {display:flex; align-items:center; justify-content:space-between;
  flex-wrap:wrap; gap:10px; margin-bottom:15px;}
#content .problem-editor-heading h2 {margin:4px 0 0; color:var(--text); font-size:1.45rem;}
#content .problem-editor-heading a {color:#1d4ed8; font-weight:700; text-decoration:none;}
#content .problem-editor-controls {display:flex; flex-wrap:wrap; gap:12px 18px; max-width:540px; margin-bottom:15px;}
#content .problem-editor-controls label {display:flex; flex-direction:column; gap:6px; flex:1 1 280px;
  color:#334155; font-weight:700;}
#content .problem-editor-visually-hidden {position:absolute; width:1px; height:1px; padding:0;
  margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0;}
#content .problem-editor-controls select {width:100%; max-width:100%; min-height:44px; box-sizing:border-box;
  padding:8px 10px; border:1px solid #cbd5e1; border-radius:9px; background:#fff; font:inherit;}
#content .problem-editor-toolbar {display:flex; align-items:center; justify-content:space-between;
  flex-wrap:wrap; gap:8px; margin-bottom:8px; font-weight:700;}
#content .problem-editor-toolbar button {min-height:38px; padding:7px 12px; border:1px solid #dbeafe;
  border-radius:9px; background:#eff6ff; color:#1d4ed8; font-size:.9rem; font-weight:700; font-family:inherit; cursor:pointer;}
#content .problem-editor-toolbar button[hidden] {display:none;}
#content .problem-inline-form #dots-onecompiler-editor {display:none; width:100%; height:560px;
  box-sizing:border-box; border:1px solid #cbd5e1; border-radius:11px;}
#content .problem-inline-form.using-iframe #dots-onecompiler-editor {display:block;}
#content .problem-inline-form.using-iframe .problem-editor-source {display:none;}
#content .problem-inline-form .problem-editor-source {display:block; width:100%; min-height:430px;
  box-sizing:border-box; padding:15px; border:1px solid #cbd5e1; border-radius:11px;
  background:#fbfdff; color:#0f172a; font:400 16px/1.5 ui-monospace,SFMono-Regular,Consolas,monospace;
  white-space:pre; overflow:auto; resize:vertical; tab-size:4;}
#content .problem-editor-hint {margin:8px 0 0; color:#64748b; font-size:.86rem;}
#content .problem-editor-file {margin:20px 0 0; padding:15px 17px; border:1px dashed #cbd5e1;
  border-radius:11px; background:#f8fafc;}
#content .problem-editor-file > label {display:block; margin-bottom:10px; color:#334155; font-weight:750;}
#content .problem-editor-file-picker {display:flex; align-items:center; flex-wrap:wrap; gap:10px;}
#content .problem-editor-file input[type="file"] {max-width:100%; color:#475569; font:inherit;}
#content .problem-editor-file input[type="file"]::file-selector-button,
#content .problem-editor-file-picker button {min-height:40px; margin-right:12px; padding:8px 13px;
  border:1px solid #bfdbfe; border-radius:9px; background:#eff6ff; color:#1d4ed8;
  font-size:.9rem; font-weight:700; font-family:inherit; cursor:pointer;}
#content .problem-editor-file-picker button {margin-right:0;}
#content .problem-editor-file-picker button[hidden] {display:none;}
#content .problem-editor-file p {margin:9px 0 0; color:#64748b; font-size:.86rem;}
#content .problem-inline-form.using-file .problem-editor-toolbar,
#content .problem-inline-form.using-file #dots-onecompiler-editor,
#content .problem-inline-form.using-file .problem-editor-source,
#content .problem-inline-form.using-file .problem-editor-hint {display:none;}
#content .problem-inline-form.using-file .problem-editor-file {border-style:solid; border-color:#bfdbfe; background:#eff6ff;}
#content .problem-editor-actions {display:flex; justify-content:flex-end; margin-top:15px;}
#content .problem-editor-actions button {min-height:46px; padding:11px 20px; border:0;
  border-radius:10px; background:#2563eb; color:#fff; font-size:.98rem; font-weight:750; font-family:inherit; cursor:pointer;}
#content .problem-editor-actions button:disabled {opacity:.6; cursor:wait;}
#content .problem-editor-notice {margin:0 0 15px; padding:12px 14px; border-radius:10px; font-weight:650;}
#content .problem-editor-notice[hidden] {display:none;}
#content .problem-editor-notice.is-success {background:#edf9f1; color:#166534;}
#content .problem-editor-notice.is-error {background:#fff1f3; color:#b42332;}
#content .problem-editor-notice a {text-decoration:underline;}
@media (max-width:760px) {
  #content .problem-details-page {margin:0 auto 30px;}
  #content .problem-details-heading {align-items:flex-start;}
  #content .problem-details-actions {width:100%; flex-direction:column;}
  #content .problem-details-actions a {width:100%; box-sizing:border-box;}
  #content .problem-details-nav {width:100%; display:grid; grid-template-columns:repeat(2,minmax(0,1fr));}
  #content .problem-details-nav a {min-height:45px; font-size:.9rem;}
  #content .problem-details-nav a:only-child {grid-column:1 / -1;}
  #content .problem-details-nav a:last-child:nth-child(3) {grid-column:1 / -1;}
  #content .problem-statement .task-description {padding:6px;}
  #content .problem-statement #imgdiv {width:100%; max-width:100%;}
  #content .problem-statement #imgdiv img {max-width:none; margin:0;}
  #content .problem-image-viewer {width:100vw; height:100vh; max-width:100vw; max-height:100vh; border-radius:0;}
  #content .problem-editor-panel {padding:16px 13px;}
  #content .problem-editor-heading h2 {font-size:1.3rem;}
  #content .problem-inline-form .problem-editor-source {min-height:42vh; padding:12px;}
  #content .problem-inline-form #dots-onecompiler-editor {height:min(75vh,600px);}
  #content .problem-editor-file {display:none;}
  #content .problem-inline-form.using-file .problem-editor-file {display:block;}
  #content .problem-editor-actions button {width:100%;}
}
@media (prefers-reduced-motion:reduce) {
  html {scroll-behavior:auto;}
  .pill, .tab {transition:none;}
}

/* Contest context shared by tasks, submissions and standings. */
#content .contest-tasks-context {max-width:var(--page-content-width); min-width:0; margin:0 auto;}
#content .contest-context-banner {
  --contest-color:#1d4ed8; --contest-tint:#eff6ff; --contest-outline:#bfdbfe;
  display:flex; align-items:center; justify-content:space-between; gap:16px;
  min-width:0; margin:10px 0 10px; padding:13px 18px;
  border:1px solid #e2e8f0; border-left:4px solid var(--contest-color);
  border-radius:15px; background:#fff; box-shadow:0 4px 18px rgba(15,23,42,.045);
}
#content .contest-context-banner.kind-olympic {--contest-color:#b42332; --contest-tint:#fff1f2; --contest-outline:#fecdd3;}
#content .contest-context-banner.kind-cert {--contest-color:#047857; --contest-tint:#ecfdf5; --contest-outline:#a7f3d0;}
#content .contest-context-banner.kind-acm {--contest-color:#9f2944; --contest-tint:#fff1f2; --contest-outline:#fecdd3;}
#content .contest-context-main {display:flex; align-items:center; gap:11px; min-width:0;}
#content .contest-context-icon {display:inline-flex; align-items:center; justify-content:center;
  flex:none; width:38px; height:38px; border:1px solid var(--contest-outline); border-radius:10px;
  background:var(--contest-tint); color:var(--contest-color); font-weight:800; font-size:1rem;}
#content .kind-acm .contest-context-icon {font-size:.68rem;}
#content .contest-context-name {display:flex; flex-wrap:wrap; align-items:center; gap:5px 12px; min-width:0;}
#content .contest-context-name strong {min-width:0; overflow-wrap:anywhere; line-height:1.35;
  color:#0f172a; font-size:1.04rem; font-weight:750;}
#content .contest-context-status {display:inline-flex; align-items:center; padding:4px 9px;
  border-radius:999px; background:var(--contest-tint); color:var(--contest-color);
  font-size:.8rem; font-weight:750; white-space:nowrap;}
#content .contest-context-actions {display:flex; align-items:center; justify-content:flex-end;
  flex:none; flex-wrap:wrap; gap:8px;}
#content .contest-context-action {display:inline-flex; align-items:center; justify-content:center; gap:6px;
  min-height:40px; padding:7px 11px; border:1px solid #dbeafe; border-radius:9px;
  background:#fff; color:#1d4ed8; font-size:.9rem; font-weight:700; text-decoration:none; white-space:nowrap;}
#content .contest-context-action:hover, #content .contest-context-action:focus-visible {background:#eff6ff;}
#content .contest-context-action svg {width:19px; height:19px; flex:none;}
#content .contest-context-leave {border-color:#fde68a; background:#fffbeb; color:#92400e;}
#content .contest-context-leave:hover, #content .contest-context-leave:focus-visible {background:#fef3c7;}
#content .contest-context-timer {min-height:40px; box-sizing:border-box; padding:7px 11px; font-size:.88rem;}
#content .contest-context-nav {display:flex; align-items:center; gap:8px; min-width:0;
  margin-bottom:19px; padding:10px 12px; border:1px solid #e2e8f0; border-radius:13px; background:#fff;}
#content .contest-context-nav a {display:inline-flex; align-items:center; justify-content:center;
  min-height:40px; padding:7px 12px; border:1px solid #dbeafe; border-radius:9px;
  background:#fff; color:#1d4ed8; font-size:.91rem; font-weight:700;
  text-decoration:none; text-align:center; white-space:nowrap;}
#content .contest-context-nav a:hover, #content .contest-context-nav a:focus-visible {background:#eff6ff;}
#content .contest-context-mobile {display:none;}
#content .contest-tasks-context .contest-context-nav {flex-wrap:wrap;}
#content .contest-tasks-context .contest-context-nav .contest-context-leave {
  margin-left:auto; border-color:#fde68a; background:#fffbeb; color:#92400e;}
#content .contest-tasks-context .contest-context-nav .contest-context-leave:hover,
#content .contest-tasks-context .contest-context-nav .contest-context-leave:focus-visible {background:#fef3c7;}

@media (max-width:760px) {
  body.in-contest #header {position:static;}
  #content .contest-context-banner {padding:10px 11px; gap:9px;}
  #content .contest-context-main {gap:8px; flex:1 1 auto;}
  #content .contest-context-icon {width:33px; height:33px; font-size:.9rem;}
  #content .contest-context-name {display:block;}
  #content .contest-context-name strong {display:-webkit-box; overflow:hidden;
    -webkit-box-orient:vertical; -webkit-line-clamp:2; line-clamp:2; font-size:.93rem;}
  #content .contest-context-status {margin-top:4px; padding:2px 7px; font-size:.74rem;}
  #content .contest-context-actions {gap:5px;}
  #content .contest-context-action {width:40px; height:40px; min-height:40px; padding:0;}
  #content .contest-context-action span, #content .contest-context-timer {display:none;}
  #content .contest-context-nav {overflow-x:auto; flex-wrap:nowrap; gap:6px;
    padding:8px; margin-bottom:15px; scrollbar-width:thin; -webkit-overflow-scrolling:touch;}
  #content .contest-context-nav a {flex:none; min-height:39px; padding:7px 9px; font-size:.82rem;}
  #content .contest-context-desktop {display:none;}
  #content .contest-context-mobile {display:inline;}
}
@media (max-width:420px) {
  #content .contest-context-banner.is-managed {flex-wrap:wrap;}
  #content .contest-context-banner.is-managed .contest-context-main {flex-basis:100%;}
  #content .contest-context-banner.is-managed .contest-context-actions {width:100%;}
}

/* Individual solution, including its code and judging details. */
#content .solution-details-page {max-width:var(--page-content-width); min-width:0; margin:4px auto 38px;}
#content .solution-details-heading {display:flex; align-items:flex-start; justify-content:space-between;
  flex-wrap:wrap; gap:15px 25px; margin:0 0 17px;}
#content .solution-details-heading h1 {margin:0; color:#0f172a;
  font-size:clamp(1.45rem,2.5vw,1.9rem); line-height:1.3;}
#content .solution-details-heading p {margin:5px 0 0; color:#475569; overflow-wrap:anywhere; font-size:1rem;}
#content .solution-details-heading p a {color:#1d4ed8; text-decoration:none; font-weight:650;}
#content .solution-details-actions {display:flex; align-items:center; justify-content:flex-end; flex-wrap:wrap; gap:8px;}
#content .solution-details-actions a {display:inline-flex; align-items:center; justify-content:center;
  min-height:42px; padding:9px 12px; border:1px solid #dbeafe; border-radius:10px;
  background:#fff; color:#1d4ed8; text-align:center; font-size:.91rem; font-weight:700; text-decoration:none;}
#content .solution-details-actions a:hover {background:#eff6ff;}
#content .solution-details-actions a.solution-details-primary {background:#2563eb; border-color:#2563eb; color:#fff !important;}
#content .solution-details-actions a.solution-details-primary:hover,
#content .solution-details-actions a.solution-details-primary:focus-visible {background:#1d4ed8; color:#fff !important;}
#content .solution-details-card {min-width:0; margin:0 0 16px; padding:clamp(16px,2.3vw,25px);
  border:1px solid #e2e8f0; border-radius:15px; background:#fff; box-shadow:0 4px 16px rgba(15,23,42,.04);}
#content .solution-details-card h2 {margin:0 0 12px; color:#0f172a; font-size:1.1rem; font-weight:750;}
#content table.solution-details-table {width:100%; border-collapse:collapse; table-layout:fixed;}
#content table.solution-details-table td {padding:10px 12px; border:0; border-bottom:1px solid #edf1f6;
  color:#334155; font-size:.98rem; vertical-align:top; text-align:left;}
#content table.solution-details-table tr:last-child td {border-bottom:0;}
#content table.solution-details-table td.b {width:205px; color:#475569; font-weight:700;}
#content table.solution-details-table td.h {overflow-wrap:anywhere;}
#content table.solution-details-table td a {color:#1d4ed8;}
#content table.solution-details-table td code {font-size:.94rem;}
#content .solution-details-result {display:inline-flex; align-items:center; padding:4px 10px;
  border-radius:8px; background:#f1f5f9; color:#334155; font-weight:750;}
#content .solution-details-result.is-ok {background:#e6f8ed; color:#166534;}
#content .solution-details-result.is-partial {background:#fff1f2; color:#b42332;}
#content .solution-details-result.is-ce {background:#f8fafc; color:#475569;}
#content .solution-details-result.is-pending {background:#fffbeb; color:#92400e;}
#content .solution-details-test-link {display:inline-block; margin-left:10px; font-weight:650;}
#content .solution-details-technical {margin:13px 12px 0; color:#64748b; font-size:.87rem;}
#content .solution-details-technical summary {cursor:pointer; font-weight:700;}
#content .solution-details-technical p {margin:8px 0 0; overflow-wrap:anywhere;}
#content .solution-details-review {display:flex; flex-wrap:wrap; gap:9px; margin:16px 12px 0;}
#content .solution-details-review button, #content .solution-details-table button {
  min-height:35px; padding:6px 10px; border:1px solid #cbd5e1; border-radius:8px;
  background:#fff; color:#334155; font:650 .85rem/1.3 system-ui,sans-serif; cursor:pointer;}
#content .solution-details-review button:hover, #content .solution-details-table button:hover {background:#f1f5f9;}
#content .solution-details-code {max-height:640px; margin:0; padding:16px; overflow:auto;
  border:1px solid #e2e8f0; border-radius:10px; background:#f8fafc;
  color:#0f172a; font:400 .92rem/1.55 ui-monospace,SFMono-Regular,Consolas,monospace; tab-size:4;}
#content .solution-details-tests-scroll {max-width:100%; overflow-x:auto; border:1px solid #e2e8f0;
  border-radius:10px; -webkit-overflow-scrolling:touch;}
#content table.solution-details-tests {width:100%; min-width:560px; border:0; border-collapse:collapse; box-shadow:none;}
#content table.solution-details-tests th {padding:11px; background:#f8fafc; color:#475569; font-size:.9rem; text-align:center;}
#content table.solution-details-tests td {padding:10px; border-bottom:1px solid #edf1f6; text-align:center; font-size:.92rem;}

@media (max-width:760px) {
  #content .solution-details-page {margin:0 auto 28px;}
  #content .solution-details-heading {gap:12px;}
  #content .solution-details-actions {display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); width:100%;}
  #content .solution-details-actions a {min-width:0; padding:8px; font-size:.84rem;}
  #content .solution-details-card {padding:15px 13px;}
  #content table.solution-details-table, #content table.solution-details-table tbody,
  #content table.solution-details-table tr, #content table.solution-details-table td {display:block; width:100%;}
  #content table.solution-details-table tr {padding:10px 0; border-bottom:1px solid #edf1f6;}
  #content table.solution-details-table tr:last-child {border-bottom:0;}
  #content table.solution-details-table td {padding:0 3px; border:0; font-size:.94rem;}
  #content table.solution-details-table td.b {width:100%; margin-bottom:4px; font-size:.83rem;}
  #content .solution-details-test-link {margin:5px 0 0 8px;}
  #content .solution-details-code {padding:12px; font-size:.84rem;}
}
/* Contest standings: compact columns, consistent width and pinned identities. */
#content .standings-page, #content .dots-manage-page.course-results-page {
  max-width:var(--page-content-width); min-width:0; margin:18px auto 38px; color:#334155;}
#content .standings-page > h1 {margin:0 0 18px; color:#17233b;
  font-size:clamp(1.45rem,2.5vw,1.9rem); font-weight:800; letter-spacing:-.025em;}
#content .standings-tools {display:flex; gap:10px; flex-wrap:wrap; margin:8px 0 18px;}
#content .standings-tools form {margin:0;}
#content .standings-tool {display:inline-flex; align-items:center; justify-content:center; min-height:40px;
  padding:8px 14px; border:1px solid #bfdbfe; border-radius:9px; background:#eff6ff;
  color:#1e40af; font-family:inherit; font-size:.94rem; font-weight:700; text-decoration:none; cursor:pointer;}
#content .standings-tool:hover, #content .standings-tool:focus-visible,
#content .standings-tool.active {background:#dbeafe; border-color:#93c5fd; color:#1e3a8a;}
#content .standings-export {border-color:#a7f3d0; background:#ecfdf5; color:#047857;}
#content .standings-export:hover, #content .standings-export:focus-visible {background:#d1fae5; color:#065f46;}
#content .standings-scroll {max-width:100%; overflow-x:auto; overscroll-behavior-inline:contain;
  border:1px solid #e2e8f0; border-radius:13px; background:#fff;
  box-shadow:0 4px 16px rgba(15,23,42,.035); -webkit-overflow-scrolling:touch;}
#content .standings-scroll:focus-visible {outline:2px solid #93c5fd; outline-offset:3px;}
#content .standings-scroll table.stand {width:100%; min-width:var(--standings-min-width); margin:0;
  border:0; border-radius:0; overflow:visible; border-collapse:separate; border-spacing:0;
  table-layout:fixed; font-size:14px; line-height:1.45; color:#334155;}
#content .standings-scroll table.stand th, #content .standings-scroll table.stand td {
  padding:10px 4px; border:0; border-right:1px solid #edf1f6; border-bottom:1px solid #edf1f6;
  white-space:normal; overflow-wrap:anywhere; text-align:center; vertical-align:middle;
  font-family:inherit; font-size:inherit; font-variant-numeric:tabular-nums;}
#content .standings-scroll table.stand tr > :last-child {border-right:0;}
#content .standings-scroll table.stand tbody tr:last-child > * {border-bottom:0;}
#content .standings-scroll table.stand th {padding:12px 4px; background:#f1f5fa;
  color:#475569; font-size:14px; font-weight:750; border-bottom-color:#dbe3ec;}
#content .standings-scroll table.stand th a {font-weight:750; color:#1d4ed8; text-decoration:none;}
#content .standings-scroll table.stand th a:hover {text-decoration:underline;}
#content .standings-scroll table.stand td {background:#fff;}
#content .standings-scroll table.stand tbody tr:nth-child(even) td {background:#fafbfd;}
#content .standings-scroll table.stand tbody tr:hover td {background:#f1f5fa;}
#content .standings-scroll table.stand .res {min-width:0; font-weight:600;}
#content .standings-scroll table.stand.standings-participants .standings-place {width:72px;}
#content .standings-scroll table.stand.standings-participants .standings-name {width:240px; text-align:left; padding-left:12px;}
#content .standings-scroll table.stand .standings-total {width:100px;}
#content .standings-scroll table.stand .standings-extra-total {width:85px;}
#content .standings-scroll table.stand.standings-participants th:first-child,
#content .standings-scroll table.stand.standings-participants td:first-child {
  position:sticky; left:0; z-index:2; min-width:0; text-align:center;}
#content .standings-scroll table.stand.standings-participants th:nth-child(2),
#content .standings-scroll table.stand.standings-participants td:nth-child(2) {
  position:sticky; left:72px; z-index:2; min-width:0; max-width:none; text-align:left;
  padding-left:12px; box-shadow:3px 0 5px -4px rgba(15,23,42,.25);}
#content .standings-scroll table.stand.standings-participants thead th:first-child,
#content .standings-scroll table.stand.standings-participants thead th:nth-child(2) {z-index:3;}
#content .standings-scroll table.stand.standings-participants td.pl a {color:#1d4ed8; text-decoration:none;}
#content .standings-scroll table.stand.standings-participants td.pl a:hover {text-decoration:underline;}
#content .standings-scroll table.stand.standings-participants td.pc {min-width:0; font-weight:750;}
#content .standings-scroll table.stand.standings-participants:not(.standings-details-open) .standings-profile-column {display:none;}
#content .standings-scroll table.stand.standings-details-open {min-width:calc(var(--standings-min-width) + 280px);}
#content .standings-scroll table.stand .standings-institution {width:180px; text-align:left; padding-left:10px;}
#content .standings-scroll table.stand .standings-course {width:100px;}
#content .standings-scroll table.stand tr.standings-own td {background:#eff6ff;}
#content .standings-scroll table.stand tr.standings-own td.pl {font-weight:750; color:#1e40af;}
#content .standings-scroll table.stand.standings-participants td.is-full {background:#e8f7ee; color:#166534;}
#content .standings-scroll table.stand.standings-participants td.is-partial {background:#fff1f2; color:#9f3345;}
#content .standings-scroll table.stand.standings-participants td.is-review {background:#fff7df; color:#805b10;}
#content .standings-scroll table.stand.standings-participants td.is-rejected {background:#fee9ec; color:#9f1239;}
#content .standings-scroll table.stand.standings-participants td.is-attempt {color:#64748b;}
#content .standings-scroll table.stand td.res a {color:inherit; text-decoration:none;}
#content .standings-scroll table.stand td.res a:hover {text-decoration:underline;}
#content .standings-summary-section {margin:27px 0 34px;}
#content .standings-summary-section h2 {margin:0 0 12px; color:#17233b; font-size:1.16rem; font-weight:750;}
#content .standings-scroll table.stand.standings-summary {min-width:var(--standings-summary-min-width);}
#content .standings-scroll table.stand.standings-summary .standings-summary-label {width:285px;}
#content .standings-scroll table.stand.standings-summary th:first-child,
#content .standings-scroll table.stand.standings-summary td:first-child {
  min-width:0; text-align:left; padding-left:12px;}
#content .standings-scroll table.stand.standings-summary tr.standsum td {background:#f8fafc; font-weight:700;}
#content .standings-scroll table.stand.standings-summary tr.standsum2 td {background:#fff;}
#content .standings-scroll table.stand.standings-summary .percent,
#content .standings-scroll table.stand.standings-summary .time {font-size:.8em; color:#64748b;}
#content .standings-icpc .standings-scroll table.stand.standings-summary .standings-total {width:270px;}
#content .course-results-page .course-results-table {border:0; border-radius:0; font-size:.9rem; color:#334155;}
#content .course-results-page .course-results-table th {background:#f1f5fa; color:#475569;}
#content .course-results-page .course-results-table td {background:#fff; font-variant-numeric:tabular-nums;}
#content .course-results-page .course-results-table tr:nth-child(even) td {background:#fafbfd;}
#content .course-results-page .course-results-table tr.standings-own td {background:#eff6ff;}
@media (max-width:680px) {
  #content .standings-tools {gap:7px;}
  #content .standings-tool {font-size:.85rem; padding:7px 10px;}
  #content .standings-scroll table.stand {min-width:calc(var(--standings-min-width) - 80px);}
  #content .standings-scroll table.stand.standings-details-open {min-width:calc(var(--standings-min-width) + 200px);}
  #content .standings-scroll table.stand.standings-participants .standings-name {width:160px;}
  #content .standings-scroll table.stand.standings-summary {min-width:calc(var(--standings-summary-min-width) - 80px);}
  #content .standings-scroll table.stand.standings-summary .standings-summary-label {width:205px;}
}

/* Site header */
div#header {
  padding:0; position:sticky; top:0; z-index:100;
  background:radial-gradient(ellipse at 8% 0%, #e9f3ff 0, transparent 43%),
    linear-gradient(110deg,#f8fbff,#fff 62%,#f5f8ff);
  border-bottom:1px solid #dce8f7;
  box-shadow:0 7px 24px rgba(15,41,80,.09);
}
div#header::after {content:""; display:block; height:3px;
  background:linear-gradient(90deg,var(--brand),#8ec5ff 40%,transparent 82%);}
#header .hdr-wrap {max-width:1560px; margin:0 auto; padding:14px clamp(16px,3vw,48px); gap:24px;}
#header .hdr-left {min-width:0; flex:1 1 320px;}
#header .brand {min-width:0; gap:15px;}
#header .brand-logo {width:68px; height:68px; flex:none; padding:4px;
  border:1px solid #d9e5f5; border-radius:17px; background:#fff;
  box-shadow:0 4px 14px rgba(30,74,135,.11);}
#header .brand-text {min-width:0;}
#header .brand-title {font-size:clamp(1.5rem,2.1vw,1.9rem); line-height:1.12;
  font-weight:800; letter-spacing:-.025em; color:#162b4a;
  overflow:hidden; text-overflow:ellipsis; white-space:nowrap;}
#header .brand-subtitle {margin-top:5px; max-width:min(38vw,500px);
  font-size:.96rem; line-height:1.35; font-weight:550; color:#51647e;}
#header .hdr-right {flex-wrap:nowrap; gap:13px;}
#header .static-links, #header .auth-actions {flex-wrap:nowrap; gap:7px;}
#header .pill {min-height:44px; padding:9px 15px; border:1px solid #dde8f5;
  border-radius:12px; background:rgba(255,255,255,.78);
  color:#243b5a !important; font-size:1rem; font-weight:700; white-space:nowrap;}
#header .pill:hover {background:#eaf3ff; color:var(--brand) !important; border-color:#c8dcf4;}
#header .static-links .pill.is-current, #header .mobile-menu a.is-current {
  border-color:var(--brand); background:#eaf3ff; color:var(--brand) !important;
  box-shadow:inset 0 0 0 1px var(--brand);
}
#header .static-links .pill.is-current {transform:none;}
#header .auth-actions {border-left:1px solid #cad9eb; padding-left:14px;}
#header .pill-primary {color:#fff !important; background:var(--brand); border-color:var(--brand);
  box-shadow:0 4px 11px rgba(37,99,235,.18);}
#header .pill-primary:hover {color:#fff !important; background:var(--brand); filter:brightness(.9);}
#header .dropdown > .btn {min-height:46px; padding:8px 13px; border-radius:12px;
  font-size:1rem; font-weight:700; box-shadow:0 4px 11px rgba(37,99,235,.16);}
#header .mobile-menu-toggle, #header .mobile-menu {display:none;}

@media (min-width:761px) and (max-width:1240px) {
  #header .hdr-wrap {flex-wrap:wrap; row-gap:9px;}
  #header .hdr-right {margin-left:auto;}
  #header .brand-subtitle {max-width:470px;}
}

@media (max-width:760px) {
  div#header {position:sticky; top:0;}
  body.in-contest div#header {position:relative;}
  #header .hdr-wrap {flex-direction:row; align-items:center; flex-wrap:nowrap;
    padding:9px 12px; gap:8px;}
  #header .hdr-left {min-width:0; flex:1 1 auto;}
  #header .brand {gap:9px; min-width:0;}
  #header .brand-logo {width:46px; height:46px; padding:2px; border-radius:11px;}
  #header .brand-title {font-size:clamp(1.17rem,4.5vw,1.45rem);
    overflow:hidden; text-overflow:ellipsis; white-space:nowrap;}
  #header .brand-subtitle {font-size:.76rem; margin-top:2px; max-width:35vw;
    overflow:hidden; text-overflow:ellipsis; white-space:nowrap;}
  #header .hdr-right {width:auto; flex:0 0 auto; flex-wrap:nowrap; align-items:center; gap:6px;}
  #header .static-links, #header .dropdown {display:none;}
  #header .auth-actions {gap:0; flex-wrap:nowrap;}
  #header .auth-actions .pill-primary {display:none;}
  #header .auth-actions .pill {min-height:42px; padding:8px 10px; font-size:.88rem;}
  #header .mobile-menu-toggle {display:inline-flex; align-items:center; justify-content:center;
    gap:6px; min-height:42px; padding:6px 10px;
    border:1px solid #cbdcf0; border-radius:11px; background:#fff;
    color:#19375c; font:700 .88rem/1.2 system-ui,sans-serif; cursor:pointer;}
  #header .mobile-menu-toggle[aria-expanded="true"] {border-color:var(--brand); background:#eaf3ff;}
  #header .mobile-menu-toggle .avatar {width:25px; height:25px; background:var(--brand); color:#fff;}
  #header .mobile-menu-count {display:inline-flex; align-items:center; justify-content:center;
    min-width:21px; height:21px; padding:0 5px; border-radius:999px;
    background:#e8efff; color:#1e40af; font-size:.72rem; font-weight:800;}
  #header .mobile-menu {display:none; position:absolute; top:calc(100% + 6px);
    left:12px; right:12px; z-index:110; max-height:calc(100vh - 85px); overflow-y:auto;
    padding:10px; border:1px solid #d6e3f2; border-radius:16px; background:#fff;
    box-shadow:0 20px 42px rgba(15,41,80,.2);}
  #header .mobile-menu.is-open {display:block;}
  #header .mobile-menu a {display:flex; align-items:center; justify-content:space-between;
    min-height:44px; padding:9px 12px; border-radius:10px;
    color:#1f344f; font-size:1rem; font-weight:650; text-decoration:none;}
  #header .mobile-menu a:hover, #header .mobile-menu a:focus-visible {background:#edf5ff; color:var(--brand);}
  #header .mobile-menu .mobile-menu-danger {color:#b42318;}
  #header .mobile-menu-separator {height:1px; margin:7px 5px; background:#e2e8f0;}
  #header .mobile-menu-user {padding:5px 12px 8px; color:#64748b;
    font-size:.83rem; font-weight:700; overflow-wrap:anywhere;}
}
@media (max-width:480px) {
  #header .brand-subtitle {display:none;}
}
@media (max-width:380px) {
  #header .mobile-menu-toggle > span:not(.avatar):not(.mobile-menu-count) {display:none;}
  #header .mobile-menu-toggle {min-width:42px;}
}

/* Private student-teacher messages. */
#header .header-message-link {position:relative; display:inline-flex; align-items:center; justify-content:center;
  flex:none; width:44px; height:44px; border:1px solid #cbdcf0; border-radius:12px;
  background:#fff; color:#1d4ed8; text-decoration:none;}
#header .header-message-link:hover, #header .header-message-link:focus-visible {background:#eaf3ff;}
#header .header-message-link svg {width:23px; height:23px;}
#header .header-message-count {position:absolute; top:-7px; right:-7px; display:inline-flex;
  align-items:center; justify-content:center; min-width:21px; height:21px; padding:0 5px;
  border-radius:99px; background:#dc2626; color:#fff; border:2px solid #fff;
  font-size:.69rem; font-weight:800; line-height:1;}
#content .messages-page {max-width:var(--page-content-width); margin:0 auto 44px; min-width:0;}
#content .messages-heading {display:flex; align-items:end; justify-content:space-between; gap:20px; margin:0 0 20px;}
#content .messages-heading h1 {margin:5px 0 7px; color:#10223e;}
#content .messages-heading p {margin:0; color:#64748b; font-size:1rem;}
#content .messages-eyebrow {color:#1d4ed8; font-size:.8rem; font-weight:800; letter-spacing:.09em; text-transform:uppercase;}
#content .messages-back {display:inline-block; margin-bottom:8px; font-weight:700;}
#content .messages-tabs {display:flex; gap:7px; overflow-x:auto; padding:0 0 11px; margin:0 0 18px;
  border-bottom:1px solid #dfe7f2; scrollbar-width:thin;}
#content .messages-tabs a {flex:none; display:inline-flex; align-items:center; min-height:41px;
  padding:8px 14px; border-radius:10px; color:#334155 !important; text-decoration:none !important;
  font-weight:700; white-space:nowrap;}
#content .messages-tabs a:hover, #content .messages-tabs a.is-current {background:#eaf2ff; color:#1d4ed8 !important;}
#content .messages-primary {display:inline-flex; align-items:center; justify-content:center; min-height:44px;
  padding:10px 17px; border:0; border-radius:10px; background:#2563eb; color:#fff !important;
  text-decoration:none !important; font:700 .95rem/1.3 system-ui,sans-serif; cursor:pointer;}
#content .messages-primary:hover, #content .messages-primary:focus-visible {background:#1e40af; color:#fff !important;}
#content .messages-primary:disabled {opacity:.5; cursor:not-allowed;}
#content .messages-alert {margin:0 0 16px; padding:12px 15px; border:1px solid #fecaca;
  border-radius:11px; background:#fff1f2; color:#9f1239; font-weight:650;}
#content .messages-empty {padding:32px 22px; border:1px solid #e2e8f0; border-radius:15px;
  background:#fff; color:#64748b; text-align:center;}
#content .messages-list {overflow:hidden; border:1px solid #dce5f1; border-radius:16px;
  background:#fff; box-shadow:0 6px 20px rgba(25,54,91,.045);}
#content .message-thread-row {display:grid; grid-template-columns:44px minmax(0,1fr) auto;
  align-items:center; gap:14px; min-height:83px; padding:15px 19px; color:#17233b !important;
  text-decoration:none !important; border-bottom:1px solid #e9eef6;}
#content .message-thread-row:last-child {border-bottom:0;}
#content .message-thread-row:hover, #content .message-thread-row:focus-visible {background:#f6f9ff; text-decoration:none !important;}
#content .message-thread-row.has-unread {background:#f0f6ff;}
#content .message-row-mark {display:inline-flex; align-items:center; justify-content:center; width:43px; height:43px;
  border-radius:12px; background:#e8f0ff; color:#1d4ed8; font-size:1rem; font-weight:800;}
#content .message-row-main {min-width:0; display:flex; flex-direction:column; gap:3px;}
#content .message-row-title {overflow-wrap:anywhere; font-size:1.04rem; line-height:1.35; font-weight:750;}
#content .message-row-info {color:#64748b; font-size:.88rem; overflow-wrap:anywhere;}
#content .message-row-side {display:flex; flex-direction:column; align-items:flex-end; gap:5px;
  color:#64748b; font-size:.82rem; white-space:nowrap;}
#content .message-unread {display:inline-flex; align-items:center; justify-content:center; min-width:24px; height:24px;
  padding:0 5px; border-radius:99px; background:#2563eb; color:#fff; font-size:.79rem; font-weight:800;}
#content .message-done {color:#047857; font-weight:700;}
#content .messages-pages {display:flex; gap:20px; margin:17px 0 0; font-weight:700;}
#content .messages-form-card, #content .messages-archive-card, #content .messages-moderation {
  display:flex; flex-direction:column; gap:9px; padding:24px; border:1px solid #dce5f1;
  border-radius:16px; background:#fff; box-shadow:0 6px 20px rgba(25,54,91,.045);}
#content .messages-form-card label, #content .messages-moderation label {font-weight:700; color:#334155; margin-top:7px;}
#content .messages-form-card input, #content .messages-form-card select, #content .messages-form-card textarea,
#content .messages-moderation input, #content .messages-moderation select {width:100%; min-height:43px;
  padding:10px 12px; border:1px solid #cbd5e1; border-radius:9px; background:#fff;
  color:#0f172a; font:inherit;}
#content .messages-form-card textarea {min-height:145px; resize:vertical; line-height:1.55;}
#content .messages-form-hint {color:#64748b; font-size:.86rem; margin:3px 0 7px;}
#content .messages-form-actions {display:flex; align-items:center; gap:18px; flex-wrap:wrap;}
#content .messages-thread-meta {display:flex; align-items:center; flex-wrap:wrap; gap:8px 17px;
  margin-bottom:18px; color:#64748b; font-size:.9rem;}
#content .messages-category {padding:5px 10px; border-radius:99px; background:#eaf2ff; color:#1e40af; font-weight:750;}
#content .messages-admin-note {padding:12px 15px; margin:0 0 16px; border:1px solid #bfdbfe;
  border-radius:11px; background:#eff6ff; color:#334155;}
#content .messages-conversation {display:flex; flex-direction:column; gap:13px; margin:0 0 22px;}
#content .message-bubble {max-width:83%; align-self:flex-start; min-width:min(230px,100%);
  padding:15px 17px; border:1px solid #e2e8f0; border-radius:15px 15px 15px 4px;
  background:#fff; box-shadow:0 3px 12px rgba(15,23,42,.035);}
#content .message-bubble.is-teacher {border-color:#bfdbfe; background:#eff6ff;}
#content .message-bubble.is-own {align-self:flex-end; border-color:#bfdbfe;
  border-radius:15px 15px 4px 15px; background:#eaf2ff;}
#content .message-bubble-top {display:flex; justify-content:space-between; align-items:center; gap:15px;
  margin-bottom:9px; color:#475569; font-size:.82rem;}
#content .message-bubble-top time {white-space:nowrap;}
#content .message-bubble-text, #content .messages-archive-text {overflow-wrap:anywhere; white-space:normal; line-height:1.6;}
#content .messages-older {display:inline-block; margin:0 0 16px; font-weight:700;}
#content .messages-reply-form {margin:0 0 14px;}
#content .messages-reply-form h2, #content .messages-moderation h2, #content .messages-archive-card h2 {
  margin:0 0 5px; font-size:1.2rem;}
#content .messages-secondary-form {margin:0 0 20px;}
#content .messages-secondary-form button, #content .messages-moderation button {min-height:40px;
  padding:8px 13px; border:1px solid #cbd5e1; border-radius:9px; background:#f8fafc;
  color:#334155; font:700 .9rem system-ui,sans-serif; cursor:pointer;}
#content .messages-moderation {margin-top:22px;}
#content .messages-moderation form {display:flex; flex-direction:column; align-items:flex-start; gap:8px;}
#content .messages-moderation p {margin:0 0 8px;}
#content .messages-moderation button {margin-top:6px;}
#content .messages-archive-card p {margin:0 0 12px;}
#content .messages-archive-text {padding-top:15px; border-top:1px solid #e2e8f0;}
#content .messages-audit-scroll {max-width:100%; overflow-x:auto; border:1px solid #dce5f1;
  border-radius:13px; background:#fff;}
#content .messages-audit-table {width:100%; border-collapse:collapse; min-width:780px;}
#content .messages-audit-table th, #content .messages-audit-table td {padding:11px 13px;
  border-bottom:1px solid #e2e8f0; text-align:left; vertical-align:top; font-size:.9rem;}
#content .messages-audit-table th {background:#f1f5f9; color:#334155; font-weight:750;}
#content .messages-audit-table tr:last-child td {border-bottom:0;}
@media (max-width:760px) {
  #header .header-message-link {width:42px; height:42px; margin-right:1px;}
  #content .messages-heading {align-items:flex-start; flex-direction:column; gap:12px;}
  #content .messages-heading h1 {font-size:1.55rem;}
  #content .messages-tabs a {min-height:38px; padding:7px 10px; font-size:.88rem;}
  #content .message-thread-row {grid-template-columns:36px minmax(0,1fr); gap:10px;
    padding:13px 12px; min-height:74px;}
  #content .message-row-mark {width:36px; height:36px; border-radius:9px;}
  #content .message-row-title {font-size:.97rem;}
  #content .message-row-side {grid-column:2; flex-direction:row; align-items:center;
    gap:8px; font-size:.78rem;}
  #content .messages-form-card, #content .messages-archive-card, #content .messages-moderation {padding:16px 13px;}
  #content .message-bubble {max-width:96%; padding:12px 13px; min-width:0;}
  #content .message-bubble-top {flex-wrap:wrap; gap:3px 10px;}
}
/* Messenger refinements: room below the header, administrative dialogues and counters. */
#content .messages-page {padding-top:19px;}
#content .messages-heading .messages-eyebrow {display:block; margin-top:4px;}
#content .message-thread-row.is-admin-dialog {background:#f9f5ff;}
#content .message-thread-row.is-admin-dialog:hover {background:#f2eaff;}
#content .message-thread-row.is-admin-dialog .message-row-mark {background:#eee2ff; color:#6b21a8;}
#content .messages-thread-meta.is-admin-dialog .messages-category {background:#eee2ff; color:#6b21a8;}
#content .messages-stats {display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:16px; margin:20px 0 30px;}
#content .messages-stats > div {display:flex; flex-direction:column; gap:6px; padding:24px;
  border:1px solid #dce5f1; border-radius:16px; background:#fff;}
#content .messages-stats strong {font-size:2rem; color:#1d4ed8; line-height:1;}
#content .messages-stats span {color:#475569; font-weight:700;}
#content .messages-event-list {border:1px solid #dce5f1; border-radius:14px; overflow:hidden; background:#fff;}
#content .messages-event {display:flex; justify-content:space-between; align-items:baseline; gap:15px;
  padding:13px 17px; border-bottom:1px solid #e9eef6;}
#content .messages-event:last-child {border-bottom:0;}
#content .messages-event time {color:#64748b; white-space:nowrap; font-size:.84rem;}
#content #msg-contest-field, #content #msg-item-field, #content #msg-subject-field {
  display:flex; flex-direction:column; gap:9px;}
#content #msg-contest-field[hidden], #content #msg-item-field[hidden], #content #msg-subject-field[hidden] {display:none;}
#content .messages-thread-meta a {color:#1d4ed8; font-weight:700; text-decoration:underline;}
@media (max-width:760px) {
  #content .messages-page {padding-top:13px;}
  #content .messages-stats > div {padding:18px 12px;}
  #content .messages-event {align-items:flex-start; flex-direction:column; gap:3px;}
}

/* Teacher and administrator control pages. */
#content .control-page {max-width:1120px; margin:18px auto 48px; min-width:0;}
#content .control-page.control-narrow {max-width:900px;}
#content .control-heading {margin-bottom:22px;}
#content .control-heading h1 {margin:5px 0 7px; color:#10223e; font-size:clamp(1.65rem,2.7vw,2.25rem); line-height:1.18;}
#content .control-heading p {margin:0; color:#52647e; line-height:1.5;}
#content .control-eyebrow {display:block; margin:14px 0 0; color:#1d4ed8; font-size:.77rem; font-weight:800; letter-spacing:.09em;}
#content .control-back {display:inline-block; margin-bottom:6px; color:#1d4ed8; font-weight:700; text-decoration:none;}
#content .control-card {margin-bottom:18px; padding:25px; border:1px solid #dce5f1; border-radius:17px;
  background:#fff; box-shadow:0 6px 22px rgba(25,54,91,.05);}
#content .control-card h2 {margin:0 0 15px; color:#183153; font-size:1.22rem;}
#content .control-link-grid {display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; margin-bottom:18px;}
#content .control-card .control-link-grid {margin-bottom:0;}
#content .control-link-grid a {display:flex; flex-direction:column; gap:5px; padding:18px;
  border:1px solid #dce5f1; border-radius:13px; background:#f8fbff; color:#183153; text-decoration:none; min-width:0;}
#content .control-link-grid a:hover, #content .control-link-grid a:focus-visible {border-color:#93c5fd; background:#eff6ff; text-decoration:none;}
#content .control-link-grid strong {font-size:1.04rem; overflow-wrap:anywhere;}
#content .control-link-grid span {font-size:.9rem; color:#52647e; overflow-wrap:anywhere;}
#content .control-panels {display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:18px; align-items:start;}
#content .control-panels .control-card {margin-bottom:0;}
#content .control-form {display:flex; flex-direction:column; align-items:stretch; gap:9px;}
#content .control-form label {color:#334155; font-weight:700; margin-top:6px;}
#content .control-form input:not([type=hidden]):not([type=checkbox]), #content .control-form select,
#content .control-form textarea {box-sizing:border-box; width:100%; min-width:0; padding:10px 12px; min-height:43px;
  border:1px solid #cbd5e1; border-radius:9px; background:#fff; color:#0f172a; font:inherit;}
#content .control-form textarea {resize:vertical;}
#content .control-form .control-check {display:flex; align-items:center; gap:9px; font-weight:500;}
#content .control-form .control-check input {width:auto; margin:0;}
#content .control-form button, #content .control-card button.control-secondary {align-self:flex-start; min-height:43px;
  padding:9px 17px; margin-top:8px; border:1px solid #2563eb; border-radius:9px;
  background:#2563eb; color:#fff; font:700 .94rem system-ui,sans-serif; cursor:pointer;}
#content .control-form button:hover {background:#1d4ed8;}
#content .control-form button:disabled, #content .control-card button:disabled {opacity:.5; cursor:not-allowed;}
#content .control-card button.control-secondary {border-color:#cbd5e1; background:#f8fafc; color:#334155;}
#content .control-card button.control-secondary:hover {background:#eaf2ff;}
#content .control-note, #content .control-hint {color:#64748b; line-height:1.5;}
#content .control-hint {margin:-4px 0 5px; font-size:.84rem;}
#content .control-empty {color:#475569;}
#content .control-muted {color:#64748b; font-weight:500;}
#content .control-notice {margin:0 0 16px; padding:12px 16px; border:1px solid #bfdbfe;
  border-radius:11px; background:#eff6ff; color:#1e3a8a;}
#content .control-result {padding:15px; max-height:450px; overflow:auto; white-space:pre-wrap;
  overflow-wrap:anywhere; background:#f8fafc; border:1px solid #e2e8f0; border-radius:10px; color:#183153;}
#content .control-two-fields {display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px;}
#content .control-two-fields > div {display:flex; flex-direction:column; gap:9px; min-width:0;}
#content .control-summary {display:flex; gap:12px 25px; flex-wrap:wrap; margin:0 0 10px; color:#52647e;}
#content .control-student-grid {display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:13px;}
#content .control-student-grid fieldset {min-width:0; display:flex; flex-direction:column; gap:6px;
  margin:0; padding:15px; border:1px solid #dce5f1; border-radius:12px;}
#content .control-student-grid legend {padding:0 6px; color:#183153; font-weight:800;}
#content .control-student-grid input[readonly] {background:#f8fafc !important;}
#content .control-table-wrap {overflow-x:auto; margin-bottom:12px;}
#content .control-table {width:100%; border-collapse:collapse; min-width:680px; text-align:left;}
#content .control-table th, #content .control-table td {padding:11px 12px; border-bottom:1px solid #e9eef6;}
#content .control-table th {background:#f1f5f9; color:#334155; font-weight:750;}
#content .control-table td {color:#334155; overflow-wrap:anywhere;}
#content .impersonation-banner {max-width:1120px; margin:13px auto 15px; padding:11px 15px;
  display:flex; justify-content:space-between; align-items:center; flex-wrap:wrap; gap:9px 17px;
  border:1px solid #fcd34d; border-radius:12px; background:#fffbeb; color:#78350f;}
#content .impersonation-banner form {margin:0;}
#content .impersonation-banner button {padding:8px 12px; border:1px solid #b45309; border-radius:9px;
  background:#fff; color:#92400e; font:700 .88rem system-ui,sans-serif; cursor:pointer;}
#content .impersonation-banner button:hover {background:#fef3c7;}
@media (max-width:760px) {
  #content .control-page {margin:15px auto 30px;}
  #content .control-card {padding:17px;}
  #content .control-link-grid, #content .control-panels, #content .control-two-fields,
  #content .control-student-grid {grid-template-columns:1fr;}
  #content .control-form button {width:100%;}
  #content .impersonation-banner button {width:100%;}
  #content .impersonation-banner form {width:100%;}
}
#content .control-log-output {margin:0; max-height:70vh; overflow:auto; padding:16px;
  border:1px solid #e2e8f0; border-radius:10px; background:#0f172a; color:#e2e8f0;
  font:13px/1.6 ui-monospace,SFMono-Regular,Consolas,monospace; white-space:pre-wrap; overflow-wrap:anywhere;}

/* Contest management and participation forms. */
#content .dots-manage-page {max-width:1180px; min-width:0; margin:16px auto 48px; color:#1e293b;}
#content .dots-registration-page {max-width:var(--page-content-width);}
#content .dots-manage-back {display:inline-flex; align-items:center; min-height:38px; margin:0 0 12px;
  color:#1d4ed8; font-weight:700; text-decoration:none;}
#content .dots-manage-back a {color:inherit; text-decoration:none;}
#content .dots-manage-back:hover, #content .dots-manage-back a:hover {text-decoration:underline;}
#content .dots-manage-heading {display:flex; align-items:center; justify-content:space-between;
  flex-wrap:wrap; gap:12px 22px; margin:0 0 20px;}
#content .dots-manage-heading h1 {margin:0; color:#0f172a; font-size:clamp(1.55rem,2.5vw,2rem); line-height:1.25;}
#content .dots-manage-heading p {margin:7px 0 0; color:#64748b; overflow-wrap:anywhere;}
#content .dots-manage-card {min-width:0; margin:0 0 18px; padding:clamp(16px,2.4vw,26px);
  border:1px solid #e2e8f0; border-radius:16px; background:#fff;
  box-shadow:0 5px 19px rgba(15,23,42,.045);}
#content .dots-manage-card h2 {margin:0 0 17px; color:#17233b; font-size:1.17rem; line-height:1.35;}
#content .dots-manage-card p {line-height:1.6;}
#content .dots-manage-alert {margin:0 0 18px; padding:13px 16px; border:1px solid #fecdd3;
  border-radius:11px; background:#fff1f2; color:#9f1239; font-weight:650;}
#content .dots-card-heading {display:flex; justify-content:space-between; align-items:center;
  flex-wrap:wrap; gap:12px 18px; margin-bottom:15px;}
#content .dots-card-heading h2 {margin:0;}
#content .dots-visually-hidden {position:absolute; width:1px; height:1px; padding:0;
  margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0;}
#content .dots-manage-search {display:flex; align-items:center; flex-wrap:wrap; gap:8px; margin:0;}
#content .dots-manage-search a {font-weight:650;}
#content .dots-manage-page input[type=text], #content .dots-manage-page input[type=search],
#content .dots-manage-page input[type=number], #content .dots-manage-page select,
#content .dots-manage-page textarea {box-sizing:border-box; max-width:100%; min-height:41px;
  padding:9px 11px; border:1px solid #cbd5e1; border-radius:9px; background:#fff;
  color:#0f172a; font:inherit; box-shadow:none;}
#content .dots-manage-page textarea {width:100%; min-height:150px; line-height:1.55; resize:vertical;}
#content .dots-manage-page input:focus-visible, #content .dots-manage-page select:focus-visible,
#content .dots-manage-page textarea:focus-visible {outline:2px solid #93c5fd; outline-offset:1px; border-color:#60a5fa;}
#content .dots-manage-search input {width:min(260px,100%);}
#content .dots-manage-page input[type=checkbox] {width:18px; height:18px; flex:none; accent-color:#2563eb; cursor:pointer;}
#content .dots-manage-page .dots-action-primary, #content .dots-manage-page .dots-action-secondary {
  display:inline-flex; align-items:center; justify-content:center; min-height:42px; padding:9px 15px;
  border:1px solid #bfdbfe; border-radius:9px; background:#eff6ff; color:#1d4ed8;
  font:700 .94rem/1.25 system-ui,sans-serif; text-decoration:none; text-align:center; cursor:pointer;}
#content .dots-manage-page .dots-action-primary {border-color:#2563eb; background:#2563eb; color:#fff;}
#content .dots-manage-page .dots-action-primary:hover {background:#1d4ed8; color:#fff;}
#content .dots-manage-page .dots-action-secondary:hover {background:#dbeafe; text-decoration:none;}
#content .dots-manage-actions {display:flex; align-items:center; flex-wrap:wrap; gap:10px;
  margin:18px 0 0;}
#content .dots-action-hint {color:#64748b; font-size:.88rem;}
#content .dots-settings-table {width:100%; border-collapse:collapse; table-layout:fixed;}
#content .dots-settings-table td {padding:12px 8px; border:0; border-bottom:1px solid #edf1f6; vertical-align:top;}
#content .dots-settings-table tr:last-child td {border-bottom:0;}
#content .dots-settings-table td.b {width:215px; color:#475569; font-weight:700;}
#content .dots-settings-table td.h {overflow-wrap:anywhere;}
#content .dots-settings-table td.h > input[type=text], #content .dots-settings-table td.h > select {width:min(440px,100%);}
#content .dots-settings-table td small, #content .dots-form-field small,
#content .dots-register-field small {display:block; margin:5px 0 0; color:#64748b; line-height:1.5;}
#content .dots-settings-table td.b[colspan] {width:auto;}
#content .dots-check {display:flex; align-items:flex-start; gap:10px; cursor:pointer; line-height:1.45;}
#content .dots-form-field {display:flex; flex-direction:column; gap:5px; margin:0 0 20px;}
#content .dots-form-field:last-child {margin-bottom:0;}
#content .dots-form-field > label, #content .dots-stack-form > label {font-weight:700; color:#334155;}
#content .dots-checkbox-grid {display:grid; grid-template-columns:repeat(auto-fit,minmax(210px,1fr)); gap:12px;}
#content .dots-checkbox-grid .dots-check {padding:10px; border:1px solid #e2e8f0; border-radius:9px;}
#content .dots-register-params {margin:20px 0 0;}
#content .dots-register-params:empty {display:none;}
#content .dots-register-params .dots-form-field {margin:0 0 14px;}
#content .dots-register-params select {width:min(400px,100%);}
#content .dots-table-scroll {max-width:100%; overflow-x:auto; border:1px solid #e2e8f0;
  border-radius:11px; -webkit-overflow-scrolling:touch;}
#content table.dots-manage-table {width:100%; min-width:670px; border:0; border-collapse:collapse;
  table-layout:auto; margin:0; box-shadow:none;}
#content table.dots-manage-table th, #content table.dots-manage-table td {padding:12px 11px;
  border:0; border-bottom:1px solid #edf1f6; vertical-align:middle; font-size:.94rem;}
#content table.dots-manage-table th {background:#f1f5f9; color:#475569; font-weight:750;
  text-align:left; white-space:nowrap;}
#content table.dots-manage-table th a {color:#334155; font-weight:750;}
#content table.dots-manage-table tbody tr:last-child td {border-bottom:0;}
#content table.dots-manage-table tbody tr:hover {background:#f8fafc;}
#content table.dots-manage-table td.pt {min-width:175px; text-align:left; overflow-wrap:anywhere;}
#content table.dots-manage-table td.pc, #content table.dots-manage-table td.pid {text-align:center;}
#content table.dots-manage-table td input[type=text] {width:92px; min-width:0;}
#content table.dots-manage-table td select {min-width:180px; width:100%;}
#content table.dots-manage-table .dots-select-col {width:75px; text-align:center;}
#content .dots-status-pill {display:inline-block; padding:5px 10px; border-radius:999px;
  background:#eff6ff; color:#1e40af; font-size:.84rem; font-weight:700; white-space:nowrap;}
#content .dots-pagination {margin:16px 0 0; overflow-wrap:anywhere;}
#content .dots-empty {margin:8px 0; padding:25px 12px; color:#64748b; text-align:center;}
#content .dots-manage-grid {display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:18px;}
#content .dots-stack-form {display:flex; flex-direction:column; align-items:flex-start; gap:11px; margin:0;}
#content .dots-stack-form select {width:100%;}
#content .dots-inline-fields {display:flex; flex-wrap:wrap; gap:12px;}
#content .dots-inline-fields label {display:flex; flex-direction:column; gap:6px; font-weight:700;}
#content .dots-inline-fields input {width:130px;}
#content .dots-manage-page .modal_dialog {padding:18px; background:#fff;}
#content .dots-manage-page .modal_dialog h3 {margin:0 0 14px; color:#17233b;}
#content .dots-manage-page .modal_dialog form {margin:0 0 16px;}
#content .dots-manage-page .modal_dialog table.t {min-width:640px; border-collapse:collapse;}
#content .dots-manage-page .modal_dialog table.t th,
#content .dots-manage-page .modal_dialog table.t td {padding:8px; border-bottom:1px solid #e2e8f0;}
#content .dots-manage-page .modal_dialog input[type=button] {min-height:38px; padding:7px 12px;
  border:1px solid #bfdbfe; border-radius:9px; background:#eff6ff;
  color:#1d4ed8; font-weight:700; cursor:pointer;}
#content .dots-manage-page .modal_dialog select {width:min(100%,420px);}
@media (max-width:760px) {
  #content .dots-manage-page {margin:12px auto 30px;}
  #content .dots-manage-heading {align-items:flex-start;}
  #content .dots-manage-heading > .dots-action-primary {width:100%;}
  #content .dots-manage-card {padding:16px 12px;}
  #content .dots-card-heading {align-items:stretch;}
  #content .dots-manage-search {width:100%;}
  #content .dots-manage-search input {flex:1 1 160px; min-width:0;}
  #content .dots-settings-table, #content .dots-settings-table tbody,
  #content .dots-settings-table tr, #content .dots-settings-table td {display:block; width:100%;}
  #content .dots-settings-table tr {padding:11px 0; border-bottom:1px solid #edf1f6;}
  #content .dots-settings-table tr:last-child {border-bottom:0;}
  #content .dots-settings-table td, #content .dots-settings-table td.b,
  #content .dots-settings-table td.h {width:100%; padding:3px 0; border:0;}
  #content .dots-manage-grid {grid-template-columns:1fr; gap:0;}
  #content .dots-manage-actions > button, #content .dots-manage-actions > a {flex:1 1 auto;}
}

/* Contest settings: a focused form, including the legacy type-specific fields. */
#content .contest-settings-page {max-width:1040px; margin:24px auto 54px; font:15px/1.5 system-ui,sans-serif;}
#content .contest-settings-page .dots-manage-back {margin-bottom:15px;}
#content .contest-settings-heading {margin:0 0 23px;}
#content .contest-settings-eyebrow {display:block; margin-bottom:5px; color:#2563eb;
  font-size:.82rem; font-weight:800; letter-spacing:.045em; text-transform:uppercase;}
#content .contest-settings-heading h1 {margin:0; color:#102342; font-size:clamp(1.65rem,2.5vw,2.15rem);
  font-weight:800; line-height:1.22;}
#content .contest-settings-heading p {margin:8px 0 0; color:#536782; font-size:1rem; overflow-wrap:anywhere;}
#content .contest-settings-card {box-sizing:border-box; min-width:0; margin:0 0 19px; padding:27px 30px 29px;
  border:1px solid #dce6f2; border-radius:17px; background:#fff; box-shadow:0 5px 23px rgba(22,47,82,.055);}
#content .contest-settings-card-head {display:flex; align-items:baseline; flex-wrap:wrap; gap:5px 14px;
  margin:0 0 23px; padding:0 0 16px; border-bottom:1px solid #e8eef6;}
#content .contest-settings-card-head h2 {margin:0; color:#183153; font-size:1.21rem; font-weight:800; line-height:1.35;}
#content .contest-settings-card-head p {margin:0; color:#64748b; font-size:.9rem; line-height:1.5;}
#content .contest-settings-fields {display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:21px 24px;}
#content .contest-settings-field {min-width:0;}
#content .contest-settings-field.is-wide {grid-column:1/-1;}
#content .contest-settings-field > label {display:block; margin:0 0 8px; color:#334862; font-weight:750;}
#content .contest-settings-field > small, #content .contest-settings-toggle small {display:block;
  margin:7px 0 0; color:#63748e; font-size:.84rem; font-weight:400; line-height:1.5;}
#content .contest-settings-field > input[type=text], #content .contest-settings-field > select,
#content .contest-settings-field > textarea {display:block; box-sizing:border-box; width:100%; max-width:100%; min-height:46px;
  margin:0; padding:11px 13px; border:1px solid #cbd7e6; border-radius:10px; background:#fff;
  color:#172b4d; font:inherit; box-shadow:none;}
#content .contest-settings-field > textarea {min-height:160px; resize:vertical; line-height:1.55;}
#content .contest-settings-card .contest-settings-field + .contest-settings-field {margin-top:22px;}
#content .contest-settings-fields .contest-settings-field + .contest-settings-field {margin-top:0;}
#content .contest-settings-toggles {display:grid; align-content:start; gap:11px;}
#content .contest-settings-toggle {display:flex; align-items:flex-start; gap:11px; box-sizing:border-box;
  min-width:0; margin:0; padding:12px 14px; border:1px solid #dee7f2; border-radius:11px;
  color:#334862; cursor:pointer;}
#content .contest-settings-toggle input[type=checkbox] {flex:none; margin:3px 0 0;}
#content .contest-settings-toggle span {min-width:0;}
#content .contest-settings-toggle strong {display:block; font-weight:700;}

#content table.contest-settings-extra {width:100%; margin:21px 0 0; border:0; border-collapse:collapse;
  table-layout:fixed; background:transparent; box-shadow:none;}
#content table.contest-settings-extra tr {background:transparent;}
#content table.contest-settings-extra td {padding:11px 0; border:0; border-top:1px solid #e9eef6;
  vertical-align:middle; color:#334862; text-align:left; background:transparent; font:inherit;}
#content table.contest-settings-extra td.b {width:38%; padding-right:20px; font-weight:700;}
#content table.contest-settings-extra td.h {width:62%;}
#content table.contest-settings-extra td[colspan] {width:auto;}
#content table.contest-settings-extra input[type=text], #content table.contest-settings-extra select {box-sizing:border-box;
  width:min(100%,420px) !important; max-width:100%; min-height:43px; padding:9px 12px;
  border:1px solid #cbd7e6; border-radius:9px; background:#fff; color:#172b4d; font:inherit;}
#content table.contest-settings-extra input[type=checkbox] {vertical-align:middle; margin:0 8px 0 0;}
#content table.contest-settings-extra textarea {box-sizing:border-box; width:100% !important;
  max-width:100%; min-height:120px; margin:0; padding:11px 13px; border:1px solid #cbd7e6;
  border-radius:9px; background:#fff; color:#172b4d; font:inherit; resize:vertical;}

#content .contest-settings-language-toolbar {display:flex; justify-content:space-between; align-items:center;
  flex-wrap:wrap; gap:10px 16px; margin:0 0 17px; color:#536782; font-weight:700;}
#content .contest-settings-language-toolbar > div {display:flex; flex-wrap:wrap; gap:8px;}
#content .contest-settings-language-toolbar button {min-height:37px; padding:7px 12px; border:1px solid #bfd4f2;
  border-radius:8px; background:#f1f6fe; color:#1d4ed8; font:700 .88rem system-ui,sans-serif; cursor:pointer;}
#content .contest-settings-language-toolbar button:hover {background:#dbeafe;}
#content .contest-settings-language-grid {display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px;}
#content .contest-settings-language-grid label {display:flex; align-items:flex-start; gap:10px;
  box-sizing:border-box; min-width:0; margin:0; padding:12px 13px; border:1px solid #dce6f2;
  border-radius:10px; background:#fbfdff; color:#2c405d; line-height:1.45; cursor:pointer;}
#content .contest-settings-language-grid label:hover {border-color:#a8c5f1; background:#f3f8ff;}
#content .contest-settings-language-grid input[type=checkbox] {flex:none; margin:2px 0 0;}
#content .contest-settings-language-grid span {min-width:0; overflow-wrap:anywhere;}
#content .contest-settings-note {margin:16px 0 0; color:#64748b; font-size:.87rem; line-height:1.5;}
#content .contest-settings-actions {display:flex; align-items:center; flex-wrap:wrap; gap:10px; margin:23px 0 0;}
#content .contest-settings-actions button {min-height:45px; padding:10px 18px; border:1px solid #2563eb;
  border-radius:10px; background:#2563eb; color:#fff; font:750 .95rem system-ui,sans-serif; cursor:pointer;}
#content .contest-settings-actions button:hover {background:#1d4ed8;}
#content .contest-settings-actions button[type=reset] {border-color:#cfdae8; background:#fff; color:#334862;}
#content .contest-settings-actions button[type=reset]:hover {background:#f1f5f9;}
@media (max-width:760px) {
  #content .contest-settings-page {margin:17px auto 38px;}
  #content .contest-settings-card {padding:20px 17px 22px;}
  #content .contest-settings-card-head {display:block; margin-bottom:18px;}
  #content .contest-settings-card-head p {margin-top:4px;}
  #content .contest-settings-fields, #content .contest-settings-language-grid {grid-template-columns:1fr;}
  #content .contest-settings-fields {gap:18px;}
  #content table.contest-settings-extra tr, #content table.contest-settings-extra td {display:block; width:100%;}
  #content table.contest-settings-extra tr {padding:11px 0; border-top:1px solid #e9eef6;}
  #content table.contest-settings-extra td, #content table.contest-settings-extra td.b,
  #content table.contest-settings-extra td.h {width:100%; padding:2px 0; border:0;}
  #content table.contest-settings-extra td.h {margin-top:5px;}
  #content .contest-settings-actions button {flex:1 1 170px;}
}

/* Pointer R&D manifesto. Scoped so other subdomains can supply their own about page. */
#content .pointer-manifest {max-width:var(--page-content-width); margin:17px auto 52px; color:#233a58;
  font:16px/1.65 system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;}
#content .pointer-manifest .pm-hero {position:relative; display:grid; grid-template-columns:minmax(0,1.12fr) minmax(0,.88fr);
  gap:clamp(25px,4vw,65px); align-items:center; min-width:0; padding:clamp(27px,5vw,66px);
  border:1px solid #d9e8fa; border-radius:24px;
  background:radial-gradient(circle at 95% 8%,rgba(106,201,247,.18),transparent 40%),#fff;
  box-shadow:0 12px 45px rgba(26,62,105,.065);}
#content .pointer-manifest .pm-hero-copy {position:relative; z-index:1; min-width:0;}
#content .pointer-manifest .pm-eyebrow, #content .pointer-manifest .pm-kicker {margin:0 0 17px;
  color:#1760b3; font-size:.87rem; font-weight:800; letter-spacing:.095em; text-transform:uppercase;}
#content .pointer-manifest .pm-eyebrow {display:flex; align-items:center; gap:9px;}
#content .pointer-manifest .pm-signal {display:inline-block; width:10px; height:10px;
  border-radius:50%; background:#55c9f0; box-shadow:0 0 0 4px #e4f6ff;}
#content .pointer-manifest .pm-hero h1 {max-width:660px; margin:0 0 22px;
  color:#10294b; font-size:clamp(2.15rem,4.4vw,4rem); font-weight:830; line-height:1.09;
  letter-spacing:-.045em;}
#content .pointer-manifest .pm-hero h1 em {font-style:normal; color:#2563b4;}
#content .pointer-manifest .pm-lead {max-width:57ch; margin:0 0 26px; color:#435b79;
  font-size:clamp(1rem,1.45vw,1.14rem); line-height:1.65;}
#content .pointer-manifest .pm-actions, #content .pointer-manifest .pm-join-actions {display:flex;
  flex-wrap:wrap; align-items:center; gap:10px;}
#content .pointer-manifest .pm-button {display:inline-flex; justify-content:center; align-items:center;
  gap:10px; min-height:46px; padding:10px 17px; border:1px solid #c7d9f1; border-radius:10px;
  color:#1b4f91 !important; background:#fff; font:750 .98rem/1.25 system-ui,sans-serif;
  text-align:center; text-decoration:none; transition:background .2s,border-color .2s,transform .2s;}
#content .pointer-manifest .pm-button-primary {border-color:#2563c3; background:#2563c3; color:#fff !important;}
#content .pointer-manifest .pm-button:hover {background:#eef6ff; border-color:#a8c6e9;
  color:#164c91 !important; text-decoration:none; transform:translateY(-1px);}
#content .pointer-manifest .pm-button-primary:hover {background:#164da4; border-color:#164da4; color:#fff !important;}
#content .pointer-manifest .pm-hero-signin {margin:13px 0 0; color:#667994; font-size:.94rem;}
#content .pointer-manifest .pm-hero-signin a {font-weight:750;}

#content .pointer-manifest .pm-console {min-width:0; overflow:hidden; border:1px solid #294565;
  border-radius:16px; background:#12233b; color:#d9e9fa;
  box-shadow:14px 16px 0 rgba(62,154,222,.12),0 24px 43px rgba(20,46,82,.17);}
#content .pointer-manifest .pm-console-head {display:flex; justify-content:space-between; gap:10px;
  padding:12px 18px; border-bottom:1px solid #2c4763; color:#b2c8e0;
  font:650 .85rem/1.4 ui-monospace,SFMono-Regular,Consolas,monospace;}
#content .pointer-manifest .pm-console-head > span:first-child {display:flex; align-items:center; gap:8px;}
#content .pointer-manifest .pm-console-head i {display:inline-block; width:9px; height:9px;
  border-radius:50%; background:#55c9f0;}
#content .pointer-manifest .pm-console-body {padding:20px 20px 19px;}
#content .pointer-manifest .pm-console-caption {margin:0 0 8px; color:#a8c0d9;
  font-size:.9rem;}
#content .pointer-manifest .pm-console pre {margin:0 0 14px; padding:0; border:0;
  border-radius:0; background:transparent; color:#ecf6ff; font: .94rem/1.68 ui-monospace,SFMono-Regular,Consolas,monospace;}
#content .pointer-manifest .pm-result {display:flex; align-items:center; justify-content:space-between;
  gap:12px; padding:10px 12px; border:1px solid #3a516a; border-radius:8px;
  font-size:.88rem; line-height:1.4;}
#content .pointer-manifest .pm-result span {color:#b6cce0;}
#content .pointer-manifest .pm-result strong {text-align:right;}
#content .pointer-manifest .pm-result-wrong strong {color:#f7acaf;}
#content .pointer-manifest .pm-result-correct {border-color:#396e66; background:#183d3e;}
#content .pointer-manifest .pm-result-correct strong {color:#8ce4b4;}
#content .pointer-manifest .pm-revision {margin:15px 0; font-size:.88rem; color:#b6cce0;}
#content .pointer-manifest .pm-revision code {display:flex; flex-direction:column; gap:2px;
  margin-top:8px; font-size:.9rem; line-height:1.55;}
#content .pointer-manifest .pm-revision del {color:#f7acaf; text-decoration:none;}
#content .pointer-manifest .pm-revision ins {color:#8ce4b4; text-decoration:none;}
#content .pointer-manifest .pm-revision del:before {content:"− ";}
#content .pointer-manifest .pm-revision ins:before {content:"+ ";}
#content .pointer-manifest .pm-console-foot {padding:12px 20px; border-top:1px solid #2c4763;
  color:#adc3d9; font-size:.84rem; line-height:1.5; text-align:center;}
#content .pointer-manifest .pm-console-foot span {padding:0 3px; color:#62ceef;}

#content .pointer-manifest .pm-section {margin-top:clamp(54px,7vw,87px);}
#content .pointer-manifest h2 {margin:0; color:#142d4d;
  font-size:clamp(1.6rem,2.8vw,2.65rem); font-weight:800; line-height:1.17; letter-spacing:-.035em;}
#content .pointer-manifest h3 {margin:0; color:#173451; font-size:1.05rem; letter-spacing:-.01em;}
#content .pointer-manifest .pm-section p {line-height:1.66;}
#content .pointer-manifest .pm-conviction {display:grid; grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr);
  gap:clamp(24px,6vw,82px); align-items:start;}
#content .pointer-manifest .pm-conviction-copy {padding:3px 0 0; color:#475c75;}
#content .pointer-manifest .pm-conviction-copy > p {margin:0 0 13px;}
#content .pointer-manifest .pm-conviction-copy blockquote {margin:23px 0 14px; padding:10px 0 10px 23px;
  border-left:4px solid #52bfea; color:#183b68; font-size:clamp(1.14rem,2vw,1.53rem);
  font-weight:750; line-height:1.36; letter-spacing:-.015em;}
#content .pointer-manifest .pm-section-heading {display:flex; justify-content:space-between;
  align-items:end; gap:18px 36px; margin-bottom:23px;}
#content .pointer-manifest .pm-section-heading > div {max-width:660px;}
#content .pointer-manifest .pm-section-heading > p {max-width:320px; margin:0; color:#596e86;}
#content .pointer-manifest .pm-steps {display:grid; grid-template-columns:repeat(4,minmax(0,1fr));
  gap:12px; margin:0; padding:0; list-style:none;}
#content .pointer-manifest .pm-steps li {position:relative; min-width:0; min-height:210px; margin:0;
  padding:23px 19px; border:1px solid #dce7f3; border-radius:13px; background:#fff;}
#content .pointer-manifest .pm-steps li:before {content:""; position:absolute; top:0; left:18px; right:18px;
  height:3px; background:#57c2ed; border-radius:0 0 3px 3px;}
#content .pointer-manifest .pm-step-number {display:block; margin-bottom:26px;
  color:#2a7aba; font:800 .95rem ui-monospace,SFMono-Regular,Consolas,monospace;}
#content .pointer-manifest .pm-steps h3 {margin:0 0 8px;}
#content .pointer-manifest .pm-steps p {margin:0; color:#63748c; font-size:.95rem;}

#content .pointer-manifest .pm-community {display:grid; grid-template-columns:minmax(0,1fr) minmax(0,.78fr);
  align-items:center; gap:clamp(28px,6vw,92px); padding:clamp(26px,4.5vw,55px);
  border:1px solid #d8e9f6; border-radius:20px; background:#ebf7ff;}
#content .pointer-manifest .pm-community > div:first-child > p:last-child {max-width:620px;
  margin:17px 0 0; color:#425b74;}
#content .pointer-manifest .pm-community-aside {padding:23px 25px; border:1px solid #d9e6f2;
  border-radius:13px; background:#fff;}
#content .pointer-manifest .pm-aside-mark {display:block; margin:0 0 14px; color:#194c88;
  font:800 1.35rem/1 ui-monospace,SFMono-Regular,Consolas,monospace; letter-spacing:-.06em;}
#content .pointer-manifest .pm-aside-mark span {padding:0 6px; color:#42b7e3;}
#content .pointer-manifest .pm-community-aside h3 {margin-bottom:8px;}
#content .pointer-manifest .pm-community-aside p {margin:0; color:#586d83; font-size:.97rem;}

#content .pointer-manifest .pm-join {margin-top:clamp(54px,7vw,87px); padding:clamp(26px,4.5vw,52px);
  border:1px solid #cfe0f2; border-radius:20px; background:#fff;}
#content .pointer-manifest .pm-join-heading {margin-bottom:27px;}
#content .pointer-manifest .pm-join-steps {display:grid; grid-template-columns:repeat(3,minmax(0,1fr));
  gap:18px; margin:0; padding:0; list-style:none;}
#content .pointer-manifest .pm-join-steps li {display:flex; gap:12px; min-width:0; margin:0;}
#content .pointer-manifest .pm-join-steps li > span {display:flex; align-items:center; justify-content:center;
  flex:none; width:32px; height:32px; border-radius:50%; background:#e8f4ff; color:#1858a3;
  font-weight:800; font-size:.92rem;}
#content .pointer-manifest .pm-join-steps strong {display:block; margin:2px 0 5px; color:#193654;}
#content .pointer-manifest .pm-join-steps p {margin:0; color:#61758b; font-size:.95rem;}
#content .pointer-manifest .pm-join-actions {margin-top:31px;}
#content .pointer-manifest .pm-final-line {margin:24px 0 0; color:#576c85;
  font-size:.97rem; font-weight:700; text-align:center;}
@media (max-width:940px) {
  #content .pointer-manifest .pm-hero {grid-template-columns:1fr;}
  #content .pointer-manifest .pm-console {max-width:610px; width:100%;}
  #content .pointer-manifest .pm-steps {grid-template-columns:repeat(2,minmax(0,1fr));}
  #content .pointer-manifest .pm-steps li {min-height:175px;}
}
@media (max-width:680px) {
  #content .pointer-manifest {margin:5px auto 36px;}
  #content .pointer-manifest .pm-hero {padding:27px 19px 31px; border-radius:16px; gap:31px;}
  #content .pointer-manifest .pm-hero h1 {font-size:clamp(2rem,9vw,2.8rem);}
  #content .pointer-manifest .pm-console {box-shadow:7px 9px 0 rgba(62,154,222,.12);}
  #content .pointer-manifest .pm-console-body {padding:17px 15px;}
  #content .pointer-manifest .pm-conviction, #content .pointer-manifest .pm-community,
  #content .pointer-manifest .pm-join-steps {grid-template-columns:1fr;}
  #content .pointer-manifest .pm-section-heading {display:block;}
  #content .pointer-manifest .pm-section-heading > p {max-width:none; margin:12px 0 0;}
  #content .pointer-manifest .pm-community, #content .pointer-manifest .pm-join {padding:26px 19px;}
  #content .pointer-manifest .pm-join-steps {gap:19px;}
}
@media (max-width:460px) {
  #content .pointer-manifest .pm-actions .pm-button, #content .pointer-manifest .pm-join-actions .pm-button {width:100%;}
  #content .pointer-manifest .pm-steps {grid-template-columns:1fr;}
  #content .pointer-manifest .pm-steps li {min-height:0;}
  #content .pointer-manifest .pm-step-number {margin-bottom:14px;}
  #content .pointer-manifest .pm-console-head, #content .pointer-manifest .pm-result {flex-wrap:wrap;}
}
@media (prefers-reduced-motion:reduce) {
  #content .pointer-manifest .pm-button {transition:none;}
}

/* Public Pointer FAQ. Keep these rules scoped to the subdomain template. */
#content .pointer-faq {max-width:var(--page-content-width); margin:16px auto 55px; color:#263d5a;
  font:16px/1.65 system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;}
#content .pointer-faq .pf-hero {position:relative; padding:clamp(27px,4vw,45px); overflow:hidden;
  border:1px solid #d9e8fa; border-radius:19px;
  background:radial-gradient(circle at 92% 18%,rgba(100,196,241,.16),transparent 38%),#fff;
  box-shadow:0 8px 32px rgba(26,62,105,.045); color:#243d5c;}
#content .pointer-faq .pf-hero-copy {position:relative; z-index:1; max-width:670px;}
#content .pointer-faq .pf-kicker, #content .pointer-faq .pf-overline {margin:0 0 11px;
  color:#2481c2; font-size:.89rem; font-weight:800; letter-spacing:.075em; text-transform:uppercase;}
#content .pointer-faq .pf-hero h1 {margin:0 0 13px; color:#142d4d;
  font-size:clamp(2.1rem,4vw,3.55rem); line-height:1.13; letter-spacing:-.035em;}
#content .pointer-faq .pf-title-accent {color:#1683bf;}
#content .pointer-faq .pf-hero-copy > p:last-child {max-width:55ch; margin:0; color:#526b85;
  font-size:clamp(1rem,1.5vw,1.16rem); line-height:1.55;}
#content .pointer-faq .pf-jump {display:flex; flex-wrap:wrap; gap:10px; margin:22px 0 0;}
#content .pointer-faq .pf-jump a {display:inline-flex; align-items:center; min-height:41px;
  padding:9px 13px; border:1px solid #d4e5f5; border-radius:9px; background:#fff;
  color:#245b96; font-size:.94rem; font-weight:750; text-decoration:none;}
#content .pointer-faq .pf-jump a:hover {background:#eaf5ff; text-decoration:none;}
#content .pointer-faq .pf-section {margin-top:clamp(48px,6vw,75px); scroll-margin-top:100px;}
#content .pointer-faq .pf-section-heading {display:flex; align-items:flex-start; gap:17px; margin:0 0 23px;}
#content .pointer-faq .pf-section-number {display:flex; align-items:center; justify-content:center;
  flex:none; width:43px; height:43px; border-radius:12px; background:#e7f5ff; color:#1761ab;
  font:800 .99rem ui-monospace,SFMono-Regular,Consolas,monospace;}
#content .pointer-faq .pf-section-heading .pf-overline {margin:0 0 5px;}
#content .pointer-faq h2 {margin:0; color:#172f51; font-size:clamp(1.55rem,2.5vw,2.13rem);
  line-height:1.2; letter-spacing:-.025em;}
#content .pointer-faq .pf-questions {overflow:hidden; border:1px solid #d9e6f3;
  border-radius:14px; background:#fff;}
#content .pointer-faq .pf-question {margin:0; background:#fff;}
#content .pointer-faq .pf-questions .pf-question + .pf-question {border-top:1px solid #e4ebf4;}
#content .pointer-faq .pf-question > summary {display:flex; align-items:center; justify-content:space-between;
  gap:16px; min-height:65px; padding:15px 20px; color:#213e60; font-size:1.05rem;
  font-weight:750; line-height:1.45; cursor:pointer; list-style:none;}
#content .pointer-faq .pf-question > summary::-webkit-details-marker {display:none;}
#content .pointer-faq .pf-question > summary:after {content:"+"; flex:none; display:flex;
  align-items:center; justify-content:center; width:28px; height:28px; border-radius:8px;
  background:#eaf4ff; color:#1c65a9; font-size:1.2rem; line-height:1;}
#content .pointer-faq .pf-question[open] > summary:after {content:"−";}
#content .pointer-faq .pf-question > summary:hover {background:#f6fbff;}
#content .pointer-faq .pf-question > summary:focus-visible {outline:3px solid #60a5fa; outline-offset:-3px;}
#content .pointer-faq .pf-answer {padding:0 55px 19px 20px; color:#4b6079;}
#content .pointer-faq .pf-answer p {margin:0 0 10px; line-height:1.65;}
#content .pointer-faq .pf-answer p:last-child {margin-bottom:0;}
#content .pointer-faq .pf-answer a {font-weight:700;}
#content .pointer-faq .pf-explainer {max-width:900px; color:#415972; font-size:1.04rem;}
#content .pointer-faq .pf-explainer p {margin:0 0 14px;}
#content .pointer-faq .pf-flow {display:grid; grid-template-columns:repeat(4,minmax(0,1fr));
  gap:10px; margin:24px 0; padding:0; list-style:none;}
#content .pointer-faq .pf-flow li {min-width:0; margin:0; padding:19px 16px;
  border:1px solid #d9e7f5; border-radius:12px; background:#f8fbff;}
#content .pointer-faq .pf-flow li > span {display:block; margin-bottom:17px; color:#2173b6;
  font:800 .93rem ui-monospace,SFMono-Regular,Consolas,monospace;}
#content .pointer-faq .pf-flow strong, #content .pointer-faq .pf-flow small {display:block;}
#content .pointer-faq .pf-flow strong {margin-bottom:5px; color:#193956; font-size:1.02rem;}
#content .pointer-faq .pf-flow small {color:#576c82; font-size:.93rem; line-height:1.5;}
#content .pointer-faq .pf-followups {margin-top:21px;}
#content .pointer-faq .pf-verdict-intro {max-width:850px; margin:0 0 20px; color:#4b6079;}
#content .pointer-faq .pf-table-wrap {max-width:100%; overflow:hidden; border:1px solid #d9e6f3;
  border-radius:13px; background:#fff;}
#content .pointer-faq table.pf-verdict-table {width:100%; margin:0; border:0; border-collapse:collapse;
  table-layout:fixed; box-shadow:none;}
#content .pointer-faq .pf-verdict-table th, #content .pointer-faq .pf-verdict-table td {padding:15px 16px;
  border:0; border-bottom:1px solid #e8edf4; background:transparent; color:#3c536d;
  text-align:left; vertical-align:top; font-size:.96rem; font-weight:400; line-height:1.52;}
#content .pointer-faq .pf-verdict-table thead th {background:#eaf4ff; color:#24466d; font-weight:800;}
#content .pointer-faq .pf-verdict-table tr:last-child th, #content .pointer-faq .pf-verdict-table tr:last-child td {border-bottom:0;}
#content .pointer-faq .pf-verdict-table th:first-child {width:90px;}
#content .pointer-faq .pf-verdict-table th:nth-child(2) {width:37%;}
#content .pointer-faq .pf-code {display:inline-flex; align-items:center; justify-content:center;
  min-width:43px; min-height:29px; padding:2px 7px; border-radius:7px; background:#fff0ed;
  color:#ad4236; font:800 .89rem ui-monospace,SFMono-Regular,Consolas,monospace;}
#content .pointer-faq .pf-code-ok {background:#e3f8ed; color:#177044;}
#content .pointer-faq .pf-verdict-followup {margin-top:16px; border:1px solid #d9e6f3; border-radius:12px;}
#content .pointer-faq .pf-support {display:flex; justify-content:space-between; align-items:center;
  gap:24px 36px; margin-top:clamp(48px,6vw,75px); padding:clamp(25px,4vw,43px);
  border:1px solid #cce6f7; border-radius:17px; background:#eaf7ff; scroll-margin-top:100px;}
#content .pointer-faq .pf-support > div {max-width:760px;}
#content .pointer-faq .pf-support p:last-child {margin:13px 0 0; color:#4b627d;}
#content .pointer-faq .pf-support-link {display:inline-flex; align-items:center; justify-content:center;
  flex:none; min-height:44px; padding:9px 15px; border:1px solid #2563b9; border-radius:9px;
  background:#2563b9; color:#fff !important; font-weight:750; text-align:center; text-decoration:none;}
#content .pointer-faq .pf-support-link:hover {background:#174d98; color:#fff !important; text-decoration:none;}
@media (max-width:850px) {
  #content .pointer-faq .pf-flow {grid-template-columns:repeat(2,minmax(0,1fr));}
  #content .pointer-faq .pf-support {align-items:flex-start; flex-direction:column;}
}
@media (max-width:660px) {
  #content .pointer-faq {margin:5px auto 38px;}
  #content .pointer-faq .pf-hero {padding:30px 20px; border-radius:16px;}
  #content .pointer-faq .pf-jump a {flex:1 1 auto; justify-content:center;}
  #content .pointer-faq .pf-section-heading {gap:11px;}
  #content .pointer-faq .pf-section-number {width:37px; height:37px; font-size:.89rem;}
  #content .pointer-faq .pf-question > summary {padding:14px 15px;}
  #content .pointer-faq .pf-answer {padding:0 16px 17px;}
  #content .pointer-faq .pf-table-wrap {border:0; overflow:visible; background:transparent;}
  #content .pointer-faq .pf-verdict-table, #content .pointer-faq .pf-verdict-table tbody,
  #content .pointer-faq .pf-verdict-table tr, #content .pointer-faq .pf-verdict-table th,
  #content .pointer-faq .pf-verdict-table td {display:block; width:100%;}
  #content .pointer-faq .pf-verdict-table thead {position:absolute; width:1px; height:1px;
    overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap;}
  #content .pointer-faq .pf-verdict-table tr {margin-bottom:10px; padding:15px;
    border:1px solid #d9e6f3; border-radius:11px; background:#fff;}
  #content .pointer-faq .pf-verdict-table th, #content .pointer-faq .pf-verdict-table td {
    width:100%; padding:0; border:0;}
  #content .pointer-faq .pf-verdict-table th {margin-bottom:8px;}
  #content .pointer-faq .pf-verdict-table td + td {margin-top:7px; color:#566b82;}
  #content .pointer-faq .pf-support {padding:27px 20px;}
}
@media (max-width:440px) {
  #content .pointer-faq .pf-flow {grid-template-columns:1fr;}
  #content .pointer-faq .pf-flow li {padding:14px 16px;}
  #content .pointer-faq .pf-flow li > span {margin-bottom:7px;}
  #content .pointer-faq .pf-support-link {width:100%;}
}

/* Create contest: shares the editing page's cards and controls. */
#content .contest-create-page .contest-settings-field > input[type=number] {
  display:block; box-sizing:border-box; width:100%; max-width:100%; min-height:46px;
  margin:0; padding:11px 13px; border:1px solid #cbd7e6; border-radius:10px;
  background:#fff; color:#172b4d; font:inherit; box-shadow:none;
}
#content .contest-create-page .contest-settings-field > input:focus-visible,
#content .contest-create-page .contest-settings-field > select:focus-visible,
#content .contest-create-page .contest-settings-language-toolbar button:focus-visible {
  outline:2px solid #93c5fd; outline-offset:2px;
}
#content .contest-create-page .contest-settings-toggles {grid-template-columns:minmax(0,1fr);}
#content .contest-create-page #standings-setting[hidden] {display:none;}
#content .contest-create-page .contest-settings-actions {margin-top:25px;}
#content .contest-create-page .contest-create-cancel {
  display:inline-flex; align-items:center; justify-content:center; min-height:45px;
  padding:10px 18px; border:1px solid #cfdae8; border-radius:10px; background:#fff;
  color:#334862; font:750 .95rem system-ui,sans-serif; text-decoration:none;
}
#content .contest-create-page .contest-create-cancel:hover,
#content .contest-create-page .contest-create-cancel:focus {background:#f1f5f9; color:#1d4ed8;}
@media (max-width:760px) {
  #content .contest-create-page .contest-settings-actions > * {flex:1 1 170px;}
}

/* Courses in the contest list, details and settings. */
#content .contest-item.kind-course,
#content .contest-details-hero.kind-course,
#content .contest-context-banner.kind-course {
  --contest-color:#7c3aed; --contest-tint:#f5f3ff; --contest-outline:#ddd6fe;
}
#content .contest-settings-static {min-height:46px; padding:11px 13px; border:1px solid #cbd7e6;
  border-radius:10px; background:#f8fafc; color:#334155; box-sizing:border-box;}
#content table.contest-settings-extra input[type=number] {box-sizing:border-box; width:115px;
  min-height:42px; padding:8px 12px; border:1px solid #cbd7e6; border-radius:9px;
  background:#fff; color:#172b4d; font:inherit;}
#content table.contest-settings-extra small {display:block; margin-top:7px; color:#61738b; line-height:1.5;}
#content .contest-create-page #duration-setting[hidden] {display:none;}

/* Course programme and block editor. */
#content .course-outline {margin-top:16px;}
#content .course-outline .contest-details-section-heading {align-items:flex-start;}
#content .course-outline .contest-details-section-heading p {margin:5px 0 0; color:#64748b; font-size:.9rem;}
#content .course-outline-rule {margin:16px 0 20px; padding:12px 16px; border-radius:11px;
  background:#f5f3ff; color:#4c1d95; line-height:1.55;}
#content .course-block-list {display:grid; gap:15px;}
#content .course-block {min-width:0; padding:21px; border:1px solid #ddd6fe; border-radius:15px;
  background:#fff; box-shadow:0 3px 13px rgba(57,37,100,.035);}
#content .course-block.is-locked {border-color:#e2e8f0; background:#f9fafb;}
#content .course-block-heading {display:flex; align-items:center; gap:13px; min-width:0;}
#content .course-block-number {display:grid; place-items:center; flex:none; width:38px; height:38px;
  border-radius:11px; background:#ede9fe; color:#6d28d9; font-weight:800;}
#content .course-block.is-locked .course-block-number {background:#e5e7eb; color:#64748b;}
#content .course-block-title {min-width:0; flex:1;}
#content .course-block-title h3 {margin:0 0 3px; color:#1e293b; font-size:1.08rem; line-height:1.35; overflow-wrap:anywhere;}
#content .course-block-title > span {color:#64748b; font-size:.84rem;}
#content .course-block-state {flex:none; padding:5px 10px; border-radius:999px; background:#e5e7eb;
  color:#475569; font-size:.78rem; font-weight:750;}
#content .course-block-state.is-open {background:#ede9fe; color:#6d28d9;}
#content .course-block-state.is-progress {background:#dcfce7; color:#166534;}
#content .course-block-description {margin:14px 0 0; color:#475569; line-height:1.65;}
#content .course-block-progress {height:9px; margin:16px 0 5px; overflow:hidden; border-radius:99px; background:#e2e8f0;}
#content .course-block-progress span {display:block; height:100%; border-radius:inherit; background:linear-gradient(90deg,#8b5cf6,#16a34a);}
#content .course-block-score {margin:0; color:#475569; font-size:.84rem; font-weight:650;}
#content .course-block-private {margin-top:17px; border-top:1px solid #edf0f6;}
#content .course-block-private > summary {padding:14px 2px; color:#6d28d9; font-weight:750; cursor:pointer;}
#content .course-block-private > summary span {margin-left:7px; color:#64748b; font-size:.83rem; font-weight:500;}
#content .course-block-private-content {padding-top:2px;}
#content .course-block-materials {margin:0 0 17px; border:1px solid #ddd6fe; border-radius:10px; background:#faf8ff;}
#content .course-block-materials summary {padding:11px 15px; color:#5b21b6; font-weight:700; cursor:pointer;}
#content .course-block-materials[open] summary {border-bottom:1px solid #e9d5ff;}
#content .course-block-materials .contest-details-content {padding:14px 17px; line-height:1.65; overflow-wrap:anywhere;}
#content .course-block-materials .contest-details-content > :last-child {margin-bottom:0;}
#content .course-block-empty, #content .course-block-lock-note {margin:12px 0 0; color:#64748b; font-size:.9rem; line-height:1.5;}
#content .course-task-list {margin:0; padding:0; list-style:none;}
#content .course-task-list li {display:flex; align-items:center; flex-wrap:wrap; gap:6px 14px;
  padding:10px 2px; border-top:1px solid #eef2f7;}
#content .course-task-list li:first-child {border-top:0;}
#content .course-task-name {flex:1 1 300px; min-width:0; color:#334155; font-weight:650; overflow-wrap:anywhere;}
#content .course-task-name span {color:#7c3aed; font-variant-numeric:tabular-nums;}
#content .course-task-score {color:#334155; font-size:.87rem; font-variant-numeric:tabular-nums; white-space:nowrap;}
#content .course-task-result {min-width:85px; color:#2563eb; font-size:.85rem; text-align:right;}
#content .course-task-result.is-empty {color:#94a3b8;}

#content .course-editor-page {max-width:1120px;}
#content .course-editor-help {margin:0 0 22px; padding:16px 20px; border:1px solid #ddd6fe;
  border-radius:14px; background:#f5f3ff; color:#4c1d95; line-height:1.55;}
#content .course-editor-help p {margin:0;}
#content .course-editor-help p + p {margin-top:8px;}
#content .course-editor-section {margin:25px 0 38px;}
#content .course-editor-section-head {display:flex; align-items:baseline; justify-content:space-between; flex-wrap:wrap; gap:8px 15px; margin-bottom:14px;}
#content .course-editor-section-head h2 {margin:0; font-size:1.4rem; color:#1e293b;}
#content .course-editor-section-head h2 span {font-size:.8rem; color:#64748b;}
#content .course-editor-card {margin:0 0 15px; padding:20px; border:1px solid #dbe3ef;
  border-radius:16px; background:#fff; box-shadow:0 3px 16px rgba(15,23,42,.035);}
#content .course-editor-new {border-style:dashed; background:#fbfcff;}
#content .course-editor-card h3 {margin:0; color:#1e293b; font-size:1.1rem;}
#content .course-editor-card-head {display:flex; align-items:center; justify-content:space-between; gap:12px; margin-bottom:17px;}
#content .course-editor-card-head h3 span {display:inline-grid; place-items:center; width:29px; height:29px;
  margin-right:6px; border-radius:8px; background:#ede9fe; color:#6d28d9; font-size:.9rem;}
#content .course-editor-move {display:flex; gap:5px;}
#content .course-editor-move button {width:34px; height:34px; padding:0; border:1px solid #cbd5e1;
  border-radius:8px; background:#fff; color:#334155; font:700 1rem system-ui,sans-serif; cursor:pointer;}
#content .course-editor-move button:disabled {opacity:.35; cursor:default;}
#content .course-editor-block-form {display:grid; gap:14px;}
#content .course-editor-block-form label, #content .course-editor-tools label {display:grid; gap:6px; color:#334155; font-weight:700;}
#content .course-editor-block-form small {color:#64748b; font-weight:400;}
#content .course-editor-block-form input, #content .course-editor-block-form textarea,
#content .course-editor-tools input, #content .course-editor-tools select,
#content .course-editor-table select, #content .course-editor-table input {box-sizing:border-box; width:100%; min-height:42px;
  padding:9px 12px; border:1px solid #cbd5e1; border-radius:9px; background:#fff; color:#1e293b; font:inherit;}
#content .course-editor-block-form textarea {min-height:75px; resize:vertical; line-height:1.5;}
#content .course-editor-block-form .course-editor-primary {justify-self:start; padding:10px 17px; border:0;
  border-radius:9px; background:#6d28d9; color:#fff; font:700 .92rem system-ui,sans-serif; cursor:pointer;}
#content .course-editor-block-form .course-editor-primary:hover {background:#5b21b6;}
#content .course-editor-delete {margin-top:13px; padding-top:12px; border-top:1px solid #eef2f7;}
#content .course-editor-delete button {padding:6px 0; border:0; background:none; color:#b42332; font:650 .86rem system-ui,sans-serif; cursor:pointer;}
#content .course-editor-empty {padding:26px; border:1px dashed #cbd5e1; border-radius:12px; background:#fff; color:#64748b;}
#content .course-editor-tools {display:grid; grid-template-columns:minmax(160px,1fr) minmax(220px,1fr) auto;
  align-items:end; gap:11px; margin:19px 0 14px;}
#content .course-editor-tools button {min-height:42px; padding:9px 14px; border:1px solid #ddd6fe;
  border-radius:9px; background:#f5f3ff; color:#5b21b6; font:700 .9rem system-ui,sans-serif; cursor:pointer;}
#content .course-editor-table {min-width:660px;}
#content .course-editor-table th:nth-child(2), #content .course-editor-table td:nth-child(2) {width:45%;}
#content .course-editor-table select {min-width:180px;}
#content .course-editor-table input[type=number] {width:88px;}
#content .course-editor-table tr[hidden] {display:none;}
#content .course-results-table {min-width:690px;}
#content .course-results-blocks {min-width:180px;}
#content .course-results-blocks summary {color:#6d28d9; font-size:.86rem; font-weight:700; cursor:pointer;}
#content .course-results-blocks ol {margin:10px 0 0; padding-left:21px; min-width:210px;}
#content .course-results-blocks li {margin:0 0 10px; color:#334155; font-size:.84rem; line-height:1.45;}
#content .course-results-blocks li strong, #content .course-results-blocks li span {display:block;}
#content .course-results-blocks li span {color:#64748b; font-variant-numeric:tabular-nums;}
#content .course-visually-hidden {position:absolute; width:1px; height:1px; padding:0; margin:-1px;
  overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0;}
@media (max-width:760px) {
  #content .course-block {padding:17px;}
  #content .course-block-heading {align-items:flex-start; gap:9px;}
  #content .course-block-state {white-space:normal; text-align:center;}
  #content .course-task-result {text-align:left;}
  #content .course-editor-card {padding:17px;}
  #content .course-editor-tools {grid-template-columns:1fr;}
}

/* Course details and block-based task list. */
#content .course-threshold-note {display:block; margin-top:6px; color:#64748b; font-size:.85rem; font-weight:400; line-height:1.45;}
#content .course-progress-segments {display:grid; grid-auto-flow:column; grid-auto-columns:minmax(65px,1fr); gap:7px; overflow-x:auto; padding:3px 0;}
#content .course-progress-segment {min-width:0; color:#475569; text-decoration:none;}
#content .course-progress-caption {display:flex; flex-direction:column; align-items:center; gap:3px; margin-bottom:6px; font-size:.78rem; white-space:nowrap;}
#content .course-progress-caption strong {color:#1d4ed8; font-size:.85rem; font-variant-numeric:tabular-nums;}
#content .course-progress-track {display:block; height:10px; border-radius:5px; background:#e8eef7; overflow:hidden;}
#content .course-progress-track > span {display:block; height:100%; background:linear-gradient(90deg,#3b82f6,#60a5fa); border-radius:inherit;}
#content .course-progress-segment:hover .course-progress-track {background:#dbeafe;}
#content .course-problems-page {scroll-margin-top:145px;}
#content .course-problems-page .problems-heading h1 {text-transform:none;}
#content .course-block-tabs {display:flex; gap:7px; flex-wrap:wrap; margin:0 0 18px;}
#content .course-block-tab {display:inline-flex; align-items:center; gap:4px; min-height:42px; padding:9px 13px; border:1px solid #dbe5f1; border-radius:10px; background:#fff; color:#475569; font-size:.92rem; font-weight:700; text-decoration:none;}
#content .course-block-tab:hover, #content .course-block-tab:focus-visible {background:#eff6ff; border-color:#93c5fd;}
#content .course-block-tab.is-active {background:#eaf2ff; border-color:#2563eb; color:#1d4ed8; box-shadow:inset 0 0 0 1px #2563eb;}
#content .course-block-tab-lock {font-size:.78rem; font-weight:500; color:#64748b;}
#content .course-block-load-status {margin:0 0 12px; color:#64748b; font-size:.9rem;}
#content .course-block-load-status:empty {display:none;}
#content .course-block-locked {padding:22px; border:1px solid #e2e8f0; border-radius:14px; background:#f8fafc; color:#475569;}
#content .course-block-study {margin:22px 0 0; padding:24px; border:1px solid #e2e8f0; border-radius:15px; background:#fff;}
#content .course-block-study h2 {margin:0 0 16px; color:#17233b; font-size:1.25rem; font-weight:750;}
#content .course-block-study .contest-details-content img {max-width:100%; height:auto;}
#content .course-block-study .contest-details-content iframe {max-width:100%;}
#content .course-problems-table th:first-child {width:9%;}
#content .course-problems-table th:nth-child(2) {width:43%;}
#content .course-problems-table th:nth-child(3), #content .course-problems-table th:nth-child(4), #content .course-problems-table th:nth-child(5) {width:16%;}
#content .course-editor-table input[name^="short["] {width:80px; min-width:0;}
@media (max-width:760px) {
  #content .course-block-study {padding:17px 14px;}
  #content .course-block-tabs {gap:6px;}
  #content .course-block-tab {padding:8px 10px; font-size:.85rem;}
}

/* Separate course block and task administration. */
#content .course-editor-page {max-width:var(--page-content-width);}
#content .course-manage-nav {display:flex; flex-wrap:wrap; gap:8px; margin:0 0 22px;}
#content .course-manage-nav a {padding:10px 16px; border:1px solid #cbd5e1; border-radius:10px; background:#fff; color:#475569; font-weight:700; text-decoration:none;}
#content .course-manage-nav a.is-active {border-color:#2563eb; background:#eff6ff; color:#1d4ed8; box-shadow:inset 0 0 0 1px #2563eb;}
#content .course-task-editor-content {scroll-margin-top:125px;}
#content .course-editor-tab-count {min-width:22px; padding:2px 5px; border-radius:6px; background:#f1f5f9; color:#64748b; font-size:.75rem; text-align:center;}
#content .course-editor-success {padding:14px 18px; border:1px solid #bbf7d0; border-radius:12px; background:#f0fdf4; color:#166534; line-height:1.5;}
#content .course-editor-note {color:#64748b; line-height:1.55; font-size:.9rem;}
#content table.course-task-edit-table {min-width:1020px;}
#content table.course-task-edit-table th {white-space:nowrap;}
#content table.course-task-edit-table td:nth-child(3) {min-width:200px;}
#content table.course-task-edit-table td input[type=text] {width:78px; min-width:0;}
#content table.course-task-edit-table td input[type=number] {width:92px; min-width:0;}
#content table.course-task-edit-table td select {width:190px; min-width:0;}
#content .course-task-search {margin:0 0 16px;}
#content .course-task-candidates {margin:0; padding:0; list-style:none;}
#content .course-task-candidates li {display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:10px; padding:12px 0; border-top:1px solid #eef2f7;}
#content .course-task-candidates li > span {flex:1 1 250px; color:#334155; overflow-wrap:anywhere;}
#content .course-task-candidates form {margin:0;}

/* OlympPatch_005: olympiad FAQ and visible academic integrity rules. */
#content .olympics-faq .pf-hero {border-color:#e3dccd;
  background:radial-gradient(circle at 92% 18%,rgba(237,196,117,.19),transparent 45%),#fff;}
#content .olympics-faq .pf-kicker, #content .olympics-faq .pf-overline {color:#82642f;}
#content .olympics-faq .pf-title-accent {color:#46627e;}
#content .olympics-faq .pf-jump a {border-color:#dce2e9; color:#28435e;}
#content .olympics-faq .pf-jump a:hover {border-color:#d0b782; background:#fbf5e8;}
#content .olympics-faq a:focus-visible {outline:3px solid #b58a36; outline-offset:3px;}
#content .olympics-faq .pf-section, #content .olympics-faq .pf-support {scroll-margin-top:245px;}
#content .olympics-faq .pf-section-number {color:#795b26; background:#f6edda;}
#content .olympics-faq .pf-question > summary:after {color:#3b5673; background:#edf1f5;}
#content .olympics-faq .pf-question > summary:hover {background:#faf8f2;}
#content .olympics-faq .pf-question > summary:focus-visible {outline-color:#b58a36;}
#content .olympics-faq .pf-flow li {background:#f8f9fb; border-color:#dce3e9;}
#content .olympics-faq .pf-flow li > span {color:#795b26;}
#content .olympics-faq .pf-verdict-table thead th {background:#edf1f5;}
#content .olympics-faq .pf-support {border-color:#e3dccd; background:#fbf6e9;}
#content .olympics-faq .pf-support-link {border-color:#193753; background:#193753;}
#content .olympics-faq .pf-support-link:hover {border-color:#284d6e; background:#284d6e;}
#content .olympics-faq .pf-integrity {padding:clamp(23px,3.5vw,40px); border:1px solid #dfd5bf;
  border-top:4px solid #c4a05b; border-radius:17px; background:linear-gradient(120deg,#fff 55%,#fffcf4);}
#content .olympics-faq .pf-integrity-label {margin:0 0 10px; padding:0; color:#82642f;
  font-size:.77rem; font-weight:800; letter-spacing:.065em; text-transform:uppercase;}
#content .olympics-faq .pf-integrity h3 {margin:0 0 15px; padding:0; color:#142943;
  font-size:clamp(1.4rem,2.4vw,1.85rem); line-height:1.25; letter-spacing:-.02em;}
#content .olympics-faq .pf-integrity-intro {max-width:850px; margin:0 0 25px; padding:0;
  color:#4c6279; line-height:1.65;}
#content .olympics-faq .pf-rules {display:grid; grid-template-columns:repeat(2,minmax(0,1fr));
  gap:13px; margin:0; padding:0; list-style:none; counter-reset:integrity-rule;}
#content .olympics-faq .pf-rules li {position:relative; min-width:0; margin:0; padding:20px 20px 20px 57px;
  border:1px solid #e1e5eb; border-radius:11px; background:#f8f9fb; counter-increment:integrity-rule;}
#content .olympics-faq .pf-rules li::before {content:counter(integrity-rule); position:absolute; top:20px; left:17px;
  display:flex; align-items:center; justify-content:center; width:26px; height:26px;
  border:1px solid #e2d1aa; border-radius:7px; color:#795b26; background:#fbf3e2;
  font:800 .86rem/1 ui-monospace,SFMono-Regular,Consolas,monospace;}
#content .olympics-faq .pf-rules li:last-child {grid-column:1 / -1;}
#content .olympics-faq .pf-rules strong {display:block; margin:0 0 8px; color:#203c5a; font-size:1rem; line-height:1.5;}
#content .olympics-faq .pf-rules p {margin:0; padding:0; color:#53677e; font-size:.94rem; line-height:1.65;}
#content .olympics-faq .pf-integrity-note {margin:23px 0 0; padding:16px 18px;
  border-left:3px solid #c4a05b; border-radius:0 9px 9px 0; background:#fbf5e8;
  color:#5a6473; font-size:.89rem; line-height:1.65;}
#content .olympics-faq .pf-integrity-note strong {color:#364c63;}
@media (max-width:760px) {
  #content .olympics-faq .pf-section, #content .olympics-faq .pf-support {scroll-margin-top:20px;}
  #content .olympics-faq .pf-rules {grid-template-columns:1fr;}
  #content .olympics-faq .pf-integrity {padding:23px 18px; border-radius:13px;}
  #content .olympics-faq .pf-rules li {padding:17px 15px 17px 48px;}
  #content .olympics-faq .pf-rules li::before {top:17px; left:12px; width:24px; height:24px;}
  #content .olympics-faq .pf-integrity-note {padding:14px;}
}

/* OlympPatch_004: one announcement panel, followed by the existing footer. */
#content .olympics-announcement {max-width:var(--page-content-width); margin:17px auto 24px;
  color:#233a58; font:16px/1.6 system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;}
#content .olympics-announcement * {box-sizing:border-box;}
#content .olympics-announcement .oa-hero {display:grid; grid-template-columns:minmax(0,1.4fr) minmax(0,1fr);
  align-items:center; gap:30px 42px; min-height:520px; padding:clamp(27px,4.5vw,58px);
  border:1px solid #e2dbc9; border-radius:24px; background:radial-gradient(circle at 100% 0%,#f8efd9,transparent 48%),#fff;
  box-shadow:0 12px 45px rgba(26,48,73,.065);}
#content .olympics-announcement .oa-copy {min-width:0;}
#content .olympics-announcement .oa-eyebrow {margin:0 0 14px; padding:0; color:#68758a;
  font-size:.76rem; font-weight:750; letter-spacing:.08em; text-transform:uppercase;}
#content .olympics-announcement .oa-stage {display:inline-block; margin:0 0 16px; padding:6px 11px;
  border:1px solid #ead8b5; border-radius:7px; background:#fbf3e2; color:#695024;
  font-size:.87rem; font-weight:750; line-height:1.4;}
#content .olympics-announcement h1 {margin:0 0 20px; padding:0; color:#142943;
  font-size:clamp(2rem,3.3vw,3rem); font-weight:800; line-height:1.12; letter-spacing:-.035em;}
#content .olympics-announcement h1 span {display:block; color:#46627e;}
#content .olympics-announcement .oa-lead {max-width:52ch; margin:0 0 25px; padding:0;
  color:#53677e; font-size:1rem; line-height:1.65;}
/* OlympPatch_006: account creation and contest application are separate steps. */
#content .olympics-announcement .oa-participation {margin:0 0 24px;}
#content .olympics-announcement .oa-participation-title {margin:0 0 10px; padding:0;
  color:#203c5a; font-size:.92rem; font-weight:800;}
#content .olympics-announcement .oa-participation-steps {margin:0; padding:0 0 0 21px;
  color:#53677e; font-size:.9rem; line-height:1.65;}
#content .olympics-announcement .oa-participation-steps li {margin:0 0 12px; padding-left:3px;}
#content .olympics-announcement .oa-participation-steps li:last-child {margin-bottom:0;}
#content .olympics-announcement .oa-participation-steps li::marker {color:#82642f; font-weight:800;}
#content .olympics-announcement .oa-participation-steps a {font-weight:700; text-decoration:underline; text-underline-offset:3px;}
#content .olympics-announcement .oa-participation-copy {margin:0; padding:0; color:#53677e; font-size:.93rem; line-height:1.65;}
#content .olympics-announcement .oa-all-contests {margin:13px 0 0; padding:0; font-size:.87rem; line-height:1.5;}
#content .olympics-announcement .oa-note a {font-weight:700; text-decoration:underline; text-underline-offset:3px;}
#content .olympics-announcement .oa-actions {display:flex; flex-wrap:wrap; gap:10px;}
#content .olympics-announcement a.oa-button {display:inline-flex; align-items:center; justify-content:center;
  gap:10px; min-height:46px; padding:11px 15px; border:1px solid #cfd9e3; border-radius:9px;
  color:#243f5d; background:#fff; font-size:.91rem; font-weight:750; line-height:1.35; text-align:center; text-decoration:none;}
#content .olympics-announcement a.oa-button-primary {border-color:#193753; color:#fff; background:#193753;}
#content .olympics-announcement a.oa-button:hover {border-color:#91a3b5; background:#f2f5f8; text-decoration:none;}
#content .olympics-announcement a.oa-button-primary:hover {border-color:#284d6e; background:#284d6e;}
#content .olympics-announcement a.oa-button:focus-visible {outline:3px solid #c28d2f; outline-offset:4px;}
#content .olympics-announcement .oa-event {min-width:0; padding:30px; border:1px solid #2f4963;
  border-radius:18px; background:radial-gradient(circle at 100% 0%,rgba(237,196,117,.12),transparent 60%),#142943;
  color:#fff; box-shadow:0 15px 30px rgba(20,41,67,.12);}
#content .olympics-announcement .oa-event-label {margin:0 0 19px; padding:0; color:#bdcbd9;
  font-size:.73rem; font-weight:700; letter-spacing:.09em; text-transform:uppercase;}
#content .olympics-announcement .oa-date {display:flex; align-items:center; gap:20px; margin:0 0 24px;}
#content .olympics-announcement .oa-day {color:#edc475; font-size:6.5rem; font-weight:750; line-height:.9; letter-spacing:-.065em;}
#content .olympics-announcement .oa-month {font-size:1.65rem; font-weight:700; line-height:1.25;}
#content .olympics-announcement .oa-year {display:block; margin-top:5px; color:#bdcbd9; font-size:1rem; font-weight:500;}
#content .olympics-announcement .oa-facts {margin:0; padding:19px 0 0; border-top:1px solid #40536a;}
#content .olympics-announcement .oa-facts > div {display:flex; align-items:baseline; justify-content:space-between; gap:12px; padding:7px 0;}
#content .olympics-announcement .oa-facts dt {color:#bdcbd9; font-size:.88rem;}
#content .olympics-announcement .oa-facts dd {margin:0; font-size:1.12rem; font-weight:700; white-space:nowrap;}
#content .olympics-announcement .oa-online-dot {display:inline-block; width:7px; height:7px; margin-right:8px;
  border-radius:50%; background:#edc475; vertical-align:middle;}
#content .olympics-announcement .oa-note {grid-column:1 / -1; display:flex; align-items:flex-start; gap:11px;
  margin:0; padding:18px 0 0; border-top:1px solid #e6e5df; color:#657185; font-size:.85rem; line-height:1.6;}
#content .olympics-announcement .oa-note-mark {display:flex; align-items:center; justify-content:center; flex:none;
  width:20px; height:20px; margin-top:1px; border:1px solid #cdd3db; border-radius:50%; color:#53677e;
  font:700 .75rem/1 Georgia,serif;}
@media (max-width:900px) {
  #content .olympics-announcement .oa-hero {grid-template-columns:minmax(0,1fr) minmax(0,.85fr); gap:25px; padding:30px;}
  #content .olympics-announcement .oa-event {padding:24px;}
  #content .olympics-announcement .oa-date {gap:15px;}
  #content .olympics-announcement .oa-month {font-size:1.4rem;}
}
@media (max-width:760px) {
  #content .olympics-announcement {margin:5px auto 18px;}
  #content .olympics-announcement .oa-hero {grid-template-columns:1fr; min-height:0; gap:25px;
    padding:27px 19px; border-radius:16px;}
  #content .olympics-announcement h1 {font-size:clamp(1.9rem,7.5vw,2.8rem);}
  #content .olympics-announcement .oa-eyebrow {letter-spacing:.05em;}
  #content .olympics-announcement .oa-event {padding:24px; border-radius:13px;}
  #content .olympics-announcement .oa-day {font-size:5.5rem;}
  #content .olympics-announcement .oa-month {font-size:1.6rem;}
  #content .olympics-announcement .oa-note {padding-top:19px; font-size:.82rem;}
}
@media (max-width:480px) {
  #content .olympics-announcement a.oa-button {width:100%;}
}

/* OlympPatch_001: the official Kharkiv informatics olympiad header. */
#header.olympics-header {
  position:sticky; top:0; z-index:100; overflow:visible;
  background:radial-gradient(ellipse at 95% 0%,rgba(222,178,88,.13),transparent 45%),
    linear-gradient(115deg,#142943 0%,#193753 58%,#142b46 100%);
  border-bottom:0; box-shadow:0 5px 20px rgba(13,34,56,.13);
}
#header.olympics-header::after {
  height:3px; background:linear-gradient(90deg,#e9bd64,#e9bd64 32%,#446380 75%,#233e5b);
}
#header.olympics-header .hdr-wrap {
  display:flex; flex-direction:column; align-items:stretch;
  max-width:var(--page-content-width); margin:0 auto;
  padding:24px 0 0; gap:0;
}
#header.olympics-header .hdr-left {flex:none; min-width:0; padding:0 0 22px;}
#header.olympics-header .brand {align-items:center; min-width:0; gap:22px;}
#header.olympics-header .brand-logo {
  display:block; width:84px; height:84px; padding:0; flex:none;
  border:0; border-radius:21px; background:transparent; box-shadow:none;
}
#header.olympics-header .brand-text {flex:1 1 auto; min-width:0;}
#header.olympics-header .brand-title {
  margin:0; max-width:none; color:#fff; font-size:34px; font-weight:800;
  line-height:1.17; letter-spacing:-.025em;
  white-space:normal; overflow:visible; text-overflow:clip; overflow-wrap:break-word;
}
#header.olympics-header .brand-title-line {display:block;}
#header.olympics-header .brand-title-line + .brand-title-line {
  margin-top:3px; color:#eed29a; font-size:.84em; font-weight:650; letter-spacing:-.015em;
}
#header.olympics-header .brand-subtitle {
  display:block; margin:10px 0 0; max-width:none; color:#b7c9db;
  font-size:12px; font-weight:500; line-height:1.5; letter-spacing:.035em;
  white-space:normal; overflow:visible; text-overflow:clip;
}
#header.olympics-header .hdr-right {
  display:flex; flex:none; width:100%; margin:0; padding:12px 0;
  min-width:0; gap:10px; justify-content:flex-end; align-items:center;
  flex-wrap:nowrap; border-top:1px solid rgba(220,232,244,.16);
}
#header.olympics-header .static-links {gap:6px; margin-right:auto; flex-wrap:nowrap;}
#header.olympics-header .pill {
  min-height:42px; padding:9px 16px; border:1px solid transparent;
  border-radius:9px; background:transparent; color:#e2eaf2 !important;
  font-size:.94rem; font-weight:650; line-height:1.35;
  box-shadow:none; transform:none;
}
#header.olympics-header .pill:hover {
  background:rgba(255,255,255,.08); color:#fff !important;
  border-color:rgba(255,255,255,.12); transform:none;
}
#header.olympics-header .static-links .pill.is-current {
  background:rgba(236,192,107,.12); border-color:rgba(236,192,107,.4);
  color:#f4d69e !important; box-shadow:none;
}
#header.olympics-header .auth-actions {
  display:flex; margin:0; padding:0 0 0 14px; gap:6px;
  border-left:1px solid rgba(220,232,244,.18); flex-wrap:nowrap;
}
#header.olympics-header .auth-actions .pill-primary {
  background:#edc475; border-color:#edc475; color:#182c42 !important;
}
#header.olympics-header .auth-actions .pill-primary:hover {
  background:#f3d393; border-color:#f3d393; color:#182c42 !important; filter:none;
}
#header.olympics-header .dropdown > .btn {
  min-height:42px; padding:7px 12px; border-radius:9px;
  border:1px solid rgba(220,232,244,.26); background:rgba(255,255,255,.07);
  color:#fff; box-shadow:none; font-size:.93rem; font-weight:650;
}
#header.olympics-header .dropdown > .btn:hover {background:rgba(255,255,255,.12);}
#header.olympics-header .avatar {background:rgba(237,196,117,.17); color:#f5d59b;}
#header.olympics-header .badge {background:#edc475; color:#183452;}
#header.olympics-header .header-message-link {
  width:42px; height:42px; border-radius:9px;
  border-color:rgba(220,232,244,.26); background:rgba(255,255,255,.07); color:#e2eaf2;
}
#header.olympics-header .header-message-link:hover {background:rgba(255,255,255,.12);}
#header.olympics-header a:focus-visible,
#header.olympics-header button:focus-visible {outline:3px solid #edc475; outline-offset:3px;}

@media (max-width:1240px) {
  #header.olympics-header .hdr-wrap {margin:0 32px; padding-top:22px;}
}
@media (max-width:760px) {
  #header.olympics-header {position:relative;}
  #header.olympics-header .hdr-wrap {margin:0; padding:17px 16px 0; flex-wrap:nowrap;}
  #header.olympics-header .hdr-left {padding-bottom:15px;}
  #header.olympics-header .brand {gap:13px; align-items:flex-start;}
  #header.olympics-header .brand-logo {width:54px; height:54px; border-radius:14px; margin-top:2px;}
  #header.olympics-header .brand-title {font-size:24px; line-height:1.2; letter-spacing:-.025em;}
  #header.olympics-header .brand-title-line + .brand-title-line {font-size:.84em; margin-top:4px;}
  #header.olympics-header .brand-subtitle {font-size:10px; margin-top:8px; letter-spacing:0;}
  #header.olympics-header .hdr-right {padding:9px 0; gap:8px; min-height:58px;}
  #header.olympics-header .static-links, #header.olympics-header .dropdown {display:none;}
  #header.olympics-header .auth-actions {margin-right:auto; padding:0; gap:8px; border-left:0;}
  #header.olympics-header .auth-actions .pill {display:inline-flex; min-height:38px; padding:8px 11px; font-size:.83rem;}
  #header.olympics-header .auth-actions .pill-primary {display:inline-flex;}
  #header.olympics-header .header-message-link {width:38px; height:38px; margin-right:auto;}
  #header.olympics-header .mobile-menu-toggle {
    display:inline-flex; gap:7px; min-height:38px; padding:7px 11px; border-radius:9px;
    border-color:rgba(220,232,244,.3); background:rgba(255,255,255,.07);
    color:#fff; font-size:.84rem; line-height:1.25;
  }
  #header.olympics-header .mobile-menu-toggle[aria-expanded="true"] {
    border-color:#edc475; background:rgba(236,192,107,.14);
  }
  #header.olympics-header .mobile-menu-toggle .avatar {background:#edc475; color:#183452;}
  #header.olympics-header .mobile-menu-toggle > span:not(.avatar):not(.mobile-menu-count) {display:inline;}
  #header.olympics-header .mobile-menu-count {background:#edc475; color:#183452;}
  #header.olympics-header .mobile-menu {
    top:calc(100% + 6px); left:16px; right:16px;
    max-height:min(60vh,calc(100vh - 190px)); padding:8px;
    border-color:#d6dee8; border-radius:12px; box-shadow:0 16px 40px rgba(10,30,53,.22);
  }
  #header.olympics-header .mobile-menu a {font-size:.95rem; border:1px solid transparent;}
  #header.olympics-header .mobile-menu a.is-current {
    border-color:#e1bf7e; background:#fff6e3; color:#183452 !important; box-shadow:none;
  }
  #header.olympics-header .mobile-menu a:focus-visible {outline-color:#be861c; outline-offset:-3px;}
}
@media (max-width:420px) {
  #header.olympics-header .brand {gap:11px;}
  #header.olympics-header .brand-logo {width:46px; height:46px; border-radius:12px;}
  #header.olympics-header .brand-title {font-size:20px;}
  #header.olympics-header .brand-subtitle {font-size:10px; margin-top:7px;}
}
@media (prefers-reduced-motion:reduce) {
  #header.olympics-header a, #header.olympics-header button {transition:none;}
}

/* OlympPatch_002: footer and privacy page for the official olympiads. */
#footer.olympics-footer .site-footer-inner {
  padding:30px 32px 20px; border-color:#d9e1e8; border-radius:20px;
  background:linear-gradient(120deg,#fff 62%,#fffcf4);
  box-shadow:0 8px 28px rgba(20,41,67,.045);
}
#footer.olympics-footer .site-footer-top {
  grid-template-columns:minmax(0,1.8fr) minmax(0,.8fr) minmax(0,1fr); gap:24px 30px;
}
#footer.olympics-footer .site-footer-about {max-width:none; min-width:0; grid-column:auto;}
#footer.olympics-footer .site-footer-brand {
  align-items:flex-start; gap:14px; font-size:1.12rem; font-weight:750;
  line-height:1.35; color:#183452; letter-spacing:-.015em;
}
#footer.olympics-footer .site-footer-brand > span {min-width:0; overflow-wrap:break-word;}
#footer.olympics-footer img.site-footer-mark {width:48px; height:48px; border-radius:12px;}
#footer.olympics-footer .site-footer-made {display:block; margin:14px 0 0; font-size:.8rem;}
#footer.olympics-footer .site-footer-section h2 {color:#887042;}
#footer.olympics-footer .site-footer-section a {font-size:.9rem; color:#28435e;}
#footer.olympics-footer .site-footer-section a:hover,
#footer.olympics-footer .site-footer-made a:hover {color:#183452;}
#footer.olympics-footer .site-footer-organizer {
  display:flex; flex-direction:column; align-items:flex-start; gap:6px;
  margin-top:25px; padding:16px 20px; border-left:3px solid #d0a24c;
  border-radius:0 12px 12px 0; background:#fbf6e9;
}
#footer.olympics-footer .site-footer-organizer-label {
  color:#83652e; font-size:.68rem; font-weight:800;
  line-height:1.5; letter-spacing:.08em; text-transform:uppercase;
}
#footer.olympics-footer .site-footer-organizer a {
  max-width:100%; color:#183452; font-size:.92rem; font-weight:650;
  line-height:1.55; text-decoration:none; overflow-wrap:break-word;
}
#footer.olympics-footer .site-footer-organizer a:hover {text-decoration:underline; text-underline-offset:3px;}
#footer.olympics-footer a:focus-visible {outline-color:#b58a36;}
#footer.olympics-footer .site-footer-bottom {margin-top:22px; padding-top:16px; border-top-color:#e2e5e9;}
#footer.olympics-footer .site-footer-bottom p {font-size:.76rem; color:#68788b;}
#footer.olympics-footer .site-footer-bottom p:first-child {font-weight:600; color:#425a72;}
#content .olympics-privacy .privacy-hero {background:radial-gradient(circle at 92% 4%,rgba(222,178,88,.12),transparent 40%),#fff;}
#content .olympics-privacy .privacy-kicker, #content .olympics-privacy .privacy-number {color:#8b692c;}
#content .olympics-privacy .privacy-hero h1 {max-width:22ch; overflow-wrap:break-word;}
#content .olympics-privacy .privacy-hero h1 span {color:#476884;}
#content .olympics-privacy .privacy-toc {top:245px;}
#content .olympics-privacy .privacy-card {scroll-margin-top:245px;}
#content .olympics-privacy .privacy-note {border-left-color:#d0a24c; background:#fff8e9;}
#content .olympics-privacy .privacy-consent-links {display:grid; gap:10px; margin:18px 0;}
#content .olympics-privacy .privacy-consent-links a {
  display:flex; flex-direction:column; gap:4px; padding:15px 18px;
  border:1px solid #dce3e9; border-radius:12px; background:#f7f9fb;
  color:#183452; text-decoration:none; overflow-wrap:break-word;
}
#content .olympics-privacy .privacy-consent-links a:hover {border-color:#cba760; background:#fff8e9;}
#content .olympics-privacy .privacy-consent-links a:focus-visible {outline:2px solid #b58a36; outline-offset:3px;}
#content .olympics-privacy .privacy-consent-links strong {font-size:.98rem;}
#content .olympics-privacy .privacy-consent-links span {color:#5a7084; font-size:.86rem; line-height:1.5;}
@media (max-width:900px) {
  #footer.olympics-footer .site-footer-top {grid-template-columns:repeat(2,minmax(0,1fr));}
  #footer.olympics-footer .site-footer-about {grid-column:1 / -1;}
}
@media (max-width:760px) {
  #footer.olympics-footer .site-footer-inner {padding:24px 20px 18px; border-radius:17px;}
  #footer.olympics-footer .site-footer-top {gap:23px 18px;}
  #footer.olympics-footer .site-footer-section:last-child {grid-column:auto;}
  #footer.olympics-footer .site-footer-brand {font-size:1.02rem; gap:12px;}
  #footer.olympics-footer .site-footer-organizer {padding:14px 15px; margin-top:22px;}
  #footer.olympics-footer .site-footer-organizer a {font-size:.86rem;}
  #footer.olympics-footer .site-footer-bottom {flex-direction:column; gap:7px;}
  #content .olympics-privacy .privacy-card {scroll-margin-top:20px;}
}
@media (max-width:380px) {
  #footer.olympics-footer .site-footer-top {grid-template-columns:minmax(0,1fr); gap:22px;}
  #footer.olympics-footer .site-footer-about {grid-column:auto;}
  #footer.olympics-footer .site-footer-brand {font-size:.98rem;}
  #footer.olympics-footer .site-footer-inner {padding:22px 17px 18px;}
}
@media (max-width:420px) {
  #content .olympics-privacy .privacy-hero {padding:22px 18px;}
  #content .olympics-privacy .privacy-hero h1 {font-size:1.55rem;}
}

/* OlympPatch_007 — participant profile */
#content .olympics-profile-edit { max-width: 1040px; margin: 0 auto; color: #17334a; }
#content .olympics-profile-edit [hidden] { display: none !important; }
#content .ope-heading { margin-bottom: 24px; }
#content .ope-eyebrow { display: block; color: #16766f; font-size: 12px; font-weight: 800; letter-spacing: .13em; text-transform: uppercase; }
#content .ope-heading h1 { margin: 8px 0 10px; font-size: clamp(28px, 4vw, 40px); line-height: 1.18; }
#content .ope-heading p { margin: 0; color: #506477; line-height: 1.6; }
#content .olympics-profile-edit fieldset { min-width: 0; padding: 24px; margin: 24px 0; border: 1px solid #d6e1e8; border-radius: 16px; background: #fff; box-shadow: 0 10px 30px rgba(21, 51, 74, .04); }
#content .olympics-profile-edit legend { padding: 0 10px; font-size: 19px; font-weight: 800; color: #17334a; }
#content .ope-section-help { margin: 0 0 20px; color: #506477; font-size: 14px; line-height: 1.6; }
#content .ope-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 22px 24px; }
#content .ope-field { min-width: 0; }
#content .ope-wide { grid-column: 1 / -1; }
#content .ope-field label { display: block; margin-bottom: 8px; font-size: 14px; line-height: 1.5; font-weight: 700; }
#content .ope-field label span { font-weight: 400; color: #506477; }
#content .ope-field input, #content .ope-field select { box-sizing: border-box; display: block; width: 100%; max-width: 100%; min-width: 0; min-height: 46px; padding: 11px 12px; margin: 0; border: 1px solid #b8cad7; border-radius: 9px; color: #17334a; background: #fff; font-family: inherit; font-size: 16px; line-height: 1.4; }
#content .ope-field input:focus, #content .ope-field select:focus { outline: 3px solid rgba(22, 118, 111, .18); outline-offset: 1px; border-color: #16766f; }
#content .ope-field small { display: block; margin-top: 7px; color: #506477; font-size: 13px; line-height: 1.6; overflow-wrap: anywhere; }
#content .ope-mail-help { margin: 20px 0 0; padding-left: 12px; border-left: 3px solid #badbd6; color: #506477; font-size: 13px; line-height: 1.6; }
#content .ope-notice, #content .ope-error { padding: 16px 18px; margin: 16px 0; border-radius: 10px; font-size: 14px; line-height: 1.7; overflow-wrap: anywhere; }
#content .ope-notice { background: #eaf5f3; border: 1px solid #beded7; color: #174f48; }
#content .ope-error { background: #fff2ef; border: 1px solid #e5c0b7; color: #8d3024; }
#content .ope-error ul { margin: 8px 0 0; padding-left: 22px; }
#content .ope-error p { margin: 8px 0 0; }
#content .ope-actions { display: flex; align-items: center; flex-wrap: wrap; gap: 16px 24px; margin: 24px 0 12px; }
#content .ope-actions button { margin: 0; padding: 13px 22px; border: 0; border-radius: 10px; background: #17334a; color: #fff; font-size: 15px; font-weight: 700; font-family: inherit; line-height: 1.5; cursor: pointer; }
#content .ope-actions button:hover { background: #245472; }
#content .ope-actions button:focus-visible, #content .ope-retry:focus-visible { outline: 3px solid #16766f; outline-offset: 3px; }
#content .ope-actions a, #content .ope-retry { color: #135a79; font-size: 14px; text-decoration: underline; text-underline-offset: 3px; }
#content .ope-password-link { margin-left: auto; }
#content .ope-retry { margin-top: 8px; padding: 0; border: 0; background: transparent; cursor: pointer; font-family: inherit; }
@media (max-width: 680px) {
  #content .olympics-profile-edit fieldset { padding: 16px; border-radius: 12px; }
  #content .ope-grid { grid-template-columns: minmax(0, 1fr); gap: 20px; }
  #content .ope-actions button { width: 100%; }
  #content .ope-password-link { margin-left: 0; }
}

/* OlympPatch_008 — light header, clearer announcement and compact footer. */
#header.olympics-header {
  background:linear-gradient(110deg,#fff 12%,#fffdf7 56%,#fff5d9 100%);
  border-bottom:1px solid #e9dfc5; box-shadow:0 4px 18px rgba(48,57,63,.055);
}
#header.olympics-header::after {height:0; background:none;}
#header.olympics-header .hdr-wrap {
  box-sizing:border-box; display:grid; grid-template-columns:minmax(0,1fr) auto;
  width:calc(100% - 64px); max-width:1450px; margin:0 auto; padding:24px 0;
  align-items:center; gap:36px; flex-wrap:nowrap;
}
#header.olympics-header .hdr-left {padding:0; min-width:0;}
#header.olympics-header .brand {gap:27px;}
#header.olympics-header .brand-logo {width:105px; height:105px; border-radius:26px;}
#header.olympics-header .brand-title {color:#183452; font-size:42.5px; line-height:1.17;}
#header.olympics-header .brand-title-line + .brand-title-line {color:#7b6331; font-size:.84em;}
#header.olympics-header .brand-subtitle {color:#637182; font-size:15px; margin-top:12px;}
#header.olympics-header .hdr-right {
  display:grid; grid-template-columns:auto auto; grid-template-rows:auto auto;
  width:auto; padding:0; margin:0; border:0; gap:14px 10px; justify-content:end;
}
#header.olympics-header .static-links {grid-column:1 / -1; grid-row:2; margin:0; gap:8px; justify-content:flex-end;}
#header.olympics-header .header-message-link {grid-column:1; grid-row:1; justify-self:end;
  width:50px; height:50px; color:#28435e; background:rgba(255,255,255,.8); border-color:#d9d7ce;}
#header.olympics-header .header-message-link:hover {background:#fff4d6;}
#header.olympics-header .dropdown {grid-column:2; grid-row:1; justify-self:end;}
#header.olympics-header .auth-actions {grid-column:1 / -1; grid-row:1; justify-self:end; border:0; padding:0; gap:8px;}
#header.olympics-header .pill {min-height:50px; padding:11px 19px; font-size:1.175rem;
  color:#28435e !important; border-color:transparent; background:transparent;}
#header.olympics-header .pill:hover {color:#183452 !important; background:#fff4d6; border-color:#e5d6b4;}
#header.olympics-header .static-links .pill.is-current {color:#674e22 !important;
  background:#fff2cf; border-color:#d8ba76; box-shadow:none;}
#header.olympics-header .auth-actions .pill-primary {color:#183452 !important; background:#f5dca2; border-color:#ddbe7d;}
#header.olympics-header .auth-actions .pill-primary:hover {color:#183452 !important; background:#efd08e; border-color:#cbaa62;}
#header.olympics-header .dropdown > .btn {min-height:50px; padding:9px 14px; color:#183452;
  background:rgba(255,255,255,.85); border-color:#d9d7ce; font-size:1.1625rem; box-shadow:none;}
#header.olympics-header .dropdown > .btn:hover {background:#fff4d6;}
#header.olympics-header .avatar {background:#f7e6be; color:#674e22;}
#header.olympics-header .badge {font-size:15px;}
#header.olympics-header .header-message-count {font-size:.8625rem; min-width:25px; height:25px;}
#header.olympics-header .menu-item {font-size:1.09375rem;}
#header.olympics-header .mobile-menu-user {font-size:1.0375rem;}
#header.olympics-header .badge, #header.olympics-header .header-message-count {background:#f0d08f; color:#183452;}
#header.olympics-header a:focus-visible, #header.olympics-header button:focus-visible {outline-color:#9a762c;}
#header.olympics-header .mobile-menu-toggle {font-size:1.1rem; color:#183452; background:#fff; border-color:#d9d7ce;}
#header.olympics-header .mobile-menu-toggle[aria-expanded="true"] {background:#fff2cf; border-color:#d8ba76;}
#header.olympics-header .mobile-menu {background:#fffdf7; border-color:#e5dcc6;}
#header.olympics-header .mobile-menu a {color:#28435e; font-size:1.1875rem;}
#header.olympics-header .mobile-menu a.is-current {color:#674e22 !important; background:#fff2cf; border-color:#d8ba76;}
#header.olympics-header .mobile-menu .mobile-menu-danger {color:#b43832;}

#content .olympics-announcement {font-size:20px;}
#content .olympics-announcement .oa-hero {grid-template-columns:minmax(0,1.6fr) minmax(0,1fr); gap:30px 36px;}
#content .olympics-announcement h1 {font-size:clamp(1.65rem,2.45vw,2rem); line-height:1.23; letter-spacing:-.02em;}
#content .olympics-announcement h1 .oa-title-line {display:block; color:#142943;}
#content .olympics-announcement h1 .oa-title-line + .oa-title-line {color:#46627e;}
#content .olympics-announcement .oa-eyebrow {font-size:.95rem;}
#content .olympics-announcement .oa-stage {font-size:1.0875rem;}
#content .olympics-announcement .oa-lead {font-size:1.25rem;}
#content .olympics-announcement .oa-participation-title {font-size:1.15rem;}
#content .olympics-announcement .oa-participation-steps {font-size:1.125rem;}
#content .olympics-announcement .oa-participation-copy {font-size:1.1625rem;}
#content .olympics-announcement .oa-all-contests {font-size:1.0875rem;}
#content .olympics-announcement a.oa-button {font-size:1.1375rem; padding:13px 19px; min-height:54px;}
#content .olympics-announcement .oa-event-label {font-size:.9125rem;}
#content .olympics-announcement .oa-date {gap:22px; flex-wrap:wrap;}
#content .olympics-announcement .oa-day {font-size:8.125rem;}
#content .olympics-announcement .oa-month {font-size:2.0625rem;}
#content .olympics-announcement .oa-year {font-size:1.25rem;}
#content .olympics-announcement .oa-facts dt {font-size:1.1rem;}
#content .olympics-announcement .oa-facts dd {font-size:1.4rem;}
#content .olympics-announcement .oa-note {font-size:1.0625rem;}
#content .olympics-announcement .oa-note-mark {font-size:.9375rem; width:25px; height:25px;}

#content .olympics-faq .pf-hero {display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1.05fr); align-items:center; gap:24px 38px;}
#content .olympics-faq .pf-hero-copy {max-width:none; min-width:0;}
#content .olympics-faq .pf-kicker {font-size:.89rem; max-width:none; margin:0 0 12px; color:#82642f;}
#content .olympics-faq .pf-hero h1 {margin:0;}
#content .olympics-faq .pf-hero-description {margin:0; padding:0; min-width:0; color:#526b85; font-size:1.25rem; line-height:1.55;}
#content .olympics-faq .pf-rules strong {font-size:1.25rem;}
#content .olympics-faq .pf-rules p {font-size:1.175rem;}
#content .olympics-faq .pf-integrity-intro {font-size:1.25rem;}
#content .olympics-faq .pf-integrity-label {font-size:.9625rem;}
#content .olympics-faq .pf-integrity-note {font-size:1.1125rem;}
#content .olympics-faq .pf-integrity-review {margin:20px 0 0; padding:0; font-size:1.175rem; line-height:1.65; color:#364c63;}
#content .olympics-faq .pf-flow small {font-size:1.1625rem;}
#content .olympics-faq .pf-flow strong {font-size:1.275rem;}
#content .olympics-faq .pf-answer {font-size:1.2rem;}
#content .olympics-faq .pf-access-guide {margin:0 0 24px; padding:26px; border:1px solid #e3dccd; border-radius:14px; background:#fff;}
#content .olympics-faq .pf-access-guide h3 {margin:0 0 12px; color:#183452; font-size:1.4rem; line-height:1.35;}
#content .olympics-faq .pf-access-guide > p {margin:0; padding:0; color:#506477; font-size:1.125rem; line-height:1.65;}
#content .olympics-faq .pf-access-modes {display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:16px; margin:22px 0;}
#content .olympics-faq .pf-access-modes article {min-width:0; padding:20px; background:#f8f9fb; border:1px solid #dce3e9; border-radius:10px;}
#content .olympics-faq .pf-access-modes h4 {margin:0 0 12px; color:#183452; font-size:1.1875rem; line-height:1.4;}
#content .olympics-faq .pf-access-modes p {margin:0; padding:0; color:#506477; font-size:1.075rem; line-height:1.65;}
#content .olympics-faq .pf-access-guide .pf-access-profile {padding-top:18px; border-top:1px solid #e3dccd;}

#footer.olympics-footer {max-width:none; width:100%; margin:24px 0 0; padding:26px 32px 20px;
  border-top:1px solid #dfe4e8; background:linear-gradient(110deg,#f2f5f7,#faf9f4); line-height:1.35 !important;}
#footer.olympics-footer .site-footer-inner {max-width:1450px; padding:0; border:0; border-radius:0; background:transparent; box-shadow:none;}
#footer.olympics-footer .site-footer-top {grid-template-columns:minmax(0,1.7fr) minmax(0,.9fr) minmax(0,1fr); gap:22px 36px;}
#footer.olympics-footer .site-footer-brand {font-size:1.1rem; line-height:1.25; align-items:center; gap:14px;}
#footer.olympics-footer img.site-footer-mark {width:42px; height:42px; border-radius:10px;}
#footer.olympics-footer .site-footer-made {margin-top:9px; font-size:.875rem; line-height:1.35;}
#footer.olympics-footer .site-footer-section {gap:7px;}
#footer.olympics-footer .site-footer-section h2 {margin:0 0 3px; font-size:.75rem;}
#footer.olympics-footer .site-footer-section a {font-size:.9rem; line-height:1.35;}
#footer.olympics-footer .site-footer-bottom {margin-top:18px; padding-top:14px; border-top-color:#dfe4e8; gap:12px 24px;}
#footer.olympics-footer .site-footer-bottom p {font-size:.8125rem; line-height:1.35;}

@media (min-width:761px) and (max-width:1240px) {
  #header.olympics-header .hdr-wrap {gap:24px;}
  #header.olympics-header .brand {gap:20px;}
  #header.olympics-header .brand-logo {width:90px; height:90px;}
  #header.olympics-header .brand-title {font-size:34px;}
}
@media (min-width:761px) and (max-width:1000px) {
  #header.olympics-header .hdr-wrap {grid-template-columns:minmax(0,1fr); gap:18px; padding:22px 0;}
  #header.olympics-header .hdr-right {justify-self:end;}
}
@media (max-width:1000px) {
  #content .olympics-announcement .oa-hero {grid-template-columns:minmax(0,1fr); padding:30px;}
  #content .olympics-announcement .oa-event {max-width:none;}
  #content .olympics-faq .pf-access-modes {grid-template-columns:minmax(0,1fr);}
}
@media (max-width:760px) {
  #header.olympics-header .hdr-wrap {grid-template-columns:minmax(0,1fr); width:auto; margin:0; padding:20px 16px 12px; gap:12px;}
  #header.olympics-header .brand {gap:16px; align-items:flex-start;}
  #header.olympics-header .brand-logo {width:67.5px; height:67.5px; border-radius:18px;}
  #header.olympics-header .brand-title {font-size:30px;}
  #header.olympics-header .brand-subtitle {font-size:12.5px; margin-top:10px;}
  #header.olympics-header .hdr-right {display:flex; justify-content:flex-end; min-height:0; width:100%; gap:10px; padding:0;}
  #header.olympics-header .auth-actions {margin-right:auto;}
  #header.olympics-header .auth-actions .pill {font-size:1.0375rem; padding:10px 12px; min-height:44px;}
  #header.olympics-header .header-message-link {width:44px; height:44px; margin-right:auto;}
  #header.olympics-header .mobile-menu-toggle {min-height:44px; padding:9px 12px;}
  #content .olympics-announcement .oa-hero {padding:27px 19px;}
  #content .olympics-announcement h1 {font-size:clamp(1.5rem,6vw,1.85rem);}
  #content .olympics-announcement .oa-event {padding:24px;}
  #content .olympics-announcement .oa-date {gap:16px;}
  #content .olympics-announcement .oa-day {font-size:6.875rem;}
  #content .olympics-announcement .oa-month {font-size:2rem;}
  #content .olympics-announcement .oa-note {font-size:1.025rem;}
  #content .olympics-faq .pf-hero {grid-template-columns:minmax(0,1fr); gap:18px;}
  #content .olympics-faq .pf-hero-description {font-size:1.125rem;}
  #content .olympics-faq .pf-access-guide {padding:20px 18px;}
  #content .olympics-faq .pf-access-modes article {padding:18px 16px;}
  #footer.olympics-footer {padding:24px 20px 18px;}
  #footer.olympics-footer .site-footer-top {grid-template-columns:repeat(2,minmax(0,1fr)); gap:22px 18px;}
  #footer.olympics-footer .site-footer-about {grid-column:1 / -1;}
  #footer.olympics-footer .site-footer-bottom {flex-direction:column; gap:8px;}
}
@media (max-width:360px) {
  #header.olympics-header .brand {gap:13px;}
  #header.olympics-header .brand-logo {width:57.5px; height:57.5px; border-radius:15px;}
  #header.olympics-header .brand-title {font-size:25px;}
}
@media (max-width:420px) {
  #footer.olympics-footer .site-footer-top {grid-template-columns:minmax(0,1fr); gap:20px;}
  #footer.olympics-footer .site-footer-about {grid-column:auto;}
  #content .olympics-announcement .oa-event {padding:20px 18px;}
  #content .olympics-announcement .oa-facts > div {flex-wrap:wrap; gap:3px 12px;}
}

/* OlympPatch_009: olympiad standings, observers and filters. */
.olympics-result-filters { display:grid; grid-template-columns:1.15fr 1fr 1.55fr .65fr auto; gap:12px; align-items:end; margin:20px 0 12px; padding:20px; background:linear-gradient(110deg,#fff,#fff9e8); border:1px solid #e9dfc5; border-radius:16px; }
.olympics-result-filters label { display:flex; flex-direction:column; gap:7px; min-width:0; font-size:14px; font-weight:650; color:#374151; }
.olympics-result-filters input,.olympics-result-filters select { box-sizing:border-box; width:100%; min-width:0; height:43px; border:1px solid #d3d8df; border-radius:9px; background:#fff; color:#1f2937; padding:8px 10px; font:inherit; font-weight:400; }
.olympics-result-filters button,.result-pagination button,.observer-page-heading button,.observer-link-card button { border:1px solid #d3d8df; border-radius:9px; background:#fff; color:#253247; padding:11px 14px; cursor:pointer; font-size:14px; font-weight:600; min-height:43px; }
.olympics-result-filters input:focus,.olympics-result-filters select:focus,.observer-link-card input:focus { outline:2px solid #bd882a; outline-offset:2px; }
.result-filter-count { font-weight:650; color:#374151; margin:12px 0; }
.result-snapshot-note { color:#596579; font-size:14px; line-height:1.6; margin:12px 0; }
.result-pagination { display:flex; justify-content:center; align-items:center; gap:16px; margin:16px 0 24px; }
.result-pagination button:disabled { opacity:.45; cursor:default; }
.result-pagination[hidden],.standings-participants tr[hidden] { display:none!important; }
.standings-participants .standings-name { min-width:235px; }
.standings-participants .standings-nickname { min-width:105px; }
.standings-participants .standings-region { min-width:105px; }
.standings-participants .standings-district { min-width:150px; max-width:210px; white-space:normal; }
.standings-participants .standings-institution { min-width:240px; max-width:350px; white-space:normal; }
.standings-participants .standings-course { min-width:65px; }
.standings-tools button.standings-tool { cursor:pointer; font-family:inherit; }
.observer-page-heading { display:flex; justify-content:space-between; align-items:center; gap:24px; }
.observer-page-heading h1 { margin:5px 0 10px; font-size:30px; line-height:1.25; }
.observer-page-heading p { margin:0 0 8px; }
.observer-eyebrow { color:#8b681f; font-size:12px; font-weight:700; letter-spacing:.08em; text-transform:uppercase; }
.observer-before-start { background:#fff8dc; border:1px solid #ead49a; border-radius:12px; padding:16px 20px; }
.observer-table { min-width:1200px; }
.observer-table th,.observer-table td { padding:10px 12px; vertical-align:top; }
.observer-table .observer-name { min-width:235px; max-width:320px; }
.observer-table .observer-school { min-width:250px; max-width:370px; white-space:normal; }
.observer-status { display:inline-block; border-radius:7px; padding:5px 8px; font-size:12px; line-height:1.35; min-width:95px; }
.observer-status.is-accepted { background:#e6f5eb; color:#21683c; }
.observer-status.is-pending { background:#fff1d3; color:#875b10; }
.observer-total { font-weight:700; background:#fff9e8; }
.observer-settings { scroll-margin-top:20px; }
.observer-settings > p { line-height:1.6; }
.observer-link-grid { display:grid; grid-template-columns:1fr 1fr; gap:20px; }
.observer-link-card { background:#f9fafb; border:1px solid #e0e5eb; border-radius:14px; padding:22px; min-width:0; }
.observer-link-card h3 { font-size:19px; margin:0 0 8px; }
.observer-link-state { color:#6b7280; font-size:14px; }
.observer-link-card label { display:block; margin:16px 0 8px; font-size:14px; font-weight:650; }
.observer-link-card input { display:block; box-sizing:border-box; width:100%; border:1px solid #d3d8df; border-radius:8px; background:#fff; padding:10px; margin-top:7px; color:#253247; font-size:14px; }
.observer-link-card small { display:block; line-height:1.5; color:#596579; font-size:13px; }
.observer-link-actions { display:flex; flex-wrap:wrap; gap:8px; margin-top:18px; }
@media(max-width:1100px) { .olympics-result-filters { grid-template-columns:1fr 1fr; } .olympics-result-filters .result-search { grid-column:1/-1; } .olympics-result-filters button { justify-self:start; } }
@media(max-width:760px) { .observer-link-grid { grid-template-columns:1fr; } .observer-page-heading { flex-direction:column; align-items:flex-start; gap:10px; } .observer-page-heading h1 { font-size:25px; } .result-pagination { gap:10px; font-size:13px; } }
@media(max-width:480px) { .olympics-result-filters { grid-template-columns:1fr; padding:16px; } .olympics-result-filters .result-search { grid-column:auto; } .observer-link-card { padding:16px; } }
/* Override the legacy fixed table layout with widths for all five profile columns. */
#content .standings-scroll table.stand.standings-details-open { min-width:calc(var(--standings-min-width) + 877px); }
#content .standings-scroll table.stand .standings-nickname { width:115px; }
#content .standings-scroll table.stand .standings-region { width:115px; }
#content .standings-scroll table.stand .standings-district { width:190px; }
#content .standings-scroll table.stand .standings-institution { width:300px; }
#content .standings-scroll table.stand .standings-course { width:75px; }
#content .standings-scroll table.stand.observer-table { min-width:calc(1350px + var(--observer-problem-width,0px)); }
#content .standings-scroll table.stand.observer-table .observer-status-column { width:135px; }
#content .standings-scroll table.stand.observer-roster tr > :first-child { width:240px; left:0; text-align:left; padding-left:12px; }
#content .standings-scroll table.stand.observer-roster tr > :nth-child(2) { position:static; left:auto; padding-left:4px; box-shadow:none; }
@media(max-width:680px) {
  #content .standings-scroll table.stand.standings-participants .standings-name { width:180px; }
  #content .standings-scroll table.stand.observer-roster tr > :first-child { width:180px; }
}

/* OlympPatch_011: fit the rank heading and keep the pinned name aligned. */
#content .standings-scroll table.stand.standings-participants:not(.observer-roster) tr > :first-child {
  width:72px; min-width:72px; white-space:nowrap; overflow-wrap:normal;
}
#content .standings-scroll table.stand.standings-participants:not(.standings-details-open):not(.observer-roster) {
  min-width:calc(var(--standings-min-width) + 27px);
}
