:root{color-scheme:light}*{box-sizing:border-box}body{font:15px/1.5 system-ui,Arial,sans-serif;margin:0;color:#1d2633;background:#f5f6fb}header{background:#fff;border-bottom:1px solid #e0e4ed;padding:18px 4%;display:flex;gap:18px;align-items:center;justify-content:space-between;flex-wrap:wrap}h1{font-size:20px;margin:0}h2{font-size:25px}h3{font-size:18px;margin:0 0 12px}small{display:block;font-size:12px;color:#5a6575}main,nav{max-width:1300px;padding:18px 24px;margin:auto}nav{display:flex;flex-wrap:wrap;gap:8px}section{background:#fff;border:1px solid #e2e6ee;border-radius:12px;padding:20px;margin:0 0 20px}.columns{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:16px}.row,.actions{display:flex;flex-wrap:wrap;gap:12px;align-items:end}.actions{margin:12px 0;align-items:center}.row label{flex:1;min-width:180px}label{display:grid;gap:5px;margin-bottom:10px}input,select,button,.button{font:inherit;padding:10px 12px;border:1px solid #cbd2df;border-radius:7px}input,select{width:100%;background:white;color:#1d2633;min-width:0}button,.button{display:inline-block;background:#bf1b28;color:#fff;text-decoration:none;border:0;cursor:pointer;font-weight:600}button:disabled{opacity:.5;cursor:not-allowed}.secondary{background:#edf0f6;color:#263242}.amber,.note,.amber-cell{background:#fff0cd;color:#725410}.note{padding:12px;border-radius:8px}.free{background:#e6f6ec;color:#176b40;width:100%}.selected{background:#bf1b28;color:#fff;width:100%}.busy-cell{background:#fce6e8;color:#8f2730}.off-cell{background:#eff0f3;color:#656c79}.calendar th{white-space:nowrap}.calendar td{min-width:120px;text-align:center}.scroll{overflow:auto}table{width:100%;border-collapse:collapse}th,td{text-align:left;border-bottom:1px solid #e1e5ed;padding:10px;vertical-align:top}th{background:#f2f4f9}td small{margin-top:4px}.muted{color:#5a6575}.success{padding:14px;background:#e3f4e9;color:#17633e}.error{padding:14px;background:#fce6e8;color:#98242b}.check{display:flex;align-items:center}.check input{width:auto}details{margin-top:18px}summary{cursor:pointer;font-weight:600}.signature{margin:60px auto 10px;border-top:1px solid #333;text-align:center;max-width:480px}.selection-row{padding:12px 0;display:flex;gap:14px;align-items:center;justify-content:space-between;border-bottom:1px solid #e1e5ed}.selection-row span{overflow-wrap:anywhere}.booking-controls{margin-top:20px}footer{text-align:center;color:#687181;padding:24px}.login{max-width:440px;margin:40px auto;padding:24px}[hidden]{display:none!important}@media(max-width:600px){main,nav{padding:12px}section{padding:14px}header{padding:14px}.row label{min-width:100%;}.selection-row{align-items:start}.calendar td{min-width:108px}input,select{font-size:16px}}@media print{@page{size:A4;margin:12mm}body{background:#fff;font-size:11px}header,nav,footer,.no-print{display:none!important}main{padding:0}section{border:0;padding:0}table{font-size:10px}tr{break-inside:avoid}.scroll{overflow:visible}button,.button{display:none}}
.staff-side{position:absolute;left:0;width:228px;background:#171b22;min-height:calc(100vh - 160px);padding:20px 12px;color:#b8bec8}.staff-side a{display:block;color:#fff;padding:12px;text-decoration:none;border-radius:8px;margin:4px 0}.staff-side a:hover{background:#bf1b28}.staff-main{margin-left:228px;max-width:none}body:has(.staff-side)>nav{margin-left:228px;max-width:none}.calendar th:first-child{position:sticky;left:0;z-index:2;background:#f2f4f9}.calendar thead th{position:sticky;top:0}.calendar td{min-width:128px}.calendar button+button{margin-top:5px}.selection-row button{margin:4px}.staff-main .scroll{max-height:70vh}@media(max-width:900px){.staff-side{display:none;position:static;width:100%;min-height:0}.menu-open .staff-side{display:block}.staff-main,body:has(.staff-side)>nav{margin-left:0}}@media print{.staff-side{display:none!important}.staff-main{margin-left:0}.staff-main .scroll{max-height:none}}

.status-filter{min-width:240px}.status-filter details{position:relative;background:white;border:1px solid #ccd2db;border-radius:8px;padding:10px}.status-filter .check{display:flex;margin:8px 0}.lesson-report{font-size:13px}.lesson-report td,.lesson-report th{padding:8px 10px}.lesson-report tbody tr:nth-child(even){background:#edf0f3}.lesson-report tfoot td{border-top:2px solid #444;padding-top:14px}@media print{.lesson-report tr{break-inside:avoid}.lesson-report thead{display:table-header-group}}

.lesson-dialog{border:0;border-radius:16px;width:min(680px,90vw);max-height:88vh;overflow:auto;padding:24px;color:#18212d}.lesson-dialog::backdrop{background:#0008}.lesson-dialog label{display:block;margin:14px 0}.lesson-dialog input,.lesson-dialog select,.lesson-dialog textarea{width:100%;box-sizing:border-box}.lesson-dialog textarea{min-height:80px}.lesson-dialog [hidden]{display:none!important}

.compact-grid{width:100%;overflow:visible}.compact-grid .calendar{width:100%;min-width:0!important;table-layout:fixed}.compact-grid .calendar th,.compact-grid .calendar td{min-width:0!important;padding:4px;font-size:12px;overflow-wrap:anywhere}.compact-grid .calendar button{padding:5px 2px;font-size:11px;width:100%}.compact-grid .calendar small{font-size:10px}.compact-grid .calendar th:first-child{width:70px}#weekLabel{font-size:13px}@media(max-width:600px){.compact-grid .calendar th:first-child{width:55px}}
