/* Calendar H&H's control rhythm, adapted to Feeling's blue identity. */
:root{--ink:#172a3d;--muted:#526478;--page:#f2f5f8;--line:#d8e0e8;--soft-line:#e9eef3;--blue:#245fb4;--blue-soft:#eaf2ff;--green:#246944;--green-soft:#ebf6ee;--red:#aa3439;--red-soft:#fff0f0;--shadow-control:0 1px 2px #10243a0b,0 1px 1px #10243a08;--shadow-panel:0 3px 8px #10243a05,0 14px 32px #10243a08;--ease-out:cubic-bezier(.22,1,.36,1);font-family:Manrope,Inter,ui-sans-serif,system-ui,sans-serif}
body{font-size:13px}
button,input,select{transition:background-color 180ms var(--ease-out),border-color 180ms var(--ease-out),box-shadow 180ms var(--ease-out),transform 180ms var(--ease-out)}
button:not(:disabled):active{transform:translateY(1px)}
.appbar{min-height:52px;padding-inline:22px;grid-template-columns:1fr auto 1fr;gap:18px;box-shadow:0 2px 8px #10243a12}
.brand-lockup{width:132px;padding-block:9px}
.nav-button{font-size:12px;font-weight:600;min-height:34px;padding-inline:15px;border-radius:18px}
.nav-button svg{width:16px;height:16px}
.appbar-actions{gap:9px}
.heading-meta{gap:8px}
.appbar .sync-line{color:#cbd7e3;font-size:10px;max-width:180px}
.appbar .refresh-button{min-height:30px;width:30px;padding:6px;background:transparent;color:#dce7f0;border-color:transparent;border-radius:50%;box-shadow:none}
.refresh-button span{display:none}
.appbar .refresh-button:hover{background:#ffffff16;color:white}
.user-initials{width:29px;height:29px;font-weight:600}
.workspace{max-width:none;padding:12px 20px 12px}
.page-heading{position:absolute;width:1px;height:1px;overflow:hidden;margin:0;padding:0;clip:rect(0,0,0,0)}
.button{font-weight:600;border-radius:18px;min-height:34px;padding:6px 12px;box-shadow:var(--shadow-control)}
.button-quiet{box-shadow:none}
.icon-button{width:32px;min-width:32px;height:32px;border-radius:50%}
.calendar-card{border-radius:14px;box-shadow:var(--shadow-panel);overflow:clip}
.calendar-toolbar{padding:10px 14px 9px;background:#f7f9fb}
.toolbar-primary{gap:12px}
.view-switch{padding:3px;border:1px solid #dce3ea;background:#eaf0f4;border-radius:21px;gap:1px}
.view-button{min-height:30px;padding:5px 13px;border-radius:17px;font-size:12px;font-weight:600}
.view-button.is-active{background:#fff;color:var(--navy);box-shadow:0 1px 3px #10243a22}
.view-button:hover{background:#ffffffaa}
.period-nav{gap:4px;min-width:0}
.period-nav h2{font-size:15px;font-weight:700;min-width:0;margin-inline:6px;letter-spacing:-.02em}
.period-nav .icon-button{height:32px}
.today-button{min-height:30px;margin-left:4px;font-weight:600}
.calendar-card[data-view=month] .period-nav h2,.calendar-card[data-view=day] .period-nav h2{display:none}
.period-nav .date-field{margin:0;flex:none}
.period-nav .date-field>span{display:none}
.period-nav .date-field input{height:32px;width:164px;max-width:none;padding:5px 9px;background:#fff;border:1px solid var(--line);border-radius:18px;box-shadow:var(--shadow-control);font-size:12px;font-weight:700}
.calendar-card[data-view=week] .period-nav .date-field{display:none}
.toolbar-tools{gap:5px}
.density-toggle{font-size:11px;border-color:var(--line);background:white}
.density-toggle svg{width:14px;height:14px}
.density-toggle[aria-pressed=true]{border-color:#b8cce0;color:#214f7c;background:#edf4fb}
.filter-toggle{display:inline-flex;min-height:32px;font-size:11px}
.toolbar-secondary{display:none;margin:8px 0 0}
.toolbar-secondary:has(.date-controls>label:not([hidden])){display:flex;justify-content:center}
.date-controls{gap:10px;justify-content:center}
.date-controls .date-field{flex:none}
.date-controls .date-field input{height:34px;width:143px;font-size:12px;border-radius:17px;box-shadow:var(--shadow-control)}
.date-controls .date-field span{font-size:11px}
.history-button{flex:none}
.filter-row{display:none;gap:8px;margin-top:9px;align-items:center;flex-wrap:nowrap}
.filter-row.is-open{display:flex}
.filter-row>.field{flex:1 1 130px;min-width:100px}
.filter-row>.field>span{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0)}
.filter-row .client-filter{flex:1.2 1 150px}
.filter-row .search-control{height:34px;flex:1.4 1 220px;min-width:150px;max-width:280px;border-radius:18px;background:#fff;box-shadow:var(--shadow-control);padding-inline:11px}
.search-control input{font-size:11px;font-weight:500}
.check-control{min-height:34px;font-size:10px;font-weight:500}
.clear-filters{padding-inline:6px;min-height:32px;font-size:11px}
.multi-trigger{display:flex;align-items:center;justify-content:space-between;gap:8px;width:100%;height:34px;padding:0 11px;border:1px solid var(--line);border-radius:18px;background:#fff;box-shadow:var(--shadow-control);font-size:11px;font-weight:600;text-align:left}
.multi-trigger>span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.multi-trigger svg{width:15px;height:15px;flex:0 0 15px;color:var(--muted);transition:transform 180ms var(--ease-out)}
.multi-trigger:hover{border-color:#a9bacb;box-shadow:0 2px 5px #10243a12}
.multi-trigger[aria-expanded=true] svg{transform:rotate(180deg)}
.multi-trigger.has-selection{border-color:#a5bfd9;background:#f1f6fc;color:#244d78}
.multi-menu{position:fixed;inset:auto;margin:0;padding:7px;border:1px solid #d2dce6;border-radius:15px;background:#fff;color:var(--ink);box-shadow:0 12px 32px #10243a28;overflow:hidden;font:12px/1.4 Manrope,Inter,sans-serif}
.multi-menu:popover-open{display:flex;flex-direction:column;animation:menu-in 140ms var(--ease-out)}
.multi-menu::backdrop{background:transparent}
.multi-search{padding:3px 3px 7px}
.multi-search input{width:100%;height:35px;padding:8px 11px;border-radius:9px;background:#f5f7fa;border:1px solid #e2e8ef;font-size:12px}
.multi-options{overflow:auto;overscroll-behavior:contain;min-height:0;max-height:260px;padding:2px}
.multi-options label{display:flex;align-items:center;gap:9px;min-height:37px;padding:7px 9px;border-radius:8px;cursor:pointer}
.multi-options label:hover,.multi-options label:focus-within{background:#eef3f8}
.multi-options label:has(input:checked){background:#edf4fc;color:#244d78}
.multi-options label+label{margin-top:2px}
.multi-options input{width:16px;height:16px;accent-color:var(--navy);flex:0 0 16px;margin:0}
.multi-all{border:0;background:transparent;text-align:left;padding:9px;font-size:12px;font-weight:700;border-radius:8px}
.multi-all[aria-pressed=true]{background:#edf4fc;color:#244d78}
.multi-empty{padding:15px 9px;color:var(--muted)}
.multi-foot{display:flex;align-items:center;justify-content:space-between;gap:10px;border-top:1px solid var(--soft-line);margin-top:6px;padding:8px 4px 2px;color:var(--muted);font-size:10px}
.multi-foot .button{font-size:11px;min-height:30px;background:var(--navy);color:white;border-color:var(--navy)}
.results-bar{min-height:29px;padding:6px 14px;background:#fff;gap:10px}
.results-bar p{font-size:10px}
.results-bar p strong{font-weight:700}
.status-legend{gap:11px;font-size:10px}
.legend-dot.confirmed{background:var(--green)}
.legend-dot.flown{background:var(--blue)}
.legend-dot.cancelled{background:var(--red)}
.legend-dot.blocked{background:var(--gray)}
.calendar-footer{padding:7px 14px;font-size:9px;min-height:27px}
.view-content{min-height:0}
.month-day{padding:5px 6px 7px;min-height:130px}
.weekday{padding:7px 5px;font-weight:600;font-size:10px}
.day-heading{min-height:22px;margin-bottom:3px}
.day-number{width:23px;height:23px;font-size:11px;font-weight:600}
.flight-chip{font-weight:500;box-shadow:0 1px 2px #10243a07;border-radius:6px}
.flight-chip.is-confirmed{color:#215837;background:#edf7f0;border-color:#cbe3d2}
.flight-chip.is-confirmed:hover{background:#e0f0e5;border-color:#97c6a6}
.flight-chip.is-flown{color:#204f91;background:#edf4ff;border-color:#cdddf7}
.flight-chip.is-flown:hover{background:#e0ecff;border-color:#9db9e7}
.flight-chip.is-cancelled{color:#942d32;background:#fff0f0;border-color:#f1cfd0}
.flight-chip.is-cancelled:hover{background:#fbe1e2;border-color:#dd9da1}
.flight-chip.is-unknown{color:#526478;background:#f2f5f8;border-color:#dce3ea}
.flight-chip.is-pending{color:#785313;background:#fff6e4;border-color:#eedbb2}
.chip-top,.chip-route{font-weight:650}
.is-compact .month-grid{height:var(--month-height,600px);grid-template-rows:27px repeat(var(--month-weeks,5),minmax(0,1fr));min-width:0}
.is-compact .month-day{min-height:0;padding:3px 5px 4px;overflow:hidden}
.is-compact .day-heading{margin-bottom:2px;min-height:23px}
.compact-chip{display:flex;align-items:center;gap:5px;height:21px;min-height:21px;padding:2px 5px;margin-bottom:3px;border-radius:4px;line-height:1.2;font-size:10px}
.compact-route{display:flex;align-items:center;gap:3px;flex:1;min-width:0;white-space:nowrap}
.compact-route>span:not(.compact-arrow){overflow:hidden;text-overflow:ellipsis;min-width:0;flex:0 1 auto}
.compact-arrow{font-size:10px;flex:none;opacity:.7}
.compact-aircraft{font-size:9px;flex:none;font-weight:700;letter-spacing:-.01em}
.more-flights{min-height:20px;padding:2px 5px;font-size:10px;font-weight:600;color:#395a79}
.more-flights:hover{background:#e8f0f8}
.state-pill{font-weight:650}
.state-pill.is-confirmed{color:var(--green);background:var(--green-soft)}
.state-pill.is-flown{color:var(--blue);background:var(--blue-soft)}
.state-pill.is-cancelled{color:var(--red);background:var(--red-soft)}
.range-agenda{padding:0 16px}
.range-day{display:grid;grid-template-columns:120px minmax(0,1fr);gap:18px;padding:14px 0;border-bottom:1px solid var(--soft-line);align-items:start}
.range-day:last-child{border-bottom:0}
.range-day>header{display:flex;align-items:center;gap:12px}
.range-date{display:flex;align-items:center;gap:7px;padding:0;border:0;background:transparent;text-align:left}
.range-date strong{font-size:23px;font-weight:500;letter-spacing:-.04em}
.range-date>span{font-size:10px;text-transform:capitalize;max-width:38px;color:var(--muted)}
.range-count{font-size:9px;color:var(--muted);max-width:38px}
.range-flights{display:flex;flex-wrap:wrap;gap:5px}
.range-flights .compact-chip{flex:0 1 280px;height:30px;font-size:11px;min-width:190px;margin:0;padding:4px 8px;gap:10px}
.range-flights .compact-aircraft{font-size:10px}
.range-empty{font-size:11px;color:var(--muted);padding-block:7px}
.range-day.is-today .range-date strong{color:var(--blue);font-weight:700}
.day-dialog{width:min(600px,calc(100vw - 28px));max-height:calc(100dvh - 40px);border:1px solid var(--line);border-radius:17px;padding:20px;background:#fff;color:var(--ink);box-shadow:0 22px 80px #0c234040;overflow:auto}
.day-dialog::backdrop{background:#0c234040;backdrop-filter:blur(2px)}
.day-dialog-head{display:flex;align-items:center;justify-content:space-between;gap:15px;margin-bottom:17px}
.day-dialog h2{font-size:17px;font-weight:650;text-transform:capitalize}
.day-dialog p{font-size:11px;color:var(--muted);margin-top:5px}
#dayDialogFlights{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px;margin-bottom:15px}
#dayDialogFlights .flight-chip{margin:0;padding:11px;gap:5px}
.coverage-notice{margin-top:9px;font-size:10px}
.page-footer{margin-top:10px;font-size:9px}
.detail-dialog[open]{animation:detail-in 180ms var(--ease-out)}
@keyframes menu-in{from{opacity:.3;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}
@keyframes detail-in{from{opacity:.5;transform:translateX(12px)}to{opacity:1;transform:translateX(0)}}
@media(min-width:1500px){.is-compact .month-day{min-height:0;padding:4px 6px}.is-compact .compact-chip{padding:2px 6px}.compact-chip{font-size:11px}.compact-aircraft{font-size:10px}}
@media(max-width:1150px){.filter-row{flex-wrap:wrap}.filter-row>.field,.filter-row>.client-filter{flex:1 1 140px;min-width:110px}.filter-row .search-control{flex:1.2 1 200px}.toolbar-primary{flex-wrap:wrap}.period-nav{margin-left:auto}.toolbar-tools{margin-left:auto}.calendar-toolbar{padding:9px 12px}.month-grid:not(.is-compact *){min-width:760px}}
@media(max-width:800px){.appbar{display:flex;flex-wrap:nowrap;padding-inline:14px;gap:10px;min-height:48px}.brand-lockup{width:115px;min-height:0}.primary-nav{display:none}.appbar-actions{gap:4px}.heading-meta{flex-direction:row;gap:4px}.appbar .sync-line{max-width:none}.appbar .sync-line #syncText{display:none}.appbar .header-icon{width:31px;min-width:31px;height:31px}.workspace{padding:8px}.toolbar-primary{gap:7px}.view-switch{order:2}.period-nav{order:1;justify-content:center;flex:1 0 100%;margin:0;gap:5px}.toolbar-tools{order:3;margin-left:auto;gap:3px}.view-button{padding:5px 11px;min-height:30px;font-size:11px}.filter-toggle{padding:5px 8px}.toolbar-secondary{margin-top:8px}.filter-row{display:none;margin-top:9px;border-top:1px solid var(--line);padding-top:10px;gap:8px}.filter-row.is-open{display:flex}.filter-row>.field,.filter-row>.client-filter{flex:1 1 calc(50% - 8px);width:calc(50% - 8px);min-width:0}.filter-row .search-control{flex:1 0 100%;max-width:none;width:100%}.multi-trigger{height:39px;font-size:12px}.check-control{min-height:35px;flex:1}.results-bar{padding:6px 10px;gap:5px}.results-bar p{font-size:9px}.status-legend{font-size:9px;gap:9px}.calendar-footer{padding:6px 10px;flex-direction:row;min-height:26px;font-size:8px}.calendar-footer>span:last-child{display:none}.calendar-card{border-radius:12px}.is-compact .month-grid{min-width:0}.month-grid{min-width:760px}.date-controls{flex-wrap:wrap;justify-content:center;flex-basis:100%;gap:6px}.date-controls .date-field{flex:1;min-width:0}.date-controls .date-field input{width:100%;min-width:0;font-size:12px}.history-button{flex:1 0 100%}.range-day{grid-template-columns:88px minmax(0,1fr);gap:8px;padding-block:12px}.range-day>header{gap:5px;flex-wrap:wrap}.range-count{max-width:none;flex-basis:100%;font-size:9px}.range-date strong{font-size:22px}.range-flights .compact-chip{min-width:0;flex:1 0 100%;height:32px}.range-agenda{padding-inline:12px}.multi-options label{min-height:42px}.multi-menu input[type=search]{font-size:16px}.page-footer{padding-inline:3px;margin-top:10px}.coverage-notice{padding-inline:3px}}
@media(max-width:600px){.appbar .user-initials{display:none}.calendar-toolbar{padding:8px}.view-switch{padding:2px}.view-button{padding-inline:8px;font-size:10px}.density-toggle{width:30px;padding:5px;min-height:30px}.density-toggle>span{display:none}.toolbar-tools>.icon-button{display:none}.filter-toggle{font-size:10px;min-height:30px;padding-inline:7px;gap:4px}.filter-toggle svg{width:13px;height:13px}.calendar-toolbar .period-nav{order:1}.is-compact .weekday{padding:5px 0;font-size:9px}.is-compact .month-day{padding:2px 2px 3px}.is-compact .day-heading{padding:0;min-height:23px;margin-bottom:2px}.is-compact .day-count{font-size:8px;padding-right:1px}.is-compact .day-number{width:21px;height:21px;font-size:10px}.is-compact .compact-chip{display:flex;flex-direction:column;align-items:stretch;justify-content:center;gap:2px;height:36px;min-height:36px;padding:2px 3px;margin-bottom:3px;font-size:8px}.is-compact .compact-route{display:block;flex:none;overflow:hidden;line-height:1.2;white-space:normal}.is-compact .compact-route>span:not(.compact-arrow){display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.is-compact .compact-arrow{display:none}.is-compact .compact-aircraft{font-size:8px;line-height:1.1;white-space:nowrap;letter-spacing:-.025em}.is-compact .more-flights{font-size:8px;padding:2px;min-height:21px}.status-legend{gap:7px}.legend-dot{width:5px;height:5px}.results-bar{display:grid;gap:4px}.calendar-footer{padding-block:5px}.day-dialog{padding:16px}.day-dialog h2{font-size:15px}#dayDialogFlights{grid-template-columns:1fr}.range-day{grid-template-columns:72px minmax(0,1fr)}.range-flights .compact-chip{font-size:10px}.range-flights .compact-aircraft{font-size:9px}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}
