:root{font-family:system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:#172033;background:#f4f6fa;line-height:1.4}*{box-sizing:border-box}body{margin:0}header{display:flex;justify-content:space-between;align-items:center;gap:1rem;padding:1rem 1.5rem;background:#16233a;color:#fff}header h1{font-size:1.35rem;margin:0}header p{margin:.15rem 0 0;color:#d4deed}main{padding:1rem;max-width:1800px;margin:auto}h2,h3{margin-top:0}button,input,select,textarea{font:inherit}button{cursor:pointer;border:1px solid #aab3c2;border-radius:.4rem;background:#fff;padding:.5rem .7rem}button:hover{background:#edf2f8}button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid #5a86cb;outline-offset:1px}.primary,.active{background:#234d8f;color:#fff;border-color:#234d8f}.primary:hover,.active:hover{background:#193c72}.danger{color:#8a1919;border-color:#c87d7d}.error{color:#a02020}.panel{background:#fff;border:1px solid #d9e0ea;border-radius:.6rem;padding:1rem;margin-bottom:1rem}.auth-panel,.narrow{max-width:34rem}.auth-panel{margin:4rem auto;display:grid;gap:.8rem}.auth-panel label,.narrow label,dialog label,#layoutEditor label{display:grid;gap:.3rem;margin-bottom:.65rem}input,select,textarea{width:100%;border:1px solid #aab3c2;border-radius:.4rem;padding:.52rem;background:#fff;color:#172033}input[type=checkbox]{width:auto}textarea{min-height:6rem;resize:vertical}.top-nav,.sub-nav,.control-row,.button-row,.section-heading,.filter-row,.inline-form{display:flex;align-items:center;gap:.55rem;flex-wrap:wrap}.top-nav,.sub-nav,.control-row{margin-bottom:1rem}.spacer{flex:1}.section-heading{justify-content:space-between}.section-heading p{margin-top:-.5rem;color:#5b6574}.filter-row label,.inline-form label{display:grid;gap:.25rem;min-width:12rem}.inline-form h3{width:100%;margin-bottom:0}.capacity-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:.75rem;margin-bottom:1rem}.card{background:#fff;border:1px solid #dbe1ea;border-radius:.6rem;padding:.8rem}.card.warning{border-color:#a66a00;background:#fff8e8}.card.over{border-color:#a02020;background:#fff1f1}.card.no_capacity{border-style:dashed}.utilization-value{font-size:1.6rem;font-weight:700}.calendar-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:.3rem}.day{min-height:125px;background:#fff;border:1px solid #dbe1ea;border-radius:.25rem;padding:.38rem;overflow:hidden}.day h3{margin:.1rem 0 .35rem;font-size:.86rem}.allocation{display:block;width:100%;margin:.2rem 0;padding:.3rem;text-align:left;border:1px solid #b9c8df;background:#e8eef9;font-size:.78rem;cursor:grab;white-space:normal}.allocation span{float:right}.legend{margin-top:.8rem;color:#5b6574}.table-wrap{overflow-x:auto;background:#fff;border:1px solid #dbe1ea;border-radius:.5rem}table{width:100%;border-collapse:collapse}th,td{padding:.55rem;border-bottom:1px solid #dbe1ea;text-align:left;vertical-align:top}th{background:#eef2f7}tr:last-child td{border-bottom:0}.two-column{display:grid;grid-template-columns:minmax(280px,520px) 1fr;gap:1rem}fieldset{border:1px solid #d9e0ea;border-radius:.4rem;margin:.5rem 0 1rem}fieldset label{display:block!important}.custom-row{display:grid!important;grid-template-columns:1fr 10rem;align-items:center;gap:.6rem}.custom-row input{margin:0}dialog{border:0;border-radius:.7rem;box-shadow:0 12px 50px #0005;max-width:min(720px,95vw)}dialog::backdrop{background:#0007}dialog form{display:grid;gap:.35rem;min-width:min(540px,80vw)}menu{display:flex;justify-content:flex-end;gap:.5rem;padding:0;margin-bottom:0}#message{position:sticky;bottom:.5rem;background:#16233a;color:#fff;padding:.55rem .8rem;border-radius:.4rem;width:max-content;max-width:100%}#message:empty{display:none}#message.error{background:#8a1919}.compact .day{min-height:90px;padding:.2rem}.compact .allocation{font-size:.72rem;padding:.2rem}.compact th,.compact td{padding:.3rem}code{white-space:pre-wrap;word-break:break-word}.admin-tab{margin-top:1rem}
@media(max-width:900px){.calendar-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.two-column{grid-template-columns:1fr}}
@media(max-width:600px){header{align-items:flex-start;flex-direction:column}.calendar-grid{grid-template-columns:1fr}.day{min-height:auto}.filter-row,.inline-form{align-items:stretch;flex-direction:column}.filter-row label,.inline-form label{width:100%}.top-nav .spacer,.control-row .spacer{display:none}dialog form{min-width:0;width:82vw}.custom-row{grid-template-columns:1fr}}
