:root{--ink:#182d35;--muted:#708087;--accent:#0c766e;--accent-dark:#095d57;--line:#e3e9e9;--bg:#f4f7f7;--red:#ad443c;--amber:#9c6c23;font-family:Inter,-apple-system,BlinkMacSystemFont,"Segoe UI","PingFang SC","Microsoft YaHei",sans-serif;color:var(--ink);font-size:14px;font-synthesis:none}*{box-sizing:border-box}body{margin:0;background:var(--bg)}button,input,select{font:inherit}button,a,label.dropzone{touch-action:manipulation}button{cursor:pointer}button:disabled{cursor:not-allowed}a{color:inherit;text-decoration:none}button:focus-visible,input:focus-visible,select:focus-visible,summary:focus-visible,a:focus-visible{outline:3px solid #75c7bd;outline-offset:3px}input,select{width:100%;min-width:0;border:1px solid #dce4e4;border-radius:7px;background:#fff;padding:10px 11px;height:40px;color:var(--ink);transition:border-color .15s}input:focus,select:focus{border-color:var(--accent);outline:none;box-shadow:0 0 0 3px #0c766e12}input::placeholder{color:#a0adaf}input[type=checkbox]{width:15px;height:15px;accent-color:var(--accent);margin:0;flex-shrink:0}button{border:0}h1,h2,h3,p{margin:0}.topbar{height:76px;background:#fff;border-bottom:1px solid var(--line);padding:0 max(32px,calc((100vw - 1440px)/2));display:flex;align-items:center;justify-content:space-between;gap:20px}.brand{display:flex;align-items:center;gap:12px;font-size:18px;letter-spacing:-.3px}.brand b{font-size:16px;margin-left:8px;font-weight:550}.logo{display:grid;place-items:center;background:var(--accent);color:#fff;border-radius:10px;width:36px;height:39px;font-size:18px;font-weight:700;box-shadow:0 3px 8px #0c766e20}.top-right{display:flex;gap:28px;align-items:center;font-size:12px}.privacy{color:#59756f;display:flex;gap:7px;align-items:center}.dot{width:6px;height:6px;border-radius:50%;background:#2f9c84}.template-link{color:var(--muted)}.template-link:hover{color:var(--accent)}main{max-width:1440px;margin:0 auto;padding:34px 32px 0}.page-heading{display:flex;align-items:center;justify-content:space-between;gap:16px}.eyebrow{font-size:10px;letter-spacing:2px;font-weight:700;color:var(--accent);margin-bottom:11px}h1{font-size:29px;line-height:1.35;letter-spacing:-.8px;font-weight:650}.page-heading p{color:var(--muted);margin-top:10px;font-size:13px}.version{border:1px solid var(--line);color:var(--muted);border-radius:6px;font-size:11px;padding:9px 12px;background:#fff}.version b{font-weight:500;color:#54696e;margin-left:7px}.workflow{display:flex;align-items:center;gap:20px;font-size:12px;color:#62777c;margin:25px 0 24px}.workflow span{display:flex;align-items:center;gap:8px}.workflow b{display:grid;place-items:center;background:#e5eeee;width:20px;height:20px;border-radius:50%;font-size:10px;font-weight:600;color:var(--accent)}.workflow i{font-style:normal;color:#b4c1c3}.workspace{display:grid;grid-template-columns:340px minmax(0,1fr);gap:22px;align-items:start}.card{background:#fff;border:1px solid var(--line);border-radius:12px;box-shadow:0 3px 13px #263b3f03}.upload-card,.settings-card{padding:22px}.settings-card{margin-top:18px}.section-title{display:flex;align-items:center;gap:9px}h2{font-size:15px;font-weight:650}.section-number{color:var(--accent);font-size:10px;letter-spacing:.3px;font-weight:700;background:#eaf4f2;padding:5px 6px;border-radius:4px}.required-note{margin-left:auto;color:#8a999c;font-size:10px}.dropzone{border:1px dashed #9cbbb6;border-radius:9px;background:#f7fbfa;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:8px;text-align:center;min-height:155px;margin-top:19px;cursor:pointer;position:relative;transition:background .15s}.dropzone:hover,.dropzone.dragover{background:#ebf7f3;border-color:var(--accent)}.dropzone strong{font-size:12px;font-weight:550}.dropzone>span:not(.upload-icon){font-size:10px;color:#82958f}.upload-icon{display:grid;place-items:center;font-size:24px;color:var(--accent);width:36px;height:36px;background:#e5f1ed;border-radius:9px;margin-bottom:6px}.file-input{position:absolute;inset:0;opacity:0;height:100%;width:100%;cursor:pointer}.file-meta{display:flex;justify-content:space-between;gap:8px;align-items:center;background:#f7faf9;padding:10px;margin-top:10px;border-radius:6px}.file-meta>div{display:flex;gap:7px;align-items:center;min-width:0}.file-meta strong{font-size:11px;font-weight:500;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.file-tag{color:var(--accent);font-size:9px;font-weight:700;background:#e1eee8;padding:4px;border-radius:3px}.text-button{color:var(--accent);background:none;padding:3px 0;font-size:11px;white-space:nowrap}.text-button:hover{text-decoration:underline}.upload-footer{display:flex;align-items:center;justify-content:space-between;margin-top:13px;font-size:10px;color:#8a989b}details{margin-top:16px;padding-top:13px;border-top:1px solid var(--line)}summary{font-size:11px;cursor:pointer;color:#667c7e;user-select:none}summary span{float:right;font-size:10px;color:#96a4a7}.mapping-controls{display:grid;grid-template-columns:1.6fr 1fr;gap:10px;margin-top:12px}.mapping-fields{margin-top:10px}.mapping-fields label{font-size:10px}.mapping-fields select{height:32px;padding:5px;font-size:10px}.section-hint{font-size:11px;color:var(--muted);margin:11px 0 17px}form>label,.form-grid>label,.serial-details label,.mapping-controls label,.mapping-fields label{display:block;color:#52666c;font-size:11px;font-weight:500;margin-bottom:13px}label input,label select{display:block;margin-top:6px;font-size:12px}em{font-style:normal;color:var(--accent);font-size:11px}.optional{font-size:9px;font-weight:400;color:#9aa7aa;margin-left:4px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.suffix-input{position:relative}.suffix-input input{padding-right:28px}.suffix-input span{position:absolute;right:12px;top:12px;font-weight:400;color:#7a9092}.serial-details{padding-top:12px;margin-top:0;margin-bottom:15px}.serial-details label{margin-top:10px;margin-bottom:5px}.serial-details small{font-size:10px;color:var(--muted);line-height:1.5}.checkbox-label{display:flex;gap:7px;align-items:flex-start;font-size:10px!important;line-height:1.5;font-weight:400!important;margin-bottom:0!important}.checkbox-label input{margin-top:0}.settings-footnote{font-size:10px;color:#8a999c;line-height:1.6;border-top:1px solid var(--line);padding-top:12px;margin-top:14px}.content-column{min-width:0}.stats{display:grid;grid-template-columns:1fr 1fr 1.5fr;gap:14px;margin-bottom:18px}.stat{border:1px solid var(--line);border-radius:10px;background:white;padding:20px 22px;display:flex;flex-direction:column;gap:10px}.stat>span{font-size:11px;color:#7d8e91}.stat>strong{font-size:30px;letter-spacing:-.8px;line-height:1.15;font-weight:600;font-variant-numeric:tabular-nums}.stat>small{font-size:10px;color:#98a5a8}.total-stat{background:#edf6f3;border-color:#d7e9e2}.total-stat strong{color:var(--accent);font-size:30px;display:flex;gap:7px;align-items:baseline}.total-stat strong>small{font-size:18px;font-weight:400}.total-stat>span{color:#6d8b80}.total-stat>small{color:#87a094}.preview-heading{padding:23px 24px 20px;display:flex;justify-content:space-between;gap:12px;align-items:center}.preview-heading p{font-size:10px;color:#87979c;margin-top:7px}.status-badge{font-size:10px;color:#84969b;padding:6px 10px;background:#f1f4f4;border-radius:5px;white-space:nowrap}.status-badge.good{color:var(--accent);background:#e9f5ef}.status-badge.error{color:var(--red);background:#fbeeea}.table-toolbar{border-top:1px solid var(--line);border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;gap:12px;padding:0 24px;height:60px}.tabs{display:flex;height:100%;gap:24px}.tab{padding:0;background:none;font-size:12px;color:#87979c;border-bottom:2px solid transparent;white-space:nowrap}.tab.active{color:var(--accent);font-weight:600;border-bottom-color:var(--accent)}.tab span{font-size:9px;margin-left:4px;color:#a2aeaf}.table-toolbar input{width:210px;height:31px;font-size:10px;background:#fafbfb;border-color:#e9eeee}.empty-state{text-align:center;padding:64px 20px 63px}.paper-stack{height:104px;width:92px;position:relative;margin:0 auto 26px}.paper{position:absolute;border:1px solid #d3e2df;width:69px;height:89px;border-radius:6px}.paper.back{transform:rotate(-11deg);top:1px;left:3px;background:#f2f7f5}.paper.front{background:#fff;right:0;top:6px;transform:rotate(5deg);box-shadow:0 8px 12px #24423a08;padding:19px 12px}.paper span{display:block;height:3px;background:#dceae6;border-radius:2px;margin-bottom:8px}.paper span:nth-child(2){width:75%}.paper i{position:absolute;right:-10px;bottom:7px;background:#e7f4ee;color:var(--accent);border:3px solid #fff;border-radius:50%;font-style:normal;width:29px;height:29px;display:grid;place-items:center;font-size:12px}.empty-state h3{font-size:16px;font-weight:550;margin-bottom:11px}.empty-state p{font-size:12px;color:#8b9ba0;line-height:1.9}.empty-state b{font-weight:500;color:#748d8b}.empty-tags{display:flex;justify-content:center;gap:18px;font-size:9px;color:#9aabaa;margin-top:25px}.empty-tags span:before{content:'✓';margin-right:5px;color:#7da698}.table-wrap{overflow:auto;max-height:620px}table{width:100%;border-collapse:collapse;font-size:11px;white-space:nowrap}thead{position:sticky;top:0;z-index:1;background:#f8faf9}th{text-align:left;font-weight:500;color:#819295;padding:13px 14px;border-bottom:1px solid var(--line)}td{padding:13px 14px;border-bottom:1px solid #edf1f1;color:#52696e;max-width:240px;overflow:hidden;text-overflow:ellipsis}td:first-child,th:first-child{padding-left:24px}td:last-child,th:last-child{padding-right:24px}.mono{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:10px;letter-spacing:-.2px}.amount{font-weight:600;color:var(--ink);font-variant-numeric:tabular-nums}.part-badge{display:inline-block;background:#edf5f3;color:#4b8e80;font-size:9px;padding:3px 6px;border-radius:4px;margin-left:5px}.edit-cell{width:180px}.edit-cell.tax{width:180px}.edit-cell.money-edit{width:150px}.edit-cell input{height:31px;padding:5px 7px;font-size:11px;border-color:#e4eaea}.row-error{background:#fff8f6}.row-status{font-size:10px;color:var(--accent)}.row-status.bad{color:var(--red)}.row-status.warn{color:var(--amber)}.notices{padding:0 24px 17px;line-height:1.7;font-size:11px}.notice{border:1px solid #e9d9bb;background:#fffbf2;padding:10px 12px;border-radius:6px;color:#9c762e}.notice.error{background:#fff5f2;border-color:#eed7cf;color:var(--red)}.notice+ .notice{margin-top:8px}.notice summary{padding:0;font-size:11px;color:inherit}.notice details{border:0;margin:0;padding:0}.notice ul{padding-left:17px;margin:7px 0 0;max-height:160px;overflow:auto}.notice p{margin:0}.pagination{padding:12px 24px;display:flex;justify-content:space-between;align-items:center;color:#819295;font-size:10px}.pagination>div{display:flex;gap:7px}.page-button{background:#f4f7f6;border:1px solid var(--line);border-radius:4px;padding:5px 9px;color:#5c7577;font-size:10px}.page-button:disabled{opacity:.4}.export-bar{padding:21px 24px;background:#fbfcfc;border-radius:0 0 12px 12px;border-top:1px solid var(--line);display:flex;justify-content:space-between;align-items:center;gap:18px}.export-bar>div{display:flex;flex-direction:column;gap:7px}.export-bar strong{font-size:12px;font-weight:550}.export-bar div>span{font-size:10px;line-height:1.6;color:#91a0a3}.primary-button{display:flex;align-items:center;gap:9px;border-radius:7px;background:var(--accent);color:white;height:41px;padding:0 18px;font-size:12px;white-space:nowrap;font-weight:550}.primary-button span{font-size:18px;font-weight:400}.primary-button:hover{background:var(--accent-dark)}.primary-button:disabled{background:#d9e4e1;color:#96aaa4}.rule-note{display:flex;gap:9px;padding:18px 4px;align-items:flex-start;color:#7f9697;font-size:11px;line-height:1.9}.rule-note>span{font-size:15px}.rule-note b{font-weight:500;color:#617f7c}footer{display:flex;justify-content:space-between;border-top:1px solid var(--line);margin-top:30px;padding:20px 0 23px;font-size:10px;color:#a3b0b3}.toast{position:fixed;bottom:25px;left:50%;transform:translateX(-50%);background:#193c37;color:#fff;padding:13px 20px;border-radius:8px;box-shadow:0 5px 30px #133e3325;z-index:10;max-width:90vw;font-size:12px;line-height:1.6}[hidden]{display:none!important}@media(min-width:1550px){main{padding-top:44px}.workspace{grid-template-columns:360px minmax(0,1fr)}.empty-state{padding-top:80px;padding-bottom:80px}}@media(max-width:1100px){.workspace{grid-template-columns:310px minmax(0,1fr);gap:16px}main{padding:28px 22px 0}.stats{gap:8px}.stat{padding:17px 15px}.stat>strong,.total-stat strong{font-size:26px}.topbar{padding:0 22px}.table-toolbar{padding:0 18px}.tabs{gap:15px}.table-toolbar input{width:160px}.export-bar{padding:18px;gap:10px}.export-bar>div{max-width:60%}}@media(max-width:850px){.workspace{grid-template-columns:1fr}.workspace aside{display:grid;grid-template-columns:1fr 1fr;gap:16px;align-items:start}.settings-card{margin:0}.page-heading h1{font-size:25px}.content-column{margin-top:4px}.top-right{gap:15px}.topbar{height:65px}.brand b{display:none}.version{font-size:10px}.empty-state{padding:45px 20px}footer span:nth-child(2){display:none}}@media(max-width:580px){main{padding:24px 16px 0}.topbar{padding:0 16px}.top-right .privacy{display:none}.brand{font-size:16px}.template-link{font-size:11px}.page-heading{align-items:flex-start}.page-heading h1{font-size:22px;max-width:240px}.page-heading p{font-size:11px;line-height:1.8;max-width:235px}.version{font-size:9px;padding:7px;display:flex;flex-direction:column;gap:4px}.version b{margin:0}.workflow{gap:9px;justify-content:space-between;font-size:10px;margin-top:20px}.workflow span{gap:5px}.workflow b{width:17px;height:17px;font-size:9px}.workspace aside{display:block}.settings-card{margin-top:14px}.upload-card,.settings-card{padding:19px}.dropzone{min-height:130px}.stats{grid-template-columns:1fr 1fr;margin-top:3px;gap:9px}.total-stat{grid-column:1/-1;display:grid;grid-template-columns:1fr 1fr;gap:7px;align-items:center;padding:17px}.total-stat>strong{grid-row:1/3;grid-column:2;justify-content:flex-end;font-size:28px}.stat{padding:16px 18px}.preview-heading{padding:18px}.preview-heading p{max-width:220px;line-height:1.7}.table-toolbar{height:auto;align-items:stretch;flex-direction:column;padding:0 18px 12px;gap:8px}.tabs{height:45px;gap:25px}.table-toolbar input{width:100%}.export-bar{flex-direction:column;align-items:stretch}.export-bar>div{max-width:100%}.primary-button{justify-content:center}.empty-state{padding:42px 16px}.notices{padding:0 18px 14px}.rule-note{font-size:10px}.pagination{padding:12px 18px}footer{font-size:9px;margin-top:10px}}
