:root{font-family:Inter,ui-sans-serif,system-ui,-apple-system,"Segoe UI",sans-serif;color:#172033;background:#f4f6fa;font-synthesis:none}
*{box-sizing:border-box}body{margin:0}header{background:#172033;color:white;padding:24px max(18px,calc((100% - 1100px)/2));display:flex;align-items:center;justify-content:space-between;gap:20px}
h1{margin:0;font-size:clamp(1.6rem,4vw,2.3rem)}.eyebrow{letter-spacing:.22em;font-size:.72rem;color:#9daac2;margin:0 0 5px}.subtitle{color:#c2cada;margin:7px 0 0}
button{font:inherit;border:0;border-radius:10px;padding:11px 15px;background:#2867d8;color:white;font-weight:650;cursor:pointer}button:hover{filter:brightness(1.05)}button:focus-visible,input:focus-visible,textarea:focus-visible{outline:3px solid #8ab4ff;outline-offset:2px}
main{max-width:1100px;margin:26px auto;padding:0 18px}.toolbar{display:flex;align-items:center;gap:10px;margin-bottom:14px}.toolbar h2{margin:0 auto 0 8px;font-size:1.25rem;text-transform:capitalize}.toolbar button{background:white;color:#172033;border:1px solid #dbe1eb}.toolbar #today{background:#e6edff;color:#1e4ca0;border-color:transparent}
#status{color:#59657a;min-height:1.4em;font-size:.9rem}.calendar{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));background:white;border:1px solid #dfe4ed;border-radius:14px;overflow:hidden;box-shadow:0 5px 20px #16233a0a}
.weekday{padding:12px 5px;text-align:center;font-size:.8rem;font-weight:700;color:#66738a;background:#f8f9fc;border-bottom:1px solid #e3e7ef}
.day{min-height:115px;padding:8px;border-right:1px solid #edf0f5;border-bottom:1px solid #edf0f5;background:white;min-width:0}.day:nth-child(7n){border-right:0}.day.other{background:#fafbfc;color:#a7afbd}.day.today{box-shadow:inset 0 0 0 2px #2867d8}.daynum{font-size:.85rem;font-weight:700}.event{margin-top:6px;background:#e5edff;border-left:3px solid #2867d8;border-radius:5px;padding:5px 6px;font-size:.75rem;line-height:1.25;overflow-wrap:anywhere;cursor:pointer;color:#1c3f82}.event strong{display:block}.legend{display:flex;align-items:center;gap:8px;color:#657087;font-size:.85rem;margin-top:14px}.dot{width:9px;height:9px;background:#2867d8;border-radius:50%}
dialog{border:0;border-radius:16px;width:min(560px,calc(100% - 24px));padding:0;box-shadow:0 20px 80px #101b3070}dialog::backdrop{background:#111b2e99}.dialog-head{display:flex;align-items:center;justify-content:space-between}.dialog-head h2{margin:0 0 18px;font-size:1.25rem}.icon-button{background:transparent;color:#59657a;font-size:1.8rem;padding:0 8px}form#slotForm{padding:24px;display:grid;gap:14px}label{display:grid;gap:6px;font-size:.9rem;font-weight:650}input,textarea{font:inherit;padding:11px 12px;border:1px solid #d4dbe7;border-radius:9px;background:white;width:100%;color:#172033}.required{color:#b42318;font-weight:500}.optional{color:#778197;font-weight:400}.hint{background:#f5f7fb;padding:10px;border-radius:8px;color:#657087;font-size:.82rem;line-height:1.4;margin:0}.actions{display:flex;align-items:center;gap:8px;margin-top:4px}.actions button:not([type=submit]){background:#edf0f5;color:#27344b}.actions .danger{background:#fff0ef;color:#a11a12}.grow{flex:1}.hidden{display:none!important}
@media(max-width:650px){header{align-items:flex-start;flex-direction:column;padding-top:20px;padding-bottom:20px}header button{width:100%}.day{min-height:84px;padding:5px 3px}.weekday{font-size:.68rem;padding:9px 1px}.event{font-size:.65rem;padding:4px 3px;border-left-width:2px}.event .long{display:none}.toolbar{gap:6px}.toolbar button{padding:9px 11px}.toolbar h2{font-size:1rem}}
