:root{font-family:Inter,"Segoe UI","Microsoft YaHei",sans-serif;color:#23343c;background:#f3f6f8;font-size:16px;--ink:#172c35;--muted:#71828b;--line:#e3e9ed;--teal:#174e57;--accent:#d5a64c}*{box-sizing:border-box}body{margin:0}button,input,select,textarea{font:inherit}button,a,select{touch-action:manipulation}button{cursor:pointer}aside{width:230px;background:#102c35;color:#bacdd2;position:fixed;inset:0 auto 0 0;padding:32px 20px;display:flex;flex-direction:column}.brand{display:flex;align-items:center;gap:14px;text-decoration:none;color:white;font-size:38px;font-weight:700;line-height:1.1}.brand span{font-size:13px;letter-spacing:3px;color:#a1bec8}.brand b{display:block;font-size:15px;letter-spacing:1px;color:#fff;margin-top:6px}.nav-caption{font-size:12px;color:#79949f;margin:46px 16px 16px;letter-spacing:2px}nav{display:grid;gap:5px}nav button{display:flex;align-items:center;gap:13px;text-align:left;border:0;color:#b7cbd3;background:none;padding:13px 15px;border-radius:8px;font-size:15px}nav button:hover{background:#1b3b45}nav button.active{background:#28515c;color:#fff}nav svg{width:19px;height:19px;stroke:currentColor;fill:none;stroke-width:1.7}.sidebar-footer{margin-top:auto;font-size:13px;line-height:2}.sidebar-footer small{color:#76929b}.currency-badge{display:inline-block;border:1px solid #47626b;border-radius:4px;padding:0 5px;font-size:11px;margin-right:4px}.workspace{margin-left:230px}header{height:76px;background:#fff;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:0 36px;font-size:14px}.header-right{display:flex;align-items:center;gap:18px}.local-label{color:var(--muted);font-size:13px}header select{padding:8px 12px;background:#f8fafb;border:1px solid var(--line);border-radius:6px;font-size:14px}main{max-width:1580px;margin:auto;padding:32px 36px 50px}.page-head{display:flex;justify-content:space-between;gap:20px;align-items:center;margin-bottom:24px}h1{font-size:28px;letter-spacing:-.7px;margin:0 0 8px;font-weight:650;color:var(--ink)}h2{font-size:18px;margin:0}p{line-height:1.6}.sub{font-size:14px;color:var(--muted);margin:0}.button{border:1px solid var(--teal);border-radius:7px;background:var(--teal);color:white;padding:10px 18px;font-size:14px;font-weight:550;display:inline-flex;align-items:center;justify-content:center;gap:8px;text-decoration:none;white-space:nowrap}.button:hover{filter:brightness(1.12)}.button.secondary{border-color:#d5dfe5;background:#fff;color:#354f5b}.button.small{padding:6px 10px;font-size:13px}.button:disabled{opacity:.5;cursor:not-allowed}.actions{display:flex;align-items:center;gap:9px;flex-wrap:wrap}.notice{background:#fff9e9;border:1px solid #eee0b3;border-radius:8px;padding:12px 16px;font-size:14px;color:#78612b;margin-bottom:24px}.cards{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:18px;margin-bottom:24px}.card{background:white;border:1px solid var(--line);border-radius:10px;padding:23px}.card.featured{background:var(--teal);color:#fff;border-color:var(--teal)}.card-label{font-size:14px;color:var(--muted);margin-bottom:17px}.featured .card-label{color:#b8d3d6}.metric{font-size:29px;letter-spacing:-.8px;font-weight:620;font-variant-numeric:tabular-nums}.metric small{font-size:15px;letter-spacing:0;font-weight:400;margin-right:5px;color:#91a5ae}.featured .metric small{color:#b8d3d6}.card-foot{margin-top:14px;font-size:13px;color:var(--muted)}.featured .card-foot{color:#b8d3d6}.panel{background:white;border:1px solid var(--line);border-radius:10px;margin-bottom:22px;overflow:hidden}.panel-head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:20px 22px;border-bottom:1px solid var(--line)}.split{display:grid;grid-template-columns:1.4fr 1fr;gap:22px}.pending-grid{padding:6px 22px}.pending-row{display:flex;justify-content:space-between;align-items:center;padding:19px 0;border-bottom:1px solid #eff2f4}.pending-row:last-child{border:0}.pending-row b{font-size:25px;font-weight:600}.pending-row span{font-size:14px}.mini-label{font-size:12px;color:var(--muted);display:block;margin-top:5px}.link{background:none;border:0;color:var(--teal);padding:0;font-size:14px;cursor:pointer}.tag{display:inline-block;border-radius:5px;padding:4px 8px;font-size:12px;font-weight:500;background:#edf3f6;color:#526a76;white-space:nowrap}.tag.green{background:#eaf5ef;color:#347658}.tag.amber{background:#fff3d8;color:#966d1b}.tag.blue{background:#eaf0fb;color:#4567a6}.table-wrap{overflow:auto}table{width:100%;border-collapse:collapse;text-align:left;font-size:14px;white-space:nowrap}th{background:#fafcfd;color:#7b8a93;font-size:12px;font-weight:500;padding:13px 20px;border-bottom:1px solid var(--line)}td{padding:17px 20px;border-bottom:1px solid #edf1f3}tr:last-child td{border:0}td.numeric,th.numeric{text-align:right;font-variant-numeric:tabular-nums}td strong{font-size:14px;font-weight:550}.muted{color:var(--muted)}.toolbar{display:flex;align-items:center;gap:12px;margin:0 0 18px;flex-wrap:wrap}.toolbar input{min-width:240px}.tabs{display:flex;gap:6px;margin-bottom:20px;flex-wrap:wrap}.tab{border:1px solid var(--line);background:#fff;color:#667b87;border-radius:6px;padding:8px 13px;font-size:14px}.tab.active{background:#e6eff0;color:var(--teal);border-color:#aac4c9}input,select,textarea{border:1px solid #d9e2e7;border-radius:6px;padding:10px 12px;background:#fff;color:#263c47;min-width:0}input:focus,select:focus,textarea:focus{outline:2px solid #90bbc3;outline-offset:1px}input[readonly]{background:#f4f7f8}label{font-size:14px;display:flex;flex-direction:column;gap:8px}textarea{resize:vertical;min-height:84px}.empty{padding:52px 22px;text-align:center;color:var(--muted);font-size:15px;line-height:1.8}.thumb{width:42px;height:42px;object-fit:contain;background:#f3f6f8;border-radius:6px;vertical-align:middle;margin-right:12px}.placeholder-thumb{display:inline-flex;align-items:center;justify-content:center;background:#edf2f5;color:#8da2ad}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px}.full{grid-column:1/-1}.hint{font-size:13px;color:var(--muted);line-height:1.7;margin:10px 0}.form-section{margin-top:24px}.form-section h3{font-size:15px;margin:0 0 14px}.line-item{display:grid;grid-template-columns:2fr 1fr 1fr 36px;gap:10px;margin-bottom:10px}.line-item.purchase-edit{grid-template-columns:2fr 1fr 1fr 1fr 36px}.line-item input,.line-item select{width:100%}.line-labels{font-size:12px;color:var(--muted)}.icon-button{border:0;background:transparent;color:#72828a;font-size:24px;padding:3px 8px}.icon-button:hover{color:#b34545}dialog{border:0;border-radius:14px;padding:0;width:min(820px,94vw);max-height:90vh;box-shadow:0 22px 80px #0b243433}dialog::backdrop{background:#102c3566;backdrop-filter:blur(2px)}.dialog-head{display:flex;align-items:center;justify-content:space-between;padding:23px 26px;border-bottom:1px solid var(--line)}#form-body{padding:24px 26px;max-height:65vh;overflow:auto}.dialog-foot{display:flex;justify-content:flex-end;gap:10px;border-top:1px solid var(--line);padding:18px 26px}#form-error{color:#b13b3b;font-size:14px;padding:0 26px 16px;white-space:pre-wrap}#form-error:empty{display:none}#toast{position:fixed;bottom:28px;left:50%;transform:translateX(-50%);background:#172f38;color:#fff;padding:13px 22px;border-radius:8px;box-shadow:0 8px 24px #1234;z-index:100;display:none;font-size:14px;max-width:80vw}.file-drop{display:block;border:1px dashed #a5bfc7;border-radius:10px;background:#f7fafb;padding:28px;text-align:center;margin:20px 0}.file-drop input{margin-top:16px;max-width:100%}.error-list{color:#ac4141;background:#fff1f1;padding:16px;font-size:14px;line-height:1.8;border-radius:8px;white-space:pre-wrap}.success-box{background:#eaf6ee;color:#397151;padding:14px;border-radius:8px;font-size:14px}.detail-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-bottom:22px}.detail-grid div{background:#f5f8fa;border-radius:8px;padding:15px;font-size:14px}.detail-grid span{display:block;color:var(--muted);font-size:12px;margin-bottom:7px}.bar-chart{padding:22px}.bar-row{display:grid;grid-template-columns:70px 1fr 100px;gap:14px;align-items:center;margin-bottom:18px;font-size:13px}.bar-track{height:15px;border-radius:3px;background:#f0f4f6;overflow:hidden}.bar-fill{height:100%;background:#4e8994;border-radius:3px}.negative{color:#b34c48}.invoice{background:#fff;padding:32px;max-width:900px;margin:auto;color:#222}.invoice h1{text-align:center;font-size:25px}.invoice table{white-space:normal;font-size:12px}.invoice th,.invoice td{border:1px solid #bbb;padding:10px}.invoice-block{padding:14px 0;border-bottom:1px solid #ccc;white-space:pre-wrap;font-size:14px;line-height:1.7}.invoice .thumb{width:65px;height:65px;margin:0}.invoice-meta{display:flex;justify-content:space-between;margin:20px 0;font-size:14px}.summary-line{display:flex;justify-content:space-between;margin:12px 0;font-size:14px}.source-label{font-size:12px;color:#6f838d;margin-left:7px}@media(max-width:1150px){aside{width:190px;padding:25px 14px}.workspace{margin-left:190px}main{padding:25px 22px}.cards{gap:12px}.card{padding:18px}.metric{font-size:24px}.split{grid-template-columns:1fr}header{padding:0 22px}}@media(max-width:760px){aside{width:100%;height:auto;position:static;padding:16px}.brand{font-size:26px}.brand span{font-size:10px}.brand b{font-size:13px}.nav-caption,.sidebar-footer{display:none}nav{display:flex;overflow:auto;margin-top:18px}nav button{white-space:nowrap;padding:9px 12px;font-size:14px}nav svg{display:none}.workspace{margin:0}header{height:60px;padding:0 18px}.local-label{display:none}main{padding:24px 16px}.cards{grid-template-columns:1fr 1fr}.page-head{align-items:flex-start;flex-direction:column}.page-head .actions{width:100%}.metric{font-size:23px}.form-grid{grid-template-columns:1fr}.line-item,.line-item.purchase-edit{grid-template-columns:1.5fr 1fr 1fr 28px;gap:5px}.line-item.purchase-edit{grid-template-columns:1.4fr 1fr 1fr 1fr 24px}.line-item input,.line-item select{padding:8px 5px;font-size:13px}.detail-grid{grid-template-columns:1fr 1fr}.dialog-head,#form-body{padding:20px}.toolbar input{min-width:0;flex:1}.card-label{font-size:13px}h1{font-size:25px}}@media print{aside,header,.no-print,#toast,dialog{display:none!important}.workspace{margin:0}main{padding:0}.invoice{padding:0;max-width:none}body{background:white}.invoice th{background:#eee!important;color:#222}thead{display:table-header-group}tr{break-inside:avoid}.invoice-block{break-inside:avoid}@page{size:A4;margin:14mm}}

.sku-field{min-width:0}.sku-match{display:block;color:#657e89;font-size:12px;margin:6px 0}.line-item{align-items:start}.image-drop{border:2px dashed #b6cbd1;border-radius:10px;padding:22px;text-align:center;background:#f6fafb;display:grid;justify-items:center;gap:12px}.image-drop.dragging{background:#dfefec;border-color:#174e57}.image-drop span{font-size:13px;color:#72828b}.image-drop img{max-height:170px;max-width:100%;object-fit:contain}.image-drop input{max-width:100%}input[type=checkbox]{width:18px;height:18px;accent-color:#174e57}.template-scroll{overflow:auto;background:#fff;padding:24px}.template-sheet{position:relative;background:white;zoom:var(--screen-scale)}.template-sheet table{table-layout:fixed;border-collapse:collapse;white-space:normal}.template-sheet td{box-sizing:border-box;border:0;line-height:1.18}.template-sheet tr:last-child td{border-bottom:revert-layer}.template-sheet img{z-index:1}.template-sheet tr{break-inside:avoid}.template-sheet tr td{max-width:0}#invoice-review{margin-top:18px}@media print{.template-scroll{padding:0;overflow:visible}.template-sheet{zoom:var(--print-scale)}.template-sheet table{border-collapse:collapse}main{max-width:none}body{background:white}#template-preview{display:block}@page{size:A4;margin:10mm}}
aside{overflow-y:auto}aside nav{flex-shrink:0}.nav-caption{margin-top:28px}.sidebar-footer{padding-top:18px}@media(max-width:760px){aside{overflow:visible}}
[hidden]{display:none!important}.report-controls{display:flex;gap:16px;align-items:end;padding:20px;flex-wrap:wrap;margin-bottom:20px}.report-controls label{display:flex;flex-direction:column;gap:7px;font-size:13px;color:var(--muted)}

.file-status{border:1px solid #d9e2e4;background:#f5f7f8;color:#667d83;border-radius:7px;padding:7px 10px;white-space:nowrap;cursor:pointer}.file-status.uploaded{background:#e7f5ef;color:#24714f;border-color:#b8decb}.shipment-note{max-width:150px;white-space:pre-wrap;overflow-wrap:anywhere;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;font-size:12px;margin-bottom:8px}.shipment-actions{display:flex;gap:8px;flex-wrap:wrap}.attachment-table{margin-top:20px;max-height:360px;overflow:auto}.attachment-table td{white-space:normal;overflow-wrap:anywhere}

.shipment-table table{table-layout:fixed;min-width:900px;width:100%}.shipment-table th,.shipment-table td{padding:14px 10px;white-space:normal;overflow-wrap:anywhere}.shipment-table th:nth-child(1){width:17%}.shipment-table th:nth-child(2){width:17%}.shipment-table th:nth-child(3){width:18%}.shipment-table th:nth-child(4){width:14%}.shipment-table th:nth-child(5){width:21%}.shipment-table th:nth-child(6){width:13%}.shipment-status-row{display:flex;align-items:center;justify-content:space-between;gap:6px;margin:5px 0;font-size:12px}.shipment-status-row .file-status{padding:5px 7px}.shipment-actions .button{white-space:normal}

.login-body{display:flex;min-height:100vh;align-items:center;justify-content:center;background:#eef3f5;padding:24px}.login-card{width:100%;max-width:470px;padding:38px;background:#fff;border-radius:18px;box-shadow:0 12px 48px #173b4510}.login-brand{color:#174e57;letter-spacing:2px;font-weight:800;margin-bottom:32px}.login-brand span{display:block;font-size:12px;font-weight:400;letter-spacing:0;margin-top:8px}.login-card h1{font-size:26px;margin-bottom:12px}.login-card form{display:grid;gap:18px;margin-top:25px}.login-card label{display:grid;gap:8px;font-size:13px}.login-card input{width:100%}.auth-error{color:#a63b3b;font-size:13px;white-space:pre-wrap}.account-bar{display:flex;gap:7px;align-items:center;font-size:12px;flex-wrap:wrap}.header-right{flex-wrap:wrap}.header-right .local-label{display:none}@media(max-width:760px){.account-bar{font-size:11px}.account-bar .button{padding:5px 7px}.login-card{padding:24px}}
