/* 全局主题：统一操作页面、报表和打印的颜色与排版规则。 */
@media screen {
  :root {
    /* 系统主色 */
    --blue:#1890ff; --blue-hover:#40a9ff; --blue-active:#096dd9;
    /* 操作强调色 */
    --gold:#1890ff; --gold-hover:#096dd9; --gold-soft:#e6f7ff; --gold-line:#91d5ff;
    /* 中性色 */
    --ink:rgba(0,0,0,.85); --muted:rgba(0,0,0,.65); --placeholder:#bfbfbf; --disabled:rgba(32,48,63,.35);
    --line:#f0f0f0; --control-line:#d9d9d9; --bg:#f5f5f5; --surface:#fff;
    --surface-soft:#fafafa; --surface-tint:#fafafa;
    /* 外壳 */
    --nav:#047bd5; --nav-open:#0d87e1; --nav-ink:#fff; --header:#12c2c2;
    /* 语义色 */
    --green:#52c41a; --green-bg:#e9f4ee; --green-line:#bcd9c6;
    --red:#ff4d4f; --red-hover:#c2524f; --red-bg:#faedec; --red-line:#e6c3c1;
    --warning:#96690f; --warning-bg:#f8f1de; --warning-line:#e4d3a3;
    --info-bg:#e6f7ff; --info-line:#91d5ff;
    /* 形态 */
    --radius:2px; --radius-card:2px; --radius-sm:2px;
    --focus-ring:0 0 0 2px rgb(24 144 255 / 20%);
    --shadow-card:none;
    --popup-shadow:0 6px 16px -6px rgb(18 44 68 / 20%),0 14px 36px -10px rgb(18 44 68 / 16%);
    /* 全局统一使用系统无衬线字体。 */
    --font:-apple-system,BlinkMacSystemFont,"Segoe UI","PingFang SC","Hiragino Sans GB","Microsoft YaHei","Helvetica Neue",Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol";
    --font-display:var(--font);
  }
  body {font-family:var(--font);font-size:14px;line-height:1.6;color:var(--ink);background:var(--bg);-webkit-font-smoothing:antialiased}
  button,input,select,textarea {font-family:inherit;font-size:14px;font-weight:400;border-radius:var(--radius);color:var(--muted)}
  a {color:var(--blue);text-decoration:none} a:hover {color:var(--blue-hover)}

  /* ── 按钮 ── */
  button {border-color:var(--control-line);background:var(--surface);box-shadow:0 1px 2px rgb(18 44 68 / 6%);transition:color .18s,border-color .18s,background-color .18s,box-shadow .18s}
  button:hover {color:var(--blue-hover);border-color:var(--blue-hover);background:white}
  button:active {color:var(--blue-active);border-color:var(--blue-active)}
  button.primary {color:white;background:var(--blue);border-color:var(--blue);text-shadow:0 -1px 0 rgb(0 0 0 / 14%);box-shadow:0 2px 6px -1px rgb(20 62 102 / 40%)}
  button.primary:hover {background:var(--blue-hover);border-color:var(--blue-hover)}
  button.primary:active {background:var(--blue-active);border-color:var(--blue-active)}
  button.danger {color:var(--red);border-color:var(--red-line)}
  button.danger:hover {color:#c2524f;border-color:#c2524f}
  button.ghost {background:transparent;border-color:transparent;box-shadow:none;text-shadow:none;color:var(--blue)}
  button.ghost:hover {color:var(--blue-hover)}
  button.ghost.danger {color:var(--red)}
  button:disabled,button.primary:disabled,button.danger:disabled {opacity:1;cursor:not-allowed;color:var(--disabled);border-color:var(--control-line);background:var(--surface-soft);box-shadow:none;text-shadow:none}
  button.ghost:disabled {border-color:transparent;background:transparent}
  button:focus-visible,summary:focus-visible {outline:2px solid var(--gold);outline-offset:2px}
  /* 全局图标与控件视觉 */
  .ui-icon {stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round}
  button:has(.ui-icon) {gap:8px}

  /* ── 表单控件 ── */
  input,select,textarea {border-color:var(--control-line);background:var(--surface);transition:border-color .18s,box-shadow .18s}
  input::placeholder,textarea::placeholder {color:var(--placeholder);opacity:1}
  input:hover,select:hover,textarea:hover {border-color:var(--blue-hover)}
  input:focus,select:focus,textarea:focus,.reference-filters input:focus,.reference-filters select:focus,.form-grid input:focus,.form-grid select:focus,.form-grid textarea:focus {border-color:var(--blue);box-shadow:var(--focus-ring);outline:none}
  input:disabled,select:disabled,textarea:disabled {background:var(--surface-soft);color:var(--disabled);border-color:var(--control-line);box-shadow:none;cursor:not-allowed}
  input[aria-invalid=true],select[aria-invalid=true],textarea[aria-invalid=true] {border-color:var(--red)}
  input[aria-invalid=true]:focus,select[aria-invalid=true]:focus,textarea[aria-invalid=true]:focus {box-shadow:0 0 0 3px rgb(176 58 55 / 16%)}
  select:not([multiple]) {appearance:none;padding-right:28px;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath d='m2 4 4 4 4-4' fill='none' stroke='%2398a4b0' stroke-width='1.4' stroke-linecap='round'/%3E%3C/svg%3E");background-position:right 11px center;background-repeat:no-repeat}
  select option {color:var(--muted);background:white}
  .reference-filters select:has(option:checked[value=""]) {color:var(--placeholder)}
  input[type=checkbox],input[type=radio] {appearance:none;position:relative;display:inline-block;flex:0 0 16px;width:16px;height:16px;min-height:16px;padding:0;margin:0;vertical-align:middle;border:1px solid var(--control-line);border-radius:var(--radius-sm);background:white;cursor:pointer}
  input[type=checkbox]:checked {background:var(--blue);border-color:var(--blue)}
  input[type=checkbox]:checked:after {content:"";position:absolute;left:4px;top:1px;width:5px;height:9px;border:solid white;border-width:0 2px 2px 0;transform:rotate(45deg)}
  input[type=checkbox]:indeterminate {background:white;border-color:var(--control-line)}
  input[type=checkbox]:indeterminate:after {content:"";position:absolute;inset:3px;background:var(--blue);border:0;transform:none;width:auto;height:auto}
  input[type=radio] {border-radius:50%}
  input[type=radio]:checked {border-color:var(--blue)}
  input[type=radio]:checked:after {content:"";position:absolute;inset:3px;border-radius:50%;background:var(--blue)}
  input[type=checkbox]:disabled,input[type=radio]:disabled {cursor:not-allowed;background:var(--surface-soft);border-color:var(--control-line)}
  input[type=checkbox]:checked:disabled:after {border-color:#bfbfbf}
  input[type=radio]:checked:disabled:after,input[type=checkbox]:indeterminate:disabled:after {background:#bfbfbf}
  input[type=file] {font-size:14px;padding:4px;line-height:24px}
  input[type=file]::file-selector-button {font:inherit;padding:2px 12px;margin-right:10px;border:1px solid var(--control-line);border-radius:var(--radius);background:white;color:var(--muted);cursor:pointer}
  input[type=file]::file-selector-button:hover {color:var(--blue);border-color:var(--blue)}

  /* ── 外壳：侧栏 / 顶栏 / 页签 ── */
  .sidebar,.nav {background:var(--nav)}
  .sidebar .brand {background:var(--nav);border-bottom:0}
  .sidebar .brand strong {font-family:var(--font-display);font-weight:700;letter-spacing:.06em}
  .nav details[open] {background:var(--nav-open)}
  .nav summary,.nav button,.nav .nav-direct {color:var(--nav-ink);font-weight:400;box-shadow:none}
  .nav summary:hover,.nav button:hover {color:white;background:transparent}
  .nav summary:after {content:"";width:6px;height:6px;border:solid currentColor;border-width:0 1.5px 1.5px 0;transform:rotate(45deg);margin:0 8px 3px 0;color:inherit}
  .nav details[open]>summary:after {transform:rotate(225deg);margin-bottom:-3px}
  .nav summary>.ui-icon,.nav .nav-direct>.ui-icon {width:16px;height:16px;flex-basis:16px;color:var(--gold-line)}
  .nav button.active,.nav button.active:hover {background:var(--blue);color:white;box-shadow:none}
  .topbar {background:var(--header);border-bottom:0}
  .topbar .product-title {font-family:var(--font-display);font-weight:700;letter-spacing:.04em;color:#fff}
  .topbar .company-select {border-color:rgb(255 255 255 / 28%);font-size:14px;color:#eaf1f8;background-color:rgb(255 255 255 / 10%)}
  .topbar .company-select option {color:var(--ink);background:white}
  .topbar .ghost,.sidebar-toggle {color:#eaf1f8;border-color:transparent;box-shadow:none;background:transparent}
  .topbar .ghost:hover,.sidebar-toggle:hover {color:white;background:rgb(255 255 255 / 14%)}
  .topbar .avatar {background:var(--gold);color:#fff;font-size:14px;font-weight:600}
  .topbar .username {color:#dce6f0}
  .tabs {box-shadow:none;border-color:var(--line);background:var(--surface)}
  .tabs .tab-list button {color:var(--muted);font-weight:400;box-shadow:none;background:transparent;border:0;border-bottom:2px solid transparent;border-radius:0}
  .tabs .tab-list button.active {color:var(--blue);font-weight:600;border-bottom-color:var(--gold);background:transparent}
  .tabs .tab-list button:hover {color:var(--blue-hover)}
  .tabs [data-close] {color:var(--placeholder);border-radius:2px}
  .tabs [data-close]:hover {color:var(--ink);background:var(--surface-soft)}
  .tabs .tab-scroll,.tabs .tab-refresh {box-shadow:none;color:var(--muted);background:var(--surface);border:0}
  .tabs .tab-scroll:disabled {opacity:0}
  .content,.content.table-page {background:var(--bg)}

  /* ── 卡片 / 统计 / 面板 ── */
  .card,.stat,.company-card,.overview-card,.page-panel {border-color:var(--line);border-radius:var(--radius-card);box-shadow:var(--shadow-card)}
  .card-head,.company-heading,.overview-card h2 {border-color:var(--line)}
  .card-head h2,.company-heading h2,.overview-card h2 {color:var(--ink);font-weight:650;font-size:15px;letter-spacing:.01em}
  .card-head h2:before,.overview-card h2:before {content:none}
  .heading h1 {font-family:var(--font-display);font-weight:700;letter-spacing:.02em}
  .filter,.reference-filters .filter>span,.company-pair dd {color:var(--muted)}
  .toolbar button,.filter-actions button {border-radius:var(--radius)}
  .toolbar>button {padding-left:15px;padding-right:15px}
  .view-controls .icon-button,.column-picker>summary,.density-picker>summary {color:#6b7a89;box-shadow:none}
  .view-controls .icon-button:hover,.column-picker>summary:hover,.density-picker>summary:hover {color:var(--blue);background:transparent}
  .view-controls .ui-icon {width:20px;height:20px;flex-basis:20px}
  .column-options,.density-options,.page-help>div {border:0;border-radius:var(--radius);background:white;color:var(--muted);box-shadow:var(--popup-shadow)}
  .density-options button,.column-options button {box-shadow:none}
  .column-options label:hover,.density-options button:hover {background:var(--surface-soft)}
  .density-options button.active {background:var(--info-bg);color:var(--blue)}
  .column-options label,.table-wrap-setting {font-size:14px}
  .table-wrap-setting {border-color:var(--line)}
  .selection-bar {border-radius:var(--radius);background:var(--info-bg);border-color:var(--info-line);color:var(--muted)}
  .selection-bar .ghost {font-size:14px}

  /* ── 表格 ── */
  .table-wrap {scrollbar-color:#b3bfca var(--surface-soft)}
  .table-wrap table,.table-wrap td {color:var(--muted)}
  .table-wrap th,.table-wrap thead .reference-fixed-left {background:var(--surface-tint);color:var(--ink);border-color:var(--line);font-weight:650}
  .table-wrap td,.table-region td {border-color:var(--line)}
  .table-wrap tr:hover>td {background:var(--surface-soft)}
  .table-wrap tr.is-selected>td {background:var(--info-bg)}
  .sort-indicator:before {border-bottom-color:#b3bfca}.sort-indicator:after {border-top-color:#b3bfca}
  [aria-sort=ascending] .sort-indicator:before {border-bottom-color:var(--blue)}
  [aria-sort=descending] .sort-indicator:after {border-top-color:var(--blue)}
  .actions .ghost {color:var(--blue);box-shadow:none;border-radius:0}
  .actions .ghost+.ghost {border-left:1px solid var(--line)}
  .actions .danger {color:var(--red)}
  .actions .ghost:hover {color:var(--blue-hover)}.actions .danger:hover {color:#c2524f}
  .rowcode {font-family:inherit;color:var(--muted)}
  .empty-value {color:var(--placeholder)}.missing-value {color:var(--warning)}
  tr.report-subtotal td {background:var(--surface-soft)}tr.report-total td {background:var(--info-bg);border-top-color:var(--info-line)}
  .tfoot,.table-region>.tfoot {color:var(--muted)}
  .pagination button {box-shadow:none;border-radius:var(--radius)}
  .pagination .page-number.active {color:white;background:var(--blue);border-color:var(--blue)}
  .pagination button:disabled {color:var(--disabled);background:white;border-color:transparent}
  .pagination select {padding-right:28px;background-position:right 9px center}
  .pagination .page-ellipsis {color:var(--disabled)}
  .reference-family button,.scope-tabs button,.project-tabs button,.inline-report-variants button,.subnav button {box-shadow:none}
  .reference-family button:not(.active) {color:var(--muted)}
  .reference-family button:first-child {border-radius:var(--radius) 0 0 var(--radius)}.reference-family button:last-child {border-radius:0 var(--radius) var(--radius) 0}
  .reference-family button.active {background:var(--blue);border-color:var(--blue)}
  .scope-tabs button,.project-tabs button {color:var(--muted)}
  .scope-tabs button.active,.project-tabs button.active {color:var(--blue)}
  .scope-tabs button.active:after,.project-tabs button.active:after {background:var(--gold)}

  /* ── 弹窗 / 表单 / 徽标 / 提示 ── */
  .modal {border-radius:var(--radius-card);box-shadow:var(--popup-shadow);color:var(--ink)}
  .modal-backdrop {background:rgb(14 36 56 / 52%)}
  .modal-header h2 {color:var(--ink);font-size:16px;font-weight:650;line-height:22px;font-family:var(--font-display);letter-spacing:.02em}
  .modal-header,.modal-foot {border-color:var(--line)}
  .modal-window-controls {gap:4px}.modal-window-controls button.ghost {color:rgba(0,0,0,.65);width:28px;height:28px;padding:5px;min-height:28px}
  .modal-window-controls button:hover {color:var(--ink);background:var(--surface-soft)}
  .modal-window-controls .ui-icon {width:16px;height:16px}
  .field label,.form-grid>.field>label {color:var(--ink);font-size:14px;font-weight:400}
  .field small,.reference-form-modal .field>small {font-size:12px;color:#8a97a3}
  .required,.reference-form-modal .required,.holiday-guide {color:var(--red)}
  .form-grid>.field>input,.form-grid>.field>select {font-size:14px;border-color:var(--control-line)}
  .readonly-form input:disabled,.readonly-form select:disabled,.readonly-form textarea:disabled {color:var(--disabled);-webkit-text-fill-color:var(--disabled);background:var(--surface-soft);cursor:default}
  .detail-grid dt,.detail-grid dd {font-size:14px;border-color:var(--line);line-height:22px}
  .detail-grid dt {background:var(--surface-soft);color:var(--ink)}.detail-grid dd {color:var(--muted)}
  .badge {border:1px solid var(--info-line);background:var(--info-bg);color:var(--blue);font-size:12px;line-height:20px;padding:0 9px;border-radius:999px}
  .badge.green {color:var(--green);background:var(--green-bg);border-color:var(--green-line)}
  .badge.amber {color:var(--warning);background:var(--warning-bg);border-color:var(--warning-line)}
  .badge.red {color:var(--red);background:var(--red-bg);border-color:var(--red-line)}
  .notice {font-size:14px;line-height:22px;padding:8px 15px;border-radius:var(--radius);color:var(--muted);background:var(--info-bg);border-color:var(--info-line)}
  .notice.warn {color:var(--warning);background:var(--warning-bg);border-color:var(--warning-line)}
  .notice.error {color:var(--red);background:var(--red-bg);border-color:var(--red-line)}
  .report-summary {color:var(--muted);background:var(--surface-soft);border-color:var(--line);font-size:14px}
  .report-summary strong {color:var(--blue)}
  .metric-list div {background:var(--surface-soft);border-radius:var(--radius-sm)}.metric-list strong {color:var(--ink)}
  .empty,.loading {color:var(--placeholder);font-size:14px}
  .table-empty{padding:32px 16px;line-height:22px}.table-empty .icon{height:41px;margin-bottom:8px;opacity:1}.table-empty .empty-tray{width:64px;height:41px;display:block;margin:auto;color:#d9d9d9}
  .pack-item {border-color:var(--line);border-radius:var(--radius)}.pack-check-item:has(input:checked) {background:var(--info-bg);border-color:var(--info-line)}
  .log-item {border-color:var(--line);font-size:14px}.log-item time {color:#8a97a3;font-size:12px}
  #toast {color:var(--ink);font-size:14px;line-height:22px;padding:10px 16px;border:0;border-radius:var(--radius);box-shadow:var(--popup-shadow)}
  #toast:before {content:"✓";display:inline-grid;place-items:center;width:16px;height:16px;line-height:16px;margin-right:8px;border-radius:50%;color:white;background:var(--green)}
  #toast[data-kind=error]:before {content:"×";background:var(--red)}
  #ui-update {background:var(--info-bg);border-color:var(--info-line);border-radius:var(--radius);box-shadow:var(--popup-shadow)}

  /* ── 统计卡 / 仪表盘 ── */
  .stat {border-top:3px solid var(--gold);border-radius:var(--radius-card)}
  .stat:first-child {border-top-color:var(--blue)}
  .stat.green {border-top-color:var(--green)}
  .stat strong {font-weight:700;letter-spacing:-.3px;color:var(--ink)}
  .stat small {color:var(--muted);font-weight:600}
  .scope-note {color:var(--muted)}
  .flow-item {background:var(--surface-tint);border-color:var(--info-line);border-radius:var(--radius)}
  .flow-item b {color:var(--gold);font-weight:700}
  .bar {background:var(--surface-tint);border-radius:999px}
  .bar i {background:linear-gradient(90deg,var(--blue),var(--blue-hover));border-radius:999px}
  .bar-item:nth-child(2) i {background:var(--gold)}
  .bar-item:nth-child(3) i {background:#7d93a8}

  /* ── 登录页 ── */
  .login-intro {background:linear-gradient(155deg,#0e2438 0%,#001529 45%,#1890ff 100%)}
  .login-intro .brand {height:auto;gap:18px}
  .login-intro .brandmark {width:60px;height:60px;font-size:30px;background:linear-gradient(135deg,var(--gold),#8f6a1e);border-radius:var(--radius);box-shadow:0 4px 14px -4px rgb(184 134 47 / 60%)}
  .login-intro .brand strong {display:block;font-size:clamp(28px,2.2vw,40px);line-height:1.4;font-family:var(--font-display);letter-spacing:.04em}
  .login-intro .brand small {font-size:clamp(11px,.85vw,16px);line-height:1.6;letter-spacing:.1em;margin-top:8px}
  @media (max-width:1100px) {
    .login-intro {padding:10vh 5vw}
    .login-intro .brand {gap:12px}
    .login-intro .brandmark {width:48px;height:48px;font-size:25px}
    .login-intro .brand strong {font-size:26px}
  }
  @media (max-width:760px) {
    .login {grid-template-columns:minmax(0,1fr)}
    .login-intro {padding:32px 24px}
    .login-intro .brand strong {font-size:24px}
    .login-intro .brand small {font-size:11px}
    .login-form {padding:32px 24px}
  }
  .login-intro .tagline {font-family:var(--font-display);font-weight:700;letter-spacing:.03em}
  .login-intro .tagline:after {content:"";display:block;width:56px;height:3px;border-radius:2px;background:var(--gold);margin-top:18px}
  .login-intro p {color:rgba(255,255,255,.65)}
  .login-intro .badge {background:rgb(255 255 255 / 12%);border-color:rgb(255 255 255 / 26%);color:#eaf1f8}
  .login-note {background:var(--surface-soft);color:var(--muted);border-radius:var(--radius)}
  .login-form .field input {height:40px}
  .login-form h1 {color:var(--ink);font-family:var(--font-display);font-weight:700;letter-spacing:.02em}
  .login-methods button.active {color:var(--blue);border-bottom-color:var(--gold)}
}
@media (prefers-reduced-motion:reduce) {button,input,select,textarea {transition:none}}
@media (forced-colors:active) {input[type=checkbox],input[type=radio] {appearance:auto}}
/* ── 打印：首页四个金额与「档案口径」标注必须上纸（2026-10-19 用户批准的存量修复）。
   style.css 的 @media print 里 .stats{display:none} 把整块统计卡藏了；
   本文件加载在其后，同特异性下这里胜出，恢复为可见的紧凑两列。
   仅作用于 .stats（首页/管理控制台首页），不影响其他页面刻意的打印省略。 */
@media print {
  .stats {display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin:0 0 10px}
  .stat {border:1px solid #d9d9d9;border-top:2px solid #1890ff;border-radius:4px;padding:8px 10px;box-shadow:none;background:#fff}
  .stat strong {font-size:16px;margin:4px 0 2px;color:rgba(0,0,0,.85)}
  .stat small,.stat span,.scope-note {color:var(--muted);font-size:9px}
}

/* Theme controls and layout variants. */
@media screen {
 :root{--header-ink:#fff;--nav-strong:#fff;--white:#fff;--layout-sample:#273352;--layout-fill:#f0f2f5;--black-overlay:rgba(0,0,0,.45);--contrast-focus:#1890ff}
 .shell{grid-template-columns:210px minmax(0,1fr)}
 .sidebar{background:var(--nav);border:0}
 .sidebar .brand{height:45px;min-height:45px;padding:0 14px;background:linear-gradient(180deg,color-mix(in srgb,var(--nav) 88%,white),var(--blue))}
 .sidebar .brand strong{font-size:18px;line-height:45px;letter-spacing:0;color:var(--nav-strong)}
 .nav{padding:0;background:var(--nav)}.nav details{margin:0}.nav details[open]{background:var(--nav-open)}.nav details[open]>summary{background:var(--nav)}
 .nav summary,.nav .nav-direct,.nav button{font-size:14px;font-weight:400;height:50px;min-height:50px;border-radius:0;line-height:22px;letter-spacing:0;box-shadow:none}
 .nav summary,.nav .nav-direct{padding:0 16px}.nav button{padding:0 16px 0 40px;gap:8px;justify-content:flex-start}.nav button:has(>.ui-icon):not(.nav-direct){padding-left:28px}.nav button>.ui-icon{width:16px;height:16px;flex:0 0 16px;color:inherit}
 .nav summary>span{flex:1}.nav summary>.ui-icon,.nav .nav-direct>.ui-icon{display:block;color:inherit}
 .nav summary:hover,.nav button:hover,.nav .nav-direct:hover{color:var(--nav-strong)}
 .nav button.active,.nav button.active:hover{background:var(--blue);color:var(--white);box-shadow:none}
 .topbar{height:45px;min-height:45px;padding:0 14px;background:var(--header);border:0}
 .topbar .product-title{font-family:var(--font);font-size:14px;font-weight:400;letter-spacing:0;color:var(--header-ink)}
 .topbar .ghost,.topbar .username,.topbar .sidebar-toggle{color:var(--header-ink)}
 .topbar .company-select{background-color:var(--surface);color:var(--muted);border:1px solid var(--control-line)}
 .topbar .avatar{background:color-mix(in srgb,var(--header) 70%,white);color:var(--header-ink)}
 .tabs{height:48px;flex-basis:48px;background:var(--surface);border-bottom:1px solid var(--line);box-shadow:0 2px 5px rgb(0 0 0 / 3%)}
 .tabs .tab-list{padding:0 16px}.tabs .tab-list button{height:47px;padding:0 23px;color:var(--muted);background:transparent;border:0;border-bottom:2px solid transparent;border-radius:0;font-weight:400}
 .tabs .tab-list button.active{color:var(--blue);border-bottom-color:var(--blue);background:transparent;font-weight:500}
 .tabs .tab-list button.active:after{display:none}.tabs .tab-scroll,.tabs .tab-refresh{background:var(--surface);color:var(--muted);height:47px;box-shadow:none}
 .tabs .tab-refresh{border-left:1px solid var(--line)}.tabs [data-close]{color:var(--placeholder)}
 .content,.content.table-page{padding:10px;gap:8px}.card,.overview-card,.page-panel,.company-card{box-shadow:none;border-radius:2px}
 .table-wrap th,.table-wrap thead .reference-fixed-left{background:var(--surface-soft);font-weight:500}.table-wrap tr:hover>td{background:var(--surface-soft)}
 .overview-top{grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.overview-bottom{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-top:4px}
 .overview-bottom>.overview-card:nth-child(2){order:initial}.overview-card h2{font-size:16px;font-weight:500}.overview-card h2:before{content:none}
 .modal-header h2,.heading h1{font-family:var(--font);font-weight:500;letter-spacing:0}.modal-backdrop{background:var(--black-overlay)}
 button.primary{box-shadow:0 2px 0 rgb(0 0 0 / 4%);text-shadow:none}.tabs .tab-list button,.actions .ghost{box-shadow:none}
 .scope-tabs button.active:after,.project-tabs button.active:after{background:var(--blue)}
 .theme-config-drawer .modal-header{min-height:56px;padding:14px 24px}.theme-config-drawer .modal-body{padding:16px 24px;overflow:auto;flex:1}.theme-config-drawer .modal-foot{flex-shrink:0}
 .theme-setting-section{padding:0 0 4px}.theme-setting-section h3{display:flex;align-items:center;gap:16px;margin:16px 0 18px;font-size:16px;font-weight:500;white-space:nowrap;text-align:center;color:var(--ink)}
 .theme-setting-section h3:before,.theme-setting-section h3:after{content:'';height:1px;background:var(--line);flex:1}
 .theme-mode{display:flex;justify-content:center;gap:0}.theme-mode button{padding:2px 12px;font-size:13px}.theme-mode button[aria-pressed=true]{background:var(--blue);border-color:var(--blue);color:var(--white)}
 .theme-layouts{display:flex;gap:14px;justify-content:space-between}.theme-layouts>button{padding:2px;border:2px solid transparent;border-radius:4px;box-shadow:0 1px 5px rgb(0 0 0 / 15%)}.theme-layouts>button[aria-pressed=true]{border-color:var(--blue)}
 .layout-preview{display:block;width:48px;height:40px;position:relative;background:var(--layout-fill);overflow:hidden;border-radius:2px}.layout-preview i,.layout-preview b{display:block;position:absolute;background:var(--layout-sample)}
 .layout-sidebar i{width:15px;inset:0 auto 0 0}.layout-mix i,.layout-top-menu i{height:10px;inset:0 0 auto}.layout-mix b{top:10px;bottom:0;left:0;width:13px;background:var(--white)}.layout-mix-sidebar i{width:10px;inset:0 auto 0 0}.layout-mix-sidebar b{width:10px;inset:0 auto 0 10px;background:var(--white)}
 .theme-swatches{display:grid;grid-template-columns:repeat(11,minmax(0,1fr));gap:6px}.theme-swatches button{width:20px;height:20px;min-height:20px;padding:0;border:1px solid var(--control-line);border-radius:0;background:var(--swatch);color:var(--swatch-ink);font-size:14px;line-height:18px;text-align:center;box-shadow:none}
 .theme-swatches button:hover{outline:2px solid var(--blue);outline-offset:2px}.theme-swatches button[aria-pressed=true]{border-color:var(--swatch)}
 .appearance-settings{gap:18px}.appearance-settings>label{font-size:14px;line-height:22px;gap:10px}.appearance-settings select{width:126px;padding:2px 24px 2px 8px;min-height:26px;border-radius:2px}
 .appearance-settings input[role=switch]{appearance:none;flex:0 0 44px;width:44px;height:22px;min-height:22px;border:0;border-radius:22px;background:var(--control-line);box-shadow:none;cursor:pointer;position:relative}
 .appearance-settings input[role=switch]:after{content:'';position:absolute;top:2px;left:2px;width:18px;height:18px;border:0;border-radius:50%;background:var(--white);transform:none;box-shadow:0 2px 4px rgb(0 0 0 / 15%)}
 .appearance-settings input[role=switch]:checked{background:var(--blue)}.appearance-settings input[role=switch]:checked:after{left:24px}.appearance-settings input[role=switch]:disabled{opacity:.45;cursor:not-allowed}
 .theme-version{display:flex;align-items:center;justify-content:space-between;border-top:1px solid var(--line);padding:18px 0 4px;font-size:13px}.theme-version strong{color:var(--blue);font-size:18px}
 .theme-breadcrumb{display:flex;gap:4px;align-items:center;padding:8px 20px;background:var(--surface);border-bottom:1px solid var(--line);font-size:13px;color:var(--muted)}.theme-breadcrumb button{border:0;background:none;color:var(--blue);padding:0;box-shadow:none}
 html[data-appearance-tabs=false] .main>.tabs{display:none}
 html[data-appearance-tab-style=smooth] .tabs{padding-top:10px;background:var(--surface)}html[data-appearance-tab-style=smooth] .tabs .tab-list button{height:38px;border-radius:8px 8px 0 0;border-bottom:0}html[data-appearance-tab-style=smooth] .tabs .tab-list button.active{background:var(--bg)}
 html[data-appearance-tab-style=simple] .tabs .tab-list button{border-bottom:0}html[data-appearance-tab-style=simple] .tabs .tab-list button.active{background:var(--info-bg)}
 html[data-appearance-trigger=footer] .topbar .sidebar-toggle,html[data-appearance-trigger=none] .topbar .sidebar-toggle{display:none}
 .theme-footer-toggle{position:fixed;bottom:8px;left:8px;z-index:70;padding:8px;background:var(--nav);color:var(--nav-strong);border-color:var(--nav-open)}
 .theme-top-navigation{display:none}.theme-group-rail{display:flex;flex-shrink:0;gap:0;background:var(--header);color:var(--header-ink)}.theme-group-rail>button{flex-shrink:0;background:transparent;color:inherit;border:0;border-radius:0;display:flex;gap:8px;align-items:center;justify-content:center;padding:12px;font-size:14px;box-shadow:none}.theme-group-rail>button.active{background:rgb(255 255 255 / 16%);color:inherit}
 html[data-appearance-layout=mix] .theme-group-rail{overflow:auto;min-height:48px}
 html[data-appearance-align=start] .theme-group-rail,html[data-appearance-align=start] .theme-horizontal-nav{justify-content:flex-start}html[data-appearance-align=center] .theme-group-rail,html[data-appearance-align=center] .theme-horizontal-nav{justify-content:safe center}html[data-appearance-align=end] .theme-group-rail,html[data-appearance-align=end] .theme-horizontal-nav{justify-content:safe flex-end}
 html[data-appearance-layout=mix][data-appearance-split=true] .sidebar>.nav>button,html[data-appearance-layout=mix][data-appearance-split=true] .sidebar>.nav>details:not(.theme-group-active),html[data-appearance-layout=mix-sidebar] .sidebar>.nav>button,html[data-appearance-layout=mix-sidebar] .sidebar>.nav>details:not(.theme-group-active){display:none}
 html[data-appearance-layout=mix-sidebar] .shell:not(.nav-collapsed){grid-template-columns:290px minmax(0,1fr)}html[data-appearance-layout=mix-sidebar] .sidebar{display:grid;grid-template-columns:80px minmax(0,1fr);grid-template-rows:45px minmax(0,1fr)}
 html[data-appearance-layout=mix-sidebar] .sidebar .brand{grid-column:1/-1}html[data-appearance-layout=mix-sidebar] .sidebar .theme-group-rail{flex-direction:column;overflow:auto;background:var(--nav);color:var(--nav-ink);justify-content:flex-start}html[data-appearance-layout=mix-sidebar] .theme-group-rail>button{flex-direction:column;font-size:12px;padding:14px 4px;white-space:normal}html[data-appearance-layout=mix-sidebar] .theme-group-rail>button.active{background:var(--blue);color:var(--white)}
 html[data-appearance-layout=mix-sidebar] .sidebar>.nav{background:var(--nav-open)}html[data-appearance-layout=mix-sidebar] .nav button{padding-left:20px}
 html[data-appearance-layout=top-menu] .shell{grid-template-columns:minmax(0,1fr)}html[data-appearance-layout=top-menu] .sidebar{display:none}html[data-appearance-layout=top-menu] .theme-top-navigation{display:block;z-index:8;background:var(--nav);flex-shrink:0}
 .theme-horizontal-nav{display:flex;flex-wrap:wrap;overflow:visible}.theme-horizontal-nav>details{position:relative;flex-shrink:0}.theme-horizontal-nav>details>button{display:none;min-width:220px;background:var(--nav);padding-left:20px}.theme-horizontal-nav>details[open]>button{display:flex}.theme-horizontal-nav>details[open]{height:50px;z-index:9;overflow:visible}.theme-horizontal-nav>.nav-direct{width:auto;flex-shrink:0}
 html[data-appearance-gray=true]{filter:grayscale(1)}html[data-appearance-weak=true]{filter:invert(.8)}html[data-appearance-gray=true][data-appearance-weak=true]{filter:grayscale(1) invert(.8)}
 html[data-appearance-mode=dark]{color-scheme:dark;--ink:rgba(255,255,255,.85);--muted:rgba(255,255,255,.65);--placeholder:rgba(255,255,255,.35);--disabled:rgba(255,255,255,.25);--line:#303030;--control-line:#434343;--bg:#000;--surface:#141414;--surface-soft:#1f1f1f;--surface-tint:#262626;--info-bg:#111d2c;--info-line:#15395b;--warning-bg:#2b2111;--warning-line:#594214;--warning:#d89614;--red-bg:#2a1215;--red-line:#58181c;--red:#ff7875;--green-bg:#162312;--green-line:#274916;--green:#95de64;--popup-shadow:0 6px 24px rgb(0 0 0 / 55%)}
 html[data-appearance-mode=dark] :is(.card,.stat,.company-card,.overview-card,.page-panel,.modal,.modal-body,.modal-foot,.modal-header,.reference-family,.scope-tabs,.project-tabs,.dashboard-filter,.allocation-commands,.table-region,.table-wrap,.column-options,.density-options,.page-help>div,.monthly-hours-screen,.process-workspace,.process-sidebar,.process-detail,.account-management-screen,.annual-report-screen){background-color:var(--surface);color:var(--muted);border-color:var(--line)}
 html[data-appearance-mode=dark] :is(button,input,select,textarea,td,.reference-fixed-left,.reference-fixed-right){background-color:var(--surface);color:var(--muted);border-color:var(--control-line)}
 html[data-appearance-mode=dark] :is(th,.report-subtotal td,.report-summary,.detail-grid dt,.monthly-hours-grid th){background:var(--surface-soft);color:var(--ink);border-color:var(--line)}
 html[data-appearance-mode=dark] :is(.reference-filters .filter>span,.field label,.form-grid>.field>label,.company-pair dt,.company-pair dd,.overview-card h2,.card-head h2,.modal-header h2,.table-help,.empty,.rowcode){color:var(--muted)}
 html[data-appearance-mode=dark] button.primary,html[data-appearance-mode=dark] .reference-family button.active{background:var(--blue);color:var(--white);border-color:var(--blue)}
 html[data-appearance-mode=dark] .ghost{background:transparent;color:var(--blue)}html[data-appearance-mode=dark] .topbar,html[data-appearance-mode=dark] .topbar .ghost,html[data-appearance-mode=dark] .topbar .sidebar-toggle{background:var(--header);color:var(--header-ink)}
 html[data-appearance-mode=dark] .sidebar,html[data-appearance-mode=dark] .nav,html[data-appearance-mode=dark] .nav button{background:var(--nav);color:var(--nav-ink)}html[data-appearance-mode=dark] .nav button.active{background:var(--blue);color:var(--white)}
 html[data-appearance-mode=dark] .theme-swatches button{background:var(--swatch);color:var(--swatch-ink)}html[data-appearance-mode=dark] .theme-mode button[aria-pressed=true]{background:var(--blue);color:var(--white)}
 html[data-appearance-mode=dark] input[role=switch]{background:var(--control-line)}html[data-appearance-mode=dark] input[role=switch]:checked{background:var(--blue)}
 html[data-appearance-mode=dark] :is(button,input,select,textarea):disabled{background:var(--surface-soft);color:var(--disabled)}
 html[data-appearance-mode=dark] .overview-chart svg text{fill:var(--muted)}
 html[data-appearance-mode=dark] .table-wrap table:has(td.actions) th:last-child{background:var(--surface-soft);color:var(--ink)}
 html[data-appearance-mode=dark] .table-wrap tbody tr:nth-child(even)>td{background:var(--surface)}
 html[data-appearance-mode=dark] .table-wrap td.actions{background:var(--surface)}
 html[data-appearance-mode=dark] :is(.toolbar,.reference-filters,.tfoot,.reference-choice-popup,.reference-upload-button){background:var(--surface);color:var(--muted)}
 .project-workspace-modal .project-tabs button.active{background:var(--blue);border-color:var(--blue);color:var(--white)}
}
@media screen and (max-width:1250px){.overview-top{grid-template-columns:repeat(2,minmax(0,1fr))}.overview-bottom{grid-template-columns:minmax(0,1fr)}}
@media screen and (max-width:760px){
 .shell,html[data-appearance-layout=mix-sidebar] .shell:not(.nav-collapsed){grid-template-columns:minmax(0,1fr)}
 .shell>.sidebar,html[data-appearance-layout=mix-sidebar] .shell>.sidebar{display:none}.shell.nav-open>.sidebar{display:flex;top:45px;width:210px}
 html[data-appearance-layout=mix-sidebar] .shell.nav-open>.sidebar{display:flex;width:290px}.theme-group-rail{display:none!important}
 html[data-appearance-layout=mix-sidebar] .sidebar>.nav>button,html[data-appearance-layout=mix-sidebar] .sidebar>.nav>details,html[data-appearance-layout=mix][data-appearance-split=true] .sidebar>.nav>button,html[data-appearance-layout=mix][data-appearance-split=true] .sidebar>.nav>details{display:revert!important}
 .topbar .product-title{display:none}.topbar{gap:8px}.top-right{gap:6px;min-width:0}.topbar .company-select{max-width:135px}.topbar .username{max-width:70px;overflow:hidden;text-overflow:ellipsis}
 .overview-top{grid-template-columns:minmax(0,1fr)}.overview-bottom .reference-pie{flex-wrap:wrap}.theme-config-drawer{max-width:100vw!important}.theme-config-drawer .modal-body{padding:12px 18px}.tabs .tab-list button{padding:0 14px}
}

@media screen {
  /* ── ⑥ 2026-10-20 界面缺陷修复新增（一律走本文件令牌，不写死颜色字面量）────────── */
  /* 分层安全阀的二次确认框：叠在既有弹窗之上，故 z-index 必须高于 .modal-backdrop(100)
     与 .project-picker-backdrop(2000)。刻意不复用 .modal-backdrop —— 那层由 modal() 独占，
     复用就等于把底下正在填的新增/删除弹窗清掉。 */
  .guard-backdrop {position:fixed;inset:0;z-index:4000;background:rgb(14 36 56 / 62%);display:flex;align-items:center;justify-content:center;padding:24px}
  .guard-dialog {background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-card);box-shadow:var(--popup-shadow);width:620px;max-width:95vw;max-height:90vh;display:flex;flex-direction:column}
  .guard-dialog .modal-header {border-bottom:1px solid var(--line);padding:16px 22px}
  .guard-dialog .modal-header h2 {margin:0;font-family:var(--font-display);font-size:17px;font-weight:650;color:var(--ink)}
  .guard-dialog .modal-body {padding:18px 22px;overflow:auto}
  .guard-dialog .modal-foot {border-top:1px solid var(--line);padding:14px 22px;display:flex;gap:9px;justify-content:flex-end}
  .guard-dialog .guard-error {margin-bottom:14px;white-space:pre-wrap}
  .guard-consequences-title {margin:0 0 6px;font-size:13px;font-weight:650;color:var(--ink)}
  .guard-consequences {margin:0 0 12px;padding-left:22px;font-size:13px;line-height:1.9;color:var(--ink)}
  .guard-consequences li {margin:2px 0}
  .guard-hint {margin:0;font-size:12px;color:var(--muted)}
  .guard-dialog button.danger {color:#fff;background:linear-gradient(180deg,var(--red-hover),var(--red));border-color:var(--red);text-shadow:0 -1px 0 rgb(0 0 0 / 14%)}
  .guard-dialog button.danger:hover {color:#fff;background:var(--red-hover);border-color:var(--red-hover)}

  /* 弹窗内的常驻错误区（新增/编辑 #form-error、操作确认 #op-error、生成工时 #hours-gen-error）：
     与删除弹窗的 #delete-error 同一家族，长句中文必须能折行。 */
  #form-error,#op-error,#delete-error,#hours-gen-error {white-space:pre-wrap;margin:14px 0 0}

  /* 报表页黄条：点明哪几个期间、哪一类数据变了 */
  .stale-period-list {margin:6px 0;padding-left:22px;line-height:1.9}
  .stale-period-list b {font-variant-numeric:tabular-nums}
  .stale-period-exit {margin-top:4px;font-weight:600}

  .annual-report-blank small {display:inline-block;max-width:640px;margin-top:6px;font-size:12px;color:var(--muted);line-height:1.9;text-align:left}

  /* 留存备查资料的「资料状态」列 */
  .retention-status {display:flex;flex-direction:column;gap:4px;align-items:flex-start}
  .retention-status-chip {display:inline-flex;padding:2px 8px;border-radius:var(--radius-sm);font-size:11px;white-space:nowrap;border:1px solid transparent}
  .retention-status-chip.pending {color:var(--warning);background:var(--warning-bg);border-color:var(--warning-line)}
  .retention-status-chip.complete {color:var(--green);background:var(--green-bg);border-color:var(--green-line)}
  .retention-stale {color:var(--red);font-size:12px;line-height:1.7}
  .retention-status-gap {color:var(--muted);font-size:11px}
  .retention-row-stale td,.retention-row-stale:hover td {background:var(--red-bg)}
  /* 「已作废」的留存包（2026-10-20）。刻意用**中性灰**而不是红色：
     作废是用户主动做的、有原因、有审计的正当动作，不是故障；红色会让人以为出了事故。
     行底色也压成中性，与"已过期"（红色＝这份包对不上账了，是异常）在视觉上必须分得开。
     一律走本文件既有令牌，不新增颜色字面量（T1 守卫钉住）。 */
  .retention-status-chip.voided {color:var(--muted);background:var(--surface-soft);border-color:var(--line)}
  .retention-voided {color:var(--muted);font-size:12px;line-height:1.7}
  .retention-voided-hint {color:var(--placeholder);font-size:11px;line-height:1.7}
  .retention-row-voided td,.retention-row-voided:hover td {background:var(--surface-soft)}
  .retention-row-voided td {opacity:.85}

  /* 未知页面代号 / 无权访问 的常驻提示 */
  .unknown-module-notice {white-space:pre-wrap}

  /* 四张工时表生成弹窗里的「同时重算其他三类工时」勾选项 */
  .hour-generate-families {margin-top:16px;gap:6px}
  .hour-generate-families>label {display:flex;align-items:center;gap:8px;font-size:13px;color:var(--ink)}
  .hour-generate-families small {color:var(--muted);font-size:11px;line-height:1.8}
}
