/* Visual theme: Royal Transports Executive Suite. Presentational overrides only. */
:root{
  --ink:#17263b;
  --muted:#687b91;
  --navy:#0b1d35;
  --blue:#176bb3;
  --line:#dfe7ef;
  --bg:#eef3f8;
  --white:#fff;
  --green:#28745d;
  --red:#a54848;
  --shadow:0 18px 42px rgba(20,37,54,.09);
  --accent:#35a6df;
  --surface:#fff;
  --surface-soft:#f8f8f5;
  --nav-gradient-start:#091a31;
  --nav-gradient-end:#102e50;
  --action:#123d69;
  --action-hover:#185489;
  --accent-rgb:53,166,223;
  --accent-light:#8bb9dc;
  --accent-strong:#397eaa;
  --nav-soft:#9cc9e9;
  --soft-panel:#e8f2fa;
  --soft-panel-border:#d5e7f4;
  --focus:rgba(48,137,193,.14);
}
body{background:var(--bg);color:var(--ink);font-family:"Segoe UI",Inter,Arial,sans-serif;letter-spacing:.005em}
h1,h2{color:var(--ink);font-family:"Segoe UI",Inter,Arial,sans-serif;letter-spacing:-.035em}
h1{font-size:30px;font-weight:650}
h2{font-weight:650}
.container{max-width:1390px;padding-top:42px}
.sidebar{background:linear-gradient(180deg,var(--nav-gradient-start) 0%,var(--nav-gradient-end) 100%);box-shadow:5px 0 24px rgba(14,32,49,.11)}
.sidebar-brand{margin-bottom:40px}
.sidebar .brand small{color:#b9c2c9;letter-spacing:.2em}
.sidebar-caption{color:#91a4b3}
.sidebar-section-title{color:var(--nav-soft)}
.sidebar-group>summary,.sidebar-item{border-radius:8px;transition:background .16s ease,color .16s ease}
.sidebar-group>summary:hover,.sidebar-item:hover,.sidebar-link:hover,.sidebar-account-link:hover,.sidebar-logout:hover{background:rgba(255,255,255,.085)}
.sidebar-group[open]>summary,.sidebar-link.active,.sidebar-account-link.active{background:rgba(var(--accent-rgb),.17);color:#fff}
.sidebar-group[open]>summary{box-shadow:inset 2px 0 0 var(--accent)}
.sidebar-group>summary:after{border-color:var(--accent-light)}
.sidebar-icon{color:var(--accent-light)}
.sidebar-submenu{border-color:rgba(220,226,228,.2)}
.sidebar-link{color:#d0d9df}
.sidebar-account{border-color:rgba(220,226,228,.18)}
.app-main>.container{max-width:1450px}
.page-heading{padding-bottom:20px;border-bottom:1px solid var(--line);margin-bottom:26px}
.eyebrow{color:var(--accent-strong);letter-spacing:.15em;font-size:9px}
.heading-tag,.run-label{border:1px solid #dfe6e3;background:#fbfcfa;border-radius:999px;padding:9px 13px;color:#536b66}
.status-dot{background:#3d8b70;box-shadow:0 0 0 3px rgba(61,139,112,.12)}
.workspace-summary{border-color:#e6e7e1;background:linear-gradient(110deg,#fff 0%,#fbfbf8 100%);box-shadow:0 8px 24px rgba(29,44,55,.035)}
.workspace-summary>div{border-color:#e8e6df}
.workspace-summary strong{color:var(--navy);font-size:30px}
.summary-label{color:var(--accent-strong);letter-spacing:.12em}
.report-card,.panel,.table-wrap,.filter-panel,.process-empty{background:var(--surface);border-color:#e4e7e5;border-radius:12px;box-shadow:0 5px 18px rgba(24,40,54,.035)}
.report-card{padding:24px;transition:transform .18s ease,box-shadow .18s ease,border-color .18s ease}
.report-card:hover{transform:translateY(-3px);border-color:#c7d6d2;box-shadow:0 16px 34px rgba(24,40,54,.09)}
.report-card h2{font-size:17px}
.report-icon,.empty-icon{background:#edf3f1;color:#286572;border-radius:10px}
.arrow{color:var(--accent-strong)}
.section-heading h2{font-size:19px}
.panel{padding:26px}
.panel-title{padding-bottom:15px;border-bottom:1px solid #edf0ed}
.admin-chip{background:var(--soft-panel);color:var(--accent-strong);border:1px solid var(--soft-panel-border)}
.button{border-radius:8px;padding:11px 16px;transition:transform .15s ease,background .15s ease,box-shadow .15s ease}
.button:hover{transform:translateY(-1px)}
.primary{background:var(--action);box-shadow:0 4px 10px rgba(18,61,105,.16)}
.primary:hover{background:var(--action-hover)}
.secondary{background:var(--soft-panel);color:var(--accent-strong);border:1px solid var(--soft-panel-border)}
.button-quiet{color:#64717e}
.text-button{color:#286b74}
input,select,.area-picker>summary{border-color:#dce3e1;border-radius:8px;background:#fff}
input:focus,select:focus,.area-picker>summary:focus-visible{outline:3px solid var(--focus);border-color:var(--accent-strong)}
label{color:#526273}
.notice{border-radius:9px;background:#eef4f2;border-color:#dce9e4;color:#41675e}
.notice.error{background:#fbefed;color:var(--red);border-color:#efd9d5}
.notice.success{background:#edf6f0;color:#28745d;border-color:#d7e9dd}
.pill{background:#f0f1ef;color:#65717c}
.pill.active{background:#e7f2eb;color:#28745d}
.table-wrap{overflow:hidden}
table{font-size:13px}
th{background:#f6f7f4;color:#76816f;font-size:9px;letter-spacing:.12em}
th,td{padding:14px 16px;border-bottom-color:#edf0ed}
tbody tr:hover{background:#fafbf9}
td small{color:#83908e}
.permission-tree{background:#f9faf8;border-color:#e5e9e5;border-radius:10px}
.permission-tree-root{color:#263b4b}
.permission-tree-icon{color:var(--accent)}
.permission-tree-branch{border-color:#d9e1dc}
.permission-tree-branch h3{color:var(--accent-strong)}
.permission-check{border-color:#e5e9e6;border-radius:8px;color:#3d4e5e;transition:border-color .15s,background .15s}
.permission-check:hover{background:#f8faf8;border-color:#cbdad4}
.permission-check input{accent-color:var(--action)}
.group-permission-form{border-color:#e9ece8}
.filter-panel{padding:20px 22px}
.filter-form select,.area-picker>summary{height:43px}
.area-picker>summary:after{border-color:var(--accent-strong)}
.area-options{border-color:#e1e7e4;border-radius:10px;box-shadow:0 18px 38px rgba(21,39,52,.16)}
.area-option:hover{background:#f1f6f3}
.area-option input{accent-color:var(--action)}
.filter-hint,.report-note{color:#7b888c}
.report-table tbody tr.area-total{background:#f3f6f3}
.report-table tbody tr.month-total{background:#eaf0ed;border-color:#d4dfd9}
.area-pill{background:#e8f0ec;color:#355f5b}
.metric-loaded{color:#28745d}
.metric-link{color:#246a76;text-decoration-color:#b1cdca}
.metric-link:hover,.metric-link:focus-visible{background:#eff6f4;outline-color:#8fb9b2}
.detail-dialog{border-color:#dce3df;border-radius:15px;box-shadow:0 28px 90px rgba(11,27,42,.32)}
.detail-dialog::backdrop{background:rgba(12,28,42,.48);backdrop-filter:blur(3px)}
.detail-window-head{background:#f7f8f5;border-color:#e3e8e3}
.dialog-close{background:#e9eeeb;color:#405b5b}
.dialog-close:hover{background:#dce7e2}
.detail-summary>div{border-color:#e4e9e5;background:#fbfcfa}
.detail-summary strong{color:#244b53}
.footer{border-color:#e1e5e1;color:#74817f}
.footer span{color:#9aa4a0}
.login-card{border-color:#e5e7e2;border-radius:16px;box-shadow:0 24px 65px rgba(24,40,54,.12)}
.credential{background:#f2f5f2}
.back-link,.topbar nav a{color:#526a72}
.back-link:hover,.topbar nav a:hover{color:var(--action)}
@media(max-width:760px){.sidebar{box-shadow:0 5px 20px rgba(14,32,49,.11)}.container{padding-top:30px}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{scroll-behavior:auto!important;transition:none!important}}
.sidebar-brand .brand-logo{width:128px;height:40px;flex:0 0 128px;object-fit:contain;border-radius:6px;background:#fff;padding:4px 7px}
.auth-shell{min-height:calc(100vh - 55px);padding:30px;background:radial-gradient(ellipse at 72% 10%,#f9fbfd 0,#edf3f8 58%,#e8eef5 100%)}
.login-layout{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(400px,.85fr);width:min(1480px,100%);min-height:min(820px,calc(100vh - 115px));overflow:hidden;border:1px solid #dce5ed;border-radius:22px;background:#fff;box-shadow:0 28px 85px rgba(12,35,58,.16)}
.login-showcase{position:relative;display:flex;align-items:flex-end;min-height:650px;padding:clamp(32px,5vw,72px);overflow:hidden;background:#07172c url('/static/login_background_v1.webp') center center/cover no-repeat;color:#fff}
.login-showcase:before{position:absolute;inset:0;content:"";background:linear-gradient(180deg,rgba(4,16,33,.02) 28%,rgba(4,16,33,.08) 47%,rgba(4,16,33,.91) 100%),linear-gradient(90deg,rgba(4,16,33,.12),transparent 70%)}
.login-showcase-copy{position:relative;z-index:1;max-width:490px;padding:21px 24px;border:1px solid rgba(195,225,246,.2);border-radius:14px;background:rgba(5,22,42,.45);backdrop-filter:blur(7px)}
.showcase-kicker{display:block;margin-bottom:10px;color:#80caff;font-size:9px;font-weight:700;letter-spacing:.19em}
.login-showcase-copy h2{margin:0 0 8px;color:#fff;font-size:clamp(24px,3vw,37px);font-weight:650;line-height:1.12;letter-spacing:-.04em}
.login-showcase-copy p{max-width:410px;margin:0;color:#d6e4ef;font-size:13px;line-height:1.6}
.showcase-pill{display:inline-flex;align-items:center;gap:8px;margin-top:18px;padding:7px 11px;border:1px solid rgba(131,199,240,.3);border-radius:99px;color:#e2f4ff;font-size:10px}
.showcase-pill span{width:7px;height:7px;border-radius:50%;background:#45c9a3;box-shadow:0 0 0 3px rgba(69,201,163,.15)}
.login-card{display:flex;flex-direction:column;justify-content:center;width:100%;min-height:100%;padding:clamp(34px,5vw,76px);border:0;border-radius:0;box-shadow:none}
.brand.large{margin-bottom:34px}
.brand.large .brand-logo{display:block;width:min(228px,100%);height:auto;max-height:75px;flex:0 1 auto;object-fit:contain;object-position:left center;border-radius:0;background:transparent}
.login-card .eyebrow{margin-bottom:10px}
.login-card h1{font-size:32px}
.login-card .muted{font-size:13px}
.login-card .primary{background:var(--action)}
.login-card .primary:hover{background:var(--action-hover)}
@media(max-width:900px){.auth-shell{padding:18px}.login-layout{grid-template-columns:1fr;max-width:620px;min-height:0}.login-showcase{min-height:340px;padding:28px}.login-showcase-copy{max-width:450px}.login-card{min-height:540px;padding:38px clamp(26px,8vw,58px)}}
@media(max-width:560px){.auth-shell{padding:12px}.login-layout{border-radius:16px}.login-showcase{min-height:270px;padding:18px;background-position:center 35%}.login-showcase-copy{padding:15px 16px}.login-showcase-copy h2{font-size:24px}.login-showcase-copy p{font-size:12px}.login-card{min-height:500px;padding:32px 24px}.brand.large{margin-bottom:27px}}
body[data-theme="obsidian"]{--nav-gradient-start:#111419;--nav-gradient-end:#2b3037;--action:#252b33;--action-hover:#353d47;--accent:#c7d0d9;--accent-rgb:190,201,212;--accent-light:#c6d0da;--accent-strong:#596b7e;--nav-soft:#d3dbe3;--soft-panel:#edf0f3;--soft-panel-border:#dce2e8;--focus:rgba(91,111,132,.16);--bg:#eef0f3;--blue:#424e5b;--line:#dfe3e8;--navy:#131a22}
body[data-theme="emerald"]{--nav-gradient-start:#092c25;--nav-gradient-end:#15513f;--action:#147354;--action-hover:#0f6045;--accent:#51c595;--accent-rgb:81,197,149;--accent-light:#79d7ae;--accent-strong:#287a5d;--nav-soft:#a6ddc4;--soft-panel:#e8f4ee;--soft-panel-border:#d2e9dc;--focus:rgba(39,133,94,.15);--bg:#eef5f1;--blue:#287a5d;--line:#dce8e0;--navy:#12382d}
body[data-theme="ocean"]{--nav-gradient-start:#082b40;--nav-gradient-end:#0d566b;--action:#087b96;--action-hover:#08667c;--accent:#4bc4d7;--accent-rgb:75,196,215;--accent-light:#7dd9e6;--accent-strong:#167c91;--nav-soft:#a2dfe7;--soft-panel:#e8f4f6;--soft-panel-border:#d2e9ec;--focus:rgba(22,124,145,.15);--bg:#edf4f6;--blue:#167c91;--line:#dce7e9;--navy:#103244}
.sidebar-theme-form{display:grid;gap:7px;margin:10px 7px 8px;padding:10px;border:1px solid rgba(218,232,243,.14);border-radius:8px;background:rgba(255,255,255,.035)}
.sidebar-theme-form>label{display:block;color:#a9bbc9;font-size:10px;font-weight:600}
.sidebar-theme-row{display:flex;gap:6px;align-items:center}
.sidebar-theme-row select{flex:1;width:0;min-width:0;padding:8px 7px;border:1px solid rgba(214,227,238,.22);border-radius:6px;background:#f8fafc;color:#26384b;font:11px "Segoe UI",sans-serif}
.sidebar-theme-row button{padding:8px 9px;border:1px solid rgba(var(--accent-rgb),.4);border-radius:6px;background:rgba(var(--accent-rgb),.18);color:#fff;font:600 10px "Segoe UI",sans-serif;cursor:pointer}
.sidebar-theme-row button:hover{background:rgba(var(--accent-rgb),.3)}
body[data-theme="obsidian"] .eyebrow,body[data-theme="obsidian"] .arrow,body[data-theme="obsidian"] .text-button,body[data-theme="obsidian"] .metric-link,body[data-theme="obsidian"] .permission-tree-branch h3{color:var(--accent-strong)}
body[data-theme="obsidian"] .report-icon,body[data-theme="obsidian"] .empty-icon{background:#edf0f3;color:#4b5968}
body[data-theme="emerald"] .eyebrow,body[data-theme="emerald"] .arrow,body[data-theme="emerald"] .text-button,body[data-theme="emerald"] .metric-link,body[data-theme="emerald"] .permission-tree-branch h3{color:var(--accent-strong)}
body[data-theme="emerald"] .report-icon,body[data-theme="emerald"] .empty-icon{background:#e7f3ec;color:#287a5d}
body[data-theme="ocean"] .eyebrow,body[data-theme="ocean"] .arrow,body[data-theme="ocean"] .text-button,body[data-theme="ocean"] .metric-link,body[data-theme="ocean"] .permission-tree-branch h3{color:var(--accent-strong)}
body[data-theme="ocean"] .report-icon,body[data-theme="ocean"] .empty-icon{background:#e6f3f5;color:#167c91}
.brand.large{width:100%;display:flex;justify-content:center}
.brand.large .brand-logo{object-position:center}
.detail-dialog{height:min(82vh,860px);max-height:88vh}
.detail-dialog::backdrop{background:rgba(12,28,42,.18);backdrop-filter:blur(.5px)}
.detail-window{height:100%;max-height:100%;min-height:0}
.detail-window-head{flex:0 0 auto}
.detail-dialog .detail-window-body{flex:1 1 auto;min-height:0;max-height:none;overflow-x:auto;overflow-y:auto;overscroll-behavior:contain}
.detail-dialog .detail-table-wrap{max-height:none;overflow:visible}
.detail-dialog .detail-table-wrap .report-table th,.detail-dialog .detail-table-wrap .report-table td{padding:9px 12px}
@media(max-width:560px){.detail-dialog{height:92vh;max-height:94vh}.detail-dialog .detail-window-body{padding:14px 12px}}
.quick-documents{margin:0 0 28px}.quick-document-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.quick-document-card{display:flex;align-items:center;gap:14px;min-height:82px;padding:16px 18px;background:#fff;border:1px solid var(--line);border-radius:11px;color:var(--ink);text-decoration:none;box-shadow:0 3px 12px rgba(30,50,75,.025);transition:.16s}.quick-document-card[href]:hover{border-color:#b8ccde;box-shadow:var(--shadow);transform:translateY(-1px)}.quick-document-icon{display:grid;place-items:center;width:42px;height:48px;flex:0 0 42px;border-radius:8px;background:#edf3f8;color:#a43c42;font-size:11px;font-weight:800;letter-spacing:.04em}.quick-document-card>span:nth-child(2){display:grid;gap:4px;min-width:0}.quick-document-card strong{font-size:13px;color:var(--navy)}.quick-document-card small{overflow:hidden;color:var(--muted);font-size:11px;text-overflow:ellipsis;white-space:nowrap}.quick-document-card>b{margin-left:auto;color:#788a9e}.quick-document-card.unavailable{opacity:.62;background:#f9fafb}.quick-document-admin{margin:0 0 28px}.quick-document-upload-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.quick-document-upload{display:grid;align-content:start;gap:12px;padding:15px;border:1px solid var(--line);border-radius:9px;background:#fbfcfd}.quick-document-upload label input[type=file]{font-size:12px;padding:9px}.quick-document-help{font-size:11px;margin:12px 0 0}.app-main>#portal-content[aria-busy=true]{opacity:.58;pointer-events:none;transition:opacity .12s}.portal-ajax-error{position:sticky;top:8px;z-index:20;box-shadow:var(--shadow)}
@media(max-width:760px){.quick-document-grid,.quick-document-upload-grid{grid-template-columns:1fr}}
