.overview-shell{max-width:1320px;margin:auto;padding:28px}
.overview-heading{display:flex;justify-content:space-between;gap:20px;align-items:end}
.overview-heading h1{font-size:27px;margin:5px 0 7px}
.overview-heading p{margin:0;color:#687c85;font-size:13px}
.overview-legend{display:flex;gap:18px;color:#5a6d77;font-size:12px;white-space:nowrap}
.overview-legend span{display:inline-flex;gap:6px;align-items:center}
.mark{width:9px;height:9px;border-radius:50%;display:inline-block;background:#9bafb8}
.mark.confirmed{background:#17617a}
.overview-controls{display:inline-flex;gap:4px;background:#e8eff2;padding:4px;border-radius:10px;margin:24px 0 14px}
.overview-controls button{border:0;background:transparent;color:#566b75;padding:9px 15px;border-radius:7px;font-weight:700;font-size:12px}
.overview-controls button.active{background:#fff;color:#155a71;box-shadow:0 1px 4px #193a481b}
.overview-secondary{display:flex;align-items:center;gap:9px;margin:0 0 15px;flex-wrap:wrap}.overview-secondary .save-status{margin-left:auto}.overview-secondary .checkline{margin-left:9px}
.overview-summary{color:#49616d;font-size:12px;margin-bottom:17px}
.overview-months{display:block}
.overview-pair{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px;margin-bottom:20px}
.overview-pair-head{display:none}
.overview-month{background:#fff;border:1px solid #d9e4e8;border-radius:12px;padding:17px;break-inside:avoid}
.overview-month h2{font-size:18px;margin:0 0 13px;color:#244d5f}
.overview-month>summary{font-size:18px;font-weight:800;color:#244d5f;cursor:pointer;margin-bottom:12px;list-style-position:inside}.overview-month:not([open])>summary{margin-bottom:0}.overview-month[open]{padding-bottom:17px}.overview-month:not([open]){align-self:start;background:#f9fbfc}
.overview-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:3px}
.overview-weekday{text-align:center;font-size:11px;font-weight:800;color:#738790;padding:7px 0}
.overview-weekday.sat{color:#246aab}.overview-weekday.sun{color:#b55260}
.overview-day{min-width:0;min-height:106px;border:1px solid #e4eaed;border-radius:5px;padding:6px;background:#fff}
.overview-day.empty{background:#f7f9fa;border-color:#f2f4f5}
.overview-day.sat{background:#f5f9ff}.overview-day.sun{background:#fff6f6}
.overview-day.busy{box-shadow:inset 0 3px #a4c6d2}
.overview-day.consecutive{box-shadow:inset 0 3px #17617a}
.overview-day .number{font-size:12px;font-weight:800;color:#485b64}
.overview-day.sat .number{color:#246aab}.overview-day.sun .number{color:#b55260}
.overview-day .exam-label{display:block;margin-top:5px;padding:4px 5px;border-radius:4px;background:#eef4f6;color:#255b70;font-size:10px;font-weight:700;line-height:1.3;overflow-wrap:anywhere}
.overview-day .exam-label.candidate{background:#f1f3f4;color:#667981}
.overview-day .exam-label small{font-size:9px;font-weight:400}
.overview-day.has-exams{cursor:pointer}.overview-day.has-exams:hover{outline:2px solid #4c93aa}.overview-day .hidden-candidates{display:block;margin-top:5px;color:#8b6a40;font-size:9px}.day-exam{border:1px solid #dce7eb;border-radius:9px;padding:13px;margin-bottom:10px}.day-exam h3{font-size:14px;margin:0}.day-exam p{font-size:11px;color:#5d727d;line-height:1.5}.day-exam .state{font-size:10px;font-weight:700;color:#17617a}.day-exam .state.candidate{color:#7b8c93}.day-exam button{margin-top:8px}
.overview-empty{background:#fff;border:1px dashed #c7d9df;padding:50px;text-align:center;color:#66808a;border-radius:12px}
@media(max-width:850px){.overview-pair{grid-template-columns:1fr}}
@media(max-width:600px){.overview-shell{padding:12px}.overview-heading{display:block}.overview-legend{margin-top:12px}.overview-day{min-height:72px;padding:3px}.overview-day .exam-label{font-size:8px;padding:2px}.overview-day .exam-label small{display:none}}
@media print{
  @page{size:A4 landscape;margin:8mm}
  body{background:#fff;print-color-adjust:exact;-webkit-print-color-adjust:exact}
  .topbar,.overview-controls,.overview-secondary,.overview-heading,.overview-summary,.overlay,.drawer{display:none!important}
  .overview-shell{max-width:none;padding:0}
  .overview-pair{grid-template-columns:repeat(2,minmax(0,1fr));gap:4mm;margin:0;break-inside:avoid;page-break-inside:avoid;break-after:page;page-break-after:always}
  .overview-pair:last-child{break-after:auto;page-break-after:auto}
  .overview-pair-head{display:block;grid-column:1/-1;font-size:11pt;font-weight:800;color:#244d5f;border-bottom:1px solid #9eb3bd;padding-bottom:2mm}
  .overview-month,.overview-month[open],.overview-month:not([open]){display:block;min-width:0;padding:2.5mm;border-radius:0;background:#fff;box-shadow:none;align-self:stretch}
  .overview-month>summary{font-size:11pt;list-style:none;margin:0 0 2mm}
  .overview-month>summary::marker{content:""}
  .overview-month>summary small{font-size:7pt}
  .overview-grid{gap:.6mm}
  .overview-weekday{font-size:7pt;padding:1mm 0}
  .overview-day{min-height:21mm;padding:1mm;border-radius:0}
  .overview-day .number{font-size:7.5pt}
  .overview-day .exam-label{font-size:6.3pt;line-height:1.16;padding:.7mm;margin-top:.8mm;border-radius:0}
  .overview-day .exam-label small{font-size:5.5pt}
  .overview-day .hidden-candidates{font-size:6pt;margin-top:.8mm}
}
