:root{
  --bg:#0f172a; --bg2:#182a5a;
  --card:rgba(15,23,42,.32);
  --text:#e5e7eb; --muted:#a3b1d1;
  --primary:#0ea5e9; --primary2:#0284c7;
  --border:rgba(255,255,255,.10);
}
*{box-sizing:border-box}
html,body{min-height:100%}
body{
  margin:0; font-family:Inter,system-ui,Segoe UI,Roboto,Arial,sans-serif;
  color:var(--text);
  background:
    radial-gradient(1200px 600px at 50% -10%, rgba(14,165,233,.18), transparent 60%),
    linear-gradient(180deg, var(--bg), var(--bg2));
  background-attachment:fixed;
  display:flex; flex-direction:column;
}

/* hero */
.hero{padding:44px 16px 18px; text-align:center}
.logo{width:90px; filter:drop-shadow(0 8px 18px rgba(0,0,0,.25)); margin-bottom:6px}
.brand{letter-spacing:.22em; font-weight:600; color:#7aa7d6}

/* titre animé */
.title{
  margin:.45rem 0 .8rem; line-height:1.1; font-weight:850; letter-spacing:.01em;
  font-size:3.3rem; position:relative; display:flex; gap:.35ch; justify-content:center;
  -webkit-font-smoothing:antialiased;
}
.title .w{
  background: linear-gradient(120deg,#e6f4ff 0%, #bfe7ff 25%, #7dd3fc 50%, #93c5fd 75%, #c7d2fe 100%);
  -webkit-background-clip:text; -webkit-text-fill-color:transparent;
  display:inline-block; will-change:transform,filter;
}
.title .can{animation:updown 4.2s ease-in-out infinite}
.title .i{animation:updown 4.2s ease-in-out infinite .35s}
.title .trust{animation:wizz 5.6s ease-in-out infinite .8s}
.title::after{
  content:""; position:absolute; left:50%; top:62%; transform:translate(-50%,-50%);
  width:64%; height:58%; filter:blur(24px);
  background:radial-gradient(circle at 50% 50%, rgba(125,211,252,.22), transparent 60%);
  pointer-events:none;
}
@keyframes updown{
  0%,100%{transform:translateY(0)}
  20%{transform:translateY(-6px)}
  40%{transform:translateY(0)}
  60%{transform:translateY(-4px)}
  80%{transform:translateY(0)}
}
@keyframes wizz{
  0%,100%{transform:translateY(0) skewX(0deg); filter:brightness(1)}
  18%{transform:translateY(-5px) skewX(1.4deg)}
  36%{transform:translateY(0) skewX(0deg); filter:brightness(1.05)}
  54%{transform:translateY(-3px) skewX(-1deg)}
  72%{transform:translateY(0) skewX(0deg)}
}
@media (prefers-reduced-motion:reduce){
  .title .w{animation:none}
}

.subtitle{color:var(--muted)}

/* nav pills */
.pillbar{display:flex; justify-content:center; gap:10px; padding:16px}
.pill{background:transparent; color:var(--text); border:1px solid #2a3d74; padding:8px 14px; border-radius:999px; cursor:pointer; transition:.18s}
.pill:hover{border-color:#4c6edb; box-shadow:0 0 0 3px rgba(78,118,255,.15)}
.pill.active{background:var(--primary); border-color:var(--primary); color:#fff}

/* layout */
main{width:100%; max-width:980px; margin:0 auto; padding:8px 16px 40px; flex:1}
.view.hidden{display:none}
.hide{display:none}
.card{
  background:var(--card); border:1px solid var(--border);
  border-radius:16px; padding:18px; margin:14px 0; box-shadow:0 10px 30px rgba(0,0,0,.22);
  overflow:visible; /* tooltips */
}
.card.tight{padding:16px}
h2{margin:0 0 12px}

/* rows & forms */
.row{display:flex; gap:10px; align-items:center; flex-wrap:wrap}
.btn-row{display:flex; gap:10px; align-items:center; margin-top:8px; flex-wrap:wrap}
.grow{flex:1 1 260px; min-width:220px}
.btn-group{display:flex; gap:8px; flex-wrap:wrap}
.form-vertical{display:flex; flex-direction:column; gap:14px}
.form-item{margin-bottom:2px}
.form-item label{display:block; margin-bottom:6px}
.hint{color:var(--muted); font-size:.9rem}

/* checkbox à droite du libellé */
label.check{display:inline-flex; align-items:center; gap:8px; white-space:nowrap}
label.check input[type=checkbox]{width:16px; height:16px; margin:0}

/* inputs */
input,select,button{border:none; border-radius:10px; padding:10px 12px; font-size:0.98rem}
input{background:rgba(255,255,255,.10); color:var(--text); outline:none; width:100%}
input::placeholder{color:#a9b6d6}
button{background:var(--primary); color:#fff; cursor:pointer; transition:.18s; white-space:nowrap}
button:hover{background:var(--primary2)}
button.ghost-light{background:rgba(255,255,255,.06); color:var(--text); border:1px solid var(--border)}
button.ghost-light:hover{border-color:#4c6edb}

/* selects avec flèche ▼ */
.select{
  appearance:none; -webkit-appearance:none; -moz-appearance:none;
  background:rgba(255,255,255,.08);
  color:var(--text); border:1px solid var(--border); border-radius:10px;
  padding-right:34px;
  background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='18' height='18' viewBox='0 0 24 24' fill='none' stroke='%23a3b1d1' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><polyline points='6 9 12 15 18 9'/></svg>");
  background-repeat:no-repeat; background-position:right 10px center;
}
.select-sm{padding:6px 36px 6px 10px; font-size:.94rem; border-radius:8px}
option{color:#111}

/* help + output */
.help{margin:8px 0 2px; color:var(--muted); font-size:.95rem}
.out{margin-top:12px}
.kv{display:grid; grid-template-columns:220px 1fr; gap:8px; align-items:start}
.kv>div{word-break:break-word; overflow-wrap:anywhere}
.mono{font-family:ui-monospace,SFMono-Regular,Menlo,monospace; white-space:pre-wrap; overflow-wrap:anywhere}

/* accordions */
.accordion{width:100%; text-align:left; margin:10px 0; padding:12px 14px; background:rgba(255,255,255,.06); color:var(--text); border:1px solid var(--border); border-radius:12px}
.accordion.sm{padding:8px 12px; font-size:.95rem}
.accordion::after{content:"▼"; float:right; opacity:.7}
.accordion.active::after{content:"▲"}
.accordion-panel{overflow:hidden; max-height:0; transition:max-height .28s ease}
.accordion-panel.open{max-height:10000px; overflow:visible}

/* tooltips */
.hint-hover{position:relative; cursor:help; padding-right:4px; border-bottom:1px dotted rgba(255,255,255,.25)}
.hint-hover::after{
  content:attr(data-tip);
  position:absolute; left:0; bottom:145%;
  background:#0b2545; color:#fff; padding:8px 10px; border-radius:8px;
  width:320px; max-width:70vw; line-height:1.3; font-size:.9rem;
  box-shadow:0 10px 30px rgba(0,0,0,.35); opacity:0; transform:translateY(4px);
  transition:opacity .12s ease, transform .12s ease; z-index:50; pointer-events:none;
}
.hint-hover:hover::after{opacity:1; transform:translateY(0)}

/* toast */
.toast{position:fixed; left:50%; bottom:24px; transform:translateX(-50%); background:#111; color:#fff; padding:10px 14px; border-radius:10px; box-shadow:0 10px 30px rgba(0,0,0,.35); opacity:0; pointer-events:none; transition:opacity .2s ease}
.toast.show{opacity:1}

/* footer */
footer{text-align:center; padding:18px; color:var(--muted)}
footer .ft{margin-bottom:6px}
footer .ft a{color:#e5e7eb; text-decoration:none; opacity:.9; margin:0 6px}
footer .ft a:hover{text-decoration:underline}

@media(max-width:640px){
  .kv{grid-template-columns:1fr}
  .title{font-size:2.5rem}
}
a {
    color: #ffffff59;
}
input#dkim-selector {
    margin-top: 6px;
}
