:root{font-family:system-ui,-apple-system,Segoe UI,sans-serif;background:#101317;color:#f7f7f8;color-scheme:dark}*{box-sizing:border-box}body{margin:0}header{display:flex;align-items:center;gap:1rem;padding:1rem max(1.25rem,calc((100vw - 1200px)/2));border-bottom:1px solid #353941}header>.brand{margin-right:auto;color:#db2638;font-size:1.45rem;letter-spacing:.07em;font-weight:900;text-decoration:none}header>.brand b{color:#fff}header>.brand small{display:block;color:#aeb2b8;font-size:.66rem;letter-spacing:.22em}header span{color:#c5c7cc}main{max-width:1200px;margin:auto;padding:1.5rem 1.25rem 4rem}nav{display:flex;gap:.7rem;flex-wrap:wrap;margin-bottom:2rem}nav a{padding:.7rem 1rem;border:1px solid #444a50;border-radius:8px;color:#fff;text-decoration:none}h1{font-size:clamp(1.8rem,4vw,2.5rem);margin:0}h2{font-size:1.25rem;margin:.2rem 0 1rem}.sub{color:#aeb2b8;margin:.25rem 0 1.5rem}.grid{display:grid;grid-template-columns:1fr 1fr;gap:1rem}.card,.login{background:#1b2026;border:1px solid #363c44;border-radius:14px;padding:1.3rem}.wide{grid-column:span 2}.login{max-width:460px;margin:8vh auto}form{display:grid;gap:.75rem;margin:1rem 0}label{display:grid;gap:.4rem;font-size:.9rem;color:#c9cbd1}input,select{width:100%;min-height:44px;background:#111519;border:1px solid #535a65;color:white;border-radius:8px;padding:.6rem;font:inherit}button{background:#d51d30;color:white;border:0;border-radius:8px;padding:.7rem 1rem;min-height:42px;font:inherit;font-weight:700;cursor:pointer}button:hover{background:#ec2d41}header form,.row form{display:inline-block;margin:0}.row button{padding:.4rem .8rem;min-height:36px}.filters{display:grid;grid-template-columns:repeat(4,1fr);gap:.7rem;margin-bottom:1rem}.events{max-height:650px;overflow:auto}.event{display:flex;gap:1rem;align-items:center;border-left:4px solid #d51d30;background:#242a31;padding:.7rem;margin:.4rem 0;border-radius:5px;flex-wrap:wrap}.event[hidden]{display:none}.event.renewal{border-color:#e5b858;background:#3c3123}.event.cancelled{opacity:.45}.event time{min-width:145px;font-weight:600}.event div{flex:1}.event small,.row small{display:block;color:#aeb2b8;margin-top:.2rem}.badge{background:#e5b858;color:#1e1a13;font-size:.8rem;padding:.3rem .5rem;border-radius:4px}.event details{width:100%}.event details[open]{padding:.75rem;border-top:1px solid #555}.event details form{display:inline-grid;vertical-align:bottom;margin-right:.5rem}.row{padding:.65rem 0;border-bottom:1px solid #383e45}.empty,.help{color:#aeb2b8}details>summary{cursor:pointer;color:#fff;font-weight:600;padding:.8rem 0}.error{background:#52252a;padding:1rem;border-radius:8px}@media(max-width:700px){header span{display:none}.grid{grid-template-columns:1fr}.wide{grid-column:span 1}.filters{grid-template-columns:1fr 1fr}.event time{min-width:unset;width:100%}}@media(max-width:450px){.filters{grid-template-columns:1fr}nav a{flex:1;text-align:center}main{padding:1rem}}
.date-range,.schedule-rule{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.schedule-rules{display:grid;gap:12px;margin:14px 0}
.schedule-rule{grid-template-columns:minmax(0,1fr) minmax(0,1fr) minmax(0,1.3fr) auto;align-items:end}
.schedule-rule .remove-rule,.weekly .secondary{background:#30363d;color:#fff}
.weekly summary{cursor:pointer;font-weight:700;margin:16px 0}
.calendar-link{display:inline-block;margin:.45rem .5rem .45rem 0;padding:.55rem .75rem;border:1px solid #8a9ec0;border-radius:8px;color:#dce8ff;text-decoration:none;font-weight:600}.calendar-link:hover{background:#303d50}
@media(max-width:640px){.date-range,.schedule-rule{grid-template-columns:1fr}.schedule-rule{padding:12px;border:1px solid #434a52;border-radius:12px}}
