:root{font-family:Inter,"Microsoft JhengHei","Noto Sans TC",sans-serif;color:#24364b;background:#f5f7fa;font-size:14px}*{box-sizing:border-box}body{margin:0}header{height:88px;padding:0 4.5%;display:flex;align-items:center;justify-content:space-between;background:#fff;border-bottom:1px solid #dfe5ed}.brand,.top-actions,.actions{display:flex;align-items:center;gap:12px}.mark{display:grid;place-items:center;background:#203b59;color:white;font-size:20px;font-weight:700;border-radius:9px;width:44px;height:44px}.brand strong{font-size:18px}.brand small{display:block;margin-top:5px;letter-spacing:2.5px;font-size:10px;color:#7990a4}.status{font-size:12px;color:#587369}main{max-width:1650px;margin:auto;padding:38px 4.5%}.intro{display:flex;justify-content:space-between;align-items:center;gap:25px;margin-bottom:28px}.eyebrow{font-size:12px;color:#527d96;letter-spacing:1px}h1{font-size:32px;letter-spacing:-1px;margin:12px 0}p{line-height:1.8;color:#697c8d;margin:8px 0}.privacy{font-size:12px;line-height:2;color:#7b8c9a;border-left:3px solid #28a597;padding-left:16px;min-width:270px}.privacy strong{font-weight:500;color:#3d596d}.upload-grid{display:grid;grid-template-columns:1.3fr 1.1fr 1fr;gap:18px}.upload{background:white;border:1px solid #dce3ec;border-radius:12px;min-height:214px;padding:23px;display:flex;flex-direction:column;align-items:flex-start;gap:10px;position:relative;cursor:pointer}.upload:hover,.upload.drag{border-color:#228b83;background:#f9fefe}.upload strong{font-size:17px}.upload span:not(.step){color:#61778b;font-size:13px}.step{font-size:11px;letter-spacing:1px;color:#7290a1;background:#eef3f7;padding:4px 7px;border-radius:4px}.upload small{color:#8a99a6;font-size:11px;line-height:1.7}.upload input[type=file]{position:absolute;inset:0;opacity:0;width:100%;cursor:pointer}.upload output{font-size:12px;color:#388078}.package{cursor:default;background:#edf3f7}.package p{font-size:12px;margin:0}.package small{margin-top:auto}.runbar{display:flex;gap:22px;justify-content:space-between;align-items:center;margin:20px 0 30px;padding:0 2px}#progress{font-size:12px;color:#688092;white-space:pre-wrap}button{background:white;border:1px solid #d6e0e8;padding:10px 15px;border-radius:7px;font:inherit;font-size:12px;color:#34536b;cursor:pointer;white-space:nowrap}button:hover{background:#eaf2f7}button.primary{background:#1d716e;color:white;border-color:#1d716e}button.primary:hover{background:#165c5a}button:disabled{opacity:.4;cursor:default}.runbar .primary{padding:13px 25px;font-size:14px}.runbar span{margin-left:28px}.results{background:white;border:1px solid #dfe5ec;border-radius:12px;overflow:hidden}.result-head{display:flex;align-items:center;justify-content:space-between;padding:24px;gap:18px}h2{font-size:19px;margin:0 0 7px}.result-head p{font-size:12px;margin:0}.stats{display:flex;padding:0 24px 20px;gap:40px}.stat strong{font-size:24px;font-weight:600;display:block;line-height:1.5}.stat small{color:#7e91a1;font-size:11px}.stat.warn strong{color:#bf8b37}.tabs{display:flex;gap:22px;padding:0 24px;border-bottom:1px solid #e0e7ed}.tabs button{padding:13px 0;border:0;border-bottom:3px solid transparent;border-radius:0;background:none;color:#778797}.tabs .active{color:#1a726d;border-bottom-color:#1a726d;font-weight:700}.filters{display:flex;align-items:center;gap:12px;padding:16px 24px;font-size:12px;color:#7c8c9c}.filters>input{width:300px}.filters label{white-space:nowrap}#page-label{margin-left:auto}.filters button{padding:7px 12px}input,textarea,select{font:inherit;color:#29465c;border:1px solid #d4dfe7;padding:10px;border-radius:6px;background:#fff}input:focus,textarea:focus{outline:2px solid #9dd4cf}input[type=checkbox]{accent-color:#217b75;vertical-align:middle}#table-wrap{overflow:auto;max-height:580px;min-height:220px;border-top:1px solid #edf1f5}table{border-collapse:separate;border-spacing:0;min-width:100%;font-size:12px}th{position:sticky;top:0;z-index:1;background:#20364e;color:white;font-size:11px;letter-spacing:.4px;text-align:left;padding:13px 12px;white-space:nowrap}td{border-bottom:1px solid #e8edf2;padding:12px;min-width:100px;max-width:420px;white-space:pre-wrap;overflow-wrap:anywhere;line-height:1.6;vertical-align:top}tbody tr:nth-child(even){background:#f8fafc}tbody tr:hover{background:#f0f7f7}td:nth-child(1){min-width:180px}.number{text-align:right;font-variant-numeric:tabular-nums}.missing{background:#fff8e7}.badge{display:inline-block;background:#fff3d8;color:#996c21;border-radius:3px;padding:2px 6px;font-size:11px}.empty{text-align:center;padding:70px 15px;line-height:2;color:#8494a1}.empty small{font-size:12px}.footnote{font-size:11px;margin-top:18px}.edit{font-size:11px;padding:5px 9px}dialog{border:0;border-radius:13px;box-shadow:0 20px 90px #102c4266;max-width:900px;width:90%;padding:30px;color:#29475d}dialog::backdrop{background:#152d4555}dialog .close{position:absolute;right:15px;top:12px;border:0;font-size:22px}dialog label{display:block;margin:16px 0;font-size:12px}dialog label input,dialog textarea,dialog select{display:block;width:100%;margin-top:7px}dialog textarea{font-family:Consolas,monospace;font-size:12px}dialog .actions{justify-content:flex-end;margin-top:20px}hr{border:0;border-top:1px solid #e5eaf0;margin:25px 0}pre{white-space:pre-wrap;max-height:300px;overflow:auto;background:#f5f8fa;padding:15px;font-size:11px;line-height:1.8}.row-fields{display:grid;grid-template-columns:1fr 1fr;gap:0 18px}.row-fields label:last-child{grid-column:1/-1}a{color:#217e80}.error{color:#b05537}@media(max-width:850px){header{padding:0 20px}.brand strong{font-size:14px}.status{display:none}main{padding:25px 18px}.intro{display:block}.privacy{margin-top:20px}.upload-grid{grid-template-columns:1fr}.upload{min-height:190px}.result-head{flex-direction:column;align-items:flex-start}.actions{flex-wrap:wrap}.tabs{gap:18px;overflow:auto}.filters{flex-wrap:wrap}.filters>input{width:100%}.stats{gap:22px;flex-wrap:wrap}h1{font-size:26px}.row-fields{grid-template-columns:1fr}}
table.main{min-width:4000px}table.main th:nth-child(5),table.main th:nth-child(7){min-width:200px}table.main th:nth-child(6){min-width:350px}table.main th:nth-child(8){min-width:400px}table.main th:last-child{min-width:600px}
.mapping-preview{max-height:260px;overflow:auto;border:1px solid #dde5ed;margin:16px 0}.mapping-preview td{min-width:110px;max-width:300px}.mapping-preview th{position:sticky}#mapping-dialog{max-width:1100px}
.hidden-option{display:block;margin-top:10px;color:#798c9a;font-size:11px}
[hidden]{display:none!important}.template-panel{margin:0 0 22px}.template-tabs{display:flex;gap:14px}.template-tabs button{display:grid;grid-template-columns:auto 1fr;gap:5px 14px;text-align:left;min-width:290px;padding:17px 20px;background:#fff}.template-tabs span{grid-row:1/3;font-size:11px;color:#668496;align-self:center}.template-tabs strong{font-size:16px}.template-tabs small{color:#7c8f9d}.template-tabs .active{border:2px solid #217b75;background:#eef8f6;padding:16px 19px}.template-panel p{font-size:12px;margin-top:12px}input[readonly]{background:#f0f3f6;color:#667c8e}body[data-template-mode=materials] table.main{min-width:3300px}@media(max-width:700px){.template-tabs{flex-direction:column}.template-tabs button{min-width:0;width:100%}}
