/* ============================================================
   arbeitszeiterfassung-app.de — Redesign 2026-07 „ruhig & aufgeräumt"
   Tiefblau #2456d6 · Font-Stack Inter/system-ui · Hairlines · kein externes JS/CSS
   ============================================================ */

:root{
  --ink:#141414;
  --text:#141414;
  --muted:#6b7280;
  --accent:#2456d6;
  --accent-dark:#1c46b3;
  --accent-hairline:#ccd8f4;
  --hairline:#ececf0;
  --bg:#ffffff;
  --bg-soft:#fafafa;
  --radius:12px;
  --maxw:1080px;
}

*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  margin:0;
  font-family:InterVariable,Inter,system-ui,-apple-system,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;
  font-size:1.0625rem;
  line-height:1.65;
  color:var(--text);
  background:var(--bg);
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
}
[id]{scroll-margin-top:6rem}

/* ---------- Typografie ---------- */
h1,h2,h3,h4{color:var(--ink);letter-spacing:-0.02em;line-height:1.15}
h1{font-size:clamp(2.25rem,6vw,3.75rem);font-weight:700;line-height:1.05;margin:.2em 0 .4em}
h2{font-size:clamp(1.45rem,3vw,1.85rem);font-weight:650;margin:3.4em 0 .7em}
h3{font-size:1.15rem;font-weight:650;margin:2.2em 0 .5em}
p{margin:1em 0}
a{color:var(--accent);text-decoration:none}
a:hover{text-decoration:underline}
strong{color:var(--ink)}
ul,ol{padding-left:1.4em}
li{margin:.4em 0}
hr{border:0;border-top:1px solid var(--hairline);margin:3.5rem 0}
blockquote{
  margin:1.6em 0;
  padding:.2em 0 .2em 1.3em;
  border-left:2px solid #d9dade;
  color:var(--ink);
}
blockquote p{margin:.3em 0}
blockquote cite{display:block;font-style:normal;font-size:.85rem;color:var(--muted);margin-top:.5em}
code{background:var(--bg-soft);border:1px solid var(--hairline);border-radius:4px;padding:.1em .35em;font-size:.9em}

/* ---------- Layout ---------- */
.wrap{max-width:var(--maxw);margin:0 auto;padding:0 1.25rem}
main .wrap{max-width:1000px}
main{padding-bottom:6rem}

/* ---------- Header / Navigation ---------- */
.site-header{
  position:sticky;top:0;z-index:50;
  background:rgba(255,255,255,.92);
  backdrop-filter:blur(8px);
  border-bottom:1px solid var(--hairline);
}
.site-header .wrap{
  display:flex;align-items:center;justify-content:space-between;
  gap:1rem;min-height:68px;flex-wrap:wrap;padding-top:.5rem;padding-bottom:.5rem;
}
.brand{
  display:flex;align-items:center;gap:.55rem;
  font-weight:650;letter-spacing:-0.01em;color:var(--ink);
  font-size:.98rem;white-space:nowrap;
}
.brand:hover{text-decoration:none}
.brand svg{flex:0 0 auto}
.site-nav{display:flex;gap:.15rem;flex-wrap:wrap}
.site-nav a{
  color:var(--muted);font-size:.92rem;font-weight:500;
  padding:.45rem .7rem;border-radius:8px;
}
.site-nav a:hover{color:var(--ink);background:var(--bg-soft);text-decoration:none}
.site-nav a[aria-current="page"]{color:var(--ink);font-weight:550}

/* ---------- Meta-Zeile / Breadcrumb / Hero ---------- */
.breadcrumb{font-size:.85rem;color:var(--muted);margin:2rem 0 0}
.breadcrumb a{color:var(--muted)}
.breadcrumb a:hover{color:var(--ink)}
.page-meta{
  display:flex;flex-wrap:wrap;gap:.4rem .9rem;align-items:center;
  font-size:.85rem;color:var(--muted);margin:1.1rem 0 0;
}
.page-meta .dot::before{content:"\00b7";margin-right:.9rem;color:#d1d5db}
.hero{padding:3.75rem 0 1rem}

/* ---------- Answer-Block ---------- */
.answer{
  border:1px solid var(--hairline);
  border-left:2px solid var(--accent);
  border-radius:0 var(--radius) var(--radius) 0;
  background:var(--bg);
  padding:1.1rem 1.4rem;
  margin:1.8rem 0 2.2rem;
  color:var(--ink);
}
.answer p{margin:.2em 0}

/* ---------- Boxen ---------- */
.box{
  border:1px solid var(--hairline);
  border-radius:var(--radius);
  padding:1.4rem 1.6rem;
  margin:2rem 0;
  background:var(--bg);
}
.box h2,.box h3{margin-top:.2em}
.box-verdict{background:var(--bg)}
.box-soft{background:var(--bg-soft);box-shadow:none}
.box-download{background:var(--bg)}
.box .btn{margin-top:.5rem}

/* ---------- Buttons ---------- */
.btn{
  display:inline-block;
  background:var(--ink);color:#fff;
  border:1px solid var(--ink);
  border-radius:8px;
  padding:.6rem 1.15rem;font-weight:550;font-size:.95rem;
}
.btn:hover{background:#000;border-color:#000;text-decoration:none}
.btn-ghost{background:var(--bg);color:var(--ink);border:1px solid var(--hairline)}
.btn-ghost:hover{background:var(--bg-soft);border-color:#d6d7dd;color:var(--ink)}

/* ---------- Badges / Pills ---------- */
.badge{
  display:inline-block;
  font-size:.72rem;font-weight:550;letter-spacing:.02em;
  padding:.18rem .6rem;border-radius:999px;
  background:var(--bg);color:var(--muted);
  border:1px solid var(--hairline);
  vertical-align:middle;white-space:nowrap;
}
.badge-win{color:var(--accent);border-color:var(--accent-hairline)}

/* ---------- Ranking-Cards ---------- */
.rank-list{list-style:none;padding:0;margin:2rem 0;counter-reset:rank}
.rank-card{
  border:1px solid var(--hairline);
  border-radius:var(--radius);
  padding:1.6rem 1.8rem 1.5rem 4.8rem;
  margin:0 0 1.1rem;
  position:relative;
  background:var(--bg);
}
.rank-card::before{
  counter-increment:rank;
  content:counter(rank);
  position:absolute;left:1.5rem;top:1.75rem;
  width:2rem;height:2rem;
  display:flex;align-items:center;justify-content:center;
  background:var(--bg);color:var(--muted);
  border:1px solid var(--hairline);
  border-radius:8px;font-weight:600;font-size:.95rem;
  font-variant-numeric:tabular-nums;
}
.rank-card.top::before{background:var(--ink);color:#fff;border-color:var(--ink)}
.rank-card h3{margin:.05em 0 .5em;font-size:1.2rem}
.rank-card p{margin:.5em 0}
.rank-card .fit{font-size:.9rem;color:var(--muted);margin:.2em 0 .4em}
.rank-card .fit strong{color:var(--muted);font-weight:550}
.rank-card .fact{margin-top:.6em;font-size:.95rem}
.rank-card .con{color:var(--muted);font-size:.92rem}
.rank-card .con strong{color:var(--ink)}

/* ---------- Tabellen ---------- */
.table-wrap{overflow-x:auto;margin:1.8rem 0}
table{border-collapse:collapse;width:100%;font-size:.92rem;background:var(--bg)}
caption{caption-side:top;text-align:left;font-weight:600;color:var(--ink);padding:0 0 .8rem}
th,td{padding:.75rem .9rem;border-bottom:1px solid var(--hairline);text-align:left;vertical-align:top}
th:first-child,td:first-child{padding-left:0}
th:last-child,td:last-child{padding-right:0}
thead th{
  font-size:.72rem;font-weight:600;letter-spacing:.06em;text-transform:uppercase;
  color:var(--muted);white-space:nowrap;
}
td.win,tr.win td{background:var(--bg-soft)}
@media (min-width:900px){
  .table-wrap.sticky{overflow:visible}
  .table-wrap.sticky thead th{position:sticky;top:68px;z-index:5;background:var(--bg);box-shadow:0 1px 0 var(--hairline)}
}

/* ---------- FAQ (details/summary) ---------- */
.faq{margin-top:1rem}
.faq details{border-top:1px solid var(--hairline);margin:0;background:var(--bg)}
.faq details:last-of-type{border-bottom:1px solid var(--hairline)}
.faq summary{
  cursor:pointer;
  padding:1.05rem 2.4rem 1.05rem 0;
  font-weight:550;color:var(--ink);
  list-style:none;position:relative;
}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{
  content:"+";position:absolute;right:.25rem;top:50%;transform:translateY(-50%);
  color:var(--muted);font-weight:400;font-size:1.35rem;line-height:1;
}
.faq details[open] summary::after{content:"\2013"}
.faq details div{padding:0 0 1.3rem;color:var(--muted)}

/* ---------- Pro/Contra ---------- */
.pro-con{display:grid;grid-template-columns:1fr 1fr;gap:1.1rem;margin:1.8rem 0}
@media (max-width:700px){.pro-con{grid-template-columns:1fr}}
.pro-con div{border:1px solid var(--hairline);border-radius:var(--radius);padding:1.1rem 1.3rem;background:var(--bg)}
.pro-con h3{
  margin:.1em 0 .7em;
  font-size:.78rem;font-weight:600;letter-spacing:.06em;text-transform:uppercase;
  color:var(--muted);
}
.pro-con ul{margin:.3em 0;padding-left:1.2em}
.pro-con li{font-size:.95rem}

/* ---------- Glossar ---------- */
.glossar-nav{display:flex;flex-wrap:wrap;gap:.4rem;margin:1.6rem 0 2.5rem}
.glossar-nav a{
  border:1px solid var(--hairline);border-radius:999px;
  padding:.2rem .7rem;font-size:.88rem;font-weight:500;color:var(--muted);
}
.glossar-nav a:hover{border-color:#d6d7dd;color:var(--ink);background:var(--bg-soft);text-decoration:none}
.glossar-entry{border-bottom:1px solid var(--hairline);padding-bottom:1.4rem;margin-bottom:1.4rem}
.glossar-entry h2{margin:1.4rem 0 .4rem;font-size:1.25rem}
.glossar-entry p{margin:.3em 0}

/* ---------- Quellen ---------- */
.sources{font-size:.88rem;color:var(--muted)}
.sources ul{padding-left:1.2em}
.sources a{overflow-wrap:anywhere}

/* ---------- Schritte ---------- */
.steps{list-style:none;padding:0;margin:1.8rem 0;counter-reset:step}
.steps li{position:relative;padding:.2rem 0 1.1rem 3.2rem;margin:0}
.steps li::before{
  counter-increment:step;content:counter(step);
  position:absolute;left:0;top:.1rem;
  width:2rem;height:2rem;border-radius:50%;
  background:var(--bg);color:var(--ink);
  border:1px solid var(--hairline);
  font-weight:600;font-size:.9rem;
  display:flex;align-items:center;justify-content:center;
}
.steps li:not(:last-child)::after{
  content:"";position:absolute;left:1rem;top:2.4rem;bottom:.2rem;width:1px;background:var(--hairline);
}

/* ---------- Footer ---------- */
.site-footer{
  border-top:1px solid var(--hairline);
  background:var(--bg);
  margin-top:7rem;
  font-size:.9rem;color:var(--muted);
}
.footer-grid{
  display:grid;grid-template-columns:1.5fr 1fr 1fr .8fr;gap:2.5rem;
  padding:4rem 0 2.5rem;
}
@media (max-width:900px){.footer-grid{grid-template-columns:1fr 1fr}}
@media (max-width:560px){.footer-grid{grid-template-columns:1fr}}
.site-footer h4{margin:0 0 .7rem;font-size:.85rem;font-weight:600;color:var(--ink)}
.site-footer ul{list-style:none;padding:0;margin:0}
.site-footer li{margin:.4rem 0}
.site-footer a{color:var(--muted)}
.site-footer a:hover{color:var(--ink)}
.footer-bottom{
  border-top:1px solid var(--hairline);
  padding:1.4rem 0 2rem;
  display:flex;flex-wrap:wrap;gap:.5rem 1.4rem;align-items:center;justify-content:space-between;
}
.footer-brand{display:flex;align-items:center;gap:.5rem;font-weight:600;color:var(--ink)}

/* ---------- Sonstiges ---------- */
.small{font-size:.85rem;color:var(--muted)}
.center{text-align:center}
.error-page{padding:5rem 0;text-align:center}
.error-page h1{font-size:clamp(2.5rem,6vw,3.5rem)}
.error-page p{margin-left:auto;margin-right:auto}

/* ---------- Statistik: Kachelzeile (.stat-tiles) ---------- */
.stat-tiles{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(160px,1fr));
  gap:1.1rem;margin:1.8rem 0 .6rem;
}
.stat-tile{
  border:1px solid var(--hairline);border-radius:var(--radius);
  background:var(--bg);padding:1.15rem 1.25rem;
  display:flex;flex-direction:column;gap:.3rem;
}
.stat-tile .stat-value{
  font-size:1.7rem;font-weight:650;color:var(--ink);
  letter-spacing:-0.02em;line-height:1.15;font-variant-numeric:tabular-nums;
}
.stat-tile .stat-caption{font-size:.85rem;color:var(--muted);line-height:1.45}
.stat-source{margin-top:.2rem}

/* ---------- Statistik: horizontale Balken (.statbars) ---------- */
.statbars{
  margin:1.8rem 0;padding:1.2rem 1.4rem 1.25rem;
  border:1px solid var(--hairline);border-radius:var(--radius);background:var(--bg);
}
.statbars-title{margin:.1em 0 1em;font-weight:600;color:var(--ink)}
.statbar{
  display:grid;grid-template-columns:minmax(120px,230px) 1fr auto;
  gap:.75rem;align-items:center;margin:.55rem 0;
}
.statbar-label{font-size:.9rem;color:var(--text);line-height:1.35}
.statbar-track{
  display:block;height:8px;border-radius:4px;
  background:#f3f4f6;overflow:hidden;
}
.statbar-fill{display:block;height:100%;border-radius:4px;background:#d4d7de;min-width:2px}
.statbar-fill.hi{background:var(--accent)}
.statbar-value{
  font-size:.9rem;font-weight:600;color:var(--ink);
  white-space:nowrap;font-variant-numeric:tabular-nums;
}
.statbars figcaption{margin-top:.9rem}
@media (max-width:560px){
  .statbar{grid-template-columns:1fr auto;row-gap:.15rem}
  .statbar-label{grid-column:1 / -1;margin-bottom:-.1rem}
}
@media print{.site-header,.site-footer{display:none}}

/* ---------- Blog (Ergänzung 2026-07-18, nur neue Klassen) ---------- */
.blog-list{list-style:none;padding:0;margin:2.2rem 0 0;display:grid;grid-template-columns:1fr 1fr;gap:1.15rem}
@media (max-width:760px){.blog-list{grid-template-columns:1fr}}
.blog-card{
  border:1px solid var(--hairline);
  border-radius:var(--radius);
  background:var(--bg);
  padding:1.45rem 1.7rem 1.35rem;
}
.blog-card .blog-date{
  display:block;font-size:.82rem;color:var(--muted);
  margin:0 0 .35rem;font-variant-numeric:tabular-nums;
}
.blog-card h2{margin:0 0 .35em;font-size:1.22rem;line-height:1.3}
.blog-card h2 a{color:var(--ink)}
.blog-card h2 a:hover{color:var(--accent);text-decoration:none}
.blog-card p{margin:.35em 0 .6em;font-size:.97rem;color:var(--text)}
.blog-more{display:inline-block;font-weight:550;font-size:.92rem;white-space:nowrap}
.blog-more:hover{text-decoration:underline}
