.dns-checker{width:100%}.dns-card{max-width:720px;margin-inline:auto;background:var(--surface-1);border:1px solid var(--border);border-radius:var(--radius-xl);box-shadow:var(--shadow-card);padding:var(--space-4)}.dns-card-title{margin-bottom:var(--space-3)}.dns-form{display:grid;grid-template-columns:1fr;gap:var(--space-3)}@media(min-width:640px){.dns-form{grid-template-columns:1.6fr 1fr auto;align-items:end}}.dns-field{display:grid;gap:var(--space-1)}.dns-field label{font:var(--text-label);letter-spacing:.02em;text-transform:uppercase;color:var(--text-muted)}.dns-field input,.dns-field select{width:100%;padding:11px 14px;background:var(--surface-2);border:1px solid var(--border);border-radius:var(--radius-md);color:var(--text-primary);font:var(--text-body);appearance:none;-webkit-appearance:none}.dns-field input::placeholder{color:var(--text-muted)}.dns-field input:focus-visible,.dns-field select:focus-visible{outline:2px solid var(--accent);outline-offset:1px;border-color:transparent}.dns-field-type select{background-image:linear-gradient(45deg,transparent 50%,var(--text-muted) 50%),linear-gradient(135deg,var(--text-muted) 50%,transparent 50%);background-position:calc(100% - 18px) 55%,calc(100% - 13px) 55%;background-size:5px 5px;background-repeat:no-repeat;padding-right:34px}.dns-submit{white-space:nowrap}.dns-submit:disabled{opacity:.55;cursor:not-allowed}.dns-form-error{margin-top:var(--space-3);color:var(--status-fail);font:var(--text-small)}.dns-results{max-width:var(--width-results);margin:var(--space-4) auto 0;display:grid;gap:var(--space-3)}.dns-empty{text-align:center;padding:var(--space-5) var(--space-4);border:1px dashed var(--border);border-radius:var(--radius-lg)}.dns-empty-title{color:var(--text-primary);font-weight:600}.dns-empty-sub{color:var(--text-muted);font:var(--text-small);margin-top:var(--space-1)}.dns-banner{background:var(--surface-1);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-card);padding:var(--space-4);display:grid;gap:var(--space-2);border-left:3px solid var(--status-info)}.dns-banner.is-pass{border-left-color:var(--status-pass)}.dns-banner.is-warning{border-left-color:var(--status-warning)}.dns-banner.is-fail{border-left-color:var(--status-fail)}.dns-banner-title{font:var(--text-h3);color:var(--text-primary)}.dns-banner-detail{color:var(--text-secondary);font:var(--text-small)}.dns-progress{height:6px;background:var(--surface-3);border-radius:var(--radius-sm);overflow:hidden}.dns-progress-fill{height:100%;background:var(--action);border-radius:var(--radius-sm);transition:width .3s ease}.dns-map{margin:0;background:var(--surface-1);border:1px solid var(--border);border-radius:var(--radius-lg);padding:var(--space-3)}.dns-map svg{width:100%;height:auto;display:block;background:var(--surface-2);border-radius:var(--radius-md)}.dns-node{color:var(--status-info)}.dns-node.is-success{color:var(--status-pass)}.dns-node.is-error{color:var(--status-fail)}.dns-node-glow{fill:currentColor;opacity:.25}.dns-node-core{fill:currentColor;stroke:var(--bg);stroke-width:2.5}.dns-node.is-checking .dns-node-glow{animation:dns-pulse 1.4s ease-in-out infinite}@keyframes dns-pulse{0%,to{opacity:.15}50%{opacity:.45}}@media(prefers-reduced-motion:reduce){.dns-node.is-checking .dns-node-glow{animation:none;opacity:.3}}.dns-legend{display:flex;flex-wrap:wrap;gap:var(--space-3);margin-top:var(--space-2);font:var(--text-small);color:var(--text-secondary)}.dns-legend-item{display:inline-flex;align-items:center;gap:6px}.dns-legend-dot{width:9px;height:9px;border-radius:50%}.dns-legend-dot.is-success{background:var(--status-pass)}.dns-legend-dot.is-error{background:var(--status-fail)}.dns-legend-dot.is-checking{background:var(--status-info)}.dns-grid{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:var(--space-2)}.dns-cell{background:var(--surface-1);border:1px solid var(--border);border-radius:var(--radius-md);padding:var(--space-3);display:grid;gap:var(--space-2);align-content:start}.dns-cell-head{display:flex;align-items:center;gap:var(--space-2)}.dns-flag{width:22px;height:22px;border-radius:var(--radius-sm);object-fit:cover;flex:none}.dns-cell-id{display:grid;min-width:0}.dns-cell-name{color:var(--text-primary);font:var(--text-small);font-weight:600}.dns-cell-country{color:var(--text-muted);font:var(--text-label);letter-spacing:.02em}.dns-cell-dot{width:9px;height:9px;border-radius:50%;margin-left:auto;flex:none;background:var(--status-info)}.dns-cell-dot.is-success{background:var(--status-pass)}.dns-cell-dot.is-error{background:var(--status-fail)}.dns-cell-dot.is-checking{animation:dns-dot-pulse 1.4s ease-in-out infinite}@keyframes dns-dot-pulse{0%,to{opacity:.4}50%{opacity:1}}.dns-cell-answer{font:var(--text-code);color:var(--text-primary);overflow-wrap:anywhere}.dns-cell-more{color:var(--text-muted);font:var(--text-small)}.dns-cell-meta{display:flex;gap:var(--space-3);font:var(--text-code);color:var(--text-muted)}.dns-cell-error{font:var(--text-small);color:var(--status-fail);overflow-wrap:anywhere}.dns-details{display:grid;gap:var(--space-3)}.dns-details-bar{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:var(--space-2)}.dns-details-actions{display:flex;gap:var(--space-2)}.dns-details-actions .btn{padding:8px 16px;font:var(--text-small);font-weight:600}.dns-details-actions .btn:disabled{opacity:.55;cursor:not-allowed}.dns-table-wrap{background:var(--surface-1);border:1px solid var(--border);border-radius:var(--radius-lg);overflow-x:auto}.dns-table{width:100%;border-collapse:collapse;font:var(--text-small)}.dns-table th{font:var(--text-label);letter-spacing:.02em;text-transform:uppercase;color:var(--text-muted);text-align:left;padding:12px 14px;border-bottom:1px solid var(--border);background:var(--surface-2);white-space:nowrap}.dns-table td{padding:10px 14px;border-bottom:1px solid var(--border);vertical-align:top;color:var(--text-secondary)}.dns-table tbody tr:last-child td{border-bottom:none}.dns-td-name{color:var(--text-primary);font-weight:600;white-space:nowrap}.dns-td-country{display:block;color:var(--text-secondary)}.dns-td-coords{display:block;font:var(--text-code);color:var(--text-muted)}.dns-td-answer{font:var(--text-code);color:var(--text-primary);overflow-wrap:anywhere;min-width:200px}.dns-td-mono{font:var(--text-code);white-space:nowrap}.world-art{filter:var(--map-filter, none);opacity:var(--map-opacity, .35)}.dns-card{border:1px solid transparent;background:linear-gradient(var(--surface-1),var(--surface-1)) padding-box,linear-gradient(130deg,color-mix(in srgb,var(--studio-blue) 55%,var(--border)),var(--border) 38%,var(--border) 62%,color-mix(in srgb,var(--signal-cyan) 45%,var(--border))) border-box}.dns-form input,.dns-form select{transition:border-color var(--dur-fast) var(--ease-out),box-shadow var(--dur-fast) var(--ease-out)}.dns-form input:focus-visible,.dns-form select:focus-visible{outline:none;border-color:var(--action);box-shadow:0 0 0 3px color-mix(in srgb,var(--action) 22%,transparent)}.dns-submit{transition:background var(--dur-fast) var(--ease-out),transform var(--dur-fast) var(--ease-out),box-shadow var(--dur-fast) var(--ease-out)}.dns-submit:hover{transform:translateY(-1px);box-shadow:0 6px 18px color-mix(in srgb,var(--action) 40%,transparent)}.dns-submit:active{transform:translateY(0)}.dns-progress-fill{background:linear-gradient(90deg,var(--studio-blue),var(--signal-cyan),var(--studio-blue));background-size:200% 100%}@media(prefers-reduced-motion:no-preference){.dns-progress-fill{animation:dns-flow 1.6s linear infinite}@keyframes dns-flow{0%{background-position:0% 0}to{background-position:-200% 0}}}@media(prefers-reduced-motion:no-preference){.dns-grid .dns-cell{animation:dns-rise var(--dur-slow) var(--ease-out) both}.dns-grid .dns-cell:nth-child(2n){animation-delay:40ms}.dns-grid .dns-cell:nth-child(3n){animation-delay:80ms}@keyframes dns-rise{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}}.dns-banner{border-left:3px solid currentColor}@media(prefers-reduced-motion:no-preference){.dns-banner{animation:dns-rise var(--dur-slow) var(--ease-out) both}}.dns-banner.is-info{border-left-color:var(--status-info)}.dns-form-options{display:flex;justify-content:flex-end;margin-top:var(--space-2)}
