/* Web Komando Tools */
.tools-header {
  min-height: clamp(22rem, 44vw, 31rem);
}

.tools-intro {
  max-width: 760px;
}

.tools-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 1px;
  margin-top: 3rem;
  padding: 1px;
  background: none;
}

.tool-card {
  position: relative;
  display: flex;
  min-height: 280px;
  flex-direction: column;
  align-items: flex-start;
  padding: clamp(1.5rem, 3vw, 2.3rem);
  color: var(--text);
  background: var(--bg-panel);
  border: 0;
  border-radius: 0;
  text-align: left;
  cursor: pointer;
  transition: background-color .2s ease, transform .2s ease;
}

.tool-card:hover,
.tool-card:focus-visible {
  z-index: 1;
  background: #23282e;
  outline: 1px solid var(--accent);
  transform: translateY(-2px);
}

.tool-card[disabled] {
  cursor: default;
  opacity: .58;
}

.tool-card[disabled]:hover {
  background: var(--bg-panel);
  outline: 0;
  transform: none;
}

.tool-card-number,
.tool-card-status {
  color: var(--accent);
  font-size: .76rem;
  font-weight: 800;
  letter-spacing: .14em;
}

.tool-card-status {
  margin-left: auto;
}

.tool-card-top {
  display: flex;
  width: 100%;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
}

.tool-card h2 {
  margin: auto 0 .85rem;
  font-size: clamp(1.55rem, 2.4vw, 2.15rem);
}

.tool-card p {
  margin: 0;
  color: var(--muted);
}

.tool-card-arrow {
  display: inline-block;
  margin-top: 1.5rem;
  color: var(--accent);
  font-size: 1.5rem;
  line-height: 1;
}

.tools-note {
  margin-top: 2rem;
  color: var(--muted);
  font-size: .95rem;
}

.tool-dialog {
  width: 90vw;
  height: 90vh;
  max-width: 1600px;
  max-height: 1000px;
  padding: 0;
  overflow: hidden;
  color: var(--text);
  background: #15191d;
  border: 1px solid #3a4148;
  border-radius: 0;
}

.tool-dialog::backdrop {
  background: rgba(5, 8, 10, .86);
  backdrop-filter: blur(4px);
}

.tool-dialog-shell {
  display: grid;
  grid-template-rows: auto minmax(0, 1fr);
  width: 100%;
  height: 100%;
}

.tool-dialog-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 2rem;
  padding: 1.25rem 1.5rem;
  background: #101316;
  border-bottom: 1px solid var(--line);
}

.tool-dialog-heading {
  min-width: 0;
}

.tool-dialog-kicker {
  margin: 0 0 .2rem;
  color: var(--accent);
  font-size: .72rem;
  font-weight: 800;
  letter-spacing: .14em;
}

.tool-dialog-title {
  margin: 0;
  font-size: clamp(1.35rem, 2.4vw, 2rem);
}

.tool-dialog-close {
  flex: 0 0 auto;
  width: 44px;
  height: 44px;
  padding: 0;
  color: #fff;
  background: transparent;
  border: 1px solid var(--line);
  border-radius: 0;
  font-size: 1.8rem;
  line-height: 1;
  cursor: pointer;
}

.tool-dialog-close:hover,
.tool-dialog-close:focus-visible {
  color: #111;
  background: var(--accent);
  border-color: var(--accent);
}

.tool-dialog-body {
  overflow: auto;
  padding: clamp(1.5rem, 4vw, 3.5rem);
}

.tool-dialog-footer {
  padding: .85rem 1.5rem;
  color: var(--muted);
  background: #101316;
  border-top: 1px solid var(--line);
  font-size: .78rem;
  letter-spacing: .06em;
  text-transform: uppercase;
}

.tool-dialog-open {
  overflow: hidden;
}

/* Speed test */
.speed-tool {
  width: min(100%, 1050px);
  margin-inline: auto;
}

.speed-intro {
  display: grid;
  grid-template-columns: minmax(0, 1.2fr) minmax(260px, .8fr);
  gap: 2.5rem;
  align-items: end;
  margin-bottom: 2.5rem;
}

.speed-intro h3 {
  margin-bottom: .75rem;
  font-size: clamp(2rem, 4vw, 3.7rem);
}

.speed-intro p {
  margin: 0;
  color: var(--muted);
}

.speed-action {
  display: flex;
  justify-content: flex-end;
}

.speed-start {
  min-width: 180px;
}

.speed-start[disabled] {
  cursor: wait;
  opacity: .65;
}

.speed-status {
  min-height: 1.7em;
  margin: 0 0 1.2rem;
  color: var(--accent);
  font-size: .8rem;
  font-weight: 800;
  letter-spacing: .12em;
  text-transform: uppercase;
}

.speed-results {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 1px;
  padding: 1px;
  background: var(--line);
}

.speed-result {
  min-height: 180px;
  padding: 1.5rem;
  background: var(--bg-panel);
}

.speed-label {
  display: block;
  margin-bottom: 2.4rem;
  color: var(--muted);
  font-size: .74rem;
  font-weight: 700;
  letter-spacing: .12em;
  text-transform: uppercase;
}


.speed-label-row {
  display: flex;
  align-items: center;
  gap: .45rem;
  margin-bottom: 2.4rem;
}

.speed-label-row .speed-label {
  margin-bottom: 0;
}

.speed-help {
  position: relative;
  display: inline-grid;
  place-items: center;
  width: 1.25rem;
  height: 1.25rem;
  padding: 0;
  border: 1px solid var(--muted);
  border-radius: 50%;
  background: transparent;
  color: var(--muted);
  font: 800 .72rem/1 var(--font-body);
  cursor: help;
  transition: border-color .18s ease, color .18s ease, background .18s ease;
}

.speed-help:hover,
.speed-help:focus {
  border-color: var(--accent);
  color: var(--accent);
  outline: none;
}

.speed-help-tip {
  position: absolute;
  z-index: 20;
  left: 50%;
  bottom: calc(100% + .7rem);
  width: min(270px, 70vw);
  padding: .75rem .85rem;
  border: 1px solid var(--line);
  background: #0d1114;
  color: var(--text);
  font-size: .78rem;
  font-weight: 500;
  line-height: 1.45;
  letter-spacing: 0;
  text-align: left;
  text-transform: none;
  box-shadow: 0 12px 30px rgba(0,0,0,.35);
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transform: translate(-50%, 6px);
  transition: opacity .16s ease, transform .16s ease, visibility .16s ease;
}

.speed-help-tip::after {
  content: "";
  position: absolute;
  top: 100%;
  left: 50%;
  width: .55rem;
  height: .55rem;
  border-right: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
  background: #0d1114;
  transform: translate(-50%, -50%) rotate(45deg);
}

.speed-help:hover .speed-help-tip,
.speed-help:focus .speed-help-tip {
  opacity: 1;
  visibility: visible;
  transform: translate(-50%, 0);
}

.speed-value {
  display: block;
  font-family: var(--font-heading);
  font-size: clamp(2.2rem, 5vw, 4.4rem);
  font-weight: 700;
  line-height: .95;
  letter-spacing: -.04em;
}

.speed-unit {
  display: block;
  margin-top: .7rem;
  color: var(--accent);
  font-size: .76rem;
  font-weight: 700;
  letter-spacing: .1em;
}

.speed-meta {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 1rem;
  margin-top: 1.5rem;
  color: var(--muted);
  font-size: .88rem;
}

.speed-meta strong {
  color: var(--text);
}

.speed-disclaimer {
  margin-top: 1.7rem;
  padding-top: 1.25rem;
  color: var(--muted);
  border-top: 1px solid var(--line);
  font-size: .85rem;
}

@media (max-width: 900px) {
  .tools-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .speed-results { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 620px) {
  .tools-grid { grid-template-columns: 1fr; }
  .tool-card { min-height: 220px; }
  .tool-dialog {
    width: 100vw;
    height: 100dvh;
    max-width: none;
    max-height: none;
    border: 0;
  }
  .tool-dialog-header { padding: 1rem; }
  .tool-dialog-body { padding: 1.25rem 1rem 2rem; }
  .tool-dialog-footer { padding-inline: 1rem; }
  .speed-intro { grid-template-columns: 1fr; gap: 1.5rem; }
  .speed-action { justify-content: flex-start; }
  .speed-results { grid-template-columns: 1fr 1fr; }
  .speed-result { min-height: 145px; padding: 1.15rem; }
  .speed-label { margin-bottom: 1.5rem; }
  .speed-meta { grid-template-columns: 1fr; }
}

/* Speed gauge */
.speed-live {
  margin: 0 0 1.6rem;
}

.speed-live .speed-status {
  margin-bottom: .35rem;
  text-align: center;
}

.speed-gauge {
  position: relative;
  width: min(100%, 620px);
  margin: 0 auto 1rem;
  aspect-ratio: 16 / 8.8;
}

.speed-gauge-svg {
  display: block;
  width: 100%;
  height: 100%;
  overflow: visible;
}

.speed-gauge-track,
.speed-gauge-progress {
  fill: none;
  stroke-width: 13;
  stroke-linecap: round;
}

.speed-gauge-track {
  stroke: #2d3339;
}

.speed-gauge-progress {
  stroke: var(--accent);
  stroke-dasharray: 100;
  stroke-dashoffset: 100;
  transition: stroke-dashoffset .16s linear;
}

.speed-gauge-readout {
  position: absolute;
  left: 50%;
  bottom: 4%;
  display: flex;
  min-width: 220px;
  flex-direction: column;
  align-items: center;
  transform: translateX(-50%);
  text-align: center;
}

.speed-gauge-phase {
  margin-bottom: .25rem;
  color: var(--muted);
  font-size: .72rem;
  font-weight: 800;
  letter-spacing: .16em;
}

.speed-gauge-value {
  font-family: var(--font-heading);
  font-size: clamp(3.6rem, 9vw, 7rem);
  line-height: .83;
  letter-spacing: -.055em;
}

.speed-gauge-unit {
  margin-top: .65rem;
  color: var(--accent);
  font-size: .8rem;
  font-weight: 800;
  letter-spacing: .12em;
  text-transform: uppercase;
}

.speed-gauge-scale {
  position: absolute;
  left: 5%;
  right: 5%;
  bottom: 5%;
  display: flex;
  justify-content: space-between;
  color: var(--muted);
  font-size: .72rem;
  font-weight: 700;
}

@media (max-width: 620px) {
  .speed-gauge { width: 100%; }
  .speed-gauge-track,
  .speed-gauge-progress { stroke-width: 11; }
  .speed-gauge-readout { bottom: 1%; }
}

/* Desktop Speed layout — gauge left, results right, no modal scrollbar */
@media (min-width: 901px) {
  .tool-dialog-body {
    min-height: 0;
    overflow: hidden;
    padding: clamp(1.15rem, 2.2vw, 2rem);
  }

  .speed-tool {
    display: grid;
    grid-template-columns: minmax(380px, .95fr) minmax(520px, 1.05fr);
    grid-template-rows: auto minmax(0, 1fr) auto auto;
    grid-template-areas:
      "intro intro"
      "gauge results"
      "meta meta"
      "note note";
    column-gap: clamp(2rem, 4vw, 4.5rem);
    row-gap: clamp(.7rem, 1.3vh, 1.1rem);
    width: min(100%, 1400px);
    height: 100%;
    margin-inline: auto;
  }

  .speed-intro {
    grid-area: intro;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 2rem;
    align-items: center;
    margin: 0;
  }

  .speed-intro h3 {
    margin: .15rem 0 .35rem;
    font-size: clamp(1.55rem, 2.4vw, 2.55rem);
  }

  .speed-intro p:not(.section-kicker) {
    max-width: 820px;
    font-size: .9rem;
  }

  .speed-live {
    grid-area: gauge;
    align-self: center;
    width: 100%;
    margin: 0;
  }

  .speed-live .speed-status {
    margin-bottom: .15rem;
  }

  .speed-gauge {
    width: min(100%, 560px);
    margin: 0 auto;
  }

  .speed-gauge-value {
    font-size: clamp(3.6rem, 7vw, 6.5rem);
  }

  .speed-results {
    grid-area: results;
    align-self: center;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    width: 100%;
  }

  .speed-result {
    min-height: clamp(135px, 18vh, 175px);
    padding: clamp(1rem, 2vw, 1.45rem);
  }

  .speed-label {
    margin-bottom: clamp(1rem, 2vh, 1.8rem);
  }

  .speed-label-row {
    margin-bottom: clamp(1rem, 2vh, 1.8rem);
  }

  .speed-label-row .speed-label {
    margin-bottom: 0;
  }

  .speed-value {
    font-size: clamp(2.8rem, 5vw, 4.7rem);
  }

  .speed-meta {
    grid-area: meta;
    margin: 0;
    padding-top: .8rem;
    border-top: 1px solid var(--line);
  }

  .speed-disclaimer {
    grid-area: note;
    margin: 0;
    padding-top: .7rem;
    font-size: .78rem;
  }
}

@media (min-width: 901px) and (max-height: 780px) {
  .tool-dialog-header {
    padding-block: .8rem;
  }

  .tool-dialog-footer {
    padding-block: .55rem;
  }

  .speed-tool {
    grid-template-columns: minmax(340px, .9fr) minmax(480px, 1.1fr);
    row-gap: .55rem;
  }

  .speed-intro h3 {
    font-size: clamp(1.35rem, 2vw, 2rem);
  }

  .speed-intro p:not(.section-kicker),
  .speed-disclaimer {
    font-size: .76rem;
  }

  .speed-gauge {
    width: min(100%, 470px);
  }

  .speed-result {
    min-height: 120px;
    padding: .9rem 1.15rem;
  }

  .speed-label {
    margin-bottom: .8rem;
  }

  .speed-value {
    font-size: clamp(2.45rem, 4.6vw, 4rem);
  }
}

/* PageSpeed */
.psi-tool {
  width: min(100%, 1400px);
  height: 100%;
  margin-inline: auto;
}

.psi-intro {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(430px, .8fr);
  gap: clamp(2rem, 4vw, 4.5rem);
  align-items: center;
  margin-bottom: clamp(1rem, 2vh, 1.5rem);
}

.psi-intro h3 {
  margin: .15rem 0 .35rem;
  font-size: clamp(1.55rem, 2.4vw, 2.55rem);
}

.psi-intro p:not(.section-kicker) {
  margin: 0;
  max-width: 800px;
  color: var(--muted);
  font-size: .9rem;
}

.psi-url-row {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: .65rem;
}

.psi-url {
  width: 100%;
  min-width: 0;
  height: 52px;
  padding: 0 1rem;
  color: var(--text);
  background: #101316;
  border: 1px solid var(--line);
  border-radius: 0;
  font: 600 .9rem/1 var(--font-body);
}

.psi-url:focus {
  border-color: var(--accent);
  outline: none;
}

.psi-start {
  min-width: 125px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: .55rem;
}
.psi-start[disabled] { cursor: wait; opacity: .78; }
.psi-start.is-loading::after {
  content: "";
  width: 14px;
  height: 14px;
  border: 2px solid rgba(16, 19, 22, .28);
  border-top-color: #101316;
  border-radius: 50%;
  animation: wk-psi-spin .72s linear infinite;
}
@keyframes wk-psi-spin { to { transform: rotate(360deg); } }

.psi-status {
  min-height: 1.3em;
  margin: .4rem 0 0;
  color: var(--muted);
  font-size: .76rem;
}

.psi-status.is-error { color: var(--accent); }
.psi-status.is-loading::after {
  content: "";
  display: inline-block;
  width: 1.4em;
  margin-left: .25rem;
  overflow: hidden;
  vertical-align: bottom;
  animation: wk-psi-dots 1.15s steps(4, end) infinite;
}
@keyframes wk-psi-dots {
  0% { content: ""; }
  25% { content: "."; }
  50% { content: ".."; }
  75%, 100% { content: "..."; }
}

.psi-placeholder {
  display: grid;
  place-items: center;
  min-height: 48vh;
  border: 1px solid var(--line);
  background: #12161a;
  text-align: center;
}

.psi-placeholder strong {
  display: block;
  color: var(--accent);
  font-size: clamp(1.1rem, 2vw, 1.7rem);
  letter-spacing: .14em;
}

.psi-placeholder span {
  display: block;
  margin-top: .55rem;
  color: var(--muted);
  font-size: .85rem;
}

.psi-workspace[hidden],
.psi-placeholder[hidden] { display: none !important; }

.psi-tabs {
  display: flex;
  align-items: center;
  gap: .5rem;
  min-height: 44px;
  margin-bottom: .8rem;
}

.psi-tab {
  padding: .65rem 1rem;
  color: var(--muted);
  background: #101316;
  border: 1px solid var(--line);
  border-radius: 0;
  font: 800 .76rem/1 var(--font-body);
  letter-spacing: .08em;
  text-transform: uppercase;
  cursor: pointer;
}

.psi-tab.is-active,
.psi-tab:hover,
.psi-tab:focus-visible {
  color: #101316;
  background: var(--accent);
  border-color: var(--accent);
  outline: none;
}

.psi-tested-url {
  min-width: 0;
  margin-left: auto;
  overflow: hidden;
  color: var(--muted);
  font-size: .78rem;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.psi-main {
  display: grid;
  grid-template-columns: minmax(0, .9fr) minmax(440px, 1.1fr);
  gap: 1px;
  padding: 1px;
  background: var(--line);
}

.psi-left,
.psi-findings { background: #15191d; }

.psi-left { padding: 1px; }

.psi-scores {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 1px;
  background: var(--line);
}

.psi-score {
  position: relative;
  min-height: 165px;
  padding: 1.15rem;
  background: var(--bg-panel);
}

.psi-score > span {
  display: block;
  min-height: 2.3em;
  color: var(--muted);
  font-size: .7rem;
  font-weight: 800;
  letter-spacing: .09em;
  text-transform: uppercase;
}

.psi-score strong {
  display: inline-block;
  margin-top: 1.15rem;
  font-family: var(--font-heading);
  font-size: clamp(2.7rem, 4.4vw, 4.8rem);
  line-height: .8;
  letter-spacing: -.045em;
}

.psi-score small {
  margin-left: .25rem;
  color: var(--muted);
  font-size: .7rem;
}

.psi-score::after {
  content: "";
  position: absolute;
  left: 1.15rem;
  right: 1.15rem;
  bottom: .8rem;
  height: 3px;
  background: #353c43;
}

/* Score colors: 0–50 red · 51–80 orange · 81–90 lime · 91–100 green */
.psi-score.is-bad::after { background: #e05252; }
.psi-score.is-medium::after { background: #e79b3c; }
.psi-score.is-good::after { background: var(--accent); }
.psi-score.is-excellent::after { background: #54c77a; }

.psi-metrics {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 1px;
  margin-top: 1px;
  background: var(--line);
}

.psi-metrics article {
  min-height: 112px;
  padding: 1rem 1.15rem;
  background: #181d21;
}

.psi-metrics span,
.psi-metrics small {
  display: block;
  color: var(--muted);
  font-size: .68rem;
  font-weight: 700;
}

.psi-metrics span { letter-spacing: .11em; }

.psi-metrics strong {
  display: block;
  margin: .55rem 0 .3rem;
  font-family: var(--font-heading);
  font-size: clamp(1.45rem, 2.3vw, 2.25rem);
  line-height: 1;
}

.psi-findings {
  min-width: 0;
  padding: 1.15rem 1.3rem;
}

.psi-findings-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 1rem;
  padding-bottom: .7rem;
  border-bottom: 1px solid var(--line);
}

.psi-findings-head h4 {
  margin: .1rem 0 0;
  font-size: 1.35rem;
}

.psi-field {
  flex: 0 0 auto;
  padding: .4rem .55rem;
  color: var(--accent);
  border: 1px solid var(--line);
  font-size: .64rem;
  font-weight: 800;
  letter-spacing: .08em;
}


.psi-field-wrap {
  display: flex;
  align-items: center;
  gap: .45rem;
  flex: 0 0 auto;
}

.psi-help {
  width: 1.15rem;
  height: 1.15rem;
  font-size: .66rem;
}

.psi-help .speed-help-tip {
  left: auto;
  right: 0;
  transform: translate(0, 6px);
}

.psi-help .speed-help-tip::after {
  left: auto;
  right: .3rem;
  transform: translate(0, -50%) rotate(45deg);
}

.psi-help:hover .speed-help-tip,
.psi-help:focus .speed-help-tip {
  transform: translate(0, 0);
}

.psi-findings-list {
  display: grid;
  gap: 0;
  margin: .55rem 0 0;
  padding: 0;
  list-style: none;
}

.psi-findings-list li {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: .75rem;
  align-items: center;
  padding: .56rem 0;
  border-bottom: 1px solid var(--line);
}

.psi-findings-list li:last-child { border-bottom: 0; }

.psi-findings-list strong {
  font-size: .79rem;
  line-height: 1.2;
}

.psi-findings-list span {
  max-width: 190px;
  overflow: hidden;
  color: var(--accent);
  font-size: .68rem;
  text-align: right;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.psi-findings-list .psi-empty {
  display: block;
  color: var(--muted);
  font-size: .8rem;
}

.psi-disclaimer {
  margin: .75rem 0 0;
  color: var(--muted);
  font-size: .72rem;
}

@media (min-width: 901px) {
  .psi-tool {
    display: grid;
    grid-template-rows: auto minmax(0, 1fr);
    min-height: 0;
  }

  .psi-workspace,
  .psi-placeholder {
    min-height: 0;
  }

  .psi-main { height: calc(100% - 52px); }
  .psi-left,
  .psi-findings { min-height: 0; }
}

@media (min-width: 901px) and (max-height: 780px) {
  .psi-intro { margin-bottom: .65rem; }
  .psi-intro h3 { font-size: 1.75rem; }
  .psi-intro p:not(.section-kicker) { font-size: .76rem; }
  .psi-url { height: 44px; }
  .psi-score { min-height: 125px; padding: .85rem; }
  .psi-score > span { min-height: 1.8em; font-size: .62rem; }
  .psi-score strong { margin-top: .65rem; font-size: clamp(2.2rem, 4vw, 3.6rem); }
  .psi-score::after { left: .85rem; right: .85rem; bottom: .55rem; }
  .psi-metrics article { min-height: 85px; padding: .7rem .85rem; }
  .psi-metrics strong { margin: .35rem 0 .2rem; font-size: 1.55rem; }
  .psi-findings { padding: .9rem 1.05rem; }
  .psi-findings-list li { padding: .5rem 0; }
  .psi-disclaimer { margin-top: .45rem; }
}

@media (max-width: 900px) {
  .psi-tool { height: auto; }
  .psi-intro { grid-template-columns: 1fr; gap: 1.25rem; }
  .psi-main { grid-template-columns: 1fr; }
  .psi-scores { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .psi-metrics { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .psi-placeholder { min-height: 40vh; }
}

@media (max-width: 620px) {
  .psi-url-row { grid-template-columns: 1fr; }
  .psi-start { width: 100%; }
  .psi-tested-url { display: none; }
  .psi-score { min-height: 130px; padding: 1rem; }
  .psi-score strong { font-size: 3rem; }
  .psi-findings-list li { grid-template-columns: 1fr; }
  .psi-findings-list span { max-width: none; text-align: left; }
}

/* SEO Audit */
.seo-tool {
  display: grid;
  grid-template-rows: auto minmax(0, 1fr);
  width: min(100%, 1400px);
  height: 100%;
  margin-inline: auto;
}

.seo-intro {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(430px, .8fr);
  gap: clamp(2rem, 4vw, 4.5rem);
  align-items: center;
  margin-bottom: clamp(.8rem, 1.7vh, 1.25rem);
}

.seo-intro h3 {
  margin: .15rem 0 .35rem;
  font-size: clamp(1.55rem, 2.4vw, 2.55rem);
}

.seo-intro p:not(.section-kicker) {
  margin: 0;
  max-width: 820px;
  color: var(--muted);
  font-size: .9rem;
}

.seo-url-row {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: .65rem;
}

.seo-url {
  width: 100%;
  min-width: 0;
  height: 52px;
  padding: 0 1rem;
  color: var(--text);
  background: #101316;
  border: 1px solid var(--line);
  border-radius: 0;
  font: 600 .9rem/1 var(--font-body);
}

.seo-url:focus { border-color: var(--accent); outline: none; }
.seo-start { min-width: 125px; display: inline-flex; align-items: center; justify-content: center; gap: .55rem; }
.seo-start[disabled] { cursor: wait; opacity: .78; }
.seo-start.is-loading::after {
  content: "";
  width: 14px;
  height: 14px;
  border: 2px solid rgba(16, 19, 22, .28);
  border-top-color: #101316;
  border-radius: 50%;
  animation: wk-psi-spin .72s linear infinite;
}

.seo-status {
  min-height: 1.3em;
  margin: .4rem 0 0;
  color: var(--muted);
  font-size: .76rem;
}
.seo-status.is-error { color: #e05252; }
.seo-status.is-loading::after {
  content: "";
  display: inline-block;
  width: 1.4em;
  margin-left: .25rem;
  overflow: hidden;
  vertical-align: bottom;
  animation: wk-psi-dots 1.15s steps(4, end) infinite;
}

.seo-placeholder {
  display: grid;
  place-items: center;
  min-height: 48vh;
  border: 1px solid var(--line);
  background: #12161a;
  text-align: center;
}
.seo-placeholder strong { display:block; color:var(--accent); font-size:clamp(1.1rem,2vw,1.7rem); letter-spacing:.14em; }
.seo-placeholder span { display:block; margin-top:.55rem; color:var(--muted); font-size:.85rem; }
.seo-placeholder[hidden], .seo-workspace[hidden] { display:none !important; }

.seo-workspace { min-height: 0; }
.seo-summary {
  display: grid;
  grid-template-columns: minmax(0, 1fr) repeat(3, 110px);
  gap: 1px;
  margin-bottom: 1px;
  padding: 1px;
  background: var(--line);
}
.seo-tested, .seo-counter { background: var(--bg-panel); }
.seo-tested { min-width: 0; padding: .85rem 1rem; }
.seo-tested span, .seo-counter span {
  display:block;
  color:var(--muted);
  font-size:.65rem;
  font-weight:800;
  letter-spacing:.11em;
  text-transform:uppercase;
}
.seo-tested strong {
  display:block;
  margin-top:.25rem;
  overflow:hidden;
  font-size:.88rem;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.seo-counter { display:grid; place-items:center; padding:.65rem; text-align:center; }
.seo-counter strong { font-family:var(--font-heading); font-size:2rem; line-height:.9; }
.seo-counter-label { display:inline-flex !important; align-items:center; justify-content:center; gap:.35rem; }
.seo-summary-help {
  width:15px;
  height:15px;
  font-size:.55rem;
  line-height:13px;
  vertical-align:middle;
}
.seo-summary-help .speed-help-tip {
  right:-8px;
  bottom:calc(100% + 9px);
  left:auto;
  width:260px;
  text-align:left;
  text-transform:none;
  letter-spacing:normal;
}
.seo-summary-help .speed-help-tip::after {
  right:10px;
  left:auto;
}
.seo-counter.is-ok strong { color:#54c77a; }
.seo-counter.is-warn strong { color:#e79b3c; }
.seo-counter.is-bad strong { color:#e05252; }

.seo-grid {
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  grid-auto-rows:minmax(58px,auto);
  gap:1px;
  height:auto;
  padding:1px;
  background:var(--line);
}
.seo-check {
  position:relative;
  display:flex;
  flex-direction:column;
  justify-content:flex-start;
  min-width:0;
  padding:.52rem .9rem .48rem 1rem;
  overflow:hidden;
  background:#171c20;
}
.seo-check::before {
  content:"";
  position:absolute;
  top:0; bottom:0; left:0;
  width:3px;
  background:#353c43;
}
.seo-check.is-ok::before { background:#54c77a; }
.seo-check.is-warn::before { background:#e79b3c; }
.seo-check.is-bad::before { background:#e05252; }
.seo-check-head { display:flex; align-items:center; gap:.65rem; min-width:0; }
.seo-check-head strong {
  min-width:0;
  overflow:hidden;
  font-size:.77rem;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.seo-check-badge {
  flex:none;
  margin-left:auto;
  color:var(--muted);
  font-size:.58rem;
  font-weight:900;
  letter-spacing:.08em;
}
.seo-check.is-ok .seo-check-badge { color:#54c77a; }
.seo-check.is-warn .seo-check-badge { color:#e79b3c; }
.seo-check.is-bad .seo-check-badge { color:#e05252; }
.seo-check-value {
  margin:.24rem 0 0;
  overflow:hidden;
  color:var(--text);
  font-size:.75rem;
  line-height:1.25;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.seo-check small {
  display:block;
  margin-top:.22rem;
  overflow:hidden;
  color:var(--muted);
  font-size:.64rem;
  line-height:1.25;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.seo-pager {
  display:flex;
  justify-content:flex-end;
  align-items:center;
  gap:.55rem;
  margin-top:.45rem;
}
.seo-page-btn {
  width:30px;
  height:26px;
  border:1px solid var(--line);
  background:#11161a;
  color:var(--text);
  font:inherit;
  cursor:pointer;
}
.seo-page-btn:hover:not(:disabled) { border-color:var(--accent); color:var(--accent); }
.seo-page-btn:disabled { opacity:.28; cursor:default; }
.seo-page-label {
  min-width:42px;
  text-align:center;
  color:var(--text);
  font-size:.68rem;
  font-weight:800;
  letter-spacing:.08em;
}
.seo-disclaimer { margin:.65rem 0 0; color:var(--muted); font-size:.72rem; }

@media (min-width:901px) and (max-height:780px) {
  .seo-intro { margin-bottom:.6rem; }
  .seo-intro h3 { font-size:1.75rem; }
  .seo-intro p:not(.section-kicker) { font-size:.76rem; }
  .seo-url { height:44px; }
  .seo-summary { grid-template-columns:minmax(0,1fr) repeat(3,90px); }
  .seo-tested { padding:.6rem .8rem; }
  .seo-counter { padding:.45rem; }
  .seo-counter strong { font-size:1.6rem; }
  .seo-grid { height:auto; grid-auto-rows:minmax(52px,auto); }
  .seo-check { padding:.4rem .75rem .36rem .85rem; }
  .seo-check-value { margin-top:.16rem; font-size:.7rem; line-height:1.2; }
  .seo-check small { margin-top:.12rem; font-size:.58rem; line-height:1.15; }
  .seo-disclaimer { margin-top:.4rem; }
}

@media (max-width:900px) {
  .seo-tool { height:auto; display:block; }
  .seo-intro { grid-template-columns:1fr; gap:1.25rem; }
  .seo-placeholder { min-height:40vh; }
  .seo-summary { grid-template-columns:1fr repeat(3,72px); }
  .seo-grid { grid-template-columns:1fr; height:auto; }
  .seo-check { min-height:86px; }
}

@media (max-width:620px) {
  .seo-url-row { grid-template-columns:1fr; }
  .seo-start { width:100%; }
  .seo-summary { grid-template-columns:repeat(3,1fr); }
  .seo-tested { grid-column:1 / -1; }
}

/* Robots & Sitemap */
.rs-tool{height:100%;display:grid;grid-template-rows:auto minmax(0,1fr) auto;gap:.8rem;min-height:0}
.rs-intro{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(420px,.85fr);gap:2.5rem;align-items:center}
.rs-intro h3{margin:.15rem 0 .35rem;font-size:clamp(2rem,3vw,3rem);line-height:.96}
.rs-intro p:not(.section-kicker){margin:0;color:var(--muted);font-size:.88rem;max-width:760px}
.rs-url-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:.7rem}.rs-url{height:52px;padding:0 1rem;color:#fff;background:#101418;border:1px solid var(--line);font-weight:700}.rs-url:focus{border-color:var(--accent);outline:0}.rs-start{min-width:130px;display:inline-flex;align-items:center;justify-content:center;gap:.5rem}.rs-start[disabled]{cursor:wait;opacity:.78}.rs-start.is-loading::after{content:"";width:13px;height:13px;border:2px solid rgba(0,0,0,.28);border-top-color:#111;border-radius:50%;animation:toolSpin .7s linear infinite}.rs-status{margin:.4rem 0 0;color:var(--muted);font-size:.78rem}.rs-status.is-error{color:#e05252}.rs-status.is-loading::after{content:"";display:inline-block;width:5px;height:5px;margin-left:.45rem;background:var(--accent);border-radius:50%;animation:psiPulse 1s ease-in-out infinite}
.rs-placeholder{display:grid;place-items:center;align-content:center;min-height:0;border:1px solid var(--line);background:#171c20}.rs-placeholder strong{color:var(--accent);font-size:clamp(1.2rem,2.2vw,1.8rem);letter-spacing:.14em}.rs-placeholder span{margin-top:.5rem;color:var(--muted);font-size:.82rem}.rs-placeholder[hidden],.rs-workspace[hidden]{display:none!important}
.rs-workspace{min-height:0;display:grid;grid-template-rows:auto minmax(0,1fr);border:1px solid var(--line)}.rs-host{display:flex;align-items:center;justify-content:space-between;padding:.7rem 1rem;background:var(--bg-panel);border-bottom:1px solid var(--line)}.rs-host span{color:var(--muted);font-size:.68rem;font-weight:800;letter-spacing:.14em}.rs-host strong{font-size:.9rem}.rs-main{display:grid;grid-template-columns:.92fr 1.08fr;min-height:0}.rs-checks{display:grid;grid-template-columns:1fr 1fr;align-content:stretch;border-right:1px solid var(--line)}.rs-check{position:relative;display:flex;min-width:0;flex-direction:column;justify-content:center;padding:.65rem .9rem .65rem 1rem;border-right:1px solid var(--line);border-bottom:1px solid var(--line);background:#1d2227}.rs-check::before{content:"";position:absolute;inset:0 auto 0 0;width:3px}.rs-check.is-ok::before{background:#54c77a}.rs-check.is-warn::before{background:#e79b3c}.rs-check.is-bad::before{background:#e05252}.rs-check-head{display:flex;justify-content:space-between;gap:.8rem;align-items:center}.rs-check-head strong{font-size:.78rem}.rs-check-head span{font-size:.58rem;font-weight:900;letter-spacing:.08em}.rs-check.is-ok .rs-check-head span{color:#54c77a}.rs-check.is-warn .rs-check-head span{color:#e79b3c}.rs-check.is-bad .rs-check-head span{color:#e05252}.rs-check-value{margin-top:.25rem;font-size:.78rem;font-weight:800;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.rs-check small{margin-top:.15rem;color:var(--muted);font-size:.62rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.rs-maps-wrap{min-width:0;padding:1rem 1.15rem}.rs-maps-head{display:flex;align-items:end;justify-content:space-between;border-bottom:1px solid var(--line);padding-bottom:.65rem}.rs-maps-head h4{margin:0;font-size:1.25rem}.rs-maps{display:grid;gap:1px;margin-top:.75rem;background:var(--line);border:1px solid var(--line)}.rs-map{display:grid;grid-template-columns:110px minmax(0,1fr) 210px;gap:1rem;align-items:center;padding:.7rem .8rem;background:#171c20}.rs-map>div:first-child{display:flex;flex-direction:column}.rs-map span{color:var(--muted);font-size:.6rem;font-weight:800;letter-spacing:.12em}.rs-map strong{margin-top:.1rem;font-size:.82rem}.rs-map.is-ok strong{color:#54c77a}.rs-map.is-warn strong{color:#e79b3c}.rs-map p{margin:0;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:.72rem}.rs-map-stats{display:grid;grid-template-columns:repeat(3,auto auto);gap:.25rem .4rem;align-items:baseline;justify-content:end}.rs-map-stats b{font-size:.8rem}.rs-map-stats small{color:var(--muted);font-size:.55rem;letter-spacing:.08em}.rs-disclaimer{margin:0;color:var(--muted);font-size:.7rem}
@media(max-height:780px) and (min-width:901px){.rs-intro h3{font-size:1.8rem}.rs-url{height:44px}.rs-check{padding:.45rem .75rem .45rem .9rem}.rs-map{padding:.5rem .7rem}.rs-maps-wrap{padding:.7rem .9rem}.rs-disclaimer{font-size:.62rem}}
@media(max-width:900px){.rs-tool{height:auto;display:block}.rs-intro{grid-template-columns:1fr;gap:1.2rem}.rs-placeholder{min-height:40vh;margin-top:1rem}.rs-workspace{margin-top:1rem}.rs-main{grid-template-columns:1fr}.rs-checks{grid-template-columns:1fr;border-right:0}.rs-map{grid-template-columns:1fr}.rs-map-stats{justify-content:start}}
@media(max-width:560px){.rs-url-row{grid-template-columns:1fr}.rs-start{width:100%}.rs-host{align-items:flex-start;gap:.5rem;flex-direction:column}.rs-maps-wrap{padding:.8rem}.rs-check small{white-space:normal}.rs-map p{white-space:normal;word-break:break-all}}

/* 05 — Headers HTTP */
.hh-tool{height:100%;display:grid;grid-template-rows:auto minmax(0,1fr) auto;gap:.8rem;min-height:0}
.hh-intro{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(430px,.9fr);gap:2.5rem;align-items:center}
.hh-intro h3{margin:.15rem 0 .35rem;font-size:clamp(2rem,3vw,3rem);line-height:.96}.hh-intro p:not(.section-kicker){margin:0;color:var(--muted);font-size:.88rem;max-width:760px}
.hh-url-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:.7rem}.hh-url{height:52px;padding:0 1rem;color:#fff;background:#101418;border:1px solid var(--line);font-weight:700}.hh-url:focus{border-color:var(--accent);outline:0}.hh-start{min-width:130px;display:inline-flex;align-items:center;justify-content:center;gap:.5rem}.hh-start[disabled]{cursor:wait;opacity:.78}.hh-start.is-loading::after{content:"";width:13px;height:13px;border:2px solid rgba(0,0,0,.28);border-top-color:#111;border-radius:50%;animation:toolSpin .7s linear infinite}.hh-status{margin:.4rem 0 0;color:var(--muted);font-size:.78rem}.hh-status.is-error{color:#e05252}.hh-status.is-loading::after{content:"";display:inline-block;width:5px;height:5px;margin-left:.45rem;background:var(--accent);border-radius:50%;animation:psiPulse 1s ease-in-out infinite}
.hh-placeholder{display:grid;place-items:center;align-content:center;min-height:0;border:1px solid var(--line);background:#171c20}.hh-placeholder strong{color:var(--accent);font-size:clamp(1.2rem,2.2vw,1.8rem);letter-spacing:.14em}.hh-placeholder span{margin-top:.5rem;color:var(--muted);font-size:.82rem}.hh-placeholder[hidden],.hh-workspace[hidden]{display:none!important}
.hh-workspace{min-height:0;display:grid;grid-template-rows:auto minmax(0,1fr);border:1px solid var(--line)}
.hh-summary{display:grid;grid-template-columns:minmax(0,1fr) repeat(3,100px);border-bottom:1px solid var(--line)}.hh-tested,.hh-counter{background:var(--bg-panel)}.hh-tested{padding:.65rem 1rem;min-width:0}.hh-tested span,.hh-counter span{display:block;color:var(--muted);font-size:.62rem;font-weight:800;letter-spacing:.13em}.hh-tested strong{display:block;margin-top:.2rem;font-size:.88rem}.hh-tested small{display:block;margin-top:.12rem;color:var(--muted);font-size:.62rem}.hh-counter{display:grid;place-items:center;text-align:center;border-left:1px solid var(--line);padding:.45rem}.hh-counter strong{font-family:var(--font-heading);font-size:1.8rem;line-height:.95}.hh-counter.is-ok strong{color:#54c77a}.hh-counter.is-warn strong{color:#e79b3c}.hh-counter.is-bad strong{color:#e05252}
.hh-main{display:grid;grid-template-columns:1.12fr .88fr;min-height:0}.hh-checks{display:grid;grid-template-columns:1fr 1fr;align-content:stretch;border-right:1px solid var(--line)}.hh-check{position:relative;display:flex;min-width:0;flex-direction:column;justify-content:center;padding:.48rem .8rem .48rem .95rem;border-right:1px solid var(--line);border-bottom:1px solid var(--line);background:#1d2227}.hh-check::before{content:"";position:absolute;inset:0 auto 0 0;width:3px}.hh-check.is-ok::before{background:#54c77a}.hh-check.is-warn::before{background:#e79b3c}.hh-check.is-bad::before{background:#e05252}.hh-check-head{display:flex;justify-content:space-between;gap:.8rem;align-items:center}.hh-check-head strong{font-size:.73rem}.hh-check-head span{font-size:.55rem;font-weight:900;letter-spacing:.08em}.hh-check.is-ok .hh-check-head span{color:#54c77a}.hh-check.is-warn .hh-check-head span{color:#e79b3c}.hh-check.is-bad .hh-check-head span{color:#e05252}.hh-check-value{margin-top:.2rem;font-size:.74rem;font-weight:800;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.hh-check small{margin-top:.1rem;color:var(--muted);font-size:.58rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.hh-raw{min-width:0;padding:.85rem 1rem}.hh-raw-head{display:flex;align-items:end;justify-content:space-between;border-bottom:1px solid var(--line);padding-bottom:.55rem}.hh-raw-head h4{margin:0;font-size:1.15rem}.hh-headers{display:grid;margin-top:.55rem;border:1px solid var(--line);background:var(--line);gap:1px}.hh-header-row{display:grid;grid-template-columns:160px minmax(0,1fr);gap:.75rem;padding:.42rem .55rem;background:#171c20;align-items:center;min-width:0}.hh-header-row span{color:var(--accent);font-size:.58rem;font-weight:850;text-transform:uppercase;letter-spacing:.08em}.hh-header-row strong{font-size:.62rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.hh-empty{margin:0;padding:1rem;color:var(--muted);font-size:.72rem}.hh-disclaimer{margin:0;color:var(--muted);font-size:.68rem}
@media(max-height:780px) and (min-width:901px){.hh-intro h3{font-size:1.8rem}.hh-url{height:44px}.hh-check{padding:.35rem .65rem .35rem .8rem}.hh-raw{padding:.6rem .8rem}.hh-header-row{padding:.3rem .45rem}.hh-disclaimer{font-size:.6rem}}
@media(max-width:900px){.hh-tool{height:auto;display:block}.hh-intro{grid-template-columns:1fr;gap:1.2rem}.hh-placeholder{min-height:40vh;margin-top:1rem}.hh-workspace{margin-top:1rem}.hh-summary{grid-template-columns:1fr repeat(3,72px)}.hh-main{grid-template-columns:1fr}.hh-checks{grid-template-columns:1fr;border-right:0}.hh-raw{border-top:1px solid var(--line)}}
@media(max-width:560px){.hh-url-row{grid-template-columns:1fr}.hh-start{width:100%}.hh-summary{grid-template-columns:repeat(3,1fr)}.hh-tested{grid-column:1/-1}.hh-check small{white-space:normal}.hh-header-row{grid-template-columns:1fr}.hh-header-row strong{white-space:normal;word-break:break-word}}

/* 06 — Images */
.img-tool{height:100%;display:grid;grid-template-rows:auto minmax(0,1fr) auto;gap:.8rem;min-height:0}.img-intro{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(430px,.9fr);gap:2.5rem;align-items:center}.img-intro h3{margin:.15rem 0 .35rem;font-size:clamp(2rem,3vw,3rem);line-height:.96}.img-intro p:not(.section-kicker){margin:0;color:var(--muted);font-size:.88rem;max-width:760px}.img-url-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:.7rem}.img-url{height:52px;padding:0 1rem;color:#fff;background:#101418;border:1px solid var(--line);font-weight:700}.img-url:focus{border-color:var(--accent);outline:0}.img-start{min-width:130px;display:inline-flex;align-items:center;justify-content:center;gap:.5rem}.img-start[disabled]{cursor:wait;opacity:.78}.img-start.is-loading::after{content:"";width:13px;height:13px;border:2px solid rgba(0,0,0,.28);border-top-color:#111;border-radius:50%;animation:toolSpin .7s linear infinite}.img-status{margin:.4rem 0 0;color:var(--muted);font-size:.78rem}.img-status.is-error{color:#e05252}.img-status.is-loading::after{content:"";display:inline-block;width:5px;height:5px;margin-left:.45rem;background:var(--accent);border-radius:50%;animation:psiPulse 1s ease-in-out infinite}.img-placeholder{display:grid;place-items:center;align-content:center;border:1px solid var(--line);background:#171c20}.img-placeholder strong{color:var(--accent);font-size:clamp(1.2rem,2.2vw,1.8rem);letter-spacing:.14em}.img-placeholder span{margin-top:.5rem;color:var(--muted);font-size:.82rem}.img-placeholder[hidden],.img-workspace[hidden]{display:none!important}.img-workspace{min-height:0;display:grid;grid-template-rows:auto minmax(0,1fr);border:1px solid var(--line)}.img-summary{display:grid;grid-template-columns:minmax(0,1fr) repeat(4,105px);border-bottom:1px solid var(--line)}.img-tested,.img-stat{background:var(--bg-panel)}.img-tested{padding:.65rem 1rem;min-width:0}.img-tested span,.img-stat span{display:block;color:var(--muted);font-size:.58rem;font-weight:800;letter-spacing:.12em}.img-tested strong{display:block;margin-top:.18rem;font-size:.88rem}.img-tested small{display:block;margin-top:.12rem;color:var(--muted);font-size:.62rem}.img-stat{display:grid;place-items:center;text-align:center;border-left:1px solid var(--line);padding:.45rem}.img-stat strong{font-family:var(--font-heading);font-size:1.45rem;line-height:.95}.img-stat.is-warn strong{color:#e79b3c}.img-main{display:grid;grid-template-columns:1.35fr .65fr;min-height:0}.img-list{min-height:0;overflow:hidden;border-right:1px solid var(--line);display:grid;align-content:start}.img-row{position:relative;display:grid;grid-template-columns:minmax(0,1.25fr) 150px minmax(160px,.75fr);gap:1rem;align-items:center;min-width:0;padding:.48rem .75rem .48rem .95rem;border-bottom:1px solid var(--line);background:#1d2227}.img-row::before{content:"";position:absolute;inset:0 auto 0 0;width:3px}.img-row.is-ok::before{background:#54c77a}.img-row.is-warn::before{background:#e79b3c}.img-row.is-bad::before{background:#e05252}.img-thumb-meta,.img-row-info,.img-row-alt{min-width:0}.img-thumb-meta span{display:block;color:var(--accent);font-size:.56rem;font-weight:900;letter-spacing:.09em}.img-thumb-meta strong{display:block;margin-top:.12rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:.72rem}.img-issue-badges{display:flex;flex-wrap:wrap;gap:.28rem;margin-top:.28rem}.img-issue-badges span{display:inline-flex;align-items:center;width:max-content;padding:.13rem .3rem;border:1px solid rgba(231,155,60,.55);color:#e79b3c;background:rgba(231,155,60,.06);font-size:.48rem;font-weight:900;letter-spacing:.055em;line-height:1.15}.img-row-info b,.img-row-alt b{display:block;font-size:.72rem}.img-row-info small,.img-row-alt small{display:block;margin-top:.12rem;color:var(--muted);font-size:.58rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.img-row-alt.is-ok b{color:#54c77a}.img-row-alt.is-warn b{color:#e79b3c}.img-guide{min-width:0;padding:.85rem 1rem}.img-guide h4{margin:.05rem 0 .65rem;font-size:1.2rem}.img-guide-grid{display:grid;grid-template-columns:1fr 1fr;gap:1px;background:var(--line);border:1px solid var(--line)}.img-guide-grid article{padding:.7rem;background:#171c20}.img-guide-grid strong{display:block;color:var(--accent);font-size:.72rem}.img-guide-grid span{display:block;margin-top:.2rem;color:var(--muted);font-size:.62rem;line-height:1.35}.img-empty{padding:1rem;color:var(--muted);font-size:.75rem}.img-disclaimer{margin:0;color:var(--muted);font-size:.68rem}
@media(max-height:780px) and (min-width:901px){.img-intro h3{font-size:1.8rem}.img-url{height:44px}.img-row{padding:.34rem .65rem .34rem .8rem}.img-guide{padding:.6rem .8rem}.img-guide-grid article{padding:.5rem}.img-disclaimer{font-size:.6rem}}
@media(max-width:900px){.img-tool{height:auto;display:block}.img-intro{grid-template-columns:1fr;gap:1.2rem}.img-placeholder{min-height:40vh;margin-top:1rem}.img-workspace{margin-top:1rem}.img-summary{grid-template-columns:repeat(2,1fr)}.img-tested{grid-column:1/-1}.img-main{grid-template-columns:1fr}.img-list{border-right:0}.img-guide{border-top:1px solid var(--line)}.img-row{grid-template-columns:1fr 110px 140px}}
@media(max-width:560px){.img-url-row{grid-template-columns:1fr}.img-start{width:100%}.img-row{grid-template-columns:1fr}.img-row-info,.img-row-alt{display:flex;justify-content:space-between;gap:.6rem}.img-row-info small,.img-row-alt small{max-width:60%;text-align:right}.img-summary{grid-template-columns:1fr 1fr}}

/* Images V16 — thumbnails + pagination sans ascenseur */
.img-list-shell{min-width:0;min-height:0;display:grid;grid-template-rows:minmax(0,1fr) 34px;border-right:1px solid var(--line);background:#1d2227}
.img-list-shell .img-list{border-right:0;min-height:0;overflow:hidden}
.img-row.has-thumb{grid-template-columns:minmax(0,1.35fr) 132px minmax(145px,.72fr);padding:.42rem .7rem .42rem .95rem}
.img-thumb-meta{display:flex;align-items:center;gap:.65rem}
.img-file{min-width:0;flex:1}
.img-thumb{position:relative;flex:0 0 58px;width:58px;height:42px;border:1px solid var(--line);background:#101418;overflow:hidden}
.img-thumb img{display:block;width:100%;height:100%;object-fit:cover}
.img-thumb span{display:none;position:absolute;inset:0;place-items:center;color:var(--muted);font-size:.48rem;font-weight:900;letter-spacing:.08em}
.img-thumb.is-error img{display:none}.img-thumb.is-error span{display:grid}
.img-pager{height:34px;display:flex;align-items:center;justify-content:flex-end;gap:.5rem;padding:0 .7rem;border-top:1px solid var(--line);background:#171c20}
.img-pager[hidden]{display:none!important}.img-pager span{min-width:42px;text-align:center;color:var(--muted);font-size:.62rem;font-weight:800;letter-spacing:.08em}
.img-page-btn{width:27px;height:24px;display:grid;place-items:center;padding:0;border:1px solid var(--line);background:#101418;color:#fff;font:800 .85rem/1 var(--font-body);cursor:pointer}
.img-page-btn:hover:not(:disabled),.img-page-btn:focus-visible:not(:disabled){border-color:var(--accent);color:var(--accent);outline:0}.img-page-btn:disabled{opacity:.28;cursor:default}
@media(max-height:780px) and (min-width:901px){.img-list-shell{grid-template-rows:minmax(0,1fr) 30px}.img-pager{height:30px}.img-row.has-thumb{padding:.28rem .6rem .28rem .8rem}.img-thumb{flex-basis:48px;width:48px;height:34px}.img-issue-badges{margin-top:.18rem}}
@media(max-width:900px){.img-list-shell{border-right:0;grid-template-rows:auto 38px}.img-pager{height:38px}.img-row.has-thumb{grid-template-columns:minmax(0,1fr) 110px 140px}}
@media(max-width:560px){.img-row.has-thumb{grid-template-columns:1fr}.img-thumb{flex-basis:52px;width:52px;height:38px}}

/* Tools V17 — intro de page condensée */
@media (min-width: 901px) {
  .tools-header {
    min-height: clamp(17rem, 29vw, 21rem);
    padding-top: clamp(6.5rem, 9vw, 7.5rem);
    padding-bottom: clamp(2.2rem, 3.5vw, 3rem);
  }

  .tools-header .page-header-inner {
    max-width: var(--container);
  }

  .tools-header h1 {
    max-width: none;
    margin-bottom: .8rem;
    font-size: clamp(3.2rem, 5.2vw, 5.4rem);
    line-height: .98;
  }

  .tools-header .page-header-lead {
    max-width: 62rem;
    font-size: clamp(1rem, 1.35vw, 1.18rem);
    line-height: 1.5;
  }

  .section-main {
    padding-block: 3.2rem 6rem;
  }

  @media (min-width: 901px) {
    .tools-intro {
        display: grid;
        grid-template-columns: minmax(0, 1.1fr) minmax(440px, 0.9fr);
        grid-template-areas:         "kicker kicker"        "title text";
        align-items: end;
        column-gap: clamp(2rem, 2vw, 3rem);
        row-gap: .8rem;
        max-width: none;
    }
}

  .tools-intro .section-kicker {
    grid-area: kicker;
    margin-bottom: 0;
  }

  .tools-intro h2 {
    grid-area: title;
    margin: 0;
    font-size: clamp(2.6rem, 4vw, 4.2rem);
    line-height: 1;
  }

  .tools-intro .lead {
    grid-area: text;
    max-width: 48rem;
    margin: 0;
    padding-bottom: .18rem;
    font-size: clamp(.98rem, 1.2vw, 1.12rem);
    line-height: 1.55;
  }

  .tools-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 24px;
    margin-top: 3rem;
    padding: 1px;
  }
}

/* Website Fingerprint */
.fp-tool {
  display: grid;
  grid-template-rows: auto minmax(0, 1fr) auto;
  width: min(100%, 1420px);
  height: 100%;
  margin-inline: auto;
}

.fp-intro {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(430px, .82fr);
  gap: clamp(1.5rem, 3vw, 3.5rem);
  align-items: center;
  margin-bottom: .55rem;
}
.fp-intro h3 { margin: .1rem 0 .25rem; font-size: clamp(1.45rem, 2.1vw, 2.25rem); }
.fp-intro p:not(.section-kicker) { margin: 0; max-width: 780px; color: var(--muted); font-size: .8rem; line-height:1.45; }
.fp-url-row { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: .65rem; }
.fp-url { width: 100%; min-width: 0; height: 44px; padding: 0 1rem; color: var(--text); background: #101316; border: 1px solid var(--line); border-radius: 0; font: inherit; }
.fp-url:focus { outline: 1px solid var(--accent); border-color: var(--accent); }
.fp-start { min-width: 120px; }
.fp-start.is-loading { position: relative; padding-right: 2.5rem; cursor: wait; opacity: .75; }
.fp-start.is-loading::after { content:""; position:absolute; right:.85rem; top:50%; width:14px; height:14px; margin-top:-7px; border:2px solid currentColor; border-right-color:transparent; border-radius:50%; animation:wk-spin .7s linear infinite; }
.fp-status { min-height: 1.1em; margin: .25rem 0 0; color: var(--muted); font-size: .72rem; }
.fp-status.is-error { color: #e05252; }
.fp-status.is-loading::after { content:"…"; color: var(--accent); }
.fp-placeholder { display:grid; place-items:center; min-height:46vh; border:1px solid var(--line); background:#12161a; text-align:center; }
.fp-placeholder strong { display:block; color:var(--accent); font-size:clamp(1.05rem,2vw,1.6rem); letter-spacing:.12em; }
.fp-placeholder span { display:block; margin-top:.55rem; color:var(--muted); font-size:.84rem; }
.fp-placeholder[hidden], .fp-workspace[hidden] { display:none !important; }
.fp-workspace { min-height:0; }
.fp-summary { display:grid; grid-template-columns: minmax(250px,1.5fr) repeat(4,minmax(120px,.7fr)); gap:1px; padding:1px; margin-bottom:1px; background:var(--line); }
.fp-tested,.fp-stat { min-width:0; padding:.62rem .8rem; background:#181d21; }
.fp-tested span,.fp-stat span { display:block; color:var(--muted); font-size:.62rem; font-weight:800; letter-spacing:.1em; }
.fp-tested strong { display:block; margin:.18rem 0 .08rem; overflow:hidden; font-size:.92rem; text-overflow:ellipsis; white-space:nowrap; }
.fp-tested small { color:var(--muted); font-size:.62rem; }
.fp-stat strong { display:block; margin:.15rem 0 .06rem; overflow:hidden; color:var(--text); font-family:var(--font-heading); font-size:1.25rem; line-height:1; text-overflow:ellipsis; white-space:nowrap; }
.fp-main { display:grid; grid-template-columns:minmax(300px,.72fr) minmax(0,1.28fr); grid-template-rows:minmax(0,1fr) auto; gap:1px; min-height:0; padding:1px; background:var(--line); }
.fp-theme-card,.fp-tech-card,.fp-detail-card { background:#15191d; }
.fp-theme-card { grid-row:1 / span 2; display:flex; flex-direction:column; justify-content:center; min-width:0; padding:1rem 1.2rem; }
.fp-theme-label { display:block; margin-top:.25rem; color:var(--muted); font-size:.68rem; font-weight:800; letter-spacing:.11em; }
.fp-theme-name { display:block; margin:.28rem 0 .25rem; overflow-wrap:anywhere; color:var(--accent); font-family:var(--font-heading); font-size:clamp(2rem,4vw,4rem); line-height:.9; letter-spacing:-.035em; }
.fp-theme-proof { margin:.18rem 0 .65rem; color:var(--muted); font-size:.68rem; line-height:1.35; }
.fp-theme-meta { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:1px; padding:1px; background:var(--line); }
.fp-theme-meta article { min-width:0; padding:.52rem; background:#181d21; }
.fp-theme-meta span { display:block; color:var(--muted); font-size:.6rem; font-weight:800; letter-spacing:.1em; text-transform:uppercase; }
.fp-theme-meta b { display:block; margin-top:.2rem; overflow:hidden; font-size:.7rem; text-overflow:ellipsis; white-space:nowrap; }
.fp-tech-card { min-height:0; padding:.7rem .85rem; }
.fp-section-head { display:flex; justify-content:space-between; align-items:end; padding-bottom:.4rem; border-bottom:1px solid var(--line); }
.fp-section-head h4,.fp-detail-card h4 { margin:.03rem 0 0; font-size:1rem; }
.fp-chips { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:.38rem; margin-top:.5rem; }
.fp-chip { min-width:0; padding:.48rem .55rem; background:#181d21; border:1px solid var(--line); }
.fp-chip b,.fp-chip small { display:block; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.fp-chip b { font-size:.7rem; }
.fp-chip small { margin-top:.15rem; color:var(--muted); font-size:.56rem; text-transform:uppercase; letter-spacing:.06em; }
.fp-detail-card { display:grid; grid-template-columns:1fr 1fr; gap:1px; padding:1px; background:var(--line); }
.fp-detail-card > div { min-width:0; padding:.55rem .7rem; background:#15191d; }
.fp-mini-list { display:flex; flex-wrap:wrap; gap:.28rem; margin-top:.38rem; max-height:54px; overflow:hidden; }
.fp-mini-list span { max-width:100%; padding:.27rem .38rem; overflow:hidden; color:var(--text); background:#181d21; border:1px solid var(--line); font-size:.65rem; text-overflow:ellipsis; white-space:nowrap; }
.fp-mini-list .is-muted { color:var(--muted); }
.fp-empty { color:var(--muted); font-size:.78rem; }
.fp-disclaimer { margin:.3rem 0 0; color:var(--muted); font-size:.64rem; line-height:1.3; }

@media (min-width:901px) {
  .fp-intro { margin-bottom:.35rem; }
  .fp-summary { margin-bottom:1px; }
  .fp-main { grid-template-columns:minmax(260px,.62fr) minmax(0,1.38fr); }
  .fp-theme-card { padding:.7rem .9rem; justify-content:flex-start; }
  .fp-theme-label { margin-top:.12rem; font-size:.62rem; }
  .fp-theme-name { margin:.18rem 0 .12rem; font-size:clamp(1.7rem,3.2vw,3.1rem); line-height:.92; }
  .fp-theme-proof { margin:.08rem 0 .38rem; font-size:.62rem; line-height:1.25; }
  .fp-theme-meta article { padding:.38rem .45rem; }
  .fp-theme-meta span { font-size:.54rem; }
  .fp-theme-meta b { margin-top:.12rem; font-size:.64rem; }
  .fp-tech-card { padding:.5rem .65rem; }
  .fp-section-head { padding-bottom:.25rem; }
  .fp-section-head h4,.fp-detail-card h4 { font-size:.9rem; }
  .fp-chips { grid-template-columns:repeat(4,minmax(0,1fr)); gap:.28rem; margin-top:.35rem; }
  .fp-chip { padding:.36rem .42rem; }
  .fp-chip b { font-size:.64rem; }
  .fp-chip small { margin-top:.08rem; font-size:.5rem; }
  .fp-detail-card > div { padding:.4rem .55rem; }
  .fp-mini-list { gap:.22rem; margin-top:.25rem; max-height:42px; }
  .fp-mini-list span { padding:.2rem .3rem; font-size:.58rem; }
  .fp-disclaimer { margin:.18rem 0 0; font-size:.58rem; line-height:1.2; }
}

@media (min-width:901px) and (max-height:780px) {
  .fp-intro { gap:1.2rem; margin-bottom:.22rem; }
  .fp-intro h3 { font-size:1.5rem; }
  .fp-intro p:not(.section-kicker) { font-size:.68rem; line-height:1.3; }
  .fp-url { height:40px; }
  .fp-start { min-height:40px; }
  .fp-status { margin-top:.15rem; font-size:.66rem; }
  .fp-tested,.fp-stat { padding:.45rem .6rem; }
  .fp-tested strong { font-size:.82rem; }
  .fp-stat strong { font-size:1.05rem; }
  .fp-theme-card { padding:.55rem .75rem; }
  .fp-theme-name { font-size:clamp(1.55rem,2.8vw,2.65rem); }
  .fp-theme-proof { margin-bottom:.28rem; }
  .fp-tech-card { padding:.42rem .55rem; }
  .fp-chips { grid-template-columns:repeat(4,minmax(0,1fr)); gap:.24rem; margin-top:.28rem; }
  .fp-chip { padding:.3rem .36rem; }
  .fp-detail-card > div { padding:.32rem .45rem; }
  .fp-mini-list { max-height:34px; }
  .fp-disclaimer { margin-top:.12rem; font-size:.54rem; }
}
@media (max-width:900px) {
  .fp-tool { height:auto; }
  .fp-intro { grid-template-columns:1fr; gap:1.2rem; }
  .fp-summary { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .fp-tested { grid-column:1/-1; }
  .fp-main { grid-template-columns:1fr; grid-template-rows:auto; }
  .fp-theme-card { grid-row:auto; }
  .fp-chips { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .fp-detail-card { grid-template-columns:1fr; }
}
@media (max-width:620px) {
  .fp-url-row { grid-template-columns:1fr; }
  .fp-start { width:100%; }
  .fp-summary { grid-template-columns:1fr 1fr; }
  .fp-chips { grid-template-columns:1fr; }
  .fp-theme-meta { grid-template-columns:1fr; }
}

/* SSL / TLS */
.ssl-tool{display:grid;grid-template-rows:auto minmax(0,1fr) auto;width:min(100%,1420px);height:100%;margin-inline:auto}.ssl-intro{display:grid;grid-template-columns:minmax(0,1fr) minmax(430px,.82fr);gap:clamp(1.5rem,3vw,3.5rem);align-items:center;margin-bottom:.45rem}.ssl-intro h3{margin:.1rem 0 .25rem;font-size:clamp(1.45rem,2.1vw,2.25rem)}.ssl-intro p:not(.section-kicker){margin:0;max-width:780px;color:var(--muted);font-size:.8rem;line-height:1.45}.ssl-url-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:.65rem}.ssl-url{width:100%;min-width:0;height:44px;padding:0 1rem;color:var(--text);background:#101316;border:1px solid var(--line);border-radius:0;font:inherit}.ssl-url:focus{outline:1px solid var(--accent);border-color:var(--accent)}.ssl-start{min-width:120px}.ssl-start.is-loading{position:relative;padding-right:2.5rem;cursor:wait;opacity:.75}.ssl-start.is-loading::after{content:"";position:absolute;right:.85rem;top:50%;width:14px;height:14px;margin-top:-7px;border:2px solid currentColor;border-right-color:transparent;border-radius:50%;animation:wk-spin .7s linear infinite}.ssl-status{min-height:1.1em;margin:.25rem 0 0;color:var(--muted);font-size:.72rem}.ssl-status.is-error{color:#e05252}.ssl-status.is-loading::after{content:"…";color:var(--accent)}.ssl-placeholder{display:grid;place-items:center;min-height:46vh;border:1px solid var(--line);background:#12161a;text-align:center}.ssl-placeholder strong{display:block;color:var(--accent);font-size:clamp(1.05rem,2vw,1.6rem);letter-spacing:.12em}.ssl-placeholder span{display:block;margin-top:.55rem;color:var(--muted);font-size:.84rem}.ssl-placeholder[hidden],.ssl-workspace[hidden]{display:none!important}.ssl-summary{display:grid;grid-template-columns:minmax(280px,1.4fr) repeat(2,minmax(180px,.8fr));gap:1px;padding:1px;background:var(--line)}.ssl-tested,.ssl-stat{min-width:0;padding:.7rem .85rem;background:#181d21}.ssl-tested span,.ssl-stat span{display:block;color:var(--muted);font-size:.62rem;font-weight:800;letter-spacing:.1em}.ssl-tested strong,.ssl-stat strong{display:block;margin:.16rem 0 .06rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ssl-tested strong{font-size:.95rem}.ssl-tested small{color:var(--muted);font-size:.62rem}.ssl-stat strong{font-family:var(--font-heading);font-size:1.18rem}.ssl-stat strong.is-ok{color:#46ce7a}.ssl-stat strong.is-warn{color:#f0a33c}.ssl-stat strong.is-bad{color:#e05252}.ssl-main{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(360px,.85fr);gap:1px;min-height:0;padding:1px;background:var(--line)}.ssl-checks{display:grid;grid-template-columns:1fr 1fr;gap:1px;background:var(--line)}.ssl-check{display:flex;justify-content:space-between;gap:1rem;align-items:center;min-width:0;padding:.68rem .78rem;background:#181d21;border-left:3px solid var(--line)}.ssl-check.is-ok{border-left-color:#46ce7a}.ssl-check.is-warn{border-left-color:#f0a33c}.ssl-check.is-bad{border-left-color:#e05252}.ssl-check strong,.ssl-check span,.ssl-check small{display:block}.ssl-check strong{font-size:.74rem}.ssl-check span{margin-top:.16rem;font-weight:800;font-size:.76rem}.ssl-check small{margin-top:.12rem;color:var(--muted);font-size:.6rem;line-height:1.3}.ssl-check>b{flex:0 0 auto;font-size:.58rem;letter-spacing:.08em}.ssl-check.is-ok>b{color:#46ce7a}.ssl-check.is-warn>b{color:#f0a33c}.ssl-check.is-bad>b{color:#e05252}.ssl-side{display:grid;grid-template-rows:auto minmax(0,1fr);gap:1px;background:var(--line)}.ssl-side-block{min-width:0;padding:.72rem .82rem;background:#15191d}.ssl-side-block h4{margin:.08rem 0 .45rem;font-size:1rem}.ssl-detail{display:grid;grid-template-columns:1fr 1fr;gap:1px;padding:1px;background:var(--line)}.ssl-detail article{min-width:0;padding:.48rem .55rem;background:#181d21}.ssl-detail span{display:block;color:var(--muted);font-size:.56rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase}.ssl-detail b{display:block;margin-top:.14rem;overflow:hidden;font-size:.66rem;text-overflow:ellipsis;white-space:nowrap}.ssl-sans{display:flex;flex-wrap:wrap;gap:.28rem;max-height:100px;overflow:hidden}.ssl-sans span{max-width:100%;padding:.28rem .38rem;overflow:hidden;background:#181d21;border:1px solid var(--line);font-size:.64rem;text-overflow:ellipsis;white-space:nowrap}.ssl-sans .is-muted{color:var(--muted)}.ssl-disclaimer{margin:.25rem 0 0;color:var(--muted);font-size:.6rem;line-height:1.25}@media(min-width:901px) and (max-height:780px){.ssl-intro{gap:1.2rem;margin-bottom:.22rem}.ssl-intro h3{font-size:1.5rem}.ssl-intro p:not(.section-kicker){font-size:.68rem;line-height:1.3}.ssl-url{height:40px}.ssl-start{min-height:40px}.ssl-tested,.ssl-stat{padding:.5rem .65rem}.ssl-check{padding:.52rem .62rem}.ssl-check small{font-size:.55rem}.ssl-side-block{padding:.52rem .62rem}.ssl-detail article{padding:.38rem .44rem}.ssl-sans{max-height:70px}.ssl-disclaimer{font-size:.54rem}}@media(max-width:900px){.ssl-tool{height:auto}.ssl-intro{grid-template-columns:1fr;gap:1.2rem}.ssl-summary{grid-template-columns:1fr 1fr}.ssl-tested{grid-column:1/-1}.ssl-main{grid-template-columns:1fr}.ssl-checks{grid-template-columns:1fr}}@media(max-width:620px){.ssl-url-row{grid-template-columns:1fr}.ssl-start{width:100%}.ssl-summary{grid-template-columns:1fr}.ssl-tested{grid-column:auto}.ssl-detail{grid-template-columns:1fr}}


/* Email Security */
.email-tool{display:grid;grid-template-rows:auto minmax(0,1fr) auto;width:min(100%,1420px);height:100%;margin-inline:auto}
.email-intro{display:grid;grid-template-columns:minmax(0,1fr) minmax(430px,.82fr);gap:clamp(1.5rem,3vw,3.5rem);align-items:center;margin-bottom:.45rem}
.email-intro h3{margin:.1rem 0 .25rem;font-size:clamp(1.45rem,2.1vw,2.25rem)}
.email-intro p:not(.section-kicker){margin:0;max-width:780px;color:var(--muted);font-size:.8rem;line-height:1.45}
.email-url-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:.65rem}
.email-url{width:100%;min-width:0;height:44px;padding:0 1rem;color:var(--text);background:#101316;border:1px solid var(--line);border-radius:0;font:inherit}
.email-url:focus{outline:1px solid var(--accent);border-color:var(--accent)}
.email-start{min-width:120px}.email-start.is-loading{position:relative;padding-right:2.5rem;cursor:wait;opacity:.75}
.email-start.is-loading::after{content:"";position:absolute;right:.85rem;top:50%;width:14px;height:14px;margin-top:-7px;border:2px solid currentColor;border-right-color:transparent;border-radius:50%;animation:wk-spin .7s linear infinite}
.email-status{min-height:1.1em;margin:.25rem 0 0;color:var(--muted);font-size:.72rem}.email-status.is-error{color:#e05252}.email-status.is-loading::after{content:"…";color:var(--accent)}
.email-placeholder{display:grid;place-items:center;min-height:46vh;border:1px solid var(--line);background:#12161a;text-align:center}
.email-placeholder strong{display:block;color:var(--accent);font-size:clamp(1.05rem,2vw,1.6rem);letter-spacing:.12em}.email-placeholder span{display:block;margin-top:.55rem;color:var(--muted);font-size:.84rem}
.email-placeholder[hidden],.email-workspace[hidden]{display:none!important}
.email-summary{display:grid;grid-template-columns:minmax(280px,1.45fr) repeat(3,minmax(115px,.55fr));gap:1px;padding:1px;background:var(--line)}
.email-tested,.email-stat{min-width:0;padding:.68rem .8rem;background:#181d21}
.email-tested span,.email-stat span{display:block;color:var(--muted);font-size:.6rem;font-weight:800;letter-spacing:.1em}.email-tested strong{display:block;margin:.16rem 0 .06rem;overflow:hidden;font-size:.94rem;text-overflow:ellipsis;white-space:nowrap}.email-tested small{color:var(--muted);font-size:.62rem}
.email-stat strong{display:block;margin:.1rem 0 0;font-family:var(--font-heading);font-size:1.7rem;line-height:1}.email-stat strong.is-ok{color:#46ce7a}.email-stat strong.is-warn{color:#f0a33c}.email-stat strong.is-bad{color:#e05252}
.email-main{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(420px,.95fr);gap:1px;min-height:0;padding:1px;background:var(--line)}
.email-checks{display:grid;grid-template-columns:1fr 1fr;grid-template-rows:repeat(2,minmax(0,1fr));gap:1px;background:var(--line)}
.email-check{display:flex;justify-content:space-between;align-items:center;gap:.9rem;min-width:0;padding:.75rem .82rem;background:#181d21;border-left:3px solid var(--line)}
.email-check.is-ok{border-left-color:#46ce7a}.email-check.is-warn{border-left-color:#f0a33c}.email-check.is-bad{border-left-color:#e05252}
.email-check strong,.email-check span,.email-check small{display:block}.email-check strong{font-size:.75rem}.email-check span{margin-top:.16rem;font-weight:800;font-size:.78rem}.email-check small{margin-top:.14rem;color:var(--muted);font-size:.61rem;line-height:1.3}
.email-check>b{flex:0 0 auto;font-size:.58rem;letter-spacing:.08em}.email-check.is-ok>b{color:#46ce7a}.email-check.is-warn>b{color:#f0a33c}.email-check.is-bad>b{color:#e05252}
.email-side{display:grid;grid-template-rows:auto auto minmax(0,1fr);gap:1px;background:var(--line);min-height:0}.email-side-block{min-width:0;padding:.62rem .72rem;background:#15191d}.email-side-block h4{margin:.06rem 0 .4rem;font-size:.95rem}
.email-records{display:grid;grid-template-columns:1fr 1fr;gap:1px;padding:1px;background:var(--line)}.email-records article{min-width:0;padding:.46rem .52rem;background:#181d21}.email-records span{display:block;margin-bottom:.2rem;color:var(--muted);font-size:.55rem;font-weight:800;letter-spacing:.1em}
.email-records code{display:block;overflow:hidden;color:var(--text);font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:.59rem;line-height:1.35;text-overflow:ellipsis;white-space:nowrap}
.email-mx-list,.email-dkim-list{display:flex;flex-wrap:wrap;gap:.3rem;max-height:70px;overflow:hidden}.email-mx-list span,.email-dkim-list span{max-width:100%;padding:.28rem .38rem;overflow:hidden;background:#181d21;border:1px solid var(--line);font-size:.62rem;text-overflow:ellipsis;white-space:nowrap}.email-mx-list .is-muted,.email-dkim-list .is-muted{color:var(--muted)}
.email-disclaimer{margin:.23rem 0 0;color:var(--muted);font-size:.59rem;line-height:1.25}
@media(min-width:901px) and (max-height:780px){.email-intro{gap:1.2rem;margin-bottom:.2rem}.email-intro h3{font-size:1.48rem}.email-intro p:not(.section-kicker){font-size:.68rem;line-height:1.3}.email-url{height:40px}.email-start{min-height:40px}.email-tested,.email-stat{padding:.48rem .62rem}.email-stat strong{font-size:1.35rem}.email-check{padding:.5rem .6rem}.email-check small{font-size:.55rem}.email-side-block{padding:.45rem .55rem}.email-records article{padding:.34rem .4rem}.email-mx-list,.email-dkim-list{max-height:48px}.email-disclaimer{font-size:.53rem}}
@media(max-width:900px){.email-tool{height:auto}.email-intro{grid-template-columns:1fr;gap:1.2rem}.email-summary{grid-template-columns:repeat(3,1fr)}.email-tested{grid-column:1/-1}.email-main{grid-template-columns:1fr}.email-checks{grid-template-columns:1fr}.email-side{grid-template-rows:auto}.email-records{grid-template-columns:1fr}}
@media(max-width:620px){.email-url-row{grid-template-columns:1fr}.email-start{width:100%}.email-summary{grid-template-columns:1fr 1fr}.email-tested{grid-column:1/-1}}

.tools-intro-title{
  display:flex;
  align-items:center;
  gap:clamp(.75rem,1.2vw,1.15rem);
}
.tools-intro-gear{
  flex:0 0 auto;
  width:clamp(40px,3.4vw,58px);
  height:clamp(40px,3.4vw,58px);
  color:var(--accent);
}
@media(max-width:900px){
  .tools-intro-title{align-items:flex-start}
  .tools-intro-gear{width:38px;height:38px;margin-top:.12em}
}
