:root{--ink:#172f3b;--muted:#687d87;--line:#dde6e9;--blue:#115b68;--green:#1d7a54;--bg:#f3f6f6}*{box-sizing:border-box}body{margin:0;background:var(--bg);font-family:Inter,"Microsoft YaHei",system-ui,sans-serif;color:var(--ink);font-size:14px}header{height:76px;padding:0 40px;display:flex;align-items:center;justify-content:space-between;background:white;border-bottom:1px solid var(--line)}.brand{font-weight:900;font-size:29px;letter-spacing:-1.5px;color:var(--blue);text-decoration:none;display:flex;align-items:center;gap:20px}.brand span{font-size:14px;letter-spacing:.5px;font-weight:600;border-left:1px solid var(--line);padding-left:20px}.headright{display:flex;align-items:center;gap:18px}main{max-width:1600px;padding:32px 40px 60px;margin:auto}h1{font-size:30px;letter-spacing:-1px;margin:8px 0 10px}h2{margin:0;font-size:18px}.eyebrow{font-size:11px;color:var(--blue);letter-spacing:1.8px;font-weight:700}.muted{color:var(--muted);line-height:1.7}.small,small{font-size:12px}.card{background:#fff;border:1px solid var(--line);border-radius:14px}.titlebar{display:flex;align-items:center;justify-content:space-between;gap:18px;margin-bottom:28px}.titlebar p{margin:0}.badge{display:inline-block;vertical-align:middle;color:var(--blue);background:#dfedef;border-radius:5px;font-size:11px;padding:5px 9px;margin-left:12px;letter-spacing:0;font-weight:600}.layout{display:grid;grid-template-columns:265px minmax(0,1fr);gap:24px;align-items:start}.sidebar{padding:20px;position:sticky;top:20px}.sectionhead{display:flex;gap:12px;justify-content:space-between;align-items:center;margin-bottom:18px}.sectionhead h2{font-size:15px}.sectionhead button{font-size:12px;padding:7px 10px}.batches{display:grid;gap:8px;margin-top:18px}.batch{padding:14px;text-align:left;width:100%;background:#f8fafa;line-height:1.5;white-space:normal}.batch b{display:block;word-break:break-word}.batch small{display:block;color:var(--muted);margin-top:7px}.batch.active{background:#e9f3f3;border-color:var(--blue);box-shadow:inset 3px 0 var(--blue)}button,input,select{font:inherit}button{border:1px solid var(--line);border-radius:7px;background:#fff;color:var(--ink);padding:10px 15px;cursor:pointer;font-weight:600}button:hover{background:#f0f5f5;border-color:#a8c0c6}button:disabled{opacity:.45;cursor:wait}.primary{background:var(--blue);color:#fff;border-color:var(--blue)}.primary:hover{background:#0b4652}.success{background:var(--green);color:#fff;border-color:var(--green)}.success:hover{background:#175f42}.wide{width:100%;padding:13px}.danger{color:#b0443a}.auth{max-width:430px;margin:8vh auto;padding:32px}.auth h1{font-size:25px}label{display:block;font-weight:600;margin:18px 0 14px}label small{display:block;color:var(--muted);font-weight:400;margin-top:8px}input,select{width:100%;border:1px solid #cad8dc;border-radius:7px;padding:11px 12px;background:#fff;color:var(--ink);margin-top:8px}input:focus,select:focus{outline:3px solid #b8d6d9;outline-offset:1px;border-color:var(--blue)}button:focus-visible{outline:3px solid #b8d6d9}.compact{font-size:12px;color:var(--muted);margin:0}.empty{text-align:center;padding:90px 22px}.emptyicon{font-size:45px;color:#a2bdc3;margin-bottom:20px}.batchhead{display:flex;align-items:center;justify-content:space-between;margin:2px 0 20px;gap:16px}.batchhead h2{margin-top:5px;font-size:23px;overflow-wrap:anywhere}.metrics{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}.metrics>div{padding:15px 20px;background:#fff;border:1px solid var(--line);border-radius:10px}.metrics strong{font-size:29px;display:block;font-variant-numeric:tabular-nums}.metrics span{color:var(--muted);font-size:12px}.progress{height:5px;background:#dbe5e5;margin:14px 0 20px;border-radius:5px;overflow:hidden}.progress i{height:100%;display:block;background:var(--green);width:0;transition:width .3s}.scanpanel{padding:20px 24px;margin-bottom:18px;border-color:#bbd3d6}.scanpanel label{margin:0;font-size:14px}.shortcut{float:right;font-size:11px;color:var(--muted);font-weight:400}#scan{font-size:25px;padding:16px;border:2px solid #80b1b7;background:#fafdfe;margin-top:13px;font-family:ui-monospace,monospace}#scan:disabled{background:#edf2f3}.scanpanel p{margin:10px 0 0}.result{padding:24px;display:flex;align-items:start;gap:25px;margin-bottom:24px;border-left:4px solid var(--blue);min-height:195px}.resultbody{flex:1;min-width:0}.result h2{font-size:27px;font-family:ui-monospace,system-ui;overflow-wrap:anywhere;margin:14px 0 8px}.statuspill{display:inline-block;border-radius:5px;padding:5px 9px;font-size:11px;background:#e4f1ed;color:var(--green);font-weight:700}.actions{display:flex;gap:9px;flex-wrap:wrap}.actions button{font-size:13px}#preview{width:120px;flex-shrink:0}#preview img{width:100%;border:1px solid var(--line)}#preview:empty{display:none}.detail{padding:20px}.tabletools{display:flex;gap:12px;margin-bottom:12px}.tabletools input{margin:0;flex:1;min-width:0}.tabletools select{width:160px;margin:0}.tablewrap{overflow:auto;max-height:490px}table{border-collapse:collapse;width:100%;font-size:12px}th,td{text-align:left;padding:12px 9px;border-bottom:1px solid var(--line);vertical-align:middle}th{color:var(--muted);font-size:11px;background:#f6f9f9;position:sticky;top:0;white-space:nowrap}td .sub{display:block;font-size:11px;color:var(--muted);margin-top:5px;max-width:260px;overflow-wrap:anywhere}td button{padding:6px 9px;font-size:11px;margin:2px}.pill{white-space:nowrap;font-size:11px;color:#58717e;background:#edf2f5;padding:5px 8px;border-radius:5px}.pill.done{color:var(--green);background:#e2f2e9}.pill.blocked{color:#a14a23;background:#fff0e2}.pill.claimed,.pill.submitted{color:#916c14;background:#fff6db}.notice{position:fixed;bottom:22px;left:50%;transform:translateX(-50%);z-index:9;background:#213c47;color:white;padding:15px 24px;box-shadow:0 5px 20px #17323d22;border-radius:8px;max-width:90vw;line-height:1.6}dialog{width:580px;max-width:95vw;max-height:90vh;border:1px solid var(--line);border-radius:14px;padding:28px;color:var(--ink)}dialog::backdrop{background:#142e3b66}dialog form{margin-bottom:18px}.filedrop{background:#f7fafa;border:1px dashed #b5cbd0;padding:15px;border-radius:8px}.filedrop input{border:0;padding:5px 0;background:none}fieldset{border:1px solid var(--line);border-radius:7px;margin:15px 0}fieldset label{display:inline-flex;align-items:center;gap:7px;margin:8px 15px 8px 0;font-size:12px}fieldset input{width:auto;margin:0}#auditDialog{width:900px}#printframe{position:fixed;right:0;bottom:0;width:0;height:0;border:0}[hidden]{display:none!important}@media(max-width:1050px){main{padding:24px}.layout{grid-template-columns:220px minmax(0,1fr);gap:16px}.metrics>div{padding:12px}.metrics strong{font-size:24px}.titlebar{align-items:start}.titlebar>div:last-child{white-space:nowrap}}@media(max-width:760px){header{padding:0 18px;height:65px}.brand span{display:none}main{padding:22px 14px}.layout{display:block}.sidebar{position:static;margin-bottom:20px}.batches{grid-template-columns:repeat(2,minmax(0,1fr));max-height:230px;overflow:auto}.titlebar{display:block}.titlebar>div:last-child{margin-top:16px}.metrics{gap:6px}.metrics>div{padding:10px 8px}.metrics span{font-size:10px}.scanpanel{padding:18px}#scan{font-size:18px}.result{padding:18px}.result h2{font-size:21px}#preview{width:85px}.detail{padding:14px}.tabletools select{width:125px}.batchhead{align-items:start}#sync{font-size:11px}}
