*{box-sizing:border-box}:root{--bg:#f6f7f9;--card:#fff;--text:#171a1f;--muted:#69707d;--line:#e3e6ea;--accent:#171a1f;--good:#1f7a4c;--bad:#a63b32}html,body{background:var(--bg);color:var(--text);margin:0;padding:0;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}button,input,select{font:inherit}button{cursor:pointer;border:1px solid var(--line);background:#fff;border-radius:10px;padding:9px 12px}button.primary{background:var(--accent);color:#fff;border-color:var(--accent)}button.danger{color:var(--bad)}button:disabled{cursor:not-allowed;opacity:.5}.shell{max-width:1240px;margin:0 auto;padding:28px 20px 80px}.header{justify-content:space-between;align-items:flex-start;gap:24px;margin-bottom:24px;display:flex}.header h1{margin:0;font-size:28px}.header p{color:var(--muted);margin:6px 0 0}.grid{grid-template-columns:1fr 1fr;gap:18px;display:grid}.card{background:var(--card);border:1px solid var(--line);border-radius:16px;padding:18px;box-shadow:0 2px 8px #00000008}.card h2{margin:0 0 4px;font-size:18px}.card .sub{color:var(--muted);margin-bottom:16px;font-size:13px}.row{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.stack{gap:10px;display:grid}input[type=text],input[type=number],select{border:1px solid var(--line);background:#fff;border-radius:10px;min-height:40px;padding:10px 12px}input[type=text]{flex:1}.session,.fileRow,.jobRow{border:1px solid var(--line);border-radius:12px;justify-content:space-between;align-items:center;gap:12px;padding:12px;display:flex}.name{font-weight:600}.meta{color:var(--muted);margin-top:3px;font-size:12px}.badge{background:#f0f2f4;border-radius:999px;padding:3px 8px;font-size:11px;display:inline-flex}.full{grid-column:1/-1}.stats{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-top:14px;display:grid}.stat{border:1px solid var(--line);border-radius:12px;padding:12px}.stat .label{color:var(--muted);font-size:11px}.stat .value{margin-top:4px;font-size:18px;font-weight:700}.progressTrack{background:#eceff2;border-radius:99px;height:10px;margin-top:14px;overflow:hidden}.progressBar{background:var(--accent);height:100%;transition:width .3s}.notice{background:#fff9e8;border:1px solid #efe2ac;border-radius:12px;padding:12px;font-size:13px}.checkboxList{flex-wrap:wrap;gap:8px;display:flex}.check{border:1px solid var(--line);border-radius:10px;align-items:center;gap:7px;padding:8px 10px;font-size:13px;display:inline-flex}.uploadBox{border:1px dashed #bfc5cd;border-radius:12px;padding:16px}.small{color:var(--muted);font-size:12px}@media (max-width:900px){.grid{grid-template-columns:1fr}.full{grid-column:auto}.stats{grid-template-columns:repeat(2,1fr)}}.qrPanel{border:1px solid var(--line);background:#fafbfc;border-radius:14px;margin-top:16px;padding:14px}.qrFrame{border:1px solid var(--line);background:#fff;border-radius:12px;justify-content:center;align-items:center;min-height:320px;margin-top:12px;display:flex;overflow:hidden}.qrFrame img{object-fit:contain;width:100%;max-height:600px;transition:opacity .2s}.loginSuccess{color:#1f6b45;background:#effaf4;border:1px solid #cce8d8;border-radius:10px;margin-top:12px;padding:12px;font-size:13px}.logBox{color:#dce3ea;white-space:pre-wrap;background:#101317;border-radius:10px;max-height:180px;margin-top:8px;padding:10px;font-size:11px;overflow:auto}.modalBackdrop{z-index:1000;background:#0f12169e;justify-content:center;align-items:center;padding:20px;display:flex;position:fixed;inset:0}.qrModal{border:1px solid var(--line);background:#fff;border-radius:18px;width:min(920px,96vw);max-height:92vh;overflow:auto;box-shadow:0 28px 80px #00000047}.modalHeader{z-index:2;border-bottom:1px solid var(--line);background:#fffffff7;justify-content:space-between;align-items:center;gap:16px;padding:16px 18px;display:flex;position:sticky;top:0}.modalBody{padding:18px}.qrInstructions{border:1px solid var(--line);background:#f5f7f9;border-radius:12px;padding:12px;font-size:13px;line-height:1.5}.qrModal .qrFrame{min-height:560px;margin-top:14px;position:relative}.qrModal .qrFrame img{z-index:1;object-fit:contain;background:#fff;width:100%;max-height:650px;position:relative}.qrWaiting{color:var(--muted);justify-content:center;align-items:center;font-size:13px;display:flex;position:absolute;inset:0}@media (max-width:700px){.modalBackdrop{padding:8px}.qrModal{width:100%;max-height:96vh}.qrModal .qrFrame{min-height:420px}}
