:root{font-family:Segoe UI,Arial,sans-serif;color:#243336;background:#f7f8fa;font-size:14px;letter-spacing:0;color-scheme:light}*{box-sizing:border-box}body{margin:0}button,input,select,textarea{font:inherit}button,a,input,select,textarea{outline-offset:3px}button,a{touch-action:manipulation}button{display:inline-flex;align-items:center;justify-content:center;gap:7px;min-height:38px;padding:8px 13px;background:#fff;border:1px solid #cdd5d8;border-radius:5px;color:inherit;cursor:pointer;font-weight:600}button:hover{background:#edf2f1}button:disabled{opacity:.45;cursor:default}.primary{background:#087e70;color:white;border-color:#087e70}.primary:hover{background:#06685d}.danger{color:#a1314b;border-color:#dcb8c2}svg{width:18px;height:18px;flex-shrink:0}.icon{width:38px;height:38px;padding:9px;flex-shrink:0}a.icon{display:grid;place-items:center;color:inherit;text-decoration:none}header{height:72px;display:flex;align-items:center;gap:22px;padding:0 32px;border-bottom:1px solid #dae1e4;background:#fff}.brand{display:flex;align-items:center;gap:9px;text-decoration:none;color:#667479}.brand img{object-fit:contain}.module-name{border-left:1px solid #d9e0e1;padding-left:22px;color:#536367}header>.icon{margin-left:auto}main{padding:28px 32px 16px;max-width:1920px;margin:auto}.heading{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:24px}h1{font-size:27px;margin:4px 0;line-height:1.2}h2{font-size:17px;margin:0}.eyebrow{font-size:11px;font-weight:700;color:#627c7a;margin:0}.toolbar{display:flex;align-items:center;gap:18px;padding:14px 0;border-block:1px solid #dce3e5}.toolbar>.icon{margin-left:auto}.week-nav{display:flex;gap:5px;align-items:center}.week-nav input{width:145px}.filters{display:flex;align-items:center;gap:14px;flex-wrap:wrap;padding:18px 0}input:not([type=checkbox]),select,textarea{border:1px solid #cbd5d8;border-radius:4px;background:#fff;min-height:38px;padding:8px 10px;color:#243336;max-width:100%}.search{display:flex;align-items:center;position:relative}.search svg{position:absolute;left:10px;color:#7c898e}.search input{padding-left:36px;width:230px}.filters>label{display:flex;align-items:center;gap:6px}.legend{display:flex;align-items:center;gap:7px;margin-left:auto;font-size:12px;color:#58696e}.dot{width:8px;height:8px;border-radius:50%;display:inline-block}.work{background:#168b7c}.absence{background:#b75274}.board{overflow:auto;max-height:calc(100dvh - 320px);min-height:240px;border:1px solid #d5dfe2;background:white}table{width:100%;border-collapse:separate;border-spacing:0;table-layout:fixed;min-width:1060px}th,td{border-right:1px solid #e1e7e9;border-bottom:1px solid #e1e7e9;vertical-align:top}thead th{position:sticky;top:0;background:#f0f4f5;z-index:3;padding:12px;text-align:left;font-weight:600;height:58px}thead th:first-child{width:205px;left:0;z-index:5}thead small{display:block;font-size:11px;color:#687b81;margin-top:3px}tbody th{position:sticky;left:0;z-index:2;background:#fff;padding:15px;text-align:left;font-weight:600;overflow-wrap:anywhere}tbody th small{display:block;color:#7d8a8e;font-size:11px;font-weight:400;margin-top:6px}td{height:108px;padding:6px;background:#fff}td.weekend{background:#f7f8fa}th.today{box-shadow:inset 0 3px #087e70}.assignment{display:block;text-align:left;min-height:0;width:100%;margin:0 0 5px;padding:7px 8px;white-space:normal;border:1px solid #b8ddd5;border-left:3px solid #168b7c;border-radius:4px;background:#ebf7f3;font-size:12px;font-weight:400;overflow-wrap:anywhere}.assignment.absence{background:#fbf0f4;border-color:#edc5d3;border-left-color:#b75274}.assignment strong{display:block;margin:4px 0;font-size:12px}.assignment small{display:block;color:#536967;font-size:11px}.assignment.confirmed{border-left-width:5px}.add-cell{min-height:26px;height:26px;width:100%;padding:3px;border:0;background:transparent;color:#96a6aa;opacity:0}.add-cell svg{width:14px;height:14px}td:hover .add-cell,.add-cell:focus{opacity:1}.empty{text-align:center;padding:45px;color:#6c7f85}footer{display:flex;justify-content:space-between;gap:12px;color:#6c7c80;font-size:12px;padding:14px 0}#message:not(:empty){padding:12px;border-left:3px solid #bd7a24;background:#fff6e6;margin:0 0 16px}#setup{padding:25px 0}#setup h2{margin-bottom:15px}dialog{padding:0;border:1px solid #ccd6da;border-radius:7px;width:min(620px,calc(100vw - 24px));max-height:calc(100dvh - 30px);color:inherit}dialog::backdrop{background:#182c3360}form{padding:22px}.dialog-heading{display:flex;align-items:center;justify-content:space-between;margin-bottom:18px}.fields{display:grid;grid-template-columns:1fr 1fr;gap:14px}.fields label{display:flex;flex-direction:column;gap:6px;font-size:12px;font-weight:600;min-width:0}.fields label>*{width:100%}.full{grid-column:1/-1}.dialog-actions{display:flex;gap:8px;align-items:center;border-top:1px solid #e0e6e8;margin-top:20px;padding-top:16px}.dialog-actions>span{flex:1}#form-error{color:#ab294c;font-size:13px}#history{font-size:12px;max-height:190px;overflow:auto}#history summary{cursor:pointer;padding:8px 0}#history-list p{border-top:1px solid #e5e9eb;padding:8px 0;margin:0;overflow-wrap:anywhere}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0)}[hidden]{display:none!important}@media(max-width:700px){header{height:60px;padding:0 16px}.module-name{display:none}main{padding:20px 12px 8px}h1{font-size:23px}.heading{margin-bottom:18px}.toolbar{gap:10px;flex-wrap:wrap}.toolbar h2{order:3;flex-basis:100%;font-size:15px}.week-nav{gap:3px}.week-nav input{width:133px}.filters{gap:10px}.search{flex:1;min-width:150px}.search input{width:100%}.filters>label:nth-child(2){flex:1;min-width:130px}.filters select{width:100%}.legend{font-size:11px}.board{max-height:calc(100dvh - 370px)}thead th:first-child{width:145px}tbody th{padding:10px}table{min-width:1020px}footer{font-size:11px}.fields{grid-template-columns:1fr}.full{grid-column:auto}form{padding:16px}.dialog-actions{flex-wrap:wrap}.dialog-actions button{padding:8px 10px}.add-cell{opacity:1}}
