/* Shared analysis identity. Business state and calculations remain page-owned. */
body[data-analysis-ui] {
  --bg: #fff; --panel: #fff; --panel-strong: #f3f5f8;
  --ink: #252831; --ink-secondary: #535965; --muted: #747b88; --line: #dfe3e9; --line-soft: #edf0f4;
  --soft: #f3f5f8; --soft-strong: #e7eaf0; --canvas: #f0f2f5;
  --accent: #252831; --accent-dark: #111419; --accent-soft: #eceff4; --selected-line: #989fac;
  --brand: #176b56; --brand-soft: #edf5f1; --blue: var(--brand); --chart-main: var(--brand);
  --chart-secondary: #abb3c2; --chart-muted: #8fb6a8;
  --green: #252831; --green-soft: #f3f5f8; --positive: #252831;
  --amber: #9b631d; --amber-soft: #fff6e9; --red: #b43b46; --shadow: none;
  --blue-soft: var(--brand-soft); --danger: var(--red); --danger-soft: #fff1f2;
  --orange: var(--amber); --orange-soft: var(--amber-soft); --gold: var(--amber); --gold-soft: var(--amber-soft);
  --rose: var(--ink-secondary); --rose-soft: var(--soft); --red-soft: var(--danger-soft);
  --nfsc-nav-accent: var(--accent); --nfsc-nav-muted: var(--muted);
  --nfsc-nav-action: var(--muted); --nfsc-nav-action-surface: transparent;
  --nfsc-nav-active: var(--ink); --nfsc-nav-active-surface: transparent;
  margin: 0; background: #fff; color: var(--ink);
  font: 14px/1.55 -apple-system, BlinkMacSystemFont, "Segoe UI", "PingFang SC", "Microsoft YaHei", sans-serif;
  -webkit-font-smoothing: antialiased; letter-spacing: 0;
}
/* The same identity extends to customer, account and operations surfaces. */
body[data-ui-surface] { min-width: 320px; }
body[data-ui-surface] :is(.detail-workspace, .profile-workspace, .mapping-shell) { width: min(1120px, 100%); margin: auto; padding: 20px 18px 112px; }
body[data-ui-surface] :is(.topbar, .mapping-top) { position: relative; padding: 20px 18px; gap: 12px; background: #fff; border: 0; border-bottom: 1px solid var(--line); border-radius: 0; backdrop-filter: none; }
body[data-ui-surface] :is(.topbar h1, .mapping-title h1, .profile-head h1) { font-size: 22px; font-weight: 650; line-height: 1.35; }
body[data-ui-surface] :is(.topbar p, .mapping-title span, .panel-head span) { font-size: 12px; color: var(--muted); }
body[data-ui-surface] :is(.customer-directory-panel, .customer-query-panel, .entry-panel, .side-panel, .overview-panel, .list-panel, .customer-profile-card, .document-section, .profile-hero, .profile-section, .member-panel, .diagnostic-panel, .action-panel) { border: 0; border-radius: 0; box-shadow: none; background: #fff; padding: 20px 0; border-top: 1px solid var(--line); }
body[data-ui-surface] :is(.customer-directory-panel, .profile-hero, .customer-profile-card):first-child { border-top: 0; padding-top: 0; }
body[data-ui-surface] :is(.panel-head, .section-head, .profile-section-head) { gap: 12px; padding: 0 0 16px; border: 0; background: none; }
body[data-ui-surface] :is(.panel-head strong, .section-head strong, .profile-section-head strong) { font-size: 16px; font-weight: 600; }
body[data-ui-surface] :is(.member-summary-grid, .cache-summary-grid, .coverage-grid, .summary-grid) { gap: 0; border-block: 1px solid var(--line); background: var(--soft); margin-block: 0 20px; }
body[data-ui-surface] :is(.member-summary-grid, .cache-summary-grid, .coverage-grid, .summary-grid) > article { padding: 16px 12px; border: 0; border-right: 1px solid var(--line); border-radius: 0; box-shadow: none; background: transparent; min-width: 0; }
body[data-ui-surface] :is(.member-summary-grid, .cache-summary-grid, .coverage-grid, .summary-grid) strong { color: var(--ink); font-size: 22px; overflow-wrap: anywhere; }
body[data-ui-surface] :is(.customer-source-tabs, .document-tabs, .activity-tabs) { display: flex; gap: 22px; background: transparent; padding: 0; border: 0; border-bottom: 1px solid var(--line); border-radius: 0; overflow-x: auto; }
body[data-ui-surface] :is(.customer-source-tabs, .document-tabs, .activity-tabs) button { flex: 0 0 auto; min-height: 46px; padding: 10px 0; background: none; color: var(--muted); border: 0; border-bottom: 2px solid transparent; border-radius: 0; font-size: 13px; }
body[data-ui-surface] :is(.customer-source-tabs, .document-tabs, .activity-tabs) :is(button.active, button[aria-selected="true"], button[aria-pressed="true"]) { color: var(--ink); background: none; border-bottom-color: var(--brand); }
body[data-ui-surface] :is(.customer-card, .document-card, .member-card, .mapping-card, .activity-item, .cache-row) { border: 1px solid var(--line); border-radius: 6px; background: #fff; box-shadow: none; }
body[data-ui-surface] :is(.customer-card-meta span, .document-badge, .profile-tags span, .profile-tags .module-tag, .profile-badge, .mapping-head em, .mapping-title small, .status-row small) { color: var(--ink-secondary); background: var(--soft); border: 1px solid var(--line); border-radius: 4px; font-weight: 500; }
body[data-ui-surface] :is(.profile-avatar-fallback, .step-title b) { background: var(--brand); }
body[data-ui-surface] :is(.profile-permission-line, .document-source.ready) { color: var(--brand); background: var(--brand-soft); border-color: var(--chart-muted); border-radius: 5px; }
body[data-ui-surface] :is(.profile-tag-block, .profile-link-list a) { padding-inline: 0; }
body[data-ui-surface] .profile-link-list a { padding-right: 28px; }
body[data-ui-surface] :is(.profile-section.compact, .profile-grid div, .product-pair section) { background: transparent; border-color: var(--line); border-radius: 0; }
body[data-ui-surface] .profile-head { flex-wrap: wrap; gap: 16px; }
body[data-ui-surface] .profile-head > strong { color: var(--ink); background: var(--soft); border: 0; border-radius: 5px; font-size: 24px; overflow-wrap: anywhere; }
body[data-ui-surface] .profile-grid strong { overflow-wrap: anywhere; }
body[data-ui-surface] :is(.primary-button, .action-panel button, .mapping-actions button:not([data-action="needs_review"]):not([data-action="rejected"])) { color: #fff; background: var(--accent); border-color: var(--accent); box-shadow: none; }
body[data-ui-surface] :is(.secondary-button, .back-link, .cache-refresh-button, .member-actions button, .photo-picker span, .capture-card button, .api-auth-action-row button, .api-auth-copy-row button) { color: var(--ink); background: var(--soft); border: 1px solid var(--line); border-radius: 5px; box-shadow: none; }
body[data-ui-surface] :is(button, .photo-picker span) { min-height: 44px; }
body[data-ui-surface] :is(input[type="checkbox"], input[type="radio"]) { min-height: 0; padding: 0; accent-color: var(--brand); }
body[data-ui-surface] textarea { width: 100%; min-width: 0; padding: 12px; font: inherit; border: 1px solid var(--line); border-radius: 5px; background: var(--soft); }
body[data-ui-surface] :is(.capture-card, .optional-details, .api-auth-status-list article) { background: var(--soft); border-color: var(--line); border-radius: 6px; box-shadow: none; }
body[data-ui-surface] :is(.upstream-chips button, .mapping-card[data-status="suggested"] .mapping-head em) { color: var(--brand); background: var(--brand-soft); border-color: var(--chart-muted); }
body[data-ui-surface] .match-meter i { background: var(--brand); }
body[data-ui-surface] .match-meter b { background: var(--brand); }
body[data-ui-surface] :is(.role-badge.owner, .role-badge.admin, .log-kind) { color: var(--ink-secondary); background: var(--soft); border-color: var(--line); border-radius: 4px; }
body[data-ui-surface][data-member-center] .member-summary-grid article:nth-child(n) strong { color: var(--ink); }
body[data-ui-surface][data-member-center] .member-summary-grid article:nth-child(3) strong { color: var(--amber); }
body[data-ui-surface][data-member-center] :is(.permission-group, .analysis-control, .briefing-control) { padding: 12px 0; border: 0; background: transparent; border-radius: 0; }
body[data-ui-surface][data-member-center] :is(.permission-chip, .module-chip, .briefing-chip):has(input:checked) { background: var(--brand-soft); border-color: var(--chart-muted); border-radius: 5px; }
body[data-ui-surface][data-member-center] :is(.permission-chip, .workspace-control, .briefing-chip) input { accent-color: var(--brand); }
body[data-ui-surface] .workspace-control:disabled label { color: var(--muted); }
body[data-ui-surface] .briefing-status-dot.ready { background: var(--brand); }
body[data-ui-surface] .briefing-status-panel { background: #fff; border: 0; border-bottom: 1px solid var(--line); border-radius: 0; box-shadow: none; padding: 0 0 20px; }
body[data-ui-surface] .briefing-status-copy span { white-space: normal; overflow: visible; }
body[data-ui-surface] .account-button { width: 44px; height: 44px; background: var(--soft); border: 0; border-radius: 6px; box-shadow: none; }
body[data-analysis-ui] .account-fallback-icon { display: grid; place-items: center; }
body[data-analysis-ui] .account-fallback-icon svg { width: 22px; height: 22px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
body[data-ui-surface] :is(.diagnostic-card, .cache-maintenance-grid article, .api-auth-status-list article) { box-shadow: none; border-color: var(--line); border-radius: 6px; }
body[data-ui-surface] :is(.diagnostic-card.ok, .cache-item[data-state="ready"] .cache-state span) { color: var(--brand); background: var(--brand-soft); border-color: var(--chart-muted); }
body[data-ui-surface] .mapping-top { padding-inline: 0; }
body[data-ui-surface] .search-row > button { width: auto; min-width: 44px; }
body[data-ui-surface] :is(.map-dialog, .member-dialog) { padding: 20px; }
body[data-ui-surface] :is(.map-panel, dialog) { max-width: min(640px, calc(100vw - 40px)); max-height: 80dvh; overflow: auto; border-radius: 8px; box-shadow: 0 18px 60px #17191d26; }
body[data-ui-surface="login"] .login-shell { min-height: 100dvh; display: grid; place-items: center; padding: 32px 24px; }
body[data-ui-surface="login"] .login-card { width: min(440px, 100%); border: 0; padding: 0; box-shadow: none; border-radius: 0; gap: 28px; }
body[data-ui-surface="login"] .brand-mark { background: var(--brand); border-radius: 6px; }
body[data-ui-surface="login"] .login-title h1 { font-size: 28px; font-weight: 650; }
body[data-ui-surface="login"] .entry-card { min-height: 76px; padding: 12px 6px; border-radius: 6px; box-shadow: none; transform: none; }
body[data-ui-surface="login"] .entry-card strong { font-size: 17px; font-weight: 600; }
body[data-ui-surface="login"] .entry-card:is(:hover, .active) { color: var(--brand); border-color: var(--brand); background: var(--brand-soft); box-shadow: none; transform: none; }
body[data-ui-surface="login"] :is(.login-button, .primary-button) { background: var(--accent); border-color: var(--accent); box-shadow: none; }
body[data-analysis-ui] .vi-select-button[aria-invalid="true"] { border-color: var(--red); }
@media (max-width: 640px) {
  body[data-ui-surface] :is(.form-grid, .capture-sequence, .work-layout, .product-pair, .mapping-top) { grid-template-columns: minmax(0, 1fr); }
  body[data-ui-surface] .wide { grid-column: 1; }
  body[data-ui-surface] :is(.topbar, .mapping-top, .action-panel, .panel-head, .member-card-head, .profile-section-head) { flex-wrap: wrap; }
  body[data-ui-surface] :is(.member-summary-grid, .cache-summary-grid, .coverage-grid, .summary-grid) { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  body[data-ui-surface] :is(.member-summary-grid, .cache-summary-grid, .coverage-grid, .summary-grid) > article { border-bottom: 1px solid var(--line); }
  body[data-ui-surface] :is(.member-filters, .activity-filters, .list-filters) { display: flex; flex-wrap: wrap; gap: 8px; }
  body[data-ui-surface] :is(.member-filters, .activity-filters, .list-filters) > * { min-width: 0; max-width: 100%; }
  body[data-ui-surface] :is(.api-auth-copy-row, .api-auth-action-row) { flex-wrap: wrap; }
  body[data-ui-surface] .api-auth-copy-row input { flex: 1 1 180px; }
  body[data-ui-surface] :is(.profile-grid, .document-card dl) { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  body[data-ui-surface] :is(.document-card-head, .mapping-head) { flex-wrap: wrap; }
  body[data-ui-surface] .document-card dd { overflow-wrap: anywhere; }
  body[data-ui-surface] .customer-search { grid-template-columns: minmax(0, 1fr) auto; }
  body[data-ui-surface] .customer-search .primary-button { padding-inline: 14px; }
  body[data-ui-surface] .map-panel { width: 100%; }
}
@media (min-width: 641px) {
  body[data-ui-surface] :is(.detail-workspace, .profile-workspace, .mapping-shell) { padding: 28px 32px 120px; }
}
body[data-analysis-ui] [hidden] { display: none !important; }
body[data-analysis-ui] :is(strong, dd) { font-variant-numeric: tabular-nums; }
body[data-analysis-ui] :is(button, a, input, summary):focus-visible { outline: 2px solid var(--accent); outline-offset: 3px; }
body[data-analysis-ui] :is(.inventory-workspace, .profit-workspace, .receivable-workspace, .analysis-workspace, .workspace, .page-shell) { width: min(1120px, 100%); max-width: 1120px; margin: auto; padding: 28px 32px 120px; }
body[data-analysis-ui] :is(.inventory-heading, .profit-header, .page-header, .analysis-page-heading, .analysis-head) { display: flex; align-items: center; justify-content: space-between; min-height: 0; padding: 0 0 24px; margin: 0; border: 0; border-radius: 0; background: none; box-shadow: none; }
body[data-analysis-ui] :is(.inventory-heading, .profit-header, .page-header, .analysis-page-heading, .analysis-head) h1 { font-size: 25px; font-weight: 650; line-height: 1.3; margin: 6px 0; color: var(--ink); }
body[data-analysis-ui] :is(.profit-header, .page-header, .analysis-head) p { margin: 0; font-size: 11px; color: var(--muted); }
body[data-analysis-ui] :is(.inventory-heading, .profit-header, .page-header, .analysis-page-heading) a { font-size: 11px; font-weight: 500; color: var(--muted); }
body[data-analysis-ui] .analysis-page-heading { flex-direction: row-reverse; justify-content: flex-end; gap: 18px; }
body[data-analysis-ui] :is(.inventory-dock, .profit-filter-dock, .receivable-dock) { background: #fff; border-bottom: 1px solid var(--line); padding: 0 0 12px; max-height: none; overflow: visible; position: relative; z-index: 15; }
body[data-analysis-ui] .profit-filter-dock { position: sticky; top: 0; margin: 0; }
body[data-analysis-ui] :is(.view-tabs, .profit-view-tabs, .receivable-views, .dropoff-view-tabs) { display: flex; gap: 26px; border: 0; border-bottom: 1px solid var(--line); border-radius: 0; padding: 0; margin: 0 0 14px; background: transparent; overflow-x: auto; scrollbar-width: none; }
body[data-analysis-ui] :is(.view-tabs, .profit-view-tabs, .receivable-views, .dropoff-view-tabs) button { flex: 0 0 auto; border: 0; border-bottom: 2px solid transparent; border-radius: 0; padding: 12px 0; min-height: 46px; color: var(--muted); background: none; box-shadow: none; font-size: 14px; font-weight: 500; white-space: nowrap; }
body[data-analysis-ui] :is(.view-tabs, .profit-view-tabs, .receivable-views, .dropoff-view-tabs) :is([aria-selected="true"], [aria-pressed="true"]) { color: var(--ink); border-bottom-color: var(--accent); background: none; box-shadow: none; font-weight: 650; }
body[data-analysis-ui] :is(.company-row, .company-actions) { gap: 8px; }
body[data-analysis-ui] .company-row { margin-bottom: 4px; }
body[data-analysis-ui] :is(.company-row, .document-subtabs, .list-tabs, .dimension-tabs, .order-profit-tabs, .filter-tabs, .followup-filters, .scroll-segments) { background: transparent; border-radius: 0; box-shadow: none; }
body[data-analysis-ui] :is(.segments, .filter-tabs, .followup-filters, .order-profit-tabs, .dimension-tabs, .document-subtabs) button { border: 0; border-radius: 4px; box-shadow: none; min-height: 36px; padding: 8px 12px; font-size: 12px; color: var(--muted); background: transparent; font-weight: 500; }
body[data-analysis-ui] :is(.segments, .filter-tabs, .followup-filters, .order-profit-tabs, .dimension-tabs, .document-subtabs) :is(button[aria-pressed="true"], button.active) { background: var(--accent-soft); color: var(--accent); box-shadow: none; font-weight: 600; }
body[data-analysis-ui] :is(.order-profit-tabs, .dimension-tabs, .document-subtabs) { gap: 2px; padding: 3px; background: var(--soft); border: 0; border-radius: 5px; }
body[data-analysis-ui] :is(.order-profit-tabs, .dimension-tabs, .document-subtabs) button { padding-inline: 4px; }
body[data-analysis-ui] :is(.history-year-tabs, .year-tabs, .financial-month-tabs) { gap: 4px; margin-block: 6px; }
body[data-analysis-ui] :is(.history-year-tabs, .year-tabs, .financial-month-tabs) button { min-height: 32px; border: 0; border-radius: 3px; padding: 5px 9px; color: var(--muted); background: transparent; font-weight: 500; }
body[data-analysis-ui] :is(.history-year-tabs, .year-tabs, .financial-month-tabs) [aria-pressed="true"] { color: var(--accent); background: var(--accent-soft); border: 0; }
.vi-scope-row { display: flex; align-items: center; gap: 10px; min-width: 0; padding-block: 4px; }
.vi-scope-row > :is(.time-filter, #movementControls) { flex: 1; min-width: 0; }
body[data-analysis-ui] .vi-filter-source { display: none !important; }
body[data-analysis-ui] .vi-native-select { position: absolute !important; width: 1px !important; height: 1px !important; clip-path: inset(50%); overflow: hidden; opacity: 0; pointer-events: none; }
body[data-analysis-ui] :is(.vi-select-button, .vi-scope-button) { display: inline-flex; align-items: center; justify-content: space-between; gap: 8px; min-width: 0; min-height: 40px; padding: 8px 12px; color: var(--ink-secondary); background: var(--soft); border: 1px solid transparent; border-radius: 5px; font: inherit; font-size: 12px; text-align: left; cursor: pointer; }
.vi-select-button > span { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
body[data-analysis-ui] .vi-select-button { width: 100%; }
body[data-analysis-ui] .vi-scope-button { flex-shrink: 0; justify-content: center; }
.vi-scope-button b:empty { display: none; }
.vi-scope-button b { font-size: 11px; color: var(--accent); }
body[data-analysis-ui] .vi-scope-button.has-filters { color: var(--accent); background: var(--accent-soft); }
body[data-analysis-ui] :is(.vi-select-button, .vi-scope-button) img, .vi-filter-dialog img { width: 16px; height: 16px; flex-shrink: 0; opacity: .7; }
body[data-analysis-ui] .time-filter { border: 0; margin: 0; padding: 6px 0; background: transparent; color: var(--ink); box-shadow: none; }
body[data-analysis-ui] :is(.time-filter label > span, .time-scope-note, .time-period-stats span, .time-movement-list small) { color: var(--muted); }
body[data-analysis-ui] :is(.time-custom input, .time-movement-list button) { color: var(--ink); border-color: var(--line); }
body[data-analysis-ui] .time-period-stats > div { border-color: var(--line); }
body[data-analysis-ui] .time-period-error { margin: 12px 0 0; color: var(--red); font-size: 12px; line-height: 1.6; overflow-wrap: anywhere; }
body[data-analysis-ui] .time-filter.time-compact { display: flex; flex-wrap: wrap; align-items: center; gap: 2px 12px; }
body[data-analysis-ui] .time-compact .time-quick { display: block; flex: 0 0 auto; }
body[data-analysis-ui] .time-compact .time-quick > button { display: none; }
body[data-analysis-ui] .time-compact .time-quick > [data-time-more] { display: flex; align-items: center; justify-content: flex-start; gap: 7px; min-height: 40px; border: 0; border-radius: 5px; background: var(--soft); color: var(--ink); font-size: 13px; font-weight: 600; padding: 8px 12px; }
body[data-analysis-ui] .time-compact [data-time-more] img { display: block; width: 15px; height: 15px; opacity: .65; }
body[data-analysis-ui] .time-compact [data-time-more] > span:last-child { display: none; }
body[data-analysis-ui] .time-compact .time-filter-range { margin: 0; font-size: 11px; color: var(--muted); }
body[data-analysis-ui] .time-period-dialog, body[data-analysis-ui] .vi-filter-dialog { position: fixed; inset: 0; width: min(480px, calc(100% - 40px)); max-width: none; max-height: min(720px, 88dvh); margin: auto; padding: 0; border: 1px solid var(--line); border-radius: 8px; background: white; color: var(--ink); box-shadow: 0 20px 80px #181b2533; overflow: auto; overscroll-behavior: contain; }
body[data-analysis-ui] .time-period-dialog::backdrop, .vi-filter-dialog::backdrop { background: #17191d66; backdrop-filter: blur(3px); }
body[data-analysis-ui] .time-period-heading, .vi-sheet-heading { position: sticky; top: 0; z-index: 1; display: flex; justify-content: space-between; align-items: center; padding: 18px 20px; background: white; border-bottom: 1px solid var(--line); }
body[data-analysis-ui] .time-period-heading h2, .vi-sheet-heading h2 { margin: 0; font-size: 17px; font-weight: 650; }
body[data-analysis-ui] .time-period-heading button, .vi-sheet-heading button { display: grid; place-items: center; width: 44px; height: 44px; padding: 0; border: 0; background: var(--soft); border-radius: 4px; color: var(--muted); font-size: 22px; cursor: pointer; }
body[data-analysis-ui] .time-period-body, .vi-sheet-body { padding: 20px; }
body[data-analysis-ui] .time-period-options { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 8px; }
body[data-analysis-ui] .time-period-options button { min-height: 44px; border: 1px solid var(--line); background: white; color: var(--ink-secondary); border-radius: 4px; font-size: 12px; padding: 9px 3px; }
body[data-analysis-ui] .time-period-options [aria-pressed="true"] { background: var(--accent-soft); color: var(--accent); border-color: var(--selected-line); }
body[data-analysis-ui] .time-custom { margin-top: 18px; }
body[data-analysis-ui] .time-custom input { font-size: 12px; }
body[data-analysis-ui] .time-custom button { background: var(--accent); border-color: var(--accent); }
.vi-sheet-open { overflow: hidden; }
.vi-filter-field { padding: 0; margin: 0 0 24px; min-width: 0; border: 0; }
.vi-filter-field:last-child { margin-bottom: 0; }
.vi-filter-field legend { margin-bottom: 12px; font-size: 12px; font-weight: 600; color: var(--muted); }
.vi-filter-field input { box-sizing: border-box; width: 100%; min-height: 40px; margin: 0 0 10px; padding: 9px 12px; border: 1px solid var(--line); border-radius: 4px; background: var(--soft); font: inherit; font-size: 13px; }
.vi-options { display: grid; gap: 4px; max-height: 42dvh; overflow-y: auto; overscroll-behavior: contain; }
.vi-options-grid { grid-template-columns: repeat(2,minmax(0,1fr)); max-height: none; gap: 8px; }
.vi-options button { display: flex; align-items: center; justify-content: space-between; gap: 8px; min-height: 44px; padding: 10px 12px; border: 1px solid transparent; border-radius: 4px; color: var(--ink-secondary); background: var(--soft); font: inherit; font-size: 13px; text-align: left; cursor: pointer; }
.vi-options button span { min-width: 0; overflow-wrap: anywhere; }
.vi-options button img { visibility: hidden; }
.vi-options [aria-checked="true"] { border-color: var(--selected-line); color: var(--accent); background: var(--accent-soft); }
.vi-options [aria-checked="true"] img { visibility: visible; }
.vi-no-options { color: var(--muted); text-align: center; font-size: 12px; }
.vi-filter-note { margin: 20px 0 0; padding-top: 16px; border-top: 1px solid var(--line); color: var(--muted); font-size: 11px; line-height: 1.7; }
.vi-sheet-footer { position: sticky; bottom: 0; display: flex; justify-content: flex-end; gap: 10px; margin: 0; padding: 14px 20px max(14px, env(safe-area-inset-bottom)); background: #fff; border-top: 1px solid var(--line); }
.vi-sheet-footer button { min-height: 42px; padding: 10px 20px; border: 0; border-radius: 4px; color: var(--muted); background: var(--soft); font: inherit; font-size: 13px; cursor: pointer; }
.vi-sheet-footer [data-vi-apply] { color: white; background: var(--accent); }
body[data-analysis-ui] :is(.search-row, .dropoff-search-row) { gap: 8px; margin-top: 8px; }
body[data-analysis-ui] :is(input:not([type="date"]), .dimension-search input, .search-sort input) { border: 1px solid var(--line); background: var(--soft); border-radius: 5px; min-height: 40px; padding: 9px 12px; font-size: 13px; }
body[data-analysis-ui] :is(.search-row, .dropoff-search-row) > button { width: 40px; min-width: 40px; min-height: 40px; padding: 10px; border: 0; border-radius: 5px; background: var(--accent); color: white; }
body[data-analysis-ui] .list-tools { align-items: center; gap: 8px; }
body[data-analysis-ui] .list-tools > .vi-select-button { flex: 0 0 132px; width: 132px; }
body[data-analysis-ui] .icon-button { display: grid; place-items: center; min-height: 36px; width: 36px; height: 36px; padding: 8px; border: 0; background: var(--soft); border-radius: 4px; color: var(--muted); }
body[data-analysis-ui] .icon-button img { width: 17px; height: 17px; }
body[data-analysis-ui] :is(.section-band, .analysis-section) { border: 0; border-top: 1px solid var(--line); border-radius: 0; padding: 26px 0; box-shadow: none; background: transparent; }
body[data-analysis-ui] .section-heading h2 { font-size: 17px; font-weight: 600; }
body[data-analysis-ui] :is(.stock-band, .balance-overview, .order-profit-overview) { border: 0; border-radius: 0; background: var(--soft); color: var(--ink); box-shadow: none; }
body[data-analysis-ui] :is(.stock-main, .balance-focus, .balance-facts, .order-profit-focus, .order-profit-facts) :is(span, small, dt) { color: var(--muted); }
body[data-analysis-ui] :is(.stock-facts dt, .stock-main small) { color: var(--muted); }
body[data-analysis-ui] .stock-facts { border-color: var(--line); }
body[data-analysis-ui] :is(.balance-focus, .order-profit-focus, .balance-facts article, .order-profit-facts article) { border-color: var(--line); }
body[data-analysis-ui] .order-profit-pending strong { color: var(--amber); }
body[data-analysis-ui] :is(.order-profit-table, .dimension-chart, .dimension-table, .profit-chart, .month-table, .customer-table) { border: 0; border-radius: 0; box-shadow: none; }
body[data-analysis-ui] :is(.snapshot-card, .dimension-summary-grid article, .quality-grid article, .profit-bridge article) { border: 0; border-radius: 0; box-shadow: none; border-left: 1px solid var(--line); background: transparent; color: var(--ink); }
body[data-analysis-ui] :is(.snapshot-card.primary, .dimension-primary) :is(span, small) { color: var(--muted); }
body[data-analysis-ui] .order-profit-controls { gap: 14px; }
body[data-analysis-ui] .query-panel { border: 0; border-radius: 0; background: transparent; padding: 0 0 16px; margin: 0; box-shadow: none; }
body[data-analysis-ui] .risk-summary-panel { border: 0; border-radius: 0; background: var(--soft); padding: 20px; }
body[data-analysis-ui] .risk-summary-metrics { border: 0; }
body[data-analysis-ui] .risk-summary-metrics strong { color: var(--ink); }
body[data-analysis-ui] .dropoff-source-line { font-size: 10px; color: var(--muted); }
body[data-analysis-ui] #rangeSummary { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); }
body[data-analysis-ui] .dropoff-list-tools { align-items: center; }
body[data-analysis-ui] .dropoff-list-tools .vi-select-button { width: auto; max-width: 160px; min-height: 34px; }
body[data-analysis-ui] .followup-filters { gap: 3px; padding: 0; overflow-x: auto; }
body[data-analysis-ui] .result-card { border: 0; border-bottom: 1px solid var(--line); border-radius: 0; box-shadow: none; background: white; }
body[data-analysis-ui] .result-card-toggle { padding-inline: 0; }
body[data-analysis-ui] .result-card-detail { background: var(--soft); border-color: var(--line); }
body[data-analysis-ui] .result-customer { color: var(--accent); }
body[data-analysis-ui] .analysis-workspace { gap: 0; }
body[data-analysis-ui] .analysis-head { padding-block: 4px 20px; }
body[data-analysis-ui] .analysis-section .section-head { padding: 0 0 14px; }
body[data-analysis-ui] .section-head strong { font-size: 13px; font-weight: 600; }
body[data-analysis-ui] .module-grid { padding: 0; gap: 0 28px; }
body[data-analysis-ui] .module-card { position: relative; display: grid; grid-template-columns: 42px minmax(0,1fr) 24px; gap: 12px; align-items: center; padding: 22px 0; border: 0; border-bottom: 1px solid var(--line); border-radius: 0; background: transparent; }
body[data-analysis-ui] .module-card-head { display: contents; }
body[data-analysis-ui] .module-card-head > div { grid-column: 2; grid-row: 1; }
body[data-analysis-ui] .module-card h2 { font-size: 16px; font-weight: 600; line-height: 1.5; }
body[data-analysis-ui] .module-card small { font-size: 10px; }
body[data-analysis-ui] .module-icon { grid-column: 1; grid-row: 1; width: 38px; height: 38px; background: var(--accent-soft) !important; border: 0 !important; border-radius: 6px; }
body[data-analysis-ui] .module-icon img { width: 21px; height: 21px; opacity: .75; }
body[data-analysis-ui] .module-card p { display: none; }
body[data-analysis-ui] .module-card :is(a, button) { grid-column: 3; grid-row: 1; min-height: 40px; width: 24px; padding: 0; border: 0; border-radius: 0; background: transparent; }
body[data-analysis-ui] .module-card a::after { position: absolute; inset: 0; content: ""; }
body[data-analysis-ui] .module-card a img { width: 20px; opacity: .5; }
body[data-analysis-ui] .module-card button img { width: 20px; opacity: .2; }
body[data-analysis-ui] .module-card:has(a):hover h2 { color: var(--accent); }
body[data-analysis-ui] .analysis-planned { border-top: 0; padding-top: 24px; }
body[data-analysis-ui] .analysis-planned > summary { font-size: 12px; color: var(--muted); cursor: pointer; }
body[data-analysis-ui] .analysis-planned .module-card { opacity: .6; }
body[data-analysis-ui] .nfsc-bottom-nav { left: 0; right: 0; bottom: 0; min-height: 66px; padding: 7px 12px max(7px, env(safe-area-inset-bottom)); border: 0; border-top: 1px solid var(--line); border-radius: 0; box-shadow: none; background: #fffffff5; }
body[data-analysis-ui] .nfsc-bottom-nav :is(a, button) { color: var(--muted); font-weight: 400; min-height: 50px; border-radius: 0; background: transparent; }
body[data-analysis-ui] .nfsc-bottom-nav :is([aria-current="page"], .is-active) { color: var(--ink); background: transparent; font-weight: 650; }
body[data-analysis-ui] .nfsc-bottom-nav [data-nav-key="action"] svg { width: 23px; height: 23px; padding: 0; color: inherit !important; background: transparent !important; border-radius: 0; }
body[data-analysis-ui] .fixed-workbar { position: relative; padding: 0 0 16px; border-color: var(--line); background: #fff; backdrop-filter: none; }
body[data-analysis-ui] .search-panel { display: flex; align-items: flex-end; gap: 10px; border: 0; border-radius: 0; padding: 0; background: white; box-shadow: none; }
body[data-analysis-ui] .search-panel .search-field { flex: 1; min-width: 0; }
body[data-analysis-ui] #queryButton { display: grid; place-items: center; width: 40px; height: 40px; min-height: 40px; padding: 10px; border-radius: 5px; background: var(--accent); }
body[data-analysis-ui] #queryButton img { width: 20px; height: 20px; filter: brightness(0) invert(1); }
/* Legacy aliases remain for business modules, but component colors have one owner. */
body[data-analysis-ui] :is(.price-profile-trigger.aPurchase, .price-profile-trigger.bPurchase, .price-profile-trigger.bSales) strong { color: var(--ink); }
body[data-analysis-ui] .price-profile-trigger[aria-expanded="true"] { background: var(--soft); box-shadow: inset 0 -2px var(--ink); }
body[data-analysis-ui] :is(.chart-track, .bar-track, .dimension-chart-track) { background: var(--soft-strong); }
body[data-analysis-ui] :is(.chart-track, .bar-track, .dimension-chart-track) i:not(.negative) { background: var(--chart-main); }
body[data-analysis-ui] :is(.order-status.actual, .status-badge:not(.review):not(.unavailable):not(.pending)) { color: var(--ink); background: var(--soft); border-color: var(--line); }
body[data-analysis-ui] .order-status.estimated { background: var(--brand-soft); border-color: var(--chart-muted); }
body[data-analysis-ui] .active-scope { background: var(--brand-soft); }
body[data-analysis-ui] input:focus { border-color: var(--selected-line); box-shadow: none; }
body[data-analysis-ui] .profit-bridge .bridge-result :is(span, small) { color: var(--muted); }
body[data-analysis-ui] :is(.customer-card[open] summary, .ar-document[open] summary, .order-profit-card[open] > summary, .result-card-detail, .customer-expanded) { background: var(--soft); }
body[data-analysis-ui] :is(.order-line-head, .customer-row-head) { background: var(--soft-strong); }
body[data-analysis-ui] :is(.dimension-more, .load-more) { color: var(--ink); background: var(--soft); border-color: var(--line); }
body[data-analysis-ui] :is(.result-followup.recovered, .condition-action, .selected-customer button) { color: var(--ink); }
body[data-analysis-ui] .account-dropdown { position: fixed; inset: 78px 24px auto auto; width: max-content; min-width: min(200px, calc(100vw - 48px)); max-width: min(300px, calc(100vw - 48px)); max-height: min(64dvh, calc(100dvh - 180px)); border: 1px solid var(--line); border-radius: 8px; background: #fff; box-shadow: 0 18px 60px #17191d26; }
body[data-analysis-ui] .account-dropdown :is(a, button) { min-height: 44px; color: var(--ink); background: transparent; }
body[data-analysis-ui] .account-dropdown :is(a, button):hover { background: var(--soft); }
body[data-analysis-ui] .vi-filter-dialog[data-vi-mode="choice"] { width: max-content; min-width: min(220px, calc(100% - 48px)); max-width: min(300px, calc(100% - 48px)); }
body[data-analysis-ui] .vi-filter-dialog[data-vi-mode="choice"] .vi-sheet-heading { gap: 16px; }
body[data-analysis-ui] .vi-filter-dialog[data-vi-mode="choice"] .vi-options { grid-template-columns: 1fr; }
body[data-analysis-ui] .vi-filter-dialog[data-vi-mode="choice"] .vi-filter-field legend { display: none; }
body[data-analysis-ui] :is(.time-period-dialog, .vi-filter-dialog) { width: min(360px, calc(100% - 48px)); max-height: 74dvh; border-radius: 8px; }
body[data-analysis-ui] :is(.time-period-heading, .vi-sheet-heading) { padding: 14px 16px; }
body[data-analysis-ui] :is(.time-period-body, .vi-sheet-body) { padding: 16px; }
body[data-analysis-ui] .time-period-options { gap: 6px; }
body[data-analysis-ui] .time-period-options button { min-height: 44px; font-size: 12px; }
body[data-analysis-ui] .time-custom { display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap: 10px; }
body[data-analysis-ui] .time-custom .time-separator { display: none; }
body[data-analysis-ui] .time-custom label, body[data-analysis-ui] .time-custom input { width: 100%; min-width: 0; }
body[data-analysis-ui] .time-custom button { grid-column: 1 / -1; width: 100%; min-height: 40px; color: #fff; }
body[data-analysis-ui] .vi-options { max-height: 39dvh; }
body[data-analysis-ui] :is(.vi-select-button, .vi-scope-button, .time-compact .time-quick > [data-time-more], .vi-sheet-footer button, .time-custom button) { min-height: 44px; }
@media (max-width: 640px) {
  body[data-analysis-ui] :is(.inventory-workspace, .profit-workspace, .receivable-workspace, .analysis-workspace, .workspace, .page-shell) { padding: 20px 18px 112px; }
  body[data-analysis-ui] :is(.inventory-heading, .profit-header, .page-header, .analysis-page-heading, .analysis-head) { align-items: flex-start; gap: 12px; padding-bottom: 18px; }
  body[data-analysis-ui] :is(.inventory-heading, .profit-header, .page-header, .analysis-page-heading, .analysis-head) h1 { font-size: 22px; margin-block: 5px; }
  body[data-analysis-ui] .analysis-page-heading { flex-direction: column-reverse; gap: 0; }
  body[data-analysis-ui] :is(.view-tabs, .profit-view-tabs, .receivable-views, .dropoff-view-tabs) { gap: 24px; margin-bottom: 10px; }
  body[data-analysis-ui] .purchase-workspace .view-tabs { gap: 22px; }
  body[data-analysis-ui] :is(.inventory-dock, .profit-filter-dock, .receivable-dock) { position: static; padding-bottom: 10px; }
  body[data-analysis-ui] .profit-filter-dock { position: sticky; top: 0; margin: 0; max-height: 38dvh; overflow-y: auto; }
  body[data-analysis-ui] .snapshot-label { max-width: 42%; }
  body[data-analysis-ui] .snapshot-label small { font-size: 9px; }
  body[data-analysis-ui] .snapshot-label span { font-size: 10px; }
  body[data-analysis-ui] .vi-scope-row { gap: 8px; align-items: flex-start; }
  body[data-analysis-ui] .time-compact { display: grid; gap: 3px; }
  body[data-analysis-ui] .vi-scope-button { margin-top: 6px; min-height: 40px; padding-inline: 10px; font-size: 11px; gap: 6px; }
  body[data-analysis-ui] .vi-scope-button [data-vi-summary] { max-width: 145px; }
  body[data-analysis-ui] .time-compact .time-filter-range { font-size: 10px; }
  body[data-analysis-ui] .list-tools { flex-wrap: wrap; }
  body[data-analysis-ui] .list-tools > .vi-select-button { flex: 0 0 auto; width: auto; max-width: 100%; }
  body[data-analysis-ui] .list-tools .scroll-segments { flex-basis: 100%; }
  body[data-analysis-ui] :is(.stock-band, .balance-overview, .order-profit-overview) { margin-inline: -18px; padding-inline: 18px; }
  body[data-analysis-ui] .stock-band { padding-block: 22px; }
  body[data-analysis-ui] :is(.balance-focus, .order-profit-focus) { padding-inline: 0; }
  body[data-analysis-ui] :is(.balance-facts article, .order-profit-facts article) { padding-inline: 10px; }
  body[data-analysis-ui] .risk-summary-panel { margin-inline: -18px; padding: 20px 18px; }
  body[data-analysis-ui] .risk-summary-metrics { grid-template-columns: minmax(0, 1.8fr) repeat(2, minmax(0, 1fr)); gap: 12px; }
  body[data-analysis-ui] .risk-summary-metrics article { padding: 0; }
  body[data-analysis-ui] .risk-summary-metrics article:first-child strong { font-size: 23px; }
  body[data-analysis-ui] .risk-summary-metrics article:first-child strong[data-amount-size="medium"] { font-size: 18px; }
  body[data-analysis-ui] .risk-summary-metrics article:first-child strong[data-amount-size="long"] { font-size: 14px; }
  body[data-analysis-ui] .risk-summary-metrics article:not(:first-child) strong { font-size: 22px; }
  body[data-analysis-ui] .module-grid { grid-template-columns: 1fr; }
  body[data-analysis-ui] .analysis-head { padding-bottom: 18px; }
  body[data-analysis-ui] .module-card { padding-block: 19px; }
  body[data-analysis-ui] .time-period-dialog, body[data-analysis-ui] .vi-filter-dialog { inset: 0; width: min(360px, calc(100% - 48px)); max-height: 74dvh; margin: auto; border: 1px solid var(--line); border-radius: 8px; }
  body[data-analysis-ui] .time-period-body { padding-bottom: 16px; }
  body[data-analysis-ui] input:not([type="checkbox"]):not([type="radio"]) { font-size: 16px; min-height: 44px; }
  body[data-analysis-ui] :is(.search-row, .dropoff-search-row) > button { width: 44px; min-width: 44px; min-height: 44px; }
}
@media (max-width: 360px) {
  body[data-analysis-ui] .vi-scope-button [data-vi-summary] { max-width: 123px; }
  body[data-analysis-ui] .vi-scope-row .time-filter-range { max-width: none; }
}
@media (max-width: 380px) {
  body[data-analysis-ui] .time-custom { grid-template-columns: minmax(0, 1fr); }
}
@media (prefers-reduced-motion: reduce) { body[data-analysis-ui] * { animation: none !important; transition: none !important; scroll-behavior: auto !important; } }
