/* gehalt-nach-steuern.de — Brutto-Netto-Rechner 2026
   Mobile-first, no frameworks, single stylesheet. */
:root{
  --bg:#f7f9fc;
  --card:#ffffff;
  --ink:#1a2332;
  --muted:#5b6b82;
  --line:#e3e9f2;
  --brand:#0b5cab;
  --brand-dark:#084a8a;
  --accent:#0e9f6e;
  --warn:#b45309;
  --radius:12px;
  --maxw:1080px;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  margin:0;
  font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;
  background:var(--bg);
  color:var(--ink);
  line-height:1.6;
  font-size:17px;
}
a{color:var(--brand)}
a:hover{color:var(--brand-dark)}
img{max-width:100%;height:auto}

/* ---------- layout ---------- */
.wrap{max-width:var(--maxw);margin:0 auto;padding:0 16px}
header.site{
  background:var(--card);
  border-bottom:1px solid var(--line);
  position:sticky;top:0;z-index:50;
}
header.site .wrap{display:flex;align-items:center;gap:12px;padding-top:10px;padding-bottom:10px}
.logo{font-weight:800;font-size:1.15rem;color:var(--ink);text-decoration:none;white-space:nowrap}
.logo span{color:var(--brand)}
nav.main{margin-left:auto;display:flex;gap:4px;flex-wrap:wrap}
nav.main a{
  text-decoration:none;color:var(--muted);font-size:.92rem;
  padding:8px 10px;border-radius:8px;
}
nav.main a:hover{background:var(--bg);color:var(--ink)}
nav.main a.active{color:var(--brand);font-weight:600}
main{padding:24px 0 48px}
footer.site{
  background:#101c2e;color:#c7d3e3;font-size:.9rem;
  padding:32px 0;margin-top:24px;
}
footer.site a{color:#9fc2ee}
footer.site .cols{display:grid;gap:20px;grid-template-columns:1fr}
footer.site h3{color:#fff;font-size:1rem;margin:0 0 8px}
footer.site ul{list-style:none;margin:0;padding:0}
footer.site li{margin:4px 0}
.disclaimer{font-size:.82rem;color:#8fa0b8;margin-top:16px}

/* ---------- hero / calculator ---------- */
.hero{
  background:linear-gradient(135deg,#0b5cab 0%,#084a8a 60%,#063a6e 100%);
  color:#fff;border-radius:var(--radius);
  padding:28px 20px;margin-bottom:24px;
}
.hero h1{margin:0 0 6px;font-size:1.7rem;line-height:1.25}
.hero p.sub{margin:0;color:#cfe3fa;font-size:1rem}
.calc{
  background:var(--card);border:1px solid var(--line);
  border-radius:var(--radius);padding:20px;
  box-shadow:0 2px 10px rgba(11,92,171,.06);
  margin-bottom:24px;
}
.calc h2{margin:0 0 4px;font-size:1.25rem}
.calc p.hint{margin:0 0 16px;color:var(--muted);font-size:.92rem}
.fields{display:grid;gap:14px;grid-template-columns:1fr}
.field label{display:block;font-weight:600;font-size:.95rem;margin-bottom:6px}
.field .note{font-weight:400;color:var(--muted);font-size:.85rem;display:block;margin-top:4px}
.field input[type=number],
.field input[type=text],
.field select{
  width:100%;padding:12px;border:1px solid var(--line);
  border-radius:8px;font-size:1rem;background:#fff;color:var(--ink);
}
.field input:focus,.field select:focus{
  outline:2px solid var(--brand);outline-offset:1px;border-color:var(--brand);
}
.row2{display:grid;gap:14px;grid-template-columns:1fr 1fr}
.checkline{display:flex;align-items:flex-start;gap:10px;font-size:.95rem}
.checkline input{margin-top:5px;transform:scale(1.2)}
.btn{
  display:inline-block;background:var(--brand);color:#fff;border:0;
  padding:14px 22px;font-size:1.05rem;font-weight:700;
  border-radius:10px;cursor:pointer;width:100%;
}
.btn:hover{background:var(--brand-dark)}
.result{
  margin-top:20px;border-top:2px solid var(--line);padding-top:16px;
  display:none;
}
.result.show{display:block}
.netto-box{
  background:#eef7f1;border:1px solid #cde9d8;border-radius:10px;
  padding:16px;text-align:center;margin-bottom:16px;
}
.netto-box .lbl{font-size:.95rem;color:var(--muted)}
.netto-box .val{font-size:2.2rem;font-weight:800;color:#0b6b3f;line-height:1.2}
.netto-box .per{font-size:.9rem;color:var(--muted)}
table.break{width:100%;border-collapse:collapse;font-size:.95rem;margin:0 0 8px}
table.break caption{text-align:left;font-weight:700;padding:8px 0}
table.break th,table.break td{padding:9px 8px;border-bottom:1px solid var(--line);text-align:right}
table.break th:first-child,table.break td:first-child{text-align:left}
table.break tr.total td{font-weight:800;border-top:2px solid var(--ink);border-bottom:0}
table.break tr.sub td{color:var(--muted)}
.assumptions{
  background:#fff8e8;border:1px solid #f0dfae;border-radius:8px;
  padding:12px 14px;font-size:.88rem;color:#6b5410;margin-top:12px;
}

/* ---------- content ---------- */
.card{
  background:var(--card);border:1px solid var(--line);
  border-radius:var(--radius);padding:20px;margin-bottom:20px;
}
.card h2{margin-top:0}
.prose h2{margin-top:1.8em}
.prose h3{margin-top:1.4em}
.prose ul,.prose ol{padding-left:1.3em}
.breadcrumb{font-size:.85rem;color:var(--muted);margin-bottom:12px}
.breadcrumb a{color:var(--muted)}
.grid-cards{display:grid;gap:14px;grid-template-columns:1fr}
.mini-card{
  background:var(--card);border:1px solid var(--line);border-radius:10px;
  padding:14px 16px;
}
.mini-card a{font-weight:700;text-decoration:none;color:var(--ink)}
.mini-card a:hover{color:var(--brand)}
.mini-card p{margin:6px 0 0;font-size:.9rem;color:var(--muted)}
.related{margin-top:8px}
.related h3{font-size:1rem}
.related ul{columns:2;list-style:none;padding:0;margin:0}
.related li{margin:6px 0;font-size:.92rem}

/* ---------- FAQ ---------- */
details.faq{
  background:var(--card);border:1px solid var(--line);border-radius:10px;
  padding:14px 16px;margin-bottom:10px;
}
details.faq summary{font-weight:700;cursor:pointer;list-style:none}
details.faq summary::-webkit-details-marker{display:none}
details.faq summary::after{content:"+";float:right;color:var(--brand);font-size:1.3rem;line-height:1}
details.faq[open] summary::after{content:"–"}
details.faq p{margin:10px 0 0;color:var(--ink)}

/* ---------- misc ---------- */
.kicker{
  display:inline-block;background:#e7f0fb;color:var(--brand);
  font-size:.8rem;font-weight:700;padding:4px 10px;border-radius:999px;
  margin-bottom:10px;text-transform:uppercase;letter-spacing:.04em;
}
.src{font-size:.82rem;color:var(--muted)}
.src li{margin-bottom:4px}
table.data{width:100%;border-collapse:collapse;font-size:.93rem;margin:12px 0}
table.data th,table.data td{border:1px solid var(--line);padding:8px 10px;text-align:left}
table.data th{background:#eef3fa}
.formula{
  background:#f2f5fa;border-left:4px solid var(--brand);
  padding:10px 14px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;
  font-size:.88rem;overflow-x:auto;margin:12px 0;border-radius:0 8px 8px 0;
}
.toc{background:#f2f5fa;border-radius:10px;padding:14px 18px;margin:16px 0}
.toc ol{margin:8px 0;padding-left:1.2em}
.placeholder{
  background:#fff4f4;border:1px dashed #d66;border-radius:8px;
  padding:10px 14px;font-size:.9rem;color:#8a1f1f;margin:10px 0;
}

@media(min-width:720px){
  .fields{grid-template-columns:1fr 1fr}
  .fields .full{grid-column:1/-1}
  .grid-cards{grid-template-columns:1fr 1fr 1fr}
  footer.site .cols{grid-template-columns:2fr 1fr 1fr}
  .hero h1{font-size:2.1rem}
  .related ul{columns:3}
}
@media(min-width:1024px){
  .calc-layout{display:grid;grid-template-columns:5fr 4fr;gap:24px;align-items:start}
}
@media print{
  header.site,nav.main,footer.site,.btn{display:none}
  .result{display:block}
}
