/* apiGuard v2 host UI — every selector is prefixed .ag2- so nothing collides with
   style.css / entities.css / chains.css. No !important, single spacing scale. */

/* host list (Remnawave-style rows) */
.ag2-rows{display:flex;flex-direction:column;gap:8px;margin:20px 0 32px}
.ag2-row{display:flex;align-items:center;gap:10px;background:var(--panel);border:1px solid var(--line);border-left:3px solid var(--entity-color);border-radius:12px;padding:0 16px 0 12px;transition:border-color .15s,background .15s}
.ag2-row:hover{border-color:var(--entity-color);background:var(--raised)}
.ag2-dns{display:flex;align-items:center;justify-content:center;width:24px;flex-shrink:0}
.ag2-dns input{width:18px;height:18px;accent-color:var(--accent);cursor:pointer;margin:0}
.ag2-open{flex:1;min-width:0;display:flex;align-items:center;gap:14px;background:none;border:0;color:var(--text);font:inherit;text-align:left;cursor:pointer;padding:14px 0}
.ag2-flag{flex-shrink:0;display:inline-flex}
.ag2-flag .entity-flag{width:26px;height:18px}
.ag2-main{flex:1;min-width:0;display:flex;flex-direction:column;gap:5px}
.ag2-l1{display:flex;align-items:baseline;gap:12px;flex-wrap:wrap}
.ag2-l1 strong{font-size:15px;font-weight:600;overflow-wrap:anywhere}
.ag2-addr{font-size:12px;color:var(--muted)}
.ag2-l2{display:flex;align-items:center;gap:12px;flex-wrap:wrap;font-size:11px;color:var(--muted)}
.ag2-right{display:flex;align-items:center;gap:12px;flex-shrink:0}
.ag2-chev{color:var(--entity-color);font-size:18px;line-height:1}

/* detail drawer sections */
.ag2-top{display:flex;align-items:center;gap:14px;flex-wrap:wrap;margin:0 0 4px}
.ag2-toggle{display:inline-flex;align-items:center;gap:8px;margin-left:auto;font-size:12px;color:var(--muted);cursor:pointer}
.ag2-toggle input{width:17px;height:17px;accent-color:var(--accent);margin:0}
.ag2-h{font-size:12px;letter-spacing:.04em;text-transform:uppercase;color:var(--muted);margin:26px 0 10px}
.ag2-note{font-size:12px;line-height:1.6;color:var(--muted);margin:-4px 0 12px}

/* host detail — one column per server; each line: IP left, metrics right */
.ag2-hd{display:flex;align-items:center;gap:10px 14px;flex-wrap:wrap;margin:0 0 18px}
.ag2-hd-addr{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:12px;color:var(--muted);overflow-wrap:anywhere}
.ag2-hd-rr{font-size:11px;color:var(--muted);padding:3px 8px;border:1px solid var(--line);border-radius:999px}
dialog:has(.ag2-cols[data-n="1"]){width:min(760px,calc(100vw - 32px))}
dialog:has(.ag2-cols[data-n="2"]){width:min(900px,calc(100vw - 32px))}
dialog:has(.ag2-cols[data-n="3"]){width:min(1240px,calc(100vw - 32px))}
.ag2-cols{display:grid;grid-template-columns:repeat(var(--cols,1),minmax(0,1fr));gap:14px;align-items:start}
.ag2-cols[data-n="2"]{--cols:2}.ag2-cols[data-n="3"]{--cols:3}
.ag2-col,.ag2-tbl{border:1px solid var(--line);border-radius:10px;overflow:hidden;background:var(--panel);min-width:0}
.ag2-colh{display:flex;align-items:center;justify-content:space-between;gap:8px;height:30px;padding:0 12px;font-size:10px;letter-spacing:.05em;text-transform:uppercase;color:var(--muted);background:var(--raised)}
.ag2-r{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:10px;height:40px;padding:0 12px;border-top:1px solid var(--line)}
.ag2-colh+.ag2-r,.ag2-r:first-child{border-top:0}
.ag2-r.is-bad{background:var(--redbg)}
.ag2-cap{height:30px;font-size:10px;letter-spacing:.05em;text-transform:uppercase;color:var(--muted);background:var(--raised)}
.ag2-cap .ag2-m>span{color:var(--muted)}
.ag2-ipc{display:flex;align-items:baseline;gap:8px;min-width:0;overflow:hidden;white-space:nowrap}
.ag2-ipv{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:13px;font-variant-numeric:tabular-nums;color:var(--text)}
.ag2-role{font-size:11px;color:var(--muted);overflow:hidden;text-overflow:ellipsis}
.ag2-role.is-main{color:var(--accent);font-weight:600}
.ag2-m{display:grid;grid-template-columns:62px 48px;align-items:center;justify-items:end;gap:0 6px;height:40px;font-size:12px;font-variant-numeric:tabular-nums;color:var(--text);cursor:default}
.ag2-m.is-full{grid-template-columns:96px 64px 60px 50px;gap:0}
.ag2-m>span{white-space:nowrap}
.ag2-m .entity-badge{font-size:11px;padding:0}
.ag2-m-new{grid-column:1/-1;font-size:11px;color:var(--accent)}
.ag2-m>.ag2-bad{grid-column:1/-1;font-size:11px}
.ag2-dim{color:var(--muted)}
.ag2-bad{color:var(--red)}
/* spare editor: a textarea whose 40px lines line up with the metric rows on the right */
.ag2-sub{padding:9px 12px 5px;border-top:1px solid var(--line);font-size:10px;letter-spacing:.05em;text-transform:uppercase;color:var(--muted);background:var(--raised)}
.ag2-sub span{text-transform:none;letter-spacing:0}
.ag2-ed{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px;padding:0 12px;border-top:1px solid var(--line);background-image:repeating-linear-gradient(to bottom,transparent 0 39px,var(--line) 39px 40px);cursor:text}
#modal .ag2-ta{display:block;width:100%;min-height:40px;box-sizing:border-box;margin:0;padding:0;border:0;border-radius:0;outline:0;resize:none;overflow:hidden;background:transparent;color:var(--text);font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:13px;line-height:40px;font-variant-numeric:tabular-nums;white-space:pre;caret-color:var(--accent)}
#modal .ag2-ta::placeholder{color:var(--muted);font-family:inherit;font-size:12px}
.ag2-ed:focus-within{box-shadow:inset 3px 0 0 var(--accent)}
.ag2-edm{display:flex;flex-direction:column}
.ag2-save{display:flex;align-items:center;gap:8px;margin-top:12px;padding:8px 12px;border:1px solid var(--line);border-radius:10px;background:var(--raised);font-size:12px}
.ag2-save[hidden]{display:none}
.ag2-diff{margin-right:auto;color:var(--muted)}
.ag2-plus{color:var(--accent)}
.ag2-minus{color:var(--red)}
.ag2-hint{font-size:11px;line-height:1.6;color:var(--muted);margin:10px 2px 0}
.ag2-more{margin-top:18px}
.ag2-more summary{cursor:pointer;font-size:12px;color:var(--muted)}
@media(max-width:980px){.ag2-cols[data-n="3"]{--cols:2}}
@media(max-width:680px){.ag2-cols{--cols:1}.ag2-cols[data-n]{--cols:1}.ag2-m.is-full{grid-template-columns:88px 56px}.ag2-m.is-full .ag2-m-p,.ag2-m.is-full .ag2-m-t{display:none}}

/* history */
.ag2-hist{list-style:none;padding:0;margin:8px 0}
.ag2-hist li{display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;padding:9px 0;border-bottom:1px solid var(--line);font-size:12px}
.ag2-hist li:last-child{border-bottom:0}
.ag2-hist .mono{font-variant-numeric:tabular-nums}
.ag2-muted{font-size:11px;color:var(--muted)}
.ag2-loss{font-size:11px;color:var(--muted)}
.ag2-loss.bad{color:var(--red)}


/* minimal footer of secondary actions */
.ag2-foot{display:flex;gap:8px;flex-wrap:wrap;margin-top:22px}

@media(max-width:600px){.ag2-open{gap:10px}.ag2-l1 strong{font-size:14px}}
.ag2-click{cursor:pointer}.ag2-click:hover{background:var(--raised)}
.ag2-col.is-out{background:var(--bg)}
.ag2-col.is-out .ag2-r:not(.ag2-dnsr),.ag2-col.is-out .ag2-ed{opacity:.85}
.ag2-col.is-new{border-style:dashed;background:transparent}
.ag2-colh i{font-style:normal;text-transform:none;letter-spacing:0;opacity:.7;margin-left:4px}
.ag2-colst{display:inline-flex;align-items:center;gap:8px}
.ag2-on{color:var(--accent);font-weight:600}
.ag2-off{color:var(--muted)}
#modal .ag2-dnsf{width:15ch;min-width:0;flex-shrink:0;margin:0;padding:0 4px;height:28px;border:1px solid transparent;border-radius:6px;background:transparent;color:var(--text);font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:13px;font-weight:600;font-variant-numeric:tabular-nums;margin-left:-5px}
#modal .ag2-dnsf:not([readonly]):hover{border-color:var(--line)}
#modal .ag2-dnsf:focus{outline:0;border-color:var(--accent);background:var(--bg)}
#modal .ag2-dnsf.is-dirty{border-color:var(--accent);border-style:dashed}
#modal .ag2-dnsf::placeholder{font-family:inherit;font-weight:400;font-size:12px;color:var(--muted)}
.ag2-dnsr.is-off .ag2-ipc{flex:1}
.ag2-dnsr.is-off #modal .ag2-dnsf,#modal .ag2-dnsr.is-off .ag2-dnsf{width:100%}
