/* Norm Whois — ortak stil */
:root {
  --norm-ink: #1f2330;
  --norm-ink-2: #2a2e3d;
  --norm-muted: #6b7185;
  --norm-line: #e6e8ef;
  --norm-bg: #f6f7fb;
  --norm-card: #ffffff;
  --norm-accent: #ffd400;     /* sarı vurgu */
  --norm-accent-ink: #1f2330;
  --norm-success: #1f9d55;
  --norm-danger:  #d93025;
  --norm-warn:    #b25c00;
  --norm-info:    #2563eb;
  --radius-lg: 18px;
  --radius-md: 12px;
  --radius-sm: 8px;
  --shadow-sm: 0 1px 2px rgba(20,22,33,.04), 0 1px 1px rgba(20,22,33,.03);
  --shadow-md: 0 8px 24px -12px rgba(20,22,33,.15), 0 2px 6px rgba(20,22,33,.05);
}

html, body { background: var(--norm-bg); color: var(--norm-ink); }
body {
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", sans-serif;
  font-feature-settings: "ss01","cv01";
  -webkit-font-smoothing: antialiased;
  min-height: 100vh;
  display: flex; flex-direction: column;
}
main { flex: 1 0 auto; }

/* --- Navbar --- */
.norm-nav {
  background: #fff;
  border-bottom: 1px solid var(--norm-line);
  padding: .65rem 0;
}
.norm-nav .navbar-brand { display:inline-flex; align-items:center; gap:.55rem; padding:0; }
.norm-nav .brand-logo { height: 26px; width: auto; display:block; }
.norm-nav .brand-divider {
  width:1px; height:22px; background: var(--norm-line);
}
.norm-nav .brand-tag {
  font-weight: 600; color: var(--norm-ink);
  font-size: .98rem; letter-spacing:.01em;
}
.norm-nav .brand-tag .muted { color: var(--norm-muted); font-weight: 500; }

.norm-nav .nav-link {
  color: var(--norm-ink); font-weight: 500;
  padding: .45rem .8rem !important;
  border-radius: 8px;
  font-size: .94rem;
}
.norm-nav .nav-link:hover { background: #f1f2f7; }
.norm-nav .nav-link.active {
  background: var(--norm-ink); color: #fff;
}
.norm-nav .nav-link.active i { color: var(--norm-accent); }

/* --- Hero / search --- */
.hero {
  padding: 2.25rem 0 1.25rem;
}
.hero h1 {
  font-weight: 700;
  font-size: clamp(1.6rem, 2.4vw + .4rem, 2.4rem);
  letter-spacing: -.02em;
  margin-bottom: .4rem;
}
.hero .lead {
  color: var(--norm-muted);
  font-size: clamp(.95rem, .35vw + .85rem, 1.05rem);
  max-width: 640px;
}
.eyebrow {
  display:inline-flex; align-items:center; gap:.4rem;
  font-size: .78rem; font-weight: 600;
  text-transform: uppercase; letter-spacing: .12em;
  color: var(--norm-muted);
  background: #eef0f6;
  padding: .3rem .65rem; border-radius: 999px;
  margin-bottom: 1rem;
}
.eyebrow .dot {
  width:6px; height:6px; border-radius:50%;
  background: var(--norm-accent);
}

/* --- Cards --- */
.norm-card {
  background: var(--norm-card);
  border: 1px solid var(--norm-line);
  border-radius: var(--radius-lg);
  box-shadow: var(--shadow-sm);
}
.norm-card .card-head {
  padding: 1rem 1.15rem; border-bottom: 1px solid var(--norm-line);
  display:flex; align-items:center; justify-content:space-between; gap:.75rem;
}
.norm-card .card-head h2,
.norm-card .card-head h3 {
  font-size: 1rem; font-weight: 600; margin: 0;
  display:flex; align-items:center; gap:.5rem;
}
.norm-card .card-head .badge-soft { font-weight: 500; }
.norm-card .card-body { padding: 1.15rem; }

/* --- Search form --- */
.search-wrap {
  background: #fff;
  border: 1px solid var(--norm-line);
  border-radius: var(--radius-lg);
  padding: .85rem;
  box-shadow: var(--shadow-md);
}
.search-wrap .form-control,
.search-wrap .form-select {
  border: 1px solid transparent;
  background: #f1f2f7;
  color: var(--norm-ink);
  font-size: 1rem;
  padding: .85rem 1rem;
  border-radius: 12px;
}
.search-wrap .form-control:focus,
.search-wrap .form-select:focus {
  background: #fff; border-color: var(--norm-ink);
  box-shadow: 0 0 0 4px rgba(31,35,48,.08);
}
.search-wrap .input-icon {
  position: relative;
}
.search-wrap .input-icon i {
  position:absolute; left: 14px; top: 50%; transform: translateY(-50%);
  color: var(--norm-muted);
}
.search-wrap .input-icon .form-control { padding-left: 40px; }

.btn-norm {
  background: var(--norm-ink); color: #fff;
  border-radius: 12px;
  padding: .85rem 1.15rem;
  font-weight: 600;
  border: 1px solid var(--norm-ink);
  display:inline-flex; align-items:center; justify-content:center; gap:.45rem;
}
.btn-norm:hover { background: #000; color:#fff; }
.btn-norm:focus { box-shadow: 0 0 0 4px rgba(31,35,48,.18); color:#fff; }
.btn-norm.btn-accent {
  background: var(--norm-accent); color: var(--norm-accent-ink); border-color: var(--norm-accent);
}
.btn-norm.btn-accent:hover { background:#ffdf33; color: var(--norm-accent-ink); }

.btn-outline-norm {
  background: #fff; color: var(--norm-ink);
  border: 1px solid var(--norm-line);
  border-radius: 10px; padding: .55rem .85rem;
  font-weight: 500; font-size: .9rem;
  display:inline-flex; align-items:center; gap:.4rem;
}
.btn-outline-norm:hover { background: #f1f2f7; }

/* Suggestion chips */
.chip-row { display:flex; flex-wrap:wrap; gap:.4rem; margin-top:.75rem; }
.chip {
  font-size: .82rem; color: var(--norm-muted);
  background:#fff; border:1px solid var(--norm-line);
  padding: .3rem .6rem; border-radius: 999px;
  cursor: pointer;
}
.chip:hover { background:#f1f2f7; color: var(--norm-ink); }

/* Status / badges */
.badge-soft {
  display:inline-flex; align-items:center; gap:.35rem;
  padding: .3rem .55rem; border-radius: 8px;
  font-size: .78rem; font-weight: 600;
  background: #eef0f6; color: var(--norm-ink);
}
.badge-soft.ok      { background: #e3f6ec; color: var(--norm-success); }
.badge-soft.warn    { background: #fdf1de; color: var(--norm-warn); }
.badge-soft.danger  { background: #fde6e3; color: var(--norm-danger); }
.badge-soft.info    { background: #e2ecfd; color: var(--norm-info); }
.badge-soft .ind {
  width:6px; height:6px; border-radius:50%;
  background: currentColor; opacity:.85;
}

/* Key/value table */
.kv {
  display: grid;
  grid-template-columns: 220px 1fr;
  gap: .35rem 1.25rem;
  font-size: .94rem;
}
.kv dt {
  color: var(--norm-muted); font-weight: 500;
  padding: .55rem 0;
}
.kv dd {
  padding: .55rem 0; margin: 0;
  font-family: ui-monospace, "SF Mono", Menlo, Consolas, monospace;
  font-size: .9rem; color: var(--norm-ink);
  border-bottom: 1px dashed var(--norm-line);
  word-break: break-all;
}
.kv dt + dd { border-bottom: 1px dashed var(--norm-line); }
.kv dt { border-bottom: 1px dashed var(--norm-line); }
.kv dt:last-of-type, .kv dd:last-of-type { border-bottom: 0; }
@media (max-width: 640px) {
  .kv { grid-template-columns: 1fr; gap:0; }
  .kv dt { padding-bottom:.1rem; border-bottom:0; }
  .kv dd { padding-top:.1rem; margin-bottom:.5rem; }
}

/* Raw output */
.raw-output {
  background: #0f1320; color: #d5dbe8;
  font-family: ui-monospace,"SF Mono",Menlo,Consolas,monospace;
  font-size: .82rem; line-height: 1.55;
  padding: 1rem 1.1rem; border-radius: 12px;
  white-space: pre-wrap; word-break: break-word;
  max-height: 360px; overflow:auto;
}
.raw-output .k { color: #9aa7c2; }
.raw-output .v { color: #ffd97a; }

/* Tabs */
.norm-tabs { gap:.25rem; border:0; }
.norm-tabs .nav-link {
  background:#fff; border:1px solid var(--norm-line);
  color: var(--norm-ink); border-radius: 999px;
  padding: .4rem .85rem; font-size: .88rem; font-weight: 500;
}
.norm-tabs .nav-link.active { background: var(--norm-ink); color:#fff; border-color: var(--norm-ink); }

/* Result lists */
.result-row {
  display:flex; align-items:center; gap:.85rem;
  padding: .7rem .85rem;
  border-bottom: 1px solid var(--norm-line);
  font-size: .92rem;
}
.result-row:last-child { border-bottom: 0; }
.result-row .name { flex: 1 1 auto; font-weight: 500; }
.result-row .mono { font-family: ui-monospace,"SF Mono",Menlo,Consolas,monospace; font-size: .85rem; color: var(--norm-muted); }

/* Footer */
.norm-foot {
  background:#fff;
  border-top:1px solid var(--norm-line);
  padding: 1.5rem 0 1.25rem;
  margin-top: 2.5rem;
  font-size: .88rem; color: var(--norm-muted);
}
.norm-foot .foot-links a { color: var(--norm-muted); text-decoration:none; margin-right: 1rem; }
.norm-foot .foot-links a:hover { color: var(--norm-ink); }
.norm-foot .brand-foot { display:flex; align-items:center; gap:.6rem; }
.norm-foot .brand-foot img { height: 18px; }

/* DNS check icons */
.dns-test {
  display:flex; align-items:flex-start; gap: .85rem;
  padding: .85rem 1rem;
  border-bottom: 1px solid var(--norm-line);
}
.dns-test:last-child { border-bottom: 0; }
.dns-test .ico {
  width: 30px; height: 30px; border-radius: 50%;
  display:inline-flex; align-items:center; justify-content:center;
  font-size: .95rem; flex: 0 0 30px;
}
.ico.ok      { background:#e3f6ec; color: var(--norm-success); }
.ico.warn    { background:#fdf1de; color: var(--norm-warn); }
.ico.err     { background:#fde6e3; color: var(--norm-danger); }
.dns-test .ttl { font-weight: 600; }
.dns-test .desc { color: var(--norm-muted); font-size: .88rem; margin-top: .15rem; }

/* Score circle (password) */
.score-meter {
  height: 8px; border-radius: 999px; background: #eef0f6; overflow:hidden;
}
.score-meter > span {
  display:block; height:100%; border-radius: 999px;
  transition: width .25s ease, background .25s ease;
}

/* Small util */
.tag {
  display:inline-block; font-size:.72rem; font-weight:600;
  background:#eef0f6; padding: .15rem .45rem; border-radius: 6px;
  color: var(--norm-muted); letter-spacing: .04em;
}
.divider-dot::before { content:"·"; margin: 0 .45rem; color: var(--norm-muted); }

/* Subtle background pattern on hero */
.hero-bg {
  position:relative;
  background:
    radial-gradient(900px 240px at 70% 0%, rgba(31,35,48,.04), transparent 60%),
    radial-gradient(700px 200px at 10% 0%, rgba(255,212,0,.10), transparent 60%);
}

/* Copy button */
.btn-copy {
  background: transparent; border: 1px solid var(--norm-line);
  color: var(--norm-muted); padding: .25rem .5rem; border-radius: 8px;
  font-size: .78rem;
}
.btn-copy:hover { color: var(--norm-ink); background: #f1f2f7; }

/* Skeleton (loading) */
.skel {
  background: linear-gradient(90deg,#eef0f6 0%, #f7f8fc 50%, #eef0f6 100%);
  background-size: 200% 100%;
  animation: shimmer 1.2s linear infinite;
  border-radius: 6px;
}
@keyframes shimmer {
  0% { background-position: 200% 0; }
  100% { background-position: -200% 0; }
}

/* Code chip */
.code-chip {
  font-family: ui-monospace,"SF Mono",Menlo,Consolas,monospace;
  font-size: .82rem;
  background: #eef0f6; padding: .15rem .4rem; border-radius: 6px;
  color: var(--norm-ink);
}

/* Mobile tweaks */
@media (max-width: 575.98px) {
  .hero { padding: 1.5rem 0 1rem; }
  .search-wrap { padding: .7rem; }
  .norm-card .card-head, .norm-card .card-body { padding: .9rem; }
}
