/* LEDCER — light by default, dark optional (data-theme="dark" on <html>) */
:root{
  --bg:#ffffff;
  --panel:#f7f9fc;
  --line:#e3e8ef;
  --fg:#0f172a;
  --dim:#5b6b7f;
  --accent:#b45309;        /* amber-700, readable on white */
  --accent-bg:#f59e0b;     /* button fill */
  --on-accent:#1a1207;
  --accent2:#0f766e;       /* teal-700 */
  --top-bg:rgba(255,255,255,.9);
  --code-bg:#eef2f7;
  --th-bg:#f1f5f9;
  --hover:#f8fafc;
  --input-bg:#ffffff;
  --err:#b91c1c;
  --shadow:0 1px 2px rgba(15,23,42,.06), 0 1px 3px rgba(15,23,42,.04);
  --mono:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;
  --sans:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;
}

[data-theme="dark"]{
  --bg:#0d1117;
  --panel:#151b23;
  --line:#232c38;
  --fg:#e6edf3;
  --dim:#8b98a9;
  --accent:#ffb020;
  --accent-bg:#ffb020;
  --on-accent:#111111;
  --accent2:#2dd4bf;
  --top-bg:rgba(13,17,23,.88);
  --code-bg:#111820;
  --th-bg:#111820;
  --hover:#121a23;
  --input-bg:#0b0f14;
  --err:#ff7b7b;
  --shadow:none;
}

*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  margin:0; background:var(--bg); color:var(--fg);
  font-family:var(--sans); font-size:16px; line-height:1.6;
  -webkit-font-smoothing:antialiased;
}

/* ---------- header ---------- */
.top{
  position:sticky; top:0; z-index:20;
  display:flex; align-items:center; justify-content:space-between;
  gap:1rem; padding:.9rem 1.5rem;
  background:var(--top-bg); backdrop-filter:blur(10px);
  border-bottom:1px solid var(--line);
}
.brand{
  font-family:var(--mono); font-weight:700; font-size:1.15rem;
  letter-spacing:.22em; color:var(--fg); text-decoration:none;
}
.top .nav-wrap{display:flex; align-items:center; gap:.4rem; flex-wrap:wrap}
.top nav{display:flex; align-items:center; gap:1.4rem; flex-wrap:wrap}
.top nav a{color:var(--dim); text-decoration:none; font-size:.92rem}
.top nav a:hover{color:var(--fg)}
.top nav a.cta{
  color:var(--on-accent); background:var(--accent-bg); padding:.45rem .95rem;
  border-radius:5px; font-weight:600;
}
.top nav a.cta:hover{filter:brightness(1.08)}

.theme-toggle{
  margin-left:.9rem; width:34px; height:34px; flex:0 0 auto;
  display:inline-flex; align-items:center; justify-content:center;
  background:transparent; border:1px solid var(--line); border-radius:6px;
  color:var(--dim); font-size:15px; line-height:1; cursor:pointer;
}
.theme-toggle:hover{color:var(--fg); border-color:var(--dim)}

main{max-width:1040px; margin:0 auto; padding:0 1.5rem}

/* ---------- hero ---------- */
.hero{
  padding:4.5rem 0 3.5rem;
  display:grid; grid-template-columns:1.15fr .85fr;
  gap:3rem; align-items:center;
}
.hero-media{margin:0}
.hero-single{grid-template-columns:1fr; max-width:780px}
.steps{padding-left:1.2rem; color:var(--dim)}
.steps li{margin-bottom:.9rem}
.steps strong{color:var(--fg)}
.checks{list-style:none; padding:0; color:var(--dim)}
.checks li{padding-left:1.25rem; position:relative; margin-bottom:.6rem}
.checks li::before{content:"✓"; position:absolute; left:0; color:var(--accent2)}
code{
  font-family:var(--mono); font-size:.9em; background:var(--code-bg);
  padding:.1rem .35rem; border-radius:3px; color:var(--accent);
}
[data-theme="dark"] code{color:var(--accent2)}
.hero-media img{
  width:100%; height:auto; display:block;
  border-radius:10px; border:1px solid var(--line); box-shadow:var(--shadow);
}
.eyebrow{
  font-family:var(--mono); font-size:.78rem; letter-spacing:.2em;
  text-transform:uppercase; color:var(--accent); margin:0 0 1rem;
}
.hero h1{
  font-size:clamp(1.9rem,4.6vw,3.1rem); line-height:1.15;
  margin:0 0 1.2rem; letter-spacing:-.02em; color:var(--fg);
}
.lead{color:var(--dim); max-width:60ch; font-size:1.05rem; margin:0 0 1.8rem}
.hero-actions{display:flex; gap:.8rem; flex-wrap:wrap}
.btn{
  display:inline-block; padding:.72rem 1.4rem; border-radius:5px;
  text-decoration:none; font-weight:600; font-size:.95rem;
  border:1px solid transparent; cursor:pointer;
}
.btn.primary{background:var(--accent-bg); color:var(--on-accent)}
.btn.primary:hover{filter:brightness(1.08)}
.btn.ghost{border-color:var(--line); color:var(--fg); background:transparent}
.btn.ghost:hover{border-color:var(--dim)}
.hero-facts{
  list-style:none; padding:0; margin:2.4rem 0 0;
  display:flex; gap:2rem; flex-wrap:wrap;
  font-family:var(--mono); font-size:.82rem; color:var(--dim);
}
.hero-facts li::before{content:"▸ "; color:var(--accent2)}

/* ---------- sections ---------- */
.block{padding:3.4rem 0; border-top:1px solid var(--line)}
.block h2{font-size:1.55rem; margin:0 0 .5rem; letter-spacing:-.01em; color:var(--fg)}
.block h2.mt{margin-top:3rem}
.sub{color:var(--dim); margin:0 0 1.6rem; max-width:62ch}
.note{color:var(--dim); font-size:.88rem; margin:.9rem 0 0}
.note a{color:var(--accent2)}

/* ---------- modes ---------- */
.modes{display:grid; grid-template-columns:repeat(auto-fit,minmax(240px,1fr)); gap:1rem}
.mode{
  background:var(--panel); border:1px solid var(--line);
  border-radius:8px; padding:1.3rem;
}
.mode.on{border-color:var(--accent2); box-shadow:0 0 0 1px var(--accent2)}
.mode h3{
  margin:0 0 .2rem; font-family:var(--mono); font-size:1rem;
  letter-spacing:.08em; text-transform:uppercase; color:var(--fg);
}
.mode .sum{color:var(--fg); font-weight:600; margin:.2rem 0 .7rem}
.mode p{color:var(--dim); font-size:.9rem; margin:0}
.badge{
  display:inline-block; margin-left:.5rem; padding:.1rem .45rem;
  font-size:.68rem; border-radius:3px; background:var(--accent2); color:#fff;
  font-weight:700; letter-spacing:.06em; vertical-align:middle;
}

/* ---------- tables ---------- */
.table-wrap{overflow-x:auto; border:1px solid var(--line); border-radius:8px; background:var(--bg)}
table{width:100%; border-collapse:collapse; font-size:.9rem; min-width:520px}
th,td{padding:.65rem .9rem; text-align:left; border-bottom:1px solid var(--line)}
th{
  font-family:var(--mono); font-size:.74rem; letter-spacing:.1em;
  text-transform:uppercase; color:var(--dim); background:var(--th-bg);
}
tbody th{color:var(--fg); font-family:var(--sans); text-transform:none; letter-spacing:0; background:transparent}
tbody tr:last-child td{border-bottom:none}
tbody tr:hover{background:var(--hover)}
td.model{font-family:var(--mono); color:var(--accent)}
td.num{font-family:var(--mono); color:var(--fg)}
.quote-btn{
  background:transparent; border:1px solid var(--line); color:var(--accent);
  padding:.25rem .6rem; border-radius:4px; cursor:pointer; font-size:.82rem;
}
.quote-btn:hover{border-color:var(--accent)}

/* ---------- cards ---------- */
.cards{display:grid; grid-template-columns:repeat(auto-fit,minmax(220px,1fr)); gap:1rem}
.card{background:var(--panel); border:1px solid var(--line); border-radius:8px; padding:1.2rem}
.card h3{margin:0 0 .4rem; font-size:1rem; color:var(--fg)}
.card p{margin:0; color:var(--dim); font-size:.9rem}
.card.proto h3{font-family:var(--mono); letter-spacing:.06em; color:var(--accent)}
.card.proto .wire{
  font-family:var(--mono); font-size:.76rem; letter-spacing:.06em;
  text-transform:uppercase; color:var(--dim); margin:0 0 .3rem;
}
.card.proto .modes-line{
  font-family:var(--mono); font-size:.78rem; color:var(--accent);
  margin:0 0 .6rem;
}

/* ---------- form ---------- */
.quote{max-width:760px}
.grid2{display:grid; grid-template-columns:1fr 1fr; gap:1rem}
form label{display:flex; flex-direction:column; gap:.35rem; font-size:.85rem; color:var(--dim)}
input,select,textarea{
  background:var(--input-bg); border:1px solid var(--line); color:var(--fg);
  padding:.6rem .7rem; border-radius:5px; font-size:.95rem; font-family:inherit;
  width:100%;
}
input:focus,select:focus,textarea:focus{
  outline:none; border-color:var(--accent2);
  box-shadow:0 0 0 3px rgba(15,118,110,.15);
}
label{margin-bottom:1rem}
form .btn.primary{margin-top:.4rem}
.formnote{font-size:.88rem; margin-top:.9rem; min-height:1.2rem}
.formnote.ok{color:var(--accent2)}
.formnote.err{color:var(--err)}

/* ---------- footer ---------- */
footer{
  border-top:1px solid var(--line); margin-top:2rem;
  padding:2rem 1.5rem 3rem; max-width:1040px; margin-inline:auto;
  display:flex; justify-content:space-between; gap:1rem; flex-wrap:wrap;
}
footer .fine{display:flex; gap:.6rem; flex-wrap:wrap; color:var(--dim); font-size:.85rem}
footer strong{font-family:var(--mono); letter-spacing:.15em}

@media (max-width:820px){
  .hero{grid-template-columns:1fr; gap:2rem; padding:3rem 0 2.4rem}
  .hero-media{order:-1}
}
@media (max-width:640px){
  .top{padding:.75rem 1rem}
  .top .nav-wrap{gap:.3rem}
  .top nav{gap:.9rem; font-size:.85rem}
  .top nav a:not(.cta){display:none}
  main{padding:0 1rem}
  .hero{padding:3rem 0 2.4rem}
  .grid2{grid-template-columns:1fr}
  .hero-facts{gap:1rem}
}
