.config-shortcuts{display:flex;align-items:center;flex-wrap:wrap;gap:8px;padding:10px 16px;border-bottom:1px solid var(--border-soft)}
.config-shortcuts[hidden]{display:none}
.config-shortcuts-title{margin-right:3px;color:var(--faint);font-size:9px;font-weight:800;letter-spacing:1px}
.config-shortcuts .button{height:31px;padding:0 10px;font-size:10px}
.config-editor-tabs{display:flex;gap:7px;margin:12px 0 8px}
.config-editor-tabs .button{height:31px;padding:0 12px}
.config-editor-tabs .button.active{border-color:#3b7165;color:var(--green)}
.config-editor-help{margin:7px 0;color:var(--muted);font-size:10px}
.config-kv-list{display:flex;flex-direction:column;gap:7px;max-height:min(52vh,500px);overflow:auto;padding:2px 1px 6px}
.config-kv-row{display:grid;grid-template-columns:minmax(130px,.42fr) minmax(180px,1fr);gap:8px}
.config-kv-row input{min-width:0;width:100%;padding:8px 10px;border:1px solid var(--border);border-radius:6px;background:var(--panel-2);color:var(--text);font-size:11px}
.config-kv-list>.button{align-self:flex-start;height:31px;font-size:10px}
.config-kv-list>.config-editor-help{margin:0}
@media(max-width:560px){.config-shortcuts{padding:9px 11px}.config-shortcuts-title{width:100%}.config-kv-row{grid-template-columns:minmax(90px,.4fr) minmax(130px,1fr);gap:6px}}
.light .config-kv-row input{background:#fff;color:#1b2922;border-color:#ccd8d0}
.network-settings-grid{display:grid;grid-template-columns:minmax(300px,1fr) minmax(300px,.85fr);gap:16px;align-items:start}
.network-settings-card,.network-facts{padding:20px}
.upnp-settings-card{grid-column:1/-1;padding:20px}
.unifi-settings-card{grid-column:1/-1;padding:20px}
.unifi-settings-card form{display:flex;flex-direction:column;gap:12px}
.unifi-settings-card .checkline{margin:0}
.npm-settings-card{grid-column:1/-1;padding:20px}
.npm-settings-card form{display:flex;flex-direction:column;gap:12px}
.npm-settings-card .checkline{margin:0}
.cloudflare-settings-card{grid-column:1/-1;padding:20px}
.cloudflare-settings-card form{display:flex;flex-direction:column;gap:12px}
.cloudflare-settings-card .checkline{margin:0}
.npm-credentials{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.npm-actions{display:flex;gap:10px;align-items:center}
.npm-server-facts{display:grid;grid-template-columns:minmax(120px,.35fr) 1fr;gap:8px 16px;padding:12px 14px;border:1px solid var(--line);border-radius:12px;color:var(--muted);font-size:12px}
.npm-server-facts b{color:var(--text);overflow-wrap:anywhere}
.unifi-credentials{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.unifi-actions{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end}
.unifi-rules-list{margin-top:16px;border-top:1px solid var(--border-soft);padding-top:14px}
.unifi-rule-list{display:flex;flex-direction:column;gap:8px}
.unifi-rule-list>div{display:flex;justify-content:space-between;gap:12px;align-items:center;padding:10px 12px;border:1px solid var(--border-soft);border-radius:10px}
.unifi-rule-list span{display:flex;flex-direction:column;gap:4px;min-width:0}
.unifi-rule-list small{color:var(--muted);overflow-wrap:anywhere}
.unifi-rule-list em{font-style:normal;white-space:nowrap}
.unifi-strays{margin-top:16px;padding:14px;border:1px solid var(--line);border-radius:12px}
.unifi-strays .checkline{margin:8px 0}
.unifi-strays p{color:var(--muted)}
.good-text{color:var(--green)!important}
.upnp-settings-card form{display:flex;flex-direction:column;gap:12px}
.upnp-settings-card .checkline{margin:0}
.upnp-facts{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1px;border:1px solid var(--border-soft);border-radius:8px;overflow:hidden;background:var(--border-soft)}
.upnp-facts>div{display:flex;flex-direction:column;gap:4px;min-width:0;padding:11px;background:var(--panel)}
.upnp-facts span{font-size:9px;color:var(--muted)}
.upnp-facts b{font-size:11px;overflow-wrap:anywhere}
.upnp-mapping-list{display:grid;gap:6px;max-width:760px}
.upnp-mapping-list>div{display:grid;grid-template-columns:minmax(90px,.7fr) 90px minmax(120px,1fr);align-items:center;gap:10px;padding:8px 10px;border:1px solid var(--border-soft);border-radius:6px;background:var(--panel-2);font-size:10px}
.upnp-mapping-list code{color:var(--green);font:10px ui-monospace,monospace}
.upnp-mapping-list small{color:var(--muted);font-size:9px;overflow-wrap:anywhere}
.network-settings-card form{display:flex;flex-direction:column;gap:13px}
.network-settings-card form>label{display:flex;flex-direction:column;gap:6px}
.network-settings-card form input{width:100%;padding:10px 12px;border:1px solid var(--border);border-radius:7px;background:var(--panel-2);color:var(--text)}
.network-settings-card form label small{color:var(--muted);font-size:10px}
.network-fact{display:flex;flex-direction:column;gap:4px;padding:12px 0;border-bottom:1px solid var(--border-soft)}
.network-fact>span,.network-detection-note{font-size:10px;color:var(--muted)}
.network-fact>b,.network-fact>code{font-size:13px;overflow-wrap:anywhere}
.network-detection-note{margin:13px 0 0;line-height:1.5}
.reachability-card{padding:17px;min-width:0}
.reachability-card .panel-head{align-items:flex-start}
.reachability-state{display:inline-flex;align-items:center;gap:5px;padding:4px 7px;border-radius:5px;background:#1e2928;font-size:8px;font-weight:800;letter-spacing:.55px;white-space:nowrap}
.reachability-state>i{width:5px;height:5px;border-radius:50%;background:currentColor}
.reachability-state.good{color:var(--green)}
.reachability-state.bad{color:var(--red)}
.reachability-state.muted{color:var(--muted)}
.reachability-address{display:block;margin:13px 0 7px;color:var(--green);font-size:14px;overflow-wrap:anywhere}
.reachability-message{margin:9px 0;color:var(--muted);font-size:11px;line-height:1.5}
.reachability-time{color:var(--faint);font-size:9px}
.domains-card{padding:0;overflow:hidden}
.domains-table-wrap{overflow-x:auto}
.domains-table{width:100%;border-collapse:collapse;min-width:760px;text-align:left}
.domains-table th,.domains-table td{padding:14px 16px;border-bottom:1px solid var(--border-soft);vertical-align:top}
.domains-table th{color:var(--faint);font-size:9px;font-weight:800;letter-spacing:.8px;text-transform:uppercase;white-space:nowrap}
.domains-table td{font-size:11px}
.domains-table td:first-child b,.domain-provider{display:block;color:var(--text);font-size:11px}
.domains-table code{color:var(--green);font:11px ui-monospace,SFMono-Regular,monospace;overflow-wrap:anywhere}
.domain-error,.domain-note{display:block;max-width:320px;margin-top:6px;color:var(--muted);font-size:9px;line-height:1.4;overflow-wrap:anywhere}
.domain-error{color:var(--red)}
.domains-footnote{padding:12px 16px;color:var(--muted);font-size:9px}
.domains-empty{padding:56px 20px;text-align:center}
.domains-empty h2{margin:12px 0 5px;font-size:17px}
.domains-empty p{max-width:420px;margin:0 auto;color:var(--muted);font-size:11px;line-height:1.5}
.domain-mark{display:grid;width:40px;height:40px;margin:0 auto;place-items:center;border:1px solid var(--border-soft);border-radius:12px;color:var(--green);font-size:20px}
@media(max-width:900px){.network-settings-grid{grid-template-columns:1fr}.upnp-settings-card,.unifi-settings-card,.npm-settings-card,.cloudflare-settings-card{grid-column:auto}.upnp-facts{grid-template-columns:repeat(2,minmax(0,1fr))}.unifi-credentials,.npm-credentials{grid-template-columns:1fr}}
@media(max-width:600px){.upnp-mapping-list>div{grid-template-columns:minmax(0,1fr) 70px}.upnp-mapping-list small{grid-column:1/-1}}
.light .network-settings-card form input{background:#fff;color:#1b2922;border-color:#ccd8d0}
