/* 云链 SCM — 样式基于 claude.ai/design「供应链系统UI设计」(供应链系统.dc.html) */
* { box-sizing: border-box; margin: 0; padding: 0; }
[v-cloak] { display: none; }
body { font-family: "PingFang SC", "Microsoft YaHei", "Segoe UI", -apple-system, sans-serif; background: #EFF4F9; color: #2B3B4C; font-size: 14px; -webkit-font-smoothing: antialiased; }
#app { min-height: 100vh; display: flex; flex-direction: column; }
a { color: #0A6ED1; text-decoration: none; }
a:hover { color: #085CAF; text-decoration: underline; }
::-webkit-scrollbar { width: 8px; height: 8px; }
::-webkit-scrollbar-thumb { background: #C3D3E2; border-radius: 4px; }
@keyframes fadeIn { from { opacity: 0; transform: translateY(6px); } to { opacity: 1; transform: none; } }

/* 登录 */
.login-wrap { flex: 1; display: flex; align-items: center; justify-content: center; background: linear-gradient(135deg, #0A6ED1, #4DA3E8); }
.login-box { background: #fff; padding: 40px 36px; border-radius: 12px; width: 360px; box-shadow: 0 12px 40px rgba(10, 46, 82, .25); }
.login-box h1 { font-size: 22px; font-weight: 600; color: #1B2A3A; margin-bottom: 6px; }
.login-box p { color: #6A7B8C; margin-bottom: 24px; font-size: 13px; }
.login-box input { width: 100%; margin-bottom: 14px; }
.login-box button { width: 100%; }

/* 顶栏 */
.topbar { background: #fff; border-bottom: 1px solid #D9E4EE; position: sticky; top: 0; z-index: 40; }
.topbar-row { display: flex; align-items: center; gap: 16px; padding: 0 24px; height: 52px; }
.brand { display: flex; align-items: center; gap: 10px; cursor: pointer; }
.brand-logo { width: 30px; height: 30px; border-radius: 6px; background: linear-gradient(135deg, #0A6ED1, #4DA3E8); color: #fff; font-weight: 700; font-size: 13px; display: flex; align-items: center; justify-content: center; }
.brand-name { font-size: 16px; font-weight: 600; color: #1B2A3A; letter-spacing: .5px; }
.user-area { margin-left: auto; display: flex; gap: 10px; align-items: center; color: #5B6C7D; font-size: 13px; }
.avatar { width: 32px; height: 32px; border-radius: 50%; background: #0A6ED1; color: #fff; display: flex; align-items: center; justify-content: center; font-size: 13px; font-weight: 600; }
.topnav { display: flex; gap: 4px; padding: 0 24px; overflow-x: auto; }
.nav-item { padding: 11px 4px; margin: 0 10px; font-size: 14px; cursor: pointer; white-space: nowrap; user-select: none; color: #5B6C7D; border-bottom: 3px solid transparent; transition: color .15s; }
.nav-item:first-child { margin-left: 0; }
.nav-item:hover { color: #0A6ED1; }
.nav-item.active { color: #0A6ED1; font-weight: 600; border-bottom-color: #0A6ED1; }

/* 主区 */
main { flex: 1; }
.content { max-width: 1280px; width: 100%; margin: 0 auto; padding: 20px 24px 40px; animation: fadeIn .25s ease; }
.page-head { display: flex; align-items: baseline; justify-content: space-between; flex-wrap: wrap; gap: 8px; margin: 6px 0 18px; }
.page-head h1 { font-size: 22px; font-weight: 600; color: #1B2A3A; }

/* 通用 */
.toolbar { display: flex; gap: 10px; margin-bottom: 14px; align-items: center; flex-wrap: wrap; }
button { background: #0A6ED1; color: #fff; border: none; border-radius: 7px; padding: 9px 18px; font-size: 14px; cursor: pointer; transition: background .15s; }
button:hover { background: #085CAF; }
button.ghost { background: #fff; color: #0A6ED1; border: 1px solid #0A6ED1; }
button.ghost:hover { background: #F0F6FB; }
button.danger { background: #C23B3B; }
button.danger:hover { background: #A83232; }
button.mini { padding: 5px 12px; font-size: 12px; }
button:disabled { opacity: .5; cursor: not-allowed; }
input, select, textarea { border: 1px solid #D9E4EE; border-radius: 7px; padding: 8px 10px; font-size: 14px; background: #fff; color: #2B3B4C; }
input:focus, select:focus, textarea:focus { outline: 2px solid rgba(10, 110, 209, .22); border-color: #0A6ED1; }
table { width: 100%; background: #fff; border: 1px solid #E2EAF2; border-radius: 10px; overflow: hidden; border-collapse: collapse; }
th { background: #F5F9FC; text-align: left; padding: 11px 14px; font-size: 12px; color: #6A7B8C; font-weight: 600; border-bottom: 1px solid #E2EAF2; white-space: nowrap; }
td { padding: 12px 14px; border-bottom: 1px solid #F0F4F8; font-size: 13px; }
tr:last-child td { border-bottom: 0; }
tbody tr:hover td { background: #F7FAFD; }
tr.low td { background: #FDF6F0; }
.empty { text-align: center; color: #8B9AA9; padding: 30px !important; }

/* 状态标签 */
.badge { display: inline-block; padding: 3px 10px; border-radius: 12px; font-size: 12px; font-weight: 600; background: #EEF2F6; color: #5B6C7D; }
.badge.b待确认, .badge.b草稿, .badge.b待处理 { background: #FBF0DF; color: #B0742C; }
.badge.b进行中, .badge.b已下单 { background: #E4F0FB; color: #0A6ED1; }
.badge.b已完成, .badge.b已到货 { background: #E4F5EA; color: #1E7B44; }
.badge.b已取消 { background: #FBE7E7; color: #C23B3B; }
.warn-text { color: #C23B3B; font-weight: 600; }

/* 看板 */
.cards { display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); gap: 14px; margin-bottom: 20px; }
.card { background: #fff; border: 1px solid #E2EAF2; border-radius: 10px; padding: 16px 18px; transition: box-shadow .15s; }
.card:hover { box-shadow: 0 4px 14px rgba(10, 110, 209, .12); }
.card .num { font-size: 26px; font-weight: 650; color: #1B2A3A; }
.card .lbl { color: #6A7B8C; margin-top: 6px; font-size: 13px; }
.grid2 { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }
.panel { background: #fff; border: 1px solid #E2EAF2; border-radius: 10px; padding: 18px; }
.panel h3 { font-size: 15px; font-weight: 600; margin-bottom: 12px; color: #1B2A3A; }
.panel table { border: 0; border-radius: 0; }
@media (max-width: 900px) {
  .grid2 { grid-template-columns: 1fr; }
  .topbar-row, .topnav { padding: 0 14px; }
  .content { padding: 16px 14px 32px; }
  .user-area .user-name { display: none; }
}

/* Excel 式表格 */
.hint { color: #8B9AA9; font-size: 12px; margin-bottom: 10px; }
.sheet-wrap { overflow-x: auto; background: #fff; border: 1px solid #E2EAF2; border-radius: 10px; }
table.sheet { table-layout: fixed; min-width: 100%; border: 0; border-radius: 0; }
.sheet th { border: 1px solid #E2EAF2; border-top: 0; }
.sheet th:first-child, .sheet td:first-child { border-left: 0; }
.sheet th:last-child, .sheet td:last-child { border-right: 0; }
.sheet td { padding: 0; border: 1px solid #F0F4F8; }
.sheet td .ro { display: block; padding: 8px 10px; color: #5B6C7D; background: #FAFCFE; min-height: 35px; }
.sheet input, .sheet select { width: 100%; border: 0; border-radius: 0; padding: 8px 10px; background: transparent; }
.sheet input:focus, .sheet select:focus { outline: 2px solid #0A6ED1; outline-offset: -2px; background: #fff; }
.sheet .rownum { width: 44px; text-align: center; color: #8B9AA9; background: #F5F9FC; font-size: 12px; padding: 8px 4px; white-space: nowrap; }
.sheet .rowdel { width: 36px; text-align: center; }
.sheet tr.dirty td { background: #FFF9EC; }
.sheet tr.dirty .rownum::after { content: '●'; color: #E09A3E; margin-left: 2px; }
.cell-del { background: none; border: 0; color: #C3D3E2; cursor: pointer; padding: 4px 8px; font-size: 12px; }
.cell-del:hover { color: #C23B3B; background: none; }
.sheet-foot { display: flex; align-items: center; justify-content: space-between; margin-top: 10px; }
.sheet-foot .total { font-weight: 600; color: #1B2A3A; }

/* 弹窗 */
.mask { position: fixed; inset: 0; background: rgba(27, 42, 58, .45); display: flex; align-items: flex-start; justify-content: center; padding: 40px 16px; overflow: auto; z-index: 50; }
.modal { background: #fff; border-radius: 12px; padding: 24px; width: 640px; max-width: 100%; box-shadow: 0 20px 60px rgba(10, 46, 82, .3); animation: fadeIn .2s ease; }
.modal.wide { width: 820px; }
.modal h3 { margin-bottom: 18px; font-size: 16px; font-weight: 600; color: #1B2A3A; }
.form-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; margin-bottom: 12px; }
.form-grid .full { grid-column: 1 / -1; }
.field label { display: block; font-size: 13px; color: #5B6C7D; margin-bottom: 4px; }
.field input, .field select, .field textarea { width: 100%; }
.modal-actions { display: flex; justify-content: flex-end; gap: 10px; margin-top: 18px; }
.item-row { display: grid; grid-template-columns: 1fr 110px 110px 36px; gap: 8px; margin-bottom: 8px; align-items: center; }
.item-head { font-size: 12px; color: #8B9AA9; }
.detail-kv { display: grid; grid-template-columns: repeat(3, 1fr); gap: 8px 16px; margin-bottom: 14px; }
.detail-kv div { font-size: 13px; }
.detail-kv b { color: #6A7B8C; font-weight: 500; margin-right: 6px; }

/* 销售预测 */
.chart { width: 100%; background: #fff; border: 1px solid #E2EAF2; border-radius: 10px; display: block; }
.chart .tick { font-size: 10px; fill: #8B9AA9; }
.chart .tick-t { fill: #E05B5B; }
.legend { display: flex; gap: 16px; align-items: center; font-size: 12px; color: #5B6C7D; margin: 8px 0; flex-wrap: wrap; }
.legend .dot { width: 10px; height: 10px; border-radius: 50%; display: inline-block; margin-right: 5px; vertical-align: -1px; }

/* 预测、补货、评价一体化工作台 */
.content:has(.forecast-workbench) { max-width: 1680px; }
.forecast-workbench { --wb-blue: #075da8; --wb-deep: #123b5d; --wb-line: #d5e1eb; }
.wb-toolbar { min-height: 76px; margin: -4px 0 14px; padding: 14px 18px; border-radius: 12px; color: #fff; background: linear-gradient(115deg, #0b4e82, #0874c5 72%, #2493db); display: flex; align-items: center; justify-content: space-between; gap: 18px; box-shadow: 0 8px 22px rgba(10, 77, 130, .18); }
.wb-eyebrow { font-size: 10px; font-weight: 700; letter-spacing: 1.5px; color: #b9dcf5; margin-bottom: 3px; }
.wb-toolbar-title { font-size: 20px; font-weight: 650; letter-spacing: .2px; }
.wb-toolbar-actions { display: flex; align-items: center; justify-content: flex-end; gap: 8px; flex-wrap: wrap; }
.wb-toolbar select { color: #17334b; border: 0; min-width: 124px; }
.wb-toolbar button { background: #f1a33a; color: #162f44; font-weight: 650; }
.wb-toolbar button:hover { background: #ffb852; }
.wb-toolbar button.ghost { background: rgba(255,255,255,.12); color: #fff; border-color: rgba(255,255,255,.65); }
.wb-layout { display: grid; grid-template-columns: 276px minmax(0, 1fr); gap: 14px; align-items: start; }
.sku-rail { background: #fff; border: 1px solid var(--wb-line); border-radius: 10px; overflow: hidden; position: sticky; top: 112px; max-height: calc(100vh - 132px); display: flex; flex-direction: column; }
.sku-rail-head { padding: 14px; border-bottom: 1px solid var(--wb-line); background: #f5f9fc; }
.sku-rail-head > div:first-child { display: flex; align-items: baseline; justify-content: space-between; color: #19354d; margin-bottom: 10px; }
.sku-rail-head > div:first-child span { color: #7890a3; font-size: 12px; }
.sku-rail-head input { width: 100%; border-radius: 6px; background: #fff; }
.sku-filters { display: grid; grid-template-columns: repeat(3,1fr); gap: 4px; margin-top: 8px; }
.sku-filters button { padding: 6px 4px; font-size: 11px; color: #5f7488; background: #e8f0f6; border-radius: 5px; }
.sku-filters button:hover, .sku-filters button.active { color: #fff; background: var(--wb-blue); }
.sku-list { overflow: auto; padding: 5px; }
.sku-item { width: 100%; display: block; text-align: left; color: #30465a; background: #fff; border: 1px solid transparent; border-radius: 7px; padding: 10px 10px 9px; margin-bottom: 3px; }
.sku-item:hover { background: #f2f7fb; border-color: #d9e6f0; }
.sku-item.active { color: #173b5a; background: #e7f2fb; border-color: #7eb8e4; box-shadow: inset 3px 0 0 var(--wb-blue); }
.sku-item.risk:not(.active) { box-shadow: inset 3px 0 0 #e49a36; }
.sku-main { display: flex; align-items: baseline; gap: 7px; overflow: hidden; }
.sku-main b { color: #0b66ad; font-size: 12px; flex: 0 0 auto; }
.sku-main span { overflow: hidden; white-space: nowrap; text-overflow: ellipsis; font-size: 13px; font-weight: 600; }
.sku-tags { display: flex; align-items: center; justify-content: space-between; gap: 6px; color: #8294a4; font-size: 10px; margin-top: 6px; }
.sku-action { color: #bd5d24; background: #fff0e7; border-radius: 8px; padding: 2px 6px; font-weight: 700; }
.sku-ok { color: #347757; }
.wb-main { min-width: 0; position: relative; }
.wb-loading { position: sticky; top: 112px; z-index: 12; color: #0a65ad; background: #eaf5fd; border: 1px solid #a9d3ef; border-radius: 8px; padding: 9px 12px; margin-bottom: 10px; text-align: center; }
.wb-material-head { min-height: 68px; display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 0 2px 10px; }
.wb-material-head > div:first-child { display: grid; grid-template-columns: auto auto; align-items: baseline; column-gap: 10px; }
.wb-material-head h2 { color: #19354d; font-size: 21px; }
.wb-material-head p { grid-column: 1 / -1; color: #8192a1; font-size: 12px; margin-top: 4px; }
.wb-code { color: #0873bd; font-size: 13px; font-weight: 750; }
.wb-head-badges { display: flex; gap: 6px; }
.wb-kpis { display: grid; grid-template-columns: repeat(6, minmax(118px,1fr)); background: #fff; border: 1px solid var(--wb-line); border-radius: 10px; margin-bottom: 14px; overflow: hidden; }
.wb-kpi { min-width: 0; padding: 13px 15px; border-right: 1px solid #e4ecf2; position: relative; }
.wb-kpi:last-child { border-right: 0; }
.wb-kpi span, .wb-kpi small { display: block; color: #788c9d; font-size: 11px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.wb-kpi b { display: block; color: #1b384f; font-size: 23px; margin: 4px 0 2px; font-variant-numeric: tabular-nums; }
.wb-kpi.accent { background: #edf7fe; box-shadow: inset 0 3px 0 #1381cd; }
.wb-kpi.danger { background: #fff3ed; box-shadow: inset 0 3px 0 #e25c3e; }
.wb-kpi.danger b { color: #c54b32; }
.wb-overview-grid { display: grid; grid-template-columns: minmax(0, 1.65fr) minmax(330px, .75fr); gap: 14px; align-items: stretch; }
.wb-chart-panel { min-width: 0; padding: 15px; }
.wb-section-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; margin-bottom: 10px; }
.wb-section-head h3 { margin: 0 0 3px; color: #183750; font-size: 15px; }
.wb-section-head p { color: #8999a7; font-size: 11px; }
.wb-section-head .legend { margin: 0; justify-content: flex-end; }
.wb-section-head .legend i { display: inline-block; width: 13px; height: 3px; border-radius: 2px; vertical-align: middle; margin-right: 4px; }
.legend-hist { background: #0a6ed1; }.legend-fc { background: #e09a3e; }.legend-band { height: 8px !important; background: #f2dcc8; }
.wb-decision-stack { display: grid; grid-template-rows: 1fr 1fr; gap: 14px; }
.decision-card, .evaluation-card { padding: 15px; min-width: 0; }
.decision-status { color: #287451; background: #e7f6ed; border-radius: 10px; padding: 4px 8px; font-size: 11px; font-weight: 700; white-space: nowrap; }
.decision-status.needs-action { color: #b84c2e; background: #ffebe3; }
.decision-equation { display: grid; grid-template-columns: 1fr auto 1fr auto 1.1fr; gap: 8px; align-items: center; padding: 10px 0 12px; }
.decision-equation span { min-width: 0; }
.decision-equation small, .evaluation-grid small { display: block; color: #8494a3; font-size: 10px; margin-bottom: 3px; }
.decision-equation b { color: #243f56; font-size: 17px; font-variant-numeric: tabular-nums; }
.decision-equation i { color: #a3b0bb; font-style: normal; }
.decision-equation .result b { color: #ce552f; }
.replen-params { display: grid; grid-template-columns: repeat(3,1fr); gap: 7px; }
.replen-params label { color: #778999; font-size: 10px; position: relative; }
.replen-params input, .replen-params select { width: 100%; margin-top: 3px; padding: 5px 7px; border-radius: 5px; font-size: 12px; }
.replen-params label em { position: absolute; right: 6px; bottom: 6px; color: #9aa8b4; font-style: normal; }
.decision-actions { display: flex; justify-content: flex-end; gap: 7px; margin-top: 10px; }
.evaluation-grid { display: grid; grid-template-columns: repeat(2,1fr); gap: 7px; }
.evaluation-grid span { padding: 7px 8px; border: 1px solid #e7edf2; border-radius: 6px; background: #f9fbfd; }
.evaluation-grid b { color: #244057; font-size: 15px; font-variant-numeric: tabular-nums; }
.evaluation-note { margin-top: 9px; padding: 7px 9px; color: #26734e; background: #edf8f2; border-radius: 6px; font-size: 11px; }
.evaluation-note.negative { color: #b84d32; background: #fff0ea; }
.timeline-panel { margin-top: 14px; padding: 15px; }
.matrix-scroll { overflow: auto; border: 1px solid var(--wb-line); border-radius: 7px; max-width: 100%; }
table.metric-matrix { width: max-content; min-width: 100%; border: 0; border-radius: 0; table-layout: fixed; }
.metric-matrix th, .metric-matrix td { width: 70px; min-width: 70px; padding: 7px 6px; text-align: right; border-right: 1px solid #dce6ed; font-size: 11px; font-variant-numeric: tabular-nums; }
.metric-matrix th { color: #fff; background: #267cb8; text-align: center; }
.metric-matrix th span { display: block; color: #c8e2f4; font-size: 9px; font-weight: 400; margin-top: 2px; }
.metric-matrix th.future { background: #0b5c98; }
.metric-matrix th.boundary { border-left: 2px dashed #ffb350; }
.metric-matrix .metric-name { position: sticky; left: 0; z-index: 3; width: 112px; min-width: 112px; text-align: left; background: #f1f6fa; box-shadow: 2px 0 4px rgba(30,67,95,.07); }
.metric-matrix thead .metric-name { z-index: 4; color: #fff; background: #173f5e; }
.metric-matrix td.metric-name small { display: block; color: #8a9cab; font-size: 8px; font-weight: 500; }
.metric-matrix td.metric-name b { color: #315068; font-size: 11px; }
.metric-matrix td.future { background: #f5f9fc; }
.metric-matrix tr.metric-forecast td.populated { color: #b96524; font-weight: 700; background: #fff8ee; }
.metric-matrix tr.metric-actual td.populated { color: #165f99; font-weight: 700; }
.metric-matrix tr.metric-firm td.populated { color: #7f52a5; }
.metric-matrix tr.metric-incoming td.populated { color: #287a58; }
.metric-matrix tr.metric-projected td.populated { color: #30566f; font-weight: 650; }
.metric-matrix td.negative { color: #c43c32 !important; background: #ffe7e5 !important; font-weight: 750; }
.metric-matrix td.boundary { border-left: 2px dashed #e5a13f; }
.wb-details { margin-top: 14px; }
.wb-details summary { cursor: pointer; color: #236a9f; font-weight: 650; background: #fff; border: 1px solid var(--wb-line); border-radius: 8px; padding: 12px 15px; }
.wb-details[open] summary { border-radius: 8px 8px 0 0; }
.wb-details > .panel { border-top: 0; border-radius: 0 0 8px 8px; }
.explain-kpis { grid-template-columns: repeat(5,1fr); }
.wb-empty { min-height: 420px; display: flex; flex-direction: column; align-items: center; justify-content: center; color: #91a1af; background: #fff; border: 1px dashed #bfd0dc; border-radius: 10px; }
.wb-empty b { color: #3e596f; font-size: 16px; margin-bottom: 6px; }

@media (max-width: 1180px) {
  .wb-layout { grid-template-columns: 1fr; }
  .sku-rail { position: static; max-height: none; }
  .sku-list { display: flex; gap: 5px; overflow-x: auto; }
  .sku-item { min-width: 220px; }
  .wb-overview-grid { grid-template-columns: 1fr; }
  .wb-decision-stack { grid-template-columns: 1fr 1fr; grid-template-rows: auto; }
  .wb-kpis { grid-template-columns: repeat(3,1fr); }
  .wb-kpi:nth-child(3) { border-right: 0; }
  .wb-kpi:nth-child(-n+3) { border-bottom: 1px solid #e4ecf2; }
}
@media (max-width: 720px) {
  .wb-toolbar, .wb-material-head { align-items: flex-start; flex-direction: column; }
  .wb-toolbar-actions { justify-content: flex-start; }
  .wb-kpis { grid-template-columns: repeat(2,1fr); }
  .wb-kpi:nth-child(odd) { border-right: 1px solid #e4ecf2; }
  .wb-kpi:nth-child(even) { border-right: 0; }
  .wb-decision-stack { grid-template-columns: 1fr; }
  .decision-equation { grid-template-columns: 1fr auto 1fr; }
  .decision-equation i:nth-of-type(2), .decision-equation .result { display: none; }
  .explain-kpis { grid-template-columns: repeat(2,1fr); }
}

/* 多 SKU 密集矩阵：固定决策列 + 横向日期轴 */
.multi-sku-workbench {
  --code-w: 78px;
  --name-w: 145px;
  --metric-w: 82px;
  --quality-w: 128px;
  --action-w: 122px;
  --frozen-w: calc(var(--code-w) + var(--name-w) + var(--metric-w) + var(--quality-w) + var(--action-w));
  --month-head-h: 25px;
}
.matrix-toolbar { min-height: 64px; display: flex; align-items: center; gap: 14px; padding: 10px 14px; color: #fff; background: linear-gradient(105deg,#164a71,#0872bb); border-radius: 9px 9px 0 0; }
.matrix-toolbar-title { min-width: 210px; display: flex; flex-direction: column; }
.matrix-toolbar-title span { color: #b9d9ee; font-size: 9px; font-weight: 700; letter-spacing: 1.2px; }
.matrix-toolbar-title b { font-size: 17px; margin-top: 2px; }
.matrix-filter-set { display: flex; align-items: center; gap: 7px; }
.matrix-filter-set input { width: 190px; padding: 7px 9px; border: 0; border-radius: 5px; }
.matrix-filter-tabs { display: flex; padding: 2px; background: rgba(255,255,255,.12); border-radius: 5px; }
.matrix-filter-tabs button { padding: 6px 8px; color: #d9ecf8; background: transparent; border-radius: 4px; font-size: 11px; white-space: nowrap; }
.matrix-filter-tabs button:hover,.matrix-filter-tabs button.active { color: #17405f; background: #fff; }
.matrix-periods { margin-left: auto; display: flex; align-items: center; justify-content: flex-end; gap: 6px; flex-wrap: wrap; }
.matrix-periods label { display: flex; align-items: center; gap: 3px; color: #cde4f3; font-size: 10px; white-space: nowrap; }
.matrix-periods select { min-width: 62px; padding: 6px 7px; border: 0; border-radius: 5px; font-size: 11px; }
.matrix-periods > select { min-width: 94px; }
.matrix-periods button { padding: 7px 10px; font-size: 11px; color: #173b55; background: #f6a73e; border-radius: 5px; font-weight: 700; white-space: nowrap; }
.matrix-periods button.ghost { color: #fff; background: rgba(255,255,255,.12); border-color: rgba(255,255,255,.6); }
.matrix-periods .driver-toggle.active { color: #17405f; background: #dff2ff; border-color: #fff; }
.matrix-statusbar { min-height: 34px; display: flex; align-items: center; gap: 8px 15px; padding: 6px 12px; color: #607789; background: #eef4f8; border: 1px solid #cfdee8; border-top: 0; font-size: 10px; flex-wrap: wrap; }
.matrix-statusbar span { white-space: nowrap; }
.matrix-statusbar b { margin-left: auto; color: #155f94; font-size: 11px; }
.matrix-statusbar em { color: #7e909e; font-style: normal; white-space: nowrap; }
.status-dot { width: 8px; height: 8px; display: inline-block; border-radius: 2px; margin-right: 4px; vertical-align: -1px; }
.status-dot.actual { background: #7fb5dc; }.status-dot.reference { background: #9aa5af; }.status-dot.audit { background: #8e9aa4; }.status-dot.production { background: #66849a; }.status-dot.price { background: #20a486; }.status-dot.weather { background: #4797d1; }.status-dot.campaign { background: #9a70c2; }.status-dot.substitution { background: #cc729e; }.status-dot.reconciliation { background: #18a4b4; }.status-dot.system,.status-dot.forecast { background: #efb46b; }.status-dot.human { background: #9a75b8; }.status-dot.final,.status-dot.plan { background: #63ad84; }.status-dot.danger { background: #ef7d77; }
.status-week-line { width: 12px; height: 9px; display: inline-block; margin-right: 4px; border-right: 2px dashed #7894a8; vertical-align: -2px; }
.multi-matrix-shell { position: relative; isolation: isolate; height: calc(100vh - 272px); min-height: 470px; overflow: auto; overscroll-behavior: contain; background: #fff; border: 1px solid #bfced9; border-top: 0; box-shadow: 0 6px 18px rgba(25,63,91,.08); }
.multi-matrix-shell.loading { opacity: .78; }
.matrix-loading { position: sticky; top: 0; left: 0; z-index: 40; width: 100%; padding: 7px; color: #0c619d; background: #e1f2fd; text-align: center; font-size: 11px; }
table.multi-sku-matrix { width: max-content; min-width: 100%; overflow: visible; border: 0; border-radius: 0; border-collapse: separate; border-spacing: 0; table-layout: fixed; }
.multi-sku-matrix th,.multi-sku-matrix td { height: 22px; min-width: 62px; width: 62px; padding: 2px 5px; border: 0; border-right: 1px solid #d7e1e8; border-bottom: 1px solid #e2e9ee; text-align: right; color: #425c70; font-size: 10px; font-variant-numeric: tabular-nums; white-space: nowrap; }
.multi-sku-matrix thead th { position: sticky; z-index: 20; color: #fff; background: #297eB8; background-clip: padding-box; text-align: center; }
.multi-sku-matrix .month-row th { top: 0; height: var(--month-head-h); background: #0b69a8; border-bottom-color: #8eb8d4; font-size: 11px; }
.multi-sku-matrix .month-row th.future { background: #07558d; }
.multi-sku-matrix .day-row th { top: var(--month-head-h); height: 34px; background: #2b83bd; }
.multi-sku-matrix .day-row th.future { background: #176bA3; }
.multi-sku-matrix .day-row th b,.multi-sku-matrix .day-row th small { display: block; }
.multi-sku-matrix .day-row th small { color: #d0e6f4; font-size: 8px; font-weight: 400; margin-top: 1px; }
.multi-sku-matrix .week-end { border-right: 2px dashed #819aab !important; }
.multi-sku-matrix .boundary { border-left: 2px solid #f2a440 !important; }
.multi-sku-matrix .fixed-head { position: sticky; top: 0; left: 0; z-index: 32; width: var(--frozen-w); min-width: var(--frozen-w); max-width: var(--frozen-w); background: #174762 !important; text-align: left; padding-left: 10px; box-shadow: 4px 0 7px rgba(21,55,78,.18); }
.multi-sku-matrix .fix-code,.multi-sku-matrix .fix-name,.multi-sku-matrix .fix-metric,.multi-sku-matrix .fix-quality,.multi-sku-matrix .fix-action { position: sticky; z-index: 10; text-align: left; background: #f3f7fa; background-clip: padding-box; }
.multi-sku-matrix thead .fix-code,.multi-sku-matrix thead .fix-name,.multi-sku-matrix thead .fix-metric,.multi-sku-matrix thead .fix-quality,.multi-sku-matrix thead .fix-action { z-index: 31; color: #fff; background: #205d81; text-align: center; }
.multi-sku-matrix .fix-code { left: 0; width: var(--code-w); min-width: var(--code-w); max-width: var(--code-w); }
.multi-sku-matrix .fix-name { left: var(--code-w); width: var(--name-w); min-width: var(--name-w); max-width: var(--name-w); }
.multi-sku-matrix .fix-metric { left: calc(var(--code-w) + var(--name-w)); width: var(--metric-w); min-width: var(--metric-w); max-width: var(--metric-w); }
.multi-sku-matrix .fix-quality { left: calc(var(--code-w) + var(--name-w) + var(--metric-w)); width: var(--quality-w); min-width: var(--quality-w); max-width: var(--quality-w); }
.multi-sku-matrix .fix-action { left: calc(var(--code-w) + var(--name-w) + var(--metric-w) + var(--quality-w)); width: var(--action-w); min-width: var(--action-w); max-width: var(--action-w); border-right: 2px solid #8fb1c7; box-shadow: 5px 0 7px rgba(32,67,91,.16); }
.multi-sku-matrix tbody tr.start td { border-top: 2px solid #78a9cb; }
.multi-sku-matrix tbody tr.group-alt td { background-color: #f8fafc; }
.multi-sku-matrix tbody tr:hover td:not(.fix-code):not(.fix-name):not(.fix-metric):not(.fix-quality):not(.fix-action) { filter: brightness(.97); }
.multi-sku-matrix tbody tr.selected .fix-metric { color: #075f9b; background: #e5f3fc; font-weight: 700; }
.multi-sku-matrix tbody tr.selected .fix-code { box-shadow: inset 3px 0 #0a72ba; }
.multi-sku-matrix tbody tr.risk.start .fix-code { border-left: 3px solid #e67842; }
.multi-sku-matrix tbody tr.review-row-yellow.start .fix-code { border-left: 3px solid #e4a62c; }
.multi-sku-matrix tbody tr.review-row-red.start .fix-code { border-left: 3px solid #d64b42; }
.sku-code-cell { vertical-align: top; padding-top: 7px !important; color: #086bab !important; }
.sku-code-cell b,.sku-code-cell span { display: block; overflow: hidden; text-overflow: ellipsis; }
.sku-code-cell span { margin-top: 4px; color: #8295a3; font-size: 8px; }
.sku-code-cell span + span { margin-top: 2px; color: #5d7e93; }
.sku-name-cell { vertical-align: top; padding-top: 6px !important; overflow: hidden; }
.sku-name-cell b,.sku-name-cell span,.sku-name-cell small { display: block; overflow: hidden; text-overflow: ellipsis; }
.sku-name-cell b { color: #23465f; font-size: 11px; }.sku-name-cell span { color: #7d909f; font-size: 8px; margin-top: 2px; }.sku-name-cell small { color: #3f718f; font-size: 8px; margin-top: 5px; }
.sku-name-cell .sku-hierarchy { color: #526f82; margin-top: 5px; }.sku-name-cell .sku-tags { color: #8a6b54; margin-top: 2px; }
.metric-label { color: #486a80 !important; font-weight: 650; }
.quality-cell,.action-cell { vertical-align: top; padding-top: 6px !important; }
.quality-cell b,.quality-cell span,.action-cell > span { display: block; overflow: hidden; text-overflow: ellipsis; }
.quality-cell b { color: #234a65; font-size: 10px; }.quality-cell span { color: #6f8493; font-size: 8px; margin-top: 3px; }.quality-cell span.bad { color: #c6503a; font-weight: 700; }
.quality-cell .review-pill { display: inline-block; max-width: 100%; margin: 0 0 2px; }
.quality-cell .review-summary { max-height: 22px; white-space: normal; line-height: 11px; }
.quality-badge-row { display: flex; align-items: center; gap: 3px; min-width: 0; }
.quality-badge-row .quality-grade { flex: 0 0 auto; margin: 0; }
.quality-grade { display: inline-flex !important; align-items: center; justify-content: center; padding: 2px 5px; border-radius: 8px; font-size: 8px !important; font-weight: 800; white-space: nowrap; }
.quality-grade.quality-a { color: #1d704c !important; background: #dff3e8; }.quality-grade.quality-b { color: #376e2c !important; background: #eaf3d7; }.quality-grade.quality-c { color: #916414 !important; background: #fff0c4; }.quality-grade.quality-d { color: #ae3f37 !important; background: #ffe0dc; }.quality-grade.quality-none { color: #6f8290 !important; background: #e8eef2; }
.quality-cell .hierarchy-summary { color: #39718f; }.quality-cell .quality-warning { color: #a05b28; white-space: normal; max-height: 22px; line-height: 11px; }
.action-cell > span { color: #6b8191; font-size: 8px; margin-bottom: 3px; }.action-cell > span b { color: #294c63; font-size: 10px; }
.action-cell .shortage { color: #c54734; font-weight: 700; }.action-cell .healthy { color: #2e7956; }
.action-cell div { display: flex; gap: 3px; margin-top: 5px; }.action-cell button { padding: 3px 6px; font-size: 8px; border-radius: 3px; }
.action-cell button.attention { color: #b53830; border-color: #d85d54; background: #fff3f1; font-weight: 750; }
.multi-sku-matrix td.future { background-color: #f4f8fb; }
.multi-sku-matrix tr.row-actual td.populated { color: #0d64a0; background-color: #e9f4fb; font-weight: 750; }
.multi-sku-matrix tr.row-reference td.populated { color: #687581; background-color: #eef1f3; font-weight: 650; }
.multi-sku-matrix tr.row-audit_baseline td.populated { color: #717d86; background-color: #f0f2f4; font-weight: 650; }
.multi-sku-matrix tr.row-production_baseline td.populated { color: #3f6178; background-color: #edf3f7; font-weight: 750; }
.multi-sku-matrix tr.driver-row .metric-label { color: #547185 !important; background: #edf4f7; font-size: 9px; }
.multi-sku-matrix tr.row-price_effect td.populated { background-color: #edf9f6; }.multi-sku-matrix tr.row-weather_effect td.populated { background-color: #edf6fb; }.multi-sku-matrix tr.row-campaign_effect td.populated { background-color: #f5effa; }.multi-sku-matrix tr.row-substitution_effect td.populated { background-color: #fbf0f5; }.multi-sku-matrix tr.row-reconciliation_effect td.populated { background-color: #edf8fa; }
.multi-sku-matrix tr.row-system td.populated,.multi-sku-matrix tr.row-forecast td.populated { color: #b75d1e; background-color: #fff1df; font-weight: 750; }
.multi-sku-matrix tr.row-human td.populated { color: #724496; background-color: #f3eafa; font-weight: 750; }
.multi-sku-matrix tr.row-final td.populated { color: #1e704b; background-color: #e5f5ec; font-weight: 800; }
.multi-sku-matrix tr.row-stock td.populated { color: #315a72; font-weight: 650; }
.multi-sku-matrix tr.row-firm td.populated { color: #7951a0; background-color: #f3ecf9; font-weight: 650; }
.multi-sku-matrix tr.row-incoming td.populated { color: #247450; background-color: #e8f6ef; font-weight: 650; }
.multi-sku-matrix tr.row-plan td.populated { color: #9a4b13; background-color: #ffe3bc; font-weight: 800; }
.multi-sku-matrix td.negative { color: #b82e2a !important; background-color: #ffd9d7 !important; font-weight: 800; }
.multi-sku-matrix td.effect-positive { color: #14745f; font-weight: 750; }.multi-sku-matrix td.effect-negative { color: #a45336; font-weight: 750; }.multi-sku-matrix td.effect-zero { color: #9aa8b1; }
.matrix-pager { display: flex; align-items: center; justify-content: center; gap: 12px; padding: 8px; color: #718797; font-size: 11px; }
.forecast-detail-mask { position: fixed; inset: 0; z-index: 60; display: flex; justify-content: flex-end; background: rgba(18,42,60,.35); }
.forecast-detail-drawer { width: min(920px,96vw); height: 100%; overflow: auto; padding: 18px; background: #f3f7fa; box-shadow: -12px 0 36px rgba(14,42,62,.25); animation: fadeIn .2s ease; }
.drawer-head { display: flex; align-items: center; justify-content: space-between; margin-bottom: 12px; }.drawer-head span { color: #0b6da9; font-size: 11px; font-weight: 700; }.drawer-head h2 { color: #173c56; font-size: 20px; }
.drawer-kpis { display: grid; grid-template-columns: repeat(4,1fr); gap: 7px; margin-bottom: 10px; }.drawer-kpis span { padding: 9px; background: #fff; border: 1px solid #d6e2ea; border-radius: 6px; }.drawer-kpis small,.drawer-kpis b { display: block; }.drawer-kpis small { color: #8495a2; font-size: 9px; }.drawer-kpis b { color: #23465e; font-size: 17px; margin-top: 3px; }
.drawer-kpis.review-kpis { grid-template-columns: repeat(6,1fr); }
.drawer-kpis.component-kpis { grid-template-columns: repeat(7,1fr); }
.drawer-kpis.component-kpis span { border-top: 3px solid #b5c7d3; }.drawer-kpis.component-kpis span:nth-child(2) { border-top-color: #20a486; }.drawer-kpis.component-kpis span:nth-child(3) { border-top-color: #4797d1; }.drawer-kpis.component-kpis span:nth-child(4) { border-top-color: #9a70c2; }.drawer-kpis.component-kpis span:nth-child(5) { border-top-color: #cc729e; }.drawer-kpis.component-kpis span:nth-child(6) { border-top-color: #18a4b4; }.drawer-kpis.component-kpis .system-total { border-top-color: #ef9a3e; background: #fff9f1; }
.drawer-kpis b.positive,.fva-gain-grid b.positive { color: #14745f; }.drawer-kpis b.negative,.fva-gain-grid b.negative { color: #a45336; }.drawer-kpis b.neutral,.fva-gain-grid b.neutral { color: #7d8e99; }
.chart-legend { display: flex; align-items: center; justify-content: flex-end; gap: 5px 12px; margin: -3px 3px 7px; color: #718493; font-size: 8px; flex-wrap: wrap; }.chart-legend span { display: inline-flex; align-items: center; white-space: nowrap; }.legend-line { width: 13px; height: 2px; display: inline-block; margin-right: 4px; background: #8a9299; }.legend-line.history { background: #0a6ed1; }.legend-line.system { background: #e09a3e; }
.component-table-wrap { max-height: 330px; overflow: auto; border: 1px solid #dce5eb; border-radius: 6px; }
table.component-table { width: max-content; min-width: 100%; border: 0; border-radius: 0; table-layout: fixed; }.component-table th,.component-table td { width: 78px; min-width: 78px; padding: 5px 7px; text-align: right; font-size: 9px; white-space: nowrap; }.component-table th { position: sticky; top: 0; z-index: 2; color: #587386; background: #edf3f7; }.component-table th:first-child,.component-table td:first-child { width: 72px; min-width: 72px; text-align: left; }.component-table td:first-child b,.component-table td:first-child small { display: block; }.component-table td:first-child small { color: #91a0aa; font-size: 7px; }.component-table .component-baseline { color: #3f6178; font-weight: 750; background: #f2f6f8; }.component-table .component-system { color: #a65b1f; font-weight: 800; background: #fff6ea; }.component-table .effect-positive { color: #14745f; font-weight: 700; }.component-table .effect-negative { color: #a45336; font-weight: 700; }.component-table .effect-neutral { color: #97a5ae; }
.forecast-diagnostic-grid { display: grid; grid-template-columns: 1.15fr .85fr; gap: 10px; }.forecast-diagnostic-grid .review-card { min-width: 0; }
.profile-fields { display: grid; grid-template-columns: repeat(3,1fr); gap: 5px; }.profile-fields span { min-width: 0; padding: 6px 7px; background: #f3f7f9; border-radius: 5px; }.profile-fields small,.profile-fields b { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }.profile-fields small { color: #8797a2; font-size: 7px; }.profile-fields b { margin-top: 2px; color: #315269; font-size: 10px; }.profile-empty { padding: 7px; color: #84949f; background: #f4f7f9; border-radius: 5px; font-size: 9px; }
.segment-tags { display: flex; gap: 4px; flex-wrap: wrap; margin-top: 8px; }.segment-tags span { padding: 4px 7px; color: #315d78; background: #e8f2f7; border-radius: 10px; font-size: 9px; }.segment-tags small { margin-right: 3px; color: #7d929f; font-size: 7px; }
.route-line,.reconciliation-summary { margin-top: 8px; padding: 7px 8px; color: #627b8b; background: #f5f8fa; border-radius: 5px; font-size: 9px; }.route-line small,.route-line b { display: block; }.route-line small { color: #8998a2; font-size: 7px; }.route-line b { margin-top: 2px; color: #31546b; }
.sensitivity-list { display: grid; grid-template-columns: repeat(4,1fr); gap: 4px; margin-top: 7px; }.sensitivity-list span { min-width: 0; padding: 5px; background: #fbf7ef; border-radius: 4px; }.sensitivity-list small,.sensitivity-list b,.sensitivity-list em { display: block; }.sensitivity-list small { color: #9a8a6d; font-size: 7px; }.sensitivity-list b { color: #6a583c; font-size: 9px; }.sensitivity-list em { color: #9b8d78; font-size: 7px; font-style: normal; }
.reconciliation-summary { display: grid; grid-template-columns: auto 1fr auto; align-items: center; gap: 3px 8px; background: #edf7f8; }.reconciliation-summary small { grid-row: 1 / span 2; color: #668690; }.reconciliation-summary b { color: #246473; }.reconciliation-summary span { color: #69838d; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }.reconciliation-summary em { grid-column: 3; grid-row: 1 / span 2; color: #246473; font-style: normal; font-weight: 750; }
.quality-grade.large { padding: 5px 8px; font-size: 10px !important; }
.coverage-grid { display: grid; grid-template-columns: repeat(4,1fr); gap: 4px; }.coverage-grid span { min-width: 0; padding: 5px; background: #f4f7f9; border-radius: 4px; }.coverage-grid small,.coverage-grid b { display: block; }.coverage-grid small { color: #8797a2; font-size: 7px; }.coverage-grid b { margin-top: 2px; color: #315269; font-size: 9px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.quality-warnings { margin: 8px 0 0 17px; color: #98613c; font-size: 9px; line-height: 1.45; }.quality-warnings li + li { margin-top: 3px; }.quality-ok { margin-top: 8px; padding: 6px 8px; color: #277250; background: #e8f6ee; border-radius: 5px; font-size: 9px; }
.fva-stage-table { display: grid; grid-template-columns: repeat(3,1fr); gap: 6px; }.fva-stage-table span { padding: 8px; background: #f4f7f9; border-radius: 5px; }.fva-stage-table small,.fva-stage-table b,.fva-stage-table em { display: block; }.fva-stage-table small { color: #7d909d; font-size: 8px; }.fva-stage-table b { margin-top: 3px; color: #2c4f66; font-size: 13px; }.fva-stage-table em { margin-top: 2px; color: #768a98; font-size: 8px; font-style: normal; }
.fva-gain-grid { display: grid; grid-template-columns: repeat(3,1fr); gap: 6px; margin-top: 7px; }.fva-gain-grid span { padding: 7px 8px; border: 1px solid #d9e4ea; border-radius: 5px; }.fva-gain-grid small,.fva-gain-grid b { display: block; }.fva-gain-grid small { color: #80919c; font-size: 8px; }.fva-gain-grid b { margin-top: 2px; color: #315269; font-size: 14px; }
.drawer-decision { margin-top: 12px; padding: 14px; background: #fff; border: 1px solid #d6e2ea; border-radius: 8px; }.drawer-decision h3 { color: #24475f; margin-bottom: 10px; }.drawer-actions { display: flex; align-items: center; justify-content: flex-end; gap: 7px; margin-top: 12px; }.drawer-actions span { margin-right: auto; color: #657d8e; font-size: 11px; }
.review-pill { display: inline-block; padding: 3px 7px; border-radius: 10px; font-size: 9px; font-weight: 750; white-space: nowrap; }
.review-green { color: #23704d !important; background: #e1f4e9; }.review-yellow { color: #936619 !important; background: #fff0c9; }.review-red { color: #af3932 !important; background: #ffe2df; }.review-none { color: #71818e !important; background: #e8edf1; }
.review-card { margin-top: 12px; padding: 14px; background: #fff; border: 1px solid #d6e2ea; border-radius: 8px; }
.review-card-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; margin-bottom: 10px; }
.review-card-head > div > span:not(.review-pill) { display: block; color: #25709e; font-size: 8px; font-weight: 750; letter-spacing: .8px; }
.review-card-head h3 { color: #24475f; margin-top: 2px; font-size: 14px; }.review-card-head > small { color: #8293a0; font-size: 9px; text-align: right; }
.triage-card { border-left-width: 4px; }.triage-card.triage-green { border-left-color: #4b9c70; }.triage-card.triage-yellow { border-left-color: #e2a128; }.triage-card.triage-red { border-left-color: #d64b42; }
.triage-card p { color: #466174; font-size: 11px; line-height: 1.6; }
.triage-reasons { display: flex; gap: 5px; flex-wrap: wrap; margin-top: 8px; }.triage-reasons span { padding: 3px 7px; color: #667b8b; background: #f0f4f7; border-radius: 10px; font-size: 9px; }
.explanation-drivers { margin: 9px 0 0 17px; color: #617789; font-size: 10px; line-height: 1.55; }.explanation-drivers li + li { margin-top: 3px; }
.review-quick-actions { display: flex; gap: 6px; flex-wrap: wrap; margin-bottom: 10px; }.review-quick-actions button { padding: 5px 8px; font-size: 9px; }
.review-points-wrap { max-height: 320px; overflow: auto; border: 1px solid #dce5eb; border-radius: 6px; }
table.review-points { border: 0; border-radius: 0; table-layout: fixed; }.review-points th { position: sticky; top: 0; z-index: 2; padding: 6px 8px; color: #61798a; background: #edf3f7; text-align: right; font-size: 9px; }.review-points th:first-child { text-align: left; }
.review-points td { padding: 4px 8px; text-align: right; color: #4a6476; font-size: 10px; }.review-points td:first-child { text-align: left; }.review-points td:first-child b,.review-points td:first-child small { display: block; }.review-points td:first-child small { color: #91a0aa; font-size: 7px; }
.review-points input { width: 100%; min-width: 74px; padding: 4px 6px; text-align: right; border-radius: 4px; font-size: 10px; }.review-points input.changed { color: #216f4d; background: #eaf7f0; border-color: #7bbd99; font-weight: 700; }
.review-form-grid { display: grid; grid-template-columns: 190px 1fr; gap: 8px; margin-top: 10px; }.review-form-grid label { color: #6f8290; font-size: 9px; }.review-form-grid select,.review-form-grid textarea { display: block; width: 100%; margin-top: 3px; padding: 6px 8px; font-size: 11px; }.review-form-grid textarea { resize: vertical; }
.review-savebar { display: flex; align-items: center; justify-content: flex-end; gap: 7px; margin-top: 10px; }.review-savebar > span { margin-right: auto; color: #718594; font-size: 9px; }.review-savebar > span b { color: #bd6c1e; }.review-savebar button { padding: 7px 10px; font-size: 10px; }.review-savebar .accept-system { color: #26734e; border-color: #65a985; }
.review-score-grid { display: grid; grid-template-columns: repeat(6,1fr); gap: 6px; }.review-score-grid span { padding: 8px; background: #f5f8fa; border-radius: 5px; }.review-score-grid small,.review-score-grid b { display: block; }.review-score-grid small { min-height: 24px; color: #8293a0; font-size: 8px; }.review-score-grid b { color: #294b62; font-size: 14px; }.review-score-grid b.good { color: #23734d; }.review-score-grid b.bad { color: #bd443a; }
.scorecard-note { margin-top: 8px; padding: 6px 8px; color: #7b6a39; background: #fff7dc; border-radius: 5px; font-size: 9px; }.scorecard-note.caution { color: #8e4d3f; background: #fff0ec; }
.review-empty { display: flex; flex-direction: column; gap: 4px; color: #788b98; text-align: center; }.review-empty b { color: #3c596d; }
@media (max-width: 1100px) {
  .matrix-toolbar { align-items: flex-start; flex-wrap: wrap; }
  .matrix-filter-set { order: 3; width: 100%; }.matrix-filter-set input { flex: 1; }
  .matrix-periods { margin-left: auto; }
  .multi-matrix-shell { height: calc(100vh - 318px); }
  .drawer-kpis.review-kpis,.drawer-kpis.component-kpis,.review-score-grid { grid-template-columns: repeat(3,1fr); }
  .forecast-diagnostic-grid { grid-template-columns: 1fr; }
}
@media (max-width: 640px) {
  .drawer-kpis.review-kpis,.drawer-kpis.component-kpis,.review-score-grid { grid-template-columns: repeat(2,1fr); }
  .profile-fields,.coverage-grid { grid-template-columns: repeat(2,1fr); }
  .sensitivity-list { grid-template-columns: repeat(2,1fr); }
  .fva-stage-table,.fva-gain-grid { grid-template-columns: 1fr; }
  .review-form-grid { grid-template-columns: 1fr; }
  .review-savebar { flex-wrap: wrap; }.review-savebar > span { width: 100%; }
}
