:root{
  --bg:#070910;
  --panel:rgba(255,255,255,.06);
  --panel2:rgba(255,255,255,.08);
  --stroke:rgba(255,255,255,.10);
  --text:rgba(242,244,255,.92);
  --muted:rgba(242,244,255,.68);
  --muted2:rgba(242,244,255,.52);
  --accent:#f348dc; /* Silvago Orange */
  --accent2:#3aa3ff;
  --radius:18px;
  --shadow: 0 18px 60px rgba(0,0,0,.55);
}

@keyframes drift {
  0%   { transform: translate3d(-14px,-10px,0) scale(1.02); }
  100% { transform: translate3d(14px,10px,0) scale(1.06); }
}

*{box-sizing:border-box}
html,body{height:100%}
body{
  margin:0;
  color:var(--text);
  background: var(--bg);
  font-family: ui-sans-serif, system-ui, -apple-system, Segoe UI, Roboto, Helvetica, Arial, "Apple Color Emoji","Segoe UI Emoji";
  line-height:1.45;
  overflow-x:hidden;
}

/* Home-only background: use the hero image as a subtle, blurred, fixed backdrop.
   This avoids ugly gradient banding and keeps the page “alive” without looking muddy. */
body.home::before{
  content:"";
  position:fixed;
  inset:-80px;
  z-index:-2;
  pointer-events:none;
  background-image:
    radial-gradient(1100px 640px at 18% 18%, rgba(58,163,255,.18), transparent 62%),
    radial-gradient(1100px 640px at 82% 18%, rgba(243,154,72,.22), transparent 62%),
    linear-gradient(180deg, rgba(0,0,0,.20), rgba(0,0,0,.70)),
    url("./img/hero.png");
  background-size: cover, cover, cover, cover;
  background-position: center, center, center, center;
  filter: blur(26px) saturate(1.18) contrast(1.06) brightness(.95);
  opacity:.38;
  transform: scale(1.06);
}

/* Dither / grain to kill banding */
body::after{
  content:"";
  position:fixed;
  inset:0;
  pointer-events:none;
  z-index:-1;
  background-image:url("./noise.png");
  background-repeat:repeat;
  background-size:512px 512px;
  opacity:.10;
  mix-blend-mode: soft-light;
}

/* Slightly stronger grain on the home page to remove any remaining banding. */
body.home::after{opacity:.14;}

a{color:inherit; text-decoration:none}
a:hover{opacity:.95}

.container{width:min(1120px, calc(100% - 48px)); margin:0 auto;}
.spacer{height:24px}

.header{
  position:sticky; top:0; z-index:40;
  backdrop-filter: blur(14px);
  -webkit-backdrop-filter: blur(14px);
  background: rgba(6,7,13,.55);
  border-bottom: 1px solid rgba(255,255,255,.06);
}
.header__row{
  display:flex; align-items:center; justify-content:space-between;
  padding:14px 0;
}
.brand{display:flex; align-items:center; gap:12px; min-width:240px;}
.brand img{
  height:34px; width:auto; max-width:170px;
  display:block;
  filter: drop-shadow(0 6px 18px rgba(0,0,0,.55));
}
.brand__text{display:flex; flex-direction:column; line-height:1.05}
.brand__name{font-weight:750; font-size:14px; letter-spacing:.4px}
.brand__sub{font-size:12px; color:var(--muted2); margin-top:2px}

.nav{display:flex; align-items:center; gap:8px;}
.nav a{
  padding:10px 12px;
  border-radius:999px;
  color:var(--muted);
  border:1px solid transparent;
}
.nav a.is-active{
  color:var(--text);
  border-color: rgba(255,255,255,.10);
  background: rgba(255,255,255,.05);
}

.actions{display:flex; align-items:center; gap:10px;}
.btn{
  display:inline-flex; align-items:center; justify-content:center;
  padding:10px 14px;
  border-radius:999px;
  border:1px solid rgba(255,255,255,.14);
  background: rgba(255,255,255,.05);
  color:var(--text);
  font-weight:650;
  transition: transform .12s ease, background .12s ease, border-color .12s ease;
}
.btn:hover{transform: translateY(-1px); background: rgba(255,255,255,.06); border-color: rgba(255,255,255,.18);}
.btn--primary{
  background: linear-gradient(90deg, rgba(243,154,72,.20), rgba(243,154,72,.10));
  border-color: rgba(243,154,72,.35);
}
.btn--ghost{background:transparent}
.burger{
  display:none;
  width:42px; height:42px;
  border-radius:12px;
  border:1px solid rgba(255,255,255,.12);
  background: rgba(255,255,255,.04);
  align-items:center; justify-content:center;
}
.burger span{
  width:18px;height:2px;background:rgba(255,255,255,.8);display:block;position:relative;
}
.burger span::before,.burger span::after{
  content:""; position:absolute; left:0; width:18px; height:2px; background:rgba(255,255,255,.8);
}
.burger span::before{top:-6px}
.burger span::after{top:6px}

.mobile{
  display:none;
  border-top:1px solid rgba(255,255,255,.06);
  padding:10px 0 18px;
}
.mobile.is-open{display:block}
.mobile a{display:block; padding:12px 10px; border-radius:12px; color:var(--muted);}
.mobile a:hover{background:rgba(255,255,255,.05); color:var(--text);}

.hero{
  position:relative;
  padding:58px 0 34px;
}

/* Home hero (simple, like the subpages – no “UI mock” overlay) */
.hero.hero--simple{padding:64px 0 30px;}

/* On the start page we render the hero image as a global backdrop (body.home::before).
   Hide the per-section banner to prevent double overlays and muddy backgrounds. */
body.home .hero.hero--simple .hero__banner{display:none;}
.heroSimple{
  max-width: 1040px;
  margin: 0 auto;
  border-radius: calc(var(--radius) + 14px);
  border: 1px solid rgba(255,255,255,.12);
  background: rgba(10,11,20,.76);
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
  padding: 26px;
  box-shadow: 0 22px 80px rgba(0,0,0,.60);
  position:relative;
  overflow:hidden;
}
.heroSimple::before{
  content:"";
  position:absolute;
  inset:-140px;
  background:
    radial-gradient(560px 320px at 16% 22%, rgba(58,163,255,.16), transparent 62%),
    radial-gradient(560px 320px at 84% 18%, rgba(243,154,72,.16), transparent 62%),
    radial-gradient(760px 460px at 48% 86%, rgba(140,78,255,.10), transparent 66%);
  filter: blur(44px);
  opacity:.70;
  pointer-events:none;
}
.heroSimple > *{position:relative; z-index:1}
.hero__banner{
  position:absolute;
  inset:0;
  background-image: url("./img/hero.png");
  background-size: cover;
  background-position:center;
  filter: saturate(1.05) contrast(1.02);
  transform: scale(1.02);
}

.hero__banner::before{
  content:"";
  position:absolute; inset:0;
  /* Clean overlay without hard gradient bands */
  background:
    radial-gradient(900px 520px at 22% 24%, rgba(58,163,255,.18), transparent 62%),
    radial-gradient(900px 520px at 82% 22%, rgba(243,154,72,.18), transparent 62%),
    radial-gradient(1200px 760px at 50% 10%, rgba(0,0,0,.28), rgba(0,0,0,.78));
}
.hero__content{
  position:relative;
  display:grid;
  grid-template-columns: 1.2fr .8fr;
  gap:18px;
  align-items:stretch;
  padding:0;
  border:none;
  background: transparent;
  backdrop-filter:none;
  -webkit-backdrop-filter:none;
  box-shadow:none;
}
.heroMain{
  border-radius: calc(var(--radius) + 12px);
  border: 1px solid rgba(255,255,255,.12);
  background: rgba(10,11,20,.74);
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
  padding:24px;
  box-shadow: 0 18px 70px rgba(0,0,0,.55);
  position:relative;
  overflow:hidden;
}
.heroMain::before{
  /* animated ambient glow (subtle, but adds “life”) */
  content:"";
  position:absolute;
  inset:-120px;
  background:
    radial-gradient(520px 280px at 18% 22%, rgba(58,163,255,.18), transparent 60%),
    radial-gradient(520px 280px at 78% 18%, rgba(243,154,72,.18), transparent 60%),
    radial-gradient(720px 420px at 48% 82%, rgba(140,78,255,.10), transparent 66%);
  filter: blur(42px);
  opacity:.70;
  animation: drift 10s ease-in-out infinite alternate;
  pointer-events:none;
}
.heroMain::after{
  /* subtle highlight line like “premium” landing pages */
  content:"";
  position:absolute;
  inset:-2px;
  background: radial-gradient(700px 240px at 18% 18%, rgba(58,163,255,.18), transparent 60%),
              radial-gradient(700px 240px at 82% 18%, rgba(243,154,72,.18), transparent 60%);
  opacity:.75;
  pointer-events:none;
}
.heroMain > *{position:relative; z-index:1}
.chips{display:flex; flex-wrap:wrap; gap:8px; margin-bottom:12px}
.chip{
  font-size:12px; color:rgba(255,255,255,.82);
  padding:6px 10px; border-radius:999px;
  border:1px solid rgba(255,255,255,.12);
  background: rgba(255,255,255,.04);
}
.h1{margin:0; font-size:52px; line-height:1.02; letter-spacing:-1px;}
.h1--home{font-size:56px;}
.h1 .accent{background: linear-gradient(90deg, var(--accent2), var(--accent)); -webkit-background-clip:text; background-clip:text; color:transparent;}
.lead{margin:12px 0 16px; color:var(--muted); max-width:58ch}
.hero__cta{display:flex; gap:10px; flex-wrap:wrap; margin-top:4px}
.kpis{
  display:grid; gap:10px;
}
.kpiRow{
  display:grid; grid-template-columns: 1fr 1fr 1fr;
  gap:10px;
}
.kpi{
  padding:12px 12px;
  border-radius:16px;
  border:1px solid rgba(255,255,255,.10);
  background: rgba(255,255,255,.04);
}
.kpi__l{font-size:11px; color:var(--muted2)}
.kpi__v{font-size:14px; font-weight:750; margin-top:4px}

.grid3--tight{gap:12px}

.grid4{
  display:grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap:14px;
}

.card--link{cursor:pointer; text-decoration:none; color:inherit}
.card--link .card__cta{display:inline-block; margin-top:10px; color:rgba(255,255,255,.75); font-weight:700}
.card--link:hover .card__cta{color:rgba(255,255,255,.92)}
.card--link:hover{transform: translateY(-2px)}
.sideCard{
  border-radius:18px;
  border:1px solid rgba(255,255,255,.10);
  background: rgba(10,11,20,.72);
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
  padding:14px;
  position:relative;
  overflow:hidden;
}
.sideCard::before{
  content:"";
  position:absolute;
  inset:-140px;
  background:
    radial-gradient(600px 320px at 88% 16%, rgba(243,154,72,.16), transparent 62%),
    radial-gradient(600px 320px at 14% 28%, rgba(58,163,255,.14), transparent 62%);
  filter: blur(44px);
  opacity:.55;
  animation: drift 12s ease-in-out infinite alternate;
  pointer-events:none;
}
.sideCard > *{position:relative; z-index:1}
.sideCard__top{display:flex; align-items:center; justify-content:space-between; margin-bottom:10px}
.sideCard__title{font-weight:800; font-size:13px}
.badge{font-size:11px; padding:6px 10px; border-radius:999px; border:1px solid rgba(255,255,255,.12); background:rgba(255,255,255,.04); color:rgba(255,255,255,.78)}
.quickList{display:grid; gap:10px}
.quick{
  display:flex; gap:10px; align-items:flex-start;
  padding:10px;
  border-radius:14px;
  border:1px solid rgba(255,255,255,.08);
  background: rgba(255,255,255,.03);
}
.quick__icon{
  width:30px; height:30px; border-radius:12px;
  display:grid; place-items:center;
  border:1px solid rgba(255,255,255,.12);
  background: rgba(255,255,255,.04);
  color:rgba(255,255,255,.9);
  font-weight:800;
}
.quick__name{font-weight:750; font-size:13px}
.quick__desc{font-size:12px; color:var(--muted2); margin-top:2px}
.tip{margin-top:10px; font-size:12px; color:var(--muted2)}

.section{
  padding:34px 0 46px;
  position:relative;
  background: rgba(255,255,255,.01);
}
.section::before{
  content:"";
  position:absolute;
  left:0; right:0; top:0;
  height:1px;
  background: linear-gradient(90deg, transparent, rgba(255,255,255,.10), transparent);
  opacity:.45;
}
.section__head{
  display:flex; align-items:flex-end; justify-content:space-between; gap:16px;
  margin-bottom:14px;
}
.h2{margin:0; font-size:24px; letter-spacing:-.4px; font-weight:900}
.sub{color:var(--muted2); font-size:13px}

.grid3{
  display:grid;
  grid-template-columns: repeat(3, 1fr);
  gap:12px;
}
.card{
  border-radius: var(--radius);
  border:1px solid rgba(255,255,255,.10);
  background: rgba(10,11,20,.44);
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
  padding:14px;
  position:relative;
  overflow:hidden;
  transition: transform .16s ease, border-color .16s ease, background .16s ease, box-shadow .16s ease;
}
.card::before{
  content:"";
  position:absolute;
  inset:-2px;
  background:
    radial-gradient(520px 240px at 18% 10%, rgba(58,163,255,.14), transparent 60%),
    radial-gradient(520px 240px at 82% 10%, rgba(243,154,72,.14), transparent 60%);
  opacity:.55;
  pointer-events:none;
}
.card:hover{
  transform: translateY(-2px);
  border-color: rgba(243,154,72,.22);
  background: rgba(12,13,22,.52);
  box-shadow: 0 18px 48px rgba(0,0,0,.52);
}
.card > *{position:relative; z-index:1}
.card__t{font-weight:800; margin:0 0 6px; font-size:14px}
.card__p{margin:0; color:var(--muted2); font-size:13px}
.iconDot{
  width:34px;height:34px;border-radius:14px;
  display:grid;place-items:center;
  margin-bottom:10px;
  border:1px solid rgba(255,255,255,.12);
  background: rgba(255,255,255,.04);
}


/* ===== Home hero image slider ===== */
.heroSlider{
  border-radius: var(--radius);
  border:1px solid rgba(255,255,255,.10);
  background: rgba(10,11,20,.44);
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
  position:relative;
  overflow:hidden;
  height: clamp(160px, 20vw, 460px);
}
.heroSlider::after{
  content:"";
  position:absolute;
  inset:0;
  background:
    radial-gradient(700px 240px at 18% 14%, rgba(58,163,255,.14), transparent 62%),
    radial-gradient(700px 240px at 82% 14%, rgba(243,154,72,.14), transparent 62%),
    linear-gradient(180deg, rgba(0,0,0,.08), rgba(0,0,0,.48));
  pointer-events:none;
  z-index:2;
}
.heroSlider__track{
  height:100%;
  display:flex;
  width:100%;
  transform: translateX(0%);
  transition: transform .42s cubic-bezier(.2,.85,.2,1);
  will-change: transform;
}
.heroSlider__slide{
  flex: 0 0 100%;
  height:100%;
  position:relative;
}
.heroSlider__slide img{
  width:100%;
  height:100%;
  object-fit: cover;
  display:block;
  filter: saturate(1.06) contrast(1.02);
}
.heroSlider__btn{
  position:absolute;
  top:50%;
  transform: translateY(-50%);
  width:46px;
  height:46px;
  border-radius:999px;
  border:1px solid rgba(255,255,255,.14);
  background: rgba(10,11,20,.42);
  backdrop-filter: blur(14px);
  -webkit-backdrop-filter: blur(14px);
  display:grid;
  place-items:center;
  color:rgba(255,255,255,.92);
  cursor:pointer;
  z-index:3;
  transition: transform .12s ease, background .12s ease, border-color .12s ease, opacity .12s ease;
}
.heroSlider__btn:hover{
  transform: translateY(-50%) scale(1.04);
  background: rgba(12,13,22,.52);
  border-color: rgba(243,154,72,.22);
}
.heroSlider__btn:active{
  transform: translateY(-50%) scale(.98);
}
.heroSlider__btn:focus-visible{
  outline:2px solid rgba(58,163,255,.55);
  outline-offset:2px;
}
.heroSlider__btn span{
  font-size:28px;
  line-height:1;
  margin-top:-2px;
  user-select:none;
}
.heroSlider__btn--prev{left:12px;}
.heroSlider__btn--next{right:12px;}

.heroSlider__dots{
  position:absolute;
  left:50%;
  bottom:10px;
  transform: translateX(-50%);
  display:flex;
  gap:8px;
  z-index:3;
}
.heroSlider__dot{
  width:8px;
  height:8px;
  border-radius:999px;
  border:1px solid rgba(255,255,255,.22);
  background: rgba(255,255,255,.10);
  opacity:.85;
  cursor:pointer;
}
.heroSlider__dot.is-active{
  width:22px;
  background: linear-gradient(90deg, rgba(58,163,255,.65), rgba(243,154,72,.65));
  border-color: rgba(255,255,255,.28);
}

@media (prefers-reduced-motion: reduce){
  .heroSlider__track{transition:none;}
  .heroSlider__btn{transition:none;}
}

@media (max-width: 680px){
  .heroSlider{height: 176px;}
  .heroSlider__btn{width:42px; height:42px;}
  .heroSlider__btn span{font-size:26px;}
}

.ctaBand{
  border-radius: calc(var(--radius) + 8px);
  border:1px solid rgba(255,255,255,.12);
  background: rgba(10,11,20,.46);
  backdrop-filter: blur(14px);
  -webkit-backdrop-filter: blur(14px);
  padding:18px;
  display:flex; align-items:center; justify-content:space-between; gap:14px;
  position:relative;
  overflow:hidden;
}
.ctaBand::before{
  content:"";
  position:absolute;
  inset:-2px;
  background:
    radial-gradient(700px 300px at 18% 20%, rgba(58,163,255,.12), transparent 60%),
    radial-gradient(700px 300px at 82% 20%, rgba(243,154,72,.16), transparent 60%);
  opacity:.65;
  pointer-events:none;
}
.ctaBand > *{position:relative; z-index:1}
.ctaBand__t{font-weight:900; font-size:16px; margin:0}
.ctaBand__p{margin:4px 0 0; color:var(--muted2); font-size:13px}

.footer{
  padding:24px 0 40px;
  color:var(--muted2);
  border-top:1px solid rgba(255,255,255,.06);
  margin-top:24px;
}
.footer__row{display:flex; justify-content:space-between; gap:12px; flex-wrap:wrap; align-items:center;}
.footer a{color:var(--muted)}
.footer a:hover{color:var(--text)}

/* Tables & inputs (for laws/fines) */
.input, select{
  width:100%;
  padding:10px 12px;
  border-radius:14px;
  border:1px solid rgba(255,255,255,.10);
  background: rgba(255,255,255,.04);
  color:var(--text);
  outline:none;
}
.input:focus, select{color-scheme: dark}
select:focus{border-color: rgba(243,154,72,.35); box-shadow: 0 0 0 4px rgba(243,154,72,.10)}
.tag{
  display:inline-flex; align-items:center; gap:6px;
  padding:4px 8px;
  border-radius:999px;
  border:1px solid rgba(255,255,255,.10);
  background: rgba(255,255,255,.04);
  font-size:12px; color:rgba(255,255,255,.84);
}
.notice{
  border-radius:16px;
  border:1px dashed rgba(255,255,255,.16);
  padding:12px;
  color:var(--muted);
  background: rgba(255,255,255,.03);
}
.table{
  width:100%;
  border-collapse:separate;
  border-spacing:0;
  overflow:hidden;
  border-radius:18px;
  border:1px solid rgba(255,255,255,.10);
  background: rgba(255,255,255,.03);
}
.table th, .table td{
  padding:12px 12px;
  border-bottom:1px solid rgba(255,255,255,.06);
  vertical-align:top;
}
.table th{font-size:12px; color:var(--muted); text-transform:uppercase; letter-spacing:.08em}
.table tr:last-child td{border-bottom:none}
.chk{width:18px;height:18px}

.pageHero{
  padding:26px 0 14px;
}
.pageHero__box{
  border-radius: calc(var(--radius) + 6px);
  border:1px solid rgba(255,255,255,.10);
  background: rgba(255,255,255,.04);
  padding:18px;
}
.pageHero__title{margin:0; font-size:28px; letter-spacing:-.4px}
.pageHero__p{margin:8px 0 0; color:var(--muted2)}

.layout{
  display:grid;
  grid-template-columns: 270px 1fr;
  gap:14px;
}
.sidebar{
  border-radius:18px; border:1px solid rgba(255,255,255,.10);
  background: rgba(255,255,255,.03);
  padding:10px;
  position:sticky; top:92px;
  height: fit-content;
}
.sidebar__btn{
  width:100%;
  text-align:left;
  border:1px solid transparent;
  background:transparent;
  color:var(--muted);
  padding:10px 10px;
  border-radius:14px;
  cursor:pointer;
  font-weight:650;
}
.sidebar__btn:hover{background:rgba(255,255,255,.04); color:var(--text)}
.sidebar__btn.is-active{background:rgba(243,154,72,.10); border-color:rgba(243,154,72,.22); color:var(--text)}

.lawItem{
  border-radius:18px;
  border:1px solid rgba(255,255,255,.10);
  background: rgba(255,255,255,.03);
  padding:14px;
  margin-bottom:12px;
}
.lawItem__head{display:flex; gap:10px; align-items:baseline; flex-wrap:wrap}
.lawItem__code{font-weight:900; color:rgba(243,154,72,.95)}
.lawItem__title{font-weight:850}
.lawItem__text{margin:12px 0 0; color:var(--muted); line-height:1.6; font-size:13px}
.lawItem__text .lawP{margin:0 0 10px}
.lawItem__text .lawP:last-child{margin-bottom:0}
.lawItem__text .lawNum{color:rgba(243,154,72,.95); font-weight:900; margin-right:6px}
.lawItem__text .lawList{margin:8px 0 10px; padding-left:18px}
.lawItem__text .lawList:last-child{margin-bottom:0}
.lawItem__text .lawList li{margin:6px 0}


.checkRow{margin:12px 0 4px; padding:10px 12px; border-radius:14px; border:1px solid rgba(255,255,255,.10); background: rgba(255,255,255,.02); color:var(--muted)}
.checkRow label{display:flex; gap:10px; align-items:center; cursor:pointer; font-weight:650}

.calcBox{
  border-radius:18px;
  border:1px solid rgba(255,255,255,.10);
  background: rgba(255,255,255,.03);
  padding:14px;
}
.calcRow{display:flex; justify-content:space-between; gap:12px; align-items:baseline; padding:10px 0; border-bottom:1px solid rgba(255,255,255,.06)}
.calcRow:last-child{border-bottom:none}
.calcRow__l{color:var(--muted2); font-size:12px}
.calcRow__v{font-weight:900}

.reveal{transform: translateY(10px); opacity:0; transition: opacity .45s ease, transform .45s ease}
.reveal.is-in{transform: translateY(0); opacity:1}
.js .reveal{opacity:0}
.no-js .reveal{opacity:1; transform:none}


/* --- Content / Prose helpers --- */
.grid2{display:grid; grid-template-columns: 1fr 1fr; gap:12px;}
.grid2.is-single{grid-template-columns: 1fr;}

/* Quiz steps: auto-fit so 2 cards don't leave an empty 3rd column */
.gridSteps{display:grid; gap:12px; grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));}
.prose{color:var(--muted); font-size:13px}
.prose p{margin:10px 0}
.prose b{color:var(--text)}
.list{margin:8px 0 0; padding-left:18px}
.list li{margin:6px 0}
.steps{margin:8px 0 0; padding-left:18px}
.steps li{margin:7px 0}
.callout{
  margin-top:12px;
  padding:12px;
  border-radius:16px;
  border:1px solid rgba(243,154,72,.22);
  background: rgba(243,154,72,.08);
  color: rgba(255,255,255,.85);
}
.kbd{
  display:inline-flex;
  padding:2px 8px;
  border-radius:10px;
  border:1px solid rgba(255,255,255,.16);
  background: rgba(255,255,255,.04);
  font-size:12px;
  color: rgba(255,255,255,.85);
}
.link{color: rgba(243,154,72,.95); text-decoration:none}
.link:hover{text-decoration:underline}
.muted{color:var(--muted2)}

@media (max-width: 980px){
  .hero__content{grid-template-columns: 1fr; padding:18px}
  .heroSimple{padding:18px}
  .h1{font-size:40px}
  .h1--home{font-size:42px}
  .kpiRow{grid-template-columns: 1fr}
  .layout{grid-template-columns: 1fr}
  .sidebar{position:relative; top:auto}
  .grid3{grid-template-columns: 1fr}
  .grid4{grid-template-columns: 1fr}
  .grid2{grid-template-columns: 1fr}
  .nav{display:none}
  .burger{display:inline-flex}
  .brand{min-width:auto}
}

.finesGrid{display:grid; grid-template-columns: minmax(0, 1fr) 360px; gap:14px}
.finesGrid > .card{min-width:0}
.card--finesMain{overflow:visible}

.finesTableWrap{overflow:auto; -webkit-overflow-scrolling:touch; border-radius:18px}
.table--fines{min-width:1080px; width:max-content}
.table--fines th, .table--fines td{white-space:normal}
.table--fines .thNum, .table--fines .cellNum{text-align:right; white-space:nowrap}
.table--fines .qty{width:76px}

/* Custom dropdown for Bußgeldrechner (avoids white native select popup) */
.srOnly{position:absolute!important; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0}
.selectX{position:relative}
.selectX__btn{
  width:100%;
  display:flex; align-items:center; justify-content:space-between; gap:10px;
  padding:10px 12px;
  border-radius:14px;
  border:1px solid rgba(255,255,255,.10);
  background: rgba(255,255,255,.04);
  color:var(--text);
  outline:none;
  cursor:pointer;
}
.selectX__btn:focus{border-color: rgba(243,154,72,.35); box-shadow: 0 0 0 4px rgba(243,154,72,.10)}
.selectX__chev{opacity:.8}
.selectX__menu{
  position:absolute;
  left:0; right:0;
  top: calc(100% + 8px);
  padding:6px;
  border-radius:14px;
  border:1px solid rgba(255,255,255,.12);
  background: #0b0c14;              /* komplett deckend */
  backdrop-filter: none;
  -webkit-backdrop-filter: none;
  z-index:9999;                      /* sicher über allem */  
  box-shadow: 0 18px 48px rgba(0,0,0,.55);
  max-height:260px;
  overflow:auto;
  display:none;
}
.selectX.is-open .selectX__menu{display:block}
.selectX__opt{
  width:100%;
  text-align:left;
  padding:10px 10px;
  border-radius:12px;
  border:1px solid transparent;
  background:transparent;
  color:rgba(255,255,255,.86);
  cursor:pointer;
  font-weight:650;
}
.selectX__opt:hover{background: rgba(255,255,255,.06)}
.selectX__opt.is-selected{background: rgba(243,154,72,.12); border-color: rgba(243,154,72,.22); color:rgba(255,255,255,.92)}

@media (max-width: 980px){
  .finesGrid{grid-template-columns: 1fr}
}

/* --- Quiz --- */
.userBox{display:block}
.userChip{display:flex; gap:12px; align-items:center}
.userChip__av{width:40px; height:40px; border-radius:12px; overflow:hidden; border:1px solid rgba(255,255,255,.12); background: rgba(255,255,255,.05)}
.userChip__av img{width:100%; height:100%; object-fit:cover}
.userChip__name{font-weight:900}
.userChip__sub{color:var(--muted2); font-size:12px}

.quizHdr{display:flex; align-items:flex-end; justify-content:space-between; gap:16px; flex-wrap:wrap}
.quizHdr__chips{display:flex; gap:8px; flex-wrap:wrap; align-items:center}

.quizStepper{min-height: 280px}

.qStep{padding:2px 2px}
.qStep__top{display:flex; justify-content:space-between; align-items:center; gap:12px; margin-bottom:10px}
.qStep__count{font-weight:900; letter-spacing:-.2px}
.qStep__id{
  font-size:12px;
  padding:6px 10px;
  border-radius:999px;
  border:1px solid rgba(255,255,255,.12);
  background: rgba(255,255,255,.04);
  color: rgba(255,255,255,.86);
}
.qStep__q{font-size:18px; line-height:1.35; font-weight:900; letter-spacing:-.2px; margin:0 0 12px}
.qStep__opts{display:grid; gap:10px}

.qStepOpt{
  display:grid;
  grid-template-columns: 18px 1fr;
  gap:12px;
  align-items:flex-start;
  padding:12px 12px;
  border-radius:16px;
  border:1px solid rgba(255,255,255,.10);
  background: rgba(255,255,255,.03);
  cursor:pointer;
  transition: transform .12s ease, border-color .12s ease, background .12s ease, box-shadow .12s ease;
}
.qStepOpt input{margin-top:3px; accent-color: var(--accent)}
.qStepOpt__text{color: rgba(255,255,255,.90); line-height:1.35}
.qStepOpt:hover{transform: translateY(-1px); border-color: rgba(243,154,72,.28); background: rgba(243,154,72,.06)}
.qStepOpt.is-selected{border-color: rgba(58,163,255,.42); background: rgba(58,163,255,.10); box-shadow: 0 10px 34px rgba(0,0,0,.35)}

.quizActions{margin-top:14px; display:flex; flex-direction:column; gap:10px}
.quizProgress{height: 8px; border-radius:999px; border:1px solid rgba(255,255,255,.12); background: rgba(255,255,255,.04); overflow:hidden; position:relative}
.quizProgress__fill{height:100%; width:0%; background: linear-gradient(90deg, var(--accent2), var(--accent)); border-radius:999px; transition: width .18s ease}
.quizActions__row{display:flex; gap:10px; justify-content:flex-end; flex-wrap:wrap}
.quizActions__row .btn{min-width: 120px}
.quizActions__row .btn[disabled]{opacity:.55; cursor:not-allowed}
.resultBox{
  white-space:pre-wrap;
  margin:10px 0 0;
  padding:12px;
  border-radius:16px;
  border:1px solid rgba(255,255,255,.10);
  background: rgba(0,0,0,.25);
  color: rgba(255,255,255,.90);
}


/* Local file:// notice */
.localNotice{
  position: fixed;
  left: 16px;
  bottom: 16px;
  z-index: 9999;
  max-width: min(520px, calc(100vw - 32px));
  padding: 12px 14px;
  border-radius: 14px;
  background: rgba(15, 16, 21, .72);
  border: 1px solid rgba(255,255,255,.12);
  backdrop-filter: blur(12px);
  box-shadow: 0 12px 40px rgba(0,0,0,.55);
  font-size: 13px;
  color: rgba(255,255,255,.88);
}
.localNotice a{ color: rgba(255,255,255,.95); text-decoration: underline; }
.localNotice .small{ display:block; margin-top:6px; opacity:.8; font-size:12px; }
