/* Flat utilitarian theme — no gradients, no glow. */
:root{
  --paper:#f3f1ea;
  --card:#fbfaf6;
  --ink:#201b12;
  --muted:#726a58;
  --line:#ddd6c4;
  --bar:#201b12;
  --bar-ink:#f3f1ea;
  --accent:#a03d0a;
  --accent-hover:#842f06;
  --accent-ink:#fff;
  --err-bg:#f9e9e2;
  --err-line:#c96f4a;
  --err-ink:#7c2a0e;
  --mono:ui-monospace,SFMono-Regular,Menlo,Consolas,"Liberation Mono",monospace;
  --radius:6px;
}
[data-theme="dark"]{
  --paper:#14110c;
  --card:#1d1913;
  --ink:#e9e2d2;
  --muted:#a39a83;
  --line:#3a3325;
  --bar:#0c0a07;
  --bar-ink:#e9e2d2;
  --accent:#d1762c;
  --accent-hover:#e08a3d;
  --accent-ink:#171008;
  --err-bg:#2a140c;
  --err-line:#8a4a26;
  --err-ink:#f0b48e;
}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{
  margin:0;
  font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;
  color:var(--ink);
  background:var(--paper);
  min-height:100vh;
  line-height:1.5;
}

/* Header */
.site-header{background:var(--bar);color:var(--bar-ink)}
.header-inner{
  max-width:1180px;margin:0 auto;padding:10px 20px;
  display:flex;align-items:center;gap:18px;
}
.brand{
  display:flex;align-items:center;gap:9px;
  font-family:var(--mono);font-size:14px;font-weight:700;
  color:var(--bar-ink);text-decoration:none;white-space:nowrap;
}
.mark{width:11px;height:11px;background:var(--accent);flex-shrink:0}
.site-nav{display:flex;gap:2px;flex-wrap:wrap}
.nav-link{
  font-family:var(--mono);font-size:12.5px;
  color:var(--bar-ink);opacity:.65;text-decoration:none;
  padding:6px 10px;border:1px solid transparent;border-radius:var(--radius);
}
.nav-link:hover{opacity:1;border-color:var(--line)}
.nav-link.active{opacity:1;background:var(--accent);color:var(--accent-ink);font-weight:700}
.soon{font-size:10px;opacity:.75;margin-left:4px}
.theme-toggle{
  margin-left:auto;flex-shrink:0;
  font-family:var(--mono);font-size:12px;
  background:transparent;color:var(--bar-ink);
  border:1px solid var(--line);border-radius:var(--radius);
  padding:6px 12px;cursor:pointer;
}
.theme-toggle:hover{border-color:var(--accent)}

/* Layout — wide */
.wrap{max-width:1180px;margin:0 auto;padding:26px 20px 48px}
.page-head{margin:2px 0 18px}
.kicker{font-family:var(--mono);font-size:12px;color:var(--accent);margin:0 0 4px}
h1{margin:0;font-size:24px;letter-spacing:-.01em}
.sub{margin:6px 0 0;color:var(--muted);font-size:14px}
.layout{display:grid;grid-template-columns:340px minmax(0,1fr);gap:18px;align-items:start}
@media(max-width:900px){.layout{grid-template-columns:1fr}}

/* Cards — flat */
.card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius)}
.form-card{padding:20px;position:sticky;top:70px}
@media(max-width:900px){.form-card{position:static}}
.preview-card{display:flex;flex-direction:column;min-height:420px}

/* Form */
.field{margin-bottom:14px}
.field:last-of-type{margin-bottom:16px}
label{display:block;font-family:var(--mono);font-size:11.5px;font-weight:700;text-transform:uppercase;letter-spacing:.05em;margin-bottom:6px}
input{
  width:100%;padding:10px 11px;
  font-family:var(--mono);font-size:14px;
  color:var(--ink);background:var(--paper);
  border:1px solid var(--line);border-radius:var(--radius);
}
input:focus{outline:2px solid var(--accent);outline-offset:0;border-color:var(--accent)}
input:disabled{opacity:.6}
select{
  width:100%;padding:10px 11px;
  font-family:var(--mono);font-size:14px;
  color:var(--ink);background:var(--paper);
  border:1px solid var(--line);border-radius:var(--radius);
}
select:focus{outline:2px solid var(--accent);border-color:var(--accent)}
.check-list{display:flex;flex-direction:column;gap:7px}
.check{
  display:flex;align-items:center;gap:9px;
  font-family:var(--mono);font-size:13px;font-weight:400;
  text-transform:none;letter-spacing:0;margin:0;cursor:pointer;
}
.check input{width:15px;height:15px;accent-color:var(--accent)}
.field small{display:block;margin-top:5px;color:var(--muted);font-size:12px}
.form-actions{display:flex;gap:8px}
.btn-primary{
  flex:1;padding:11px;border:0;border-radius:var(--radius);
  background:var(--accent);color:var(--accent-ink);
  font-size:14px;font-weight:700;cursor:pointer;
  display:flex;align-items:center;justify-content:center;gap:8px;
}
.btn-primary:hover{background:var(--accent-hover)}
.btn-primary:disabled{opacity:.6;cursor:not-allowed}
.btn-ghost{
  padding:11px 14px;border-radius:var(--radius);
  background:transparent;color:var(--ink);
  border:1px solid var(--line);font-size:14px;cursor:pointer;
}
.btn-ghost:hover{border-color:var(--accent);color:var(--accent)}

/* Error */
.error-box{
  margin-top:14px;padding:10px 12px;font-size:13px;
  border:1px solid var(--err-line);border-left-width:4px;
  background:var(--err-bg);color:var(--err-ink);border-radius:var(--radius);
}
.error-box p{margin:4px 0 0;word-break:break-word;font-family:var(--mono);font-size:12px}

/* Preview */
.preview-bar{
  display:flex;align-items:center;justify-content:space-between;gap:10px;
  padding:11px 16px;border-bottom:1px solid var(--line);
}
.preview-title{font-family:var(--mono);font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.05em}
.preview-open{font-family:var(--mono);font-size:12px;color:var(--accent)}
.empty-state{padding:56px 24px;text-align:center}
.empty-state p{margin:0 0 6px}
.muted{color:var(--muted);font-size:13px}
#previewBody{padding:14px 16px 16px}
#resultBody{padding:6px 16px 16px}
.dns-block{border-bottom:1px solid var(--line);padding:10px 0}
.dns-block:last-child{border-bottom:0}
.dns-resolver{font-family:var(--mono);font-size:12px;font-weight:700;margin:0 0 6px}
.dns-list{margin:0;padding-left:20px;font-family:var(--mono);font-size:13px;word-break:break-all}
.dns-list li{margin:2px 0}
.dns-error{font-family:var(--mono);font-size:12.5px;color:var(--err-ink);margin:0}
.note{font-size:12px;color:var(--muted);margin:0 0 10px}
.iframe-wrap{height:72vh;min-height:420px;border:1px solid var(--line);background:#fff}
.iframe-wrap iframe{width:100%;height:100%;border:0;background:#fff}
.meta{font-family:var(--mono);font-size:11.5px;margin:10px 0 0;word-break:break-word}
@media(max-width:900px){.iframe-wrap{height:65vh}}

/* Footer */
.site-footer{
  max-width:1180px;margin:0 auto;padding:16px 20px 28px;
  font-family:var(--mono);font-size:11.5px;color:var(--muted);
  border-top:1px solid var(--line);
}

/* Spinner */
.spinner{
  width:15px;height:15px;flex-shrink:0;
  border:2px solid currentColor;border-top-color:transparent;border-radius:50%;
  animation:spin .7s linear infinite;opacity:.7;
}
@keyframes spin{to{transform:rotate(360deg)}}
