.serif-title[data-v-260fd57b]{font-family:var(--serif);margin-top:0}:root{--bg: #f3f0e8;--card: #fffcf7;--ink: #1e2430;--muted: #5c675f;--line: #e3dcd0;--pine: #0f6e6b;--pine-ink: #083f3d;--cinnabar: #b55233;--sidebar: #e7e1d6;--serif: "Source Han Serif SC", "Noto Serif SC", "Songti SC", "SimSun", serif;--sans: "Source Han Sans SC", "Noto Sans SC", "PingFang SC", "Microsoft YaHei", sans-serif;color:var(--ink);font-family:var(--sans);font-size:15px;line-height:1.6;background:var(--bg)}*{box-sizing:border-box}body{margin:0;min-width:320px}button,input,select,textarea{font:inherit;color:inherit}button{cursor:pointer}a{color:var(--pine);text-decoration:none}::selection{color:var(--pine-ink);background:#c8e1dc}.shell{min-height:100vh;display:grid;grid-template-columns:232px 1fr}.side{background:var(--sidebar);padding:28px 18px;display:flex;flex-direction:column;gap:22px;border-right:1px solid #ddd4c6;position:sticky;top:0;height:100vh;overflow-y:auto}.brand em{display:block;font-style:normal;letter-spacing:.28em;color:var(--cinnabar);font-size:12px}.brand strong{display:block;margin-top:8px;font-family:var(--serif);font-size:20px;font-weight:600;line-height:1.35}.side nav{display:flex;flex-direction:column;gap:4px}.side a,.side button.linkish{display:block;padding:9px 12px;border-radius:8px;color:var(--ink);background:transparent;border:0;text-align:left}.side a.is-active{background:var(--card);box-shadow:inset 3px 0 0 var(--pine)}.side-label{margin:16px 12px 6px;color:var(--muted);font-size:12px;letter-spacing:.12em}.main{min-width:0}.top{height:64px;display:flex;align-items:center;justify-content:space-between;padding:0 28px;background:#fffcf7eb;border-bottom:1px solid var(--line);position:sticky;top:0}.top .name{font-family:var(--serif);font-size:18px}.top-actions{display:flex;gap:16px;align-items:center;color:var(--muted)}.page{padding:28px}.page>*{max-width:1600px}.page h1{font-family:var(--serif);font-weight:600;font-size:32px;margin:0 0 8px}.lede{color:var(--muted);margin:0 0 22px}.login{min-height:100vh;display:grid;grid-template-columns:42% 58%;background:var(--bg)}.hero{background:#e7e1d6;padding:72px 56px;display:flex;flex-direction:column;justify-content:space-between}.hero h1{font-family:var(--serif);font-size:46px;line-height:1.25;margin:18px 0;font-weight:600}.eyebrow{letter-spacing:.22em;color:var(--cinnabar);font-size:13px;margin:0}.hero p{max-width:420px;font-size:16px}.hero footer{color:var(--muted);font-size:13px}.login-panel{display:grid;place-items:center;padding:40px}.login-card{width:min(420px,100%)}.login-card h2{font-family:var(--serif);font-size:28px;margin:0 0 8px}.card{background:var(--card);border:1px solid var(--line);border-radius:14px;padding:20px}.grid-4,.grid-2,.split,.picker,.cards,.segments{display:grid;gap:14px}.grid-4{grid-template-columns:repeat(4,1fr)}.grid-2{grid-template-columns:1.2fr .8fr}.split{grid-template-columns:280px 1fr;align-items:start}.stat strong{display:block;font-family:var(--serif);font-size:34px;margin-top:6px}.stat span{color:var(--muted)}label{display:flex;flex-direction:column;gap:6px;font-size:14px;color:var(--muted)}input,select,textarea{background:#fff;border:1px solid var(--line);border-radius:8px;min-height:40px;padding:8px 12px;outline:none}textarea{min-height:88px;resize:vertical}input:focus,select:focus,textarea:focus{border-color:var(--pine)}input:focus-visible,select:focus-visible,textarea:focus-visible,button:focus-visible,a:focus-visible,summary:focus-visible{outline:3px solid #8fc8c0;outline-offset:2px}input:disabled,select:disabled,textarea:disabled{background:#f2efe8;color:#66706a;cursor:not-allowed}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.form-grid .wide{grid-column:1 / -1}.row{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.btn,.btn-ghost,.btn-warn{height:40px;padding:0 16px;border-radius:8px;border:1px solid transparent}.btn{background:var(--pine);color:#fff}.btn:hover{background:var(--pine-ink)}.btn-ghost{background:transparent;border-color:var(--line)}.btn-ghost:hover{background:#f2efe8;border-color:#c9c0b3}.btn-warn{background:var(--cinnabar);color:#fff}.btn-warn:hover{background:#873d26}.btn:disabled,.btn-ghost:disabled,.btn-warn:disabled{opacity:.55;cursor:not-allowed}table{width:100%;border-collapse:collapse}th,td{overflow-wrap:anywhere}th{text-align:left;font-weight:500;color:var(--muted);font-size:13px;padding:8px}td{border-top:1px solid var(--line);padding:12px 8px;vertical-align:top}tbody tr:hover{background:#f8f5ef}.tag{display:inline-flex;align-items:center;padding:2px 8px;border-radius:999px;background:#e7f3f2;color:var(--pine);font-size:13px}.tag.warn{background:#f8ebe6;color:var(--cinnabar)}.tag.mute{background:#eeeae3;color:var(--muted)}.banner{background:#f8ebe6;color:#6d2e1d;border-radius:8px;padding:10px 12px;margin-bottom:12px}.ok{background:#e7f3f2;color:var(--pine-ink);border-radius:8px;padding:10px 12px;margin-bottom:12px}.empty{color:var(--muted);padding:18px 0}.field-error{color:#873d26;font-size:13px;margin:8px 0}.text-action{padding:0;border:0;background:none;color:var(--pine);text-decoration:underline}.invalidated-banner{border:1px solid #dec5b9}.control-heading{justify-content:space-between;margin-bottom:12px}.control-heading>div:first-child{min-width:0}.control-heading .hint{margin-top:0}.collab-progress{margin-bottom:16px}.collab-progress .section-heading{margin-bottom:10px}.progress-steps{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:0;border-top:1px solid var(--line)}.progress-steps li{min-width:0;position:relative;padding:12px 10px 2px 0;color:var(--muted);display:grid;grid-template-columns:22px 1fr;column-gap:7px;align-items:center}.progress-steps li+li{padding-left:10px;border-left:1px solid var(--line)}.progress-steps .step-mark{width:20px;height:20px;display:grid;place-items:center;border-radius:50%;background:#eeeae3;color:var(--muted);font-weight:700}.progress-steps li.complete{color:var(--ink)}.progress-steps li.complete .step-mark{background:#e7f3f2;color:var(--pine)}.progress-steps li.warning .step-mark{background:#f8ebe6;color:var(--cinnabar)}.progress-steps li small{grid-column:2;font-size:12px;color:var(--muted)}.selected-customer{margin:10px 0;padding:10px 12px;display:flex;align-items:center;justify-content:space-between;gap:12px;border:1px solid #b9d0c9;border-radius:8px;background:#f1f6f3}.selected-customer p{margin:3px 0 0}.temporary-pane{display:grid;align-content:start;gap:10px;padding-left:16px;border-left:1px solid var(--line)}.temporary-pane h3{margin:0}.customer-select{min-width:0;display:grid;gap:10px}.customer-select>label{min-width:0}.settings-form{display:grid;gap:24px}.settings-form section+section{border-top:1px solid var(--line);padding-top:20px}.status-options{display:flex;flex-wrap:wrap;gap:8px}.status-option{border:1px solid var(--line);border-radius:8px;padding:8px 12px;background:#fff}.status-option.is-selected{border-color:#9abeb8;background:#f1f6f3}.audit-filters{display:grid;grid-template-columns:repeat(4,minmax(140px,1fr)) auto;gap:12px;align-items:end;margin-bottom:16px}.audit-filter-actions{padding-bottom:0}.audit-summary{color:var(--muted);font-size:13px;margin:0 0 8px 8px}.audit-detail{min-width:180px;max-width:360px}.public-brand{margin:0 0 12px;font-family:var(--serif);font-size:32px;line-height:1.3}.public-control{margin-top:16px}.public-control-heading{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-bottom:4px}.public-control-heading h2{margin:0;font-family:var(--serif);font-size:24px}.public-control>.hint{margin-bottom:16px}.public-loading{min-height:220px}.public-message{margin-top:16px}.public-message p:last-child{color:var(--muted)}.rule-summary{padding:20px;border:1px solid var(--line);border-radius:14px;background:var(--card)}.rule-lines{display:grid;grid-template-columns:1fr 1fr;gap:12px}.rule-lines>div{display:flex;justify-content:space-between;gap:12px;padding:14px;background:#f4f0e7;border-radius:8px}.allocation-form{margin-top:16px}.allocation-form .section-heading{align-items:flex-start}.align-end{display:flex;align-items:end}.preview-panel{margin-top:16px;padding:16px;border:1px solid #b9d0c9;border-radius:12px;background:#f3f8f5}.preview-heading{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:14px}.preview-heading p{margin:2px 0 0;color:var(--muted)}.preview-heading code{font-size:18px;font-weight:700;overflow-wrap:anywhere}.number-actions,.number-success{margin-top:14px}.allocation-history{margin-top:28px}.allocation-history .section-heading{margin-bottom:8px}.allocation-history code{white-space:nowrap}.editor-form{margin-bottom:16px}.is-invalidated{color:#68706b}.transfer-tabs{display:flex;gap:8px;flex-wrap:wrap;border-bottom:1px solid var(--line);margin:4px 0 18px}.transfer-tab{padding:9px 14px;border:1px solid transparent;border-bottom:0;border-radius:8px 8px 0 0;background:transparent;color:var(--muted)}.transfer-tab.active{border-color:var(--line);background:var(--card);color:var(--ink);font-weight:600}.transfer-intro .section-heading{align-items:flex-start}.transfer-guidance{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:18px;padding:14px 16px;background:#f5f1e9;border-radius:10px}.transfer-guidance strong{font-size:14px}.transfer-guidance p{margin:5px 0 0;color:var(--muted);overflow-wrap:anywhere}.transfer-actions{display:flex;flex-wrap:wrap;align-items:center;gap:10px;margin-top:18px}.file-picker{display:inline-flex;flex-direction:row;align-items:center;min-height:40px;padding:0 14px;border:1px solid var(--line);border-radius:8px;background:#fff;color:var(--ink);cursor:pointer}.file-picker:hover{background:#f2efe8;border-color:#c9c0b3}.file-picker input{width:min(300px,52vw);min-height:0;padding:0;border:0;background:transparent}.selected-file{margin:14px 0 0;overflow-wrap:anywhere}.selected-file span{color:var(--muted);margin-left:6px;font-size:13px}.transfer-preview{margin-top:24px}.transfer-preview>.section-heading{align-items:flex-start}.import-counts{display:flex;gap:10px;flex-wrap:wrap;margin:12px 0}.import-counts span{padding:8px 12px;background:#f5f1e9;border-radius:8px;color:var(--muted)}.import-counts strong{color:var(--ink);margin-left:5px}.import-preview-table{min-width:780px}.import-preview-table td:nth-child(2){min-width:220px}.import-preview-table td:last-child{min-width:280px}.import-row-error{background:#fbf2ed}.import-row-error:hover{background:#f8ebe6}.import-confirm{display:flex;align-items:center;justify-content:space-between;gap:16px;padding-top:14px}.import-confirm p{margin:0}.import-history{margin-top:28px}.import-history .section-heading{align-items:flex-start}.controls{display:flex;flex-direction:column;gap:16px}.control h2{font-family:var(--serif);font-size:22px;margin:0 0 6px}.echo{background:#f7f1e6;border:1px solid var(--line);border-radius:8px;padding:12px 14px;margin-bottom:12px}.echo strong{display:block;white-space:pre-wrap}.echo p{margin:6px 0 0;color:var(--cinnabar)}.picker{grid-template-columns:1.15fr .85fr}.result{border:1px solid var(--line);border-radius:10px;padding:10px 12px;margin-bottom:8px;background:#fff;cursor:pointer}.result.active{border-color:var(--pine);background:#f3faf9}.group{border-top:1px solid var(--line);padding-top:8px}.group summary{cursor:pointer;font-family:var(--serif);font-size:18px}.cards{grid-template-columns:1fr 1fr}.invoice-card{border:1px dashed #c8bfb2;border-radius:12px;padding:14px;background:#fff;cursor:pointer}.invoice-card.active{border-style:solid;border-color:var(--pine)}.invoice-card .tax{font-family:var(--serif);font-size:20px;letter-spacing:.04em}.segments{grid-template-columns:repeat(4,1fr)}.segment{background:#fff;border:1px solid var(--line);border-radius:12px;padding:12px}.segment span{display:block;color:var(--muted);font-size:12px}.segment strong{font-family:var(--serif);font-size:24px}.checkline{flex-direction:row;align-items:center;color:var(--ink)}.pager{display:flex;gap:8px;justify-content:flex-end;margin-top:12px}.gate{min-height:100vh;display:grid;place-items:center;padding:40px;background:var(--bg)}.gate-card{width:min(640px,100%)}.gate-card h1{font-family:var(--serif);font-size:36px;line-height:1.3}.page-heading{display:flex;justify-content:space-between;align-items:flex-start;gap:20px;margin-bottom:22px}.page-heading h1{margin-bottom:6px}.page-heading .lede{margin-bottom:0;max-width:70ch}.table-wrap{width:100%;overflow-x:auto;border-radius:10px}.table-wrap table{min-width:680px}.table-wrap:focus-visible{outline:3px solid #8fc8c0;outline-offset:3px}.load-state{min-height:176px;display:flex;align-items:center;justify-content:center;gap:14px;color:var(--muted)}.load-mark{width:9px;height:9px;border-radius:50%;background:var(--pine);animation:load-pulse 1.2s ease-in-out infinite}.load-lines{display:grid;gap:8px;width:min(220px,35vw)}.load-lines span{height:8px;border-radius:999px;background:#e8e1d6}.load-lines span:last-child{width:64%}.load-error{min-height:120px;display:flex;align-items:center;justify-content:space-between;gap:20px;padding:22px;border:1px solid #dec5b9;border-radius:12px;background:#fbf2ed;color:#6d2e1d}.load-error p{margin:5px 0 0}.hint{color:var(--muted);font-size:13px;margin:4px 0 0}.toolbar{display:flex;flex-wrap:wrap;gap:10px;align-items:center;margin:16px 0}.toolbar>input{min-width:min(320px,100%)}.form-actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.section-heading{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:14px}.section-heading h2{margin:0}.pill{display:inline-flex;align-items:center;gap:6px;border:1px solid var(--line);border-radius:999px;padding:4px 10px;color:var(--muted);font-size:13px}.metric-list{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));border-block:1px solid var(--line);margin:24px 0}.metric{display:flex;justify-content:space-between;align-items:baseline;gap:14px;padding:16px 18px;border-right:1px solid var(--line);color:var(--muted)}.metric:first-child{padding-left:0}.metric:last-child{border-right:0}.metric strong{color:var(--ink);font-size:24px;font-variant-numeric:tabular-nums}.table-empty{text-align:center;padding:34px 20px;color:var(--muted)}.table-empty strong{display:block;color:var(--ink);font-weight:600;margin-bottom:4px}.progress-track{height:5px;min-width:72px;background:#e5ded2;border-radius:999px;overflow:hidden}.progress-track span{display:block;height:100%;background:var(--pine);border-radius:inherit}.stale-selection{display:flex;align-items:center;justify-content:space-between;gap:14px;border:1px solid #dec5b9;border-radius:10px;background:#fbf2ed;padding:10px 12px;margin:8px 0}.stale-selection p{margin:3px 0 0;color:#6d2e1d}.nav-toggle{display:none}@keyframes load-pulse{0%,to{opacity:.35;transform:scale(.85)}50%{opacity:1;transform:scale(1)}}@media(max-width:1040px){.shell{grid-template-columns:208px minmax(0,1fr)}.side{padding-inline:14px}.page{padding:22px}.grid-4{grid-template-columns:repeat(2,minmax(0,1fr))}.metric{display:grid;gap:4px}.audit-filters{grid-template-columns:repeat(2,minmax(0,1fr))}.audit-filter-actions{grid-column:1 / -1}}@media(max-width:760px){.login{display:flex;flex-direction:column}.hero{min-height:220px;padding:30px 32px;gap:12px}.hero h1{font-size:36px}.hero footer{display:none}.login-panel{padding:26px 20px}.shell{display:block}.side{display:none;position:absolute;z-index:20;top:58px;left:12px;right:12px;height:auto;max-height:calc(100vh - 76px);border:1px solid var(--line);border-radius:12px;box-shadow:0 14px 32px #1e243024}.side.is-open{display:flex}.top{height:auto;min-height:60px;padding:10px 14px;gap:12px}.top .name{display:none}.top-actions{margin-left:auto;gap:10px;font-size:13px}.top-actions span{max-width:130px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.nav-toggle{display:inline-flex;align-items:center;min-height:38px;padding:0 12px;border:1px solid var(--line);border-radius:8px;background:var(--card)}.page{padding:20px 14px}.page h1{font-size:28px}.page-heading{flex-direction:column;align-items:stretch;gap:12px}.page-heading>.btn,.page-heading>.btn-ghost{align-self:flex-start}.grid-4,.grid-2,.split,.picker,.cards,.form-grid{grid-template-columns:1fr}.form-grid .wide{grid-column:auto}.segments{grid-template-columns:repeat(2,minmax(0,1fr))}.progress-steps{grid-template-columns:1fr}.progress-steps li,.progress-steps li+li{padding:9px 0;border-left:0;border-bottom:1px solid var(--line)}.progress-steps li:last-child{border-bottom:0}.temporary-pane{padding-left:0;padding-top:18px;border-left:0;border-top:1px solid var(--line)}.rule-lines{grid-template-columns:1fr}.preview-heading{align-items:flex-start;flex-direction:column}.audit-filters{grid-template-columns:1fr}.audit-filter-actions{grid-column:auto}.control-heading{align-items:flex-start;flex-direction:column}.transfer-guidance{grid-template-columns:1fr}.import-confirm{align-items:flex-start;flex-direction:column}.file-picker{align-items:flex-start;flex-direction:column;padding:8px 12px}.file-picker input{width:min(280px,70vw)}.metric-list{grid-template-columns:repeat(2,minmax(0,1fr))}.metric{border-bottom:1px solid var(--line)}.metric:nth-child(2){border-right:0}.metric:nth-child(3),.metric:nth-child(4){border-bottom:0}.metric:first-child{padding-left:18px}.load-error{align-items:flex-start;flex-direction:column}}@media(max-width:540px){.login{display:flex;flex-direction:column}.hero{min-height:220px;padding:30px 24px;gap:18px}.hero h1{font-size:34px}.hero footer{display:none}.login-panel{padding:28px 20px}.gate{padding:18px}.gate-card h1{font-size:28px}.top-actions span{display:none}.page{padding-inline:12px}.card{padding:15px}.metric-list{font-size:13px}.metric{padding:12px 8px}.metric:first-child{padding-left:8px}.metric strong{font-size:20px}.segments{grid-template-columns:1fr 1fr}.segment strong{font-size:19px;overflow-wrap:anywhere}.row>input,.row>select{max-width:100%}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}
