/* DNS workspace uses the shared HacksDomain theme and typography. */
:root {
  --bg:var(--hd-canvas); --page:var(--hd-surface); --surface:var(--hd-surface);
  --surface-2:var(--hd-surface-muted); --text:var(--hd-ink); --muted:var(--hd-muted);
  --line:var(--hd-line); --brand:var(--hd-brand); --focus:var(--hd-focus);
  --map-land:#d4e5df; --map-border:#a5bfb4; --map-water:#f5f9f7;
  --green:var(--hd-brand-dark); --red:#99500b; --failure-bg:#fff1df; --action-ink:#fff;
}
:root[data-theme=dark] {
  --map-land:#28463f; --map-border:#41665c; --map-water:#111e24;
  --red:#ffc080; --failure-bg:#422e1c; --action-ink:#102033;
}
body.dns-page {font-size:14px}
.dns-page button,.dns-page input,.dns-page select {font:inherit}
.dns-page button,.dns-page summary {cursor:pointer}
.dns-page a {text-decoration:none}
.dns-page a:hover {text-decoration:underline;text-underline-offset:3px}
.dns-page [hidden] {display:none!important}
.dns-main {width:min(1180px,calc(100% - 40px));margin:auto;padding-bottom:48px}
.dns-main>.hd-breadcrumbs {padding:20px 0 0;font-size:12px}
.dns-intro {display:flex;align-items:center;justify-content:space-between;gap:24px;padding:28px 0}
.dns-eyebrow {margin:0 0 8px;color:var(--brand);font-size:11px;font-weight:800;letter-spacing:.1em;text-transform:uppercase}
.dns-intro h1 {margin:0;font-size:clamp(32px,4vw,44px);font-weight:780;letter-spacing:-.045em;line-height:1.1}
.dns-intro h1+p {margin:12px 0 0;color:var(--muted);font-size:16px}
.dns-guide-link {flex:none;border-bottom:1px solid var(--line);padding:8px 0;font-weight:650}
.dns-guide-link span {margin-left:12px;color:var(--brand)}
.dns-query-panel,.dns-map-card,.dns-results-panel,.dns-list-panel {min-width:0;background:var(--page);border:1px solid var(--line);border-radius:8px}
.dns-query-panel {padding:24px;margin-bottom:20px;border-top:3px solid var(--brand)}
.dns-query {display:grid;grid-template-columns:minmax(0,1fr) 112px 240px 144px;align-items:end;gap:12px}
.dns-field {min-width:0}
.dns-field label,.dns-options label {display:block;margin-bottom:8px;font-size:12px;font-weight:650}
.dns-query input,.dns-query select,.dns-options input,.dns-options select,.dns-filter {width:100%;min-width:0;height:46px;padding:10px 12px;border:1px solid var(--line);border-radius:6px;color:var(--text);background:var(--bg)}
.dns-page input::placeholder {color:var(--muted);opacity:1}
.dns-domain-field input {font-family:ui-monospace,SFMono-Regular,Consolas,monospace}
.dns-search {white-space:nowrap;height:46px;display:flex;align-items:center;justify-content:center;gap:8px;padding:8px 12px;border:0;border-radius:6px;background:var(--brand);color:var(--action-ink);font-weight:750!important}
.dns-search:hover {background:var(--hd-brand-dark)}
.dns-search svg {width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:2}
.dns-query-tools {display:flex;flex-wrap:wrap;align-items:center;gap:12px;margin-top:16px}
.dns-icon-button {display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:36px;padding:6px 10px;border:1px solid var(--line);border-radius:6px;color:var(--text);background:var(--page);font-size:12px!important}
.dns-icon-button svg {width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.7}
.dns-icon-button:hover,.dns-icon-button[aria-expanded=true] {background:var(--hd-soft-brand);border-color:var(--brand)}
.dns-cd,.dns-refresh {display:inline-flex;align-items:center;gap:6px;font-size:12px;color:var(--muted)}
.dns-page input[type=checkbox] {width:16px;height:16px;margin:0;accent-color:var(--brand)}
.dns-refresh {margin-left:auto}
.dns-refresh-interval {margin-left:0}
.dns-refresh input[type=number] {width:52px;height:34px;padding:4px;border:1px solid var(--line);border-radius:4px;color:var(--text);background:var(--page)}
.dns-options {display:grid;grid-template-columns:minmax(0,1fr) 180px;gap:12px;margin-top:16px;padding-top:16px;border-top:1px solid var(--line)}
.dns-source-note {margin:12px 0 0;color:var(--muted);font-size:12px}
.dns-error {color:var(--red);margin:12px 0 0;overflow-wrap:anywhere}
.dns-error:empty,.dns-export-status:empty {display:none}
.dns-workspace {display:grid;grid-template-columns:minmax(0,1fr) 390px;gap:20px;align-items:stretch}
.dns-map-card {padding:20px}
.dns-map-heading,.dns-results-heading {display:flex;align-items:center;justify-content:space-between;gap:12px}
.dns-map-heading h2,.dns-results-heading h2,.dns-list-panel h2 {margin:0;font-size:18px;font-weight:750;letter-spacing:-.025em;line-height:1.3}
.dns-map-menu {position:relative;flex:none}
.dns-map-menu>summary {display:flex;align-items:center;gap:12px;min-height:36px;padding:6px 10px;list-style:none;border:1px solid var(--line);border-radius:6px;font-size:12px;background:var(--page)}
.dns-map-menu>summary::-webkit-details-marker {display:none}
.dns-map-menu>summary:hover {background:var(--surface-2)}
.dns-export-panel {position:absolute;top:calc(100% + 8px);right:0;z-index:5;width:208px;padding:6px;border:1px solid var(--line);border-radius:8px;background:var(--page);box-shadow:var(--hd-shadow)}
.dns-export-panel button {display:block;width:100%;padding:10px;text-align:left;border:0;border-radius:4px;color:var(--text);background:none;font-size:12px}
.dns-export-panel button:hover {background:var(--surface-2)}
.dns-map {position:relative;margin:16px 0;border:1px solid var(--line);border-radius:6px;background:var(--map-water)}
.dns-map>svg {display:block;width:100%;height:auto;aspect-ratio:1000/650}
.dns-country {fill:var(--map-land);stroke:var(--map-border);stroke-width:.6;vector-effect:non-scaling-stroke;stroke-linejoin:round}
.dns-map-point {cursor:pointer;outline:none}
.dns-map-point .dns-marker-focus {fill:transparent;stroke:transparent;stroke-width:3}
.dns-map-point:focus-visible .dns-marker-focus,.dns-map-point.is-selected .dns-marker-focus {stroke:var(--focus);fill:var(--page)}
.dns-pin {fill:var(--page);stroke:var(--brand);stroke-width:2}
.dns-pin-dot {fill:var(--brand)}
.dns-map-point .dns-map-result {fill:var(--page);stroke-width:2.2;stroke-linecap:round;stroke-linejoin:round}
.dns-map-point .dns-map-result.ok {stroke:var(--green)}
.dns-map-point .dns-map-result.bad {stroke:var(--red)}
.dns-map-point.is-pending,.status.pending {animation:dns-pulse 1s ease-in-out infinite}
.dns-map-tooltip {position:absolute;z-index:4;left:12px;bottom:12px;max-width:min(320px,calc(100% - 24px));padding:12px 36px 12px 12px;border:1px solid var(--brand);border-radius:6px;color:var(--text);background:var(--page);box-shadow:var(--hd-shadow);font-size:12px;overflow-wrap:anywhere}
.dns-map-tooltip strong,.dns-map-tooltip span {display:block}
.dns-map-tooltip span {margin-top:4px}
.dns-map-tooltip button {position:absolute;right:4px;top:4px;width:28px;height:28px;border:0;color:var(--text);background:none;font-size:20px}
.dns-map-legend {display:flex;flex-wrap:wrap;gap:16px;font-size:11px;color:var(--muted)}
.dns-map-legend>span {display:inline-flex;align-items:center;gap:6px}
.dns-symbol {display:inline-grid;place-items:center;width:18px;height:18px;border:1px solid currentColor;border-radius:50%;font-size:12px;line-height:1}
.dns-symbol.idle {color:var(--brand);font-size:20px}
.dns-symbol.ok {color:var(--green)}
.dns-symbol.bad {color:var(--red)}
.dns-map-note {margin:16px 0 0;color:var(--muted);font-size:11px;line-height:1.6}
.dns-map-credit {margin:8px 0 0;color:var(--muted);font-size:10px}
.dns-map-credit a {text-decoration:underline}
.dns-export-status {margin:8px 0 0;color:var(--muted);font-size:12px}
.dns-results-panel {display:flex;flex-direction:column;min-height:0}
.dns-results-heading {padding:20px 16px 0;flex-wrap:wrap;gap:8px}
.dns-results-heading a {color:var(--brand)!important;font-size:11px}
.dns-summary {display:flex;flex-wrap:wrap;align-items:center;gap:8px;padding:16px;border-bottom:1px solid var(--line);font-size:11px}
.dns-summary>span {padding:5px 8px;border-radius:4px;background:var(--surface-2)}
.dns-summary .ok {color:var(--green);background:var(--hd-soft-brand)}
.dns-summary .bad {color:var(--red);background:var(--failure-bg)}
.dns-resolver-grid {flex:1 1 0;min-height:300px;overflow-y:auto;overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:var(--line) transparent;border-radius:0 0 8px 8px}
.resolver {display:grid;grid-template-columns:minmax(0,1fr) minmax(64px,.55fr) 20px;gap:8px;align-items:center;padding:14px 16px;border-bottom:1px solid var(--line)}
.resolver:last-child {border-bottom:0}
.resolver:hover,.resolver.is-selected {background:var(--bg)}
.dns-row-select {display:block;width:100%;min-width:0;padding:0;border:0;text-align:left;color:inherit;background:none}
.dns-location-title {display:flex;align-items:flex-start;gap:6px;font-size:12px;line-height:1.5;font-weight:650}
.dns-flag {flex:none;font-size:17px;line-height:1.3}
.dns-provider {display:block;color:var(--muted);font-size:10px;margin-top:4px;overflow-wrap:anywhere}
.answer {font:11px/1.5 ui-monospace,SFMono-Regular,Consolas,monospace;color:var(--brand);text-align:right;white-space:pre-wrap;overflow-wrap:anywhere;max-height:144px;overflow:auto}
.dns-result-detail {display:block;margin-top:4px;color:var(--muted);font-size:10px;text-align:right}
.status {display:grid;place-items:center;width:20px;height:20px;border-radius:50%;color:var(--muted);background:var(--surface-2);font-size:13px;font-weight:750}
.status.ok {color:var(--green);background:var(--hd-soft-brand)}
.status.bad {color:var(--red);background:var(--failure-bg)}
.dns-directory-empty {padding:16px;color:var(--muted);font-size:13px}
.dns-list-panel {padding:24px;margin-top:20px}
.dns-filter-heading {display:flex;align-items:center;justify-content:space-between;gap:24px}
.dns-filter-heading p {margin:6px 0 0;color:var(--muted);font-size:12px}
.dns-filter {max-width:360px;height:40px;font-size:12px!important}
.dns-countries {display:flex;flex-wrap:wrap;gap:8px;margin-top:20px}
.dns-countries button,.dns-record-types button {min-height:34px;padding:6px 12px;border:1px solid var(--line);border-radius:6px;color:var(--muted);background:var(--page);font-size:12px}
.dns-countries button:hover,.dns-record-types button:hover {border-color:var(--brand);color:var(--text)}
.dns-countries button[aria-pressed=true],.dns-record-types button.active {border-color:var(--brand);color:var(--hd-brand-dark);background:var(--hd-soft-brand)}
.dns-list-status {margin:16px 0 0;color:var(--muted);font-size:12px}
.dns-guide {max-width:860px;margin:48px auto 0}
.dns-guide h2 {margin:0 0 16px;font-size:26px;letter-spacing:-.035em}
.dns-guide p {color:var(--muted);line-height:1.8}
.dns-record-types {display:flex;flex-wrap:wrap;gap:8px;margin:20px 0 28px}
.dns-guide details {padding:16px 0;border-top:1px solid var(--line)}
.dns-guide summary {font-weight:650}
.dns-guide details p {margin-bottom:0;font-size:13px}
.dns-share-dialog {width:min(520px,calc(100% - 32px));padding:24px;border:1px solid var(--line);border-radius:8px;color:var(--text);background:var(--page)}
.dns-share-dialog::backdrop {background:#10203399}
.dns-share-dialog h2 {margin:0 0 12px;font-size:20px}
.dns-share-dialog input {display:block;width:100%;min-width:0;padding:10px;border:1px solid var(--line);background:var(--surface-2);color:var(--text)}
.dns-share-dialog button {display:block;margin:16px 0 0 auto;padding:8px 20px;background:var(--brand);color:var(--action-ink);border:0;border-radius:6px}
.dns-sr-only {position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
@keyframes dns-pulse {50%{opacity:.4}}
@media(max-width:1050px) {
  .dns-query {grid-template-columns:minmax(0,1fr) 100px 210px 124px;gap:8px}
  .dns-workspace {grid-template-columns:minmax(0,1fr) 340px;gap:16px}
  .dns-map-card {padding:16px}
  .dns-map-legend {gap:12px}
}
@media(max-width:800px) {
  .dns-query {grid-template-columns:minmax(0,1fr) 120px;gap:16px 12px}
  .dns-workspace {grid-template-columns:1fr}
  .dns-resolver-grid {flex:none;max-height:380px}
  .dns-filter-heading {align-items:stretch;flex-direction:column;gap:16px}
  .dns-filter {max-width:none}
}
@media(max-width:480px) {
  .dns-main {width:calc(100% - 28px)}
  .dns-intro {align-items:flex-start;padding:24px 0}
  .dns-intro h1+p {font-size:14px;max-width:26ch}
  .dns-guide-link {display:none}
  .dns-query-panel,.dns-list-panel {padding:16px}
  .dns-query {grid-template-columns:minmax(0,1fr) 96px}
  .dns-query input,.dns-query select {padding-inline:8px;font-size:12px}
  .dns-search {gap:6px;padding-inline:6px;font-size:12px!important}
  .dns-search svg {width:15px}
  .dns-query-tools {gap:12px 8px}
  .dns-refresh {margin-left:0}
  .dns-options {grid-template-columns:1fr}
  .dns-map-card {padding:12px}
  .dns-map-heading h2 {font-size:17px}
  .dns-map-legend {gap:10px;font-size:10px}
  .dns-symbol {width:16px;height:16px}
  .dns-map-note {font-size:11px}
  .dns-countries {gap:6px}
  .dns-countries button {padding-inline:8px;font-size:11px}
  .dns-guide {margin-top:32px}
}
@media(prefers-reduced-motion:reduce) {
  .dns-page *,.dns-page *::before,.dns-page *::after {animation:none!important;transition:none!important;scroll-behavior:auto!important}
}
@media print {
  body.dns-page {background:#fff;color:#102033}
  .hd-common-header,.hd-breadcrumbs,.dns-query-panel,.dns-results-panel,.dns-intro,.dns-list-panel,.dns-guide,.hd-common-footer,.dns-map-menu,.dns-map-tooltip,.dns-export-status {display:none!important}
  .dns-main {width:100%;padding:0}
  .dns-workspace {display:block}
  .dns-map-card {border:0;margin:0;background:#fff;color:#102033;break-inside:avoid}
  .dns-country {fill:#d4e5df;stroke:#a5bfb4}
  .dns-map {background:#f5f9f7}
  .dns-map-note,.dns-map-credit {color:#617083}
  svg {print-color-adjust:exact;-webkit-print-color-adjust:exact}
}
