:root{
  color-scheme: dark;
  --bg:#03040a;
  --panel:rgba(255,255,255,0.045);
  --panel2:rgba(255,255,255,0.06);
  --text:rgba(245,247,255,0.96);
  --muted:rgba(245,247,255,0.80);
  --faint:rgba(245,247,255,0.66);
  --border:rgba(245,247,255,0.14);
  --sky:#87b8ff;
  --aqua:#7cf7d4;
  --amber:#ffd57a;
  --danger:#ff6a7a;
  --mono:"IBM Plex Mono",ui-monospace,SFMono-Regular,Menlo,monospace;
  --sans:"Space Grotesk",system-ui,-apple-system,Segoe UI,sans-serif;
}
*{box-sizing:border-box}
html,body{margin:0;padding:0}
body{
  font-family:var(--sans);
  background:
    radial-gradient(900px 500px at 10% 0%, rgba(135,184,255,0.12), transparent 60%),
    radial-gradient(800px 600px at 90% -10%, rgba(124,247,212,0.08), transparent 60%),
    radial-gradient(900px 700px at 60% 110%, rgba(255,213,122,0.05), transparent 55%),
    var(--bg);
  color:var(--text);
  font-size:17px;
  line-height:1.6;
  -webkit-font-smoothing:antialiased;
}
a{color:inherit}
.container{width:min(1080px,calc(100% - 48px));margin:0 auto}
.mono{font-family:var(--mono)}
.small{color:var(--faint);font-size:12px}
.muted{color:var(--muted)}
.help{color:rgba(245,247,255,0.70);font-size:13px;margin-top:6px}

.header{
  padding:28px 0 12px;
  border-bottom:1px solid rgba(245,247,255,0.10);
}
.brand{display:flex;align-items:center;justify-content:space-between;gap:16px}
.brand-left{display:flex;align-items:center;gap:12px}
.logo{
  width:34px;height:34px;border-radius:10px;background:rgba(255,255,255,0.06);
  display:grid;place-items:center;border:1px solid rgba(245,247,255,0.12);
}
.logo span{font-family:var(--mono);font-weight:500;color:var(--sky)}
.nav{display:flex;gap:14px;align-items:center;flex-wrap:wrap}
.nav a{color:var(--muted);text-decoration:none;font-size:14px}
.nav a:hover{color:var(--text)}

.h1{font-size:38px;line-height:1.12;letter-spacing:-0.02em;margin:18px 0 6px}
.sub{color:var(--muted);margin:0}
.hero-badges{display:flex;flex-wrap:wrap;gap:10px;margin-top:14px}
.badge{
  font-family:var(--mono);
  font-size:12px;
  padding:6px 10px;
  border-radius:999px;
  border:1px solid rgba(245,247,255,0.14);
  background:rgba(255,255,255,0.04);
  display:inline-flex;
  gap:8px;
  align-items:center;
  color:var(--muted);
}
.badge i{width:8px;height:8px;border-radius:999px;display:inline-block;background:rgba(135,184,255,0.8)}
.badge.ok i{background:rgba(124,247,212,0.85)}
.badge.warn i{background:rgba(255,213,122,0.9)}

main{padding:22px 0 56px}
.section{margin-top:18px}
.panel{
  background:var(--panel);
  border:1px solid rgba(245,247,255,0.12);
  border-radius:20px;
  padding:20px;
}
.panel-title{
  font-size:13px;
  letter-spacing:0.08em;
  text-transform:uppercase;
  color:rgba(245,247,255,0.78);
  font-family:var(--mono);
}
.layout{
  display:grid;
  grid-template-columns: 1.05fr 0.95fr;
  gap:16px;
  align-items:start;
}
.grid{display:grid;gap:14px}
.grid-2{grid-template-columns:repeat(2,minmax(0,1fr))}
.grid-3{grid-template-columns:repeat(3,minmax(0,1fr))}
@media (max-width:980px){
  .grid-2,.grid-3{grid-template-columns:1fr}
  .layout{grid-template-columns:1fr}
}

.label{font-size:14px;color:rgba(245,247,255,0.86);margin-bottom:6px}
.label-row{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  margin-bottom:6px;
}
.label-row .label{margin-bottom:0}
.row{display:flex;gap:10px;align-items:center;flex-wrap:wrap}
.input,.select,.textarea{
  width:100%;
  border-radius:14px;
  border:1px solid rgba(245,247,255,0.14);
  background:rgba(255,255,255,0.035);
  color:var(--text);
  padding:12px 14px;
  font-size:16px;
  outline:none;
}
.input:focus,.select:focus,.textarea:focus{
  border-color:rgba(135,184,255,0.75);
  box-shadow:0 0 0 4px rgba(135,184,255,0.12);
}
.input.mono,.textarea.mono{font-family:var(--mono)}
.textarea{min-height:120px;resize:vertical}

.btn{
  border-radius:14px;
  border:1px solid rgba(245,247,255,0.16);
  padding:12px 14px;
  background:rgba(255,255,255,0.04);
  color:var(--text);
  cursor:pointer;
  font-family:var(--sans);
  font-weight:600;
  font-size:15px;
  transition:transform .12s ease,border-color .12s ease,background .12s ease;
}
.btn:hover{border-color:rgba(245,247,255,0.28);transform:translateY(-1px)}
.btn-primary{
  background:linear-gradient(135deg, rgba(135,184,255,0.22), rgba(124,247,212,0.10));
  border-color:rgba(135,184,255,0.35);
}
.btn-danger{
  border-color:rgba(255,106,122,0.35);
  background:rgba(255,106,122,0.07);
}
.btn-ghost{background:transparent}
.spacer{flex:1}
.toolbar{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin-top:12px}

.h2{font-size:22px;margin:0 0 8px;letter-spacing:-0.01em}
.p{margin:0}
.stat{
  background:rgba(255,255,255,0.03);
  border:1px solid rgba(245,247,255,0.12);
  border-radius:18px;
  padding:16px;
}
.stat-big{
  font-size:40px;
  line-height:1.05;
  letter-spacing:-0.02em;
  font-weight:750;
  margin-top:6px;
}
.stat-split{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:10px;
  margin-top:10px;
}
@media (max-width:980px){.stat-split{grid-template-columns:1fr}}
.stat-line{
  display:flex;
  justify-content:space-between;
  gap:10px;
  padding:10px 12px;
  border-radius:14px;
  border:1px solid rgba(245,247,255,0.12);
  background:rgba(0,0,0,0.14);
}
.math{
  display:grid;
  gap:8px;
}
.math-row{
  display:flex;
  justify-content:space-between;
  gap:14px;
  padding:10px 12px;
  border-radius:14px;
  border:1px solid rgba(245,247,255,0.12);
  background:rgba(0,0,0,0.14);
  font-size:14px;
}
.math-row .mono{font-size:13px;color:rgba(245,247,255,0.86)}

.table-wrap{overflow:auto;border-radius:16px;border:1px solid rgba(245,247,255,0.12)}
.table{width:100%;border-collapse:collapse;min-width:680px;background:rgba(0,0,0,0.10)}
.table th,.table td{padding:12px 12px;border-bottom:1px solid rgba(245,247,255,0.10);text-align:left;vertical-align:top}
.table th{font-size:12px;color:rgba(245,247,255,0.75);font-family:var(--mono);font-weight:600;background:rgba(255,255,255,0.03)}
.table td{color:var(--text)}
.table tr:last-child td{border-bottom:none}

.details summary{cursor:pointer;color:rgba(245,247,255,0.86);font-size:14px}
.details summary:hover{color:var(--text)}

.tip{
  position:relative;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:22px;
  height:22px;
  border-radius:999px;
  border:1px solid rgba(245,247,255,0.18);
  background:rgba(255,255,255,0.035);
  color:rgba(245,247,255,0.78);
  font-family:var(--mono);
  font-size:12px;
  line-height:1;
  cursor:help;
  padding:0;
}
.tip:hover{border-color:rgba(245,247,255,0.30);color:rgba(245,247,255,0.92)}
.tip:focus{
  outline:none;
  border-color:rgba(135,184,255,0.75);
  box-shadow:0 0 0 4px rgba(135,184,255,0.12);
}
.tip::after{
  content:attr(data-tip);
  position:absolute;
  right:0;
  top:-10px;
  transform:translateY(-100%);
  width:min(320px, 72vw);
  white-space:normal;
  text-align:left;
  padding:10px 12px;
  border-radius:14px;
  border:1px solid rgba(245,247,255,0.16);
  background:rgba(0,0,0,0.92);
  color:rgba(245,247,255,0.92);
  font-family:var(--sans);
  font-size:13px;
  line-height:1.35;
  box-shadow:0 16px 60px rgba(0,0,0,0.45);
  opacity:0;
  pointer-events:none;
  transition:opacity .12s ease, transform .12s ease;
  z-index:50;
}
.tip::before{
  content:"";
  position:absolute;
  right:10px;
  top:-10px;
  width:10px;
  height:10px;
  background:rgba(0,0,0,0.92);
  border-left:1px solid rgba(245,247,255,0.16);
  border-bottom:1px solid rgba(245,247,255,0.16);
  rotate:45deg;
  opacity:0;
  pointer-events:none;
  transition:opacity .12s ease, transform .12s ease;
  z-index:49;
}
.tip:hover::after,
.tip:focus::after{
  opacity:1;
  transform:translateY(-100%) translateY(-4px);
}
.tip:hover::before,
.tip:focus::before{
  opacity:1;
  transform:translateY(-4px);
}
.warn{
  border:1px solid rgba(255,213,122,0.25);
  background:rgba(255,213,122,0.07);
  padding:12px 14px;
  border-radius:16px;
  color:rgba(245,247,255,0.9);
}
.success{
  border:1px solid rgba(124,247,212,0.25);
  background:rgba(124,247,212,0.06);
  padding:12px 14px;
  border-radius:16px;
  color:rgba(245,247,255,0.92);
}

.range{width:100%;height:34px;accent-color:var(--sky)}
.delta{font-family:var(--mono);font-size:12px;color:var(--muted)}
.codebox{
  width:100%;
  min-height:170px;
  border-radius:16px;
  border:1px solid rgba(245,247,255,0.14);
  background:rgba(0,0,0,0.22);
  color:rgba(245,247,255,0.92);
  padding:14px;
}
