/* Persona-aware working views. The selector changes scope without implying final RBAC. */
.persona-scope{display:grid;grid-template-columns:minmax(260px,1fr) auto auto;align-items:center;gap:18px;min-height:76px;margin:0 0 14px;padding:12px 16px;background:#edf3f5;border:1px solid #ccd9df;border-radius:6px;color:#173b55}
.persona-scope-copy{display:grid;gap:1px;min-width:0}.persona-scope-label{font-size:12px;font-weight:700;color:#59707f}.persona-scope-copy strong{font-size:15px;color:#0b3552}.persona-scope-copy small{font-size:13px;color:#586f7d}.persona-scope-note{max-width:310px;padding-inline-start:16px;border-inline-start:1px solid #c9d6dc;color:#5c707d;font-size:12px;line-height:1.8}.persona-scope-actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.persona-market-empty{grid-column:1/-1;min-height:230px;display:grid;place-content:center;justify-items:center;text-align:center}.persona-market-empty p{max-width:64ch}.chain-stage.persona-active .chain-stage-icon{background:#fff2d2;color:#8c5d08;outline:3px solid #f1bd4c}.chain-stage.persona-active .chain-stage-icon::after{background:#f1bd4c;border-color:#9a6910}.chain-stage.persona-active .chain-stage-title,.chain-stage.persona-active b{color:#8a5900}.chain-stage.persona-oversight .chain-stage-icon{background:#eef4f6}.persona-switcher select{border-color:#afc1ca;font-weight:600}
@media(max-width:900px){.persona-scope{grid-template-columns:1fr auto}.persona-scope-note{grid-column:1/-1;grid-row:2;border-inline-start:0;border-top:1px solid #d2dde1;padding:8px 0 0;max-width:none}}
@media(max-width:600px){.persona-switcher{display:block}.global-search{display:none}.persona-switcher select{width:148px;max-width:42vw}.persona-scope{grid-template-columns:1fr;padding:12px}.persona-scope-actions{justify-content:flex-start}.persona-scope-note{grid-column:auto;grid-row:auto}.chain-stage.persona-active{background:#fff8e7}}

/* Approved station-operations visual system. Shared by all ten views. */
@font-face{font-family:IRANSansX;src:url('../assets/fonts/IRANSansXFaNum-Regular.woff2') format('woff2');font-weight:400;font-display:swap}
@font-face{font-family:IRANSansX;src:url('../assets/fonts/IRANSansXFaNum-Medium.woff2') format('woff2');font-weight:500;font-display:swap}
@font-face{font-family:IRANSansX;src:url('../assets/fonts/IRANSansXFaNum-DemiBold.woff2') format('woff2');font-weight:600;font-display:swap}
@font-face{font-family:IRANSansX;src:url('../assets/fonts/IRANSansXFaNum-Bold.woff2') format('woff2');font-weight:700 900;font-display:swap}
:root{--font-ui:IRANSansX,Tahoma,sans-serif;--bg:#f2f1ed;--surface:#fffefa;--ink-900:#102c45;--ink-700:#344b5e;--ink-500:#596975;--ink-300:#8e9ba4;--ink-150:#cbd1d3;--ink-100:#dfe3e2;--ink-50:#f3f4f1;--primary-800:#102c45;--primary-700:#173f5e;--primary-600:#285a7a;--primary-500:#366e90;--primary-100:#e0eaf0;--primary-50:#eff4f6;--green-800:#155345;--green-700:#216451;--green-100:#e0eee7;--purple-800:#414b58;--purple-700:#4c5b6f;--purple-600:#66758b;--purple-100:#e7ebf0;--purple-50:#f0f2f5;--signal:#eeb847;--header-h:80px;--nav-w:264px;--content-max:1600px;--fs-2xs:.75rem;--fs-xs:.8125rem;--fs-sm:.875rem;--fs-base:1rem;--radius-lg:12px;--radius-md:8px;--radius-pill:6px}
html,body{font-size:16px;line-height:1.8}body{min-height:100dvh}button,input,select,textarea{font-family:var(--font-ui)}::selection{background:#f3cd79;color:#102c45}*{scrollbar-width:thin;scrollbar-color:#a8b4ba transparent}input,textarea{caret-color:#173f5e}a{text-underline-offset:4px}:focus-visible{outline:3px solid #b57b12;outline-offset:3px}.skip-link{position:fixed;top:-100px;right:16px;z-index:100;background:var(--signal);color:var(--ink-900);padding:12px 20px}.skip-link:focus{top:8px}
.app-shell{grid-template-columns:var(--nav-w) minmax(0,1fr)}.app-header{background:var(--surface);color:var(--ink-900);padding:0 28px 0 24px;border-bottom:1px solid var(--ink-150);box-shadow:none;gap:28px}.app-header .brand{width:208px;gap:14px;color:var(--ink-900);font-size:23px}.app-header .brand .brand-mark{width:42px;height:46px;background:var(--primary-800);color:var(--signal);border-radius:8px}.brand-text small{display:block;font-size:11px;font-weight:500;color:var(--ink-500);margin-top:-3px}.app-header .env-tag{color:var(--ink-500);background:transparent;border:none;font-size:12px;padding:0}.persona-switcher{border:0;border-radius:0;background:transparent;padding:0;gap:12px}.persona-switcher label{color:var(--ink-500);font-size:12px}.persona-switcher select{min-height:44px;max-width:310px;background:var(--ink-50);border:1px solid var(--ink-150);border-radius:6px;font-size:12px}.menu-toggle{color:var(--primary-800);border-color:var(--ink-150);background:transparent;width:44px;height:44px}
.app-nav{background:var(--primary-800);border:0;padding:16px 14px 28px;color:#fff}.nav-section-label{color:#b3c4d1;font-size:11px;letter-spacing:0;padding:18px 14px 7px}.nav-link{position:relative;color:#dce7ee;font-size:12px;font-weight:500;min-height:48px;border-radius:6px;padding:12px;gap:12px;transition:background .18s,color .18s}.nav-link:hover{background:#1b405c;color:#fff}.nav-link.active{background:#254c68;color:#fff}.nav-link.active::before{content:'';position:absolute;right:0;top:13px;bottom:13px;width:3px;background:var(--signal);border-radius:2px}.nav-link .ic{width:20px;height:20px;color:#b6ccdc}.nav-link.active .ic{color:var(--signal)}.nav-link .badge-dot{width:5px;height:5px;background:#d9b86d}
.app-main{padding:32px;min-width:0}.app-main:focus{outline:none}.view-header{padding-bottom:22px;border-bottom:1px solid var(--ink-150);margin-bottom:24px;gap:12px}.view-header .eyebrow{display:none}h1{font-size:clamp(23px,2.2vw,32px);font-weight:700;line-height:1.6;text-wrap:balance}h3{font-size:18px}h4{font-size:16px}.view-header p.lede{font-size:14px;max-width:92ch;line-height:1.95;margin-top:10px}.view-header>.badge{font-size:11px;white-space:normal;background:transparent;padding:0;color:var(--green-700)}.view.active{animation:route-reveal .22s ease-out}@keyframes route-reveal{from{clip-path:inset(0 0 2% 0);opacity:.8}to{clip-path:inset(0);opacity:1}}
.grid{gap:20px}.grid>*{min-width:0}.card{padding:24px;box-shadow:none;border-color:var(--ink-100);border-radius:12px}.grid>.card+.card{margin-top:0}.card-title-row{flex-wrap:wrap;gap:12px}.card .card{box-shadow:none;background:transparent;border:0;border-radius:0;padding:16px 0}.note{font-size:12px;line-height:1.9;padding:16px 18px;border-radius:8px}.note strong{font-size:13px;margin-bottom:4px}.badge{border-radius:4px;font-size:11px;padding:4px 8px;max-width:100%}.badge-real{background:#e0eee7;color:#155345}.badge-demo{background:#e9edf1;color:#414b58}.btn,.chip,.tab-btn,.icon-btn{min-height:44px}.btn{border-radius:6px;transition:background .18s,color .18s,border-color .18s;white-space:normal}.btn:active{transform:none}.btn-primary{background:var(--signal);color:#102c45;border-color:#d5a038}.btn-primary:hover{background:#dfaa39;color:#102c45}.btn-secondary{border-color:#afc0cc;background:#fffefa}.btn-sm{font-size:12px;padding:8px 14px}.icon-btn{width:44px}.chip{border-radius:6px;font-size:12px;padding:8px 13px}.chip.active{background:var(--primary-800)}
.field input[type=text],.field input[type=number],.field select,.field textarea{min-height:46px;border-radius:6px;font-size:14px;background:#fffefa}.field input::placeholder{color:#65747c}.field input:focus,.field select:focus,.field textarea:focus{outline:2px solid #b57b12;outline-offset:2px;box-shadow:none}.field label{font-size:12px}input[type=range]{accent-color:var(--primary-700);min-height:44px}input[type=checkbox],input[type=radio]{accent-color:var(--primary-700);width:18px;height:18px}
.kpi{padding:22px 24px;border-radius:8px;border-color:var(--ink-100)}.kpi .kpi-label{color:var(--primary-800);font-size:12px;letter-spacing:0}.kpi .kpi-value{font-size:31px;font-weight:700;line-height:1.65;margin-top:8px}.kpi .kpi-unit{font-size:12px}.kpi .kpi-sub{font-size:11px;padding-top:10px;border-top:1px solid var(--ink-100);margin-top:10px}.mini-kpi-row{gap:16px}.mini-kpi .val{font-size:23px}.mini-kpi .lbl{font-size:11px}
.chain-flow{gap:0;flex-wrap:nowrap;padding:20px 0}.chain-node{min-width:0;flex:1 1 0;border:0;border-radius:0;border-top:2px solid var(--primary-700);padding:24px 10px 8px;background:transparent;text-align:center}.chain-node::before{content:'';position:absolute;right:calc(50% - 6px);top:-7px;width:12px;height:12px;border:2px solid var(--primary-700);background:var(--surface);border-radius:50%}.chain-node.active{background:transparent;border-color:var(--primary-700)}.chain-node.active::before{background:var(--signal)}.chain-node .cn-title{font-size:13px}.chain-node .cn-buyer{font-size:11px;margin-top:8px}.chain-node .cn-arrow{display:none}.actor-item{border:0;border-bottom:1px solid var(--ink-100);border-radius:0;padding:12px 0}.actor-item:last-child{border:0}.actor-item .actor-name{font-size:13px}.actor-supported,.actor-open{line-height:1.8}.actor-item .actor-supported,.actor-item .actor-open{font-size:11px}#actorsList{gap:0}
#journeyCards{grid-template-columns:repeat(2,minmax(0,1fr));gap:0 24px}.journey-card{border:0;border-bottom:1px solid var(--ink-100);border-radius:0;padding:20px 8px;display:grid;grid-template-columns:1fr auto;gap:6px 16px;background:transparent}.journey-card:hover{box-shadow:none;background:var(--primary-50)}.journey-card h4{font-size:14px}.journey-card p{grid-column:1;font-size:12px}.journey-card .jc-refs{grid-column:2;grid-row:1 / 3;align-self:center}.journey-card .badge{white-space:normal;font-size:10px;max-width:110px;background:transparent;color:var(--ink-500)}
.package-card{padding:22px;gap:12px;border-width:1px;border-radius:12px}.package-card .pc-route{font-size:20px;padding:8px 0}.package-card .pc-meta{gap:14px;font-size:12px}.package-card .pc-rivals{font-size:11px;padding:12px}.package-card .pc-footer{gap:12px;flex-wrap:wrap;border-top:1px solid var(--ink-100);padding-top:14px}.package-card.selected{border-color:var(--primary-600);box-shadow:none;background:var(--primary-50)}.scenario-row{padding:22px;border-radius:10px}.scenario-row .sr-route{font-size:18px}.rel-pill{border-radius:4px;font-size:11px}.glossary-card{padding:24px;border-radius:12px}.glossary-card p{font-size:14px;line-height:2}.glossary-card .gc-evidence{padding-top:16px;border-top:1px solid var(--ink-100)}
.data-table-wrap{max-width:100%;border-radius:8px;background:var(--surface)}.data-table{font-size:13px}.data-table th,.data-table td{padding:14px 16px}.data-table thead th{background:#e9eef0;color:#29445a;letter-spacing:0;font-size:11px;z-index:1}.data-table tbody tr:nth-child(even){background:#f8f9f5}.data-table tbody tr:hover{background:#eaf1f5}.data-table td.num{font-weight:500}.tabs{gap:12px;border-color:var(--ink-150);margin-bottom:24px}.tab-btn{padding:14px 16px;font-size:13px}.tab-btn.active{color:var(--primary-800);border-bottom:3px solid var(--primary-800)}.steps{padding:16px;background:var(--surface);border:1px solid var(--ink-100);border-radius:8px;gap:12px}.step{border-radius:4px;background:transparent}.step.current{background:var(--primary-100)}.step.current .num{background:var(--primary-800)}
.operations-layout{grid-template-columns:minmax(280px,.8fr) minmax(0,1.7fr);gap:24px}.operations-browser{padding:18px}.service-list{border:0;border-radius:0;max-height:640px}.service-row{padding:18px 12px;gap:5px;transition:background .18s}.service-row.selected{box-shadow:none;background:#e3edf3;outline:1px solid #acc1cf;outline-offset:-1px}.service-name{font-size:14px}.service-route{font-size:12px}.service-meta{font-size:11px;flex-wrap:wrap}.service-summary{gap:0;background:var(--ink-50);border:1px solid var(--ink-100);border-radius:8px}.service-summary>div{background:transparent;border-radius:0;padding:16px;border-inline-end:1px solid var(--ink-100)}.service-summary>div:last-child{border:0}.stop-table-wrap{max-height:660px}.operations-filters{grid-template-columns:1fr}.source-invalid{background:var(--red-50);padding:2px 5px}
.decision-toolbar{background:var(--primary-800);color:#fff;border:0}.decision-toolbar .text-muted{color:#c6d5df}.decision-summary{background:#294b64;color:#fff;border-radius:6px}.decision-card{border-radius:10px}.decision-card>summary{padding:22px;gap:14px}.decision-title{font-size:16px}.decision-card-status{border-radius:4px;font-size:11px}.decision-card-body{padding:24px}.decision-option{padding:16px;border-radius:6px}.decision-option-text{font-size:14px}.decision-option.recommended{background:#f4f5f6}.decision-option.selected{box-shadow:none;outline:2px solid var(--primary-600);background:var(--primary-50)}.analyst-reason{font-size:13px;padding:18px;border-radius:6px}.decision-card>summary::before{content:'';width:8px;height:8px;border-bottom:2px solid currentColor;border-left:2px solid currentColor;transform:rotate(45deg)}.decision-card[open]>summary::before{transform:rotate(-45deg)}
.map-stage{box-shadow:none;border-radius:12px}.map-layout{grid-template-columns:300px minmax(0,1fr);gap:20px}.map-legend{box-shadow:none;background:var(--surface);font-size:11px}.leaflet-container{font-family:var(--font-ui)}.map-sidebar .card+.card{margin-top:0}
@media(min-width:981px) and (max-width:1250px){:root{--nav-w:232px}.app-main{padding:24px}.grid-4{grid-template-columns:repeat(2,minmax(0,1fr))}.operations-layout{grid-template-columns:280px minmax(0,1fr)}.app-header .brand{width:176px}.app-header .env-tag{display:none}.chain-flow{flex-wrap:wrap}.chain-node{flex-basis:30%}}
@media(max-width:980px){.app-shell{grid-template-columns:minmax(0,1fr)}.app-header{padding:0 18px;gap:16px}.app-header .brand{width:auto}.app-main{padding:24px}.grid-4{grid-template-columns:repeat(2,minmax(0,1fr))}.operations-layout,.map-layout{grid-template-columns:minmax(0,1fr)}.operations-browser{position:static}.operations-filters{grid-template-columns:1fr 1fr}.service-list{max-height:360px}.app-nav{height:calc(100dvh - var(--header-h));width:min(85vw,300px)}.map-stage{height:520px}.map-layout{height:auto}.map-sidebar{overflow:visible}.app-header .env-tag{display:none}}
@media(max-width:600px){:root{--header-h:72px}.app-header{gap:10px;padding:0 12px}.app-header .brand{gap:8px;font-size:17px}.app-header .brand span.brand-text{display:block}.brand-text small{font-size:9px}.app-header .brand .brand-mark{width:32px;height:38px}.persona-switcher select{width:120px;font-size:11px;padding:6px}.header-actions{margin-inline-start:auto}.app-header .spacer{display:none}.app-main{padding:20px 14px}.view-header{padding-bottom:18px}h1{font-size:23px}.view-header p.lede{font-size:13px}.grid{gap:14px}.grid-4{grid-template-columns:1fr 1fr}.kpi{padding:16px 12px}.kpi .kpi-value{font-size:24px;overflow-wrap:anywhere}.kpi .kpi-label{font-size:11px}.kpi .kpi-sub{font-size:10px}.card,.glossary-card{padding:18px}.card-title-row{align-items:flex-start}.chain-flow{flex-direction:column;padding:10px 14px}.chain-node{flex:auto;min-height:84px;border-top:0;border-inline-start:2px solid var(--primary-700);padding:8px 24px;text-align:right}.chain-node::before{right:-7px;top:20px}.chain-node .cn-buyer{margin-top:4px}#journeyCards{grid-template-columns:1fr}.journey-card{grid-template-columns:1fr}.journey-card .jc-refs{grid-column:1;grid-row:auto}.journey-card .badge{max-width:none;padding:0}.operations-filters{grid-template-columns:1fr}.service-summary{grid-template-columns:1fr 1fr}.service-summary>div{padding:12px}.operations-detail{min-width:0}.mini-kpi{min-width:100px}.note{font-size:12px;padding:14px}.badge{white-space:normal}.decision-card>summary{padding:16px}.decision-card-body{padding:16px}.decision-option{gap:10px;padding:12px}.decision-option-text{font-size:13px}.decision-filters{grid-template-columns:minmax(0,1fr)}.field input[type=text],.field input[type=number],.field select{font-size:16px}.tabs{gap:0}.tab-btn{font-size:12px;padding:12px}.map-stage{height:480px}.row.between{flex-wrap:wrap}.data-table th,.data-table td{padding:12px}.steps{gap:6px;padding:10px}.step{font-size:11px;padding:6px}.practice-bid-row{flex-wrap:wrap}.decision-toolbar{align-items:stretch}}
/* Final accessibility corrections from the batched review. */
.brand-text small,.nav-section-label,.view-header>.badge,.badge,.field label,.kpi .kpi-label,.kpi .kpi-sub,.mini-kpi .lbl,.chain-node .cn-buyer,.actor-item .actor-supported,.actor-item .actor-open,.journey-card .badge,.package-card .pc-rivals,.rel-pill,.data-table thead th,.service-meta,.decision-card-status,.map-legend{font-size:12px}
.kpi .kpi-label,.data-table thead th{text-transform:none}
.tab-btn{border-radius:0}
@media(max-width:980px){.app-nav:not(.open){visibility:hidden}.app-nav.open{visibility:visible}}
@media(max-width:600px){.brand-text small{font-size:11px}.app-header .brand{font-size:16px}.app-header .brand .brand-mark{display:none}.kpi .kpi-sub{font-size:12px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{animation:none!important;transition:none!important}}

/* Reference-led dashboard composition — 2026-09-24 */
:root{--header-h:78px;--nav-w:294px;--dashboard-line:#dce3e6;--dashboard-muted:#6c7d89;--dashboard-blue:#0c2f4b;--dashboard-blue-2:#174b70;--dashboard-amber:#f1b840;--dashboard-green:#16866d}
.app-shell{direction:ltr;grid-template-columns:minmax(0,1fr) var(--nav-w);grid-template-rows:var(--header-h) 1fr;grid-template-areas:"header nav" "main nav";min-height:100dvh}
.app-header,.app-nav,.app-main{direction:rtl}
.app-header{grid-area:header;position:sticky;top:0;padding:0 22px;gap:14px;background:#fff;border-bottom:1px solid #d4dcdf;box-shadow:0 3px 14px rgba(16,44,69,.06)}
.app-nav{grid-area:nav;position:sticky;top:0;height:100dvh;padding:0 14px 24px;background:#082c47;overflow-y:auto;background-image:linear-gradient(rgba(8,44,71,.97),rgba(8,44,71,.97))}
.app-main{grid-area:main;margin:0;max-width:none;padding:18px 22px 28px;background:#f3f4f1}
.sidebar-brand{height:118px;margin:0 -14px 14px;padding:22px 23px;border-bottom:1px solid rgba(255,255,255,.16);display:flex;align-items:center;gap:14px;color:#fff;font-size:23px;font-weight:700;line-height:1.4}
.sidebar-brand small{display:block;color:#c9d8e2;font-size:11px;font-weight:500;margin-top:4px}.sidebar-mark{width:54px;height:54px;display:grid;place-items:center;border-inline-end:1px solid rgba(255,255,255,.28);padding-inline-end:14px;color:#d9e6ed}.sidebar-mark svg{width:40px;height:40px}
.nav-section-label{position:absolute;overflow:hidden;width:1px;height:1px;clip:rect(0 0 0 0)}
.nav-link{min-height:52px;margin:3px 0;padding:12px 15px;border-radius:5px;font-size:13px;color:#dbe6ec}.nav-link .ic{width:22px;height:22px;color:#b9cbd6}.nav-link.active{background:#1e5377}.nav-link.active::before{top:0;bottom:0;width:4px;background:var(--dashboard-amber);border-radius:0}.nav-link.active .ic{color:#fff}
.header-user{display:flex;align-items:center;gap:9px;min-width:180px}.header-user>span:last-child{display:grid;line-height:1.45}.header-user strong{font-size:12px}.header-user small{font-size:10px;color:#768590}.header-avatar{width:40px;height:40px;display:grid;place-items:center;border-radius:50%;background:#0d3452;color:#fff;font-size:13px;font-weight:700}.header-divider{height:35px;width:1px;background:#d9dfe1}
.header-icon{position:relative;width:38px;height:38px;border:0;background:transparent;color:#183b55;display:grid;place-items:center;cursor:pointer;border-radius:6px}.header-icon:hover{background:#eef3f5}.header-icon svg{width:21px;height:21px}.header-count{position:absolute;top:0;right:0;min-width:17px;height:17px;padding:0 3px;border-radius:9px;background:#d64b42;color:#fff;font-size:9px;line-height:17px;text-align:center}.header-date{font-size:11px;color:#627480;white-space:nowrap}
.global-search{position:relative;margin-inline-start:auto;width:min(43vw,540px)}.global-search>svg{position:absolute;right:14px;top:50%;transform:translateY(-50%);width:19px;color:#657987}.global-search input{width:100%;height:43px;padding:0 44px 0 16px;border:1px solid #ccd6da;border-radius:5px;background:#fbfcfb;font-size:12px;color:#193a52}.global-search input:focus{outline:2px solid #c48b22;outline-offset:1px}.global-search-results{position:absolute;top:49px;right:0;left:0;z-index:80;background:#fff;border:1px solid #cad4d8;box-shadow:0 12px 28px rgba(13,48,73,.16);border-radius:6px;padding:6px}.global-search-results button{display:block;width:100%;border:0;background:#fff;text-align:right;padding:10px 12px;color:#173a53;font-family:inherit;cursor:pointer;border-radius:4px}.global-search-results button:hover{background:#edf3f6}.header-actions{margin:0}.persona-switcher label{display:none}.persona-switcher select{max-width:210px;height:40px;min-height:40px;padding:0 10px;background:#f2f5f5;font-size:10px}
.dashboard-view{max-width:1680px;margin:0 auto}.dashboard-context{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:14px}.dashboard-context h1{font-size:20px;line-height:1.5}.dashboard-kicker{display:block;color:#788994;font-size:10px;font-weight:600;margin-bottom:2px}.context-status{display:flex;align-items:center;gap:7px;color:#59707f;font-size:10px}.context-status>span{width:8px;height:8px;border-radius:50%;background:#22a07f;box-shadow:0 0 0 3px #dff1eb}.context-status b{margin-inline-start:10px;background:#e9edf0;color:#425765;padding:3px 8px;border-radius:3px;font-weight:600}
.dashboard-kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-bottom:12px}.dashboard-kpi{position:relative;display:flex;align-items:center;gap:14px;min-height:128px;padding:16px 18px;background:#fff;border:1px solid var(--dashboard-line);border-radius:6px;box-shadow:0 2px 7px rgba(19,50,71,.05);overflow:hidden}.dashboard-kpi::after{content:"";position:absolute;top:0;right:0;left:0;height:3px;background:#143e5d}.dashboard-kpi.amber::after{background:#e8aa30}.kpi-icon{width:58px;height:58px;flex:0 0 58px;display:grid;place-items:center;border-radius:50%;background:#edf1f2;color:#103a5a}.kpi-icon svg{width:34px;height:34px}.kpi-copy{min-width:0;display:flex;flex-direction:column}.kpi-copy>span{font-size:11px;font-weight:700;color:#24445c;white-space:nowrap}.kpi-copy strong{font-size:25px;line-height:1.5;color:#092f4c;white-space:nowrap}.kpi-copy strong small{font-size:9px;margin-inline-start:5px;color:#536c7c}.kpi-copy em{font-style:normal;font-size:9px;color:#19836b;border-top:1px solid #edf0ef;padding-top:5px}
.dashboard-panel{background:#fff;border:1px solid var(--dashboard-line);border-radius:6px;box-shadow:0 2px 8px rgba(17,48,70,.045)}.capacity-chain-panel{display:grid;grid-template-columns:245px minmax(0,1fr);padding:14px 18px;margin-bottom:12px;min-height:148px}.chain-heading{padding-inline-end:18px;border-inline-end:2px solid #efb546;display:grid;grid-template-columns:40px 1fr;align-content:center;gap:4px 10px}.panel-icon{width:38px;height:38px;display:grid;place-items:center;border-radius:50%;background:#edf2f4;color:#123c5b}.panel-icon svg{width:23px}.chain-heading h2,.operations-board h2,.compact-panel-head h2{font-size:16px}.chain-heading p{font-size:9px;color:#70818c;line-height:1.7;margin-top:3px}.panel-link{border:0;background:transparent;color:#1974ad;font-family:inherit;font-size:10px;font-weight:700;cursor:pointer;padding:0;text-align:right}.chain-heading .panel-link{grid-column:1/-1;align-self:end;margin-top:8px}.dashboard-chain{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));align-items:center;padding:4px 20px 0;gap:0}.chain-stage{position:relative;text-align:center;display:grid;justify-items:center;align-content:center;min-width:0}.chain-stage::after{content:"";position:absolute;top:42px;right:50%;left:-50%;height:2px;background:#193f5b;z-index:0}.chain-stage:first-child::after{right:50%}.chain-stage:last-child::after{left:50%}.chain-stage-icon{position:relative;z-index:1;width:40px;height:40px;display:grid;place-items:center;background:#fff;color:#123b59}.chain-stage-icon::after{content:"";position:absolute;bottom:-7px;width:10px;height:10px;border:2px solid #143d5b;border-radius:50%;background:#fff}.chain-stage-icon svg{width:25px;height:25px}.chain-stage-title{margin-top:12px;font-size:10px;font-weight:700;color:#28465b}.chain-stage b{font-size:12px;color:#0b3553;margin-top:2px}.chain-stage small{font-size:8px;color:#71818c}.chain-stage i{display:none}
.operations-board{margin-bottom:12px;overflow:hidden}.operations-board-head{min-height:66px;padding:11px 16px;display:flex;align-items:center;gap:20px;border-bottom:1px solid var(--dashboard-line)}.operations-board-head>div:first-child{min-width:190px}.dashboard-tabs{display:flex;align-self:stretch;margin-inline-start:auto}.dashboard-tabs button{border:0;background:transparent;padding:0 15px;font-family:inherit;font-size:10px;color:#6c7b85;cursor:pointer;border-bottom:3px solid transparent}.dashboard-tabs button.active{color:#0c3553;border-color:#153d5b;font-weight:700}.dashboard-primary{height:38px;padding:0 14px;border:0;border-radius:4px;background:#0b3858;color:#fff;font-family:inherit;font-size:10px;font-weight:700;cursor:pointer}.dashboard-primary span{font-size:16px;margin-inline-end:5px}.dashboard-table-wrap{overflow:auto}.dashboard-table{min-width:970px;font-size:10px}.dashboard-table th{height:37px;background:#eef1f2;border-bottom:1px solid #d6dee1;color:#4b6372;font-size:9px;font-weight:700;padding:0 11px;white-space:nowrap}.dashboard-table td{height:39px;padding:0 11px;border-bottom:1px solid #e4e8e9;color:#314b5d;white-space:nowrap}.dashboard-table tbody tr:nth-child(even){background:#fafbf9}.dashboard-table tbody tr{cursor:pointer}.dashboard-table tbody tr:hover,.dashboard-table tbody tr:focus{background:#eaf2f6;outline:none}.dashboard-table strong{font-size:10px;color:#153c58}.train-code{display:inline-block;padding:2px 7px;border-radius:3px;background:#e6edf1;color:#204760;font-weight:700}.source-status{color:#16866d;font-weight:700}.source-status i,.status-dot{display:inline-block;width:7px;height:7px;border-radius:50%;background:#159477;margin-inline-end:5px}.board-footnote{height:32px;display:flex;align-items:center;padding:0 16px;color:#6a7d89;font-size:8px}.status-dot.info{background:#2978ad}
.dashboard-lower-grid{display:grid;grid-template-columns:1.15fr 1fr .95fr;gap:12px}.dashboard-lower-grid>.dashboard-panel{min-height:220px;overflow:hidden}.compact-panel-head{height:49px;padding:0 14px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--dashboard-line)}.compact-panel-head h2{font-size:13px}.source-row{min-height:40px;padding:0 14px;display:grid;grid-template-columns:1.35fr .65fr .7fr;align-items:center;gap:8px;border-bottom:1px solid #e7ebec;font-size:9px}.source-row>span{display:flex;align-items:center}.source-row i{width:8px;height:8px;border-radius:50%;background:#16866d;margin-inline-end:7px}.source-row i.warn{background:#e7a42e}.source-row b{color:#24445a}.source-row em{font-style:normal;color:#16866d;text-align:left}.decision-row{width:100%;min-height:54px;padding:7px 12px;border:0;border-bottom:1px solid #e5eaeb;background:#fff;display:grid;grid-template-columns:25px 1fr 25px;align-items:center;gap:8px;text-align:right;font-family:inherit;color:#234157;cursor:pointer}.decision-row:hover{background:#f4f7f7}.decision-alert{width:20px;height:20px;display:grid;place-items:center;border-radius:50%;background:#fff0d6;color:#bd7613;font-weight:800}.decision-row b{display:block;font-size:9px}.decision-row small{display:block;font-size:8px;color:#7a8992;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:280px}.decision-row time{font-size:8px;color:#c47819}.network-visual{height:116px;padding:4px 14px}.network-visual svg{width:100%;height:100%}.map-outline{fill:#f2f3f1;stroke:#cbd3d5;stroke-width:1.5}.rail-line{stroke-width:4;stroke-linecap:round;stroke-linejoin:round}.rail-line.green{stroke:#2a9d77}.rail-line.amber{stroke:#edae3d}.rail-line.navy{stroke:#164669}.network-visual circle{fill:#123f5f;stroke:#fff;stroke-width:2}.coverage-stats{display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid #e3e8e9}.coverage-stats>div{min-width:0;padding:8px 7px;display:grid;grid-template-columns:auto 1fr;gap:0 5px;border-inline-end:1px solid #e4e9ea}.coverage-stats>div:last-child{border:0}.coverage-dot{width:7px;height:7px;border-radius:50%;align-self:center}.coverage-dot.green{background:#2a9d77}.coverage-dot.navy{background:#164669}.coverage-dot.amber{background:#edae3d}.coverage-stats b{font-size:11px}.coverage-stats small{grid-column:1/-1;font-size:7px;color:#71818b;white-space:nowrap}
@media(max-width:1200px){:root{--nav-w:245px}.sidebar-brand{font-size:19px}.dashboard-kpis{grid-template-columns:repeat(2,1fr)}.dashboard-lower-grid{grid-template-columns:1fr 1fr}.network-coverage{grid-column:1/-1}.header-date,.header-icon{display:none}.capacity-chain-panel{grid-template-columns:210px 1fr}}
@media(max-width:980px){.app-shell{direction:rtl;display:grid;grid-template-columns:1fr;grid-template-rows:var(--header-h) 1fr;grid-template-areas:"header" "main"}.app-nav{position:fixed;top:var(--header-h);right:0;width:min(85vw,300px);height:calc(100dvh - var(--header-h));z-index:60}.sidebar-brand{display:none}.app-main{padding:16px}.menu-toggle{display:grid}.header-user{display:none}.global-search{width:auto;flex:1}.capacity-chain-panel{grid-template-columns:1fr}.chain-heading{border:0;border-bottom:2px solid #efb546;padding:0 0 10px;margin-bottom:8px;grid-template-columns:40px 1fr}.dashboard-chain{padding:10px 0}.operations-board-head{flex-wrap:wrap}.dashboard-tabs{order:3;width:100%;height:38px;margin:0}.dashboard-lower-grid{grid-template-columns:1fr}.network-coverage{grid-column:auto}}
@media(max-width:600px){:root{--header-h:66px}.app-main{padding:12px 10px}.app-header{padding:0 10px}.persona-switcher{display:none}.dashboard-context{align-items:flex-start}.dashboard-context h1{font-size:16px}.context-status{display:none}.dashboard-kpis{grid-template-columns:1fr 1fr;gap:8px}.dashboard-kpi{min-height:112px;padding:11px 10px;gap:8px}.kpi-icon{width:42px;height:42px;flex-basis:42px}.kpi-icon svg{width:25px}.kpi-copy>span{font-size:9px;white-space:normal}.kpi-copy strong{font-size:18px}.kpi-copy strong small{display:block;margin:0}.capacity-chain-panel{padding:12px}.dashboard-chain{grid-template-columns:1fr;gap:0}.chain-stage{min-height:72px;grid-template-columns:45px 1fr auto;grid-template-rows:auto auto;text-align:right;justify-items:start;padding:8px 0 8px 15px;border-bottom:1px solid #e2e7e8}.chain-stage:last-child{border:0}.chain-stage::after{display:none}.chain-stage-icon{grid-row:1/3}.chain-stage-icon::after{display:none}.chain-stage-title{margin:0;align-self:end}.chain-stage b{grid-column:2;margin:0}.chain-stage small{grid-column:3;grid-row:1/3;align-self:center}.operations-board-head>div:first-child{min-width:0}.dashboard-tabs{overflow:auto}.dashboard-tabs button{white-space:nowrap}.dashboard-primary{margin-inline-start:auto}.dashboard-lower-grid>.dashboard-panel{min-height:0}.network-visual{height:130px}.global-search input{font-size:11px}.dashboard-table th,.dashboard-table td{height:42px}.board-footnote{height:auto;min-height:40px;line-height:1.7;padding:6px 12px}}

/* Detector-led legibility corrections: compact, but never microscopic. */
.header-user small{font-size:11px;color:#5f717c}.header-count{min-width:19px;height:19px;line-height:19px;font-size:11px;background:#c83730}.header-date,.dashboard-kicker,.context-status{font-size:11px}.persona-switcher{padding:4px}.dashboard-kpi::after{display:none}.kpi-copy>span{font-size:12px}.kpi-copy strong small,.kpi-copy em{font-size:11px}.chain-heading p{font-size:11px;color:#596d79}.panel-link{font-size:12px}.chain-stage-title,.chain-stage small{font-size:11px}.chain-stage b{font-size:13px}.dashboard-tabs button,.dashboard-primary{font-size:12px}.dashboard-table{font-size:12px}.dashboard-table th{font-size:11px}.dashboard-table strong{font-size:12px}.board-footnote{font-size:11px;color:#5b707c}.compact-panel-head{height:auto;min-height:52px;padding:8px 14px}.source-row{font-size:11px}.decision-row b,.decision-row small,.decision-row time{font-size:11px}.coverage-stats small{font-size:10px;color:#5d707c}
@media(max-width:600px){.kpi-copy>span{font-size:11px}.kpi-copy strong small{font-size:10px}.persona-switcher{display:block}.global-search{display:none}.persona-switcher select{width:148px;max-width:42vw}}

.file-mode-warning{max-width:680px;margin:10vh auto;padding:42px;background:#fff;border:1px solid #d8e0e3;border-radius:8px;text-align:center;box-shadow:0 10px 30px rgba(17,48,70,.08)}
.file-mode-warning h1{font-size:24px;margin:12px 0}.file-mode-warning p{color:#4f6574;line-height:2}.file-mode-icon{width:48px;height:48px;margin:auto;display:grid;place-items:center;border-radius:50%;background:#fff0d6;color:#a96008;font-size:24px;font-weight:800}.file-mode-command{margin:20px 0;padding:16px;background:#eef3f5;border-radius:6px;text-align:right}.file-mode-command span{display:block;margin-bottom:8px;font-size:13px;color:#4f6574}.file-mode-command code{display:block;direction:ltr;text-align:left;color:#103b59;font-size:15px}.file-mode-warning a{display:inline-block;margin-top:6px;font-weight:700;text-decoration:underline}
