:root {
    --green: #0d6b4d;
    --green-deep: #074b38;
    --green-dark: #063a2c;
    --mint: #dff2e9;
    --paper: #f6f5f0;
    --ink: #17231e;
    --muted: #6f7c76;
    --line: #dbe2de;
    --line-soft: #e8ece9;
    --white: #fff;
    --amber: #bd6e1d;
    --amber-soft: #fff0db;
    --danger: #b42318;
    --shadow: 0 16px 40px rgba(29, 54, 44, .08);
}

* { box-sizing: border-box; }
html { background: var(--paper); scroll-behavior: smooth; }
body { margin: 0; color: var(--ink); font-family: "PingFang SC", "Microsoft YaHei", Arial, sans-serif; background: var(--paper); }
button, input, select, textarea { font: inherit; }
button, a { -webkit-tap-highlight-color: transparent; }
a { color: inherit; }
.sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0; }
.eyebrow { font-size: 11px; letter-spacing: .16em; font-weight: 750; color: var(--green); text-transform: uppercase; }

/* 登录 */
.login-shell { min-height: 100vh; display: grid; grid-template-columns: minmax(420px, 48%) 1fr; background: var(--white); }
.login-panel { display: flex; flex-direction: column; justify-content: flex-start; padding: clamp(24px, 4vw, 64px); max-width: 700px; }
.brand-logo { display: block; width: 52px; height: 50px; flex-shrink: 0; object-fit: contain; background: #fff; border-radius: 6px; }
.brand-mark { display: flex; align-items: center; gap: 14px; max-width: 100%; margin-bottom: 24px; }
.brand-mark .brand-logo { width: 64px; height: 64px; border-radius: 0; }
.brand-mark .brand-name { font-size: clamp(26px, 7vw, 32px); line-height: 1.2; letter-spacing: .08em; white-space: nowrap; }
.login-panel h1 { font-family: "Songti SC", serif; font-size: clamp(36px, 4vw, 56px); line-height: 1.08; margin: 10px 0 18px; letter-spacing: -.04em; }
.login-lead { max-width: 460px; color: var(--muted); font-size: 15px; line-height: 1.8; margin: 0 0 34px; }
.login-panel form, .wechat-oauth-btn, .login-divider { max-width: 460px; }
.login-panel label { display: block; font-size: 13px; font-weight: 700; margin-bottom: 10px; }
.select-wrap { position: relative; }
.select-wrap > i:first-child { position: absolute; left: 16px; top: 19px; color: var(--green); }
.select-wrap select { width: 100%; height: 56px; border: 1px solid var(--line); border-radius: 10px; background: #fff; padding: 0 44px; color: var(--ink); appearance: none; outline: none; transition: .2s; }
.select-wrap select:focus, .field input:focus, .field textarea:focus, .status-filter select:focus { border-color: var(--green); box-shadow: 0 0 0 3px rgba(13,107,77,.11); }
.select-arrow { position: absolute; right: 17px; top: 21px; color: #8d9993; font-size: 12px; pointer-events: none; }
.primary-btn { min-height: 54px; width: 100%; border: 0; border-radius: 10px; background: var(--green); color: #fff; font-weight: 700; margin-top: 14px; padding: 0 22px; display: flex; justify-content: center; align-items: center; gap: 10px; cursor: pointer; box-shadow: 0 12px 26px rgba(13,107,77,.18); }
.primary-btn:hover, .primary-small:hover { background: var(--green-deep); }
.primary-btn.auto { width: auto; min-width: 150px; margin: 0; }
.wechat-oauth-btn { height: 54px; border-radius: 10px; background: #09b766; color: #fff; text-decoration: none; display: flex; align-items: center; justify-content: center; gap: 10px; font-weight: 700; }
.wechat-oauth-btn i { font-size: 20px; }
.login-divider { display: flex; align-items: center; color: #98a29e; font-size: 11px; gap: 12px; margin: 20px 0; }
.login-divider:before, .login-divider:after { content: ""; height: 1px; flex: 1; background: var(--line-soft); }
.field-error { color: var(--danger); font-size: 13px; }
.secure-note { font-size: 12px; color: #94a09a; margin: 24px 0 0; }
.secure-note i { margin-right: 6px; }
.auth-flash { width: 100%; margin-bottom: 24px; background: #fff8e9; border: 1px solid #f0d6a7; color: #8b5a13; padding: 10px 16px; border-radius: 9px; box-shadow: var(--shadow); font-size: 13px; }
.auth-flash-single-line { white-space: nowrap; font-size: clamp(11px, 3.1vw, 13px); padding-inline: 10px; }
.auth-flash.error { color: var(--danger); border-color: #f0c1bd; background: #fff4f3; }
.login-aside { position: relative; overflow: hidden; margin: 18px 18px 18px 0; border-radius: 24px; padding: clamp(46px, 7vw, 92px); color: #fff; background: linear-gradient(145deg, rgba(3,57,42,.82), rgba(8,97,69,.94)), radial-gradient(circle at 85% 20%, #58b28d, transparent 34%), #0b5d44; }
.login-aside:after { content: ""; position: absolute; width: 420px; height: 420px; border: 1px solid rgba(255,255,255,.16); border-radius: 50%; right: -210px; bottom: -170px; box-shadow: 0 0 0 54px rgba(255,255,255,.04), 0 0 0 108px rgba(255,255,255,.03); }
.aside-index { font-size: 12px; letter-spacing: .16em; color: #bfe4d2; }
.login-aside h2 { font-family: "Songti SC", serif; font-size: clamp(36px, 4vw, 62px); line-height: 1.22; margin: 18vh 0 64px; letter-spacing: -.035em; }
.flow-preview { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1px; background: rgba(255,255,255,.22); position: relative; z-index: 1; }
.flow-preview div { background: rgba(6,71,52,.75); padding: 22px; }
.flow-preview i { display: block; font-size: 18px; margin-bottom: 32px; color: #b9ead3; }
.flow-preview strong, .flow-preview span { display: block; }
.flow-preview strong { font-size: 15px; margin-bottom: 7px; }
.flow-preview span { font-size: 11px; color: #b9d3c8; line-height: 1.5; }

/* 应用框架 */
.app-shell { min-height: 100vh; display: grid; grid-template-columns: 238px minmax(0,1fr); }
.sidebar { position: fixed; z-index: 20; inset: 0 auto 0 0; width: 238px; display: flex; flex-direction: column; background: var(--green-deep); color: #dceae4; padding: 28px 18px 20px; }
.side-brand { display: flex; align-items: center; gap: 12px; padding: 0 10px 38px; font-size: 17px; text-decoration: none; }
.side-brand .brand-logo { width: 34px; height: 34px; }
.sidebar nav { display: grid; gap: 6px; overflow-y: auto; scrollbar-width: thin; scrollbar-color: rgba(255,255,255,.2) transparent; }
.sidebar nav a { color: #b9d0c7; text-decoration: none; padding: 13px 14px; border-radius: 9px; display: flex; gap: 12px; align-items: center; font-size: 14px; }
.sidebar nav a:hover { background: rgba(255,255,255,.07); color: #fff; }
.sidebar nav a.active { background: #fff; color: var(--green-deep); font-weight: 700; box-shadow: 0 8px 22px rgba(0,0,0,.12); }
.sidebar nav i { width: 18px; text-align: center; }
.nav-caption { color: #6f9988; font-size: 10px; letter-spacing: .14em; padding: 24px 14px 5px; }
.side-user { margin-top: auto; padding: 16px 8px 4px; border-top: 1px solid rgba(255,255,255,.12); display: grid; grid-template-columns: 38px 1fr auto; align-items: center; gap: 10px; }
.avatar { width: 38px; height: 38px; flex: 0 0 auto; display: grid; place-items: center; border-radius: 50%; background: #c6efd9; color: var(--green-deep); font-size: 12px; font-weight: 800; }
.avatar.large { width: 48px; height: 48px; font-size: 14px; }
.avatar.mini { width: 34px; height: 34px; }
.side-user strong, .side-user span { display: block; min-width: 0; }
.side-user strong { font-size: 12px; color: #fff; }
.side-user span { font-size: 9px; color: #8fb3a4; white-space: nowrap; margin-top: 4px; }
.side-user button { color: #90b4a5; border: 0; background: transparent; padding: 7px; cursor: pointer; }
.workspace { grid-column: 2; min-width: 0; padding: 34px clamp(24px,4vw,58px) 74px; overflow: hidden; }
.mobile-header, .mobile-nav { display: none; }
.page-heading { display: flex; justify-content: space-between; align-items: flex-end; gap: 24px; margin-bottom: 28px; }
.page-heading h1 { font-family: "Songti SC", serif; font-size: clamp(30px, 3vw, 42px); margin: 7px 0 6px; letter-spacing: -.035em; }
.page-heading p { margin: 0; color: var(--muted); font-size: 13px; line-height: 1.7; }
.secondary-btn, .primary-small { min-height: 40px; padding: 0 16px; display: inline-flex; align-items: center; justify-content: center; gap: 8px; border-radius: 9px; text-decoration: none; font-size: 13px; font-weight: 700; white-space: nowrap; }
.secondary-btn { border: 1px solid var(--line); background: #fff; color: var(--ink); }
.primary-small { background: var(--green); color: #fff; }
.heading-actions { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 8px; }
.flash { margin: -6px 0 24px; display: flex; gap: 10px; align-items: center; padding: 12px 14px; border: 1px solid; border-radius: 10px; font-size: 13px; }
.flash span { flex: 1; }
.flash.success { color: #176448; background: #eaf7f1; border-color: #bfe2d2; }
.flash.warning { color: #885814; background: #fff7e8; border-color: #efd5a9; }
.flash.error { color: var(--danger); background: #fff2f1; border-color: #f0c1bd; }
.flash button { border: 0; background: transparent; color: inherit; cursor: pointer; }

/* 工作台 */
.dashboard-heading { align-items: center; }
.dashboard-heading h1 { font-size: 30px; }
.hero-card { min-height: 286px; border-radius: 20px; background: var(--green); color: #fff; padding: clamp(30px,5vw,58px); display: flex; justify-content: space-between; align-items: flex-end; position: relative; overflow: hidden; }
.hero-card:before { content: ""; position: absolute; width: 360px; height: 360px; border: 1px solid rgba(255,255,255,.13); border-radius: 50%; right: -90px; top: -160px; box-shadow: 0 0 0 48px rgba(255,255,255,.035), 0 0 0 96px rgba(255,255,255,.025); }
.hero-copy { position: relative; z-index: 1; }
.hero-kicker { font-size: 12px; color: #c4ead8; letter-spacing: .08em; }
.hero-card h2 { font-family: "Songti SC", serif; font-size: clamp(34px,4vw,54px); line-height: 1.15; margin: 16px 0; }
.hero-card p { color: #c5dfd4; max-width: 520px; font-size: 14px; line-height: 1.7; margin: 0; }
.hero-stats { position: relative; z-index: 1; min-width: 260px; padding: 8px 0 6px 28px; border-left: 1px solid rgba(255,255,255,.2); display: grid; grid-template-columns: repeat(2,1fr); gap: 18px; }
.hero-stats span, .hero-stats small { display: block; color: #bfe1d2; font-size: 11px; }
.hero-stats strong { font-family: Georgia, serif; font-size: 52px; line-height: 1.1; display: block; margin: 4px 0; }
.hero-stats small { grid-column: 1/-1; padding-top: 12px; border-top: 1px solid rgba(255,255,255,.12); }
.hero-stats small i { margin-right: 5px; }
.section-head { display: flex; align-items: end; justify-content: space-between; margin: 38px 0 18px; }
.section-head h2 { font-family: "Songti SC", serif; font-size: 26px; margin: 7px 0 0; }
.section-head a { font-size: 13px; color: var(--green); text-decoration: none; font-weight: 700; }
.action-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 16px; }
.action-card { position: relative; background: #fff; border: 1px solid var(--line); border-radius: 16px; padding: 24px; min-height: 250px; display: flex; flex-direction: column; transition: .2s; }
.action-card:hover { transform: translateY(-3px); box-shadow: var(--shadow); }
.card-icon { width: 44px; height: 44px; border-radius: 12px; background: var(--mint); color: var(--green); display: grid; place-items: center; }
.amber .card-icon { background: var(--amber-soft); color: var(--amber); }
.ink .card-icon { background: #e8ecea; color: #263c33; }
.card-num { position: absolute; right: 22px; top: 22px; font: 12px Georgia,serif; color: #a2aea8; }
.action-card h3 { font-family: "Songti SC", serif; font-size: 22px; margin: 26px 0 10px; }
.action-card p { font-size: 13px; line-height: 1.7; color: var(--muted); margin: 0 0 20px; }
.action-card > a { margin-top: auto; text-decoration: none; color: var(--green); font-size: 13px; font-weight: 700; }
.action-card > a i { margin-left: 8px; }
.recent-section { padding-bottom: 20px; }

/* 仓储 */
.warehouse-heading { align-items: center; }
.warehouse-hero { min-height: 270px; display: grid; grid-template-columns: minmax(300px,.9fr) minmax(500px,1.25fr); gap: 46px; align-items: center; padding: 38px 42px; border-radius: 20px; color: #fff; background: linear-gradient(130deg,#073f30,#0d6b4d 70%,#16805e); overflow: hidden; position: relative; }
.warehouse-hero:after { content: ""; position: absolute; width: 320px; height: 320px; border: 1px solid rgba(255,255,255,.1); border-radius: 50%; right: -150px; top: -180px; box-shadow: 0 0 0 52px rgba(255,255,255,.025); }
.warehouse-hero-copy { position: relative; z-index: 1; }
.warehouse-hero-copy > span { color: #bfe3d3; font-size: 11px; letter-spacing: .12em; }
.warehouse-hero h2 { margin: 13px 0 14px; font-family: "Songti SC",serif; font-size: clamp(34px,4vw,50px); line-height: 1.14; }
.warehouse-hero p { max-width: 430px; margin: 0; color: #bbd8cb; font-size: 12px; line-height: 1.8; }
.warehouse-stat-grid { position: relative; z-index: 1; display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 1px; background: rgba(255,255,255,.15); }
.warehouse-stat-grid article { min-height: 105px; padding: 18px 20px; background: rgba(5,62,45,.82); }
.warehouse-stat-grid span, .warehouse-stat-grid small { display: block; color: #acd2c1; font-size: 10px; }
.warehouse-stat-grid strong { display: inline-block; margin: 8px 5px 4px 0; font: 30px Georgia,serif; }
.warehouse-stat-grid article.warning strong { color: #ffd18e; }
.category-snapshot-grid { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 14px; }
.category-snapshot-card { min-height: 180px; padding: 20px; border: 1px solid var(--line); border-radius: 14px; background: #fff; }
.category-card-top { display: flex; align-items: center; justify-content: space-between; color: #9aa69f; font: 11px Georgia,serif; }
.category-card-top i { width: 36px; height: 36px; display: grid; place-items: center; border-radius: 10px; color: var(--green); background: var(--mint); }
.category-snapshot-card h3 { margin: 22px 0 5px; font-size: 16px; }
.category-snapshot-card p { margin: 0 0 14px; color: var(--muted); font-size: 10px; }
.category-snapshot-card > strong { font: 24px Georgia,serif; }
.category-snapshot-card > strong small { color: var(--muted); font: 10px "PingFang SC",sans-serif; }
.warehouse-onboarding { grid-column: 1/-1; min-height: 150px; display: flex; align-items: center; justify-content: center; gap: 18px; padding: 30px; border: 1px dashed #b9cec4; border-radius: 14px; background: #f1f8f5; }
.warehouse-onboarding > i { width: 48px; height: 48px; display: grid; place-items: center; border-radius: 13px; color: var(--green); background: #fff; }
.warehouse-onboarding h3 { margin: 0 0 7px; font-size: 15px; }
.warehouse-onboarding p { margin: 0; color: var(--muted); font-size: 11px; }
.warehouse-two-column { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 16px; margin-top: 34px; }
.warehouse-panel { min-height: 240px; padding: 22px; border: 1px solid var(--line); border-radius: 15px; background: #fff; }
.panel-title { display: flex; align-items: center; justify-content: space-between; padding-bottom: 16px; border-bottom: 1px solid var(--line-soft); }
.panel-title h2 { margin: 6px 0 0; font-family: "Songti SC",serif; font-size: 20px; }
.panel-title > i { color: #8ea299; }
.stock-alert-row, .movement-row { min-height: 64px; display: flex; align-items: center; gap: 12px; border-bottom: 1px solid var(--line-soft); }
.stock-alert-row:last-child, .movement-row:last-child { border-bottom: 0; }
.stock-alert-row > div, .movement-row > div { flex: 1; min-width: 0; }
.stock-alert-row strong, .stock-alert-row span, .movement-row strong, .movement-row span { display: block; }
.stock-alert-row strong, .movement-row strong { font-size: 12px; }
.stock-alert-row span, .movement-row span { margin-top: 5px; color: var(--muted); font-size: 9px; }
.stock-alert-row b, .movement-row b { color: var(--amber); font-size: 11px; }
.movement-row b { color: var(--green); }
.movement-row b.outbound { color: var(--amber); }
.movement-icon { width: 30px; height: 30px; flex: 0 0 auto; display: grid !important; place-items: center; border-radius: 8px; color: var(--green) !important; background: var(--mint); }
.movement-icon.outbound { color: var(--amber) !important; background: var(--amber-soft); }
.panel-empty { min-height: 140px; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 12px; color: var(--muted); font-size: 11px; }
.panel-empty i { color: var(--green); font-size: 22px; }
.warehouse-onboarding { color: inherit; text-decoration: none; }
.warehouse-onboarding > div { flex: 1; }
.warehouse-onboarding > span { color: var(--green); font-size: 11px; font-weight: 700; white-space: nowrap; }
.field select { width: 100%; height: 44px; border: 1px solid var(--line); border-radius: 9px; background: #fff; color: var(--ink); padding: 0 36px 0 12px; outline: none; }
.field select:focus { border-color: var(--green); box-shadow: 0 0 0 3px rgba(13,107,77,.11); }
.warehouse-form-icon { background: #e2f4eb; color: var(--green); }
.outbound-form-icon { color: var(--amber); background: var(--amber-soft); }
.outbound-submit { background: #9a5b18; box-shadow: 0 12px 26px rgba(154,91,24,.18); }
.outbound-submit:hover { background: #78430e; }
.warehouse-prerequisite { display: flex; align-items: center; gap: 16px; padding: 24px; border: 1px solid #c8ddd3; border-radius: 14px; background: #eef7f3; }
.warehouse-prerequisite > i { width: 46px; height: 46px; display: grid; place-items: center; border-radius: 12px; color: var(--green); background: #fff; }
.warehouse-prerequisite > div { flex: 1; }
.warehouse-prerequisite strong, .warehouse-prerequisite p { display: block; }
.warehouse-prerequisite strong { font-size: 14px; }
.warehouse-prerequisite p { margin: 5px 0 0; color: var(--muted); font-size: 11px; }
.inbound-item-select select { height: 52px; font-weight: 700; background-color: #fbfcfa; }
.new-item-divider { height: 36px; display: flex; align-items: center; margin: 16px 0; color: var(--muted); font-size: 10px; }
.new-item-divider:before, .new-item-divider:after { content: ""; height: 1px; flex: 1; background: var(--line-soft); }
.new-item-divider span { padding: 0 12px; }
.selected-item-preview { display: grid; grid-template-columns: 40px 1fr auto; align-items: center; gap: 12px; margin-top: 14px; padding: 14px; border: 1px solid #b9ddcd; border-radius: 11px; background: #f1f8f5; }
.selected-item-preview[hidden] { display: none; }
.selected-item-preview > i { width: 40px; height: 40px; display: grid; place-items: center; border-radius: 10px; color: var(--green); background: #fff; }
.selected-item-preview strong, .selected-item-preview span { display: block; }
.selected-item-preview strong { font-size: 13px; }
.selected-item-preview span { margin-top: 5px; color: var(--muted); font-size: 10px; }
.selected-item-preview b { color: var(--green); font-size: 12px; }

.category-config-layout { display: grid; grid-template-columns: minmax(280px,340px) minmax(0,1fr); align-items: start; gap: 16px; }
.category-create-card { position: sticky; top: 20px; padding: 24px; border: 1px solid #bcd7cb; border-radius: 15px; background: #f1f8f5; }
.warehouse-compact-form { display: grid; gap: 15px; }
.warehouse-compact-form .primary-btn { margin-top: 2px; }
.category-config-list { display: grid; gap: 11px; }
.list-summary { min-height: 42px; display: flex; justify-content: space-between; align-items: center; padding: 0 4px; }
.list-summary strong { font-size: 13px; }
.list-summary span { color: var(--muted); font-size: 10px; }
.category-config-card { overflow: hidden; border: 1px solid var(--line); border-radius: 13px; background: #fff; }
.category-config-head { display: grid; grid-template-columns: 34px 1fr auto; align-items: center; gap: 12px; padding: 16px 18px; border-bottom: 1px solid var(--line-soft); }
.category-index { width: 32px; height: 32px; display: grid; place-items: center; border-radius: 9px; color: var(--green); background: var(--mint); font: 10px Georgia,serif; }
.category-config-head strong, .category-config-head small { display: block; }
.category-config-head strong { font-size: 13px; }
.category-config-head small { margin-top: 5px; color: var(--muted); font-size: 9px; }
.category-edit-grid { display: grid; grid-template-columns: 1.4fr .9fr .5fr; gap: 11px; padding: 16px 18px 12px; }
.category-edit-grid .field.wide { grid-column: 1/-1; }
.category-edit-grid .field input { height: 38px; font-size: 11px; }
.category-config-footer { min-height: 54px; display: flex; justify-content: space-between; align-items: center; padding: 8px 18px; background: #fafbf9; border-top: 1px solid var(--line-soft); }
.category-config-footer button { height: 34px; border: 0; border-radius: 8px; padding: 0 13px; color: #fff; background: var(--green); font-size: 10px; font-weight: 700; cursor: pointer; }

.inventory-filter { display: grid; grid-template-columns: minmax(260px,1fr) 180px 150px auto; gap: 8px; margin-bottom: 14px; padding: 9px; border: 1px solid var(--line); border-radius: 12px; background: #fff; }
.inventory-filter input, .inventory-filter select { width: 100%; height: 40px; border: 0; border-radius: 8px; color: var(--ink); background: var(--paper); outline: none; }
.inventory-filter input { padding: 0 12px 0 34px; }
.inventory-filter select { padding: 0 30px 0 11px; }
.inventory-filter input:focus, .inventory-filter select:focus { box-shadow: 0 0 0 2px rgba(13,107,77,.14); }
.inventory-search { position: relative; }
.inventory-search i { position: absolute; z-index: 1; left: 12px; top: 13px; color: #87938d; font-size: 12px; }
.inventory-filter button { border: 0; border-radius: 8px; padding: 0 16px; color: #fff; background: var(--green); font-size: 11px; font-weight: 700; cursor: pointer; }
.inventory-ledger { border: 1px solid var(--line); border-radius: 14px; background: #fff; }
.inventory-ledger-head, .inventory-ledger-row { display: grid; grid-template-columns: minmax(230px,1.35fr) minmax(140px,.75fr) minmax(125px,.65fr) 110px 42px; align-items: center; gap: 14px; }
.inventory-ledger-head { min-height: 42px; padding: 0 17px; color: var(--muted); background: #f7f8f6; border-radius: 14px 14px 0 0; font-size: 9px; }
.inventory-ledger-row { position: relative; min-height: 82px; padding: 13px 17px; border-top: 1px solid var(--line-soft); }
.inventory-ledger-row.low { background: #fffaf2; }
.inventory-product { display: flex; align-items: center; gap: 11px; min-width: 0; }
.inventory-box { width: 40px; height: 40px; flex: 0 0 auto; display: grid; place-items: center; border-radius: 10px; color: var(--green); background: var(--mint); }
.inventory-product > div, .inventory-meta { min-width: 0; }
.inventory-product strong, .inventory-product small, .inventory-meta strong, .inventory-meta small, .inventory-date strong, .inventory-date small { display: block; }
.inventory-product strong { overflow: hidden; font-size: 12px; text-overflow: ellipsis; white-space: nowrap; }
.inventory-product small, .inventory-meta small, .inventory-date small { margin-top: 5px; color: var(--muted); font-size: 9px; }
.inventory-meta strong, .inventory-date strong { font-size: 11px; }
.inventory-meta small i { margin-right: 3px; }
.inventory-stock strong { display: block; font: 20px Georgia,serif; }
.inventory-stock strong small { color: var(--muted); font: 9px "PingFang SC",sans-serif; }
.inventory-stock > span { color: var(--muted); font-size: 9px; }
.inventory-stock > span.danger { color: var(--danger); font-weight: 700; }
.inventory-settings { position: relative; }
.inventory-settings summary { width: 34px; height: 34px; display: grid; place-items: center; border: 1px solid var(--line); border-radius: 8px; color: var(--green); cursor: pointer; list-style: none; }
.inventory-settings summary::-webkit-details-marker { display: none; }
.inventory-settings[open] summary { color: #fff; background: var(--green); }
.inventory-settings form { position: absolute; z-index: 12; top: 42px; right: 0; width: 250px; display: grid; gap: 12px; padding: 17px; border: 1px solid var(--line); border-radius: 12px; background: #fff; box-shadow: 0 18px 42px rgba(23,48,38,.17); }
.inventory-settings form > strong { font-size: 13px; }
.inventory-settings form button { height: 36px; border: 0; border-radius: 8px; color: #fff; background: var(--green); font-size: 10px; font-weight: 700; cursor: pointer; }
.inventory-outbound-link { min-height: 34px; display: flex; align-items: center; justify-content: center; gap: 7px; border: 1px solid #e5c99e; border-radius: 8px; color: #925b17; background: #fff9ee; text-decoration: none; font-size: 10px; font-weight: 700; }

/* 申请列表 */
.filter-bar { border: 1px solid var(--line); background: #fff; border-radius: 12px; padding: 8px 10px; display: flex; justify-content: space-between; align-items: center; gap: 16px; margin-bottom: 14px; }
.filter-tabs { display: flex; gap: 2px; overflow-x: auto; }
.filter-tabs a { padding: 9px 14px; border-radius: 8px; text-decoration: none; font-size: 12px; color: var(--muted); white-space: nowrap; }
.filter-tabs a.active { background: var(--mint); color: var(--green); font-weight: 700; }
.status-filter select { height: 36px; border: 0; background: var(--paper); border-radius: 8px; padding: 0 30px 0 11px; color: var(--ink); font-size: 12px; outline: none; }
.request-list { border: 1px solid var(--line); border-radius: 14px; background: #fff; overflow: hidden; }
.request-row { min-height: 86px; padding: 14px 18px; display: grid; grid-template-columns: 44px minmax(190px,1fr) minmax(120px,.55fr) auto 20px; align-items: center; gap: 14px; text-decoration: none; border-bottom: 1px solid var(--line-soft); transition: background .16s; }
.request-row:last-child { border-bottom: 0; }
.request-row:hover { background: #fbfcfa; }
.request-type { width: 42px; height: 42px; display: grid; place-items: center; border-radius: 11px; background: var(--mint); color: var(--green); }
.request-type.purchase { background: var(--amber-soft); color: var(--amber); }
.request-type.payment { background: #e8ecea; color: #30483e; }
.request-main strong, .request-main span, .request-meta span, .request-meta small { display: block; }
.request-main strong { font-size: 14px; margin-bottom: 7px; }
.request-main span, .request-meta small { color: #89948f; font-size: 10px; }
.request-meta span { font-size: 12px; margin-bottom: 6px; }
.status { display: inline-flex; align-items: center; justify-content: center; min-height: 26px; border-radius: 999px; padding: 0 10px; font-size: 10px; font-weight: 700; white-space: nowrap; }
.status.warning { background: #fff2d9; color: #9c620e; }
.status.success { background: #e5f5ed; color: #187052; }
.status.muted { background: #edf0ee; color: #78837e; }
.status.large { min-height: 32px; padding: 0 14px; font-size: 11px; }
.row-arrow { color: #b9c1bd; font-size: 10px; }
.compact-list .request-row { grid-template-columns: 44px 1fr auto 20px; }
.empty-state { grid-column: 1/-1; min-height: 240px; padding: 38px 20px; display: flex; flex-direction: column; align-items: center; justify-content: center; text-align: center; color: var(--muted); }
.empty-state.small { min-height: 170px; }
.empty-state > i { width: 52px; height: 52px; display: grid; place-items: center; border-radius: 50%; background: var(--mint); color: var(--green); font-size: 18px; }
.empty-state h3 { font-family: "Songti SC",serif; color: var(--ink); margin: 15px 0 6px; font-size: 18px; }
.empty-state p { margin: 0; font-size: 12px; }
.pagination-wrap { margin-top: 18px; }
.pagination-wrap nav > div:first-child { display: none; }
.pagination-wrap nav > div:last-child { display: flex; justify-content: space-between; align-items: center; }
.pagination-wrap nav p { font-size: 12px; color: var(--muted); }
.pagination-wrap nav span, .pagination-wrap nav a { text-decoration: none; }

.wechat-pagination { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 14px; margin-top: 20px; }
.wechat-pagination-summary { margin: 0; color: var(--muted); font-size: 12px; line-height: 1.6; }
.wechat-pagination-pages { display: flex; align-items: center; flex-wrap: wrap; gap: 6px; margin: 0; padding: 0; list-style: none; }
.wechat-page-link { display: inline-flex; align-items: center; justify-content: center; min-width: 40px; min-height: 40px; padding: 0 12px; border: 1px solid var(--line); border-radius: 9px; background: var(--white); color: var(--ink); font-size: 13px; line-height: 1; white-space: nowrap; text-decoration: none; }
a.wechat-page-link:hover { border-color: var(--green); background: var(--mint); color: var(--green); }
a.wechat-page-link:focus-visible { outline: 2px solid var(--green); outline-offset: 3px; }
.wechat-page-link[aria-current="page"] { border-color: var(--green); background: var(--green); color: #fff; font-weight: 700; }
.wechat-page-link[aria-disabled="true"] { color: #9aa69f; background: #f0f2ef; cursor: default; }
.wechat-page-gap[aria-disabled="true"] { padding: 0 4px; min-width: 24px; border-color: transparent; background: transparent; }

/* 表单 */
.form-heading { display: block; }
.back-link { display: inline-flex; align-items: center; gap: 8px; text-decoration: none; color: var(--muted); font-size: 12px; margin-bottom: 24px; }
.title-with-icon { display: flex; align-items: center; gap: 16px; }
.form-icon { width: 60px; height: 60px; flex: 0 0 auto; display: grid; place-items: center; border-radius: 15px; font-size: 20px; background: var(--mint); color: var(--green); }
.form-icon.purchase { background: var(--amber-soft); color: var(--amber); }
.form-icon.payment { background: #e8ecea; color: #30483e; }
.workflow-form { display: grid; gap: 14px; }
.form-section { background: #fff; border: 1px solid var(--line); border-radius: 15px; padding: 26px; }
.form-section-title { display: flex; align-items: center; gap: 12px; margin-bottom: 24px; }
.form-section-title > span { width: 32px; height: 32px; border: 1px solid var(--line); border-radius: 50%; display: grid; place-items: center; color: var(--green); font: 11px Georgia,serif; }
.form-section-title > div { flex: 1; }
.form-section-title h2 { font-family: "Songti SC",serif; font-size: 19px; margin: 0 0 4px; }
.form-section-title p { font-size: 11px; color: var(--muted); margin: 0; }
.field-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 18px; }
.field { display: block; min-width: 0; }
.field.wide, .detail-field.wide { grid-column: 1/-1; }
.field > span { display: block; color: #4f5e57; font-size: 12px; font-weight: 700; margin-bottom: 8px; }
.field b { color: var(--danger); }
.field input, .field textarea { width: 100%; border: 1px solid var(--line); border-radius: 9px; background: #fff; color: var(--ink); padding: 0 12px; outline: none; transition: .16s; }
.field input { height: 44px; }
/* Keep iOS / WeChat native date controls inside the shared form field. */
.field input[type="date"], .field input[type="time"], .field input[type="datetime-local"] {
    -webkit-appearance: none;
    appearance: none;
    box-sizing: border-box;
    min-width: 0;
    max-width: 100%;
    width: 100%;
    text-align: left;
}
.field input::-webkit-date-and-time-value { min-width: 0; text-align: left; }
.field textarea { padding-top: 12px; resize: vertical; line-height: 1.6; }
.field input::placeholder, .field textarea::placeholder { color: #adb6b2; }
.field > small { display: block; margin-top: 6px; color: var(--muted); font-size: 10px; }
.input-prefix { display: flex; align-items: center; border: 1px solid var(--line); border-radius: 9px; overflow: hidden; }
.input-prefix:focus-within { border-color: var(--green); box-shadow: 0 0 0 3px rgba(13,107,77,.11); }
.input-prefix > span { width: 38px; align-self: stretch; display: grid; place-items: center; color: var(--green); background: var(--paper); font-family: Georgia,serif; }
.input-prefix input { border: 0; box-shadow: none !important; }
.outline-btn { min-height: 36px; border: 1px solid var(--line); border-radius: 8px; background: #fff; color: var(--green); padding: 0 12px; font-size: 11px; font-weight: 700; cursor: pointer; }
.items-head, .item-row { display: grid; grid-template-columns: 1.6fr 1.2fr .65fr .55fr 36px; gap: 10px; align-items: center; }
.items-head { color: var(--muted); font-size: 10px; padding: 0 3px 8px; }
.items-body { display: grid; gap: 8px; }
.item-row { padding: 9px; background: #fafbf9; border: 1px solid var(--line-soft); border-radius: 10px; }
.item-row input { width: 100%; height: 38px; min-width: 0; border: 1px solid transparent; border-radius: 7px; background: #fff; padding: 0 10px; outline: none; }
.item-row input:focus { border-color: var(--green); }
.mobile-label { display: none; }
.remove-item { width: 32px; height: 32px; border: 0; background: transparent; color: #a5afaa; border-radius: 7px; cursor: pointer; }
.remove-item:hover { color: var(--danger); background: #fff0ef; }
.form-actions { display: flex; justify-content: flex-end; align-items: center; gap: 20px; padding: 16px 0; }
.form-actions > a { color: var(--muted); text-decoration: none; font-size: 13px; }
.validation-box { display: flex; gap: 12px; align-items: flex-start; background: #fff2f1; border: 1px solid #efc1bd; color: var(--danger); border-radius: 12px; padding: 16px; margin-bottom: 14px; font-size: 12px; }
.validation-box strong { font-size: 13px; }
.validation-box ul { margin: 7px 0 0; padding-left: 18px; line-height: 1.7; }

/* 详情与经办 */
.detail-heading { display: block; }
.detail-title-row { display: flex; align-items: center; justify-content: space-between; gap: 24px; }
.detail-title-copy { min-width: 0; }
.detail-mobile-meta { display: none; }
.detail-layout { display: grid; grid-template-columns: minmax(0,1fr) minmax(300px,350px); align-items: start; gap: 16px; }
.detail-main { display: grid; gap: 16px; }
.detail-card, .timeline-card, .action-panel { background: #fff; border: 1px solid var(--line); border-radius: 15px; padding: 24px; }
.card-heading { display: flex; justify-content: space-between; align-items: center; padding-bottom: 20px; margin-bottom: 20px; border-bottom: 1px solid var(--line-soft); }
.card-heading h2, .timeline-card h2, .action-panel h2 { font-family: "Songti SC",serif; font-size: 20px; margin: 6px 0 0; }
.card-heading > span { color: var(--muted); font-size: 11px; }
.detail-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 0; border-top: 1px solid var(--line-soft); border-left: 1px solid var(--line-soft); }
.detail-field { min-height: 74px; padding: 15px; border-right: 1px solid var(--line-soft); border-bottom: 1px solid var(--line-soft); }
.detail-field > span { display: block; font-size: 10px; color: var(--muted); margin-bottom: 8px; }
.detail-field > strong { display: block; font-size: 13px; line-height: 1.6; word-break: break-word; }
.detail-items { margin-top: 26px; }
.detail-items h3, .result-block h3 { font-size: 13px; margin: 0 0 10px; }
.items-table { border: 1px solid var(--line-soft); border-radius: 10px; overflow: hidden; }
.items-table-head, .items-table-row { display: grid; grid-template-columns: 1.4fr 1fr .7fr; gap: 10px; padding: 11px 13px; align-items: center; }
.items-table-head { color: var(--muted); background: #f7f8f6; font-size: 10px; }
.items-table-row { border-top: 1px solid var(--line-soft); font-size: 12px; }
.items-table-row strong { font-size: 12px; }
.result-check { color: var(--green); font-size: 22px; }
.result-block + .result-block { margin-top: 24px; }
.file-link { display: inline-flex; align-items: center; gap: 7px; color: var(--green); font-size: 12px; font-weight: 700; text-decoration: none; }
.detail-side { display: grid; gap: 16px; position: sticky; top: 20px; }
.timeline { margin-top: 24px; }
.timeline-item { position: relative; display: grid; grid-template-columns: 24px 1fr; gap: 11px; min-height: 94px; }
.timeline-item:not(:last-child):after { content: ""; position: absolute; left: 11px; top: 25px; bottom: -1px; width: 1px; background: var(--line); }
.timeline-dot { position: relative; z-index: 1; width: 23px; height: 23px; border-radius: 50%; display: grid; place-items: center; background: var(--mint); color: var(--green); font-size: 8px; }
.timeline-item.current .timeline-dot { background: var(--green); color: #fff; box-shadow: 0 0 0 5px var(--mint); }
.timeline-item.pending .timeline-dot { border: 2px solid var(--line); background: #fff; }
.timeline-item strong { font-size: 12px; }
.timeline-item p { color: var(--green); font-size: 10px; margin: 5px 0; }
.timeline-item small { color: var(--muted); font-size: 9px; line-height: 1.6; }
.action-panel { border-color: #b9ddcd; box-shadow: var(--shadow); }
.action-panel > p { color: var(--muted); font-size: 11px; line-height: 1.6; margin: 9px 0 20px; }
.action-panel form { display: grid; gap: 14px; }
.action-panel .primary-btn { margin-top: 4px; width: 100%; }

/* 权限 */
.info-badge { min-height: 38px; display: inline-flex; align-items: center; gap: 8px; padding: 0 13px; border-radius: 9px; background: var(--mint); color: var(--green); font-size: 12px; font-weight: 700; }
.admin-notice { display: flex; gap: 14px; align-items: flex-start; border-left: 3px solid var(--green); background: #eaf5f0; padding: 16px 18px; margin-bottom: 16px; }
.admin-notice > i { color: var(--green); font-size: 18px; margin-top: 2px; }
.admin-notice strong { font-size: 13px; }
.admin-notice p { color: var(--muted); font-size: 11px; line-height: 1.6; margin: 5px 0 0; }
.permission-list { display: grid; gap: 12px; }
.permission-card { background: #fff; border: 1px solid var(--line); border-radius: 14px; overflow: hidden; }
.permission-user { display: grid; grid-template-columns: 48px 1fr auto; gap: 12px; align-items: center; padding: 18px; border-bottom: 1px solid var(--line-soft); }
.permission-user img { width: 48px; height: 48px; object-fit: cover; border-radius: 50%; }
.permission-user strong, .permission-user span { display: block; }
.permission-user strong { font-size: 14px; }
.permission-user span { color: var(--muted); font-size: 10px; margin-top: 5px; }
.role-checks { display: grid; grid-template-columns: repeat(5,minmax(0,1fr)); gap: 7px; padding: 16px 18px; }
.role-checks label { min-height: 38px; display: flex; align-items: center; gap: 8px; padding: 0 9px; border: 1px solid var(--line); border-radius: 8px; cursor: pointer; }
.role-checks input { position: absolute; opacity: 0; pointer-events: none; }
.role-checks label > span { width: 16px; height: 16px; flex: 0 0 auto; display: grid; place-items: center; border: 1px solid #b8c1bd; border-radius: 4px; color: transparent; font-size: 8px; }
.role-checks input:checked + span { border-color: var(--green); background: var(--green); color: #fff; }
.role-checks label:has(input:checked) { background: #f1f8f5; border-color: #add6c4; }
.role-checks em { font-size: 10px; font-style: normal; }
.switch { display: flex; align-items: center; gap: 8px; font-size: 10px; }
.switch input { position: absolute; opacity: 0; }
.switch > span { width: 34px; height: 20px; position: relative; border-radius: 999px; background: #cbd2ce; transition: .2s; }
.switch > span:after { content: ""; position: absolute; width: 14px; height: 14px; border-radius: 50%; background: #fff; left: 3px; top: 3px; transition: .2s; box-shadow: 0 1px 4px rgba(0,0,0,.2); }
.switch input:checked + span { background: var(--green); }
.switch input:checked + span:after { transform: translateX(14px); }
.switch em { font-style: normal; color: var(--muted); }
.permission-footer { display: flex; justify-content: space-between; align-items: center; padding: 11px 18px; background: #fafbf9; border-top: 1px solid var(--line-soft); }
.permission-footer > span { color: var(--muted); font-size: 10px; }
.permission-footer button { height: 34px; border: 0; border-radius: 8px; padding: 0 12px; background: var(--green); color: #fff; font-size: 10px; font-weight: 700; cursor: pointer; }

/* 业务统计 */
.statistics-heading { align-items: center; }
.export-btn { min-height: 42px; display: inline-flex; align-items: center; gap: 9px; padding: 0 16px; border-radius: 9px; background: var(--green); color: #fff; text-decoration: none; font-size: 12px; font-weight: 750; box-shadow: 0 10px 22px rgba(13,107,77,.16); }
.export-btn:hover { background: var(--green-deep); }
.export-icon { width: 18px; height: 18px; flex-shrink: 0; }
.statistics-tabs { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 8px; margin-bottom: 12px; }
.statistics-tabs a { min-height: 50px; display: flex; align-items: center; justify-content: center; gap: 9px; border: 1px solid var(--line); border-radius: 11px; background: #fff; color: var(--muted); text-decoration: none; font-size: 13px; font-weight: 700; }
.statistics-tabs a.active { border-color: var(--green); background: var(--green); color: #fff; box-shadow: 0 10px 22px rgba(13,107,77,.14); }
.statistics-filter { position: relative; display: flex; align-items: flex-end; gap: 18px; padding: 18px; border: 1px solid var(--line); border-radius: 13px; background: #fff; margin-bottom: 14px; }
.quick-periods { display: flex; align-items: center; gap: 5px; }
.quick-periods > span { color: var(--muted); font-size: 10px; font-weight: 700; margin-right: 5px; }
.quick-periods a { min-height: 34px; padding: 0 11px; display: inline-flex; align-items: center; border-radius: 7px; background: var(--paper); color: var(--muted); text-decoration: none; font-size: 10px; white-space: nowrap; }
.quick-periods a.active { background: var(--mint); color: var(--green); font-weight: 750; }
.custom-period { display: flex; flex-wrap: wrap; align-items: flex-end; gap: 8px; min-width: 0; max-width: 100%; }
.custom-period label { min-width: 0; max-width: 100%; }
.custom-period label span { display: block; color: var(--muted); font-size: 9px; margin-bottom: 5px; }
.custom-period input { width: 132px; min-width: 0; max-width: 100%; height: 34px; border: 1px solid var(--line); border-radius: 7px; padding: 0 8px; color: var(--ink); font-size: 10px; outline: none; }
.custom-period input[type="date"] { -webkit-appearance: none; appearance: none; text-align: left; }
.custom-period input::-webkit-date-and-time-value { min-width: 0; text-align: left; }
.custom-period > i { color: #a4aea9; font-size: 9px; margin-bottom: 12px; }
.custom-period button { height: 34px; border: 0; border-radius: 7px; padding: 0 12px; background: var(--ink); color: #fff; font-size: 10px; font-weight: 700; cursor: pointer; }
.active-range { margin-left: auto; color: var(--muted); font-size: 10px; white-space: nowrap; }
.active-range i { color: var(--green); margin-right: 6px; }
.statistics-cards { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 12px; margin-bottom: 14px; }
.statistics-card { min-height: 132px; position: relative; overflow: hidden; padding: 20px; border: 1px solid var(--line); border-radius: 13px; background: #fff; }
.statistics-card:after { content: ""; position: absolute; width: 72px; height: 72px; right: -30px; top: -30px; border-radius: 50%; background: var(--mint); }
.statistics-card.amber:after { background: var(--amber-soft); }
.statistics-card.ink:after { background: #e8ecea; }
.statistics-card > span, .statistics-card > small { display: block; }
.statistics-card > span { color: var(--muted); font-size: 10px; }
.statistics-card > strong { display: block; overflow: hidden; text-overflow: ellipsis; margin: 13px 0 8px; color: var(--ink); font-family: Georgia,"Songti SC",serif; font-size: clamp(23px,2.4vw,34px); line-height: 1; white-space: nowrap; }
.statistics-card > small { color: #8d9893; font-size: 9px; }
.statistics-overview { display: grid; grid-template-columns: minmax(0,1.8fr) minmax(260px,.7fr); gap: 14px; margin-bottom: 14px; }
.analytics-card { min-width: 0; border: 1px solid var(--line); border-radius: 14px; background: #fff; padding: 22px; }
.analytics-heading { display: flex; justify-content: space-between; align-items: flex-end; gap: 12px; margin-bottom: 22px; }
.analytics-heading h2 { margin: 6px 0 0; font-family: "Songti SC",serif; font-size: 19px; }
.analytics-heading > span { color: var(--muted); font-size: 9px; }
.trend-chart { height: 220px; display: flex; align-items: stretch; gap: clamp(5px,1.2vw,14px); overflow-x: auto; padding: 10px 2px 0; }
.trend-column { min-width: 24px; flex: 1 0 24px; display: grid; grid-template-rows: 18px 1fr 24px; align-items: end; text-align: center; }
.trend-value { color: var(--green); font: 10px Georgia,serif; }
.trend-track { height: 100%; min-height: 100px; position: relative; overflow: hidden; border-radius: 5px 5px 0 0; background: #eef2ef; }
.trend-track i { position: absolute; inset: auto 0 0; border-radius: 5px 5px 0 0; background: linear-gradient(180deg,#2b9b72,var(--green)); }
.trend-column small { overflow: hidden; color: var(--muted); font-size: 8px; white-space: nowrap; transform: rotate(-28deg); transform-origin: center; padding-bottom: 1px; }
.status-stat-list { display: grid; gap: 19px; }
.status-stat-list > div { display: grid; grid-template-columns: 1fr auto; gap: 6px 10px; align-items: center; }
.status-stat-list > div > div:first-child { grid-column: 1/-1; display: flex; align-items: center; }
.status-stat-list strong { font-size: 11px; }
.status-stat-list em { margin-left: auto; color: var(--muted); font-size: 9px; font-style: normal; }
.status-stat-list small { color: var(--muted); font-size: 9px; }
.status-dot { width: 7px; height: 7px; border-radius: 50%; margin-right: 8px; background: var(--amber); }
.status-dot.success { background: var(--green); }
.status-dot.muted { background: #84918b; }
.progress { height: 6px; overflow: hidden; border-radius: 99px; background: #edf1ef; }
.progress i { display: block; height: 100%; border-radius: inherit; background: var(--amber); }
.progress i.success { background: var(--green); }
.progress i.muted { background: #84918b; }
.analytics-empty { min-height: 200px; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 10px; color: var(--muted); font-size: 11px; }
.analytics-empty i { width: 42px; height: 42px; display: grid; place-items: center; border-radius: 50%; background: var(--mint); color: var(--green); }
.analytics-empty.compact { min-height: 100px; }
.statistics-detail-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 14px; }
.dimension-card { grid-column: 1/-1; }
.analytics-table { overflow: hidden; border: 1px solid var(--line-soft); border-radius: 9px; }
.analytics-table-head, .analytics-table-row { display: grid; grid-template-columns: minmax(100px,1.4fr) .5fr .5fr .8fr; align-items: center; gap: 9px; min-height: 38px; padding: 0 11px; }
.analytics-table-head { background: #f3f6f4; color: var(--muted); font-size: 9px; font-weight: 700; }
.analytics-table-row { border-top: 1px solid var(--line-soft); font-size: 10px; }
.analytics-table-row strong { overflow: hidden; text-overflow: ellipsis; font-size: 10px; white-space: nowrap; }
.analytics-table-row span:last-child { text-align: right; }
.analytics-table.three-column .analytics-table-head, .analytics-table.three-column .analytics-table-row, .dimension-table .analytics-table-head, .dimension-table .analytics-table-row { grid-template-columns: minmax(100px,1.4fr) .5fr .9fr; }
.table-empty { padding: 32px; color: var(--muted); text-align: center; font-size: 10px; }

@media (max-width: 1100px) {
    .role-checks { grid-template-columns: repeat(3,minmax(0,1fr)); }
    .detail-layout { grid-template-columns: minmax(0,1fr) 310px; }
    .action-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
    .warehouse-hero { grid-template-columns: 1fr; }
    .category-snapshot-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
    .inventory-ledger-head, .inventory-ledger-row { grid-template-columns: minmax(210px,1.25fr) minmax(125px,.7fr) minmax(115px,.6fr) 42px; }
    .inventory-ledger-head span:nth-child(4), .inventory-date { display: none; }
    .statistics-filter { flex-wrap: wrap; }
    .active-range { margin-left: 0; }
    .statistics-cards { grid-template-columns: repeat(2,minmax(0,1fr)); }
}

@media (max-width: 900px) {
    .login-shell { grid-template-columns: 1fr; }
    .login-aside { display: none; }
    .login-panel { min-height: 100vh; max-width: none; padding: 42px 24px; }
    .brand-mark { margin-bottom: 24px; }
    .login-panel form, .wechat-oauth-btn, .login-divider { max-width: none; }
    .app-shell { display: block; }
    .sidebar { display: none; }
    /* 为固定底部菜单（66px）、底部偏移（10px）及手机安全区预留空间。 */
    .workspace { display: block; padding: 0 16px calc(120px + env(safe-area-inset-bottom, 0px)); overflow: visible; }
    .mobile-header { height: 68px; display: flex; justify-content: space-between; align-items: center; }
    .mobile-brand { display: inline-flex; align-items: center; gap: 9px; text-decoration: none; color: var(--green-deep); }
    .mobile-brand .brand-logo { width: 42px; height: 40px; }
    .mobile-brand strong { font-size: 15px; }
    .mobile-user { min-width: 0; max-width: 176px; display: grid; grid-template-columns: 34px minmax(0,1fr); align-items: center; gap: 9px; }
    .mobile-user-avatar { width: 34px; height: 34px; object-fit: cover; border-radius: 50%; background: var(--mint); }
    .mobile-user-copy { min-width: 0; text-align: left; }
    .mobile-user-copy strong, .mobile-user-copy span { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
    .mobile-user-copy strong { color: var(--ink); font-size: 12px; font-weight: 800; line-height: 1.25; }
    .mobile-user-copy span { margin-top: 4px; color: var(--muted); font-size: 9px; line-height: 1.2; }
    .page-heading { margin-bottom: 20px; align-items: flex-start; }
    .page-heading h1 { font-size: 30px; }
    .dashboard-heading .secondary-btn { display: none; }
    .hero-card { min-height: auto; padding: 28px; align-items: flex-start; }
    .hero-copy { display: none; }
    .hero-stats { width: 100%; min-width: 0; padding: 0; border-left: 0; }
    .action-grid { grid-template-columns: 1fr; }
    .action-card { min-height: auto; padding: 20px; }
    .action-card h3 { margin-top: 20px; }
    .mobile-nav { position: fixed; z-index: 30; left: 12px; right: 12px; bottom: calc(10px + env(safe-area-inset-bottom)); height: 66px; border: 1px solid rgba(219,226,222,.9); background: rgba(255,255,255,.94); backdrop-filter: blur(14px); border-radius: 18px; box-shadow: 0 10px 30px rgba(20,42,33,.15); display: flex; overflow: hidden; }
    .mobile-nav a, .mobile-nav form, .mobile-nav button { min-width: 0; }
    .mobile-nav > a, .mobile-nav > form { flex: 1 1 0; }
    .mobile-nav a, .mobile-nav button { width: 100%; height: 100%; border: 0; background: transparent; text-decoration: none; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 5px; color: #8d9993; font-size: 10px; }
    .mobile-nav a.active { color: var(--green); }
    .mobile-nav i { font-size: 17px; }
    .detail-layout { grid-template-columns: 1fr; }
    .detail-side { position: static; }
    .detail-title-row { align-items: flex-start; }
    .detail-title-row .status { margin-top: 14px; }
    .request-row { grid-template-columns: 42px minmax(0,1fr) auto 14px; gap: 10px; padding: 13px; }
    .request-meta { display: none; }
    .role-checks { grid-template-columns: repeat(2,minmax(0,1fr)); }
    .warehouse-hero { padding: 28px; gap: 26px; }
    .warehouse-two-column { grid-template-columns: 1fr; }
    .category-config-layout { grid-template-columns: 1fr; }
    .category-create-card { position: static; }
    .inventory-filter { grid-template-columns: minmax(220px,1fr) 150px 140px auto; }
    .mobile-nav.five { grid-template-columns: repeat(5,1fr); }
    .export-btn { display: none; }
    .statistics-overview { grid-template-columns: 1fr; }
    .statistics-detail-grid { grid-template-columns: 1fr; }
    .dimension-card { grid-column: auto; }
}

@media (max-width: 620px) {
    .login-panel h1 { font-size: 37px; }
    .login-lead { font-size: 14px; }
    .hero-card h2 { font-size: 31px; }
    .section-head { margin-top: 30px; }
    .page-heading:not(.dashboard-heading) { display: block; }
    .heading-actions { justify-content: flex-start; margin-top: 16px; }
    .primary-small { flex: 1 1 auto; }
    .filter-bar { padding: 7px; display: block; }
    .filter-tabs { padding-bottom: 6px; }
    .status-filter select { width: 100%; }
    .request-row { min-height: 78px; }
    .request-type { width: 38px; height: 38px; }
    .request-main strong { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
    .request-main span { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; max-width: 48vw; }
    .status { padding: 0 8px; }
    .compact-list .request-row { grid-template-columns: 38px minmax(0,1fr) auto 12px; }
    .form-heading .title-with-icon { align-items: flex-start; }
    .form-icon { width: 48px; height: 48px; border-radius: 13px; font-size: 17px; }
    .form-heading h1 { font-size: 27px; }
    .form-section { padding: 20px 16px; }
    .form-section-title { align-items: flex-start; }
    .form-section-title .outline-btn { white-space: nowrap; }
    .field-grid { grid-template-columns: minmax(0,1fr); }
    .detail-grid { grid-template-columns: 1fr; }
    .field.wide, .detail-field.wide { grid-column: auto; }
    .items-head { display: none; }
    .item-row { position: relative; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 9px; padding: 12px; }
    .item-row .remove-item { position: absolute; top: 10px; right: 9px; }
    .item-row label:nth-child(2) { padding-right: 35px; }
    .mobile-label { display: block; color: var(--muted); font-size: 9px; margin: 0 0 5px 2px; }
    .form-actions { position: sticky; z-index: 5; bottom: 76px; margin: 0 -16px; padding: 12px 16px; background: rgba(246,245,240,.94); backdrop-filter: blur(12px); }
    .form-actions .primary-btn { flex: 1; }
    .detail-title-row { display: block; }
    .detail-title-row .detail-status-desktop { display: none; }
    .detail-title-copy { flex: 1; }
    .desktop-request-no { display: none; }
    .detail-mobile-meta { display: flex; align-items: center; gap: 8px; margin: 0 0 6px; }
    .detail-mobile-meta .status { min-height: 22px; margin: 0; padding: 0 8px; border-radius: 6px; color: #fff; font-size: 9px; line-height: 1; letter-spacing: .02em; box-shadow: 0 3px 8px rgba(23,35,30,.12); }
    .detail-mobile-meta .status.success { background: var(--green); }
    .detail-mobile-meta .status.warning { background: var(--amber); }
    .detail-mobile-meta .status.muted { background: #66736d; }
    .detail-card, .timeline-card, .action-panel { padding: 18px 16px; }
    .detail-field { min-height: 66px; }
    .items-table-head, .items-table-row { grid-template-columns: 1.1fr .8fr .65fr; font-size: 10px; }
    .permission-user { grid-template-columns: 48px minmax(0,1fr); }
    .permission-user .switch { grid-column: 1/-1; justify-content: flex-end; border-top: 1px solid var(--line-soft); padding-top: 10px; }
    .role-checks { grid-template-columns: 1fr 1fr; padding: 13px; }
    .role-checks label { padding: 0 7px; }
    .permission-footer { align-items: flex-start; gap: 10px; }
    .permission-footer > span { line-height: 1.5; }
    .pagination-wrap nav > div:last-child > div:first-child { display: none; }
    .wechat-pagination { flex-direction: column; gap: 12px; }
    .wechat-pagination-pages { justify-content: center; max-width: 100%; }
    .wechat-page-link { min-width: 40px; min-height: 44px; padding: 0 10px; }
    .warehouse-heading .info-badge { display: none; }
    .category-snapshot-grid { grid-template-columns: 1fr; }
    .category-snapshot-card { min-height: 150px; }
    .warehouse-stat-grid article { min-height: 96px; padding: 15px; }
    .warehouse-stat-grid strong { font-size: 25px; }
    .warehouse-prerequisite { align-items: flex-start; flex-wrap: wrap; }
    .warehouse-prerequisite > div { min-width: calc(100% - 70px); }
    .warehouse-prerequisite > a { margin-left: 62px; }
    .category-edit-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
    .inventory-filter { grid-template-columns: 1fr 1fr; }
    .inventory-search { grid-column: 1/-1; }
    .inventory-filter button { min-height: 40px; }
    .inventory-ledger { border: 0; display: grid; gap: 10px; background: transparent; }
    .inventory-ledger-head { display: none; }
    .inventory-ledger-row { min-height: 0; grid-template-columns: minmax(0,1fr) auto; gap: 14px; padding: 16px; border: 1px solid var(--line); border-radius: 13px; background: #fff; }
    .inventory-ledger-row.low { border-color: #ebcf9d; }
    .inventory-product { grid-column: 1/-1; padding-bottom: 13px; border-bottom: 1px solid var(--line-soft); }
    .inventory-meta { grid-column: 1; }
    .inventory-stock { grid-column: 2; grid-row: 2; text-align: right; }
    .inventory-date { display: none; }
    .inventory-settings { grid-column: 1/-1; }
    .inventory-settings summary { width: 100%; height: 36px; gap: 7px; }
    .inventory-settings summary:after { content: "库存设置"; font-size: 10px; font-weight: 700; }
    .inventory-settings form { position: static; width: 100%; margin-top: 8px; box-shadow: none; }
    .statistics-heading { display: flex !important; align-items: flex-start; }
    .statistics-heading h1 { font-size: 28px; }
    .statistics-heading p { display: none; }
    .statistics-tabs { gap: 6px; }
    .statistics-tabs a { min-height: 44px; gap: 6px; font-size: 11px; }
    .statistics-filter { display: block; padding: 14px; }
    .quick-periods { overflow-x: auto; padding-bottom: 4px; }
    .quick-periods > span { display: none; }
    .quick-periods a { flex: 1 0 auto; justify-content: center; }
    .custom-period { display: grid; grid-template-columns: minmax(0,1fr) 12px minmax(0,1fr); margin-top: 12px; }
    .custom-period input { width: 100%; }
    .custom-period > i { text-align: center; }
    .custom-period button { grid-column: 1/-1; }
    .active-range { margin-top: 11px; text-align: center; }
    .statistics-cards { grid-template-columns: repeat(2,minmax(0,1fr)); gap: 8px; }
    .statistics-card { min-height: 110px; padding: 15px; }
    .statistics-card > strong { font-size: 22px; }
    .analytics-card { padding: 18px 14px; }
    .trend-chart { height: 190px; }
    .analytics-table { overflow-x: auto; }
    .analytics-table-head, .analytics-table-row { min-width: 430px; }
    .dimension-table .analytics-table-head, .dimension-table .analytics-table-row { min-width: 350px; }
}

@media (max-width: 370px) {
    .mobile-brand strong { display: none; }
    .mobile-user { max-width: 190px; }
    .custom-period { grid-template-columns: minmax(0,1fr); }
    .custom-period > i { display: none; }
}

/* Shipping approval and purchasing confirmation */
.cc-options{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:12px}.cc-options label{display:flex;align-items:center;gap:8px;padding:12px;border:1px solid #dde7e1;border-radius:10px}.cc-options small{color:#748079}.cc-options input{accent-color:#0d6b4d}.approval-card{margin-top:24px}.approval-card .field{margin:20px 0}.fulfillment-card{margin-top:28px;border:1px solid #dce5df;border-radius:22px;overflow:hidden;background:#fff;box-shadow:0 12px 40px #173e2810}.fulfillment-hero{display:flex;justify-content:space-between;align-items:center;gap:24px;padding:32px 36px;background:linear-gradient(115deg,#103f33,#0d6b4d);color:white}.fulfillment-hero .eyebrow{color:#a6d8bf}.fulfillment-hero h2{font-size:26px;margin:10px 0}.fulfillment-hero p{color:#c9dfd4;font-size:14px;margin:0}.fulfillment-total{text-align:right}.fulfillment-total>span,.fulfillment-total small{display:block;color:#c9dfd4;font-size:13px}.fulfillment-total strong{display:block;font-size:36px;font-weight:600;letter-spacing:-1px;margin:8px 0;font-variant-numeric:tabular-nums}.fulfillment-body{padding:28px 36px}.pricing-table{margin:12px 0 30px}.pricing-head,.pricing-row{display:grid;grid-template-columns:2fr 1fr 1.2fr;align-items:center;gap:24px;padding:18px 16px;border-bottom:1px solid #e6ece8}.pricing-head{background:#f3f7f4;color:#69786f;font-size:12px;border-radius:10px}.pricing-row small{display:block;color:#79857e;margin-top:6px}.pricing-row .field{margin:0}.pricing-row input{text-align:right;font-size:18px;font-variant-numeric:tabular-nums}.fulfillment-card .form-actions{padding:24px 36px;background:#f8faf8;margin:0;border-top:1px solid #e6ece8}.fulfillment-card .form-actions>span{font-size:13px;color:#6d7c73}#shipping-preview{border:0;border-radius:20px;padding:0;width:min(900px,94vw);max-height:90dvh;color:#172b21;box-shadow:0 32px 100px #0004}#shipping-preview::backdrop{background:#102c24aa;backdrop-filter:blur(4px)}.preview-heading{display:flex;justify-content:space-between;gap:16px;padding:24px 28px;background:#edf5ef}.preview-heading h2{margin:8px 0}.preview-heading p{color:#6d7c73}.preview-heading button{align-self:start}#preview-content{padding:24px}#preview-content .detail-card{box-shadow:none}#preview-content .fulfillment-body{padding:12px 0}#shipping-preview .form-actions{position:sticky;bottom:0;background:#fff;padding:18px 28px;border-top:1px solid #dce5df;margin:0}.preview-total{text-align:right;color:#0d6b4d;padding:20px;background:#edf5ef;border-radius:12px}.primary-btn:disabled{opacity:.65;cursor:wait}
@media(max-width:700px){.fulfillment-hero{display:block;padding:24px}.fulfillment-total{text-align:left;margin-top:24px}.fulfillment-total strong{font-size:32px}.fulfillment-body{padding:20px 16px}.pricing-head,.pricing-row{gap:12px;padding:14px 8px;grid-template-columns:1.4fr .8fr 1fr}.pricing-row input{font-size:16px;padding:10px;width:100%;min-width:0}.fulfillment-card .form-actions{padding:20px;display:flex;flex-direction:column;align-items:stretch;gap:16px}.preview-heading{padding:20px}#preview-content{padding:14px}#shipping-preview .form-actions{padding:14px}.preview-heading h2{font-size:20px}.preview-total{font-size:21px}}

/* Organization and approval workspace */
.organization-summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;margin-bottom:24px}.organization-summary>a{display:flex;flex-direction:column;gap:16px;background:#fff;border:1px solid #e6ebe8;border-radius:16px;padding:24px;color:#1a3029}.organization-summary small{color:#718079;font-size:13px}.organization-summary strong{font-size:30px;letter-spacing:-1px}.organization-summary strong span{font-size:12px;color:#7b8781;font-weight:400;letter-spacing:0}.organization-tabs{display:flex;gap:28px;border-bottom:1px solid #e2e8e4;margin-bottom:28px;padding:0 4px 15px}.organization-tabs a{font-size:14px;color:#3e5d50}.admin-help{font-size:13px;color:#7a8780;line-height:1.9;margin:14px 0 22px}.flow-row{padding:23px 0;border-top:1px solid #eef1ef}.flow-title{display:flex;align-items:center;gap:12px;font-size:14px}.flow-title i{color:#158463}.flow-strip{display:flex;align-items:center;flex-wrap:wrap;gap:12px;margin:20px 0}.flow-strip>b{color:#b8c7be;font-size:17px;font-weight:400}.flow-node{border:1px solid #e1e8e3;background:#f8faf9;padding:12px 16px;border-radius:9px;font-size:12px;color:#40584b;text-align:center}.flow-node small{display:block;margin-top:5px;color:#829087;font-size:10px}.flow-node.current,.flow-node.done{background:#eaf7ef;border-color:#b9dfc9;color:#12673e}.flow-node.conditional{border-style:dashed;background:#fffaf0;color:#8f6b27;border-color:#e7d4a4}.threshold-form{display:flex;gap:20px;align-items:center;padding:24px;background:#f6f8f6;border-radius:12px;flex-wrap:wrap}.threshold-form>div{flex:1;min-width:200px}.threshold-form strong{font-size:14px}.threshold-form p{font-size:12px;color:#7a8780;line-height:1.8;margin-top:8px}.threshold-form .field{max-width:200px}.division-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}.division-card{padding:20px;border:1px solid #e3eae5;border-radius:12px;display:grid;gap:16px}.division-caption{display:flex;justify-content:space-between;align-items:center;color:#7d8b82;font-size:12px}.division-caption i{color:#228258}.division-footer{display:flex;align-items:center;justify-content:space-between;font-size:12px}.new-division{background:#f9fbf9;border-style:dashed}.person-row{border-top:1px solid #edf0ed}.person-row summary{display:flex;align-items:center;gap:14px;padding:18px 0;cursor:pointer;list-style:none}.person-row summary>div:nth-child(2){flex:1}.person-row summary strong{font-size:14px}.person-row summary small{display:block;font-size:12px;color:#819087;margin-top:6px}.person-edit{font-size:12px;color:#22754c}.person-row form{background:#f8faf8;padding:24px;border-radius:12px;margin-bottom:16px}.person-row .role-checks{margin:20px 0}.attachment-link{display:flex;align-items:center;gap:12px;background:#f5f7f6;border-radius:9px;padding:18px;margin:14px 0;color:#315946;font-size:14px;overflow-wrap:anywhere}.attachment-link i:last-child{margin-left:auto}.upload-field{border:1px dashed #cbdcd1;border-radius:12px;padding:20px;background:#fafcfb}.upload-field input{max-width:100%;font-size:12px}.admin-mobile-bar{display:none}.admin-portal .detail-card,.wechat-app #flows,.wechat-app #divisions,.wechat-app #people{margin-bottom:24px;scroll-margin-top:20px}.admin-portal .workspace{max-width:1700px}.admin-portal h2{font-size:20px}.form-icon.invoice,.request-type.invoice{background:#f1edfa;color:#7b59a7}.form-icon.payment,.request-type.payment{background:#edf2ff;color:#557fc2}
@media(max-width:1100px){.division-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.organization-summary{grid-template-columns:repeat(2,minmax(0,1fr))}.flow-strip{gap:7px}.flow-node{padding:10px}}
@media(max-width:767px){.organization-summary{gap:10px}.organization-summary>a{padding:17px}.organization-summary strong{font-size:24px}.organization-tabs{gap:20px;overflow-x:auto;white-space:nowrap}.division-grid{grid-template-columns:1fr}.threshold-form{padding:16px}.threshold-form .field{max-width:none;width:100%}.person-row summary{gap:10px}.person-row .person-edit{display:none}.person-row form{padding:16px}.admin-mobile-bar{display:flex;justify-content:space-between;gap:16px;font-size:13px;padding:12px 0 24px}.admin-portal .workspace{padding-bottom:30px}.flow-node{font-size:11px}.admin-portal .page-heading h1{font-size:28px}}
.organization-summary>a,.organization-tabs a,.admin-mobile-bar a,.attachment-link{text-decoration:none}.organization-summary>a:hover{border-color:#9cc8b0}.organization-tabs a:hover{color:#0d6b4d}.organization-summary>a:focus-visible,.organization-tabs a:focus-visible{outline:2px solid #177551;outline-offset:4px} .admin-portal h1,#flows h2,#divisions h2,#people h2{font-family:"PingFang SC","Microsoft YaHei",sans-serif}
.organization-filters{display:flex;align-items:end;flex-wrap:wrap;gap:14px;margin:20px 0}.organization-filters .field{flex:1;min-width:150px}.organization-filters>a{font-size:13px;padding:12px;color:#47705b;text-decoration:none}.organization-filters .primary-small{min-height:43px}@media(max-width:767px){.organization-filters .field{flex-basis:100%}}

/* Two-step department and person CC picker */
.cc-picker { display: grid; gap: 14px; }
.cc-step { display: grid; grid-template-columns: 30px minmax(0,1fr); gap: 12px; align-items: start; }
.cc-step-number { display: grid; place-items: center; width: 28px; height: 28px; border-radius: 50%; background: var(--green); color: #fff; font: 12px Georgia,serif; }
.cc-step .field { max-width: 420px; }
.cc-step select { width: 100%; height: 44px; border: 1px solid var(--line); border-radius: 9px; background: #fff; color: var(--ink); padding: 0 36px 0 12px; outline: none; }
.cc-step select:focus { border-color: var(--green); box-shadow: 0 0 0 3px rgba(13,107,77,.11); }
.cc-step-body { min-width: 0; }
.cc-person-step { padding-top: 4px; }
.cc-person-heading { display: flex; align-items: center; justify-content: space-between; gap: 14px; margin-bottom: 12px; }
.cc-person-heading > div { display: grid; gap: 4px; }
.cc-person-heading strong { font-size: 12px; }
.cc-person-heading small { color: var(--muted); font-size: 10px; }
.cc-search { display: flex; align-items: center; gap: 8px; width: min(250px,45%); height: 38px; padding: 0 11px; border: 1px solid var(--line); border-radius: 9px; background: #fff; color: var(--muted); }
.cc-search:focus-within { border-color: var(--green); box-shadow: 0 0 0 3px rgba(13,107,77,.09); }
.cc-search input { width: 100%; min-width: 0; border: 0; outline: 0; background: transparent; color: var(--ink); font-size: 11px; }
.cc-search:has(input:disabled) { opacity: .55; background: #f4f5f3; }
.cc-placeholder, .cc-empty { display: flex; align-items: center; justify-content: center; gap: 9px; min-height: 90px; border: 1px dashed #cedbd3; border-radius: 11px; background: #fafbf9; color: var(--muted); font-size: 11px; }
.cc-options { display: grid; grid-template-columns: repeat(auto-fit,minmax(210px,1fr)); gap: 10px; }
.cc-options[hidden], .cc-placeholder[hidden], .cc-empty[hidden], .cc-selected[hidden], [data-cc-person][hidden] { display: none !important; }
.cc-options label { position: relative; display: flex; align-items: center; gap: 10px; min-height: 62px; padding: 10px 36px 10px 10px; border: 1px solid #dde7e1; border-radius: 10px; cursor: pointer; }
.cc-options label:hover { border-color: #a9cbbc; background: #fbfdfc; }
.cc-options label:has(input:checked) { border-color: #69a789; background: #edf7f2; }
.cc-options label > input { position: absolute; opacity: 0; pointer-events: none; }
.cc-options label > span:nth-of-type(2) { display: grid; gap: 4px; min-width: 0; }
.cc-options label strong { font-size: 12px; }
.cc-options label small { color: #748079; font-size: 9px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.cc-options label > i { position: absolute; right: 13px; color: transparent; }
.cc-options label:has(input:checked) > i { color: var(--green); }
.cc-options label:focus-within { outline: 2px solid var(--green); outline-offset: 2px; }
.cc-default-notifiers { padding: 16px; border: 1px solid #cee0d5; border-radius: 11px; background: #f8fbf9; }
.cc-default-notifiers h3 { margin: 0; font-size: 13px; }
.cc-default-notifier-options label { padding-right: 12px; }
.cc-default-notifier-options label > input { position: static; opacity: 1; pointer-events: auto; width: 18px; height: 18px; flex: 0 0 18px; }
.cc-manager-empty { margin: 0; color: var(--muted); font-size: 11px; }
.cc-person-avatar { display: grid; place-items: center; flex: 0 0 34px; height: 34px; border-radius: 50%; background: #e5f1eb; color: var(--green); font-size: 10px; font-weight: 700; }
.cc-selected { display: grid; grid-template-columns: 150px minmax(0,1fr); gap: 14px; padding: 15px 16px; margin-left: 42px; border-radius: 11px; background: #f2f6f3; }
.cc-selected > div:first-child { display: grid; align-content: start; gap: 5px; }
.cc-selected strong { font-size: 11px; }
.cc-selected small { color: var(--muted); font-size: 9px; }
.cc-selected-list { display: flex; flex-wrap: wrap; gap: 7px; }
.cc-selected-list button { display: flex; align-items: center; gap: 6px; min-height: 34px; border: 1px solid #cee0d5; border-radius: 999px; background: #fff; color: var(--ink); padding: 5px 10px; cursor: pointer; }
.cc-selected-list button small { color: var(--muted); font-size: 8px; }
.cc-selected-list button i { color: #8b9991; }
@media(max-width:620px) {
    .cc-person-heading { display: grid; }
    .cc-search { width: 100%; }
    .cc-options { grid-template-columns: 1fr; }
    .cc-selected { grid-template-columns: 1fr; margin-left: 0; }
}

/* Notification center */
.notification-badge{display:inline-flex;align-items:center;justify-content:center;min-width:20px;padding:1px 6px;border-radius:20px;background:#c43c32;color:#fff;font-size:11px;line-height:18px;font-weight:700}
.mobile-nav .mobile-nav-icon { position: relative; display: inline-flex; font-size: 17px; line-height: 1; }
.mobile-nav .notification-badge { position: absolute; top: -5px; left: calc(100% - 4px); z-index: 2; min-width: 14px; height: 14px; padding: 0 3px; font-size: 9px; line-height: 14px; white-space: nowrap; box-shadow: 0 0 0 1px #fff; pointer-events: none; }
.notification-list{display:grid;gap:14px}.notification-card{display:flex;gap:16px;padding:24px;background:#fff;border:1px solid #e3eae6;border-radius:16px}.notification-card.unread{border-left:4px solid #0d6b4d;background:#fcfffd}.notification-icon{display:grid;place-items:center;flex:0 0 42px;height:42px;border-radius:12px;background:#edf5f0;color:#0d6b4d}.notification-body{flex:1;min-width:0}.notification-heading{display:flex;justify-content:space-between;gap:12px;align-items:baseline}.notification-heading strong{font-size:16px}.notification-heading span{font-size:12px;color:#738177;white-space:nowrap}.unread .notification-heading span{color:#0d6b4d;font-weight:700}.notification-body p{margin:10px 0;overflow-wrap:anywhere}.notification-muted{color:#738177;font-size:13px}.notification-note{padding:12px;background:#f6f8f6;border-radius:8px;white-space:pre-wrap}.notification-footer{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:18px}.notification-footer time{font-size:12px;color:#738177}.notification-footer form{margin:0}.primary-small:disabled{opacity:.45;cursor:default}@media(max-width:600px){.notification-card{padding:16px;gap:10px}.notification-icon{flex-basis:32px;height:32px}.notification-heading strong{font-size:14px}.notification-footer .primary-small{font-size:12px;padding:8px 10px}}

.notification-footer button.primary-small,.page-heading form button.primary-small{border:0;cursor:pointer}

.profile-card{margin-bottom:20px;max-width:900px}.profile-identity{display:flex;align-items:center;gap:20px;margin-bottom:24px}.profile-avatar{width:76px;height:76px;border-radius:50%;object-fit:cover}.profile-identity h2{margin:0 0 8px}.profile-identity p,.profile-account p{margin:5px 0;color:var(--muted);overflow-wrap:anywhere}.profile-hint{color:var(--muted);font-size:13px;line-height:1.8;margin:18px 0}.profile-account{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:20px 0;border-bottom:1px solid var(--line-soft)}.profile-account>div{min-width:0}.profile-account form,.profile-account .status{flex-shrink:0}.profile-account small{color:var(--muted)}.profile-card h2{font-size:20px}.profile-card button.primary-btn{border:0;cursor:pointer}

/* Personal center: mobile-first cards, independent of the authentication panel. */
.account-center{max-width:880px;margin:0 auto}.account-hero{position:relative;overflow:hidden;border-radius:24px;background:linear-gradient(125deg,#164b39,#287257);padding:28px;color:#fff;margin-bottom:20px}.account-hero-top{display:flex;justify-content:space-between;gap:12px;font-size:13px;color:#e0eee5;margin-bottom:26px}.account-secure{font-size:11px;color:#bbd6c8}.account-secure i{margin-right:5px}.account-person{display:flex;align-items:center;gap:20px}.account-avatar{width:80px;height:80px;flex:0 0 80px;object-fit:cover;border-radius:24px;border:3px solid #ffffff35}.account-avatar-fallback{display:grid;place-items:center;background:#dceddf;color:#1a503c;font-size:26px;font-weight:700}.account-person-copy{min-width:0}.account-person h1{font-size:28px;margin:0 0 8px;overflow-wrap:anywhere}.account-person p{font-size:13px;margin:0 0 6px;color:#e0eee5}.account-person-copy>span{font-size:12px;color:#c1dbcd}.account-roles{display:flex;flex-wrap:wrap;gap:7px;margin-top:22px}.account-roles>span{font-size:11px;border:1px solid #ffffff26;background:#ffffff0d;padding:6px 10px;border-radius:20px}.account-section{background:#fff;border:1px solid var(--line);border-radius:20px;margin-bottom:16px;padding:22px}.account-section-heading{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:20px}.account-section-heading h2{font-size:17px;margin:0;font-weight:700}.account-section-heading h2>span{font-family:Arial,sans-serif;font-size:12px;color:var(--muted);margin-left:5px}.account-section-heading p{font-size:11px;margin:6px 0 0;color:var(--muted)}.account-section-heading>a{color:var(--green);font-size:12px;text-decoration:none;white-space:nowrap}.account-stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));background:#f5f8f4;border-radius:14px;padding:20px 0;margin-bottom:10px}.account-stats>a{display:flex;flex-direction:column;gap:8px;align-items:center;min-width:0;text-decoration:none;border-right:1px solid #e2e9e1}.account-stats>a:last-child{border-right:0}.account-stats strong{font-size:27px;line-height:1;color:#204d38;overflow-wrap:anywhere;max-width:100%}.account-stats span{font-size:11px;color:#718077}.account-business-row{display:flex;align-items:center;gap:12px;padding:17px 0;text-decoration:none;color:var(--ink);border-bottom:1px solid var(--line-soft)}.account-business-row:last-child{border-bottom:0;padding-bottom:0}.account-business-icon{width:42px;height:42px;flex:0 0 42px;display:grid;place-items:center;border-radius:13px;background:#edf6ee;color:#3c875d}.account-business-icon.payment{background:#eef3ff;color:#6282bc}.account-business-icon.invoice{background:#f6effa;color:#9975b4}.account-business-copy{flex:1;min-width:0;display:flex;flex-direction:column;gap:6px}.account-business-copy strong{font-size:13px}.account-business-copy small{font-size:11px;color:var(--muted)}.account-business-total{font-size:18px;font-weight:600;white-space:nowrap}.account-business-total small{font-size:10px;font-weight:400;margin-left:4px;color:var(--muted)}.account-business-row>i{color:#bbc6bf;font-size:12px}.account-info-row{display:flex;justify-content:space-between;align-items:baseline;gap:16px;padding:14px 0;border-bottom:1px solid var(--line-soft);font-size:12px}.account-info-row:last-child{border-bottom:0;padding-bottom:0}.account-info-row>span{color:var(--muted);flex-shrink:0}.account-info-row>span>i{width:20px}.account-info-row strong{min-width:0;text-align:right;overflow-wrap:anywhere;font-size:12px;font-weight:500}.account-info-row .account-bound{color:#258454}.account-info-row .account-unbound{color:#a9803a}.account-binding-note{display:flex;flex-wrap:wrap;gap:8px;justify-content:space-between;font-size:11px;line-height:1.7;background:#f7f9f5;padding:12px;border-radius:10px;margin-top:12px;color:var(--muted)}.account-binding-note a{color:var(--green);white-space:nowrap}.account-menu{padding-top:3px;padding-bottom:3px}.account-menu>a,.account-menu button{display:flex;align-items:center;justify-content:space-between;gap:10px;min-height:60px;padding:12px 0;width:100%;border:0;background:transparent;font-size:13px;color:var(--ink);text-decoration:none;cursor:pointer;text-align:left}.account-menu>a,.account-menu form{border-bottom:1px solid var(--line-soft);margin:0}.account-menu>:last-child{border-bottom:0}.account-menu span{display:flex;align-items:center;gap:12px}.account-menu span>i{width:18px;color:#68917a}.account-menu .fa-angle-right{color:#bdc8c0;font-size:12px}.account-menu small{font-size:11px;color:var(--muted)}.account-linked-row{display:flex;align-items:center;gap:10px;border-bottom:1px solid var(--line-soft);padding:16px 0}.account-linked-row:last-child{border-bottom:0;padding-bottom:0}.account-linked-avatar{display:grid;place-items:center;width:36px;height:36px;flex:0 0 36px;background:#edf4ed;color:#53765e;border-radius:11px;font-size:12px}.account-linked-row>div{flex:1;min-width:0}.account-linked-row strong{font-size:13px}.account-linked-row p{font-size:11px;margin:5px 0;color:var(--muted);overflow-wrap:anywhere}.account-linked-row small{font-size:10px;color:var(--muted)}.account-linked-row form{flex-shrink:0;margin:0}.account-linked-row button{border:1px solid #d8e5da;border-radius:9px;color:var(--green);background:#f6faf6;padding:10px;font-size:11px;min-height:42px;cursor:pointer}.account-current{color:#508666;font-size:11px;flex-shrink:0}.account-logout button{width:100%;min-height:52px;background:#fff;border:1px solid var(--line);border-radius:15px;color:#9b6356;font-size:13px;cursor:pointer}.account-logout i{margin-right:6px}.account-footer{text-align:center;font-size:10px;letter-spacing:1px;color:#a4ada5;padding:12px 0 8px}.account-empty{font-size:12px;line-height:1.8;color:var(--muted)}@media(max-width:600px){.account-hero{padding:22px 20px;border-radius:20px;margin-bottom:14px}.account-hero-top{margin-bottom:22px}.account-person{gap:15px}.account-avatar{width:68px;height:68px;flex-basis:68px;border-radius:20px}.account-person h1{font-size:24px}.account-section{padding:20px 16px;border-radius:17px;margin-bottom:12px}.account-menu{padding-top:3px;padding-bottom:3px}.account-stats strong{font-size:24px}.account-linked-row{gap:8px}.account-linked-row button{max-width:80px;line-height:1.4}.account-roles{margin-top:18px}.account-section-heading h2{font-size:16px}.account-hero-top>span:first-child{font-weight:600}}

/* Match the desktop workspace width and keep profile content left-aligned. */
@media (min-width: 901px) {
    .account-center { width: 100%; max-width: none; margin: 0; text-align: left; }
    .account-stats > a { align-items: flex-start; padding: 0 24px; }
    .account-info-row { display: grid; grid-template-columns: 140px minmax(0, 1fr); }
    .account-info-row strong { text-align: left; }
    .account-logout button { width: auto; padding: 0 24px; }
    .account-footer { text-align: left; }
}

/* Keep editable controls at 16px on touch screens to avoid iOS focus zoom.
   This overrides compact form styles without disabling manual pinch zoom. */
@media (max-width: 900px), (pointer: coarse) {
    body.wechat-auth input, body.wechat-auth select, body.wechat-auth textarea,
    body.wechat-app input, body.wechat-app select, body.wechat-app textarea {
        font-size: 16px !important;
    }
}

/* Shared invoice and payment attachments. */
.attachment-upload { min-width: 0; padding: 18px; border: 1px solid #dce6df; border-radius: 12px; background: #fbfcfa; }
.attachment-upload-heading { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-bottom: 14px; }
.attachment-upload-heading label { font-size: 14px; font-weight: 700; color: #304d3e; }
.attachment-upload-heading > span { font-size: 11px; color: #64756b; background: #eef3ee; padding: 3px 8px; border-radius: 5px; }
.attachment-upload-picker { display: block; position: relative; border: 1px dashed #c2d4c8; border-radius: 10px; background: #fff; cursor: pointer; }
.attachment-upload-picker:focus-within { outline: 3px solid #b6dac8; outline-offset: 2px; }
.attachment-upload-picker:hover { border-color: #0d6b4d; background: #f6faf7; }
.attachment-upload-picker input { width: 100%; min-width: 0; padding: 12px; font-size: 13px; }
.attachment-upload-visual { display: none; align-items: center; gap: 12px; padding: 18px 14px; min-height: 90px; }
.attachment-upload.is-enhanced .attachment-upload-visual { display: flex; }
.attachment-upload.is-enhanced .attachment-upload-picker input { position: absolute; inset: 0; width: 100%; height: 100%; opacity: 0; cursor: pointer; z-index: 1; }
.attachment-upload-icon { display: grid; place-items: center; flex: 0 0 38px; height: 38px; background: #edf5ef; border-radius: 10px; color: #0d6b4d; font-size: 16px; }
.attachment-upload-copy { flex: 1; min-width: 0; }
.attachment-upload-copy strong { display: block; font-size: 13px; font-weight: 500; line-height: 1.6; overflow-wrap: anywhere; color: #304d3e; }
.attachment-upload-copy small { display: block; margin-top: 5px; font-size: 11px; line-height: 1.6; color: #64756b; }
.attachment-upload-choose { flex-shrink: 0; color: #0d6b4d; font-size: 12px; font-weight: 600; }
.attachment-upload-footer { display: flex; align-items: center; justify-content: space-between; gap: 12px; min-height: 44px; margin-top: 6px; font-size: 11px; color: #64756b; }
.attachment-upload-footer button { min-height: 44px; padding: 0 8px; border: 0; background: transparent; color: #9c4236; font: inherit; cursor: pointer; }
.attachment-upload-footer button[hidden] { display: none; }
.attachment-upload.has-file { border-color: #9fc9af; }
.attachment-upload.has-file .attachment-upload-picker { border-style: solid; border-color: #cee1d4; }
.attachment-upload.has-file [data-upload-status] { color: #0d6b4d; }
.attachment-upload-note { margin: 14px 0 0; color: #64756b; font-size: 11px; line-height: 1.7; }
@media (max-width: 620px) {
    .attachment-upload { padding: 14px; }
    .attachment-upload-visual { flex-wrap: wrap; padding: 14px 12px; gap: 10px; }
    .attachment-upload-copy { flex-basis: calc(100% - 48px); }
    .attachment-upload-choose { margin-left: 48px; }
}

/* 按角色展示的统计总览与业务明细 */
.statistics-tabs { grid-template-columns: repeat(4,minmax(0,1fr)); }
.statistics-scope { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 14px; padding: 16px 18px; margin-bottom: 16px; border: 1px solid #cfe4da; border-radius: 13px; background: #eaf4ee; }
.scope-copy { display: flex; align-items: center; gap: 12px; min-width: 0; }
.scope-icon { display: grid; place-items: center; flex: 0 0 38px; height: 38px; border-radius: 10px; background: #fff; color: var(--green); }
.scope-copy strong { display: block; color: var(--green-deep); font-size: 14px; overflow-wrap: anywhere; }
.scope-copy small { display: block; margin-top: 5px; color: var(--muted); font-size: 11px; line-height: 1.6; }
.scope-switch { display: flex; gap: 4px; padding: 4px; border-radius: 9px; background: rgba(255,255,255,.65); }
.scope-switch a { padding: 8px 12px; border-radius: 6px; color: var(--muted); text-decoration: none; font-size: 12px; white-space: nowrap; }
.scope-switch a.active { background: var(--green); color: #fff; }
.statistics-drilldown { display: flex; flex-wrap: wrap; align-items: center; gap: 12px; margin: 0 0 16px; }
.statistics-drilldown label { display: flex; align-items: center; gap: 8px; color: var(--muted); font-size: 12px; }
.statistics-drilldown select { min-width: 130px; max-width: 220px; padding: 9px 28px 9px 10px; border: 1px solid var(--line); border-radius: 8px; background: #fff; color: var(--ink); font-size: 12px; }
.statistics-drilldown button { border: 0; border-radius: 8px; background: var(--green); color: #fff; padding: 10px 16px; cursor: pointer; font-size: 12px; }
.statistics-drilldown > a { color: var(--green); font-size: 12px; }
.statistics-card > span { font-size: 12px; }
.statistics-card > small { font-size: 11px; line-height: 1.6; }
.business-snapshots { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 14px; margin-bottom: 14px; }
.business-snapshot { min-width: 0; padding: 22px; border: 1px solid var(--line); border-top: 3px solid var(--green); border-radius: 13px; background: #fff; }
.business-snapshot.payment { border-top-color: #bc8528; }
.business-snapshot.invoice { border-top-color: #5e79a2; }
.snapshot-heading { display: flex; align-items: center; justify-content: space-between; gap: 10px; margin-bottom: 20px; }
.snapshot-heading > span { display: flex; gap: 9px; align-items: center; font-size: 16px; font-weight: 700; }
.snapshot-heading > span i { color: var(--green); }
.payment .snapshot-heading > span i { color: #bc8528; }
.invoice .snapshot-heading > span i { color: #5e79a2; }
.snapshot-heading a { font-size: 11px; color: var(--green); text-decoration: none; white-space: nowrap; }
.snapshot-amount { display: block; color: var(--ink); font: bold clamp(22px,2.2vw,30px) Georgia,"Songti SC",serif; overflow-wrap: anywhere; }
.business-snapshot > small { display: block; color: var(--muted); margin-top: 7px; font-size: 11px; }
.snapshot-counts { display: grid; grid-template-columns: repeat(3,1fr); gap: 8px; margin: 20px 0; }
.snapshot-counts > div { border-right: 1px solid var(--line-soft); }
.snapshot-counts > div:last-child { border: 0; }
.snapshot-counts dt { color: var(--muted); font-size: 11px; }
.snapshot-counts dd { margin: 7px 0 0; font-size: 20px; font-weight: 700; }
.snapshot-counts dd a { color: #a16c1d; text-decoration: none; }
.snapshot-progress > span { display: block; margin-bottom: 8px; font-size: 11px; color: var(--muted); }
.business-snapshot p { margin: 12px 0 0; min-height: 18px; color: var(--muted); font-size: 11px; line-height: 1.7; overflow-wrap: anywhere; }
.statistics-note { display: flex; gap: 7px; margin: 12px 0 18px; color: var(--muted); font-size: 11px; line-height: 1.8; }
.statistics-note > i { margin-top: 4px; color: var(--green); }
.statistics-money-strip { display: flex; flex-wrap: wrap; gap: 18px 32px; margin-bottom: 14px; padding: 16px 20px; border-radius: 12px; background: #eaf0ec; }
.statistics-money-strip small { display: block; margin-bottom: 6px; color: var(--muted); font-size: 11px; }
.statistics-money-strip strong { font-size: 18px; color: var(--green-deep); overflow-wrap: anywhere; }
.statistics-money-strip p { flex-basis: 100%; margin: 0; font-size: 11px; color: var(--muted); }
.statistics-table-scroll { max-width: 100%; overflow-x: auto; border: 1px solid var(--line-soft); border-radius: 9px; }
.statistics-data-table { width: 100%; border-collapse: collapse; font-size: 12px; text-align: left; }
.statistics-data-table th { padding: 12px 14px; background: #f3f6f4; color: var(--muted); font-size: 11px; font-weight: 600; white-space: nowrap; }
.statistics-data-table td { padding: 13px 14px; border-top: 1px solid var(--line-soft); white-space: nowrap; }
.statistics-data-table td:first-child { min-width: 120px; max-width: 300px; white-space: normal; overflow-wrap: anywhere; }
.statistics-data-table td small { display: block; margin-top: 5px; color: var(--muted); font-size: 10px; }
.statistics-data-table a { color: var(--green); text-decoration: none; }
.statistics-data-table a:hover { text-decoration: underline; }
.statistics-data-table tbody tr:hover { background: #fbfcfa; }
.pending-count { color: #a16c1d; font-weight: 700; }
.statistics-records, .statistics-task-card { margin-top: 16px; scroll-margin-top: 20px; }
.record-status-tabs { display: flex; flex-wrap: wrap; align-items: center; gap: 6px; margin-bottom: 14px; }
.record-status-tabs a { padding: 8px 10px; border-radius: 7px; background: var(--paper); color: var(--muted); font-size: 11px; text-decoration: none; }
.record-status-tabs a.active { color: var(--green); background: var(--mint); font-weight: 700; }
.record-status-tabs small { margin-left: auto; font-size: 10px; color: var(--muted); }
.record-status { padding: 5px 8px; border-radius: 6px; background: var(--amber-soft); color: #93641d; font-size: 11px; }
.record-status.success { background: var(--mint); color: var(--green); }
.record-status.muted { background: #edf0ee; color: var(--muted); }
.task-count { font: 12px sans-serif; color: var(--green); background: var(--mint); border-radius: 6px; padding: 4px 8px; vertical-align: middle; }
.statistics-task-list { display: grid; gap: 0; }
.statistics-task-list > a { display: flex; justify-content: space-between; align-items: center; gap: 14px; padding: 14px 0; border-top: 1px solid var(--line-soft); text-decoration: none; color: var(--ink); }
.statistics-task-list strong { font-size: 13px; }
.statistics-task-list small { display: block; margin-top: 6px; font-size: 11px; color: var(--muted); }
.statistics-task-list > a > span { font-size: 11px; color: #a16c1d; text-align: right; }
.statistics-more { display: inline-block; margin-top: 10px; color: var(--green); font-size: 12px; }
.statistics-filter { flex-wrap: wrap; }
.statistics-tabs a:focus-visible, .scope-switch a:focus-visible, .statistics-data-table a:focus-visible, .business-snapshot a:focus-visible { outline: 2px solid var(--green); outline-offset: 3px; }
@media (max-width: 1100px) {
    .business-snapshots { grid-template-columns: 1fr; }
    .business-snapshot { display: grid; grid-template-columns: 1fr 1fr; gap: 0 24px; }
    .snapshot-heading { grid-column: 1 / -1; margin-bottom: 16px; }
    .snapshot-amount { align-self: end; }
    .business-snapshot > small { grid-column: 1; }
    .snapshot-counts { grid-column: 2; grid-row: 2 / 4; margin: 0; align-items: center; }
    .snapshot-progress { grid-column: 1 / -1; margin-top: 18px; }
    .business-snapshot p { grid-column: 1 / -1; }
}
@media (max-width: 600px) {
    .statistics-tabs { gap: 6px; }
    .statistics-tabs a { flex-direction: column; gap: 5px; min-height: 56px; font-size: 11px; }
    .statistics-scope { padding: 13px; gap: 12px; }
    .scope-switch { width: 100%; }
    .scope-switch a { flex: 1; text-align: center; }
    .scope-copy small { font-size: 10px; }
    .statistics-heading { gap: 8px; }
    .statistics-heading .export-btn { flex-shrink: 0; min-height: 36px; padding: 0 10px; font-size: 11px; }
    .statistics-card > strong { font-size: clamp(18px,5vw,24px); }
    .statistics-card > small { font-size: 10px; }
    .statistics-drilldown { gap: 8px; }
    .statistics-drilldown label { width: calc(50% - 4px); flex-direction: column; align-items: stretch; gap: 5px; }
    .statistics-drilldown select { width: 100%; max-width: none; min-width: 0; }
    .statistics-money-strip { gap: 15px; padding: 14px; }
    .statistics-money-strip strong { font-size: 16px; }
    .business-snapshot { padding: 16px; gap: 0 16px; }
    .snapshot-counts dd { font-size: 18px; }
    .snapshot-counts dt { font-size: 10px; }
    .snapshot-amount { font-size: 22px; }
    .statistics-performance, .statistics-records, .statistics-task-card { padding: 16px; }
    .statistics-task-list > a { align-items: flex-start; }
    .statistics-task-list > a > div { min-width: 0; overflow-wrap: anywhere; }
    .statistics-task-list > a > span { flex: 0 0 105px; }
    .record-status-tabs small { width: 100%; margin: 4px 0 0; }
    .quick-periods { flex-wrap: wrap; }
}
@media (max-width: 380px) {
    .business-snapshot { display: block; }
    .snapshot-counts { margin: 16px 0; }
    .snapshot-progress { margin-top: 14px; }
}
.statistics-more-tasks summary { margin-top: 12px; padding: 10px 0; color: var(--green); font-size: 12px; cursor: pointer; }
@media (max-width: 900px) {
    .statistics-heading .export-btn { display: inline-flex; }
}
@media (max-width: 600px) {
    .statistics-heading { flex-wrap: wrap; align-items: center; }
    .statistics-heading h1 { font-size: 26px; }
}
.statistics-performance .statistics-data-table th:not(:first-child), .statistics-performance .statistics-data-table td:not(:first-child) { text-align: right; }
.statistics-performance .statistics-data-table th:first-child, .statistics-performance .statistics-data-table td:first-child { position: sticky; left: 0; z-index: 1; box-shadow: 1px 0 var(--line-soft); background: #fff; }
.statistics-performance .statistics-data-table th:first-child { background: #f3f6f4; }
.statistics-table-scroll:focus-visible { outline: 2px solid var(--green); outline-offset: 2px; }
