:root { --ink:#173042; --muted:#6c7d88; --line:#dce5e8; --paper:#f4f7f6; --card:#fff; --accent:#0d8069; --accent-dark:#076251; }
* { box-sizing:border-box; }
body { margin:0; background:var(--paper); color:var(--ink); font:16px/1.45 -apple-system,BlinkMacSystemFont,"PingFang SC","Microsoft YaHei",sans-serif; }
.app-shell { max-width:1080px; margin:auto; padding:28px 18px 64px; }
header { display:flex; justify-content:space-between; align-items:end; margin-bottom:22px; }
h1,h2,p { margin:0; } h1 { font-size:30px; letter-spacing:.03em; } h2 { font-size:18px; margin-bottom:15px; }
.eyebrow { color:var(--accent); font-size:13px; font-weight:700; letter-spacing:.15em; }
.sync { display:flex; gap:7px; align-items:center; color:var(--muted); font-size:14px; }
.sync i { width:9px; height:9px; border-radius:50%; background:#23a171; }
.tabs { display:flex; gap:6px; margin-bottom:14px; border-bottom:1px solid var(--line); }
.tabs button { padding:11px 15px; border:0; border-bottom:3px solid transparent; border-radius:0; background:transparent; color:var(--muted); font-size:15px; }
.tabs button.active { border-bottom-color:var(--accent); color:var(--accent-dark); font-weight:700; }
.view { display:none; } .view.active { display:block; }
.card { padding:20px; border:1px solid var(--line); border-radius:14px; background:var(--card); box-shadow:0 2px 6px #17304208; }
.count-card { display:grid; gap:16px; max-width:580px; margin:auto; border-color:#8fd1bc; border-radius:18px; background:#e2f7ee; box-shadow:0 7px 18px #0b8a6a12; }
.group-context { display:flex; align-items:center; justify-content:flex-end; color:var(--muted); font-size:13px; }.group-context select { width:auto; max-width:250px; padding:5px 26px 5px 9px; border:1px solid #a6cfbf; border-radius:7px; background:#fff; color:var(--accent-dark); font-size:13px; font-weight:700; }.group-context.needs-group { justify-content:stretch; }.group-context.needs-group select { width:100%; max-width:none; padding:10px 30px 10px 12px; border-color:#d49a37; background:#fff7e8; color:#8b5c0a; font-size:14px; box-shadow:0 0 0 3px #f7e2b940; }.group-prompt { margin:0; padding:9px 11px; border-radius:8px; background:#fff7e8; color:#895d09; font-size:14px; font-weight:650; }
.group-prompt[hidden] { display:none !important; }
.picker-anchor { position:relative; }.picker-anchor.has-selection #pickerSearchField { display:none; }.picker-anchor.has-selection .picker-results { display:none !important; }
.count-card label,.card label { display:grid; gap:6px; font-size:14px; font-weight:650; }
input,select { width:100%; padding:11px 12px; border:1px solid #b9c8cd; border-radius:9px; background:#fff; color:var(--ink); font:inherit; }
input:focus,select:focus { outline:3px solid #bae4d9; border-color:var(--accent); }
/* 未选择分组时：保留原输入顺序，但明确表现为不可录入。 */
#pickerSearch:disabled,#quantity:disabled { border-color:#d7dfe1; background:#eef2f2; color:#97a4a8; cursor:not-allowed; box-shadow:none; }#pickerSearch:disabled::placeholder,#quantity:disabled::placeholder { color:#9aa7ab; }#pickerSearchField:has(#pickerSearch:disabled),.count-card label:has(#quantity:disabled) { color:#87969a; }
input.invalid { border-color:#c54040; background:#fff7f7; } input.invalid:focus { outline-color:#f1c2c2; border-color:#c54040; }.quantity-precision-hint { display:block; margin-top:4px; color:#818997; font-size:11px; font-weight:400; line-height:1.2; }
button { padding:10px 14px; border:1px solid #a8bac0; border-radius:9px; background:#fff; color:var(--ink); font:inherit; font-weight:650; cursor:pointer; }
button:hover { border-color:var(--accent); } button:disabled { opacity:.48; cursor:not-allowed; }
.primary { padding:12px; border-color:var(--accent); background:var(--accent); color:#fff; font-size:17px; }.primary:hover { background:var(--accent-dark); }
.quiet { color:var(--muted); font-size:13px; }
.picker-results { position:absolute; top:calc(100% - 1px); right:0; left:0; z-index:4; display:none; max-height:280px; overflow:auto; border:1px solid #afc7c2; border-radius:0 0 10px 10px; background:#fff; box-shadow:0 12px 24px #17304224; }.picker-results.open { display:block; }.picker-results button { display:block; width:100%; padding:11px 12px; border:0; border-bottom:1px solid var(--line); border-radius:0; text-align:left; }.picker-results button:last-child { border-bottom:0; }.picker-results button:hover { background:#f1faf7; }.picker-results strong { display:block; }.picker-results small { color:var(--muted); }.picker-result-meta { display:flex; flex-wrap:wrap; align-items:baseline; gap:2px 6px; margin-top:2px; line-height:1.35; }.picker-result-meta b { color:#71838d; font-size:11px; }.picker-result-meta i { color:#a5bbb4; font-style:normal; }.phonetic-match { padding:1px 5px; border-radius:999px; background:#f1efff; color:#645ec4; font-size:10px; font-weight:700; }.picker-results p { padding:11px 12px; }
.selected-product { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:10px; align-items:start; padding:11px 12px; border:1px solid #83c8b5; border-left:4px solid var(--accent); border-radius:8px; background:#e5f6f0; box-shadow:0 3px 10px #0d806918; }.selected-detail { min-width:0; }.selected-detail > strong { display:block; overflow-wrap:anywhere; color:var(--accent-dark); font-size:18px; line-height:1.3; }.selection-indicator { display:inline-flex; align-items:center; justify-content:center; width:17px; height:17px; margin-right:6px; border-radius:50%; background:var(--accent); color:#fff; font-size:11px; font-style:normal; line-height:1; vertical-align:1px; }.selected-meta { display:flex; flex-wrap:wrap; align-items:baseline; gap:2px 7px; margin-top:5px; color:var(--ink); font-size:12px; line-height:1.4; }.selected-meta-item { overflow-wrap:anywhere; }.selected-meta-item b { color:var(--muted); font-size:11px; }.selected-meta i,.selected-context i { color:#9ab9b1; font-style:normal; }.selected-context { display:block; margin-top:5px; color:var(--muted); font-size:11px; line-height:1.35; }.change-product-button { align-self:start; padding:2px 0; border:0; border-bottom:1px solid transparent; border-radius:0; background:transparent; color:var(--accent-dark); font-size:12px; font-weight:700; }.change-product-button:hover { border-bottom-color:var(--accent); }
.selected-product[hidden] { display:none !important; }
.form-feedback { margin:0; padding:9px 11px; border-radius:8px; font-size:14px; font-weight:650; }.form-feedback.error { background:#fff0f0; color:#a12f2f; }.form-feedback.success { background:#eaf8f2; color:#076251; }.join-success-feedback { display:grid; grid-template-columns:auto auto minmax(0,1fr) auto; gap:7px; align-items:center; padding:8px 10px; border-radius:7px; background:#ecf8f3; color:#076251; font-size:12px; line-height:1.25; }.join-success-icon { display:inline-flex; align-items:center; justify-content:center; width:16px; height:16px; border-radius:50%; background:#16856f; color:#fff; font-size:10px; }.join-success-status { white-space:nowrap; font-weight:700; }.join-success-name { min-width:0; overflow:hidden; color:#285d51; font-size:13px; text-overflow:ellipsis; white-space:nowrap; }.join-success-quantity { padding-left:8px; border-left:1px solid #b9dfd2; color:#076251; font-size:14px; white-space:nowrap; }
.local-total { max-width:580px; margin:13px auto 0; color:var(--accent-dark); text-align:center; font-weight:650; }
.summary-section { max-width:900px; margin:16px auto 0; border-color:#b7b1f0; border-radius:18px; background:#f0eeff; box-shadow:0 7px 18px #5e5ce612; }.summary-heading { margin-bottom:11px; }.summary-heading span { display:inline-flex; align-items:center; gap:6px; color:#4f4bc8; font-size:17px; font-weight:800; }.summary-heading span::before { content:'▦'; color:#6d68dd; font-size:16px; }.summary-section .summary-toolbar,.summary-section .summary-meta { padding:0 2px; }.summary-section .summary-toolbar button { border-color:#b7b1f0; color:#4f4bc8; }.summary-section .summary-toolbar button:hover { border-color:#5e5ce6; color:#403cb4; }.summary-section .summary-toolbar .danger-button { border-color:#c56b6b; color:#a12f2f; }.summary-section .table-wrap { border:1px solid #d8d4fa; border-radius:11px; background:#fff; box-shadow:inset 0 1px #fbfaff; }.summary-section .summary-scope { background:#e2e0ff; color:#4f4bc8; }
.summary-toolbar { display:grid; grid-template-columns:minmax(220px,1fr) auto auto auto; gap:12px; align-items:end; }.summary-toolbar button { min-height:45px; border-color:var(--accent); color:var(--accent-dark); white-space:nowrap; }.summary-toolbar .danger-button { border-color:#c56b6b; color:#a12f2f; }
.summary-meta { display:flex; flex-wrap:wrap; align-items:center; gap:7px; margin-top:10px; color:var(--muted); font-size:13px; }.summary-scope,.summary-stat,.summary-empty { padding:4px 8px; border-radius:999px; background:#eef5f3; color:var(--accent-dark); font-weight:650; }.summary-stat { background:#f3f6f6; color:var(--muted); }.summary-counted strong { color:#08705d; }.summary-uncounted strong { color:#a46a09; }.summary-empty { background:#fff7e8; color:#895d09; }.table-wrap { margin-top:14px; overflow:auto; } table { width:100%; min-width:680px; border-collapse:collapse; text-align:left; } th,td { padding:11px 9px; border-bottom:1px solid var(--line); vertical-align:top; } th { color:var(--muted); font-size:13px; white-space:nowrap; }
.mobile-row,td.mobile-cell,.mobile-full-row,td.mobile-full-cell,.mobile-summary-all-row,td.mobile-summary-all-cell { display:none; }
.sort-button { display:inline; padding:0; border:0; border-radius:0; background:transparent; color:inherit; font-size:inherit; font-weight:700; }.sort-button:hover { border:0; color:var(--accent-dark); text-decoration:underline; }
.pagination { display:flex; align-items:center; justify-content:space-between; gap:12px; margin-top:14px; color:var(--muted); font-size:13px; }.pagination > div { display:flex; align-items:center; gap:6px; }.pagination button { min-width:52px; padding:6px 8px; font-size:13px; }.pagination strong { min-width:50px; color:var(--ink); text-align:center; }
.grid { display:grid; grid-template-columns:1fr 1.4fr; gap:16px; margin-bottom:16px; }.inline-form { display:flex; gap:8px; }.tag-list { display:flex; flex-wrap:wrap; gap:8px; margin-top:15px; }.tag { padding:6px 10px; border:1px solid #bfd5d0; border-radius:999px; background:#f1faf7; font-size:14px; }.tag button { margin-left:5px; padding:0; border:0; background:transparent; color:#8c3636; }.form-grid { display:grid; grid-template-columns:1fr 1fr; gap:10px; }.form-grid button { grid-column:1/-1; }
.settings-tabs { display:inline-flex; gap:4px; margin-bottom:10px; padding:4px; border:1px solid #d5e3df; border-radius:10px; background:#edf4f2; }.settings-tabs button { min-width:116px; padding:8px 13px; border:1px solid transparent; border-radius:7px; background:transparent; color:var(--muted); font-size:15px; }.settings-tabs button:hover { border-color:#b8d6ce; }.settings-tabs button.active { border-color:var(--accent); background:var(--accent); color:#fff; font-weight:750; box-shadow:0 2px 5px #0d806933; }.settings-panel { display:none; }.settings-panel.active { display:block; }.product-list-card { margin-top:0; }
.product-list-title { display:flex; align-items:flex-start; gap:8px; }.mobile-display-settings { position:relative; }.display-settings-trigger { width:27px; height:27px; padding:0; border:0; border-radius:7px; background:transparent; color:#83918e; font-size:17px; font-weight:400; line-height:1; }.display-settings-trigger:hover { background:#edf4f2; color:var(--accent-dark); }.mobile-display-settings-popover { position:absolute; top:33px; right:0; z-index:12; display:grid; gap:8px; width:212px; padding:11px; border:1px solid #cdded9; border-radius:10px; background:#fff; box-shadow:0 10px 24px #183d3522; }.mobile-display-settings-popover[hidden] { display:none !important; }.mobile-display-settings-popover strong { color:var(--ink); font-size:13px; }.mobile-display-settings-popover label { display:grid; gap:5px; color:var(--muted); font-size:12px; font-weight:650; }.mobile-display-settings-popover select { padding:6px 26px 6px 8px; }.mobile-display-settings-popover small { color:var(--muted); font-size:11px; }
.form-grid > label { display:grid; gap:6px; color:var(--ink); font-size:14px; font-weight:700; }.form-grid > label[hidden],.code-display[hidden] { display:none !important; }.field-label { display:block; }.field-label em { color:#b23838; font-style:normal; }.form-actions { display:flex; grid-column:1/-1; gap:10px; }.form-actions .primary { flex:1; }.row-actions { display:flex; gap:7px; white-space:nowrap; }.row-actions button { padding:5px 8px; font-size:13px; }.row-actions .delete-button { border-color:#d98d8d; color:#a12f2f; }
.form-actions .code-change-button { border-color:#d29a3b; color:#875a08; }.form-actions .delete-button { border-color:#d98d8d; color:#a12f2f; }.form-actions button[hidden] { display:none !important; }.product-list-head { display:flex; align-items:start; justify-content:space-between; gap:15px; }.product-list-head h2 { margin-bottom:4px; }.product-actions { display:flex; gap:9px; flex-wrap:wrap; }.product-actions #toggleProductColumns { display:none; }.product-list-search { display:grid; gap:6px; margin-top:16px; font-size:14px; font-weight:650; }
.product-list-card { padding:16px; }.product-list-card .product-list-head { gap:10px; }.product-list-card .product-list-search { margin-top:10px; }.product-list-card .table-wrap { margin-top:10px; }.product-list-card .pagination { margin-top:10px; }
.modal { position:fixed; inset:0; z-index:20; display:none; align-items:center; justify-content:center; padding:16px; background:#102d3a77; }.modal.open { display:flex; }.modal-panel { width:min(620px,100%); max-height:90vh; overflow:auto; padding:20px; border-radius:16px; background:#fff; box-shadow:0 20px 55px #102d3a55; }.modal-header { display:flex; align-items:center; justify-content:space-between; margin-bottom:16px; }.modal-header h2 { margin:0; }.icon-button { width:36px; height:36px; padding:0; border:0; background:#f0f4f4; font-size:25px; font-weight:400; line-height:1; }.code-change-modal { width:min(500px,100%); }.code-change-modal > p { margin:0 0 12px; }.code-change-modal label { display:grid; gap:6px; font-size:14px; font-weight:650; }
.code-display { display:grid; gap:5px; padding:10px 12px; border:1px solid #d6e5e0; border-radius:9px; background:#f2f8f6; }.code-display span { color:var(--muted); font-size:13px; font-weight:650; }.code-display strong { color:var(--accent-dark); font-size:16px; letter-spacing:.03em; }
.field-hint { color:var(--muted); font-size:12px; font-weight:400; line-height:1.35; }
.import-modal { width:min(720px,100%); }.import-modal > .quiet { margin-bottom:14px; }.file-input-label { display:grid; gap:6px; margin-bottom:12px; font-size:14px; font-weight:650; }.file-input-label input { padding:8px; }.import-modal > label:not(.file-input-label):not(.checkbox-label) { display:grid; gap:6px; margin-bottom:12px; font-size:14px; font-weight:650; }.checkbox-label { display:flex; align-items:center; gap:8px; margin:12px 0; color:var(--ink); font-size:14px; }.checkbox-label input { width:auto; }.import-feedback { min-height:22px; margin:10px 0; color:var(--muted); font-size:14px; }.import-feedback.error { color:#a12f2f; }.import-feedback.success { color:#076251; }.import-preview { max-height:270px; overflow:auto; }.import-preview > p { margin:0; color:var(--muted); font-size:13px; }.import-preview .table-wrap { margin-top:7px; }.import-preview table { min-width:540px; }
.rebuild-confirm-modal { width:min(560px,100%); }.danger-notice { margin-bottom:16px; padding:14px; border:1px solid #edb9b9; border-radius:10px; background:#fff2f2; color:#8a2424; }.danger-notice strong { display:block; }.danger-notice p { margin:7px 0 0; line-height:1.55; }.rebuild-acknowledge { padding:10px 12px; border-radius:8px; background:#fff8e9; color:#6d4b08; font-weight:650; }.danger-primary { flex:1; border-color:#b84242; background:#b84242; color:#fff; }.danger-primary:hover { background:#922b2b; }
.clear-entries-modal { width:min(470px,100%); }.clear-entries-notice { display:flex; gap:11px; align-items:flex-start; margin-bottom:12px; padding:13px; border:1px solid #efc7c7; border-radius:11px; background:#fff4f4; color:#8a2b2b; }.clear-entries-notice > span { display:inline-flex; flex:0 0 auto; align-items:center; justify-content:center; width:21px; height:21px; border-radius:50%; background:#c34b4b; color:#fff; font-size:14px; font-weight:800; }.clear-entries-notice strong { display:block; }.clear-entries-notice p { margin:4px 0 0; color:#9b5555; font-size:13px; line-height:1.45; }.clear-scope-options { display:grid; gap:8px; margin:0 0 13px; }.clear-scope-options label { display:flex; gap:9px; align-items:flex-start; padding:10px; border:1px solid #ead3d3; border-radius:9px; background:#fffafa; cursor:pointer; }.clear-scope-options label.is-empty { cursor:not-allowed; opacity:.55; }.clear-scope-options .clear-all-scope { border-color:#e8bbbb; background:#fff5f5; }.clear-scope-options input { width:auto; margin:3px 0 0; accent-color:#b84242; }.clear-scope-options span { display:grid; gap:2px; }.clear-scope-options strong { color:#6d2d2d; font-size:14px; }.clear-scope-options small { color:#946060; font-size:12px; line-height:1.35; }.clear-entries-modal > .quiet { margin:0 0 16px; }
.entry-total-link { padding:1px 4px; border:0; border-bottom:1px dashed #7d75d7; border-radius:0; background:transparent; color:#4f4bc8; font:inherit; font-weight:800; line-height:1.25; }.entry-total-link:hover { border-bottom-style:solid; color:#36319d; }.entry-detail-modal { width:min(620px,100%); padding:0; overflow:hidden; }.entry-detail-header { margin:0; padding:18px 18px 12px; border-bottom:1px solid #e4e3f4; background:linear-gradient(135deg,#fbfaff,#f3f2ff); }.entry-detail-header h2 { margin:0; color:#302b70; font-size:20px; line-height:1.25; }.entry-detail-header p { margin:5px 0 0; color:#50506f; font-size:13px; }.entry-detail-header small { display:block; margin-top:3px; color:#83819a; font-size:11px; }.entry-detail-tools { display:flex; align-items:center; justify-content:space-between; gap:10px; padding:10px 18px; border-bottom:1px solid #efeff6; }.entry-scope-pill { padding:3px 8px; border-radius:999px; background:#eceaff; color:#514ab5; font-size:12px; font-weight:750; }.entry-detail-tools button { padding:3px 0; border:0; border-bottom:1px solid #a8a4dc; border-radius:0; background:transparent; color:#625cc6; font-size:12px; }.entry-product-profile { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:6px 12px; margin:0 18px; padding:10px 0; border-bottom:1px solid #efeff6; color:#68677b; font-size:12px; }.entry-record-heading { display:flex; align-items:center; justify-content:space-between; padding:12px 18px 7px; }.entry-record-heading strong { color:#4b4963; font-size:13px; }.entry-record-heading button { padding:3px 0; border:0; border-bottom:1px solid #c1bfdc; border-radius:0; background:transparent; color:#706b9b; font-size:12px; }.entry-record-list { display:grid; gap:1px; max-height:46vh; margin:0; padding:0 18px 12px; overflow:auto; list-style:none; }.entry-record { display:grid; grid-template-columns:112px minmax(76px,1fr) auto auto; gap:9px; align-items:center; min-height:47px; padding:8px 0; border-bottom:1px solid #edecf4; }.entry-record time { color:#717084; font-variant-numeric:tabular-nums; font-size:12px; }.entry-group-tag { width:max-content; max-width:100%; overflow:hidden; padding:3px 7px; border:0; border-radius:999px; background:#f0efff; color:#514bb5; font:inherit; font-size:12px; font-weight:700; text-overflow:ellipsis; white-space:nowrap; }.entry-edit-field { cursor:pointer; }.entry-quantity-button { padding:2px 3px; border:0; border-bottom:1px dashed #6d68c6; border-radius:0; background:transparent; color:#37318d; font:inherit; font-size:15px; font-weight:800; white-space:nowrap; }.entry-delete-button,.entry-cancel-button,.entry-restore-button { padding:3px 0; border:0; border-radius:0; background:transparent; color:#a25656; font-size:12px; }.entry-record.editing { grid-template-columns:112px minmax(80px,1fr) minmax(86px,1fr) auto auto; }.entry-record.editing select,.entry-record.editing input { min-width:0; padding:6px 7px; border-radius:7px; font-size:13px; }.entry-quantity-edit { min-width:0; }.entry-quantity-edit small { display:block; margin-top:3px; color:#a12f2f; font-size:11px; line-height:1.25; }.entry-save-button { padding:5px 8px; border-color:#736dd2; background:#625cc6; color:#fff; font-size:12px; }.entry-record.deleting { grid-template-columns:112px minmax(64px,1fr) auto auto auto; background:#fff8f8; }.entry-delete-question { color:#a24d4d; font-size:12px; font-weight:700; }.entry-delete-confirm { padding:5px 8px; border-color:#b84242; background:#b84242; color:#fff; font-size:12px; }.entry-record.deleted { grid-template-columns:112px minmax(64px,1fr) auto auto auto; opacity:.72; }.entry-deleted-label { color:#a15d5d; font-size:12px; }.entry-empty { padding:22px 0; color:#858395; font-size:13px; text-align:center; }.entry-detail-total { display:flex; flex-wrap:wrap; align-items:center; justify-content:flex-end; gap:10px; padding:12px 18px calc(14px + env(safe-area-inset-bottom)); border-top:1px solid #dcd9fb; background:#f5f4ff; color:#4b469d; }.entry-detail-total strong { font-size:13px; }.entry-detail-total b { font-size:20px; font-variant-numeric:tabular-nums; }.entry-group-breakdown { display:flex; flex:1 1 100%; flex-wrap:wrap; gap:5px 10px; color:#716da1; font-size:11px; }
.entry-record-heading > div { display:flex; align-items:center; gap:10px; }.entry-mode-switch { display:inline-flex; padding:2px; border:1px solid #d8d6ee; border-radius:7px; background:#f5f4fb; }.entry-mode-switch button { padding:3px 6px; border:0; border-radius:5px; color:#77738f; }.entry-mode-switch button.active { background:#fff; color:#4d46a9; box-shadow:0 1px 3px #302b7018; }.entry-detail-body { max-height:46vh; overflow:auto; }.entry-detail-body > .entry-record-list { max-height:none; overflow:visible; }.entry-group-section { border-top:1px solid #ebeaf3; }.entry-group-section:first-child { border-top:0; }.entry-group-section > header { display:flex; align-items:center; justify-content:space-between; padding:11px 18px 6px; color:#54506e; }.entry-group-section > header strong { font-size:13px; }.entry-group-section > header span { color:#77738f; font-size:12px; font-weight:700; }.entry-group-section .group-record-list { max-height:none; padding-bottom:4px; overflow:visible; }.entry-record.single-group { grid-template-columns:112px minmax(0,1fr) auto; }.entry-record.editing.single-group { grid-template-columns:112px minmax(0,1fr) auto auto; }.entry-record.deleting.single-group { grid-template-columns:112px minmax(0,1fr) auto auto; }.entry-record.deleted.single-group { grid-template-columns:112px minmax(0,1fr) auto auto; }
.entry-record.single-group.saved { grid-template-columns:112px minmax(0,1fr) auto auto; background:#f1faf6; }.entry-saved-label { color:#16856f; font-size:11px; font-weight:750; white-space:nowrap; }.entry-record.deleting.single-group { grid-template-columns:112px minmax(0,1fr) auto; }.entry-delete-actions { display:inline-flex; align-items:center; gap:8px; white-space:nowrap; }.entry-delete-actions .entry-delete-confirm { padding:5px 8px; }.entry-group-divider { margin:8px 0 2px; padding:5px 7px; border-left:3px solid #7770d2; border-radius:0 6px 6px 0; background:#f3f2ff; color:#504ab2; font-size:12px; font-weight:800; list-style:none; }
#toast { position:fixed; bottom:24px; left:50%; z-index:5; padding:10px 16px; border-radius:10px; background:#173042; color:#fff; transform:translateX(-50%) translateY(100px); transition:.2s; } #toast.show { transform:translateX(-50%) translateY(0); }
@media (max-width:650px) { .app-shell { padding:12px 13px 32px; } header { align-items:center; min-height:27px; margin-bottom:7px; transition:max-height .16s ease,margin .16s ease,opacity .12s ease; } h1 { font-size:19px; line-height:1.25; } .sync { gap:5px; font-size:11px; } .sync i { width:7px; height:7px; } .tabs { margin-bottom:8px; transition:max-height .16s ease,margin .16s ease,opacity .12s ease; } .tabs button { padding:7px 10px; border-bottom-width:2px; font-size:13px; } .count-card { gap:12px; padding:14px; } .group-context { justify-content:space-between; } .group-context select { max-width:210px; padding:4px 24px 4px 8px; } .group-context.needs-group select { max-width:none; padding:10px 30px 10px 12px; } .entry-focus header,.entry-focus .tabs { max-height:0; min-height:0; margin:0; overflow:hidden; opacity:0; pointer-events:none; border:0; } .entry-focus .count-card { padding-top:11px; } .grid,.form-grid { grid-template-columns:1fr; } .settings-tabs { display:grid; grid-template-columns:1fr 1fr; width:100%; margin-bottom:8px; } .settings-tabs button { min-width:0; padding:8px 6px; font-size:14px; } .summary-toolbar { grid-template-columns:repeat(3,minmax(0,1fr)); gap:8px; } .summary-toolbar label { grid-column:1/-1; display:flex; align-items:center; gap:8px; white-space:nowrap; } .summary-toolbar label input { flex:1; min-width:0; } .summary-toolbar button { width:100%; min-height:38px; padding:8px 4px; font-size:12px; } .product-list-head { align-items:stretch; flex-direction:column; } .product-actions { display:grid; grid-template-columns:1fr 1fr; } .product-actions #toggleProductColumns { display:block; grid-column:1/-1; } .pagination { align-items:stretch; flex-direction:column; } .pagination > div { display:grid; grid-template-columns:1fr 1fr 1fr; } .pagination button { min-width:0; }
  .desktop-row,td.desktop-cell { display:none; } .mobile-row { display:table-row; } td.mobile-cell { display:table-cell; } .product-table,.summary-section .table-wrap:not(.summary-all-groups) table { min-width:0; table-layout:fixed; } .product-table th,.product-table td,.summary-section .table-wrap:not(.summary-all-groups) th,.summary-section .table-wrap:not(.summary-all-groups) td { padding:7px 5px; font-size:12px; line-height:1.3; } .summary-section .table-wrap:not(.summary-all-groups) .mobile-row .sort-button { display:block; width:100%; min-height:24px; text-align:left; } .summary-section .table-wrap:not(.summary-all-groups) .compact-amount-head .sort-button { text-align:right; } .summary-meta { gap:5px; margin-top:8px; font-size:12px;}.summary-scope,.summary-stat,.summary-empty { padding:3px 7px; } .product-table th:nth-child(1) { width:23%; } .product-table th:nth-child(2) { width:43%; } .product-table th:nth-child(3) { width:23%; } .product-table th:nth-child(4) { width:11%; } .compact-code { overflow-wrap:anywhere; color:var(--accent-dark); font-weight:750; } .compact-product strong,.compact-location strong { display:block; font-size:13px; line-height:1.3; } .compact-product small,.compact-location small { display:block; margin-top:3px; color:var(--muted); font-size:11px; line-height:1.3; } .summary-compact-title { display:flex; flex-wrap:wrap; align-items:center; gap:3px 5px; } .summary-compact-title strong { display:inline; } .summary-unit-chip { display:inline-block; padding:1px 4px; border-radius:4px; background:#eef5f3; color:var(--accent-dark); font-size:10px; font-weight:700; line-height:1.35; } .compact-location { color:var(--ink); } .compact-amount,.compact-amount-head { color:var(--accent-dark); text-align:right; white-space:nowrap; } .product-table .action-cell { display:table-cell; padding:6px 3px; } .product-table .action-cell .delete-button { display:none; } .product-table .action-cell button { padding:5px 6px; font-size:12px; }
  .table-wrap.product-full-columns { overflow-x:auto; overflow-y:hidden; -webkit-overflow-scrolling:touch; overscroll-behavior-x:contain; } .product-table.full-mobile-columns .desktop-row,.product-table.full-mobile-columns td.desktop-cell,.product-table.full-mobile-columns .mobile-row,.product-table.full-mobile-columns td.mobile-cell { display:none; } .product-table.full-mobile-columns .mobile-full-row { display:table-row; } .product-table.full-mobile-columns td.mobile-full-cell { display:table-cell; } .product-table.full-mobile-columns { width:1240px; min-width:1240px; table-layout:fixed; } .product-table.full-mobile-columns th,.product-table.full-mobile-columns td { box-sizing:border-box; padding:7px 6px; font-size:12px; line-height:1.3; white-space:normal; overflow-wrap:anywhere; } .product-table.full-mobile-columns th:nth-child(1),.product-table.full-mobile-columns .product-mobile-full-name { position:sticky; left:0; z-index:2; width:65px; min-width:65px; max-width:65px; background:#fff; } .product-table.full-mobile-columns th:nth-child(2),.product-table.full-mobile-columns .product-mobile-full-code { width:88px; min-width:88px; max-width:88px; } .product-table.full-mobile-columns th:nth-child(3),.product-table.full-mobile-columns td:nth-child(16) { width:85px; min-width:85px; max-width:85px; } .product-table.full-mobile-columns th:nth-child(4),.product-table.full-mobile-columns td:nth-child(17) { width:56px; min-width:56px; max-width:56px; } .product-table.full-mobile-columns th:nth-child(5),.product-table.full-mobile-columns td:nth-child(18) { width:105px; min-width:105px; max-width:105px; } .product-table.full-mobile-columns th:nth-child(6),.product-table.full-mobile-columns td:nth-child(19) { width:72px; min-width:72px; max-width:72px; } .product-table.full-mobile-columns th:nth-child(7),.product-table.full-mobile-columns td:nth-child(20) { width:82px; min-width:82px; max-width:82px; } .product-table.full-mobile-columns th:nth-child(n+8),.product-table.full-mobile-columns td:nth-child(n+21) { width:104px; min-width:104px; max-width:104px; } .product-table.full-mobile-columns .action-cell { display:table-cell; } .product-table.full-mobile-columns .action-buttons { display:flex; gap:5px; } .product-table.full-mobile-columns .action-cell .delete-button { display:inline-block; }
  .summary-section .table-wrap.summary-all-groups .desktop-row,.summary-section .table-wrap.summary-all-groups .desktop-cell,.summary-section .table-wrap.summary-all-groups .mobile-row,.summary-section .table-wrap.summary-all-groups .mobile-cell { display:none; } .summary-section .table-wrap.summary-all-groups .mobile-summary-all-row { display:table-row; } .summary-section .table-wrap.summary-all-groups td.mobile-summary-all-cell { display:table-cell; } .summary-section .table-wrap.summary-all-groups table { min-width:640px; table-layout:auto; } .summary-section .table-wrap.summary-all-groups th,.summary-section .table-wrap.summary-all-groups td { box-sizing:border-box; padding:7px 6px; font-size:12px; line-height:1.3; white-space:normal; overflow-wrap:anywhere; } .summary-section .table-wrap.summary-all-groups th:first-child,.summary-section .table-wrap.summary-all-groups .summary-mobile-all-name { position:sticky; left:0; z-index:2; width:53px; min-width:53px; max-width:53px; background:#fff; } .summary-section .table-wrap.summary-all-groups .summary-mobile-all-code,.summary-section .table-wrap.summary-all-groups .summary-mobile-all-unit { width:1%; white-space:nowrap; } .summary-section .table-wrap.summary-all-groups .summary-mobile-all-spec { width:85px; min-width:85px; max-width:85px; } .summary-section .table-wrap.summary-all-groups .summary-mobile-all-number { width:58px; min-width:58px; max-width:58px; text-align:right; white-space:nowrap; } .summary-section .table-wrap.summary-all-groups th.summary-mobile-all-number { white-space:normal; overflow-wrap:anywhere; } .summary-section .table-wrap.summary-all-groups .summary-mobile-all-number .sort-button { width:100%; text-align:right; } }
@media (max-width:650px) { .group-context { justify-content:flex-end; } }
@media (max-width:650px) { .product-list-card { margin-right:-5px; margin-left:-5px; padding:11px; border-radius:12px; }.product-list-card .table-wrap { margin-top:8px; }.product-list-card .pagination { margin-top:9px; } }
@media (max-width:650px) { .entry-total-link { min-width:28px; padding:3px 4px; border:1px solid #c8c5ef; border-radius:6px; background:#f5f4ff; }.entry-detail-modal { width:100%; max-height:100vh; border-radius:16px 16px 0 0; align-self:flex-end; }.entry-detail-header { padding:15px 14px 10px; }.entry-detail-header h2 { font-size:18px; }.entry-detail-tools { padding:9px 14px; }.entry-product-profile { margin:0 14px; }.entry-record-heading { padding:10px 14px 6px; }.entry-record-list { max-height:52vh; padding:0 14px 10px; }.entry-record { grid-template-columns:85px minmax(55px,1fr) auto auto; gap:6px; min-height:45px; }.entry-record time { font-size:11px; }.entry-group-tag { max-width:76px; padding:3px 6px; }.entry-record.editing { grid-template-columns:76px minmax(64px,1fr) minmax(70px,1fr); gap:6px; }.entry-record.editing .entry-save-button,.entry-record.editing .entry-cancel-button { grid-row:2; }.entry-record.editing .entry-save-button { grid-column:2; }.entry-record.editing .entry-cancel-button { grid-column:3; }.entry-record.deleting,.entry-record.deleted { grid-template-columns:76px minmax(52px,1fr) auto auto; }.entry-record.deleting .entry-delete-question { grid-column:3/-1; }.entry-record.deleting .entry-cancel-button { grid-column:2; }.entry-record.deleting .entry-delete-confirm { grid-column:3; }.entry-detail-total { padding:10px 14px calc(11px + env(safe-area-inset-bottom)); }.entry-detail-total b { font-size:19px; } }
@media (max-width:650px) { .entry-detail-body { max-height:52vh; }.entry-record.single-group { grid-template-columns:85px minmax(0,1fr) auto; }.entry-record.single-group.saved { grid-template-columns:85px minmax(0,1fr) auto auto; }.entry-record.editing.single-group { grid-template-columns:78px minmax(0,1fr) auto auto; gap:4px; }.entry-record.editing.single-group .entry-save-button,.entry-record.editing.single-group .entry-cancel-button { grid-row:auto; grid-column:auto; }.entry-record.editing.single-group .entry-save-button { padding:5px 6px; }.entry-record.editing.single-group .entry-cancel-button { white-space:nowrap; }.entry-record.deleting.single-group { grid-template-columns:85px minmax(0,1fr) auto; }.entry-record.deleted.single-group { grid-template-columns:85px minmax(0,1fr) auto auto; }.entry-group-section > header { padding:10px 14px 5px; }.entry-record-heading > div { gap:7px; }.entry-mode-switch button { padding:3px 5px; } }
@media (max-width:650px) { .summary-section { margin-left:-4px; margin-right:-4px; padding:12px; } .summary-section .summary-heading { margin-bottom:8px; } .summary-section .summary-meta { margin-top:8px; } .summary-section .table-wrap { margin-top:8px; } }
#groupPickerTrigger { display:none; }.group-picker-modal { align-items:flex-end; padding:0; }.group-picker-sheet { width:min(620px,100%); max-height:76vh; overflow:auto; padding:14px 14px calc(18px + env(safe-area-inset-bottom)); border-radius:22px 22px 0 0; background:#fff; box-shadow:0 -10px 30px #102d3a24; }.group-picker-header { display:flex; align-items:center; justify-content:space-between; margin-bottom:8px; padding:0 2px; }.group-picker-header h2 { margin:0; font-size:17px; }.group-picker-options { display:grid; gap:4px; }.group-picker-option { display:flex; align-items:center; justify-content:space-between; width:100%; min-height:52px; padding:11px 12px; border:0; border-radius:12px; background:transparent; color:var(--ink); text-align:left; }.group-picker-option:hover { border:0; background:#f2f8f6; }.group-picker-option.active { background:#e7f7f0; color:var(--accent-dark); font-weight:800; }.group-picker-option i { display:inline-flex; align-items:center; justify-content:center; width:21px; height:21px; border-radius:50%; background:var(--accent); color:#fff; font-size:12px; font-style:normal; }
@media (max-width:650px) { .group-context select { display:none; } #groupPickerTrigger { display:inline-flex; align-items:center; justify-content:space-between; width:auto; max-width:210px; padding:5px 9px; border:1px solid #a6cfbf; border-radius:8px; background:#fff; color:var(--accent-dark); font-size:13px; font-weight:700; text-align:left; } #groupPickerTrigger::after { content:'⌄'; margin-left:12px; color:#5b8f80; font-size:15px; line-height:1; }.group-context.needs-group #groupPickerTrigger { width:100%; max-width:none; padding:10px 12px; border-color:#d49a37; background:#fff7e8; color:#8b5c0a; font-size:14px; box-shadow:0 0 0 3px #f7e2b940; }.group-context.needs-group #groupPickerTrigger::after { color:#a9751b; }.group-picker-modal .group-picker-sheet { width:100%; } }

/* 分组色板与分组小计 */
.group-tone-5 { background:#e9f8f8; color:#287d83; }.group-tone-6 { background:#fff7df; color:#927022; }.group-tone-7 { background:#f1f1f4; color:#5e6470; }.entry-group-breakdown { gap:6px; }.entry-group-breakdown .entry-group-total { display:inline-flex; align-items:center; gap:5px; padding:4px 7px; border-radius:7px; font-size:11px; line-height:1.25; }.entry-group-total i { max-width:108px; overflow:hidden; font-style:normal; text-overflow:ellipsis; white-space:nowrap; }.entry-detail-total .entry-group-total b { color:currentColor; font-size:13px; font-variant-numeric:tabular-nums; }.entry-detail-total .entry-group-total.group-tone-0,.entry-detail-total .entry-group-total.group-tone-1,.entry-detail-total .entry-group-total.group-tone-2,.entry-detail-total .entry-group-total.group-tone-3,.entry-detail-total .entry-group-total.group-tone-4 { background:inherit; }
@media (max-width:650px) { .entry-group-breakdown { gap:5px; }.entry-group-breakdown .entry-group-total { padding:4px 6px; }.entry-group-total i { max-width:80px; }.entry-detail-total .entry-group-total b { font-size:12px; } }

/* 录入记录：按分组分段的紧凑表格 */
.entry-record-table .entry-record { display:table-row; min-height:0; padding:0; background:transparent; }
.entry-detail-body { max-height:46vh; overflow:auto; }.entry-group-section { margin:0 18px; border-top:1px solid #e7e6f0; }.entry-group-section:first-child { border-top:0; }.entry-group-section > header { display:flex; align-items:center; justify-content:space-between; gap:10px; padding:11px 0 6px; color:#3f3b61; }.entry-group-section > header strong { display:inline-flex; align-items:center; gap:7px; font-size:13px; font-weight:800; }.entry-group-section > header strong::before { width:4px; height:16px; border-radius:99px; background:linear-gradient(#716ad0,#a09beb); content:""; }.entry-group-section > header span { color:#716d92; font-size:11px; font-variant-numeric:tabular-nums; font-weight:700; }.entry-record-table { width:100%; border-collapse:collapse; table-layout:fixed; font-size:12px; }.entry-record-table th { padding:5px 6px; border-bottom:1px solid #deddea; background:#f8f7fc; color:#807d98; font-size:11px; font-weight:700; text-align:left; }.entry-record-table th:nth-child(1) { width:42%; }.entry-record-table th:nth-child(2) { width:27%; text-align:right; }.entry-record-table th:nth-child(3) { width:31%; text-align:right; }.entry-record-table td { min-height:42px; padding:7px 6px; border-bottom:1px solid #edecf4; color:#5d5b70; vertical-align:middle; }.entry-record-table td:first-child { color:#747287; font-variant-numeric:tabular-nums; white-space:nowrap; }.entry-record-table td:nth-child(2) { color:#332e84; font-variant-numeric:tabular-nums; font-weight:800; text-align:right; }.entry-record-table .entry-record-actions { display:flex; align-items:center; justify-content:flex-end; gap:7px; min-width:0; white-space:nowrap; }.entry-record-table .entry-quantity-edit input { width:100%; min-width:0; padding:6px 7px; border-radius:7px; font-size:13px; text-align:right; }.entry-record-table .entry-record.saved td { background:#f1faf6; }.entry-record-table .entry-record.saved td:first-child { border-radius:6px 0 0 6px; }.entry-record-table .entry-record.saved td:last-child { border-radius:0 6px 6px 0; }.entry-record-table .entry-record.deleting td { background:#fff8f8; }.entry-record-table .entry-saved-label { display:block; margin-top:2px; font-size:10px; text-align:right; }.entry-detail-body > .entry-empty { padding:22px 18px; color:#858395; font-size:13px; text-align:center; }
@media (max-width:650px) { .entry-detail-body { max-height:52vh; }.entry-group-section { margin:0 14px; }.entry-group-section > header { padding:10px 0 5px; }.entry-record-table th,.entry-record-table td { padding-right:4px; padding-left:4px; }.entry-record-table th:nth-child(1) { width:39%; }.entry-record-table th:nth-child(2) { width:26%; }.entry-record-table th:nth-child(3) { width:35%; }.entry-record-table td:first-child { font-size:11px; }.entry-record-table .entry-record-actions { gap:4px; }.entry-record-table .entry-save-button { padding:5px 6px; }.entry-record-table .entry-cancel-button { padding:3px 2px; }.entry-record-table .entry-delete-confirm { padding:5px 6px; } }

/* 全部分组汇总在桌面端使用整个内容宽度，仍保持居中。 */
.summary-heading { display:flex; align-items:center; justify-content:space-between; gap:10px; }.summary-export-button { display:inline-flex; align-items:center; justify-content:center; width:32px; height:32px; padding:0; border:1px solid #cfcbf0; border-radius:9px; background:#f8f7ff; color:#5650b7; }.summary-export-button:hover { border-color:#7770d2; background:#eeedff; }.summary-export-button svg { width:17px; height:17px; fill:none; stroke:currentColor; stroke-linecap:round; stroke-linejoin:round; stroke-width:1.8; }
@media (max-width:650px) { .summary-export-button { width:30px; height:30px; border-radius:8px; }.summary-export-button svg { width:16px; height:16px; } }
@media (min-width:651px) { .summary-section:has(.table-wrap.summary-all-groups) { max-width:900px !important; margin:16px auto 0 !important; padding:20px !important; } }

/* 手机上方详情层：避免底部输入法与抽屉层同时改变位置。 */
@media (max-width:650px) { .entry-detail-modal { align-self:flex-start !important; max-height:calc(100dvh - 20px) !important; margin-top:max(10px,env(safe-area-inset-top)); border-radius:16px; }.entry-detail-body { overflow-anchor:none; } }

/* 编辑行强调时间与保存入口，不改变表格尺寸。 */
@media (max-width:650px) { .entry-record-table .entry-record.editing td:nth-child(2) { color:#514d70; font-size:11px !important; font-weight:700; letter-spacing:.01em; }.entry-record-table .entry-record.editing .entry-save-button { border-color:#514bb8; background:#514bb8; color:#fff; font-size:12px; font-weight:800; box-shadow:0 2px 5px #514bb830; } }

/* 删除确认：长分组名优先完整呈现。 */
.entry-delete-confirm-card > .entry-delete-confirm-intro { display:grid !important; grid-template-columns:34px minmax(0,1fr) !important; gap:10px; align-items:start; }.entry-delete-confirm-card dl { grid-template-columns:repeat(2,minmax(0,1fr)) !important; }.entry-delete-confirm-card dl .entry-delete-group { grid-column:1 / -1; background:#f0efff; }.entry-delete-confirm-card dl .entry-delete-group dd { display:-webkit-box; overflow:visible; -webkit-box-orient:vertical; -webkit-line-clamp:2; line-height:1.35; text-overflow:clip; white-space:normal; overflow-wrap:anywhere; }.entry-delete-confirm-card dl .entry-delete-group dt { color:#6962b5; }
@media (max-width:650px) { .entry-delete-confirm-card dl { gap:6px; }.entry-delete-confirm-card dl .entry-delete-group { padding:8px 9px; }.entry-delete-confirm-card dl .entry-delete-group dd { font-size:13px; } }

/* 手机端记录详情：扩大数量输入区，操作列仅容纳单个按钮。 */
@media (max-width:650px) { .entry-record-table th:nth-child(1) { width:17% !important; }.entry-record-table th:nth-child(2) { width:27% !important; }.entry-record-table th:nth-child(3) { width:31% !important; }.entry-record-table th:nth-child(4) { width:25% !important; }.entry-record-table .entry-quantity-edit { min-width:0; }.entry-record-table .entry-quantity-edit input { min-width:0; font-size:14px; font-variant-numeric:tabular-nums; }.entry-record-table .entry-record-actions { min-width:0; }.entry-record-table .entry-record-actions .entry-delete-button,.entry-record-table .entry-record-actions .entry-save-button { min-width:0; } }
@media (min-width:651px) { body.all-groups-wide .app-shell { max-width:1480px; } body.all-groups-wide .summary-section:has(.table-wrap.summary-all-groups) { max-width:none !important; margin:16px auto 0 !important; } }

/* 全部分组：保留原表格结构，只为内容列提供最低宽度。 */
@media (min-width:651px) { .summary-section .table-wrap.summary-all-groups { margin:0 !important; overflow:auto; }.summary-section .table-wrap.summary-all-groups table { width:max(100%,var(--summary-table-min-width)) !important; min-width:var(--summary-table-min-width) !important; table-layout:auto !important; }.summary-section .table-wrap.summary-all-groups .desktop-row th,.summary-section .table-wrap.summary-all-groups .desktop-cell { position:static !important; left:auto !important; width:auto !important; max-width:none !important; box-shadow:none !important; background:transparent; }.summary-section .table-wrap.summary-all-groups .desktop-row th { background:#fff; }.summary-section .table-wrap.summary-all-groups .summary-code-cell,.summary-section .table-wrap.summary-all-groups .desktop-row th:nth-child(1) { min-width:105px; }.summary-section .table-wrap.summary-all-groups .summary-name-cell,.summary-section .table-wrap.summary-all-groups .desktop-row th:nth-child(2) { min-width:150px; white-space:normal; overflow-wrap:anywhere; }.summary-section .table-wrap.summary-all-groups .summary-specification-cell,.summary-section .table-wrap.summary-all-groups .desktop-row th:nth-child(3) { min-width:160px; white-space:normal; overflow-wrap:anywhere; }.summary-section .table-wrap.summary-all-groups .summary-unit-cell,.summary-section .table-wrap.summary-all-groups .desktop-row th:nth-child(4) { min-width:54px; }.summary-section .table-wrap.summary-all-groups .summary-group-total-head,.summary-section .table-wrap.summary-all-groups .summary-group-total-cell { min-width:74px; text-align:right; white-space:normal; }.summary-section .table-wrap.summary-all-groups .summary-total-cell { min-width:72px; text-align:right; white-space:nowrap; }.summary-section .table-wrap.summary-all-groups::after { display:none !important; content:none !important; } }
@media (min-width:651px) { .summary-section .table-wrap.summary-all-groups .summary-code-cell,.summary-section .table-wrap.summary-all-groups .desktop-row th:nth-child(1) { min-width:105px !important; }.summary-section .table-wrap.summary-all-groups .summary-name-cell,.summary-section .table-wrap.summary-all-groups .desktop-row th:nth-child(2) { min-width:110px !important; }.summary-section .table-wrap.summary-all-groups .summary-specification-cell,.summary-section .table-wrap.summary-all-groups .desktop-row th:nth-child(3) { min-width:130px !important; }.summary-section .table-wrap.summary-all-groups .summary-unit-cell,.summary-section .table-wrap.summary-all-groups .desktop-row th:nth-child(4) { min-width:54px !important; }.summary-section .table-wrap.summary-all-groups .summary-group-total-head,.summary-section .table-wrap.summary-all-groups .summary-group-total-cell { min-width:74px !important; }.summary-section .table-wrap.summary-all-groups .summary-total-head,.summary-section .table-wrap.summary-all-groups .summary-total-cell { min-width:72px !important; } }

/* 单表格：分组、时间、数量、操作。避免手机端嵌套分组表造成横向滚动。 */
.entry-detail-body .entry-record-table { min-width:0; }
.entry-record-table .entry-group-tag { display:-webkit-box; width:100%; max-width:100%; padding:3px 4px; overflow:hidden; -webkit-box-orient:vertical; -webkit-line-clamp:2; line-height:1.25; text-align:left; text-overflow:ellipsis; white-space:normal; overflow-wrap:anywhere; }
.entry-detail-modal { position:relative; }.entry-delete-confirm-layer { position:absolute; inset:0; z-index:4; display:flex; align-items:center; justify-content:center; padding:18px; background:#25213d61; backdrop-filter:blur(2px); }.entry-delete-confirm-layer[hidden] { display:none; }.entry-delete-confirm-card { width:min(390px,100%); padding:20px; border:1px solid #ffffff99; border-radius:16px; background:linear-gradient(145deg,#fff,#fbfaff); box-shadow:0 18px 38px #17132d42; }.entry-delete-confirm-card > div:not(.entry-delete-confirm-actions) { display:grid; grid-template-columns:34px minmax(0,1fr); gap:10px; align-items:start; }.entry-delete-confirm-icon { display:inline-flex; align-items:center; justify-content:center; width:30px; height:30px; border-radius:50%; background:#fff0f0; color:#bd4242; font-size:17px; font-weight:850; }.entry-delete-confirm-card h3 { margin:2px 0 4px; color:#472f3d; font-size:17px; }.entry-delete-confirm-card p { margin:0; color:#777083; font-size:12px; line-height:1.55; }.entry-delete-confirm-card dl { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:7px; margin:16px 0; }.entry-delete-confirm-card dl div { min-width:0; padding:7px 8px; border-radius:8px; background:#f7f6fa; }.entry-delete-confirm-card dt { margin-bottom:3px; color:#8a8597; font-size:10px; }.entry-delete-confirm-card dd { margin:0; overflow:hidden; color:#4b475a; font-size:12px; font-weight:750; text-overflow:ellipsis; white-space:nowrap; }.entry-delete-confirm-actions { display:flex; justify-content:flex-end; gap:9px; }.entry-delete-confirm-actions button:first-child { border-color:#dfddea; background:#fff; color:#656174; }.entry-delete-confirm-actions .entry-delete-confirm { min-width:88px; }.entry-record-table .entry-save-button { min-width:48px; }
.data-delete-modal { width:min(430px,100%); }.data-delete-modal .modal-header { margin-bottom:13px; }.data-delete-notice { display:grid; grid-template-columns:32px minmax(0,1fr); gap:10px; padding:12px; border:1px solid #f0d6d6; border-radius:11px; background:#fff8f8; }.data-delete-notice > span { display:inline-flex; align-items:center; justify-content:center; width:28px; height:28px; border-radius:50%; background:#fce4e4; color:#b84242; font-weight:850; }.data-delete-notice strong { color:#633942; font-size:15px; }.data-delete-notice p { margin:4px 0 0; color:#80656b; font-size:12px; line-height:1.5; }.data-delete-ack { display:flex; align-items:flex-start; gap:8px; margin:14px 2px 7px; color:#683e45; font-size:13px; font-weight:700; }.data-delete-ack input { width:auto; margin-top:2px; accent-color:#b84242; }.data-delete-modal .quiet { margin:0 2px 13px; font-size:12px; }.data-delete-modal .form-actions { justify-content:flex-end; }.data-delete-modal .danger-primary { min-width:128px; }
#dataDeleteModal { z-index:40; }
.export-menu-modal { width:min(430px,100%); }.export-menu-modal .quiet { margin:-5px 0 13px; }.export-options { display:grid; gap:9px; }.export-options button { display:grid; gap:3px; padding:13px 14px; border-color:#d8d6ee; background:#fbfaff; text-align:left; }.export-options button:hover { border-color:#7770d2; background:#f5f4ff; }.export-options strong { color:#403b92; font-size:15px; }.export-options small { color:#77738f; font-size:12px; font-weight:500; }.json-export-modal { width:min(720px,100%); }.json-export-modal .quiet { margin:-6px 0 10px; }.json-export-modal textarea { width:100%; min-height:360px; resize:vertical; padding:11px; border:1px solid #d8d6e8; border-radius:10px; background:#fbfbfe; color:#37354a; font:12px/1.5 ui-monospace,SFMono-Regular,Menlo,monospace; white-space:pre; }.json-export-modal .form-actions { justify-content:flex-end; }
@media (max-width:650px) { .export-menu-modal,.json-export-modal { width:100%; max-height:100vh; align-self:flex-end; padding:17px 14px calc(17px + env(safe-area-inset-bottom)); border-radius:16px 16px 0 0; }.json-export-modal textarea { min-height:48dvh; max-height:58dvh; font-size:11px; }.json-export-modal .form-actions { display:grid; grid-template-columns:1fr 1.25fr; }.json-export-modal .form-actions button { min-height:40px; } }
@media (max-width:650px) { .data-delete-modal { width:100%; max-height:100vh; align-self:flex-end; padding:17px 14px calc(17px + env(safe-area-inset-bottom)); border-radius:16px 16px 0 0; }.data-delete-modal .form-actions { display:grid; grid-template-columns:1fr 1.25fr; }.data-delete-modal .form-actions button { min-height:40px; } }
@media (max-width:650px) { .entry-delete-confirm-layer { align-items:flex-end; padding:12px; }.entry-delete-confirm-card { width:100%; padding:17px 15px calc(17px + env(safe-area-inset-bottom)); border-radius:15px; }.entry-delete-confirm-card h3 { font-size:16px; }.entry-delete-confirm-card dl { margin:13px 0; }.entry-delete-confirm-actions { display:grid; grid-template-columns:1fr 1.15fr; }.entry-delete-confirm-actions button { min-height:39px; }.entry-record-table .entry-save-button { min-width:43px; } }

@media (min-width:651px) { .summary-section:has(.table-wrap.summary-all-groups) { margin-right:-10px; margin-left:-10px; padding:16px; }.summary-section .table-wrap.summary-all-groups { margin-right:-2px; margin-left:-2px; overflow:auto; overscroll-behavior-x:contain; }.summary-section .table-wrap.summary-all-groups table { width:max(100%,var(--summary-table-min-width,635px)); min-width:var(--summary-table-min-width,635px); table-layout:fixed; }.summary-section .table-wrap.summary-all-groups .desktop-row th:nth-child(1),.summary-section .table-wrap.summary-all-groups .desktop-cell:nth-child(1) { width:105px; min-width:105px; max-width:105px; }.summary-section .table-wrap.summary-all-groups .desktop-row th:nth-child(2),.summary-section .table-wrap.summary-all-groups .desktop-cell:nth-child(2) { width:195px; min-width:195px; max-width:195px; }.summary-section .table-wrap.summary-all-groups .desktop-row th:nth-child(3),.summary-section .table-wrap.summary-all-groups .desktop-cell:nth-child(3) { width:190px; min-width:190px; max-width:190px; white-space:normal; overflow-wrap:anywhere; }.summary-section .table-wrap.summary-all-groups .desktop-row th:nth-child(4),.summary-section .table-wrap.summary-all-groups .desktop-cell:nth-child(4) { width:65px; min-width:65px; max-width:65px; white-space:normal; overflow-wrap:anywhere; }.summary-section .table-wrap.summary-all-groups .desktop-row th:nth-child(5),.summary-section .table-wrap.summary-all-groups .desktop-cell:nth-child(5) { width:80px; min-width:80px; max-width:80px; text-align:right; }.summary-section .table-wrap.summary-all-groups .desktop-row th:nth-child(n+6),.summary-section .table-wrap.summary-all-groups .desktop-cell:nth-child(n+6) { width:82px; min-width:82px; max-width:82px; text-align:right; white-space:normal; overflow-wrap:anywhere; }.summary-section .table-wrap.summary-all-groups .desktop-row th:nth-child(-n+5),.summary-section .table-wrap.summary-all-groups .desktop-cell:nth-child(-n+5) { position:sticky; z-index:2; background:#fff; }.summary-section .table-wrap.summary-all-groups .desktop-row th:nth-child(-n+5) { z-index:4; background:#f8fbfa; }.summary-section .table-wrap.summary-all-groups .desktop-row th:nth-child(1),.summary-section .table-wrap.summary-all-groups .desktop-cell:nth-child(1) { left:0; }.summary-section .table-wrap.summary-all-groups .desktop-row th:nth-child(2),.summary-section .table-wrap.summary-all-groups .desktop-cell:nth-child(2) { left:105px; }.summary-section .table-wrap.summary-all-groups .desktop-row th:nth-child(3),.summary-section .table-wrap.summary-all-groups .desktop-cell:nth-child(3) { left:300px; }.summary-section .table-wrap.summary-all-groups .desktop-row th:nth-child(4),.summary-section .table-wrap.summary-all-groups .desktop-cell:nth-child(4) { left:490px; }.summary-section .table-wrap.summary-all-groups .desktop-row th:nth-child(5),.summary-section .table-wrap.summary-all-groups .desktop-cell:nth-child(5) { left:555px; box-shadow:5px 0 8px #17304212; }.summary-section .table-wrap.summary-all-groups .summary-name-cell { white-space:normal; overflow-wrap:anywhere; } }
@media (min-width:651px) { .summary-section:has(.table-wrap.summary-all-groups) { margin-right:0; margin-left:0; padding:20px; }.summary-section .table-wrap.summary-all-groups { margin-right:0; margin-left:0; }.summary-section .table-wrap.summary-all-groups .desktop-row th:nth-child(4),.summary-section .table-wrap.summary-all-groups .desktop-cell:nth-child(4),.summary-section .table-wrap.summary-all-groups .desktop-row th:nth-child(5),.summary-section .table-wrap.summary-all-groups .desktop-cell:nth-child(5) { position:static; z-index:auto; box-shadow:none; }.summary-section .table-wrap.summary-all-groups .desktop-row th:nth-child(3),.summary-section .table-wrap.summary-all-groups .desktop-cell:nth-child(3) { box-shadow:5px 0 8px #17304212; }.summary-section .table-wrap.summary-all-groups::after { display:block; padding:6px 2px 0; color:#7b8790; content:'分组较多时可横向滚动查看右侧累计列'; font-size:11px; } }
.entry-detail-body > .entry-record-table { width:calc(100% - 36px); margin:0 18px 12px; }.entry-record-table th:nth-child(1) { width:19%; }.entry-record-table th:nth-child(2) { width:30%; text-align:left; }.entry-record-table th:nth-child(3) { width:20%; text-align:right; }.entry-record-table th:nth-child(4) { width:31%; text-align:right; }.entry-record-table td:first-child { color:inherit; white-space:normal; }.entry-record-table td:nth-child(2) { color:#747287; font-size:12px; font-variant-numeric:tabular-nums; font-weight:400; text-align:left; white-space:nowrap; }.entry-record-table td:nth-child(3) { color:#332e84; font-variant-numeric:tabular-nums; font-weight:800; text-align:right; }.entry-group-tag { display:block; max-width:100%; overflow:hidden; padding:3px 5px; border:0; text-align:center; text-overflow:ellipsis; white-space:nowrap; }.group-tone-0 { background:#eaf3ff; color:#356fa9; }.group-tone-1 { background:#eef8ef; color:#377d54; }.group-tone-2 { background:#fff2e8; color:#a66332; }.group-tone-3 { background:#f5edff; color:#7852a8; }.group-tone-4 { background:#fff0f2; color:#a65064; }
@media (max-width:650px) { .entry-detail-body > .entry-record-table { width:calc(100% - 28px); margin:0 14px 10px; }.entry-record-table th,.entry-record-table td { padding-right:3px; padding-left:3px; }.entry-record-table th:nth-child(1) { width:18%; }.entry-record-table th:nth-child(2) { width:30%; }.entry-record-table th:nth-child(3) { width:19%; }.entry-record-table th:nth-child(4) { width:33%; }.entry-record-table td:nth-child(2) { font-size:10px; }.entry-record-table .entry-group-tag { padding:3px 3px; font-size:10px; }.entry-record-table .entry-record-actions { gap:3px; }.entry-record-table .entry-save-button,.entry-record-table .entry-delete-confirm { padding:5px 5px; font-size:11px; }.entry-record-table .entry-cancel-button,.entry-record-table .entry-delete-button { font-size:11px; } }
