.print-root{background:#e9e6e1;min-height:100vh;padding:16px}.print-toolbar{background:#fff;border-radius:10px;flex-wrap:wrap;align-items:center;gap:10px;max-width:210mm;margin:0 auto 14px;padding:10px 14px;display:flex}.print-toolbar select{width:auto;min-height:34px}.sheet{color:#000;background:#fff;margin:0 auto;font-family:SimSun,Songti SC,PingFang SC,serif;font-size:12.5px}.paper-a4 .sheet{width:186mm;min-height:120mm;padding:10mm 12mm;box-shadow:0 2px 10px #00000026}.paper-dot .sheet{width:225mm;min-height:130mm;padding:4mm 6mm;font-size:12px;box-shadow:0 2px 10px #00000026}.sheet-head{grid-template-columns:minmax(0,1.4fr) auto minmax(0,1fr);align-items:end;gap:8px;margin-bottom:6px;display:grid}.sheet-company{letter-spacing:1px;font-size:18px;font-weight:700}.sheet-company-sub{letter-spacing:0;margin-top:2px;font-size:11px;font-weight:400}.sheet-title{letter-spacing:6px;text-align:center;font-size:20px;font-weight:700}.sheet-no{text-align:right}.sheet table{border-collapse:collapse;width:100%}.sheet th,.sheet td{text-align:left;vertical-align:middle;color:#000;font-size:inherit;white-space:normal;background:0 0;border:1px solid #000;padding:3px 5px;font-weight:400}.sheet-info th{white-space:nowrap;width:9%}.sheet-lines{margin-top:-1px}.sheet-lines thead th{text-align:center;font-weight:700}.sheet .c-no,.sheet .c-unit{text-align:center;width:7%}.sheet .c-num{text-align:right;font-variant-numeric:tabular-nums;width:11%}.sheet .right{text-align:right}.sheet-remark{border:1px solid #000;border-top:0;min-height:22px;padding:4px 5px}.sheet-sign{flex-wrap:wrap;justify-content:space-between;gap:6px;margin-top:12px;display:flex}.paper-dot .sheet th,.paper-dot .sheet td{padding:2px 4px}@media print{.no-print{display:none!important}body,.print-root{background:#fff!important;padding:0!important}.sheet{box-shadow:none!important;width:auto!important;min-height:0!important;margin:0!important;padding:0!important}}:root{--bg:#f6f3ee;--panel:#fffdf9;--line:#e3dcd2;--text:#33302c;--muted:#6f675e;--primary:#1f3a5f;--primary-hover:#152a46;--accent:#f2c230;--ok:#2f7a43;--ok-bg:#e5f3e8;--warn:#9a6400;--warn-bg:#fdf1d6;--danger:#b3261e;--danger-bg:#fbe5e3;--info-bg:#e6edf6;--radius:10px;--control:7px;color:var(--text);background:var(--bg);font-family:-apple-system,BlinkMacSystemFont,PingFang SC,Microsoft YaHei,Noto Sans SC,sans-serif;font-size:14px}*{box-sizing:border-box}body{background:var(--bg);color:var(--text);margin:0}h1{margin:0;font-size:24px}h2{margin:0 0 12px;font-size:17px}h3{margin:16px 0 8px;font-size:15px}button,input,select,textarea{font:inherit;color:inherit}input,select,textarea{border:1px solid var(--line);border-radius:var(--control);background:#fff;width:100%;min-height:40px;padding:8px 10px}textarea{resize:vertical;min-height:70px}input:focus-visible,select:focus-visible,textarea:focus-visible,button:focus-visible,[tabindex]:focus-visible{outline:2px solid var(--primary);outline-offset:1px}button{border:1px solid var(--line);border-radius:var(--control);cursor:pointer;white-space:nowrap;background:#fff;min-height:36px;padding:6px 14px}button:hover:not(:disabled){border-color:var(--primary)}button:disabled{opacity:.55;cursor:not-allowed}button.primary{background:var(--primary);border-color:var(--primary);color:#fff}button.primary:hover:not(:disabled){background:var(--primary-hover)}button.danger{color:var(--danger);border-color:#e7b7b2}button.link{color:var(--primary);background:0 0;border:0;min-height:0;padding:0 4px;text-decoration:underline}button.small{min-height:30px;padding:3px 10px;font-size:13px}button.icon{background:0 0;border:0;padding:4px 8px;font-size:22px;line-height:1}.app{grid-template-columns:210px 1fr;min-height:100vh;display:grid}.sidebar{background:var(--primary);color:#fff;flex-direction:column;gap:2px;height:100vh;padding:18px 12px;display:flex;position:sticky;top:0;overflow-y:auto}.brand{align-items:center;gap:10px;padding:0 8px 16px;font-size:17px;font-weight:700;display:flex}.brand-mark{background:var(--accent);width:30px;height:30px;color:var(--primary);border-radius:7px;place-items:center;font-weight:800;display:grid}.sidebar a{color:#dfe7f2;border-radius:7px;padding:7px 12px;text-decoration:none}.sidebar a:hover{color:#fff;background:#ffffff14}.sidebar a.active{color:#fff;box-shadow:inset 3px 0 0 var(--accent);background:#ffffff29;font-weight:600}.sidebar .nav-group{color:#9fb1c9;padding:14px 12px 4px;font-size:12px}.sidebar .me{color:#c9d5e4;border-top:1px solid #ffffff26;margin-top:auto;padding:12px 8px 0;font-size:13px}.sidebar .me button{color:#fff;background:0 0;border-color:#ffffff59;margin-top:8px}.topbar{display:none}main{min-width:0;padding:22px 26px 40px}.page-header{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:16px;margin-bottom:16px;display:flex}.page-header p{color:var(--muted);margin:6px 0 0}.page-actions{flex-wrap:wrap;gap:8px;display:flex}.panel{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);margin-bottom:14px;padding:16px}.filters{grid-template-columns:repeat(auto-fill,minmax(160px,1fr));align-items:end;gap:10px;display:grid}.form-grid{grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:12px 14px;display:grid}.field{flex-direction:column;gap:5px;min-width:0;display:flex}.field-wide{grid-column:1/-1}.field-label{color:var(--muted);font-size:13px}.field-hint{color:var(--muted);font-size:12px}.actions{flex-wrap:wrap;align-items:center;gap:8px;margin-top:14px;display:flex}.muted{color:var(--muted)}.right{text-align:right}.nowrap{white-space:nowrap}.money{font-variant-numeric:tabular-nums;white-space:nowrap}.big-money{color:var(--primary);font-size:22px;font-weight:700}.notice{border-radius:8px;justify-content:space-between;gap:12px;margin-bottom:12px;padding:10px 14px;display:flex}.notice-error{background:var(--danger-bg);color:var(--danger)}.notice-ok{background:var(--ok-bg);color:var(--ok)}.notice-warn{background:var(--warn-bg);color:var(--warn);border-radius:8px;margin-bottom:12px;padding:10px 14px}.notice-warn a{color:inherit;font-weight:600}.stock-short{color:var(--danger);font-weight:600}.stock-low{color:var(--warn);font-weight:600}.stock-plus{color:var(--ok)}.stock-hint{white-space:nowrap;font-variant-numeric:tabular-nums}.alert-panel{background:#fffaf0;border-color:#ecd49a}.alert-group+.alert-group{margin-top:10px}.alert-group h3{margin:0 0 6px;font-size:14px}.alert-list{gap:6px;margin:0;padding:0;list-style:none;display:grid}.alert-list li>span:first-child{border:1px solid;border-radius:5px;margin-right:8px;padding:0 6px;font-size:12px;display:inline-block}.notice-info{background:var(--info-bg);color:var(--primary);border-radius:8px;margin-bottom:12px;padding:10px 14px}.empty{text-align:center;color:var(--muted);background:var(--panel);border:1px dashed var(--line);border-radius:var(--radius);padding:34px}.status{white-space:nowrap;background:#eee;border-radius:999px;padding:2px 9px;font-size:12px;display:inline-block}.status-pending{background:var(--warn-bg);color:var(--warn)}.status-shipped{background:var(--ok-bg);color:var(--ok)}.status-void{color:#777;background:#ececec;text-decoration:line-through}.status-error{background:var(--danger-bg);color:var(--danger)}.status-warning{background:var(--warn-bg);color:var(--warn)}.status-ok,.status-active{background:var(--ok-bg);color:var(--ok)}.status-disabled{color:#777;background:#ececec}.grid{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);overflow:hidden}.grid-scroll{overflow-x:auto}table{border-collapse:collapse;width:100%}th,td{border-bottom:1px solid var(--line);text-align:left;vertical-align:top;padding:9px 12px}th{color:var(--muted);white-space:nowrap;background:#f3eee7;font-size:13px;font-weight:600}tr.clickable{cursor:pointer}tr.clickable:hover td{background:#faf6f0}.pagination{color:var(--muted);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;padding:8px 12px;font-size:13px;display:flex}.pagination div{align-items:center;gap:8px;display:flex}.lines td{vertical-align:middle}.line-no{white-space:nowrap;color:var(--muted);font-size:13px}.lines input,.lines select{min-height:36px}.qty{width:90px}.totals{grid-template-columns:auto auto;justify-content:end;align-items:center;gap:6px 18px;margin-top:12px;display:grid}.totals .label{color:var(--muted);text-align:right}.modal{border:0;border-radius:12px;width:min(560px,100vw - 24px);max-height:calc(100vh - 32px);padding:0;box-shadow:0 18px 50px #00000040}.modal-wide{width:min(980px,100vw - 24px)}.modal::backdrop{background:#14181e73}.modal header,.modal footer{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;gap:8px;padding:14px 18px;display:flex}.modal header h2{margin:0}.modal footer{border-bottom:0;border-top:1px solid var(--line);flex-wrap:wrap;justify-content:flex-end}.modal-body{max-height:calc(100vh - 170px);padding:16px 18px;overflow:auto}.login-wrap{background:linear-gradient(160deg,#1f3a5f 0%,#2c4f7c 55%,#f6f3ee 55%);place-items:center;min-height:100vh;padding:16px;display:grid}.login-card{background:var(--panel);border-radius:14px;width:min(380px,100%);padding:28px 24px;box-shadow:0 16px 40px #0000002e}.login-card h1{align-items:center;gap:10px;margin-bottom:6px;display:flex}.login-card form{gap:14px;margin-top:18px;display:grid}.kv{grid-template-columns:max-content 1fr;gap:6px 14px;margin:0;display:grid}.kv dt{color:var(--muted)}.kv dd{margin:0}.two-col{grid-template-columns:1fr 1fr;gap:14px;display:grid}.timeline{margin:0;padding:0;font-size:13px;list-style:none}.timeline li{border-bottom:1px dashed var(--line);padding:6px 0}.parcel-row{grid-template-columns:1fr 1.4fr auto;gap:8px;margin-bottom:8px;display:grid}.mapping{grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:10px;display:grid}.issue{font-size:12px;display:block}.issue-error{color:var(--danger)}.issue-warning{color:var(--warn)}.check{align-items:center;gap:6px;display:flex}.check input{width:auto;min-height:0}.company-preview{border:1px dashed var(--line);background:#fff;border-radius:8px;padding:12px 14px;font-size:16px}.company-preview .muted{margin-top:4px;font-size:13px}.tag{background:var(--info-bg);color:var(--primary);border-radius:5px;margin:1px 3px 1px 0;padding:1px 7px;font-size:12px;display:inline-block}.money.negative,.negative{color:var(--danger)}.struck{color:var(--muted);text-decoration:line-through}.small-text{font-size:12px}.segmented{flex-wrap:wrap;gap:18px;display:flex}.stat-row{grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:10px;margin-bottom:14px;display:grid}.stat{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);text-align:left;white-space:normal;flex-direction:column;gap:4px;min-height:0;padding:12px 14px;display:flex}.stat>span{color:var(--muted);font-size:13px}.stat strong{font-variant-numeric:tabular-nums;color:var(--primary);font-size:19px}.stat-danger strong{color:var(--danger)}.stat-ok strong{color:var(--ok)}.stat-button{cursor:pointer}.stat-button.selected{border-color:var(--primary);box-shadow:inset 0 -3px 0 var(--accent)}table.matrix td,table.matrix th{white-space:nowrap}table.matrix tfoot td{border-top:2px solid var(--line);background:#f3eee7}.attachments{flex-wrap:wrap;gap:10px;display:flex}.attachments img{border:1px solid var(--line);border-radius:6px;max-width:220px;max-height:220px}.statement{border:1px solid var(--line);border-radius:var(--radius);background:#fff;padding:22px 26px}.statement header{border-bottom:2px solid var(--text);justify-content:space-between;align-items:baseline;margin-bottom:12px;padding-bottom:6px;display:flex}.statement header h2{letter-spacing:4px;margin:0}.statement-company{font-size:18px;font-weight:700}.statement-info{grid-template-columns:max-content 1fr max-content 1fr;margin-bottom:12px}.statement-lines th,.statement-lines td{border:1px solid var(--line);padding:6px 8px}.statement-sum td{background:#f8f4ee;font-weight:600}.statement-sign{flex-wrap:wrap;justify-content:space-between;gap:8px;margin-top:22px;display:flex}@media print{.sidebar,.topbar,.no-print{display:none!important}.app{display:block}main{padding:0}body{background:#fff}.statement{border:0;padding:0}.statement-lines th,.statement-lines td{border-color:#000}}.ai-panel-head{justify-content:space-between;align-items:center;gap:8px;display:flex}.ai-panel-head h2{margin:0}.ai-chip{white-space:nowrap;vertical-align:middle;border-radius:999px;padding:1px 8px;font-size:12px;font-weight:600;display:inline-block}.ai-green{background:var(--ok-bg);color:var(--ok)}.ai-yellow{background:var(--warn-bg);color:var(--warn)}.ai-red{background:var(--danger-bg);color:var(--danger)}.ai-manual{background:var(--info-bg);color:var(--primary)}.ai-hint{margin-top:3px;font-size:12px;display:block}.ai-text-green{color:var(--ok)}.ai-text-yellow{color:var(--warn)}.ai-text-red{color:var(--danger)}.ai-said{color:var(--muted);margin-bottom:4px;font-size:12px}.ai-candidates{flex-wrap:wrap;align-items:center;gap:6px;margin-top:6px;font-size:12px;display:flex}.ai-remember{margin-top:6px;font-size:12px}.ai-row-red td{background:#fdf3f2}.ai-row-yellow td{background:#fffaf0}.ai-row-green td{background:#f6fbf7}.ai-summary{border-left-width:5px}.ai-border-red{border-left-color:var(--danger)}.ai-border-yellow{border-left-color:var(--accent)}.ai-border-green{border-left-color:var(--ok)}.ai-notices{gap:4px;margin:8px 0;padding-left:0;list-style:none;display:grid}.ai-box{border-radius:8px;margin-top:12px;padding:10px 14px}.ai-box-yellow{background:var(--warn-bg);color:var(--warn)}.ai-box-red{background:var(--danger-bg);color:var(--danger)}.ai-box .check{align-items:center;gap:6px;margin-top:6px;display:flex}.ai-expense-item{border:1px solid var(--line);border-left-width:5px;border-radius:8px;margin-top:10px;padding:10px 12px}.ai-expense-item.ai-off{opacity:.55}.ai-expense-head{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;display:flex}.ai-files{margin-top:8px}.ai-feature{border:1px solid var(--line);background:#fff;border-radius:8px;margin-bottom:10px;padding:12px}.ai-stats{flex-wrap:wrap;gap:18px;margin-top:14px;display:flex}.ai-stats div{flex-direction:column;gap:2px;display:flex}.ai-stats strong{color:var(--primary);font-size:22px}a.button-link{border:1px solid var(--line);border-radius:var(--control);min-height:36px;color:var(--primary);background:#fff;align-items:center;padding:6px 14px;text-decoration:none;display:inline-flex}@media (width<=820px){.app{grid-template-columns:1fr}.sidebar{z-index:20;height:auto;display:none;position:fixed;inset:0 30% 0 0;overflow:auto}.app.menu-open .sidebar{display:flex}.topbar{background:var(--primary);color:#fff;z-index:10;justify-content:space-between;align-items:center;padding:10px 14px;display:flex;position:sticky;top:0}.topbar button{color:#fff;background:0 0;border-color:#fff6}main{padding:14px 12px 32px}.two-col,.parcel-row{grid-template-columns:1fr}table.lines,table.lines tbody,table.lines tr,table.lines td{width:100%;display:block}table.lines thead{display:none}table.lines tr{border:1px solid var(--line);background:#fff;border-radius:8px;margin-bottom:10px;padding:8px 10px}table.lines td{text-align:left;border:0;padding:4px 0;min-width:0!important}table.lines td[data-label]:before{content:attr(data-label);color:var(--muted)}table.lines .qty{width:120px}.totals{grid-template-columns:1fr auto;justify-content:stretch}.page-header{align-items:flex-start}.statement{padding:14px 12px}.statement-info{grid-template-columns:max-content 1fr}.stat-row{grid-template-columns:1fr 1fr}}.assistant{max-width:920px}.as-thread{flex-direction:column;gap:10px;padding-bottom:8px;display:flex}.as-msg{display:flex}.as-me{justify-content:flex-end}.as-ai{justify-content:flex-start}.as-bubble{background:var(--panel);border:1px solid var(--line);overflow-wrap:anywhere;border-radius:14px;max-width:min(640px,92%);padding:10px 14px}.as-bubble p{margin:0 0 6px}.as-bubble p:last-child{margin-bottom:0}.as-me .as-bubble{background:var(--info-bg);border-color:#cbd8ea;border-bottom-right-radius:4px}.as-ai .as-bubble{border-bottom-left-radius:4px}.as-bubble.as-wide{width:min(760px,100%);max-width:100%}.as-text{white-space:pre-wrap}.as-time{color:var(--muted);text-align:right;margin-top:4px;font-size:11px}.as-files{margin-top:6px}.as-reply{font-weight:600}.as-cards{gap:10px;margin-top:6px;display:grid}.as-card{border:1px solid var(--line);background:#fff;border-left-width:5px;border-radius:10px;min-width:0;padding:10px 12px}.as-card.as-off{opacity:.6}.ai-border-off{border-left-color:var(--line)}.as-card-head{flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:6px;display:flex}.as-fields{grid-template-columns:max-content 1fr;gap:4px 12px;margin:6px 0;display:grid}.as-fields dt{color:var(--muted)}.as-fields dd{min-width:0;margin:0}.as-lines{gap:4px;margin:8px 0;padding:0;list-style:none;display:grid}.as-lines li{background:#faf8f4;border-radius:6px;padding:6px 8px}.as-lines li.ai-row-red{background:#fdf3f2}.as-lines li.ai-row-yellow{background:#fffaf0}.as-lines li.ai-row-green{background:#f6fbf7}.as-line-main{justify-content:space-between;gap:10px;display:flex}.as-total{color:var(--primary);margin:6px 0;font-weight:700}.as-result{background:var(--ok-bg);color:var(--ok);border-radius:8px;margin-top:8px;padding:8px 12px}.as-result a{color:var(--ok);font-weight:600}.as-result ul{margin:4px 0 0;padding-left:18px}.as-actions{flex-wrap:wrap;margin-top:8px}.as-pick,.as-examples{flex-wrap:wrap;align-items:center;gap:6px;margin-top:6px;display:flex}.as-examples button{white-space:normal;text-align:left}.as-answer{font-size:15px}.as-table{border:1px solid var(--line);border-radius:8px;margin:6px 0}.as-table table{width:100%}.as-table th,.as-table td{padding:6px 10px}.as-link{color:var(--primary);margin-top:6px;font-weight:600;display:inline-block}.as-composer{z-index:5;background:var(--bg);border-top:1px solid var(--line);padding:10px 0 12px;position:sticky;bottom:0}.as-input-row{align-items:flex-end;gap:8px;display:flex}.as-input-row textarea{resize:vertical;flex:1;min-height:44px;max-height:40vh}.as-input-actions{gap:6px;display:flex}@media (width<=820px){.as-bubble{max-width:96%}.as-input-row{flex-direction:column;align-items:stretch}.as-input-actions{justify-content:flex-end}.as-input-actions button{flex:1;min-height:42px}.as-fields{grid-template-columns:1fr;gap:0}.as-fields dt{margin-top:6px;font-size:12px}.as-actions button:not(.link){flex:auto;min-height:40px}}
