/* CAR BI 1.0: one workspace, clear hierarchy, compact data and restrained colour. */
:root{--navy:#234f47;--navy-2:#173c35;--blue:#216b5b;--paper:#f4f6f5;--ink:#202e2a;--muted:#748079;--rule:#dce4df;--shadow:0 2px 8px #162e2110}
body{font-family:Inter,-apple-system,BlinkMacSystemFont,"PingFang SC","Microsoft YaHei",sans-serif;color:var(--ink);background:var(--paper);font-size:14px;line-height:1.6}
.shell{grid-template-columns:228px minmax(0,1fr)}
.sidebar{background:#fff;color:var(--ink);border-right:1px solid var(--rule);padding:24px 16px;box-shadow:none}
.brand{color:var(--ink);gap:11px}.brand strong{font-size:21px;letter-spacing:-.8px}.brand small{color:var(--muted);font-size:10px}.brand-mark{background:var(--navy);color:#fff;border:0;border-radius:11px}
.nav{gap:18px}.nav-group{margin:0 0 15px}.nav-label{color:#86928a;font-size:11px;letter-spacing:1px;margin:0 12px 6px}.nav a{color:#637269;border:0;border-radius:7px;padding:8px 12px;font-size:13px;min-height:35px}.nav a:hover{background:#f1f5f2;color:#244e3b}.nav a.active{background:#e6f1eb;color:#205440;font-weight:650;box-shadow:none}.sidebar-foot,.identity{border-color:var(--rule)}.identity,.admin-link,.text-button{color:var(--ink)}.identity small{color:var(--muted)}.avatar{color:var(--navy);background:#e6eee8}
.main{padding:0 34px 40px;max-width:none;min-width:0}.workspace-bar{display:flex;justify-content:space-between;align-items:center;height:58px;border-bottom:1px solid var(--rule);font-size:12px;color:var(--muted);margin-bottom:28px}.workspace-bar a{color:var(--navy)}
h1{font-size:26px;letter-spacing:-.6px;line-height:1.4;margin:3px 0 10px}h2{font-size:17px;letter-spacing:-.2px}h3{font-size:14px}.page-head,.page-heading{margin:0 0 24px;align-items:center}.page-head p,.page-heading p{max-width:850px;font-size:13px;color:var(--muted);line-height:1.7}.eyebrow{font-size:10px!important;letter-spacing:1.4px;color:#7a9082!important}.panel{border-radius:11px;border:1px solid var(--rule);box-shadow:none;padding:22px;margin-bottom:20px}.panel-head,.panel-header{margin-bottom:16px}.panel p{font-size:13px;line-height:1.7}.metric-grid{gap:16px}.metric-card{border-radius:10px;box-shadow:none;border:1px solid var(--rule);padding:22px}.metric-card strong{font-size:28px;font-weight:650;color:var(--navy);font-variant-numeric:tabular-nums}.metric-card small{font-size:11px}.action-card{border-radius:9px;box-shadow:none;padding:20px;background:#f7faf8}
.bc-tabs,.dw-tabs,.tabs{gap:6px}.bc-tabs a,.dw-tabs a,.tabs a{border-radius:6px;background:transparent;border-color:transparent;font-size:13px;padding:8px 12px}.bc-tabs a[aria-current=page],.dw-tabs a[aria-current=page],.tabs a[aria-current=page]{background:#e3ede6;color:var(--navy);border-color:#d8e5dc}.bc-meta,.bc-note,.dw-meta{font-size:12px}.bc-reference-summary{display:none}.bc-tree td:first-child{width:34%}.bc-tree td:last-child{width:25%}.bc-tree small{font-size:10px}.bc-name small{opacity:.65}
button,.button,.button-link,input,select,textarea{border-radius:6px}input,select,textarea{font-size:13px;padding:9px 11px;min-height:37px;border:1px solid #cfdad2;background:#fff}button,.button,.button-link{font-size:13px;box-shadow:none;font-weight:550}button:focus-visible,a:focus-visible,input:focus-visible{outline:3px solid #84bfa2;outline-offset:3px}.primary{background:var(--navy);border-color:var(--navy)}.optional-note{flex-basis:100%;color:var(--muted);font-size:12px}.optional-note summary{cursor:pointer;padding:4px 0}.optional-note label{margin-top:8px;max-width:600px}.optional-note input,.optional-note textarea{width:100%}
.table-wrap{border-radius:7px;border:1px solid var(--rule);max-width:100%;overflow:auto;overscroll-behavior:contain}table{font-size:12px;border-collapse:separate;border-spacing:0}thead th{position:sticky;top:0;background:#eef3ef;color:#52655a;font-size:11px;z-index:2}th,td{padding:11px 12px;border-bottom:1px solid #e7ece8}tbody tr:hover{background:#f5f9f6}td{font-variant-numeric:tabular-nums}table small{font-size:11px}.hp-summary{border-radius:8px;overflow:hidden}.hp-summary>div{background:white}.hp-summary strong{font-size:23px}.pill{border-radius:5px;font-size:10px;padding:2px 6px}.notice{border-radius:7px;font-size:13px;line-height:1.7}.notice.success{background:#edf7f0;color:#275e3d}.notice.danger,.notice.error{background:#fff3ef;color:#9c4e35}.dw-boundary{border-radius:8px;font-size:12px}.source-evidence{margin-top:15px}.source-evidence summary{cursor:pointer;color:var(--muted);font-size:12px;padding:8px 0}
.confirm-modal{width:min(540px,calc(100vw - 32px));padding:28px;border:1px solid var(--rule);border-radius:14px;box-shadow:0 20px 80px #18352833}.confirm-modal::backdrop{background:#17362766}.confirm-modal h2{font-size:20px}.confirm-modal .button-row{justify-content:flex-end;margin-top:22px}.confirm-modal p{white-space:pre-wrap;color:var(--muted)}.submit-progress{position:fixed;bottom:22px;left:50%;transform:translateX(-50%);padding:12px 20px;background:#234f47;color:white;border-radius:10px;z-index:100}
@media(min-width:961px){.sidebar{position:sticky;top:0;height:100vh;overflow:auto}.main{width:100%}}@media(max-width:960px){.shell{display:block}.sidebar{height:auto;padding:14px}.main{padding:0 16px 25px}.nav-group{margin-bottom:6px}.workspace-bar{margin-bottom:20px}.panel{padding:16px}h1{font-size:23px}.metric-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
.metric-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));margin:24px 0}.metric-card{display:flex;flex-direction:column;gap:10px;background:#fff}.metric-card>span{color:var(--muted);font-size:12px}.metric-card>small{line-height:1.6}.card-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.action-card{display:flex;flex-direction:column;gap:12px;border:1px solid #e3ebe5;color:var(--ink)}.action-card>span{font-size:14px;font-weight:650}.action-card>strong{font-size:19px;color:var(--navy)}.action-card>small{font-size:12px;line-height:1.65;color:var(--muted)}.nav-group{margin-bottom:10px}.nav{gap:10px}.sidebar-head{margin-bottom:24px}.dw-scroll{max-width:100%;overflow:auto;border:1px solid var(--rule);border-radius:7px}.filters{display:flex;flex-wrap:wrap;gap:14px;align-items:end;margin-bottom:18px}.filters label{display:flex;flex-direction:column;gap:6px;font-size:12px}.filters label select{min-width:170px;max-width:300px}.filters label input{max-width:250px}.source-evidence .comparison-basis{margin:6px 0 20px}
@media(max-width:780px){.metric-grid,.card-grid{grid-template-columns:1fr}}
.report-columns{margin:16px 0}.report-columns button{background:#fff;color:#52715f;border:1px solid #d8e5dc}.report-columns button[aria-pressed=true]{background:var(--navy);color:white}.report-columns~* table [hidden]{display:none!important}

.nav-toggle{color:var(--navy);border-color:var(--rule)}

/* Shared component contract. Keep this layer after feature styles. */
:root{--font-ui:-apple-system,BlinkMacSystemFont,"PingFang SC","Microsoft YaHei",sans-serif;--muted:#5f7067;--surface-soft:#f1f6f3;--surface-total:#e0ece5}
body{font-family:var(--font-ui)}
.page-head h1,.page-heading h1,.login-card h1{font:650 26px/1.4 var(--font-ui);letter-spacing:-.4px}
.panel>h2:first-child,.panel>h3:first-child,.panel-head h2,.panel-header h2,.report-group-head h2,.report-caliber-card h2,.process-note h2{font:650 17px/1.5 var(--font-ui)}
.eyebrow,.pill{font-family:var(--font-ui)}
.metric-row strong,.hp-summary strong,.dw-summary strong,.issue-summary strong{font-family:var(--font-ui);font-variant-numeric:tabular-nums;letter-spacing:-.5px}
button:not(.text-button):not(.nav-toggle),.button,.button-link{min-height:38px;padding:9px 14px;border:1px solid var(--rule);font-size:13px;font-weight:550;line-height:1.4;border-radius:6px}
button.primary:not(.text-button):not(.nav-toggle),.button.primary,.button-link.primary{background:var(--navy);border-color:var(--navy);color:#fff}
button.primary:not(.text-button):not(.nav-toggle):hover,.button.primary:hover,.button-link.primary:hover{background:var(--navy-2);border-color:var(--navy-2);color:#fff}
button:not(.text-button):not(.nav-toggle):disabled,button[aria-disabled=true]{cursor:not-allowed;opacity:.55}
button.danger:not(.text-button):not(.nav-toggle){background:#fff3ef;color:#963e2c;border-color:#e7c9c0}
:is(button,a,input,select,textarea,summary,[tabindex]):focus-visible{outline:3px solid #6b9f84;outline-offset:3px}
input[type=checkbox],input[type=radio]{accent-color:var(--navy)}
.dw-boundary{display:flex;gap:14px;padding:14px 18px;margin-bottom:18px;background:var(--surface-soft);border:1px solid var(--rule);border-left:3px solid var(--blue);line-height:1.7}
.dw-boundary strong{flex-shrink:0;color:var(--navy)}
.dw-summary{grid-template-columns:repeat(3,minmax(0,1fr));background:#fff;border:1px solid var(--rule);border-radius:9px;overflow:hidden}
.dw-summary>div{min-width:0;padding:18px 20px;border-bottom:1px solid var(--rule)}
.dw-summary strong{font-size:26px;line-height:1.3;overflow-wrap:anywhere}
.report-group{border-radius:10px;overflow:hidden;box-shadow:none}.report-group-head,.report-card:hover{background:var(--surface-soft)}
.report-state,.dw-state,.pill{border-radius:5px}.report-state.current{color:#275e3d;border-color:#bcd5c5;background:#edf7f0}
.report-caliber-card{border-radius:9px;box-shadow:none}.report-caliber-version{border-color:var(--rule);border-radius:5px}
.report-toolbar{position:static;display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:start;gap:14px 20px}
.report-query-form{grid-column:1;grid-row:1}.report-toolbar>.export-actions{grid-column:2;grid-row:1;justify-content:flex-end;max-width:350px}
.report-toolbar>.dw-meta,.report-toolbar>.report-query-status{grid-column:1/-1;margin:0}
.export-actions small{flex:1 0 100%;font-size:11px;color:var(--muted);line-height:1.6}
.report-run-strip{grid-template-columns:1.5fr .8fr 1.1fr .6fr;border:1px solid var(--rule);border-radius:8px;background:#fff;color:var(--ink);overflow:hidden}
.report-run-strip>div{border-color:var(--rule);padding:13px 16px}.report-run-strip span{color:var(--muted);font-size:11px}.report-run-strip strong{font:550 12px/1.6 var(--font-ui);font-variant-numeric:tabular-nums;overflow:visible;overflow-wrap:anywhere}
.report-first-run,.report-empty{border:1px solid var(--rule);border-radius:9px;background:#fff}.report-first-run p{margin:0}
.report-table-panel{padding:0}.report-table-panel .panel-head{margin:0;padding:18px 20px}.report-table-panel>.report-columns{padding:0 20px;flex-wrap:wrap}
.report-table-panel .table-wrap{border:0;border-top:1px solid var(--rule);border-radius:0;max-height:65vh}
/* Stick the entire header group: per-cell top:0 stacks multirow headers. */
:is(.report-matrix,.campaign-table) thead{position:sticky;top:0;z-index:4}
:is(.report-matrix,.campaign-table) thead th{position:static;white-space:normal;font-size:12px;text-align:center}
:is(.report-matrix,.campaign-table) thead tr:first-child th{background:var(--navy);color:#fff;border-color:#45695f}
:is(.report-matrix,.campaign-table) thead tr:nth-child(2) th{background:#e5efe9;color:var(--navy);border-color:#d4e1d8}
:is(.report-matrix,.campaign-table) thead tr:nth-child(3) th{background:#edf4ef;color:var(--navy);border-color:#dce7df}
:is(.report-matrix,.campaign-table) thead tr:nth-child(4) th{background:#f3f7f4;color:var(--navy);border-color:#dce7df}
.report-matrix thead tr:nth-child(5) th{background:#f8faf8;border-color:#dce7df;font-size:12px}
:is(.report-matrix,.campaign-table) tbody td{white-space:nowrap;text-align:right;min-width:100px}
:is(.report-matrix,.campaign-table) tbody tr:nth-child(even) td{background:#f7faf8}
.report-matrix :is(.level_1_subtotal,.car_ecology_total,.non_car_total,.non_car_rights){border-left:2px solid #afc7b8;background:var(--surface-soft);font-weight:650}
:is(.report-matrix,.campaign-table) tbody td:first-child{position:sticky;left:0;z-index:1;min-width:106px;text-align:left;background:#fff}
:is(.report-matrix,.campaign-table) thead tr:first-child>th:first-child{position:sticky;left:0;z-index:5;background:var(--navy)}
:is(.report-matrix,.campaign-table) tbody tr.province-total td{background:var(--surface-total);font-weight:650;border-top:2px solid #759887}
:is(.report-matrix,.campaign-table) tbody tr:hover td{background:#edf4ef}
.campaign-progress-cell{background-image:linear-gradient(90deg,rgba(79,148,112,.27) 0 var(--campaign-progress),transparent var(--campaign-progress) 100%);color:var(--ink)}
.report-matrix td.metric-rate{color:var(--muted)}
.report-columns button[aria-pressed=true]{background:var(--navy);color:#fff;border-color:var(--navy)}
@media(max-width:1100px){.report-toolbar{grid-template-columns:1fr}.report-toolbar>.export-actions{grid-column:1;grid-row:auto;justify-content:flex-start;max-width:none}.report-run-strip{grid-template-columns:1fr 1fr}}
@media(max-width:960px){.sidebar{position:static;width:100%;overflow:visible}.sidebar-head{margin-bottom:0}.brand{margin:0}.nav-toggle{display:inline-flex}.js-ready .sidebar-body:not(.is-open){display:none}.sidebar-body.is-open{display:flex}.metric-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.page-head{align-items:flex-start;flex-direction:column}.nav a.active{border-left-color:var(--blue)}}
@media(max-width:780px){.metric-grid,.card-grid{grid-template-columns:1fr}.page-head h1,.page-heading h1{font-size:23px}.dw-summary{grid-template-columns:repeat(2,minmax(0,1fr))}.dw-summary>div{padding:14px}.dw-summary strong{font-size:23px}.dw-boundary{display:block}.dw-boundary strong{display:block;margin-bottom:5px}.report-query-form{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));width:100%}.report-query-form label{min-width:0}.report-query-form button{grid-column:1/-1}.report-run-strip{grid-template-columns:1fr 1fr}.report-run-strip>div{padding:12px;border-bottom:1px solid var(--rule)}.export-actions{width:100%}.report-table-panel .panel-head{align-items:flex-start;flex-direction:column}.report-detail-grid{grid-template-columns:minmax(0,1fr)}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{scroll-behavior:auto!important;transition:none!important;animation:none!important}}

.login-body{background:var(--paper)}.login-card{border:1px solid var(--rule);border-radius:14px;box-shadow:var(--shadow)}

.detail-list dd{min-width:0;overflow-wrap:anywhere}.panel code{overflow-wrap:anywhere;white-space:normal}.confirm-modal{overflow-wrap:anywhere}

.report-matrix thead tr:not(:last-child) th[colspan]{text-align:left}.report-group-label{position:sticky;left:126px;display:inline-block;max-width:65vw}

@media(max-width:960px){.page-head h1,.page-heading h1,h1{font-size:23px}}
