/*
 * Shared visual contract for the report, administration and presentation.
 * Load after feature styles. Layout and chart series remain feature-owned;
 * this layer owns type roles, neutral colours and interactive surfaces.
 */
@font-face {
  font-family: "Review Sans";
  src: url("/business_report/ui-releases/d0a6a0b9-3d77-4588-b046-b7d76f07ab84/review-sans.woff2") format("woff2");
  font-weight: 100 900;
  font-style: normal;
  font-display: swap;
}
:root {
  --ui-font: "Review Sans", "HarmonyOS Sans SC", "PingFang SC", "Microsoft YaHei UI", sans-serif;
  --ui-font-code: "Cascadia Code", Consolas, monospace;
  --ui-text-xs: 11px;
  --ui-text-sm: 12px;
  --ui-text-md: 13px;
  --ui-text-base: 14px;
  --ui-title-card: 16px;
  --ui-title-section: 20px;
  --ui-title-page: 28px;
  --ui-chart-label: 12px;
  --ui-weight-body: 400;
  --ui-weight-medium: 500;
  --ui-weight-heading: 600;
  --ui-ink: #272a30;
  --ui-text: #505762;
  --ui-muted: #6a727e;
  --ui-subtle: #8a909a;
  --ui-paper: #f5f5f7;
  --ui-surface: #fff;
  --ui-surface-soft: #f7f8fa;
  --ui-table-header: #f5f7fa;
  --ui-line: #e5e7eb;
  --ui-line-soft: #eef0f3;
  --ui-line-focus: #929cac;
  --ui-danger: #a45d65;
  --ui-warning: #986f3d;
  --ui-radius-control: 10px;
  --ui-radius-card: 18px;
  --ui-shadow-card: 0 1px 2px #20263003, 0 18px 34px -29px #20263030;
  --ink: var(--ui-ink);
  --muted: var(--ui-muted);
  --paper: var(--ui-paper);
  --white: var(--ui-surface);
  --line: var(--ui-line);
  --soft: #f0f1f4;
  --green: var(--ui-text);
  --accent: var(--ui-text);
  --red: var(--ui-danger);
  --shadow: var(--ui-shadow-card);
  font-family: var(--ui-font);
  font-size: var(--ui-text-base);
  color-scheme: light;
}

/* Use the bundled face in all portals, including charts and number-only cells. */
body,
body.admin-mode,
body.admin-mode.target-management,
body.admin-mode.playbook-admin {
  --ink: var(--ui-ink);
  --muted: var(--ui-muted);
  --green: var(--ui-text);
  --accent: var(--ui-text);
  --line: var(--ui-line);
  font-family: var(--ui-font);
  font-size: var(--ui-text-base);
  font-weight: var(--ui-weight-body);
  line-height: 1.6;
  color: var(--ui-ink);
  background: var(--ui-paper);
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}
body :is(button, input, textarea, select, .choice-trigger, .calendar-trigger),
body :is(h1, h2, h3, h4, h5, .wordmark, .side-edition, .eyebrow),
body :is(.num, .metric .value, .mini-stats strong, .chart-value,
  .health-row strong, .stat-strip .num, .scenario-value, .quarter-amount,
  .quarter-top strong, .quarter-footer b, .annual-summary strong,
  .mix-total strong, .mix-row b, .driver-row strong, .completion-cell,
  .structure-legend b, .entity-parent strong, .policy-seal, .meta-chip,
  .insight .number, .page-no, .admin-flow b),
body .rd-report.fr-report,
body .presentation-screen {
  font-family: var(--ui-font);
}
body :is(.num, table, .metric .value, .mini-stats strong, .quarter-amount,
  .annual-summary strong, .detail-summary-grid strong) {
  font-variant-numeric: tabular-nums;
}
body :is(code, pre.mono, .mono, .issue-code) { font-family: var(--ui-font-code); }
body .quality-list div::before { font-family: var(--ui-font); }
body :is(h1, h2, h3, h4) { color: var(--ui-ink); }
body h1 { font-size: var(--ui-title-page); font-weight: 600; line-height: 1.35; letter-spacing: -.55px; }
body h2 { font-size: var(--ui-title-section); font-weight: 600; line-height: 1.45; letter-spacing: -.25px; }
body h3 { font-size: var(--ui-title-card); font-weight: 500; line-height: 1.5; letter-spacing: 0; }
body h4 { font-size: var(--ui-text-base); font-weight: 500; line-height: 1.5; letter-spacing: 0; }
body p { line-height: 1.85; }
body :is(small, .muted, .note) { color: var(--ui-muted); }
body small { font-size: var(--ui-text-xs); line-height: 1.6; }
body .eyebrow { font-size: var(--ui-text-xs); font-weight: 500; letter-spacing: .08em; }

/* The same heading hierarchy for every administration route and report chapter. */
body #main :is(.page-head, .target-heading, .fs-heading, .portfolio-heading, .fv-heading, .access-page-head) h1,
body #main .access-page h1,
body.admin-mode #main > .page-head h1,
body.admin-mode #main .target-heading h1,
body.admin-mode #main .fs-heading h1,
body .review-content > .page-head h1 {
  font-size: var(--ui-title-page);
  font-weight: 600;
  line-height: 1.35;
  letter-spacing: -.55px;
}
body :is(.panel-head, .section-title, .market-context-title,
  .target-table-heading, .access-editor-head, .configuration-dialog > header,
  .filter-dialog-head, .sw-intro) h2,
body :is(#market-insights, .presentation-market) .panel-head h2,
body :is(#market-insights, .presentation-market) .market-context-title h2,
body.admin-mode #main h2 {
  font-size: var(--ui-title-section);
  font-weight: 600;
  line-height: 1.45;
  letter-spacing: -.25px;
}
body :is(.panel, .action-card, .strategy-card, .access-section, .sw-matches, .report-note) h3,
body .detail-view-head h4,
body.admin-mode #main h3 {
  font-size: var(--ui-title-card);
  font-weight: 500;
  line-height: 1.5;
  letter-spacing: 0;
}
body #modal .modal-head h2,
body .configuration-dialog h2 { font-size: var(--ui-title-section); font-weight: 600; letter-spacing: -.25px; }
body .entity-header h3 { font-size: var(--ui-title-section); font-weight: 500; letter-spacing: -.25px; }

/* Navigation, buttons and fields share a stable reading size and neutral states. */
body .primary-header nav button,
body.admin-mode #app > .sidebar nav button,
body .review-chapters.diagnostic-tabs .review-chapter > button {
  font-size: var(--ui-text-md);
  font-weight: 500;
  line-height: 1.55;
  color: var(--ui-muted);
}
body .review-rail :is(.review-dimensions, .review-module-nav) button {
  font-size: var(--ui-text-sm);
  font-weight: 400;
  line-height: 1.6;
  color: var(--ui-muted);
}
body .review-rail .review-module-nav button.active { font-weight: 500; }
body .primary-header nav button.active,
body.admin-mode #app > .sidebar nav button.active { color: var(--ui-ink); }
body :is(.review-rail, .sidebar) .choice-trigger { font-size: var(--ui-text-md); }
body :is(button, .button, input, textarea, select, .choice-trigger, .calendar-trigger) {
  font-size: var(--ui-text-md);
  font-weight: 400;
  letter-spacing: 0;
}
body :is(.primary, .ghost, .tabs button, .inline-tools button, .form-footer button,
  .configuration-dialog footer button, .target-periods button, .entity-tabs button) {
  font-size: var(--ui-text-md);
  font-weight: 500;
  line-height: 1.5;
}
body :is(.primary, .ghost, .form-footer button, .configuration-dialog footer button) {
  min-height: 36px;
  border-radius: var(--ui-radius-control);
}
body :is(.text-button, .pagination button, .panel-head button, .chart-analysis button,
  .detail-fields-button, .context-actions button, .note-footer button, .fs-task-state button,
  .fv-row-actions button, .access-row-actions a, .access-section header button) {
  font-size: var(--ui-text-sm);
  font-weight: 500;
  line-height: 1.5;
}
body :is(.choice-trigger, .filterbar .choice-trigger, #filter-dialog .choice-trigger, .calendar-trigger) {
  font-size: var(--ui-text-md);
  color: var(--ui-text);
  border-color: var(--ui-line);
  border-radius: var(--ui-radius-control);
  background: var(--ui-surface);
}
body :is(.choice-list [role=option], .choice-option, .choice-search) { font-size: var(--ui-text-md); line-height: 1.6; }
body :is(.choice-list, .calendar-popover) { color: var(--ui-text); border-color: var(--ui-line); }
body :is(label, .form-grid label, .filterbar label, .target-controls label,
  .target-edit-grid label, .target-reason, .configuration-label, .ai-framework-editor label) {
  font-size: var(--ui-text-sm);
  line-height: 1.6;
  color: var(--ui-muted);
}
body :is(.field-order-row label, .configuration-reference label,
  .access-member b, .access-check, .fs-person, .sw-tags label span) { font-size: var(--ui-text-md); }
body :is(input:not([type=checkbox]):not([type=radio]), textarea) { color: var(--ui-ink); border-color: var(--ui-line); }
body :is(input, textarea)::placeholder { color: var(--ui-subtle); }
body :is(input, textarea):focus { border-color: var(--ui-line-focus); }
body :is(.primary, .button.primary) { background: var(--ui-ink); border-color: var(--ui-ink); color: #fff; }
body :is(.primary, .button.primary):hover { background: #424851; border-color: #424851; color: #fff; }
body :is(.text-button, .portal-link, .nav-icon, .detail-fields-button) { color: var(--ui-text); }
body :is(button, a, input, textarea, [role=button], [tabindex]):focus-visible {
  outline-color: var(--ui-line-focus);
}

/* Tables remain compact; values and their units no longer swap number fonts. */
body table { font-family: var(--ui-font); font-size: var(--ui-text-sm); color: var(--ui-text); }
body th,
body.admin-mode #main th { font-size: var(--ui-text-sm); font-weight: 500; line-height: 1.6; color: var(--ui-muted); }
body td,
body.admin-mode #main td { font-size: var(--ui-text-sm); font-weight: 400; line-height: 1.65; }
body :is(.table-wrap .text-button, .product-name strong, .fv-version-name, .target-amount) {
  font-size: var(--ui-text-md);
  font-weight: 500;
}
body :is(.product-name small, .block, .target-panel td .block, .fv-description,
  .fv-table time, .access-member small, .field-order-row small) { font-size: var(--ui-text-xs); color: var(--ui-muted); }
body .detail-configured-view :is(th, td) { font-size: var(--ui-text-sm); }
body .detail-configured-view .drill-measure { font-size: var(--ui-text-base); font-weight: 500; }
body :is(.detail-summary-grid small, .metric .label, .market-kpis small, .mini-stats small) {
  font-size: var(--ui-text-sm);
  color: var(--ui-muted);
}
body .detail-summary-grid strong { font-size: 20px; font-weight: 500; letter-spacing: -.35px; color: var(--ui-ink); }
body :is(.metric .value, .quarter-amount, .mix-total strong, .annual-summary strong, .market-kpis strong) {
  font-weight: 500;
  letter-spacing: -.6px;
  line-height: 1.25;
  color: var(--ui-ink);
}
body :is(.metric .foot, .quarter-target, .quarter-footer, .market-kpis p,
  .target-footnote, .target-edit-grid small, .fs-task-state small,
  .review-entry-note, .entity-header p, .pagination) {
  font-size: var(--ui-text-sm);
  line-height: 1.65;
  color: var(--ui-muted);
}
body :is(.badge, .target-state, .fs-status, .meta-chip, .portfolio-chips > span, .sw-verdict) {
  font-size: var(--ui-text-xs);
  font-weight: 400;
  line-height: 1.5;
}

/* All SVG text follows the UI family. Series colour is deliberately not reset. */
body svg text {
  font-family: var(--ui-font);
  font-weight: 400;
  font-variant-numeric: tabular-nums;
  letter-spacing: 0;
}
body :is(.trend, .quadrant-chart, .monthly-chart, .report-trend, .workbook-period-chart,
  .fr-chart, .core-trend-plot, .market-chart) svg text,
body :is(svg.trend, svg.quadrant-chart, svg.monthly-chart) text,
body :is(#market-insights, .presentation-market) .market-chart text {
  font-family: var(--ui-font);
  font-weight: 400;
  letter-spacing: 0;
}
body :is(.trend text, .quadrant-chart text, .monthly-chart text,
  .report-axis, .fr-axis, .core-axis, .core-market-axis,
  .market-axis-label, .workbook-period-chart svg text),
body .report-trend .report-axis,
body .quadrant-chart .zone-label,
body :is(#market-insights, .presentation-market) .market-chart .market-axis-label {
  font-size: var(--ui-chart-label);
  fill: var(--ui-muted);
}
body :is(.fr-chart .fr-point-label, .report-trend .report-value-label),
body :is(#market-insights, .presentation-market) .market-chart .market-point-label {
  font-size: var(--ui-chart-label);
  font-weight: 400;
  letter-spacing: 0;
}
body :is(#market-insights, .presentation-market) .market-chart .market-point-label.is-latest { font-weight: 500; }
body .quadrant-chart .bubble-index { fill: #fff; font-size: var(--ui-chart-label); font-weight: 500; }
body :is(.legend, .structure-legend, .bubble-key button, .chart-value,
  .market-legend button, .report-trends-heading, .report-trends-heading > div,
  .fr-tooltip, .core-tooltip) {
  font-size: var(--ui-text-sm);
  font-weight: 400;
  color: var(--ui-muted);
}
body :is(#market-insights, .presentation-market) .market-legend button {
  font-family: var(--ui-font);
  font-size: var(--ui-text-sm);
  font-weight: 400;
  color: var(--ui-text);
}
body :is(.fr-tooltip, .core-tooltip, [data-slot=tooltip-content]) { font-family: var(--ui-font); }

/* Prose and AI are reading surfaces, not metadata. */
body :is(.chart-analysis-text, .chart-analysis textarea, .review-strategy-grid p,
  .report-note > p, .report-note dl, .action-card dl, .review-research-grid p,
  .sw-matches p, .sw-proposals p, .strategy-card > p, .strategy-suggestion,
  .rule-card p, .configuration-dialog textarea, .ai-framework-editor textarea,
  .access-page p, .fs-guide, .quality-list div) {
  font-size: var(--ui-text-md);
  font-weight: 400;
  line-height: 1.85;
  color: var(--ui-text);
}
body :is(.chart-analysis-label, .note-heading h3, .configuration-label, .sw-proposals small) { font-weight: 500; }
body :is(.chart-analysis-meta, .chart-analysis-empty, .configuration-hint,
  .configuration-dialog header p, .reference-data-table th, .reference-data-table td,
  .ai-settings-status, .ai-framework-message, .portfolio-rule-help, .access-section > p) {
  font-size: var(--ui-text-sm);
  line-height: 1.7;
  color: var(--ui-muted);
}
body :is(#market-insights, .presentation-market) .market-reading { color: var(--ui-muted); }

/* Neutral surfaces are shared; warnings retain a restrained semantic accent. */
body :is(.panel, .strategy-card, .report-note, .quarter-card, .access-role-list) {
  border-color: var(--ui-line);
  border-radius: var(--ui-radius-card);
  background: var(--ui-surface);
  box-shadow: var(--ui-shadow-card);
}
body :is(.chart-analysis, .review-strategy-grid > div, .note-action, .mini-stats > div,
  .sw-proposals > div, .sw-conditions, .entity-parent) {
  color: var(--ui-text);
  border-color: var(--ui-line);
  background: var(--ui-surface-soft);
}
body .badge.red { background: #f7eef0; color: var(--ui-danger); }
body .badge.warning { background: #f8f3eb; color: var(--ui-warning); }
body :is(.negative, .error, .configuration-error) { color: var(--ui-danger); }
body :is(.positive, .target-amount) { color: var(--ui-ink); }
body :is(.sw-prompt-editor summary, .fs-guide summary, .portfolio-advanced summary,
  .fv-history summary, .configuration-reference summary) { font-size: var(--ui-text-sm); color: var(--ui-text); font-weight: 500; }

@media (max-width: 760px) {
  :root { --ui-title-page: 24px; --ui-title-section: 18px; }
  body .detail-summary-grid strong { font-size: 18px; }
  body :is(.nav-icon, .icon-button) { flex-shrink: 0; }
}
@media print {
  body { background: #fff; }
  body :is(.panel, .strategy-card, .report-note, .quarter-card, .access-role-list) { box-shadow: none; }
}

/* Report palette: a quiet shell with colour reserved for data and orientation. */
body:not(.admin-mode) {
  --ui-title-page: 24px;
  --ui-title-section: 18px;
  --ui-title-card: 15px;
  --ui-actual: #4775d4;
  --ui-goal: #9672ba;
  --ui-market: #258b91;
  --ui-success: #248275;
  --ui-warning: #b16d31;
  --ui-danger: #bb5866;
  --ui-selection: #edf2fc;
  --ui-paper: #f6f7fa;
  --ui-ink: #293344;
  --ui-text: #546176;
  --ui-muted: #6c788b;
  --green: var(--ui-success);
  --accent: var(--ui-actual);
}
body:not(.admin-mode) #main :is(h1,h2,.fr-module-heading h2) {
  font-family: var(--ui-font);
  font-weight: 500;
  letter-spacing: -.25px;
}
body:not(.admin-mode) #main .page-head h1 { font-size: var(--ui-title-page); }
body:not(.admin-mode) #main :is(.panel-head h2,.section-title h2,.fr-module-heading h2) { font-size: var(--ui-title-section); }
body:not(.admin-mode) .primary-header { background: #ffffffed; box-shadow: 0 1px 0 #e9ecf2, 0 5px 22px -20px #273a64; }
body:not(.admin-mode) .primary-header nav button.active {
  background: var(--ui-selection); color: #3864b4; border-color: #dce6f7; box-shadow: none;
}
body:not(.admin-mode) .review-rail { border: 1px solid #e9ecf2; background: #ffffffdb; box-shadow: 0 8px 30px -26px #324d72; border-radius: 18px; }
body:not(.admin-mode) .review-chapters.diagnostic-tabs .review-chapter > button.active {
  background: var(--ui-selection); color: #3864b4; box-shadow: inset 2px 0 var(--ui-actual); font-weight: 500;
}
body:not(.admin-mode) .review-chapter > button.active small { color: var(--ui-actual); }
body:not(.admin-mode) .review-module-nav button.active { color: #3864b4; background: #f3f6fd; box-shadow: none; }
body:not(.admin-mode) .review-dimensions button.active { color: #3864b4; border-color: #e2e9f6; }
body:not(.admin-mode) .rd-report.fr-report .fr-module {
  border: 1px solid #e6eaf1; border-radius: 18px; padding: 24px 28px 20px;
  box-shadow: 0 2px 4px #24385802, 0 18px 34px -32px #253c6b36;
}
body:not(.admin-mode) .fr-module-heading { padding-bottom: 18px; border-color: #edf0f5; }
body:not(.admin-mode) .fr-module-heading > div > svg {
  color: var(--ui-actual); background: #eff4ff; border-radius: 9px; padding: 7px; width: 34px; height: 34px;
}
body:not(.admin-mode) #report-block-1 .fr-module-heading > div > svg { color: #a87035; background: #fbf4ea; }
body:not(.admin-mode) #report-block-2 .fr-module-heading > div > svg { color: #248275; background: #edf7f3; }
body:not(.admin-mode) #report-block-3 .fr-module-heading > div > svg { color: #8870b4; background: #f4f0fa; }
body:not(.admin-mode) #report-block-4 .fr-module-heading > div > svg { color: #bb5866; background: #fcf1f3; }
body:not(.admin-mode) .fr-report .fr-kpi {
  --kpi-accent: #4775d4; --kpi-wash: #edf3ff;
  grid-template-rows: 20px 68px 30px 42px; padding: 20px 19px 14px;
  border-radius: 16px; border: 1px solid #e3e9f2;
  background: linear-gradient(140deg, var(--kpi-wash), #fff 58%);
  box-shadow: inset 0 1px 0 #fff, 0 7px 18px -17px #2a406350;
}
body:not(.admin-mode) .fr-kpi::before { content: ''; position: absolute; width: 24px; height: 3px; border-radius: 3px; background: var(--kpi-accent); top: 0; left: 19px; }
body:not(.admin-mode) .fr-kpi[data-core-metric="1"] { --kpi-accent: #8870b4; --kpi-wash: #f3eefb; }
body:not(.admin-mode) .fr-kpi[data-core-metric="2"] { --kpi-accent: #258b91; --kpi-wash: #eaf7f6; }
body:not(.admin-mode) .fr-kpi[data-core-metric="3"] { --kpi-accent: #af8038; --kpi-wash: #fcf5e9; }
body:not(.admin-mode) .fr-kpi[data-core-metric="4"] { --kpi-accent: #ae718e; --kpi-wash: #fbf0f5; }
body:not(.admin-mode) .fr-kpi header { color: var(--ui-text); font-size: 12px; font-weight: 400; }
body:not(.admin-mode) .fr-kpi .fr-kpi-value { font-size: clamp(26px,1.8vw,32px); font-weight: 500; color: #293b55; letter-spacing: -.6px; }
body:not(.admin-mode) .fr-kpi .fr-kpi-row > b { font-size: 16px; font-weight: 400; color: var(--ui-text); }
body:not(.admin-mode) .fr-kpi .fr-kpi-completion > b { color: var(--ui-success); }
body:not(.admin-mode) .fr-kpi .fr-kpi-completion > b.is-below { color: var(--ui-warning); }
body:not(.admin-mode) .fr-kpi .fr-kpi-completion > b.is-empty { color: var(--ui-muted); }
body:not(.admin-mode) .chart-analysis { background: #f8faff; border: 1px solid #e8edf6; border-radius: 12px; }
body:not(.admin-mode) .chart-analysis-label { color: #5877a8; }
body:not(.admin-mode) .chart-analysis-text { font-size: 13px; line-height: 1.9; }
body:not(.admin-mode) .metric { border-color: #e4eaf3; background: linear-gradient(140deg,#f1f5fd,#fff 60%); }
body:not(.admin-mode) .metric:nth-child(3n+2) { background: linear-gradient(140deg,#f2effa,#fff 60%); }
body:not(.admin-mode) .metric:nth-child(3n) { background: linear-gradient(140deg,#edf7f5,#fff 60%); }
body:not(.admin-mode) .metric .value { color: #293b55; font-size: 30px; font-weight: 500; }
body:not(.admin-mode) .metric.featured { background: linear-gradient(120deg,#edf3ff,#fff); border-color: #dae5f8; color: var(--ui-ink); }
body:not(.admin-mode) .metric.featured :is(.label,.foot) { color: var(--ui-text); }
body:not(.admin-mode) .metric.featured::before { background: var(--ui-actual); }
body:not(.admin-mode) .metric .track i { background: var(--ui-actual); }
body:not(.admin-mode) .completion-cell > span > i { background: var(--ui-success); }
body:not(.admin-mode) .completion-cell > span > i.behind { background: #ce9161; }
body:not(.admin-mode) .mix-row { --mix-color: #5383cf; }
body:not(.admin-mode) .mix-row:nth-child(3n+2) { --mix-color: #9672ba; }
body:not(.admin-mode) .mix-row:nth-child(3n) { --mix-color: #3e9a95; }
body:not(.admin-mode) .mix-row :is(.mix-dot,.mix-track > i) { background: var(--mix-color); }
body:not(.admin-mode) :is(.positive,.core-completion.is-met) { color: var(--ui-success); fill: var(--ui-success); }
body:not(.admin-mode) .badge:not(.red):not(.warning) { background: #edf7f3; color: #248275; }
body:not(.admin-mode) .badge.red { background: #fcf0f2; color: var(--ui-danger); }
body:not(.admin-mode) .badge.warning { background: #fbf3e8; color: var(--ui-warning); }
body:not(.admin-mode) .core-trend { padding-top: 22px; padding-bottom: 18px; }
body:not(.admin-mode) .core-trend-heading h3 { font-size: 15px; font-weight: 500; }
body:not(.admin-mode) .core-trend-plot { background: linear-gradient(#fff,#fcfdff); border-radius: 12px; }
body:not(.admin-mode) .core-completion.is-below { fill: var(--ui-warning); }
body:not(.admin-mode) .core-summary-attainment b.is-below { color: var(--ui-warning); }
body:not(.admin-mode) .core-summary-attainment b.is-met { color: var(--ui-success); }
body:not(.admin-mode) .core-summary-scroll { border-radius: 12px; border-color: #e5eaf3; }
body:not(.admin-mode) .core-summary-table thead th { background: #f5f8fd !important; }
body:not(.admin-mode) .framework-card { background: linear-gradient(140deg,#f7faff,#fff 55%); border-color: #e5ebf4; }
body:not(.admin-mode) .framework-exceptions .framework-card { background: linear-gradient(140deg,#fdf7f8,#fff 55%); }
body:not(.admin-mode) .framework-card-current strong { font-size: 28px; font-weight: 500; }
body:not(.admin-mode) .framework-loss .framework-card-current strong { color: var(--ui-danger); }

/* Inverse of the SVG-to-screen scale. This also covers retained legacy charts. */
body:not(.admin-mode) svg.chart-readable text,
body:not(.admin-mode) :is(#market-insights,.presentation-market) svg.chart-readable text {
  font-family: var(--ui-font); font-size: calc(12px * var(--chart-text-scale,1));
  font-weight: 400; letter-spacing: 0;
}
body:not(.admin-mode) svg.chart-readable.framework-trend text { font-size: calc(11px * var(--chart-text-scale,1)); }
body:not(.admin-mode) :is(svg.trend,svg.monthly-chart) path { vector-effect: non-scaling-stroke; }
body:not(.admin-mode) svg.trend > path:first-of-type { stroke: var(--ui-goal); stroke-width: 1.4; }
body:not(.admin-mode) svg.trend > path:last-of-type { stroke: var(--ui-actual); stroke-width: 1.8; }
body:not(.admin-mode) svg.trend > circle { fill: var(--ui-actual); }
body:not(.admin-mode) svg.monthly-chart > path { stroke: var(--ui-goal); stroke-width: 1.4; }
body:not(.admin-mode) :is(svg.trend,svg.monthly-chart) > line { stroke: #e9edf4; }
@media(max-width:760px) {
  body:not(.admin-mode) { --ui-title-page: 22px; }
  body:not(.admin-mode) .rd-report.fr-report .fr-module { padding: 20px 16px; }
  body:not(.admin-mode) .fr-report .fr-kpi { padding-inline: 14px; }
}
@media print {
  body:not(.admin-mode) svg.chart-readable { --chart-text-scale: 1 !important; }
  body:not(.admin-mode) .fr-report .fr-kpi { padding: 12px 9px; grid-template-rows: 20px 60px 28px 40px; }
  body:not(.admin-mode) .fr-kpi .fr-kpi-value { font-size: 22px; }
  body:not(.admin-mode) .fr-kpi .fr-kpi-row > b { font-size: 14px; }
  body:not(.admin-mode) .fr-kpi header { font-size: 10px; }
}

/* Authentication is one shared surface for the report and administration. */
body .login-screen {
  min-height: 100vh;
  min-height: 100svh;
  display: grid;
  grid-template-columns: minmax(0, 1.1fr) minmax(0, 1fr);
  background: #f7f7f8;
}
body .login-screen .login-story {
  min-height: 100svh;
  padding: 60px clamp(36px, 5.2vw, 100px);
  background: radial-gradient(ellipse at 80% 110%, #42464d 0, transparent 58%), #1c1e22;
  color: #f9f9fa;
  isolation: isolate;
  justify-content: center;
}
body .login-story::after { display: none; }
body .login-story .wordmark {
  top: 54px;
  margin: 0;
  font-size: 19px;
  font-weight: 500;
  letter-spacing: .7px;
  color: #f5f5f7;
  line-height: 1.6;
}
body .login-statement { position: relative; z-index: 1; padding-bottom: 36px; }
body .login-story .edition {
  color: #b6bac3;
  font-size: 12px;
  font-weight: 400;
  letter-spacing: 3px;
  margin: 0 0 24px;
}
body .login-story h1 {
  color: #f9f9fb;
  font-size: clamp(30px, 3.05vw, 56px);
  font-weight: 500;
  line-height: 1.55;
  letter-spacing: -.9px;
  margin: 0 0 28px;
}
body .login-story p { display: block; color: #b6bac3; font-size: 13px; letter-spacing: 1px; margin: 0; }
body .login-orbit {
  position: absolute;
  z-index: -1;
  width: 660px;
  height: 660px;
  border: 1px solid #ffffff12;
  border-radius: 50%;
  right: -260px;
  bottom: -415px;
  box-shadow: 0 0 0 65px #ffffff03, 0 0 0 66px #ffffff08, 0 0 0 145px #ffffff02, 0 0 0 146px #ffffff06;
  pointer-events: none;
}
body .login-entry {
  min-width: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 64px 32px;
  background: radial-gradient(ellipse at 50% 40%, #fff 0, #fafafa 48%, #f3f3f5 100%);
}
body .login-card { width: min(100%, 360px); padding-bottom: 24px; animation: login-arrive .4s ease-out both; }
body .login-heading { margin: 0 0 36px; padding: 0; }
body .login-heading h2 { font-size: 30px; font-weight: 500; letter-spacing: -.6px; margin: 0 0 10px; }
body .login-heading p { color: #747983; font-size: 14px; margin: 0; }
body .login-screen .fs-login,
body .login-screen .login-submit {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 12px;
  position: relative;
  width: 100%;
  min-height: 54px;
  padding: 14px 20px;
  margin: 0;
  border: 1px solid #292c32;
  border-radius: 13px;
  background: #272a30;
  color: #fff;
  text-decoration: none;
  font-size: 15px;
  font-weight: 500;
  letter-spacing: .3px;
  box-shadow: 0 1px 1px #ffffff20 inset, 0 4px 7px -5px #12182140, 0 13px 22px -17px #12182160;
  transition: background .18s ease, box-shadow .18s ease, transform .18s ease;
}
body .login-screen .fs-login:hover,
body .login-screen .login-submit:hover { background: #383c44; transform: translateY(-1px); box-shadow: 0 1px 1px #ffffff20 inset, 0 12px 25px -15px #12182170; }
body .login-screen .fs-login:active,
body .login-screen .login-submit:active { transform: none; }
body .login-screen .fs-login[aria-disabled="true"] { background: #e8e9ec; color: #757a82; border-color: #e1e3e7; box-shadow: none; transform: none; cursor: not-allowed; }
body .login-entry-icon { width: 21px; height: 21px; }
body .login-arrow { position: absolute; right: 18px; width: 18px; height: 18px; opacity: .65; }
body .login-status { color: #747983; font-size: 12px; margin: 16px 0 0; }
body .login-alternative { margin-top: 28px; padding-top: 23px; border-top: 1px solid #e7e8eb; text-align: center; }
body #login-method-toggle {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  min-height: 40px;
  padding: 8px 14px;
  border: 1px solid transparent;
  border-radius: 10px;
  background: transparent;
  color: #717782;
  font-size: 13px;
  font-weight: 400;
  box-shadow: none;
}
body #login-method-toggle:hover { color: #272a30; background: #eeeff2; }
body .login-lock { width: 15px; height: 15px; }
body .login-screen :is(a, button, input):focus-visible { outline: 2px solid #8a929f; outline-offset: 4px; }
body .login-screen .login-form { padding: 0; margin: 0; max-width: none; }
body .login-form label { display: flex; flex-direction: column; gap: 8px; margin: 0 0 20px; color: #515762; font-size: 13px; }
body .login-form input { width: 100%; min-height: 50px; padding: 12px 14px; background: #ffffffb3; border: 1px solid #dfe2e7; border-radius: 11px; color: #272a30; font-size: 14px; box-shadow: 0 1px 2px #1b223503; }
body .login-form input::placeholder { color: #8a909a; }
body .login-form .error { min-height: 0; margin: 14px 0 0; font-size: 13px; }
body .login-form .error:empty { display: none; }
@keyframes login-arrive { from { opacity: 0; transform: translateY(6px); } to { opacity: 1; transform: none; } }
@media (max-width: 900px) and (min-width: 701px) {
  body .login-screen { grid-template-columns: 1fr 1fr; }
  body .login-screen .login-story { padding-inline: 30px; }
  body .login-story h1 { font-size: 29px; }
  body .login-story .wordmark { position: absolute; }
}
@media (max-width: 700px) {
  body .login-screen { grid-template-columns: 1fr; grid-template-rows: auto 1fr; }
  body .login-screen .login-story { min-height: 0; padding: 30px 28px 36px; }
  body .login-story .wordmark { position: static; font-size: 16px; margin: 0 0 42px; }
  body .login-statement { padding: 0; }
  body .login-story .edition { display: none; }
  body .login-story h1 { font-size: clamp(25px, 6.5vw, 34px); line-height: 1.5; margin-bottom: 14px; letter-spacing: -.5px; }
  body .login-story p { font-size: 11px; letter-spacing: .4px; }
  body .login-entry { padding: 38px 28px 32px; align-items: flex-start; }
  body .login-card { padding: 0; }
  body .login-heading { margin-bottom: 26px; }
  body .login-heading h2 { font-size: 25px; }
  body .login-heading p { font-size: 13px; }
  body .login-orbit { right: -425px; bottom: -545px; }
  body .login-alternative { margin-top: 22px; padding-top: 15px; }
}
@media (prefers-reduced-motion: reduce) {
  body .login-card { animation: none; }
  body .login-screen :is(.fs-login, .login-submit) { transition: none; transform: none; }
}

/* Header surfaces must obscure scrolled rows, including the report renderer's
 * transparent !important cell backgrounds and independently sticky columns. */
body table > thead,
body table > thead > tr > :is(th, td),
body .fr-report table > thead > tr > :is(th, td) {
  background: var(--ui-table-header) !important;
  opacity: 1 !important;
  backdrop-filter: none !important;
  -webkit-backdrop-filter: none !important;
}

/* Bounded report lists share the report typography and custom select controls. */
body .report-list { min-width: 0; width: 100%; }
body .report-list-slices { display: flex; flex-wrap: wrap; gap: 8px; padding: 0 0 16px; }
body .report-list-slices button { display: inline-flex; align-items: center; gap: 10px; min-height: 38px; padding: 8px 12px; border: 1px solid #e4e8ee; border-radius: 9px; background: #f9fafc; color: #596474; font-size: 12px; font-weight: 400; box-shadow: none; }
body .report-list-slices button b { font-size: 12px; font-weight: 500; font-variant-numeric: tabular-nums; }
body .report-list-slices button[aria-pressed="true"] { background: #eaf1ff; border-color: #c8daf8; color: #325f9e; box-shadow: 0 1px 2px #21487708; }
body .report-list-slices button[data-tone="risk"][aria-pressed="true"] { background: #fff0ed; border-color: #f2d1c9; color: #a34837; }
body .report-list-slices button[data-tone="warning"][aria-pressed="true"] { background: #fff6e9; border-color: #edddbf; color: #916324; }
body .report-list-slices button:disabled { opacity: .45; cursor: default; }
body .report-list-tools { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; margin: 0 0 14px; }
body .report-list-tools > .choice { flex: 0 1 150px; min-width: 125px; max-width: 220px; }
body .report-list :is(.choice-trigger,input,button) { font-family: inherit; }
body .report-list .choice-trigger { min-height: 36px; padding: 7px 10px; border-radius: 8px; font-size: 12px; font-weight: 400; background: #fff; }
body .report-list-search { display: flex; flex: 1 1 220px; align-items: center; position: relative; max-width: 350px; margin: 0; }
body .report-list-search input { box-sizing: border-box; width: 100%; min-width: 0; height: 36px; min-height: 36px; padding: 7px 38px 7px 12px; border: 1px solid #dfe5ed; border-radius: 8px; background: #fff; font-size: 12px; }
body .report-list-search button { position: absolute; right: 3px; top: 3px; display: grid; place-items: center; width: 30px; height: 30px; min-height: 30px; padding: 6px; border: 0; border-radius: 6px; background: transparent; color: #66768a; box-shadow: none; }
body .report-list-search button:hover { background: #eef3fb; color: #325f9e; }
body .report-list-search svg { width: 16px; height: 16px; stroke: currentColor; stroke-width: 1.5; fill: none; }
body .report-list-tools .report-list-reset { min-height: 34px; padding: 6px 10px; background: transparent; border-color: transparent; box-shadow: none; color: #526c8b; font-size: 12px; }
body .report-list-body > .table-wrap { max-height: 640px; margin: 0; border: 1px solid #e7ebf0; border-radius: 10px; overflow: auto; overscroll-behavior: contain; scrollbar-width: thin; }
body .report-list thead { position: sticky; top: 0; z-index: 4; }
body .report-list th { background: #f5f7fa; color: #677383; font-size: 12px; font-weight: 500; }
body .report-list td { font-size: 12px; vertical-align: middle; }
body .report-list .table-wrap table { table-layout: auto; min-width: 100%; width: max-content; }
body .report-list .table-wrap :is(th,td) { padding: 9px 12px; white-space: nowrap; }
body .report-list .product-thumb { width: 48px; height: 48px; border-radius: 8px; }
body .report-list .product-name { width: 190px; white-space: normal; }
body .report-list .product-name strong { display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; font-size: 12px; font-weight: 400; line-height: 1.6; }
body .report-list .table-wrap td .text-button { display: inline; width: auto; max-width: 170px; min-height: 24px; padding: 2px 0; white-space: normal; overflow-wrap: anywhere; }
body .report-list td > strong { display: block; max-width: 320px; white-space: normal; }
body .report-list td small.block { max-width: 180px; white-space: normal; overflow-wrap: anywhere; }
body .report-list td .text-button { font-size: 12px; }
body .report-list tbody tr:hover { background: #f6f9ff; }
body .report-list-footer { display: flex; justify-content: space-between; align-items: center; flex-wrap: wrap; gap: 12px; padding-top: 14px; }
body .report-list-count { color: #7a8492; font-size: 12px; font-variant-numeric: tabular-nums; }
body .report-list-pages { display: flex; flex-wrap: wrap; align-items: center; gap: 16px; }
body .report-list-pages > .choice { width: 112px; }
body .report-list-pages nav { display: flex; align-items: center; gap: 5px; }
body .report-list-pages nav button { width: auto; min-width: 32px; height: 32px; min-height: 32px; padding: 4px 8px; border-radius: 8px; border: 1px solid transparent; background: transparent; box-shadow: none; color: #667383; font-size: 12px; font-weight: 400; font-variant-numeric: tabular-nums; }
body .report-list-pages nav button:hover:not(:disabled) { background: #f0f4fb; }
body .report-list-pages nav button[aria-current="page"] { background: #eaf1ff; border-color: #d1def4; color: #325f9e; font-weight: 500; }
body .report-list-pages nav button:disabled { opacity: .35; cursor: default; }
body .report-list-ellipsis { width: 20px; text-align: center; color: #98a1ae; }
body .report-list-print-caption { display: none; }
body .report-list-empty { min-height: 130px; display: grid; place-items: center; color: #8a94a3; background: #f8fafc; border-radius: 10px; }
body .report-list :is(button,input):focus-visible { outline: 2px solid #668dd0; outline-offset: 2px; }
@media (max-width: 700px) {
  body .report-list-slices { gap: 6px; }
  body .report-list-slices button { padding: 7px 9px; gap: 6px; }
  body .report-list-tools > .choice { flex: 1 1 120px; max-width: none; min-width: 0; }
  body .report-list-search { flex-basis: 100%; max-width: none; }
  body .report-list-pages { gap: 10px; width: 100%; justify-content: space-between; }
  body .report-list-pages nav { gap: 2px; }
  body .report-list-pages nav button { min-width: 27px; padding: 4px 6px; }
  body .report-list-ellipsis { width: 12px; }
  body .report-list-pages > .choice { width: 100px; }
  body .report-list-body > .table-wrap { max-height: 520px; }
}
@media print {
  body .report-list :is(.report-list-tools,.report-list-slices,.report-list-footer) { display: none !important; }
  body .report-list-print-caption { display: block; font-size: 10px; color: #666; }
  body .report-list-body > .table-wrap { max-height: none !important; overflow: visible !important; border: 0; }
  body .report-list thead { position: static; display: table-header-group; }
  body .report-list, body .report-list-body, body .report-list .table-wrap { break-inside: auto; }
  body .report-list tr { break-inside: avoid; }
}

/* Separate external ASIN navigation from expanding business evidence. */
.asin-link{color:var(--ui-actual,#4775d4);font:inherit;font-weight:400;white-space:nowrap;text-decoration:none;text-underline-offset:3px}
.asin-link:hover{text-decoration:underline}.asin-link:focus-visible{outline:2px solid var(--ui-actual,#4775d4);outline-offset:3px;border-radius:3px}
.asin-actions,.report-panel-tools{display:flex;align-items:center;gap:8px}.asin-actions{white-space:nowrap}
.report-icon-button{display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;flex:0 0 32px;padding:7px;border:1px solid var(--ui-border,#e5e7eb);border-radius:9px;background:transparent;color:var(--ui-text-secondary,#667085)}
.report-icon-button:hover{color:var(--ui-actual,#4775d4);background:var(--ui-surface-subtle,#f4f6fa)}
.report-icon-button svg{width:17px;height:17px;fill:none;stroke:currentColor;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round}
.asin-actions .report-icon-button{width:26px;height:26px;flex-basis:26px;padding:5px;border-color:transparent}.asin-expand{min-width:24px;justify-content:center}
@media print{.report-panel-tools,.report-icon-button,.asin-expand{display:none!important}.asin-link{color:inherit}}

body .market-products .table-wrap :is(th,td){padding:8px 12px;white-space:nowrap}
body .market-products .product-thumb{width:48px;height:48px;min-width:48px;border-radius:10px}
body .market-products .product-name{width:260px;min-width:190px;max-width:260px;white-space:normal}
body .market-products .product-name strong{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;font-size:12px;font-weight:400;line-height:1.5}
body .market-products .table-wrap :is(th,td):nth-child(3){text-align:left}
body .market-products .asin-actions{justify-content:flex-start}
body .market-products{scroll-margin-top:100px}

/* Listing matrix: a bounded server page, using the shared compact list skin. */
body .listing-link-list .link-list-pager-top{padding:0 0 12px;border-bottom:1px solid #eef0f4;margin-bottom:12px}
body .listing-link-list .report-list-body>.table-wrap{max-height:610px}
body .listing-link-list td{height:64px;box-sizing:border-box}
body .listing-link-list .product-name{width:210px;min-width:150px}
body .listing-link-list .product-thumb{min-width:48px}
body .listing-link-list .report-list-tools>.choice{flex-basis:195px;max-width:230px}
body .listing-link-list .report-list-slices button{gap:0}
body #listing-links-panel{scroll-margin-top:98px}
body .listing-link-list .link-cost-line{display:flex;gap:10px;align-items:center;justify-content:space-between;line-height:1.7}
body .listing-link-list .link-cost-line small{font-size:11px;white-space:nowrap}
body #listing-links-panel[aria-busy=true] .report-list-body{opacity:.5;transition:opacity .15s}
body .listing-link-list .link-list-pager-bottom{justify-content:space-between}
@media(max-width:700px){body .listing-link-list .report-list-body>.table-wrap{max-height:520px}body .listing-link-list .product-name{width:175px}body .listing-link-list .report-list-tools>.choice{flex:1;max-width:none}body .listing-link-list .report-list-pages{width:auto}}
@media print{body .listing-link-list .report-list-tools,body .listing-link-list .report-list-slices,body .listing-link-list .report-list-pages{display:none!important}body .listing-link-list .report-list-body>.table-wrap{max-height:none;overflow:visible}body .listing-link-list .link-list-pager-bottom{display:none}}
/* Admin information architecture: six workspaces with permission-aware subpages. */
body.admin-mode #admin-navigation { display:flex; flex-direction:column; gap:7px; }
body.admin-mode #app > .sidebar #admin-navigation button { display:flex; align-items:center; gap:12px; padding:12px 14px; min-height:46px; text-align:left; border:1px solid transparent; }
body.admin-mode #admin-navigation button svg { width:19px; height:19px; flex:none; }
body.admin-mode #app > .sidebar #admin-navigation button.active { background:#eef3fb; border-color:#dfe7f3; color:#3864a3; }
body.admin-mode .admin-sections { display:flex; gap:5px; margin:22px clamp(20px,2.5vw,48px) 0; padding:5px; width:fit-content; max-width:calc(100% - 40px); background:#e9edf3a8; border:1px solid #e1e6ef; border-radius:13px; overflow-x:auto; }
body.admin-mode .admin-sections[hidden] { display:none; }
body.admin-mode .admin-sections button { border:0; padding:9px 17px; min-height:38px; border-radius:9px; white-space:nowrap; color:var(--ui-muted); background:transparent; box-shadow:none; }
body.admin-mode .admin-sections button.active { color:var(--ui-ink); background:#fff; box-shadow:0 2px 7px -3px #18294c30,0 0 1px #18294c20; }
body.admin-mode .admin-sections button:hover { color:var(--ui-ink); }
body.admin-mode .admin-sections button:focus-visible,body.admin-mode #admin-navigation button:focus-visible { outline:2px solid #7799cb; outline-offset:2px; }
body.admin-mode .admin-access-groups { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; }
body.admin-mode .admin-access-group { border:1px solid var(--ui-border,#e5e8ee); border-radius:12px; padding:14px; }
body.admin-mode .admin-access-group h4 { margin:0 0 10px; font-size:13px; font-weight:500; }
body.admin-mode .admin-access-group .access-checks { gap:8px 14px; }
body.admin-mode .admin-import-history { padding:18px 22px; border:1px solid #e1e6ed; border-radius:16px; background:#fff; }
body.admin-mode .admin-import-history summary { cursor:pointer; font-weight:500; }
body.admin-mode .admin-import-history[open] summary { margin-bottom:18px; }
body.admin-mode .admin-match-summary { display:flex; gap:22px; flex-wrap:wrap; padding:0 0 22px; color:var(--ui-muted); font-size:13px; }
body.admin-mode .admin-match-summary b { margin-left:5px; color:var(--ui-ink); font-size:16px; font-weight:500; font-variant-numeric:tabular-nums; }
@media(max-width:760px) {
 body.admin-mode .admin-sections { margin:14px 14px 0; max-width:calc(100% - 28px); }
 body.admin-mode .admin-sections button { padding:8px 12px; }
 body.admin-mode .admin-access-groups { grid-template-columns:1fr; }
 body.admin-mode #admin-navigation { flex-direction:row; flex-wrap:wrap; }
 body.admin-mode #app > .sidebar #admin-navigation button { flex:1 0 30%; gap:8px; padding:9px 10px; min-height:42px; }
 body.admin-mode .admin-match-summary { gap:10px 18px; }
}

body.admin-mode .admin-sections:has(.admin-tools) { overflow:visible; flex-wrap:wrap; }
body.admin-mode .admin-tools { position:relative; margin-left:6px; border-left:1px solid #d7deea; padding-left:8px; }
body.admin-mode .admin-tools summary { padding:10px 14px; font-size:13px; color:var(--ui-muted); cursor:pointer; }
body.admin-mode .admin-tools>div { position:absolute; z-index:20; right:0; top:calc(100% + 6px); width:160px; padding:6px; background:#fff; border:1px solid #e0e5ed; border-radius:12px; box-shadow:0 10px 30px -12px #25385255; }
body.admin-mode .admin-tools>div button { display:block; width:100%; text-align:left; }

body.admin-mode:is([data-admin-view="targets"],[data-admin-view="issues"]) #main .table-wrap { max-height:600px; overflow:auto; overscroll-behavior:contain; }
body.admin-mode:is([data-admin-view="targets"],[data-admin-view="issues"]) #main thead th { position:sticky; top:0; z-index:1; background:#f6f7fa; }
body.admin-mode[data-admin-view="targets"] #main .product-thumb { width:46px; height:46px; border-radius:9px; }
body.admin-mode[data-admin-view="targets"] #main td { max-width:220px; white-space:normal; overflow-wrap:anywhere; }
body.admin-mode[data-admin-view="targets"] #main td:nth-child(2) { min-width:180px; }
body.admin-mode[data-admin-view="targets"] #main td:nth-child(3) { min-width:145px; max-width:210px; }
body.admin-mode[data-admin-view="targets"] #main td:nth-child(6),body.admin-mode[data-admin-view="targets"] #main td:nth-child(5) { white-space:nowrap; }
/* Member directory and audit workspace share the same compact admin rhythm. */
/* Inventory: available supply, stock locations, then actionable ASIN evidence. */
.supply-review{display:grid;gap:20px;min-width:0}
.supply-review>.panel{margin:0;min-width:0}
.supply-overview{display:grid;grid-template-columns:minmax(220px,.85fr) 2fr;gap:26px;margin:22px 0 28px}
.supply-available{border-left:3px solid #6688c6;padding:3px 0 3px 20px}
.supply-available>span,.supply-priorities>button>span{display:block;font-size:13px;color:var(--ui-muted)}
.supply-available>strong{display:block;font-size:30px;font-weight:500;letter-spacing:-.7px;font-variant-numeric:tabular-nums;margin:9px 0;color:var(--ui-ink)}
.supply-available p{margin:0 0 9px;font-size:13px}.supply-available>small{font-size:11px;color:var(--ui-muted);line-height:1.6;display:block;max-width:250px}
.supply-priorities{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;align-items:stretch}
.supply-priorities>button{border:1px solid #e9edf3;border-radius:14px;background:#f7f9fc;text-align:left;padding:18px;box-shadow:none;transition:background .18s,border-color .18s}
.supply-priorities>button:first-child{background:#fff7f5;border-color:#f3e6e2}.supply-priorities>button:nth-child(2){background:#fffbf2;border-color:#f2ead8}.supply-priorities>button:nth-child(3){background:#f6f6fe;border-color:#e9e7f5}
.supply-priorities strong{display:block;margin:14px 0;font-size:27px;font-weight:500;font-variant-numeric:tabular-nums;color:#343c4b}
.supply-priorities small{display:block;font-size:11px;font-weight:400;color:var(--ui-muted);margin-top:5px}.supply-priorities em{display:block;font-size:11px;font-style:normal;color:var(--ui-muted);line-height:1.5}
.supply-priorities>button:disabled{opacity:.65;cursor:default}.supply-priorities>button:not(:disabled):hover{border-color:#b9c9df;background:#fff}
.supply-flow{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:24px;margin:22px 0}
.supply-stage{position:relative;text-align:left;padding:17px 18px;border:1px solid #e5e9f0;border-radius:12px;background:#fff;box-shadow:0 3px 10px -7px #24395430;min-width:0}
.supply-stage:not(:last-child):after{content:'›';position:absolute;right:-18px;top:43%;color:#b3bdca;font-size:19px;font-weight:400}
.supply-stage>span{font-size:12px;color:var(--ui-muted)}.supply-stage>strong{display:block;margin:12px 0;font-size:23px;font-weight:500;font-variant-numeric:tabular-nums;color:var(--ui-ink)}
.supply-stage small{font-size:11px;font-weight:400;margin-left:5px;color:var(--ui-muted)}.supply-stage p{margin:0;min-height:32px;font-size:11px;line-height:1.6;color:var(--ui-muted);white-space:normal}
.supply-stage:hover{border-color:#bccbe0;background:#fbfcff}.supply-stage.is-transit{border-top:2px solid #7595cb}.supply-stage.is-pending{border-top:2px solid #baabc9}
.supply-reading{display:flex;gap:18px;padding:14px 16px;background:#f6f8fb;border-radius:10px;font-size:12px;line-height:1.8;margin:15px 0;color:#647184}.supply-reading b{font-weight:500;white-space:nowrap;color:#42516a}.supply-reading p{margin:0;font-size:inherit;color:inherit}
.supply-chain-note{display:grid;grid-template-columns:auto auto 1fr;gap:12px;align-items:baseline;padding:15px 0;border-bottom:1px solid #edf0f4;font-size:12px;color:var(--ui-muted)}.supply-chain-note b{font-weight:500;color:#78674b}.supply-chain-note p{margin:0;line-height:1.7;font-size:12px}
.supply-warehouse-details{margin:18px 0}.supply-warehouse-details>summary{cursor:pointer;color:#566780;font-size:12px;padding:8px 0}.supply-warehouse-details[open]>summary{margin-bottom:12px}
.supply-pool-basis{line-height:1.6!important;white-space:normal}.supply-section-intro{font-size:12px!important;line-height:1.8;color:var(--ui-muted);margin:0 0 20px}
.supply-row-reading{min-width:260px;max-width:320px;white-space:normal}.supply-row-reading p{font-size:12px;margin:0 0 7px;line-height:1.7}.supply-row-reading small{display:block;color:var(--ui-muted);font-size:11px;line-height:1.7}
.supply-review .report-list-body>.table-wrap{max-height:550px}.supply-review td{vertical-align:middle}.supply-review .product-name{min-width:140px;max-width:190px}.supply-review .badge{white-space:normal;max-width:150px;line-height:1.7}
.supply-detail-button,.listing-research-button{display:inline-flex;align-items:center;gap:6px;border:1px solid #dce5f2;border-radius:8px;background:#f5f8fc;color:#476b9f;padding:7px 10px;font-size:12px;white-space:nowrap;text-decoration:none;line-height:1.4}
.listing-research-button{margin:10px 0 6px}.listing-research-button svg{width:14px;height:14px;fill:none;stroke:currentColor;stroke-width:1.4;stroke-linecap:round;stroke-linejoin:round}.listing-research-button:hover,.supply-detail-button:hover{background:#eaf0fa;border-color:#b8cce7}
.supply-entity .entity-header{display:flex;align-items:center;gap:18px;margin-bottom:24px}.supply-entity .entity-header h3{font-size:17px;font-weight:500;line-height:1.6;margin:7px 0}.supply-entity .entity-header p{font-size:12px;color:var(--ui-muted)}
.supply-entity-conclusion{padding:20px 22px;background:#f7f9fc;border:1px solid #e9edf4;border-radius:14px;margin-bottom:22px}.supply-entity-conclusion h3{font-size:16px;font-weight:500;margin:12px 0}.supply-entity-conclusion p{font-size:13px;line-height:1.8;margin:7px 0}.supply-entity-conclusion>div{border-top:1px solid #e4eaf3;padding-top:12px;margin-top:15px}.supply-entity-conclusion b{font-size:12px;font-weight:500;color:#526b90}
.supply-entity-facts{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1px;background:#e9edf2;border:1px solid #e9edf2;border-radius:12px;overflow:hidden}.supply-entity-facts>div{padding:18px;background:white}.supply-entity-facts span{display:block;color:var(--ui-muted);font-size:12px}.supply-entity-facts b{display:block;font-size:20px;font-weight:500;margin-top:12px;font-variant-numeric:tabular-nums}.supply-entity-facts small{margin-left:5px;font-size:11px;font-weight:400;color:var(--ui-muted)}
.supply-review :is(button,summary):focus-visible,.listing-research-button:focus-visible{outline:2px solid #7898c9;outline-offset:3px}
@media(max-width:1100px){.supply-overview{grid-template-columns:1fr}.supply-available>small{max-width:none}.supply-flow{gap:18px}.supply-stage:not(:last-child):after{right:-14px}.supply-chain-note{grid-template-columns:auto 1fr}.supply-chain-note p{grid-column:1/-1}}
@media(max-width:650px){.supply-priorities{gap:7px}.supply-priorities>button{padding:12px 9px}.supply-priorities strong{font-size:24px}.supply-priorities em{font-size:10px}.supply-flow{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.supply-stage:not(:last-child):after{display:none}.supply-stage{padding:14px}.supply-stage>strong{font-size:21px}.supply-reading{gap:12px}.supply-entity-facts{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(prefers-reduced-motion:reduce){.supply-priorities>button{transition:none}}
.member-center{width:100%;min-width:0}
.member-heading{display:flex;align-items:center;justify-content:space-between;gap:24px;margin:4px 0 24px}
.member-heading h1{margin:0;font-size:24px;font-weight:600;letter-spacing:-.5px}
.member-heading p{margin:7px 0 0;color:var(--muted,#737780);font-size:13px}
.member-tools,.member-secondary-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.member-filters{display:grid;grid-template-columns:minmax(240px,1fr) minmax(220px,.7fr) minmax(160px,.5fr);gap:12px;margin-bottom:20px;align-items:center}
.member-center .table-wrap{max-height:620px;overflow:auto}
.member-center table th{white-space:nowrap;position:sticky;top:0;background:#f7f8fa;z-index:1}
.member-center table td{height:56px;vertical-align:middle}
.member-center .fs-avatar{width:30px;height:30px;flex:0 0 30px}
.member-center .block{margin-top:5px;color:#8a9099;font-size:11px}
.member-profile{display:flex;align-items:center;flex-wrap:wrap;gap:16px;padding:6px 0 24px;border-bottom:1px solid #eceef1;margin-bottom:24px}
.member-profile>.fs-person{font-size:16px;font-weight:500}
.member-profile>span:not(.fs-person){color:#747b86;font-size:13px}
.member-secondary-actions{padding-top:22px;margin-top:10px;border-top:1px solid #eceef1}
.log-types{display:inline-flex;padding:4px;border-radius:10px;background:#f1f3f6;gap:3px;margin-bottom:22px}
.log-types button{border:0;background:transparent;box-shadow:none;color:#727b87;min-height:32px;padding:5px 18px}
.log-types button[aria-pressed="true"]{background:white;color:#202c3c;box-shadow:0 1px 5px #25324a12}
.activity-filters{display:grid;grid-template-columns:minmax(170px,1fr) minmax(180px,1fr) 160px 160px auto;gap:12px;align-items:end;margin-bottom:24px}
.activity-filters label{display:flex;flex-direction:column;gap:8px;font-size:12px;color:#717987}
.activity-filters button[type="submit"]{height:40px}
.activity-detail{display:grid;grid-template-columns:120px 1fr;gap:18px 24px;padding:12px 4px;margin:0;font-size:14px}
.activity-detail dt{color:#838b96}.activity-detail dd{margin:0;overflow-wrap:anywhere}
#modal:has(.access-page) .modal-body{padding-top:12px}
#modal .access-page{width:100%;max-width:none;padding:0}
#modal .access-page-head h1{display:none}
#modal .access-editor-head{position:static}
#modal .fs-workspace{padding:0;max-width:none}
#modal .fs-heading h1{display:none}
@media(max-width:1000px){.activity-filters{grid-template-columns:1fr 1fr}.activity-filters button[type="submit"]{justify-self:start}.member-heading{align-items:flex-start;flex-direction:column;gap:16px}}
@media(max-width:600px){.member-filters,.activity-filters{grid-template-columns:minmax(0,1fr)}.member-center .panel{padding:16px}.member-heading h1{font-size:22px}.member-tools button{font-size:12px}.activity-detail{grid-template-columns:88px 1fr;gap:16px}.member-center .table-wrap{max-height:520px}}
/* Product identity previews for image thumbnails and product-level chart marks. */
.product-preview{position:fixed;z-index:10020;width:360px;max-width:calc(100vw - 24px);box-sizing:border-box;padding:18px;background:rgba(255,255,255,.98);border:1px solid #dfe4ec;border-radius:18px;box-shadow:0 16px 48px -14px #18233940,0 2px 8px #18233912;color:var(--ui-ink,#272a30);font-family:var(--ui-font,"Review Sans","Microsoft YaHei UI",sans-serif);font-size:12px;line-height:1.5;pointer-events:none;animation:product-preview-in .12s ease-out}
.product-preview-heading{display:grid;grid-template-columns:100px minmax(0,1fr);gap:14px;align-items:start}.product-preview .product-thumb.large{width:100px;height:100px;min-width:100px;border-radius:12px;background:#fff;box-shadow:none}.product-preview .product-thumb img{width:100%;height:100%;object-fit:contain}.product-preview-heading>div:last-child{min-width:0}.product-preview-heading strong{display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;font-size:13px;font-weight:500;line-height:1.55;margin:4px 0 7px;overflow-wrap:anywhere}.product-preview-site{font-size:11px;color:var(--ui-muted,#6a727e)}.product-preview-asin{display:block;font-size:11px;font-variant-numeric:tabular-nums;overflow-wrap:anywhere;color:var(--ui-text,#505762)}.product-preview dl{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:7px 18px;border-top:1px solid #edf0f4;margin:14px 0 0;padding:12px 0 0}.product-preview dt,.product-preview dd{margin:0;font-size:12px}.product-preview dt{color:var(--ui-muted,#6a727e)}.product-preview dd{text-align:right;font-weight:500;font-variant-numeric:tabular-nums}.product-preview>p{margin:12px 0 0;font-size:10px;line-height:1.5;color:var(--ui-muted,#6a727e)}[data-product-image-preview]{cursor:zoom-in}[data-product-preview]:focus-visible{outline:2px solid #648bc6;outline-offset:3px}[data-product-preview] circle{transition:stroke .15s ease,fill-opacity .15s ease}[data-product-preview]:hover circle,circle[data-product-preview]:hover{stroke:#365c97;fill-opacity:.78}
@keyframes product-preview-in{from{opacity:0;translate:0 3px}to{opacity:1;translate:0 0}}@media(prefers-reduced-motion:reduce){.product-preview{animation:none}[data-product-preview] circle{transition:none}}@media print{.product-preview{display:none!important}}
