:root{font-family:Segoe UI,Arial,sans-serif;color:#20223b;background:#f3f5f9;font-size:16px;--purple:#4a0be8;--cyan:#00d9e0;--line:#e2e5ed}*{box-sizing:border-box}body{margin:0}button,input,select,textarea{font:inherit}button{cursor:pointer;border:1px solid var(--line);border-radius:8px;background:white;padding:10px 15px;color:inherit}button:hover{border-color:var(--purple);background:#f5f1ff}button:disabled{opacity:.6;cursor:wait}button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,summary:focus-visible{outline:3px solid #00a6b0;outline-offset:3px}.primary{background:var(--purple);border-color:var(--purple);color:white;font-weight:650}.primary:hover{background:#3805b4;color:white}h1,h2,p{margin-top:0}h1{font-size:36px;letter-spacing:-1.2px;margin-bottom:8px}h2{font-size:22px}small,.muted,.hint{color:#647084}.eyebrow,.nav-label{font-size:12px;font-weight:700;letter-spacing:1.5px;color:#778097}.accent{color:var(--purple)}[hidden]{display:none!important}.sidebar{position:fixed;inset:0 auto 0 0;width:240px;padding:32px 20px;background:#17182e;color:#eeeef8;display:flex;flex-direction:column}.brand{font-weight:850;font-size:38px;letter-spacing:-2px}.brand span{color:var(--cyan)}.brand small{display:block;font-size:10px;letter-spacing:1.6px;color:inherit;margin-top:6px}.sidebar .brand{margin-bottom:58px}.nav{width:100%;background:transparent;border:0;color:#bfc3d8;text-align:left;margin:5px 0;padding:14px 12px}.nav.active{background:#353052;color:#fff;border-left:3px solid var(--cyan)}.legend{margin-top:45px}.legend p{font-size:14px;display:flex;align-items:center;gap:10px;color:#c7cbdb}.legend i{width:9px;height:9px;border-radius:3px}.vehicle{background:#6231df}.kitchen{background:#009b91}.site{background:#d38309}.other{background:#65728e}.sidebar-bottom{margin-top:auto;display:grid;gap:12px}.sidebar-bottom small{font-size:12px;color:#a3abc0}.sidebar-bottom button{background:transparent;color:#ddd;border-color:#44465b;width:100px}main{margin-left:240px;padding:40px;max-width:1900px}header{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-bottom:24px}.notice{font-size:14px;padding:12px 16px;background:#e9e5fa;border-left:3px solid var(--purple);margin-bottom:24px}.summary{display:flex;background:white;border:1px solid var(--line);border-radius:12px;margin-bottom:30px}.summary>div{flex:1;display:flex;gap:16px;align-items:center;padding:22px;border-right:1px solid var(--line)}.summary>div:last-child{border:0}.summary strong{font-size:32px;font-weight:650}.summary span{font-size:14px;color:#667086}.toolbar{display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap;margin-bottom:18px}.date-nav,.filters{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.date-nav h2{margin:0 12px;min-width:180px}.date-nav>button:first-child,.date-nav>button:nth-child(3){font-size:24px;padding:2px 12px}.filters input{max-width:240px}.filters input,.filters select{font-size:14px;width:auto;margin:0}.calendar{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));border-left:1px solid var(--line);border-top:1px solid var(--line);background:white;border-radius:10px;overflow:hidden}.weekday{padding:13px;color:#677086;font-size:12px;font-weight:650;letter-spacing:1px;background:#fafbfe;text-align:center;border-right:1px solid var(--line);border-bottom:1px solid var(--line)}.day{min-height:130px;padding:8px;border-right:1px solid var(--line);border-bottom:1px solid var(--line)}.day.outside{background:#f8f9fc}.day-number{border:0;padding:5px 8px;margin-bottom:5px;font-size:14px;background:transparent}.day.is-today .day-number{background:var(--purple);color:white;border-radius:50%}.outside .day-number{color:#969dad}.event{display:block;width:100%;text-align:left;padding:8px;margin:3px 0;border:0;border-left:3px solid #6231df;border-radius:5px;background:#f0eaff;color:#452698;overflow-wrap:anywhere;font-size:13px}.event strong,.event span{display:block}.event span{font-size:12px;margin-top:3px}.event.kitchen{background:#e0f5f1;border-color:#008c83;color:#08645e}.event.site{background:#fff1d9;border-color:#d38309;color:#805002}.event.other{background:#e9edf4;border-color:#65728e;color:#424f68}.event.cancelled{opacity:.55;text-decoration:line-through}.event.completed{opacity:.65}.hint{font-size:13px;margin-top:18px}.agenda-row,.mail{display:block;width:100%;text-align:left;margin-bottom:10px;background:white;border:1px solid var(--line);padding:20px;border-radius:10px}.agenda-row strong{display:block;margin-bottom:8px}.agenda-row span{font-size:14px;color:#647084}.empty{padding:55px 20px;text-align:center;color:#687286;background:white;border:1px dashed #c7cbd7;border-radius:10px}.mail h3{margin:10px 0}.mail pre{white-space:pre-wrap;font:14px/1.6 Segoe UI,sans-serif;color:#555e75}.mail small{display:block}.mail{margin-top:18px}.auth{max-width:500px;margin:8vh auto;padding:35px}.auth .brand{margin-bottom:45px}.auth h1{font-size:44px}.auth form{margin-top:30px}.auth .primary{width:100%;margin-top:12px}label{display:block;font-size:14px;font-weight:600;margin-bottom:16px}input,select,textarea{display:block;width:100%;border:1px solid #cdd2df;border-radius:7px;background:white;padding:11px 12px;color:#20223b;margin-top:7px;font-size:16px}textarea{resize:vertical}dialog{border:0;border-radius:16px;padding:0;width:min(760px,95vw);max-height:92vh;box-shadow:0 25px 100px #1114}dialog::backdrop{background:#15152f99;backdrop-filter:blur(3px)}.dialog-head{display:flex;align-items:center;justify-content:space-between;padding:24px 28px;border-bottom:1px solid var(--line)}.dialog-head h2,.dialog-head p{margin-bottom:5px}.form-body{padding:24px 28px;max-height:65vh;overflow:auto}.fields{display:grid;grid-template-columns:1fr 1fr;gap:0 20px}fieldset{border:1px solid var(--line);border-radius:8px;padding:14px;margin:0 0 20px}legend{font-size:14px;font-weight:600;padding:0 5px}.check{display:inline-flex;align-items:center;margin:0 25px 0 0;gap:8px;font-weight:400}.check input{width:18px;height:18px;margin:0;accent-color:var(--purple)}details{border-top:1px solid var(--line);padding:15px 0;margin-bottom:10px}summary{cursor:pointer;font-weight:600;font-size:14px;margin-bottom:16px}footer{display:flex;justify-content:space-between;gap:15px;padding:18px 28px;border-top:1px solid var(--line);background:#fafbfe}.warning,#saveError,#authError{color:#a44300;font-size:14px}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}#printArea{display:none}@media(min-width:1600px){.day{min-height:160px}}@media(max-width:1100px){.sidebar{width:190px;padding:25px 15px}main{margin-left:190px;padding:24px}.summary>div{padding:16px;gap:10px}.summary strong{font-size:25px}.day{padding:4px}.event{font-size:12px;padding:5px}.date-nav h2{min-width:150px}}@media(max-width:760px){.sidebar{position:static;width:auto;padding:16px;display:flex;flex-direction:row;gap:10px;align-items:center;flex-wrap:wrap}.sidebar .brand{font-size:25px;margin:0 auto 0 0}.sidebar .brand small{font-size:8px}.sidebar .nav-label,.legend,.sidebar-bottom small,.sidebar-bottom strong{display:none}.sidebar .nav{width:auto;font-size:13px;margin:0;padding:8px}.sidebar-bottom{margin:0}.sidebar-bottom button{font-size:12px;width:auto;padding:8px}main{margin:0;padding:20px 12px}h1{font-size:28px}header .muted,.eyebrow{display:none}header{gap:10px}.primary{padding:11px 13px}.summary{margin-bottom:20px}.summary>div{display:block;padding:12px}.summary span{display:block;font-size:12px;margin-top:6px}.calendar .day{min-height:100px}.event span{display:none}.event{font-size:11px}.weekday{font-size:10px;padding:10px 2px}.fields{grid-template-columns:1fr}.form-body{padding:18px}.dialog-head{padding:18px}footer{padding:16px}.filters input{max-width:100%;flex:1}.filters{width:100%}.filters select{max-width:48%}.auth{padding:25px;margin:3vh auto}}@media print{body>*{display:none!important}#printArea{display:block!important;background:white;color:black;padding:20px}#printArea h1{font-size:26px}#printArea p{white-space:pre-wrap;break-inside:avoid}#printArea hr{border:0;border-top:1px solid #ccc}}

.day{cursor:pointer}.day:hover{background:#f3f0fb}.day:has(.event:hover){background:white}.session-row{padding:12px 0;border-bottom:1px solid var(--line);margin-bottom:14px}.session-row .fields label{margin-bottom:8px}.remove-session{font-size:13px;padding:6px 10px}.remove-session:disabled{cursor:default}
