:root{--bg:#0f0f0f;--sf:#181818;--sf2:#222;--sf3:#2a2a2a;--bd:#2a2a2a;--bd2:#3a3a3a;--tx:#e8e8e8;--mt:#6b6b6b;--ac:#d4f04e;--ac-dim:#1e2a00;--yb:#0d2b0d;--yt:#6ee87a;--ybd:#1e5c1e;--rb:#2b0d0d;--rt:#e87a7a;--rbd:#5c1e1e;--ob:#1a1a00;--ot:#e8c84e;--obd:#3a3000;--r:8px;--rl:12px}
*{box-sizing:border-box;margin:0;padding:0}
body{background:var(--bg);color:var(--tx);font-family:"DM Sans",sans-serif;min-height:100vh;display:flex;flex-direction:column;align-items:center;padding:2rem 1rem 4rem}
.hdr{width:100%;max-width:720px;margin-bottom:1.5rem;display:flex;align-items:baseline;gap:1rem}
.hdr h1{font-family:"DM Mono",monospace;font-size:18px;font-weight:500;color:var(--ac);letter-spacing:-.02em}
.hdr span{font-size:12px;color:var(--mt);font-family:"DM Mono",monospace}
.card{background:var(--sf);border:1px solid var(--bd);border-radius:var(--rl);padding:1.25rem;width:100%;max-width:720px;margin-bottom:12px}
.conn{font-size:11px;font-family:"DM Mono",monospace;color:var(--mt);display:flex;align-items:center;gap:6px;margin-bottom:1rem;padding:8px 10px;background:var(--sf2);border-radius:var(--r);border:1px solid var(--bd)}
.dot{width:6px;height:6px;border-radius:50%;background:var(--yt);flex-shrink:0}

/* Mode tabs */
.tabs{display:flex;gap:6px;margin-bottom:1rem}
.tab{padding:6px 16px;font-size:13px;cursor:pointer;border-radius:var(--r);border:1px solid var(--bd);background:transparent;color:var(--mt);transition:all .15s;font-family:"DM Sans",sans-serif}
.tab.on{background:var(--ac);border-color:var(--ac);color:#0f0f0f;font-weight:600}

.g2{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-bottom:12px}
.fld{display:flex;flex-direction:column;gap:5px}
label{font-size:11px;font-family:"DM Mono",monospace;color:var(--mt);text-transform:uppercase;letter-spacing:.06em;display:block;margin-bottom:4px}

/* Combobox */
.cb{position:relative}
.cb-wrap{position:relative}
.cb-wrap input{width:100%;background:var(--sf2);border:1px solid var(--bd);border-radius:var(--r);color:var(--tx);font-size:14px;padding:9px 32px 9px 12px;outline:none;transition:border-color .15s}
.cb-wrap input:focus{border-color:var(--ac)}
.cb-wrap input::placeholder{color:var(--mt)}
.arr{position:absolute;right:10px;top:50%;transform:translateY(-50%);color:var(--mt);font-size:11px;pointer-events:none;transition:transform .2s}
.cb.open .arr{transform:translateY(-50%) rotate(180deg)}
.drop{position:absolute;top:calc(100% + 4px);left:0;right:0;background:var(--sf);border:1px solid var(--bd2);border-radius:var(--r);z-index:200;display:none;flex-direction:column;box-shadow:0 8px 24px rgba(0,0,0,.6);max-height:240px}
.cb.open .drop{display:flex}
.drop-srch{padding:8px;border-bottom:1px solid var(--bd);flex-shrink:0}
.drop-srch input{width:100%;background:var(--sf2);border:1px solid var(--bd);border-radius:6px;color:var(--tx);font-size:13px;padding:6px 10px;outline:none}
.drop-srch input:focus{border-color:var(--ac)}
.drop-list{overflow-y:auto;padding:4px;flex:1}
.opt{padding:8px 10px;font-size:13px;cursor:pointer;border-radius:6px;color:var(--tx);transition:background .1s}
.opt:hover{background:var(--sf2)}
.opt.sel{color:var(--ac)}
.opt.new-opt{color:var(--ac);font-style:italic;border-top:1px solid var(--bd);margin-top:2px;padding-top:10px}
.opt-empty{padding:12px;font-size:12px;color:var(--mt);text-align:center;font-family:"DM Mono",monospace}

/* Status */
.srow{display:flex;gap:8px}
.sbtn{flex:1;padding:9px;font-size:13px;font-family:"DM Mono",monospace;font-weight:500;cursor:pointer;border-radius:var(--r);border:1px solid var(--bd);background:var(--sf2);color:var(--mt);transition:all .15s}
.sbtn.yes{background:var(--yb);border-color:var(--ybd);color:var(--yt)}
.sbtn.no{background:var(--rb);border-color:var(--rbd);color:var(--rt)}
.sbtn.na{background:var(--ac-dim);border-color:var(--ac);color:var(--ac)}

textarea{width:100%;background:var(--sf2);border:1px solid var(--bd);border-radius:var(--r);color:var(--tx);font-size:14px;padding:9px 12px;outline:none;transition:border-color .15s;resize:vertical;line-height:1.6;font-family:"DM Sans",sans-serif}
textarea:focus{border-color:var(--ac)}
textarea::placeholder{color:var(--mt)}
.hint{font-size:11px;color:var(--mt);font-family:"DM Mono",monospace;margin-top:4px}
.addbtn{margin-top:12px;padding:9px 18px;font-size:13px;font-family:"DM Mono",monospace;font-weight:500;cursor:pointer;border-radius:var(--r);border:1px solid var(--bd2);background:var(--sf2);color:var(--tx);transition:all .15s}
.addbtn:hover{border-color:var(--ac);color:var(--ac)}

/* URL section */
.url-parsed{margin-top:10px;background:var(--sf2);border:1px solid var(--bd);border-radius:var(--r);padding:10px 12px;font-size:13px;display:none}
.url-parsed .row{display:flex;gap:8px;align-items:center;margin-bottom:4px}
.url-parsed .row:last-child{margin-bottom:0}
.url-tag{font-size:10px;font-family:"DM Mono",monospace;color:var(--mt);text-transform:uppercase;width:54px;flex-shrink:0}
.url-val{color:var(--tx)}
.url-err{color:var(--rt);font-size:13px;font-family:"DM Mono",monospace;margin-top:6px;display:none}
.parse-count{font-size:11px;color:var(--mt);font-family:"DM Mono",monospace;margin-top:6px}

/* Queue */
.qhdr{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px}
.qcnt{font-family:"DM Mono",monospace;font-size:13px;color:var(--ac)}
.clrbtn{font-size:12px;font-family:"DM Mono",monospace;color:var(--mt);background:none;border:none;cursor:pointer;padding:2px 6px;border-radius:4px}
.clrbtn:hover{color:var(--rt)}
table{width:100%;border-collapse:collapse}
th{font-size:10px;font-family:"DM Mono",monospace;color:var(--mt);text-transform:uppercase;letter-spacing:.08em;text-align:left;padding:0 8px 8px;border-bottom:1px solid var(--bd);font-weight:400}
td{font-size:13px;padding:7px 8px;border-bottom:1px solid var(--bd);vertical-align:middle}
tr:last-child td{border-bottom:none}
.pill{display:inline-block;font-size:11px;font-family:"DM Mono",monospace;font-weight:500;padding:2px 8px;border-radius:4px}
.py{background:var(--yb);color:var(--yt);border:1px solid var(--ybd)}
.pn{background:var(--rb);color:var(--rt);border:1px solid var(--rbd)}
.pa{background:var(--sf2);color:var(--mt);border:1px solid var(--bd)}
.po{background:var(--ob);color:var(--ot);border:1px solid var(--obd)}
.delbtn{background:none;border:none;color:var(--mt);cursor:pointer;font-size:16px;padding:0 4px;line-height:1}
.delbtn:hover{color:var(--rt)}
.empty-q{text-align:center;padding:2rem;color:var(--mt);font-family:"DM Mono",monospace;font-size:13px}

/* Duplicate section */
.dup-section{margin-top:14px;border:1px solid var(--obd);border-radius:var(--r);overflow:hidden;display:none}
.dup-hdr{background:var(--ob);padding:8px 12px;font-size:12px;font-family:"DM Mono",monospace;color:var(--ot);display:flex;align-items:center;gap:8px}
.dup-list{padding:4px}
.dup-row{display:flex;gap:8px;padding:6px 8px;font-size:12px;border-bottom:1px solid var(--bd);align-items:center}
.dup-row:last-child{border-bottom:none}
.dup-city{color:var(--mt);font-family:"DM Mono",monospace;font-size:11px;width:100px;flex-shrink:0}
.dup-area{color:var(--tx);flex:1}
.dup-note{color:var(--mt);font-size:11px;font-family:"DM Mono",monospace}

/* Actions */
.abar{display:grid;grid-template-columns:1fr auto;gap:8px;margin-top:14px}
.pushbtn{padding:11px 20px;font-size:14px;font-family:"DM Mono",monospace;font-weight:500;cursor:pointer;border-radius:var(--r);border:1px solid var(--ac);background:var(--ac);color:#0f0f0f;transition:all .15s}
.pushbtn:hover{background:#bfda3a}
.pushbtn:disabled{opacity:.5;cursor:not-allowed}
.pushbtn.pushing{background:var(--ac-dim);border-color:var(--ac);color:var(--ac)}
.pushbtn.ok{background:var(--yb);border-color:var(--ybd);color:var(--yt)}
.pushbtn.err{background:var(--rb);border-color:var(--rbd);color:var(--rt)}
.copybtn{padding:11px 16px;font-size:13px;font-family:"DM Mono",monospace;cursor:pointer;border-radius:var(--r);border:1px solid var(--bd2);background:var(--sf2);color:var(--mt);transition:all .15s}
.copybtn:hover{color:var(--tx)}
.sbar{font-size:12px;font-family:"DM Mono",monospace;margin-top:8px;text-align:center;min-height:18px}
.sbar.ok{color:var(--yt)}.sbar.err{color:var(--rt)}.sbar.info{color:var(--mt)}
.fstrip{width:100%;max-width:720px;display:flex;gap:8px;margin-top:4px}
.fbtn{flex:1;padding:9px;font-size:12px;font-family:"DM Mono",monospace;cursor:pointer;border-radius:var(--r);border:1px solid var(--bd);background:transparent;color:var(--mt);transition:all .15s}
.fbtn:hover{color:var(--tx)}
@media(max-width:520px){.g2{grid-template-columns:1fr}}
