/* Freight-office visual language: navy signage, paper ledgers and teal routes. */
:root { --ink:#172b3a; --ink-muted:#536570; --paper:#fff; --line:#d8e1e5; --steel:#125e64; --amber:#b1782d; }
body,body:has(.owner-shell) { font-family:'Fleet Vazir',Tahoma,sans-serif; color:var(--ink); font-size:15px; line-height:1.85; background-color:#f2f5f3; background-image:linear-gradient(120deg,transparent 68%,#dfe8e580 68%,#dfe8e580 69%,transparent 69%),radial-gradient(ellipse at 100% 0,#d6e4df 0,transparent 48%); background-attachment:fixed; }
body::before { content:''; position:fixed; inset:0 auto 0 0; width:8px; background:repeating-linear-gradient(180deg,#173f48 0 80px,#ca9b50 80px 110px,#f2f5f3 110px 118px); z-index:5; pointer-events:none; }
.app-masthead { background:#173844; color:#fff; padding:16px max(24px,calc((100vw - 1280px)/2)); display:flex; align-items:center; justify-content:space-between; gap:20px; border-bottom:4px solid #c69d5b; }
.app-brand { color:#fff; text-decoration:none; display:flex; gap:14px; align-items:center; font-weight:700; font-size:19px; }
.app-brand svg { width:42px; height:42px; padding:8px; border:1px solid #91b6bd; border-radius:10px; }
.app-brand small { display:block; color:#cbdde0; font-size:12px; font-weight:400; }
.app-identity { text-align:left; font-size:14px; }.app-identity span { display:block; color:#cbdde0; font-size:12px; }
.app-masthead a:focus-visible { outline:3px solid #efca86; outline-offset:6px; }
.owner-shell,#admin-screen,.report-screen { max-width:1328px; margin-inline:auto; padding:28px 28px 56px; }
body .admin-topbar,body .owner-header,body .topbar { background:#fff; border:1px solid var(--line); border-radius:16px; box-shadow:0 5px 18px #19383f08; padding:22px; margin-bottom:26px; }
body h1 { font-size:25px; line-height:1.6; }body h2,.admin-panel .ph h2 { font-size:20px; }body h3 { font-size:17px; }
.page-intro { padding:5px 4px 20px; }.page-intro h2 { font-size:29px; margin:6px 0; }.page-intro p { color:#536570; max-width:800px; }
.eyebrow,.overline { color:#216d71; font-size:13px; font-weight:700; letter-spacing:0; }
body .admin-nav,body .owner-nav { gap:8px; }
body .admin-topbar .admin-nav :is(a,button.link-button),body .owner-header .owner-nav :is(a,button.link-button) { background:#fff; color:#193b46; border:1px solid #cbd8dd; box-shadow:none; border-radius:9px; font-size:14px; backdrop-filter:none; -webkit-backdrop-filter:none; }
.enter,.admin-topbar,.owner-header,.topbar,.stat-card,.owner-chart,.overview,.ledger-shell { animation:none !important; }
body :is(button,input[type=submit],input[type=button],a.link-back,a.back-link,a.quiet-link,a.soft-button,a.owner-button,a[role=button],.owner-nav a,.admin-nav a,.admin-topbar>a,.topbar>a,.pagination a,.owner-pagination a,.range-form>a,.filter-bar>a,.fleet-search>a,summary) { backdrop-filter:none; -webkit-backdrop-filter:none; background:#fff; color:#193b46; border:1px solid #cbd8dd; border-radius:9px; box-shadow:none; min-height:46px; padding:10px 16px; font-size:14px; line-height:1.7; text-shadow:none; }
body :is(button,a.link-back,a.back-link,a.quiet-link,.owner-nav a,.admin-nav a,summary):hover { background:#edf5f4; border-color:#7b9ea1; box-shadow:none; transform:none; }
body :is(button,input[type=submit],input[type=button],a,summary,input,select,textarea):focus-visible { outline:3px solid #b67b2e; outline-offset:3px; }
body :is(.btn-submit,.owner-button,button[type=submit].primary-action) { background:#145d63; color:#fff; border-color:#145d63; min-height:48px; height:auto; font-weight:700; }
body :is(.btn-submit,.owner-button):hover { background:#10464c; color:#fff; }
body button.danger-button { background:#fff; border-color:#e8c8c4; color:#9c322b; font-size:13px; }
body :is(.admin-topbar,.owner-nav) :is(a,button.link-button)::before { display:none; }
body input:not([type=checkbox]):not([type=hidden]),body select,body textarea { font:inherit; color:#172b3a; font-size:15px; min-height:48px; height:auto; border:1px solid #b8c9d0; border-radius:8px; background:#fff; padding:10px 12px; width:100%; box-sizing:border-box; }
body input::placeholder,body textarea::placeholder { color:#657882; opacity:1; }
body textarea { min-height:92px; resize:vertical; }body label,.form-field label { color:#334e59; font-size:14px; line-height:1.7; }
body .form-grid label { display:grid; gap:8px; min-width:0; }.form-grid { gap:20px; align-items:end; }
body .assign-form { animation:none; max-height:none; overflow:visible; }.assign-form.show { overflow:visible; }
body .admin-panel,body .owner-chart,body .comparison-card,body .owner-disclosure,body .scope-card { border:1px solid var(--line); border-radius:14px; background:#fff; box-shadow:0 5px 20px #17384406; overflow:hidden; }
body .admin-panel { margin-block:22px; }.admin-panel .ph { padding:18px 22px; background:#f9fbfb; border-color:var(--line); }
body .small-note,body .muted,body .rank-criterion,body .chart-note { color:#526670; font-size:13px; line-height:1.9; }.small-note { margin-top:10px; }
body .notice { color:#244e56; background:#edf6f3; border:1px solid #c8ddd5; border-inline-start:4px solid #397c6d; padding:14px 18px; border-radius:9px; font-size:14px; }
body .notice.error,body .notice.warning { color:#834123; background:#fff5e8; border-color:#eccaa3; }
body .stat-strip { gap:18px; }.stat-card,.metric-tile { border:1px solid var(--line); border-radius:13px; background:#fff; box-shadow:none; padding:22px; }
.stat-card .n { color:#174b55; font-size:34px; }.stat-card .l { color:#526670; font-size:14px; }
body table { border-collapse:collapse; width:100%; font-size:14px; }body th { font-size:13px; color:#3a5660; background:#edf3f4; font-weight:700; }body td,body th { padding:15px 17px; border-bottom:1px solid #e5ecef; line-height:1.9; text-align:right; }body tbody tr:hover { background:#f6faf9; }
.cell-detail { display:block; font-size:12px; color:#647883; }.plate-link { display:inline-flex; padding:4px 12px; background:#f2f6f7; border:1px solid #cbd8dd; border-radius:6px; font-size:18px; color:#173f48; text-decoration:none; font-weight:700; }
.payout-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(min(100%,250px),1fr)); gap:14px; margin-top:18px; }.payout-grid article { padding:20px; background:#f2f8f5; border:1px solid #d0e3db; border-radius:10px; }.payout-grid span { display:block; margin-bottom:10px; color:#49636b; font-size:14px; }.payout-grid .owner-payout { overflow-wrap:anywhere; }.payout-grid small { font-size:14px; font-weight:400; }
body details>summary { border:0; border-radius:0; display:flex; align-items:center; gap:12px; padding:18px 22px; font-size:16px; font-weight:600; }body details>summary::before { content:'+'; color:#1f7077; font-size:22px; }body details[open]>summary::before { content:'−'; }
body .owner-disclosure>summary::after { display:none; }
body .disclosure-content { padding:20px 22px; }.ownership-preview { background:#edf6f3; border-color:#a9cec2; }.ownership-preview p { font-size:15px; font-weight:600; }.ownership-preview details>summary { padding:10px 0; background:transparent; font-size:14px; }
.permission-options { background:#fafcfc; padding:20px; }.permission-options[hidden],[data-owner-profile][hidden] { display:none; }body .permission-options label.permission-option,body .form-grid label.permission-option { display:flex; align-items:center; font-size:14px; gap:10px; }body input[type=checkbox] { accent-color:#145d63; width:21px; height:21px; }
.ledger-hero { display:flex; gap:30px; justify-content:space-between; align-items:center; padding:30px; background:#163f49; color:#fff; border-radius:16px; border-bottom:4px solid #c59b52; }.ledger-hero h2 { font-size:32px; margin:4px 0; }.ledger-hero .eyebrow,.ledger-hero p { color:#c3dcd9; }.ledger-hero strong { display:block; font-size:34px; line-height:1.8; }.ledger-hero strong small { font-size:16px; font-weight:400; }
.owner-chips { display:grid; grid-template-columns:repeat(auto-fit,minmax(230px,1fr)); gap:14px; }.owner-chips article { display:grid; grid-template-columns:1fr auto; padding:18px; gap:8px; background:#f4f8f7; border:1px solid #d3e1dd; border-radius:10px; }.owner-chips b { font-size:23px; color:#146d63; }.owner-chips span,.owner-chips a { font-size:13px; grid-column:1/-1; }.manual-entry .form-grid { padding:22px; }.entry-badge { display:block; width:fit-content; margin-top:8px; border-radius:6px; padding:2px 9px; color:#1b6559; background:#deeee5; font-size:12px; }.monthly-entry { background:#f5faf7; }
body .balance-card { border:1px solid #bfd4d5; background:#fff; border-radius:16px; box-shadow:none; padding:26px; }.balance-value bdi { color:#164f59; }.balance-note,.balance-footer { font-size:13px; color:#526670; }.balance-heading { font-size:16px; }.state-pill { background:#e1efeb; color:#2d685c; }.overview-grid { gap:22px; }.ownership-payouts { border-inline-start:5px solid #b88a3f !important; }.owner-payout { font-size:22px; font-weight:700; color:#155f56; }
body .owner-filters,body .range-form { gap:14px; padding:18px 0; }.owner-filters label,.range-form label { min-width:180px; }.owner-filters button { flex-shrink:0; }
body .owner-chart-grid { grid-template-columns:minmax(0,1.5fr) minmax(280px,1fr); gap:22px; }.owner-chart { padding:24px; }.owner-chart h3 { font-size:19px; }.owner-leaderboard { gap:20px; }.leader-value { font-size:16px; }.bar-track { height:12px; border-radius:4px; background:#edf2f2; }.bar-fill { background:linear-gradient(90deg,#82b1a5,#246d71); border-radius:4px; }.leader-row .rank { color:#607b83; background:#edf3f4; border-radius:6px; }.leader-info { font-size:14px; }.month-badge,.plate-pill { font-size:13px; background:#edf3f4; color:#375861; }
.chart-headline { display:flex; justify-content:space-between; align-items:center; gap:15px; margin:20px 0; }.chart-headline strong { font-size:26px; color:#174e58; }.chart-headline small { display:block; font-size:13px; color:#607984; }.chart-switch { display:flex; gap:4px; padding:4px; border:1px solid #d7e1e5; background:#f1f5f5; border-radius:9px; }.chart-switch button { min-height:38px; padding:6px 12px; font-size:13px; background:transparent; border-color:transparent; }.chart-switch button[aria-pressed=true] { background:#fff; border-color:#bbd0d3; color:#145d63; box-shadow:0 2px 4px #17384410; }
.comparison-svg { min-width:0; max-height:none; height:auto; width:100%; }.comparison-axis { fill:#546e79; font-size:12px; }.comparison-grid { stroke:#dce6e9; stroke-dasharray:3 5; }.comparison-tooltip { background:#edf5f4; border-color:#c3d9d4; min-height:60px; font-size:14px; }.comparison-tooltip strong { font-size:18px; color:#174e58; }.comparison-caption { font-size:13px; }.comparison-toolbar label { font-size:14px; }.comparison-toolbar input { width:270px; }body button.series-toggle { font-size:13px; border-radius:7px; background:#fff; min-height:42px; }.comparison-legend { max-height:165px; }.comparison-values>summary { font-size:14px; }.chart-advanced { margin:16px 0; border-top:1px solid #e0e9eb; }.chart-advanced>summary { font-size:13px; padding:10px 0; }.chart-range-controls label { font-size:13px; }.chart-range-controls select { min-width:150px; }.chart-zoom-controls { margin-bottom:15px; }.chart-zoom-controls button { font-size:13px; }.chart-crosshair { stroke:#678c94; stroke-dasharray:4 4; pointer-events:none; }
body .donut-key { font-size:12px; }body .donut-key bdi { font-size:13px; }.donut-center small { font-size:12px; }
@media(max-width:900px) { body .owner-chart-grid { grid-template-columns:1fr; }.ledger-hero strong { font-size:28px; }.app-masthead { padding:16px 22px; } }
@media(max-width:640px) { body { font-size:14px; }body::before { width:4px; }.app-masthead { padding:15px 18px; gap:12px; }.app-brand { font-size:16px; }.app-brand svg { width:35px; height:35px; }.app-brand small { font-size:10px; }.app-identity { display:none; }.owner-shell,#admin-screen,.report-screen { padding:18px 16px 42px; }body h1 { font-size:21px; }body h2 { font-size:18px; }.page-intro h2 { font-size:23px; }.admin-topbar .admin-nav { grid-template-columns:1fr 1fr; }body .admin-nav a,body .admin-nav button { font-size:13px; white-space:normal; }.form-grid { grid-template-columns:1fr; }.ledger-hero { flex-direction:column; align-items:stretch; padding:24px; gap:20px; }.ledger-hero>div+div { padding-top:16px; border-top:1px solid #66838a; }.ledger-shell .admin-panel { padding:0; }.owner-filters { align-items:stretch; }.owner-filters label,.owner-filters button { width:100%; }.manual-entry .form-grid { padding:18px; }.chart-headline { align-items:flex-start; }.chart-headline strong { font-size:21px; }.comparison-tooltip strong { font-size:16px; }.owner-chart { padding:18px; }.chart-switch button { padding:6px 9px; }.owner-payout { font-size:19px; }.permission-presets { flex-direction:column; }.permission-presets button { width:100%; } }
@media(prefers-reduced-motion:reduce) { *,*::before,*::after { animation:none !important; transition:none !important; scroll-behavior:auto !important; } }
@media print { .app-masthead,body::before { display:none; }body { background:#fff; }.ledger-hero { background:#fff; color:#000; border:1px solid #999; }.ledger-hero p,.ledger-hero .eyebrow { color:#333; } }
