:root{--ink:#172b4a;--muted:#526276;--line:#c7d0dc;--navy:#142c51;--head:#eaf0f8;--page:#f5f7fa;font:14px/1.4 Arial,sans-serif;color:var(--ink)}
*{box-sizing:border-box}body{margin:0;background:var(--page)}h2,h3,p{margin:0}button,select{font:inherit;color:inherit}button{cursor:pointer}button:disabled{opacity:.5;cursor:not-allowed}button:focus-visible,select:focus-visible,.scroll:focus-visible{outline:2px solid #2472cd;outline-offset:-2px}.muted{color:var(--muted)}
.bar{height:58px;display:flex;justify-content:space-between;align-items:center;padding:0 20px;background:white;border-bottom:1px solid var(--line);gap:12px}.brand{display:flex;align-items:center;gap:10px;font-size:17px;font-weight:700}.brand small{display:block;font-size:11px;font-weight:400;color:var(--muted)}.mark{width:30px;height:30px;display:grid;place-items:center;background:#ed6547;border-radius:7px;color:white;font:bold 22px Georgia,serif}.demo{font-size:12px;color:var(--muted)}
main{padding:14px 18px}.schedule{border:1px solid var(--line);background:white}.toolbar{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:8px 12px;background:#f6f8fb;border-bottom:1px solid var(--line)}.sheet-controls{display:flex;gap:10px}.sheet-controls label{display:flex;align-items:center;gap:6px;font-size:12px;font-weight:bold}select{padding:6px 8px;border:1px solid var(--line);border-radius:4px;background:white}.toolbar>.muted{font-size:12px}
.scroll{height:calc(100dvh - 161px);min-height:260px;overflow:auto;overscroll-behavior:contain}#sheet{width:max-content}.day-block{display:flex;align-items:flex-start;gap:34px;margin-bottom:24px}.sheet-table{table-layout:fixed;width:1108px;border-spacing:0;border-collapse:separate;color:#172b4a;background:white}.sheet-table td,.sheet-table th{border-right:1px solid var(--line);border-bottom:1px solid var(--line);padding:0 5px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.letters th{height:23px;font-size:11px;font-weight:400;background:#f6f7f8;text-align:center}.head-row th{height:32px;background:var(--head);font-size:15px;font-weight:700;text-align:center}.sheet-table .date-cell{background:var(--navy);color:white;vertical-align:middle;white-space:normal;font-size:14px}.date-cell span{display:block}.sheet-table .mentor-cell{font-size:21px;color:#1e3758;text-align:center;background:#fff}.row-number{text-align:center;background:#f8fafc;color:#647184;font-size:10px}.time-cell{background:#f1f4f8}.time-cell.full-time{background:#e2edf9}.cell-button,.record-cell{width:100%;border:0;background:none;padding:0;line-height:1.2}.cell-button{min-height:38px;font-weight:700;font-size:17px}.cell-button small{display:block;font-size:10px;font-weight:400;color:#445b79}.record-cell{text-align:left;font-size:13px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.record-cell:hover,.cell-button:hover{text-decoration:underline}.seat-row td{height:27px;font-size:12px}.seat-row .age{text-align:center}.seat-row td.chip-cell{padding:2px 6px}.chip{display:block;width:100%;height:20px;border:0;border-radius:20px;text-align:center;font-size:12px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.chip.blank{background:#e7e9ed}.chip.booked{background:#dbf2e2;color:#245938}.chip.owner{background:#e0edf0;color:#245469}.chip.meeting{background:#e3edff;color:#2a55a8}.chip:is(button):hover{box-shadow:inset 0 0 0 1px currentColor}.slot-start:not(:first-child) td,.slot-start:not(:first-child) .time-cell{border-top:1px solid #b8c5d4}
.sheet-tabs{display:flex;align-items:center;gap:14px;background:#f3f5f8;border-top:1px solid var(--line);font-size:11px}.sheet-tabs span:first-child{background:#dce8fa;color:#2159a3;padding:9px 18px;font-weight:700;font-size:13px}
dialog{width:min(490px,calc(100vw - 24px));max-height:calc(100dvh - 28px);border:1px solid var(--line);border-radius:10px;padding:16px;color:var(--ink);background:white}dialog::backdrop{background:#16233b66}.detail-head,.dialog-head,.dialog-footer{display:flex;justify-content:space-between;align-items:center;gap:8px}.detail-body{margin-top:10px}.booking{border-top:1px solid var(--line);margin-top:10px;padding-top:10px}.booking p,.status{font-size:12px;color:var(--muted)}.booking .quiet{margin-top:6px}.quiet,.primary{border:1px solid var(--line);background:white;border-radius:5px;padding:6px 10px;font-weight:700}.primary{background:#2057a1;color:white;border-color:#2057a1}.quiet:hover{background:var(--head)}.eyebrow{font-size:10px;letter-spacing:.08em;color:#51678a}.transfer{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:12px 0}.transfer div{padding:8px;background:var(--head)}.transfer span,.transfer strong{display:block}.transfer span{font-size:11px;color:var(--muted)}#move-form label{display:block;margin:8px 0}#move-form select{display:block;width:100%;margin-top:3px}.dialog-footer{justify-content:flex-end;margin-top:12px}.error{color:#a92424}.toast{position:fixed;right:18px;bottom:18px;background:#142c51;color:white;padding:10px 13px;z-index:4;border-radius:6px}
@media(max-width:600px){main{padding:8px}.bar{padding:0 10px}.toolbar{flex-wrap:wrap}.sheet-tabs .muted{padding:4px}.scroll{height:calc(100dvh - 190px)}}

.chip.absent{background:#f0f1f3;color:#90404c}
#load-error{padding:10px 12px;background:#fff4e8;color:#7b421c}.empty-block{width:1108px;padding:20px;background:#fff;border-bottom:1px solid var(--line)}.bar a{text-decoration:none;white-space:nowrap}

.month-toolbar{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:10px;padding:12px 14px}
.month-title h1{font-size:21px;line-height:1.2;margin:0 0 3px;text-transform:capitalize}
.month-title p{font-size:12px}
.month-nav{display:flex;align-items:center;gap:6px;flex-wrap:wrap}
.month-nav label{display:flex;align-items:center;gap:6px;font-size:12px}
.month-nav input{font:inherit;color:inherit;padding:5px 7px;border:1px solid var(--line);border-radius:4px;background:white}
.month-nav input:focus-visible,.calendar-day:focus-visible{outline:2px solid #2472cd;outline-offset:-2px}
#calendar:not(:empty){display:grid;grid-template-columns:repeat(7,minmax(0,1fr));margin:0 14px 12px;border-top:1px solid var(--line);border-left:1px solid var(--line);background:var(--head)}
.calendar-weekday,.calendar-gap,.calendar-day{border:0;border-right:1px solid var(--line);border-bottom:1px solid var(--line)}
.calendar-weekday{padding:3px 7px;font-size:11px;font-weight:700;color:var(--muted)}
.calendar-day{min-height:45px;text-align:left;padding:4px 7px;background:white;font-weight:700;font-variant-numeric:tabular-nums}
.calendar-day small{display:block;font-size:10px;color:var(--muted);font-weight:400;white-space:nowrap}
.calendar-day:hover{background:#f5f8fd}
.calendar-day[aria-current=date]{box-shadow:inset 0 2px #ed6547}
.calendar-day[aria-pressed=true]{background:#dce8fa;color:#142c51;box-shadow:inset 3px 0 #2057a1}
.calendar-attendance{display:inline-block;color:#245938;font-size:10px;line-height:1}
.sheet-table{width:1246px}.scroll{height:auto;max-height:55dvh;min-height:100px}
@media(max-width:600px){.month-toolbar{padding:9px 6px}#calendar:not(:empty){margin:0 6px 8px}.calendar-day,.calendar-weekday{padding-left:3px;padding-right:2px}.calendar-day small{font-size:9px;white-space:normal}.calendar-attendance{font-size:9px}}
