/* ===== Olympiad demo tasks — classic academic paper style ===== */
:root{
  --doc-bg:#f7f5ef;
  --doc-paper:#ffffff;
  --doc-text:#1f1e1c;
  --doc-muted:#6b6a63;
  --doc-border:#dcd8cc;
  --doc-accent:#7a1f1f;
  --doc-accent-soft:#f3e6e6;
  --doc-serif:Georgia,'Times New Roman',Times,'PT Serif',serif;
  --doc-mono:SFMono-Regular,Menlo,Consolas,'Courier New',monospace;
}
*{box-sizing:border-box;margin:0;padding:0;}
body{
  background:var(--doc-bg);
  color:var(--doc-text);
  font-family:var(--doc-serif);
  line-height:1.65;
  font-size:16px;
}
a{ color:var(--doc-accent); }

/* ---------- TOP BAR ---------- */
.doc-topbar{
  border-bottom:1px solid var(--doc-border);
  background:var(--doc-paper);
}
.doc-topbar-inner{
  max-width:860px;
  margin:0 auto;
  padding:16px 24px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:16px;
  font-size:14px;
}
.doc-topbar-brand{
  font-weight:700;
  letter-spacing:0.5px;
  color:var(--doc-text);
}
.doc-topbar a{
  text-decoration:none;
  font-weight:600;
}
.doc-topbar a:hover{ text-decoration:underline; }

/* ---------- COVER ---------- */
.doc-cover{
  max-width:860px;
  margin:0 auto;
  padding:56px 24px 40px;
  text-align:center;
  border-bottom:3px double var(--doc-border);
}
.doc-cover-kicker{
  font-size:13px;
  font-weight:700;
  letter-spacing:1.5px;
  text-transform:uppercase;
  color:var(--doc-accent);
  margin-bottom:14px;
}
.doc-cover h1{
  font-size:clamp(26px,4vw,36px);
  font-weight:700;
  margin-bottom:10px;
  letter-spacing:-0.3px;
}
.doc-cover-sub{
  font-size:15.5px;
  color:var(--doc-muted);
  margin-bottom:22px;
}
.doc-cover-meta{
  font-size:13.5px;
  color:var(--doc-muted);
  font-style:italic;
}
.doc-notice{
  max-width:640px;
  margin:26px auto 0;
  padding:14px 20px;
  border:1px solid var(--doc-border);
  background:var(--doc-accent-soft);
  border-radius:4px;
  font-size:13.5px;
  color:#4a1414;
  text-align:left;
  line-height:1.55;
}

/* ---------- TOC ---------- */
.doc-toc{
  max-width:860px;
  margin:0 auto;
  padding:36px 24px 44px;
  border-bottom:1px solid var(--doc-border);
}
.doc-toc h2{
  font-size:19px;
  margin-bottom:18px;
  letter-spacing:0.2px;
}
.doc-toc-level{
  margin-bottom:20px;
}
.doc-toc-level h3{
  font-size:14.5px;
  font-weight:700;
  color:var(--doc-accent);
  margin-bottom:8px;
  text-transform:uppercase;
  letter-spacing:0.4px;
}
.doc-toc-list{
  columns:2;
  column-gap:32px;
  list-style:none;
  font-size:14.5px;
}
.doc-toc-list li{
  break-inside:avoid;
  margin-bottom:6px;
}
.doc-toc-list a{ text-decoration:none; }
.doc-toc-list a:hover{ text-decoration:underline; }
@media (max-width:600px){
  .doc-toc-list{ columns:1; }
}

/* ---------- LEVEL SECTIONS ---------- */
.doc-level{
  max-width:860px;
  margin:0 auto;
  padding:44px 24px 8px;
}
.doc-level-head{
  margin-bottom:30px;
  padding-bottom:14px;
  border-bottom:2px solid var(--doc-text);
}
.doc-level-head h2{
  font-size:22px;
  font-weight:700;
}
.doc-level-head p{
  font-size:14px;
  color:var(--doc-muted);
  margin-top:6px;
}

/* ---------- PROBLEM ---------- */
.problem{
  background:var(--doc-paper);
  border:1px solid var(--doc-border);
  border-radius:3px;
  padding:28px 30px 30px;
  margin-bottom:28px;
}
.problem-head{
  display:flex;
  align-items:baseline;
  gap:10px;
  flex-wrap:wrap;
  margin-bottom:4px;
}
.problem-num{
  font-size:13px;
  font-weight:700;
  color:var(--doc-accent);
  letter-spacing:0.3px;
}
.problem-title{
  font-size:19px;
  font-weight:700;
}
.problem-meta{
  font-size:12.5px;
  color:var(--doc-muted);
  font-style:italic;
  margin-bottom:18px;
  padding-bottom:14px;
  border-bottom:1px solid var(--doc-border);
}
.problem-section{
  margin-bottom:14px;
}
.problem-section h4{
  font-size:13px;
  font-weight:700;
  text-transform:uppercase;
  letter-spacing:0.4px;
  color:var(--doc-text);
  margin-bottom:5px;
}
.problem-section p{
  font-size:15px;
  color:var(--doc-text);
}
.problem-example{
  margin-top:18px;
}
.problem-example h4{
  font-size:13px;
  font-weight:700;
  text-transform:uppercase;
  letter-spacing:0.4px;
  margin-bottom:8px;
}
.example-io{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:14px;
}
.example-io h5{
  font-size:12px;
  font-weight:700;
  color:var(--doc-muted);
  margin-bottom:4px;
  font-family:var(--doc-serif);
}
.example-io pre{
  background:#fbfaf6;
  border:1px solid var(--doc-border);
  border-radius:3px;
  padding:10px 14px;
  font-family:var(--doc-mono);
  font-size:13.5px;
  line-height:1.6;
  overflow-x:auto;
  white-space:pre;
}
.problem-note{
  margin-top:12px;
  font-size:13.5px;
  color:var(--doc-muted);
  font-style:italic;
}
@media (max-width:600px){
  .example-io{ grid-template-columns:1fr; }
  .problem{ padding:22px 18px 24px; }
}

/* ---------- FOOTER ---------- */
.doc-footer{
  max-width:860px;
  margin:0 auto;
  padding:30px 24px 60px;
  text-align:center;
  font-size:13px;
  color:var(--doc-muted);
}

/* ---------- PRINT ---------- */
@media print{
  .doc-topbar, .doc-toc{ display:none; }
  body{ background:#fff; }
  .problem{ break-inside:avoid; border:1px solid #ccc; }
  .doc-level{ padding-top:10px; }
}
