/* Compact operational workspaces, using model 1's list, tabs and selected dossier. */
#portalVariant .op-local-tabs{display:flex;gap:4px;background:#fff;border-bottom:1px solid #dfe5ee;padding:0 14px;margin:0;overflow-x:auto}
#portalVariant .op-local-tabs>button{border:0;border-bottom:3px solid transparent;border-radius:0;background:transparent;color:#69758a;font:500 13px/1.4 Inter,'Segoe UI',Arial,sans-serif;padding:12px 15px;min-height:44px;white-space:nowrap;cursor:pointer}
#portalVariant .op-local-tabs>button.active{border-bottom-color:#1555ff;color:#172235;font-weight:700}
#portalVariant .op-load-dossier{position:sticky;top:20px;box-shadow:0 3px 12px #18304a09!important}
#portalVariant .op-load-dossier .vx-cardhead{padding:16px 18px}
#portalVariant .op-load-dossier .vx-cardhead strong{font-size:24px}
#portalVariant .op-detail-state{font:600 11px/1.5 Inter,'Segoe UI',Arial,sans-serif;color:#69758a;padding:10px 18px 2px}
#portalVariant .op-dossier-body{padding:16px 18px;min-height:240px;max-height:340px;overflow-y:auto;scrollbar-width:thin}
#portalVariant .op-details-facts{margin:0;display:block}
#portalVariant .op-details-facts>div{display:grid;grid-template-columns:105px minmax(0,1fr);gap:12px;padding:9px 0;border-bottom:1px solid #edf0f5;align-items:start;font-size:12px;line-height:1.5}
#portalVariant .op-details-facts :is(dt,span){font-size:12px;color:#69758a;font-weight:400;margin:0}
#portalVariant .op-details-facts :is(dd,strong){font-size:14px;color:#172235;font-weight:600;margin:0;min-width:0;overflow-wrap:anywhere;text-align:left}
#portalVariant .op-details-facts [data-route-arrival] :is(strong,small){font-size:12px!important;line-height:1.5!important}
#portalVariant .op-detail-primary{padding-top:15px}
#portalVariant .op-detail-primary .vx-button{width:100%;min-height:40px}
#portalVariant .op-detail-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
html body#portalVariant #modelInspector .op-load-action{min-height:44px!important;padding:10px!important;font-size:12px!important;line-height:1.4!important;text-align:center!important;display:flex!important;justify-content:center!important;align-items:center!important;width:100%!important;margin:0!important}
#portalVariant .op-route-list{list-style:none;padding:0 0 0 16px;margin:0 0 16px;border-left:2px solid #d5e0ff;max-height:210px;overflow-y:auto}
#portalVariant .op-route-list li{padding:0 0 16px 10px;position:relative;font-size:13px;line-height:1.5}
#portalVariant .op-route-list li:before{content:'';position:absolute;left:-21px;top:4px;width:8px;height:8px;border-radius:50%;background:#1555ff}
#portalVariant .op-route-list strong,#portalVariant .op-route-list small{display:block}
#portalVariant .op-route-list small{color:#69758a;font-size:11px}
#portalVariant #modelInspector .op-route-list+.vx-button{width:100%}
/* The date selector is always visible; history is no longer hidden behind a disclosure. */
html body#portalVariant #modelCalendar.op-visible-calendar{margin:0 0 20px!important;display:flex!important;align-items:center;gap:12px;flex-wrap:wrap}
html body#portalVariant #modelCalendar.op-visible-calendar .agenda-shell{display:contents!important;margin:0!important}
html body#portalVariant #modelCalendar.op-visible-calendar .agenda-controls{display:flex!important;padding:0!important;margin:0!important;flex:1 1 340px}
html body#portalVariant #modelCalendar.op-visible-calendar .period-filter{display:flex!important;align-items:center;flex-wrap:nowrap!important;width:100%!important;background:transparent!important;padding:0!important;gap:10px!important}
html body#portalVariant #modelCalendar.op-visible-calendar .period-filter label{font-size:12px!important;color:#536174!important}
html body#portalVariant #modelCalendar.op-visible-calendar .period-filter input{width:155px!important;min-height:38px!important;font-size:13px!important}
html body#portalVariant #modelCalendar.op-visible-calendar #agendaDates{display:none!important}
html body#portalVariant #modelCalendar.op-visible-calendar .model-sort-tools{display:flex!important;margin:0!important;gap:7px!important}
#portalVariant #modelDayLabel{cursor:pointer;border-radius:4px}
#portalVariant #modelDayLabel:focus-visible{outline:3px solid #1555ff50;outline-offset:4px}
/* Overview: a horizontal indicator strip and a focused analytical workspace. */
#portalVariant .op-kpi-strip{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin:0 0 22px}
#portalVariant .op-kpi{background:#fff;border:1px solid #dfe5ee;border-top:3px solid #1555ff;border-radius:8px;padding:16px 18px;display:flex;flex-direction:column;justify-content:center;min-height:110px;gap:5px;box-shadow:none}
#portalVariant .op-kpi>span{font-size:12px;color:#69758a;line-height:1.5}
#portalVariant .op-kpi>strong{font-size:32px;font-weight:700;color:#172235;line-height:1.2;letter-spacing:-.04em}
#portalVariant .op-kpi>small{font-size:10px;color:#8b95a5}
#portalVariant .op-kpi.yellow{border-top-color:#d5a000}
#portalVariant .op-kpi.green{border-top-color:#239455}
#portalVariant #opOverviewAverage #executiveAverageValue{display:block;padding:0;margin:0}
#portalVariant #opOverviewAverage #executiveAverageValue strong{font-size:28px!important;color:#172235!important;line-height:1.2!important;letter-spacing:-.03em}
#portalVariant #opOverviewAverage #executiveAverageValue span{font-size:10px!important;color:#8b95a5!important;line-height:1.4!important;display:block;margin-top:5px}
#portalVariant #opOverviewTabs,#portalVariant #opAnalysisTabs{padding:0!important;margin:0 0 22px!important;background:transparent!important}
#portalVariant .op-overview .executive-main{display:grid!important;grid-template-columns:minmax(0,1.65fr) minmax(320px,1fr)!important;align-items:start!important;gap:22px!important}
#portalVariant .op-overview .executive-content{display:contents!important}
#portalVariant .op-overview .executive-support{display:none!important}
#portalVariant .op-overview .executive-footer{display:none!important}
#portalVariant .op-overview .executive-rhythm,#portalVariant .op-overview .executive-returns,#portalVariant .op-overview .executive-team{padding:20px!important;border:1px solid #dfe5ee!important;border-radius:8px!important;background:#fff!important;box-shadow:none!important}
#portalVariant .op-overview .executive-chart-top{display:block!important;margin:0 0 16px!important;padding:0!important}
#portalVariant .op-overview .executive-chart-top h3,#portalVariant .op-overview .executive-small-heading h3,#portalVariant .op-overview .executive-team>h3{font-size:18px!important;font-weight:650!important;margin:0 0 6px!important;color:#172235!important}
#portalVariant .op-overview .executive-chart-top p,#portalVariant .op-overview .executive-small-heading p{font-size:12px!important;color:#69758a!important;margin:0!important;line-height:1.5!important}
#portalVariant .op-overview .insight-filters{display:flex!important;align-items:end!important;gap:10px!important;flex-wrap:wrap!important;padding:12px!important;margin-top:15px!important;background:#f7f9fe!important;border:1px solid #dfe5ee!important;border-radius:6px!important}
#portalVariant .op-overview .insight-filters label{flex:1 1 130px!important;font-size:11px!important}
#portalVariant .op-overview .insight-filters input{width:100%!important;min-height:38px!important;font-size:12px!important}
#portalVariant .op-overview .insight-filters .btn{min-height:38px!important;font-size:11px!important;padding:9px 11px!important}
#portalVariant .op-overview #executiveCanvas{height:260px!important;max-height:260px!important}
#portalVariant .op-overview .executive-small-heading{gap:12px!important}
#portalVariant .op-overview .executive-small-heading>img{width:32px!important;height:32px!important;padding:7px!important;background:#edf2ff!important;border-radius:6px!important;filter:grayscale(1)!important}
#portalVariant #farolPanel .integrated-operations{background:transparent!important;border:0!important;border-radius:0!important;padding:0!important;margin:0!important}
#portalVariant #farolPanel .integrated-operations>summary{display:none!important}
/* Analysis: sections are separated into purposeful tabs, not a long mixed dashboard. */
#portalVariant .op-analysis .ra-heading{align-items:end!important;padding-bottom:20px!important}
#portalVariant .op-analysis #raFilters{display:flex!important;align-items:end;gap:10px;flex-wrap:wrap;background:transparent!important;border:0!important;padding:0!important}
#portalVariant .op-analysis #raFilters label{font-size:11px!important;min-width:130px}
#portalVariant .op-analysis .ra-kpis{display:grid!important;grid-template-columns:repeat(4,minmax(0,1fr))!important;gap:14px!important;margin-bottom:22px!important}
#portalVariant .op-analysis .ra-kpis>div{border:1px solid #dfe5ee!important;border-top:3px solid #1555ff!important;border-radius:8px!important;padding:16px 18px!important;background:#fff!important;box-shadow:none!important;min-height:104px!important}
#portalVariant .op-analysis :is(.ra-chart,.ra-age-panel,.ra-rank-panel,.ra-reasons,.ra-pending){border:1px solid #dfe5ee!important;border-radius:8px!important;background:#fff!important;padding:20px!important;box-shadow:none!important}
#portalVariant .op-analysis .ra-pareto-layout{grid-template-columns:minmax(0,2fr) minmax(250px,1fr)!important;gap:22px!important}
#portalVariant .op-analysis .ra-focus{background:#f7f9fe!important;border:1px solid #dfe5ee!important;border-radius:6px!important;padding:16px!important;color:#172235!important}
#portalVariant .op-analysis .ra-investigation{grid-template-columns:minmax(230px,.7fr) minmax(0,2fr)!important;gap:22px!important}
#portalVariant .op-analysis .ra-replacement-analysis{display:grid!important;grid-template-columns:1fr 1fr!important;gap:22px!important}
#portalVariant .op-analysis .ra-follow-heading{grid-column:1/-1!important;margin:0!important;padding:0!important}
#portalVariant .op-analysis .ra-section-heading h3,#portalVariant .op-analysis .ra-reasons>h3{font-size:18px!important;font-weight:650!important;color:#172235!important}
#portalVariant .op-analysis .ra-load-card{padding:15px 16px!important;border-left:3px solid #dc5252!important;border-radius:7px!important}
#portalVariant .op-analysis-main{display:grid;grid-template-columns:50px minmax(115px,1fr) 60px minmax(130px,1.4fr) 90px;align-items:center;gap:14px}
#portalVariant .op-analysis-main strong{font-size:17px;font-weight:700;display:block}
#portalVariant .op-analysis-main small{font-size:11px!important;color:#69758a;display:block;margin:3px 0;line-height:1.5}
#portalVariant .op-analysis-main b{font-size:12px;font-weight:500;display:block;line-height:1.5}
#portalVariant .op-analysis-reason{margin:12px 0 0 64px!important;font-size:12px!important;color:#ad2933!important;line-height:1.5!important}
#portalVariant .op-row-link{font-size:11px;color:#1555ff;font-weight:600;line-height:1.5}
/* Pending travel costs are compact records, with the real launch action retained. */
#portalVariant #tripCostRequiredQueue.trip-cost-queue{padding:0!important;background:transparent!important;border:0!important;border-radius:0!important;margin:0 0 24px!important;box-shadow:none!important}
#portalVariant .trip-cost-queue-heading{padding:0 0 14px!important;border:0!important;background:transparent!important}
#portalVariant .trip-cost-queue-heading h3{font-size:18px!important;color:#172235!important;margin:0 0 6px!important;line-height:1.4!important}
#portalVariant .trip-cost-queue-heading h3 span{background:#edf2ff!important;color:#1555ff!important;font-size:12px!important;border-radius:5px!important;padding:4px 7px!important}
#portalVariant .trip-cost-queue-heading p{font-size:12px!important;color:#69758a!important;margin:0!important;line-height:1.5!important}
#portalVariant .trip-cost-queue-items{display:grid!important;gap:10px!important;max-height:310px!important;overflow-y:auto!important;padding:2px!important;scrollbar-width:thin}
#portalVariant .trip-cost-queue-row{display:grid!important;grid-template-columns:60px minmax(170px,1fr) minmax(140px,.7fr) 150px!important;align-items:center!important;gap:16px!important;background:#fff!important;border:1px solid #dfe5ee!important;border-left:3px solid #d5a000!important;border-radius:7px!important;padding:16px!important;margin:0!important;min-height:88px!important;box-shadow:none!important}
#portalVariant .trip-cost-queue-row.late{border-left-color:#dc5252!important;background:#fff!important}
#portalVariant .trip-cost-queue-row .op-cost-identity strong{font-size:16px!important;font-weight:700!important;color:#172235!important;line-height:1.4!important}
#portalVariant .trip-cost-queue-row .op-cost-identity small{font-size:12px!important;color:#69758a!important;line-height:1.5!important;margin-top:4px!important;display:block}
#portalVariant .trip-cost-queue-row .op-cost-note{font-size:12px!important;color:#8b6500!important;line-height:1.5!important}
#portalVariant .trip-cost-queue-row.late .op-cost-note{color:#ad2933!important}
#portalVariant .trip-cost-queue-row button{background:#111318!important;color:#fff!important;border:1px solid #111318!important;border-radius:6px!important;font-size:12px!important;min-height:40px!important;padding:10px 12px!important;margin:0!important}
/* Opportunity rows deliberately omit the legacy giant-card class. */
#portalVariant :is(#rawOpportunityAlert,#rawPurchasingOpportunities) .raw-opportunity-vehicles{display:grid!important;grid-template-columns:1fr!important;gap:8px!important;max-height:330px!important;overflow-y:auto!important;padding:2px!important;align-items:start!important;scrollbar-width:thin}
#portalVariant button.op-opportunity-item{display:block!important;width:100%!important;min-height:88px!important;padding:14px 16px!important;border:1px solid #dfe5ee!important;border-left:3px solid #1555ff!important;background:#fff!important;border-radius:7px!important;box-shadow:none!important;text-align:left!important;color:#172235!important;cursor:pointer}
#portalVariant button.op-opportunity-item:hover{background:#edf2ff!important}
#portalVariant .op-opportunity-main{display:grid;grid-template-columns:48px minmax(130px,1fr) 60px minmax(210px,1.5fr) 130px;align-items:center;gap:16px}
#portalVariant .op-opportunity-main>span{min-width:0}
#portalVariant .op-opportunity-main strong{display:block;font-size:17px;font-weight:700;line-height:1.35}
#portalVariant .op-opportunity-main b{display:block;font-size:13px;font-weight:600;line-height:1.5;overflow-wrap:anywhere}
#portalVariant .op-opportunity-main small{display:block;font-size:11px;color:#69758a;line-height:1.5;margin:3px 0;white-space:normal}
#portalVariant #opOpportunityDossier{border:1px solid #dfe5ee;border-radius:10px;background:#fff;margin:22px 0;box-shadow:0 3px 12px #18304a09;overflow:hidden;scroll-margin-top:20px}
#portalVariant .op-opportunity-heading{display:flex;justify-content:space-between;align-items:center;gap:20px;padding:18px 20px;background:#1555ff;color:#fff}
#portalVariant .op-opportunity-heading>div>span{font-size:9px;letter-spacing:.04em;color:#dce6ff}
#portalVariant .op-opportunity-heading h3{font-size:22px!important;color:#fff!important;line-height:1.3!important;margin:5px 0!important}
#portalVariant .op-opportunity-heading h3 small{font-size:12px!important;color:#dce6ff!important;margin-left:12px;font-weight:500}
#portalVariant .op-opportunity-heading p{font-size:12px!important;color:#e6edff!important;margin:0!important;line-height:1.5!important}
#portalVariant .op-opportunity-content{display:grid;grid-template-columns:minmax(300px,.9fr) minmax(0,1.4fr);gap:22px;padding:20px}
#portalVariant .op-inline-map{height:400px;border:1px solid #dfe5ee;border-radius:8px;background:#f3f6fb;min-width:0;overflow:hidden}
#portalVariant .op-inline-stops{list-style:none;display:grid;gap:10px;padding:0;margin:18px 0;max-height:210px;overflow-y:auto;scrollbar-width:thin}
#portalVariant .op-inline-stops li{display:flex;gap:12px;align-items:start;padding:10px 12px;border:1px solid #dfe5ee;border-radius:6px;background:#f7f9fe;font-size:12px}
#portalVariant .op-inline-stops li>span{font-weight:700;color:#1555ff;font-size:11px;padding-top:2px}
#portalVariant .op-inline-stops strong,#portalVariant .op-inline-stops small{display:block;line-height:1.5}
#portalVariant .op-inline-stops small{font-size:10px;color:#69758a}
#portalVariant #opOpportunityForecast{font-size:12px;color:#536174;line-height:1.6;margin:12px 0}
#portalVariant .op-opportunity-actions{display:flex;gap:8px;flex-wrap:wrap}
@media(max-width:1100px){
 #portalVariant .op-overview .executive-main{grid-template-columns:1fr!important}
 #portalVariant .op-analysis .ra-pareto-layout{grid-template-columns:1fr!important}
 #portalVariant .op-analysis .ra-replacement-analysis{grid-template-columns:1fr!important}
 #portalVariant .op-kpi-strip{grid-template-columns:repeat(2,minmax(0,1fr))}
 #portalVariant .op-opportunity-main{grid-template-columns:48px minmax(120px,1fr) 60px minmax(180px,1fr)}
 #portalVariant .op-opportunity-main>.op-row-link{grid-column:2/-1}
 #portalVariant .op-opportunity-content{grid-template-columns:1fr}
}
@media(max-width:640px){
 #portalVariant .op-load-dossier{position:static}
 #portalVariant .op-dossier-body{padding:14px;min-height:0;max-height:340px}
 #portalVariant .op-detail-actions{gap:8px}
 #portalVariant .op-kpi-strip{gap:10px;margin-bottom:18px}
 #portalVariant .op-kpi{min-height:96px;padding:13px 14px}
 #portalVariant .op-kpi>span{font-size:11px}
 #portalVariant .op-kpi>strong{font-size:28px}
 #portalVariant .op-overview .executive-rhythm,#portalVariant .op-overview .executive-returns,#portalVariant .op-overview .executive-team{padding:16px!important}
 #portalVariant .op-analysis .ra-kpis{grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:10px!important}
 #portalVariant .op-analysis .ra-investigation{grid-template-columns:1fr!important}
 #portalVariant .op-analysis :is(.ra-chart,.ra-age-panel,.ra-rank-panel,.ra-reasons,.ra-pending){padding:16px!important}
 #portalVariant .op-analysis-main{grid-template-columns:42px minmax(0,1fr) 58px;gap:10px}
 #portalVariant .op-analysis-main>div:nth-child(4){grid-column:2/-1}
 #portalVariant .op-analysis-main .op-row-link{grid-column:2/-1}
 #portalVariant .op-analysis-reason{margin-left:0!important;font-size:11px!important}
 #portalVariant .trip-cost-queue-row{grid-template-columns:44px minmax(0,1fr)!important;gap:10px!important;padding:13px!important}
 #portalVariant .trip-cost-queue-row .op-cost-note{grid-column:2;font-size:11px!important}
 #portalVariant .trip-cost-queue-row button{grid-column:2;width:100%!important;min-height:40px!important}
 #portalVariant .trip-cost-queue-row .op-cost-identity strong{font-size:14px!important}
 #portalVariant .op-opportunity-main{grid-template-columns:42px minmax(0,1fr) 55px;gap:10px}
 #portalVariant .op-opportunity-main .op-opportunity-supplier{grid-column:2/-1}
 #portalVariant .op-opportunity-main>.op-row-link{grid-column:2/-1}
 #portalVariant button.op-opportunity-item{padding:13px!important}
 #portalVariant .op-opportunity-main strong{font-size:16px}
 #portalVariant .op-opportunity-heading{padding:16px;align-items:start;gap:12px;flex-wrap:wrap}
 #portalVariant .op-opportunity-heading h3{font-size:21px!important}
 #portalVariant .op-opportunity-content{padding:16px;gap:16px}
 #portalVariant .op-inline-map{height:300px}
 #portalVariant .op-opportunity-actions .btn{width:100%!important;font-size:12px!important}
 html body#portalVariant #modelCalendar.op-visible-calendar .agenda-controls{flex:1 1 100%}
 html body#portalVariant #modelCalendar.op-visible-calendar .period-filter{flex-wrap:wrap!important;gap:8px!important}
 html body#portalVariant #modelCalendar.op-visible-calendar .period-filter label{width:100%;font-size:11px!important}
 html body#portalVariant #modelCalendar.op-visible-calendar .model-sort-tools{justify-content:start!important}
}
html body#portalVariant [hidden]{display:none!important}
#portalVariant .op-local-tabs>button{border:0!important;border-bottom:3px solid transparent!important;border-radius:0!important;background:transparent!important;color:#69758a!important;padding:12px 15px!important;min-height:44px!important;box-shadow:none!important;font-size:13px!important;font-weight:500!important}
#portalVariant .op-local-tabs>button.active{border-bottom-color:#1555ff!important;color:#172235!important;font-weight:700!important}
html body#portalVariant #farolPanel:has(#employeeDashboard)>.panel-heading{display:none!important}
#portalVariant .op-overview :is(.raw-return-segment,.raw-return-legend i.raw){background:#1555ff!important}
#portalVariant .op-overview .executive-legend i{background:#239455!important}
#portalVariant .op-overview .executive-legend span:last-child i{background:#d5a000!important}
#portalVariant :is(#rawOpportunityAlert,#rawPurchasingOpportunities) .op-opportunity-item .op-opportunity-main :is(strong,b){color:#172235!important}
#portalVariant :is(#rawOpportunityAlert,#rawPurchasingOpportunities) .op-opportunity-item .op-opportunity-main small{color:#69758a!important}
#portalVariant :is(#rawOpportunityAlert,#rawPurchasingOpportunities) .op-opportunity-item .op-row-link{color:#1555ff!important}
#portalVariant :is(#rawOpportunityAlert,#rawPurchasingOpportunities) .raw-opportunity-heading>img{background:#edf2ff!important;filter:grayscale(1)!important}
/* Section visibility wins over layout display declarations in these workspaces. */
#portalVariant .op-overview [hidden],#portalVariant .op-analysis [hidden]{display:none!important}
#portalVariant .op-analysis #raHorizontalPareto .ra-hp-bar>i{background:#1555ff!important}
#portalVariant .op-analysis .ra-section-heading>span{background:#f7f9fe!important;color:#69758a!important;border-radius:5px!important;font-size:11px!important}
html body#portalVariant #tripCostRequiredQueue .trip-cost-queue-row button{background:#111318!important;border-color:#111318!important;color:#fff!important}
/* Keep legends aligned with the existing chart renderer's real series colors. */
#portalVariant .op-overview .executive-legend i{background:#456b92!important}
#portalVariant .op-overview .executive-legend span:last-child i{background:#9cb0c4!important}
#portalVariant .op-overview .executive-legend i{background:#4d6d91!important}
#portalVariant .op-overview .executive-legend span:last-child i{background:#a1b2c7!important}

#portalVariant #helperDashboard[hidden],#portalVariant .integrated-operations[hidden]{display:none!important}
