/* Рабочее место аналитики продаж. Свои классы с префиксом sa-, чтобы не биться с общими. */
.sa-filters { display: flex; flex-wrap: wrap; gap: 10px 14px; align-items: flex-end; }
.sa-field { display: flex; flex-direction: column; gap: 4px; min-width: 150px; }
.sa-field > label { font-size:  12px; letter-spacing: .02em; color: var(--muted, #7a8699); text-transform: uppercase; }
.sa-field select, .sa-field input { height: 32px; border-radius: 8px; border: 1px solid var(--line, #d9dee7); background: var(--card, #fff); color: inherit; padding: 0 8px; font: inherit; font-size: 13px; max-width: 240px; }
.sa-quick { display: flex; flex-wrap: wrap; gap: 6px; }
.sa-quick button { border: 1px solid var(--line, #d9dee7); background: var(--card, #fff); color: inherit; border-radius: 999px; padding: 4px 12px; font-size: 12px; cursor: pointer; }
.sa-quick button[aria-pressed="true"] { background: var(--accent, #2f6df6); border-color: var(--accent, #2f6df6); color: #fff; }
.sa-actions { display: flex; gap: 8px; align-items: center; margin-left: auto; }
.sa-selection { margin-top: 10px; font-size: 13px; display: flex; flex-wrap: wrap; gap: 6px 18px; align-items: baseline; }
.sa-selection b { font-variant-numeric: tabular-nums; }
.sa-chips { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 8px; }
.sa-chip { display: inline-flex; align-items: center; gap: 6px; border: 1px solid var(--line, #d9dee7); border-radius: 999px; padding: 2px 6px 2px 10px; font-size: 12px; background: var(--bg-soft, #f4f6fa); }
.sa-chip button { border: 0; background: transparent; cursor: pointer; font-size: 14px; line-height: 1; color: var(--muted, #7a8699); }
.sa-tabs { display: flex; flex-wrap: wrap; gap: 6px; margin: 14px 0 4px; }
.sa-tabs button { border: 1px solid var(--line, #d9dee7); background: var(--card, #fff); color: inherit; border-radius: 8px; padding: 7px 14px; font-size: 13px; cursor: pointer; }
.sa-tabs button[aria-selected="true"] { background: var(--accent, #2f6df6); border-color: var(--accent, #2f6df6); color: #fff; font-weight: 600; }
.sa-chart { width: 100%; overflow-x: auto; }
.sa-chart svg { display: block; width: 100%; min-width: 640px; height: auto; }
.sa-bar { cursor: pointer; }
.sa-bar:hover { opacity: .78; }
.sa-axis { font-size:  12px; fill: var(--muted, #7a8699); }
.sa-grid { stroke: var(--line, #e3e7ee); stroke-width: 1; }
.sa-legend { display: flex; flex-wrap: wrap; gap: 8px 16px; margin-top: 8px; font-size: 12px; }
.sa-legend span { display: inline-flex; align-items: center; gap: 6px; cursor: pointer; }
.sa-legend i { width: 12px; height: 12px; border-radius: 3px; display: inline-block; }
.sa-note { font-size: 12px; color: var(--muted, #7a8699); margin-top: 6px; }
.sa-warn { border-left: 3px solid #e0a13a; background: rgba(224, 161, 58, .09); padding: 8px 12px; border-radius: 6px; font-size: 12.5px; margin-top: 10px; }
.sa-num { text-align: right; font-variant-numeric: tabular-nums; white-space: nowrap; }
.sa-drill { cursor: pointer; }
.sa-drill-row > td { background: var(--bg-soft, #f6f8fb); font-size: 12.5px; }
.sa-linkish { background: none; border: 0; padding: 0; color: var(--accent, #2f6df6); cursor: pointer; font: inherit; text-align: left; }
.sa-kpi { display: grid; grid-template-columns: repeat(auto-fit, minmax(170px, 1fr)); gap: 10px; margin-bottom: 12px; }
.sa-kpi > div { border: 1px solid var(--line, #d9dee7); border-radius: 10px; padding: 10px 12px; background: var(--card, #fff); }
.sa-kpi .lbl { font-size:  12px; text-transform: uppercase; color: var(--muted, #7a8699); }
.sa-kpi .big { font-size: 19px; font-weight: 650; font-variant-numeric: tabular-nums; }
.sa-kpi .sub { font-size:  12px; color: var(--muted, #7a8699); }
.sa-touch-gap { fill: rgba(192, 57, 43, .10); }

/* Read-report composition: these opt-in roots own no shared table semantics. */
:is(.sa-report-workspace,.forecast-read-workspace) > .page-header {display:flex;align-items:center;justify-content:space-between;gap:16px;margin:0 0 12px}
:is(.sa-report-workspace,.forecast-read-workspace) > .page-header h2 {font:650 20px/1.3 var(--font-sans,system-ui);margin:0}
:is(.sa-report-workspace,.forecast-read-workspace) > .page-header p {font-size:13px;margin:4px 0 0}
:is(.sa-report-workspace,.forecast-read-workspace) .workspace-secondary {margin:8px 0}
:is(.sa-report-workspace,.forecast-read-workspace) .workspace-secondary > summary {font-size:13px;min-height:34px;display:list-item;align-content:center;cursor:pointer}
.sa-report-workspace .workspace-filters {padding:10px 12px;border:1px solid var(--line,#ddd);border-radius:10px;background:var(--card,#fff)}
.sa-report-workspace .sa-field > label {font-size:12px;text-transform:none;letter-spacing:0}
.sa-report-workspace .sa-field :is(input,select),.sa-report-workspace button {min-height:34px;font-size:13px}
.sa-report-workspace .sa-note {font-size:12px;line-height:1.5;color:var(--dim,#596575)}
.sa-report-workspace td {font-size:13px;line-height:1.45}
.sa-report-workspace .sa-num {white-space:nowrap}
.sa-report-workspace .sa-actions .btn.prim {color:#fff}
.forecast-read-workspace .forecast-hero {margin:12px 0}
.forecast-read-workspace .forecast-hero .v {font:650 26px/1.2 var(--font-sans,system-ui)}
.forecast-read-workspace .forecast-hero .l,.forecast-read-workspace .forecast-hero .s {font-size:12px}

.forecast-read-workspace > .page-header h2 {flex:1}

/* 16.09.2026: разворот в карточке словаря — узкие колонки по содержимому, воздух уходит колонке группы */
.sa-razvorot th.sa-uzko, .sa-razvorot th.sa-num { width: 1%; white-space: nowrap; }
