/* J.A.R.V.I.S. v3.4 — permissions, user management, Sales Detail, GP vs units, chat chart toolbar */
:root{--jv-gp:#12a150;--jv-units:#2463eb;--jv-sales:#7c3aed;--jv-danger:#cf3f4e}
html[data-theme="dark"]{--jv-gp:#22c27a;--jv-units:#4f8df5;--jv-sales:#a78bfa;--jv-danger:#ef6b72}

/* ---------- GP hidden for users without the GP tick (values are already removed server-side) */
.jvNoGP .jvGpHide{display:none!important}
.jvNoGP .execKpiCard:has(#gp),.jvNoGP .execKpiCard:has(#gpp){display:none!important}
.jvNoGP .execKpiGrid{grid-template-columns:repeat(5,minmax(135px,1fr))!important}
@media(max-width:1300px){.jvNoGP .execKpiGrid{grid-template-columns:repeat(3,minmax(0,1fr))!important}}

/* ---------- admin: user management */
.jvUsersTable{width:100%;border-collapse:collapse;font-size:12px}
.jvUsersTable th{font-size:10px;letter-spacing:.06em;text-transform:uppercase;white-space:nowrap;padding:7px 6px;text-align:left}
.jvUsersTable td{padding:7px 6px;border-top:1px solid var(--line,#d9e1e8);vertical-align:middle}
.jvUsersTable td.jvTick{text-align:center}
.jvUsersTable input[type=checkbox]{width:16px;height:16px;cursor:pointer;accent-color:var(--exec-orange,#ff7a00)}
.jvUsersTable input[type=checkbox]:disabled{cursor:not-allowed;opacity:.55}
.jvUsersTable select{padding:5px 7px;border-radius:6px;border:1px solid var(--line,#d9e1e8);background:var(--input-bg,#fff);color:var(--text,#17212b);font-size:12px}
.jvUsersTable tr.jvDisabled td{opacity:.55}
.jvUsersTable tr.jvDirty td{background:rgba(255,122,0,.07)}
.jvUsersTable .jvActs{white-space:nowrap;text-align:right}
.jvUsersTable .jvActs .btn{margin-left:4px}
.jvYou{font-size:9px;font-weight:800;letter-spacing:.06em;text-transform:uppercase;color:var(--exec-orange,#ff7a00);border:1px solid currentColor;border-radius:99px;padding:0 6px;margin-left:4px}
.jvLink{background:none;border:0;padding:0;color:var(--accent,#00a7d8);font-size:11px;cursor:pointer;text-decoration:underline}
.jvDanger{color:var(--jv-danger)!important;border-color:var(--jv-danger)!important}
.jvAddUser{margin-top:10px;padding:12px;border:1px solid var(--line,#d9e1e8);border-radius:10px;background:var(--panel2,#fbfcfd)}
.jvAddGrid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:8px}
.jvAddGrid label{display:flex;flex-direction:column;gap:3px;font-size:10px;font-weight:800;letter-spacing:.05em;text-transform:uppercase;color:var(--muted,#6b7d8d)}
.jvAddGrid input,.jvAddGrid select{margin:0!important;padding:8px!important;font-size:12px}
.jvAddTicks{display:flex;flex-wrap:wrap;gap:14px;margin:10px 0}
.jvAddTicks label{display:flex;align-items:center;gap:6px;font-size:12px;font-weight:700;color:var(--text,#17212b);text-transform:none;letter-spacing:0;margin:0}
.jvAddTicks label span{font-weight:400;color:var(--muted,#6b7d8d)}
.jvAddTicks input{width:16px;height:16px;margin:0;accent-color:var(--exec-orange,#ff7a00)}
.jvFlash{margin-top:8px;padding:8px 10px;border-radius:8px;background:rgba(18,161,80,.12);color:var(--jv-gp);font-size:12px;font-weight:700}
@media(max-width:900px){.jvAddGrid{grid-template-columns:1fr 1fr}}

/* ---------- Sales Detail page */
.sdSearch{min-width:280px;padding:8px 10px;border-radius:8px;border:1px solid var(--line,#d9e1e8);background:var(--input-bg,#fff);color:var(--text,#17212b);font-size:12px}
#sdSize{padding:8px;border-radius:8px;border:1px solid var(--line,#d9e1e8);background:var(--input-bg,#fff);color:var(--text,#17212b);font-size:12px}
.sdTotals{display:flex;flex-wrap:wrap;gap:22px;padding:2px 2px 12px}
.sdTotals small{display:block;font-size:10px;font-weight:800;letter-spacing:.08em;color:var(--muted,#6b7d8d)}
.sdTotals b{display:block;font-size:20px;font-variant-numeric:tabular-nums;margin-top:2px}
.sdWrap{overflow:auto;max-height:calc(100vh - 260px);min-height:240px;width:0;min-width:100%}
.sdTable{width:100%;font-size:12px;border-collapse:collapse}
.sdTable th{position:sticky;top:0;z-index:1;cursor:pointer;white-space:nowrap;user-select:none;background:var(--panel,#fff)}
.sdTable th:hover{color:var(--accent,#00a7d8)}
.sdTable td{white-space:nowrap;font-variant-numeric:tabular-nums}
.sdTable .num{text-align:right}
.sdTable .neg{color:var(--bad,#cf3f4e);font-weight:700}
.sdNull{color:var(--muted,#6b7d8d)}
.sdPager{display:flex;align-items:center;justify-content:flex-end;gap:10px;padding-top:10px;font-size:12px;color:var(--muted,#6b7d8d)}
.mainCanvas:has(#reportsPage.active){width:100%;box-sizing:border-box}

/* ---------- GP vs units by year */
.jvYearPanel{margin:0 0 12px}
.jvYearGrid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;align-items:start}
.jvYearGrid.single{grid-template-columns:repeat(2,minmax(0,1fr))}
.jvYearGrid .jvYearTableCol{grid-column:1/-1}
.jvYearTableWrap{overflow:auto;width:0;min-width:100%}
.jvYearCol{min-width:0}
.jvYearHead{display:flex;align-items:center;gap:7px;font-size:11px;font-weight:800;letter-spacing:.04em;color:var(--text,#17212b);margin-bottom:4px}
.jvYearHead i{display:inline-block;width:10px;height:10px;border-radius:3px}
.jvYearSvg{width:100%;max-width:520px;height:auto;display:block}
.jvYearSvg .jvBase{stroke:var(--line,#d9e1e8);stroke-width:1}
.jvYearSvg .jvBarVal{font-size:11px;font-weight:700;fill:var(--text,#17212b)}
.jvYearSvg .jvAxisLbl{font-size:10px;fill:var(--muted,#6b7d8d)}
.jvYearSvg .jvBar:hover path{filter:brightness(1.15)}
.jvYearTable{width:100%;font-size:11px}
.jvYearTable td,.jvYearTable th{text-align:right;white-space:nowrap}
.jvYearTable td:first-child,.jvYearTable th:first-child{text-align:left}
.jvYearTable .neg{color:var(--bad,#cf3f4e)}
.jvYearFoot{font-size:10px;color:var(--muted,#6b7d8d);margin-top:8px}
@media(max-width:1100px){.jvYearGrid,.jvYearGrid.single{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}.jvYearTableCol{grid-column:1/-1}}
@media(max-width:700px){.jvYearGrid,.jvYearGrid.single{grid-template-columns:1fr}}

/* ---------- chat charts: toolbar above the chart, no fixed height */
.chatMessages .chartCard,.jvChatChart{height:auto!important;overflow:visible}
.jvChatChart .chartCardHead{padding:10px 11px 2px}
.jvChartTitle{min-width:0}
.jvChartTitle b{display:block;font-size:13px;line-height:1.25}
.jvChartTools{display:flex;flex-wrap:wrap;align-items:center;gap:5px;padding:6px 10px 4px}
.jvTool{border:1px solid var(--line,#d9e1e8);background:var(--panel,#fff);color:var(--text,#17212b);border-radius:7px;padding:4px 8px;font-size:11px;font-weight:700;line-height:1.2;cursor:pointer;white-space:nowrap}
.jvTool:hover{border-color:var(--accent,#00a7d8);color:var(--accent,#00a7d8)}
.jvTool.primary{background:var(--exec-orange,#ff7a00);border-color:var(--exec-orange,#ff7a00);color:#fff}
.jvTool.primary:hover{filter:brightness(1.08);color:#fff}
.jvTool.ghost{background:transparent}
.jvToolSep{flex:1}
.jvChatChart .chartSvg{display:block;width:100%;height:auto}
.jvChartModal{position:fixed;inset:0;z-index:300;background:rgba(5,10,20,.62);display:none;align-items:center;justify-content:center;padding:24px}
.jvChartModal.on{display:flex}
.jvChartBox{width:min(1100px,96vw);max-height:92vh;overflow:auto;background:var(--panel,#fff);border:1px solid var(--line,#d9e1e8);border-radius:14px;padding:14px 16px;box-shadow:0 30px 80px rgba(0,0,0,.4)}
.jvChartBoxHead{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:6px}
.jvChartBoxHead b{font-size:15px}
.jvChartBox .chartSvg{width:100%;height:auto;display:block}

/* ---------- chat composer: more room for answers */
#chatSideView .chatComposer .smartHint{display:none}

/* ---------- wide tables scroll inside their card instead of widening the whole page */
.vehicleDetailScroll,.execTableWrap{width:0;min-width:100%;overflow:auto}
.jvUsersTable button:disabled{opacity:.3;cursor:default;filter:grayscale(1)}

/* ---------- v3.5 sales consultant termination dates (admin) */
.jvCsSearch{padding:6px 9px;border-radius:7px;border:1px solid var(--line,#d9e1e8);background:var(--input-bg,#fff);color:var(--text,#17212b);font-size:12px;min-width:200px;margin:0!important;width:auto!important}
.jvCsOnly{display:flex;align-items:center;gap:5px;font-size:11px;font-weight:700;white-space:nowrap;margin:0!important;color:var(--text,#17212b);text-transform:none!important;letter-spacing:0!important}
.jvCsOnly input{width:15px!important;height:15px;margin:0!important;accent-color:var(--exec-orange,#ff7a00)}
.jvCsWrap{max-height:380px;overflow:auto;margin-top:9px;border:1px solid var(--line,#d9e1e8);border-radius:10px}
.jvCsTable{width:100%;border-collapse:collapse;font-size:12px}
.jvCsTable th{position:sticky;top:0;background:var(--panel,#fff);z-index:1;font-size:10px;letter-spacing:.06em;text-transform:uppercase;padding:7px 8px;text-align:left;white-space:nowrap}
.jvCsTable td{padding:6px 8px;border-top:1px solid var(--line,#d9e1e8);white-space:nowrap}
.jvCsTable .num{text-align:right;font-variant-numeric:tabular-nums}
.jvCsTable input[type=date]{margin:0!important;padding:5px 7px!important;width:auto!important;font-size:12px;border-radius:6px;border:1px solid var(--line,#d9e1e8);background:var(--input-bg,#fff);color:var(--text,#17212b);color-scheme:light dark}
.jvCsTable button:disabled{opacity:.3;cursor:default;filter:grayscale(1)}
.jvCsTable .jvActs{text-align:right}
.jvCsTable .jvActs .btn{margin-left:4px}
.jvCsActive{color:var(--jv-gp);font-weight:700}
.jvCsLeft{color:var(--jv-danger);font-weight:800}

/* ---------- v3.6 sold vehicles (Reports tab) */
.sdCard{margin-top:18px}
.sdHead{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;flex-wrap:wrap;margin-bottom:10px}
.sdTitle{font-size:14px;letter-spacing:.03em}
.sdTools{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.sdVinBox{display:flex;align-items:center;border:2px solid var(--exec-orange,#ff7a00);border-radius:9px;background:var(--input-bg,#fff);padding:0 4px 0 10px;min-width:330px}
.sdVinBox span{font-size:10px;font-weight:900;letter-spacing:.1em;color:var(--exec-orange,#ff7a00);margin-right:8px}
.sdVinBox input{border:0!important;outline:none;background:transparent;color:var(--text,#17212b);font-size:13px;font-family:ui-monospace,Consolas,monospace;letter-spacing:.04em;text-transform:uppercase;padding:8px 2px;flex:1;min-width:0;margin:0!important}
.sdVinBox input::placeholder{text-transform:none;letter-spacing:0;font-family:inherit;font-size:12px}
.sdClear{border:0;background:transparent;color:var(--muted,#6b7d8d);cursor:pointer;font-size:13px;padding:4px 6px}
.sdTable .sdRow{cursor:pointer}
.sdTable .sdRow:hover td{background:rgba(255,122,0,.06)}
.sdTable .sdRow.open td{background:rgba(255,122,0,.10);font-weight:600}
.sdTable .sdExp{width:18px;color:var(--exec-orange,#ff7a00);font-size:11px;text-align:center;padding-right:0}
.sdTable mark{background:rgba(255,122,0,.32);color:inherit;border-radius:3px;padding:0 1px}
.sdTable tr.sdDetailRow td{white-space:normal;background:var(--panel2,#fbfcfd);cursor:default;border-top:0}
.sdDetail{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:14px;padding:8px 4px 12px}
.sdGroup h4{margin:0 0 6px;font-size:10px;letter-spacing:.1em;text-transform:uppercase;color:var(--exec-orange,#ff7a00)}
.sdGroup dl{margin:0;display:grid;grid-template-columns:auto 1fr;gap:3px 12px;font-size:12px}
.sdGroup dt{color:var(--muted,#6b7d8d)}
.sdGroup dd{margin:0;font-weight:600;word-break:break-word}
.sdGroup dd.num{font-variant-numeric:tabular-nums}
.sdHint{font-size:11px;color:var(--muted,#6b7d8d)}
.sdSpacer{flex:1}
.sdPager{justify-content:flex-start!important}
.modal .box{max-height:92vh;overflow:auto}
/* v3.6.1: Data Health tile removed from the bottom strip -> 4 tiles */
.execSummaryStrip{grid-template-columns:repeat(4,minmax(0,1fr))!important}
@media(max-width:1100px){.execSummaryStrip{grid-template-columns:repeat(2,minmax(0,1fr))!important}}

/* v3.8: light theme - Retail vs Fleet donut total and legend numbers were white on white */
html[data-theme="light"] .execDonutCenter b,html[data-theme="light"] .execLegend b{color:#172235!important}
html[data-theme="light"] .execDonutCenter span{color:#5b6b7f!important}
html[data-theme="light"] .execLegend>div{color:#46566a!important}
html[data-theme="light"] .execLegend small{color:#5b6b7f!important}
html[data-theme="light"] .execAlertCounts b{color:#172235!important}
/* light theme - Sales Targets page: the "add target" box stayed dark navy with dark text */
html[data-theme="light"] #jarvisTargetsPage .jt-admin{background:#f6f9fc!important;border-color:#d9e1e8!important}
html[data-theme="light"] #jarvisTargetsPage .jt-admin b,html[data-theme="light"] #jarvisTargetsPage .jt-admin label{color:#172235!important}
html[data-theme="light"] .jt-sub,html[data-theme="light"] .jt-help{color:#5b6b7f!important}
/* light theme - filter panel stays navy: its counters must be light; side-panel title must be dark */
html[data-theme="light"] #filterWorkspace .filterMetric b{color:#f6f8fb!important}
html[data-theme="light"] .insightsSideHead b{color:#172235!important}
/* dark theme - insight cards in the side panel were white with white titles */
html[data-theme="dark"] .sidePanel .insightItem{background:#101a2b!important;border-color:#243149!important}
html[data-theme="dark"] .sidePanel .insightItem b{color:#f6f8fb!important}
html[data-theme="dark"] .sidePanel .insightItem p{color:#9fb1c6!important}
/* v3.9 YTD split by vehicle type */
.execSummaryItem span.jvYtdSplit{color:#a9b8cc;font-size:9px;font-weight:700;margin-top:2px}
html[data-theme="light"] .execSummaryItem span.jvYtdSplit{color:#3d4d63}
/* v3.10 bar value labels, logo link, author badge */
.svgChart .barValueLabel{font-size:11px;font-weight:800;fill:var(--text,#17212b)}
a.brandLink{cursor:pointer;text-decoration:none}
a.brandLink img{transition:transform .15s ease}
a.brandLink:hover img,a.brandLink:focus-visible img{transform:scale(1.07)}
#clBadge.clBadge{text-transform:none;letter-spacing:.02em;font-size:10px}
/* v3.10 clickable alerts + drill-down */
#alertFeed .alertItem.jvClickable{cursor:pointer;position:relative;padding-right:26px!important;transition:border-color .15s,box-shadow .15s}
#alertFeed .alertItem.jvClickable:hover,#alertFeed .alertItem.jvClickable:focus-visible{border-color:var(--accent2,#14c8f4)!important;box-shadow:0 0 0 1px var(--accent2,#14c8f4);outline:none}
.alertItem .jvGo{position:absolute;right:9px;top:50%;transform:translateY(-50%);font-size:18px;font-weight:700;color:var(--muted,#6b7d8d)}
.jvDrillBox{width:min(1320px,97vw);max-height:94vh;padding:16px 18px}
.jvDrillHead{display:flex;justify-content:space-between;align-items:flex-start;gap:14px;margin-bottom:12px}
.jvDrillHead b{display:block;font-size:17px;color:var(--text,#17212b)}
.jvDrillSub{font-size:12px;color:var(--muted,#6b7d8d);margin-top:4px;max-width:880px;line-height:1.45}
.jvDrillHead .jvChartTools{flex-wrap:wrap;justify-content:flex-end}
.jvSev{display:inline-block;font-size:9px;font-weight:800;letter-spacing:.08em;padding:2px 8px;border-radius:999px;margin-bottom:6px;border:1px solid currentColor}
.jvSev.sev-critical,.jvSev.sev-risk{color:var(--bad,#cf3f4e)}.jvSev.sev-warning,.jvSev.sev-watch{color:var(--warn,#c99318)}
.jvSev.sev-info{color:var(--accent2,#007ea8)}.jvSev.sev-good{color:var(--good,#1aa36f)}.jvSev.sev-opportunity{color:#7c3aed}
html[data-theme="dark"] .jvSev.sev-opportunity{color:#b79cff}
.jvDrTiles{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:8px;margin-bottom:10px}
.jvDrTile{border:1px solid var(--line,#d9e1e8);border-radius:9px;padding:8px 11px;background:var(--panel2,#fbfcfd)}
.jvDrTile small{display:block;font-size:9.5px;font-weight:800;letter-spacing:.07em;color:var(--muted,#6b7d8d)}
.jvDrTile b{display:block;font-size:17px;margin-top:2px;white-space:nowrap;color:var(--text,#17212b);font-variant-numeric:tabular-nums}
.jvDrTile b small{display:inline;font-size:11px;letter-spacing:0;font-weight:600}
.jvDrTile .neg,.jvDrTable .neg,.jvDrBlock .neg{color:var(--bad,#cf3f4e)}
.jvDrNote{font-size:11px;color:var(--muted,#6b7d8d);margin:-2px 0 10px}
.jvDrBreak{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-bottom:12px}
.jvDrBlock{border:1px solid var(--line,#d9e1e8);border-radius:9px;padding:8px 10px;min-width:0}
.jvDrBlock h4{margin:0 0 6px;font-size:10px;letter-spacing:.1em;color:var(--exec-orange,#ff7a00)}
.jvDrBlock table{width:100%;font-size:11.5px;border-collapse:collapse;table-layout:fixed}
.jvDrBlock th{font-size:9px;color:var(--muted,#6b7d8d);font-weight:800;text-align:left;padding:0 4px 3px}
.jvDrBlock th.num,.jvDrBlock td.num{text-align:right;width:72px;font-variant-numeric:tabular-nums}
.jvDrBlock td{padding:3px 4px;position:relative;color:var(--text,#17212b);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.jvDrBlock tr[data-dr-chip]{cursor:pointer}
.jvDrBlock tr[data-dr-chip]:hover td{background:rgba(127,140,160,.10)}
.jvDrBlock tr.on td{background:rgba(20,200,244,.16)}
.jvDrBlock tr.muted td{color:var(--muted,#6b7d8d);font-size:10.5px;cursor:default}
.jvDrBar{position:absolute;left:0;top:3px;bottom:3px;background:rgba(39,135,255,.16);border-radius:3px}
.jvDrLbl{position:relative}
.jvDrTools{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin-bottom:8px}
.jvDrTools select{padding:7px 9px;border-radius:8px;border:1px solid var(--line,#d9e1e8);background:var(--input-bg,#fff);color:var(--text,#17212b);font-size:12px}
.jvDrChip{border:1px solid var(--accent2,#14c8f4);background:transparent;color:var(--text,#17212b);border-radius:999px;padding:5px 10px;font-size:11px;font-weight:700;cursor:pointer}
.jvDrCount{font-size:11px;color:var(--muted,#6b7d8d)}
.jvDrTableWrap{overflow:auto;max-height:50vh;width:0;min-width:100%;border:1px solid var(--line,#d9e1e8);border-radius:8px}
.jvDrTable{width:100%;font-size:12px}
.jvDrTable td,.jvDrTable th{white-space:nowrap}
.jvDrTable th.num,.jvDrTable td.num{text-align:right;font-variant-numeric:tabular-nums}
.jvDrTable thead th{position:sticky;top:0;z-index:1;background:var(--panel,#fff)}
.jvDrTable tr[data-dr-row]{cursor:pointer}
.jvDrTable tr[data-dr-row]:hover td{background:rgba(127,140,160,.08)}
.jvDrTable tr.open td{background:rgba(20,200,244,.10)}
.jvDrMoreCell{text-align:center;padding:10px!important}
.jvDrStatus p{font-size:13px;color:var(--text,#17212b)}
.jvDrStatus table{max-width:720px;margin:8px 0 12px}
.jvDrStatus th{text-align:left;padding-right:18px;white-space:nowrap;color:var(--muted,#6b7d8d)}
.jvAlertList{display:grid;gap:8px}
.jvAlertList .jvAlertBtn{width:100%;text-align:left;cursor:pointer;display:grid!important;grid-template-columns:auto 1fr auto;gap:10px;align-items:center;font:inherit;color:var(--text,#17212b);min-height:0!important}
.jvAlertList .jvAlertBtn .jvGo{position:static;transform:none}
.jvAlertList .jvAlertBtn:hover{border-color:var(--accent2,#14c8f4)!important}
.jvAlertList .alertDetail{font-size:11px;color:var(--muted,#6b7d8d);margin-top:2px}
.jvAlertList .alertTime{font-size:10px;color:var(--muted,#6b7d8d);margin-top:3px}
/* v3.10 deep insights */
html[data-theme] .insightItem.jvIns.sev-risk,html[data-theme] .execInsights .insightItem.jvIns.sev-risk,.insightItem.jvIns.sev-risk{border-left:3px solid #e5484d!important}
html[data-theme] .insightItem.jvIns.sev-watch,html[data-theme] .execInsights .insightItem.jvIns.sev-watch,.insightItem.jvIns.sev-watch{border-left:3px solid #e0a100!important}
html[data-theme] .insightItem.jvIns.sev-good,html[data-theme] .execInsights .insightItem.jvIns.sev-good,.insightItem.jvIns.sev-good{border-left:3px solid #17a673!important}
html[data-theme] .insightItem.jvIns.sev-opportunity,html[data-theme] .execInsights .insightItem.jvIns.sev-opportunity,.insightItem.jvIns.sev-opportunity{border-left:3px solid #8b5cf6!important}
html[data-theme] .insightItem.jvIns.sev-info,html[data-theme] .execInsights .insightItem.jvIns.sev-info,.insightItem.jvIns.sev-info{border-left:3px solid #14a8d8!important}
html[data-theme] .insightItem.jvIns.sev-ai,html[data-theme] .execInsights .insightItem.jvIns.sev-ai,.insightItem.jvIns.sev-ai{border-left:3px solid #d97757!important}
.insightItem.jvIns.jvClickable{cursor:pointer}
.insightItem.jvIns.jvClickable:hover,.insightItem.jvIns.jvClickable:focus-visible{box-shadow:0 0 0 1px var(--accent2,#14c8f4);outline:none}
.insightItem.jvIns .jvInsAction{color:var(--text,#17212b)!important;font-weight:700}
.insightItem.jvIns .jvInsMore{display:inline-block;margin-top:5px;font-size:10px;font-weight:800;letter-spacing:.03em;color:var(--accent2,#007ea8)}
html[data-theme="dark"] .insightItem.jvIns .jvInsMore{color:#14c8f4}
.jvInsSection{font-size:9.5px;font-weight:800;letter-spacing:.09em;text-transform:uppercase;color:var(--muted,#6b7d8d);margin:6px 2px 2px}
.execInsights{max-height:330px!important}
@media(max-width:900px){.jvDrBreak{grid-template-columns:1fr}}
/* v3.10.2 Monthly Revenue Trajectory removed: Sales Value by Model + Retail vs Fleet share the row */
.execPrimaryGrid{grid-template-columns:minmax(0,1.6fr) minmax(0,1fr)!important}
.execPrimaryGrid>div:last-child{grid-column:auto!important}
@media(max-width:1050px){.execPrimaryGrid{grid-template-columns:1fr!important}}
/* v3.11 SAP data connections (admin) */
.jvConn .chartTitleRow{display:flex;justify-content:space-between;align-items:center}
.jvConnGrid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-top:10px}
.jvConnCard{border:1px solid var(--line,#d9e1e8);border-radius:10px;padding:12px 14px;background:var(--panel2,#fbfcfd);min-width:0}
.jvConnHead{display:flex;justify-content:space-between;align-items:flex-start;gap:10px}
.jvConnHead b{font-size:13px;color:var(--text,#17212b)}
.jvConnStatus{margin:8px 0 10px;display:flex;flex-wrap:wrap;align-items:center;gap:8px}
.jvConnWhen{font-size:11px;color:var(--muted,#6b7d8d)}
.jvConnErr{flex-basis:100%;font-size:11px;color:var(--bad,#cf3f4e);word-break:break-word}
.jvConnLbl{display:block;font-size:10px!important;font-weight:800;letter-spacing:.06em;text-transform:uppercase;color:var(--muted,#6b7d8d);margin:0 0 4px!important}
.jvConn input.jvConnUrl{width:100%!important;box-sizing:border-box;margin:0!important;padding:8px 10px!important;border-radius:8px;border:1px solid var(--line,#d9e1e8);background:var(--input-bg,#fff);color:var(--text,#17212b);font:12px/1.4 ui-monospace,SFMono-Regular,Consolas,monospace!important}
.jvConn input.jvConnUrl:focus{outline:2px solid var(--accent2,#14c8f4);outline-offset:0}
.jvConnBtns{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}
.jvConnTest{font-size:12px;margin-top:8px;min-height:0}
.jvConnTest.ok{color:var(--good,#1aa36f);font-weight:700}
.jvConnTest.bad{color:var(--bad,#cf3f4e);font-weight:700}
.jvConnTest.busy{color:var(--muted,#6b7d8d)}
.jvConnMeta{font-size:10.5px;color:var(--muted,#6b7d8d);margin-top:8px;word-break:break-all}
.jvConnMeta code{font-size:10.5px}
.jvConnChk{display:flex!important;align-items:center;gap:6px;font-size:11px!important;font-weight:700;white-space:nowrap;margin:0!important;color:var(--text,#17212b);text-transform:none!important;letter-spacing:0!important}
.jvConnChk input{width:15px!important;height:15px;margin:0!important;accent-color:var(--exec-orange,#ff7a00)}
.jvConnFoot{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-top:12px}
.jvConnFoot .btn.primary{margin-left:auto}
.jvConnFoot .btn:disabled{opacity:.45;cursor:default}
.jvConnMsg{font-size:12px;color:var(--muted,#6b7d8d)}
.jvConnMsg.ok{color:var(--good,#1aa36f);font-weight:700}.jvConnMsg.bad{color:var(--bad,#cf3f4e);font-weight:700}
@media(max-width:900px){.jvConnGrid{grid-template-columns:1fr}}
.jvConn.busy .jvConnGrid{opacity:.7}
