:root{--blue:#535d81;--dark:#27325e;--gold:#eda644;--line:#d7dce7;--light:#f3f5f8;--muted:#62718a}*{box-sizing:border-box}[hidden]{display:none!important}body{margin:0;background:#fff;color:var(--dark);font:15px/1.5 Arial,sans-serif}a{color:var(--blue)}button,input,select{font:inherit}button{cursor:pointer}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid var(--gold);outline-offset:3px}h1{font-size:27px;line-height:1.2;margin:0 0 7px}h2{font-size:20px;margin:0 0 12px}h3{font-size:17px;margin:12px 0 8px}.demo-banner{padding:10px 20px;background:var(--light);text-align:center;font-size:13px;color:var(--blue)}.login{width:min(540px,100%);margin:70px auto;padding:24px}.login form{display:grid;gap:10px}.app-header{display:flex;align-items:center;gap:24px;padding:16px 25px;border-bottom:1px solid var(--line);flex-wrap:wrap}.app-header strong{margin-left:auto;font-size:14px}.app-layout{display:grid;grid-template-columns:210px minmax(0,1fr)}.sidebar{border-right:1px solid var(--line);padding:25px 14px}.sidebar nav{display:grid;gap:6px}.sidebar button{background:none;border:0;padding:12px 10px;text-align:left;color:var(--dark);border-radius:4px}.sidebar button[aria-current]{background:#e8edf5;color:var(--blue);border-left:3px solid var(--gold)}.sidebar p,.sidebar a{font-size:13px;color:var(--muted);margin:22px 10px}main{padding:28px;max-width:1440px;min-width:0}.heading{display:flex;justify-content:space-between;align-items:center;gap:20px;flex-wrap:wrap}.heading p{margin:0;color:var(--muted)}.toolbar,.actions,.fields{display:flex;gap:12px;flex-wrap:wrap;align-items:end}.toolbar{margin:22px 0}.toolbar label{flex:0 1 200px}.toolbar span{color:var(--muted);font-size:12px}.fields{margin-bottom:14px}.fields label{flex:1 1 180px}label{display:block;font-size:14px}input,select{display:block;width:100%;min-width:0;padding:10px 12px;background:var(--light);border:1px solid var(--line);border-radius:4px;color:var(--dark);margin-top:5px}button.primary,button.secondary{padding:10px 15px;border-radius:4px;min-height:42px}button.primary{background:var(--blue);border:1px solid var(--blue);color:#fff;font-weight:bold}button.secondary{background:#fff;color:var(--blue);border:1px solid var(--line)}button:disabled{opacity:.55;cursor:default}.actions{margin-top:15px}.panel{padding:22px;border:1px solid var(--line);border-radius:6px;margin:24px 0;background:white}#notice{color:#785214;background:#fff4e2;padding:12px;border-radius:4px;overflow-wrap:anywhere}#notice:empty{display:none}.visit-row{display:grid;grid-template-columns:130px minmax(0,1fr) auto;gap:16px;align-items:start;padding:18px 0;border-bottom:1px solid var(--line)}.visit-time{font-size:18px;font-weight:bold;font-variant-numeric:tabular-nums}.visit-row small{display:block;font-size:12px;color:var(--muted);margin-top:5px}.visit-row .status{font-size:13px;color:var(--blue)}.visit-row .warning{color:#925509;font-weight:bold}.visit-row p{margin:5px 0;font-size:13px;overflow-wrap:anywhere}.closure-row{padding:12px;background:var(--light);margin:8px 0;border-left:3px solid var(--gold);display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}.closure-row small{display:block;color:var(--muted)}#closed-periods{margin-bottom:25px}#closed-periods h2{font-size:17px}.free-slots{display:flex;gap:8px;flex-wrap:wrap}#schedule{margin-bottom:20px}.study-group{margin-top:14px}.study-options{display:grid;grid-template-columns:1fr 1fr;gap:10px 18px}.study-label{display:grid;grid-template-columns:21px 1fr;gap:9px;align-items:start;font-size:14px}.study-label input{width:20px;height:20px;padding:0;margin:1px 0;accent-color:var(--gold)}details{font-size:13px;color:var(--muted)}summary{cursor:pointer}details p{overflow-wrap:anywhere}.study-label details{grid-column:2}#editor ol{padding-left:22px;overflow-wrap:anywhere}#editor li{margin:8px 0}.editor-meta{font-size:13px;color:var(--muted)}.editor-meta strong{color:var(--dark)}.stale-warning{padding:10px;background:#fff4e2;color:#7b550e;margin:12px 0}.history{margin-top:20px;border-top:1px solid var(--line)}.history p{font-size:13px}#create-message{color:#7b550e}#affected{font-size:14px;margin-top:14px}.affected-row{padding:8px 0;border-bottom:1px solid var(--line)}@media(max-width:800px){.app-layout{grid-template-columns:165px minmax(0,1fr)}main{padding:20px}.visit-row{grid-template-columns:110px minmax(0,1fr)}.visit-row .actions{grid-column:2;margin-top:0}.study-options{grid-template-columns:1fr}.heading>button{width:100%}}@media(max-width:560px){.app-layout{display:block}.sidebar{padding:12px;border-right:0;border-bottom:1px solid var(--line)}.sidebar nav{grid-template-columns:1fr 1fr}.sidebar p{margin:10px;font-size:12px}.sidebar>a{display:none}.app-header{padding:13px;gap:10px}.app-header strong{margin-left:0}.app-header button{margin-left:auto}main{padding:16px 13px}.visit-row{grid-template-columns:1fr;gap:9px}.visit-row .actions{grid-column:1}.toolbar label,.fields label{flex:1 1 100%}.panel{padding:16px}input,select{font-size:16px}.sidebar button{font-size:14px}h1{font-size:24px}.heading{gap:15px}.toolbar{gap:10px}}@media(pointer:coarse){button{min-height:44px}}
.toolbar #resource-label{flex-basis:315px;max-width:100%}@media(max-width:560px){.toolbar #resource-label{flex-basis:100%}}

.calendar-days{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:6px;margin-top:12px}.calendar-days button{min-width:0;display:flex;flex-direction:column;align-items:flex-start;overflow-wrap:anywhere}.calendar-days small{font-size:11px}@media(max-width:560px){.calendar-days{grid-template-columns:repeat(4,minmax(0,1fr))}}

.weekday{text-align:center;color:#676e75;font-size:12px}@media(max-width:560px){.calendar-days{grid-template-columns:repeat(7,minmax(0,1fr));gap:3px}.calendar-days button{padding:6px 3px;font-size:12px}.calendar-days small{font-size:9px}}

.staff-row{display:flex;gap:16px;justify-content:space-between;align-items:center;padding:12px 0;border-bottom:1px solid #dce4ed;overflow-wrap:anywhere}.staff-row p{margin:6px 0}#staff-edit{margin:16px 0;padding:16px;background:#f4f7fb;border-radius:8px}#staff-section input,#staff-section select{max-width:100%;min-width:0;width:100%;box-sizing:border-box}#staff-section .actions{flex-wrap:wrap}@media(max-width:600px){.staff-row{align-items:flex-start;flex-direction:column}.staff-row button{width:100%}#staff-edit{padding:12px}}
