html, body {
    font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif;
}

a, .btn-link {
    color: #006bb7;
}

.btn-primary {
    color: #fff;
    background-color: #1b6ec2;
    border-color: #1861ac;
}

.btn:focus, .btn:active:focus, .btn-link.nav-link:focus, .form-control:focus, .form-check-input:focus {
  box-shadow: 0 0 0 0.1rem white, 0 0 0 0.25rem #258cfb;
}

.content {
    padding-top: 1.1rem;
}
label { display: block; margin: .5rem 0; }
input, select, textarea, button { min-height: 44px; }
.form-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: 1rem; }
.toolbar { display: flex; flex-wrap: wrap; align-items: end; gap: .75rem; margin-bottom: .75rem; }
.toolbar > label { flex: 1 1 140px; }
.toolbar > select { width: auto; max-width: 100%; }
.calendar-grid { display: grid; grid-template-columns: repeat(7, minmax(130px, 1fr)); overflow-x: auto; }
.calendar-cell { border: 1px solid #d6d5d5; padding: .5rem; min-height: 140px; }
.calendar-day { grid-template-columns: 1fr; }
.card { overflow-wrap: anywhere; }
@media (max-width: 640px) { .calendar-grid { grid-template-columns: 1fr; } .calendar-cell { min-height: auto; } .table { font-size: .9rem; } }

h1:focus {
    outline: none;
}

.valid.modified:not([type=checkbox]) {
    outline: 1px solid #26b050;
}

.invalid {
    outline: 1px solid #e50000;
}

.validation-message {
    color: #e50000;
}

.blazor-error-boundary {
    background: url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNTYiIGhlaWdodD0iNDkiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIG92ZXJmbG93PSJoaWRkZW4iPjxkZWZzPjxjbGlwUGF0aCBpZD0iY2xpcDAiPjxyZWN0IHg9IjIzNSIgeT0iNTEiIHdpZHRoPSI1NiIgaGVpZ2h0PSI0OSIvPjwvY2xpcFBhdGg+PC9kZWZzPjxnIGNsaXAtcGF0aD0idXJsKCNjbGlwMCkiIHRyYW5zZm9ybT0idHJhbnNsYXRlKC0yMzUgLTUxKSI+PHBhdGggZD0iTTI2My41MDYgNTFDMjY0LjcxNyA1MSAyNjUuODEzIDUxLjQ4MzcgMjY2LjYwNiA1Mi4yNjU4TDI2Ny4wNTIgNTIuNzk4NyAyNjcuNTM5IDUzLjYyODMgMjkwLjE4NSA5Mi4xODMxIDI5MC41NDUgOTIuNzk1IDI5MC42NTYgOTIuOTk2QzI5MC44NzcgOTMuNTEzIDI5MSA9NC4wODE1IDI5MSA5NC42NzgyIDI5MSA5Ny4wNjUxIDI4OS4wMzggOTkgMjg2LjYxNyA5OUwyNDAuMzgzIDk5QzIzNy45NjMgOTkgMjM2IDk3LjA2NTEgMjM2IDk0LjY3ODIgMjM2IDk0LjM3OTkgMjM2LjAzMSA5NC4wODg2IDIzNi4wODkgOTMuODA3MkwyMzYuMzM4IDkzLjAxNjIgMjM2Ljg1OCA5Mi4xMzE0IDI1OS40NzMgNTMuNjI5NCAyNTkuOTYxIDUyLjc5ODUgMjYwLjQwNyA1Mi4yNjU4QzI2MS4yIDUxLjQ4MzcgMjYyLjI5NiA1MSAyNjMuNTA2IDUxWk0yNjMuNTg2IDY2LjAxODNDMjYwLjczNyA2Ni4wMTgzIDI1OS4zMTMgNjcuMTI0NSAyNTkuMzEzIDY5LjMzNyAyNTkuMzEzIDY5LjYxMDIgMjU5LjMzMiA2OS44NjA4IDI1OS4zNzEgNzAuMDg4N0wyNjEuNzk1IDg0LjAxNjEgMjY1LjM4IDg0LjAxNjEgMjY3LjgyMSA2OS43NDc1QzI2Ny44NiA2OS43MzA5IDI2Ny44NzkgNjkuNTg3NyAyNjcuODc5IDY5LjMxNzkgMjY3Ljg3OSA2Ny4xMTgyIDI2Ni40NDggNjYuMDE4MyAyNjMuNTg2IDY2LjAxODNaTTI2My41NzYgODYuMDU0N0MyNjEuMDQ5IDg2LjA1NDcgMjU5Ljc4NiA4Ny4zMDA1IDI1OS43ODYgODkuNzkyMSAyNTkuNzg2IDkyLjI4MzcgMjYxLjA0OSA5My41Mjk1IDI2My41NzYgOTMuNTI5NSAyNjYuMTE2IDkzLjUyOTUgMjY3LjM4NyA5Mi4yODM3IDI2Ny4zODcgODkuNzkyMSAyNjcuMzg3IDg3LjMwMDUgMjY2LjExNiA4Ni4wNTQ3IDI2My41NzYgODYuMDU0N1oiIGZpbGw9IiNGRkU1MDAiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPjwvZz48L3N2Zz4=) no-repeat 1rem/1.8rem, #b32121;
    padding: 1rem 1rem 1rem 3.7rem;
    color: white;
}

    .blazor-error-boundary::after {
        content: "An error has occurred."
    }

.darker-border-checkbox.form-check-input {
    border-color: #929292;
}

.form-floating > .form-control-plaintext::placeholder, .form-floating > .form-control::placeholder {
    color: var(--bs-secondary-color);
    text-align: end;
}

.form-floating > .form-control-plaintext:focus::placeholder, .form-floating > .form-control:focus::placeholder {
    text-align: start;
}

:root { color-scheme: dark; --background:#0B1725; --highlight:#173750; --surface:#112235; --control:#192F44; --border:#2A4056; --text:#EEF4FC; --secondary:#A6B7CB; --accent:#8BDEF7; --success:#A0EBBC; --error:#FFB5B7; --warning:#F4D59D; --space-1:.25rem; --space-2:.5rem; --space-3:.75rem; --space-4:1rem; --space-6:1.5rem; --space-8:2rem; --radius-sm:8px; --radius:14px; --shadow:0 20px 60px #0005; --focus:0 0 0 3px #8BDEF766; --font: 'Segoe UI', system-ui, sans-serif; --bs-body-bg:var(--background); --bs-body-color:var(--text); --bs-secondary-color:var(--secondary); --bs-border-color:var(--border); }
* { box-sizing:border-box; }
html,body { background:var(--background); color:var(--text); font-family:var(--font); line-height:1.55; margin:0; }
a,.btn-link { color:var(--accent); text-underline-offset:3px; }
a:hover { color:var(--text); }
h1,h2,h3,h4 { color:var(--text); font-weight:700; letter-spacing:-.04em; }
h1 { font-size:clamp(2rem,4vw,3rem); line-height:1.1; margin:0 0 1rem; }
h2 { font-size:1.35rem; margin-top:1.8rem; } h3 { font-size:1.1rem; }
p,small { overflow-wrap:anywhere; } small,.text-muted,.text-secondary { color:var(--secondary)!important; }
:focus-visible { outline:2px solid var(--accent); outline-offset:3px; }
.skip-link { position:fixed; top:-100px; left:1rem; z-index:2000; padding:1rem; background:var(--surface); }.skip-link:focus { top:1rem; }
.page-heading { display:flex; align-items:center; justify-content:space-between; gap:var(--space-6); margin-bottom:var(--space-8); padding:var(--space-6); border:1px solid var(--border); border-radius:var(--radius); background:radial-gradient(ellipse at top right,var(--highlight),transparent 65%),var(--surface); }
.page-heading h1 { margin-bottom:.6rem; }.eyebrow,.nav-group { text-transform:uppercase; letter-spacing:.16em; font-size:.68rem; font-weight:700; color:var(--secondary); }.eyebrow { margin-bottom:.6rem; }.page-description { color:var(--secondary); max-width:65ch; margin:0; }.page-actions,.action-row { display:flex; gap:.6rem; align-items:center; flex-wrap:wrap; }
.btn,button,input,select,textarea { font:inherit; }.btn,button { min-height:44px; border-radius:var(--radius-sm); font-weight:600; }.btn { display:inline-flex; align-items:center; justify-content:center; gap:.4rem; padding:.6rem 1rem; }.btn-primary,.btn-success { background:var(--accent); color:var(--background); border:1px solid var(--accent); }.btn-primary:hover,.btn-success:hover { background:var(--text); color:var(--background); border-color:var(--text); }.btn-secondary,.btn-outline-secondary { background:var(--control); border:1px solid var(--border); color:var(--text); }.btn-outline-primary,.btn-outline-success { color:var(--accent); border:1px solid var(--border); background:transparent; }.btn-outline-danger { color:var(--error); border:1px solid var(--error); background:transparent; }.btn-outline-primary:hover,.btn-outline-secondary:hover,.btn-outline-success:hover { background:var(--control); color:var(--text); border-color:var(--accent); }.btn-outline-danger:hover { background:var(--error); color:var(--background); }.btn:focus,.form-control:focus,.form-select:focus { box-shadow:var(--focus); border-color:var(--accent); }.btn:disabled { opacity:.5; }
label { display:block; font-size:.85rem; color:var(--secondary); margin:.7rem 0; }input,select,textarea { min-height:44px; }input[type=checkbox] { min-height:20px; width:20px; vertical-align:middle; accent-color:var(--accent); }input[type=file] { max-width:100%; }.form-control,.form-select { margin-top:.4rem; background-color:var(--background); color:var(--text); border:1px solid var(--border); border-radius:var(--radius-sm); min-height:46px; }.form-control:focus,.form-select:focus { background-color:var(--background); color:var(--text); }.form-control::placeholder { color:var(--secondary); opacity:.7; }.form-select option { background:var(--surface); color:var(--text); }
form:not(.plain-form) { background:var(--surface); border:1px solid var(--border); border-radius:var(--radius); padding:var(--space-6); margin-block:var(--space-4); }fieldset { min-width:0; }fieldset legend { float:none; width:auto; font-size:1rem; color:var(--accent); }.form-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(min(240px,100%),1fr)); gap:0 var(--space-6); }.form-section { border:0; border-top:1px solid var(--border); padding-top:1rem; margin-top:1.4rem; }.form-actions { display:flex; flex-wrap:wrap; gap:.7rem; margin-top:1.5rem; padding-top:1rem; border-top:1px solid var(--border); }.validation-message,.validation-errors,.text-danger { color:var(--error)!important; }.invalid { border-color:var(--error)!important; }.valid.modified:not([type=checkbox]) { border-color:var(--success); }
.toolbar,.filter-bar { display:flex; gap:.8rem; flex-wrap:wrap; align-items:end; margin-bottom:1rem; background:var(--surface); border:1px solid var(--border); border-radius:var(--radius); padding:1rem; }.toolbar>label,.filter-bar>label { flex:1 1 140px; margin:0; }.toolbar>select { width:auto; }.view-switcher { display:flex; flex-wrap:wrap; gap:.4rem; margin-bottom:1rem; }.view-switcher .btn { flex:1 1 auto; }
.card,.panel,.metric-card,.detail-panel { background:var(--surface); color:var(--text); border:1px solid var(--border); border-radius:var(--radius); overflow-wrap:anywhere; }.card h2 { margin-top:0; }.panel { padding:1.4rem; margin-bottom:1rem; }.metric-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:1rem; margin-bottom:1.5rem; }.metric-card { display:flex; flex-direction:column; padding:1.3rem; text-decoration:none; transition:border-color .15s; }.metric-card:hover { border-color:var(--accent); }.metric-value { font-size:2.5rem; line-height:1.2; letter-spacing:-.05em; font-variant-numeric:tabular-nums; color:var(--text); }.metric-caption { color:var(--secondary); font-size:.8rem; margin-top:.6rem; }.metric-caption span { color:var(--accent); }.numeric,.table { font-variant-numeric:tabular-nums; }.numeric { text-align:right; }
.table-responsive { border:1px solid var(--border); border-radius:var(--radius); margin-bottom:1rem; background:var(--surface); }.table { --bs-table-color:var(--text); --bs-table-bg:var(--surface); --bs-table-border-color:var(--border); --bs-table-striped-bg:var(--control); --bs-table-hover-bg:var(--control); color:var(--text); margin:0; }.table>:not(caption)>*>* { padding:.85rem 1rem; vertical-align:middle; }.table thead th { background:var(--control); color:var(--secondary); text-transform:uppercase; letter-spacing:.08em; font-size:.65rem; white-space:nowrap; }.table tbody tr:hover { background:var(--control); }.table td:nth-last-child(2) { font-variant-numeric:tabular-nums; }
.status-badge { display:inline-flex; align-items:center; padding:.25rem .55rem; font-size:.7rem; font-weight:650; border-radius:6px; border:1px solid currentColor; line-height:1.4; }.status-success { color:var(--success); }.status-error { color:var(--error); }.status-warning { color:var(--warning); }.status-neutral { color:var(--secondary); }.alert { color:var(--text); background:var(--control); border:1px solid var(--border); border-left:3px solid var(--accent); border-radius:var(--radius-sm); }.alert-danger { border-left-color:var(--error); }
.empty-state { text-align:center; border:1px dashed var(--border); border-radius:var(--radius); padding:2.5rem 1rem; color:var(--secondary); margin-block:1rem; }.empty-state h2 { margin-top:.5rem; }.empty-symbol { color:var(--accent); font-size:2rem; }.loading-state { padding:1.5rem; color:var(--secondary); }.detail-panel { margin-bottom:1rem; }.detail-panel summary { padding:1rem; cursor:pointer; font-weight:650; }.detail-body { padding:0 1rem 1rem; }details:not(.navigation-drawer) { margin-block:.6rem; }summary { cursor:pointer; min-height:44px; padding:.5rem 0; }pre { white-space:pre-wrap; color:var(--secondary); }
.calendar-grid { display:grid; grid-template-columns:repeat(7,minmax(0,1fr)); border:1px solid var(--border); border-radius:var(--radius); overflow:hidden; background:var(--surface); }.calendar-cell { border:1px solid var(--border); padding:.55rem; min-height:160px; min-width:0; }.calendar-cell h2 { color:var(--secondary); font-size:.75rem; margin:.2rem 0 .7rem; letter-spacing:0; }.calendar-day { grid-template-columns:1fr; }.leg-card { padding:1rem; margin-bottom:.65rem; border-left:3px solid var(--accent); }.leg-card .route { font-size:1.2rem; letter-spacing:-.03em; color:var(--text); }.leg-card.compact { padding:.55rem; font-size:.75rem; }.leg-card.compact .route { font-size:.9rem; }.leg-meta { display:flex; gap:.6rem; flex-wrap:wrap; color:var(--secondary); font-size:.8rem; margin:.5rem 0; }.crew-row { display:flex; justify-content:space-between; gap:1rem; padding:.7rem 0; border-bottom:1px solid var(--border); }.calendar-workspace { display:grid; grid-template-columns:minmax(0,1fr); gap:1rem; }.calendar-workspace:has(.flight-detail) { grid-template-columns:minmax(0,1fr) 340px; }.flight-detail { position:sticky; top:1rem; align-self:start; max-height:85dvh; overflow-y:auto; }.event-button { text-align:left; width:100%; background:var(--control); border:1px solid var(--border); color:var(--text); padding:.5rem; margin-bottom:.4rem; border-left:3px solid var(--accent); }.event-button strong,.event-button small { display:block; }.event-button:hover { border-color:var(--accent); }.agenda-hint { display:none; }
.receipt-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(180px,1fr)); gap:1rem; }.receipt-card { padding:1rem; background:var(--background); border:1px solid var(--border); border-radius:var(--radius-sm); }.receipt-thumbnail { width:100%; height:130px; object-fit:contain; background:var(--control); border-radius:6px; }.pdf-icon { display:grid; place-items:center; height:130px; color:var(--accent); font-weight:700; letter-spacing:.2em; background:var(--control); border-radius:6px; }.receipt-name { display:block; font-size:.8rem; margin:.7rem 0; overflow-wrap:anywhere; }.receipt-drop { padding:1.4rem; border:1px dashed var(--accent); border-radius:var(--radius); background:var(--background); margin-block:1rem; position:relative; }.receipt-drop.drag-over { background:var(--control); }.receipt-picker { position:relative; display:inline-flex; overflow:hidden; }.receipt-picker input[type=file] { position:absolute; inset:0; opacity:0; width:100%; cursor:pointer; }.receipt-picker:focus-within { outline:2px solid var(--accent); outline-offset:3px; }.upload-row { display:flex; gap:1rem; align-items:center; flex-wrap:wrap; padding:.7rem; border-bottom:1px solid var(--border); }.upload-row span:first-child { flex:1; }.receipt-preview { width:100%; min-height:55dvh; border:1px solid var(--border); background:var(--background); }.public-page { min-height:100dvh; display:grid; place-items:center; padding:1rem; background:radial-gradient(ellipse at top,var(--highlight),transparent 65%),var(--background); }.public-card { width:100%; max-width:620px; padding:clamp(1.25rem,4vw,2.5rem); background:var(--surface); border:1px solid var(--border); border-radius:var(--radius); box-shadow:var(--shadow); }.public-card h1 { font-size:2.2rem; }.public-card footer { margin-top:2rem; color:var(--secondary); font-size:.75rem; }.public-card form { padding:0; border:0; }.public-brand { color:var(--accent); font-weight:750; letter-spacing:-.03em; margin-bottom:2rem; }.blazor-error-boundary { color:var(--error); background:var(--surface); border:1px solid var(--error); padding:1rem; }.blazor-error-boundary::after { content:'Something went wrong. Reload to reconnect.'; }
body { background:radial-gradient(ellipse at top right,var(--highlight) 0%,var(--background) 55%),var(--background); }
.page-heading { background:none; border:0; border-radius:0; padding:0; margin-bottom:1.25rem; align-items:flex-end; }
.page-heading h1 { font-size:clamp(1.9rem,4vw,2.8rem); line-height:1.08; margin:0 0 .35rem; }
.eyebrow { color:var(--accent); letter-spacing:.14em; }
.page-description { max-width:62ch; }
.panel,.card,.metric-card,.table-responsive { border-radius:12px; box-shadow:none; }
.metric-grid { gap:.65rem; margin-bottom:1rem; }
.metric-card { padding:.8rem .9rem; }
.metric-value { font-size:1.7rem; letter-spacing:-.02em; }
.metric-caption { font-size:.75rem; margin-top:.25rem; }
.toolbar,.filter-bar { background:none; border:0; padding:0; }
.calendar-filters { border-bottom:1px solid var(--border); margin-bottom:1rem; }
.calendar-filters > summary { color:var(--accent); font-weight:650; padding:.35rem 0; }
.calendar-filters > summary .text-muted { margin-left:.45rem; font-size:.8rem; }
.calendar-filters .toolbar { padding:.35rem 0 0; }
@media (max-width:700px) { .calendar-filters > summary .text-muted { display:block; margin-left:0; } }
@media (max-width:1200px) { .calendar-workspace:has(.flight-detail) { grid-template-columns:1fr; }.flight-detail { position:static; } }
@media (max-width:700px) { .page-heading { flex-direction:column; align-items:stretch; padding:1.25rem; }.page-actions .btn { width:100%; }.metric-grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:.65rem; }.metric-card { padding:1rem; }.metric-value { font-size:2rem; }.calendar-grid { grid-template-columns:1fr; }.calendar-cell { min-height:100px; }.calendar-workspace .flight-detail { position:fixed; bottom:0; left:0; right:0; z-index:100; max-height:82dvh; overflow-y:auto; border-radius:18px 18px 0 0; box-shadow:0 -20px 80px #0009; margin:0; padding-bottom:calc(1rem + env(safe-area-inset-bottom)); }.agenda-hint { display:block; }.secondary-column { display:none; }.table { font-size:.85rem; }.table>:not(caption)>*>* { padding:.7rem; }.form-grid { grid-template-columns:1fr; }form:not(.plain-form) { padding:1rem; }.form-actions .btn { flex:1 1 100%; }.toolbar,.filter-bar { gap:.6rem; }.crew-row { flex-wrap:wrap; }.receipt-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }.receipt-card { padding:.6rem; }.receipt-thumbnail,.pdf-icon { height:100px; } }
@media (prefers-reduced-motion:reduce) { *,*::before,*::after { transition:none!important; scroll-behavior:auto!important; } }