body{color:#14334c;background:#f5f7f8}main{max-width:1450px;margin:36px auto;padding:0 26px}.page-title,.modal-head{display:flex;align-items:center;justify-content:space-between;gap:18px}h1{font-size:32px;margin:8px 0 26px}.eyebrow{font-size:11px;letter-spacing:1.6px;color:#657c8c;margin:0}.tabs{display:flex;border-bottom:1px solid #d3dee5;gap:22px;margin:0 0 22px}.tabs button{border:0;border-radius:0;background:transparent;padding:14px 0}.tabs button[aria-current=page]{border-bottom:3px solid #f58200;font-weight:700}.filters{display:flex;align-items:end;gap:10px;flex-wrap:wrap;margin-bottom:22px}.filters label{font-size:12px;display:grid;gap:5px}.filters input,.filters select{min-height:41px}.filters button{min-height:41px;padding:9px 14px}.calendar-wrap{background:white;border:1px solid #d3dee5;border-radius:8px;overflow:auto}.fleet-grid{min-width:920px}.calendar-head,.calendar-row{display:grid;grid-template-columns:175px 1fr}.aircraft-label{padding:18px;border-right:1px solid #d3dee5;display:grid;gap:6px;align-content:start}.aircraft-label small{color:#62798a;font-size:12px}.days{display:grid;grid-auto-flow:column;grid-auto-columns:1fr}.days div{padding:15px 8px;border-right:1px solid #e5ebee;text-align:center;font-size:12px}.calendar-row{border-top:1px solid #dbe3e9;min-height:90px}.timeline{position:relative;background:repeating-linear-gradient(to right,transparent 0,transparent calc(100% / var(--days) - 1px),#edf0f3 calc(100% / var(--days) - 1px),#edf0f3 calc(100% / var(--days)));min-height:90px}.reservation-bar{position:absolute;top:18px;height:54px;border:1px solid #c6dbe6;border-left:4px solid #ed880f;border-radius:5px;background:#edf5f9;min-width:36px;padding:7px 9px;font-size:12px;text-align:left;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.reservation-bar small{display:block;margin-top:4px}.reservation-bar.maintenance{background:#fcefeb;border-color:#e9bbae;border-left-color:#b52819}.reservation-bar.cancelled{opacity:.4;border-left-color:#8c9aa4}.legend,.hint{font-size:13px;color:#62798a;line-height:1.5}.legend{margin:16px 0}.agenda{display:none}.agenda-card,.log-card{background:white;border:1px solid #d3dee5;border-radius:7px;padding:18px;margin-bottom:12px}.agenda-card .row,.log-card .row{display:flex;gap:15px;align-items:center;justify-content:space-between}.subtle{font-size:13px;color:#637b8c}.row-actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:14px}.row-actions button{padding:8px 12px;font-size:13px}.status{font-size:12px;padding:5px 9px;border-radius:4px;background:#eef2f4;display:inline-block}.status.confirmed{background:#e6f3ed;color:#176b4d}.summary-strip{display:flex;gap:28px;margin:20px 0;background:#fff;padding:18px;border:1px solid #d3dee5;border-radius:7px}.summary-strip strong{display:block;font-size:20px;margin-top:5px}.empty{padding:50px 20px;text-align:center;color:#60788a;background:white;border:1px solid #d3dee5;border-radius:8px}dialog{width:min(740px,calc(100vw - 32px));max-height:90vh;overflow:auto;border:1px solid #cfdae2;border-radius:10px;padding:24px;color:#14334c}dialog::backdrop{background:#052b4966}.modal-head h2{margin:0 0 20px;font-size:23px}.modal-head button{border:0;background:transparent;font-size:28px;padding:0 8px;align-self:start}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}.form-grid label{font-size:13px;display:grid;gap:7px}.form-grid input,.form-grid select,.form-grid textarea{width:100%;box-sizing:border-box;min-height:43px}.form-grid .wide{grid-column:1/-1}.check-label{display:flex!important;align-items:center;gap:10px!important}.check-label input{width:18px;min-height:18px}.modal-actions{display:flex;gap:10px;justify-content:end;margin-top:24px;flex-wrap:wrap}.time-entry{display:grid;grid-template-columns:1fr auto;gap:5px}.time-entry button{padding:5px 10px;font-size:12px}.charge-preview{margin:18px 0;padding:12px;background:#f4f7f9;font-size:13px}details{margin-top:20px}summary{cursor:pointer;font-weight:600;margin-bottom:14px}.danger{background:#b62417!important;color:white!important;border-color:#b62417!important}#notice,#editor-error{padding:13px 16px;margin:16px 0;background:#fff4e2;border-left:3px solid #ed880f;line-height:1.5}#editor-error{color:#902319;background:#fff0ec}#identity{margin-left:auto;font-size:13px}.history-item{padding:14px 0;border-bottom:1px solid #dce4e9}.history-item pre{white-space:pre-wrap;overflow-wrap:anywhere;font-size:12px}.log-times{display:flex;gap:24px;margin-top:15px;flex-wrap:wrap}.log-times span{font-size:12px;color:#637b8c}.log-times strong{display:block;color:#14334c;margin-top:4px;font-size:16px}button:disabled{opacity:.5;cursor:wait}@media(max-width:700px){main{padding:0 15px;margin-top:24px}header{flex-wrap:wrap}#identity{width:100%;margin:0}h1{font-size:27px}.page-title{align-items:start}.page-title>.primary{font-size:13px;padding:11px}.filters{gap:8px}.filters #aircraft{max-width:200px}.calendar-wrap{display:none}.agenda{display:block}.form-grid{grid-template-columns:1fr}.form-grid .wide{grid-column:1}.summary-strip{gap:14px;font-size:12px}.summary-strip strong{font-size:17px}dialog{padding:18px}.agenda-card .row,.log-card .row{align-items:start;flex-wrap:wrap}}

.calendar-cells{display:grid}.calendar-cell{padding:8px;border-right:1px solid #e5ebee;min-height:92px}.day-booking{display:block;width:100%;text-align:left;background:#fff4e5;border:0;border-left:3px solid #f58200;padding:9px 7px;font-size:12px;margin:0 0 6px;min-height:62px}.day-booking strong,.day-booking span{display:block}.day-booking span{margin-top:5px;overflow-wrap:anywhere}.day-booking.maintenance{background:#fbece9;border-color:#ba291b}.available-day{display:block;color:#90a1ac;font-size:11px;padding:11px 4px}

/* Month calendar: one continuous Monday–Sunday grid with stacked booking lanes. */
.month-title{font-size:24px;margin:8px 0 18px;text-transform:capitalize}
.month-wrap{border-radius:6px;display:block;max-width:100%;margin-bottom:16px}
.month-grid{min-width:700px;color:var(--app-ink,#14334c);background:var(--app-surface,#fff)}
.month-weekdays,.month-week{display:grid;grid-template-columns:repeat(7,minmax(0,1fr))}
.month-weekdays{background:var(--app-raised,#edf2f5);border-bottom:1px solid var(--app-border,#d3dee5)}
.month-weekdays>div{padding:12px;font-size:13px;font-weight:600;border-right:1px solid var(--app-border,#d3dee5)}
.month-week{position:relative;grid-template-rows:38px repeat(var(--lanes),28px) minmax(12px,1fr);min-height:150px;border-bottom:1px solid var(--app-border,#d3dee5)}
.month-week:last-child{border-bottom:0}
.month-day{grid-row:1/-1;border-right:1px solid var(--app-border,#d3dee5);min-width:0;background:var(--app-surface,#fff)}
.month-day:last-of-type,.month-weekdays>div:last-child{border-right:0}
.month-day.weekend{background:var(--app-raised,#f6f8fa)}
.month-day.outside-month{background:var(--app-raised,#f1f4f6)}
.month-day.is-today{background:color-mix(in srgb,var(--app-surface,#fff) 90%,#f58200)}
.month-day-add{display:flex;align-items:center;justify-content:space-between;gap:4px;width:100%;height:38px;margin:0;padding:7px 10px;border:0;border-radius:0;background:transparent;color:inherit;text-align:left;font-size:13px}
.month-day-add span{font-size:18px;color:var(--app-muted,#5b7182)}
.month-day.is-today time{background:#002950;color:white;border-radius:3px;padding:3px 6px;font-weight:700}
.month-day-add:hover{background:color-mix(in srgb,var(--app-surface,#fff) 85%,#f58200)}
.month-booking{z-index:1;min-width:0;align-self:start;height:24px;margin:0 3px;padding:3px 7px;border:0;border-left:3px solid #ed880f;border-radius:2px;text-align:left;background:#fff0d9;color:#50340c;font-size:11px;line-height:18px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.month-booking strong{font-weight:700;margin-right:3px}
.month-booking.maintenance{border-color:#b52819;background:repeating-linear-gradient(135deg,#fbe9e5,#fbe9e5 5px,#f1d5cf 5px,#f1d5cf 6px);color:#75271c}
.month-booking.continues-before{border-left:0;border-radius:0 2px 2px 0}
.month-booking.continues-after{border-radius:2px 0 0 2px}
.month-booking:hover{filter:brightness(.94)}
.month-booking:focus-visible,.month-day-add:focus-visible{outline:2px solid #f58200;outline-offset:-2px}
@media(max-width:700px){.month-wrap{display:block}.month-grid{min-width:700px}.month-week{min-height:125px}.month-calendar+.legend{margin-bottom:22px}}

body.admin-page>main{width:min(100%,1600px);max-width:1600px}

.calendar-layout{display:grid;grid-template-columns:240px minmax(0,1fr);gap:24px;align-items:start}.calendar-layout:has(#range-picker[hidden]){grid-template-columns:minmax(0,1fr)}
#range-picker{background:var(--app-surface,#fff);border:1px solid var(--app-border,#d3dee5);border-radius:6px;padding:12px;user-select:none}#range-picker[hidden]{display:none}
.mini-navigation{display:flex;align-items:center;justify-content:space-between;gap:4px}.mini-navigation strong{font-size:12px}.mini-navigation button{padding:2px 9px;font-size:22px;border:0;background:transparent;color:inherit}
.mini-month{margin-top:16px}.mini-month h3{font-size:14px;text-align:center;margin:0 0 10px;text-transform:capitalize}.mini-weekdays,.mini-days{display:grid;grid-template-columns:repeat(7,minmax(0,1fr))}.mini-weekdays span{text-align:center;font-size:10px;padding:6px 0;color:var(--app-muted,#5b7182)}
.mini-days{touch-action:none}
.mini-days button{min-width:0;height:30px;padding:0;margin:0;border:0;border-radius:0;background:transparent;color:inherit;font-size:12px;font-weight:500}.mini-days button.mini-outside{color:var(--app-muted,#5b7182)}
.mini-days button.range-selected{background:#dcebf4;color:#002950}.mini-days button.range-edge{background:#002950;color:#fff}.mini-days button[aria-current=date]{font-weight:800;text-decoration:underline;text-underline-offset:4px}.mini-days button:focus-visible{outline:2px solid #f58200;outline-offset:-2px}
#range-picker .mini-hint{font-size:11px;line-height:1.5;margin:18px 0 12px;color:var(--app-muted,#5b7182)}#range-picker .mini-reset{font-size:11px;width:100%;padding:9px 4px}
@media(max-width:1000px){.calendar-layout{grid-template-columns:210px minmax(0,1fr);gap:14px}}
@media(max-width:700px){.calendar-layout{grid-template-columns:minmax(0,1fr)}#range-picker{display:grid;grid-template-columns:1fr 1fr;gap:12px}.mini-navigation,.mini-hint,.mini-reset{grid-column:1/-1}.mini-month{margin-top:0}.mini-days button{height:32px}}
#mobile-period{display:none}
#controls .period-arrow{min-width:52px;min-height:52px;font-size:24px;line-height:1;padding:10px}
@media(max-width:720px){
 #controls.filters{display:grid;grid-template-columns:52px minmax(0,1fr) minmax(0,1fr) 52px;gap:12px;align-items:center}
 #controls .calendar-date-filter,#controls #excel{display:none}
 #controls #previous{grid-column:1;grid-row:1}
 #controls #next{grid-column:4;grid-row:1}
 #mobile-period{display:block;grid-column:2 / 4;grid-row:1;text-align:center;font-size:15px;font-weight:600;line-height:1.4}
 #controls label:has(#span){grid-column:1 / 3;grid-row:2;min-width:0}
 #controls label:has(#aircraft){grid-column:3 / 5;grid-row:2;min-width:0}
 #controls select{width:100%;min-width:0;min-height:44px}
}
.flight-clock{font-size:24px!important;letter-spacing:.08em;font-variant-numeric:tabular-nums;min-height:52px}
.day-offset{font-size:12px;color:var(--app-ink,#14334c);min-height:14px}
#log-advanced{margin:20px 0;border-top:1px solid #d3dee5;padding-top:16px}
#log-advanced summary{padding:10px 0;cursor:pointer;font-weight:600}
#log-advanced .form-grid{margin-top:12px}
.log-main [data-log-field="flight_date"]{grid-column:1 / -1}
@media(max-width:600px){.log-main{grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:12px}.log-main input,.log-main select{min-width:0;width:100%;box-sizing:border-box}.log-main [data-log-field="from_icao"],.log-main [data-log-field="to_icao"]{min-width:0}}

/* Compact reservation entry: clocks stay paired while other fields stack on phones. */
#reservation-form .form-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
#reservation-form label,#reservation-form .form-grid>div{min-width:0}
#reservation-form input,#reservation-form select{max-width:100%;min-width:0;font-size:16px;min-height:48px}
.reservation-times{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
#reservation-time-hint{margin:0;overflow-wrap:anywhere}
#reservation-seats[hidden],#reservation-publish-hint[hidden]{display:none}
#reservation-form .check-label{min-height:48px}
#reservation-form .check-label input{width:22px;min-height:22px;flex-shrink:0}
#reservation-advanced{margin-top:0}
@media(max-width:600px){
 dialog#editor{box-sizing:border-box;width:calc(100vw - 16px);max-height:calc(100dvh - 16px);padding:18px}
 #reservation-form .form-grid{grid-template-columns:minmax(0,1fr)}
 #reservation-form .modal-actions{display:grid;grid-template-columns:1fr;width:100%}
 #reservation-form .modal-actions button{width:100%;min-height:48px;white-space:normal}
}
