:root {
  --navy: #14213d;
  --navy-2: #1f355e;
  --blue: #2f6bff;
  --blue-dark: #1f4dbb;
  --blue-open: #eaf0ff;
  --gold: #e9c46a;
  --orange: #f4a261;
  --olive: #7f8f4f;
  --pink: #d98da3;
  --ink: #182033;
  --muted: #697386;
  --line: #dde3ed;
  --surface: #ffffff;
  --soft: #f5f7fb;
  --soft-2: #eef2f8;
  --risk: #a34242;
  --risk-open: #fff0ef;
  --shadow: 0 10px 30px rgba(20, 33, 61, .08);
  --radius: 18px;
  font-family: Inter, "PingFang SC", "Microsoft YaHei", system-ui, sans-serif;
  color: var(--ink);
  background: var(--soft);
}

.forecast-builder { padding: 22px; display: grid; gap: 18px; }
.forecast-fields { display: grid; grid-template-columns: repeat(4, minmax(150px, 1fr)); gap: 14px; }
.forecast-fields label, .forecast-scope-picker { display: grid; gap: 7px; margin: 0; padding: 0; border: 0; color: #516079; font-size: 12px; font-weight: 700; }
.forecast-field-label { display: flex; gap: 5px; align-items: center; }
.forecast-term-help { display: inline-grid; place-items: center; width: 28px; min-width: 28px; height: 28px; padding: 0; border: 0; border-radius: 7px; color: #5974a5; background: transparent; }
.forecast-term-help i { font-size: 17px; }
.forecast-term-help:hover, .forecast-term-help:focus-visible { color: #244f9c; background: #e8f0ff; outline: 2px solid transparent; }
.forecast-fields input, .forecast-fields select, .forecast-adjust-form input, .forecast-adjust-stack input, .forecast-adjust-stack select, .forecast-confirmation textarea, .forecast-settings-grid input, .forecast-version-row select { min-height: 42px; border: 1px solid #d9e2ef; border-radius: 10px; padding: 8px 11px; background: #fff; color: #14213d; }
.forecast-scope-picker { min-width: 0; }
.forecast-scope-picker legend { margin-bottom: 0; padding: 0; }
.forecast-scope-picker details { position: relative; min-width: 0; border: 1px solid #d9e2ef; border-radius: 10px; background: #fff; }
.forecast-scope-picker summary { display: flex; align-items: center; gap: 8px; min-height: 42px; padding: 8px 11px; color: var(--navy); list-style: none; cursor: pointer; }
.forecast-scope-picker summary::-webkit-details-marker { display: none; }
.forecast-scope-picker summary::after { content: "expand_more"; margin-left: auto; color: #6d7b94; font-family: "Material Symbols Rounded"; font-size: 18px; }
.forecast-scope-picker details[open] summary::after { content: "expand_less"; }
.forecast-scope-picker summary small { color: var(--muted); font-size: 10px; font-weight: 700; white-space: nowrap; }
.forecast-scope-picker-panel { position: absolute; z-index: 9; top: calc(100% + 5px); right: 0; left: 0; min-width: 240px; padding: 9px; border: 1px solid #cfdaeb; border-radius: 11px; background: #fff; box-shadow: 0 15px 32px rgba(20, 33, 61, .16); }
.selection-popover-panel { box-sizing: border-box; display: flex; flex-direction: column; max-height: min(70vh, calc(100dvh - 24px)); padding-bottom: 62px; overflow: hidden; }
.selection-popover-panel > .selection-popover-options { flex: 1 1 auto; min-height: 0; max-height: none; overflow-y: auto; overscroll-behavior: contain; }
.selection-popover-footer { position: absolute; z-index: 2; right: 9px; bottom: 9px; left: 9px; display: flex; justify-content: flex-end; gap: 7px; margin: 0; padding: 8px 2px 2px; border-top: 1px solid #e4eaf3; background: #fff; }
.selection-popover-footer .button { min-height: 38px; }
.selection-popover-stacking-root { position: relative; z-index: 30; }
.forecast-all-channel-option { align-items: flex-start !important; border-bottom: 1px solid #e4eaf3; margin-bottom: 4px; padding-bottom: 12px !important; }
.forecast-all-channel-option span { display: grid; gap: 3px; }
.forecast-all-channel-option small { color: var(--muted); font-size: 12px; line-height: 1.45; }
[data-selection-popover].opens-upward > .selection-popover-panel { top: auto; bottom: calc(100% + 5px); }
.forecast-scope-picker-actions { display: flex; gap: 6px; padding-bottom: 7px; border-bottom: 1px solid #edf1f7; }
.forecast-scope-picker-actions button { min-height: 34px; padding: 5px 10px; border: 1px solid #cbd8ef; border-radius: 8px; color: #315fac; background: #f4f7ff; font-size: 11px; font-weight: 800; }
.forecast-scope-options { display: grid; gap: 3px; max-height: 260px; margin-top: 7px; overflow-y: auto; }
.forecast-scope-options label { display: grid; grid-template-columns: 24px minmax(0, 1fr); gap: 7px; align-items: center; min-height: 40px; padding: 4px 7px; border-radius: 8px; color: var(--navy); cursor: pointer; }
.forecast-scope-options label:hover { background: #f1f5fd; }
.forecast-scope-options input { width: 18px; min-height: 18px; margin: 0; accent-color: var(--blue); }
.forecast-actions { display: flex; flex-wrap: wrap; gap: 10px; align-items: center; }
.forecast-rule { margin: 0; padding: 12px 14px; border-radius: 10px; background: #fff7e6; color: #7a4b00; }
.forecast-data-status { display: flex; flex-wrap: wrap; gap: 8px 18px; align-items: center; padding: 11px 13px; border-radius: 11px; color: #31533c; background: #edf8f0; font-size: 12px; }
.forecast-data-status.is-risk { color: var(--risk); background: var(--risk-open); }
.forecast-activity { padding: 14px; border: 1px solid #e3e9f2; border-radius: 12px; background: #fafcff; }
.forecast-activity summary, .forecast-settings-card summary { color: var(--navy); font-weight: 850; cursor: pointer; }
.forecast-activity-fields { margin-top: 14px; grid-template-columns: repeat(5, minmax(130px, 1fr)); }
.forecast-kpis { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 12px; margin: 16px 0; }
.forecast-kpis article { background: #fff; border: 1px solid #e4eaf2; border-radius: 14px; padding: 16px; display: grid; gap: 8px; }
.forecast-kpis span { color: #6d788b; font-size: 12px; }
.forecast-kpis strong { color: #14213d; font-size: 24px; }
.forecast-comparison-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; margin: 0 0 16px; }
.forecast-comparison-card { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 6px 18px; align-items: center; padding: 16px 18px; }
.forecast-comparison-card span { color: var(--muted); font-size: 12px; font-weight: 750; }
.forecast-comparison-card strong { color: #2456a5; font-size: 22px; }
.forecast-comparison-card small { grid-column: 1 / -1; color: var(--muted); }
.forecast-comparison-card.is-unavailable strong { color: #7b8494; font-size: 15px; }
.forecast-workspace-grid { display: grid; grid-template-columns: minmax(0, 1fr) minmax(290px, 360px); gap: 16px; align-items: start; }
.forecast-workspace-grid > main, .forecast-workspace-grid > aside { min-width: 0; display: grid; gap: 16px; }
.forecast-table-card { padding: 18px; min-width: 0; }
.forecast-table-card h3, .forecast-documents h3 { margin-top: 0; }
.forecast-adjust-card { padding: 20px; margin-bottom: 16px; }
.forecast-adjust-form { display: grid; grid-template-columns: 1.3fr .7fr 1.5fr auto; gap: 10px; margin-top: 14px; }
.forecast-adjust-stack { display: grid; gap: 9px; }
.forecast-adjust-stack label, .forecast-settings-grid label, .forecast-version-row label { display: grid; gap: 6px; color: #516079; font-size: 12px; font-weight: 750; }
.forecast-adjust-stack button { margin-bottom: 13px; }
.forecast-confirmation { padding: 20px; display: grid; gap: 12px; border-color: #ecd9ac; background: #fffcf5; }
.forecast-confirmation h3, .forecast-confirmation p { margin: 0; }
.forecast-confirmation label { display: flex; gap: 8px; align-items: flex-start; font-size: 12px; line-height: 1.5; }
.forecast-documents, .forecast-settings-card { margin-top: 16px; padding: 20px; }
.forecast-settings-grid { display: grid; grid-template-columns: repeat(5, minmax(130px, 1fr)); gap: 12px; margin: 16px 0; }
.forecast-toggle-grid { display: flex; flex-wrap: wrap; gap: 10px 18px; margin-bottom: 16px; }
.forecast-toggle-grid label { display: flex; gap: 7px; align-items: center; font-size: 12px; }
.forecast-settings-groups { display: grid; gap: 10px; margin: 16px 0; }
.forecast-settings-group { border: 1px solid #dce5f1; border-radius: 13px; background: #fbfcff; overflow: hidden; }
.forecast-settings-group summary { display: flex; justify-content: space-between; gap: 16px; align-items: center; padding: 14px 16px; color: var(--navy); cursor: pointer; list-style: none; }
.forecast-settings-group summary::-webkit-details-marker { display: none; }
.forecast-settings-group summary > span { display: grid; gap: 4px; }
.forecast-settings-group summary strong { font-size: 14px; }
.forecast-settings-group summary small { color: var(--muted); font-size: 11px; font-weight: 600; line-height: 1.45; }
.forecast-settings-group summary em { flex: 0 0 auto; color: #5270a8; font-size: 11px; font-style: normal; font-weight: 800; }
.forecast-settings-group[open] summary { border-bottom: 1px solid #e2e9f3; background: #f4f7fd; }
.forecast-settings-group-body { padding: 0 16px 3px; }
.forecast-settings-group-body .forecast-settings-grid { margin: 14px 0; }
.forecast-settings-segment-grid .muted { grid-column: 1 / -1; margin: 0; }
.forecast-version-row { display: flex; flex-wrap: wrap; gap: 10px; align-items: end; margin-top: 14px; }
.forecast-version-row label { min-width: min(360px, 100%); }
.forecast-builder.is-busy { opacity: .65; pointer-events: none; }
.forecast-breadcrumb { display: flex; flex-wrap: wrap; gap: 6px; align-items: center; margin: 0 0 12px; color: #718096; font-size: 11px; }
.forecast-breadcrumb button { min-height: 32px; padding: 4px 7px; border: 0; border-radius: 7px; color: #315fac; background: transparent; }
.forecast-breadcrumb button:hover, .forecast-breadcrumb button:focus-visible { background: #eaf1ff; outline: 2px solid transparent; }
.forecast-entry-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
.forecast-link-card { position: relative; display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 6px 16px; min-height: 116px; padding: 18px 52px 18px 18px; border: 1px solid #dfe6f0; border-radius: 15px; color: inherit; background: #fff; text-align: left; transition: transform var(--ui-motion-micro), border-color var(--ui-motion-micro), box-shadow var(--ui-motion-micro); }
.forecast-link-card span { color: var(--navy); font-weight: 850; }
.forecast-link-card strong { color: #315fac; font-size: 22px; }
.forecast-link-card small { grid-column: 1 / -1; color: var(--muted); line-height: 1.55; }
.forecast-link-card > i { position: absolute; right: 17px; top: 50%; color: #6483b8; transform: translateY(-50%); }
.forecast-link-card.is-risk { border-color: #efc8c3; background: #fff8f7; }
.forecast-context-banner { display: flex; flex-wrap: wrap; gap: 8px 16px; align-items: center; padding: 14px 17px; }
.forecast-context-banner strong { color: var(--navy); }
.forecast-context-banner span { flex: 1; color: var(--muted); font-size: 12px; }
.forecast-table-workspace { padding: 18px; min-width: 0; }
.forecast-table-toolbar, .forecast-pagination { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 10px 16px; align-items: center; }
.forecast-table-toolbar > div { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; }
.forecast-table-toolbar > div:first-child { display: grid; gap: 2px; }
.forecast-table-toolbar > div:first-child span { color: var(--muted); font-size: 11px; }
.forecast-filter-panel { margin: 14px 0; border: 1px solid #e0e6ef; border-radius: 12px; background: #f8faff; }
.forecast-filter-panel summary { min-height: 44px; padding: 12px 14px; color: var(--navy); font-weight: 800; cursor: pointer; }
.forecast-filter-grid { display: grid; grid-template-columns: repeat(3, minmax(190px, 1fr)); gap: 12px; padding: 0 14px 14px; }
.forecast-filter-grid > label { display: grid; gap: 6px; color: #536178; font-size: 11px; font-weight: 750; }
.forecast-filter-grid input, .forecast-filter-grid select, .forecast-pagination select { min-height: 40px; min-width: 0; border: 1px solid #d5dfed; border-radius: 9px; padding: 7px 9px; color: var(--navy); background: #fff; }
.forecast-filter-grid select[multiple] { min-height: 84px; }
.forecast-checkbox-filter { min-width: 0; margin: 0; padding: 0; border: 0; color: #536178; font-size: 11px; font-weight: 750; }
.forecast-checkbox-filter legend { margin-bottom: 6px; padding: 0; }
.forecast-checkbox-picker { position: relative; border: 1px solid #d5dfed; border-radius: 9px; background: #fff; }
.forecast-checkbox-picker > summary { display: flex; justify-content: space-between; gap: 10px; align-items: center; min-height: 40px; padding: 7px 9px; color: var(--navy); list-style: none; cursor: pointer; }
.forecast-checkbox-picker > summary::-webkit-details-marker { display: none; }
.forecast-checkbox-picker > summary::after { content: "expand_more"; color: #6d7b94; font-family: "Material Symbols Rounded"; font-size: 18px; }
.forecast-checkbox-picker[open] > summary::after { content: "expand_less"; }
.forecast-checkbox-picker > summary small { margin-left: auto; color: var(--muted); font-size: 9px; font-weight: 650; }
.forecast-checkbox-picker-panel { position: absolute; z-index: 8; top: calc(100% + 5px); left: 0; right: 0; min-width: 240px; padding: 8px; border: 1px solid #cfdaeb; border-radius: 11px; background: #fff; box-shadow: 0 15px 32px rgba(20, 33, 61, .16); }
.forecast-checkbox-picker-actions { display: flex; gap: 6px; padding-bottom: 7px; border-bottom: 1px solid #edf1f7; }
.forecast-checkbox-picker-actions button { min-height: 34px; padding: 5px 10px; border: 1px solid #cbd8ef; border-radius: 8px; color: #315fac; background: #f4f7ff; font-size: 10px; font-weight: 800; }
.forecast-checkbox-options { display: grid; gap: 3px; max-height: 260px; margin-top: 6px; overflow-y: auto; }
.forecast-checkbox-options label { display: grid; grid-template-columns: 24px minmax(0, 1fr); gap: 7px; align-items: center; min-height: 40px; padding: 4px 7px; border-radius: 8px; color: var(--navy); cursor: pointer; }
.forecast-checkbox-options label:hover { background: #f1f5fd; }
.forecast-checkbox-options input { width: 18px; min-height: 18px; margin: 0; accent-color: var(--blue); }
.forecast-checkbox-empty { padding: 12px 8px; color: var(--muted); font-weight: 650; }
.forecast-filter-pair { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 6px; }
.forecast-filter-actions { display: flex; justify-content: flex-end; padding: 0 14px 14px; }
.forecast-filter-chips { display: flex; flex-wrap: wrap; gap: 7px; min-height: 8px; margin-bottom: 10px; }
.forecast-filter-chips button { min-height: 32px; padding: 5px 9px; border: 1px solid #cbd8ef; border-radius: 999px; color: #315fac; background: #edf3ff; font-size: 10px; }
.forecast-independent-table { max-height: min(62vh, 720px); border: 1px solid #e4e9f1; border-radius: 11px; }
.forecast-independent-table table { min-width: max-content; width: 100%; }
.forecast-independent-table thead { position: sticky; top: 0; z-index: 2; background: #f7f9fc; }
.forecast-independent-table th { padding: 0; background: #f7f9fc; color: var(--navy); }
.forecast-table-heading { display: flex; gap: 2px; align-items: center; min-height: 44px; }
.forecast-table-heading > [data-sort-forecast] { display: flex; gap: 5px; align-items: center; flex: 1; min-height: 44px; padding: 9px 6px 9px 10px; border: 0; color: var(--navy); background: transparent; font-weight: 800; text-align: left; white-space: nowrap; }
.forecast-table-heading > [data-sort-forecast]:focus-visible { outline: 2px solid var(--blue); outline-offset: -2px; }
.forecast-table-heading > [data-sort-forecast] i { color: #6f7d94; font-size: 16px; }
.forecast-table-heading .forecast-term-help { margin-right: 4px; }
.forecast-formula-banner { display: grid; grid-template-columns: auto minmax(0, 1fr); gap: 7px 16px; align-items: center; margin-bottom: 14px; padding: 15px 17px; }
.forecast-formula-banner strong { color: var(--navy); }
.forecast-formula-banner span { color: var(--muted); line-height: 1.55; }
.forecast-formula-banner code { grid-column: 1 / -1; overflow-x: auto; padding: 9px 11px; border-radius: 8px; color: #214b8d; background: #eef4ff; white-space: nowrap; }
.forecast-independent-table td { max-width: 320px; }
.forecast-independent-table tbody tr.forecast-audit-row-pass { background: #edf9f0; }
.forecast-independent-table tbody tr.forecast-audit-row-fail { background: #fff1f1; }
.forecast-independent-table tbody tr.forecast-audit-row-pass:hover { background: #e3f5e8; }
.forecast-independent-table tbody tr.forecast-audit-row-fail:hover { background: #ffe8e8; }
.forecast-confidence { display: inline-flex; gap: 6px; align-items: baseline; white-space: nowrap; }
.forecast-confidence small { color: var(--muted); font-size: 9px; }
.forecast-pagination { padding-top: 13px; color: var(--muted); font-size: 11px; }
.forecast-pagination label { display: flex; gap: 6px; align-items: center; }
.forecast-empty-state { display: grid; gap: 5px; place-items: center; min-height: 130px; color: var(--muted); text-align: center; }
.forecast-empty-state strong { color: var(--navy); }
.forecast-adjustment-page { padding: 20px; }
.forecast-adjustment-page .forecast-adjust-stack { max-width: 680px; }
.forecast-factor-adjustment { display: grid; gap: 16px; }
.forecast-factor-summary { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 10px; }
.forecast-factor-summary article { min-width: 0; padding: 13px 14px; border: 1px solid #dce5f2; border-radius: 14px; background: #f8faff; }
.forecast-factor-summary span { display: block; color: #6c7890; font-size: 12px; font-weight: 750; }
.forecast-factor-summary strong { display: block; margin-top: 5px; color: var(--navy); font-size: 18px; overflow-wrap: anywhere; }
.forecast-factor-adjustment-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
.forecast-factor-adjustment-grid label { min-width: 0; padding: 13px; border: 1px solid #dce5f2; border-radius: 14px; background: #fff; }
.forecast-factor-adjustment-grid label > span { display: flex; align-items: center; gap: 4px; color: var(--navy); font-weight: 800; }
.forecast-factor-adjustment-grid small { color: #6c7890; line-height: 1.5; }
.forecast-formula-preview { min-width: 0; padding: 13px 14px; border-radius: 14px; background: #eef4ff; color: #3e5275; }
.forecast-formula-preview span { display: block; margin-bottom: 5px; font-size: 12px; font-weight: 800; }
.forecast-formula-preview code { display: block; color: var(--navy); white-space: normal; overflow-wrap: anywhere; }
.forecast-inline-adjustment, .forecast-document-actions { margin-bottom: 14px; padding: 18px; }
.forecast-row-actions { display: inline-flex; align-items: center; gap: 7px; flex-wrap: wrap; }
.forecast-delete-confirmation { display: grid; gap: 16px; min-width: 0; }
.forecast-delete-warning { display: flex; align-items: flex-start; gap: 12px; padding: 15px; border: 1px solid #efc2c2; border-radius: 14px; color: #8f272f; background: #fff3f3; }
.forecast-delete-warning i { margin-top: 1px; color: var(--risk); }
.forecast-delete-warning strong, .forecast-delete-warning span { display: block; }
.forecast-delete-warning span { margin-top: 4px; color: #80515a; font-size: 12px; line-height: 1.55; }
.forecast-delete-confirmation dl { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; margin: 0; }
.forecast-delete-confirmation dl > div { min-width: 0; padding: 13px 14px; border: 1px solid var(--line); border-radius: 13px; background: var(--soft); }
.forecast-delete-confirmation dt { color: var(--muted); font-size: 11px; font-weight: 800; }
.forecast-delete-confirmation dd { margin: 5px 0 0; color: var(--navy); font-weight: 800; overflow-wrap: anywhere; }
.forecast-delete-confirmation > p { margin: 0; padding: 12px 14px; border-left: 4px solid #d7a13b; color: #73501f; background: #fff8e9; line-height: 1.65; }
.store-channel-detect-card { display: grid; grid-template-columns: minmax(0, 1fr) minmax(220px, 320px) auto; gap: 18px; align-items: end; }
.store-channel-detect-card h2, .store-channel-confirm-card h2 { margin: 0 0 8px; }
.store-channel-detect-card p, .store-channel-confirm-card p { margin: 0; color: #687894; }
.store-channel-detect-card label, .store-channel-confirm-card label { display: grid; gap: 7px; font-weight: 750; color: #516079; }
.store-channel-detect-card input, .store-channel-confirm-card textarea { border: 1px solid #d9e2ef; border-radius: 10px; padding: 10px 12px; background: #fff; color: #14213d; }
.store-channel-candidate-workspace table select, .store-channel-candidate-workspace table input[type="date"] { min-height: 36px; border: 1px solid #d9e2ef; border-radius: 8px; padding: 6px 8px; background: #fff; color: #14213d; }
.forecast-validation-icons { display: inline-flex; flex-wrap: wrap; gap: 6px; }
.forecast-validation-icons > span { display: inline-flex; align-items: center; gap: 3px; padding: 3px 6px; border-radius: 999px; background: #f2f5fa; }
.forecast-validation-icons .material-symbols-rounded { font-size: 16px; }
.forecast-validation-icons .is-passed { color: #24724a; background: #eaf7ef; }
.forecast-validation-icons .is-failed { color: #9a4450; background: #fff0f1; }
.forecast-inline-adjustment summary { min-height: 32px; color: var(--navy); font-weight: 850; cursor: pointer; }
.forecast-inline-adjustment > p { margin: 5px 0 14px; color: var(--muted); font-size: 11px; line-height: 1.6; }
.forecast-inline-adjustment.is-readonly { display: flex; align-items: center; min-height: 82px; }
.forecast-inline-adjustment.is-readonly h2 { margin: 0 0 5px; color: var(--navy); font-size: 14px; }
.forecast-inline-adjustment.is-readonly p { margin: 0; color: var(--muted); font-size: 11px; }
.forecast-inline-adjustment-fields { grid-template-columns: minmax(260px, 1.5fr) minmax(180px, .7fr) minmax(240px, 1fr) auto; align-items: end; }
.forecast-inline-adjustment-fields button { min-height: 42px; margin: 0; }
.forecast-document-meta { display: flex; gap: 18px; align-items: center; justify-content: space-between; }
.forecast-document-meta span { color: #315fac; font-size: 10px; font-weight: 850; }
.forecast-document-meta h2 { margin: 3px 0; color: var(--navy); font-size: 20px; }
.forecast-document-meta p { margin: 0; color: var(--muted); font-size: 11px; }
.forecast-document-risk { display: flex; overflow: hidden; border: 1px solid #e1e7ef; border-radius: 12px; }
.forecast-document-risk span { display: grid; gap: 2px; min-width: 110px; padding: 9px 12px; color: var(--muted); text-align: center; }
.forecast-document-risk span + span { border-left: 1px solid #e1e7ef; }
.forecast-document-risk strong { color: var(--risk); font-size: 18px; }
.forecast-confirmation-inline { margin-top: 16px; padding: 16px; border: 1px solid #ecd9ac; border-radius: 12px; }
.forecast-confirmation-inline label:has(textarea) { display: grid; }
.forecast-document-command-row { display: flex; flex-wrap: wrap; gap: 10px; align-items: center; margin-top: 14px; }
.forecast-document-command-row p { flex: 1 1 420px; margin: 0; color: #6d5b38; font-size: 10px; line-height: 1.6; }
.forecast-order-rounding { display: flex; align-items: center; justify-content: space-between; gap: 18px; margin-top: 16px; padding: 16px; border: 1px solid #dce5f3; border-radius: 14px; background: #f7f9fc; }
.forecast-order-rounding.is-enabled { border-color: #b9dfca; background: #f0faf4; }
.forecast-order-rounding > div { min-width: 0; }
.forecast-order-rounding span { display: flex; align-items: center; gap: 4px; color: var(--muted); font-size: 10px; font-weight: 750; }
.forecast-order-rounding strong { display: block; margin-top: 4px; color: var(--navy); font-size: 13px; }
.forecast-order-rounding p { margin: 5px 0 0; color: var(--muted); font-size: 10px; line-height: 1.55; }
.forecast-procurement-exceptions { display: flex; gap: 12px; margin-top: 14px; padding: 14px 16px; border: 1px solid #efc2c2; border-radius: 14px; color: #8a2f2f; background: #fff3f3; }
.forecast-procurement-exceptions > .material-symbols-rounded { flex: 0 0 auto; font-size: 22px; }
.forecast-procurement-exceptions strong { font-size: 12px; }
.forecast-procurement-exceptions p { margin: 4px 0; font-size: 10px; line-height: 1.55; }
.forecast-procurement-exceptions ul { margin: 7px 0 0; padding-left: 18px; font-size: 10px; }
.forecast-rounding-confirm { display: flex; gap: 14px; align-items: flex-start; padding: 16px; border: 1px solid #dbe5f4; border-radius: 14px; background: #f7f9fc; }
.forecast-rounding-confirm > .material-symbols-rounded { color: var(--blue); font-size: 26px; }
.forecast-rounding-confirm strong { color: var(--navy); font-size: 13px; }
.forecast-rounding-confirm p { margin: 6px 0 0; color: var(--muted); font-size: 10px; line-height: 1.6; }
.bom-procurement-status { display: inline-flex; align-items: center; gap: 5px; max-width: 180px; padding: 4px 7px; border-radius: 999px; color: #53627a; background: #eef2f8; font-size: 9px; font-weight: 760; white-space: nowrap; }
.bom-procurement-status .material-symbols-rounded { font-size: 13px; }
.bom-procurement-status.is-direct, .bom-procurement-status.is-matched { color: #14653d; background: #e9f7ef; }
.bom-procurement-status.is-expanded { color: #2455a4; background: #eaf1ff; }
.bom-procurement-status.is-fallback, .bom-procurement-status.is-mixed { color: #8a5a13; background: #fff4dd; }
.bom-procurement-status.is-unresolved { color: #9b3434; background: #ffeded; }
.bom-expansion-path { display: block; max-width: 320px; overflow-wrap: anywhere; line-height: 1.5; }
.bom-exception-list { display: flex; flex-wrap: wrap; gap: 4px; max-width: 260px; }
.bom-exception-list em { padding: 3px 6px; border-radius: 6px; color: #9b3434; background: #ffeded; font-size: 8px; font-style: normal; font-weight: 700; }
.forecast-glossary-list { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
.forecast-glossary-list article { padding: 18px; }
.forecast-glossary-list h3 { margin: 0 0 8px; color: var(--navy); }
.forecast-glossary-list p { color: var(--muted); line-height: 1.65; }
.forecast-glossary-list dl { display: grid; grid-template-columns: 90px minmax(0, 1fr); gap: 8px; margin: 0; font-size: 11px; }
.forecast-glossary-list dt { color: #52617a; font-weight: 800; }
.forecast-glossary-list dd { margin: 0; color: var(--muted); }
.forecast-backtest-guide { display: grid; gap: 16px; margin-top: 16px; padding: 20px; border-color: #c9d8f5; background: linear-gradient(135deg, #f7faff, #ffffff); }
.forecast-backtest-guide header { display: grid; gap: 7px; }
.forecast-backtest-guide header > span { color: #2856a3; font-size: 12px; font-weight: 850; }
.forecast-backtest-guide h2, .forecast-backtest-guide p { margin: 0; }
.forecast-backtest-guide h2 { color: var(--navy); font-size: 20px; }
.forecast-backtest-guide header p { color: var(--muted); line-height: 1.65; }
.forecast-backtest-guide-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
.forecast-backtest-guide-grid article { padding: 14px; border: 1px solid #dfe8f5; border-radius: 12px; background: rgba(255,255,255,.82); }
.forecast-backtest-guide-grid h3 { margin: 0 0 7px; color: #1c3d72; font-size: 13px; }
.forecast-backtest-guide-grid p { color: #4e5f78; font-size: 12px; line-height: 1.65; }
.forecast-term-detail { display: grid; gap: 16px; }
.forecast-term-definition { margin: 0; padding: 14px; border-radius: 12px; color: #284469; background: #eef4ff; line-height: 1.7; }
.forecast-term-detail dl { display: grid; grid-template-columns: 120px minmax(0, 1fr); gap: 11px 14px; margin: 0; }
.forecast-term-detail dt { color: #52617a; font-size: 11px; font-weight: 850; }
.forecast-term-detail dd { margin: 0; color: var(--muted); font-size: 11px; line-height: 1.65; }
@media (hover: hover) and (pointer: fine) {
  .forecast-link-card:hover { transform: translateY(-1px); border-color: #afc2e0; box-shadow: 0 8px 22px rgba(42,67,109,.08); }
}

/* 商品生命周期：以五渠道状态轨道作为排产校准工作台的识别元素。 */
.lifecycle-workbench {
  margin-bottom: 16px;
  padding: 0;
  overflow: hidden;
  border-color: #ccd8eb;
  background: linear-gradient(180deg, #f8fbff 0, #fff 180px);
}
.lifecycle-workbench.is-unavailable { padding: 22px; }
.lifecycle-workbench.is-unavailable h2 { margin: 5px 0; font-size: 18px; }
.lifecycle-workbench.is-unavailable p { margin: 0; color: var(--muted); }
.lifecycle-kicker { color: #315fac; font-size: 10px; font-weight: 900; letter-spacing: .13em; text-transform: uppercase; }
.lifecycle-entry-settings { margin-bottom: 14px; padding: 20px 22px 4px; border-color: #ccd8eb; background: linear-gradient(180deg, #f8fbff, #fff); }
.lifecycle-entry-copy h2 { margin: 5px 0 7px; color: var(--navy); font-size: 19px; }
.lifecycle-entry-copy p { max-width: 820px; margin: 0; color: var(--muted); font-size: 11px; line-height: 1.7; }
.lifecycle-entry-copy p strong { color: #315fac; }
.lifecycle-entry-settings .lifecycle-detection-bar { padding: 17px 0; }
.lifecycle-entry-links { margin-bottom: 14px; }
.lifecycle-entry-links + .lifecycle-method-note { margin-top: 0; }
.lifecycle-workbench-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 24px; padding: 23px 24px 18px; border-bottom: 1px solid #dce5f1; }
.lifecycle-workbench-head h2 { margin: 5px 0 7px; color: var(--navy); font-size: clamp(19px, 2vw, 26px); letter-spacing: -.035em; }
.lifecycle-workbench-head p { max-width: 680px; margin: 0; color: #647086; font-size: 12px; line-height: 1.65; }
.lifecycle-signal { display: grid; grid-template-columns: repeat(3, minmax(72px, 1fr)); min-width: 290px; overflow: hidden; border: 1px solid #d5dfed; border-radius: 13px; background: rgba(255,255,255,.86); }
.lifecycle-signal span { display: grid; gap: 2px; padding: 10px 12px; color: #718096; font-size: 9px; text-align: center; }
.lifecycle-signal span + span { border-left: 1px solid #e1e7f0; }
.lifecycle-signal strong { color: #1f355e; font-size: 19px; font-variant-numeric: tabular-nums; }
.lifecycle-signal .is-risk { color: #9a3e3e; background: #fff5f4; }
.lifecycle-signal .is-risk strong { color: var(--risk); }
.lifecycle-conflict-banner { display: flex; align-items: center; gap: 11px; margin: 16px 24px 0; padding: 11px 13px; border: 1px solid #efc8c3; border-radius: 12px; color: #7c3434; background: #fff7f5; }
.lifecycle-conflict-banner > i { color: #bd4d45; }
.lifecycle-conflict-banner span { display: grid; gap: 2px; flex: 1; }
.lifecycle-conflict-banner small { color: #8d6260; }
.lifecycle-detection-bar { display: grid; grid-template-columns: minmax(170px, .7fr) minmax(180px, .8fr) auto minmax(240px, 1.5fr); gap: 12px; align-items: end; padding: 18px 24px; }
.lifecycle-detection-bar label, .lifecycle-drawer-form > label, .lifecycle-note-field { display: grid; gap: 6px; color: #536178; font-size: 11px; font-weight: 800; }
.lifecycle-detection-bar input, .lifecycle-drawer-form input, .lifecycle-drawer-form select, .lifecycle-drawer-form textarea { width: 100%; min-height: 44px; border: 1px solid #d5dfed; border-radius: 10px; padding: 8px 11px; color: var(--navy); background: #fff; }
.lifecycle-detection-bar > small { align-self: center; color: #768196; line-height: 1.55; }
.lifecycle-body-grid { display: grid; grid-template-columns: minmax(0, 1fr) 280px; gap: 18px; padding: 0 24px 24px; }
.lifecycle-section-head { display: flex; align-items: end; justify-content: space-between; gap: 12px; margin-bottom: 9px; }
.lifecycle-section-head h3 { margin: 0; color: var(--navy); font-size: 14px; }
.lifecycle-section-head p { margin: 3px 0 0; color: var(--muted); font-size: 10px; }
.lifecycle-section-head > span { padding: 4px 8px; border-radius: 999px; color: #315fac; background: #eaf1ff; font-size: 10px; font-weight: 850; }
.lifecycle-candidate-list { display: grid; gap: 7px; }
.lifecycle-candidate-list > button { display: grid; grid-template-columns: minmax(160px, .82fr) minmax(300px, 1.4fr) auto; gap: 16px; align-items: center; width: 100%; min-height: 62px; padding: 9px 11px 9px 15px; border: 1px solid #e0e6ef; border-radius: 12px; color: inherit; background: #fff; text-align: left; transition: border-color var(--ui-motion-micro), box-shadow var(--ui-motion-micro), transform var(--ui-motion-micro); }
.lifecycle-candidate-copy { display: grid; gap: 4px; min-width: 0; }
.lifecycle-candidate-copy strong { overflow: hidden; color: var(--navy); font-size: 12px; text-overflow: ellipsis; white-space: nowrap; }
.lifecycle-candidate-copy small { color: #7a8496; font-size: 9px; }
.lifecycle-channel-rail { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 3px; }
.lifecycle-channel-rail span { position: relative; display: grid; grid-template-columns: 7px 1fr; gap: 2px 5px; align-items: center; padding: 6px 7px; border-radius: 7px; background: #f3f6fa; }
.lifecycle-channel-rail i { grid-row: 1 / 3; width: 7px; height: 7px; border-radius: 99px; background: #aeb8c7; box-shadow: 0 0 0 3px rgba(174,184,199,.14); }
.lifecycle-channel-rail b { overflow: hidden; color: #5f6a7d; font-size: 8px; text-overflow: ellipsis; white-space: nowrap; }
.lifecycle-channel-rail small { color: #8a94a5; font-size: 8px; font-variant-numeric: tabular-nums; }
.lifecycle-channel-rail .is-stale { background: #fff5e8; }
.lifecycle-channel-rail .is-stale i { background: #e28d2e; box-shadow: 0 0 0 3px rgba(226,141,46,.14); }
.lifecycle-channel-rail .is-stale b, .lifecycle-channel-rail .is-stale small { color: #8a551e; }
.lifecycle-never-sold, .lifecycle-method-note { border: 1px solid #e1e7ef; border-radius: 12px; background: rgba(255,255,255,.78); }
.lifecycle-never-sold summary { display: flex; justify-content: space-between; padding: 12px 13px; color: var(--navy); font-size: 11px; font-weight: 850; cursor: pointer; }
.lifecycle-never-sold summary::-webkit-details-marker { display: none; }
.lifecycle-never-sold p { margin: 0; padding: 0 13px 8px; color: var(--muted); font-size: 9px; line-height: 1.55; }
.lifecycle-never-sold ul { max-height: 180px; margin: 0; padding: 0 13px 12px 27px; overflow: auto; color: #5b6678; font-size: 10px; line-height: 1.8; }
.lifecycle-method-note { margin-top: 10px; padding: 13px; }
.lifecycle-method-note strong { color: #315fac; font-size: 10px; }
.lifecycle-method-note p { margin: 5px 0 0; color: #657287; font-size: 9px; line-height: 1.65; }
.lifecycle-empty { display: grid; place-items: center; min-height: 150px; padding: 22px; border: 1px dashed #cfd9e6; border-radius: 12px; color: #718096; text-align: center; background: rgba(255,255,255,.55); }
.lifecycle-empty i { color: #6483b8; font-size: 30px; }
.lifecycle-empty p { margin: 2px 0 0; font-size: 10px; }
.lifecycle-conflict-list { padding: 0 24px 24px; }
.lifecycle-conflict-list > button { display: flex; align-items: center; gap: 10px; width: 100%; min-height: 50px; margin-top: 6px; padding: 9px 12px; border: 1px solid #efd4d0; border-radius: 10px; color: #6d3434; background: #fffafa; text-align: left; }
.lifecycle-conflict-list > button span { display: grid; gap: 3px; flex: 1; }
.lifecycle-conflict-list > button small { color: #956b68; }
.lifecycle-drawer-form { display: grid; gap: 15px; }
.lifecycle-drawer-rule { display: flex; gap: 10px; padding: 13px; border-radius: 12px; color: #31533c; background: #edf8f0; }
.lifecycle-drawer-rule.is-risk { color: #7c3434; background: #fff1ef; }
.lifecycle-drawer-rule p { display: grid; gap: 3px; margin: 0; }
.lifecycle-drawer-rule span { font-size: 10px; line-height: 1.55; opacity: .78; }
.lifecycle-channel-confirm-list { display: grid; gap: 8px; }
.lifecycle-channel-toolbar { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 11px 12px; border: 1px solid #dce5f1; border-radius: 12px; background: #f7faff; }
.lifecycle-channel-toolbar > div:first-child { display: grid; gap: 3px; color: var(--navy); }
.lifecycle-channel-toolbar small { color: var(--muted); font-size: 10px; }
.lifecycle-channel-toolbar-actions { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 8px; }
.lifecycle-channel-toolbar-actions .button { min-height: 40px; padding: 8px 14px; }
.lifecycle-channel-confirm-list > label { display: grid; grid-template-columns: auto minmax(0, 1fr) 145px; gap: 10px; align-items: center; padding: 11px; border: 1px solid #dfe6ef; border-radius: 11px; background: #fff; }
.lifecycle-channel-confirm-list input[type="checkbox"] { width: 18px; min-height: 18px; accent-color: var(--blue); }
.lifecycle-channel-confirm-list span { display: grid; gap: 3px; }
.lifecycle-channel-confirm-list small { color: var(--muted); font-size: 9px; }
.lifecycle-channel-confirm-list input[type="date"]:disabled { color: #9ba5b4; background: #f2f4f7; }
.lifecycle-note-field > span { display: flex; align-items: center; gap: 7px; }
.lifecycle-note-field em { padding: 2px 6px; border-radius: 999px; color: #a23c3c; background: #fff0f0; font-size: 9px; font-style: normal; }
.lifecycle-confirm-feedback { margin: -5px 0 0; padding: 10px 12px; border-radius: 10px; color: #7b3434; background: #fff0ef; font-size: 11px; line-height: 1.55; }
.lifecycle-confirm-feedback.is-pending { color: #31558c; background: #edf4ff; }
.lifecycle-drawer-warning { padding: 10px 12px; border-left: 3px solid #e0a440; color: #79531d; background: #fff8ea; font-size: 10px; line-height: 1.6; }
.product-lifecycle-review-gate { display: flex; align-items: center; justify-content: space-between; gap: 24px; padding: 24px; border-color: #e6c998; background: linear-gradient(135deg, #fffaf0, #fff); }
.product-lifecycle-review-gate h3 { margin: 5px 0 7px; color: var(--navy); font-size: 18px; }
.product-lifecycle-review-gate p { max-width: 760px; margin: 0; color: #6f604c; line-height: 1.7; }
.product-lifecycle-review { display: grid; gap: 16px; }
.product-lifecycle-review-list { display: grid; gap: 10px; }
.product-lifecycle-review fieldset { display: grid; grid-template-columns: 1fr 1fr; gap: 10px 12px; margin: 0; padding: 14px; border: 1px solid #dce4ef; border-radius: 12px; }
.product-lifecycle-review legend { display: flex; align-items: baseline; justify-content: space-between; gap: 12px; width: 100%; padding: 0 4px; color: var(--navy); }
.product-lifecycle-review legend span { color: var(--muted); font-size: 10px; }
.product-lifecycle-review fieldset > p { grid-column: 1 / -1; margin: 0; color: var(--muted); font-size: 10px; line-height: 1.6; }
.product-lifecycle-review fieldset > label { display: flex; align-items: center; gap: 8px; min-height: 44px; padding: 9px 11px; border: 1px solid #e0e6ef; border-radius: 9px; color: #33435f; background: #f9fbfe; }
.product-lifecycle-review input[type="radio"] { width: 18px; height: 18px; accent-color: var(--blue); }
@media (hover: hover) and (pointer: fine) {
  .lifecycle-candidate-list > button:hover { transform: translateY(-1px); border-color: #afc2e0; box-shadow: 0 8px 18px rgba(42,67,109,.08); }
}
@media (max-width: 900px) {
  .forecast-fields, .forecast-kpis, .forecast-comparison-grid, .forecast-adjust-form, .forecast-activity-fields, .forecast-settings-grid, .forecast-workspace-grid, .forecast-entry-grid, .forecast-glossary-list, .forecast-backtest-guide-grid { grid-template-columns: 1fr; }
  .store-channel-detect-card { grid-template-columns: 1fr; }
  .forecast-filter-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .forecast-actions .button { width: 100%; justify-content: center; }
  .forecast-data-status { display: grid; }
  .forecast-workspace-grid > aside { order: -1; }
  .forecast-inline-adjustment-fields { grid-template-columns: 1fr 1fr; }
  .forecast-document-meta { align-items: flex-start; }
  .lifecycle-workbench-head { display: grid; padding: 19px 16px 15px; }
  .lifecycle-signal { min-width: 0; width: 100%; }
  .lifecycle-conflict-banner { margin: 12px 16px 0; }
  .lifecycle-detection-bar { grid-template-columns: 1fr 1fr; padding: 15px 16px; }
  .lifecycle-detection-bar > small { grid-column: 1 / -1; }
  .lifecycle-body-grid { grid-template-columns: 1fr; padding: 0 16px 18px; }
  .lifecycle-candidate-list > button { grid-template-columns: minmax(0, 1fr) auto; }
  .lifecycle-channel-rail { grid-column: 1 / -1; grid-row: 2; }
  .lifecycle-conflict-list { padding: 0 16px 18px; }
}
@media (max-width: 760px) {
  .forecast-breadcrumb button { min-height: 44px; }
  #detailDrawerClose { min-width: 44px; }
  .forecast-term-help { width: 44px; min-width: 44px; height: 44px; }
  .forecast-table-workspace { padding: 13px; }
  .forecast-table-toolbar > div, .forecast-table-toolbar .button { width: 100%; }
  .forecast-filter-grid { grid-template-columns: 1fr; }
  .forecast-filter-pair { grid-template-columns: 1fr; }
  .forecast-independent-table { max-height: none; }
  .forecast-pagination { justify-content: flex-start; }
  .forecast-pagination button { min-height: 44px; }
  .forecast-link-card { min-height: 104px; }
  .forecast-term-detail dl { grid-template-columns: 1fr; gap: 4px; }
  .forecast-row-actions { width: 100%; }
  .forecast-row-actions .button { flex: 1; min-height: 44px; justify-content: center; }
  .forecast-delete-confirmation dl { grid-template-columns: 1fr; }
  .forecast-term-detail dd { margin-bottom: 9px; }
  .forecast-inline-adjustment-fields, .forecast-document-meta { display: grid; grid-template-columns: 1fr; }
  .forecast-document-risk { width: 100%; }
  .forecast-document-risk span { flex: 1; min-width: 0; }
  .forecast-document-command-row .button { width: 100%; justify-content: center; }
  .forecast-order-rounding { align-items: stretch; flex-direction: column; }
  .forecast-order-rounding .button { width: 100%; justify-content: center; }
  .product-lifecycle-review-gate { display: grid; padding: 18px; }
  .product-lifecycle-review-gate .button { width: 100%; min-height: 44px; }
  .product-lifecycle-review fieldset { grid-template-columns: 1fr; }
  .product-lifecycle-review fieldset > p { grid-column: 1; }
  .lifecycle-conflict-banner { align-items: flex-start; flex-wrap: wrap; }
  .lifecycle-conflict-banner .button { width: 100%; }
  .lifecycle-detection-bar { grid-template-columns: 1fr; }
  .lifecycle-detection-bar > small { grid-column: auto; }
  .lifecycle-channel-rail { overflow-x: auto; grid-template-columns: repeat(5, minmax(82px, 1fr)); padding-bottom: 2px; }
  .lifecycle-channel-confirm-list > label { grid-template-columns: auto minmax(0, 1fr); }
  .lifecycle-channel-confirm-list input[type="date"] { grid-column: 1 / -1; }
}

* { box-sizing: border-box; }
[hidden] { display: none !important; }
html, body { margin: 0; min-height: 100%; background: var(--soft); }
body { min-height: 100vh; }
button, select, input, textarea { font: inherit; }
button { cursor: pointer; }

.boot-screen {
  min-height: 100vh; display: grid; place-content: center; text-align: center; color: var(--navy);
}
.boot-mark, .brand-mark {
  display: grid; place-items: center; background: var(--blue); color: white; font-family: Georgia, serif;
  font-weight: 700; border-radius: 14px;
}
.boot-mark { width: 62px; height: 62px; margin: 0 auto 16px; font-size: 38px; box-shadow: var(--shadow); }
.boot-screen p { color: var(--muted); }

.auth-view { min-height: 100vh; display: grid; grid-template-columns: minmax(0, 1.12fr) minmax(430px, .88fr); background: white; }
.auth-hero {
  position: relative; isolation: isolate; overflow: hidden; padding: clamp(36px, 6vw, 88px);
  display: flex; flex-direction: column; justify-content: space-between; color: white;
  background-color: #14213d;
  background-image: url("./assets/glass-atmosphere-v1.png");
  background-position: center;
  background-size: cover;
  background-blend-mode: soft-light;
}
.auth-hero::before, .auth-hero::after { content: none; }
.auth-brand { display: flex; align-items: center; gap: 12px; font-size: 20px; letter-spacing: .04em; }
.auth-brand span { display: grid; place-items: center; width: 44px; height: 44px; border-radius: 13px; background: var(--blue); font: 700 28px Georgia, serif; }
.auth-brand-copy { display: grid; gap: 2px; }
.auth-brand-version { color: #a9bce0; font-size: 9px; font-weight: 800; letter-spacing: .12em; line-height: 1.25; }
.auth-kicker { display: inline-block; margin-bottom: 16px; color: #a9bce0; font-size: 12px; font-weight: 800; letter-spacing: .16em; }
.auth-hero h1 { max-width: 680px; margin: 0; font-size: clamp(34px, 4.6vw, 66px); line-height: 1.12; letter-spacing: -.055em; }
.auth-hero p { max-width: 590px; margin: 22px 0 0; color: #c8d3e8; font-size: 15px; line-height: 1.8; }
.auth-trust { display: flex; flex-wrap: wrap; gap: 9px; }
.auth-trust span { padding: 7px 10px; border: 1px solid rgba(255,255,255,.15); border-radius: 999px; color: #dce5f5; background: rgba(255,255,255,.06); font-size: 10px; font-weight: 750; }
.auth-panel { display: grid; place-items: center; padding: 34px; background: #f7f9fd; }
.auth-panel-inner { width: min(440px, 100%); padding: 32px; border: 1px solid var(--line); border-radius: 24px; background: white; box-shadow: 0 28px 70px rgba(20,33,61,.11); }
.auth-tabs { display: grid; grid-template-columns: 1fr 1fr; gap: 4px; margin-bottom: 27px; padding: 4px; border-radius: 12px; background: var(--soft); }
.auth-tab { border: 0; border-radius: 9px; padding: 9px; color: var(--muted); background: transparent; font-size: 12px; font-weight: 800; }
.auth-tab.active { color: white; background: var(--navy); box-shadow: 0 7px 18px rgba(20,33,61,.18); }
.auth-form { display: grid; gap: 15px; }
.auth-form h2 { margin: 6px 0 0; color: var(--navy); font-size: 24px; letter-spacing: -.025em; }
.auth-form > div > p { margin: 7px 0 0; color: var(--muted); font-size: 11px; }
.auth-eyebrow { color: var(--blue); font-size: 9px; font-weight: 900; letter-spacing: .17em; }
.auth-form label { display: grid; gap: 7px; color: #48536a; font-size: 11px; font-weight: 750; }
.auth-form input { width: 100%; height: 44px; }
.auth-submit { width: 100%; min-height: 44px; margin-top: 2px; }
.auth-message { min-height: 18px; margin: -4px 0 0; color: var(--risk); font-size: 10px; line-height: 1.5; }
.auth-message.success { color: #276747; }
.auth-security { margin: 19px 0 0; padding-top: 16px; border-top: 1px solid var(--line); color: var(--muted); font-size: 9px; line-height: 1.6; text-align: center; }

.app-shell { min-height: 100vh; display: grid; grid-template-columns: 244px minmax(0, 1fr); }
.sidebar {
  position: sticky; top: 0; height: 100vh; padding: 24px 16px; background: var(--navy); color: white;
  display: flex; flex-direction: column; z-index: 20;
}
.brand { display: flex; align-items: center; gap: 12px; padding: 0 10px 24px; }
.brand-mark { width: 42px; height: 42px; font-size: 28px; border-radius: 12px; }
.brand strong { display: block; font-size: 18px; letter-spacing: .04em; }
.brand span { display: block; margin-top: 2px; color: #b8c5df; font-size: 12px; }
.brand-version { display: block; margin-top: 5px; color: #8198c3; font-size: 8px; font-weight: 800; letter-spacing: .1em; line-height: 1.2; font-variant-numeric: tabular-nums; }
nav { display: grid; gap: 3px; overflow-y: auto; padding-right: 2px; }
.nav-item {
  border: 0; border-radius: 10px; padding: 9px 12px; background: transparent; color: #cbd5e9;
  text-align: left; display: flex; align-items: center; gap: 12px; transition: .18s ease;
}
.nav-item span { font-size: 10px; font-variant-numeric: tabular-nums; color: #7f91b6; }
.nav-item:hover { background: rgba(255, 255, 255, .07); color: white; }
.nav-item.active { background: var(--blue); color: white; box-shadow: 0 8px 22px rgba(47, 107, 255, .28); }
.nav-item.active span { color: #dfe8ff; }
.privacy-note { margin-top: auto; padding: 14px 12px; border-top: 1px solid rgba(255,255,255,.12); display: flex; align-items: center; gap: 10px; }
.privacy-note strong, .privacy-note small { display: block; }
.privacy-note strong { font-size: 12px; }
.privacy-note small { color: #aebdd8; margin-top: 2px; }
.status-dot { width: 9px; height: 9px; border-radius: 50%; background: var(--gold); box-shadow: 0 0 0 5px rgba(233,196,106,.12); }

.main { min-width: 0; }
.topbar {
  height: 82px; padding: 0 30px; background: rgba(255,255,255,.94); border-bottom: 1px solid var(--line);
  display: flex; align-items: center; justify-content: space-between; gap: 20px; position: sticky; top: 0; z-index: 15;
  backdrop-filter: blur(10px);
}
.top-title { display: flex; align-items: center; gap: 10px; }
.top-title h1 { margin: 0; font-size: 21px; color: var(--navy); }
.top-title p { margin: 4px 0 0; color: var(--muted); font-size: 12px; }
.top-actions { display: flex; align-items: center; gap: 10px; }
.account-menu { position: relative; }
.account-button { min-width: 176px; height: 46px; padding: 5px 9px; border: 1px solid var(--line); border-radius: 12px; display: grid; grid-template-columns: 32px minmax(0,1fr) auto; align-items: center; gap: 8px; color: var(--navy); background: white; text-align: left; }
.account-button > span:first-child { display: grid; place-items: center; width: 32px; height: 32px; border-radius: 10px; color: white; background: var(--blue); font-size: 11px; font-weight: 900; }
.account-button strong, .account-button small { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.account-button strong { font-size: 11px; }
.account-button small { margin-top: 2px; color: var(--muted); font-size: 8px; }
.account-button i { color: var(--muted); font-style: normal; }
.account-dropdown { position: absolute; right: 0; top: calc(100% + 8px); z-index: 25; width: 230px; padding: 9px; border: 1px solid var(--line); border-radius: 13px; background: white; box-shadow: var(--shadow); }
.account-dropdown > div { padding: 9px 10px 11px; border-bottom: 1px solid var(--line); }
.account-dropdown strong, .account-dropdown small { display: block; }
.account-dropdown strong { color: var(--navy); font-size: 11px; }
.account-dropdown small { margin-top: 5px; color: var(--muted); font-size: 9px; line-height: 1.45; }
.account-dropdown button { width: 100%; margin-top: 7px; padding: 9px 10px; border: 0; border-radius: 9px; color: var(--risk); background: var(--risk-open); text-align: left; font-size: 10px; font-weight: 800; }
.account-dropdown button.neutral { color: var(--navy); background: var(--soft); }
.button {
  border: 1px solid transparent; border-radius: 10px; padding: 9px 14px; font-weight: 650; font-size: 13px; transition: .16s ease;
}
.button:hover { transform: translateY(-1px); }
.button:active { transform: scale(.96); }
.button.primary { color: white; background: var(--blue); }
.button.dark { color: white; background: var(--navy); }
.button.ghost { color: var(--navy); background: white; border-color: var(--line); }
.button.warning { color: #7c4d00; background: #fff4db; border-color: #f4d28b; }
.button.danger { color: var(--risk); background: var(--risk-open); border-color: #efb7bd; }
.button.danger:hover { border-color: var(--risk); box-shadow: 0 5px 14px rgba(173, 45, 58, .12); }
.button:disabled { opacity: .5; cursor: not-allowed; transform: none; }
.icon-button { border: 0; background: transparent; font-size: 20px; }

.filter-bar {
  margin: 22px 30px 0; padding: 14px 16px; background: white; border: 1px solid var(--line); border-radius: 14px;
  display: flex; align-items: end; gap: 12px; flex-wrap: wrap; box-shadow: 0 5px 18px rgba(20,33,61,.04);
}
.filter-bar label, .field { display: grid; gap: 5px; color: var(--muted); font-size: 11px; font-weight: 600; }
select, input[type="text"], input[type="search"], input[type="number"], input[type="date"] {
  min-width: 136px; height: 37px; border: 1px solid var(--line); border-radius: 9px; background: white; color: var(--ink); padding: 0 10px; outline: none;
}
select:focus, input:focus { border-color: var(--blue); box-shadow: 0 0 0 3px rgba(47,107,255,.1); }
.badge { display: inline-flex; align-items: center; min-height: 30px; padding: 5px 10px; border-radius: 999px; font-size: 11px; font-weight: 700; }
.badge.warning { color: #805300; background: #fff3d5; }
.badge.good { color: var(--blue-dark); background: var(--blue-open); }
.badge.risk { color: var(--risk); background: var(--risk-open); }
.filter-range-note { align-self: center; color: var(--muted); font-size: 10px; line-height: 1.45; }

.notice { margin: 16px 30px 0; padding: 12px 14px; border-radius: 10px; background: #fff4db; color: #704a00; border: 1px solid #f3d28b; font-size: 13px; }
.content { padding: 22px 30px 44px; }
.page-head { display: flex; align-items: end; justify-content: space-between; gap: 20px; margin-bottom: 16px; }
.page-head h2 { margin: 0; color: var(--navy); font-size: 18px; }
.page-head p { margin: 5px 0 0; color: var(--muted); font-size: 12px; max-width: 760px; line-height: 1.6; }
.page-controls { display: flex; gap: 10px; align-items: end; flex-wrap: wrap; }
.grain-toggle { display: inline-flex; padding: 3px; border: 1px solid var(--line); border-radius: 11px; background: white; }
.grain-button { border: 0; border-radius: 8px; padding: 7px 13px; background: transparent; color: var(--muted); font-size: 11px; font-weight: 750; }
.grain-button.active { color: white; background: var(--navy); }

.kpi-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(172px, 1fr)); gap: 13px; margin-bottom: 16px; }
.kpi {
  min-height: 126px; background: white; border: 1px solid var(--line); border-radius: var(--radius); padding: 16px; box-shadow: 0 4px 16px rgba(20,33,61,.035);
}
.kpi .label { color: var(--muted); font-size: 12px; font-weight: 650; }
.kpi .value { margin-top: 10px; color: var(--navy); font-size: 26px; font-weight: 800; letter-spacing: -.03em; font-variant-numeric: tabular-nums; }
.kpi .compare { display: flex; gap: 6px; flex-wrap: wrap; margin-top: 10px; }
.dining-kpi-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.triple-kpi { min-height: 166px; }
.triple-values { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 9px; margin-top: 11px; }
.triple-values > div { min-width: 0; padding: 9px 10px; border-radius: 10px; background: var(--soft); }
.triple-values > div:nth-child(1) { border-left: 3px solid var(--blue); }
.triple-values > div:nth-child(2) { border-left: 3px dashed var(--orange); }
.triple-values > div:nth-child(3) { border-left: 3px dotted var(--olive); }
.triple-values span, .triple-values strong, .triple-values small { display: block; }
.triple-values span { color: var(--muted); font-size: 10px; }
.triple-values strong { margin-top: 4px; color: var(--navy); font-size: 16px; font-variant-numeric: tabular-nums; overflow-wrap: anywhere; }
.triple-values small { margin-top: 4px; color: var(--muted); font-size: 8.5px; line-height: 1.4; }
.chip { border-radius: 999px; padding: 4px 7px; background: var(--soft-2); color: var(--muted); font-size: 10px; font-weight: 700; }
.chip.up { background: var(--blue-open); color: var(--blue-dark); }
.chip.down { background: var(--risk-open); color: var(--risk); }

.grid { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); gap: 16px; margin-bottom: 16px; align-items: start; }
.span-12 { grid-column: span 12; }
.span-8 { grid-column: span 8; }
.span-7 { grid-column: span 7; }
.span-6 { grid-column: span 6; }
.span-5 { grid-column: span 5; }
.span-4 { grid-column: span 4; }
.card {
  min-width: 0; background: white; border: 1px solid var(--line); border-radius: var(--radius); box-shadow: var(--shadow); padding: 18px;
  transition: transform .2s ease, box-shadow .2s ease, border-color .2s ease;
}
.card:hover { transform: translateY(-2px) scale(1.003); box-shadow: 0 16px 36px rgba(20, 33, 61, .11); border-color: #cbd5e5; }
.kpi { transition: transform .2s cubic-bezier(.2,.8,.2,1), box-shadow .2s ease; }
.kpi:hover { transform: translateY(-3px) scale(1.018); box-shadow: 0 14px 28px rgba(20,33,61,.10); }
.card-header { display: flex; align-items: start; justify-content: space-between; gap: 12px; margin-bottom: 14px; }
.card h3 { margin: 0; font-size: 14px; color: var(--navy); }
.card-subtitle { margin: 4px 0 0; color: var(--muted); font-size: 11px; line-height: 1.45; }
.metric-note { margin: 12px 0 0; color: var(--muted); font-size: 10px; line-height: 1.6; }
.chart { min-height: 250px; position: relative; overflow: hidden; }
.chart.compact { min-height: 210px; }
.chart svg { display: block; width: 100%; height: auto; overflow: visible; }
.chart-empty { min-height: 210px; display: grid; place-items: center; color: var(--muted); font-size: 12px; }
.legend { display: flex; flex-wrap: wrap; gap: 12px; color: var(--muted); font-size: 10px; margin-bottom: 6px; }
.legend span { display: flex; align-items: center; gap: 5px; }
.legend i { width: 9px; height: 9px; display: inline-block; border-radius: 2px; }
.chart-mark { transform-box: fill-box; transform-origin: center; transition: transform .15s ease, filter .15s ease, opacity .15s ease; cursor: pointer; outline: none; }
.chart-mark:hover, .chart-mark:focus { transform: scale(1.075); filter: brightness(.9) saturate(1.1); opacity: 1 !important; }
.chart-smooth-line { display: none; pointer-events: none; opacity: .68; stroke-dasharray: 12 6; }
.chart .chart-raw-series,
.chart .chart-raw-mark { transition: opacity .22s ease, filter .22s ease, transform .18s ease; }
.chart.smoothing-active .chart-raw-series { opacity: .11; filter: blur(1.25px); }
.chart.smoothing-active .chart-raw-mark { opacity: .16; filter: blur(.7px); }
.chart.smoothing-active .chart-comparison-series,
.legend.smoothing-active .chart-comparison-series { display: none; }
.chart.smoothing-active .chart-smooth-line {
  display: block;
  opacity: 1;
  filter: drop-shadow(0 3px 5px rgba(31, 70, 154, .22));
  stroke-width: 5;
  animation: smoothLineIn .2s ease both;
}
.chart-smoothing-toggle {
  position: absolute; left: 9px; top: 8px; z-index: 4; display: inline-flex; align-items: center; gap: 7px;
  min-height: 27px; padding: 4px 8px; border: 1px solid #cfd8e8; border-radius: 999px; color: #536077;
  background: rgba(255,255,255,.94); box-shadow: 0 4px 14px rgba(20,33,61,.08); font-size: 8px; font-weight: 800; cursor: pointer;
}
.chart-smoothing-toggle:hover { color: var(--navy); border-color: #aebbd0; }
.chart-smoothing-toggle:disabled { opacity: .5; cursor: not-allowed; }
.switch-track { position: relative; width: 25px; height: 14px; border-radius: 999px; background: #dce2ec; transition: background .16s ease; }
.switch-track i { position: absolute; left: 2px; top: 2px; width: 10px; height: 10px; border-radius: 50%; background: white; box-shadow: 0 1px 3px rgba(20,33,61,.28); transition: transform .16s ease; }
.chart-smoothing-toggle.active { color: var(--blue-dark); border-color: #aec1f2; background: #f7f9ff; }
.chart-smoothing-toggle.active .switch-track { background: var(--blue); }
.chart-smoothing-toggle.active .switch-track i { transform: translateX(11px); }
.chart.chart-expandable { cursor: zoom-in; border-radius: 12px; }
.chart.chart-expandable .chart-mark { cursor: zoom-in; }
.chart.chart-expandable .chart-smoothing-toggle { cursor: pointer; }
.chart.chart-expandable::after {
  content: "放大"; position: absolute; right: 9px; top: 8px; z-index: 3; padding: 5px 8px; border-radius: 999px;
  color: white; background: rgba(20,33,61,.88); font-size: 9px; font-weight: 800; opacity: 0; transform: translateY(-4px) scale(.94); transition: .16s ease;
}
.chart.chart-expandable:hover::after, .chart.chart-expandable:focus-visible::after { opacity: 1; transform: none; }
@keyframes smoothLineIn { from { opacity: 0; } to { opacity: .68; } }

.chart-tooltip {
  position: fixed; z-index: 80; max-width: 245px; pointer-events: none; padding: 8px 10px; border-radius: 9px;
  background: rgba(20,33,61,.95); color: white; box-shadow: 0 10px 24px rgba(20,33,61,.22); font-size: 11px; line-height: 1.45;
}
.interaction-hint {
  position: fixed; z-index: 110; pointer-events: none; max-width: 360px; padding: 8px 10px; border-radius: 9px;
  color: white; background: rgba(20,33,61,.96); box-shadow: 0 10px 24px rgba(20,33,61,.22); font-size: 10px; line-height: 1.55;
}
.drillable, .drillable-row { cursor: alias; }
.drillable { position: relative; }
.drillable::before {
  content: "↗"; display: inline-grid; place-items: center; width: 15px; height: 15px; margin-right: 5px; border-radius: 50%;
  color: var(--blue-dark); background: var(--blue-open); font-size: 9px; font-weight: 900; vertical-align: 1px; opacity: .72;
}
.drillable:hover::before { opacity: 1; transform: scale(1.12); }
.drillable-row:hover { background: var(--blue-open); box-shadow: inset 3px 0 0 var(--blue); }

.term-link {
  display: inline-flex; align-items: center; gap: 3px; margin: 0 1px; padding: 0; border: 0; color: inherit; background: transparent;
  font: inherit; font-weight: inherit; text-decoration: underline; text-decoration-style: dotted; text-underline-offset: 3px; cursor: help;
}
.term-icon {
  display: inline-grid; place-items: center; width: 14px; height: 14px; border-radius: 50%; color: var(--blue-dark); background: var(--blue-open);
  font-size: 8px; font-weight: 900; line-height: 1; text-decoration: none; transition: transform .16s ease, background .16s ease;
}
.term-link:hover .term-icon, .term-link:focus-visible .term-icon { color: white; background: var(--blue); transform: scale(1.14); }

.chart-modal { position: fixed; inset: 0; z-index: 100; }
.chart-modal-backdrop { position: absolute; inset: 0; background: rgba(11,20,39,.63); backdrop-filter: blur(4px); }
.chart-modal-panel {
  position: absolute; inset: 28px; max-width: 1440px; margin: auto; overflow: hidden; border: 1px solid rgba(255,255,255,.45); border-radius: 24px;
  display: grid; grid-template-columns: minmax(0,2fr) minmax(330px,.78fr); grid-template-rows: auto minmax(0,1fr);
  background: white; box-shadow: 0 32px 90px rgba(8,17,35,.38); animation: modal-in .22s cubic-bezier(.2,.8,.2,1) both;
}
.chart-modal-head { grid-column: 1 / -1; position: relative; z-index: 8; display: flex; justify-content: space-between; align-items: start; gap: 18px; padding: 20px 24px 15px; border-bottom: 1px solid var(--line); background: rgba(255,255,255,.96); backdrop-filter: blur(10px); }
.chart-modal-head h2 { margin: 8px 0 0; color: var(--navy); font-size: 20px; }
.chart-modal-head p { margin: 5px 0 0; color: var(--muted); font-size: 11px; line-height: 1.55; }
.chart-modal-close { width: 38px; height: 38px; border-radius: 11px; color: var(--navy); background: var(--soft); }
.chart-modal-close:hover { background: var(--blue-open); transform: scale(1.06); }
.chart-modal-host { position: relative; min-height: 0; padding: 24px 24px 18px; overflow: auto; }
.chart-modal-host .legend { font-size: 12px; margin-bottom: 12px; }
.chart-modal-host .chart { min-height: 460px; overflow: visible; cursor: crosshair; }
.chart-modal-host .chart::after { display: none; }
.chart-modal-host .chart svg { width: 100%; min-height: 450px; }
.chart-modal-insights { min-width: 0; overflow: auto; display: flex; flex-direction: column; gap: 13px; padding: 20px; border-left: 1px solid var(--line); background: #fafbfe; }
.chart-modal-insights article { padding: 17px; border: 1px solid var(--line); border-radius: 15px; background: var(--soft); }
.chart-modal-insights h3 { margin: 0 0 9px; color: var(--navy); font-size: 13px; }
.chart-modal-insights p { margin: 0; color: #3b455a; font-size: 11px; line-height: 1.7; }
.chart-modal-analysis { display: grid; gap: 9px; }
.deep-analysis-section { padding-bottom: 9px; border-bottom: 1px solid rgba(129, 145, 172, .16); }
.deep-analysis-section:last-child { padding-bottom: 0; border-bottom: 0; }
.deep-analysis-section > strong { display: block; margin-bottom: 4px; color: var(--navy); font-size: 11px; }
.deep-analysis-section p { margin: 2px 0; }
.five-part-analysis { display: grid; gap: 9px; }
.five-part-title { display: flex; align-items: center; justify-content: space-between; gap: 10px; }
.five-part-title > strong { color: var(--navy); font-size: 12px; }
.five-part-title > span { color: var(--muted); font-size: 9px; }
.five-part-analysis > section {
  display: grid;
  grid-template-columns: 22px minmax(0, 1fr);
  gap: 8px;
  padding: 9px;
  border: 1px solid rgba(121, 141, 175, .17);
  border-radius: 11px;
  background: rgba(255, 255, 255, .7);
}

.settings-modal {
  position: fixed;
  inset: 0;
  z-index: 130;
  display: grid;
  place-items: center;
  padding: 24px;
}
.settings-modal[hidden] { display: none; }
.detail-drawer[hidden] { display: none; }
.detail-drawer { position: fixed; inset: 0; z-index: 130; display: grid; justify-items: end; }
.detail-drawer-backdrop { position: absolute; inset: 0; border: 0; background: rgba(18,29,52,.42); backdrop-filter: blur(7px); }
.detail-drawer-panel { position: relative; width: min(560px, calc(100vw - 24px)); height: 100dvh; display: grid; grid-template-rows: auto minmax(0,1fr); overflow: hidden; border-left: 1px solid rgba(255,255,255,.78); background: #fff; box-shadow: -22px 0 58px rgba(16,30,59,.25); animation: detail-drawer-in var(--ui-motion-layer) cubic-bezier(.2,.8,.2,1) both; }
.detail-drawer-head { display: flex; align-items: start; justify-content: space-between; gap: 14px; padding: max(18px, env(safe-area-inset-top)) 20px 16px; border-bottom: 1px solid var(--line); }
.detail-drawer-head h2 { margin: 7px 0 0; color: var(--navy); font-size: 20px; }
.detail-drawer-head p { margin: 5px 0 0; color: var(--muted); font-size: 11px; line-height: 1.55; }
.detail-drawer-body { min-height: 0; overflow: auto; padding: 20px; overscroll-behavior: contain; }
.disclosure-depth-trace { display: flex; align-items: center; gap: 4px; margin: -2px 0 18px; color: #8290a8; font-size: 10px; font-weight: 750; letter-spacing: .01em; }
.disclosure-depth-trace strong { color: var(--blue); }
.disclosure-depth-trace .material-symbols-rounded { color: #a9b4c7; font-size: 14px; }
.disclosure-summary-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 9px; margin-bottom: 16px; }
.disclosure-summary-grid article { min-height: 88px; padding: 14px; border: 1px solid rgba(86, 122, 191, .16); border-radius: 15px; background: linear-gradient(142deg, rgba(239, 245, 255, .94), rgba(255, 255, 255, .88)); box-shadow: inset 0 1px 0 rgba(255, 255, 255, .92); }
.disclosure-summary-grid span { display: block; margin-bottom: 9px; color: #71809b; font-size: 10px; font-weight: 720; letter-spacing: .025em; }
.disclosure-summary-grid strong { display: block; color: var(--navy); font-size: clamp(16px, 2vw, 21px); line-height: 1.2; letter-spacing: -.02em; }
.drawer-list { padding: 15px; border: 1px solid rgba(99, 120, 157, .14); border-radius: 15px; background: rgba(248, 251, 255, .78); }
.drawer-list h4 { margin: 0 0 10px; color: var(--navy); font-size: 12px; }
.drawer-list dl { display: grid; gap: 0; margin: 0; }
.drawer-list dl > div { display: grid; grid-template-columns: minmax(88px, .76fr) minmax(0, 1.4fr); gap: 12px; padding: 10px 0; border-top: 1px solid rgba(99, 120, 157, .12); }
.drawer-list dt { color: #74819a; font-size: 11px; }
.drawer-list dd { margin: 0; color: #273551; font-size: 11px; line-height: 1.55; text-align: right; overflow-wrap: anywhere; }
body.detail-drawer-open { overflow: hidden; }
@keyframes detail-drawer-in { from { opacity: 0; transform: translateX(24px); } to { opacity: 1; transform: translateX(0); } }
@media (max-width: 760px) { .detail-drawer { display: block; } .detail-drawer-panel { width: 100%; height: 100dvh; border: 0; } .detail-drawer-head { padding: max(16px, env(safe-area-inset-top)) 16px 14px; } .detail-drawer-body { padding: 16px; padding-bottom: calc(16px + env(safe-area-inset-bottom)); } .disclosure-summary-grid { gap: 8px; } .disclosure-summary-grid article { min-height: 82px; padding: 12px; } .drawer-list { padding: 13px; } }
.settings-modal-backdrop {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  border: 0;
  border-radius: 0;
  background: rgba(8, 17, 35, .58);
  backdrop-filter: blur(12px) saturate(122%);
  -webkit-backdrop-filter: blur(12px) saturate(122%);
  animation: settingsBackdropIn .2s ease both;
}
.settings-modal-panel {
  position: relative;
  width: min(820px, calc(100vw - 48px));
  max-height: min(820px, calc(100vh - 48px));
  overflow: hidden;
  border: 1px solid rgba(255, 255, 255, .7);
  border-radius: 28px;
  background:
    linear-gradient(145deg, rgba(255, 255, 255, .84), rgba(241, 246, 255, .72)),
    rgba(244, 248, 255, .78);
  box-shadow:
    0 34px 100px rgba(5, 16, 38, .34),
    inset 0 1px 0 rgba(255, 255, 255, .9),
    inset 0 -1px 0 rgba(132, 157, 201, .18);
  backdrop-filter: blur(34px) saturate(150%);
  -webkit-backdrop-filter: blur(34px) saturate(150%);
  animation: settingsModalIn .26s cubic-bezier(.2, .8, .2, 1) both;
}
.settings-modal-panel::before {
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
  border-radius: inherit;
  background:
    radial-gradient(circle at 12% 0%, rgba(255, 255, 255, .78), transparent 34%),
    radial-gradient(circle at 88% 100%, rgba(124, 164, 255, .18), transparent 40%);
}
.settings-modal-head,
.settings-modal-actions {
  position: relative;
  z-index: 1;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 18px;
  padding: 18px 22px;
}
.settings-modal-head {
  align-items: flex-start;
  border-bottom: 1px solid rgba(131, 151, 188, .18);
  background: rgba(255, 255, 255, .36);
}
.settings-modal-head h2 { margin: 7px 0 0; color: var(--navy); font-size: 21px; letter-spacing: -.02em; }
.settings-modal-head p { max-width: 620px; margin: 5px 0 0; color: #64738c; font-size: 11px; line-height: 1.6; }
.settings-modal-close {
  flex: 0 0 auto;
  width: 40px;
  height: 40px;
  border: 1px solid rgba(255, 255, 255, .72);
  border-radius: 50%;
  color: var(--navy);
  background: rgba(255, 255, 255, .52);
  box-shadow: 0 8px 22px rgba(20, 33, 61, .1);
}
.settings-modal-close:hover { transform: scale(1.05); background: rgba(255, 255, 255, .82); }
.settings-modal-body {
  position: relative;
  z-index: 1;
  max-height: calc(100vh - 220px);
  overflow: auto;
  padding: 22px;
  overscroll-behavior: contain;
}
.settings-modal-body .access-fields,
.settings-modal-body .role-editor,
.settings-modal-form {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 14px;
}
.settings-modal-body label,
.settings-modal-form label {
  display: grid;
  gap: 6px;
  min-width: 0;
  color: #64738c;
  font-size: 10px;
  font-weight: 760;
}
.settings-modal-body label.wide,
.settings-modal-body label.span-all,
.settings-modal-form label.wide,
.settings-modal-form label.span-all { grid-column: 1 / -1; }
.settings-modal-body input,
.settings-modal-body select,
.settings-modal-body textarea,
.settings-modal-form input,
.settings-modal-form select,
.settings-modal-form textarea {
  width: 100%;
  min-width: 0;
  border-color: rgba(120, 143, 183, .26);
  background: rgba(255, 255, 255, .7);
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, .78);
}
.settings-modal-body .access-actions {
  margin-top: 18px;
  padding-top: 16px;
  border-top: 1px solid rgba(131, 151, 188, .16);
}
.settings-modal-body .access-actions .button { min-height: 42px; }
.settings-modal-body .role-permission-title { margin-top: 18px; }
.settings-modal-actions {
  justify-content: flex-end;
  border-top: 1px solid rgba(131, 151, 188, .18);
  background: rgba(255, 255, 255, .4);
}
.settings-modal-actions .button { min-width: 110px; min-height: 42px; }
body.settings-modal-open { overflow: hidden; }
.import-decision { display: grid; gap: 14px; }
.import-decision .field { display: grid; gap: 7px; font-weight: 700; color: var(--navy); }
.import-summary { display: grid; gap: 8px; padding: 12px; border: 1px solid rgba(47,107,255,.16); border-radius: 14px; background: linear-gradient(135deg, rgba(238,243,255,.88), rgba(255,255,255,.94)); }
.import-summary-row { display: flex; align-items: baseline; justify-content: space-between; gap: 14px; padding-bottom: 8px; border-bottom: 1px solid rgba(56,85,132,.10); font-size: 13px; }
.import-summary-row:last-child { padding-bottom: 0; border-bottom: 0; }
.import-summary-row strong { color: var(--navy); }
.import-summary-row span { color: var(--muted); text-align: right; }
.import-restore-list { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 12px; }
.bom-master-workspace { align-items: start; }
.bom-master-file-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; }
.bom-master-file-slot { display: grid; align-content: start; gap: 8px; min-width: 0; min-height: 190px; padding: 16px; border: 1px solid rgba(74, 112, 183, .2); border-radius: 17px; color: var(--navy); background: linear-gradient(145deg, rgba(239, 245, 255, .9), rgba(255, 255, 255, .96)); cursor: pointer; }
.bom-master-file-slot:hover { border-color: rgba(47, 107, 255, .45); transform: translateY(-1px); }
.bom-master-file-slot > .material-symbols-rounded { color: var(--blue); font-size: 28px; }
.bom-master-file-slot strong { font-size: 13px; }
.bom-master-file-slot small { min-height: 48px; color: var(--muted); font-size: 10px; line-height: 1.6; }
.bom-master-file-slot input { width: 100%; min-width: 0; font-size: 10px; }
.bom-master-file-slot em { color: #415475; font-size: 10px; font-style: normal; font-weight: 720; overflow-wrap: anywhere; }
.bom-master-workspace .hash-value,
.bom-master-workspace td { overflow-wrap: anywhere; }
.bom-master-quality-tools { display: grid; grid-template-columns: minmax(0, 1fr) minmax(150px, auto); gap: 10px; }
.bom-master-quality-tools select { min-width: 150px; }
.bom-master-rollback-reason { display: grid; gap: 7px; margin-top: 14px; color: var(--muted); font-size: 10px; font-weight: 750; }
.bom-master-rollback-reason input { width: 100%; }
.badge .material-symbols-rounded { margin-right: 4px; font-size: 15px; vertical-align: -3px; }
@media (max-width: 900px) {
  .bom-master-file-grid { grid-template-columns: 1fr; }
  .bom-master-file-slot { min-height: 0; }
  .bom-master-file-slot small { min-height: 0; }
}
@media (max-width: 560px) {
  .bom-master-quality-tools { grid-template-columns: 1fr; }
  .bom-master-quality-tools select { width: 100%; }
}
@keyframes settingsModalIn {
  from { opacity: 0; transform: translateY(18px) scale(.975); }
  to { opacity: 1; transform: none; }
}
@keyframes settingsBackdropIn {
  from { opacity: 0; }
  to { opacity: 1; }
}
.five-part-analysis > section > span {
  width: 22px; height: 22px; display: grid; place-items: center;
  border-radius: 7px; color: var(--blue); background: var(--blue-open);
  font-size: 9px; font-weight: 800;
}
.five-part-analysis section strong { color: var(--navy); font-size: 10px; }
.five-part-analysis section p { margin: 3px 0 0; color: #58647a; font-size: 9px; line-height: 1.55; }
.five-part-analysis > .plain-summary { border-color: rgba(47, 107, 255, .25); background: rgba(239, 244, 255, .82); }
.detail-search-controls {
  display: grid;
  grid-template-columns: minmax(220px, 2fr) repeat(3, minmax(120px, 1fr));
  gap: 10px;
  margin-bottom: 10px;
}
.detail-search-controls label { display: grid; gap: 5px; color: var(--muted); font-size: 9px; }
.detail-search-controls input, .detail-search-controls select { width: 100%; }
.detail-result-meta, .pagination { display: flex; align-items: center; justify-content: space-between; gap: 10px; }
.detail-result-meta { margin: 2px 0 8px; color: var(--muted); font-size: 9px; }
.pagination { justify-content: flex-end; margin-top: 10px; }
.profile-boundary-note {
  display: flex; align-items: flex-start; gap: 10px; margin-bottom: 12px; padding: 12px 14px;
  border: 1px solid rgba(47, 107, 255, .18); border-radius: 14px; background: rgba(239, 244, 255, .74);
}
.profile-boundary-note .material-symbols-rounded { color: var(--blue); }
.profile-boundary-note strong { color: var(--navy); font-size: 10px; }
.profile-boundary-note p { margin: 3px 0 0; color: var(--muted); font-size: 9px; line-height: 1.55; }
.profile-story-list { display: grid; gap: 9px; }
.profile-story { padding: 11px; border: 1px solid var(--line); border-radius: 12px; background: rgba(255,255,255,.72); }
.profile-story > div { display: flex; align-items: center; justify-content: space-between; gap: 8px; }
.profile-story p { margin: 7px 0 4px; color: #4d5a70; font-size: 9.5px; line-height: 1.65; }
.profile-story small { color: var(--muted); font-size: 8.5px; line-height: 1.5; }
.access-create-disclosure { display: none; margin: 0; padding: 0; border: 0; background: transparent; }
.settings-modal-body .access-create-disclosure { display: block; }
.access-create-disclosure > summary { color: var(--navy); font-size: 10px; font-weight: 760; cursor: pointer; }
.settings-modal-body .access-create-disclosure > summary { display: none; }
.access-create-disclosure[open] > summary { margin-bottom: 0; }
.access-directory-layout { display: grid; grid-template-columns: minmax(0, 1.45fr) minmax(300px, .75fr); gap: 12px; align-items: start; }
.access-user-table tbody tr { cursor: pointer; transition: background .16s ease; }
.access-user-table tbody tr:hover, .access-user-table tbody tr.selected { background: rgba(232, 239, 255, .7); }
.access-user-table td strong, .access-user-table td small { display: block; }
.access-user-table td small { margin-top: 2px; color: var(--muted); font-size: 8px; }
.access-user-editor { position: sticky; top: 94px; }
.password-safe { color: #14745b; font-size: 9px; font-weight: 760; }
.password-security-note { display: flex; gap: 8px; margin: 10px 0; padding: 10px; border-radius: 11px; background: rgba(235, 247, 242, .9); }
.password-security-note .material-symbols-rounded { color: #168267; font-size: 18px; }
.password-security-note strong { color: #155f4e; font-size: 9px; }
.password-security-note p { margin: 3px 0 0; color: #57736b; font-size: 8.5px; line-height: 1.5; }
.chart-highlight-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(150px,1fr)); gap: 9px; }
.chart-highlight { padding: 11px; border-radius: 11px; background: white; border: 1px solid var(--line); }
.chart-highlight span, .chart-highlight strong, .chart-highlight small { display: block; }
.chart-highlight span { color: var(--muted); font-size: 9px; }
.chart-highlight strong { margin-top: 5px; color: var(--navy); font-size: 16px; font-variant-numeric: tabular-nums; }
.chart-highlight small { margin-top: 4px; color: var(--muted); font-size: 9px; line-height: 1.4; }

.usage-steps { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px,1fr)); gap: 10px; margin-bottom: 18px; }
.usage-step { display: grid; grid-template-columns: 30px minmax(0,1fr); gap: 10px; padding: 13px; border-radius: 12px; background: var(--soft); }
.usage-step > span { display: grid; place-items: center; width: 28px; height: 28px; border-radius: 9px; color: white; background: var(--blue); font-size: 10px; font-weight: 900; }
.usage-step strong { display: block; color: var(--navy); font-size: 11px; }
.usage-step p { margin: 4px 0 0; color: var(--muted); font-size: 9px; line-height: 1.55; }
.glossary-toolbar { display: flex; justify-content: space-between; align-items: center; gap: 12px; margin: 16px 0 10px; }
.glossary-toolbar h4 { margin: 0; color: var(--navy); font-size: 13px; }
.glossary-toolbar input { width: min(360px,100%); }
.glossary-list { display: grid; gap: 8px; }
.glossary-entry { scroll-margin-top: 205px; padding: 0 14px; border: 1px solid var(--line); border-radius: 12px; background: white; }
.glossary-entry:target, .glossary-entry.focused { border-color: var(--blue); box-shadow: 0 0 0 4px rgba(47,107,255,.10); animation: glossary-focus .7s ease; }
.glossary-entry summary { display: flex; align-items: center; justify-content: space-between; gap: 12px; min-height: 42px; cursor: pointer; list-style: none; }
.glossary-entry summary::-webkit-details-marker { display: none; }
.glossary-entry summary i { color: #8a98b0; font-size: 18px; transition: transform .2s ease; }
.glossary-entry[open] summary i { color: var(--blue); transform: rotate(180deg); }
.glossary-entry h5 { margin: 0; color: var(--navy); font-size: 12px; }
.glossary-entry > div { display: grid; grid-template-columns: minmax(145px,210px) minmax(0,1fr); gap: 14px; padding: 0 0 13px; }
.glossary-entry p { margin: 0; color: #465067; font-size: 10px; line-height: 1.6; }
.glossary-formula { margin-top: 5px !important; color: var(--blue-dark) !important; font-variant-numeric: tabular-nums; }

@keyframes modal-in { from { opacity: 0; transform: translateY(12px) scale(.975); } to { opacity: 1; transform: none; } }
@keyframes glossary-focus { 35% { transform: scale(1.012); } }

.table-wrap { width: 100%; overflow: auto; border: 1px solid var(--line); border-radius: 12px; }
.table-finder { display: flex; align-items: center; justify-content: space-between; gap: 10px; margin: 0 0 9px; }
.table-finder input { width: min(360px, 100%); }
.table-finder span { color: var(--muted); font-size: 10px; white-space: nowrap; }
table { width: 100%; border-collapse: collapse; font-size: 12px; background: white; }
th { position: sticky; top: 0; z-index: 1; padding: 10px 11px; background: var(--navy-2); color: white; text-align: left; white-space: nowrap; }
td { padding: 10px 11px; border-bottom: 1px solid var(--line); color: #30384a; vertical-align: top; }
tr:last-child td { border-bottom: 0; }
tbody tr:hover { background: #f8faff; }
.number { text-align: right; font-variant-numeric: tabular-nums; white-space: nowrap; }
.muted { color: var(--muted); }
.rank { display: inline-grid; place-items: center; min-width: 22px; height: 22px; border-radius: 7px; background: var(--soft-2); font-weight: 800; }

.insight-list { display: grid; gap: 12px; }
.insight {
  display: grid; grid-template-columns: 84px minmax(0, 1fr); gap: 16px; padding: 17px; border: 1px solid var(--line); border-radius: 14px; background: white;
}
.insight-type { display: flex; flex-direction: column; gap: 7px; align-items: flex-start; }
.insight h3 { margin: 0 0 8px; color: var(--navy); font-size: 15px; }
.insight p { margin: 5px 0; color: #3b455a; line-height: 1.65; font-size: 12px; }
.insight p strong { color: var(--navy); }
.priority { font-size: 10px; font-weight: 800; color: var(--muted); }

.upload-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 14px; }
.upload-box { border: 1px dashed #b8c4d8; border-radius: 14px; padding: 16px; background: #fafbfe; min-height: 160px; }
.upload-box h3 { margin: 0 0 7px; }
.upload-box p { color: var(--muted); font-size: 11px; line-height: 1.5; }
.upload-box input { width: 100%; margin-top: 12px; font-size: 11px; }
.file-list { margin-top: 8px; color: var(--blue-dark); font-size: 10px; word-break: break-all; }
.data-summary { display: grid; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); gap: 10px; }
.data-item { padding: 13px; border-radius: 12px; background: var(--soft); }
.data-item span, .data-item strong { display: block; }
.data-item span { color: var(--muted); font-size: 10px; }
.data-item strong { margin-top: 6px; color: var(--navy); font-size: 16px; }
.external-status-head {
  display: flex; align-items: center; justify-content: space-between; gap: 18px; padding: 14px;
  border: 1px solid var(--line); border-radius: 14px; background: var(--soft);
}
.external-status-head > div { min-width: 0; }
.external-status-head p { margin: 7px 0 0; color: var(--muted); font-size: 11px; line-height: 1.55; }
.external-location-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; margin-top: 12px; }
.external-location {
  display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 5px 12px; padding: 13px;
  border: 1px solid var(--line); border-radius: 12px; background: white;
}
.external-location strong, .external-location span, .external-location small { display: block; }
.external-location strong { color: var(--navy); font-size: 12px; }
.external-location span { margin-top: 4px; color: var(--muted); font-size: 9px; line-height: 1.5; }
.external-location small { grid-column: 1 / -1; color: #526079; font-size: 9px; }
.external-coordinate { color: var(--blue-dark); font-size: 10px; font-variant-numeric: tabular-nums; white-space: nowrap; }
.external-file-summary {
  display: flex; flex-wrap: wrap; gap: 7px; margin-top: 12px;
}
.external-file-summary span {
  padding: 6px 9px; border-radius: 999px; color: #4d5870; background: var(--soft-2);
  font-size: 9px; font-weight: 700; font-variant-numeric: tabular-nums;
}
.external-summary { margin-top: 12px; }
.external-license { padding: 10px 12px; border-radius: 10px; background: #fff8e8; }
.external-license a { color: var(--blue-dark); font-weight: 700; }
.method-list { display: grid; gap: 8px; }
.method { display: grid; grid-template-columns: minmax(140px, 220px) 1fr; gap: 16px; padding: 12px 0; border-bottom: 1px solid var(--line); }
.method:last-child { border-bottom: 0; }
.method strong { color: var(--navy); font-size: 12px; }
.method span { color: #465067; font-size: 12px; line-height: 1.6; }

.settings-summary {
  display: flex; align-items: center; gap: 12px; flex-wrap: wrap; margin-bottom: 16px; padding: 12px 14px;
  border: 1px solid var(--line); border-radius: 12px; background: white; color: var(--muted); font-size: 11px;
}
.settings-nav {
  position: sticky; top: 92px; z-index: 8; display: grid; grid-template-columns: repeat(auto-fit, minmax(175px, 1fr)); gap: 7px;
  margin: 0 0 18px; padding: 8px; border: 1px solid var(--line); border-radius: 14px; background: rgba(255,255,255,.96); box-shadow: 0 8px 22px rgba(20,33,61,.08); backdrop-filter: blur(10px);
}
.settings-nav button { min-width: 0; padding: 10px 11px; border: 0; border-radius: 10px; color: var(--ink); background: var(--soft); text-align: left; transition: transform .16s ease, background .16s ease, box-shadow .16s ease; }
.settings-nav button:hover, .settings-nav button:focus-visible { background: white; transform: translateY(-2px) scale(1.015); box-shadow: 0 7px 16px rgba(20,33,61,.11); outline: none; }
.settings-nav strong, .settings-nav span { display: block; }
.settings-nav strong { color: var(--navy); font-size: 11px; }
.settings-nav span { margin-top: 4px; color: var(--muted); font-size: 9px; line-height: 1.45; }
.settings-section { min-width: 0; scroll-margin-top: 205px; }
.settings-section > .card { height: 100%; }
.setting-fields { display: grid; gap: 15px; }
.setting-field { display: grid; grid-template-columns: minmax(180px, 1fr) 128px; gap: 6px 14px; align-items: center; }
.setting-label { color: var(--navy); font-size: 12px; font-weight: 750; }
.setting-label small { margin-left: 7px; color: var(--muted); font-size: 9px; font-weight: 650; }
.setting-field input, .setting-field select { width: 100%; min-width: 0; text-align: right; font-variant-numeric: tabular-nums; }
.setting-description { grid-column: 1 / -1; color: var(--muted); font-size: 10px; line-height: 1.55; }
.setting-example { grid-column: 1 / -1; margin-top: -2px; padding: 7px 9px; border-radius: 8px; color: #49556d; background: var(--soft); font-size: 9px; line-height: 1.55; }
.setting-example strong { color: var(--navy); }
.version-change-list { display: grid; gap: 5px; min-width: 260px; }
.version-change-list > div { display: grid; grid-template-columns: minmax(70px,auto) minmax(120px,1fr) auto; gap: 7px; align-items: center; padding: 5px 7px; border-radius: 7px; background: var(--soft); }
.version-change-list span { color: var(--muted); font-size: 8px; }
.version-change-list strong { color: var(--navy); font-size: 9px; }
.version-change-list small { color: #455169; font-size: 9px; font-variant-numeric: tabular-nums; white-space: nowrap; }
.muted-copy { color: var(--muted); font-size: 9px; }
.chart-control-grid { display: grid; grid-template-columns: repeat(3, minmax(145px, .55fr)) minmax(250px, 1.35fr); gap: 12px; align-items: stretch; }
.chart-control-grid label { display: grid; gap: 6px; color: var(--muted); font-size: 10px; font-weight: 750; }
.chart-control-grid select { width: 100%; }
.chart-control-note { display: grid; align-content: center; padding: 11px 13px; border: 1px solid var(--line); border-radius: 11px; background: var(--soft); }
.chart-control-note span, .chart-control-note strong, .chart-control-note small { display: block; }
.chart-control-note span { color: var(--muted); font-size: 8px; }
.chart-control-note strong { margin-top: 3px; color: var(--navy); font-size: 12px; }
.chart-control-note small { margin-top: 4px; color: var(--muted); font-size: 9px; line-height: 1.45; }
.relationship-control-grid { display: grid; grid-template-columns: repeat(4, minmax(135px, 1fr)); gap: 12px; align-items: stretch; margin-bottom: 16px; }
.relationship-control-grid label { display: grid; gap: 6px; color: var(--muted); font-size: 10px; font-weight: 750; }
.relationship-control-grid select { width: 100%; }
.relationship-control-grid .chart-control-note { grid-column: 1 / -1; }
.relationship-data-note { display: flex; align-items: flex-start; gap: 9px; margin: -3px 0 14px; padding: 10px 12px; border: 1px solid #efd19c; border-radius: 10px; background: #fff9ec; color: #72531a; font-size: 9.5px; line-height: 1.55; }
.relationship-data-note strong { flex: 0 0 auto; color: #8a5b0a; }
.relationship-layout { display: grid; grid-template-columns: minmax(0, 1.7fr) minmax(280px, .8fr); gap: 18px; align-items: start; }
.relationship-layout aside { min-width: 0; display: grid; gap: 12px; }
.relationship-chart { min-height: 300px; }
.relationship-kpis { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; }
.relationship-kpis > div { min-width: 0; padding: 11px; border: 1px solid var(--line); border-radius: 11px; background: var(--soft); }
.relationship-kpis span, .relationship-kpis strong, .relationship-kpis small { display: block; }
.relationship-kpis span { color: var(--muted); font-size: 8px; }
.relationship-kpis strong { margin-top: 5px; color: var(--navy); font-size: 17px; font-variant-numeric: tabular-nums; }
.relationship-kpis small { margin-top: 4px; color: var(--muted); font-size: 8px; line-height: 1.4; }
.relationship-copy { padding: 15px; border: 1px solid #cbd7ed; border-radius: 13px; background: #f7f9ff; }
.relationship-copy.warning { border-color: #efd19c; background: #fff9ec; }
.relationship-copy strong { color: var(--navy); font-size: 12px; }
.relationship-copy p { margin: 8px 0 0; color: #3f4b61; font-size: 10px; line-height: 1.65; }
.relationship-copy small { display: block; margin-top: 10px; color: var(--muted); font-size: 9px; line-height: 1.6; }
.plain-summary { margin-top: 12px !important; padding: 10px 11px; border-radius: 9px; color: var(--navy) !important; background: white; border-left: 3px solid var(--blue); font-size: 10px !important; line-height: 1.6; }
.plain-summary strong { color: var(--blue-dark); }
.contribution-control { display: grid; grid-template-columns: repeat(2, minmax(150px, .42fr)) minmax(300px, 1.45fr); gap: 12px; margin-bottom: 16px; }
.contribution-control label { display: grid; gap: 6px; color: var(--muted); font-size: 10px; font-weight: 750; }
.contribution-control select { width: 100%; }
.contribution-layout { display: grid; grid-template-columns: minmax(0, 1.7fr) minmax(280px, .8fr); gap: 18px; align-items: start; }
.contribution-layout aside { min-width: 0; display: grid; gap: 12px; }
.contribution-chart { min-height: 300px; }
.latest-contribution-note { margin-top: 11px; padding: 9px 10px; border: 1px dashed #cbd7ed; border-radius: 9px; background: white; }
.latest-contribution-note span, .latest-contribution-note strong { display: block; }
.latest-contribution-note span { color: var(--muted); font-size: 8px; }
.latest-contribution-note strong { margin-top: 4px; color: #3f4b61; font-size: 9px; line-height: 1.55; }
.driver-band-legend { color: var(--muted); font-size: 8.5px; font-weight: 700; }
.legend .diamond-key { width: 9px; height: 9px; border-radius: 1px; background: var(--navy); transform: rotate(45deg); }
.insight-summary { margin-top: 10px !important; padding: 9px 10px; border-radius: 9px; background: var(--soft); border-left: 3px solid var(--blue); }
.legend .line-key { width: 18px; height: 0; border-top: 2px dashed var(--navy2); border-radius: 0; background: transparent !important; }
.store-marketing-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(310px, 1fr)); gap: 12px; }
.store-setting-card { padding: 15px; border: 1px solid var(--line); border-radius: 13px; background: #fafbfe; }
.store-setting-head { display: flex; align-items: center; gap: 9px; margin-bottom: 15px; }
.store-setting-head h4 { margin: 0; color: var(--navy); font-size: 14px; }
.data-item small { display: block; margin-top: 5px; color: var(--muted); font-size: 9px; line-height: 1.45; }
.settings-table-disclosure { margin-top: 12px; border: 1px solid var(--line); border-radius: 12px; background: rgba(248, 250, 254, .82); overflow: hidden; }
.settings-table-disclosure > summary { display: flex; align-items: center; justify-content: space-between; gap: 14px; padding: 12px 14px; color: var(--navy); cursor: pointer; font-size: 10px; font-weight: 750; list-style: none; }
.settings-table-disclosure > summary::-webkit-details-marker { display: none; }
.settings-table-disclosure > summary span { display: inline-flex; align-items: center; gap: 7px; }
.settings-table-disclosure > summary i { color: var(--blue); font-size: 16px; }
.settings-table-disclosure > summary small { color: var(--muted); font-size: 9px; font-weight: 650; }
.settings-table-disclosure[open] > summary { border-bottom: 1px solid var(--line); background: white; }
.settings-table-disclosure .table-wrap { border: 0; border-radius: 0; }
.button.compact { padding: 6px 9px; font-size: 9px; white-space: nowrap; }
.locked-rules { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
.locked-rule { display: grid; grid-template-columns: 52px minmax(0, 1fr); gap: 11px; padding: 13px; border-radius: 12px; background: var(--soft); }
.locked-rule strong { color: var(--navy); font-size: 12px; }
.locked-rule p { margin: 5px 0 0; color: var(--muted); font-size: 10px; line-height: 1.55; }
.lock-mark { align-self: start; padding: 4px 6px; border-radius: 6px; color: #7c4d00; background: #fff3d5; text-align: center; font-size: 9px; font-weight: 800; }

.hub-tabs {
  position: sticky; top: 92px; z-index: 9; display: flex; gap: 5px; width: fit-content; max-width: 100%; overflow-x: auto;
  margin: 0 0 18px; padding: 5px; border: 1px solid var(--line); border-radius: 13px; background: rgba(255,255,255,.94); box-shadow: 0 7px 18px rgba(20,33,61,.06); backdrop-filter: blur(8px);
}
.hub-tab { flex: 0 0 auto; border: 0; border-radius: 9px; padding: 8px 14px; color: var(--muted); background: transparent; font-size: 12px; font-weight: 750; transition: .18s ease; }
.hub-tab:hover { color: var(--navy); background: var(--soft); transform: scale(1.03); }
.hub-tab.active { color: white; background: var(--navy); box-shadow: 0 7px 15px rgba(20,33,61,.18); animation: tab-pop .28s ease both; }

.fuzzy-picker { display: flex; align-items: center; gap: 7px; }
.fuzzy-picker input { min-width: 260px; }
.knowledge-editor {
  width: 100%; resize: vertical; border: 1px solid var(--line); border-radius: 12px; padding: 12px; color: var(--ink); background: #fbfcff; outline: none; line-height: 1.65;
}
.knowledge-editor:focus, textarea:focus { border-color: var(--blue); box-shadow: 0 0 0 3px rgba(47,107,255,.1); }

.ai-launcher {
  position: fixed; right: 24px; bottom: 24px; z-index: 41; display: flex; align-items: center; gap: 8px; border: 0; border-radius: 999px;
  padding: 10px 16px 10px 10px; color: white; background: var(--navy); box-shadow: 0 14px 34px rgba(20,33,61,.24); font-size: 12px; font-weight: 800;
  transition: transform .2s cubic-bezier(.2,.8,.2,1), box-shadow .2s ease;
}
.ai-launcher:hover { transform: translateY(-3px) scale(1.05); box-shadow: 0 18px 40px rgba(20,33,61,.3); }
.ai-launcher-mark { display: grid; place-items: center; width: 30px; height: 30px; border-radius: 50%; background: var(--blue); font-size: 10px; }
.ai-panel {
  position: fixed; right: 20px; bottom: 20px; z-index: 60; width: min(440px, calc(100vw - 28px)); height: min(720px, calc(100vh - 40px));
  display: grid; grid-template-rows: auto auto minmax(0,1fr) auto auto auto; border: 1px solid var(--line); border-radius: 20px; background: white;
  box-shadow: 0 28px 70px rgba(20,33,61,.28); overflow: hidden; transform: translateY(34px) scale(.92); transform-origin: right bottom; opacity: 0; pointer-events: none;
  transition: transform .25s cubic-bezier(.2,.85,.25,1.1), opacity .2s ease;
}
.ai-panel.open { transform: translateY(0) scale(1); opacity: 1; pointer-events: auto; }
.ai-panel-head { display: flex; justify-content: space-between; align-items: center; gap: 12px; padding: 15px 16px; color: white; background: var(--navy); }
.ai-panel-head strong, .ai-panel-head small { display: block; }
.ai-panel-head strong { font-size: 14px; }
.ai-panel-head small { margin-top: 3px; color: #bdc9df; font-size: 9px; }
.ai-head-actions { display: flex; align-items: center; gap: 4px; }
.ai-head-actions .icon-button { color: white; width: 32px; height: 32px; border-radius: 9px; }
.ai-head-actions .icon-button:hover { background: rgba(255,255,255,.1); transform: scale(1.08); }
.ai-toolbar { display: grid; grid-template-columns: minmax(0, .8fr) minmax(0, 1.2fr) auto; gap: 7px; align-items: end; padding: 9px 12px; border-bottom: 1px solid var(--line); background: #f8faff; }
.ai-toolbar label { display: grid; gap: 4px; min-width: 0; color: var(--muted); font-size: 8px; font-weight: 800; }
.ai-toolbar select { min-width: 0; width: 100%; height: 34px; padding: 0 28px 0 8px; font-size: 9px; }
.ai-history-actions { display: flex; gap: 4px; }
.ai-history-actions button { min-height: 34px; padding: 0 8px; border: 1px solid var(--line); border-radius: 9px; color: var(--navy); background: white; font-size: 9px; font-weight: 800; }
.ai-messages { overflow-y: auto; padding: 16px; display: flex; flex-direction: column; gap: 11px; background: #f7f9fd; }
.ai-message { max-width: 88%; animation: message-pop .25s ease both; }
.ai-message > div { padding: 10px 12px; border-radius: 14px; white-space: pre-wrap; word-break: break-word; font-size: 12px; line-height: 1.65; }
.ai-message small { display: block; margin: 4px 3px 0; color: var(--muted); font-size: 8px; }
.ai-message.assistant { align-self: flex-start; }
.ai-message.assistant > div { color: #283247; background: white; border: 1px solid var(--line); border-bottom-left-radius: 5px; }
.ai-message.user { align-self: flex-end; }
.ai-message.user > div { color: white; background: var(--blue); border-bottom-right-radius: 5px; }
.ai-message.thinking > div { color: var(--muted); animation: soft-pulse 1.1s ease-in-out infinite; }
.ai-message.error > div { color: var(--risk); background: var(--risk-open); }
.ai-message.structured { width: 100%; max-width: 100%; }
.ai-message.structured > div { padding: 0; background: transparent; border: 0; }
.ai-structured-answer { display: grid; gap: 9px; padding: 12px; border: 1px solid var(--line); border-radius: 14px; color: #283247; background: white; }
.ai-structured-answer header, .ai-structured-answer footer { display: flex; align-items: center; gap: 6px; flex-wrap: wrap; }
.ai-structured-answer footer { justify-content: space-between; color: var(--muted); font-size: 8px; }
.ai-mode-badge, .ai-partial-badge { display: inline-flex; padding: 3px 7px; border-radius: 999px; color: #174ca2; background: #eaf1ff; font-size: 8px; font-weight: 900; }
.ai-partial-badge { color: #8b5b00; background: #fff4d8; }
.ai-conclusion { padding: 10px; border-radius: 11px; background: #f1f5ff; }
.ai-conclusion h3, .ai-answer-section h4 { margin: 0 0 5px; color: var(--navy); font-size: 10px; }
.ai-conclusion p, .ai-answer-section p { margin: 0; white-space: pre-wrap; line-height: 1.6; }
.ai-answer-section ul { margin: 0; padding-left: 17px; }
.ai-answer-section li + li { margin-top: 4px; }
.ai-answer-section a { color: var(--blue); text-decoration: underline; text-underline-offset: 2px; }
.ai-limitations { padding: 8px 10px; border-radius: 10px; color: #7d4c00; background: #fff8e8; }
.ai-route-list { display: flex; flex-wrap: wrap; gap: 6px; }
.ai-route-link, .ai-evidence-button { border: 1px solid #b8cdf8; border-radius: 8px; padding: 6px 8px; color: #174ca2; background: #eef4ff; font-size: 9px; font-weight: 800; }
.ai-route-link:focus-visible, .ai-evidence-button:focus-visible, .ai-history-actions button:focus-visible { outline: 3px solid rgba(47,107,255,.28); outline-offset: 2px; }
.ai-suggestions { display: flex; gap: 6px; overflow-x: auto; padding: 9px 12px; border-top: 1px solid var(--line); background: white; }
.ai-suggestions button { flex: 0 0 auto; border: 1px solid var(--line); border-radius: 999px; padding: 6px 9px; color: var(--navy); background: white; font-size: 9px; }
.ai-suggestions button:hover { border-color: var(--blue); background: var(--blue-open); transform: scale(1.03); }
.ai-composer { display: grid; grid-template-columns: minmax(0,1fr) auto; gap: 8px; padding: 10px 12px; border-top: 1px solid var(--line); background: white; }
.ai-composer textarea { width: 100%; min-height: 44px; max-height: 120px; resize: vertical; border: 1px solid var(--line); border-radius: 11px; padding: 9px 10px; color: var(--ink); outline: none; }
.ai-privacy { padding: 0 12px 10px; color: var(--muted); background: white; text-align: center; font-size: 8px; }

.access-summary { display: grid; grid-template-columns: repeat(4, minmax(0,1fr)); gap: 11px; margin-bottom: 16px; }
.access-summary article, .drilldown-summary-card { padding: 15px; border: 1px solid var(--line); border-radius: 14px; background: white; }
.drilldown-summary-card { width: 100%; color: inherit; font: inherit; text-align: left; cursor: pointer; transition: transform var(--ui-motion-micro), border-color var(--ui-motion-micro), box-shadow var(--ui-motion-micro); }
.drilldown-summary-card:hover { border-color: rgba(47, 109, 246, .48); box-shadow: 0 10px 26px rgba(33, 70, 130, .10); transform: translateY(-2px); }
.drilldown-summary-card:focus-visible { outline: 3px solid rgba(47, 109, 246, .32); outline-offset: 3px; }
.access-summary span, .access-summary strong, .access-summary small { display: block; }
.access-summary span { color: var(--muted); font-size: 10px; }
.access-summary strong { margin-top: 7px; color: var(--navy); font-size: 22px; }
.access-summary small { margin-top: 4px; color: var(--muted); font-size: 8px; }
.drilldown-summary-card em { display: inline-flex; align-items: center; gap: 3px; margin-top: 9px; color: var(--blue); font-size: 10px; font-style: normal; font-weight: 800; }
.drilldown-summary-card em .material-symbols-rounded { font-size: 13px; }
.access-tabs { display: flex; gap: 5px; margin-bottom: 15px; padding: 5px; width: fit-content; border: 1px solid var(--line); border-radius: 12px; background: white; }
.access-tab { border: 0; border-radius: 8px; padding: 8px 13px; color: var(--muted); background: transparent; font-size: 11px; font-weight: 800; }
.access-tab.active { color: white; background: var(--navy); }
.access-account-tabs { width: 100%; max-width: 100%; overflow-x: auto; scrollbar-width: thin; scroll-snap-type: x proximity; }
.access-account-tabs .access-tab { display: inline-flex; flex: 0 0 auto; align-items: center; gap: 6px; min-height: 38px; scroll-snap-align: start; white-space: nowrap; }
.access-account-tabs .material-symbols-rounded { font-size: 16px; }
.access-toolbar { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-bottom: 12px; }
.access-toolbar h3 { margin: 0; color: var(--navy); font-size: 15px; }
.access-toolbar p { margin: 4px 0 0; color: var(--muted); font-size: 10px; }
.access-toolbar-actions { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 7px; }
.employee-list-controls { display: flex; align-items: end; justify-content: space-between; gap: 12px; margin: 0 0 10px; }
.employee-list-controls label { display: grid; gap: 5px; min-width: 170px; color: var(--muted); font-size: 9px; font-weight: 750; }
.employee-list-controls select { width: 100%; }
.employee-list-controls small { color: var(--muted); font-size: 9px; }
.employee-batch-toolbar { display: flex; align-items: center; gap: 12px; margin: 0 0 10px; padding: 9px 11px; border: 1px solid rgba(39,100,255,.18); border-radius: 12px; background: rgba(238,244,255,.86); }
.employee-batch-toolbar label { display: inline-flex; align-items: center; gap: 7px; color: var(--navy); font-size: 10px; font-weight: 760; }
.employee-batch-toolbar input, .employee-row-check input { width: 17px; height: 17px; accent-color: var(--blue); }
.employee-batch-toolbar > span { margin-right: auto; color: var(--muted); font-size: 10px; }
.employee-batch-toolbar > span strong { color: var(--navy); }
.access-user-grid, .access-role-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(310px, 1fr)); gap: 12px; }
.access-user, .access-role { padding: 15px; border: 1px solid var(--line); border-radius: 15px; background: white; }
.access-user-head, .access-role-head { display: flex; align-items: start; justify-content: space-between; gap: 10px; margin-bottom: 13px; }
.access-user-head strong, .access-role-head strong { color: var(--navy); font-size: 13px; }
.access-user-head small, .access-role-head small { display: block; margin-top: 4px; color: var(--muted); font-size: 9px; }
.status-pill { padding: 5px 8px; border-radius: 999px; font-size: 8px; font-weight: 900; }
.status-pill.active { color: #276747; background: #e9f8ef; }
.status-pill.pending { color: #805300; background: #fff3d5; }
.status-pill.disabled { color: var(--risk); background: var(--risk-open); }
.access-fields { display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap: 10px; }
.access-fields label, .role-editor label { display: grid; gap: 5px; color: var(--muted); font-size: 9px; font-weight: 750; }
.access-fields input, .access-fields select, .role-editor input, .role-editor select { width: 100%; min-width: 0; }
.store-checks, .permission-checks { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 11px; }
.store-check, .permission-check { position: relative; display: inline-flex; align-items: center; gap: 5px; padding: 6px 8px; border: 1px solid var(--line); border-radius: 8px; color: #4b566d; background: var(--soft); font-size: 8.5px; font-weight: 700; }
.store-check input, .permission-check input { min-width: 0; width: 12px; height: 12px; margin: 0; }
.access-actions { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 7px; margin-top: 13px; padding-top: 11px; border-top: 1px solid var(--line); }
.job-role-actions { align-items: center; justify-content: space-between; }
.job-role-delete-control { display: flex; align-items: center; gap: 9px; min-width: 0; }
.role-delete-hint { max-width: 220px; color: var(--muted); font-size: 9px; line-height: 1.45; }
.role-delete-hint.blocked { color: #8e5a12; }
.role-description { margin: 0 0 11px; color: var(--muted); font-size: 9px; line-height: 1.55; }
.role-editor { display: grid; grid-template-columns: 1fr 1fr; gap: 9px; }
.role-editor .wide { grid-column: 1 / -1; }
.role-permission-title { margin: 13px 0 7px; color: var(--navy); font-size: 10px; font-weight: 850; }
.audit-list { overflow: hidden; border: 1px solid var(--line); border-radius: 14px; background: white; }
.audit-row { display: grid; grid-template-columns: 132px 110px 120px minmax(0,1fr) 20px; width: 100%; gap: 10px; padding: 11px 12px; border: 0; border-bottom: 1px solid var(--line); color: #3f4960; background: transparent; font: inherit; font-size: 9px; line-height: 1.45; text-align: left; cursor: pointer; transition: background var(--ui-motion-micro); }
.audit-row:hover, .audit-row:focus-visible { background: rgba(47, 109, 246, .07); }
.audit-row:focus-visible { outline: 3px solid rgba(47, 109, 246, .26); outline-offset: -3px; }
.audit-row:last-child { border-bottom: 0; }
.audit-row strong { color: var(--navy); }
.audit-row > .material-symbols-rounded { align-self: center; color: var(--blue); font-size: 17px; }
.audit-role-snapshot { color: var(--muted); font-weight: 750; }
.audit-detail-meta { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; margin: 14px 0; }
.audit-detail-meta div { padding: 10px; border: 1px solid var(--line); border-radius: 11px; background: #f8fbff; }
.audit-detail-meta dt { color: var(--muted); font-size: 10px; }
.audit-detail-meta dd { margin: 5px 0 0; color: var(--navy); font-size: 12px; font-weight: 800; overflow-wrap: anywhere; }
.audit-change-table table { min-width: 440px; }
.access-empty { padding: 38px; border: 1px dashed var(--line); border-radius: 14px; color: var(--muted); background: white; text-align: center; font-size: 11px; }
.organization-layout, .people-layout { display: grid; grid-template-columns: minmax(280px, .72fr) minmax(420px, 1.28fr); gap: 12px; align-items: start; }
.organization-tree, .employee-list { min-width: 0; padding: 10px; border: 1px solid var(--line); border-radius: 16px; background: rgba(255,255,255,.86); box-shadow: var(--shadow-soft); }
.org-branch, .org-leaf { margin: 0; padding: 0; }
.org-branch > summary { position: relative; display: flex; align-items: center; gap: 4px; list-style: none; }
.org-branch > summary::-webkit-details-marker { display: none; }
.org-branch > summary > .material-symbols-rounded { flex: 0 0 auto; color: var(--muted); font-size: 18px; transition: transform .24s ease, color .24s ease; }
.org-branch[open] > summary > .material-symbols-rounded { color: var(--blue); transform: rotate(180deg); }
.org-node-row { display: grid; grid-template-columns: 28px minmax(0,1fr) auto; align-items: center; gap: 8px; width: 100%; min-width: 0; margin: 3px 0; padding: 10px 9px; border: 1px solid transparent; border-radius: 11px; color: var(--ink); background: transparent; text-align: left; transition: transform .2s ease, background .2s ease, border-color .2s ease, box-shadow .2s ease; }
.org-node-row:hover { background: var(--soft-2); transform: translateX(2px); }
.org-node-row.selected { border-color: rgba(39,100,255,.32); background: var(--blue-open); box-shadow: inset 3px 0 0 var(--blue); }
.org-node-row > .material-symbols-rounded { color: var(--blue); font-size: 20px; }
.org-node-row strong, .org-node-row small { display: block; min-width: 0; overflow-wrap: anywhere; }
.org-node-row strong { font-size: 11px; }
.org-node-row small { margin-top: 3px; color: var(--muted); font-size: 8px; }
.org-children { margin-left: 18px; padding-left: 8px; border-left: 1px solid rgba(39,100,255,.18); transform-origin: top; animation: org-reveal .24s ease both; }
.org-leaf { margin-left: calc(var(--org-depth, 0) * 0px); }
.access-org-editor, .access-employee-editor { padding: 15px; border: 1px solid var(--line); border-radius: 16px; background: rgba(255,255,255,.9); box-shadow: var(--shadow-soft); animation: panel-swap .24s ease both; }
.access-fields .wide { grid-column: 1 / -1; }
.access-fields label small { color: var(--muted); font-size: 8px; font-weight: 500; line-height: 1.45; }
.employee-list { display: grid; gap: 7px; max-height: 680px; overflow-y: auto; }
.employee-row-shell { min-width: 0; }
.employee-row-shell.is-batch { display: grid; grid-template-columns: auto minmax(0,1fr); align-items: center; gap: 8px; }
.employee-row-check { display: grid; place-items: center; width: 28px; min-height: 44px; border-radius: 9px; background: rgba(238,244,255,.7); cursor: pointer; }
.employee-list-row { display: grid; grid-template-columns: minmax(0,1fr) minmax(90px,.45fr) auto; align-items: center; gap: 9px; width: 100%; padding: 11px; border: 1px solid var(--line); border-radius: 12px; color: var(--ink); background: white; text-align: left; transition: transform .2s ease, border-color .2s ease, background .2s ease, box-shadow .2s ease; }
.employee-list-row:hover { transform: translateY(-1px); border-color: rgba(39,100,255,.28); box-shadow: var(--shadow-soft); }
.employee-list-row.selected { border-color: rgba(39,100,255,.4); background: var(--blue-open); }
.employee-list-row strong, .employee-list-row small { display: block; }
.employee-list-row small { margin-top: 3px; color: var(--muted); font-size: 8px; }
.employee-archive-summary { margin: 13px 0 0; }
.employee-lifecycle-preview { display: grid; gap: 14px; }
.employee-lifecycle-preview .disclosure-summary-grid { grid-template-columns: repeat(2, minmax(0,1fr)); margin: 0; }
.employee-lifecycle-preview .lifecycle-delete { border-color: rgba(173,45,58,.2); background: rgba(255,244,245,.84); }
.employee-lifecycle-preview .lifecycle-archive { border-color: rgba(190,122,24,.2); background: rgba(255,249,236,.88); }
.employee-lifecycle-preview .lifecycle-protected { border-color: rgba(99,120,157,.2); background: rgba(245,247,251,.9); }
.employee-lifecycle-list { display: grid; gap: 9px; }
.employee-lifecycle-item { padding: 13px; border: 1px solid var(--line); border-radius: 14px; background: #fff; }
.employee-lifecycle-item.delete { border-color: rgba(173,45,58,.2); }
.employee-lifecycle-item.archive { border-color: rgba(190,122,24,.22); }
.employee-lifecycle-item.protected { background: rgba(245,247,251,.82); }
.employee-lifecycle-item-head { display: grid; grid-template-columns: auto minmax(0,1fr) auto; align-items: center; gap: 10px; }
.employee-lifecycle-item-head > .material-symbols-rounded { display: grid; place-items: center; width: 34px; height: 34px; border-radius: 10px; color: var(--blue); background: var(--blue-open); font-size: 19px; }
.employee-lifecycle-item.delete .employee-lifecycle-item-head > .material-symbols-rounded { color: var(--risk); background: var(--risk-open); }
.employee-lifecycle-item.archive .employee-lifecycle-item-head > .material-symbols-rounded { color: #9a6417; background: #fff4dc; }
.employee-lifecycle-item-head strong, .employee-lifecycle-item-head small { display: block; }
.employee-lifecycle-item-head strong { color: var(--navy); font-size: 12px; }
.employee-lifecycle-item-head small { margin-top: 3px; color: var(--muted); font-size: 9px; }
.employee-lifecycle-item-head em { color: var(--muted); font-size: 9px; font-style: normal; font-weight: 800; }
.employee-lifecycle-item ul { display: grid; gap: 6px; margin: 10px 0 0; padding: 0; list-style: none; }
.employee-lifecycle-item li { display: flex; justify-content: space-between; gap: 10px; padding-top: 7px; border-top: 1px solid rgba(99,120,157,.12); font-size: 9px; }
.employee-lifecycle-item li strong { color: var(--ink); }
.employee-lifecycle-item li span, .employee-lifecycle-item p { color: var(--muted); line-height: 1.5; text-align: right; }
.employee-lifecycle-item p { margin: 9px 0 0; font-size: 9px; text-align: left; }
.danger-note { border-color: rgba(173,45,58,.2); color: #8f2b36; background: rgba(255,244,245,.88); }
.employee-batch-import { min-width: min(720px, 100%); }
.employee-batch-import-intro { display: grid; grid-template-columns: auto minmax(0,1fr); align-items: center; gap: 11px; margin-bottom: 14px; padding: 13px; border: 1px solid rgba(39,100,255,.18); border-radius: 14px; background: rgba(238,244,255,.72); }
.employee-batch-import-intro > .material-symbols-rounded { display: grid; place-items: center; width: 42px; height: 42px; border-radius: 13px; color: var(--blue); background: white; box-shadow: var(--shadow-soft); }
.employee-batch-import-intro strong, .employee-batch-import-intro small { display: block; }
.employee-batch-import-intro strong { color: var(--navy); font-size: 12px; }
.employee-batch-import-intro small { margin-top: 4px; color: var(--muted); font-size: 9px; line-height: 1.5; }
.employee-batch-import-actions { display: grid; grid-template-columns: auto minmax(210px,1fr) auto; align-items: end; gap: 9px; }
.employee-batch-file-label { display: grid; gap: 5px; color: var(--muted); font-size: 9px; font-weight: 750; }
.employee-batch-file-label input { width: 100%; min-width: 0; padding: 7px; border: 1px dashed rgba(39,100,255,.28); border-radius: 10px; background: #fff; }
.employee-batch-preview-head { margin-top: 15px; }
.employee-batch-preview-head .disclosure-summary-grid { grid-template-columns: repeat(3, minmax(0,1fr)); margin: 11px 0; }
.employee-batch-preview-details { margin-top: 11px; overflow: hidden; border: 1px solid var(--line); border-radius: 13px; background: #fff; }
.employee-batch-preview-details > summary { padding: 11px 13px; color: var(--navy); font-size: 10px; font-weight: 820; cursor: pointer; }
.employee-batch-preview-list { display: grid; max-height: 330px; overflow-y: auto; border-top: 1px solid var(--line); }
.employee-batch-preview-row { display: grid; grid-template-columns: minmax(150px,.8fr) auto minmax(200px,1.2fr); align-items: center; gap: 10px; padding: 10px 12px; border-bottom: 1px solid rgba(99,120,157,.12); }
.employee-batch-preview-row:last-child { border-bottom: 0; }
.employee-batch-preview-row strong, .employee-batch-preview-row small { display: block; }
.employee-batch-preview-row strong { color: var(--navy); font-size: 10px; }
.employee-batch-preview-row small { color: var(--muted); font-size: 8.5px; line-height: 1.45; overflow-wrap: anywhere; }
.account-create-box { margin-top: 12px; padding: 12px; border: 1px dashed rgba(39,100,255,.32); border-radius: 13px; background: rgba(232,240,255,.5); }
.account-create-box > .checkbox-line { margin-bottom: 10px; }
.account-directory { margin-top: 14px; }
.account-directory > summary { min-height: 42px; display: flex; align-items: center; }
.structure-motion { animation: structure-change .26s ease both; }

@keyframes org-reveal { from { opacity: 0; transform: translateY(-5px) scaleY(.96); } to { opacity: 1; transform: none; } }
@keyframes panel-swap { from { opacity: 0; transform: translateX(7px); } to { opacity: 1; transform: none; } }
@keyframes structure-change { 0% { opacity: .72; transform: scale(.994); } 100% { opacity: 1; transform: none; } }

.page-enter > * { animation: page-rise .32s ease both; }
.page-enter > *:nth-child(2) { animation-delay: .035s; }
.page-enter > *:nth-child(3) { animation-delay: .07s; }
.interactive-shake:hover { animation: shake-soft .36s ease; }
.shake { animation: shake-soft .36s ease 2; }

@keyframes page-rise { from { opacity: 0; transform: translateY(9px) scale(.992); } to { opacity: 1; transform: none; } }
@keyframes tab-pop { 0% { transform: scale(.92); } 65% { transform: scale(1.04); } 100% { transform: scale(1); } }
@keyframes message-pop { from { opacity: 0; transform: translateY(8px) scale(.96); } to { opacity: 1; transform: none; } }
@keyframes soft-pulse { 50% { opacity: .5; transform: scale(.985); } }
@keyframes shake-soft { 0%,100% { transform: translateX(0); } 25% { transform: translateX(-4px) rotate(-.4deg); } 75% { transform: translateX(4px) rotate(.4deg); } }

.toast { position: fixed; right: 24px; bottom: 24px; max-width: 420px; padding: 13px 16px; border-radius: 12px; background: var(--navy); color: white; box-shadow: var(--shadow); z-index: 180; font-size: 13px; }
.loading { min-height: 360px; display: grid; place-items: center; color: var(--muted); }
.loading::before { content: ""; width: 28px; height: 28px; border: 3px solid var(--line); border-top-color: var(--blue); border-radius: 50%; animation: spin .8s linear infinite; margin-right: 10px; }
@keyframes spin { to { transform: rotate(360deg); } }
.mobile-only { display: none; }

/* 2026-07 visual system · selected concept: Layered Insight Studio */
@font-face {
  font-family: "Material Symbols Rounded";
  src: url("/assets/material-symbols-rounded.ttf") format("truetype");
  font-style: normal;
  font-weight: 400;
  font-display: block;
}

:root {
  --navy: #101e40;
  --navy-2: #1b2d52;
  --blue: #2764ff;
  --blue-dark: #1745c8;
  --blue-open: #e8f0ff;
  --ink: #122044;
  --muted: #71809e;
  --line: rgba(145, 165, 203, .26);
  --surface: rgba(255, 255, 255, .84);
  --soft: rgba(246, 249, 255, .80);
  --soft-2: rgba(236, 243, 255, .86);
  --shadow: 0 22px 58px rgba(60, 84, 135, .12), 0 2px 8px rgba(80, 104, 151, .05);
  --shadow-soft: 0 12px 32px rgba(62, 88, 139, .09);
  --radius: 20px;
  font-family: -apple-system, BlinkMacSystemFont, "SF Pro Display", "SF Pro Text", "PingFang SC", "Microsoft YaHei", system-ui, sans-serif;
}

html, body {
  background-color: #edf5ff;
  background-image: url("/assets/glass-atmosphere-v1.png");
  background-size: cover;
  background-position: center;
  background-attachment: fixed;
}

body {
  color: var(--ink);
  letter-spacing: -.006em;
}

.material-symbols-rounded {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex: 0 0 auto;
  font-family: "Material Symbols Rounded";
  font-weight: 400;
  font-style: normal;
  font-size: 20px;
  line-height: 1;
  letter-spacing: normal;
  text-transform: none;
  white-space: nowrap;
  word-wrap: normal;
  direction: ltr;
  font-feature-settings: "liga";
  -webkit-font-feature-settings: "liga";
  -webkit-font-smoothing: antialiased;
}

.app-shell {
  min-height: 100vh;
  grid-template-columns: 188px minmax(0, 1fr);
  gap: 14px;
  padding: 14px;
  transition: grid-template-columns .28s cubic-bezier(.2, .8, .2, 1);
}

.sidebar {
  position: sticky;
  top: 14px;
  height: calc(100vh - 28px);
  padding: 18px 12px 12px;
  border: 1px solid rgba(255, 255, 255, .78);
  border-radius: 28px;
  color: var(--ink);
  background: rgba(255, 255, 255, .68);
  box-shadow: var(--shadow);
  backdrop-filter: blur(26px) saturate(142%);
  -webkit-backdrop-filter: blur(26px) saturate(142%);
  overflow: hidden;
}

.brand {
  gap: 10px;
  min-height: 60px;
  padding: 2px 10px 18px;
}

.brand-mark {
  width: 38px;
  height: 38px;
  border-radius: 11px;
  font-size: 24px;
  box-shadow: 0 10px 24px rgba(39, 100, 255, .28);
}

.brand strong { color: var(--ink); font-size: 17px; }
.brand span { color: var(--muted); font-size: 10px; }

#nav {
  position: relative;
  display: grid;
  gap: 7px;
  overflow-y: auto;
  padding: 8px 1px 8px 0;
}

.nav-cluster { position: relative; }

.nav-cluster::before {
  content: "";
  position: absolute;
  left: 17px;
  top: 44px;
  bottom: -12px;
  width: 1px;
  background: rgba(72, 107, 175, .18);
  pointer-events: none;
}

.nav-cluster:last-child::before { display: none; }

.nav-item {
  min-width: 0;
  border-radius: 14px;
  color: #50617f;
  transition: color .2s ease, background .2s ease, box-shadow .2s ease, transform .2s ease;
}

.workspace-nav {
  position: relative;
  width: 100%;
  min-height: 48px;
  padding: 8px 9px;
  display: grid;
  grid-template-columns: 22px 24px minmax(0, 1fr) auto;
  gap: 5px;
  text-align: left;
}

.workspace-nav .nav-step {
  color: #8b99b4;
  font-size: 9px;
  font-variant-numeric: tabular-nums;
}

.workspace-nav > .material-symbols-rounded:not(.nav-chevron) { font-size: 21px; }
.workspace-nav strong { min-width: 0; font-size: 12px; font-weight: 760; white-space: nowrap; }
.nav-chevron { color: #8b99b4; font-size: 15px; transition: transform .22s ease; }

.nav-cluster.active > .workspace-nav {
  color: white;
  background: #2f6eff;
  box-shadow: 0 12px 25px rgba(43, 104, 255, .28), inset 0 1px 0 rgba(255, 255, 255, .35);
  transform: translateX(1px);
}

.nav-cluster.active > .workspace-nav .nav-step,
.nav-cluster.active > .workspace-nav .nav-chevron { color: rgba(255, 255, 255, .78); }
.nav-cluster.expanded > .workspace-nav .nav-chevron { transform: rotate(180deg); }
.nav-item:hover { color: var(--blue); background: rgba(235, 242, 255, .74); transform: translateX(2px); }
.nav-cluster.active > .workspace-nav:hover { color: white; background: #2f6eff; }

.nav-submenu {
  max-height: 0;
  opacity: 0;
  overflow: hidden;
  display: grid;
  gap: 3px;
  padding: 0 4px 0 34px;
  transition: max-height .26s ease, opacity .2s ease, padding .24s ease;
}

.nav-cluster.expanded .nav-submenu {
  max-height: 680px;
  opacity: 1;
  padding-top: 6px;
  padding-bottom: 3px;
}

.nav-subitem {
  width: 100%;
  padding: 7px 8px;
  gap: 7px;
  color: #6f7e99;
  font-size: 10px;
}

.nav-subitem .material-symbols-rounded { font-size: 15px; }
.nav-subitem > span { min-width: 0; flex: 1; text-align: left; }
.nav-subitem .nav-sub-chevron {
  margin-left: auto;
  color: #94a0b4;
  font-size: 14px;
  transition: transform .2s ease;
}
.nav-subitem[aria-expanded="true"] .nav-sub-chevron { transform: rotate(180deg); }
.nav-subitem.active { color: var(--blue); background: rgba(228, 237, 255, .82); box-shadow: none; }
.nav-subitem.active > span,
.nav-subitem[aria-expanded="true"] > span { color: var(--blue); }
.nav-tertiary {
  display: none;
  grid-template-columns: 1fr;
  gap: 2px;
  margin: 0 0 4px 21px;
  padding: 2px 0 3px 10px;
  border-left: 1px solid rgba(117, 140, 179, .24);
}
.nav-tertiary.visible { display: grid; }
.nav-tertiary-direct {
  margin-left: 0;
  padding-left: 0;
  border-left: 0;
}
.nav-tertiary button {
  width: 100%;
  padding: 5px 7px;
  border: 0;
  border-radius: 8px;
  color: #8a96aa;
  background: transparent;
  font-family: inherit;
  font-size: 9px;
  text-align: left;
}
.nav-tertiary button:hover { color: var(--blue); background: rgba(235, 242, 255, .78); transform: translateX(2px); }
.nav-tertiary button.active { color: var(--blue); background: rgba(228, 237, 255, .82); font-weight: 760; }

.audit-overview-actions {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-end;
  gap: 8px;
}
.audit-overview-actions .button {
  display: inline-flex;
  align-items: center;
  gap: 6px;
}
.audit-overview-actions .material-symbols-rounded { font-size: 17px; }

.audit-workflow-tabs {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 12px;
  margin-bottom: 16px;
}
.audit-workflow-tabs button {
  display: grid;
  grid-template-columns: auto 1fr auto;
  align-items: center;
  gap: 10px;
  min-height: 64px;
  padding: 12px 16px;
  color: #38506f;
  background: rgba(255, 255, 255, .78);
  border: 1px solid rgba(137, 158, 199, .28);
  border-radius: 18px;
  cursor: pointer;
}
.audit-workflow-tabs button.active {
  color: #fff;
  background: linear-gradient(135deg, #1d3760, #2f6bff);
  border-color: transparent;
  box-shadow: 0 14px 28px rgba(38, 81, 154, .2);
}
.audit-workflow-tabs i { font-size: 22px; }
.audit-workflow-tabs span { text-align: left; font-weight: 750; }
.audit-workflow-tabs strong { font-size: 20px; }
.audit-stage-panel, .audit-confirm-panel {
  margin-bottom: 16px;
  padding: 18px;
  background: rgba(255, 255, 255, .82);
  border: 1px solid rgba(137, 158, 199, .24);
  border-radius: 22px;
}
.audit-confirm-panel {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 18px;
  border-color: rgba(244, 162, 97, .45);
  background: linear-gradient(135deg, rgba(255, 250, 242, .94), rgba(255, 255, 255, .9));
}
.audit-confirm-panel p { margin: 6px 0 0; color: var(--muted); }
.audit-card-rule-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }
.audit-card-rule-grid label { display: grid; gap: 7px; font-weight: 700; color: #314766; }
.audit-card-rule-grid textarea { width: 100%; }

.ai-launcher {
  position: static;
  width: 100%;
  margin-top: auto;
  padding: 10px 9px;
  border: 1px solid rgba(101, 137, 222, .25);
  border-radius: 18px;
  color: var(--ink);
  background: rgba(245, 248, 255, .76);
  box-shadow: 0 12px 26px rgba(47, 107, 255, .10);
  backdrop-filter: blur(18px);
}

.ai-launcher:hover { color: white; background: #173875; transform: translateY(-2px); }
.ai-launcher-mark {
  width: 34px;
  height: 34px;
  border-radius: 50%;
  box-shadow: 0 0 0 6px rgba(47, 107, 255, .10), 0 10px 20px rgba(47, 107, 255, .25);
}
.ai-launcher > span:nth-child(2) { flex: 1; text-align: left; font-size: 10px; }
.ai-launcher kbd { color: #8290ab; background: transparent; font-size: 8px; }

.privacy-note {
  margin-top: 8px;
  padding: 10px 8px 7px;
  border-top: 0;
  color: var(--ink);
}
.privacy-note strong { font-size: 9px; }
.privacy-note small { color: var(--muted); font-size: 8px; }
.status-dot { width: 7px; height: 7px; background: #28ad74; box-shadow: 0 0 0 4px rgba(40, 173, 116, .11); }

.sidebar-collapse {
  min-height: 34px;
  padding: 5px 8px;
  border: 1px solid rgba(137, 155, 190, .18);
  border-radius: 12px;
  color: #76849e;
  background: rgba(255, 255, 255, .48);
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 5px;
  font-size: 9px;
}
.sidebar-collapse .material-symbols-rounded { font-size: 15px; }

.app-shell.sidebar-collapsed { grid-template-columns: 76px minmax(0, 1fr); }
.app-shell.sidebar-collapsed .sidebar { padding-left: 9px; padding-right: 9px; }
.app-shell.sidebar-collapsed .brand > div:last-child,
.app-shell.sidebar-collapsed .workspace-nav strong,
.app-shell.sidebar-collapsed .workspace-nav .nav-step,
.app-shell.sidebar-collapsed .workspace-nav .nav-chevron,
.app-shell.sidebar-collapsed .nav-submenu,
.app-shell.sidebar-collapsed .ai-launcher > span:nth-child(2),
.app-shell.sidebar-collapsed .ai-launcher kbd,
.app-shell.sidebar-collapsed .privacy-note,
.app-shell.sidebar-collapsed .sidebar-collapse span { display: none; }
.app-shell.sidebar-collapsed .brand { justify-content: center; padding-left: 0; padding-right: 0; }
.app-shell.sidebar-collapsed .workspace-nav { grid-template-columns: 1fr; justify-items: center; padding: 10px 5px; }
.app-shell.sidebar-collapsed .nav-cluster::before { left: 50%; }
.app-shell.sidebar-collapsed .ai-launcher { justify-content: center; padding: 9px; }
.app-shell.sidebar-collapsed .sidebar-collapse .material-symbols-rounded { transform: rotate(180deg); }

.main { min-width: 0; }

.topbar {
  min-height: 64px;
  height: auto;
  padding: 8px 10px 8px 14px;
  border: 1px solid rgba(255, 255, 255, .78);
  border-radius: 22px;
  background: rgba(255, 255, 255, .72);
  box-shadow: var(--shadow-soft);
  backdrop-filter: blur(24px) saturate(140%);
  -webkit-backdrop-filter: blur(24px) saturate(140%);
  display: grid;
  grid-template-columns: minmax(180px, 1fr) minmax(0, 554px) auto;
  gap: 10px;
  top: 14px;
  z-index: 40;
}

.top-title {
  position: absolute;
  left: 18px;
  top: calc(100% + 12px);
  pointer-events: none;
  opacity: 0;
}

.command-search {
  position: relative;
  min-width: 0;
  height: 44px;
  display: grid;
  grid-template-columns: 24px minmax(0, 1fr) auto;
  align-items: center;
  gap: 8px;
  color: #7c8ba7;
}

.command-search > .material-symbols-rounded { color: var(--blue); }
.command-search input {
  min-width: 0;
  width: 100%;
  height: 40px;
  padding: 0;
  border: 0;
  color: var(--ink);
  background: transparent;
  font-size: 11px;
}
.command-search input:focus { border: 0; box-shadow: none; }
.command-search kbd {
  padding: 4px 7px;
  border: 1px solid rgba(128, 146, 181, .22);
  border-radius: 7px;
  color: #7b89a3;
  background: rgba(244, 247, 253, .76);
  font-size: 9px;
}

.command-search-results {
  position: absolute;
  left: -8px;
  right: -20px;
  top: calc(100% + 10px);
  z-index: 60;
  padding: 8px;
  border: 1px solid rgba(255, 255, 255, .88);
  border-radius: 16px;
  background: rgba(255, 255, 255, .92);
  box-shadow: var(--shadow);
  backdrop-filter: blur(22px);
}
.command-search-result {
  width: 100%;
  padding: 10px 11px;
  border: 0;
  border-radius: 11px;
  display: grid;
  grid-template-columns: 28px minmax(0, 1fr) auto;
  align-items: center;
  gap: 8px;
  color: var(--ink);
  background: transparent;
  text-align: left;
}
.command-search-result:hover,
.command-search-result.is-selected { background: var(--blue-open); }
.command-search-result .material-symbols-rounded { color: var(--blue); font-size: 18px; }
.command-search-result strong,
.command-search-result small { display: block; }
.command-search-result strong { font-size: 10px; }
.command-search-result small { margin-top: 2px; color: var(--muted); font-size: 8px; }
.command-search-result > small { margin: 0; }

.filter-bar {
  margin: 0;
  padding: 0;
  border: 0;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
  flex-wrap: nowrap;
  align-items: center;
  gap: 4px;
  min-width: 0;
  max-width: 100%;
  overflow-x: auto;
}

.filter-bar label {
  position: relative;
  height: 40px;
  padding: 0 6px;
  border: 1px solid rgba(129, 150, 189, .22);
  border-radius: 11px;
  background: rgba(255, 255, 255, .70);
  display: flex;
  align-items: center;
  gap: 4px;
}
.filter-bar label > span { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }
.filter-bar label > .material-symbols-rounded { color: #52688f; font-size: 16px; }
.filter-bar select,
.filter-bar input[type="date"] {
  min-width: 0;
  width: auto;
  height: 36px;
  padding: 0 2px;
  border: 0;
  background: transparent;
  font-size: 9px;
}
.filter-bar #scopeFilter { width: 74px; }
.filter-bar #grainFilter { width: 70px; }
.filter-bar input[type="date"] { width: 114px; }
.filter-bar .date-range-control + .range-separator { color: #8c99b1; font-size: 8px; }
.filter-bar .button {
  width: 38px;
  height: 38px;
  padding: 0;
  border-radius: 11px;
  display: inline-grid;
  place-items: center;
}
.filter-bar .button .material-symbols-rounded { font-size: 18px; }
.filter-bar .button span { display: none; }
.filter-range-note,
.filter-bar > .badge { display: none !important; }

.top-actions { gap: 5px; }
.top-icon-action {
  width: 38px;
  height: 38px;
  border-radius: 11px;
  color: #45597e;
}
.top-icon-action:hover { color: var(--blue); background: var(--blue-open); transform: translateY(-1px); }
.top-icon-action .material-symbols-rounded { font-size: 18px; }
.account-button {
  min-width: 128px;
  height: 42px;
  border-color: rgba(128, 148, 187, .20);
  border-radius: 13px;
  background: rgba(255, 255, 255, .72);
}
.account-button > span:first-child {
  border-radius: 50%;
  box-shadow: 0 8px 18px rgba(39, 100, 255, .23);
}
.account-button i.material-symbols-rounded { font-size: 16px; }

.content { padding: 28px 0 38px; }
.notice { margin: 16px 0 0; border-radius: 14px; }
.page-head { align-items: flex-start; margin-bottom: 18px; }
.page-head h2 { font-size: 22px; letter-spacing: -.035em; }
.page-head p { color: #77849c; font-size: 10px; }

.card,
.kpi,
.settings-section,
.external-status-card,
.access-summary article,
.access-user,
.access-role,
.audit-list {
  border-color: rgba(135, 157, 199, .22);
  background: rgba(255, 255, 255, .78);
  box-shadow: var(--shadow-soft);
  backdrop-filter: blur(18px) saturate(125%);
  -webkit-backdrop-filter: blur(18px) saturate(125%);
}
.card { border-radius: 20px; padding: 18px; }
.card:hover { border-color: rgba(80, 121, 215, .28); box-shadow: 0 18px 42px rgba(62, 88, 139, .13); }
.kpi { border-radius: 18px; }
.kpi:hover { transform: translateY(-3px) scale(1.01); }

.hub-tabs {
  border-color: rgba(135, 157, 199, .20);
  border-radius: 14px;
  background: rgba(255, 255, 255, .72);
  box-shadow: var(--shadow-soft);
  backdrop-filter: blur(18px);
}
.hub-tab { border-radius: 10px; }
.hub-tab.active { background: var(--blue); box-shadow: 0 8px 18px rgba(39, 100, 255, .24); }

/* Selected dashboard composition */
.overview-shell { display: grid; gap: 14px; }

.overview-intro {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 22px;
  padding: 2px 10px 0;
}
.overview-intro .overview-eyebrow {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  color: var(--blue);
  font-size: 9px;
  font-weight: 800;
  letter-spacing: .08em;
  text-transform: uppercase;
}
.overview-intro h2 {
  margin: 6px 0 0;
  color: var(--ink);
  font-size: clamp(27px, 2.1vw, 34px);
  line-height: 1.08;
  letter-spacing: -.055em;
}
.overview-intro p {
  margin: 6px 0 0;
  color: #71809b;
  font-size: 10px;
  line-height: 1.6;
}
.overview-intro .overview-period {
  flex: 0 0 auto;
  padding: 8px 11px;
  border: 1px solid rgba(137, 157, 194, .19);
  border-radius: 12px;
  color: #667590;
  background: rgba(255, 255, 255, .54);
  font-size: 9px;
}

.overview-kpi-ribbon {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  padding: 10px;
  border: 1px solid rgba(255, 255, 255, .82);
  border-radius: 24px;
  background: rgba(255, 255, 255, .68);
  box-shadow: var(--shadow);
  backdrop-filter: blur(24px) saturate(132%);
}

.overview-kpi {
  position: relative;
  min-width: 0;
  min-height: 132px;
  padding: 14px 15px 11px 56px;
  border-right: 1px solid rgba(137, 158, 199, .18);
  transition: background .2s ease, transform .2s ease;
}
.overview-kpi:last-child { border-right: 0; }
.overview-kpi.is-disclosure { border-top: 0; border-bottom: 0; border-left: 0; color: inherit; font: inherit; text-align: left; cursor: pointer; }
.overview-kpi.is-disclosure:hover { z-index: 2; border-radius: 16px; background: rgba(255, 255, 255, .76); transform: translateY(-3px); }
.overview-kpi.is-disclosure:focus-visible { z-index: 3; outline: 3px solid rgba(47, 109, 246, .34); outline-offset: -3px; border-radius: 16px; }
.overview-kpi.is-static:hover { transform: none; background: transparent; }
.overview-kpi-icon {
  position: absolute;
  left: 13px;
  top: 15px;
  width: 34px;
  height: 34px;
  border-radius: 11px;
  display: grid;
  place-items: center;
  color: var(--kpi-color, var(--blue));
  background: var(--kpi-soft, #e8f0ff);
}
.overview-kpi-icon .material-symbols-rounded { font-size: 19px; }
.overview-kpi-label { color: #66758f; font-size: 10px; font-weight: 700; }
.overview-kpi-value {
  margin-top: 8px;
  color: var(--ink);
  font-size: clamp(23px, 2vw, 31px);
  font-weight: 770;
  letter-spacing: -.035em;
  font-variant-numeric: tabular-nums;
}
.overview-kpi-foot {
  margin-top: 6px;
  display: flex;
  align-items: center;
  gap: 7px;
  color: #7b89a2;
  font-size: 8px;
}
.overview-kpi-delta { color: #2f68ea; font-weight: 800; }
.overview-kpi-delta.down { color: #d15e5e; }
.overview-kpi-spark {
  position: absolute;
  left: 56px;
  right: 13px;
  bottom: 9px;
  height: 28px;
}
.overview-kpi-spark svg { width: 100%; height: 100%; overflow: visible; }

.overview-stage {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 280px;
  gap: 16px;
  align-items: stretch;
}

.overview-hero-card,
.business-timeline,
.next-focus {
  border: 1px solid rgba(255, 255, 255, .82);
  border-radius: 24px;
  background: rgba(255, 255, 255, .74);
  box-shadow: var(--shadow);
  backdrop-filter: blur(24px) saturate(128%);
  -webkit-backdrop-filter: blur(24px) saturate(128%);
}

.overview-hero-card {
  position: relative;
  min-width: 0;
  padding: 19px 20px 12px;
  overflow: hidden;
}
.overview-card-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 16px;
  margin-bottom: 8px;
}
.overview-card-head h3 { margin: 0; color: var(--ink); font-size: 14px; }
.overview-card-head p { margin: 5px 0 0; color: var(--muted); font-size: 9px; }
.overview-trend-controls { display: flex; flex: 0 0 auto; gap: 8px; align-items: flex-end; }
.overview-trend-metric-label { display: grid; gap: 4px; color: #74829d; font-size: 8px; font-weight: 800; }
.overview-trend-metric-label select { min-height: 36px; min-width: 128px; padding: 6px 28px 6px 9px; border: 1px solid rgba(129, 150, 190, .25); border-radius: 10px; color: var(--navy); background: rgba(255, 255, 255, .92); font-size: 10px; font-weight: 800; }
.overview-grain-switch { display: flex; gap: 3px; padding: 3px; border: 1px solid rgba(129, 150, 190, .18); border-radius: 10px; background: rgba(244, 247, 253, .70); }
.overview-grain-switch button { min-width: 36px; min-height: 36px; padding: 6px 8px; border: 0; border-radius: 7px; color: #74829d; background: transparent; font-size: 9px; }
.overview-grain-switch button.active { color: white; background: var(--blue); box-shadow: 0 5px 12px rgba(39, 100, 255, .22); }
.overview-hero-card .legend { margin: 5px 0 -2px; }
.overview-hero-card .chart { min-height: 254px; }
.overview-hero-card .chart svg { min-height: 248px; }
.overview-hero-card .chart-smoothing-toggle { top: 4px; }
.overview-hero-card .chart.chart-expandable::after { right: 6px; top: 4px; }
.overview-hero-note {
  margin-top: -4px;
  padding: 10px 12px;
  border-radius: 12px;
  color: #64738e;
  background: rgba(239, 244, 253, .72);
  font-size: 9px;
  line-height: 1.55;
}

.business-timeline {
  padding: 19px 14px 14px;
  overflow: hidden;
}
.timeline-head { display: flex; align-items: center; justify-content: space-between; gap: 10px; padding: 0 4px 12px; }
.timeline-head h3 { margin: 0; color: var(--ink); font-size: 14px; }
.timeline-head button { border: 0; color: var(--blue); background: transparent; font-size: 9px; }
.timeline-list { display: grid; gap: 5px; }
.timeline-event {
  position: relative;
  width: 100%;
  padding: 11px 9px 11px 31px;
  border: 1px solid transparent;
  border-radius: 15px;
  color: var(--ink);
  background: transparent;
  text-align: left;
  transition: background .2s ease, border-color .2s ease, transform .2s ease;
}
.timeline-event::before {
  content: "";
  position: absolute;
  left: 11px;
  top: 17px;
  width: 8px;
  height: 8px;
  border: 2px solid white;
  border-radius: 50%;
  background: #8fa0be;
  box-shadow: 0 0 0 1px rgba(98, 119, 159, .35);
}
.timeline-event::after {
  content: "";
  position: absolute;
  left: 16px;
  top: 28px;
  bottom: -11px;
  width: 1px;
  background: rgba(100, 127, 181, .22);
}
.timeline-event:last-child::after { display: none; }
.timeline-event:hover,
.timeline-event.active {
  border-color: rgba(39, 100, 255, .40);
  background: rgba(240, 245, 255, .84);
  transform: translateX(2px);
}
.timeline-event.active::before { background: var(--blue); box-shadow: 0 0 0 5px rgba(39, 100, 255, .12); }
.timeline-date { display: block; color: #8290aa; font-size: 8px; font-variant-numeric: tabular-nums; }
.timeline-event strong { display: block; margin-top: 5px; font-size: 11px; }
.timeline-event small { display: block; margin-top: 4px; color: #6f7e98; font-size: 8px; line-height: 1.5; }
.timeline-event .material-symbols-rounded { position: absolute; right: 9px; top: 50%; color: #8d9ab2; font-size: 15px; transform: translateY(-50%); }

.next-focus {
  padding: 14px;
}
.next-focus-head { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-bottom: 10px; }
.next-focus-head h3 { margin: 0; color: var(--ink); font-size: 13px; }
.next-focus-head span { color: var(--muted); font-size: 8px; }
.next-focus-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; }
.focus-card {
  position: relative;
  min-width: 0;
  min-height: 104px;
  padding: 13px 42px 12px 43px;
  border: 1px solid rgba(139, 159, 198, .18);
  border-radius: 16px;
  color: var(--ink);
  background: rgba(255, 255, 255, .58);
  text-align: left;
  transition: transform .2s ease, box-shadow .2s ease, border-color .2s ease;
}
.focus-card:hover { border-color: rgba(39, 100, 255, .32); box-shadow: 0 12px 26px rgba(52, 82, 145, .10); transform: translateY(-3px); }
.focus-card > .material-symbols-rounded:first-child {
  position: absolute;
  left: 12px;
  top: 13px;
  width: 24px;
  height: 24px;
  border-radius: 8px;
  color: var(--focus-color, var(--blue));
  background: var(--focus-soft, var(--blue-open));
  font-size: 15px;
}
.focus-card > .material-symbols-rounded:last-child { position: absolute; right: 12px; top: 14px; color: #8a98b1; font-size: 15px; }
.focus-card strong { display: block; font-size: 11px; }
.focus-card span { display: block; margin-top: 7px; color: #71809a; font-size: 8px; line-height: 1.55; }
.focus-card b { display: block; margin-top: 7px; color: var(--blue); font-size: 9px; }

.chart-tooltip {
  padding: 9px 11px;
  border: 1px solid rgba(255, 255, 255, .75);
  border-radius: 11px;
  color: var(--ink);
  background: rgba(255, 255, 255, .92);
  box-shadow: var(--shadow-soft);
  backdrop-filter: blur(16px);
}

.module-panel-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 18px;
}
.module-panel-head h3 {
  margin: 4px 0 0;
  color: var(--ink);
  font-size: 17px;
  letter-spacing: -.025em;
}
.module-panel-head p {
  margin: 6px 0 0;
  max-width: 760px;
  color: #74829a;
  font-size: 10px;
  line-height: 1.65;
}
.module-panel-head > div > span {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  color: var(--blue);
  font-size: 9px;
  font-weight: 750;
  letter-spacing: .04em;
  text-transform: uppercase;
}
.module-panel {
  animation: modulePanelIn .36s cubic-bezier(.2, .8, .2, 1) both;
}
.module-panel[hidden] { display: none !important; }
@keyframes modulePanelIn {
  from { opacity: 0; transform: translateY(10px) scale(.995); }
  to { opacity: 1; transform: none; }
}
.module-panel-head {
  margin-bottom: 14px;
  padding: 17px 18px;
  border: 1px solid rgba(139, 159, 198, .20);
  border-radius: 20px;
  background: rgba(255, 255, 255, .52);
  backdrop-filter: blur(18px);
}
.module-panel-head .button { align-self: center; flex: 0 0 auto; }
.module-method-note {
  margin-bottom: 14px;
  border: 1px solid rgba(139, 159, 198, .18);
  border-radius: 16px;
  background: rgba(248, 250, 253, .72);
}
.module-method-note summary {
  display: flex;
  align-items: center;
  gap: 7px;
  padding: 12px 14px;
  color: #53617a;
  cursor: pointer;
  font-size: 9px;
  font-weight: 700;
  list-style: none;
}
.module-method-note summary::-webkit-details-marker { display: none; }
.module-method-note summary .material-symbols-rounded { color: var(--blue); font-size: 16px; }
.module-method-note p { margin: 0; padding: 0 14px 13px; color: #77859c; font-size: 9px; line-height: 1.65; }

.audit-tabs {
  display: flex;
  gap: 8px;
  overflow-x: auto;
  margin: 0 0 18px;
  padding: 6px;
  border: 1px solid var(--line);
  border-radius: 18px;
  background: rgba(255,255,255,.78);
  box-shadow: 0 12px 30px rgba(20,33,61,.06);
}
.audit-tabs button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  flex: 1 0 auto;
  min-height: 42px;
  padding: 8px 16px;
  border: 0;
  border-radius: 13px;
  background: transparent;
  color: var(--muted);
  font: inherit;
  font-weight: 700;
  cursor: pointer;
}
.audit-tabs button.active { background: var(--navy); color: #fff; box-shadow: 0 8px 22px rgba(20,33,61,.18); }
.audit-tabs i { font-size: 20px; }
.audit-workspace { display: grid; gap: 18px; }
.audit-kpis { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.audit-form-meta {
  display: grid;
  grid-template-columns: minmax(250px, 1.35fr) repeat(5, minmax(120px, .55fr));
  gap: 16px;
  align-items: end;
  padding: 22px;
  border-radius: 22px;
  color: #fff;
  background:
    radial-gradient(circle at 8% 15%, rgba(75,123,255,.32), transparent 30%),
    linear-gradient(135deg, #14213d 0%, #203a67 100%);
  box-shadow: 0 18px 45px rgba(20,33,61,.18);
}
.audit-form-meta h3, .audit-settings-intro h3, .audit-archive-head h3, .audit-detail-head h3 { margin: 5px 0; }
.audit-form-meta p, .audit-settings-intro p, .audit-archive-head p, .audit-detail-head p { margin: 0; opacity: .8; }
.audit-form-meta label, .audit-standard-fields label, .audit-general-note label, .audit-finding-controls label {
  display: grid;
  gap: 7px;
  font-size: 12px;
  font-weight: 700;
}
.audit-form-meta input, .audit-form-meta select {
  width: 100%;
  min-height: 42px;
  border: 1px solid rgba(255,255,255,.18);
  border-radius: 12px;
  background: rgba(255,255,255,.11);
  color: #fff;
  padding: 8px 10px;
  font: inherit;
}
.audit-form-meta select option { color: #111827; }
.audit-form-control {
  overflow: hidden;
  border: 1px solid #d8e1ef;
  border-radius: 20px;
  background: #fff;
  box-shadow: 0 12px 32px rgba(20,33,61,.09);
}
.audit-form-control > summary {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 14px;
  padding: 15px 20px;
  cursor: pointer;
  list-style: none;
  color: var(--navy);
  font-size: 14px;
  font-weight: 800;
}
.audit-form-control > summary::-webkit-details-marker { display: none; }
.audit-form-control > summary span { display: inline-flex; align-items: center; gap: 8px; }
.audit-form-control > summary i { color: var(--blue); }
.audit-form-control > summary small { color: var(--muted); font-size: 12px; font-weight: 700; }
.audit-form-control > summary small b { color: var(--navy); }
.audit-form-control > summary::after { content: "展开"; color: var(--blue); font-size: 12px; }
.audit-form-control[open] > summary::after { content: "收起"; }
.audit-form-control > .audit-form-meta { border-radius: 0; box-shadow: none; }
.audit-live-summary {
  position: static;
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 1px;
  overflow: hidden;
  border: 1px solid #dfe6f1;
  border-radius: 18px;
  background: #dfe6f1;
  box-shadow: 0 12px 35px rgba(20,33,61,.11);
}
.audit-live-summary > div { display: grid; gap: 4px; padding: 13px 16px; background: rgba(255,255,255,.96); }
.audit-live-summary span { color: var(--muted); font-size: 11px; font-weight: 700; }
.audit-live-summary strong { color: var(--navy); font-size: 17px; }
.audit-live-summary.sss-triggered { border-color: #ef9a9a; background: #ef9a9a; }
.audit-live-summary.sss-triggered > div:last-child { background: #fff0f0; }
.audit-live-summary.sss-triggered > div:last-child strong { color: #a52a2a; }
.audit-page-actions { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 9px; }
.audit-page-actions .button { min-height: 42px; white-space: nowrap; }
.audit-realtime-filters {
  display: grid;
  grid-template-columns: minmax(160px, 1fr) repeat(3, minmax(170px, 1fr));
  gap: 12px;
  align-items: end;
  padding: 14px 16px;
  border: 1px solid #dfe6f1;
  border-radius: 16px;
  background: #fff;
}
.audit-filter-title { display: grid; grid-template-columns: auto 1fr; gap: 3px 8px; align-items: center; color: var(--navy); }
.audit-filter-title i { grid-row: 1 / span 2; color: var(--blue); }
.audit-filter-title small { color: var(--muted); font-size: 11px; }
.audit-realtime-filters label { display: grid; gap: 6px; color: #52617a; font-size: 11px; font-weight: 800; }
.audit-realtime-filters select { min-height: 40px; border: 1px solid #d7dfec; border-radius: 10px; background: #f8faff; color: var(--navy); padding: 7px 9px; font: inherit; font-size: 13px; font-weight: 700; }
.audit-section-list { display: grid; gap: 12px; }
.audit-section {
  overflow: hidden;
  border: 1px solid var(--line);
  border-radius: 18px;
  background: rgba(255,255,255,.88);
  box-shadow: 0 10px 28px rgba(20,33,61,.055);
}
.audit-section > summary {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 14px;
  padding: 17px 20px;
  cursor: pointer;
  list-style: none;
}
.audit-section > summary::-webkit-details-marker { display: none; }
.audit-section > summary::after { content: "＋"; color: var(--blue); font-size: 22px; transition: transform .22s ease; }
.audit-section[open] > summary::after { content: "－"; }
.audit-section > summary span { color: var(--muted); font-size: 12px; margin-left: auto; }
.audit-items { display: grid; gap: 10px; padding: 0 14px 14px; }
.audit-hierarchy-label { margin: 0 !important; color: #61708a !important; font-size: 10px !important; font-weight: 800; letter-spacing: .06em; }
.audit-section > summary { flex-wrap: wrap; }
.audit-section > summary strong { min-width: 180px; }
.audit-check-groups { display: grid; gap: 10px; padding: 0 12px 12px; }
.audit-check-group {
  overflow: hidden; border: 1px solid #dfe6f1; border-radius: 14px; background: #f9fbfe;
  transition: border-color .22s ease, background .22s ease, box-shadow .22s ease;
}
.audit-check-group > summary { display: grid; grid-template-columns: auto minmax(0, 1fr) auto auto; gap: 10px; align-items: center; padding: 12px 14px; cursor: pointer; list-style: none; }
.audit-check-group > summary::-webkit-details-marker { display: none; }
.audit-check-group > summary::after { content: "＋"; color: var(--blue); font-size: 18px; transition: transform .22s ease; }
.audit-check-group[open] > summary::after { content: "－"; }
.audit-check-group > summary > span:last-child { color: var(--muted); font-size: 11px; text-align: right; }
.audit-check-group.audit-group-good { border-color: #addbbb; background: #f1fbf4; }
.audit-check-group.audit-group-good > summary { background: linear-gradient(90deg, rgba(229,248,234,.86), rgba(245,252,247,.66)); }
.audit-check-group.audit-group-partial { border-color: #ebcf86; background: #fff8e8; }
.audit-check-group.audit-group-partial > summary { background: linear-gradient(90deg, rgba(255,242,207,.9), rgba(255,250,238,.7)); }
.audit-check-group.audit-group-all-issue { border-color: #e9aaaa; background: #fff0f0; }
.audit-check-group.audit-group-all-issue > summary { background: linear-gradient(90deg, rgba(255,223,223,.9), rgba(255,244,244,.72)); }
.audit-check-group.audit-group-good > summary > span:last-child { color: #27733b; }
.audit-check-group.audit-group-partial > summary > span:last-child { color: #8a5a18; }
.audit-check-group.audit-group-all-issue > summary > span:last-child { color: #a12d2d; }
.audit-group-state-motion { animation: auditGroupState .3s cubic-bezier(.2,.8,.2,1) both; }
.audit-item {
  display: grid;
  gap: 12px;
  padding: 16px;
  border: 1px solid #e5eaf2;
  border-radius: 16px;
  background: #fff;
  transition: border-color .2s ease, box-shadow .2s ease, transform .2s ease, background .2s ease;
}
.audit-item.audit-item-saved { border-color: #b7dfc5; background: linear-gradient(135deg, #fff 0%, #f5fff7 100%); }
.audit-item-sss { border-color: #f1b7b7; background: linear-gradient(135deg, #fff 0%, #fff7f7 100%); }
.audit-item-head { display: grid; grid-template-columns: 155px minmax(0, 1fr) 110px; gap: 12px; align-items: center; }
.audit-item-head > div { display: flex; gap: 7px; align-items: center; }
.audit-code { display: inline-flex; align-items: center; justify-content: center; min-width: 54px; padding: 4px 8px; border-radius: 9px; background: #e9efff; color: #284c9d; font-size: 11px; font-weight: 800; }
.audit-score-label { color: var(--muted); text-align: right; font-size: 12px; font-weight: 700; }
.audit-standard-detail { border-radius: 12px; background: #f7f9fc; }
.audit-standard-detail summary { padding: 9px 12px; color: #456; cursor: pointer; font-size: 12px; font-weight: 700; }
.audit-standard-detail p { margin: 0; padding: 0 12px 12px; color: #4d596c; line-height: 1.75; }
.audit-standard-detail small { display: block; padding: 0 12px 12px; color: #8a5a23; }
.audit-criterion { padding: 10px 12px; border-left: 3px solid #b9ccfa; border-radius: 0 11px 11px 0; background: #f5f8ff; }
.audit-criterion small { color: #5270b0; font-size: 10px; font-weight: 800; letter-spacing: .05em; }
.audit-criterion p { margin: 4px 0 0; color: #43516b; font-size: 13px; line-height: 1.65; }
.audit-criterion em { display: block; margin-top: 6px; color: #8a5a23; font-size: 11px; font-style: normal; }
.audit-levels { display: flex; flex-wrap: wrap; gap: 8px; }
.audit-levels label {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  min-height: 36px;
  padding: 7px 11px;
  border: 1px solid #dfe5ef;
  border-radius: 12px;
  cursor: pointer;
  background: #fff;
  font-size: 12px;
  font-weight: 700;
}
.audit-levels label.selected { border-color: var(--blue); background: #edf3ff; color: #234b9f; box-shadow: 0 0 0 2px rgba(47,107,255,.09); transform: translateY(-1px); }
.audit-levels input { accent-color: var(--blue); }
.audit-levels small { color: var(--muted); }
.audit-evidence {
  display: none;
  grid-template-columns: minmax(0, 1.5fr) minmax(220px, .5fr);
  gap: 12px;
  padding: 13px;
  border-radius: 14px;
  background: #fff8ec;
  border: 1px solid #f4dfb8;
}
.audit-evidence.visible { display: grid; }
.audit-evidence label { display: grid; gap: 6px; color: #5e4b2d; font-size: 12px; font-weight: 700; }
.audit-evidence textarea, .audit-general-note textarea, .audit-standard-fields input, .audit-standard-fields select, .audit-standard-fields textarea,
.audit-settings-grid textarea, .audit-rule-fields input, .audit-finding-controls input, .audit-finding-controls select, .audit-finding-controls textarea {
  width: 100%;
  border: 1px solid #dce3ee;
  border-radius: 11px;
  background: #fff;
  padding: 9px 10px;
  color: #243045;
  font: inherit;
}
.audit-evidence input[type="file"], .audit-finding-controls input[type="file"] { padding: 8px; border: 1px dashed #c8d2e1; border-radius: 10px; background: #fff; }
.audit-staff-field { display: grid; gap: 8px; color: #fff; font-size: 12px; font-weight: 700; }
.audit-staff-field > small { color: rgba(255,255,255,.72); font-weight: 500; }
.audit-staff-picker, .audit-responsible-options { display: flex; flex-wrap: wrap; gap: 8px; }
.audit-staff-picker label, .audit-responsible-options label { display: inline-flex; align-items: center; gap: 6px; min-height: 36px; padding: 7px 10px; border: 1px solid rgba(255,255,255,.26); border-radius: 10px; color: #fff; cursor: pointer; transition: transform .2s ease, background .2s ease; }
.audit-responsible-options label { border-color: #cbd7ea; color: var(--navy); background: #fff; }
.audit-staff-picker label:has(input:checked), .audit-responsible-options label:has(input:checked) { background: rgba(47,107,255,.28); transform: translateY(-1px); }
.audit-responsible-options label:has(input:checked) { background: #eaf1ff; border-color: var(--blue); }
.audit-staff-empty { padding: 10px; border: 1px dashed rgba(255,255,255,.5); border-radius: 10px; color: rgba(255,255,255,.82); line-height: 1.55; }
.audit-setup-action { display: flex; align-items: end; }
.audit-setup-notice { display: flex; align-items: flex-start; gap: 12px; padding: 18px; border: 1px solid #cddaf2; border-radius: 16px; background: linear-gradient(135deg, #f6f9ff, #fff); color: var(--navy); animation: auditReveal .22s ease both; }
.audit-setup-notice i { color: var(--blue); font-size: 28px; }.audit-setup-notice strong { display: block; margin-bottom: 4px; }.audit-setup-notice p { margin: 0; color: var(--muted); line-height: 1.6; }
.audit-responsible-field { display: none; gap: 8px; margin: 0; padding: 10px; border: 1px solid #e2e8f1; border-radius: 11px; }.audit-responsible-field.visible { display: grid; animation: auditReveal .2s ease both; }.audit-responsible-field legend { padding: 0 5px; color: var(--navy); font-size: 12px; font-weight: 800; }
.audit-existing-photos { display: flex; flex-wrap: wrap; gap: 8px; }.audit-existing-photos a { display: block; width: 72px; height: 72px; overflow: hidden; border: 1px solid #d9e2f0; border-radius: 10px; background: #f8faff; }.audit-existing-photos img { width: 100%; height: 100%; object-fit: cover; }
.audit-staff-motion { animation: auditItemSaved .22s ease both; }
.audit-item-save-row { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding-top: 2px; }
.audit-item-save-state { display: inline-flex; align-items: center; gap: 6px; font-size: 12px; font-weight: 800; }
.audit-item-save-state::before { content: ""; width: 8px; height: 8px; border-radius: 50%; background: currentColor; }
.audit-item-save-state.pending { color: #8a5a23; }
.audit-item-save-state.saved { color: #28743b; }
.audit-general-note { padding: 18px; border: 1px solid var(--line); border-radius: 18px; background: #fff; }
.audit-form-page-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 20px; padding: 4px 2px; }
.audit-form-page-head h1 { margin: 5px 0; color: var(--navy); font-size: 26px; }
.audit-form-page-head p { margin: 0; color: var(--muted); }
.page-state-motion { animation: auditPageIn .24s cubic-bezier(.2,.8,.2,1) both; }
.audit-filter-motion { animation: auditFilterIn .18s ease both; }
.audit-disclosure-motion[open] > :not(summary) { animation: auditReveal .22s cubic-bezier(.2,.8,.2,1) both; }
.audit-item-motion { animation: auditItemPending .2s ease both; }
.audit-item-saved-motion { animation: auditItemSaved .28s cubic-bezier(.2,.8,.2,1) both; }
.audit-save-motion { animation: auditSavePulse .24s ease both; }
@keyframes auditPageIn { from { opacity: .3; transform: translateY(5px); } to { opacity: 1; transform: translateY(0); } }
@keyframes auditFilterIn { from { opacity: .38; transform: translateY(4px); } to { opacity: 1; transform: translateY(0); } }
@keyframes auditReveal { from { opacity: 0; transform: translateY(-6px); } to { opacity: 1; transform: translateY(0); } }
@keyframes auditItemPending { 0% { box-shadow: 0 0 0 0 rgba(47,107,255,0); } 55% { box-shadow: 0 0 0 4px rgba(47,107,255,.12); } 100% { box-shadow: none; } }
@keyframes auditItemSaved { 0% { transform: scale(.985); } 55% { transform: scale(1.008); box-shadow: 0 0 0 4px rgba(56,154,77,.13); } 100% { transform: scale(1); box-shadow: none; } }
@keyframes auditSavePulse { 0% { opacity: .78; } 100% { opacity: 1; } }
@keyframes auditGroupState { 0% { opacity: .72; transform: translateY(2px); } 100% { opacity: 1; transform: translateY(0); } }
.table-actions { display: flex; flex-wrap: wrap; gap: 6px; }

body.audit-form-standalone { background: #f3f6fb; }
body.audit-form-standalone .sidebar,
body.audit-form-standalone .topbar,
body.audit-form-standalone #notice,
body.audit-form-standalone #aiPanel,
body.audit-form-standalone #chartTooltip,
body.audit-form-standalone #interactionHint { display: none !important; }
body.audit-form-standalone .app-shell { display: block; min-height: 100vh; }
body.audit-form-standalone .main { min-height: 100vh; }
body.audit-form-standalone .content { max-width: 1380px; margin: 0 auto; padding: 28px clamp(16px, 3vw, 44px) 48px; }
body.audit-form-standalone .audit-workspace { max-width: none; }
.audit-settings-intro, .audit-archive-head, .audit-detail-head {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 20px;
  padding: 20px 22px;
  border: 1px solid var(--line);
  border-radius: 20px;
  background: #fff;
}
.audit-settings-intro > div:last-child { display: grid; text-align: right; }
.audit-settings-intro > div:last-child strong { color: var(--blue); font-size: 28px; }
.audit-settings-grid { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); gap: 14px; }
.audit-standard-editor { display: grid; gap: 9px; max-height: 72vh; overflow: auto; padding-right: 5px; }
.audit-standard-editor-row { border: 1px solid #e1e7f0; border-radius: 14px; background: #fbfcfe; }
.audit-standard-editor-row > summary { display: grid; grid-template-columns: 80px minmax(0, 1fr) minmax(180px, .7fr); gap: 10px; align-items: center; padding: 12px; cursor: pointer; }
.audit-standard-editor-row > summary > span:last-child { color: var(--muted); text-align: right; font-size: 11px; }
.audit-standard-fields { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 12px; padding: 14px; border-top: 1px solid #e1e7f0; }
.audit-standard-fields .span-all, .audit-finding-controls .span-all { grid-column: 1 / -1; }
.audit-standard-fields .checkbox-line { display: flex; align-items: center; gap: 7px; min-height: 40px; }
.audit-standard-fields .checkbox-line input { width: auto; }
.audit-rule-fields { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.audit-reference-list { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
.audit-reference-list a { display: grid; gap: 5px; padding: 13px; border: 1px solid #e2e8f1; border-radius: 13px; color: var(--navy); text-decoration: none; }
.audit-reference-list a:hover { border-color: var(--blue); background: #f4f7ff; }
.audit-reference-list small { color: var(--muted); }
.audit-detail-head.sss-triggered { border-color: #eab0b0; background: linear-gradient(135deg, #fff 0%, #fff1f1 100%); }
.audit-score-orb { display: grid; place-items: center; width: 112px; height: 112px; border: 8px solid #dfe8ff; border-radius: 50%; background: #fff; box-shadow: inset 0 0 0 1px #cbd8f0; }
.audit-score-orb strong { color: var(--navy); font-size: 28px; line-height: 1; }
.audit-score-orb span { color: var(--muted); font-size: 11px; font-weight: 700; }
.audit-priority-list, .audit-finding-list { display: grid; gap: 10px; }
.audit-priority-item, .audit-finding { display: grid; gap: 8px; padding: 13px; border: 1px solid #e2e7ef; border-left: 4px solid #d8a036; border-radius: 12px; background: #fff; }
.audit-priority-item.level-sss, .audit-priority-item.level-critical { border-left-color: #b33b3b; }
.audit-priority-item p, .audit-finding p { margin: 0; color: #4d596c; }
.audit-priority-item > div { display: flex; flex-wrap: wrap; align-items: center; gap: 7px; }
.audit-finding-title { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; }
.audit-finding-title small { margin-left: auto; color: var(--muted); }
.audit-photo-strip { display: flex; gap: 8px; overflow-x: auto; }
.audit-photo-strip img { width: 96px; height: 76px; object-fit: cover; border-radius: 10px; border: 1px solid #dce3ee; }
.audit-finding-controls { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; padding-top: 10px; border-top: 1px dashed #d9e0ea; }
.badge.risk { background: #fde5e5; color: #9b2c2c; }
.button.danger { color: #a12d2d; background: #fff0f0; border-color: #efc2c2; }
.audit-framework-intro {
  display: flex; align-items: center; justify-content: space-between; gap: 18px;
  padding: 20px 22px; border: 1px solid #dbe5f4; border-radius: 20px;
  background: linear-gradient(135deg, #fff 0%, #f4f8ff 100%);
}
.audit-framework-intro h3 { margin: 7px 0 4px; color: var(--navy); font-size: 22px; }
.audit-framework-intro p { max-width: 760px; margin: 0; color: var(--muted); line-height: 1.6; }
.audit-framework-layout { display: grid; grid-template-columns: minmax(220px, 280px) minmax(0, 1fr); gap: 14px; align-items: start; }
.audit-framework-list { display: grid; gap: 9px; position: sticky; top: 88px; min-width: 0; }
.audit-framework-card {
  display: grid; grid-template-columns: 38px minmax(0, 1fr) 22px; gap: 10px; align-items: center;
  width: 100%; padding: 14px; border: 1px solid #dfe6f1; border-radius: 16px;
  color: var(--navy); text-align: left; background: rgba(255,255,255,.84);
  transition: transform .18s ease, border-color .18s ease, background .18s ease, box-shadow .18s ease;
}
.audit-framework-card:hover { transform: translateY(-1px); border-color: #a9bde5; }
.audit-framework-card.selected { border-color: var(--blue); background: #f0f5ff; box-shadow: 0 8px 24px rgba(47,107,255,.1); }
.audit-framework-card > .material-symbols-rounded:first-child { display: grid; place-items: center; width: 38px; height: 38px; border-radius: 12px; color: var(--blue); background: #e4edff; }
.audit-framework-card span:nth-child(2) { min-width: 0; }
.audit-framework-card strong, .audit-framework-card small { display: block; overflow-wrap: anywhere; }
.audit-framework-card small { margin-top: 4px; color: var(--muted); font-size: 10px; line-height: 1.45; }
.audit-framework-editor { min-width: 0; padding: 18px; border: 1px solid #dfe6f1; border-radius: 20px; background: #fff; }
.audit-framework-editor-head, .framework-editor-title {
  display: flex; align-items: center; justify-content: space-between; gap: 16px;
}
.audit-framework-editor-head { margin-bottom: 16px; }
.audit-framework-editor-head h3, .framework-editor-title h4 { margin: 5px 0 3px; color: var(--navy); }
.audit-framework-editor-head p, .framework-editor-title p { margin: 0; color: var(--muted); font-size: 11px; }
.framework-formula { margin: 16px 0; padding: 14px 16px; border-left: 4px solid var(--blue); border-radius: 12px; background: #f3f7ff; }
.framework-formula p { margin: 5px 0 0; color: #53627a; line-height: 1.65; }
.framework-editor-title { margin: 20px 0 10px; padding-top: 16px; border-top: 1px solid #edf0f5; }
.framework-section-list, .framework-level-list { display: grid; gap: 10px; }
.framework-section-row { overflow: hidden; border: 1px solid #dfe6f1; border-radius: 15px; background: #fbfcff; }
.framework-section-row > summary {
  display: flex; align-items: center; justify-content: space-between; gap: 12px;
  min-height: 54px; padding: 11px 14px; cursor: pointer; list-style: none;
}
.framework-section-row > summary::-webkit-details-marker { display: none; }
.framework-section-row > summary span { min-width: 0; }
.framework-section-row > summary strong, .framework-section-row > summary small { display: block; overflow-wrap: anywhere; }
.framework-section-row > summary small { margin-top: 3px; color: var(--muted); font-size: 10px; }
.framework-section-row > summary i { transition: transform .18s ease; }
.framework-section-row[open] > summary i { transform: rotate(180deg); }
.framework-section-fields {
  display: grid; grid-template-columns: minmax(0, 1.4fr) minmax(100px, .5fr) minmax(120px, .5fr);
  gap: 10px; padding: 14px; border-top: 1px solid #e5eaf2;
}
.framework-section-fields label, .framework-content-row label, .framework-level-row label {
  display: grid; gap: 5px; min-width: 0; color: var(--muted); font-size: 10px; font-weight: 750;
}
.framework-section-fields .span-all { grid-column: 1 / -1; }
.framework-section-fields > .checkbox-line {
  grid-column: 1 / -1;
  justify-content: flex-start;
  min-height: 28px;
}
.framework-section-fields .checkbox-line, .framework-content-row .checkbox-line, .framework-level-row .checkbox-line { display: flex; align-items: center; gap: 7px; }
.framework-section-fields input, .framework-content-row input, .framework-level-row input, .framework-level-row select { width: 100%; min-width: 0; }
.framework-content-list { display: grid; gap: 8px; padding: 0 14px 12px; }
.framework-content-row {
  display: grid; grid-template-columns: minmax(150px, 1fr) minmax(220px, 1.5fr) 76px 78px auto;
  gap: 8px; align-items: end; padding: 11px; border: 1px solid #e6ebf3; border-radius: 12px; background: #fff;
}
.framework-section-row > .access-actions { padding: 0 14px 14px; }
.framework-level-row {
  display: grid; grid-template-columns: 90px minmax(120px, 1fr) 80px minmax(150px, 1fr) minmax(130px, .8fr) 100px;
  gap: 9px; align-items: end; padding: 13px; border: 1px solid #dfe6f1; border-radius: 14px; background: #fbfcff;
  transition: border-color .18s ease, box-shadow .18s ease;
}
.framework-level-row > .checkbox-line { min-height: 42px; }
.framework-level-row > .button { align-self: end; }
.framework-rule-motion { animation: auditItemSaved .24s ease both; }
.audit-framework-editor, .audit-framework-card, .framework-section-row, .framework-level-row { animation: auditPageIn .22s cubic-bezier(.2,.8,.2,1) both; }

@media (max-width: 1120px) {
  .audit-form-meta { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .audit-form-meta > div:first-child { grid-column: 1 / -1; }
  .audit-standard-fields { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .app-shell { grid-template-columns: 188px minmax(0, 1fr); }
  .sidebar { padding-left: 12px; padding-right: 12px; }
  .ai-launcher > span:nth-child(2),
  .ai-launcher kbd,
  .privacy-note,
  .sidebar-collapse span { display: none; }
  .topbar { grid-template-columns: minmax(180px, 1fr) auto; }
  .topbar .top-actions { display: none; }
  .overview-stage { grid-template-columns: 1fr; }
  .business-timeline { max-height: none; }
  .timeline-list { grid-template-columns: repeat(4, minmax(0, 1fr)); }
  .timeline-event::after { display: none; }
  .span-8, .span-7, .span-6, .span-5, .span-4 { grid-column: span 12; }
  .upload-grid { grid-template-columns: 1fr; }
  .access-summary { grid-template-columns: repeat(2, minmax(0,1fr)); }
  .framework-content-row { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .framework-content-row > .button { width: 100%; }
  .framework-level-row { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
@media (max-width: 900px) {
  .auth-view { grid-template-columns: 1fr; }
  .auth-hero { min-height: 330px; padding: 30px 24px; }
  .auth-hero h1 { font-size: 34px; }
  .auth-panel { padding: 20px 14px; }
  .auth-panel-inner { padding: 24px 20px; }
  .app-shell { grid-template-columns: 1fr; gap: 0; padding: 0; }
  .sidebar { position: fixed; left: -270px; top: 0; width: 252px; height: 100vh; border-radius: 0 24px 24px 0; transition: left .2s ease; }
  .sidebar.open { left: 0; }
  .sidebar .brand > div:last-child,
  .sidebar .workspace-nav strong,
  .sidebar .workspace-nav .nav-step,
  .sidebar .workspace-nav .nav-chevron,
  .sidebar .ai-launcher > span:nth-child(2),
  .sidebar .ai-launcher kbd,
  .sidebar .privacy-note,
  .sidebar .sidebar-collapse span { display: block; }
  .sidebar .workspace-nav { grid-template-columns: 22px 24px minmax(0, 1fr) auto; justify-items: initial; }
  .sidebar .nav-cluster.expanded .nav-submenu { display: grid; }
  .mobile-only { display: inline-flex; }
  .topbar { top: 0; padding: 8px 12px; border-radius: 0 0 18px 18px; grid-template-columns: 40px minmax(0, 1fr); }
  .top-title { position: static; opacity: 1; pointer-events: auto; }
  .top-title > div { display: none; }
  .command-search { grid-column: 2; }
  .filter-bar { grid-column: 1 / -1; width: 100%; overflow-x: auto; padding-bottom: 2px; }
  .filter-bar label { flex: 0 0 auto; }
  .topbar .top-actions { display: none; }
  .top-actions .ghost { display: none; }
  .account-button { min-width: 44px; width: 44px; padding: 5px; grid-template-columns: 32px; }
  .account-button > span:nth-child(2), .account-button i { display: none; }
  .filter-bar { margin: 0; }
  .notice { margin-left: 16px; margin-right: 16px; }
  .content { padding-left: 16px; padding-right: 16px; }
  .overview-intro { align-items: flex-start; flex-direction: column; }
  .overview-card-head { flex-direction: column; }
  .overview-trend-controls { width: 100%; align-items: end; justify-content: space-between; }
  .overview-trend-metric-label { flex: 1; }
  .overview-trend-metric-label select { width: 100%; min-height: 44px; }
  .overview-grain-switch button { min-width: 44px; min-height: 44px; }
  .overview-kpi-ribbon { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .overview-kpi:nth-child(2) { border-right: 0; }
  .overview-kpi:nth-child(-n+2) { border-bottom: 1px solid rgba(137, 158, 199, .18); }
  .overview-stage { grid-template-columns: 1fr; }
  .module-panel-head { flex-direction: column; }
  .module-panel-head .button { align-self: stretch; justify-content: center; }
  .timeline-list { grid-template-columns: 1fr; }
  .timeline-event::after { display: block; }
  .next-focus-grid { grid-template-columns: 1fr; }
  .insight { grid-template-columns: 1fr; gap: 8px; }
  .method { grid-template-columns: 1fr; gap: 5px; }
  .external-status-head { align-items: stretch; flex-direction: column; }
  .external-location-grid { grid-template-columns: 1fr; }
  .locked-rules { grid-template-columns: 1fr; }
  .setting-field { grid-template-columns: 1fr 110px; }
  .settings-nav { position: static; grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .settings-section { scroll-margin-top: 92px; }
  .store-marketing-grid { grid-template-columns: 1fr; }
  .hub-tabs { top: 88px; width: 100%; }
  .fuzzy-picker { width: 100%; }
  .fuzzy-picker input { min-width: 0; width: 100%; }
  .ai-launcher { right: 14px; bottom: 14px; }
  .ai-panel { right: 7px; bottom: 7px; width: calc(100vw - 14px); height: calc(100vh - 14px); }
  .ai-toolbar { grid-template-columns: 1fr 1fr; }
  .ai-history-actions { grid-column: 1 / -1; justify-content: flex-end; }
  .chart-modal-panel { inset: 8px; }
  .chart-modal-panel { display: block; overflow: auto; }
  .chart-modal-head { position: sticky; top: 0; }
  .chart-modal-host { min-height: 360px; padding: 18px 12px 6px; }
  .chart-modal-host .chart, .chart-modal-host .chart svg { min-height: 340px; }
  .chart-modal-insights { display: grid; grid-template-columns: 1fr; padding: 12px; border-left: 0; }
  .chart-control-grid { grid-template-columns: 1fr; }
  .relationship-control-grid, .relationship-layout, .contribution-control, .contribution-layout { grid-template-columns: 1fr; }
  .relationship-kpis { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .dining-kpi-grid { grid-template-columns: 1fr; }
  .triple-values { grid-template-columns: 1fr; }
  .glossary-entry > div { grid-template-columns: 1fr; gap: 6px; }
  .access-summary { grid-template-columns: 1fr 1fr; }
  .access-fields, .role-editor { grid-template-columns: 1fr; }
  .role-editor .wide { grid-column: auto; }
  .audit-row { grid-template-columns: minmax(0,1fr) auto; min-height: 64px; align-items: center; }
  .audit-row > :nth-child(2), .audit-row > :nth-child(3), .audit-row > :nth-child(4) { grid-column: 1; }
  .audit-row > :nth-child(2) { grid-row: 1; }
  .audit-row > :nth-child(3) { grid-row: 2; font-size: 10px; }
  .audit-row > :nth-child(4) { grid-row: 3; color: var(--muted); }
  .audit-row > .material-symbols-rounded { grid-column: 2; grid-row: 1 / span 3; }
  .audit-detail-meta { grid-template-columns: 1fr; }
  .audit-tabs { overflow-x: auto; justify-content: flex-start; }
  .audit-tab { flex: 0 0 auto; }
  .audit-form-meta, .audit-standard-fields, .audit-setting-grid,
  .audit-detail-grid, .audit-live-grid { grid-template-columns: 1fr; }
  .audit-form-meta > div:first-child, .audit-standard-fields .wide { grid-column: auto; }
  .audit-workspace-head, .audit-section-head, .audit-detail-head {
    align-items: stretch;
    flex-direction: column;
  }
  .audit-actions { width: 100%; }
  .audit-actions .button { flex: 1; justify-content: center; }
  .audit-standard-card { padding: 16px 14px; }
  .audit-levels { grid-template-columns: 1fr; }
  .audit-live-summary { position: static; }
  .audit-standard-editor-row > summary {
    grid-template-columns: auto minmax(0, 1fr);
    align-items: start;
  }
  .audit-standard-editor-row > summary > span:last-child {
    grid-column: 1 / -1;
    text-align: left;
  }
  .audit-standard-editor-row > summary strong { overflow-wrap: anywhere; }
  .audit-item-head { grid-template-columns: 1fr; }
  .audit-check-group > summary { grid-template-columns: 1fr auto; }
  .audit-check-group > summary .audit-hierarchy-label { grid-column: 1 / -1; }
  .audit-form-page-head { align-items: stretch; flex-direction: column; }
  .audit-score-label { text-align: left; }
  .audit-settings-intro > div:last-child { text-align: left; }
  .audit-workflow-tabs, .audit-card-rule-grid { grid-template-columns: 1fr; }
  .audit-confirm-panel { align-items: stretch; flex-direction: column; }
  .audit-framework-intro, .audit-framework-editor-head, .framework-editor-title { align-items: stretch; flex-direction: column; }
  .audit-framework-intro > .button, .audit-framework-editor-head > .button, .framework-editor-title > .button { width: 100%; }
  .audit-framework-layout { grid-template-columns: 1fr; }
  .audit-framework-list { position: static; display: flex; gap: 8px; max-width: 100%; overflow-x: auto; padding-bottom: 4px; }
  .audit-framework-card { flex: 0 0 min(82vw, 290px); min-height: 72px; }
  .audit-framework-editor { padding: 13px; border-radius: 16px; }
  .framework-section-fields, .framework-content-row, .framework-level-row { grid-template-columns: 1fr; }
  .framework-section-fields .span-all { grid-column: auto; }
  .framework-content-row, .framework-level-row { padding: 11px; }
  .framework-content-row > .button, .framework-level-row > .button { width: 100%; }
  .framework-section-row > summary { min-height: 58px; }
  .framework-formula { margin: 13px 0; padding: 12px; }
}

/* 手机现场稽核：保持电脑管理效率，同时让单手录入、拍照和提交更稳定。 */
@media (max-width: 900px) {
  html { -webkit-text-size-adjust: 100%; }
  body { overflow-x: hidden; }
  button, input, select, textarea { font-size: 16px; }
  .button, .icon-button, .nav-item, .audit-workflow-tabs button { min-height: 44px; }
  .button { display: inline-flex; align-items: center; justify-content: center; }
  .table-wrap { -webkit-overflow-scrolling: touch; }
  .audit-overview-actions, .page-controls { width: 100%; }
  .audit-overview-actions .button, .page-controls .button { flex: 1 1 150px; min-height: 46px; }
  .audit-workflow-tabs { grid-template-columns: 1fr; gap: 8px; }
  .audit-workflow-tabs button { min-height: 54px; border-radius: 15px; }
  .audit-stage-panel { padding: 14px; border-radius: 18px; }
  .audit-stage-panel .card-header { align-items: stretch; flex-direction: column; }
  .audit-stage-panel .card-header .button { width: 100%; }
  .table-actions { min-width: 218px; }
  .table-actions .button { min-height: 42px; padding: 9px 10px; }

  body.audit-form-standalone .content {
    padding: max(14px, env(safe-area-inset-top)) 12px calc(32px + env(safe-area-inset-bottom));
  }
  .audit-form-page-head { gap: 12px; padding: 0 2px; }
  .audit-form-page-head h1 { font-size: 22px; line-height: 1.28; }
  .audit-form-page-head p { font-size: 13px; line-height: 1.55; }
  .audit-form-page-head .button { min-height: 46px; }
  .audit-page-actions { display: grid; grid-template-columns: 1fr 1fr; width: 100%; }
  .audit-page-actions #auditCloseForm { grid-column: 1 / -1; }
  .audit-form-meta { gap: 12px; padding: 16px; border-radius: 18px; }
  .audit-form-meta h3 { font-size: 20px; line-height: 1.3; }
  .audit-form-meta input, .audit-form-meta select { min-height: 48px; font-size: 16px; }
  .audit-form-control { border-radius: 16px; }
  .audit-form-control > summary { align-items: flex-start; padding: 13px 14px; }
  .audit-form-control > summary small { display: grid; gap: 3px; text-align: right; }
  .audit-form-control > summary::after { display: none; }
  .audit-live-summary { grid-template-columns: repeat(2, minmax(0, 1fr)); border-radius: 0; }
  .audit-live-summary > div { min-height: 70px; padding: 12px; }
  .audit-live-summary strong { font-size: 18px; }
  .audit-section-list { gap: 10px; }
  .audit-section { border-radius: 15px; }
  .audit-section > summary, .audit-check-group > summary {
    position: relative;
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 5px 10px;
    padding: 14px 42px 14px 14px;
  }
  .audit-section > summary::after, .audit-check-group > summary::after {
    position: absolute;
    right: 14px;
    top: 50%;
    transform: translateY(-50%);
  }
  .audit-section > summary .audit-hierarchy-label, .audit-check-group > summary .audit-hierarchy-label { grid-column: 1 / -1; }
  .audit-section > summary strong, .audit-check-group > summary strong { min-width: 0; overflow-wrap: anywhere; }
  .audit-section > summary > span:last-of-type, .audit-check-group > summary > span:last-of-type { margin-left: 0; align-self: end; font-size: 10px; text-align: right; }
  .audit-check-groups { padding: 0 8px 8px; }
  .audit-check-group { border-radius: 12px; }
  .audit-items { gap: 8px; padding: 0 8px 8px; }
  .audit-item { gap: 10px; padding: 13px; border-radius: 13px; }
  .audit-item-head { gap: 7px; }
  .audit-item-head strong { font-size: 15px; line-height: 1.45; }
  .audit-score-label { font-size: 12px; }
  .audit-criterion { padding: 9px 10px; }
  .audit-criterion p { font-size: 14px; }
  .audit-levels { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; }
  .audit-levels label { min-height: 48px; padding: 8px 9px; line-height: 1.3; }
  .audit-levels label:last-child:nth-child(odd) { grid-column: 1 / -1; }
  .audit-evidence { grid-template-columns: 1fr; gap: 10px; padding: 11px; }
  .audit-evidence textarea, .audit-general-note textarea { min-height: 92px; font-size: 16px; }
  .audit-evidence input[type="file"] { min-height: 48px; font-size: 14px; }
  .audit-general-note { padding: 14px; border-radius: 15px; }
  .audit-item-save-row { align-items: stretch; flex-direction: column; }
  .audit-item-save-row .button { min-height: 46px; }
  .audit-staff-picker, .audit-responsible-options { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .audit-staff-picker label, .audit-responsible-options label { min-height: 44px; }
  .audit-setup-action .button { width: 100%; min-height: 48px; }
  .audit-realtime-filters { grid-template-columns: 1fr; gap: 10px; padding: 13px; border-radius: 14px; }
  .audit-filter-title { grid-template-columns: auto 1fr auto; }
  .audit-filter-title small { grid-column: 3; grid-row: 1; }
  .audit-realtime-filters select { min-height: 46px; font-size: 16px; }
  .audit-detail-head, .audit-settings-intro, .audit-archive-head { padding: 16px; border-radius: 16px; }
  .audit-score-orb { width: 92px; height: 92px; border-width: 6px; }
  .audit-finding-controls { grid-template-columns: 1fr; }
}

@media (pointer: coarse) {
  .button:hover { transform: none; }
  .audit-section > summary, .audit-check-group > summary, .audit-levels label { -webkit-tap-highlight-color: transparent; }
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { scroll-behavior: auto !important; }
}

/* 全系统手机适配：看板、分析、设置、数据维护与权限页面共用。 */
@media (max-width: 900px) {
  body.mobile-nav-open { overflow: hidden; }
  .sidebar-backdrop {
    position: fixed;
    inset: 0;
    z-index: 85;
    border: 0;
    background: rgba(16, 29, 55, .38);
    backdrop-filter: blur(2px);
    -webkit-tap-highlight-color: transparent;
  }
  .sidebar {
    left: 0;
    top: 0;
    width: min(82vw, 318px);
    height: 100dvh;
    max-height: none;
    padding-top: max(18px, env(safe-area-inset-top));
    padding-bottom: max(12px, env(safe-area-inset-bottom));
    border-radius: 0 26px 26px 0;
    transform: translateX(calc(-100% - 18px));
    transition: transform .22s ease;
    z-index: 90;
  }
  .sidebar.open { left: 0; transform: translateX(0); }
  .sidebar-collapse { display: none; }
  #nav { overscroll-behavior: contain; }

  .topbar {
    grid-template-columns: 44px minmax(0, 1fr) 44px;
    gap: 8px;
    padding: max(8px, env(safe-area-inset-top)) 12px 10px;
  }
  .top-title { grid-column: 1; grid-row: 1; }
  .top-title .mobile-only { width: 44px; height: 44px; border-radius: 13px; color: var(--navy); background: rgba(255,255,255,.84); }
  .command-search { grid-column: 2; grid-row: 1; min-height: 44px; }
  .command-search kbd { display: none; }
  .topbar .top-actions { display: contents; }
  .top-actions .top-icon-action { display: none; }
  .account-menu { grid-column: 3; grid-row: 1; }
  .account-button { width: 44px; min-width: 44px; min-height: 44px; height: 44px; border-radius: 13px; background: rgba(255,255,255,.84); }
  .account-dropdown { position: fixed; top: calc(max(8px, env(safe-area-inset-top)) + 56px); right: 12px; width: min(280px, calc(100vw - 24px)); z-index: 100; }

  .filter-bar {
    grid-column: 1 / -1;
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 8px;
    width: 100%;
    overflow: visible;
    padding: 2px 0 0;
  }
  .filter-bar label { width: 100%; min-width: 0; height: 48px; padding: 0 9px; border-radius: 13px; }
  .filter-bar select, .filter-bar input[type="date"], .filter-bar #scopeFilter, .filter-bar #grainFilter { width: 100%; min-width: 0; height: 44px; font-size: 13px; }
  .filter-bar .date-range-control + .range-separator { display: none; }
  .filter-bar .button { grid-column: 1 / -1; width: 100%; height: 46px; border-radius: 13px; }
  .filter-bar .button span { display: inline; }
  .filter-bar .button .material-symbols-rounded { margin-right: 6px; }
  .command-search-results { left: -56px; right: -52px; max-height: min(55dvh, 460px); overflow-y: auto; }

  .content { padding: 16px 12px calc(28px + env(safe-area-inset-bottom)); }
  .selection-popover-panel { max-width: calc(100vw - 24px); max-height: min(72dvh, calc(100dvh - 24px)); }
  .selection-popover-footer .button { min-height: 44px; }
  .forecast-factor-summary, .forecast-factor-adjustment-grid { grid-template-columns: 1fr; }
  .notice { margin: 12px; }
  .page-head { gap: 12px; margin-bottom: 14px; }
  .page-head h2 { font-size: 20px; }
  .page-head p { font-size: 12px; line-height: 1.55; }
  .page-controls { width: 100%; gap: 8px; }
  .page-controls > .button, .page-controls > button { flex: 1 1 145px; min-height: 46px; }
  .grain-toggle { width: 100%; overflow-x: auto; padding: 4px; }
  .grain-button { flex: 0 0 auto; min-height: 40px; }

  button, input, select, textarea { font-size: 16px; }
  input[type="text"], input[type="search"], input[type="number"], input[type="date"], input[type="password"], textarea, select { min-height: 44px; }
  textarea { padding: 10px; }
  .button, .icon-button { min-height: 44px; }
  .kpi-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 9px; }
  .kpi { min-height: 112px; padding: 13px; border-radius: 16px; }
  .kpi .value { margin-top: 7px; font-size: 22px; overflow-wrap: anywhere; }
  .kpi .compare { margin-top: 8px; }
  .chip { padding: 3px 6px; font-size: 9px; }
  .overview-hero-card, .card, .module-panel, .settings-section { border-radius: 16px; }
  .card-header { align-items: stretch; flex-direction: column; }
  .card-header > .button, .card-header > div .button { width: 100%; }
  /* 图表只允许在自己的卡片内横向查看，绝不能把整张手机页面撑宽。 */
  html, body { max-width: 100%; overflow-x: hidden; }
  .app-shell, .main, .content { min-width: 0; max-width: 100%; }
  .grid > *, .relationship-layout > *, .contribution-layout > *, .overview-stage > *, .dashboard-grid > * { min-width: 0; }
  .chart {
    width: 100%;
    min-width: 0;
    max-width: 100%;
    overflow-x: auto;
    overflow-y: hidden;
    overscroll-behavior-x: contain;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: thin;
  }
  .chart svg { width: 520px; min-width: 520px; max-width: none; }
  .chart.compact svg { width: 100%; min-width: 0; max-width: 100%; }
  .contribution-chart, .relationship-chart { border-radius: 12px; }
  .metric-note, .relationship-copy, .latest-contribution-note { min-width: 0; overflow-wrap: anywhere; }
  .chart-empty { min-height: 180px; }
  .chart-modal-panel { inset: 0; border-radius: 0; }
  .chart-modal-head { padding: max(14px, env(safe-area-inset-top)) 14px 12px; }
  .chart-modal-host { padding: 14px 10px 8px; }
  .chart-modal-insights { padding-bottom: calc(16px + env(safe-area-inset-bottom)); }
  .settings-modal { place-items: stretch; padding: 0; }
  .settings-modal-panel {
    width: 100%;
    max-height: 100dvh;
    min-height: 100dvh;
    border-width: 0;
    border-radius: 0;
  }
  .settings-modal-head { padding: max(16px, env(safe-area-inset-top)) 16px 14px; }
  .settings-modal-head h2 { font-size: 19px; }
  .settings-modal-body {
    max-height: calc(100dvh - 154px);
    padding: 16px;
  }
  .settings-modal-body .access-fields,
  .settings-modal-body .role-editor,
  .settings-modal-form { grid-template-columns: 1fr; }
  .settings-modal-body label.wide,
  .settings-modal-body label.span-all,
  .settings-modal-form label.wide,
  .settings-modal-form label.span-all { grid-column: auto; }
  .settings-modal-actions {
    position: sticky;
    bottom: 0;
    padding: 10px 16px calc(10px + env(safe-area-inset-bottom));
  }
  .settings-modal-actions .button { flex: 1; min-height: 48px; }

  .table-finder, .detail-result-meta, .pagination, .access-toolbar, .external-status-head, .glossary-toolbar { align-items: stretch; flex-direction: column; }
  .table-finder input, .glossary-toolbar input { width: 100%; min-height: 44px; }
  .detail-result-meta, .pagination { justify-content: flex-start; }
  .pagination { flex-wrap: wrap; }
  .pagination .button { min-width: 44px; }
  .table-wrap { border-radius: 14px; -webkit-overflow-scrolling: touch; }
  .table-wrap table { min-width: 620px; font-size: 12px; }
  .table-wrap th, .table-wrap td { padding: 11px 10px; white-space: nowrap; }
  .detail-search-controls, .access-directory-layout, .organization-layout, .people-layout { grid-template-columns: 1fr; }
  .detail-search-controls input, .detail-search-controls select { min-height: 46px; }
  .access-actions { justify-content: stretch; }
  .access-actions .button { flex: 1 1 130px; min-height: 44px; }
  .job-role-actions { align-items: stretch; flex-direction: column; }
  .job-role-delete-control { align-items: stretch; flex-direction: column; gap: 6px; }
  .job-role-delete-control .button, .job-role-actions > .button { width: 100%; }
  .role-delete-hint { max-width: none; font-size: 11px; }
  .access-user-grid, .access-role-grid { grid-template-columns: 1fr; }
  .access-user, .access-role, .store-setting-card { border-radius: 16px; }
  .organization-tree, .employee-list { max-height: none; padding: 8px; border-radius: 14px; }
  .org-children { margin-left: 10px; padding-left: 5px; }
  .org-node-row { grid-template-columns: 24px minmax(0,1fr) auto; min-height: 48px; padding: 9px 7px; }
  .org-node-row .status-pill { padding: 4px 6px; }
  .employee-list-row { grid-template-columns: minmax(0,1fr) auto; min-height: 58px; padding: 10px; }
  .employee-list-row > span:nth-child(2) { grid-column: 1; color: var(--muted); font-size: 12px; }
  .employee-list-row > .status-pill { grid-column: 2; grid-row: 1 / span 2; }
  .access-org-editor, .access-employee-editor { padding: 12px; border-radius: 14px; }
  .account-directory .access-toolbar { margin-top: 8px; }
  .access-summary { gap: 8px; }
  .access-summary .kpi, .data-summary > * { min-width: 0; }
  .upload-box { min-height: 150px; padding: 16px; }
  .upload-box input[type="file"] { width: 100%; min-height: 44px; }
  .file-list { overflow-wrap: anywhere; }
  .version-change-list { min-width: 0; }
  .version-change-list > div { grid-template-columns: 1fr; gap: 4px; padding: 9px; }
  .settings-nav { gap: 7px; }
  .settings-nav button { min-height: 46px; padding: 9px; }
  .setting-field { grid-template-columns: 1fr; gap: 7px; padding: 11px 0; }
  .setting-field input, .setting-field select { width: 100%; }
  .settings-table-disclosure > summary { min-height: 52px; padding: 11px 12px; }
  .checkbox-line, .permission-check, .store-check { min-height: 42px; align-items: flex-start; }
  .fuzzy-picker { min-width: 0; }
  .fuzzy-picker input { min-height: 44px; }
  .ai-panel { padding-bottom: env(safe-area-inset-bottom); }
  .ai-suggestions { overflow-x: auto; flex-wrap: nowrap; }
  .ai-suggestions button { flex: 0 0 auto; min-height: 40px; }
  .ai-composer { padding-bottom: calc(10px + env(safe-area-inset-bottom)); }
  .ai-composer textarea { min-height: 48px; }
  .ai-composer .button { min-width: 64px; }
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { scroll-behavior: auto !important; }
}

@media print {
  .sidebar, .top-actions, .filter-bar, .mobile-only, .ai-launcher, .ai-panel, .chart-tooltip, .interaction-hint, .chart-modal, .settings-modal, .hub-tabs, .table-finder, .settings-nav, .chart-smoothing-toggle { display: none !important; }
  .app-shell { display: block; }
  .topbar { position: static; height: auto; padding: 12px 0; border: 0; }
  .content { padding: 0; }
  body { background: white; }
  .card, .kpi { box-shadow: none; break-inside: avoid; }
}

/* 2026-07-26 · 用户确认版：明亮蓝白毛玻璃 + 紧凑 SaaS 排版 */
:root {
  --glass-panel: rgba(255, 255, 255, .66);
  --glass-panel-strong: rgba(255, 255, 255, .78);
  --glass-border: rgba(255, 255, 255, .84);
  --glass-line: rgba(109, 136, 190, .18);
  --glass-shadow: 0 24px 64px rgba(55, 82, 139, .13), inset 0 1px 0 rgba(255, 255, 255, .96);
}

.topbar,
.sidebar,
.card,
.kpi,
.module-panel,
.settings-section,
.audit-workspace > section,
.audit-stage-panel,
.audit-confirm-panel {
  border-color: var(--glass-border);
  background:
    linear-gradient(145deg, rgba(255, 255, 255, .76), rgba(242, 247, 255, .58)),
    var(--glass-panel);
  box-shadow: var(--glass-shadow);
  backdrop-filter: blur(28px) saturate(145%);
  -webkit-backdrop-filter: blur(28px) saturate(145%);
}

.content { padding-top: 20px; }
.page-head { margin-bottom: 13px; padding: 0 4px; }
.page-head h2 { font-size: 20px; }
.page-head p { max-width: 680px; margin-top: 4px; line-height: 1.5; }
.audit-workspace-frameworks { min-width: 0; }

.audit-framework-layout {
  display: grid;
  grid-template-columns: minmax(205px, 235px) minmax(520px, 1fr) minmax(218px, 248px);
  gap: 14px;
  align-items: start;
}

.audit-framework-panel,
.audit-framework-editor,
.audit-scoring-panel {
  min-width: 0;
  border: 1px solid var(--glass-border);
  border-radius: 24px;
  background:
    radial-gradient(circle at 8% 0%, rgba(255, 255, 255, .86), transparent 36%),
    linear-gradient(155deg, rgba(255, 255, 255, .70), rgba(237, 244, 255, .54));
  box-shadow: var(--glass-shadow);
  backdrop-filter: blur(30px) saturate(148%);
  -webkit-backdrop-filter: blur(30px) saturate(148%);
}

.audit-framework-panel,
.audit-scoring-panel {
  position: sticky;
  top: 92px;
  padding: 13px;
}

.audit-framework-panel-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  padding: 1px 4px 10px;
  color: var(--navy);
  font-size: 11px;
  font-weight: 800;
}

.audit-framework-panel-head small {
  color: var(--muted);
  font-size: 9px;
  font-weight: 650;
}

.audit-framework-list {
  position: static;
  display: grid;
  gap: 8px;
}

.audit-framework-card {
  position: relative;
  grid-template-columns: 40px minmax(0, 1fr) 18px;
  gap: 10px;
  min-height: 74px;
  padding: 12px;
  overflow: hidden;
  border-color: rgba(121, 148, 198, .18);
  border-radius: 17px;
  background: rgba(255, 255, 255, .55);
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, .88);
}

.audit-framework-card::before {
  content: "";
  position: absolute;
  left: 0;
  top: 12px;
  bottom: 12px;
  width: 3px;
  border-radius: 0 4px 4px 0;
  background: transparent;
  transition: background .2s ease, box-shadow .2s ease;
}

.audit-framework-card:hover {
  transform: translateY(-1px);
  border-color: rgba(68, 111, 205, .35);
  background: rgba(255, 255, 255, .76);
}

.audit-framework-card.selected {
  border-color: rgba(39, 100, 255, .28);
  background: linear-gradient(135deg, rgba(232, 240, 255, .92), rgba(255, 255, 255, .66));
  box-shadow: 0 12px 28px rgba(54, 91, 164, .12), inset 0 1px 0 white;
}

.audit-framework-card.selected::before {
  background: var(--blue);
  box-shadow: 0 0 14px rgba(39, 100, 255, .48);
}

.audit-framework-card > .material-symbols-rounded:first-child {
  width: 40px;
  height: 40px;
  border: 1px solid rgba(255, 255, 255, .72);
  border-radius: 13px;
  background: rgba(229, 238, 255, .82);
  box-shadow: 0 8px 20px rgba(39, 100, 255, .11);
}

.audit-framework-card.selected > .material-symbols-rounded:first-child {
  color: white;
  background: linear-gradient(145deg, #4b83ff, #2461f5);
  box-shadow: 0 10px 24px rgba(39, 100, 255, .25), inset 0 1px 0 rgba(255, 255, 255, .38);
}

.audit-framework-card strong { font-size: 12px; }
.audit-framework-card small { margin-top: 3px; font-size: 9px; }

.audit-framework-create {
  width: 100%;
  min-height: 44px;
  margin-top: 10px;
  border-color: rgba(108, 137, 191, .24);
  color: var(--navy);
  background: rgba(255, 255, 255, .38);
}

.audit-framework-create:hover { color: var(--blue); background: rgba(255, 255, 255, .7); }
.audit-framework-create .material-symbols-rounded { font-size: 18px; }

.audit-framework-editor {
  padding: 20px;
  background:
    radial-gradient(circle at 0 0, rgba(255, 255, 255, .96), transparent 38%),
    linear-gradient(155deg, rgba(255, 255, 255, .74), rgba(241, 246, 255, .60));
}

.audit-framework-editor-head { align-items: flex-start; margin-bottom: 16px; }
.audit-framework-editor-head > div { min-width: 0; }
.audit-framework-kicker {
  display: block;
  margin-bottom: 5px;
  color: var(--blue);
  font-size: 9px;
  font-weight: 850;
  letter-spacing: .04em;
}

.audit-framework-title-line {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 8px;
}

.audit-framework-title-line h3 {
  margin: 0;
  color: var(--navy);
  font-size: 23px;
  line-height: 1.2;
  letter-spacing: -.04em;
}

.audit-framework-editor-head p { margin-top: 6px; }
.audit-framework-editor-head > .button { min-width: 106px; min-height: 44px; box-shadow: 0 12px 24px rgba(39, 100, 255, .24); }

.audit-framework-core-fields {
  display: grid;
  grid-template-columns: minmax(110px, 1fr) minmax(140px, 1.25fr) minmax(120px, 1.1fr) minmax(72px, .55fr);
  gap: 10px;
}

.audit-framework-core-fields label {
  position: relative;
  display: grid;
  gap: 6px;
  min-width: 0;
  color: #6b7891;
  font-size: 9px;
  font-weight: 760;
}

.audit-framework-core-fields input,
.audit-framework-core-fields select,
.audit-framework-core-fields textarea {
  width: 100%;
  min-width: 0;
  border-color: rgba(113, 139, 187, .24);
  background: rgba(255, 255, 255, .66);
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, .92), 0 7px 20px rgba(65, 90, 140, .05);
}

.audit-framework-core-fields input,
.audit-framework-core-fields select { min-height: 43px; }
.audit-framework-core-fields textarea { min-height: 76px; padding: 12px 14px 25px; resize: vertical; line-height: 1.6; }
.audit-framework-core-fields input:focus,
.audit-framework-core-fields select:focus,
.audit-framework-core-fields textarea:focus {
  border-color: rgba(39, 100, 255, .48);
  box-shadow: 0 0 0 4px rgba(39, 100, 255, .08), inset 0 1px 0 white;
}

.framework-description-field { grid-column: 1 / -1; }
.framework-description-field small {
  position: absolute;
  right: 12px;
  bottom: 8px;
  color: #8793a9;
  font-size: 8px;
  font-weight: 650;
}

.framework-editor-title {
  margin: 16px 0 9px;
  padding-top: 13px;
  border-color: rgba(116, 140, 184, .15);
}

.framework-editor-title h4 { font-size: 13px; }
.framework-editor-title .button { min-height: 38px; }
.framework-editor-title .material-symbols-rounded { font-size: 16px; }
.framework-section-list { gap: 8px; }

.framework-section-row {
  border-color: rgba(118, 143, 190, .19);
  border-radius: 15px;
  background: rgba(255, 255, 255, .58);
  box-shadow: 0 8px 24px rgba(58, 82, 132, .05), inset 0 1px 0 rgba(255, 255, 255, .88);
  transition: border-color .2s ease, background .2s ease, box-shadow .2s ease, transform .2s ease;
}

.framework-section-row:hover { border-color: rgba(67, 108, 198, .32); transform: translateY(-1px); }
.framework-section-row[open] { border-color: rgba(39, 100, 255, .30); background: rgba(251, 253, 255, .82); box-shadow: 0 14px 30px rgba(57, 84, 141, .09); }
.framework-section-row > summary {
  display: grid;
  grid-template-columns: 38px minmax(0, 1fr) auto 20px;
  min-height: 62px;
  padding: 10px 13px;
}

.framework-section-icon {
  width: 38px;
  height: 38px;
  border-radius: 12px;
  color: var(--blue);
  background: rgba(230, 238, 255, .82);
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, .9);
}

.framework-section-count {
  color: #5d6c88;
  font-size: 10px;
  font-weight: 760;
  white-space: nowrap;
}

.framework-section-row > summary small { display: none; }
.framework-section-row > summary > i { color: var(--navy); }

.audit-scoring-panel { padding: 16px; }
.audit-scoring-head {
  display: flex;
  align-items: center;
  gap: 9px;
  padding: 1px 2px 11px;
}

.audit-scoring-head > .material-symbols-rounded {
  width: 32px;
  height: 32px;
  border-radius: 10px;
  color: #d09a27;
  background: rgba(255, 243, 205, .76);
}

.audit-scoring-head strong,
.audit-scoring-head small { display: block; }
.audit-scoring-head strong { color: var(--navy); font-size: 13px; }
.audit-scoring-head small { margin-top: 2px; color: var(--muted); font-size: 8px; }

.audit-scoring-rule {
  display: grid;
  grid-template-columns: 38px minmax(0, 1fr);
  align-items: center;
  gap: 10px;
  min-height: 74px;
  padding: 12px 1px;
  border-top: 1px solid rgba(113, 137, 181, .14);
}

.audit-scoring-rule > span {
  display: grid;
  place-items: center;
  width: 36px;
  height: 36px;
  border: 1px solid rgba(80, 121, 211, .2);
  border-radius: 50%;
  color: var(--blue);
  background: rgba(245, 249, 255, .68);
  font-size: 13px;
  font-weight: 820;
}

.audit-scoring-rule.critical > span { border-color: rgba(215, 162, 45, .28); color: #c89525; }
.audit-scoring-rule strong,
.audit-scoring-rule small { display: block; }
.audit-scoring-rule strong { color: var(--navy); font-size: 11px; line-height: 1.35; }
.audit-scoring-rule small { margin-top: 4px; color: #78859c; font-size: 8.5px; line-height: 1.5; }
.audit-scoring-formula {
  margin: 10px 0 0;
  padding: 10px;
  border: 1px solid rgba(72, 114, 207, .14);
  border-radius: 11px;
  color: #52688f;
  background: rgba(233, 240, 255, .62);
  font-size: 8.5px;
  line-height: 1.5;
  text-align: center;
}

.settings-modal-backdrop { background: rgba(18, 29, 52, .48); backdrop-filter: blur(18px) saturate(126%); }
.settings-modal-panel {
  border-color: rgba(255, 255, 255, .9);
  background:
    radial-gradient(circle at 4% 0%, rgba(255, 255, 255, .96), transparent 38%),
    linear-gradient(145deg, rgba(255, 255, 255, .82), rgba(231, 241, 255, .68));
  box-shadow: 0 38px 110px rgba(20, 40, 79, .34), inset 0 1px 0 white;
  backdrop-filter: blur(38px) saturate(160%);
}

@media (max-width: 1280px) {
  .audit-framework-layout { grid-template-columns: minmax(205px, 235px) minmax(0, 1fr); }
  .audit-scoring-panel {
    position: static;
    grid-column: 1 / -1;
    display: grid;
    grid-template-columns: auto repeat(4, minmax(130px, 1fr));
    align-items: stretch;
    gap: 0 12px;
  }
  .audit-scoring-head { grid-column: 1 / -1; }
  .audit-scoring-rule { border-top: 1px solid rgba(113, 137, 181, .14); }
  .audit-scoring-formula { grid-column: 1 / -1; }
}

@media (max-width: 900px) {
  .content { padding-top: 14px; }
  .page-head { padding: 0; }
  .audit-settings-intro {
    align-items: stretch;
    flex-direction: column;
    gap: 12px;
  }
  .audit-settings-intro > div:last-child {
    width: 100%;
    text-align: left;
  }
  .audit-settings-intro > div:last-child strong {
    white-space: nowrap;
  }
  .audit-framework-layout { grid-template-columns: 1fr; gap: 10px; }
  .audit-framework-panel,
  .audit-scoring-panel { position: static; padding: 12px; border-radius: 18px; }
  .audit-framework-list {
    display: grid;
    grid-template-columns: 1fr;
    max-width: 100%;
    overflow: visible;
    padding: 0;
  }
  .audit-framework-card {
    width: 100%;
    min-height: 70px;
  }
  .audit-framework-create { min-height: 48px; }
  .audit-framework-editor { padding: 14px; border-radius: 18px; }
  .audit-framework-editor-head { align-items: stretch; flex-direction: column; gap: 12px; }
  .audit-framework-editor-head > .button { width: 100%; min-height: 48px; }
  .audit-framework-title-line h3 { font-size: 21px; }
  .audit-framework-core-fields { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 9px; }
  .framework-status-field,
  .framework-description-field { grid-column: 1 / -1; }
  .audit-framework-core-fields input,
  .audit-framework-core-fields select { min-height: 48px; font-size: 16px; }
  .audit-framework-core-fields textarea { min-height: 104px; font-size: 16px; }
  .framework-editor-title { align-items: stretch; flex-direction: column; }
  .framework-editor-title > .button { width: 100%; min-height: 46px; }
  .framework-section-row > summary {
    grid-template-columns: 38px minmax(0, 1fr) auto 18px;
    min-height: 64px;
    padding: 10px;
  }
  .framework-section-count { font-size: 9px; }
  .framework-section-fields,
  .framework-content-row,
  .framework-level-row { grid-template-columns: 1fr; }
  .audit-scoring-panel { display: block; }
  .audit-scoring-rule { min-height: 64px; }
  .settings-modal-backdrop { background: rgba(18, 29, 52, .58); }
}

@media (max-width: 430px) {
  .audit-framework-core-fields { grid-template-columns: minmax(0, 1fr) 92px; }
  .framework-name-field,
  .framework-status-field,
  .framework-description-field { grid-column: 1 / -1; }
}

/* 2026-07-26 · 全系统三栏工作区与紧凑清单规范 */
.system-workspace-shell {
  display: grid;
  grid-template-columns: minmax(172px, 198px) minmax(0, 1fr) minmax(188px, 218px);
  gap: 14px;
  align-items: start;
  min-width: 0;
}

.system-workspace-rail,
.system-workspace-context {
  position: sticky;
  top: 92px;
  min-width: 0;
  padding: 12px;
  border: 1px solid var(--glass-border);
  border-radius: 20px;
  background:
    radial-gradient(circle at 12% 0%, rgba(255, 255, 255, .9), transparent 40%),
    linear-gradient(145deg, rgba(255, 255, 255, .72), rgba(235, 243, 255, .56));
  box-shadow: var(--glass-shadow);
  backdrop-filter: blur(26px) saturate(142%);
  -webkit-backdrop-filter: blur(26px) saturate(142%);
}

.system-workspace-main {
  display: grid;
  gap: 13px;
  min-width: 0;
}

.system-workspace-main > .page-head {
  min-height: 66px;
  margin: 0;
  padding: 4px 3px 9px;
  border-bottom: 1px solid rgba(112, 137, 183, .15);
}

.system-workspace-main > .page-head h2 {
  font-size: 20px;
  line-height: 1.2;
}

.system-workspace-main > .page-head p {
  max-width: 660px;
  font-size: 9.5px;
  line-height: 1.55;
}

.system-workspace-rail-head {
  display: grid;
  gap: 4px;
  padding: 3px 5px 10px;
  border-bottom: 1px solid rgba(112, 137, 183, .14);
}

.system-workspace-rail-head span {
  color: var(--blue);
  font-size: 8px;
  font-weight: 820;
  letter-spacing: .08em;
}

.system-workspace-rail-head strong {
  color: var(--navy);
  font-size: 12px;
  line-height: 1.4;
}

.system-workspace-nav {
  display: grid;
  gap: 5px;
  padding-top: 9px;
}

.system-workspace-nav button {
  display: grid;
  grid-template-columns: 28px minmax(0, 1fr) 15px;
  align-items: center;
  gap: 7px;
  width: 100%;
  min-height: 42px;
  padding: 6px 7px;
  border: 1px solid transparent;
  border-radius: 12px;
  color: #52617a;
  background: transparent;
  font: inherit;
  font-size: 9.5px;
  font-weight: 740;
  text-align: left;
  transition: transform .2s ease, color .2s ease, border-color .2s ease, background .2s ease, box-shadow .2s ease;
}

.system-workspace-nav button:hover,
.system-workspace-nav button:focus-visible {
  color: var(--navy);
  border-color: rgba(91, 127, 205, .2);
  background: rgba(255, 255, 255, .7);
  box-shadow: 0 8px 18px rgba(50, 79, 140, .08);
  outline: none;
  transform: translateX(2px);
}

.system-workspace-nav button.active {
  color: #fff;
  border-color: rgba(39, 100, 255, .34);
  background: linear-gradient(135deg, #2258df, #3475ff);
  box-shadow: 0 10px 22px rgba(39, 100, 255, .22);
}

.system-workspace-nav button.nested {
  grid-template-columns: 24px minmax(0, 1fr) 14px;
  min-height: 36px;
  margin-left: 10px;
  width: calc(100% - 10px);
  font-size: 8.5px;
}

.system-workspace-nav button > .material-symbols-rounded:first-child {
  display: grid;
  place-items: center;
  width: 27px;
  height: 27px;
  border-radius: 9px;
  color: var(--blue);
  background: rgba(226, 236, 255, .82);
  font-size: 16px;
}

.system-workspace-nav button.active > .material-symbols-rounded:first-child {
  color: #fff;
  background: rgba(255, 255, 255, .18);
}

.system-workspace-nav button > .material-symbols-rounded:last-child {
  color: #91a0ba;
  font-size: 15px;
}

.system-workspace-nav button.active > .material-symbols-rounded:last-child { color: rgba(255, 255, 255, .82); }

.system-workspace-context { padding: 14px; }
.system-context-head {
  display: flex;
  align-items: center;
  gap: 9px;
  padding-bottom: 12px;
  border-bottom: 1px solid rgba(112, 137, 183, .14);
}

.system-context-head > .material-symbols-rounded {
  display: grid;
  place-items: center;
  width: 32px;
  height: 32px;
  border-radius: 10px;
  color: var(--blue);
  background: rgba(228, 237, 255, .82);
  font-size: 18px;
}

.system-context-head strong,
.system-context-head small { display: block; }
.system-context-head strong { color: var(--navy); font-size: 11px; }
.system-context-head small { margin-top: 2px; color: var(--muted); font-size: 8px; }

.system-context-list { display: grid; }
.system-context-list > div {
  display: grid;
  gap: 4px;
  min-height: 57px;
  padding: 11px 2px;
  border-bottom: 1px solid rgba(112, 137, 183, .12);
}
.system-context-list > div:last-child { border-bottom: 0; padding-bottom: 2px; }
.system-context-list span { color: #7a879d; font-size: 8px; }
.system-context-list strong { color: var(--navy); font-size: 9.5px; line-height: 1.5; overflow-wrap: anywhere; }

/* 清单不再横向拉满：默认按窄卡片排列，展开编辑时恢复完整宽度。 */
.system-workspace-main .audit-standard-editor {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(min(100%, 300px), 410px));
  gap: 9px;
  align-items: start;
  justify-content: start;
  max-height: none;
  overflow: visible;
  padding: 0;
}

.system-workspace-main .audit-standard-editor-row {
  min-width: 0;
  border-radius: 13px;
  background: rgba(255, 255, 255, .68);
  box-shadow: 0 8px 22px rgba(47, 76, 134, .06);
}

.system-workspace-main .audit-standard-editor-row[open] { grid-column: 1 / -1; }
.system-workspace-main .audit-standard-editor-row > summary {
  grid-template-columns: 60px minmax(0, 1fr);
  gap: 8px;
  min-height: 58px;
  padding: 10px 11px;
}
.system-workspace-main .audit-standard-editor-row > summary > span:last-child {
  grid-column: 1 / -1;
  padding-left: 68px;
  text-align: left;
  font-size: 9px;
}

.system-workspace-main .audit-standard-fields {
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 10px;
}

.system-workspace-main .access-role-grid,
.system-workspace-main .access-user-grid {
  grid-template-columns: repeat(auto-fill, minmax(min(100%, 285px), 420px));
  justify-content: start;
}

.system-workspace-main .insight-list {
  grid-template-columns: repeat(auto-fill, minmax(min(100%, 300px), 440px));
  align-items: start;
  justify-content: start;
}

.system-workspace-main .audit-workflow-tabs { display: none; }
.system-workspace-main .audit-stage-panel,
.system-workspace-main .audit-confirm-panel { margin: 0; }

/* 统一表单基线：标题、输入框与动作按钮在同一视觉行内对齐。 */
.system-workspace-main .access-fields,
.system-workspace-main .role-editor,
.system-workspace-main .audit-standard-fields,
.system-workspace-main .audit-framework-core-fields,
.system-workspace-main .framework-section-fields,
.system-workspace-main .framework-content-row,
.system-workspace-main .framework-level-row {
  align-items: start;
}

.system-workspace-main .access-fields label,
.system-workspace-main .role-editor label,
.system-workspace-main .audit-standard-fields label,
.system-workspace-main .audit-framework-core-fields label,
.system-workspace-main .framework-section-fields label,
.system-workspace-main .framework-content-row label,
.system-workspace-main .framework-level-row label {
  align-content: start;
  min-width: 0;
}

.system-workspace-main input:not([type="checkbox"]):not([type="radio"]):not([type="file"]),
.system-workspace-main select,
.system-workspace-main .button {
  min-height: 40px;
}

.system-workspace-main .page-controls,
.system-workspace-main .access-toolbar,
.system-workspace-main .card-header,
.system-workspace-main .audit-framework-editor-head,
.system-workspace-main .framework-editor-title {
  align-items: center;
}

.system-workspace-main .card,
.system-workspace-main .settings-section,
.system-workspace-main .access-user,
.system-workspace-main .access-role {
  padding: 15px;
  border-radius: 17px;
}

.system-workspace-main .kpi-grid { gap: 9px; margin-bottom: 0; }
.system-workspace-main .kpi { min-height: 102px; padding: 13px; }
.system-workspace-main .grid { gap: 12px; margin-bottom: 0; }
.system-workspace-main .module-panel-head { margin-bottom: 10px; padding: 13px 15px; border-radius: 16px; }
.system-workspace-main .module-panel-head h3 { font-size: 15px; }
.system-workspace-main .module-panel-head p { margin-top: 4px; }

@media (max-width: 1320px) {
  .system-workspace-shell {
    grid-template-columns: minmax(158px, 178px) minmax(0, 1fr) minmax(168px, 190px);
    gap: 11px;
  }
  .system-workspace-rail,
  .system-workspace-context { padding: 10px; border-radius: 17px; }
}

@media (max-width: 1120px) {
  .system-workspace-shell { grid-template-columns: minmax(155px, 176px) minmax(0, 1fr); }
  .system-workspace-context {
    position: static;
    grid-column: 2;
    display: grid;
    grid-template-columns: auto minmax(0, 1fr);
    gap: 12px;
  }
  .system-context-head { border-bottom: 0; border-right: 1px solid rgba(112, 137, 183, .14); padding: 2px 12px 2px 2px; }
  .system-context-list { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .system-context-list > div { min-height: 48px; padding: 4px 10px; border-bottom: 0; border-right: 1px solid rgba(112, 137, 183, .12); }
  .system-context-list > div:last-child { border-right: 0; }
}

@media (max-width: 900px) {
  .system-workspace-shell { display: flex; flex-direction: column; gap: 10px; }
  .system-workspace-rail,
  .system-workspace-context,
  .system-workspace-main { width: 100%; }
  .system-workspace-rail {
    position: static;
    padding: 9px;
    border-radius: 16px;
  }
  .system-workspace-rail-head { padding: 2px 4px 8px; }
  .system-workspace-nav {
    display: flex;
    gap: 7px;
    max-width: 100%;
    overflow-x: auto;
    padding: 8px 0 2px;
    scroll-snap-type: x proximity;
    -webkit-overflow-scrolling: touch;
  }
  .system-workspace-nav button,
  .system-workspace-nav button.nested {
    flex: 0 0 auto;
    grid-template-columns: 27px auto;
    width: auto;
    min-height: 44px;
    margin-left: 0;
    padding: 7px 10px 7px 8px;
    scroll-snap-align: start;
    font-size: 13px;
  }
  .system-workspace-nav button > .material-symbols-rounded:last-child { display: none; }
  .system-workspace-main { order: 2; }
  .system-workspace-context {
    order: 3;
    display: block;
    padding: 11px;
    border-radius: 16px;
  }
  .system-context-head { border-right: 0; border-bottom: 1px solid rgba(112, 137, 183, .14); padding: 0 0 9px; }
  .system-context-list { grid-template-columns: 1fr; }
  .system-context-list > div {
    min-height: 44px;
    padding: 8px 2px;
    border-right: 0;
    border-bottom: 1px solid rgba(112, 137, 183, .12);
  }
  .system-workspace-main > .page-head { min-height: 0; padding: 2px 0 10px; }
  .system-workspace-main > .page-head h2 { font-size: 20px; }
  .system-workspace-main > .page-head p { font-size: 12px; }
  .system-workspace-main .audit-standard-editor { grid-template-columns: 1fr; }
  .system-workspace-main .audit-standard-editor-row[open] { grid-column: auto; }
  .system-workspace-main .audit-standard-fields { grid-template-columns: 1fr; }
  .system-workspace-main input:not([type="checkbox"]):not([type="radio"]):not([type="file"]),
  .system-workspace-main select,
  .system-workspace-main .button { min-height: 44px; }
}

@media print {
  .system-workspace-shell { display: block; }
  .system-workspace-rail,
  .system-workspace-context { display: none !important; }
}

/* 2026-07-27 · 页面级筛选与稽核表单空间修复 */
.topbar.without-time-filters .filter-time-control {
  display: none !important;
}

.topbar.without-time-filters .filter-bar {
  width: auto;
  min-width: 0;
}

.topbar.without-time-filters .filter-scope-control {
  min-width: 132px;
}

/* 打分表保留左侧任务分类，但不再显示会遮挡输入区的右侧辅助栏。 */
body[data-page="auditForm"] .system-workspace-shell {
  grid-template-columns: minmax(172px, 198px) minmax(0, 1fr);
}

body[data-page="auditForm"] .system-workspace-context {
  display: none !important;
}

body.audit-form-standalone .content {
  max-width: 1580px;
}

/* 表单信息改为12列规则网格：桌面四列、窄屏两列、手机单列。 */
body[data-page="auditForm"] .audit-form-meta {
  grid-template-columns: repeat(12, minmax(0, 1fr));
  gap: 14px 16px;
  align-items: start;
  padding: 20px;
}

body[data-page="auditForm"] .audit-form-intro {
  grid-column: 1 / -1;
  max-width: 760px;
  padding-bottom: 3px;
}

body[data-page="auditForm"] .audit-form-intro p {
  max-width: 720px;
  line-height: 1.55;
}

body[data-page="auditForm"] .audit-meta-field {
  grid-column: span 3;
  align-content: start;
  min-width: 0;
}

body[data-page="auditForm"] .audit-meta-field > small {
  color: rgba(255, 255, 255, .72);
  font-size: 10px;
  font-weight: 500;
  line-height: 1.45;
}

body[data-page="auditForm"] .audit-staff-field {
  grid-column: span 9;
  align-self: start;
  min-width: 0;
  padding: 12px 14px;
  border: 1px solid rgba(255, 255, 255, .13);
  border-radius: 14px;
  background: rgba(255, 255, 255, .055);
}

body[data-page="auditForm"] .audit-staff-picker {
  max-height: 146px;
  overflow-y: auto;
  padding: 2px;
}

body[data-page="auditForm"] .audit-setup-action {
  grid-column: 1 / -1;
  justify-content: flex-end;
  padding-top: 2px;
}

body[data-page="auditForm"] .audit-setup-action .button {
  width: min(100%, 280px);
}

.audit-lock-badge {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  margin-left: 8px;
  padding: 4px 8px;
  border-radius: 999px;
  background: rgba(255,255,255,.14);
  color: #fff;
  font-size: 10px;
}
.audit-lock-badge i { font-size: 14px; }
.audit-staff-picker.locked { opacity: .72; }
.audit-staff-picker.locked label { cursor: default; }

.audit-record-list {
  display: grid;
  gap: 10px;
}
.audit-record-card {
  display: grid;
  grid-template-columns: minmax(210px, .9fr) minmax(430px, 2fr) auto;
  gap: 18px;
  align-items: center;
  padding: 14px 16px;
  border: 1px solid rgba(184,198,222,.58);
  border-radius: 16px;
  background: rgba(255,255,255,.72);
  box-shadow: 0 8px 24px rgba(32,58,103,.055);
  transition: transform .2s ease, border-color .2s ease, box-shadow .2s ease;
}
.audit-record-card:hover {
  transform: translateY(-1px);
  border-color: rgba(47,103,255,.35);
  box-shadow: 0 12px 30px rgba(32,58,103,.09);
}
.audit-record-primary {
  display: grid;
  grid-template-columns: auto minmax(0,1fr);
  gap: 5px 9px;
  align-items: center;
  min-width: 0;
}
.audit-record-primary strong,
.audit-record-link {
  min-width: 0;
  overflow: hidden;
  color: var(--navy);
  font: inherit;
  font-weight: 850;
  text-align: left;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.audit-record-link {
  padding: 0;
  border: 0;
  background: transparent;
  cursor: pointer;
}
.audit-record-primary small {
  grid-column: 2;
  color: var(--muted);
}
.audit-record-card dl {
  display: grid;
  grid-template-columns: repeat(4, minmax(88px,1fr));
  gap: 12px;
  margin: 0;
}
.audit-record-card dl div { min-width: 0; }
.audit-record-card dt { margin-bottom: 3px; color: var(--muted); font-size: 10px; font-weight: 750; }
.audit-record-card dd { margin: 0; overflow-wrap: anywhere; color: var(--navy); font-size: 12px; font-weight: 750; }
.audit-record-actions { display: flex; justify-content: flex-end; gap: 7px; flex-wrap: wrap; }
.audit-archive-filters {
  display: grid;
  grid-template-columns: repeat(5, minmax(130px,1fr)) auto;
  gap: 10px;
  align-items: end;
  margin: 12px 0;
  padding: 14px;
  border: 1px solid rgba(190,204,228,.55);
  border-radius: 17px;
  background: rgba(255,255,255,.62);
  backdrop-filter: blur(24px) saturate(145%);
}
.audit-archive-filters label { display: grid; gap: 6px; color: var(--muted); font-size: 10px; font-weight: 750; }
.audit-archive-filters input,
.audit-archive-filters select { width: 100%; min-height: 40px; min-width: 0; }

.audit-framework-export,
.audit-framework-import {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 7px;
  width: 100%;
  margin-top: 8px;
  text-decoration: none;
}
.audit-framework-import { position: relative; cursor: pointer; }
.audit-framework-import input {
  position: absolute;
  width: 1px;
  height: 1px;
  opacity: 0;
  pointer-events: none;
}
.framework-content-row {
  grid-template-columns: 56px repeat(11, minmax(0, 1fr));
  align-items: start;
  gap: 10px 12px;
  min-width: 0;
  padding: 14px;
  overflow: visible;
}
.framework-content-select {
  grid-column: 1;
  grid-row: 1 / span 2;
  align-self: stretch;
  justify-content: center;
  align-content: center !important;
  display: flex !important;
  align-items: center;
  flex-direction: column;
  gap: 6px;
  padding-right: 10px;
  border-right: 1px solid rgba(120, 145, 188, .16);
}
.framework-content-select input { width: auto; }
.framework-content-name-field { grid-column: 2 / span 4; }
.framework-content-purpose-field { grid-column: 6 / -1; }
.framework-content-severity-field { grid-column: 2 / span 3; }
.framework-content-score-field { grid-column: 5 / span 2; }
.framework-content-sort-field { grid-column: 7 / span 2; }
.framework-content-enabled-field {
  grid-column: 9 / -1;
  align-self: end;
  justify-content: flex-start;
  min-height: 40px;
  padding: 0 11px;
  border: 1px solid rgba(121, 145, 188, .25);
  border-radius: 11px;
  background: rgba(248, 251, 255, .78);
  white-space: nowrap;
}
.framework-content-row select,
.framework-content-row input:not([type="checkbox"]) {
  width: 100%;
  min-width: 0;
}
.framework-section-fields {
  grid-template-columns: minmax(0, 1fr) 132px;
  align-items: end;
}
.framework-section-name-field { grid-column: 1; }
.framework-section-sort-field { grid-column: 2; }
.framework-section-purpose-field { grid-column: 1; }
.framework-section-enabled-field {
  grid-column: 2;
  justify-content: flex-start !important;
  min-height: 40px !important;
  padding: 0 11px;
  border: 1px solid rgba(121, 145, 188, .25);
  border-radius: 11px;
  background: rgba(248, 251, 255, .78);
  white-space: nowrap;
}
.framework-section-fields > .framework-section-enabled-field { grid-column: 2; }
.framework-section-row,
.framework-content-list,
.framework-section-fields,
.framework-content-row > * { min-width: 0; }
.framework-section-row > .access-actions {
  display: flex;
  justify-content: flex-end;
  flex-wrap: wrap;
  gap: 8px;
}

@media (max-width: 1180px) {
  body[data-page="auditForm"] .system-workspace-shell {
    grid-template-columns: minmax(155px, 176px) minmax(0, 1fr);
  }

  body[data-page="auditForm"] .audit-meta-field {
    grid-column: span 6;
  }

  body[data-page="auditForm"] .audit-staff-count {
    grid-column: span 4;
  }

  body[data-page="auditForm"] .audit-staff-field {
    grid-column: span 8;
  }

  .audit-record-card {
    grid-template-columns: minmax(200px,.8fr) minmax(0,1.5fr);
  }
  .audit-record-actions { grid-column: 1 / -1; justify-content: flex-start; }
  .audit-archive-filters { grid-template-columns: repeat(3, minmax(130px,1fr)); }
  .framework-content-row { grid-template-columns: 52px repeat(11, minmax(0,1fr)); }
}

@media (max-width: 900px) {
  .topbar.without-time-filters .filter-bar {
    grid-column: 1 / -1;
    overflow: visible;
  }

  .topbar.without-time-filters .filter-scope-control {
    width: 100%;
    min-width: 0;
  }

  body[data-page="auditForm"] .system-workspace-shell {
    display: flex;
  }

  body[data-page="auditForm"] .audit-form-meta {
    grid-template-columns: 1fr;
    gap: 12px;
    padding: 15px;
  }

  body[data-page="auditForm"] .audit-form-intro,
  body[data-page="auditForm"] .audit-meta-field,
  body[data-page="auditForm"] .audit-staff-count,
  body[data-page="auditForm"] .audit-staff-field,
  body[data-page="auditForm"] .audit-setup-action {
    grid-column: 1;
  }

  body[data-page="auditForm"] .audit-staff-field {
    padding: 11px;
  }

  body[data-page="auditForm"] .audit-staff-picker {
    max-height: none;
  }

  body[data-page="auditForm"] .audit-setup-action .button {
    width: 100%;
  }

  .audit-record-card {
    grid-template-columns: 1fr;
    gap: 12px;
    padding: 13px;
  }
  .audit-record-card dl { grid-template-columns: repeat(2, minmax(0,1fr)); }
  .audit-record-actions { grid-column: auto; }
  .audit-record-actions .button { flex: 1 1 120px; }
  .audit-archive-filters { grid-template-columns: 1fr; }
  .framework-section-fields,
  .framework-content-row { grid-template-columns: 1fr; }
  .framework-section-name-field,
  .framework-section-sort-field,
  .framework-section-purpose-field,
  .framework-section-enabled-field,
  .framework-content-select,
  .framework-content-name-field,
  .framework-content-purpose-field,
  .framework-content-severity-field,
  .framework-content-score-field,
  .framework-content-sort-field,
  .framework-content-enabled-field {
    grid-column: 1;
    grid-row: auto;
  }
  .framework-content-select {
    align-self: auto;
    justify-content: flex-start;
    align-content: center !important;
    flex-direction: row;
    min-height: 40px;
    padding: 0;
    border-right: 0;
  }
  .framework-section-enabled-field,
  .framework-content-enabled-field {
    justify-content: flex-start !important;
    align-self: stretch;
  }
  .framework-section-fields > .framework-section-enabled-field { grid-column: 1; }
  .framework-section-row > .access-actions { justify-content: stretch; }
  .framework-section-row > .access-actions .button { flex: 1 1 150px; }
}

/* 2026-07-28 · 全局问题级别、完整显示与系统开关 */
.audit-framework-core-fields {
  grid-template-columns: minmax(120px, .85fr) minmax(180px, 1.35fr) minmax(140px, 1fr);
}

.audit-framework-head-actions {
  display: flex;
  justify-content: flex-end;
  flex-wrap: wrap;
  gap: 8px;
}

.audit-framework-head-actions .button {
  min-height: 44px;
}

.system-toggle {
  display: inline-flex !important;
  align-items: center;
  gap: 9px;
  min-width: 0;
  min-height: 34px;
  color: var(--navy);
  cursor: pointer;
  user-select: none;
}

.system-toggle-input {
  position: absolute !important;
  width: 1px !important;
  height: 1px !important;
  margin: 0 !important;
  opacity: 0;
  pointer-events: none;
}

.system-toggle-track {
  position: relative;
  flex: 0 0 48px;
  width: 48px;
  height: 28px;
  border: 1px solid rgba(106, 119, 143, .18);
  border-radius: 999px;
  background: #aeb4bf;
  box-shadow: inset 0 1px 3px rgba(31, 43, 66, .16);
  transition: background-color .24s cubic-bezier(.2,.8,.2,1), border-color .24s ease, box-shadow .24s ease;
}

.system-toggle-track::after {
  content: "";
  position: absolute;
  left: 3px;
  top: 3px;
  width: 20px;
  height: 20px;
  border-radius: 50%;
  background: #fff;
  box-shadow: 0 2px 7px rgba(22, 38, 67, .28);
  transform: translateX(0);
  transition: transform .24s cubic-bezier(.34,1.35,.64,1), box-shadow .24s ease;
}

.system-toggle-input:checked + .system-toggle-track {
  border-color: rgba(39, 100, 255, .64);
  background: linear-gradient(135deg, #4f86ff, var(--blue));
  box-shadow: 0 5px 14px rgba(39, 100, 255, .24), inset 0 1px 1px rgba(255,255,255,.35);
}

.system-toggle-input:checked + .system-toggle-track::after {
  transform: translateX(20px);
}

.system-toggle-input:focus-visible + .system-toggle-track {
  outline: 3px solid rgba(39, 100, 255, .22);
  outline-offset: 3px;
}

.system-toggle-label {
  min-width: 0;
  color: #a0a9b9;
  font-size: 11px;
  font-weight: 760;
  line-height: 1.35;
  transition: color .22s ease, opacity .22s ease;
}

.system-toggle-input:checked ~ .system-toggle-label {
  color: var(--navy);
}

.framework-section-enabled-field,
.framework-content-enabled-field {
  display: flex;
  align-items: center;
}

.framework-section-enabled-field .system-toggle,
.framework-content-enabled-field .system-toggle {
  width: 100%;
}

.global-level-settings-card {
  min-width: 0;
  overflow: hidden;
}

.global-level-list {
  display: grid;
  gap: 10px;
}

.global-level-row {
  display: grid;
  grid-template-columns: repeat(12, minmax(0, 1fr));
  gap: 10px 12px;
  align-items: end;
  min-width: 0;
  padding: 14px;
  border: 1px solid rgba(118, 143, 190, .22);
  border-radius: 16px;
  background: rgba(249, 252, 255, .78);
  box-shadow: inset 0 1px 0 rgba(255,255,255,.9);
  transition: border-color .2s ease, box-shadow .2s ease, transform .2s ease;
}

.global-level-row:hover {
  border-color: rgba(39, 100, 255, .32);
  box-shadow: 0 9px 24px rgba(46, 79, 137, .07);
  transform: translateY(-1px);
}

.global-level-row > label {
  display: grid;
  gap: 6px;
  min-width: 0;
  color: var(--muted);
  font-size: 10px;
  font-weight: 760;
}

.global-level-row input:not([type="checkbox"]),
.global-level-row select {
  width: 100%;
  min-width: 0;
  min-height: 42px;
}

.global-level-row small {
  color: var(--muted);
  font-size: 9px;
}

.global-level-code { grid-column: span 2; }
.global-level-name { grid-column: span 3; }
.global-level-rank { grid-column: span 2; }
.global-level-rule { grid-column: span 5; }
.global-level-ratio { grid-column: span 3; }
.global-level-days { grid-column: span 2; }
.global-level-switches {
  grid-column: span 5;
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 8px 18px;
  min-width: 0;
  min-height: 42px;
}
.global-level-delete { grid-column: span 2; width: 100%; min-height: 42px; }

@media (max-width: 1180px) {
  .global-level-code,
  .global-level-rank,
  .global-level-ratio,
  .global-level-days { grid-column: span 3; }
  .global-level-name,
  .global-level-rule { grid-column: span 6; }
  .global-level-switches { grid-column: span 9; }
  .global-level-delete { grid-column: span 3; }
}

@media (max-width: 900px) {
  .audit-framework-head-actions {
    display: grid;
    grid-template-columns: 1fr 1fr;
    width: 100%;
  }
  .audit-framework-head-actions .button { width: 100%; min-width: 0; }
  .audit-framework-core-fields { grid-template-columns: 1fr; }
  .framework-code-field,
  .framework-name-field,
  .framework-status-field,
  .framework-description-field { grid-column: 1 / -1; }
  .global-level-row { grid-template-columns: 1fr; padding: 12px; }
  .global-level-code,
  .global-level-name,
  .global-level-rank,
  .global-level-rule,
  .global-level-ratio,
  .global-level-days,
  .global-level-switches,
  .global-level-delete { grid-column: 1; }
  .global-level-switches { display: grid; gap: 7px; }
  .system-toggle { min-height: 44px; }
  .system-toggle-track { flex-basis: 50px; width: 50px; height: 29px; }
  .system-toggle-track::after { width: 21px; height: 21px; }
  .system-toggle-input:checked + .system-toggle-track::after { transform: translateX(21px); }
}

/* 手机端最终覆盖：清单完整显示，统计信息不被并排挤压 */
@media (max-width: 900px) {
  .audit-settings-intro {
    align-items: stretch;
    flex-direction: column;
    gap: 12px;
  }
  .audit-settings-intro > div:last-child {
    width: 100%;
    text-align: left;
  }
  .audit-settings-intro > div:last-child strong { white-space: nowrap; }
  .audit-framework-list {
    display: grid;
    grid-template-columns: 1fr;
    max-width: 100%;
    overflow: visible;
    padding: 0;
  }
  .audit-framework-card {
    width: 100%;
    min-height: 70px;
  }
}

/* 2026-07-28 · NIGGU UI foundation */
:root {
  --ui-space-1: 4px;
  --ui-space-2: 8px;
  --ui-space-3: 12px;
  --ui-space-4: 16px;
  --ui-space-5: 20px;
  --ui-space-6: 24px;
  --ui-type-caption: 12px;
  --ui-type-body: 14px;
  --ui-type-control: 14px;
  --ui-type-card-title: 16px;
  --ui-type-section-title: 20px;
  --ui-type-page-title: clamp(26px, 2vw, 30px);
  --ui-radius-control: 11px;
  --ui-radius-card: 14px;
  --ui-radius-panel: 18px;
  --ui-control-desktop: 40px;
  --ui-control-touch: 44px;
  --ui-motion-micro: 160ms;
  --ui-motion-structure: 220ms;
  --ui-motion-layer: 280ms;
  --ui-ease-standard: cubic-bezier(.2, .8, .2, 1);
  --ui-surface-work: rgba(255, 255, 255, .9);
  --ui-surface-glass: rgba(246, 250, 255, .72);
  --ui-border-soft: rgba(111, 137, 184, .2);
  --ui-shadow-float: 0 18px 48px rgba(35, 65, 118, .12);
}

body {
  font-size: var(--ui-type-body);
}

.page-head h2 {
  font-size: var(--ui-type-page-title);
}

.page-head p,
.card-subtitle,
.metric-note {
  font-size: var(--ui-type-caption);
}

button,
input,
select,
textarea {
  font: inherit;
}

.button,
input:not([type="checkbox"]):not([type="radio"]):not([type="file"]),
select {
  min-height: var(--ui-control-desktop);
}

@media (max-width: 900px) {
  .button,
  input:not([type="checkbox"]):not([type="radio"]):not([type="file"]),
  select {
    min-height: var(--ui-control-touch);
  }
}

@media (min-width: 821px) {
  .app-shell {
    grid-template-columns: 232px minmax(0, 1fr);
    gap: var(--ui-space-4);
    padding: var(--ui-space-4);
    transition: grid-template-columns var(--ui-motion-layer) var(--ui-ease-standard);
  }

  .app-shell.sidebar-collapsed {
    grid-template-columns: 72px minmax(0, 1fr);
  }
}

.workspace-nav strong {
  font-size: var(--ui-type-body);
}

.nav-subitem {
  font-size: 13px;
}

.nav-tertiary button {
  min-height: 36px;
  font-size: var(--ui-type-caption);
}

.nav-submenu {
  transition:
    max-height var(--ui-motion-structure) var(--ui-ease-standard),
    opacity var(--ui-motion-micro) ease,
    padding var(--ui-motion-structure) ease;
}

.nav-chevron,
.nav-sub-chevron {
  transition: transform var(--ui-motion-structure) var(--ui-ease-standard);
}

.app-shell.sidebar-collapsed .brand > div:last-child,
.app-shell.sidebar-collapsed .workspace-nav strong,
.app-shell.sidebar-collapsed .workspace-nav .nav-step,
.app-shell.sidebar-collapsed .workspace-nav .nav-chevron,
.app-shell.sidebar-collapsed .nav-submenu,
.app-shell.sidebar-collapsed .sidebar-foot-copy,
.app-shell.sidebar-collapsed .sidebar-collapse span {
  opacity: 0;
  pointer-events: none;
}

.app-shell.sidebar-collapsed .sidebar {
  padding-inline: 9px;
}

.app-shell.sidebar-collapsed .brand {
  justify-content: center;
  padding-inline: 0;
}

.app-shell.sidebar-collapsed .workspace-nav {
  grid-template-columns: 1fr;
  justify-items: center;
  padding-inline: 8px;
}

.system-workspace-shell[data-layout="main"] {
  grid-template-columns: minmax(0, 1fr);
}

.system-workspace-shell[data-layout="rail-main"] {
  grid-template-columns: minmax(200px, 216px) minmax(0, 1fr);
}

.system-workspace-shell[data-layout="rail-main-context"] {
  grid-template-columns: minmax(200px, 216px) minmax(0, 1fr) minmax(280px, 320px);
  transition: grid-template-columns var(--ui-motion-layer) var(--ui-ease-standard);
}

.system-workspace-shell[data-layout="rail-main-context"].context-collapsed {
  grid-template-columns: minmax(200px, 216px) minmax(0, 1fr) 48px;
}

.system-context-head {
  position: relative;
  padding-right: 38px;
}

.system-context-collapse {
  position: absolute;
  top: 0;
  right: 0;
  display: inline-grid;
  place-items: center;
  width: 34px;
  height: 34px;
  padding: 0;
  border: 1px solid var(--ui-border-soft);
  border-radius: 10px;
  color: var(--navy);
  background: rgba(255, 255, 255, .74);
  cursor: pointer;
  transition:
    color var(--ui-motion-micro) ease,
    background var(--ui-motion-micro) ease,
    transform var(--ui-motion-micro) var(--ui-ease-standard);
}

.system-context-collapse:hover,
.system-context-collapse:focus-visible {
  color: var(--blue);
  background: #fff;
}

.system-context-collapse .material-symbols-rounded {
  font-size: 19px;
  transition: transform var(--ui-motion-structure) var(--ui-ease-standard);
}

.system-workspace-shell.context-collapsed .system-workspace-context {
  padding: 7px;
}

.system-workspace-shell.context-collapsed .system-context-head {
  min-height: 34px;
  padding: 0;
  border: 0;
}

.system-workspace-shell.context-collapsed .system-context-head > .material-symbols-rounded,
.system-workspace-shell.context-collapsed .system-context-head > div,
.system-workspace-shell.context-collapsed .system-context-list {
  display: none;
}

.system-workspace-shell.context-collapsed .system-context-collapse {
  position: static;
}

.system-workspace-shell.context-collapsed .system-context-collapse .material-symbols-rounded {
  transform: rotate(180deg);
}

@media (max-width: 1120px) and (min-width: 821px) {
  .system-workspace-shell[data-layout="rail-main-context"],
  .system-workspace-shell[data-layout="rail-main-context"].context-collapsed {
    grid-template-columns: minmax(176px, 200px) minmax(0, 1fr);
  }

  .system-workspace-shell[data-layout="rail-main-context"] .system-workspace-context {
    grid-column: 2;
  }
}

@media (max-width: 900px) {
  .system-workspace-shell[data-layout] {
    display: flex;
    flex-direction: column;
  }

  .system-workspace-shell.context-collapsed .system-workspace-context {
    width: auto;
    align-self: flex-end;
  }
}

.topbar[data-uses-time="false"] .filter-time-control,
[data-uses-time="false"] .filter-time-control {
  display: none;
}

.topbar[data-show-scope="false"] .filter-scope-control {
  display: none;
}

.topbar[data-show-export="false"] #printButton,
.topbar[data-show-export="false"] #exportButton {
  display: none;
}

.page-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: var(--ui-space-4);
  min-width: 0;
}

.page-head-copy {
  min-width: 0;
}

.page-head-copy h2 {
  line-height: 1.16;
}

.page-head-copy p {
  max-width: 760px;
  margin-top: var(--ui-space-2);
  line-height: 1.55;
}

.page-head > .page-controls {
  flex: 0 0 auto;
  justify-content: flex-end;
}

@media (max-width: 900px) {
  .page-head {
    flex-direction: column;
    gap: var(--ui-space-3);
  }

  .page-head > .page-controls {
    width: 100%;
    justify-content: stretch;
  }

  .page-head > .page-controls .button {
    flex: 1 1 140px;
  }
}

.ui-switch {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  min-height: var(--ui-control-touch);
}

.ui-switch .system-toggle-track {
  width: 44px;
  height: 26px;
  flex-basis: 44px;
  background: #b7bfcc;
  transition:
    background var(--ui-motion-micro) ease,
    border-color var(--ui-motion-micro) ease,
    box-shadow var(--ui-motion-micro) ease;
}

.ui-switch .system-toggle-track::after {
  width: 18px;
  height: 18px;
  transition: transform var(--ui-motion-micro) var(--ui-ease-standard);
}

.ui-switch .system-toggle-input:checked + .system-toggle-track {
  background: var(--blue);
}

.ui-switch .system-toggle-input:checked + .system-toggle-track::after {
  transform: translateX(18px);
}

.ui-switch .system-toggle-input:not(:checked) ~ .system-toggle-label {
  color: var(--muted);
  opacity: .72;
}

.field-message {
  display: block;
  margin-top: 6px;
  color: var(--muted);
  font-size: var(--ui-type-caption);
  line-height: 1.4;
}

.field-message.error {
  color: #a42c38;
}

.field-message.success {
  color: #167343;
}

.button[aria-busy="true"] {
  cursor: progress;
  opacity: .78;
}

@media (max-width: 900px) {
  .app-shell,
  .app-shell.sidebar-collapsed {
    display: block;
    grid-template-columns: minmax(0, 1fr);
  }

  .main {
    width: 100%;
    min-width: 0;
  }

  .settings-modal {
    place-items: stretch;
    padding: 0;
  }

  .settings-modal-panel {
    width: 100%;
    max-width: none;
    height: 100dvh;
    max-height: 100dvh;
    border-radius: 0;
  }

  .settings-modal-body {
    min-height: 0;
    overflow-y: auto;
    overscroll-behavior: contain;
  }

  .settings-modal-actions {
    padding-bottom: calc(12px + env(safe-area-inset-bottom));
  }
}

@media (max-width: 900px) {
  .table-wrap:has(td[data-mobile-label]) {
    overflow: visible;
    border: 0;
    background: transparent;
  }

  .table-wrap:has(td[data-mobile-label]) table,
  .table-wrap:has(td[data-mobile-label]) tbody,
  .table-wrap:has(td[data-mobile-label]) tr,
  .table-wrap:has(td[data-mobile-label]) td {
    display: block;
    width: 100%;
    min-width: 0;
  }

  .table-wrap:has(td[data-mobile-label]) thead {
    display: none;
  }

  .table-wrap:has(td[data-mobile-label]) tr {
    margin-bottom: 10px;
    padding: 12px;
    border: 1px solid var(--line);
    border-radius: var(--ui-radius-card);
    background: rgba(255, 255, 255, .88);
    box-shadow: 0 8px 22px rgba(47, 76, 134, .06);
  }

  .table-wrap:has(td[data-mobile-label]) tr.forecast-audit-row-pass { background: #edf9f0; }
  .table-wrap:has(td[data-mobile-label]) tr.forecast-audit-row-fail { background: #fff1f1; }

  .table-wrap:has(td[data-mobile-label]) td {
    display: grid;
    grid-template-columns: minmax(92px, .4fr) minmax(0, 1fr);
    gap: 12px;
    min-height: 0;
    padding: 8px 0;
    border: 0;
    border-bottom: 1px solid rgba(112, 137, 183, .12);
    white-space: normal;
    text-align: left;
    overflow-wrap: anywhere;
  }

  .table-wrap:has(td[data-mobile-label]) td:last-child {
    border-bottom: 0;
  }

  .table-wrap td[data-mobile-label]::before {
    content: attr(data-mobile-label);
    color: var(--muted);
    font-size: var(--ui-type-caption);
    font-weight: 700;
  }

  .table-wrap td:last-child .button,
  .table-wrap td:last-child button {
    width: auto;
    min-width: 88px;
    white-space: nowrap;
    writing-mode: horizontal-tb;
  }
}

.chart,
.chart svg,
.chart canvas {
  max-width: 100%;
}

.audit-form-meta.is-locked input,
.audit-form-meta.is-locked select,
.audit-form-meta.is-locked .audit-staff-picker {
  color: var(--ink);
  background: rgba(238, 243, 251, .78);
  cursor: not-allowed;
}

.audit-form-meta.is-locked label,
.audit-form-meta.is-locked .audit-staff-field,
.audit-form-meta.is-locked .audit-staff-field > small {
  color: rgba(255, 255, 255, .78);
}

.audit-form-meta.is-locked .audit-staff-picker label {
  color: var(--ink);
  border-color: rgba(127, 151, 194, .22);
}

@media (max-width: 1180px) {
  .overview-kpi-ribbon {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .filter-bar {
    min-width: 0;
    max-width: 100%;
    overflow-x: auto;
    overscroll-behavior-inline: contain;
  }
}

@media (max-width: 900px) {
  .audit-framework-panel {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 8px;
  }

  .audit-framework-panel-head,
  .audit-framework-list {
    grid-column: 1 / -1;
  }

  .audit-framework-list {
    display: flex;
    gap: 8px;
    max-width: 100%;
    overflow-x: auto;
    scroll-snap-type: x mandatory;
    overscroll-behavior-inline: contain;
    -webkit-overflow-scrolling: touch;
  }

  .audit-framework-card {
    flex: 0 0 calc(100% - 28px);
    scroll-snap-align: start;
  }

  .audit-framework-panel > .button {
    width: 100%;
    min-width: 0;
    margin: 0;
    padding-inline: 9px;
    white-space: normal;
    text-align: center;
  }

  .chart-mobile-scroll {
    max-width: 100%;
    overflow-x: auto;
    overflow-y: hidden;
    overscroll-behavior-inline: contain;
    -webkit-overflow-scrolling: touch;
  }

  .chart-mobile-scroll > svg {
    width: max(100%, 680px);
    max-width: none;
  }
}

@media (max-width: 520px) {
  .overview-kpi-ribbon {
    grid-template-columns: minmax(0, 1fr);
  }

  .overview-kpi {
    border-right: 0;
    border-bottom: 1px solid rgba(137, 158, 199, .18);
  }

  .overview-kpi:last-child {
    border-bottom: 0;
  }
}

@media (max-width: 760px) {
  .access-toolbar,
  .employee-list-controls {
    align-items: stretch;
    flex-direction: column;
  }

  .access-toolbar-actions {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    justify-content: stretch;
  }

  .access-toolbar-actions .button,
  .employee-list-controls label {
    width: 100%;
    min-width: 0;
  }

  .employee-batch-toolbar {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 9px;
  }

  .employee-batch-toolbar > span {
    grid-column: 1 / -1;
    grid-row: 2;
    margin: 0;
  }

  .employee-row-shell.is-batch {
    grid-template-columns: 28px minmax(0, 1fr);
  }

  .employee-lifecycle-preview .disclosure-summary-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .employee-lifecycle-item-head {
    grid-template-columns: auto minmax(0, 1fr);
  }

  .employee-lifecycle-item-head em {
    grid-column: 2;
  }

  .employee-lifecycle-item li {
    display: grid;
    gap: 3px;
  }

  .employee-lifecycle-item li span {
    text-align: left;
  }

  .employee-batch-import {
    min-width: 0;
  }

  .employee-batch-import-actions,
  .employee-batch-preview-head .disclosure-summary-grid,
  .employee-batch-preview-row {
    grid-template-columns: minmax(0, 1fr);
  }

  .employee-batch-import-actions .button {
    width: 100%;
  }

  .employee-batch-preview-row {
    gap: 6px;
  }

  .employee-batch-preview-row .status-pill {
    width: fit-content;
  }
}

@media (max-width: 420px) {
  .access-toolbar-actions,
  .employee-lifecycle-preview .disclosure-summary-grid {
    grid-template-columns: minmax(0, 1fr);
  }
}

.nav-submenu,
.system-workspace-nav,
.audit-disclosure-motion,
.framework-section-row {
  transition-duration: var(--ui-motion-structure);
}

.settings-modal-panel,
.page-state-motion {
  animation-duration: var(--ui-motion-layer);
}

.sidebar {
  transition-duration: var(--ui-motion-layer);
}

.button,
.ui-switch-track,
.ui-switch-track > span,
.system-toggle-track,
.system-toggle-track::after {
  transition-duration: var(--ui-motion-micro);
}

@media (prefers-reduced-motion: reduce) {
  *,
  *::before,
  *::after {
    scroll-behavior: auto !important;
    animation: none !important;
    animation-iteration-count: 1 !important;
  }

  .settings-modal,
  .detail-drawer,
  .chart-modal,
  .toast {
    transition-duration: var(--ui-motion-micro) !important;
  }

  .settings-modal-panel,
  .detail-drawer-panel,
  .chart-modal-panel,
  .toast {
    transform: none !important;
  }
}

/* 2026-07-31 · interaction feedback system: calm, reversible, and data-first. */
.settings-modal,
.detail-drawer,
.chart-modal {
  opacity: 0;
  transition: opacity var(--ui-motion-structure) var(--ui-ease-standard);
}

.settings-modal.is-visible,
.detail-drawer.is-visible,
.chart-modal.is-visible {
  opacity: 1;
}

.settings-modal-panel,
.chart-modal-panel,
.detail-drawer-panel {
  opacity: 0;
  will-change: transform, opacity;
  animation: none;
  transition: transform var(--ui-motion-layer) var(--ui-ease-standard), opacity var(--ui-motion-structure) var(--ui-ease-standard);
}

.settings-modal-panel,
.chart-modal-panel {
  transform: translateY(12px) scale(.985);
}

.detail-drawer-panel {
  transform: translateX(24px);
}

.settings-modal.is-visible .settings-modal-panel,
.chart-modal.is-visible .chart-modal-panel,
.detail-drawer.is-visible .detail-drawer-panel {
  opacity: 1;
  transform: none;
}

.settings-modal.is-closing,
.detail-drawer.is-closing,
.chart-modal.is-closing {
  opacity: 0;
  pointer-events: none;
}

.settings-modal.is-closing .settings-modal-panel,
.chart-modal.is-closing .chart-modal-panel {
  opacity: 0;
  transform: translateY(12px) scale(.985);
}

.detail-drawer.is-closing .detail-drawer-panel {
  opacity: 0;
  transform: translateX(24px);
}

.toast {
  opacity: 0;
  transform: translateY(12px);
  pointer-events: none;
  transition: transform var(--ui-motion-micro) var(--ui-ease-standard), opacity var(--ui-motion-micro) var(--ui-ease-standard);
  will-change: transform, opacity;
}

.toast.is-visible {
  opacity: 1;
  transform: none;
}

.toast.is-closing {
  opacity: 0;
  transform: translateY(12px);
}

.button {
  transition: transform 120ms var(--ui-ease-standard), background-color var(--ui-motion-micro) ease, border-color var(--ui-motion-micro) ease, box-shadow var(--ui-motion-micro) ease, color var(--ui-motion-micro) ease;
}

.button:active {
  transform: scale(.98);
}

.module-panel { animation: none; }
.page-enter > * { animation: none; }
.app-shell { transition: none !important; }

.nav-submenu {
  transform: translateY(-4px);
  pointer-events: none;
  transition: opacity var(--ui-motion-micro) var(--ui-ease-standard), transform var(--ui-motion-structure) var(--ui-ease-standard);
}

.nav-cluster.expanded .nav-submenu {
  transform: none;
  pointer-events: auto;
}

@media (hover: hover) and (pointer: fine) {
  .button:hover { transform: translateY(-1px); }
  .button.danger:hover { border-color: var(--risk); box-shadow: 0 5px 14px rgba(173, 45, 58, .12); }
  .kpi:hover { transform: translateY(-2px); box-shadow: 0 14px 28px rgba(20,33,61,.10); }
  .card:hover { border-color: rgba(80, 121, 215, .28); box-shadow: 0 18px 42px rgba(62, 88, 139, .13); }
  .drilldown-summary-card:hover { border-color: rgba(47, 109, 246, .48); box-shadow: 0 10px 26px rgba(33, 70, 130, .10); transform: translateY(-2px); }
  .nav-item:hover { transform: translateX(2px); }
  .chart-modal-close:hover { background: var(--blue-open); transform: scale(1.03); }
}

@media (hover: none), (pointer: coarse) {
  .button:hover,
  .kpi:hover,
  .card:hover,
  .nav-item:hover,
  .drilldown-summary-card:hover,
  .chart-modal-close:hover,
  .chart-mark:hover,
  .chart.chart-expandable:hover::after,
  .drillable:hover::before {
    transform: none;
  }

  .chart-mark:hover {
    filter: none;
  }
}

@media (prefers-reduced-motion: reduce) {
  .settings-modal-panel,
  .detail-drawer-panel,
  .chart-modal-panel,
  .toast {
    transform: none !important;
  }
}
/* v2608015 · 三档经营轨道。业务结果是主角，旧倍率控件退出主流程。 */
.forecast-scenario-rail {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 16px;
  margin: 18px 0;
}

.forecast-scenario-card {
  min-width: 0;
  padding: 22px;
  border: 1px solid #dce6f7;
  border-radius: 22px;
  background: rgba(255, 255, 255, 0.88);
  box-shadow: 0 14px 34px rgba(22, 45, 86, 0.07);
}

.forecast-scenario-card > span,
.forecast-scenario-card > small {
  display: block;
  color: #687996;
}

.forecast-scenario-card > strong {
  display: block;
  margin: 10px 0 8px;
  color: #13284d;
  font-size: clamp(28px, 3vw, 46px);
  line-height: 1;
  font-variant-numeric: tabular-nums;
}

.forecast-scenario-card.is-selected {
  border-color: #2f6bff;
  background: linear-gradient(145deg, #eef4ff 0%, #ffffff 72%);
  box-shadow: 0 16px 40px rgba(47, 107, 255, 0.16);
}

.forecast-scenario-control {
  overflow: visible;
}

.forecast-scenario-control-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
}

.forecast-scenario-control-head details {
  position: relative;
}

.forecast-scenario-control-head > div > span,
.forecast-scenario-control-head > div > strong {
  display: block;
}

.forecast-scenario-control-head > div > strong {
  margin-top: 6px;
  color: #173464;
  font-size: 30px;
}

.forecast-scenario-picker-panel {
  position: absolute;
  z-index: 9;
  top: calc(100% + 8px);
  right: 0;
  padding: 9px 9px 62px;
  border: 1px solid #cfdaeb;
  border-radius: 14px;
  background: #fff;
  box-shadow: 0 18px 40px rgba(20, 33, 61, .18);
  width: min(520px, calc(100vw - 32px));
}

.forecast-scenario-options label {
  min-height: 68px;
}

.forecast-scenario-options label span,
.forecast-scenario-options label small {
  display: block;
}

.forecast-scenario-comparisons {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
  margin-top: 18px;
}

.forecast-scenario-comparisons article {
  padding: 16px 18px;
  border-radius: 16px;
  background: #f5f8fe;
}

.forecast-scenario-comparisons span,
.forecast-scenario-comparisons small,
.forecast-scenario-comparisons strong {
  display: block;
}

.forecast-scenario-comparisons strong {
  margin: 5px 0;
  color: #13284d;
  font-size: 23px;
}

.forecast-scenario-delta {
  display: inline-flex;
  align-items: baseline;
  gap: 6px;
  white-space: nowrap;
  font-variant-numeric: tabular-nums;
}

.forecast-scenario-delta small { color: var(--muted); font-size: 11px; }
.forecast-scenario-delta.is-up { color: #14653d; }
.forecast-scenario-delta.is-down { color: #a33939; }
.forecast-current-scenario { color: var(--muted); white-space: nowrap; }

@media (max-width: 720px) {
  .forecast-scenario-rail,
  .forecast-scenario-comparisons {
    grid-template-columns: 1fr;
  }

  .forecast-scenario-control-head {
    align-items: stretch;
    flex-direction: column;
  }

  .forecast-scenario-control-head details > summary {
    min-height: 48px;
    width: 100%;
    justify-content: center;
  }

  .forecast-scenario-picker-panel {
    inset-inline: 0;
    width: 100%;
  }
}

/* 制品预估：沿用 NIGGU 深蓝 / 雾白，仅联动变化带使用双向视觉语义。 */
.preparation-page-head { display: flex; align-items: flex-end; justify-content: space-between; gap: 20px; margin-bottom: 18px; }
.preparation-page-head > div:first-child { min-width: 0; }
.preparation-page-head > div:first-child > span { color: #5270a8; font-size: 10px; font-weight: 850; letter-spacing: .08em; }
.preparation-page-head h2 { margin: 6px 0 7px; color: var(--navy); font-size: clamp(24px, 2.4vw, 34px); letter-spacing: -.035em; }
.preparation-page-head p { max-width: 780px; margin: 0; color: var(--muted); line-height: 1.65; }
.preparation-page-status { display: grid; gap: 4px; min-width: 185px; padding: 12px 15px; border: 1px solid #dce5f1; border-radius: 13px; background: #fff; }
.preparation-page-status span { color: var(--muted); font-size: 10px; }
.preparation-page-status strong { color: var(--navy); font-size: 14px; }

.preparation-step-rail { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 1px; margin: 0 0 16px; padding: 4px; border: 1px solid #dde5f0; border-radius: 14px; background: #edf1f7; list-style: none; }
.preparation-step-rail li { display: flex; align-items: center; gap: 9px; min-height: 45px; padding: 8px 12px; border-radius: 10px; color: #667188; font-size: 11px; font-weight: 780; }
.preparation-step-rail li button { display: flex; align-items: center; gap: 9px; width: 100%; min-height: 29px; border: 0; padding: 0; color: inherit; font: inherit; text-align: left; background: transparent; cursor: pointer; }
.preparation-step-rail li span { display: grid; place-items: center; width: 24px; height: 24px; border: 1px solid #cbd6e5; border-radius: 8px; color: #60728f; background: #fff; font-variant-numeric: tabular-nums; }
.preparation-step-rail li.is-current { color: #fff; background: var(--navy); }
.preparation-step-rail li.is-current span { border-color: #5f7eb4; color: #fff; background: #294777; }

.preparation-scope-card, .preparation-data-card, .preparation-command-deck, .preparation-document-table, .preparation-document-detail, .preparation-glossary, .preparation-template-list, .preparation-template-editor { padding: 20px; }
.preparation-scope-card > header, .preparation-data-card > header, .preparation-command-deck > header, .preparation-template-list > header, .preparation-template-editor > header { display: flex; align-items: flex-start; justify-content: space-between; gap: 18px; margin-bottom: 16px; }
.preparation-scope-card header span, .preparation-data-card header span, .preparation-command-deck header span, .preparation-template-editor header > div > span { color: #5270a8; font-size: 10px; font-weight: 850; letter-spacing: .08em; }
.preparation-scope-card h3, .preparation-data-card h3, .preparation-command-deck h3, .preparation-template-list h3, .preparation-template-editor h3 { margin: 4px 0; color: var(--navy); font-size: 18px; }
.preparation-scope-card header p, .preparation-data-card header p, .preparation-command-deck header p, .preparation-template-list header p, .preparation-template-editor header p { margin: 3px 0 0; color: var(--muted); font-size: 11px; line-height: 1.55; }
.preparation-scope-grid { display: grid; grid-template-columns: repeat(4, minmax(150px, 1fr)); gap: 13px; }
.preparation-scope-grid > label, .preparation-scope-grid > div { display: grid; gap: 7px; min-width: 0; }
.preparation-time-range { grid-column: 1 / -1; padding: 12px 14px; border: 1px solid #d8e1ed; border-radius: 12px; background: #f8faff; }
.preparation-time-range > div:first-child { display: flex; align-items: center; justify-content: space-between; gap: 16px; }
.preparation-time-range output { color: #18305b; font-variant-numeric: tabular-nums; }
.preparation-time-track { position: relative; height: 34px; margin-top: 4px; }
.preparation-time-track::before { position: absolute; top: 16px; right: 0; left: 0; height: 6px; border-radius: 999px; background: #d9e3f2; content: ""; }
.preparation-time-track input[type="range"] { position: absolute; inset: 0; z-index: 2; width: 100%; height: 34px; margin: 0; padding: 0; border: 0; background: transparent; appearance: none; pointer-events: none; }
.preparation-time-track input[type="range"]::-webkit-slider-thumb { width: 22px; height: 22px; border: 3px solid #fff; border-radius: 50%; background: #2f6bff; box-shadow: 0 2px 9px rgba(29, 65, 135, .28); appearance: none; pointer-events: auto; cursor: grab; }
.preparation-time-track input[type="range"]::-moz-range-thumb { width: 17px; height: 17px; border: 3px solid #fff; border-radius: 50%; background: #2f6bff; box-shadow: 0 2px 9px rgba(29, 65, 135, .28); pointer-events: auto; cursor: grab; }
.preparation-time-scale { display: flex; justify-content: space-between; color: #738099; font-size: 10px; font-variant-numeric: tabular-nums; }
.preparation-step-actions { display: flex; justify-content: flex-end; margin: 14px 0 4px; }
.preparation-field-label, .preparation-command-deck > label, .preparation-template-tools label, .preparation-template-note { color: #516079; font-size: 11px; font-weight: 780; }
.preparation-scope-grid input, .preparation-scope-grid select, .preparation-command-deck textarea, .preparation-template-tools input, .preparation-template-tools select, .preparation-template-note textarea, .preparation-glossary input, .preparation-table-toolbar input, .preparation-table-toolbar select { width: 100%; min-height: 44px; border: 1px solid #d8e1ed; border-radius: 10px; padding: 9px 11px; color: var(--navy); background: #fff; }
.preparation-scope-actions { display: flex; align-items: center; justify-content: space-between; gap: 18px; margin-top: 16px; padding-top: 14px; border-top: 1px solid #e5eaf2; }
.preparation-scope-actions p { margin: 0; color: var(--muted); font-size: 10px; line-height: 1.55; }

.preparation-selection { position: relative; min-width: 0; }
.preparation-selection > summary { display: grid; grid-template-columns: minmax(0, 1fr) auto auto; gap: 8px; align-items: center; min-height: 44px; padding: 8px 11px; border: 1px solid #d8e1ed; border-radius: 10px; color: var(--navy); background: #fff; cursor: pointer; list-style: none; }
.preparation-selection > summary::-webkit-details-marker { display: none; }
.preparation-selection > summary span { display: none; }
.preparation-selection > summary strong { overflow: hidden; font-size: 11px; text-overflow: ellipsis; white-space: nowrap; }
.preparation-selection > summary i { color: #71819a; font-size: 18px; }
.preparation-selection-panel { position: absolute; z-index: 45; top: calc(100% + 6px); right: 0; left: 0; display: flex; flex-direction: column; min-width: 280px; max-height: min(70vh, calc(100dvh - 24px)); overflow: hidden; border: 1px solid #cfdbea; border-radius: 13px; background: #fff; box-shadow: 0 20px 44px rgba(20,33,61,.18); }
.preparation-selection-options { flex: 1 1 auto; min-height: 0; max-height: 330px; overflow-y: auto; overscroll-behavior: contain; padding: 9px; }
.preparation-selection-options label { display: grid; grid-template-columns: 24px minmax(0, 1fr); gap: 9px; align-items: center; min-height: 48px; padding: 7px 9px; border-radius: 9px; color: var(--navy); cursor: pointer; }
.preparation-selection-options label:hover { background: #f2f6fc; }
.preparation-selection-options input { width: 18px; height: 18px; accent-color: var(--blue); }
.preparation-selection-options span { display: grid; gap: 3px; }
.preparation-selection-options small { color: var(--muted); font-size: 9px; font-weight: 600; }
.preparation-channel-lock { align-content: center; min-height: 76px; padding: 10px 13px; border: 1px solid #cddbf0; border-radius: 11px; color: #24477b; background: #f0f5fd; }
.preparation-channel-lock > span, .preparation-channel-lock small { font-size: 9px; }
.preparation-channel-lock strong { font-size: 16px; }
.preparation-channel-lock small { color: #60708b; line-height: 1.45; }

.preparation-evidence { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 1px; margin: 14px 0; overflow: hidden; border: 1px solid #dce5f0; border-radius: 13px; background: #dce5f0; }
.preparation-evidence > div { display: grid; gap: 5px; min-width: 0; padding: 13px 15px; background: #fff; }
.preparation-evidence span { color: var(--muted); font-size: 9px; }
.preparation-evidence strong { overflow: hidden; color: var(--navy); font-size: 13px; text-overflow: ellipsis; white-space: nowrap; }
.preparation-evidence.is-blocked { border-color: #e7c3c0; background: #e7c3c0; }

.preparation-link-band { margin: 14px 0; overflow: hidden; border: 1px solid #bfcde2; border-radius: 16px; background: #f8faff; box-shadow: 0 12px 26px rgba(20,33,61,.07); }
.preparation-link-band > header { display: flex; align-items: center; justify-content: space-between; gap: 18px; padding: 13px 17px; color: #fff; background: linear-gradient(90deg, #14213d 0 49.6%, #294e85 50.4% 100%); }
.preparation-link-band header div { display: grid; gap: 3px; }
.preparation-link-band header span { color: #b9cae8; font-size: 9px; font-weight: 850; letter-spacing: .08em; }
.preparation-link-band header strong { font-size: 14px; }
.preparation-link-band header small { max-width: 390px; color: #d6e0f1; font-size: 9px; line-height: 1.5; text-align: right; }
.preparation-link-flow { display: grid; grid-template-columns: minmax(0, 1fr) 44px minmax(0, 1fr); align-items: stretch; }
.preparation-link-flow > article { min-width: 0; padding: 15px 17px; }
.preparation-link-flow > article > span { color: #60708a; font-size: 9px; font-weight: 850; }
.preparation-link-flow > article p { display: grid; grid-template-columns: minmax(0, auto) 20px minmax(0, 1fr) auto; gap: 7px; align-items: center; margin: 9px 0 0; color: #35445e; font-size: 10px; }
.preparation-link-flow p strong, .preparation-link-flow p em { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.preparation-link-flow p i { color: #71819b; font-style: normal; text-align: center; }
.preparation-link-flow p em { color: #245ca6; font-style: normal; font-weight: 850; }
.preparation-link-flow > i { display: grid; place-items: center; color: #315b98; background: linear-gradient(#f1f5fb, #e7eef8); font-size: 22px; }

.preparation-data-card { min-width: 0; margin-top: 14px; }
.preparation-table-scroll { width: 100%; overflow-x: auto; overscroll-behavior-inline: contain; border: 1px solid #e0e6ef; border-radius: 12px; background: #fff; -webkit-overflow-scrolling: touch; }
.preparation-table-scroll:focus-visible { outline: 3px solid rgba(47,107,255,.28); outline-offset: 2px; }
.preparation-table { width: 100%; min-width: 1120px; border-collapse: separate; border-spacing: 0; font-size: 10px; }
.preparation-table th { position: sticky; z-index: 2; top: 0; min-width: 112px; padding: 10px 11px; border-bottom: 1px solid #dbe3ee; color: var(--navy); background: #f7f9fc; font-size: 9px; font-weight: 850; text-align: left; white-space: nowrap; }
.preparation-table th:last-child { min-width: 260px; }
.preparation-table th > button { min-height: 34px; border: 0; padding: 4px; color: inherit; background: transparent; font-weight: inherit; }
.preparation-table td { min-width: 112px; padding: 11px; border-bottom: 1px solid #edf1f6; color: #3d4a60; vertical-align: top; }
.preparation-table td > strong, .preparation-table td > small { display: block; }
.preparation-table td > small { margin-top: 3px; color: var(--muted); font-size: 8px; }
.preparation-quantity-input input, .preparation-row-actions input { width: 95px; min-height: 42px; border: 1px solid #cfdaea; border-radius: 9px; padding: 7px 9px; color: var(--navy); background: #fff; font-variant-numeric: tabular-nums; }
.preparation-row-actions { display: flex; flex-wrap: wrap; gap: 7px; align-items: center; min-width: 220px; }
.preparation-row-actions label { display: flex; align-items: center; gap: 5px; color: var(--muted); font-size: 9px; }
.preparation-row-actions small { flex: 1 1 100%; color: var(--muted); font-size: 9px; }
.preparation-row-actions .button { min-height: 40px; }
.preparation-empty { display: grid; place-items: center; min-height: 115px; color: var(--muted); text-align: center; }
.preparation-empty strong, .preparation-empty span { display: block; }
.preparation-empty span { margin-top: 5px; font-size: 10px; }

.preparation-exceptions { display: grid; gap: 7px; margin: 14px 0; }
.preparation-exceptions > header { display: flex; justify-content: space-between; gap: 10px; color: var(--navy); }
.preparation-exceptions > header span { color: var(--muted); font-size: 10px; }
.preparation-exceptions article { display: grid; grid-template-columns: 28px minmax(0, 1fr) auto; gap: 10px; align-items: center; min-height: 54px; padding: 9px 12px; border: 1px solid #edd8af; border-radius: 11px; color: #74551d; background: #fff9ec; }
.preparation-exceptions article.is-blocking { border-color: #e8bfbc; color: #7e3737; background: #fff3f2; }
.preparation-exceptions article.is-resolved { border-color: #c7dfce; color: #2e6844; background: #f2f9f4; }
.preparation-exceptions article div { display: grid; gap: 3px; }
.preparation-exceptions article small { font-size: 9px; opacity: .78; }
.preparation-clear-state { display: flex; gap: 10px; align-items: center; margin: 14px 0; padding: 11px 14px; border-radius: 11px; color: #31533c; background: #edf8f0; }
.preparation-clear-state span { display: grid; gap: 2px; }
.preparation-clear-state small { font-size: 9px; opacity: .75; }
.preparation-readonly-state { display: flex; gap: 10px; align-items: center; margin: 14px 0; padding: 12px 14px; border: 1px solid #d8e1ed; border-radius: 11px; color: #35445d; background: #f3f6fa; }
.preparation-readonly-state > i { color: #5270a8; }
.preparation-readonly-state span { display: grid; gap: 3px; }
.preparation-readonly-state small { color: var(--muted); font-size: 9px; }
.preparation-selection[data-preparation-readonly] > summary { cursor: default; }
.preparation-selection[data-preparation-readonly] > summary i { display: none; }
.preparation-command-deck textarea:disabled, .preparation-quantity-input input:disabled { color: #4b5870; background: #f2f5f8; opacity: 1; }

.preparation-command-deck { margin-top: 14px; border-color: #cedaed; background: linear-gradient(180deg, #fff, #f8faff); }
.preparation-command-deck > label { display: grid; gap: 7px; }
.preparation-command-row { display: flex; flex-wrap: wrap; gap: 9px; align-items: center; margin-top: 14px; }
.preparation-command-row .button { min-height: 44px; }
.preparation-command-note { margin: 11px 0 0; color: var(--muted); font-size: 9px; }

.preparation-modal-layer { position: fixed; z-index: 90; inset: 0; display: grid; place-items: center; padding: 18px; }
.preparation-modal-backdrop { position: absolute; inset: 0; width: 100%; border: 0; background: rgba(11,24,47,.55); backdrop-filter: blur(3px); }
.preparation-modal-panel { position: relative; display: flex; flex-direction: column; width: min(760px, 100%); max-height: calc(100dvh - 36px); overflow: hidden; border: 1px solid #d5deea; border-radius: 18px; background: #fff; box-shadow: 0 30px 80px rgba(7,20,43,.28); }
.preparation-modal-panel.preparation-modal-compact { width: min(520px, 100%); }
.preparation-modal-panel > header { display: flex; justify-content: space-between; gap: 20px; padding: 20px 22px 15px; border-bottom: 1px solid #e5eaf1; }
.preparation-modal-panel header span { color: #5270a8; font-size: 9px; font-weight: 850; letter-spacing: .08em; }
.preparation-modal-panel h2 { margin: 5px 0; color: var(--navy); font-size: 21px; }
.preparation-modal-panel header p { margin: 0; color: var(--muted); font-size: 10px; line-height: 1.55; }
.preparation-modal-body { flex: 1 1 auto; min-height: 0; padding: 18px 22px; overflow-y: auto; overscroll-behavior: contain; }
.preparation-modal-footer { position: sticky; z-index: 3; bottom: 0; display: flex; flex: 0 0 auto; justify-content: flex-end; gap: 9px; padding: 13px 16px; border-top: 1px solid #dfe6ef; background: rgba(255,255,255,.97); box-shadow: 0 -10px 22px rgba(20,33,61,.05); }
.preparation-modal-footer .button { min-height: 44px; }
.preparation-alignment-summary { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 8px; margin: 0; }
.preparation-alignment-summary > div { padding: 11px 12px; border-radius: 11px; background: #f3f6fb; }
.preparation-alignment-summary dt { color: var(--muted); font-size: 9px; }
.preparation-alignment-summary dd { margin: 5px 0 0; color: var(--navy); font-size: 18px; font-weight: 850; }
.preparation-alignment-list { display: grid; gap: 6px; margin-top: 14px; }
.preparation-alignment-list article, .preparation-drill-list article { display: flex; justify-content: space-between; gap: 14px; padding: 10px 12px; border: 1px solid #e0e6ef; border-radius: 10px; }
.preparation-alignment-list span, .preparation-drill-list span { color: #315fac; font-weight: 800; }
.preparation-alignment-rule, .preparation-danger-note { display: flex; gap: 8px; align-items: center; padding: 11px 12px; border-radius: 10px; color: #72531f; background: #fff7e7; font-size: 10px; }

.preparation-template-layout { display: grid; grid-template-columns: minmax(240px, 310px) minmax(0, 1fr); gap: 14px; align-items: start; }
.preparation-template-list { display: grid; gap: 7px; }
.preparation-template-item { display: flex; justify-content: space-between; gap: 10px; align-items: center; width: 100%; min-height: 57px; padding: 10px 12px; border: 1px solid #dfe6ef; border-radius: 11px; color: inherit; background: #fff; text-align: left; }
.preparation-template-item.is-selected { border-color: #8fa9d0; background: #f0f5fd; box-shadow: inset 3px 0 #315fac; }
.preparation-template-item span { display: grid; gap: 3px; }
.preparation-template-item strong { color: var(--navy); }
.preparation-template-item small { color: var(--muted); font-size: 9px; }
.preparation-template-item em { padding: 3px 7px; border-radius: 999px; color: #2c5a96; background: #dfeaff; font-size: 8px; font-style: normal; font-weight: 850; }
.preparation-template-tools { display: grid; grid-template-columns: minmax(180px, 1fr) minmax(180px, 1fr) repeat(3, auto); gap: 9px; align-items: end; }
.preparation-template-tools label { display: grid; gap: 6px; }
.preparation-unadopted { margin: 14px 0; overflow: hidden; }
.preparation-unadopted > header { display: flex; align-items: flex-start; justify-content: space-between; gap: 18px; padding: 18px; border-bottom: 1px solid #f0d8d2; background: #fff8f6; }
.preparation-unadopted > header span { color: #aa4d42; font-size: 11px; font-weight: 800; }
.preparation-unadopted > header h3 { margin: 4px 0; }
.preparation-unadopted > header p { margin: 0; color: #6d778b; }
.preparation-unadopted-list { display: grid; gap: 1px; background: #e4eaf2; }
.preparation-unadopted-list > label { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; align-items: center; gap: 14px; min-height: 78px; padding: 14px 18px; background: #fff; }
.preparation-unadopted-list > label.is-ignored { background: #f2f8f3; }
.preparation-unadopted-list input { width: 20px; height: 20px; accent-color: #2f6bff; }
.preparation-unadopted-list span { display: grid; gap: 3px; }
.preparation-unadopted-list small, .preparation-unadopted-list em { color: #68758d; font-size: 11px; font-style: normal; }
.preparation-unadopted-list b { color: #9b493f; font-size: 11px; }
.preparation-unadopted-lock { display: grid; place-items: center; width: 22px; height: 22px; border-radius: 50%; color: #fff; background: #c2685e; font-weight: 900; }
.preparation-unadopted > footer { display: flex; justify-content: flex-end; padding: 14px 18px; border-top: 1px solid #edf0f5; }
.preparation-candidate-list { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 7px; max-height: 430px; margin: 14px 0; overflow-y: auto; }
.preparation-candidate-list > label { display: grid; grid-template-columns: 24px minmax(0, 1fr); gap: 8px; align-items: center; min-height: 52px; padding: 9px 10px; border: 1px solid #dfe6ef; border-radius: 10px; background: #f9fbfe; }
.preparation-candidate-list input { width: 18px; height: 18px; accent-color: var(--blue); }
.preparation-candidate-list span { display: grid; gap: 3px; }
.preparation-candidate-list small { color: var(--muted); font-size: 9px; }
.preparation-template-note { display: grid; gap: 6px; }
.preparation-template-save { position: sticky; bottom: -20px; display: flex; align-items: center; justify-content: space-between; gap: 15px; margin: 14px -20px -20px; padding: 13px 20px; border-top: 1px solid #dfe6ef; background: rgba(255,255,255,.97); }
.preparation-template-save span { color: var(--muted); font-size: 9px; }
.preparation-template-save .button { min-height: 44px; }

.preparation-table-toolbar { display: flex; align-items: end; justify-content: space-between; gap: 12px; margin-bottom: 12px; }
.preparation-table-toolbar > div { display: flex; flex-wrap: wrap; gap: 9px; }
.preparation-table-toolbar label { display: grid; gap: 5px; color: var(--muted); font-size: 9px; font-weight: 780; }
.preparation-status { display: inline-flex; padding: 4px 8px; border-radius: 999px; font-weight: 850; white-space: nowrap; }
.preparation-status.is-draft { color: #76531d; background: #fff3da; }
.preparation-status.is-confirmed { color: #286044; background: #e8f7ed; }
.preparation-status.is-superseded { color: #5f6879; background: #edf0f4; }
.preparation-pagination { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 9px; align-items: center; margin-top: 12px; color: var(--muted); font-size: 10px; }
.preparation-pagination label { display: flex; align-items: center; gap: 5px; }
.preparation-pagination select { min-height: 40px; border: 1px solid #d8e1ed; border-radius: 9px; }
.preparation-document-detail dl { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 8px; margin: 0; }
.preparation-document-detail dl > div { padding: 12px; border-radius: 11px; background: #f4f7fb; }
.preparation-document-detail dt { color: var(--muted); font-size: 9px; }
.preparation-document-detail dd { margin: 5px 0 0; color: var(--navy); font-weight: 800; }

.preparation-glossary > label { display: grid; gap: 6px; max-width: 480px; color: var(--muted); font-size: 10px; font-weight: 780; }
.preparation-glossary-list { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; margin-top: 14px; }
.preparation-glossary-list article { padding: 16px; border: 1px solid #e0e6ef; border-radius: 12px; background: #fbfcff; }
.preparation-glossary-list header { display: flex; align-items: center; justify-content: space-between; gap: 10px; }
.preparation-glossary-list h3 { margin: 0; color: var(--navy); font-size: 15px; }
.preparation-glossary-list header span { color: #78859a; font-size: 8px; }
.preparation-glossary-list p { color: #526078; line-height: 1.65; }
.preparation-glossary-list dl { display: grid; grid-template-columns: 88px minmax(0, 1fr); gap: 5px 10px; margin: 0; font-size: 9px; line-height: 1.55; }
.preparation-glossary-list dt { color: #758196; font-weight: 780; }
.preparation-glossary-list dd { margin: 0; color: #3f4d64; }
.preparation-api-state { display: flex; align-items: center; gap: 14px; padding: 22px; }
.preparation-api-state > i { color: #8b5e28; font-size: 32px; }
.preparation-api-state > div { flex: 1; }
.preparation-api-state p { margin: 5px 0 0; color: var(--muted); }
.preparation-confirm-summary { display: grid; gap: 8px; color: #4b5870; }
.preparation-confirm-summary p { margin: 0; line-height: 1.6; }
.preparation-drill-list { display: grid; gap: 7px; }

.preparation-page-head button:focus-visible, .preparation-step-rail button:focus-visible, .preparation-selection summary:focus-visible, .preparation-row-actions button:focus-visible, .preparation-command-row button:focus-visible, .preparation-template-item:focus-visible, .preparation-modal-footer button:focus-visible { outline: 3px solid rgba(47,107,255,.34); outline-offset: 2px; }

@media (max-width: 900px) {
  .preparation-scope-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .preparation-step-rail { overflow-x: auto; grid-template-columns: repeat(4, minmax(180px, 1fr)); }
  .preparation-link-band > header { align-items: flex-start; flex-direction: column; }
  .preparation-link-band header small { text-align: left; }
  .preparation-link-flow { grid-template-columns: 1fr; }
  .preparation-link-flow > i { min-height: 34px; transform: rotate(90deg); }
  .preparation-template-layout { grid-template-columns: 1fr; }
  .preparation-document-detail dl { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 600px) {
  .preparation-page-head, .preparation-scope-card > header, .preparation-data-card > header, .preparation-command-deck > header, .preparation-template-editor > header, .preparation-scope-actions, .preparation-table-toolbar { align-items: stretch; flex-direction: column; }
  .preparation-page-status { width: 100%; }
  .preparation-scope-grid, .preparation-evidence, .preparation-template-tools, .preparation-candidate-list, .preparation-glossary-list, .preparation-alignment-summary, .preparation-document-detail dl { grid-template-columns: 1fr; }
  .preparation-command-row .button, .preparation-scope-actions .button, .preparation-template-save .button { width: 100%; justify-content: center; }
  .preparation-template-save { align-items: stretch; flex-direction: column; }
  .preparation-selection-panel { position: fixed; inset: auto 12px 12px; min-width: 0; max-height: calc(100dvh - 24px); }
  .preparation-exceptions article { grid-template-columns: 28px minmax(0, 1fr); }
  .preparation-exceptions article .button { grid-column: 1 / -1; min-height: 44px; }
  .preparation-modal-layer { padding: 8px; }
  .preparation-modal-panel { max-height: calc(100dvh - 16px); border-radius: 15px; }
  .preparation-modal-panel > header { padding: 17px 16px 13px; }
  .preparation-modal-body { padding: 14px 16px; }
  .preparation-modal-footer { flex-direction: column-reverse; }
  .preparation-modal-footer .button { width: 100%; justify-content: center; }
  .preparation-row-actions { min-width: 245px; }
  .preparation-pagination { justify-content: flex-start; }
  .preparation-pagination .button { min-height: 44px; }
}

@media (max-width: 430px) {
  .preparation-scope-card, .preparation-data-card, .preparation-command-deck, .preparation-document-table, .preparation-document-detail, .preparation-glossary, .preparation-template-list, .preparation-template-editor { padding: 14px; }
  .preparation-page-head h2 { font-size: 26px; }
  .preparation-step-rail { margin-inline: -2px; }
  .preparation-table { min-width: 1080px; }
  .preparation-link-flow > article { padding: 13px; }
  .preparation-link-flow > article p { grid-template-columns: minmax(0, 1fr) 15px minmax(0, 1fr); }
  .preparation-link-flow p em { grid-column: 1 / -1; }
  .preparation-template-save { bottom: -14px; margin: 12px -14px -14px; padding: 12px 14px; }
}
