:root{font-family:system-ui,-apple-system,sans-serif;color:#172033;background:#f5f7fb}*{box-sizing:border-box}body{margin:0}header{background:#fff;border-bottom:1px solid #dde3ed}.container{max-width:1050px;margin:auto;padding:1rem}.nav{display:flex;justify-content:space-between;align-items:center}.brand{font-weight:800;color:#172033;text-decoration:none}nav a{margin-left:1rem}a{color:#1d5fd1}h1,h2{line-height:1.2}.card{background:#fff;border:1px solid #dde3ed;border-radius:12px;padding:1rem;margin:1rem 0;box-shadow:0 3px 14px #1720330a}.grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:1rem}label{display:block;font-weight:650;margin-top:.8rem}input,select,textarea{width:100%;padding:.72rem;border:1px solid #bdc7d8;border-radius:8px;font:inherit}input[type=checkbox]{width:auto}button,.button{display:inline-block;background:#1d5fd1;color:#fff;border:0;border-radius:8px;padding:.72rem 1rem;text-decoration:none;cursor:pointer;margin-top:1rem}.secondary{background:#5d687b}.danger{background:#b42318}.flash{padding:.8rem;border-radius:8px;margin:1rem 0}.success{background:#dcfae6}.error{background:#fee4e2}table{width:100%;border-collapse:collapse;background:#fff}th,td{text-align:left;padding:.7rem;border-bottom:1px solid #e4e8ef}.muted{color:#687386}.participant{border-left:4px solid #1d5fd1;padding-left:1rem;margin:1rem 0}@media(max-width:650px){.nav{align-items:flex-start;gap:1rem}.nav nav{display:flex;flex-direction:column}.nav nav a{margin:.15rem 0}}
.danger-zone{border-color:#f0b4ae}.inline-form{display:inline}.inline-form button,.compact{margin-top:0;padding:.45rem .7rem}button:disabled{opacity:.5;cursor:not-allowed}small{color:#687386}table select{margin:0;min-width:180px}
.actions{display:flex;gap:.6rem;flex-wrap:wrap;align-items:center}.actions .button{margin-top:0}.check-label{display:flex;align-items:center;gap:.55rem}.check-label input{width:auto}.badge{display:inline-block;border:1px solid #bdc7d8;border-radius:999px;padding:.2rem .55rem;font-size:.82rem;background:#f4f7fb}.muted-badge{opacity:.7}.warning-text{color:#9a6700}.row-muted{opacity:.55}.table-wrap{overflow-x:auto}.form-narrow{max-width:720px}.calendar-filter{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:1rem;align-items:end}.calendar-filter label{margin-top:0}.filter-button button{width:100%}.month-nav{display:flex;justify-content:space-between;align-items:center;gap:1rem;margin:1rem 0}.month-nav h2{margin:0}.utilization-grid{grid-template-columns:repeat(auto-fit,minmax(180px,1fr))}.utilization-card small{display:block}.utilization-number{font-size:1.25rem;font-weight:750;margin:.55rem 0}.progress{height:8px;border-radius:999px;background:#e4e8ef;overflow:hidden;margin:.4rem 0}.progress span{display:block;height:100%;background:#1d5fd1}.calendar-wrap{overflow-x:auto;margin:1rem 0}.calendar-grid{display:grid;grid-template-columns:repeat(7,minmax(145px,1fr));min-width:1015px}.calendar-head>div{font-weight:750;padding:.55rem;text-align:center;background:#eef2f7;border:1px solid #dde3ed}.calendar-day{min-height:145px;background:#fff;border:1px solid #dde3ed;padding:.45rem}.calendar-day.outside-month{background:#f7f8fa;color:#8b94a5}.calendar-day.today{outline:2px solid #1d5fd1;outline-offset:-2px}.calendar-date{font-weight:800;margin-bottom:.35rem}.calendar-entry{display:block;text-decoration:none;color:#172033;border-left:4px solid #1d5fd1;background:#f4f7ff;border-radius:6px;padding:.35rem .4rem;margin:.3rem 0;font-size:.78rem;line-height:1.25}.calendar-entry span{display:block;margin-top:.12rem}.reservation-entry{border-left-color:#8a5a00;background:#fff8e7}.event-entry{border-left-color:#1d5fd1}.calendar-entry:hover{text-decoration:none;filter:brightness(.98)}details{margin:.9rem 0}summary{cursor:pointer;font-weight:650}
@media(max-width:650px){.actions{width:100%}.month-nav{align-items:stretch;flex-direction:column}.month-nav .button{text-align:center}.calendar-filter{grid-template-columns:1fr}}
.notice-card{border-left:4px solid #1d5fd1}.request-entry{border-left-color:#7a3eb1;background:#f7f0ff}.status-pending{background:#fff8e7}.status-approved{background:#dcfae6}.status-rejected,.status-cancelled{background:#fee4e2}.hp-field{position:absolute!important;left:-10000px!important;width:1px!important;height:1px!important;overflow:hidden!important}
.range-mode{border:1px solid #d7deea;border-radius:8px;padding:1rem;margin:1rem 0}.range-mode legend{font-weight:750;padding:0 .35rem}.range-mode-options{display:flex;gap:1.25rem;flex-wrap:wrap;margin-bottom:.8rem}.range-mode [hidden]{display:none!important}.calendar-range-picker{display:flex;justify-content:space-between;align-items:center;gap:1rem}.calendar-range-picker p{margin:.35rem 0 0}.calendar-day.selectable{cursor:pointer;position:relative}.calendar-day.selectable:hover{box-shadow:inset 0 0 0 2px #8aa9dd}.calendar-day.range-selected{background:#eaf2ff}.calendar-day.range-start,.calendar-day.range-end{outline:3px solid #1d5fd1;outline-offset:-3px}.button.is-disabled{opacity:.5;pointer-events:none}.calendar-range-picker .actions{justify-content:flex-end}@media(max-width:650px){.calendar-range-picker{align-items:stretch;flex-direction:column}.calendar-range-picker .actions{justify-content:flex-start}}
.bus-card-heading{display:flex;justify-content:space-between;align-items:flex-start;gap:1rem}.bus-card-heading h3,.bus-card-heading p{margin-top:0}.assignment-board{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:1rem;align-items:start;margin:1rem 0}.assignment-column{border:1px solid #d7deea;border-radius:10px;background:#f8fafc;padding:.75rem;min-height:180px;transition:.15s ease}.assignment-column>header{display:flex;justify-content:space-between;align-items:flex-start;gap:.75rem;border-bottom:1px solid #dde3ed;padding-bottom:.6rem;margin-bottom:.65rem}.assignment-column h3{font-size:1rem;margin:0 0 .2rem}.assignment-column.drag-over{box-shadow:inset 0 0 0 3px #1d5fd1;background:#eef5ff}.assignment-column.assignment-full:not(.unassigned-column){border-color:#e3a008}.assignment-list{min-height:90px}.participant-chip{background:#fff;border:1px solid #d7deea;border-radius:8px;padding:.6rem;margin:.5rem 0;box-shadow:0 2px 7px #1720330a;cursor:grab}.participant-chip:active{cursor:grabbing}.participant-chip.is-dragging{opacity:.45}.participant-chip-main{display:flex;gap:.55rem;align-items:center;user-select:none}.participant-chip-main small{display:block;margin-top:.15rem}.drag-handle{display:inline-flex;align-items:center;justify-content:center;width:30px;height:34px;border-radius:6px;background:#eef2f7;cursor:grab;font-weight:800;user-select:none;touch-action:none}.drag-handle:active{cursor:grabbing}.participant-mobile-select{font-size:.82rem;margin-top:.55rem}.participant-mobile-select select{padding:.42rem;font-size:.88rem}.unassigned-column{background:#fffaf0}@media(max-width:850px){.assignment-board{grid-template-columns:1fr}}

.planning-publication-card{border-left:4px solid #1d5fd1}.planning-publication-card .actions{margin-top:.75rem}.public-bus-grid{grid-template-columns:repeat(auto-fit,minmax(280px,1fr))}.public-bus-card h2{margin-top:0}.public-person-list{padding-left:1.4rem}.public-person-list li{padding:.2rem 0}

.assignment-drag-ghost{position:fixed;z-index:9999;width:min(320px,80vw);margin:0;pointer-events:none;opacity:.9;box-shadow:0 12px 32px #17203340;transform:rotate(1deg)}

.role-checks{display:flex;gap:1rem;flex-wrap:wrap;margin:.4rem 0 .8rem}.role-checks .check-label{margin-top:.35rem}
.event-linked-reservation-entry{border-left-color:#1d5fd1;background:#f4f7ff}
.bus-plan-editing-notice{padding:.8rem 1rem;margin:.8rem 0;background:#f4f7ff;border-left:4px solid #1d5fd1}
.bus-plan-editing-notice p{margin-bottom:0}
.bus-plan-public-editing{max-width:760px}
