  :root{
    --bg:#0f0f16;
    --grid:#1d1d28;
    --ink:#ffffff;
    --dim:#a6a6b4;
    --faint:#8a8a96;
    --pink:#ff1496;
    --pink-deep:#ff5cb8;
    --pink-soft:#1a0c16;
    --pink-line:#2e1626;
    --panel:#171720;
    --glow:0 0 0 4px rgba(255,20,150,.24);
    --glow-top:rgba(255,20,150,.13);
    --on-pink:#000000;
  }
  html.light{
    --bg:#f5f5f8;
    --grid:#dddde8;
    --ink:#16161e;
    --dim:#52526a;
    --faint:#64647c;
    --pink:#cc0066;
    --pink-deep:#990050;
    --pink-soft:#fef0f7;
    --pink-line:#f0c8e0;
    --panel:#ffffff;
    --glow:0 0 0 4px rgba(204,0,102,.18);
    --glow-top:rgba(204,0,102,.07);
    --on-pink:#ffffff;
  }
  html.grey{
    --bg:#191108;
    --grid:#2e2208;
    --ink:#f0e0c0;
    --dim:#a08060;
    --faint:#7a6044;
    --pink:#ff1496;
    --pink-deep:#ff5cb8;
    --pink-soft:#261608;
    --pink-line:#3e2808;
    --panel:#231908;
    --glow:0 0 0 4px rgba(255,20,150,.24);
    --glow-top:rgba(255,20,150,.09);
    --on-pink:#000000;
  }

  *{box-sizing:border-box;margin:0;padding:0}
  html,body{height:100%}
  body{
    background:var(--bg);
    color:var(--ink);
    font-family:"JetBrains Mono",monospace;
    min-height:100vh;
    padding:clamp(16px,4vw,48px);
    background-image:
      linear-gradient(var(--grid) 1px,transparent 1px),
      linear-gradient(90deg,var(--grid) 1px,transparent 1px);
    background-size:46px 46px;background-position:center;
    position:relative;
    transition:background-color .25s,color .25s;
  }
  body::before{content:"";position:fixed;inset:0;pointer-events:none;
    background:radial-gradient(ellipse 80% 55% at 50% -8%,var(--glow-top),transparent 60%);}
  .wrap{max-width:1080px;margin:0 auto;position:relative}

  header{display:flex;align-items:flex-end;justify-content:space-between;gap:20px;flex-wrap:wrap;margin-bottom:28px;border-bottom:3px solid var(--pink);padding-bottom:18px}
  h1{font-family:"Archivo",sans-serif;font-weight:900;font-size:clamp(28px,6.4vw,56px);line-height:.88;letter-spacing:-.02em;text-transform:uppercase;cursor:pointer}
  #brand{display:inline-flex;align-items:center;gap:.3em}
  #brand .orb{height:.92em;width:.92em;flex:none;filter:drop-shadow(0 0 6px rgba(255,20,150,.55))}
  .header-right{display:flex;flex-direction:column;align-items:flex-end;gap:10px}
  .tag{font-size:11px;letter-spacing:.26em;text-transform:uppercase;color:var(--dim);text-align:right}
  .tag b{color:var(--pink-deep);font-weight:700}
  .theme-btn{
    font-family:"JetBrains Mono",monospace;font-size:10px;font-weight:700;letter-spacing:.22em;
    text-transform:uppercase;background:transparent;border:1.5px solid var(--pink-line);
    color:var(--dim);padding:5px 12px;cursor:pointer;transition:border-color .15s,color .15s,background .15s;
    white-space:nowrap;
  }
  .theme-btn:hover{border-color:var(--pink);color:var(--pink);background:var(--pink-soft)}

  .inputrow{display:flex;gap:10px;flex-wrap:wrap;align-items:stretch}
  .field{flex:1;min-width:240px;position:relative}
  .field label{position:absolute;top:-9px;left:14px;background:var(--bg);padding:0 8px;font-size:10px;letter-spacing:.22em;text-transform:uppercase;color:var(--pink-deep);font-weight:700}
  input{width:100%;background:var(--panel);border:2px solid var(--pink-line);color:var(--ink);
    font-family:"JetBrains Mono",monospace;font-size:18px;font-weight:500;padding:17px 16px;outline:none;letter-spacing:.02em;transition:.16s}
  input:focus{border-color:var(--pink);box-shadow:var(--glow)}
  input::placeholder{color:var(--faint)}
  button.main{background:var(--pink);border:none;color:#fff;font-family:"Archivo",sans-serif;font-weight:900;font-size:15px;letter-spacing:.12em;text-transform:uppercase;padding:0 32px;cursor:pointer;transition:.14s;white-space:nowrap}
  button.main:hover{background:var(--pink-deep)}
  button.main:active{transform:translateY(2px)}
  button.main:disabled{opacity:.55;cursor:not-allowed;transform:none}
  .history-drop{position:absolute;top:calc(100% + 3px);left:0;right:0;background:var(--panel);border:1.5px solid var(--pink-line);z-index:30;display:none;max-height:240px;overflow-y:auto}
  .history-drop.open{display:block}
  .history-item{padding:10px 16px;cursor:pointer;font-size:14px;color:var(--dim);border-bottom:1px solid var(--pink-line);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .history-item:last-of-type{border-bottom:none}
  .history-item:hover{background:var(--pink-soft);color:var(--pink-deep)}
  .history-clear{padding:6px 16px;font-size:10px;letter-spacing:.18em;text-transform:uppercase;color:var(--faint);cursor:pointer;text-align:right;border-top:1px solid var(--pink-line)}
  .history-clear:hover{color:var(--pink)}

  .my-ip-bar{display:flex;gap:10px;flex-wrap:wrap;align-items:center;margin-top:16px;padding:10px 14px;border:1.5px solid var(--pink-line);background:var(--panel)}
  .my-ip-label{font-size:10px;font-weight:700;letter-spacing:.22em;text-transform:uppercase;color:var(--dim);white-space:nowrap}
  .my-ip-meta{font-size:12px;color:var(--dim);letter-spacing:.04em}
  .examples{display:flex;gap:8px;flex-wrap:wrap;margin-top:14px;align-items:center}
  .examples span{font-size:11px;color:var(--dim);letter-spacing:.14em;font-weight:700}
  .chip{font-family:"JetBrains Mono",monospace;font-size:12px;background:var(--panel);color:var(--pink-deep);border:1.5px solid var(--pink-line);padding:6px 11px;cursor:pointer;transition:.14s}
  .chip:hover{border-color:var(--pink);background:var(--pink-soft)}

  .err{margin-top:18px;border-left:4px solid var(--pink);background:var(--pink-soft);padding:13px 18px;color:var(--pink-deep);font-size:14px;display:none}
  .err.show{display:block;animation:pop .25s ease}
  .err b{color:var(--ink)}

  .results{margin-top:30px;display:none}
  .results.show{display:block}
  .verdict{display:flex;align-items:center;gap:14px;flex-wrap:wrap;margin-bottom:22px}
  .verdict .big{font-family:"Archivo",sans-serif;font-weight:900;font-size:clamp(22px,5vw,40px);letter-spacing:-.01em}
  .badge{font-size:11px;letter-spacing:.14em;text-transform:uppercase;padding:6px 12px;font-weight:700}
  .copyall{margin-left:auto;background:var(--panel);border:2px solid var(--pink);color:var(--pink-deep);font-family:"JetBrains Mono",monospace;font-weight:700;font-size:12px;letter-spacing:.08em;padding:8px 14px;cursor:pointer;transition:.15s}
  .copyall:hover{background:var(--pink-soft)}
  .copyall.done{color:#fff;background:var(--pink);border-color:var(--pink)}

  /* plain-English summary line (between verdict and grid) */
  .summary{font-family:"Archivo",sans-serif;font-size:15px;line-height:1.55;color:var(--ink);
    background:var(--pink-soft);border-left:4px solid var(--pink);padding:12px 16px;margin:0 0 22px}
  .summary b{color:var(--pink-deep);font-weight:700}

  /* collapsible "advanced representations" block */
  .adv{grid-column:1/-1;border:1.5px solid var(--pink-line);background:var(--panel)}
  .adv>summary{cursor:pointer;list-style:none;padding:11px 16px;font-size:10px;letter-spacing:.18em;
    text-transform:uppercase;color:var(--pink-deep);font-weight:700;user-select:none;
    display:flex;align-items:center;gap:9px}
  .adv>summary::-webkit-details-marker{display:none}
  .adv>summary::before{content:"\25B8";font-size:12px;transition:transform .15s}
  .adv[open]>summary::before{transform:rotate(90deg)}
  .adv>summary:hover{color:var(--pink)}
  .adv .grid{padding:0 14px 14px}
  .adv .cell{opacity:1;transform:none;animation:none}   /* static: no reveal animation when expanded */

  .grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(248px,1fr));gap:12px}
  .cell{background:var(--panel);border:1.5px solid var(--pink-line);padding:15px 16px;opacity:0;transform:translateY(8px);animation:rise .4s ease forwards}
  .cell:hover{border-color:var(--pink)}
  .cell .k{font-size:10px;letter-spacing:.18em;text-transform:uppercase;color:var(--pink-deep);font-weight:700;margin-bottom:7px;display:flex;justify-content:space-between;gap:8px}
  .cell .v{font-size:17px;font-weight:500;color:var(--ink);word-break:break-all;line-height:1.35}
  .cell .v.accent{color:var(--pink-deep);font-weight:700}
  .cell .sub{font-size:13px;color:var(--dim);margin-top:4px}
  .copy{cursor:pointer;color:var(--faint);font-size:10px;letter-spacing:.08em;transition:.15s;white-space:nowrap}
  .copy:hover{color:var(--pink)}
  .copy.done{color:var(--pink-deep)}
  .link,.dlink{color:var(--pink-deep);cursor:pointer;border-bottom:1px dashed var(--pink-line)}
  .link:hover,.dlink:hover{color:var(--pink);border-bottom-color:var(--pink)}
  .dnsgroup{margin:3px 0;line-height:1.45}
  .dnshost{display:inline-block;font-size:10px;letter-spacing:.03em;color:var(--pink-deep);background:var(--pink-soft);border:1px solid var(--pink-line);padding:1px 6px;margin-right:7px;white-space:nowrap}
  #dnsTXT{grid-column:1/-1}
  #dnsTXT .v{max-height:260px;overflow:auto}
  #emailDKIM{grid-column:1/-1}
  #emailDKIM .v{max-height:300px;overflow:auto}
  .dkimgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(330px,1fr));gap:8px;margin-top:2px}
  .dkimgrid .dnsgroup{margin:0}
  .dkimgrid .txtrec{margin:4px 0 0;font-size:12.5px}
  .txtrec{font-size:14px;line-height:1.55;background:rgba(255,20,150,.06);border-left:3px solid var(--pink);padding:7px 11px;margin:5px 0;word-break:break-word;white-space:pre-wrap}
  .txtrec:nth-child(even){background:rgba(255,20,150,.13)}
  .stat-bad{color:#ff4d4f;font-weight:700}
  html.light .stat-bad{color:#d40000}
  .stat-warn{color:#e6a700;font-weight:600}
  html.light .stat-warn{color:#9a6b00}
  .stat-good{color:#35c46a;font-weight:700}
  html.light .stat-good{color:#0b8a3d}

  .section-label{grid-column:1/-1;font-size:10px;letter-spacing:.28em;text-transform:uppercase;font-weight:700;margin-top:14px;padding:8px 12px}
  .section-label:first-child{margin-top:0}

  .binwrap{grid-column:1/-1;background:var(--panel);border:1.5px solid var(--pink-line);padding:16px}
  .binwrap .k{font-size:10px;letter-spacing:.2em;text-transform:uppercase;color:var(--pink-deep);font-weight:700;margin-bottom:12px}
  .bin{font-size:clamp(11px,2.4vw,15px);letter-spacing:.04em;line-height:1.9;word-break:break-all}
  .bin .net{color:var(--on-pink);background:var(--pink);padding:1px 1px;font-weight:700}
  .bin .host{color:var(--ink);background:var(--pink-soft);padding:1px 1px}
  .bin .dot{color:var(--faint);padding:0 3px}
  .legend{display:flex;gap:18px;margin-top:12px;font-size:11px;color:var(--dim);flex-wrap:wrap}
  .legend i{display:inline-block;width:11px;height:11px;margin-right:6px;vertical-align:-1px}
  .legend i.n{background:var(--pink)} .legend i.h{background:var(--pink-soft);border:1px solid var(--pink-line)}

  footer{margin-top:34px;font-size:11px;color:var(--dim);letter-spacing:.06em;line-height:1.7;border-top:1.5px solid var(--pink-line);padding-top:16px}
  footer b{color:var(--pink-deep)}
  footer .legal{margin-top:14px;color:var(--faint);line-height:1.7}
  footer .contact{margin-top:14px}
  footer .contact a{color:var(--pink-deep);text-decoration:none;border-bottom:1px solid var(--pink-line)}
  footer .contact a:hover{color:var(--pink)}
  footer .ver{margin-top:14px;letter-spacing:.1em;text-transform:uppercase;font-size:10px}
  footer .ver a{color:var(--pink-deep);text-decoration:none;border-bottom:1px solid var(--pink-line)}
  footer .ver a:hover{color:var(--pink)}

  .prop-ok{color:#27ae60}.prop-diff{color:#e67e22}.prop-err{color:var(--faint)}
  .prefix-list{font-size:13px;line-height:1.8;word-break:break-all}
  .tls-ok{color:#27ae60}.tls-warn{color:#e67e22}.tls-bad{color:#e74c3c}

  /* ── subnet planner ─────────────────────────────────────── */
  .plan-bar-wrap{margin:0 0 16px}
  .plan-bar{width:100%;height:40px;display:block;border-radius:3px;overflow:hidden}
  .psa{fill:var(--pink)}
  .psfa{fill:var(--panel)}
  .psfb{fill:var(--grid)}
  .psl{font-size:11px;font-family:"Archivo",sans-serif;font-weight:700;fill:#fff;text-anchor:middle;pointer-events:none}
  .psl-dim{fill:var(--dim);font-weight:400}
  .plan-bar-labels{display:flex;justify-content:space-between;font-size:10px;letter-spacing:.12em;color:var(--dim);margin-top:5px;font-family:"Archivo",sans-serif}
  .plan-form{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin-bottom:18px;padding:14px 16px;background:var(--panel);border:1.5px solid var(--pink-line)}
  .plan-form input{background:var(--bg);border:1.5px solid var(--pink-line);color:var(--ink);padding:8px 12px;font-size:13px;font-family:"Archivo",sans-serif;width:auto;min-width:0}
  .plan-form input:focus{outline:none;border-color:var(--pink);box-shadow:var(--glow)}
  .plan-form input::placeholder{color:var(--faint)}
  #planPrefix{width:130px}
  #planName{width:160px}
  .plan-add-btn{background:var(--pink);border:none;color:var(--on-pink,#000);font-family:"Archivo",sans-serif;font-weight:900;font-size:12px;letter-spacing:.14em;text-transform:uppercase;padding:9px 22px;cursor:pointer;transition:.14s;white-space:nowrap}
  .plan-add-btn:hover{background:var(--pink-deep)}
  .plan-add-btn:active{transform:translateY(1px)}
  .plan-hint{font-size:11px;letter-spacing:.1em;color:var(--dim);font-family:"Archivo",sans-serif}
  .plan-remove{background:none;border:none;color:var(--faint);font-size:12px;cursor:pointer;padding:0 0 0 6px;font-weight:700;transition:.12s;line-height:1;font-family:inherit}
  .plan-remove:hover{color:var(--pink)}
  @keyframes rise{to{opacity:1;transform:none}}
  @keyframes pop{from{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:none}}

/* utility classes (externalized from inline styles) */
.notice-gap{margin:0 0 18px}
.muted{color:var(--dim)}
.is-hidden{display:none}
