:root{--bg:#0d1117;--card:#161b22;--card2:#21262d;--border:#30363d;--text:#e6edf3;--muted:#8b949e;--primary:#6366f1;--ph:#4f46e5;--ok:#3fb950;--wn:#d29922;--dn:#f85149;--r:10px}[data-theme="light"]{--bg:#f6f8fa;--card:#ffffff;--card2:#f0f2f5;--border:#d0d7de;--text:#1f2328;--muted:#636c76;--ok:#1a7f37;--wn:#9a6700;--dn:#d1242f}*{box-sizing:border-box;margin:0;padding:0}body{font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;background:var(--bg);color:var(--text);min-height:100vh;display:flex;font-size:14px}#sb{width:210px;background:var(--card);border-right:1px solid var(--border);display:flex;flex-direction:column;padding:16px 10px;gap:3px;position:fixed;left:0;top:0;bottom:0;z-index:100;will-change:transform}.logo{font-size:14px;font-weight:700;color:var(--primary);padding:6px 10px 16px;border-bottom:1px solid var(--border);margin-bottom:8px}.nav{display:flex;align-items:center;gap:9px;padding:9px 10px;border-radius:7px;cursor:pointer;font-size:13px;color:var(--muted);transition:.15s;border:none;background:none;width:100%;text-align:left;touch-action:manipulation}.nav:hover{background:var(--card2);color:var(--text)}.nav.active{background:var(--primary);color:#fff}.nb{margin-left:auto;background:rgba(255,255,255,.25);border-radius:10px;padding:1px 6px;font-size:10px;display:none}#main{margin-left:210px;flex:1;padding:24px 28px}.page{display:none}.page.active{display:block}h1{font-size:20px;font-weight:700;margin-bottom:4px}h2{font-size:15px;font-weight:600;margin-bottom:14px}.sub{color:var(--muted);font-size:12.5px;margin-bottom:20px}.card{background:var(--card);border:1px solid var(--border);border-radius:var(--r);padding:18px;margin-bottom:14px}.g2{display:grid;grid-template-columns:1fr 1fr;gap:14px}.g3{display:grid;grid-template-columns:1fr 1fr 1fr;gap:14px}.stat{background:var(--card);border:1px solid var(--border);border-radius:var(--r);padding:16px;text-align:center}.stat .n{font-size:26px;font-weight:700;color:var(--primary)}.stat .l{font-size:11px;color:var(--muted);margin-top:3px}.btn{display:inline-flex;align-items:center;gap:6px;padding:8px 14px;border-radius:7px;border:none;cursor:pointer;font-size:13px;font-weight:500;transition:.15s;white-space:nowrap}.bp{background:var(--primary);color:#fff}.bp:hover{background:var(--ph)}.bs{background:var(--ok);color:#fff}.bd{background:var(--dn);color:#fff}.bo{background:transparent;border:1px solid var(--border);color:var(--text)}.bo:hover{background:var(--card2)}.bsm{padding:5px 10px;font-size:12px}.btn:disabled{opacity:.5;cursor:not-allowed}.fl{display:flex;gap:10px;align-items:center}.ml{margin-left:auto}.fg{margin-bottom:12px}label.lbl{display:block;font-size:12px;color:var(--muted);margin-bottom:5px;font-weight:500}input.fi,select.fs{width:100%;background:var(--bg);border:1px solid var(--border);border-radius:7px;color:var(--text);padding:8px 11px;font-size:13px;outline:none;-webkit-appearance:none}input.fi:focus,select.fs:focus{border-color:var(--primary)}.chk-row{display:flex;align-items:center;gap:10px;padding:10px;background:var(--card2);border-radius:8px;margin-bottom:12px}.chk-row input[type=checkbox]{width:18px;height:18px;accent-color:var(--primary);cursor:pointer;flex-shrink:0}.chk-row label{font-size:13px;cursor:pointer;color:var(--text)}.table{width:100%;border-collapse:collapse;font-size:13px}.table th{text-align:left;padding:10px 12px;color:var(--muted);font-size:11.5px;font-weight:600;border-bottom:1px solid var(--border);background:var(--card2)}.table td{padding:9px 12px;border-bottom:1px solid var(--border)}.table tr:last-child td{border-bottom:none}.table tbody tr:hover td{background:rgba(99,102,241,.04)}.badge{display:inline-block;padding:3px 7px;border-radius:20px;font-size:11px;font-weight:600}.bok{background:rgba(63,185,80,.12);color:var(--ok)}.bwn{background:rgba(210,153,34,.12);color:var(--wn)}.bdn{background:rgba(248,81,73,.12);color:var(--dn)}.bpr{background:rgba(99,102,241,.12);color:var(--primary)}.bfd{background:rgba(248,81,73,.15);color:var(--dn)}.mo-overlay{display:none;position:fixed;inset:0;background:rgba(0,0,0,.65);z-index:1000;align-items:center;justify-content:center}.mo-overlay.open{display:flex}.modal{background:var(--card);border:1px solid var(--border);border-radius:12px;padding:22px;width:500px;max-width:95vw;max-height:90vh;overflow-y:auto}.mh{display:flex;justify-content:space-between;align-items:center;margin-bottom:18px}.mt2{font-size:15px;font-weight:600}.mc{background:none;border:none;color:var(--muted);cursor:pointer;font-size:20px;line-height:1;min-width:32px;min-height:32px}.mc::after{content:'✕'}.up{border:2px dashed var(--border);border-radius:var(--r);padding:24px;text-align:center;cursor:pointer;transition:.15s;color:var(--muted)}.up:hover,.up.dv{border-color:var(--primary);color:var(--primary);background:rgba(99,102,241,.04)}.air{background:rgba(99,102,241,.08);border:1px solid rgba(99,102,241,.25);border-radius:var(--r);padding:14px;margin-top:10px}.air .al{font-size:11px;color:var(--muted);margin-bottom:3px}.air .av{font-size:15px;font-weight:600}.toast-c{position:fixed;bottom:20px;right:20px;display:flex;flex-direction:column;gap:6px;z-index:9999}.toast{background:var(--card2);border:1px solid var(--border);border-radius:8px;padding:10px 14px;font-size:13px;max-width:320px;animation:si .2s ease}.toast.s{border-left:3px solid var(--ok)}.toast.e{border-left:3px solid var(--dn)}.toast.i{border-left:3px solid var(--primary)}@keyframes si{from{transform:translateX(100%);opacity:0}to{transform:translateX(0);opacity:1}}.sp{display:inline-block;width:14px;height:14px;border:2px solid rgba(255,255,255,.3);border-top-color:#fff;border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.es{text-align:center;padding:40px;color:var(--muted)}.es .ei{font-size:36px;margin-bottom:10px}.tabs{display:flex;border-bottom:1px solid var(--border);margin-bottom:18px}.tab{padding:9px 14px;font-size:13px;cursor:pointer;color:var(--muted);border-bottom:2px solid transparent;margin-bottom:-1px;transition:.15s}.tab:hover{color:var(--text)}.tab.active{color:var(--primary);border-bottom-color:var(--primary)}.ph{display:flex;align-items:flex-start;justify-content:space-between;margin-bottom:20px}.sep{border:none;border-top:1px solid var(--border);margin:16px 0}.tag{background:rgba(99,102,241,.1);border:1px solid rgba(99,102,241,.2);border-radius:8px;padding:12px 14px;display:flex;align-items:center;gap:12px}.warn-box{background:rgba(248,81,73,.07);border:1px solid rgba(248,81,73,.25);border-radius:8px;padding:12px 14px;margin-top:10px}.info-box{background:rgba(63,185,80,.07);border:1px solid rgba(63,185,80,.25);border-radius:8px;padding:12px 14px}.scan-row{display:flex;align-items:center;padding:8px 10px;background:var(--card2);border-radius:7px;margin-bottom:6px;gap:10px;font-size:13px;flex-wrap:wrap}.scan-total{background:rgba(99,102,241,.08);border:1px solid rgba(99,102,241,.2);border-radius:8px;padding:12px 14px;margin-top:10px;display:flex;gap:20px;flex-wrap:wrap}#qr-vc{display:none;margin-top:10px;border-radius:var(--r);overflow:hidden;position:relative}#qr-v{width:100%;max-height:230px;object-fit:cover;display:block}.qr-ol{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;pointer-events:none}.qr-box{width:130px;height:130px;border:2px solid var(--primary);border-radius:8px;box-shadow:0 0 0 9999px rgba(0,0,0,.45)}.dev-card{border-color:rgba(210,153,34,.3)}.dev-badge{background:rgba(210,153,34,.15);color:var(--wn);border-radius:3px;padding:1px 6px;font-size:10px;font-weight:700;letter-spacing:.5px}.ctn-preview{background:rgba(63,185,80,.07);border:1px solid rgba(63,185,80,.2);border-radius:8px;padding:12px 14px;margin-top:8px}.parent-preview{background:rgba(99,102,241,.07);border:1px solid rgba(99,102,241,.2);border-radius:8px;padding:12px 14px;margin-top:8px}.tag-list{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px;min-height:28px}.tag-item{display:inline-flex;align-items:center;gap:5px;background:var(--card2);border:1px solid var(--border);border-radius:20px;padding:3px 10px;font-size:12px}.tag-item button{background:none;border:none;color:var(--muted);cursor:pointer;font-size:14px;line-height:1;padding:0}#btab{display:none;position:fixed;bottom:0;left:0;right:0;background:var(--card);border-top:1px solid var(--border);z-index:200;padding-bottom:env(safe-area-inset-bottom)}.btab-item{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:8px 4px 6px;cursor:pointer;font-size:9px;color:var(--muted);border:none;background:none;position:relative;min-height:52px;transition:.15s}.btab-item.active{color:var(--primary)}.btab-icon{font-size:20px;margin-bottom:2px;display:block}@media(max-width:768px){  #sb{transform:translateX(-100%);transition:transform .2s;pointer-events:none}#sb.open{transform:translateX(0);pointer-events:auto;z-index:300}#btab{display:flex}  #main{margin-left:0;padding:14px 14px calc(68px + env(safe-area-inset-bottom)) 14px;padding-top:calc(14px + env(safe-area-inset-top))}  .g2,.g3{grid-template-columns:1fr}  input.fi,select.fs,textarea{font-size:16px!important}  .btn{min-height:44px}.bsm{min-height:38px;padding:6px 12px}  .ph{flex-direction:column;gap:10px;align-items:stretch}.ph .btn{justify-content:center}  .toast-c{bottom:calc(68px + env(safe-area-inset-bottom) + 8px);right:12px;left:12px}  .toast{max-width:100%}.mo-overlay.open{align-items:flex-end}  .modal{border-radius:16px 16px 0 0;width:100%;max-width:100%;margin:0;max-height:88vh;}  *{-webkit-tap-highlight-color:transparent}  .sub{font-size:13px}.table th{font-size:11px;padding:8px}.table td{font-size:12px;padding:8px}h1{font-size:18px}  .card{padding:14px}.g2{gap:10px}  .table{min-width:520px}  .scan-row{font-size:12px}  .air .fl{gap:10px}}@media(max-width:480px){  h1{font-size:16px}.stat .n{font-size:22px}  .g3{grid-template-columns:1fr 1fr}  .modal{max-height:92vh}}@media(orientation:landscape)and(max-width:900px){  #main{padding-top:8px}  .modal{max-height:95vh;border-radius:12px;}  .mo-overlay.open{align-items:center}}@media(max-width:480px){#sb{transform:translateX(-100%);transition:transform .2s;pointer-events:none;}#sb.open{transform:translateX(0);pointer-events:auto;z-index:300;}#main{margin-left:0 !important;padding:12px 14px;}}