/* Календарь олимпиад по физике (/bvi/kalendar/, build/build_kalendar.py, 27.10.2026).
   Поверх bvi.css: шапка, полоса разделов, рамки — оттуда. Цвета событий: регистрация — серо-бирюзовая,
   отбор — бирюза, финал — морковный (docs/02: бирюза — действие, морковный — главное и предупреждения). */

.kl{--kl-reg:#8FB8B5;--kl-otbor:var(--t-mark);--kl-final:var(--c-mark);--kl-drugoe:var(--ink-2)}
:root[data-theme="dark"] .kl{--kl-reg:#4E7A77}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]) .kl{--kl-reg:#4E7A77}}

/* фильтры: липнут под полосой разделов */
.kl-f{display:flex;flex-wrap:wrap;gap:10px 16px;align-items:center;margin:0 0 26px;padding:12px 16px;border:1px solid var(--line);border-radius:12px;background:var(--panel)}
.kl-f[hidden]{display:none}
.kl-f label{display:flex;align-items:center;gap:8px;font-size:14.5px;color:var(--ink-2)}
.kl-f select{font:inherit;font-size:14.5px;color:var(--ink);background:var(--white);border:1px solid var(--line);border-radius:8px;padding:7px 10px;min-height:38px}
.kl-chk input{width:18px;height:18px;accent-color:var(--t-mark)}
.kl-sbros{font:inherit;font-size:14px;background:none;border:0;color:var(--t-text);text-decoration:underline;cursor:pointer;padding:6px}

/* «Сейчас» */
.kl-segodnya{font-weight:600;color:var(--ink)}
.kl-now-cols{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.kl-now-c{border:1px solid var(--line);border-radius:12px;padding:14px 16px;background:var(--white)}
.kl-now-c h3{margin:0 0 10px;font-size:15px;letter-spacing:.04em;text-transform:uppercase;color:var(--ink-2)}
.kl-now-l{list-style:none;margin:0;padding:0}
.kl-now-l li{display:grid;grid-template-columns:auto 1fr;gap:2px 12px;padding:9px 0;border-top:1px solid var(--line-2,var(--line))}
.kl-now-l li:first-child{border-top:0;padding-top:0}
.kl-now-l a{color:inherit;text-decoration:none}
.kl-now-l a:hover .kl-now-x{text-decoration:underline}
.kl-now-k{grid-row:span 2;align-self:start;min-width:74px;text-align:center;font-size:12.5px;font-weight:700;line-height:1.25;padding:5px 6px;border-radius:8px;background:var(--t-soft);color:var(--t-text)}
.kl-now-k.hot{background:var(--c-soft);color:var(--c-text)}
.kl-now-x{font-size:14.5px;font-weight:600}
.kl-now-m{font-size:13px;color:var(--ink-2)}
.kl-now-l .kl-none{display:block;color:var(--ink-2);font-size:14.5px;border:0}

/* весь сезон: полосы */
.kl-gantt{position:relative;border:1px solid var(--line);border-radius:12px;padding:10px 14px 12px;background:var(--white);overflow-x:auto}
.kl-row{display:grid;grid-template-columns:170px 1fr;align-items:center;min-height:24px;min-width:640px}
.kl-row[hidden]{display:none}
.kl-row+.kl-row{border-top:1px dashed var(--line-2,var(--line))}
.kl-rn{font-size:13px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;padding-right:10px}
.kl-tr{position:relative;height:22px}
.kl-months{height:20px;font-size:12px;color:var(--ink-2)}
.kl-months span{position:absolute;top:2px;padding-left:4px;border-left:1px solid var(--line)}
.kl-bar{position:absolute;top:6px;height:10px;border-radius:5px;background:var(--kl-otbor);min-width:6px}
.kl-bar:hover{outline:2px solid var(--ink);outline-offset:1px}
.kl-bar.kl-t-reg{background:var(--kl-reg);top:8px;height:6px}
.kl-bar.kl-t-final{background:var(--kl-final)}
.kl-bar.kl-t-drugoe{background:var(--kl-drugoe);top:8px;height:6px}
.kl-bar.kl-bq-o{background:repeating-linear-gradient(135deg,var(--kl-c,var(--kl-otbor)) 0 4px,transparent 4px 7px);border:1px solid var(--kl-c,var(--kl-otbor))}
.kl-bar.kl-bq-o.kl-t-final{--kl-c:var(--kl-final)}
.kl-bar.kl-bq-o.kl-t-reg{--kl-c:var(--kl-reg)}
.kl-today{position:absolute;top:8px;bottom:8px;width:0;border-left:2px solid var(--c-mark);pointer-events:none}
.kl-today span{position:absolute;top:-2px;left:4px;font-size:11.5px;font-weight:700;color:var(--c-text);background:var(--white);padding:0 3px}
.kl-lg{display:inline-block;width:18px;height:8px;border-radius:4px;vertical-align:middle;margin:0 2px 0 8px;background:var(--kl-otbor)}
.kl-lg.kl-t-reg{background:var(--kl-reg)}
.kl-lg.kl-t-final{background:var(--kl-final)}
.kl-lg-o{background:repeating-linear-gradient(135deg,var(--kl-otbor) 0 4px,transparent 4px 7px);border:1px solid var(--kl-otbor)}

/* совпадения */
.kl-sov{margin:0;padding-left:20px}
.kl-sov li{margin:0 0 6px}

/* по месяцам */
.kl-mes h3{font-size:19px;margin:26px 0 10px}
.kl-mes[hidden]{display:none}
.kl-list{list-style:none;margin:0;padding:0;border:1px solid var(--line);border-radius:12px;overflow:hidden}
.kl-ev{display:grid;grid-template-columns:62px 1fr;gap:14px;padding:14px 16px;border-top:1px solid var(--line);background:var(--white);scroll-margin-top:90px}
.kl-ev.kl-first,.kl-ev:first-child{border-top:0}
.kl-ev[hidden]{display:none}
.kl-ev:target{background:var(--t-soft)}
.kl-ev.kl-proshlo{opacity:.55}
.kl-d{text-align:center;line-height:1.1;border-radius:10px;padding:7px 0;background:var(--panel)}
.kl-d b{display:block;font-size:21px}
.kl-d span{display:block;font-size:13px;font-weight:600}
.kl-d i{display:block;font-size:12px;font-style:normal;color:var(--ink-2)}
.kl-t-final .kl-d{background:var(--c-soft);color:var(--c-text)}
.kl-t-otbor .kl-d{background:var(--t-soft);color:var(--t-text)}
.kl-d-o{background:transparent!important;border:1px dashed var(--line);color:var(--ink-2)!important}
.kl .kl-b p{margin:0 0 4px}
.kl-h{display:flex;flex-wrap:wrap;align-items:center;gap:6px 8px}
.kl-tip{font-size:11.5px;font-weight:700;letter-spacing:.05em;text-transform:uppercase;padding:2px 7px;border-radius:5px;background:var(--panel);color:var(--ink-2)}
.kl-t-otbor .kl-tip{background:var(--t-soft);color:var(--t-text)}
.kl-t-final .kl-tip{background:var(--c-soft);color:var(--c-text)}
.kl-o{font-size:16px}
.kl-lvl{font-size:12px;font-weight:600;padding:2px 7px;border-radius:6px;background:var(--t-soft);color:var(--t-text)}
.kl-lvl-0{background:var(--t-text);color:var(--on-pen)}
.kl-lvl-out{background:var(--panel);color:var(--ink-2)}
.kl-q{font-size:12px;font-weight:600;padding:2px 7px;border-radius:6px;border:1px dashed currentColor}
.kl-q-p{color:var(--c-text)}
.kl-q-o{color:var(--ink-2)}
.kl-x{font-size:15.5px}
.kl-m{font-size:14px;color:var(--ink-2)}
.kl-dayot{font-size:14px}
.kl-a{font-size:14px}
.kl-ics{font:inherit;font-size:14px;background:none;border:0;padding:0;color:var(--t-text);text-decoration:underline;cursor:pointer}
.kl-proshl{font:inherit;font-size:14.5px;background:none;border:1px solid var(--t-mark);border-radius:999px;padding:7px 14px;color:var(--t-text);cursor:pointer}
.kl-pusto{color:var(--ink-2)}

@media (max-width:720px){
  .kl-now-cols{grid-template-columns:1fr}
  .kl-row{grid-template-columns:120px 1fr}
  .kl-ev{grid-template-columns:52px 1fr;gap:10px;padding:12px}
  .kl-f{gap:8px 12px}
  .kl-f label{width:100%;justify-content:space-between}
  .kl-f .kl-chk{width:auto;justify-content:flex-start}
}
