:root{--color-nav-bg: #111827;--color-nav-text: #E5E7EB;--color-nav-muted: #9CA3AF;--color-nav-active: #1D4ED8;--color-primary: #2563EB;--color-primary-weak: #EFF4FF;--color-accent: #0891B2;--color-success: #16A34A;--color-warning: #D97706;--color-danger: #DC2626;--color-text: #111827;--color-text-sub: #475569;--color-text-muted: #94A3B8;--color-border: #E2E8F0;--color-bg: #F8FAFC;--color-surface: #FFFFFF;--radius-sm: 6px;--radius-md: 8px;--shadow-1: 0 1px 3px rgba(17, 24, 39, .08);--shadow-2: 0 4px 12px rgba(17, 24, 39, .12)}:root{--font-sans: "PingFang SC", "Microsoft YaHei", "Noto Sans CJK SC", "Source Han Sans SC", system-ui, sans-serif;--font-num: ui-monospace, "SFMono-Regular", "Cascadia Mono", Consolas, "Liberation Mono", monospace}:root{--sp-1: 4px;--sp-2: 8px;--sp-3: 12px;--sp-4: 16px;--sp-6: 24px;--sp-8: 32px;--nav-w: 240px;--row-h: 40px;--ctl-h: 36px;--page-pad: 24px;--nav-line: #1F2937}:root{--color-on-dark: #FFFFFF;--color-nav-chip-border: #374151;--color-nav-active-text: #DBEAFE;--color-nav-active-border: #60A5FA;--color-surface-head: #F1F5F9;--color-note-bg: #FEF3C7;--color-note-text: #92400E;--color-note-border: #FDE68A;--color-danger-weak-bg: #FEF2F2;--color-danger-weak-text: #B91C1C;--color-danger-weak-border: #FECACA;--status-draft-bg: #F1F5F9;--status-draft-fg: #475569;--status-draft-border: #E2E8F0;--status-pending-bg: #FEF3C7;--status-pending-fg: #B45309;--status-pending-border: #FDE68A;--status-confirmed-bg: #EFF4FF;--status-confirmed-fg: #2563EB;--status-confirmed-border: #DBEAFE;--status-doing-bg: #ECFEFF;--status-doing-fg: #0891B2;--status-doing-border: #CFFAFE;--status-accept-bg: #FEF3C7;--status-accept-fg: #B45309;--status-accept-border: #FDE68A;--status-receivable-bg: #FFEDD5;--status-receivable-fg: #C2410C;--status-receivable-border: #FED7AA;--status-settled-bg: #DCFCE7;--status-settled-fg: #16A34A;--status-settled-border: #BBF7D0;--status-void-bg: #FEE2E2;--status-void-fg: #DC2626;--status-void-border: #FECACA}:root{--fs-page: 20px;--fw-page: 600;--fs-module: 16px;--fw-module: 600;--fs-body: 14px;--fs-aux: 12px;--fs-table: 13px;--fs-tag: 12px;--fw-tag: 500;--fs-btn: 14px;--fw-btn: 500;--fs-amount: 20px;--fw-amount: 600;--fs-kcard: 14px;--fw-kcard: 600;--transition: .15s ease}*{box-sizing:border-box}body{margin:0;min-width:320px;min-height:100vh;background:var(--color-bg);color:var(--color-text);font-family:var(--font-sans);font-size:var(--fs-body);line-height:1.5;-webkit-font-smoothing:antialiased}h1,h2,h3,p,td,th,label,button,input,select,textarea,span,div{font-style:normal}.num{font-family:var(--font-num);font-variant-numeric:tabular-nums}a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,[tabindex]:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}.shell{display:flex;min-height:100vh}nav.sidebar{width:var(--nav-w);flex:0 0 var(--nav-w);background:var(--color-nav-bg);color:var(--color-nav-text);display:flex;flex-direction:column;position:sticky;top:0;height:100vh}.brand{padding:var(--sp-4) var(--sp-4) var(--sp-3);border-bottom:1px solid var(--nav-line)}.brand b{display:block;font-size:var(--fs-module);font-weight:var(--fw-module)}.brand small{color:var(--color-nav-muted);font-size:var(--fs-aux)}.navlist{list-style:none;margin:0;padding:var(--sp-2) 0;flex:1;overflow-y:auto}.navlist a{display:flex;align-items:center;gap:var(--sp-2);height:40px;padding:0 var(--sp-4);color:var(--color-nav-text);text-decoration:none;font-size:var(--fs-body);border-left:3px solid transparent;transition:background-color var(--transition),color var(--transition)}.navlist a .ico{width:18px;text-align:center;color:var(--color-nav-muted);font-size:var(--fs-aux)}.navlist a:hover{background:var(--nav-line)}.navlist a[aria-current=page]{background:var(--color-nav-active);border-left-color:var(--color-on-dark);color:var(--color-on-dark)}.navlist a[aria-current=page] .ico{color:var(--color-on-dark)}.boss-only-mark{margin-left:auto;font-size:11px;color:var(--color-nav-muted);border:1px solid var(--color-nav-chip-border);border-radius:var(--radius-sm);padding:0 var(--sp-1)}.navlist a[aria-current=page] .boss-only-mark{color:var(--color-nav-active-text);border-color:var(--color-nav-active-border)}.nav-foot{padding:var(--sp-3) var(--sp-4);border-top:1px solid var(--nav-line)}.role-switch{display:flex;gap:var(--sp-1);background:var(--nav-line);border-radius:var(--radius-sm);padding:2px}.role-switch button{flex:1;height:28px;border:0;border-radius:4px;cursor:pointer;background:transparent;color:var(--color-nav-muted);font-family:var(--font-sans);font-size:var(--fs-aux);transition:background-color var(--transition),color var(--transition)}.role-switch button[aria-pressed=true]{background:var(--color-nav-active);color:var(--color-on-dark)}.nav-foot .hint{color:var(--color-nav-muted);font-size:11px;margin:var(--sp-2) 0 0}main.content{flex:1;min-width:0;padding:var(--page-pad);overflow-wrap:anywhere}.page-head{display:flex;align-items:flex-start;gap:var(--sp-4);flex-wrap:wrap;margin-bottom:var(--sp-4)}.page-head h1{font-size:var(--fs-page);font-weight:var(--fw-page);margin:0}.page-head .sub{color:var(--color-text-sub);font-size:var(--fs-aux);margin:var(--sp-1) 0 0}.mock-flag{background:var(--color-note-bg);color:var(--color-note-text);border:1px solid var(--color-note-border);border-radius:var(--radius-sm);padding:var(--sp-1) var(--sp-2);font-size:var(--fs-aux);font-weight:var(--fw-tag);white-space:nowrap;margin-left:auto}.spec-ref{color:var(--color-text-muted);font-size:11px;font-family:var(--font-num)}section.block{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);box-shadow:var(--shadow-1);padding:var(--sp-4);margin-bottom:var(--sp-4)}section.block>h2{font-size:var(--fs-module);font-weight:var(--fw-module);margin:0 0 var(--sp-1)}section.block>.desc{color:var(--color-text-sub);font-size:var(--fs-aux);margin:0 0 var(--sp-3)}.sub-h{font-size:var(--fs-body);font-weight:var(--fw-module);margin:var(--sp-4) 0 var(--sp-2)}.btn{height:var(--ctl-h);padding:0 var(--sp-3);border-radius:var(--radius-sm);border:1px solid transparent;font-family:var(--font-sans);font-size:var(--fs-btn);font-weight:var(--fw-btn);cursor:pointer;display:inline-flex;align-items:center;gap:var(--sp-2);transition:background-color var(--transition),border-color var(--transition),color var(--transition)}.btn-primary{background:var(--color-primary);color:var(--color-on-dark)}.btn-primary:hover:not([disabled]){background:var(--color-nav-active)}.btn-secondary{background:var(--color-surface);color:var(--color-primary);border-color:var(--color-primary)}.btn-secondary:hover:not([disabled]){background:var(--color-primary-weak)}.btn-danger{background:var(--color-surface);color:var(--color-danger);border-color:var(--color-danger)}.btn-danger:hover:not([disabled]){background:var(--color-danger-weak-bg)}.btn-ghost{background:transparent;color:var(--color-text-sub);border-color:var(--color-border)}.btn-ghost:hover:not([disabled]){background:var(--color-bg)}.btn[disabled]{background:var(--color-surface-head);color:var(--color-text-muted);border-color:var(--color-border);cursor:not-allowed}.btn-sm{height:28px;padding:0 var(--sp-2);font-size:var(--fs-aux)}.toolbar{display:flex;gap:var(--sp-2);flex-wrap:wrap;align-items:center}.toolbar .field{flex:0 0 auto;width:168px}.tag{display:inline-block;height:22px;line-height:20px;padding:0 var(--sp-2);border-radius:var(--radius-sm);font-size:var(--fs-tag);font-weight:var(--fw-tag);border:1px solid transparent;white-space:nowrap}.tag-draft{background:var(--status-draft-bg);color:var(--status-draft-fg);border-color:var(--status-draft-border)}.tag-pending{background:var(--status-pending-bg);color:var(--status-pending-fg);border-color:var(--status-pending-border)}.tag-confirmed{background:var(--status-confirmed-bg);color:var(--status-confirmed-fg);border-color:var(--status-confirmed-border)}.tag-doing{background:var(--status-doing-bg);color:var(--status-doing-fg);border-color:var(--status-doing-border)}.tag-accept{background:var(--status-accept-bg);color:var(--status-accept-fg);border-color:var(--status-accept-border)}.tag-receivable{background:var(--status-receivable-bg);color:var(--status-receivable-fg);border-color:var(--status-receivable-border)}.tag-settled{background:var(--status-settled-bg);color:var(--status-settled-fg);border-color:var(--status-settled-border)}.tag-void{background:var(--status-void-bg);color:var(--status-void-fg);border-color:var(--status-void-border)}.tag-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:var(--sp-2)}.tag-item{display:flex;align-items:center;gap:var(--sp-2);padding:var(--sp-2);border:1px solid var(--color-border);border-radius:var(--radius-sm)}.tag-item .meta{color:var(--color-text-muted);font-size:11px;font-family:var(--font-num)}.table-wrap{max-height:360px;overflow:auto;border:1px solid var(--color-border);border-radius:var(--radius-sm)}table.data{width:100%;border-collapse:separate;border-spacing:0;font-size:var(--fs-table)}table.data thead th{position:sticky;top:0;z-index:2;background:var(--color-surface-head);color:var(--color-text-sub);font-weight:var(--fw-module);font-size:var(--fs-aux);text-align:left;padding:0 var(--sp-3);height:var(--row-h);white-space:nowrap;border-bottom:1px solid var(--color-border);box-shadow:var(--shadow-2)}table.data tbody td{padding:0 var(--sp-3);height:var(--row-h);border-bottom:1px solid var(--color-border);vertical-align:middle}table.data tbody tr:last-child td{border-bottom:0}table.data tbody tr:hover{background:var(--color-primary-weak)}table.data .r{text-align:right}table.data .c{text-align:center}table.data td .num,table.data td .btn{white-space:nowrap}table.data td[data-label=商品]{min-width:176px}table.data .cell-name{font-weight:var(--fw-module);font-size:var(--fs-body);max-width:220px}table.data .cell-cust{color:var(--color-text-sub);max-width:220px}.pager{display:flex;justify-content:flex-end;align-items:center;gap:var(--sp-2);margin-top:var(--sp-3);color:var(--color-text-sub);font-size:var(--fs-aux)}.kanban{display:flex;gap:var(--sp-3);overflow-x:auto;padding-bottom:var(--sp-2)}.kcol{flex:1 0 220px;min-width:220px;background:var(--color-bg);border:1px solid var(--color-border);border-radius:var(--radius-md);padding:var(--sp-3)}.kcol>h3{margin:0 0 var(--sp-2);font-size:var(--fs-body);font-weight:var(--fw-module);color:var(--color-text-sub);display:flex;align-items:center;justify-content:space-between;gap:var(--sp-2)}.kcol>h3 .count{font-family:var(--font-num);font-size:var(--fs-aux);color:var(--color-text-muted)}.kcol>h3 .caret{display:none}.kcard{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-sm);box-shadow:var(--shadow-1);padding:var(--sp-3);margin-bottom:var(--sp-2);cursor:pointer;transition:border-color var(--transition)}.kcard:hover{border-color:var(--color-primary)}.kcard:last-child{margin-bottom:0}.kcard .code{font-family:var(--font-num);font-size:var(--fs-aux);color:var(--color-text-muted)}.kcard .title{font-size:var(--fs-kcard);font-weight:var(--fw-kcard);margin:2px 0 var(--sp-1)}.kcard .cust{color:var(--color-text-sub);font-size:var(--fs-aux);margin-bottom:var(--sp-2)}.kcard .row{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-2)}.kcard .amt{font-family:var(--font-num);font-variant-numeric:tabular-nums;font-weight:var(--fw-amount);font-size:var(--fs-body)}.kcard .next{margin-top:var(--sp-2);padding-top:var(--sp-2);border-top:1px solid var(--color-border);color:var(--color-text-sub);font-size:var(--fs-aux)}.kcard .next b{color:var(--color-primary);font-weight:var(--fw-tag)}.form-fieldset{border:0;margin:0;padding:0;min-width:0}fieldset:disabled .input,fieldset:disabled .select,fieldset:disabled .textarea,fieldset:disabled .lines input,fieldset:disabled .lines select{background:var(--color-bg);color:var(--color-text-muted)}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--sp-3)}.field{display:flex;flex-direction:column;gap:var(--sp-1)}.field.full{grid-column:1 / -1}.field>label,.fld-label{font-size:var(--fs-aux);color:var(--color-text-sub)}.fld-label{display:block;margin-bottom:var(--sp-1)}.field .req{color:var(--color-danger)}.input,.select{height:var(--ctl-h);padding:0 var(--sp-2);border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-surface);color:var(--color-text);font-family:var(--font-sans);font-size:var(--fs-body);width:100%;transition:border-color var(--transition),box-shadow var(--transition)}.input::placeholder{color:var(--color-text-muted)}.input.num-in{font-family:var(--font-num);font-variant-numeric:tabular-nums;text-align:right}.input:focus,.select:focus{border-color:var(--color-primary);box-shadow:0 0 0 2px var(--color-primary-weak)}.select.placeholder{color:var(--color-text-muted)}.textarea{min-height:64px;padding:var(--sp-2);border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-surface);font-family:var(--font-sans);font-size:var(--fs-body);color:var(--color-text);resize:vertical;width:100%}.field .err{color:var(--color-danger);font-size:var(--fs-aux)}.field.invalid>.input,.field.invalid>.select{border-color:var(--color-danger)}.mode-switch{display:inline-flex;border:1px solid var(--color-border);border-radius:var(--radius-sm);overflow:hidden;align-self:flex-start}.mode-switch button{height:var(--ctl-h);padding:0 var(--sp-3);border:0;cursor:pointer;background:var(--color-surface);color:var(--color-text-sub);font-family:var(--font-sans);font-size:var(--fs-body);transition:background-color var(--transition),color var(--transition)}.mode-switch button+button{border-left:1px solid var(--color-border)}.mode-switch button[aria-pressed=true]{background:var(--color-primary);color:var(--color-on-dark)}.mode-hint{color:var(--color-text-sub);font-size:var(--fs-aux);margin:var(--sp-1) 0 0}.lines-scroll{overflow-x:auto}table.lines{width:100%;border-collapse:separate;border-spacing:0;font-size:var(--fs-table)}table.lines thead th{background:var(--color-surface-head);color:var(--color-text-sub);font-size:var(--fs-aux);font-weight:var(--fw-module);text-align:left;padding:var(--sp-2);border-bottom:1px solid var(--color-border);white-space:nowrap}table.lines tbody td{padding:var(--sp-1) var(--sp-2);border-bottom:1px solid var(--color-border);vertical-align:middle}table.lines .r{text-align:right}table.lines input{height:30px;padding:0 var(--sp-2);border:1px solid var(--color-border);border-radius:4px;background:var(--color-surface);color:var(--color-text);font-family:var(--font-sans);font-size:var(--fs-table);width:100%}table.lines input.n{font-family:var(--font-num);font-variant-numeric:tabular-nums;text-align:right}table.lines .line-sub{font-family:var(--font-num);font-variant-numeric:tabular-nums}.summary{border-top:1px solid var(--color-border);margin-top:var(--sp-3);padding-top:var(--sp-3);display:flex;flex-direction:column;align-items:flex-end;gap:var(--sp-2)}.sum-row{display:flex;align-items:baseline;gap:var(--sp-3);min-width:300px;justify-content:space-between}.sum-row .k{color:var(--color-text-sub);font-size:var(--fs-body)}.sum-row .v{font-family:var(--font-num);font-variant-numeric:tabular-nums;font-size:var(--fs-body)}.sum-row.total .k{font-weight:var(--fw-module)}.sum-row.total .v{font-size:var(--fs-amount);font-weight:var(--fw-amount);color:var(--color-primary)}.sum-note{color:var(--color-text-muted);font-size:var(--fs-aux);max-width:460px;text-align:right;margin:0}.modal-mask{position:fixed;top:0;right:0;bottom:0;left:0;background:#11182773;display:flex;align-items:center;justify-content:center;padding:var(--sp-4);z-index:50}.modal{width:480px;max-width:100%;background:var(--color-surface);border-radius:var(--radius-md);box-shadow:var(--shadow-2);padding:var(--sp-4)}.modal h3{margin:0 0 var(--sp-2);font-size:var(--fs-module);font-weight:var(--fw-module)}.modal p{margin:0 0 var(--sp-3);color:var(--color-text-sub);font-size:var(--fs-body)}.modal .warn{background:var(--color-danger-weak-bg);border:1px solid var(--color-danger-weak-border);color:var(--color-danger-weak-text);border-radius:var(--radius-sm);padding:var(--sp-2);font-size:var(--fs-aux);margin-bottom:var(--sp-3)}.modal .acts{display:flex;justify-content:flex-end;gap:var(--sp-2)}.modal .check{display:flex;align-items:center;gap:var(--sp-2);min-height:44px;margin-bottom:var(--sp-3);font-size:var(--fs-aux)}.modal .check input[type=checkbox]{width:18px;height:18px;accent-color:var(--color-primary)}.toast-host{position:fixed;top:var(--sp-4);right:var(--sp-4);z-index:60;display:flex;flex-direction:column;gap:var(--sp-2)}.toast{display:flex;align-items:center;gap:var(--sp-2);background:var(--color-surface);border:1px solid var(--color-border);border-left:3px solid var(--color-success);border-radius:var(--radius-sm);box-shadow:var(--shadow-2);padding:var(--sp-2) var(--sp-3);font-size:var(--fs-body);min-width:260px}.toast .ic{font-family:var(--font-num);font-weight:var(--fw-amount);color:var(--color-success)}.toast.err{border-left-color:var(--color-danger)}.toast.err .ic{color:var(--color-danger)}.state-box{border:1px dashed var(--color-border);border-radius:var(--radius-sm);padding:var(--sp-6);text-align:center;background:var(--color-bg)}.state-box .state-ico{font-size:var(--fs-module);color:var(--color-text-muted)}.state-box p{margin:var(--sp-2) 0;color:var(--color-text-sub)}.demo-stack{display:flex;flex-direction:column;gap:var(--sp-2)}.page-head-main{min-width:0}.page-head-side{margin-left:auto;display:flex;flex-direction:column;align-items:flex-end;gap:var(--sp-2)}.back-link{display:inline-block;color:var(--color-primary);font-size:var(--fs-aux);text-decoration:none;margin-bottom:var(--sp-1)}.back-link:hover{text-decoration:underline}.page-head h1:focus-visible{outline:2px solid var(--color-primary);outline-offset:4px}.app-foot{display:flex;flex-wrap:wrap;gap:var(--sp-2);align-items:baseline;margin:0 0 var(--sp-4);font-size:var(--fs-aux)}.app-foot a{color:var(--color-primary)}.demo-bar{display:flex;flex-wrap:wrap;align-items:center;gap:var(--sp-1);border:1px dashed var(--color-border);border-radius:var(--radius-sm);padding:var(--sp-2);margin-bottom:var(--sp-3)}.demo-bar-label{color:var(--color-text-muted);font-size:var(--fs-aux);margin-right:var(--sp-1)}.demo-bar button[aria-pressed=true]{background:var(--color-primary-weak);color:var(--color-primary);border-color:var(--color-primary)}.state-box p{font-size:var(--fs-body)}.state-note{color:var(--color-text-muted);font-size:var(--fs-aux);margin:var(--sp-2) 0 0}.state-error .state-ico,.state-forbidden .state-ico,.state-failure .state-ico{color:var(--color-danger)}.state-success .state-ico{color:var(--color-success)}.kcol-empty{padding:var(--sp-3)}.filter-bar{margin-bottom:var(--sp-3)}.filter-label{color:var(--color-text-sub);font-size:var(--fs-aux)}.filter-bar button[aria-pressed=true]{background:var(--color-primary-weak);color:var(--color-primary);border-color:var(--color-primary)}.record-list{list-style:none;margin:0;padding:0}.record-list>li+li{border-top:1px solid var(--color-border)}.record-row{display:flex;align-items:center;gap:var(--sp-3);width:100%;min-height:var(--row-h);padding:var(--sp-2) var(--sp-1);background:transparent;border:0;cursor:pointer;font-family:var(--font-sans);font-size:var(--fs-body);color:var(--color-text);text-align:left}.record-row:hover{background:var(--color-primary-weak)}.record-code{color:var(--color-text-muted);font-size:var(--fs-aux);flex:0 0 auto}.record-name{flex:1 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.record-amount{margin-left:auto;font-weight:var(--fw-amount);flex:0 0 auto}.flow-bar{display:flex;flex-wrap:wrap;align-items:center;gap:var(--sp-1);border:1px dashed var(--color-border);border-radius:var(--radius-sm);padding:var(--sp-2);margin-bottom:var(--sp-3)}.flow-bar button[aria-pressed=true]{background:var(--color-primary-weak);color:var(--color-primary);border-color:var(--color-primary)}.flow-msg{flex:1 1 100%;margin:var(--sp-1) 0 0;font-size:var(--fs-aux);color:var(--color-text-sub)}.flow-msg.reject{color:var(--color-danger)}.flow-msg.ok{color:var(--color-success)}.pay-form{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--sp-3);border-top:1px solid var(--color-border);margin-top:var(--sp-3);padding-top:var(--sp-3)}.pay-form .pay-btn-field{justify-content:flex-end}.pay-form .flow-msg{flex:1 1 100%;margin:0}.goal-text{margin:0 0 var(--sp-2)}.record-sub{color:var(--color-text-sub);font-size:var(--fs-aux);flex:0 0 auto}.timeline{list-style:none;margin:0;padding:0}.timeline>li{border-left:2px solid var(--color-border);padding:0 0 var(--sp-3) var(--sp-3);margin-left:var(--sp-1)}.timeline>li:last-child{padding-bottom:0}.tl-head{display:flex;align-items:baseline;flex-wrap:wrap;gap:var(--sp-2)}.tl-time{color:var(--color-text-muted);font-size:var(--fs-aux)}.tl-kind{font-size:var(--fs-aux);color:var(--color-text-sub);border:1px solid var(--color-border);border-radius:var(--radius-sm);padding:0 var(--sp-1)}.tl-text{margin:var(--sp-1) 0 0}.tl-actor{margin:2px 0 0;color:var(--color-text-muted);font-size:var(--fs-aux)}.stock-cell{display:inline-flex;align-items:center;gap:var(--sp-1);justify-content:flex-end}.stock-unit{color:var(--color-text-muted);font-size:var(--fs-aux)}.stock-alert{display:inline-block;height:22px;line-height:20px;padding:0 var(--sp-1);border-radius:var(--radius-sm);border:1px solid transparent;font-size:var(--fs-aux);font-style:normal;white-space:nowrap}.stock-alert.ok{background:var(--status-settled-bg);color:var(--status-settled-fg);border-color:var(--status-settled-border)}.stock-alert.low{background:var(--status-receivable-bg);color:var(--status-receivable-fg);border-color:var(--status-receivable-border)}.stock-alert.out{background:var(--status-void-bg);color:var(--status-void-fg);border-color:var(--status-void-border)}.duty-cell{color:var(--color-text-sub);font-size:var(--fs-aux)}.op-hint{margin:var(--sp-2) 0 0;padding:var(--sp-2) var(--sp-3);border-left:3px solid var(--color-primary);background:var(--color-primary-weak);color:var(--color-text);font-size:var(--fs-aux);line-height:1.7}.op-hint b{color:var(--color-primary)}.mv-kind{display:inline-block;height:22px;line-height:20px;padding:0 var(--sp-1);border-radius:var(--radius-sm);border:1px solid var(--color-border);font-size:var(--fs-aux)}.mv-kind.out{background:var(--status-receivable-bg);color:var(--status-receivable-fg);border-color:var(--status-receivable-border)}.mv-kind.in{background:var(--color-primary-weak);color:var(--color-primary);border-color:var(--status-confirmed-border)}.pay-kind{display:inline-block;height:22px;line-height:20px;padding:0 var(--sp-1);border-radius:var(--radius-sm);border:1px solid var(--color-border);background:var(--color-bg);color:var(--color-text-sub);font-size:var(--fs-aux)}.stock-check{margin-top:var(--sp-3)}.stock-check .record-row{min-height:var(--ctl-h)}@media(min-width:768px){.clamp-2{display:-webkit-box;-webkit-line-clamp:2;line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;line-height:18px}td .clamp-2{max-width:260px}}nav.tabbar{display:none}@media(min-width:768px)and (max-width:1279px){:root{--nav-w: 64px}.brand{padding:var(--sp-3) 0;text-align:center}.navlist a{justify-content:center;padding:0 var(--sp-2)}.navlist a .ico{width:auto;font-size:var(--fs-module)}.role-switch{flex-direction:column}.nav-foot{padding:var(--sp-2)}.sidebar .lbl,.sidebar .brand b,.sidebar .brand small,.sidebar .hint,.sidebar .identity,.boss-only-mark{display:none}nav.sidebar:hover,nav.sidebar:focus-within{position:fixed;z-index:45;width:240px;box-shadow:var(--shadow-2)}nav.sidebar:hover .lbl,nav.sidebar:focus-within .lbl,nav.sidebar:hover .brand b,nav.sidebar:focus-within .brand b,nav.sidebar:hover .brand small,nav.sidebar:focus-within .brand small,nav.sidebar:hover .hint,nav.sidebar:focus-within .hint{display:block}nav.sidebar:hover .boss-only-mark,nav.sidebar:focus-within .boss-only-mark{display:inline-block}nav.sidebar:hover .navlist a,nav.sidebar:focus-within .navlist a{justify-content:flex-start;padding:0 var(--sp-4)}nav.sidebar:hover .navlist a .ico,nav.sidebar:focus-within .navlist a .ico{width:18px;font-size:var(--fs-aux)}nav.sidebar:hover .role-switch,nav.sidebar:focus-within .role-switch{flex-direction:row}.kanban{flex-wrap:nowrap}.kcol{flex:0 0 calc((100% - 2 * var(--sp-3)) / 3);min-width:calc((100% - 2 * var(--sp-3)) / 3)}}@media(max-width:767px){:root{--page-pad: 16px;--row-h: 44px;--ctl-h: 44px;--fs-page: 18px;--fs-module: 15px;--fs-tag: 11px;--fs-amount: 18px}.shell{display:block}nav.sidebar{display:none}main.content{padding:var(--page-pad) var(--page-pad) 76px}.mock-flag{margin-left:0}nav.tabbar{display:flex;position:fixed;left:0;right:0;bottom:0;z-index:40;background:var(--color-nav-bg);border-top:1px solid var(--nav-line)}nav.tabbar a{flex:1;height:56px;min-width:44px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;color:var(--color-nav-muted);text-decoration:none;font-size:11px;transition:color var(--transition),background-color var(--transition)}nav.tabbar a .ico{font-size:var(--fs-module)}nav.tabbar a[aria-current=page]{color:var(--color-on-dark);background:var(--color-nav-active)}.kanban{flex-direction:column;overflow:visible}.kcol{flex:none;width:100%;min-width:0}.kcol>h3{cursor:pointer;min-height:44px}.kcol>h3 .caret{display:inline;color:var(--color-text-muted);font-family:var(--font-num)}.kcol[data-collapsed=true] .kcard{display:none}.table-wrap{max-height:none;overflow:visible;border:0}table.data thead{display:none}table.data,table.data tbody,table.data tr,table.data td{display:block;width:100%}table.data tbody tr{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-sm);box-shadow:var(--shadow-1);padding:var(--sp-3);margin-bottom:var(--sp-2)}table.data tbody td{height:auto;padding:2px 0;border:0;display:flex;justify-content:space-between;align-items:baseline;gap:var(--sp-3)}table.data tbody td:before{content:attr(data-label);color:var(--color-text-muted);font-size:var(--fs-aux);text-align:left;flex:0 0 auto}table.data tbody td.r,table.data tbody td.c{justify-content:flex-end}table.data .cell-name{font-size:var(--fs-body)}table.data .cell-name:before{display:none}table.data td.cell-cust{color:var(--color-text-sub);font-size:var(--fs-aux);padding-bottom:var(--sp-2);margin-bottom:var(--sp-1);border-bottom:1px solid var(--color-border)}table.data td.cell-cust:before{display:none}table.data td.hide-sm{display:none}.form-grid,.pay-form{grid-template-columns:1fr}.pay-form .pay-btn-field{justify-content:flex-start}.summary{align-items:stretch}.sum-row{min-width:0}.sum-note{text-align:left;max-width:none}.lines-scroll{overflow:visible}table.lines thead{display:none}table.lines,table.lines tbody,table.lines tr,table.lines td{display:block;width:100%}table.lines tbody tr{border:1px solid var(--color-border);border-radius:var(--radius-sm);padding:var(--sp-2);margin-bottom:var(--sp-2);background:var(--color-surface)}table.lines tbody td{padding:var(--sp-1) 0;border:0;display:flex;align-items:center;gap:var(--sp-2)}table.lines tbody td:before{content:attr(data-label);color:var(--color-text-sub);font-size:var(--fs-aux);flex:0 0 72px}table.lines tbody td.r{justify-content:flex-start;text-align:left}.btn-sm{position:relative;height:32px;padding:0 var(--sp-2);font-size:var(--fs-aux)}.btn-sm:after{content:"";position:absolute;top:50%;left:50%;width:100%;min-width:44px;height:44px;transform:translate(-50%,-50%)}.toast-host{left:var(--sp-4);right:var(--sp-4);top:var(--sp-4);align-items:center}.toast{min-width:0;width:100%}.modal-mask{align-items:flex-end;padding:0}.modal{width:100%;border-radius:var(--radius-md) var(--radius-md) 0 0}}.login-main{min-height:100vh;display:flex;align-items:center;justify-content:center}.login-card{width:100%;max-width:440px;display:grid;gap:var(--sp-3);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);box-shadow:var(--shadow-2);padding:var(--sp-6)}.login-card h1{margin:0;font-size:var(--fs-page);font-weight:var(--fw-page)}.login-card .err{color:var(--color-danger);font-size:var(--fs-aux);margin:0}.identity{color:var(--color-nav-muted);font-size:var(--fs-aux);margin:0 0 var(--sp-2)}.identity b{display:block;color:var(--color-nav-text);font-weight:var(--fw-tag)}.logout{width:100%;height:28px;border:1px solid var(--color-nav-chip-border);border-radius:var(--radius-sm);background:transparent;color:var(--color-nav-muted);font-family:var(--font-sans);font-size:var(--fs-aux);cursor:pointer;transition:color var(--transition),border-color var(--transition)}.logout:hover{color:var(--color-on-dark);border-color:var(--color-nav-muted)}.real-flag{display:inline-block;background:var(--status-settled-bg);color:var(--status-settled-fg);border:1px solid var(--status-settled-border);border-radius:var(--radius-sm);padding:0 var(--sp-2);font-size:var(--fs-aux);font-weight:var(--fw-tag);white-space:nowrap}.seal-box{display:flex;align-items:center;min-height:120px;margin-bottom:var(--sp-3);padding:var(--sp-3);border:1px dashed var(--color-border);border-radius:var(--radius-md);background:var(--color-surface)}.seal-img{max-width:240px;max-height:120px;object-fit:contain}.metric-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--sp-3)}.metric-card{display:flex;flex-direction:column;gap:var(--sp-1);padding:var(--sp-3);border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface);color:var(--color-text);text-decoration:none;transition:border-color var(--transition),box-shadow var(--transition)}.metric-card:hover,.metric-card:focus-visible{border-color:var(--color-primary);box-shadow:0 2px 8px #0f172a14}.metric-label{font-size:var(--fs-aux);color:var(--color-text-sub)}.metric-value{font-size:var(--fs-amount);font-weight:var(--fw-amount);color:var(--color-primary)}.metric-count,.metric-parts{font-size:var(--fs-aux);color:var(--color-text-sub)}.metric-formula{font-size:var(--fs-aux);color:var(--color-text)}.metric-note{font-size:var(--fs-aux);color:var(--color-text-muted)}.metric-drill{margin-top:var(--sp-1);font-size:var(--fs-aux);color:var(--color-primary)}@media(max-width:1100px){.metric-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:700px){.metric-grid{grid-template-columns:minmax(0,1fr)}}@media(prefers-reduced-motion:reduce){*{transition-duration:1ms!important}}
