/* Rechner Engine – Google-Style */
.re-calc{
  --re-blue:#4285F4; --re-red:#EA4335; --re-yellow:#FBBC05; --re-green:#34A853;
  --re-ink:#202124; --re-muted:#5f6368; --re-line:#dadce0; --re-soft:#f1f6fe;
  max-width:860px; margin:0 auto 28px; background:#fff;
  border:1px solid var(--re-line); border-radius:24px; padding:24px;
  box-shadow:0 1px 6px rgba(32,33,36,.12);
  font-family:inherit; color:var(--re-ink);
}
/* 2-Spalten-Layout wie im PRO-Entwurf: Eingaben links, Ergebnis rechts */
.re-grid{display:grid; grid-template-columns:1fr 1fr; gap:18px; align-items:start;}
@media(max-width:680px){ .re-grid{grid-template-columns:1fr;} }
.re-inputs{background:var(--re-soft); border:1px solid var(--re-line); border-radius:16px; padding:16px 16px 18px;}
.re-result-col{border:1px solid var(--re-line); border-radius:16px; overflow:hidden;}
.re-rhead{background:var(--re-blue); color:#fff; font-weight:700; padding:12px 18px; font-size:1rem;}
.re-btn{margin-top:14px; width:100%; padding:12px; background:var(--re-green); color:#fff; border:0; border-radius:12px; font-size:1rem; font-weight:700; cursor:pointer;}
.re-btn:hover{filter:brightness(.96);}
.re-btn2{margin-top:8px; width:100%; padding:11px; background:#fff; color:var(--re-ink); border:1px solid var(--re-line); border-radius:12px; font-size:.95rem; font-weight:600; cursor:pointer;}
.re-btn2:hover{background:#f1f3f5;}
.re-hint{text-align:center; font-size:.8rem; color:var(--re-muted); margin:8px 0 0;}
.re-field{margin-bottom:16px;}
.re-field label{display:block; font-size:.82rem; font-weight:600; color:var(--re-muted); margin-bottom:6px;}
.re-field input,.re-field select{
  width:100%; box-sizing:border-box; padding:12px 16px; font-size:1.05rem;
  border:1px solid var(--re-line); border-radius:999px; background:#fff; color:var(--re-ink);
  transition:box-shadow .15s,border-color .15s;
}
.re-field input:focus,.re-field select:focus{
  outline:none; border-color:var(--re-blue); box-shadow:0 1px 8px rgba(66,133,244,.25);
}
.re-result{
  padding:16px 18px 18px; background:#fff; animation:re-pop .25s ease;
}
@keyframes re-pop{from{transform:scale(.97);opacity:.4}to{transform:scale(1);opacity:1}}
.re-result .re-lbl{font-size:.78rem; font-weight:700; letter-spacing:.06em; text-transform:uppercase; color:var(--re-muted);}
.re-result .re-big{font-size:2rem; font-weight:700; color:var(--re-blue); margin:2px 0 8px;}
.re-detail{display:flex; justify-content:space-between; gap:14px; padding:8px 0; border-top:1px solid rgba(66,133,244,.15); font-size:.95rem;}
.re-detail b{white-space:normal; text-align:right; word-break:break-word;}
/* Brückentage: lange Plan-Zeilen sauber stapeln (Name oben, Beschreibung darunter, voller Umbruch) */
[data-calc="brueckentage"] .re-detail{flex-direction:column; align-items:flex-start; gap:2px;}
[data-calc="brueckentage"] .re-detail span{font-weight:700; font-size:.9rem;}
[data-calc="brueckentage"] .re-detail b{white-space:normal; font-weight:400; color:var(--re-ink,#202124); line-height:1.4;}
.re-note{margin-top:14px; font-size:.78rem; color:var(--re-muted);}

/* ===== Brückentage-Cluster (Bundesland-Landingpages + Pillar) ===== */
.bt-crumbs{font-size:.82rem;color:#5f6368;margin:0 0 14px}
.bt-crumbs a{color:#4285F4;text-decoration:none}
.bt-crumbs span{color:#202124}
.bt-lead{font-size:1.05rem;line-height:1.6;color:#202124;margin:0 0 22px}
.bt-table{overflow-x:auto;margin:16px 0 8px}
.bt-table table{width:100%;border-collapse:collapse;font-size:.92rem}
.bt-table th,.bt-table td{padding:9px 10px;text-align:left;border-bottom:1px solid #e6e9ef;vertical-align:top}
.bt-table thead th{background:#f6f8fc;font-weight:700;color:#202124;white-space:nowrap}
.bt-table tbody tr:hover{background:#f9fbff}
.bt-statesgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:8px;margin:14px 0 18px}
.bt-statesgrid a{display:block;padding:11px 14px;border:1px solid #dadce0;border-radius:12px;color:#202124;text-decoration:none;font-size:.92rem;font-weight:600;transition:.14s}
.bt-statesgrid a:hover{border-color:#4285F4;background:#f2f6ff;transform:translateY(-1px)}
.bt-links{margin-top:30px;padding-top:6px;border-top:1px solid #e6e9ef}
.bt-back{font-size:.9rem;color:#5f6368}
.bt-back a{color:#4285F4;text-decoration:none}
@media(max-width:520px){.bt-statesgrid{grid-template-columns:repeat(2,1fr)}.bt-table{font-size:.82rem}}

/* ===== Feiertage-Cluster ===== */
.ft-next{background:#eef6ff;border:1px solid #cfe0fb;border-radius:12px;padding:12px 16px;margin:0 0 16px;font-size:.98rem}
.ft-cross{background:#f3fbf5;border:1px solid #cdeed6;border-left:4px solid #34A853;border-radius:12px;padding:14px 16px;margin:0 0 24px;font-size:.98rem}
.ft-cross a{color:#188038}
.ft-table{overflow-x:auto;margin:14px 0 8px}
.ft-table table{width:100%;border-collapse:collapse;font-size:.92rem}
.ft-table th,.ft-table td{padding:9px 12px;text-align:left;border-bottom:1px solid #e6e9ef;white-space:nowrap}
.ft-table thead th{background:#f6f8fc;font-weight:700;color:#202124}
.ft-table .ft-free{color:#188038;font-weight:600}
.ft-table .ft-we{color:#b06f00}
.ft-table .ft-row-we{background:#fffdf5}
@media(max-width:520px){.ft-table{font-size:.82rem}.ft-table th,.ft-table td{padding:7px 9px}}

/* Visueller Jahreskalender (Stil schulferien.org) */
.ft-cal{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin:10px 0 6px}
.ft-cal-month{border:1px solid #e6e9ef;border-radius:12px;padding:10px 10px 12px;background:#fff}
.ft-cal-title{font-weight:700;font-size:.9rem;margin:0 0 6px;text-align:center;color:#202124}
.ft-cal table{width:100%;border-collapse:collapse;table-layout:fixed}
.ft-cal th{font-size:.66rem;color:#9aa0a6;font-weight:600;padding:2px 0;text-align:center}
.ft-cal td{font-size:.72rem;text-align:center;padding:3px 0;border-radius:6px;color:#3c4043}
.ft-cal td.ft-cal-we{color:#b0b4ba}
.ft-cal td.ft-cal-h{background:#34A853;color:#fff;font-weight:700}
.ft-cal td.ft-cal-v{background:#F9AB00;color:#fff;font-weight:700}
.ft-cal td.ft-cal-empty{visibility:hidden}
.ft-cal-legend{display:flex;gap:18px;flex-wrap:wrap;font-size:.84rem;color:#5f6368;margin:0 0 14px}
.ft-cal-legend .lg{display:inline-flex;align-items:center;gap:7px}
.ft-cal-legend .sw{width:14px;height:14px;border-radius:4px;display:inline-block}
.ft-cal-legend .sw-h{background:#34A853}
.ft-cal-legend .sw-v{background:#F9AB00}
.ft-cal-legend .sw-we{background:#eceff3;border:1px solid #dadce0}
@media(max-width:900px){.ft-cal{grid-template-columns:repeat(3,1fr)}}
@media(max-width:640px){.ft-cal{grid-template-columns:repeat(2,1fr)}}
@media(max-width:380px){.ft-cal{grid-template-columns:1fr}}

/* Gesperrtes Feld auf Cluster-Seiten (Bundesland fest) */
.re-field select.re-locked,.re-field input.re-locked{background:#eef1f5; color:#3c4043; cursor:not-allowed; opacity:1;}
.re-lockhint{display:block; margin-top:4px; font-size:.76rem; color:var(--re-muted,#5f6368);}
.re-lockhint a{color:var(--re-blue,#4285F4);}

/* Rechenweg Schritt für Schritt (Nachhilfe-Box) */
.re-steps{margin:16px 0 4px}
.re-steps:empty{display:none}
.re-steps-box{background:#f6f8fc; border:1px solid #e2e8f4; border-left:4px solid var(--re-blue,#4285F4); border-radius:14px; padding:14px 18px 6px}
.re-steps-box h3{font-size:1.02rem; margin:0 0 8px; color:#202124}
.re-steps-box ol{margin:0; padding-left:22px}
.re-steps-box li{margin:0 0 10px; line-height:1.55; font-size:.95rem; color:#202124}
.re-steps-box li b{color:#1a1a1a}

/* Kalender direkt im Rechner-Ergebnis */
.re-btcal{margin:18px 0 4px}
.re-btcal:empty{display:none}
.re-btcal-head h3{font-size:1.05rem;margin:0 0 8px}
.re-hide{display:none;}
/* Kategorie-Akzente */
.re-cat-gesundheit .re-rhead{background:var(--re-green);} .re-cat-gesundheit .re-big{color:var(--re-green);}
.re-cat-mathe .re-rhead{background:var(--re-red);} .re-cat-mathe .re-big{color:var(--re-red);}
.re-cat-alltag .re-rhead{background:var(--re-yellow); color:#3a2e00;} .re-cat-alltag .re-big{color:#b06f00;}
.re-cat-fun .re-rhead{background:#A142F4;} .re-cat-fun .re-big{color:#A142F4;}
/* Durchgängige Kategorie-Skala (Gauge) */
.re-gauge{margin:8px 0 12px;}
.re-bar{display:flex;height:22px;border-radius:6px;overflow:hidden;}
.re-bar span{display:block;height:100%;}
.re-ptr{position:relative;height:16px;}
.re-ptr i{position:absolute;transform:translateX(-50%);top:0;font-style:normal;font-size:13px;font-weight:700;color:var(--re-ink);}
.re-ptr i:before{content:"▲";display:block;text-align:center;color:#111;font-size:11px;line-height:1;}
.re-ticks{position:relative;height:16px;font-size:11px;color:var(--re-muted);}
.re-ticks span{position:absolute;transform:translateX(-50%);top:0;white-space:nowrap;}
/* Extras (Vergleich, Maskottchen, Fun-Fact, Teilen-Karte) – 2-spaltig wie im PRO-Entwurf */
.re-extras{margin-top:16px; display:grid; grid-template-columns:1.15fr .85fr; gap:16px; align-items:start;}
@media(max-width:680px){ .re-extras{grid-template-columns:1fr;} }
.re-ex-card{text-align:center; background:var(--re-soft); border:1px solid var(--re-line); border-radius:14px; padding:14px;}
.re-ex-card .re-share{width:100%;}
.re-compare,.re-mascot,.re-fact{border-radius:12px;padding:10px 12px;margin:10px 0;font-size:.92rem;line-height:1.5;}
.re-compare{background:#eef6ff;border:1px solid #cfe4ff;}
.re-mascot{background:#f6f0ff;border:1px solid #e3d5ff;display:flex;gap:10px;align-items:flex-start;}
.re-face{font-size:24px;line-height:1;}
.re-fact{background:#eefbf2;border:1px solid #c9ecd5;}
.re-sharewrap{text-align:center;background:var(--re-soft);border:1px solid var(--re-line);border-radius:14px;padding:14px;margin-top:12px;}
.re-cardcap{font-size:12px;color:var(--re-muted);margin-bottom:8px;}
.re-storyimg{width:100%;max-width:270px;height:auto;border-radius:14px;box-shadow:0 4px 16px rgba(0,0,0,.16);border:1px solid var(--re-line);display:block;margin:0 auto;}
/* Teilen-Button */
.re-share{margin-top:12px;display:inline-flex;align-items:center;justify-content:center;gap:8px;border:1px solid #A142F4;color:#A142F4;background:#fff;border-radius:999px;padding:9px 16px;font-size:.9rem;font-weight:700;cursor:pointer;}
.re-sharewrap .re-share{width:100%;}
.re-share:hover{background:#faf5ff;}
@media(max-width:480px){ .re-calc{padding:20px 16px; border-radius:18px;} .re-result .re-big{font-size:1.6rem;} }
