* { margin:0; padding:0; box-sizing:border-box; }
html,body { min-height:100%; }
body {
  font-family:'Inter',-apple-system,BlinkMacSystemFont,sans-serif;
  background:#0a0a0c; color:#e0e0e0;
  background-image:
    radial-gradient(ellipse 600px 400px at 10% 20%,rgba(74,108,247,.10),transparent),
    radial-gradient(ellipse 500px 500px at 85% 15%,rgba(168,85,247,.07),transparent);
  min-height:100vh;
  padding:0 0 4rem;
}
::-webkit-scrollbar{width:6px}
::-webkit-scrollbar-track{background:transparent}
::-webkit-scrollbar-thumb{background:rgba(255,255,255,.1);border-radius:3px}

/* === HEADER avec rates centrés === */
header {
  display:grid;grid-template-columns:1fr auto 1fr;align-items:center;
  padding:.6rem 1.4rem;border-bottom:1px solid rgba(255,255,255,.06);
  background:rgba(10,10,12,.85);backdrop-filter:blur(12px);
  position:sticky;top:0;z-index:10;
}
.h-side{display:flex;align-items:center}
.h-left{justify-content:flex-start}
.h-right{justify-content:flex-end}
.brand-logo{height:32px;width:auto}

.h-center{
  display:flex;align-items:center;gap:1.1rem;
  padding:.4rem 1rem;border-radius:8px;
  background:rgba(255,255,255,.03);border:1px solid rgba(255,255,255,.07);
  font-variant-numeric:tabular-nums;
}
.rate-pair{display:flex;align-items:center;gap:.4rem;font-size:.88rem}
.rate-k{color:#777;font-weight:600}
.rate-eq{color:#444}
.rate-v{
  color:#fff;font-weight:800;
  background:linear-gradient(135deg,#7d97ff,#c084fc);
  -webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;
}
.rate-c{color:#888;font-weight:700;font-size:.78rem;letter-spacing:.04em}
.rate-sep{width:1px;height:18px;background:rgba(255,255,255,.1)}

.status{
  width:14px;height:14px;border-radius:50%;
  background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.08);
  display:flex;align-items:center;justify-content:center;
}
.status-dot{width:7px;height:7px;border-radius:50%;background:#444}
.status.on .status-dot{background:#50c878;box-shadow:0 0 6px rgba(80,200,120,.5)}
.status.off .status-dot{background:#e74c3c}
.status.busy .status-dot{background:#f5a623;animation:pulse 1s infinite}
@keyframes pulse{0%,100%{opacity:1}50%{opacity:.3}}

/* === MAIN === */
main {
  max-width:760px;margin:0 auto;padding:2rem 1.2rem 0;
  display:flex;flex-direction:column;gap:1.1rem;
}

/* === STEP === */
.step{
  display:flex;align-items:flex-start;gap:1rem;
  padding:1.1rem 1.3rem;border-radius:12px;
  background:rgba(255,255,255,.025);border:1px solid rgba(255,255,255,.07);
  transition:border-color .15s;
}
.step-num{
  flex-shrink:0;width:28px;height:28px;border-radius:50%;
  background:rgba(74,108,247,.15);border:1px solid rgba(74,108,247,.3);
  color:#7d97ff;font-weight:800;font-size:.85rem;
  display:flex;align-items:center;justify-content:center;
  font-variant-numeric:tabular-nums;
  margin-top:.1rem;
}
.step-body{flex:1;display:flex;flex-direction:column;gap:.7rem;min-width:0}
.step-label{
  font-size:.7rem;font-weight:700;color:#888;
  text-transform:uppercase;letter-spacing:.06em;
}

/* === TOGGLE BUTTONS === */
.toggle-group{
  display:grid;gap:.5rem;
  grid-template-columns:repeat(auto-fit,minmax(160px,1fr));
}
.toggle-btn{
  display:flex;flex-direction:column;align-items:flex-start;gap:.2rem;
  padding:.65rem .85rem;border-radius:9px;
  background:rgba(255,255,255,.03);border:1px solid rgba(255,255,255,.08);
  color:#aaa;font-family:inherit;font-size:.88rem;font-weight:700;
  cursor:pointer;transition:all .15s;text-align:left;
}
.toggle-btn:hover{color:#fff;border-color:rgba(255,255,255,.18);background:rgba(255,255,255,.06)}
.toggle-btn.active{
  color:#fff;
  background:linear-gradient(135deg,rgba(74,108,247,.2),rgba(168,85,247,.15));
  border-color:rgba(74,108,247,.45);
  box-shadow:0 0 14px rgba(74,108,247,.18);
}
.toggle-sub{
  font-size:.7rem;font-weight:500;color:#777;
  text-transform:none;letter-spacing:0;
}
.toggle-btn.active .toggle-sub{color:#bcc8ff}

/* === INPUTS === */
.panel-row{
  display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));
  gap:.8rem;
}
.field{display:flex;flex-direction:column;gap:.3rem}
.field-label{
  font-size:.68rem;color:#777;font-weight:700;
  text-transform:uppercase;letter-spacing:.05em;
}
.field-input-wrap{position:relative;display:flex;align-items:center}
.field-input{
  flex:1;width:100%;
  background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.1);
  border-radius:8px;padding:.55rem .8rem;padding-right:2.6rem;
  color:#fff;font-family:inherit;font-size:1rem;font-weight:700;
  outline:none;transition:border-color .15s;
  font-variant-numeric:tabular-nums;
}
.field-input:focus{border-color:rgba(74,108,247,.45)}
.field-suffix{
  position:absolute;right:.75rem;color:#666;
  font-size:.85rem;font-weight:700;pointer-events:none;
}

/* === RÉSULTAT === */
.result{
  padding:2rem 1.5rem 1.6rem;border-radius:16px;
  background:linear-gradient(135deg,rgba(74,108,247,.10),rgba(168,85,247,.08));
  border:1px solid rgba(74,108,247,.22);
  text-align:center;
  display:flex;flex-direction:column;align-items:center;gap:.6rem;
  box-shadow:0 8px 30px rgba(74,108,247,.06);
  margin-top:.4rem;
}
.result-label{
  font-size:.72rem;font-weight:700;color:#888;
  text-transform:uppercase;letter-spacing:.08em;
}
.result-value{
  font-size:3.4rem;font-weight:800;line-height:1;
  background:linear-gradient(135deg,#7d97ff,#c084fc);
  -webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;
  font-variant-numeric:tabular-nums;letter-spacing:-.02em;
}
.result-secondary{
  font-size:1.2rem;font-weight:700;color:#bbb;
  font-variant-numeric:tabular-nums;
  margin-top:-.2rem;
}
.result-secondary:empty{display:none}
.result-desc{
  font-size:.9rem;color:#aaa;line-height:1.6;max-width:520px;
  margin-top:.4rem;
}
.result-desc strong{color:#fff;font-weight:700}
.result-desc .hl{
  background:rgba(74,108,247,.15);color:#bcc8ff;
  padding:.05rem .35rem;border-radius:4px;font-weight:700;
  font-variant-numeric:tabular-nums;
}

.error{
  padding:.7rem 1rem;border-radius:8px;
  background:rgba(231,76,60,.08);border:1px solid rgba(231,76,60,.25);
  color:#ff8b7e;font-size:.85rem;
}

@media(max-width:600px){
  header{grid-template-columns:auto 1fr auto;padding:.5rem .8rem}
  .h-center{gap:.6rem;padding:.3rem .6rem}
  .rate-pair{font-size:.78rem}
  main{padding:1.4rem .8rem 0}
  .step{padding:.9rem 1rem;gap:.7rem}
  .result-value{font-size:2.4rem}
  .result{padding:1.5rem 1rem 1.2rem}
}
