
:root {
  --bg: #f3f7f6;
  --panel: #ffffff;
  --panel-soft: #f8fafc;
  --line: #dfe5eb;
  --text: #172033;
  --muted: #687385;
  --accent: #256ee8;
  --accent-strong: #1d5fcf;
  --amber: #b7791f;
  --red: #b42318;
}
* { box-sizing: border-box; }
body { margin: 0; background: linear-gradient(180deg, #f4faf8 0%, #f3f7f6 42%, #eef4f2 100%); color: var(--text); font-family: "Microsoft YaHei", Arial, sans-serif; }
a { color: inherit; }
.app-shell { min-height: 100vh; display: grid; grid-template-columns: 280px minmax(0, 1fr); }
.sidebar { background: linear-gradient(180deg, #003f43 0%, #004f4d 52%, #02323a 100%); color: white; padding: 20px 14px; position: sticky; top: 0; height: 100vh; overflow-y: auto; box-shadow: inset -1px 0 rgba(255,255,255,.08), 10px 0 28px rgba(8,47,73,.12); scrollbar-width: thin; scrollbar-color: rgba(200,230,225,.34) transparent; }
.sidebar::-webkit-scrollbar { width: 8px; }
.sidebar::-webkit-scrollbar-thumb { background: rgba(200,230,225,.32); border-radius: 999px; }
.brand { display: flex; gap: 12px; align-items: center; padding: 4px 8px 18px; border-bottom: 1px solid rgba(255,255,255,.14); margin-bottom: 16px; }
.brand-mark { width: 38px; height: 38px; border-radius: 10px; display: grid; place-items: center; background: linear-gradient(135deg, #33d6c2, #0f9a8e); color: #003f43; font-weight: 900; box-shadow: 0 8px 22px rgba(0,0,0,.18); }
.brand-title { font-size: 16px; font-weight: 900; line-height: 1.25; }
.brand-subtitle { color: #c8e6e1; font-size: 12px; margin-top: 4px; }
.side-section { margin: 18px 0; }
.side-section-title { color: #9ec7c1; font-size: 12px; letter-spacing: .04em; margin: 0 8px 8px; }
.side-nav { display: grid; gap: 4px; }
.side-nav a { display: flex; align-items: center; justify-content: space-between; gap: 8px; padding: 9px 10px; border-radius: 8px; text-decoration: none; color: #ecfeff; font-size: 14px; border: 1px solid transparent; }
.side-nav a:hover { background: rgba(255,255,255,.10); border-color: rgba(255,255,255,.08); }
.side-nav a.primary-link { background: linear-gradient(135deg, #008f84, #0aa99b); color: #ffffff; font-weight: 900; border-color: rgba(167,243,208,.3); box-shadow: 0 8px 20px rgba(0,0,0,.14); }
.sidebar details.side-section { margin: 12px 0; }
.sidebar details.side-section > summary { list-style: none; cursor: pointer; color: #9ec7c1; font-size: 12px; letter-spacing: .04em; margin: 0 8px 6px; display: flex; align-items: center; justify-content: space-between; gap: 8px; }
.sidebar details.side-section > summary::-webkit-details-marker { display: none; }
.sidebar details.side-section > summary::after { content: "›"; color: #c8e6e1; font-size: 14px; transition: transform .16s ease; }
.sidebar details.side-section[open] > summary::after { transform: rotate(90deg); }
.sidebar details.side-section .side-nav { padding: 0 0 2px; }
.sidebar details.side-subsection { margin: 4px 0 2px; }
.sidebar details.side-subsection > summary { list-style: none; cursor: pointer; display: flex; align-items: center; justify-content: space-between; gap: 8px; margin: 4px 4px 2px; padding: 8px 10px; border-radius: 8px; color: #d7f5ef; font-size: 13px; font-weight: 900; background: rgba(255,255,255,.06); border: 1px solid rgba(255,255,255,.06); }
.sidebar details.side-subsection > summary::-webkit-details-marker { display: none; }
.sidebar details.side-subsection > summary::after { content: "›"; color: #c8e6e1; font-size: 13px; transition: transform .16s ease; }
.sidebar details.side-subsection[open] > summary::after { transform: rotate(90deg); }
.sidebar .side-subnav { margin-left: 10px; padding-left: 8px !important; border-left: 1px solid rgba(200,230,225,.20); }
.sidebar .side-subnav a { font-size: 13px; padding: 8px 9px; }
.main-shell { min-width: 0; }
.topbar { min-height: 78px; background: rgba(255,255,255,.88); border-bottom: 1px solid rgba(207,222,217,.86); padding: 18px 28px; display: flex; align-items: center; justify-content: space-between; gap: 16px; position: sticky; top: 0; z-index: 5; backdrop-filter: blur(12px); box-shadow: 0 8px 24px rgba(15,23,42,.04); }
.topbar h1 { margin: 0; font-size: 22px; letter-spacing: 0; font-weight: 950; color: #102728; }
.topbar p { margin: 5px 0 0; color: var(--muted); font-size: 13px; }
.top-actions { display: flex; gap: 8px; flex-wrap: wrap; justify-content: flex-end; }
.topbar.compact-executive { min-height: 48px; padding: 10px 24px; }
.topbar.compact-executive h1 { font-size: 16px; }
.topbar.compact-executive p, .topbar.compact-executive .top-actions { display: none; }
.topbar.compact-executive .top-actions.permission-approval-actions { display: flex; }
.topbar.compact-executive + .content .executive-section-nav { top: 48px; }
.topbar.compact-executive + .content .executive-context-bar { top: 98px; }
.topbar.compact-executive + .content .area-section-nav { top: 48px; }
.permission-approval-entry { background: linear-gradient(135deg, #256ee8 0%, #3b75e6 45%, #12a9d8 100%); border-color: #256ee8; color: #fff; }
.permission-approval-entry:hover { background: linear-gradient(135deg, #1d5fcf 0%, #2563c7 48%, #0891b2 100%); border-color: #1d5fcf; }
.permission-approval-shell { display: grid; gap: 14px; }
.permission-center-nav { display: flex; flex-wrap: wrap; gap: 8px; padding: 10px; border: 1px solid #dce7ee; border-radius: 14px; background: rgba(255,255,255,.92); position: sticky; top: 78px; z-index: 4; box-shadow: 0 10px 26px rgba(31,61,99,.07); }
.permission-center-nav a { display: inline-flex; align-items: center; min-height: 36px; padding: 7px 12px; border-radius: 9px; color: #38506b; font-size: 13px; font-weight: 850; text-decoration: none; border: 1px solid transparent; }
.permission-center-nav a:hover { background: #eef5ff; border-color: #cfe0f6; }
.permission-center-nav a.active { background: #256ee8; border-color: #256ee8; color: #fff; }
.permission-approval-hero { background: linear-gradient(118deg, #1f5fd6 0%, #3478e5 52%, #12a7c8 100%); color: #fff; border-radius: 16px; padding: 17px 20px; display: flex; justify-content: space-between; gap: 18px; align-items: center; box-shadow: 0 14px 34px rgba(37,110,232,.16); }
.permission-approval-hero h1 { margin: 3px 0 5px; font-size: 23px; color: #fff; }
.permission-approval-hero p { margin: 0; max-width: 760px; color: rgba(255,255,255,.82); }
.permission-approval-owner { border: 1px solid rgba(255,255,255,.24); background: rgba(255,255,255,.12); border-radius: 12px; padding: 9px 12px; min-width: 160px; }
.permission-approval-owner strong { display: block; margin-top: 2px; font-size: 15px; }
.permission-approval-stats { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 10px; }
.permission-approval-stat { background: #fff; border: 1px solid #dceae6; border-radius: 12px; padding: 12px 14px; box-shadow: 0 6px 20px rgba(19,72,63,.05); }
.permission-approval-stat span { display: block; color: #687b78; font-size: 12px; }
.permission-approval-stat strong { display: block; color: #173f39; font-size: 23px; margin-top: 4px; }
.permission-quick-guide { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 10px; }
.permission-quick-step { background: #fff; border: 1px solid #d9e6f4; border-radius: 12px; padding: 12px 14px; }
.permission-quick-step b { display: block; color: #1f5fd6; margin-bottom: 4px; }
.permission-policy-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 10px; }
.permission-policy-card { border: 1px solid #d9e6f4; border-radius: 12px; padding: 12px 14px; background: linear-gradient(180deg,#fff,#f8fbff); }
.permission-policy-card h3 { margin: 0 0 5px; color: #173f39; font-size: 15px; }
.permission-policy-card p { margin: 0; color: #667a77; font-size: 12px; line-height: 1.55; }
.permission-advanced-model > summary { cursor: pointer; font-weight: 850; color: #38506b; }
.permission-filter { display: grid; grid-template-columns: minmax(220px,2fr) repeat(2,minmax(130px,1fr)) auto; gap: 10px; align-items: end; background: #fff; border: 1px solid #dceae6; border-radius: 14px; padding: 14px; }
.permission-filter label, .permission-editor label { display: grid; gap: 6px; color: #38504c; font-size: 12px; font-weight: 800; }
.permission-people { display: grid; gap: 12px; }
.permission-person { background: #fff; border: 1px solid #dceae6; border-radius: 16px; overflow: hidden; }
.permission-person-summary { display: grid; grid-template-columns: minmax(190px,1.45fr) minmax(150px,.9fr) minmax(190px,1fr) auto; gap: 16px; align-items: center; padding: 16px 18px; cursor: pointer; list-style: none; }
.permission-person-summary::-webkit-details-marker { display: none; }
.permission-person-name strong { display: block; color: #173f39; font-size: 17px; }
.permission-person-name span { display: block; margin-top: 4px; color: #71827f; font-size: 12px; }
.permission-tags { display: flex; flex-wrap: wrap; gap: 6px; }
.permission-tag { display: inline-flex; align-items: center; min-height: 24px; padding: 3px 9px; border-radius: 999px; background: #edf6f3; color: #236458; font-size: 12px; font-weight: 800; }
.permission-tag.off { background: #f2f4f4; color: #87918f; }
.permission-tag.pending { background: #fff3db; color: #9b6112; }
.permission-editor { border-top: 1px solid #e2ece9; background: #f8fbfa; padding: 18px; display: grid; gap: 16px; }
.permission-editor-grid { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 12px; }
.permission-checks { display: flex; flex-wrap: wrap; gap: 8px 14px; padding: 10px 12px; background: #fff; border: 1px solid #dceae6; border-radius: 10px; }
.permission-checks label { display: inline-flex; grid-template-columns: auto 1fr; align-items: center; gap: 6px; font-weight: 700; }
.permission-editor-actions { display: flex; justify-content: space-between; align-items: center; gap: 12px; }
.permission-governance-panel { background: #fff; border: 1px solid #dceae6; border-radius: 16px; padding: 18px; }
.permission-governance-panel > header { display: flex; justify-content: space-between; align-items: flex-start; gap: 18px; margin-bottom: 14px; }
.permission-governance-panel h2, .permission-governance-panel h3 { margin: 0 0 6px; color: #173f39; }
.permission-governance-panel p { margin: 0; color: #667a77; line-height: 1.6; }
.permission-family-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 10px; }
.permission-family-card { border: 1px solid #dbe7e5; border-left: 4px solid #256ee8; border-radius: 12px; padding: 13px; background: #f9fbfd; min-width: 0; }
.permission-family-card h3 { font-size: 15px; }
.permission-family-card .permission-tags { margin: 9px 0; }
.permission-family-meta { display: grid; gap: 5px; color: #667a77; font-size: 12px; }
.permission-model-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 10px; }
.permission-model-step { border: 1px solid #dbe7e5; border-radius: 12px; padding: 13px; background: #fff; }
.permission-model-step b { display: block; color: #1b4d47; margin-bottom: 5px; }
.permission-role-table td { vertical-align: top; }
.permission-role-table .permission-tags { min-width: 220px; }
@media (max-width: 1100px) { .permission-family-grid, .permission-model-grid { grid-template-columns: repeat(2,minmax(0,1fr)); } }
@media (max-width: 900px) { .permission-center-nav { position: static; } .permission-approval-hero { flex-direction: column; align-items: flex-start; } .permission-approval-stats, .permission-quick-guide, .permission-policy-grid { grid-template-columns: 1fr; } .permission-filter, .permission-person-summary, .permission-editor-grid, .permission-family-grid, .permission-model-grid { grid-template-columns: 1fr; } .permission-governance-panel > header { flex-direction: column; } }
.content { padding: 22px 28px 48px; overflow-x: hidden; }
.decision-hero { display: grid; grid-template-columns: minmax(0, 1.35fr) minmax(300px, .65fr); gap: 14px; align-items: stretch; margin: 0 0 18px; }
.hero-main, .hero-side, .focus-panel, .workflow-panel { background: var(--panel); border: 1px solid var(--line); border-radius: 8px; padding: 16px; box-shadow: 0 1px 2px rgba(15, 23, 42, .05); }
.hero-main { background: #123c3a; color: #f8fafc; border-color: #123c3a; }
.hero-main .label, .hero-main .small { color: #c8e6e1; }
.hero-title { font-size: 15px; font-weight: 800; margin-bottom: 8px; }
.hero-value { font-size: 34px; line-height: 1.1; font-weight: 900; margin: 8px 0; }
.hero-actions { display: flex; gap: 8px; flex-wrap: wrap; margin-top: 14px; }
.hero-actions .button.ghost { background: rgba(255,255,255,.12); color: #fff; border-color: rgba(255,255,255,.28); }
.hero-actions .button.secondary { background: #475569; }
.decision-list { display: grid; gap: 8px; margin-top: 10px; }
.decision-item { display: grid; grid-template-columns: auto minmax(0, 1fr); gap: 9px; align-items: start; padding: 9px 10px; border: 1px solid #dbe7e5; border-radius: 8px; background: #f8fafc; }
.decision-rank { width: 24px; height: 24px; border-radius: 999px; display: grid; place-items: center; background: #d9f2ed; color: #0b5f59; font-weight: 800; font-size: 12px; }
.decision-title { font-weight: 800; color: #172033; }
.decision-meta { color: var(--muted); font-size: 12px; margin-top: 3px; line-height: 1.45; }
.role-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 10px; margin: 14px 0; }
.role-card { display: block; text-decoration: none; background: var(--panel); border: 1px solid var(--line); border-left: 4px solid var(--accent); border-radius: 8px; padding: 13px 14px; min-height: 100px; }
.role-card:hover { border-color: #8ac5be; background: #f7fcfb; }
.role-card .role-title { font-weight: 900; margin-bottom: 5px; }
.role-card .role-meta { color: var(--muted); font-size: 12px; line-height: 1.45; }
.section-head { display: flex; align-items: flex-end; justify-content: space-between; gap: 12px; flex-wrap: wrap; margin: 24px 0 10px; }
.section-head h2 { margin: 0; }
.section-tools { display: flex; gap: 8px; flex-wrap: wrap; }
.compact-kpis { display: grid; grid-template-columns: repeat(auto-fit, minmax(160px, 1fr)); gap: 10px; margin: 12px 0 18px; }
.compact-kpis .card { padding: 13px; }
.compact-kpis .card .value { font-size: 22px; }
.action-panel { background: #f8fafc; border: 1px solid var(--line); border-radius: 8px; padding: 14px; margin: 14px 0; }
.action-panel-title { font-weight: 900; margin-bottom: 8px; }
.action-steps { display: grid; gap: 8px; margin: 0; padding: 0; list-style: none; }
.action-steps li { background: #fff; border: 1px solid #e5edf2; border-radius: 8px; padding: 9px 10px; line-height: 1.45; }
button, .button { background: linear-gradient(180deg, #0f8277, #0f6b61); color: white; border: 1px solid #0f6b61; padding: 9px 13px; border-radius: 8px; text-decoration: none; cursor: pointer; font-size: 14px; font-weight: 850; display: inline-flex; align-items: center; justify-content: center; min-height: 36px; box-shadow: 0 6px 14px rgba(15,107,97,.14); }
button:hover, .button:hover { filter: saturate(1.04) brightness(1.02); }
button:focus-visible, .button:focus-visible, a:focus-visible, input:focus-visible, select:focus-visible, textarea:focus-visible { outline: 2px solid rgba(15,118,110,.28); outline-offset: 2px; }
.button.secondary, button.secondary { background: #475569; }
.button.ghost { background: #f7fbfa; color: var(--accent-strong); border: 1px solid #bfd9d5; box-shadow: 0 4px 10px rgba(15,23,42,.04); }
.grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)); gap: 14px; margin: 18px 0; }
.grid.four { grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); }
.card, .card-link { background: linear-gradient(180deg, #ffffff 0%, #fbfdfc 100%); border: 1px solid #dce8e6; border-radius: 8px; padding: 16px; box-shadow: 0 8px 20px rgba(15, 23, 42, .045); }
.card-link { display: block; min-height: 112px; text-decoration: none; transition: border-color .15s ease, transform .15s ease; }
.card-link:hover { border-color: #8ac5be; transform: translateY(-1px); }
.card-link.active-source, .card-link.is-active { border-color: var(--accent); background: #f0fdfa; box-shadow: 0 8px 20px rgba(13, 148, 136, .12); }
.card .label, .card-link .label { color: var(--muted); font-size: 13px; }
.card .value, .card-link .value { font-size: 26px; font-weight: 800; margin-top: 6px; color: #0f4f4a; }
.wide { grid-column: 1 / -1; }
.badge { display: inline-block; padding: 3px 8px; border-radius: 999px; background: #e7edf3; color: #263244; font-size: 12px; margin: 2px 2px 2px 0; text-decoration: none; }
.badge.good { background: #d8f3dc; color: #166534; }
.badge.warn { background: #fff1c2; color: #854d0e; }
.badge.bad { background: #fde0dd; color: #991b1b; }
.badge.active { background: var(--accent); color: #ffffff; }
h2 { margin: 26px 0 12px; font-size: 18px; letter-spacing: 0; }
h3 { margin: 18px 0 10px; font-size: 15px; }
table { width: 100%; min-width: 820px; border-collapse: separate; border-spacing: 0; background: var(--panel); border: 1px solid var(--line); border-radius: 8px; overflow: hidden; }
th, td { padding: 10px 12px; border-bottom: 1px solid var(--line); text-align: left; font-size: 13px; vertical-align: top; }
th { background: #eef6f5; color: #21313d; font-weight: 700; }
.store-people-panel { margin: 16px 0; }
.store-people-table { min-width: 0; table-layout: fixed; }
.store-people-table th, .store-people-table td { padding: 8px; overflow-wrap: anywhere; }
.mobile-store-people-panel .store-people-table th,
.mobile-store-people-panel .store-people-table td { font-size: 12px; line-height: 1.35; }
tr:hover td { background: #f8fafc; }
.table-panel { background: var(--panel); border: 1px solid var(--line); border-radius: 8px; overflow: hidden; box-shadow: 0 1px 2px rgba(15, 23, 42, .05); }
.table-panel-head { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 12px 14px; border-bottom: 1px solid var(--line); background: #fbfcfd; }
.table-panel-title { font-weight: 800; color: #172033; }
.table-panel-meta { color: var(--muted); font-size: 12px; }
.table-scroll { max-height: 68vh; overflow: auto; overscroll-behavior: contain; }
.data-table { border: 0; border-radius: 0; min-width: max(820px, 100%); overflow: visible; }
.data-table th { position: sticky; top: 0; z-index: 2; white-space: nowrap; box-shadow: inset 0 -1px var(--line); }
.data-table thead tr:nth-child(2) th { top: 38px; background: #f7fbfa; }
.data-table td { max-width: 240px; min-width: 112px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.data-table th:first-child, .data-table td:first-child { position: sticky; left: 0; z-index: 3; background: #fff; box-shadow: 1px 0 0 var(--line); }
.data-table thead th:first-child { z-index: 4; background: #e8f4f2; }
.executive-rank-table-scroll { max-height: calc(100vh - 280px); overflow: auto; scrollbar-gutter: stable; overscroll-behavior: contain; border-top: 1px solid var(--line); }
.executive-rank-table-scroll .executive-rank-table { margin: 0; }
.executive-rank-table { min-width: 1480px; }
.executive-rank-table.compact { min-width: 940px; }
.executive-rank-table th, .executive-rank-table td { padding: 7px 8px; font-size: 12px; line-height: 1.28; }
.executive-rank-table thead th { position: sticky; top: 0; z-index: 8; background: #e8f4f2; box-shadow: inset 0 -1px var(--line), 0 2px 4px rgba(15, 23, 42, .08); }
.executive-rank-table.compact th, .executive-rank-table.compact td { min-width: 88px; max-width: 148px; }
.executive-rank-table th:first-child, .executive-rank-table td:first-child { width: 46px; min-width: 46px; max-width: 46px; text-align: center; }
.executive-rank-table th:nth-child(2), .executive-rank-table td:nth-child(2) { position: sticky; left: 46px; z-index: 3; min-width: 190px; max-width: 230px; background: #fff; box-shadow: 1px 0 0 var(--line); }
.executive-rank-table thead th:first-child { z-index: 9; background: #e8f4f2; }
.executive-rank-table thead th:nth-child(2) { z-index: 10; background: #e8f4f2; }
.executive-rank-table th:nth-child(3), .executive-rank-table td:nth-child(3) { min-width: 66px; max-width: 78px; text-align: center; }
.executive-rank-table th:nth-child(5), .executive-rank-table td:nth-child(5) { min-width: 86px; max-width: 96px; }
.executive-rank-table th:last-child, .executive-rank-table td:last-child { position: sticky; right: 0; z-index: 3; min-width: 82px; max-width: 90px; background: #fff; box-shadow: -1px 0 0 var(--line); }
.executive-rank-table thead th:last-child { z-index: 10; background: #e8f4f2; }
.executive-rank-table td.numeric { text-align: right; font-variant-numeric: tabular-nums; }
.executive-rank-table tr:hover td, .executive-rank-table tr:hover td:nth-child(2), .executive-rank-table tr:hover td:last-child { background: #f8fafc; }
.executive-rank-table tr.level-sp td:first-child { box-shadow: inset 4px 0 #dc2626; }
.executive-rank-table tr.level-s td:first-child { box-shadow: inset 4px 0 #dc2626; }
.executive-rank-table tr.level-a td:first-child { box-shadow: inset 4px 0 #facc15; }
.executive-rank-table tr.level-b td:first-child { box-shadow: inset 4px 0 #7dd3fc; }
.executive-rank-table tr.level-unrated td:first-child { box-shadow: inset 4px 0 #cbd5e1; }
.executive-store-link { color: #0b5f59; text-decoration: none; font-weight: 900; }
.rank-badge { display:inline-flex; align-items:center; justify-content:center; width:28px; height:24px; border-radius:999px; background:#eef3f2; color:#334155; font-weight:900; }
.rank-badge.top-rank { background:#fff1c2; color:#854d0e; }
.rank-badge.bottom-rank { background:#fde0dd; color:#991b1b; }
.executive-focus-strip { display:grid; grid-template-columns: repeat(auto-fit, minmax(160px, 1fr)); gap:10px; margin: 12px 0 16px; }
.executive-focus-item { border:1px solid #dce8e6; border-radius:8px; background:#fff; padding:11px 12px; }
.executive-focus-item .label { color:var(--muted); font-size:12px; }
.executive-focus-item .value { color:#172033; font-size:21px; font-weight:900; margin-top:4px; }
.executive-focus-item.warn { border-left:4px solid #b7791f; }
.executive-focus-item.bad { border-left:4px solid #dc2626; }
.metric-bar { min-width: 88px; height: 7px; border-radius: 999px; background: #e5e7eb; overflow: hidden; margin-top: 4px; }
.metric-bar-fill { height: 100%; border-radius: 999px; background: #008f84; }
.metric-cell-note { color: var(--muted); font-size: 11px; margin-top: 2px; }
.rank-metric-cell { display: grid; gap: 3px; justify-items: end; min-width: 0; }
.rank-metric-cell strong { color: #172033; font-size: 12px; line-height: 1.25; font-variant-numeric: tabular-nums; }
.rank-metric-bar { width: 82px; height: 4px; border-radius: 999px; background: #edf2f1; overflow: hidden; }
.rank-metric-bar span { display: block; height: 100%; border-radius: inherit; background: #87aa9b; }
.metric-bar-td.cell-bad .rank-metric-bar span { background: #b86a5f; }
.metric-bar-td.cell-warn .rank-metric-bar span { background: #b69a62; }
.delta-pill { display: inline-flex; align-items: center; justify-content: center; min-width: 58px; padding: 3px 7px; border-radius: 999px; background: #e7edf3; color: #334155; font-weight: 900; font-size: 11px; }
.delta-pill.good { background: #d8f3dc; color: #166534; }
.delta-pill.bad { background: #fde0dd; color: #991b1b; }
.delta-pill.warn { background: #fff1c2; color: #854d0e; }
.store-insight-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); gap: 10px; margin: 8px 0 12px; }
.store-insight-block { display: grid; gap: 12px; }
.store-insight-block-title { display: flex; align-items: center; gap: 8px; color: #172033; font-weight: 900; font-size: 14px; margin-top: 2px; }
.store-insight-block-title::before { content: ""; width: 7px; height: 18px; border-radius: 999px; background: #008f84; }
.store-insight-grid.tight { grid-template-columns: repeat(auto-fit, minmax(138px, 1fr)); margin: 0; }
.store-insight-card { border: 1px solid #e5edf2; border-radius: 8px; padding: 10px; background: #fbfcfd; }
.store-insight-card.primary { border-color: #9fd6ce; background: #f0fdfa; }
.store-insight-card.warn { border-color: #f4d68b; background: #fffaf0; }
.store-insight-card.bad { border-color: #fecaca; background: #fff5f5; }
.store-insight-card.good { border-color: #b7e4c7; background: #f0fdf4; }
.store-insight-card .label { color: var(--muted); font-size: 12px; }
.store-insight-card .value { font-size: 20px; font-weight: 900; color: #0f4f4a; margin-top: 4px; }
.store-signal-grid { display:grid; grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)); gap: 10px; margin: 10px 0; }
.store-signal-card { border: 1px solid #e5edf2; background:#fff; border-radius:8px; padding:11px; }
.store-signal-card.good { border-left:4px solid #16a34a; }
.store-signal-card.warn { border-left:4px solid #b7791f; }
.store-signal-card.bad { border-left:4px solid #dc2626; }
.store-signal-card .signal-title { color: var(--muted); font-size: 12px; }
.store-signal-card .signal-value { font-size: 19px; font-weight: 900; color: #172033; margin: 5px 0; }
.store-signal-card .signal-note { color: var(--muted); font-size: 12px; line-height: 1.45; }
.store-detail-summary { display: flex; align-items: center; justify-content: space-between; gap: 10px; flex-wrap: wrap; border: 1px solid #dce8e6; border-radius: 8px; background: #fbfcfd; padding: 10px 12px; margin: 0 0 10px; }
.store-detail-summary strong { color: #172033; }
.store-detail-summary .summary-meta { color: var(--muted); font-size: 12px; display: flex; gap: 8px; flex-wrap: wrap; align-items: center; }
.store-detail-quick-nav { display: flex; flex-wrap: wrap; gap: 7px; margin: 0 0 10px; }
.store-detail-quick-nav a { display: inline-flex; align-items: center; min-height: 28px; padding: 4px 9px; border-radius: 999px; border: 1px solid #cce3df; background: #eef6f5; color: #0b5f59; text-decoration: none; font-size: 12px; font-weight: 900; }
.store-detail-workbench { display: grid; gap: 12px; margin: 16px 0 18px; }
.store-detail-nav { position: sticky; top: 0; z-index: 7; display: flex; gap: 7px; flex-wrap: wrap; align-items: center; padding: 9px 10px; border: 1px solid #dce8e6; border-radius: 8px; background: rgba(255,255,255,.96); box-shadow: 0 6px 16px rgba(15,23,42,.05); }
.store-detail-nav a { color: #0b5f59; text-decoration: none; font-size: 12px; font-weight: 900; border: 1px solid #cce3df; background: #eef6f5; border-radius: 999px; padding: 5px 9px; }
.store-review-board { display: grid; grid-template-columns: minmax(320px, 1.1fr) minmax(280px, .9fr); gap: 12px; align-items: stretch; }
.store-review-main, .store-review-side { border: 1px solid #dce7e3; border-radius: 8px; background: linear-gradient(180deg, #ffffff 0%, #fbfdfc 100%); padding: 14px; box-shadow: 0 6px 16px rgba(15,23,42,.04); }
.store-review-title { font-size: 18px; font-weight: 900; color: #172033; margin-bottom: 7px; }
.store-review-score { display: flex; align-items: baseline; gap: 10px; margin: 8px 0 10px; }
.store-review-score strong { font-size: 36px; line-height: 1; color: #0f4f4a; }
.store-review-score span { color: var(--muted); font-size: 13px; }
.store-review-score.bad strong { color: #8f2d21; }
.store-review-score.warn strong { color: #765b34; }
.store-review-points { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 7px; margin-top: 10px; }
.store-review-point { border: 1px solid #edf1f5; border-radius: 7px; background: #fff; padding: 8px; min-width: 0; }
.store-review-point span { display: block; color: var(--muted); font-size: 11px; }
.store-review-point strong { display: block; margin-top: 3px; color: #172033; overflow-wrap: anywhere; }
.store-review-actions { display: grid; gap: 8px; margin-top: 9px; }
.store-review-action { border: 1px solid #edf1f5; border-radius: 8px; background: #fbfcfd; padding: 9px; color: #0b5f59; font-size: 13px; line-height: 1.45; font-weight: 700; }
.store-source-strip { display: flex; gap: 7px; flex-wrap: wrap; align-items: center; border: 1px dashed #c7d8d4; border-radius: 8px; background: #f8fbfa; padding: 9px 10px; color: #475569; font-size: 12px; }
.store-source-strip span { display: inline-flex; border: 1px solid #dce8e6; background: #fff; border-radius: 999px; padding: 3px 8px; font-weight: 800; }
.store-history-panel { border: 1px solid var(--line); border-radius: 8px; background: #fff; margin: 14px 0 18px; overflow: hidden; box-shadow: 0 1px 2px rgba(15,23,42,.04); }
.store-history-head { display: flex; justify-content: space-between; gap: 12px; align-items: flex-start; flex-wrap: wrap; padding: 13px 14px; border-bottom: 1px solid var(--line); background: #fbfcfd; }
.store-history-title { color: #172033; font-size: 16px; font-weight: 900; }
.store-history-meta { color: var(--muted); font-size: 12px; line-height: 1.5; margin-top: 3px; }
.store-history-scroll { max-height: 620px; overflow: auto; padding: 10px 12px 12px; scrollbar-gutter: stable; }
.store-history-scroll table { min-width: 980px; }
.store-history-scroll th { position: sticky; top: 0; z-index: 2; background: #e8f4f2; box-shadow: inset 0 -1px var(--line); }
.store-history-filter { display: flex; gap: 8px; flex-wrap: wrap; align-items: end; padding: 12px 14px 0; }
.store-history-filter label { display: grid; gap: 4px; color: var(--muted); font-size: 12px; font-weight: 800; }
.store-history-filter select { min-width: 128px; }
.store-history-quick { display: flex; gap: 7px; flex-wrap: wrap; padding: 9px 14px 0; }
.store-history-chip { display: inline-flex; align-items: center; min-height: 26px; padding: 4px 9px; border-radius: 999px; border: 1px solid #dce8e6; background: #fbfcfd; color: #36524b; text-decoration: none; font-size: 12px; font-weight: 900; }
.store-history-chip.active { background: #008f84; color: #fff; border-color: #008f84; }
.store-history-foot { padding: 0 14px 14px; display: grid; gap: 9px; }
.mini-bars { display: flex; align-items: flex-end; gap: 4px; height: 88px; padding: 10px 8px 4px; border: 1px solid #e5edf2; border-radius: 8px; background: #fbfcfd; overflow-x: auto; }
.mini-bar { min-width: 16px; border-radius: 4px 4px 0 0; background: #008f84; position: relative; }
.mini-bar.weekend { background: #b7791f; }
.mini-bar span { position: absolute; bottom: -16px; left: 50%; transform: translateX(-50%); color: var(--muted); font-size: 9px; white-space: nowrap; }
.enterprise-map { display: grid; grid-template-columns: repeat(5, minmax(160px, 1fr)); gap: 10px; margin: 16px 0 20px; }
.enterprise-lane { border: 1px solid #dce8e6; background: linear-gradient(180deg, #ffffff 0%, #f8fbfa 100%); border-radius: 8px; padding: 13px; min-height: 150px; }
.enterprise-lane .lane-kicker { color: #008f84; font-size: 12px; font-weight: 900; margin-bottom: 6px; }
.enterprise-lane .lane-title { font-size: 16px; font-weight: 900; color: #172033; margin-bottom: 6px; }
.enterprise-lane .lane-meta { color: var(--muted); font-size: 12px; line-height: 1.5; min-height: 52px; }
.enterprise-lane .lane-links { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 10px; }
.enterprise-lane .lane-links a { color: #0b5f59; text-decoration: none; background: #eef6f5; border: 1px solid #cce3df; border-radius: 999px; padding: 4px 8px; font-size: 12px; font-weight: 800; }
.command-strip { display: grid; grid-template-columns: 1.2fr 1fr 1fr; gap: 12px; margin: 16px 0; }
.command-card { border: 1px solid var(--line); border-radius: 8px; background: #fff; padding: 14px; }
.command-card.important { border-left: 4px solid var(--accent); }
.command-card .command-title { font-size: 14px; font-weight: 900; margin-bottom: 7px; }
.command-card .command-value { font-size: 24px; font-weight: 900; color: #0f4f4a; }
.command-card .command-list { margin: 8px 0 0; padding-left: 18px; color: var(--muted); font-size: 13px; line-height: 1.6; }
.home-hero { display: grid; grid-template-columns: minmax(360px, .9fr) minmax(0, 1.1fr); gap: 14px; align-items: stretch; margin: 0 0 16px; }
.home-hero-main { border: 1px solid #d7e5e1; border-left: 4px solid #008f84; border-radius: 8px; background: #fff; padding: 16px; box-shadow: 0 6px 18px rgba(15,23,42,.05); }
.home-hero-title { color: #172033; font-size: 20px; font-weight: 900; line-height: 1.35; margin-bottom: 8px; }
.home-hero-note { color: var(--muted); font-size: 13px; line-height: 1.55; }
.home-hero-actions { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 14px; }
.home-status-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 9px; }
.home-status-card { border: 1px solid #e5edf2; border-radius: 8px; background: #fbfcfd; padding: 11px; min-width: 0; }
.home-status-card strong { display: block; color: #0f4f4a; font-size: 22px; line-height: 1.15; margin-top: 4px; overflow-wrap: anywhere; }
.home-status-card span { color: var(--muted); font-size: 12px; }
.home-command-grid { display: grid; grid-template-columns: repeat(3, minmax(260px, 1fr)); gap: 12px; margin: 14px 0 18px; align-items: stretch; }
.home-panel { border: 1px solid var(--line); border-radius: 8px; background: #fff; padding: 14px; box-shadow: 0 1px 2px rgba(15,23,42,.04); }
.home-panel-head { display: flex; justify-content: space-between; align-items: baseline; gap: 10px; margin-bottom: 10px; }
.home-panel-title { color: #172033; font-size: 16px; font-weight: 900; }
.home-panel-meta { color: var(--muted); font-size: 12px; white-space: nowrap; }
.home-rank-list, .home-action-list { display: grid; gap: 7px; }
.home-rank-item { display: grid; grid-template-columns: 28px minmax(0, 1fr) auto; gap: 8px; align-items: center; border: 1px solid #edf1f5; border-radius: 8px; padding: 8px; background: #fbfcfd; text-decoration: none; }
.home-rank-no { width: 24px; height: 24px; border-radius: 999px; display: grid; place-items: center; background: #e8f3f1; color: #0b5f59; font-size: 12px; font-weight: 900; }
.home-rank-store { color: #172033; font-size: 13px; font-weight: 900; line-height: 1.35; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.home-rank-meta { color: var(--muted); font-size: 11px; margin-top: 2px; line-height: 1.35; }
.home-rank-value { color: #0f4f4a; font-size: 13px; font-weight: 900; white-space: nowrap; text-align: right; }
.home-rank-item.low .home-rank-no { background: #fff7d6; color: #854d0e; }
.home-rank-item.low .home-rank-value { color: #854d0e; }
.home-region-item { display: grid; grid-template-columns: 28px minmax(0, 1fr) auto; gap: 8px; align-items: center; padding: 8px; border: 1px solid #edf1f5; border-radius: 8px; background: #fbfcfd; }
.home-alert-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(270px, 1fr)); gap: 10px; margin: 12px 0 18px; }
.home-alert-card { border: 1px solid #e5edf2; border-left: 4px solid #b7791f; border-radius: 8px; background: #fff; padding: 12px; display: grid; gap: 7px; }
.home-alert-card.high { border-left-color: #b42318; }
.home-alert-title { color: #172033; font-size: 14px; font-weight: 900; }
.home-alert-meta { color: var(--muted); font-size: 12px; line-height: 1.45; }
.home-alert-action { color: #0b5f59; background: #f0fdfa; border: 1px solid #cce3df; border-radius: 8px; padding: 8px; font-size: 12px; line-height: 1.5; }
.home-module-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(210px, 1fr)); gap: 10px; margin: 12px 0 18px; }
.home-module-card { display: grid; gap: 7px; min-height: 122px; border: 1px solid var(--line); border-radius: 8px; background: #fff; padding: 13px; text-decoration: none; box-shadow: 0 1px 2px rgba(15,23,42,.04); }
.home-module-card:hover { border-color: #9fd6ce; background: #f8fcfb; }
.home-module-title { color: #172033; font-weight: 900; }
.home-module-meta { color: var(--muted); font-size: 12px; line-height: 1.45; }
.home-module-tag { justify-self: start; border-radius: 999px; border: 1px solid #dce8e6; background: #fbfcfd; color: #475569; padding: 3px 8px; font-size: 11px; font-weight: 900; }
.home-source-row { display: grid; grid-template-columns: repeat(auto-fit, minmax(230px, 1fr)); gap: 10px; margin: 12px 0 0; }
.home-source-card { border: 1px solid #dce8e6; border-radius: 8px; background: #fbfcfd; padding: 12px; }
.home-source-card strong { display: block; color: #172033; margin-bottom: 4px; }
.home-source-card span { color: var(--muted); font-size: 12px; line-height: 1.45; }
.operations-tabs { margin: 10px 0 14px; }
.operations-entry-grid { display:grid; grid-template-columns: repeat(2, minmax(280px, 1fr)); gap: 14px; margin: 14px 0 18px; }
.operations-entry-card { display:grid; gap: 10px; min-height: 210px; border:1px solid #dce8e6; border-radius: 10px; background:#fff; padding:18px; text-decoration:none; box-shadow: 0 6px 18px rgba(15,23,42,.05); }
.operations-entry-card.primary { border-left:5px solid #008f84; background: linear-gradient(180deg, #ffffff 0%, #f4fbf9 100%); }
.operations-entry-card:hover { border-color:#9fd6ce; transform: translateY(-1px); }
.operations-entry-kicker { color:#008f84; font-size:12px; font-weight:900; }
.operations-entry-title { color:#172033; font-size:24px; line-height:1.2; font-weight:950; }
.operations-entry-card p { color:#475569; line-height:1.65; margin:0; }
.operations-entry-meta { align-self:end; color:#0b5f59; background:#eef6f5; border:1px solid #cce3df; border-radius:999px; padding:6px 10px; font-size:12px; font-weight:900; justify-self:start; }
.operations-two-column { display:grid; grid-template-columns: minmax(0, 1.35fr) minmax(360px, .65fr); gap: 14px; align-items:start; }
.operation-task-grid { display:grid; grid-template-columns: repeat(auto-fit, minmax(310px, 1fr)); gap: 12px; margin: 12px 0 18px; }
.operation-task-card { border:1px solid #dce8e6; border-left:4px solid #b7791f; border-radius:10px; background:#fff; padding:13px; display:grid; gap:9px; box-shadow: 0 2px 8px rgba(15,23,42,.04); }
.operation-task-card.high { border-left-color:#b42318; background:#fffafa; }
.operation-task-card.medium { border-left-color:#b7791f; background:#fffdf7; }
.operation-task-head { display:flex; justify-content:space-between; gap:10px; align-items:flex-start; }
.operation-task-store { color:#0b5f59; font-size:15px; font-weight:950; text-decoration:none; }
.operation-task-basis { color:#475569; font-size:12px; line-height:1.5; background:#fbfcfd; border:1px solid #edf1f5; border-radius:8px; padding:8px; }
.operation-action-mini { margin:0; padding-left:18px; color:#172033; font-size:12px; line-height:1.6; }
.operation-task-foot { display:flex; gap:8px; align-items:center; flex-wrap:wrap; justify-content:space-between; }
.operations-trend-grid { display:grid; grid-template-columns: repeat(3, minmax(220px, 1fr)); gap:12px; margin:12px 0 16px; }
.operations-sparkline { width:100%; height:74px; margin-top:8px; background:linear-gradient(180deg,#fbfcfd 0%,#fff 100%); border:1px solid #edf1f5; border-radius:8px; padding:6px; }
.operations-sparkline polyline { fill:none; stroke-width:2.2; stroke-linecap:round; stroke-linejoin:round; opacity:.72; }
@media (max-width: 980px) {
  .operations-entry-grid, .operations-two-column, .operations-trend-grid { grid-template-columns: 1fr; }
}
.mobile-body { background: #eef3f2; color: var(--text); }
.mobile-app { max-width: 520px; min-height: 100vh; margin: 0 auto; background: #f6f8fa; box-shadow: 0 0 0 1px rgba(15,23,42,.06); }
.mobile-top { position: sticky; top: 0; z-index: 10; background: rgba(255,255,255,.96); backdrop-filter: blur(10px); border-bottom: 1px solid var(--line); padding: 12px 14px 10px; }
.mobile-top-kicker { color: #008f84; font-size: 12px; font-weight: 900; margin-bottom: 3px; }
.mobile-top h1 { margin: 0; font-size: 20px; line-height: 1.25; letter-spacing: 0; }
.mobile-top p { margin: 6px 0 0; color: var(--muted); font-size: 12px; line-height: 1.45; }
.mobile-content { padding: 12px 12px calc(112px + env(safe-area-inset-bottom)); scroll-padding-bottom: calc(112px + env(safe-area-inset-bottom)); }
.mobile-hero { border: 1px solid #d7e5e1; border-left: 4px solid #008f84; border-radius: 10px; background: #fff; padding: 13px; margin-bottom: 12px; box-shadow: 0 8px 22px rgba(15,23,42,.05); }
.mobile-hero-title { font-size: 15px; font-weight: 900; color: #172033; line-height: 1.4; }
.mobile-hero-note { color: var(--muted); font-size: 12px; line-height: 1.55; margin-top: 5px; }
.mobile-kpi-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; margin: 10px 0 12px; }
.mobile-kpi { border: 1px solid #e1e8ee; border-radius: 10px; background: #fff; padding: 10px; min-width: 0; }
.mobile-kpi span { display: block; color: var(--muted); font-size: 11px; line-height: 1.3; }
.mobile-kpi strong { display: block; color: #0f4f4a; font-size: 21px; line-height: 1.16; margin-top: 5px; overflow-wrap: anywhere; }
.mobile-section { margin: 16px 0 10px; }
.mobile-section-head { display: flex; justify-content: space-between; align-items: center; gap: 10px; margin-bottom: 8px; }
.mobile-section-title { font-size: 16px; font-weight: 900; color: #172033; }
.mobile-section-link { color: #0b5f59; font-size: 12px; font-weight: 900; text-decoration: none; }
.mobile-list { display: grid; gap: 8px; }
.mobile-store-item { display: grid; grid-template-columns: 28px minmax(0, 1fr) auto; gap: 8px; align-items: center; border: 1px solid #e1e8ee; border-radius: 10px; background: #fff; padding: 10px; text-decoration: none; box-shadow: 0 1px 2px rgba(15,23,42,.03); }
.mobile-store-no { width: 24px; height: 24px; border-radius: 999px; display: grid; place-items: center; background: #e8f3f1; color: #0b5f59; font-size: 12px; font-weight: 900; }
.mobile-store-item.low .mobile-store-no { background: #fff7d6; color: #854d0e; }
.mobile-store-main { min-width: 0; }
.mobile-store-name { color: #172033; font-size: 14px; font-weight: 900; line-height: 1.35; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.mobile-store-meta { color: var(--muted); font-size: 11px; line-height: 1.35; margin-top: 3px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.mobile-store-value { color: #0f4f4a; font-size: 13px; font-weight: 900; white-space: nowrap; text-align: right; }
.mobile-alert { border: 1px solid #e1e8ee; border-left: 4px solid #b7791f; border-radius: 10px; background: #fff; padding: 11px; text-decoration: none; display: grid; gap: 6px; }
.mobile-alert.high { border-left-color: #b42318; }
.mobile-alert-title { color: #172033; font-size: 14px; font-weight: 900; line-height: 1.35; }
.mobile-alert-meta { color: var(--muted); font-size: 12px; line-height: 1.45; }
.mobile-alert-action { color: #0b5f59; background: #f0fdfa; border: 1px solid #cce3df; border-radius: 8px; padding: 8px; font-size: 12px; line-height: 1.45; }
.mobile-actions-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; }
.mobile-action { border: 1px solid #dce8e6; border-radius: 10px; background: #fff; padding: 11px; text-decoration: none; min-height: 88px; display: grid; align-content: start; gap: 5px; }
.mobile-action strong { color: #172033; font-size: 14px; line-height: 1.35; }
.mobile-action span { color: var(--muted); font-size: 11px; line-height: 1.4; }
.mobile-empty { border: 1px dashed #cbd5e1; border-radius: 10px; background: #fff; padding: 13px; color: var(--muted); font-size: 12px; line-height: 1.55; }
.mobile-dashboard { display: grid; gap: 12px; }
.mobile-role-meta { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 9px; }
.mobile-status-pill { display: inline-flex; align-items: center; min-height: 26px; padding: 4px 9px; border-radius: 999px; border: 1px solid #d6e1dd; background: #f7faf9; color: #475569; font-size: 12px; font-weight: 900; }
.mobile-status-pill.good { background: #e7f7ef; color: #166534; border-color: #bbebce; }
.mobile-status-pill.warn { background: #fff7d6; color: #854d0e; border-color: #fde68a; }
.mobile-status-pill.bad { background: #fde0dd; color: #991b1b; border-color: #fecaca; }
.mobile-kpi small { display: block; color: #64748b; font-size: 11px; line-height: 1.35; margin-top: 4px; }
.mobile-module-grid { display: grid; gap: 9px; }
.mobile-module-card { display: grid; grid-template-columns: 40px minmax(0, 1fr); gap: 10px; align-items: start; border: 1px solid #dce8e4; border-radius: 10px; background: #fff; padding: 12px; text-decoration: none; box-shadow: 0 1px 2px rgba(23,41,38,.04); }
.mobile-module-icon { width: 36px; height: 36px; border-radius: 999px; display: grid; place-items: center; background: #e7f4ef; color: #0b5f59; font-size: 14px; font-weight: 950; }
.mobile-module-card.warn .mobile-module-icon { background: #fff7d6; color: #854d0e; }
.mobile-module-card.bad .mobile-module-icon { background: #fde0dd; color: #991b1b; }
.mobile-module-title { color: #172033; font-size: 15px; font-weight: 950; line-height: 1.35; }
.mobile-module-main { display: flex; align-items: baseline; gap: 6px; margin-top: 3px; }
.mobile-module-value { color: #0f4f4a; font-size: 22px; line-height: 1.15; font-weight: 950; overflow-wrap: anywhere; }
.mobile-module-status { color: #64748b; font-size: 12px; font-weight: 900; }
.mobile-module-note { color: #475569; font-size: 12px; line-height: 1.45; margin-top: 5px; }
.mobile-task-list { display: grid; gap: 8px; }
.mobile-task-card { border: 1px solid #dce8e4; border-left: 4px solid #0b8f83; border-radius: 10px; background: #fff; padding: 11px; text-decoration: none; display: grid; gap: 5px; }
.mobile-task-card.warn { border-left-color: #b7791f; }
.mobile-task-card.bad { border-left-color: #b42318; }
.mobile-task-title { color: #172033; font-size: 14px; line-height: 1.35; font-weight: 950; }
.mobile-task-meta { color: #64748b; font-size: 12px; line-height: 1.45; }
.mobile-action-bar { display: grid; grid-template-columns: repeat(auto-fit, minmax(132px, 1fr)); gap: 8px; margin: 10px 0 0; }
.mobile-action-button { min-height: 42px; border-radius: 9px; border: 1px solid #0b8075; background: #008f84; color: #fff; text-decoration: none; display: grid; place-items: center; padding: 8px 10px; font-size: 13px; font-weight: 950; text-align: center; }
.mobile-action-button.secondary { background: #fff; color: #0b5f59; border-color: #cce3df; }
.mobile-source-note { color: #64748b; font-size: 11px; line-height: 1.45; margin-top: 6px; }
.mobile-bottom-nav { position: fixed; left: 50%; bottom: 0; transform: translateX(-50%); z-index: 20; width: min(520px, 100vw); display: grid; grid-template-columns: repeat(5, 1fr); gap: 0; background: rgba(255,255,255,.98); border-top: 1px solid var(--line); box-shadow: 0 -10px 24px rgba(15,23,42,.08); }
.mobile-bottom-nav a { min-height: calc(62px + env(safe-area-inset-bottom)); padding-bottom: env(safe-area-inset-bottom); display: grid; place-items: center; align-content: center; gap: 2px; color: #667085; text-decoration: none; font-size: 12px; font-weight: 800; }
.mobile-bottom-nav a.active { color: #008f84; background: #eefbf8; }
.mobile-bottom-nav b { width: 22px; height: 22px; border-radius: 999px; display: grid; place-items: center; background: #edf3f1; font-size: 12px; line-height: 1; }
.mobile-bottom-nav a.active b { background: #d5f2ea; }
@media (max-width: 380px) {
  .mobile-content { padding-left: 9px; padding-right: 9px; }
  .mobile-kpi strong { font-size: 18px; }
  .mobile-actions-grid { grid-template-columns: 1fr; }
  .mobile-action-bar { grid-template-columns: 1fr; }
}
.store-command-board { display: grid; grid-template-columns: minmax(320px, 1.15fr) minmax(260px, .85fr); gap: 14px; margin: 16px 0; align-items: stretch; }
.store-command-main, .store-command-side { border: 1px solid var(--line); border-radius: 8px; background: #fff; padding: 16px; }
.store-command-main { border-left: 4px solid var(--accent); }
.store-command-title { font-size: 20px; font-weight: 900; margin-bottom: 8px; color: #172033; }
.store-command-meta { display: flex; flex-wrap: wrap; gap: 7px; align-items: center; color: var(--muted); font-size: 12px; margin: 0 0 12px; }
.store-command-meta span { display: inline-flex; align-items: center; min-height: 24px; padding: 3px 8px; border-radius: 999px; border: 1px solid #dce8e6; background: #fbfcfd; font-weight: 800; }
.store-command-score { display: flex; align-items: baseline; gap: 10px; margin: 8px 0; }
.store-command-score strong { font-size: 36px; color: #0f4f4a; line-height: 1; }
.store-command-score span { color: var(--muted); font-size: 13px; }
.store-command-metrics { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 9px; margin: 12px 0; }
.store-command-metric { border: 1px solid #e5edf2; border-radius: 8px; background: #fbfcfd; padding: 10px; min-width: 0; }
.store-command-metric.primary { border-color: #9fd6ce; background: #f0fdfa; }
.store-command-metric .metric-label { color: var(--muted); font-size: 12px; }
.store-command-metric .metric-value { margin-top: 4px; color: #0f4f4a; font-size: 22px; font-weight: 900; overflow-wrap: anywhere; }
.store-command-metric .metric-note { margin-top: 4px; color: var(--muted); font-size: 11px; line-height: 1.35; }
.store-command-chip-strip { display: flex; flex-wrap: wrap; gap: 7px; margin-top: 10px; }
.store-command-chip { display: inline-flex; align-items: center; min-height: 26px; padding: 4px 9px; border-radius: 999px; border: 1px solid #dce8e6; background: #fbfcfd; color: #475569; font-size: 12px; font-weight: 900; }
.store-command-chip.good { background: #ecfdf5; color: #166534; border-color: #bbf7d0; }
.store-command-chip.warn { background: #fff7d6; color: #854d0e; border-color: #fde68a; }
.store-command-chip.bad { background: #fff1f2; color: #9f1239; border-color: #fecdd3; }
.store-command-chip.data { background: #eff6ff; color: #1d4ed8; border-color: #bfdbfe; }
.store-command-section-title { color: #172033; font-size: 14px; font-weight: 900; margin: 2px 0 8px; }
.store-command-link-row { display: flex; flex-wrap: wrap; gap: 7px; margin-top: 10px; }
.store-health-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); gap: 10px; margin: 12px 0; }
.health-card { border: 1px solid #e5edf2; border-radius: 8px; background: #fbfcfd; padding: 11px; }
.health-card .health-label { color: var(--muted); font-size: 12px; }
.health-card .health-value { margin-top: 5px; font-size: 20px; font-weight: 900; color: #0f4f4a; }
.health-card.bad { border-color: #f2b4ad; background: #fff7f6; }
.health-card.warn { border-color: #f4d68b; background: #fffaf0; }
.health-card.good { border-color: #b7e1c1; background: #f4fbf6; }
.store-action-stack { display: grid; gap: 8px; margin-top: 10px; }
.store-action-card { border: 1px solid #e5edf2; border-radius: 8px; padding: 10px; background: #fbfcfd; }
.store-action-card strong { color: #172033; }
.area-section-nav { position: sticky; top: 78px; z-index: 4; display: flex; flex-wrap: wrap; gap: 8px; margin: 4px 0 14px; padding: 8px 0; background: rgba(244,246,248,.94); backdrop-filter: blur(8px); }
.area-section-nav a { display: inline-flex; align-items: center; min-height: 30px; padding: 5px 10px; border-radius: 999px; border: 1px solid #dce8e6; background: #fff; color: #36524b; text-decoration: none; font-size: 12px; font-weight: 900; }
.area-section-nav a:hover { background: #eefbf8; border-color: #b9ddd6; color: #0b5f59; }
#regional-manager-feedback, #area-command, #area-filter, #area-kpis, #focus-stores, #rankings, #area-copy { scroll-margin-top: 112px; }
.area-command-board { display: grid; grid-template-columns: minmax(360px, 1fr) minmax(340px, .9fr) minmax(300px, .75fr); gap: 12px; margin: 12px 0 18px; align-items: stretch; }
.area-command-card { border: 1px solid #dce7e3; border-radius: 8px; background: #fff; padding: 14px; box-shadow: 0 6px 16px rgba(15,23,42,.04); display: grid; gap: 10px; }
.area-command-card.primary { border-left: 4px solid #008f84; background: linear-gradient(180deg, #ffffff 0%, #f7fcfb 100%); }
.area-command-title { color: #172033; font-size: 16px; font-weight: 900; }
.area-command-value { color: #0f4f4a; font-size: 32px; line-height: 1; font-weight: 900; }
.area-command-note { color: var(--muted); font-size: 12px; line-height: 1.55; }
.area-issue-strip { display: flex; flex-wrap: wrap; gap: 7px; }
.area-issue-pill { display: inline-flex; align-items: center; gap: 5px; min-height: 26px; padding: 4px 9px; border-radius: 999px; border: 1px solid #dce8e6; background: #fbfcfd; color: #475569; font-size: 12px; font-weight: 900; }
.area-issue-pill.high { background: #fde0dd; color: #991b1b; border-color: #fecaca; }
.area-issue-pill.medium { background: #fff7d6; color: #854d0e; border-color: #fde68a; }
.area-route-list { display: grid; gap: 7px; }
.area-route-item { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; align-items: center; gap: 8px; border: 1px solid #edf1f5; border-radius: 8px; padding: 8px; background: #fbfcfd; text-decoration: none; }
.area-route-no { width: 24px; height: 24px; border-radius: 999px; display: inline-flex; align-items: center; justify-content: center; background: #eef3f2; color: #334155; font-size: 12px; font-weight: 900; }
.area-route-store { color: #172033; font-size: 13px; font-weight: 900; line-height: 1.35; }
.area-route-meta { color: var(--muted); font-size: 11px; line-height: 1.35; margin-top: 2px; }
.area-route-value { color: #0f4f4a; font-size: 12px; font-weight: 900; text-align: right; white-space: nowrap; }
.area-filter { padding: 10px 12px; margin: 10px 0 12px; }
.area-filter label { display: grid; gap: 5px; color: #475569; font-size: 12px; }
.area-filter select { min-width: 126px; max-width: 210px; }
.area-worklist { display: grid; grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); gap: 12px; margin: 14px 0; }
.area-focus-card { border: 1px solid var(--line); border-radius: 8px; background: #fff; padding: 13px; display: grid; gap: 8px; box-shadow: 0 1px 2px rgba(15, 23, 42, .04); }
.area-focus-card.high { border-left: 4px solid #b42318; }
.area-focus-card.medium { border-left: 4px solid #b7791f; }
.area-focus-card.low { border-left: 4px solid #008f84; }
.area-focus-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 8px; }
.area-focus-store { font-size: 16px; font-weight: 900; color: #172033; text-decoration: none; }
.area-focus-meta { color: var(--muted); font-size: 12px; line-height: 1.45; }
.area-focus-metric { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
.area-focus-metric div { border: 1px solid #edf1f5; background: #fbfcfd; border-radius: 7px; padding: 8px; }
.area-focus-metric span { display: block; color: var(--muted); font-size: 11px; }
.area-focus-metric strong { display: block; color: #0f4f4a; margin-top: 3px; }
.office-collapse { border: 1px solid var(--line); border-radius: 8px; background: #fff; margin: 14px 0 18px; box-shadow: 0 1px 2px rgba(15,23,42,.04); overflow: hidden; }
.office-collapse > summary { cursor: pointer; list-style: none; padding: 13px 14px; color: #172033; font-weight: 900; display: flex; align-items: center; justify-content: space-between; gap: 12px; background: #fbfcfd; }
.office-collapse > summary::-webkit-details-marker { display: none; }
.office-collapse > summary::after { content: "展开"; color: #0b5f59; font-size: 12px; border: 1px solid #cce3df; border-radius: 999px; padding: 3px 8px; background: #eef6f5; }
.office-collapse[open] > summary { border-bottom: 1px solid var(--line); }
.office-collapse[open] > summary::after { content: "收起"; }
.office-collapse-body { padding: 0 14px 14px; }
.office-collapse-body .data-table-wrapper { margin-top: 14px; }
.task-board { display: grid; grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); gap: 12px; margin: 14px 0 18px; }
.task-card { border: 1px solid var(--line); border-radius: 8px; background: #fff; padding: 13px; display: grid; gap: 9px; box-shadow: 0 1px 2px rgba(15, 23, 42, .04); }
.task-card.high { border-left: 4px solid #b42318; }
.task-card.medium { border-left: 4px solid #b7791f; }
.task-card.low { border-left: 4px solid #008f84; }
.task-card-head { display: flex; justify-content: space-between; align-items: flex-start; gap: 8px; }
.task-title { font-size: 15px; font-weight: 900; color: #172033; line-height: 1.35; }
.task-meta { color: var(--muted); font-size: 12px; line-height: 1.55; }
.task-action-box { border: 1px solid #e5edf2; border-radius: 8px; background: #fbfcfd; padding: 10px; color: #0b5f59; font-size: 13px; line-height: 1.55; }
.task-status-actions { display: flex; flex-wrap: wrap; gap: 6px; }
.task-status-actions .button { min-height: 30px; padding: 6px 9px; font-size: 12px; }
.task-closure-strip { display: grid; grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)); gap: 10px; margin: 12px 0; }
.task-closure-step { border: 1px solid #e5edf2; border-radius: 8px; padding: 11px; background: #fbfcfd; }
.task-closure-step strong { display: block; color: #172033; margin-bottom: 4px; }
.task-section-nav { position: sticky; top: 78px; z-index: 4; display: flex; flex-wrap: wrap; gap: 8px; margin: 4px 0 14px; padding: 8px 0; background: rgba(244,246,248,.94); backdrop-filter: blur(8px); }
.task-section-nav a { display: inline-flex; align-items: center; min-height: 30px; padding: 5px 10px; border-radius: 999px; border: 1px solid #dce8e6; background: #fff; color: #36524b; text-decoration: none; font-size: 12px; font-weight: 900; }
.task-section-nav a:hover { background: #eefbf8; border-color: #b9ddd6; color: #0b5f59; }
.topbar.compact-executive + .content .task-section-nav { top: 48px; }
#task-command, #task-high, #task-departments, #task-status, #task-detail, #task-source { scroll-margin-top: 112px; }
.task-command-board { display: grid; grid-template-columns: minmax(340px, .95fr) minmax(380px, 1.2fr) minmax(300px, .85fr); gap: 12px; margin: 12px 0 18px; align-items: stretch; }
.task-command-card { border: 1px solid #dce7e3; border-radius: 8px; background: #fff; padding: 14px; box-shadow: 0 6px 16px rgba(15,23,42,.04); display: grid; gap: 10px; }
.task-command-card.primary { border-left: 4px solid #008f84; background: linear-gradient(180deg, #ffffff 0%, #f7fcfb 100%); }
.task-command-title { color: #172033; font-size: 16px; font-weight: 900; }
.task-command-value { color: #0f4f4a; font-size: 34px; line-height: 1; font-weight: 900; }
.task-command-note { color: var(--muted); font-size: 12px; line-height: 1.55; }
.task-chip-strip { display: flex; flex-wrap: wrap; gap: 7px; }
.task-chip { display: inline-flex; align-items: center; min-height: 26px; padding: 4px 9px; border-radius: 999px; border: 1px solid #dce8e6; background: #fbfcfd; color: #475569; font-size: 12px; font-weight: 900; text-decoration: none; }
.task-chip.high { background: #fde0dd; color: #991b1b; border-color: #fecaca; }
.task-chip.warn { background: #fff7d6; color: #854d0e; border-color: #fde68a; }
.task-chip.good { background: #eefbf8; color: #0b5f59; border-color: #cce3df; }
.task-next-list { display: grid; gap: 7px; }
.task-next-item { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; gap: 8px; align-items: center; border: 1px solid #edf1f5; border-radius: 8px; padding: 8px; background: #fbfcfd; text-decoration: none; }
.task-next-no { width: 24px; height: 24px; border-radius: 999px; display: inline-flex; align-items: center; justify-content: center; background: #e8f3f1; color: #0b5f59; font-size: 12px; font-weight: 900; }
.task-next-title { color: #172033; font-size: 13px; font-weight: 900; line-height: 1.35; overflow-wrap: anywhere; }
.task-next-meta { color: var(--muted); font-size: 11px; line-height: 1.35; margin-top: 2px; }
.task-next-owner { color: #0f4f4a; font-size: 12px; font-weight: 900; text-align: right; white-space: nowrap; }
.task-flow-steps { display: grid; gap: 8px; counter-reset: flow; }
.task-flow-step { position: relative; border: 1px solid #edf1f5; border-radius: 8px; padding: 9px 10px 9px 38px; background: #fbfcfd; color: #475569; font-size: 12px; line-height: 1.45; }
.task-flow-step::before { counter-increment: flow; content: counter(flow); position: absolute; left: 10px; top: 10px; width: 20px; height: 20px; border-radius: 999px; display: inline-flex; align-items: center; justify-content: center; background: #008f84; color: #fff; font-weight: 900; font-size: 11px; }
.task-lane-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 10px; margin: 12px 0 18px; }
.task-lane-card { border: 1px solid #dce8e6; border-radius: 8px; background: #fff; padding: 12px; display: grid; gap: 7px; text-decoration: none; color: inherit; box-shadow: 0 1px 2px rgba(15,23,42,.03); }
.task-lane-card:hover { background: #f8fcfb; border-color: #c9dfdb; }
.task-lane-title { color: #172033; font-weight: 900; line-height: 1.35; }
.task-lane-value { color: #0f4f4a; font-size: 24px; font-weight: 900; line-height: 1; }
.task-lane-meta { color: var(--muted); font-size: 12px; line-height: 1.45; }
.task-status-board { display: grid; grid-template-columns: repeat(auto-fit, minmax(190px, 1fr)); gap: 10px; margin: 12px 0 18px; }
.task-status-card { border: 1px solid #dce8e6; border-radius: 8px; background: #fff; padding: 12px; display: grid; gap: 7px; text-decoration: none; color: inherit; }
.task-status-card.warn { border-left: 4px solid #b7791f; }
.task-status-card.bad { border-left: 4px solid #b42318; }
.task-status-card.good { border-left: 4px solid #008f84; }
.risk-board { display: grid; grid-template-columns: repeat(auto-fit, minmax(310px, 1fr)); gap: 12px; margin: 14px 0 18px; }
.risk-card { border: 1px solid var(--line); border-radius: 8px; background: #fff; padding: 13px; display: grid; gap: 9px; box-shadow: 0 1px 2px rgba(15, 23, 42, .04); }
.risk-card.high { border-left: 4px solid #b42318; }
.risk-card.medium { border-left: 4px solid #b7791f; }
.risk-card.low { border-left: 4px solid #008f84; }
.risk-card-head { display: flex; justify-content: space-between; align-items: flex-start; gap: 8px; }
.risk-title { font-size: 15px; font-weight: 900; color: #172033; line-height: 1.35; }
.risk-subtitle { color: var(--muted); font-size: 12px; line-height: 1.55; }
.risk-metrics { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; }
.risk-metric { border: 1px solid #edf1f5; background: #fbfcfd; border-radius: 7px; padding: 8px; min-width: 0; }
.risk-metric span { display: block; color: var(--muted); font-size: 11px; }
.risk-metric strong { display: block; color: #0f4f4a; margin-top: 3px; overflow-wrap: anywhere; }
.risk-action { border: 1px solid #e5edf2; border-radius: 8px; background: #fbfcfd; padding: 10px; color: #0b5f59; font-size: 13px; line-height: 1.55; }
.alert-section-nav { position: sticky; top: 78px; z-index: 4; display: flex; flex-wrap: wrap; gap: 8px; margin: 4px 0 14px; padding: 8px 0; background: rgba(244,246,248,.94); backdrop-filter: blur(8px); }
.alert-section-nav a { display: inline-flex; align-items: center; min-height: 30px; padding: 5px 10px; border-radius: 999px; border: 1px solid #dce8e6; background: #fff; color: #36524b; text-decoration: none; font-size: 12px; font-weight: 900; }
.alert-section-nav a:hover { background: #eefbf8; border-color: #b9ddd6; color: #0b5f59; }
.topbar.compact-executive + .content .alert-section-nav { top: 48px; }
#alert-command, #alert-cards, #alert-detail, #alert-modules, #alert-rules, #not-ready { scroll-margin-top: 112px; }
.alert-command-board { display: grid; grid-template-columns: minmax(360px, 1fr) minmax(340px, 1fr) minmax(300px, .8fr); gap: 12px; margin: 12px 0 18px; align-items: stretch; }
.alert-command-card { border: 1px solid #dce7e3; border-radius: 8px; background: #fff; padding: 14px; box-shadow: 0 6px 16px rgba(15,23,42,.04); display: grid; gap: 10px; }
.alert-command-card.primary { border-left: 4px solid #b42318; background: linear-gradient(180deg, #ffffff 0%, #fff8f7 100%); }
.alert-command-title { color: #172033; font-size: 16px; font-weight: 900; }
.alert-command-value { color: #991b1b; font-size: 34px; line-height: 1; font-weight: 900; }
.alert-command-note { color: var(--muted); font-size: 12px; line-height: 1.55; }
.alert-chip-strip { display: flex; flex-wrap: wrap; gap: 7px; }
.alert-chip { display: inline-flex; align-items: center; gap: 5px; min-height: 26px; padding: 4px 9px; border-radius: 999px; border: 1px solid #dce8e6; background: #fbfcfd; color: #475569; font-size: 12px; font-weight: 900; }
.alert-chip.high { background: #fde0dd; color: #991b1b; border-color: #fecaca; }
.alert-chip.medium { background: #fff7d6; color: #854d0e; border-color: #fde68a; }
.alert-chip.data { background: #eef2f7; color: #475569; border-color: #dbe3ea; }
.alert-route-list { display: grid; gap: 7px; }
.alert-route-item { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; align-items: center; gap: 8px; border: 1px solid #edf1f5; border-radius: 8px; padding: 8px; background: #fbfcfd; text-decoration: none; }
.alert-route-no { width: 24px; height: 24px; border-radius: 999px; display: inline-flex; align-items: center; justify-content: center; background: #fde0dd; color: #991b1b; font-size: 12px; font-weight: 900; }
.alert-route-title { color: #172033; font-size: 13px; font-weight: 900; line-height: 1.35; }
.alert-route-meta { color: var(--muted); font-size: 11px; line-height: 1.35; margin-top: 2px; }
.alert-route-owner { color: #0f4f4a; font-size: 12px; font-weight: 900; text-align: right; white-space: nowrap; }
.alert-lane-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(210px, 1fr)); gap: 10px; margin: 12px 0 18px; }
.alert-lane-card { border: 1px solid #dce8e6; border-radius: 8px; background: #fff; padding: 12px; display: grid; gap: 7px; }
.alert-lane-card strong { color: #172033; }
.alert-lane-card .value { color: #0f4f4a; font-size: 22px; font-weight: 900; line-height: 1; }
.data-command-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: 12px; margin: 14px 0 18px; }
.data-command-card { border: 1px solid var(--line); border-radius: 8px; background: #fff; padding: 13px; display: grid; gap: 8px; box-shadow: 0 1px 2px rgba(15, 23, 42, .04); }
.data-command-card.bad { border-left: 4px solid #b42318; }
.data-command-card.warn { border-left: 4px solid #b7791f; }
.data-command-card.good { border-left: 4px solid #008f84; }
.data-command-card strong { color: #172033; }
.finance-command-board { display: grid; grid-template-columns: minmax(360px, 1.05fr) minmax(340px, .95fr) minmax(320px, .9fr); gap: 12px; margin: 12px 0 18px; align-items: stretch; }
.finance-command-card { border: 1px solid #dce7e3; border-radius: 8px; background: #fff; padding: 14px; box-shadow: 0 6px 16px rgba(15,23,42,.04); display: grid; gap: 10px; }
.finance-command-card.primary { border-left: 4px solid #008f84; background: linear-gradient(180deg, #ffffff 0%, #f4fbf9 100%); }
.finance-command-card.risk { border-left: 4px solid #b42318; background: linear-gradient(180deg, #ffffff 0%, #fff8f7 100%); }
.finance-command-title { color: #172033; font-size: 16px; font-weight: 900; }
.finance-command-value { color: #0f4f4a; font-size: 34px; line-height: 1; font-weight: 900; }
.finance-command-note { color: var(--muted); font-size: 12px; line-height: 1.55; }
.finance-chip-strip { display: flex; flex-wrap: wrap; gap: 7px; }
.finance-chip { display: inline-flex; align-items: center; gap: 5px; min-height: 26px; padding: 4px 9px; border-radius: 999px; border: 1px solid #dce8e6; background: #fbfcfd; color: #475569; font-size: 12px; font-weight: 900; }
.finance-chip.bad { background: #fde0dd; color: #991b1b; border-color: #fecaca; }
.finance-chip.warn { background: #fff7d6; color: #854d0e; border-color: #fde68a; }
.finance-structure-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(170px, 1fr)); gap: 10px; margin: 12px 0 18px; }
.finance-structure-item { border: 1px solid #edf1f5; border-radius: 8px; background: #fbfcfd; padding: 11px; display: grid; gap: 5px; }
.finance-structure-item span { color: var(--muted); font-size: 12px; }
.finance-structure-item strong { color: #172033; font-size: 18px; line-height: 1.2; }
.finance-structure-item em { color: #0f4f4a; font-size: 12px; font-style: normal; font-weight: 900; }
.finance-analysis-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; margin: 12px 0 18px; }
.finance-comparison-card { border: 1px solid #d9e8e3; border-radius: 10px; background: linear-gradient(180deg, #fff 0%, #f8fbfa 100%); padding: 14px; box-shadow: 0 5px 16px rgba(20,65,58,.04); }
.finance-comparison-card header { display: flex; align-items: baseline; justify-content: space-between; gap: 12px; padding-bottom: 10px; border-bottom: 1px solid #e7efec; }
.finance-comparison-card header strong { color: #17332f; font-size: 16px; }
.finance-comparison-card header span { color: #637872; font-size: 12px; text-align: right; }
.finance-comparison-metrics { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; margin-top: 10px; }
.finance-comparison-metric { min-width: 0; border: 1px solid #e9efed; border-radius: 8px; background: #fff; padding: 9px 10px; }
.finance-comparison-metric span, .finance-comparison-metric small { display: block; color: #6a7c78; font-size: 11px; line-height: 1.45; }
.finance-comparison-metric strong { display: block; margin: 4px 0 2px; color: #17332f; font-size: 17px; font-variant-numeric: tabular-nums; }
.finance-comparison-metric strong.up { color: #0b776d; }
.finance-comparison-metric strong.down { color: #b42318; }
.finance-yoy { display: block; margin-top: 3px; color: #6a7c78; font-size: 11px; font-weight: 800; white-space: nowrap; }
.finance-yoy.up { color: #0b776d; }
.finance-yoy.down { color: #b42318; }
.finance-history-metric-grid { display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 8px; margin: 12px 0 18px; }
.finance-dashboard-trend-panel { padding: 12px 14px 14px; }
.finance-dashboard-trend-panel .finance-history-metric-grid { margin: 0; }
.finance-history-metric-card { position: relative; min-width: 0; overflow: hidden; border: 1px solid #dfe9e5; border-radius: 12px; background: linear-gradient(180deg, #ffffff 0%, #f9fbff 100%); padding: 11px 10px 9px; box-shadow: 0 5px 16px rgba(37,87,150,.05); }
.finance-history-metric-card::before { content: ""; position: absolute; inset: 0 0 auto; height: 4px; background: linear-gradient(90deg, #635bff, #2f7df4); }
.finance-history-metric-card:nth-child(2)::before { background: linear-gradient(90deg, #ff7a75, #f34b6e); }
.finance-history-metric-card:nth-child(3)::before { background: linear-gradient(90deg, #12c9b2, #079a91); }
.finance-history-metric-card:nth-child(4)::before { background: linear-gradient(90deg, #ffb447, #ff812d); }
.finance-history-metric-card:nth-child(5)::before { background: linear-gradient(90deg, #b556ee, #7b45e7); }
.finance-history-metric-card:nth-child(6)::before { background: linear-gradient(90deg, #1bc9df, #2287e8); }
.finance-history-metric-card header { display: flex; align-items: baseline; justify-content: space-between; gap: 8px; }
.finance-history-metric-card header strong { color: #17332f; font-size: 13px; }
.finance-history-metric-card header span { color: #0f6c64; font-size: 12px; font-weight: 900; white-space: nowrap; }
.finance-spark-bars { height: 86px; display: flex; justify-content: space-between; align-items: end; gap: 3px; margin-top: 9px; padding: 8px 5px 0; border-top: 1px solid #edf2f7; overflow: hidden; }
.finance-spark-column { flex: 0 1 7px; width: 7px; min-width: 4px; max-width: 7px; display: flex; flex-direction: column; justify-content: end; height: 76px; }
.finance-spark-column i { display: block; width: 100%; min-height: 4px; border-radius: 999px 999px 3px 3px; background: linear-gradient(180deg, #7468ff 0%, #3978ee 100%); box-shadow: 0 2px 5px rgba(57,120,238,.16); }
.finance-history-metric-card:nth-child(2) .finance-spark-column i { background: linear-gradient(180deg, #ff8f83 0%, #ef4d70 100%); box-shadow-color: rgba(239,77,112,.16); }
.finance-history-metric-card:nth-child(3) .finance-spark-column i { background: linear-gradient(180deg, #31d7c1 0%, #079a91 100%); box-shadow-color: rgba(7,154,145,.16); }
.finance-history-metric-card:nth-child(4) .finance-spark-column i { background: linear-gradient(180deg, #ffc35a 0%, #ff852f 100%); box-shadow-color: rgba(255,133,47,.16); }
.finance-history-metric-card:nth-child(5) .finance-spark-column i { background: linear-gradient(180deg, #c96af0 0%, #7c47e6 100%); box-shadow-color: rgba(124,71,230,.16); }
.finance-history-metric-card:nth-child(6) .finance-spark-column i { background: linear-gradient(180deg, #3ad4df 0%, #2689e8 100%); box-shadow-color: rgba(38,137,232,.16); }
.finance-spark-column.loss i { background: linear-gradient(180deg, #ef8b82, #b42318); }
.finance-spark-column.missing i { background: #dfe7e4; }
.finance-spark-months { display: flex; justify-content: space-between; margin-top: 6px; color: #70817d; font-size: 10px; }
.finance-cost-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(190px, 1fr)); gap: 10px; margin: 12px 0 18px; }
.finance-cost-card { border: 1px solid #e0e9e5; border-radius: 9px; background: #fff; padding: 11px; min-width: 0; }
.finance-cost-card-head { display: flex; justify-content: space-between; gap: 8px; align-items: baseline; }
.finance-cost-card-head strong { color: #17332f; font-size: 13px; }
.finance-cost-card-head span { color: #0f6c64; font-size: 12px; font-weight: 900; }
.finance-cost-card-value { margin: 7px 0; color: #172033; font-size: 18px; font-weight: 900; font-variant-numeric: tabular-nums; }
.finance-cost-track { height: 5px; border-radius: 999px; overflow: hidden; background: #edf2f0; }
.finance-cost-track i { display: block; height: 100%; border-radius: inherit; background: linear-gradient(90deg, #0e857a, #21b6a8); }
.finance-cost-card small { display: block; margin-top: 7px; color: #6a7c78; font-size: 11px; line-height: 1.4; }
.finance-risk-table td:first-child, .finance-risk-table th:first-child { position: sticky; left: 0; background: #fff; z-index: 2; }
.finance-risk-table tbody tr:hover td { background: #f8fbfa; }
.finance-source-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(210px, 1fr)); gap: 10px; margin: 12px 0 18px; }
.finance-source-card { border: 1px solid #dce8e6; border-radius: 8px; background: #fff; padding: 12px; display: grid; gap: 6px; text-decoration: none; color: inherit; }
.finance-source-card.warn { border-left: 4px solid #b7791f; }
.finance-source-card.good { border-left: 4px solid #008f84; }
.finance-source-card strong { color: #172033; }
.finance-source-card .value { color: #0f4f4a; font-size: 22px; font-weight: 900; line-height: 1; }
.finance-workflow-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(230px, 1fr)); gap: 10px; margin: 12px 0 18px; }
.finance-workflow-card { border: 1px solid #dce8e6; border-radius: 8px; background: #fff; padding: 13px; display: grid; gap: 7px; text-decoration: none; color: inherit; box-shadow: 0 1px 2px rgba(15, 23, 42, .04); }
.finance-workflow-card:hover { border-color: #98cfc5; background: #fbfffe; }
.finance-workflow-card strong { color: #172033; font-size: 15px; }
.finance-page-shell { display: grid; gap: 18px; }
.finance-overview-grid { display: grid; grid-template-columns: minmax(420px, 1.35fr) minmax(300px, .8fr); gap: 14px; align-items: stretch; }
.finance-profit-chain { border: 1px solid #d6e5df; border-radius: 10px; background: #fff; padding: 18px; box-shadow: 0 10px 26px rgba(20,65,58,.06); }
.finance-profit-chain-head { display: flex; align-items: end; justify-content: space-between; gap: 16px; margin-bottom: 14px; }
.finance-profit-chain-head strong { color: #17272c; font-size: 17px; }
.finance-ledger-flow { display: grid; grid-template-columns: minmax(0, 1fr) 28px minmax(0, 1fr) 28px minmax(0, 1fr); gap: 8px; align-items: stretch; }
.finance-ledger-group { min-width: 0; overflow: hidden; border: 1px solid #dbe8e3; border-radius: 10px; background: linear-gradient(180deg, #fff 0%, #f8fbfa 100%); }
.finance-ledger-group header { padding: 9px 11px; color: #365750; background: #edf6f3; font-size: 12px; font-weight: 900; letter-spacing: .04em; }
.finance-ledger-pair { display: grid; grid-template-columns: 1fr 1fr; }
.finance-ledger-metric { min-width: 0; padding: 12px 10px; border-right: 1px solid #e6eeeb; }
.finance-ledger-metric:last-child { border-right: 0; }
.finance-ledger-metric span, .finance-ledger-metric small { display: block; color: #6a7c78; font-size: 11px; line-height: 1.4; }
.finance-ledger-metric strong { display: block; margin: 5px 0; color: #17332f; font-size: clamp(14px, 1.22vw, 18px); white-space: nowrap; font-variant-numeric: tabular-nums; }
.finance-ledger-metric.result { background: #f1faf7; }
.finance-ledger-metric.loss { background: #fff3f1; }
.finance-ledger-metric.loss strong { color: #b42318; }
.finance-ledger-group footer { min-height: 42px; padding: 8px 10px; border-top: 1px solid #e6eeeb; color: #365750; font-size: 11px; line-height: 1.4; font-weight: 800; }
.finance-chain-arrow { align-self: center; justify-self: center; color: #79958e; font-size: 24px; font-weight: 900; }
.finance-chain-grid { display: grid; grid-template-columns: repeat(3, minmax(150px, 1fr)); gap: 8px; align-items: stretch; }
.finance-chain-step { position: relative; min-width: 0; padding: 13px 12px; border: 1px solid #e0e9e5; border-radius: 8px; background: #fbfdfc; }
.finance-chain-step.result { background: #f0f9f5; }
.finance-chain-step.loss { background: #fff2f0; }
.finance-chain-label { display: block; min-height: 34px; color: #607077; font-size: 12px; line-height: 1.35; }
.finance-chain-value { display: block; margin-top: 5px; color: #17272c; font-size: clamp(15px, 1.35vw, 18px); line-height: 1.2; font-weight: 900; white-space: nowrap; font-variant-numeric: tabular-nums; }
.finance-side-stack { display: grid; gap: 10px; }
.finance-status-panel { border: 1px solid #d8e5e0; border-radius: 10px; background: #fff; padding: 14px; display: grid; gap: 10px; }
.finance-status-row { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding-bottom: 9px; border-bottom: 1px solid #edf2ef; }
.finance-status-row:last-child { border-bottom: 0; padding-bottom: 0; }
.finance-status-row span { color: #64757a; font-size: 12px; }
.finance-status-row strong { color: #17332f; font-size: 15px; text-align: right; }
.finance-trend-panel { border: 1px solid #d8e5e0; border-radius: 10px; background: #fff; padding: 15px; }
.finance-trend-bars { display: flex; align-items: end; gap: 8px; min-height: 150px; padding-top: 14px; overflow-x: auto; }
.finance-trend-item { min-width: 54px; flex: 1 0 54px; display: grid; gap: 6px; justify-items: center; }
.finance-trend-column { width: 22px; min-height: 4px; border-radius: 6px 6px 2px 2px; background: #1c8b78; }
.finance-trend-column.loss { background: #d05f52; }
.finance-trend-item strong { font-size: 11px; color: #42565b; }
.finance-trend-item span { font-size: 10px; color: #7a898d; white-space: nowrap; }
.finance-compact-table td, .finance-compact-table th { white-space: nowrap; }
.finance-compact-table td:first-child, .finance-compact-table th:first-child { position: sticky; left: 0; z-index: 4; background: #fff; }
.finance-compact-table th:first-child { background: #e5efeb; }
.finance-negative { color: #b42318; font-weight: 900; }
.finance-positive { color: #0f766e; font-weight: 900; }
.finance-import-card { border: 1px solid #d4e4de; border-radius: 10px; background: #fff; padding: 18px; box-shadow: 0 10px 26px rgba(20,65,58,.055); }
.finance-import-grid { display: grid; grid-template-columns: minmax(220px, .8fr) minmax(180px, .55fr) minmax(320px, 1.4fr); gap: 12px; align-items: end; }
.finance-import-grid label { display: grid; gap: 7px; margin: 0; }
.finance-import-help { display: grid; grid-template-columns: repeat(3, 1fr); gap: 10px; margin: 14px 0; }
.finance-import-help article { border: 1px solid #e2ebe7; border-radius: 8px; background: #fbfdfc; padding: 11px; }
.finance-upload-progress { margin-top: 14px; padding: 14px; border: 1px solid #cfe1da; border-radius: 9px; background: #f7fbf9; display: grid; gap: 10px; }
.finance-upload-progress[hidden] { display: none; }
.finance-progress-head { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.finance-progress-track { width: 100%; height: 12px; accent-color: #13745f; }
.finance-upload-stage-strip { display: grid; grid-template-columns: repeat(6, minmax(90px, 1fr)); gap: 6px; margin: 14px 0 10px; counter-reset: upload-stage; }
.finance-upload-stage-strip span { position: relative; min-height: 38px; display: flex; align-items: center; justify-content: center; padding: 7px 9px; border: 1px solid #d7e7e1; border-radius: 8px; background: #f7fbf9; color: #31554e; font-size: 12px; font-weight: 900; text-align: center; }
.finance-upload-stage-strip span::before { counter-increment: upload-stage; content: counter(upload-stage); display: inline-flex; width: 19px; height: 19px; margin-right: 6px; align-items: center; justify-content: center; border-radius: 50%; background: #dcede8; color: #17685b; font-size: 10px; }
.finance-upload-actions { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; }
.finance-progress-stats { display: grid; grid-template-columns: repeat(6, minmax(90px, 1fr)); gap: 8px; }
.finance-progress-stat { border: 1px solid #dbe7e2; border-radius: 8px; background: #fff; padding: 9px; }
.finance-progress-stat span { display: block; color: #6c7b80; font-size: 11px; }
.finance-progress-stat strong { display: block; margin-top: 3px; color: #17332f; font-size: 18px; }
.finance-upload-errors { max-height: 160px; overflow: auto; margin: 0; padding-left: 20px; color: #9f2f27; font-size: 12px; }
.finance-upload-error-groups { display: grid; gap: 8px; }
.finance-upload-error-groups[hidden] { display: none; }
.finance-upload-error-group { display: grid; grid-template-columns: minmax(190px, .8fr) minmax(300px, 1.7fr); gap: 10px; align-items: start; padding: 10px 12px; border: 1px solid #f0d0cc; border-left: 4px solid #c24132; border-radius: 8px; background: #fff8f7; }
.finance-upload-error-group strong { color: #842d24; }
.finance-upload-error-group span { color: #6d4b47; font-size: 12px; overflow-wrap: anywhere; }
.finance-upload-file-table { max-height: 320px; overflow: auto; border: 1px solid #dbe7e2; border-radius: 8px; background: #fff; }
.finance-upload-file-table table { margin: 0; }
.finance-upload-file-table th { position: sticky; top: 0; z-index: 2; }
.finance-global-upload-status { position: fixed; right: 22px; bottom: 22px; z-index: 80; width: min(330px, calc(100vw - 32px)); border: 1px solid #9ed2c7; border-radius: 14px; background: rgba(247,252,250,.98); box-shadow: 0 16px 38px rgba(12,74,65,.2); }
.finance-global-upload-status[hidden] { display: none; }
.finance-global-upload-status a { display: grid; grid-template-columns: 1fr auto; gap: 4px 12px; align-items: center; padding: 12px 14px; color: #173d38; text-decoration: none; }
.finance-global-upload-status strong { font-size: 14px; }
.finance-global-upload-status span { grid-column: 1; color: #53736e; font-size: 12px; }
.finance-global-upload-status b { grid-column: 2; grid-row: 1 / span 2; padding: 7px 10px; border-radius: 999px; background: #0c7b69; color: #fff; font-size: 12px; white-space: nowrap; }
.finance-global-upload-status[data-state="warning"] { border-color: #e5b887; background: rgba(255,249,240,.98); }
.finance-global-upload-status[data-state="warning"] b { background: #a85b14; }
.finance-global-upload-status[data-state="complete"] { border-color: #b8d7c8; }
.finance-checksum { max-width: 300px; overflow-wrap: anywhere; color: #526b65; font-family: ui-monospace, SFMono-Regular, Consolas, monospace; font-size: 11px; }
.finance-profile-head { display: grid; grid-template-columns: minmax(340px, 1fr) minmax(320px, .9fr); gap: 12px; margin: 12px 0 18px; }
.finance-profile-card { border: 1px solid #dce8e6; border-radius: 8px; background: #fff; padding: 14px; display: grid; gap: 10px; box-shadow: 0 1px 2px rgba(15,23,42,.04); }
.finance-profile-title { font-size: 18px; color: #172033; font-weight: 900; }
.finance-spark-card { border: 1px solid #edf1f5; border-radius: 8px; background: #fbfcfd; padding: 10px; display: grid; gap: 6px; }
.finance-spark-card svg { width: 100%; height: 54px; overflow: visible; }
.finance-spark-line { fill: none; stroke: #008f84; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }
.finance-spark-line.warn { stroke: #b7791f; }
.finance-spark-line.bad { stroke: #b42318; }
.finance-tab-strip { display: flex; flex-wrap: wrap; gap: 8px; margin: 10px 0 14px; }
.finance-tab { display: inline-flex; align-items: center; min-height: 30px; padding: 5px 10px; border-radius: 999px; border: 1px solid #dce8e6; background: #fff; color: #36524b; text-decoration: none; font-size: 12px; font-weight: 900; }
.finance-tab.active { background: #008f84; border-color: #008f84; color: #fff; }
.finance-review-summary { display: grid; grid-template-columns: repeat(auto-fit, minmax(170px, 1fr)); gap: 10px; margin: 12px 0 18px; }
.finance-review-card { border: 1px solid #dce8e6; border-radius: 8px; background: #fff; padding: 12px; display: grid; gap: 5px; }
.finance-review-card .value { color: #0f4f4a; font-size: 24px; font-weight: 900; line-height: 1; }
.finance-waterfall { display: grid; grid-template-columns: repeat(auto-fit, minmax(130px, 1fr)); gap: 8px; margin: 12px 0 18px; }
.finance-waterfall-item { border: 1px solid #edf1f5; border-radius: 8px; background: #fff; padding: 10px; display: grid; gap: 6px; min-width: 0; }
.finance-waterfall-item.income { border-left: 4px solid #008f84; }
.finance-waterfall-item.cost { border-left: 4px solid #b7791f; }
.finance-waterfall-item.adjust { border-left: 4px solid #64748b; }
.finance-waterfall-item.result { border-left: 4px solid #b42318; }
.finance-waterfall-item span { color: var(--muted); font-size: 12px; }
.finance-waterfall-item strong { color: #172033; font-size: 16px; line-height: 1.2; overflow-wrap: anywhere; }
.finance-waterfall-track { height: 8px; border-radius: 999px; background: #edf1f5; overflow: hidden; }
.finance-waterfall-fill { height: 100%; border-radius: inherit; background: #008f84; }
.finance-waterfall-item.cost .finance-waterfall-fill { background: #b7791f; }
.finance-waterfall-item.adjust .finance-waterfall-fill { background: #64748b; }
.finance-waterfall-item.result .finance-waterfall-fill { background: #b42318; }
.finance-month-list { display: flex; flex-wrap: wrap; gap: 7px; margin: 10px 0 16px; }
.finance-month-pill { display: inline-flex; align-items: center; min-height: 28px; padding: 4px 9px; border-radius: 999px; border: 1px solid #dce8e6; background: #fff; color: #36524b; text-decoration: none; font-size: 12px; font-weight: 900; }
.finance-month-pill.active { background: #008f84; border-color: #008f84; color: #fff; }

/* Finance pages follow the current blue office-system visual contract. */
.finance-office-theme {
  --finance-navy: #4c48f2;
  --finance-navy-strong: #6739e3;
  --finance-blue: #256ee8;
  --finance-blue-strong: #1d5fcf;
  --finance-cyan: #13b8d7;
  --finance-teal: #10aaa2;
  --finance-gold: #ff9838;
  --finance-coral: #f25c72;
  --finance-plum: #8b43ed;
  --finance-soft: #eef5ff;
  --finance-soft-cyan: #edfaff;
  --finance-line: #d6e3f2;
  --finance-text: #17324d;
  --accent: var(--finance-blue);
  --accent-strong: var(--finance-blue-strong);
  --accent-soft: var(--finance-soft);
  color: #1f3348;
}
body:has(.finance-office-theme) {
  --finance-navy: #4c48f2;
  --finance-navy-strong: #6739e3;
  --finance-blue: #256ee8;
  --finance-cyan: #13b8d7;
  background: radial-gradient(circle at 20% 10%, rgba(139,67,237,.12), transparent 25%), radial-gradient(circle at 84% 8%, rgba(19,184,215,.14), transparent 28%), linear-gradient(180deg, #f4f7ff 0%, #edf7fb 48%, #e7faf5 100%);
}
body:has(.finance-office-theme) .sidebar { background: linear-gradient(180deg, #2d71ed 0%, #218ce5 56%, #10a9bf 100%); border-right-color: rgba(255,255,255,.18); box-shadow: 10px 0 28px rgba(17,109,184,.20); }
body:has(.finance-office-theme) .brand-mark { background: linear-gradient(135deg, #ffffff 0%, #bfeeff 100%); color: #1758bd; box-shadow: 0 8px 18px rgba(10,63,145,.22); }
body:has(.finance-office-theme) .brand-title { color: #ffffff; }
body:has(.finance-office-theme) .brand-subtitle, body:has(.finance-office-theme) .side-section-title { color: #d9ecff; }
body:has(.finance-office-theme) .side-nav a { color: #ffffff; }
body:has(.finance-office-theme) .sidebar details.side-section > summary,
body:has(.finance-office-theme) .sidebar details.side-section > summary::after { color: #d9ecff; }
body:has(.finance-office-theme) .sidebar details.side-subsection > summary,
body:has(.finance-office-theme) .sidebar details.side-subsection > summary::after { color: #ffffff; border-color: rgba(255,255,255,.12); background: rgba(255,255,255,.08); }
body:has(.finance-office-theme) .side-nav a:hover { background: rgba(255,255,255,.13); border-color: rgba(255,255,255,.16); }
body:has(.finance-office-theme) .side-nav a.primary-link { background: #ffffff; color: #185dcc; border-color: rgba(255,255,255,.72); box-shadow: 0 8px 18px rgba(15,60,135,.20); }
body:has(.finance-office-theme) .main-shell { background: linear-gradient(180deg, rgba(255,255,255,.24) 0%, rgba(255,255,255,0) 260px); }
body:has(.finance-office-theme) .topbar { background: linear-gradient(90deg, #ffffff 0%, #f6fbff 58%, #eefff9 100%); border-bottom-color: rgba(37,110,232,.16); box-shadow: 0 8px 24px rgba(37,87,150,.06); }
body:has(.finance-office-theme) .topbar h1 { color: #17324d; }
.finance-office-theme .page-header { position: relative; overflow: hidden; border: 0; border-radius: 16px; color: #f5fbff; background: linear-gradient(118deg, #6939e4 0%, #4d48f4 36%, #237ef0 70%, #20aa9f 100%); box-shadow: 0 16px 34px rgba(77,72,221,.22); }
.finance-office-theme .page-header::before, .finance-office-theme .page-header::after { content: ""; position: absolute; border: 24px solid rgba(255,255,255,.09); border-radius: 50%; pointer-events: none; }
.finance-office-theme .page-header::before { right: 24px; top: -46px; width: 150px; height: 150px; }
.finance-office-theme .page-header::after { right: 76px; top: 11px; width: 78px; height: 78px; border-width: 15px; }
.finance-office-theme .page-header > * { position: relative; z-index: 1; }
.finance-office-theme .page-header-title { color: #ffffff; }
.finance-office-theme .page-header-desc { color: #edf7ff; }
.finance-office-theme .page-meta-item { border-color: rgba(255,255,255,.18); background: rgba(255,255,255,.09); color: #eaf4ff; }
.finance-office-theme .badge { border-color: #d8e6f5; background: #f4f8fd; color: #49637d; }
.finance-office-theme .page-header .button.ghost { border-color: rgba(255,255,255,.32); background: rgba(255,255,255,.10); color: #ffffff; }
.finance-office-theme .page-header .button.ghost:hover { border-color: rgba(255,255,255,.58); background: rgba(255,255,255,.18); color: #ffffff; }
.finance-office-theme button, .finance-office-theme .button { background: linear-gradient(135deg, #6044e9 0%, #2876ef 56%, #10abc2 100%); border-color: #4f55e9; box-shadow: 0 6px 14px rgba(75,78,218,.18); }
.finance-office-theme button:hover, .finance-office-theme .button:hover { background: linear-gradient(135deg, var(--finance-blue-strong) 0%, #0d91c0 100%); border-color: var(--finance-blue-strong); }
.finance-office-theme .button.ghost { background: #f7f7ff; color: #6044dc; border-color: #d1caf3; box-shadow: none; }
.finance-office-theme .button.ghost:hover { background: #eaf3ff; border-color: #9ebce6; color: #174fae; }
.finance-office-theme .filter-bar, .finance-office-theme .kpi-card, .finance-office-theme .finance-profit-chain,
.finance-office-theme .finance-trend-panel, .finance-office-theme .finance-status-panel,
.finance-office-theme .finance-comparison-card, .finance-office-theme .finance-history-metric-card,
.finance-office-theme .finance-cost-card, .finance-office-theme .finance-workflow-card,
.finance-office-theme .finance-command-card, .finance-office-theme .table-panel,
.finance-office-theme .office-collapse { border-color: var(--finance-line); background: #ffffff; box-shadow: 0 4px 16px rgba(37,87,150,.045); }
.finance-office-theme .kpi-card.primary, .finance-office-theme .finance-command-card.primary { border-left-color: var(--finance-blue); background: linear-gradient(180deg, #ffffff 0%, #f3f8ff 100%); }
.finance-office-theme .kpi-value, .finance-office-theme .finance-command-value,
.finance-office-theme .finance-status-row strong, .finance-office-theme .finance-history-metric-card header span,
.finance-office-theme .finance-cost-card-head span, .finance-office-theme .finance-positive { color: var(--finance-blue-strong); }
.finance-office-theme .finance-ledger-group { border-color: #dbe7f4; background: linear-gradient(180deg, #ffffff 0%, #f7faff 100%); }
.finance-office-theme .finance-ledger-group header { color: #315b88; background: #eaf3ff; }
.finance-office-theme .finance-ledger-metric.result { background: #edf6ff; }
.finance-office-theme .finance-ledger-metric strong, .finance-office-theme .finance-comparison-card header strong,
.finance-office-theme .finance-comparison-metric strong, .finance-office-theme .finance-history-metric-card header strong,
.finance-office-theme .finance-cost-card-head strong { color: var(--finance-text); }
.finance-office-theme .finance-chain-arrow { color: var(--finance-blue); }
.finance-office-theme .finance-trend-column, .finance-office-theme .finance-spark-column i,
.finance-office-theme .finance-cost-track i, .finance-office-theme .finance-waterfall-fill {
  background: linear-gradient(180deg, #42bee4 0%, var(--finance-blue) 100%);
}
.finance-office-theme .finance-yoy.up, .finance-office-theme .finance-comparison-metric strong.up { color: var(--finance-blue-strong); }
.finance-office-theme .finance-yoy.down, .finance-office-theme .finance-comparison-metric strong.down,
.finance-office-theme .finance-negative { color: #c43d4e; }
.finance-office-theme .finance-spark-column.loss i, .finance-office-theme .finance-trend-column.loss { background: linear-gradient(180deg, #f18491 0%, #c43d4e 100%); }
.finance-office-theme .finance-spark-column.missing i { background: #dfe7ef; box-shadow: none; }
.finance-office-theme .finance-month-pill, .finance-office-theme .finance-tab { border-color: #bdd2ef; background: #f5f9ff; color: var(--finance-blue-strong); }
.finance-office-theme .finance-month-pill.active, .finance-office-theme .finance-tab.active { border-color: var(--finance-blue); background: var(--finance-blue); color: #ffffff; }
.finance-office-theme .finance-spark-line { stroke: var(--finance-blue); }
.finance-office-theme .finance-progress-track { accent-color: var(--finance-blue); }
.finance-office-theme .finance-source-card.good, .finance-office-theme .finance-waterfall-item.income { border-left-color: var(--finance-blue); }
.finance-office-theme .office-collapse > summary::after { color: var(--finance-blue-strong); border-color: #bdd2ef; background: #edf5ff; }
.finance-office-theme .notice.success { border-left-color: var(--finance-blue); background: #f3f8ff; color: #294c70; }
.finance-office-theme th, .finance-office-theme .data-table th { background: #eaf3ff; color: #294c70; }
.finance-office-theme tr:hover td { background: #f5f9ff; }
.finance-office-theme .table-panel-head { background: #f7faff; border-bottom-color: var(--finance-line); }
.finance-command-center { margin: 14px 0 16px; overflow: hidden; border: 1px solid #cddcf0; border-radius: 14px; background: #ffffff; box-shadow: 0 14px 32px rgba(24,73,137,.10); }
.finance-command-center-head { display: flex; align-items: center; justify-content: space-between; gap: 14px; padding: 12px 16px; color: #ffffff; background: linear-gradient(90deg, #174a91 0%, #256ee8 62%, #13a9d4 100%); }
.finance-command-center-head strong { font-size: 17px; letter-spacing: .02em; }
.finance-command-center-chips { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 7px; }
.finance-command-center-chip { display: inline-flex; align-items: center; min-height: 28px; padding: 4px 10px; border: 1px solid rgba(255,255,255,.28); border-radius: 999px; background: rgba(255,255,255,.13); color: #ffffff; font-size: 12px; font-weight: 900; }
.finance-command-center-chip.formal::before { content: ""; width: 7px; height: 7px; margin-right: 6px; border-radius: 50%; background: #67e4bd; box-shadow: 0 0 0 3px rgba(103,228,189,.18); }
.finance-command-center-metrics { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); }
.finance-executive-metric { position: relative; min-width: 0; padding: 18px 18px 16px; border-right: 1px solid #e1e9f3; background: linear-gradient(180deg, #ffffff 0%, #f9fbff 100%); }
.finance-executive-metric:last-child { border-right: 0; }
.finance-executive-metric::before { content: ""; position: absolute; left: 18px; right: 18px; top: 0; height: 4px; border-radius: 0 0 6px 6px; background: var(--finance-blue); }
.finance-executive-metric.profit::before { background: var(--finance-teal); }
.finance-executive-metric.rate::before { background: var(--finance-plum); }
.finance-executive-metric.loss::before { background: var(--finance-coral); }
.finance-executive-metric span, .finance-executive-metric small { display: block; color: #6b7f95; font-size: 12px; line-height: 1.45; }
.finance-executive-metric strong { display: block; margin: 7px 0 5px; color: #174c9b; font-size: clamp(24px, 2.2vw, 36px); line-height: 1.08; font-variant-numeric: tabular-nums; white-space: nowrap; }
.finance-executive-metric.profit strong { color: #087d6b; }
.finance-executive-metric.rate strong { color: #6552c9; }
.finance-executive-metric.loss strong { color: #c43d4e; }
.finance-ratio-ribbon { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); border-top: 1px solid #e2eaf4; background: #f5f8fd; }
.finance-ratio-item { display: flex; align-items: center; justify-content: space-between; gap: 10px; padding: 10px 16px; border-right: 1px solid #dfe8f3; color: #667c92; font-size: 12px; }
.finance-ratio-item:last-child { border-right: 0; }
.finance-ratio-item strong { font-size: 15px; }
.finance-ratio-item:nth-child(1) strong { color: var(--finance-teal); }
.finance-ratio-item:nth-child(2) strong { color: var(--finance-gold); }
.finance-ratio-item:nth-child(3) strong { color: var(--finance-coral); }
.finance-office-theme .finance-profit-chain { border-top: 4px solid var(--finance-blue); }
.finance-office-theme .finance-trend-panel { border-top: 4px solid var(--finance-cyan); }
.finance-office-theme .finance-status-panel:first-child { border-top: 4px solid var(--finance-teal); }
.finance-office-theme .finance-status-panel:last-child { border-top: 4px solid var(--finance-plum); }
.finance-office-theme .finance-comparison-card:first-child { border-top: 4px solid var(--finance-blue); }
.finance-office-theme .finance-comparison-card:last-child { border-top: 4px solid var(--finance-plum); }
.finance-office-theme .finance-cost-card:nth-child(4n + 1) { border-top: 3px solid var(--finance-blue); }
.finance-office-theme .finance-cost-card:nth-child(4n + 2) { border-top: 3px solid var(--finance-teal); }
.finance-office-theme .finance-cost-card:nth-child(4n + 3) { border-top: 3px solid var(--finance-gold); }
.finance-office-theme .finance-cost-card:nth-child(4n) { border-top: 3px solid var(--finance-plum); }
.finance-section-heading { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.finance-section-heading small { color: #72869a; font-size: 12px; font-weight: 700; }
.finance-risk-queue .finance-workflow-card { border-top-width: 4px; }
.finance-risk-queue .finance-workflow-card:nth-child(1) { border-top-color: var(--finance-coral); background: linear-gradient(180deg, #ffffff 0%, #fff4f5 100%); }
.finance-risk-queue .finance-workflow-card:nth-child(2) { border-top-color: var(--finance-gold); background: linear-gradient(180deg, #ffffff 0%, #fff9e9 100%); }
.finance-risk-queue .finance-workflow-card:nth-child(3) { border-top-color: var(--finance-plum); background: linear-gradient(180deg, #ffffff 0%, #f7f5ff 100%); }
.finance-risk-queue .finance-workflow-card:nth-child(4) { border-top-color: var(--finance-cyan); background: linear-gradient(180deg, #ffffff 0%, #eefbff 100%); }
.finance-office-theme .finance-compact-table th { background: linear-gradient(180deg, #eaf3ff 0%, #dfeeff 100%); }
.finance-office-theme .finance-compact-table tbody tr:nth-child(even) td { background: #fbfdff; }
.finance-office-theme .finance-compact-table tbody tr:hover td { background: #eef6ff; }
/* Scheme C: compact finance operations center. The selected layout is preserved;
   while the complete surface follows the current HR visual system. */
.finance-c-shell { display: grid; gap: 10px; margin: -2px 0 16px; }
.finance-c-toolbar { position: relative; display: flex; align-items: center; justify-content: space-between; gap: 18px; min-height: 108px; padding: 11px 22px; overflow: hidden; border: 0; border-radius: 18px; color: #ffffff; background: linear-gradient(118deg, #6939e4 0%, #4d48f4 36%, #237ef0 70%, #20aa9f 100%); box-shadow: 0 14px 30px rgba(77,72,221,.21); }
.finance-c-toolbar::before, .finance-c-toolbar::after { content: ""; position: absolute; border-radius: 50%; border: 30px solid rgba(255,255,255,.09); pointer-events: none; }
.finance-c-toolbar::before { right: -22px; top: -66px; width: 220px; height: 220px; }
.finance-c-toolbar::after { right: 58px; top: 12px; width: 106px; height: 106px; border-width: 18px; }
.finance-c-toolbar-main, .finance-c-toolbar-actions, .finance-c-toolbar-chips { position: relative; z-index: 1; display: flex; align-items: center; flex-wrap: wrap; gap: 8px; }
.finance-c-toolbar-main { align-items: flex-start; flex-direction: column; max-width: 720px; }
.finance-c-toolbar-title { color: #ffffff; font-size: clamp(26px, 2.6vw, 36px); font-weight: 950; letter-spacing: -.02em; line-height: 1.06; }
.finance-c-toolbar-title::before { content: "FINANCIAL INTELLIGENCE · 正式数据"; display: block; margin-bottom: 7px; color: #d9edff; font-size: 11px; font-weight: 900; letter-spacing: .035em; }
.finance-c-toolbar-main > .small { color: #edf7ff; font-size: 12px; }
.finance-c-toolbar-chip { display: inline-flex; align-items: center; min-height: 28px; padding: 4px 10px; border: 1px solid rgba(255,255,255,.25); border-radius: 999px; background: rgba(255,255,255,.10); color: #ffffff; font-size: 12px; font-weight: 900; }
.finance-c-toolbar-chip.formal { border-color: rgba(127,255,216,.45); background: rgba(29,194,155,.20); color: #e8fff8; }
.finance-c-toolbar-actions .button { border-color: rgba(255,255,255,.54); background: rgba(255,255,255,.94); color: #4c48d8; box-shadow: 0 8px 20px rgba(28,48,135,.18); }
.finance-c-toolbar-actions .button:hover { border-color: #ffffff; background: #ffffff; color: #2357cf; }
.finance-c-toolbar-actions .button.ghost { border-color: rgba(255,255,255,.34); background: rgba(255,255,255,.12); color: #ffffff; }
.finance-c-layout { display: grid; grid-template-columns: 224px minmax(0, 1fr); gap: 10px; align-items: stretch; min-width: 0; }
.finance-c-risk-rail { display: grid; grid-template-rows: repeat(2, minmax(0, 1fr)); gap: 10px; align-self: stretch; }
.finance-c-risk-card, .finance-c-panel, .finance-c-kpi { border: 1px solid #dfe7f2; border-radius: 10px; background: #fff; box-shadow: 0 4px 14px rgba(30,64,115,.05); }
.finance-c-risk-card { position: relative; overflow: hidden; border-top: 4px solid var(--finance-coral); background: linear-gradient(180deg, #ffffff 0%, #fff6f7 100%); }
.finance-c-risk-card.expense { border-top-color: var(--finance-gold); background: linear-gradient(180deg, #ffffff 0%, #fff9ec 100%); }
.finance-c-risk-head { display: flex; align-items: center; justify-content: space-between; gap: 8px; padding: 11px 12px 9px; border-bottom: 1px solid #edf1f7; }
.finance-c-risk-head strong { color: #172b4d; font-size: 14px; }
.finance-c-risk-head b { min-width: 27px; padding: 3px 8px; border-radius: 999px; background: #fff0f1; color: #d63f53; font-size: 12px; text-align: center; }
.finance-c-risk-card.expense .finance-c-risk-head b { background: #fff6df; color: #d18400; }
.finance-c-risk-list { display: grid; gap: 0; padding: 4px 11px 7px; }
.finance-c-risk-row { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 8px; align-items: center; min-height: 31px; border-bottom: 1px dashed #edf1f7; color: #53657d; font-size: 11px; }
.finance-c-risk-row:last-child { border-bottom: 0; }
.finance-c-risk-row span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.finance-c-risk-row strong { color: #d63f53; font-size: 11px; font-variant-numeric: tabular-nums; white-space: nowrap; }
.finance-c-risk-card.expense .finance-c-risk-row strong { color: #d18400; }
.finance-c-risk-empty { padding: 11px; color: #7b8ba0; font-size: 11px; }
.finance-c-main { display: grid; gap: 10px; width: 100%; min-width: 0; align-content: start; }
.finance-c-kpis { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); }
.finance-c-kpi { position: relative; display: grid; grid-template-columns: minmax(0, 1fr) 118px; align-items: end; min-height: 132px; padding: 18px 16px 13px; border-radius: 0; border-right: 0; overflow: hidden; background: linear-gradient(180deg, #ffffff 0%, #f3f7ff 100%); }
.finance-c-kpi:first-child { border-radius: 10px 0 0 10px; }
.finance-c-kpi:last-child { border-right: 1px solid #dfe7f2; border-radius: 0 10px 10px 0; }
.finance-c-kpi::before { content: ""; position: absolute; inset: 0 16px auto; height: 4px; border-radius: 0 0 6px 6px; background: linear-gradient(90deg, #6c3fe4, #2b75ef); }
.finance-c-kpi.profit { background: linear-gradient(180deg, #ffffff 0%, #effbf9 100%); }
.finance-c-kpi.profit::before { background: linear-gradient(90deg, #13b9d8, #10aaa2); }
.finance-c-kpi.rate { background: linear-gradient(180deg, #ffffff 0%, #f8f2ff 100%); }
.finance-c-kpi.rate::before { background: linear-gradient(90deg, #f25c72, #8b43ed); }
.finance-c-kpi-label { display: block; color: #4a5e78; font-size: 13px; font-weight: 900; }
.finance-c-kpi-value { display: block; margin: 8px 0 9px; color: #1f64dc; font-size: clamp(24px, 2vw, 33px); line-height: 1; font-weight: 950; font-variant-numeric: tabular-nums; white-space: nowrap; }
.finance-c-kpi.profit .finance-c-kpi-value { color: #0f927d; }
.finance-c-kpi.rate .finance-c-kpi-value { color: #6d4bd8; }
.finance-c-kpi-delta { display: flex; flex-wrap: wrap; gap: 5px 12px; color: #75869a; font-size: 10px; }
.finance-c-kpi-delta strong { color: #ef4444; }
.finance-c-kpi svg { width: 118px; height: 58px; align-self: end; overflow: visible; }
.finance-c-kpi polyline { fill: none; stroke: #2563eb; stroke-width: 2.3; stroke-linecap: round; stroke-linejoin: round; }
.finance-c-kpi.profit polyline { stroke: #14b8a6; }
.finance-c-kpi.rate polyline { stroke: #7c3aed; }
.finance-c-analytics { display: grid; grid-template-columns: minmax(0, 2fr) minmax(300px, 1fr); gap: 10px; align-items: start; }
.finance-c-side-stack { display: grid; gap: 10px; }
.finance-c-panel { min-width: 0; padding: 12px; }
.finance-c-panel-head { display: flex; align-items: baseline; justify-content: space-between; gap: 10px; margin-bottom: 9px; }
.finance-c-panel-head strong { color: #172b4d; font-size: 14px; }
.finance-c-panel-head span { color: #8492a5; font-size: 10px; }
.finance-c-structure-grid { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 0; min-height: 208px; padding-top: 4px; border-top: 1px solid #edf1f7; }
.finance-c-structure-block { display: grid; min-width: 0; align-content: start; }
.finance-c-structure-block + .finance-c-structure-block { margin-left: 12px; padding-left: 16px; border-left: 1px solid #e7edf6; }
.finance-c-subhead { display: flex; align-items: baseline; justify-content: space-between; gap: 8px; margin-bottom: 2px; color: #233d5d; font-size: 11px; font-weight: 900; }
.finance-c-subhead span { color: #8492a5; font-size: 9px; font-weight: 700; }
.finance-c-profit-structure { display: grid; grid-template-columns: minmax(150px, .9fr) minmax(142px, 1.1fr); gap: 8px; align-items: center; min-height: 208px; }
.finance-c-profit-donut { width: 100%; height: 198px; min-width: 0; }
.finance-c-profit-legend { display: grid; gap: 9px; padding: 4px 3px; }
.finance-c-profit-row { display: grid; grid-template-columns: 10px minmax(0, 1fr) auto; gap: 7px; align-items: center; color: #52657d; font-size: 10px; }
.finance-c-profit-row i { width: 8px; height: 8px; border-radius: 50%; background: var(--finance-chart-color, #2563eb); }
.finance-c-profit-row strong { color: #243b5a; font-size: 10px; font-variant-numeric: tabular-nums; }
.finance-c-trend-chart { width: 100%; height: 208px; border-top: 1px solid #edf1f7; background: linear-gradient(180deg, #fbfdff, #fff); }
.finance-c-trend-grid { stroke: #e8eef6; stroke-width: 1; }
.finance-c-trend-revenue { fill: none; stroke: #2563eb; stroke-width: 2.2; }
.finance-c-trend-profit { fill: none; stroke: #14b8a6; stroke-width: 2.2; }
.finance-c-trend-rate { fill: none; stroke: #f59e0b; stroke-width: 2; }
.finance-c-legend { display: flex; flex-wrap: wrap; gap: 8px 12px; color: #718197; font-size: 10px; }
.finance-c-legend i { display: inline-block; width: 8px; height: 8px; margin-right: 4px; border-radius: 50%; background: #2563eb; }
.finance-c-legend .profit i { background: #14b8a6; }
.finance-c-legend .rate i { background: #f59e0b; }
.finance-c-cost-list { display: grid; gap: 9px; min-height: 208px; padding: 9px 4px 3px; }
.finance-c-cost-summary { display: flex; justify-content: space-between; gap: 10px; color: #718197; font-size: 10px; }
.finance-c-cost-summary strong { color: #203955; font-size: 12px; }
.finance-c-cost-row { display: grid; grid-template-columns: 82px minmax(70px, 1fr) 78px 48px; gap: 8px; align-items: center; color: #52657d; font-size: 10px; }
.finance-c-cost-track { height: 7px; overflow: hidden; border-radius: 999px; background: #edf1f7; }
.finance-c-cost-track i { display: block; height: 100%; border-radius: inherit; background: linear-gradient(90deg, #2563eb, #06b6d4); }
.finance-c-cost-row:nth-child(2n) .finance-c-cost-track i { background: linear-gradient(90deg, #7c3aed, #ec4899); }
.finance-c-cost-row strong { color: #243b5a; text-align: right; font-size: 10px; font-variant-numeric: tabular-nums; }
.finance-c-store-panel { overflow: hidden; padding: 0; }
.finance-c-store-panel .finance-c-panel-head { padding: 12px 14px 8px; margin: 0; }
.finance-c-store-head { display: flex; align-items: flex-end; justify-content: space-between; gap: 14px; flex-wrap: wrap; }
.finance-c-store-title { display: grid; gap: 3px; }
.finance-c-store-head .button { flex: 0 0 auto; }
.finance-c-store-tools { display: flex; align-items: center; justify-content: space-between; gap: 10px; flex-wrap: wrap; padding: 8px 14px; border-top: 1px solid #edf1f7; background: linear-gradient(180deg, #fbfdff, #f6f9ff); }
.finance-c-search { display: flex; align-items: center; gap: 5px; }
.finance-c-search input { width: min(220px, 36vw); min-height: 29px; padding: 5px 9px; border: 1px solid #d3dfef; border-radius: 6px; background: #fff; color: #263e5e; font-size: 11px; }
.finance-c-search input:focus { outline: 2px solid rgba(37,99,235,.16); border-color: #7eaff5; }
.finance-c-search .button { min-height: 29px; padding: 4px 10px; font-size: 10px; }
.finance-c-status-tabs { display: flex; align-items: center; gap: 5px; flex-wrap: wrap; }
.finance-c-status-tab { display: inline-flex; align-items: center; min-height: 25px; padding: 3px 12px; border: 1px solid #dfe7f2; border-radius: 5px; background: #fff; color: #6b7d92; font-size: 10px; font-weight: 850; text-decoration: none; }
.finance-c-status-tab:hover { border-color: #9fc6ff; color: #1d62d5; }
.finance-c-status-tab.active { border-color: #b9d6ff; background: #eef5ff; color: #2563eb; }
.finance-c-status-tab.loss { color: #e24b5d; }
.finance-c-status-tab.profit { color: #0b8f7d; }
.finance-c-status-tab.expense { color: #d48a00; }
.finance-c-status-tab.review { color: #7c3aed; }
.finance-c-status-tab.active.loss { border-color: #ffc8cf; background: #fff1f3; }
.finance-c-status-tab.active.profit { border-color: #afe4d9; background: #effbf8; }
.finance-c-status-tab.active.expense { border-color: #ffe0a3; background: #fff8e8; }
.finance-c-status-tab.active.review { border-color: #dacbff; background: #f5f1ff; }
.finance-c-comparison-panel .finance-analysis-grid { margin: 0; gap: 10px; }
.finance-c-comparison-panel .finance-comparison-card { padding: 10px; }
.finance-c-comparison-panel .finance-comparison-card header { padding-bottom: 7px; }
.finance-c-comparison-panel .finance-comparison-metrics { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 6px; margin-top: 7px; }
.finance-c-comparison-panel .finance-comparison-metric { min-width: 0; padding: 8px; }
.finance-c-comparison-panel .finance-comparison-metric strong { font-size: 14px; }
.finance-c-definition-strip { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; margin-top: 10px; }
.finance-c-definition-strip > div { min-width: 0; padding: 9px 10px; border: 1px solid #e3eaf5; border-radius: 8px; background: linear-gradient(180deg, #fbfdff, #f5f8ff); color: #62738b; font-size: 10px; line-height: 1.6; }
.finance-c-definition-strip strong { color: #253e60; }
.finance-c-store-table { overflow: auto; max-height: clamp(360px, 60vh, 720px); border-top: 1px solid #e8eef6; scrollbar-gutter: stable; }
.finance-c-store-table table { margin: 0; min-width: 1120px; border-collapse: separate; border-spacing: 0; font-size: 10.5px; }
.finance-c-store-table th { padding: 7px 6px; border-bottom: 1px solid #d8e4f4; background: linear-gradient(180deg, #f2f7ff, #e7f0fc); color: #294765; font-size: 10px; font-weight: 900; }
.finance-c-store-table th a { color: inherit; text-decoration: none; white-space: nowrap; }
.finance-c-store-table th a:hover { color: #1f64dc; }
.finance-c-store-table td { padding: 7px 6px; border-bottom: 1px solid #edf2f8; color: #334e6c; line-height: 1.35; font-variant-numeric: tabular-nums; }
.finance-c-store-table tbody tr:nth-child(even) td { background: #f9fbfe; }
.finance-c-store-table tbody tr:hover td { background: #eef6ff; }
.finance-c-store-table .finance-c-group-row th { padding: 5px; border-bottom: 1px solid #cddcf1; background: #dfeafb; color: #45617f; text-align: center; font-size: 9px; letter-spacing: .04em; }
.finance-c-store-table td:first-child, .finance-c-store-table th:first-child { width: 176px; min-width: 176px; max-width: 176px; }
.finance-c-store-link { display: block; max-width: 163px; overflow: hidden; color: #1f5fba; font-size: 11.5px; font-weight: 900; text-decoration: none; text-overflow: ellipsis; white-space: nowrap; }
.finance-c-store-link:hover { color: #12488f; text-decoration: none; }
.finance-c-store-link strong { color: inherit; font-weight: inherit; }
.finance-c-doc-actions { display: flex; align-items: center; gap: 4px; white-space: nowrap; }
.finance-c-doc-actions .button { min-height: 25px; padding: 3px 7px; font-size: 9px; }
.finance-c-store-table td:first-child, .finance-c-store-table th:first-child { position: sticky; left: 0; z-index: 3; background: #fff; box-shadow: 1px 0 0 #e5edf7; }
.finance-c-store-table tbody tr:nth-child(even) td:first-child { background: #f9fbfe; }
.finance-c-store-table tbody tr:hover td:first-child { background: #eef6ff; }
.finance-c-store-table th:first-child { background: #e8f1fd; }
.finance-office-theme .finance-import-card { border-top: 4px solid var(--finance-plum); background: linear-gradient(180deg, #ffffff 0%, #f8f5ff 100%); box-shadow: 0 12px 28px rgba(83,72,193,.09); }
.finance-office-theme .finance-source-card:nth-child(4n + 1), .finance-office-theme .finance-workflow-card:nth-child(4n + 1) { border-top: 3px solid var(--finance-plum); background: linear-gradient(180deg, #ffffff 0%, #f8f5ff 100%); }
.finance-office-theme .finance-source-card:nth-child(4n + 2), .finance-office-theme .finance-workflow-card:nth-child(4n + 2) { border-top: 3px solid var(--finance-cyan); background: linear-gradient(180deg, #ffffff 0%, #effbff 100%); }
.finance-office-theme .finance-source-card:nth-child(4n + 3), .finance-office-theme .finance-workflow-card:nth-child(4n + 3) { border-top: 3px solid var(--finance-coral); background: linear-gradient(180deg, #ffffff 0%, #fff5f6 100%); }
.finance-office-theme .finance-source-card:nth-child(4n), .finance-office-theme .finance-workflow-card:nth-child(4n) { border-top: 3px solid var(--finance-gold); background: linear-gradient(180deg, #ffffff 0%, #fff9ed 100%); }
.hr-command-board { display: grid; grid-template-columns: minmax(360px, 1fr) minmax(340px, .95fr) minmax(320px, .9fr); gap: 12px; margin: 12px 0 18px; align-items: stretch; }
.hr-command-card { border: 1px solid #dce7e3; border-radius: 8px; background: #fff; padding: 14px; box-shadow: 0 6px 16px rgba(15,23,42,.04); display: grid; gap: 10px; }
.hr-command-card.primary { border-left: 4px solid #008f84; background: linear-gradient(180deg, #ffffff 0%, #f4fbf9 100%); }
.hr-command-card.risk { border-left: 4px solid #b42318; background: linear-gradient(180deg, #ffffff 0%, #fff8f7 100%); }
.hr-command-title { color: #172033; font-size: 16px; font-weight: 900; }
.hr-command-value { color: #0f4f4a; font-size: 34px; line-height: 1; font-weight: 900; }
.hr-chip-strip { display: flex; flex-wrap: wrap; gap: 7px; }
.hr-chip { display: inline-flex; align-items: center; gap: 5px; min-height: 26px; padding: 4px 9px; border-radius: 999px; border: 1px solid #dce8e6; background: #fbfcfd; color: #475569; font-size: 12px; font-weight: 900; }
.hr-chip.bad { background: #fde0dd; color: #991b1b; border-color: #fecaca; }
.hr-chip.warn { background: #fff7d6; color: #854d0e; border-color: #fde68a; }
.hr-workflow-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(230px, 1fr)); gap: 10px; margin: 12px 0 18px; }
.hr-workflow-card { border: 1px solid #dce8e6; border-radius: 8px; background: #fff; padding: 13px; display: grid; gap: 7px; text-decoration: none; color: inherit; box-shadow: 0 1px 2px rgba(15, 23, 42, .04); }
.hr-workflow-card:hover { border-color: #98cfc5; background: #fbfffe; }
.hr-workflow-card strong { color: #172033; font-size: 15px; }
.hr-profile-head { display: grid; grid-template-columns: minmax(340px, 1fr) minmax(320px, .9fr); gap: 12px; margin: 12px 0 18px; }
.hr-profile-card { border: 1px solid #dce8e6; border-radius: 8px; background: #fff; padding: 14px; display: grid; gap: 10px; box-shadow: 0 1px 2px rgba(15,23,42,.04); }
.hr-profile-title { font-size: 18px; color: #172033; font-weight: 900; }
.hr-review-summary { display: grid; grid-template-columns: repeat(auto-fit, minmax(170px, 1fr)); gap: 10px; margin: 12px 0 18px; }
.hr-review-card { border: 1px solid #dce8e6; border-radius: 8px; background: #fff; padding: 12px; display: grid; gap: 5px; }
.hr-review-card .value { color: #0f4f4a; font-size: 24px; font-weight: 900; line-height: 1; }
.data-center-nav { position: sticky; top: 78px; z-index: 4; display: flex; flex-wrap: wrap; gap: 8px; margin: 4px 0 14px; padding: 8px 0; background: rgba(244,246,248,.94); backdrop-filter: blur(8px); }
.data-center-nav a { display: inline-flex; align-items: center; min-height: 30px; padding: 5px 10px; border-radius: 999px; border: 1px solid #dce8e6; background: #fff; color: #36524b; text-decoration: none; font-size: 12px; font-weight: 900; }
.data-center-nav a:hover { background: #eefbf8; border-color: #b9ddd6; color: #0b5f59; }
.topbar.compact-executive + .content .data-center-nav { top: 48px; }
#data-command, #file-list, #import-status, #fields, #page-map, #module-map, #unclassified, #quality, #logs, #reparse { scroll-margin-top: 112px; }
.data-control-board { display: grid; grid-template-columns: minmax(360px, 1fr) minmax(320px, .9fr) minmax(300px, .8fr); gap: 12px; margin: 12px 0 18px; align-items: stretch; }
.data-control-card { border: 1px solid #dce7e3; border-radius: 8px; background: #fff; padding: 14px; box-shadow: 0 6px 16px rgba(15,23,42,.04); display: grid; gap: 10px; }
.data-control-card.primary { border-left: 4px solid #008f84; background: linear-gradient(180deg, #ffffff 0%, #f7fcfb 100%); }
.data-control-title { color: #172033; font-size: 16px; font-weight: 900; }
.data-control-value { color: #0f4f4a; font-size: 34px; line-height: 1; font-weight: 900; }
.data-control-note { color: var(--muted); font-size: 12px; line-height: 1.55; }
.data-chip-strip { display: flex; flex-wrap: wrap; gap: 7px; }
.data-chip { display: inline-flex; align-items: center; gap: 5px; min-height: 26px; padding: 4px 9px; border-radius: 999px; border: 1px solid #dce8e6; background: #fbfcfd; color: #475569; font-size: 12px; font-weight: 900; text-decoration: none; }
.data-chip.bad { background: #fde0dd; color: #991b1b; border-color: #fecaca; }
.data-chip.warn { background: #fff7d6; color: #854d0e; border-color: #fde68a; }
.data-chip.good { background: #eefbf8; color: #0b5f59; border-color: #cce3df; }
.data-route-list { display: grid; gap: 7px; }
.data-route-item { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; align-items: center; gap: 8px; border: 1px solid #edf1f5; border-radius: 8px; padding: 8px; background: #fbfcfd; text-decoration: none; }
.data-route-no { width: 24px; height: 24px; border-radius: 999px; display: inline-flex; align-items: center; justify-content: center; background: #eef3f2; color: #334155; font-size: 12px; font-weight: 900; }
.data-route-title { color: #172033; font-size: 13px; font-weight: 900; line-height: 1.35; }
.data-route-meta { color: var(--muted); font-size: 11px; line-height: 1.35; margin-top: 2px; }
.data-route-action { color: #0f4f4a; font-size: 12px; font-weight: 900; text-align: right; white-space: nowrap; }
.report-workbench { display: grid; grid-template-columns: minmax(320px, .9fr) minmax(360px, 1.1fr); gap: 14px; margin: 14px 0 18px; align-items: start; }
.report-panel { border: 1px solid var(--line); border-radius: 8px; background: #fff; padding: 14px; box-shadow: 0 1px 2px rgba(15, 23, 42, .04); }
.report-panel-title { font-size: 17px; font-weight: 900; color: #172033; margin-bottom: 8px; }
.role-chip-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(126px, 1fr)); gap: 8px; margin-top: 10px; }
.role-chip { border: 1px solid #e5edf2; border-radius: 8px; padding: 9px; text-decoration: none; background: #fbfcfd; color: #172033; font-weight: 800; font-size: 13px; }
.role-chip.active { border-color: var(--accent); background: #eefbf8; color: #0b5f59; }
.report-copy-box textarea { width: 100%; box-sizing: border-box; white-space: pre-wrap; border: 1px solid #d7dee8; border-radius: 8px; padding: 16px; font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace; line-height: 1.65; background: #f8fafc; }
.office-closure-panel { border: 1px solid var(--line); border-radius: 8px; background: #fff; padding: 14px; box-shadow: 0 1px 2px rgba(15,23,42,.04); margin: 14px 0; }
.office-closure-panel .panel-title { font-size: 17px; font-weight: 900; color: #172033; margin-bottom: 6px; }
.office-closure-panel .panel-note { color: var(--muted); font-size: 13px; line-height: 1.55; margin-bottom: 10px; }
.office-copy-actions { display: flex; flex-wrap: wrap; gap: 8px; margin: 10px 0; align-items: center; }
.office-copy-status { color: #008f84; font-size: 12px; font-weight: 800; }
.office-handoff-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(170px, 1fr)); gap: 10px; margin: 10px 0; }
.office-handoff-card { border: 1px solid #e5edf2; border-radius: 8px; background: #fbfcfd; padding: 10px; }
.office-handoff-card strong { display: block; color: #172033; margin-bottom: 4px; }
.office-handoff-card span { color: var(--muted); font-size: 12px; line-height: 1.45; display: block; }
.report-source-list { display: grid; gap: 8px; margin-top: 10px; }
.report-source-item { border: 1px solid #edf1f5; border-radius: 7px; padding: 9px; background: #fbfcfd; color: #475569; font-size: 13px; line-height: 1.45; }
.diagnosis-board { display: grid; grid-template-columns: minmax(320px, .95fr) minmax(360px, 1.05fr); gap: 14px; margin: 14px 0 18px; align-items: start; }
.diagnosis-panel { border: 1px solid var(--line); border-radius: 8px; background: #fff; padding: 15px; box-shadow: 0 1px 2px rgba(15, 23, 42, .04); }
.diagnosis-score { display: flex; align-items: baseline; gap: 10px; margin: 8px 0 10px; }
.diagnosis-score strong { font-size: 42px; line-height: 1; color: #0f4f4a; }
.diagnosis-score span { color: var(--muted); font-size: 13px; }
.diagnosis-signal-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(170px, 1fr)); gap: 10px; margin: 12px 0 18px; }
.diagnosis-signal { border: 1px solid #e5edf2; border-radius: 8px; background: #fbfcfd; padding: 11px; }
.diagnosis-signal.bad { border-color: #f2b4ad; background: #fff7f6; }
.diagnosis-signal.warn { border-color: #f4d68b; background: #fffaf0; }
.diagnosis-signal.good { border-color: #b7e1c1; background: #f4fbf6; }
.diagnosis-signal span { color: var(--muted); font-size: 12px; display: block; }
.diagnosis-signal strong { color: #172033; display: block; margin-top: 4px; font-size: 18px; }
.diagnosis-issue-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); gap: 12px; margin: 12px 0 18px; }
.diagnosis-issue-card { border: 1px solid var(--line); border-radius: 8px; background: #fff; padding: 13px; border-left: 4px solid #b7791f; display: grid; gap: 8px; }
.diagnosis-issue-card.bad { border-left-color: #b42318; }
.diagnosis-issue-card.good { border-left-color: #008f84; }
.qa-template-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(210px, 1fr)); gap: 8px; margin: 12px 0 16px; }
.qa-template-card { border: 1px solid #e5edf2; border-radius: 8px; padding: 10px; background: #fbfcfd; color: #172033; text-decoration: none; font-weight: 800; line-height: 1.45; }
.qa-template-card.active { border-color: var(--accent); background: #eefbf8; color: #0b5f59; }
.qa-answer-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(290px, 1fr)); gap: 12px; margin: 12px 0 18px; }
.qa-answer-card { border: 1px solid var(--line); border-radius: 8px; background: #fff; padding: 13px; display: grid; gap: 8px; border-left: 4px solid #008f84; }
.qa-answer-card.warn { border-left-color: #b7791f; }
.qa-answer-rank { font-size: 12px; color: var(--muted); font-weight: 900; }
.compare-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)); gap: 10px; margin: 12px 0; }
.compare-card { border: 1px solid var(--line); border-radius: 8px; background: #fff; padding: 12px; }
.compare-card .compare-title { color: var(--muted); font-size: 12px; }
.compare-card .compare-value { font-size: 22px; font-weight: 900; margin-top: 5px; color: #0f4f4a; }
.mobile-note { border: 1px dashed #b7c9c6; border-radius: 8px; padding: 12px; background: #f8fbfa; color: #475569; line-height: 1.55; }
.level-tag { display: inline-flex; align-items: center; justify-content: center; min-width: 48px; padding: 4px 9px; border-radius: 999px; background: #e7edf3; color: #334155; font-weight: 900; font-size: 12px; border: 1px solid rgba(15,23,42,.08); box-shadow: inset 0 1px rgba(255,255,255,.42); }
.level-tag.s { background: #dc2626; color: #fff; border-color: #b91c1c; }
.level-tag.a { background: #facc15; color: #3f2f00; border-color: #d4a50c; }
.level-tag.b { background: #7dd3fc; color: #075985; border-color: #38bdf8; }
.level-tag.c { background: #64748b; color: #fff; border-color: #475569; }
.level-tag.unrated { background: #f1f5f9; color: #64748b; border-style: dashed; }
.region-tag { display: inline-flex; align-items: center; justify-content: center; gap: 5px; max-width: 142px; padding: 3px 9px; border-radius: 999px; border: 1px solid transparent; font-size: 12px; font-weight: 900; line-height: 1.25; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; vertical-align: middle; background: #f1f5f3; color: #41524b; }
.region-tag::before { content: ""; width: 6px; height: 6px; border-radius: 999px; background: var(--region-dot, #70827a); flex: 0 0 auto; }
.region-tag.region-0 { background: #ecf7f3; color: #285d54; border-color: #d2e9e1; --region-dot: #4b8f7e; }
.region-tag.region-1 { background: #edf4fb; color: #2f526d; border-color: #d6e5f2; --region-dot: #5f88ad; }
.region-tag.region-2 { background: #f3f6e9; color: #56632e; border-color: #e0e9c8; --region-dot: #879a45; }
.region-tag.region-3 { background: #f0f3f8; color: #3c5366; border-color: #dce5ee; --region-dot: #728aa0; }
.region-tag.region-4 { background: #f7f3e9; color: #665c3a; border-color: #e8dfc8; --region-dot: #a09156; }
.region-tag.region-5 { background: #eaf7f8; color: #285e67; border-color: #cfe8eb; --region-dot: #4f94a0; }
.region-tag.region-6 { background: #eef3f8; color: #31546b; border-color: #d7e3ec; --region-dot: #6d92a8; }
.region-tag.region-7 { background: #eff5ee; color: #3e5c43; border-color: #dae8d8; --region-dot: #719678; }
.executive-top-board { display: grid; grid-template-columns: repeat(3, minmax(360px, 1fr)); gap: 14px; margin: 10px 0 20px; align-items: stretch; }
.executive-rank-panel { border: 1px solid #dce7e3; border-radius: 8px; background: linear-gradient(180deg, #ffffff 0%, #fbfdfc 100%); padding: 14px; box-shadow: 0 7px 18px rgba(15, 23, 42, .05); min-width: 0; display: flex; flex-direction: column; }
.executive-rank-panel h3 { margin: 0; font-size: 16px; color: #172033; letter-spacing: 0; }
.executive-rank-panel-note { color: var(--muted); font-size: 12px; margin: 4px 0 11px; line-height: 1.45; }
.executive-mini-rank-list { display: grid; gap: 7px; }
.executive-top-board .executive-mini-rank-list { flex: 1; grid-template-rows: repeat(10, minmax(52px, 1fr)); }
.executive-mini-rank-item { display: grid; grid-template-columns: 30px minmax(0, 1fr) 126px; gap: 9px; align-items: center; padding: 8px 10px; border: 1px solid #edf1f5; border-radius: 8px; background: #fbfcfd; min-height: 52px; }
.executive-mini-rank-item:hover { background: #f5faf9; border-color: #cfe0dd; }
.executive-mini-rank-no { width: 27px; height: 25px; border-radius: 999px; display: inline-flex; align-items: center; justify-content: center; background: #eef3f2; color: #334155; font-size: 12px; font-weight: 900; }
.executive-mini-rank-no.top { background: #edf7ed; color: #2f5d50; }
.executive-mini-rank-no.low { background: #f4f1ea; color: #765b34; }
.executive-mini-rank-main { min-width: 0; }
.executive-mini-rank-main .executive-store-link { display: block; overflow: visible; text-overflow: clip; white-space: normal; line-height: 1.32; font-size: 14px; }
.executive-mini-rank-meta { display: flex; align-items: center; gap: 5px; flex-wrap: wrap; margin-top: 4px; }
.executive-mini-rank-value { text-align: right; font-weight: 900; color: #0f4f4a; font-variant-numeric: tabular-nums; white-space: nowrap; font-size: 14px; }
.executive-mini-rank-sub { color: var(--muted); font-size: 11px; margin-top: 3px; white-space: normal; line-height: 1.35; font-weight: 700; }
.executive-rank-panel-foot { margin-top: auto; padding-top: 9px; color: var(--muted); font-size: 12px; border-top: 1px dashed #dce8e6; line-height: 1.45; }
.executive-rank-panel-foot strong { color: #172033; }
.executive-region-rank-list { display: grid; gap: 8px; flex: 1; min-height: 0; }
.executive-region-rank-item { display: grid; grid-template-columns: 28px minmax(0, 1fr) 58px; gap: 7px 8px; align-items: center; padding: 9px; border: 1px solid #edf1f5; border-radius: 8px; background: #fbfcfd; min-height: 68px; }
.executive-region-rank-head { display: flex; align-items: center; gap: 7px; min-width: 0; }
.region-rank-link { text-decoration: none; display: inline-flex; max-width: 150px; }
.region-rank-link:hover .region-tag { filter: saturate(1.08); border-color: #a8c5bf; }
.executive-region-store-count { color: var(--muted); font-size: 11px; font-weight: 800; white-space: nowrap; }
.executive-region-rank-score { text-align: right; color: #0f4f4a; font-size: 19px; font-weight: 900; line-height: 1; font-variant-numeric: tabular-nums; }
.executive-region-rank-score span { display: block; color: var(--muted); font-size: 10px; font-weight: 700; margin-top: 3px; }
.executive-region-rank-metrics { grid-column: 2 / 4; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 5px; min-width: 0; }
.executive-region-rank-metric { border: 1px solid #edf1f5; border-radius: 6px; background: #fff; padding: 5px 6px; min-width: 0; }
.executive-region-rank-metric span { display: block; color: var(--muted); font-size: 10px; line-height: 1.2; white-space: nowrap; }
.executive-region-rank-metric strong { display: block; color: #172033; font-size: 11px; line-height: 1.25; margin-top: 2px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.executive-region-score-bar { grid-column: 2 / 4; height: 5px; border-radius: 999px; background: #edf2f1; overflow: hidden; margin-top: -1px; }
.executive-region-score-bar span { display: block; height: 100%; border-radius: inherit; background: #8db8a5; }
.executive-section-nav { position: sticky; top: 78px; z-index: 6; display: flex; flex-wrap: nowrap; gap: 8px; margin: 4px 0 14px; padding: 8px 0 10px; background: rgba(244,246,248,.94); backdrop-filter: blur(8px); overflow-x: auto; scrollbar-gutter: stable; }
.executive-section-nav a { display: inline-flex; align-items: center; min-height: 30px; padding: 5px 10px; border-radius: 999px; border: 1px solid #dce8e6; background: #fff; color: #36524b; text-decoration: none; font-size: 12px; font-weight: 900; }
.executive-section-nav a:hover { background: #eefbf8; border-color: #b9ddd6; color: #0b5f59; }
.executive-section-nav::-webkit-scrollbar { height: 6px; }
.executive-section-nav::-webkit-scrollbar-thumb { background: #b8c9c4; border-radius: 999px; }
.executive-section-nav a { flex: 0 0 auto; white-space: nowrap; }
.executive-context-bar { position: relative; top: auto; z-index: 2; display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 12px; align-items: center; margin: 0 0 14px; padding: 10px 12px; border: 1px solid #d7e5e2; border-radius: 8px; background: rgba(255,255,255,.96); box-shadow: 0 6px 18px rgba(15,23,42,.06); }
.executive-context-main { min-width: 0; display: grid; gap: 4px; }
.executive-context-title { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; color: #172033; font-weight: 900; }
.executive-context-meta { display: flex; gap: 6px; flex-wrap: wrap; color: var(--muted); font-size: 12px; }
.executive-context-meta span { display: inline-flex; align-items: center; min-height: 22px; padding: 2px 7px; border: 1px solid #e2e8f0; border-radius: 999px; background: #f8fafc; }
.executive-context-actions { display: flex; gap: 7px; flex-wrap: wrap; justify-content: flex-end; }
.attention-summary-line { display: flex; gap: 8px; flex-wrap: wrap; align-items: center; margin: 8px 0 12px; color: #475569; font-size: 12px; }
.attention-summary-line span { display: inline-flex; align-items: center; min-height: 25px; padding: 3px 9px; border: 1px solid #dce8e6; border-radius: 999px; background: #fbfcfd; font-weight: 900; }
.attention-summary-line .high { background: #fde0dd; color: #991b1b; border-color: #fecaca; }
.attention-summary-line .medium { background: #fff7d6; color: #854d0e; border-color: #fde68a; }
.attention-summary-line .data { background: #eef2f7; color: #475569; border-color: #dbe3ea; }
#rank-top, #today-attention, #weekly-ai, #level-summary, #store-ranking, #store-detail, #store-command, #store-kpi, #store-trend, #store-signal, #store-action, #store-daily { scroll-margin-top: 150px; }
.level-legend { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; margin: 8px 0 10px; color: var(--muted); font-size: 12px; }
.metric-explain-strip { display: grid; grid-template-columns: repeat(auto-fit, minmax(210px, 1fr)); gap: 8px; margin: 10px 0 12px; }
.metric-explain { border: 1px solid #dce8e6; border-radius: 8px; background: #fbfcfd; padding: 9px 10px; line-height: 1.45; }
.metric-explain strong { display: block; color: #172033; font-size: 13px; margin-bottom: 3px; }
.metric-explain span { color: var(--muted); font-size: 12px; }
.metric-explain-box { border: 1px solid #dce8e6; border-radius: 8px; background: #fbfcfd; padding: 9px 12px; margin: 8px 0 12px; }
.metric-explain-box summary { cursor: pointer; font-weight: 900; color: #172033; }
.metric-explain-box .metric-explain-strip { margin-top: 10px; }
.money-with-note { display: grid; gap: 2px; justify-items: end; }
.money-with-note strong { color: #0f4f4a; font-size: 13px; }
.money-with-note span { color: var(--muted); font-size: 10px; }
.level-summary-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(190px, 1fr)); gap: 10px; margin: 12px 0 18px; }
.level-summary-card { border: 1px solid #dde5ee; background: #fff; border-radius: 8px; padding: 12px; display: flex; flex-direction: column; gap: 8px; box-shadow: 0 6px 16px rgba(15,23,42,.04); }
.level-summary-head { display: flex; align-items: center; justify-content: space-between; gap: 10px; }
.level-summary-main { font-size: 20px; font-weight: 900; color: #0f172a; }
.level-summary-sub { display: grid; grid-template-columns: 1fr 1fr; gap: 6px 10px; font-size: 12px; color: #64748b; }
.level-summary-sub strong { display: block; color: #334155; font-size: 13px; }
.level-detail-table td:first-child, .level-detail-table th:first-child { width: 82px; text-align: center; }
.level-detail-table td.numeric { text-align: right; font-variant-numeric: tabular-nums; }
.level-detail-table .muted-row { color: var(--muted); font-size: 12px; }
.level-tabs { border: 1px solid var(--line); border-radius: 8px; background: #fff; padding: 12px; margin: 10px 0 16px; }
.level-tabs input { position: absolute; opacity: 0; pointer-events: none; }
.level-tab-labels { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 10px; }
.level-tab-labels label { border: 1px solid #d9e4e2; background: #f8fafc; border-radius: 999px; padding: 7px 12px; font-weight: 900; cursor: pointer; color: #334155; }
.level-tab-labels .label-s { background: #fee2e2; color: #991b1b; border-color: #fecaca; }
.level-tab-labels .label-a { background: #fef9c3; color: #713f12; border-color: #fde047; }
.level-tab-labels .label-b { background: #f0f9ff; color: #0369a1; border-color: #bae6fd; }
.level-tab-panel { display: none; }
#level-tab-s:checked ~ .level-tab-labels label[for="level-tab-s"] { background: #dc2626; color: #fff; border-color: #b91c1c; }
#level-tab-a:checked ~ .level-tab-labels label[for="level-tab-a"] { background: #facc15; color: #3f2f00; border-color: #d4a50c; }
#level-tab-b:checked ~ .level-tab-labels label[for="level-tab-b"] { background: #7dd3fc; color: #075985; border-color: #38bdf8; }
#level-tab-s:checked ~ .level-tab-panels .panel-s,
#level-tab-a:checked ~ .level-tab-panels .panel-a,
#level-tab-b:checked ~ .level-tab-panels .panel-b { display: block; }
.turnover-chip { display: inline-flex; align-items: center; justify-content: center; min-width: 52px; padding: 3px 7px; border-radius: 999px; font-weight: 900; font-size: 12px; background: #eef3f2; color: #334155; }
.turnover-chip.good { background: #d8f3dc; color: #166534; }
.turnover-chip.warn { background: #fff1c2; color: #854d0e; }
.turnover-chip.bad { background: #fde0dd; color: #991b1b; }
.turnover-chip.empty { background: #f1f5f9; color: #94a3b8; }
.turnover-trend-cell { padding: 0 !important; min-width: 260px; }
.turnover-trend-grid { position: relative; display: grid; grid-template-columns: repeat(4, minmax(62px, 1fr)); min-height: 58px; overflow: hidden; background: #fff; }
.turnover-trend-slot { position: relative; z-index: 2; display: flex; align-items: center; justify-content: center; padding: 8px 5px; border-right: 1px solid #edf1f5; }
.turnover-trend-slot:last-child { border-right: 0; }
.turnover-trend-svg { position: absolute; inset: 0; width: 100%; height: 100%; z-index: 1; pointer-events: none; overflow: visible; opacity: .42; }
.turnover-trend-svg .spark-line-weekday { stroke-width: 1.65; filter: none; }
.turnover-trend-svg .spark-line-weekend { stroke-width: 1.65; filter: none; }
.turnover-trend-svg .spark-dot { fill: #fff; stroke: currentColor; stroke-width: 1.1; opacity: .68; }
.spark-wrap { display: grid; gap: 3px; margin-top: 4px; }
.spark-row { display: flex; align-items: center; gap: 5px; color: var(--muted); font-size: 10px; }
.spark-row svg { width: 82px; height: 22px; overflow: visible; }
.spark-line-weekday { fill: none; stroke: #008f84; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }
.spark-line-weekend { fill: none; stroke: #b7791f; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }
.spark-dot { fill: #fff; stroke-width: 1.5; }
.store-weekly-board { display: grid; grid-template-columns: minmax(280px, .9fr) minmax(320px, 1.1fr); gap: 12px; align-items: start; }
.store-ai-panel { border: 1px solid var(--line); border-radius: 8px; background: #fff; padding: 13px; }
.store-ai-panel-title { font-size: 16px; font-weight: 900; color: #172033; margin-bottom: 8px; }
.store-ai-list { display: grid; gap: 8px; }
.store-ai-item { border: 1px solid #e5edf2; border-radius: 8px; background: #fbfcfd; padding: 10px; line-height: 1.5; }
.store-ai-item strong { color: #172033; display: block; margin-bottom: 3px; }
.attention-board { display: grid; grid-template-columns: repeat(auto-fit, minmax(360px, 1fr)); gap: 12px; margin: 12px 0 18px; }
.attention-card { position: relative; border: 1px solid #dce7e3; border-radius: 8px; background: linear-gradient(180deg, #ffffff 0%, #fbfdfc 100%); padding: 14px; display: grid; gap: 10px; border-left: 5px solid #9a7a3a; box-shadow: 0 7px 18px rgba(15,23,42,.05); min-height: 230px; }
.attention-card.key { background: linear-gradient(180deg, #ffffff 0%, #f6fbf9 100%); }
.attention-card.high { border-left-color: #b42318; }
.attention-card.medium { border-left-color: #9a7a3a; }
.attention-card.data { border-left-color: #667085; }
.attention-head { display: flex; justify-content: space-between; align-items: flex-start; gap: 10px; }
.attention-priority { display: inline-flex; align-items: center; gap: 5px; width: fit-content; border: 1px solid #d7e5e2; background: #f3f8f6; color: #34544b; border-radius: 999px; padding: 3px 8px; font-size: 11px; font-weight: 900; margin-bottom: 6px; }
.attention-store { font-size: 17px; font-weight: 900; color: #172033; text-decoration: none; line-height: 1.35; }
.attention-meta { color: var(--muted); font-size: 12px; line-height: 1.45; margin-top: 3px; }
.attention-issues { display: flex; flex-wrap: wrap; gap: 6px; }
.attention-issue { display: inline-flex; border-radius: 999px; padding: 4px 8px; background: #f5efd9; color: #765b34; font-size: 12px; font-weight: 900; }
.attention-issue.high { background: #f5e5e1; color: #8f2d21; }
.attention-issue.data { background: #eef2f7; color: #475569; }
.attention-metrics { display: grid; grid-template-columns: repeat(auto-fit, minmax(92px, 1fr)); gap: 7px; }
.attention-metric { border: 1px solid #edf1f5; border-radius: 7px; background: #fbfcfd; padding: 8px; min-width: 0; }
.attention-metric span { color: var(--muted); font-size: 11px; display: block; }
.attention-metric strong { color: #0f4f4a; display: block; margin-top: 3px; overflow-wrap: anywhere; }
.attention-action { border: 1px solid #dce8e6; border-radius: 8px; background: #f7fbfa; padding: 10px; color: #0b5f59; font-size: 13px; line-height: 1.55; font-weight: 700; }
.action-brief { display: grid; gap: 6px; }
.action-brief-main { display: inline-flex; width: fit-content; border-radius: 999px; background: #e8f6f2; color: #0b5f59; padding: 4px 9px; font-weight: 900; }
.action-brief-line { color: #36524b; line-height: 1.45; font-weight: 700; }
.action-brief-line strong { color: #172033; }
.attention-card .actions { margin-top: auto; }
.weekly-ai-section { border: 1px solid #d7e5e2; border-radius: 8px; background: #f8fbfa; padding: 14px; margin: 14px 0 18px; }
.weekly-ai-head { display: flex; justify-content: space-between; gap: 14px; align-items: flex-start; margin-bottom: 10px; }
.weekly-ai-title { font-size: 20px; font-weight: 900; color: #172033; line-height: 1.25; }
.weekly-ai-subtitle { color: var(--muted); line-height: 1.55; margin-top: 4px; }
.weekly-ai-summary { display: flex; gap: 6px; flex-wrap: wrap; justify-content: flex-end; max-width: 520px; }
.weekly-ai-chip { display: inline-flex; align-items: center; gap: 4px; border: 1px solid #d9e6e3; background: #fff; color: #334155; border-radius: 999px; padding: 5px 9px; font-size: 12px; font-weight: 900; }
.weekly-ai-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(310px, 1fr)); gap: 12px; }
.weekly-ai-card { border: 1px solid var(--line); border-radius: 8px; background: #fff; padding: 13px; display: grid; gap: 9px; border-left: 5px solid #008f84; box-shadow: 0 1px 2px rgba(15,23,42,.04); }
.weekly-ai-card.high { border-left-color: #dc2626; }
.weekly-ai-card.medium { border-left-color: #b7791f; }
.weekly-ai-card.good { border-left-color: #008f84; }
.weekly-ai-card.data { border-left-color: #64748b; }
.weekly-ai-card-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 10px; }
.weekly-ai-store { font-size: 16px; font-weight: 900; color: #172033; text-decoration: none; line-height: 1.35; }
.weekly-ai-meta { color: var(--muted); font-size: 12px; line-height: 1.45; margin-top: 3px; }
.weekly-ai-category { display: inline-flex; border-radius: 999px; padding: 4px 8px; background: #eefbf8; color: #0b5f59; font-size: 12px; font-weight: 900; white-space: nowrap; }
.weekly-ai-card.high .weekly-ai-category { background: #fee2e2; color: #991b1b; }
.weekly-ai-card.medium .weekly-ai-category { background: #fff1c2; color: #854d0e; }
.weekly-ai-card.data .weekly-ai-category { background: #eef2f7; color: #475569; }
.weekly-ai-conclusion { color: #172033; font-weight: 900; line-height: 1.55; }
.weekly-ai-basis { color: #475569; line-height: 1.55; font-size: 13px; }
.weekly-ai-action { border: 1px solid #dce8e6; border-radius: 8px; background: #fbfcfd; padding: 9px; color: #0b5f59; line-height: 1.5; font-size: 13px; }
.weekly-ai-metrics { display: grid; grid-template-columns: repeat(auto-fit, minmax(96px, 1fr)); gap: 7px; }
.weekly-ai-metric { border: 1px solid #edf1f5; border-radius: 7px; background: #fbfcfd; padding: 8px; min-width: 0; }
.weekly-ai-metric span { display: block; color: var(--muted); font-size: 11px; }
.weekly-ai-metric strong { display: block; color: #0f4f4a; margin-top: 3px; overflow-wrap: anywhere; }
.web-board { max-width: 1520px; margin: 0 auto; display: grid; gap: 16px; }
.web-board-hero { border: 1px solid #d7e5e2; border-radius: 8px; background: linear-gradient(135deg, #ffffff 0%, #f3fbf8 100%); padding: 18px; display: grid; grid-template-columns: minmax(360px, 1.1fr) minmax(360px, .9fr); gap: 18px; align-items: stretch; }
.web-board-kicker { color: #0b5f59; font-size: 12px; font-weight: 900; letter-spacing: .04em; text-transform: uppercase; }
.web-board-title { font-size: 30px; line-height: 1.15; font-weight: 900; color: #172033; margin: 8px 0; }
.web-board-value { font-size: 44px; line-height: 1; font-weight: 900; color: #0f4f4a; margin: 12px 0 8px; }
.web-board-sub { color: var(--muted); line-height: 1.6; max-width: 780px; }
.web-board-hero-side { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
.web-board-mini { border: 1px solid #dce8e6; border-radius: 8px; background: rgba(255,255,255,.82); padding: 12px; }
.web-board-mini span { display: block; color: var(--muted); font-size: 12px; }
.web-board-mini strong { display: block; color: #172033; font-size: 22px; margin-top: 6px; overflow-wrap: anywhere; }
.web-board-grid { display: grid; grid-template-columns: minmax(420px, 1.05fr) minmax(360px, .95fr); gap: 16px; align-items: start; }
.web-board-panel { border: 1px solid var(--line); border-radius: 8px; background: #fff; padding: 14px; box-shadow: 0 1px 2px rgba(15,23,42,.04); }
.web-board-panel h2 { margin-top: 0; }
.web-board-rank { display: grid; gap: 8px; margin-top: 10px; }
.web-rank-row { display: grid; grid-template-columns: 34px minmax(160px, 1fr) 110px; gap: 10px; align-items: center; padding: 9px; border: 1px solid #edf1f5; border-radius: 8px; background: #fbfcfd; }
.web-rank-index { width: 28px; height: 28px; border-radius: 999px; display: inline-flex; align-items: center; justify-content: center; background: #e7f2ef; color: #0b5f59; font-weight: 900; }
.web-rank-store { font-weight: 900; color: #172033; text-decoration: none; line-height: 1.35; }
.web-rank-meta { color: var(--muted); font-size: 12px; margin-top: 2px; }
.web-rank-value { text-align: right; font-weight: 900; color: #0f4f4a; }
.web-bar-track { grid-column: 2 / 4; height: 8px; border-radius: 999px; background: #edf2f7; overflow: hidden; }
.web-bar-fill { height: 100%; border-radius: inherit; background: linear-gradient(90deg, #008f84, #6ee7dc); }
.web-focus-list { display: grid; gap: 10px; }
.web-focus-card { border: 1px solid #e5edf2; border-left: 5px solid #b7791f; border-radius: 8px; padding: 12px; background: #fff; display: grid; gap: 8px; }
.web-focus-card.high { border-left-color: #dc2626; }
.web-focus-card.data { border-left-color: #64748b; }
.web-focus-head { display: flex; justify-content: space-between; gap: 10px; align-items: flex-start; }
.web-focus-store { color: #172033; text-decoration: none; font-weight: 900; }
.web-focus-action { color: #0b5f59; line-height: 1.5; font-size: 13px; }
.web-board-footer-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); gap: 12px; }
@media (max-width: 980px) {
  .web-board-hero, .web-board-grid, .executive-top-board { grid-template-columns: 1fr; }
  .web-board-hero-side { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .store-review-board { grid-template-columns: 1fr; }
}
@media (max-width: 640px) {
  .web-board-title { font-size: 24px; }
  .web-board-value { font-size: 34px; }
  .web-board-hero-side { grid-template-columns: 1fr; }
  .web-rank-row { grid-template-columns: 34px 1fr; }
  .web-rank-value { text-align: left; grid-column: 2; }
  .web-bar-track { grid-column: 1 / 3; }
}
.cell-bad { background: #fde2e2 !important; color: #8a1f17; }
.cell-warn { background: #fff3c4 !important; color: #7a4a00; }
.cell-good { background: #e7f7ef !important; color: #166534; }
.executive-rank-table tr.selected-store td,
.executive-rank-table tr.selected-store td:nth-child(2),
.executive-rank-table tr.selected-store td:last-child { background: #eefbf8; box-shadow: inset 0 0 0 9999px rgba(15,118,110,.06); }
.sort-link { color: inherit; text-decoration: none; display: inline-flex; align-items: center; gap: 4px; }
.sort-link.active { color: var(--accent-strong); font-weight: 900; }
.row-action { min-width: 72px; max-width: 92px; text-align: center; }
.row-action a { color: var(--accent-strong); font-weight: 700; text-decoration: none; }
.rank-row-actions { display: grid; gap: 5px; justify-items: stretch; }
.rank-row-actions a { display: inline-flex; justify-content: center; align-items: center; min-height: 26px; padding: 4px 7px; border-radius: 6px; background: #eef6f5; color: #0b5f59; border: 1px solid #cce3df; font-size: 11px; font-weight: 900; text-decoration: none; white-space: nowrap; }
.rank-store-meta { display: flex; flex-wrap: wrap; gap: 4px; margin-top: 5px; }
.rank-focus-tag { display: inline-flex; align-items: center; max-width: 78px; border-radius: 999px; padding: 2px 6px; font-size: 10px; line-height: 1.25; font-weight: 900; background: #eef2f7; color: #475569; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.rank-focus-tag.high { background: #f5e5e1; color: #8f2d21; }
.rank-focus-tag.medium { background: #f5efd9; color: #765b34; }
.rank-focus-tag.data { background: #eef2f7; color: #475569; }
.detail-panel { background: var(--panel); border: 1px solid var(--line); border-radius: 8px; padding: 14px; margin: 14px 0; box-shadow: 0 1px 2px rgba(15, 23, 42, .05); }
.detail-head { display: flex; justify-content: space-between; align-items: center; gap: 12px; flex-wrap: wrap; margin-bottom: 10px; }
.detail-title { font-weight: 800; color: #172033; }
.detail-section { border-top: 1px solid var(--line); padding-top: 12px; margin-top: 12px; }
.detail-section:first-of-type { border-top: 0; padding-top: 0; margin-top: 0; }
.detail-section-title { color: var(--accent-strong); font-size: 13px; font-weight: 800; margin-bottom: 8px; }
.detail-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 8px; }
.detail-item { border: 1px solid #edf1f5; background: var(--panel-soft); border-radius: 7px; padding: 8px 10px; min-width: 0; }
.detail-label { color: var(--muted); font-size: 12px; margin-bottom: 4px; }
.detail-value { color: var(--text); font-size: 13px; word-break: break-word; }
.record-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); gap: 12px; margin: 12px 0; }
.record-card { background: var(--panel); border: 1px solid var(--line); border-radius: 8px; padding: 13px; box-shadow: 0 1px 2px rgba(15, 23, 42, .04); }
.record-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 10px; margin-bottom: 10px; }
.record-title { font-weight: 800; color: #172033; line-height: 1.35; }
.record-fields { display: grid; gap: 7px; }
.record-field { display: grid; grid-template-columns: 96px minmax(0, 1fr); gap: 8px; font-size: 13px; }
.record-field span:first-child { color: var(--muted); }
.record-field span:last-child { word-break: break-word; }
.assistant-board { display: grid; grid-template-columns: minmax(260px, 340px) minmax(0, 1fr); gap: 14px; align-items: start; margin: 18px 0; }
.assistant-rail, .assistant-main { background: var(--panel); border: 1px solid var(--line); border-radius: 8px; overflow: hidden; box-shadow: 0 1px 2px rgba(15, 23, 42, .04); }
.assistant-head { padding: 12px 14px; border-bottom: 1px solid var(--line); background: #fbfcfd; }
.assistant-head-title { font-weight: 800; }
.assistant-head-meta { color: var(--muted); font-size: 12px; margin-top: 4px; }
.assistant-list { display: grid; gap: 0; }
.assistant-item { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 10px; align-items: center; padding: 10px 12px; border-bottom: 1px solid var(--line); text-decoration: none; }
.assistant-item:last-child { border-bottom: 0; }
.assistant-item:hover { background: #f8fafc; }
.assistant-item.active { background: #f0fdfa; }
.assistant-item-name { font-weight: 700; min-width: 0; }
.assistant-item-meta { color: var(--muted); font-size: 12px; margin-top: 3px; }
.notice { background: #fff8e7; border: 1px solid #f2d28b; padding: 12px 14px; border-radius: 8px; margin: 14px 0; }
.ok { background: #ecfdf5; border-color: #b7e4c7; }
.danger { background: #fff0f0; border-color: #fecaca; }
input[type=file], input[type=text], input[type=search] { padding: 9px; border: 1px solid #cbd5e1; border-radius: 7px; min-width: 320px; background: white; }
input[type=number], select { padding: 9px; border: 1px solid #cbd5e1; border-radius: 7px; background: white; }
textarea { padding: 9px; border: 1px solid #cbd5e1; border-radius: 7px; background: white; font-family: inherit; }
form { margin: 12px 0; display: flex; gap: 10px; flex-wrap: wrap; align-items: center; }
.stacked { align-items: flex-end; }
.stacked label { display: flex; flex-direction: column; gap: 5px; color: #475569; font-size: 12px; }
.stacked input, .stacked select { min-width: 170px; }
.filter-hint { color: var(--muted); font-size: 11px; line-height: 1.35; }
.actions { display: flex; gap: 8px; flex-wrap: wrap; }
.mini-form { margin: 0; display: grid; grid-template-columns: minmax(120px, 1fr) minmax(180px, 1.5fr) auto; gap: 6px; align-items: center; min-width: 420px; }
.mini-form input, .mini-form textarea, .mini-form select { min-width: 0; width: 100%; box-sizing: border-box; font-size: 12px; }
.mini-form textarea { min-height: 42px; resize: vertical; }
.toolbar { background: var(--panel); border: 1px solid var(--line); border-radius: 8px; padding: 12px; box-shadow: 0 1px 2px rgba(15, 23, 42, .04); }
.view-switcher { display: flex; gap: 8px; flex-wrap: wrap; margin: 10px 0 14px; }
.view-switcher a { text-decoration: none; }
.view-switcher .active { background: var(--accent); color: #fff; border-color: var(--accent); }
.pagination { display: flex; gap: 8px; flex-wrap: wrap; align-items: center; margin: 12px 0; }
.button.disabled { background: #cbd5e1; color: #64748b; cursor: default; }
.button.active { background: var(--accent); color: #fff; border-color: var(--accent); box-shadow: 0 1px 2px rgba(15,23,42,.08); }
.bar-track { min-width: 120px; height: 10px; background: #e5e7eb; border-radius: 999px; overflow: hidden; }
.bar-fill { height: 100%; background: var(--accent); border-radius: 999px; }
.small { color: var(--muted); font-size: 12px; }
.action-list { margin: 6px 0 16px 18px; padding: 0; }
.action-list li { margin: 6px 0; }
.page-header { background: var(--panel); border: 1px solid var(--line); border-radius: 8px; padding: 16px; margin: 0 0 16px; box-shadow: 0 1px 2px rgba(15, 23, 42, .05); }
.page-header-main { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 14px; align-items: start; }
.page-header-title { margin: 0; font-size: 24px; line-height: 1.25; font-weight: 900; color: #172033; }
.page-header-desc { margin: 7px 0 0; color: var(--muted); line-height: 1.55; max-width: 860px; }
.page-header-meta { display: flex; gap: 8px; flex-wrap: wrap; margin-top: 12px; }
.page-meta-item { display: inline-flex; gap: 5px; align-items: center; padding: 5px 8px; border: 1px solid #e1e8ef; border-radius: 999px; background: #f8fafc; font-size: 12px; color: #475569; }
.page-meta-item strong { color: #172033; }
.page-actions { display: flex; gap: 8px; flex-wrap: wrap; justify-content: flex-end; }
.data-source-badge { display: inline-flex; gap: 6px; align-items: center; padding: 5px 8px; border-radius: 999px; border: 1px solid #cfe4e1; background: #eefbf8; color: #0b5f59; font-size: 12px; text-decoration: none; }
.status-pill { display: inline-flex; align-items: center; padding: 2px 7px; border-radius: 999px; background: #e7edf3; color: #334155; font-size: 11px; white-space: nowrap; }
.status-pill.good { background: #d8f3dc; color: #166534; }
.status-pill.warn { background: #fff1c2; color: #854d0e; }
.status-pill.bad { background: #fde0dd; color: #991b1b; }
.kpi-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(190px, 1fr)); gap: 12px; margin: 14px 0 18px; }
.kpi-card { background: var(--panel); border: 1px solid var(--line); border-radius: 8px; padding: 14px; min-height: 126px; box-shadow: 0 1px 2px rgba(15, 23, 42, .04); display: grid; gap: 7px; align-content: start; }
.kpi-card.primary { border-left: 4px solid var(--accent); }
.kpi-title { color: var(--muted); font-size: 13px; }
.kpi-value { color: #0f4f4a; font-size: 28px; font-weight: 900; line-height: 1.12; }
.kpi-note { color: var(--muted); font-size: 12px; line-height: 1.45; }
.finance-store-kpi-grid { grid-template-columns: repeat(8, minmax(0, 1fr)); gap: 8px; }
.finance-store-kpi-grid .kpi-card { min-width: 0; min-height: 116px; padding: 12px 10px; }
.finance-store-kpi-grid .kpi-value { font-size: clamp(19px, 1.55vw, 27px); overflow-wrap: anywhere; }
.finance-store-kpi-grid .kpi-note { font-size: 11px; }
.kpi-change { font-size: 12px; font-weight: 800; color: #475569; }
.kpi-change.good { color: #166534; }
.kpi-change.warn { color: #854d0e; }
.kpi-change.bad { color: #991b1b; }
.alert-panel { background: var(--panel); border: 1px solid var(--line); border-radius: 8px; padding: 14px; margin: 14px 0 18px; box-shadow: 0 1px 2px rgba(15, 23, 42, .05); }
.alert-panel-head { display: flex; justify-content: space-between; gap: 12px; align-items: center; margin-bottom: 10px; }
.alert-panel-title { font-weight: 900; font-size: 16px; }
.alert-list { display: grid; gap: 9px; }
.alert-card { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; gap: 10px; align-items: start; border: 1px solid #e5edf2; border-radius: 8px; padding: 10px; background: #fbfcfd; }
.alert-level { min-width: 42px; text-align: center; padding: 4px 8px; border-radius: 999px; background: #fff1c2; color: #854d0e; font-weight: 900; font-size: 12px; }
.alert-level.high, .alert-level.高 { background: #fde0dd; color: #991b1b; }
.alert-level.low, .alert-level.低 { background: #e7edf3; color: #334155; }
.alert-object { font-weight: 900; }
.alert-detail { color: var(--muted); font-size: 12px; line-height: 1.5; margin-top: 3px; }
.alert-action { color: #0b5f59; font-size: 12px; line-height: 1.45; margin-top: 5px; }
.filter-bar { background: var(--panel); border: 1px solid var(--line); border-radius: 8px; padding: 12px; margin: 12px 0 16px; }
.filter-bar.executive-filter { padding: 13px 14px; margin: 10px 0 14px; border-color: #d6e5df; background: linear-gradient(180deg, #ffffff 0%, #f8fcfa 100%); box-shadow: 0 8px 22px rgba(16,39,40,.05); }
.filter-bar.executive-filter .filter-control input,
.filter-bar.executive-filter .filter-control select { min-width: 126px; max-width: 220px; height: 38px; border: 1px solid #cfded9; border-radius: 8px; background: #ffffff; color: #172033; font-weight: 750; }
.filter-bar.executive-filter .filter-control input[type=search] { min-width: 190px; }
.filter-bar.executive-filter .filter-control span { color: #52655f; font-weight: 900; }
.filter-bar.executive-filter .filter-control input:focus,
.filter-bar.executive-filter .filter-control select:focus { outline: 2px solid rgba(15,118,110,.2); border-color: #7db6aa; }
.filter-bar.executive-filter button[type=submit] { min-height: 38px; padding: 8px 16px; border-radius: 8px; border: 1px solid #0f6b61; background: #0f6b61; color: #fff; font-weight: 900; box-shadow: 0 8px 18px rgba(15,107,97,.16); }
.filter-bar.executive-filter .button.ghost { min-height: 38px; align-items: center; }
.executive-table-command { display: flex; justify-content: space-between; align-items: center; gap: 10px; flex-wrap: wrap; padding: 9px 10px; margin: 8px 10px 0; border: 1px solid #dce8e6; border-radius: 8px; background: #fbfcfd; color: #475569; font-size: 12px; }
.executive-table-command strong { color: #172033; }
.executive-table-command .actions { margin: 0; }
.filter-summary-line { display: flex; align-items: center; gap: 6px; flex-wrap: wrap; margin-bottom: 9px; color: #475569; font-size: 12px; }
.filter-summary-line span { display: inline-flex; align-items: center; min-height: 24px; padding: 3px 8px; border-radius: 999px; background: #f3f7f6; border: 1px solid #dce8e6; font-weight: 800; }
.filter-row { display: flex; gap: 8px; flex-wrap: wrap; align-items: end; }
.filter-control { display: grid; gap: 5px; color: #475569; font-size: 12px; }
.filter-control input, .filter-control select { min-width: 150px; }
.filter-advanced { margin-top: 10px; padding-top: 10px; border-top: 1px solid #edf1f5; }
.data-table-wrapper { background: var(--panel); border: 1px solid #d8e5e1; border-radius: 8px; margin: 14px 0 18px; overflow: hidden; box-shadow: 0 10px 24px rgba(16,39,40,.055); }
.data-table-wrapper-head { display: flex; justify-content: space-between; align-items: center; gap: 12px; padding: 13px 15px; border-bottom: 1px solid #d8e5e1; background: linear-gradient(180deg, #ffffff 0%, #f3faf7 100%); }
.data-table-wrapper-title { font-weight: 900; }
.data-table-wrapper-meta { color: var(--muted); font-size: 12px; margin-top: 3px; }
.data-table-wrapper-body { overflow: auto; padding-bottom: 4px; scrollbar-gutter: stable; overscroll-behavior-x: contain; }
.data-table-wrapper-body::-webkit-scrollbar, .mini-bars::-webkit-scrollbar { height: 10px; width: 10px; }
.data-table-wrapper-body::-webkit-scrollbar-thumb, .mini-bars::-webkit-scrollbar-thumb { background: #b7c9c6; border-radius: 999px; }
.data-table-wrapper-body::-webkit-scrollbar-track, .mini-bars::-webkit-scrollbar-track { background: #eef3f2; border-radius: 999px; }
.table-scroll-tip { position: sticky; left: 0; z-index: 6; display: inline-flex; margin: 8px 10px 6px; padding: 5px 9px; border: 1px solid #dce8e6; border-radius: 999px; background: #fbfcfd; color: var(--muted); font-size: 12px; }
.drawer-panel { border: 1px solid var(--line); border-radius: 8px; background: var(--panel); padding: 14px; margin: 14px 0; box-shadow: 0 1px 2px rgba(15, 23, 42, .05); }
.drawer-section { border-top: 1px solid #edf1f5; padding-top: 12px; margin-top: 12px; }
.drawer-section:first-child { border-top: 0; padding-top: 0; margin-top: 0; }
.drawer-section-title { font-weight: 900; color: #0b5f59; margin-bottom: 7px; }
.empty-state { border: 1px dashed #cbd5e1; border-radius: 8px; background: #f8fafc; padding: 16px; color: #475569; line-height: 1.55; }
.empty-state-title { color: #172033; font-weight: 900; margin-bottom: 5px; }

/* Enterprise restaurant theme polish */
:root {
  --bg: #f3f6f4;
  --panel: #ffffff;
  --panel-soft: #f8faf8;
  --line: #d9e3df;
  --text: #1c2a2f;
  --muted: #64737a;
  --accent: #13745f;
  --accent-strong: #0b574b;
  --accent-soft: #e8f5f0;
  --gold: #c58a22;
  --gold-soft: #fff5d9;
  --coral: #c94f40;
  --coral-soft: #fff0ed;
  --blue: #3679a8;
  --blue-soft: #eaf4fb;
  --plum: #7357a6;
  --plum-soft: #f2eefb;
  --shadow-soft: 0 8px 22px rgba(23, 41, 38, .06);
  --shadow-card: 0 1px 2px rgba(23, 41, 38, .05), 0 10px 24px rgba(23, 41, 38, .04);
}
body { background: linear-gradient(180deg, #f7faf8 0%, var(--bg) 36%, #eef4f1 100%); }
.sidebar { background: linear-gradient(180deg, #113b35 0%, #0d302c 58%, #172f2c 100%); border-right: 1px solid rgba(255,255,255,.08); box-shadow: 10px 0 24px rgba(9,31,28,.10); }
.brand { border-bottom-color: rgba(255,255,255,.16); }
.brand-mark { background: linear-gradient(135deg, #f3c45a 0%, #d49425 100%); color: #17342f; box-shadow: inset 0 0 0 1px rgba(255,255,255,.35); }
.brand-title { color: #fffdf6; }
.brand-subtitle { color: #b8d8d0; }
.side-section-title { color: #9fc7bc; }
.side-nav a { color: #effaf6; border: 1px solid transparent; }
.side-nav a:hover { background: rgba(255,255,255,.10); border-color: rgba(255,255,255,.08); }
.side-nav a.primary-link { background: #f2c45b; color: #14362f; box-shadow: 0 8px 18px rgba(0,0,0,.13); }
.topbar { background: rgba(255,255,255,.94); border-bottom-color: rgba(19, 116, 95, .13); box-shadow: 0 8px 22px rgba(23,41,38,.05); }
.topbar h1, .page-header-title, h2, h3 { color: var(--text); }
.content { background: transparent; }
button, .button { background: var(--accent); border: 1px solid var(--accent); color: #fff; box-shadow: 0 2px 0 rgba(0,0,0,.04); font-weight: 800; }
button:hover, .button:hover { background: var(--accent-strong); border-color: var(--accent-strong); }
.button.secondary, button.secondary { background: #41545a; border-color: #41545a; }
.button.ghost { background: var(--accent-soft); color: var(--accent-strong); border-color: #bddbd2; box-shadow: none; }
.button.ghost:hover { background: #dff1eb; border-color: #a8cec3; color: #083f37; }
.page-header, .card, .card-link, .home-panel, .home-module-card, .home-source-card, .home-status-card,
.executive-rank-panel, .finance-command-card, .hr-command-card, .risk-card, .alert-panel,
.data-table-wrapper, .table-panel, .store-history-panel, .drawer-panel {
  border-color: var(--line);
  box-shadow: var(--shadow-card);
}
.page-header { background: linear-gradient(180deg, #ffffff 0%, #fbfdfb 100%); border-left: 4px solid var(--accent); }
.page-meta-item, .badge { border: 1px solid #d7e5e1; background: #f6faf8; }
.card .value, .card-link .value, .kpi-value, .home-status-card strong, .home-rank-value,
.executive-mini-rank-value, .finance-command-value, .hr-command-value { color: var(--accent-strong); }
.card-link:hover, .home-module-card:hover, .role-card:hover { border-color: #9acdbf; background: #fbfefc; box-shadow: 0 9px 22px rgba(19,116,95,.08); }
.kpi-card.primary, .command-card.important, .store-command-main { border-left-color: var(--accent); }
.kpi-card { background: linear-gradient(180deg, #fff 0%, #fbfdfb 100%); }
.home-hero-main { border-color: #c9dfd8; border-left-color: var(--accent); background: linear-gradient(180deg, #ffffff 0%, #f8fcfa 100%); box-shadow: var(--shadow-card); }
.home-status-card:nth-child(2), .home-panel:nth-child(1) { background: linear-gradient(180deg, #fffdf7 0%, #fff8e6 100%); border-color: #f0d89b; }
.home-status-card:nth-child(4), .home-panel:nth-child(3) { background: linear-gradient(180deg, #ffffff 0%, #eef8f5 100%); border-color: #bddbd2; }
.home-rank-no, .executive-mini-rank-no.top { background: var(--accent-soft); color: var(--accent-strong); }
.home-rank-item.low .home-rank-no, .executive-mini-rank-no.low { background: var(--gold-soft); color: #8a5a09; }
.home-rank-item, .home-region-item, .executive-mini-rank-item, .executive-region-rank-item { background: #ffffff; border-color: #e4ece8; }
.home-rank-item:hover, .executive-mini-rank-item:hover { background: #f7fcfa; border-color: #c8ded8; }
.home-alert-card, .risk-card.medium { background: linear-gradient(180deg, #fff 0%, #fffaf0 100%); border-left-color: var(--gold); }
.home-alert-card.high, .risk-card.high, .finance-command-card.risk, .hr-command-card.risk { background: linear-gradient(180deg, #fff 0%, var(--coral-soft) 100%); border-left-color: var(--coral); }
.home-alert-action, .risk-action, .task-action-box { background: #f4fbf8; border-color: #cde2dc; color: var(--accent-strong); }
.home-module-tag { background: #f5f8f7; border-color: #d8e5e0; color: #52666b; }
.home-module-card:nth-child(1), .home-module-card:nth-child(2), .home-module-card:nth-child(3) { border-top: 3px solid var(--accent); }
.home-module-card:nth-child(4) { border-top: 3px solid var(--blue); }
.home-module-card:nth-child(5) { border-top: 3px solid var(--gold); }
.home-module-card:nth-child(6) { border-top: 3px solid #6ca36f; }
.home-module-card:nth-child(7) { border-top: 3px solid var(--coral); }
.home-module-card:nth-child(8) { border-top: 3px solid var(--plum); }
.home-module-card:nth-child(9), .home-module-card:nth-child(10) { border-top: 3px solid #78909c; }
.executive-rank-panel { background: linear-gradient(180deg, #ffffff 0%, #fbfdfb 100%); }
.executive-top-board .executive-rank-panel:nth-child(1) { border-top: 3px solid var(--accent); }
.executive-top-board .executive-rank-panel:nth-child(2) { border-top: 3px solid var(--gold); }
.executive-top-board .executive-rank-panel:nth-child(3) { border-top: 3px solid var(--blue); }
.executive-rank-panel h3, .home-panel-title, .home-module-title { color: #18272b; }
.executive-rank-panel-foot { border-top-color: #d9e6e1; }
.executive-section-nav a, .area-section-nav a, .task-section-nav a, .alert-section-nav a,
.store-detail-nav a, .store-detail-quick-nav a, .home-source-card a { color: var(--accent-strong); border-color: #c9ded8; background: #f2f8f6; }
.executive-section-nav a:hover, .area-section-nav a:hover, .task-section-nav a:hover, .alert-section-nav a:hover { background: #e7f4ef; }
table { border-color: var(--line); box-shadow: 0 1px 2px rgba(23,41,38,.03); }
th, .data-table th, .store-history-scroll th { background: #eef6f3; color: #1f3438; }
tr:hover td { background: #f7fbfa; }
.data-table thead th:first-child, .executive-rank-table thead th:nth-child(2), .executive-rank-table thead th:last-child { background: #e6f1ed; }
.finance-command-card.primary, .hr-command-card.primary { border-left-color: var(--accent); background: linear-gradient(180deg, #ffffff 0%, #f2faf7 100%); }
.finance-command-card, .hr-command-card { background: linear-gradient(180deg, #ffffff 0%, #fbfdfc 100%); }
.mobile-body { background: linear-gradient(180deg, #edf4f1 0%, #e7efec 100%); }
.mobile-app { background: #f6f8f7; }
.mobile-top { border-bottom-color: #d9e5e1; box-shadow: 0 8px 20px rgba(23,41,38,.05); }
.mobile-kpi, .mobile-store-item, .mobile-action, .mobile-alert, .mobile-hero { border-color: #dce8e4; box-shadow: 0 1px 2px rgba(23,41,38,.04); }
.mobile-bottom-nav a.active { color: var(--accent-strong); background: var(--accent-soft); }

/* Premium office visual layer */
:root {
  --bg: #f5f7f6;
  --panel: #ffffff;
  --panel-soft: #f7faf8;
  --line: #d6dfdb;
  --text: #17262b;
  --muted: #66747a;
  --accent: #0e6b5a;
  --accent-strong: #0a4b42;
  --accent-soft: #e7f3ef;
  --gold: #b9852d;
  --gold-soft: #fff4d8;
  --coral: #b95548;
  --coral-soft: #fff0ee;
  --blue: #386f99;
  --blue-soft: #e9f3fa;
  --plum: #725da0;
  --plum-soft: #f2eff9;
  --shadow-soft: 0 10px 28px rgba(16, 39, 40, .07);
  --shadow-card: 0 1px 0 rgba(255,255,255,.82) inset, 0 1px 2px rgba(16,39,40,.04), 0 14px 30px rgba(16,39,40,.055);
}
body {
  background:
    linear-gradient(180deg, #fbfcfb 0%, #f4f7f5 34%, #eef4f1 100%);
  color: var(--text);
}
.main-shell { background: linear-gradient(180deg, rgba(255,255,255,.20) 0%, rgba(255,255,255,0) 240px); }
.sidebar {
  background: linear-gradient(180deg, #0f2d31 0%, #102a2c 48%, #172b2d 100%);
  border-right: 1px solid rgba(255,255,255,.09);
  box-shadow: 12px 0 34px rgba(9, 31, 31, .15);
}
.brand-mark {
  border-radius: 8px;
  background: linear-gradient(135deg, #f6d06f 0%, #b9852d 100%);
  color: #122c2e;
  box-shadow: 0 8px 18px rgba(0,0,0,.18), inset 0 0 0 1px rgba(255,255,255,.42);
}
.brand-title { color: #fffaf0; font-weight: 900; }
.brand-subtitle { color: #b9d7d1; }
.side-section-title { color: #92bbb3; font-weight: 900; }
.side-nav a {
  border-radius: 8px;
  color: #eaf7f3;
}
.side-nav a:hover {
  background: rgba(255,255,255,.09);
  border-color: rgba(255,255,255,.10);
}
.side-nav a.primary-link {
  background: linear-gradient(135deg, #f3cd68 0%, #c49336 100%);
  color: #132f31;
  box-shadow: 0 10px 24px rgba(0,0,0,.18);
}
.topbar {
  background: rgba(255,255,255,.95);
  border-bottom: 1px solid rgba(14,107,90,.14);
  box-shadow: 0 10px 28px rgba(16,39,40,.055);
}
.topbar h1 { color: #13272c; font-weight: 900; }
.content { padding-top: 24px; }
.page-header {
  border-radius: 8px;
  border: 1px solid #d8e4df;
  border-left: 4px solid var(--accent);
  background: linear-gradient(180deg, #ffffff 0%, #fbfdfc 100%);
  box-shadow: var(--shadow-card);
}
.page-header-title { color: #15282d; }
.page-header-desc { color: #65747a; }
.page-meta-item {
  border-color: #d8e5df;
  background: #f7faf8;
  color: #506269;
}
button, .button {
  border-radius: 8px;
  background: linear-gradient(180deg, #137862 0%, #0e6254 100%);
  border-color: #0e6254;
  box-shadow: 0 1px 0 rgba(255,255,255,.18) inset, 0 8px 18px rgba(14,98,84,.14);
}
button:hover, .button:hover {
  background: linear-gradient(180deg, #0f6b5a 0%, #0a4b42 100%);
  border-color: #0a4b42;
}
.button.secondary, button.secondary {
  background: linear-gradient(180deg, #4c5c63 0%, #3a4a51 100%);
  border-color: #3a4a51;
}
.button.ghost {
  background: #f4faf7;
  border-color: #c8ded6;
  color: var(--accent-strong);
}
.card, .card-link, .home-panel, .home-module-card, .home-source-card, .home-status-card,
.executive-rank-panel, .finance-command-card, .hr-command-card, .risk-card, .alert-panel,
.data-table-wrapper, .table-panel, .store-history-panel, .drawer-panel, .kpi-card,
.mobile-kpi, .mobile-store-item, .mobile-action, .mobile-alert, .mobile-hero {
  border-radius: 8px;
  border-color: #d9e3df;
  background: linear-gradient(180deg, #ffffff 0%, #fcfdfc 100%);
  box-shadow: var(--shadow-card);
}
.home-hero-main {
  background: linear-gradient(135deg, #ffffff 0%, #f7fbf9 58%, #f2f8f5 100%);
  border-color: #cdded7;
  border-left-color: var(--accent);
}
.home-hero-title::before {
  content: "";
  display: block;
  width: 38px;
  height: 4px;
  border-radius: 999px;
  background: linear-gradient(90deg, var(--accent) 0%, var(--gold) 100%);
  margin-bottom: 10px;
}
.home-status-card {
  background: #ffffff;
}
.home-status-card:nth-child(2) {
  background: linear-gradient(180deg, #ffffff 0%, #eefaf8 100%);
  border-color: #bfe7e1;
}
.home-status-card:nth-child(4) {
  background: linear-gradient(180deg, #ffffff 0%, #edf8f4 100%);
  border-color: #bfd9d1;
}
.home-panel {
  background: linear-gradient(180deg, #ffffff 0%, #fbfdfc 100%);
}
.home-panel:nth-child(1), .executive-top-board .executive-rank-panel:nth-child(1) {
  border-top: 4px solid var(--accent);
}
.home-panel:nth-child(2), .executive-top-board .executive-rank-panel:nth-child(2) {
  border-top: 4px solid var(--gold);
}
.home-panel:nth-child(3), .executive-top-board .executive-rank-panel:nth-child(3) {
  border-top: 4px solid var(--blue);
}
.home-rank-item, .home-region-item, .executive-mini-rank-item, .executive-region-rank-item {
  background: #ffffff;
  border-color: #e2ebe7;
  box-shadow: 0 1px 0 rgba(255,255,255,.86) inset;
}
.home-rank-item:hover, .executive-mini-rank-item:hover {
  background: #f7fbfa;
  border-color: #bdd8cf;
  box-shadow: 0 8px 18px rgba(16,39,40,.06);
}
.home-rank-no, .executive-mini-rank-no.top {
  background: #e6f2ee;
  color: #0a4b42;
}
.home-rank-item.low .home-rank-no, .executive-mini-rank-no.low {
  background: #fff1ca;
  color: #855808;
}
.home-module-card {
  background: #fff;
  transition: transform .15s ease, box-shadow .15s ease, border-color .15s ease;
}
.home-module-card:hover {
  transform: translateY(-2px);
  box-shadow: 0 14px 32px rgba(16,39,40,.09);
}
.home-module-tag {
  background: #f6f8f7;
  border-color: #dbe6e1;
  color: #5a6b70;
}
.home-alert-card, .risk-card.medium {
  background: linear-gradient(180deg, #ffffff 0%, #fffaf0 100%);
  border-left-color: var(--gold);
}
.home-alert-card.high, .risk-card.high, .finance-command-card.risk, .hr-command-card.risk {
  background: linear-gradient(180deg, #ffffff 0%, #fff1ef 100%);
  border-left-color: var(--coral);
}
.home-alert-action, .risk-action, .task-action-box {
  background: #f5fbf8;
  border-color: #cfe3dc;
}
.executive-rank-panel h3,
.home-panel-title,
.home-module-title,
.finance-command-title,
.hr-command-title {
  color: #17272c;
  letter-spacing: 0;
}
.executive-rank-panel-note,
.executive-rank-panel-foot,
.home-panel-meta,
.home-module-meta {
  color: #68777d;
}
.executive-section-nav,
.area-section-nav,
.task-section-nav,
.alert-section-nav {
  background: rgba(245,247,246,.88);
}
.executive-section-nav a, .area-section-nav a, .task-section-nav a, .alert-section-nav a,
.store-detail-nav a, .store-detail-quick-nav a {
  background: rgba(255,255,255,.88);
  border-color: #d4e2dd;
  color: #31534e;
}
.executive-section-nav a:hover, .area-section-nav a:hover, .task-section-nav a:hover, .alert-section-nav a:hover,
.store-detail-nav a:hover, .store-detail-quick-nav a:hover {
  background: #e8f4ef;
  color: var(--accent-strong);
}
table {
  border-color: #d8e2de;
  background: #fff;
}
th, .data-table th, .store-history-scroll th {
  background: linear-gradient(180deg, #f0f6f3 0%, #e8f1ed 100%);
  color: #183136;
}
td { color: #243338; }
tr:hover td { background: #f7fbfa; }
.data-table th:first-child, .data-table td:first-child,
.executive-rank-table th:nth-child(2), .executive-rank-table td:nth-child(2),
.executive-rank-table th:last-child, .executive-rank-table td:last-child {
  background: #fff;
}
.data-table thead th:first-child,
.executive-rank-table thead th:nth-child(2),
.executive-rank-table thead th:last-child {
  background: #e5efeb;
}
.table-scroll .data-table thead th,
.data-table-wrapper-body .data-table thead th {
  position: sticky;
  top: 0;
  z-index: 8;
  background: #e5efeb;
  box-shadow: inset 0 -1px #d8e2de, 0 2px 4px rgba(15, 23, 42, .08);
}
.table-scroll .data-table thead,
.data-table-wrapper-body .data-table thead,
.executive-rank-table-scroll .executive-rank-table thead {
  position: sticky;
  top: 0;
  z-index: 12;
}
.table-scroll .data-table thead th:first-child,
.data-table-wrapper-body .data-table thead th:first-child {
  z-index: 9;
}
.finance-command-card.primary, .hr-command-card.primary {
  background: linear-gradient(180deg, #ffffff 0%, #f2faf7 100%);
}
.finance-command-card, .hr-command-card {
  border-top: 1px solid rgba(255,255,255,.9);
}
.mobile-body {
  background: linear-gradient(180deg, #eef4f1 0%, #e4eeea 100%);
}
.mobile-app {
  background: #f7f9f8;
}
.mobile-top {
  background: rgba(255,255,255,.97);
}
.mobile-bottom-nav {
  background: rgba(255,255,255,.98);
  border-top-color: #d6e1dd;
}
.mobile-bottom-nav a.active {
  color: var(--accent-strong);
  background: #e8f4ef;
}
.topbar.compact-executive + .content .executive-section-nav {
  position: static;
  top: auto;
  z-index: auto;
  margin: -4px 0 18px;
}
.executive-section-nav {
  position: static;
  top: auto;
  z-index: auto;
  flex-wrap: wrap;
  overflow-x: visible;
  padding: 10px 12px;
  border: 1px solid #d8e4df;
  border-radius: 8px;
  background: rgba(255,255,255,.92);
  box-shadow: 0 8px 22px rgba(16,39,40,.055);
}
.executive-section-nav a {
  min-height: 38px;
  padding: 8px 14px;
  font-size: 13px;
  border-radius: 8px;
}
#rank-top, #today-attention, #weekly-ai, #level-summary, #store-ranking, #store-detail, #store-command, #store-kpi, #store-trend, #store-signal, #store-action, #store-daily {
  scroll-margin-top: 72px;
}
.executive-data-switch { border: 1px solid #d8e4df; background: rgba(255,255,255,.96); border-radius: 10px; padding: 18px; box-shadow: 0 10px 24px rgba(16,39,40,.06); margin: 18px 0; }
.executive-data-switch-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 16px; margin-bottom: 14px; }
.executive-data-switch-title { font-size: 18px; font-weight: 950; color: #102728; }
.executive-data-switch-meta { color: #5f706d; font-size: 13px; line-height: 1.7; margin-top: 4px; }
.executive-data-card-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; }
.executive-data-card { display: flex; flex-direction: column; gap: 8px; min-height: 130px; padding: 16px; border: 1px solid #dce8e3; border-radius: 10px; background: linear-gradient(180deg, #fff 0%, #f8fbfa 100%); text-decoration: none; color: #183532; transition: border-color .16s ease, box-shadow .16s ease, transform .16s ease; }
.executive-data-card:hover { border-color: #9fcac0; box-shadow: 0 12px 28px rgba(20,78,72,.11); transform: translateY(-1px); }
.executive-data-card-label { font-size: 16px; font-weight: 950; color: #0f3c38; }
.executive-data-card-value { font-size: 26px; font-weight: 950; color: #102728; letter-spacing: 0; }
.executive-data-card-note { color: #667672; font-size: 13px; line-height: 1.6; }
.executive-data-tabs { display: flex; flex-wrap: wrap; gap: 8px; margin: 0 0 14px; }
.executive-data-tabs { padding: 10px 12px; border: 1px solid #d8e4df; border-radius: 8px; background: rgba(255,255,255,.94); box-shadow: 0 8px 22px rgba(16,39,40,.055); }
.executive-data-tabs a { display: inline-flex; align-items: center; min-height: 36px; padding: 8px 14px; border: 1px solid #d6e2de; border-radius: 8px; background: #fff; color: #36524b; text-decoration: none; font-size: 13px; font-weight: 900; }
.executive-data-tabs a.active { background: #0f6b61; color: #fff; border-color: #0f6b61; }
.executive-data-page-head { display: grid; grid-template-columns: 1fr auto; gap: 16px; align-items: start; margin-bottom: 14px; padding-bottom: 10px; border-bottom: 1px solid #dbe7e2; }
.executive-data-page-title { font-size: 24px; font-weight: 950; color: #102728; }
.executive-data-page-note { margin-top: 6px; color: #5f706d; line-height: 1.7; }
.main-shell > .topbar { background: linear-gradient(90deg, rgba(237,249,244,.98) 0%, rgba(255,255,255,.98) 52%, rgba(231,246,241,.96) 100%); border-bottom: 1px solid #d7e7e2; box-shadow: 0 8px 22px rgba(21,78,72,.045); }
.executive-period-table { table-layout: auto; }
.executive-period-table .store-name-cell { min-width: 150px; max-width: 210px; font-weight: 850; }
.executive-period-table th, .executive-period-table td { padding: 8px 9px; line-height: 1.24; vertical-align: middle; }
.executive-period-table thead th { color: #1c3530; font-size: 12px; font-weight: 950; }
.executive-period-table tbody tr { height: 42px; }
.executive-period-table tbody tr:nth-child(even) td { background: #fbfdfc; }
.executive-period-table tbody tr:hover td { background: #f0faf6; }
.executive-period-table th:nth-child(1), .executive-period-table td:nth-child(1) { min-width: 160px; max-width: 210px; }
.executive-period-table th:nth-child(2), .executive-period-table td:nth-child(2) { min-width: 150px; max-width: 210px; }
.executive-period-table th:nth-child(3), .executive-period-table td:nth-child(3) { min-width: 82px; max-width: 104px; }
.executive-period-table th:nth-child(4), .executive-period-table td:nth-child(4) { width: 62px; min-width: 62px; max-width: 62px; text-align: center; }
.executive-period-table.daily-table th:nth-child(1), .executive-period-table.daily-table td:nth-child(1),
.executive-period-table.daily-table th:nth-child(2), .executive-period-table.daily-table td:nth-child(2),
.executive-period-table.daily-table th:nth-child(3), .executive-period-table.daily-table td:nth-child(3),
.executive-period-table.daily-table th:nth-child(4), .executive-period-table.daily-table td:nth-child(4) { min-width: 0; max-width: none; }
.executive-period-table td.numeric, .executive-period-table th.numeric { text-align: right; }
.executive-period-table .muted-cell { color: #6b7a77; font-size: 12px; }
.executive-period-table .rank-badge { width: 22px; height: 22px; min-width: 22px; font-size: 12px; }
.executive-period-table .delta-pill { padding: 2px 7px; line-height: 1.15; font-size: 12px; white-space: nowrap; }
.executive-period-table .rank-row-actions { gap: 4px; }
.executive-period-table .rank-row-actions a { min-height: 24px; padding: 4px 8px; font-size: 12px; }
.executive-period-table.daily-table { table-layout: fixed; min-width: 1260px; }
.executive-period-table.daily-table th, .executive-period-table.daily-table td { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.executive-period-table.daily-table .store-name-cell { min-width: 0; }
.executive-period-table.daily-table col.col-rank { width: 44px; }
.executive-period-table.daily-table col.col-store { width: 150px; }
.executive-period-table.daily-table col.col-level { width: 60px; }
.executive-period-table.daily-table col.col-region { width: 82px; }
.executive-period-table.daily-table col.col-city { width: 60px; }
.executive-period-table.daily-table col.col-date { width: 82px; }
.executive-period-table.daily-table col.col-money { width: 92px; }
.executive-period-table.daily-table col.col-change { width: 78px; }
.executive-period-table.daily-table col.col-small { width: 88px; }
.executive-period-table.daily-table col.col-action { width: 76px; }
.executive-period-table.curated-period-table { table-layout: fixed; min-width: 1320px; }
.executive-period-table.curated-period-table th, .executive-period-table.curated-period-table td { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.executive-period-table.curated-period-table col.col-period { width: 170px; }
.executive-period-table.curated-period-table col.col-store { width: 170px; }
.executive-period-table.curated-period-table col.col-region { width: 92px; }
.executive-period-table.curated-period-table col.col-grade { width: 62px; }
.executive-period-table.curated-period-table col.col-status { width: 96px; }
.executive-period-table.curated-period-table col.col-metric { width: 112px; }
.executive-period-table.curated-period-table .executive-store-link { display: inline-block; max-width: 100%; overflow: hidden; text-overflow: ellipsis; vertical-align: middle; }
.executive-period-table .level-tag { min-width: 52px; }
.executive-period-table .region-tag { max-width: 116px; }
.executive-period-table td.numeric { color: #143f38; font-weight: 850; font-variant-numeric: tabular-nums; }
.access-board { display: grid; gap: 14px; }
.access-hero { display: grid; grid-template-columns: 1.25fr .75fr; gap: 14px; align-items: stretch; }
.access-url-card { border: 1px solid #d8e5e1; border-radius: 10px; background: #fff; padding: 16px; box-shadow: 0 10px 24px rgba(16,39,40,.055); }
.access-url-title { font-weight: 950; color: #102728; font-size: 16px; margin-bottom: 8px; }
.access-url-value { display: flex; gap: 8px; align-items: center; min-width: 0; }
.access-url-value code { flex: 1; display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; border: 1px solid #dce8e3; border-radius: 8px; background: #f7faf9; color: #183532; padding: 9px 10px; font-weight: 800; }
.access-link-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 10px; }
.access-link-card { display: block; text-decoration: none; color: #173633; border: 1px solid #dce8e3; border-radius: 10px; background: linear-gradient(180deg, #ffffff 0%, #f8fbfa 100%); padding: 14px; min-height: 110px; }
.access-link-card:hover { border-color: #9cc8bf; box-shadow: 0 10px 22px rgba(20,78,72,.09); }
.access-link-card strong { display: block; color: #0f3c38; font-size: 15px; margin-bottom: 6px; }
.access-link-card span { display: block; color: #657673; font-size: 13px; line-height: 1.55; }
.access-status-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 10px; }
.access-status { border: 1px solid #dce8e3; border-radius: 10px; background: #fff; padding: 12px; }
.access-status span { display: block; color: #667672; font-size: 12px; margin-bottom: 5px; }
.access-status strong { color: #102728; font-size: 18px; }
.access-steps { margin: 0; padding-left: 20px; color: #344f4a; line-height: 1.85; }
@media (max-width: 980px) {
  .app-shell { display: block; }
  .sidebar { position: static; height: auto; max-height: 220px; overflow-y: auto; padding: 12px; }
  .brand { padding-bottom: 10px; margin-bottom: 10px; }
  .brand-mark { width: 32px; height: 32px; }
  .brand-subtitle { display: none; }
  .side-section { margin: 8px 0; }
  .side-nav { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .topbar { position: static; align-items: flex-start; flex-direction: column; padding: 16px; }
  .content { padding: 16px; }
  .grid, .grid.four { grid-template-columns: repeat(2, minmax(130px, 1fr)); }
  .enterprise-map, .command-strip, .home-hero, .home-command-grid { grid-template-columns: 1fr; }
  .home-status-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .store-command-board { grid-template-columns: 1fr; }
  .page-header-main { grid-template-columns: 1fr; }
  .page-actions { justify-content: flex-start; }
  .decision-hero { grid-template-columns: 1fr; }
  .hero-value { font-size: 28px; }
  .executive-context-bar { position: static; grid-template-columns: 1fr; }
  .executive-context-actions { justify-content: flex-start; }
  .executive-top-board { grid-template-columns: 1fr; }
  .area-command-board { grid-template-columns: 1fr; }
  .alert-command-board { grid-template-columns: 1fr; }
  .hr-command-board { grid-template-columns: 1fr; }
  .hr-profile-head { grid-template-columns: 1fr; }
  .finance-command-board { grid-template-columns: 1fr; }
  .finance-command-center-metrics, .finance-ratio-ribbon { grid-template-columns: 1fr; }
  .finance-executive-metric, .finance-ratio-item { border-right: 0; border-bottom: 1px solid #e1e9f3; }
  .finance-executive-metric:last-child, .finance-ratio-item:last-child { border-bottom: 0; }
  .finance-command-center-head { align-items: flex-start; flex-direction: column; }
  .finance-command-center-chips { justify-content: flex-start; }
  .finance-c-toolbar { align-items: flex-start; flex-direction: column; }
  .finance-c-layout { grid-template-columns: 1fr; }
  .finance-c-analytics { grid-template-columns: 1fr; }
  .finance-c-analytics > :last-child { grid-column: auto; }
  .finance-c-risk-rail { grid-template-columns: repeat(3, minmax(0, 1fr)); grid-template-rows: auto; }
  .finance-c-kpi { grid-template-columns: minmax(0, 1fr) 86px; padding: 13px 12px 11px; }
  .finance-c-kpi svg { width: 86px; }
  .finance-store-kpi-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); }
  .finance-overview-grid, .finance-analysis-grid, .finance-import-grid, .finance-import-help { grid-template-columns: 1fr; }
  .finance-history-metric-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .finance-ledger-flow { grid-template-columns: 1fr; }
  .finance-chain-arrow { transform: rotate(90deg); }
  .finance-chain-grid { grid-template-columns: repeat(3, 1fr); gap: 8px; }
  .finance-chain-step, .finance-chain-step:first-child, .finance-chain-step:last-child { border: 1px solid #e0e9e5; border-radius: 8px; }
  .finance-progress-stats { grid-template-columns: repeat(2, 1fr); }
  .finance-upload-stage-strip { grid-template-columns: repeat(3, 1fr); }
  .finance-upload-error-group { grid-template-columns: 1fr; }
  .finance-global-upload-status { right: 16px; bottom: 16px; }
  .finance-profile-head { grid-template-columns: 1fr; }
  .task-command-board { grid-template-columns: 1fr; }
  .data-control-board { grid-template-columns: 1fr; }
  .executive-data-card-grid { grid-template-columns: 1fr; }
  .executive-data-page-head { grid-template-columns: 1fr; }
  .access-hero, .access-link-grid, .access-status-grid { grid-template-columns: 1fr; }
}
@media (max-width: 620px) {
  .sidebar { max-height: 180px; }
  .side-section-title { margin-top: 6px; }
  .side-nav { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .side-nav a { font-size: 13px; padding: 8px; }
  .finance-upload-stage-strip { grid-template-columns: repeat(2, 1fr); }
  .finance-c-risk-rail, .finance-c-kpis, .finance-c-analytics { grid-template-columns: 1fr; }
  .finance-c-risk-rail { grid-template-rows: auto; }
  .finance-c-definition-strip, .finance-c-comparison-panel .finance-analysis-grid { grid-template-columns: 1fr; }
  .finance-c-comparison-panel .finance-comparison-metrics { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .finance-c-store-tools, .finance-c-search { width: 100%; justify-content: flex-start; }
  .finance-c-search input { flex: 1 1 160px; width: auto; }
  .finance-c-analytics > :last-child { grid-column: auto; }
  .finance-c-kpi, .finance-c-kpi:first-child, .finance-c-kpi:last-child { border: 1px solid #dfe7f2; border-radius: 10px; }
  .finance-c-profit-structure { grid-template-columns: 1fr; }
  .finance-c-profit-donut { height: 220px; }
  .finance-c-structure-grid { grid-template-columns: 1fr; min-height: 0; }
  .finance-history-metric-grid { grid-template-columns: 1fr; }
  .finance-c-structure-block + .finance-c-structure-block { padding-top: 14px; padding-left: 0; border-top: 1px solid #e7edf6; border-left: 0; }
  .finance-c-cost-row { grid-template-columns: 76px minmax(58px, 1fr) 70px 44px; }
  .finance-store-kpi-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .grid, .grid.four { grid-template-columns: 1fr; }
  .enterprise-map, .command-strip, .home-hero, .home-command-grid, .home-status-grid { grid-template-columns: 1fr; }
  .store-command-board { grid-template-columns: 1fr; }
  .store-command-metrics { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  input[type=file], input[type=text] { min-width: 100%; }
  .table-panel-head { align-items: flex-start; flex-direction: column; }
}
