:root{
  --bg:#eef5f5;
  --surface:#ffffff;
  --surface-2:#f3fafa;
  --border:#dbe9ea;
  --text:#132225;
  --text-muted:#5f767a;
  --primary:#0d8f8a;
  --primary-2:#14b8a6;
  --primary-soft:#e1f6f3;
  --success:#15803d;
  --success-soft:#e9f7ee;
  --danger:#c0362c;
  --danger-soft:#fbeae8;
  --radius-lg:20px;
  --radius-md:14px;
  --radius-sm:9px;
  --shadow-sm:0 1px 2px rgba(10,30,30,.05),0 1px 3px rgba(10,30,30,.07);
  --shadow-md:0 10px 28px rgba(10,30,30,.09);
  --shadow-lg:0 22px 50px rgba(10,30,30,.16);
}

@media (prefers-color-scheme: dark){
  :root{
    --bg:#0b1516;
    --surface:#101c1e;
    --surface-2:#142326;
    --border:#243638;
    --text:#e6f2f1;
    --text-muted:#8ea6a8;
    --primary:#2dd4bf;
    --primary-2:#5eead4;
    --primary-soft:#123330;
    --success:#4ade80;
    --success-soft:#16301f;
    --danger:#f57373;
    --danger-soft:#3a1917;
    --shadow-sm:0 1px 2px rgba(0,0,0,.35);
    --shadow-md:0 10px 28px rgba(0,0,0,.4);
    --shadow-lg:0 22px 50px rgba(0,0,0,.55);
  }
}

.content{
  font-family:'Inter',sans-serif;
  color:var(--text);
}

.dns-icon{ width:1em; height:1em; display:inline-block; vertical-align:-0.125em; flex-shrink:0; }
.dns-icon.dns-spin{ animation:dns-spin 1s linear infinite; }
@keyframes dns-spin{ to{ transform:rotate(360deg); } }

/* ===== HERO ===== */
.dns-hero{
  text-align:center;
  margin-bottom:24px;
}

.dns-hero-icon{
  width:56px;
  height:56px;
  margin:0 auto 16px;
  border-radius:16px;
  background:linear-gradient(135deg,var(--primary),var(--primary-2));
  display:flex;
  align-items:center;
  justify-content:center;
  color:#fff;
  font-size:22px;
  box-shadow:var(--shadow-md);
}

.dns-badges{
  display:flex;
  justify-content:center;
  gap:10px;
  flex-wrap:wrap;
}

.dns-badge{
  display:inline-flex;
  align-items:center;
  gap:6px;
  font-size:.76rem;
  font-weight:700;
  color:var(--text-muted);
  background:var(--surface);
  border:1px solid var(--border);
  padding:6px 12px;
  border-radius:30px;
  box-shadow:var(--shadow-sm);
}

.dns-badge .dns-icon{ color:var(--primary); }

/* ===== SEARCH PANEL ===== */
.dns-panel{
  background:var(--surface);
  border:1px solid var(--border);
  border-radius:var(--radius-lg);
  box-shadow:var(--shadow-sm);
  padding:22px;
  margin-bottom:24px;
}

.dns-search-row{
  display:flex;
  gap:10px;
  flex-wrap:wrap;
}

.dns-search-input-wrap{
  flex:1;
  min-width:220px;
  position:relative;
  display:flex;
  align-items:center;
}

.dns-search-input-wrap .dns-icon{
  position:absolute;
  left:14px;
  color:var(--text-muted);
}

.dns-search-input-wrap input{
  width:100%;
  padding:13px 14px 13px 38px;
  border:1px solid var(--border);
  border-radius:var(--radius-sm);
  background:var(--surface-2);
  color:var(--text);
  font-family:inherit;
  font-size:.92rem;
  outline:none;
  box-sizing:border-box;
  transition:border-color .15s ease, box-shadow .15s ease;
}

.dns-search-input-wrap input:focus{
  border-color:var(--primary);
  box-shadow:0 0 0 3px var(--primary-soft);
  background:var(--surface);
}

.dns-btn{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:8px;
  border:none;
  border-radius:var(--radius-sm);
  padding:13px 20px;
  font-size:.9rem;
  font-weight:700;
  cursor:pointer;
  font-family:inherit;
  white-space:nowrap;
}

.dns-btn-primary{
  background:linear-gradient(135deg,var(--primary),var(--primary-2));
  color:#fff;
  box-shadow:var(--shadow-sm);
}

.dns-btn-primary:hover{ filter:brightness(1.05); }

.dns-btn-primary:disabled{
  opacity:.65;
  cursor:not-allowed;
}

/* record type pills */
.dns-field-label{
  font-size:.74rem;
  font-weight:700;
  color:var(--text-muted);
  text-transform:uppercase;
  letter-spacing:.04em;
  margin:18px 0 9px;
  display:flex;
  align-items:center;
  justify-content:space-between;
}

.dns-field-label .dns-pill-actions{
  display:flex;
  gap:12px;
  text-transform:none;
  letter-spacing:0;
}

.dns-link-btn{
  background:none;
  border:none;
  color:var(--primary);
  font-size:.74rem;
  font-weight:700;
  cursor:pointer;
  padding:0;
  font-family:inherit;
}

.dns-pill-row{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
}

.dns-pill{
  border:1px solid var(--border);
  background:var(--surface-2);
  color:var(--text-muted);
  font-size:.8rem;
  font-weight:700;
  padding:7px 13px;
  border-radius:30px;
  cursor:pointer;
  font-family:inherit;
  transition:all .12s ease;
}

.dns-pill:hover{ border-color:var(--primary); }

.dns-pill.dns-active{
  background:var(--primary-soft);
  border-color:var(--primary);
  color:var(--primary);
}

/* example / recent chips */
.dns-chip-row{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
  margin-top:9px;
}

.dns-chip{
  border:1px solid var(--border);
  background:var(--surface);
  color:var(--text-muted);
  font-size:.76rem;
  font-weight:600;
  padding:5px 12px;
  border-radius:30px;
  cursor:pointer;
  font-family:inherit;
}

.dns-chip:hover{ border-color:var(--primary); color:var(--primary); }

.dns-chip.dns-recent{ display:inline-flex; align-items:center; gap:6px; }
.dns-chip.dns-recent .dns-icon{ opacity:.7; }

/* ===== RESULTS ===== */
.dns-results-header{
  display:flex;
  align-items:center;
  justify-content:space-between;
  margin-bottom:14px;
  padding:0 2px;
}

.dns-results-header h2{
  margin:0;
  font-size:1.02rem;
  font-weight:700;
}

.dns-count-badge{
  font-size:.76rem;
  font-weight:700;
  color:var(--text-muted);
  background:var(--surface);
  border:1px solid var(--border);
  padding:4px 11px;
  border-radius:20px;
  min-height:20px;
}

.dns-lookup-meta{
  display:flex;
  gap:16px;
  flex-wrap:wrap;
  align-items:center;
  font-size:.76rem;
  font-weight:600;
  color:var(--text-muted);
  margin-bottom:16px;
  padding:12px 16px;
  background:var(--surface);
  border:1px solid var(--border);
  border-radius:var(--radius-sm);
}

.dns-lookup-meta span{ display:flex; align-items:center; gap:6px; }
.dns-lookup-meta span .dns-icon{ color:var(--primary); }
.dns-lookup-meta .dns-warn{ color:var(--danger); }
.dns-lookup-meta .dns-warn .dns-icon{ color:var(--danger); }

.dns-copy-all-btn{
  margin-left:auto;
  background:none;
  border:none;
  color:var(--primary);
  font-weight:700;
  cursor:pointer;
  font-family:inherit;
  font-size:.76rem;
  display:flex;
  align-items:center;
  gap:6px;
}

.dns-state-box{
  text-align:center;
  color:var(--text-muted);
  font-size:.88rem;
  padding:60px 20px;
  background:var(--surface);
  border:1px dashed var(--border);
  border-radius:var(--radius-lg);
}

.dns-state-box.dns-error{
  color:var(--danger);
  border-color:var(--danger-soft);
  background:var(--danger-soft);
}

.dns-state-box .dns-icon{
  width:1.8rem;
  height:1.8rem;
  color:var(--border);
  display:block;
  margin:0 auto 12px;
}

.dns-state-box.dns-error .dns-icon{ color:var(--danger); }
.dns-state-box.dns-loading .dns-icon{ animation:dns-pulse 1.1s infinite ease-in-out; color:var(--primary); }

@keyframes dns-pulse{ 0%{opacity:.35} 50%{opacity:1} 100%{opacity:.35} }

.dns-type-section{
  background:var(--surface);
  border:1px solid var(--border);
  border-radius:var(--radius-md);
  margin-bottom:14px;
  overflow:hidden;
}

.dns-type-head{
  display:flex;
  align-items:center;
  gap:10px;
  padding:13px 16px;
  background:var(--surface-2);
  border-bottom:1px solid var(--border);
}

.dns-type-head .dns-icon{
  color:var(--primary);
  width:18px;
  height:18px;
}

.dns-type-head h3{
  margin:0;
  font-size:.86rem;
  font-weight:700;
  flex:1;
}

.dns-type-count{
  font-size:.7rem;
  font-weight:800;
  color:var(--primary);
  background:var(--primary-soft);
  padding:2px 9px;
  border-radius:20px;
}

.dns-type-empty{
  padding:14px 16px;
  font-size:.8rem;
  color:var(--text-muted);
}

.dns-type-empty.dns-error{ color:var(--danger); }

.dns-record-row{
  display:flex;
  align-items:center;
  gap:10px;
  padding:11px 16px;
  border-bottom:1px solid var(--border);
}

.dns-record-row:last-child{ border-bottom:none; }

.dns-record-value{
  flex:1;
  font-family:'Courier New',monospace;
  font-size:.83rem;
  word-break:break-word;
  line-height:1.5;
}

.dns-record-ttl{
  font-size:.68rem;
  font-weight:700;
  color:var(--text-muted);
  background:var(--surface-2);
  border:1px solid var(--border);
  padding:3px 8px;
  border-radius:20px;
  white-space:nowrap;
}

.dns-icon-btn{
  background:var(--primary-soft);
  border:1px solid transparent;
  color:var(--primary);
  width:28px;
  height:28px;
  border-radius:7px;
  cursor:pointer;
  flex-shrink:0;
  display:flex;
  align-items:center;
  justify-content:center;
}

.dns-icon-btn:hover{ filter:brightness(0.97); }

/* TOAST */
.dns-toast{
  position:fixed;
  bottom:26px;
  left:50%;
  transform:translateX(-50%) translateY(16px);
  background:var(--text);
  color:var(--bg);
  padding:11px 20px;
  border-radius:10px;
  font-size:.85rem;
  font-weight:600;
  opacity:0;
  pointer-events:none;
  transition:opacity .25s ease, transform .25s ease;
  z-index:99;
  box-shadow:var(--shadow-lg);
}

.dns-toast.dns-show{
  opacity:1;
  transform:translateX(-50%) translateY(0);
}

@media (max-width:600px){
  .dns-search-row{ flex-direction:column; }
  .dns-btn-primary{ width:100%; }
}
