/* ToolsBuddy – gemeinsame Basis für Kopfzeile, Fußzeile und Tool-Seiten */

:root{
  /* Redesign H2 (16.10.2026, Brendas Wahl): eine Marke aus zwei Farben im Verlauf,
     Blau #1d4ed8 → Violett #7c3aed. Text bleibt fast schwarz; Farbe nur dort, wo man
     klickt oder etwas hervorgehoben wird. Beide Farbenden tragen weiße Schrift mit
     mindestens 6,7 : 1 bzw. 5,7 : 1 Kontrast. */
  --bg:#fcfcfd;--surface:#ffffff;--surface-2:#f5f5f8;
  --glass:rgba(255,255,255,.86);--glass-brd:rgba(255,255,255,.9);
  --border:#ececf0;--border-hover:#d9d9e1;
  /* --text-3 war #8b8b98 (3,4 : 1 auf Weiß) und damit für kleine Schrift zu blass. */
  --text:#18181b;--text-2:#52525b;--text-3:#71717a;
  --brand-a:#1d4ed8;--brand-b:#7c3aed;
  --grad:linear-gradient(90deg,var(--brand-a),var(--brand-b));
  --grad-135:linear-gradient(135deg,var(--brand-a),var(--brand-b));
  --accent:#1d4ed8;--accent-hover:#1e40af;--accent-soft:#eef0ff;
  --link:#1d4ed8;
  --highlight:#c9761f;--highlight-soft:rgba(240,164,74,.16);
  --success:#15803d;--success-soft:rgba(34,160,90,.12);
  --danger:#d94a78;--danger-soft:rgba(239,95,140,.13);
  --purple:#7c3aed;--purple-soft:rgba(124,58,237,.10);
  --ocean:#1d4ed8;--ocean-soft:rgba(29,78,216,.09);
  --moss:#4f8f36;--moss-soft:rgba(90,158,61,.14);
  --clay:#b45c40;--clay-soft:rgba(196,105,74,.14);
  --tone-violet:#ddd6fe;--tone-rose:#e0e7ff;--tone-peach:#ede9fe;--tone-sky:#dbeafe;
  --m1:var(--tone-violet);--m2:var(--tone-rose);--m3:var(--tone-peach);--m4:var(--tone-sky);
  --radius:12px;--radius-lg:18px;
  --max-w:1180px;--max-rd:840px;
  --shadow-sm:0 1px 2px rgba(24,24,27,.04);
  --shadow-md:0 4px 14px rgba(24,24,27,.06);
  --shadow:0 14px 40px rgba(24,24,27,.09);
  --mono:'JetBrains Mono',ui-monospace,SFMono-Regular,Menlo,monospace;
  --sans:'Plus Jakarta Sans',system-ui,-apple-system,'Segoe UI',Roboto,sans-serif;
}

/* ---------- Kopfzeile ---------- */
.tbh{position:sticky;top:0;z-index:90;background:var(--glass);transition:background .25s,border-color .25s;backdrop-filter:blur(20px) saturate(160%);-webkit-backdrop-filter:blur(20px) saturate(160%);border-bottom:1px solid var(--border);font-family:var(--sans);}
.tbh-in{max-width:var(--max-w);margin:0 auto;padding:11px 24px;display:flex;align-items:center;gap:18px;position:relative;}
.tbh-logo{display:flex;align-items:center;gap:10px;text-decoration:none;color:var(--text);flex-shrink:0;}
/* Die Logo-Kachel trägt feste Markenfarben, damit sie unabhängig vom Farbsystem bleibt. */
.tbh-mark{width:32px;height:32px;border-radius:9px;background:linear-gradient(135deg,var(--brand-a),var(--brand-b));display:grid;place-items:center;overflow:hidden;}
.tbh-mark svg{width:100%;height:100%;display:block;}
.tbh-name{font-weight:700;font-size:17.5px;letter-spacing:-.5px;}
.tbh-name b{color:var(--text);}
.tbh-nav{display:flex;align-items:center;gap:1px;margin-left:auto;}
.tbh-item{position:relative;}
.tbh-btn{display:flex;align-items:center;gap:6px;padding:8px 11px;border-radius:9px;background:none;border:none;font-family:inherit;font-size:13.5px;font-weight:500;color:var(--text-2);cursor:pointer;transition:.15s;white-space:nowrap;}
.tbh-btn:hover,.tbh-item.open .tbh-btn{color:var(--text);background:var(--surface-2);}
.tbh-item.on .tbh-btn{color:var(--text);background:var(--surface-2);}
.tbh-btn i{width:8px;height:8px;border-right:1.6px solid currentColor;border-bottom:1.6px solid currentColor;transform:rotate(45deg) translate(-2px,-2px);opacity:.55;transition:transform .2s;}
.tbh-item.open .tbh-btn i{transform:rotate(225deg) translate(-1px,-1px);}
.tbh-link{display:flex;align-items:center;padding:8px 11px;border-radius:9px;font-size:13.5px;font-weight:500;color:var(--text-2);text-decoration:none;transition:.15s;white-space:nowrap;}
.tbh-link:hover{color:var(--text);background:var(--surface-2);}
.tbh-link.on{color:var(--text);background:var(--surface-2);}
.tbh-dd{position:absolute;top:calc(100% + 8px);right:0;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow);padding:7px;min-width:288px;opacity:0;visibility:hidden;transform:translateY(-7px);transition:.16s;}
.tbh-item.open .tbh-dd{opacity:1;visibility:visible;transform:translateY(0);}
.tbh-dd.wide{min-width:560px;display:grid;grid-template-columns:1fr 1fr;gap:1px 8px;}
.tbh-all{display:block;margin:3px 3px 4px;padding:8px 10px;border-radius:9px;background:var(--surface-2);font-family:var(--mono);font-size:10.5px;letter-spacing:.6px;text-transform:uppercase;color:var(--text-3);text-decoration:none;transition:.12s;}
.tbh-dd.wide .tbh-all{grid-column:1/-1;}
.tbh-all:hover{color:var(--text);}
.tbh-l{display:flex;align-items:center;gap:11px;padding:8px 10px;border-radius:10px;transition:.12s;text-decoration:none;}
.tbh-l:hover{background:var(--surface-2);}
.tbh-i{width:29px;height:29px;border-radius:9px;display:grid;place-items:center;flex-shrink:0;background:var(--ic-s,var(--accent-soft));color:var(--ic,var(--accent));}
.tbh-i svg{width:15px;height:15px;stroke-width:1.8;display:block;}
.tbh-t strong{display:block;font-size:13px;font-weight:600;color:var(--text);}
.tbh-t span{display:block;font-size:11px;color:var(--text-3);margin-top:1px;}
.tbh-burger{display:none;width:34px;height:34px;border-radius:9px;border:1px solid var(--border);background:var(--surface);color:var(--text-2);cursor:pointer;place-items:center;margin-left:auto;}
.tbh-burger svg{width:17px;height:17px;stroke-width:2;}

.tbh.is-clear{background:transparent;border-bottom-color:transparent;backdrop-filter:none;-webkit-backdrop-filter:none;}

/* ---------- Brotkrümel ---------- */
.tb-crumbs{max-width:var(--max-w);margin:0 auto;padding:18px 24px 0;position:relative;z-index:2;font-family:var(--sans);}
.tb-crumbs ol{list-style:none;display:flex;align-items:center;gap:7px;flex-wrap:wrap;font-size:12px;margin:0;padding:0;}
.tb-crumbs a{color:var(--text-3);text-decoration:none;transition:.12s;}
.tb-crumbs a:hover{color:var(--text);}
.tb-crumbs li[aria-current]{color:var(--text-2);font-weight:500;}
.tb-crumbs svg{width:11px;height:11px;color:var(--text-3);opacity:.6;stroke-width:2.2;display:block;}

/* ---------- Grundgerüst der Seiten ---------- */
.tb-page{position:relative;font-family:var(--sans);background:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased;overflow-x:hidden;margin:0;}
.tb-page *{box-sizing:border-box;}
.tb-grain{position:fixed;inset:0;pointer-events:none;z-index:1;opacity:.22;mix-blend-mode:overlay;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='300' height='300'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='3'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.42'/%3E%3C/svg%3E");}
/* Derselbe Verlauf wie auf der Startseite, nur flacher: Er reicht über die
   Kopfzeile hinaus, damit sie transparent darüber liegen kann. */
.tb-mesh{position:absolute;top:-160px;left:-10%;right:-10%;bottom:auto;height:calc(100% + 250px);pointer-events:none;opacity:.9;filter:blur(74px);z-index:0;
 -webkit-mask-image:linear-gradient(180deg,#000 0%,#000 52%,transparent 100%);
 mask-image:linear-gradient(180deg,#000 0%,#000 52%,transparent 100%);
 background:
  radial-gradient(42% 52% at 12% 30%,var(--tone-rose) 0%,transparent 65%),
  radial-gradient(38% 48% at 84% 24%,var(--tone-violet) 0%,transparent 65%),
  radial-gradient(46% 54% at 62% 72%,var(--tone-sky) 0%,transparent 65%),
  radial-gradient(36% 46% at 30% 78%,var(--tone-peach) 0%,transparent 65%);}
.tb-hero{position:relative;text-align:center;padding:56px 24px 34px;}
.tb-hero-in{position:relative;z-index:1;max-width:var(--max-rd);margin:0 auto;}
.tb-hero h1{font-size:clamp(26px,4.4vw,40px);font-weight:800;letter-spacing:-1.3px;line-height:1.12;margin:0 0 12px;}
.tb-hero h1 .grad{color:var(--text);}
.tb-hero p{color:var(--text-2);font-size:15.5px;line-height:1.62;max-width:600px;margin:0 auto;}
.tb-badges{display:flex;flex-wrap:wrap;gap:7px;justify-content:center;margin-top:18px;}
.tb-badge{display:inline-flex;align-items:center;gap:6px;padding:5px 12px;border-radius:100px;background:var(--surface);border:1px solid var(--border);font-size:11.5px;font-weight:500;color:var(--text-2);}
.tb-badge svg{width:12px;height:12px;stroke-width:2.2;color:var(--success);}
.tb-wrap{position:relative;z-index:3;max-width:var(--max-rd);margin:0 auto;padding:0 24px;}
.tb-wrap.wide{max-width:var(--max-w);}
.tb-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);padding:26px;box-shadow:var(--shadow-sm);margin-bottom:20px;}
.tb-section{margin-bottom:20px;}
.tb-section h2{font-size:19px;font-weight:700;letter-spacing:-.5px;margin:0 0 12px;}
.tb-prose h2{font-size:19px;font-weight:700;letter-spacing:-.5px;margin:24px 0 9px;}
.tb-prose h2:first-child{margin-top:0;}
.tb-prose h3{font-size:15px;font-weight:600;margin:18px 0 6px;}
.tb-prose p,.tb-prose li{font-size:14px;color:var(--text-2);line-height:1.82;}
.tb-prose p{margin:0 0 9px;}
.tb-prose ul,.tb-prose ol{margin:0 0 12px;padding-left:20px;}
.tb-prose li{margin-bottom:5px;}
.tb-prose a{color:var(--link);font-weight:500;text-decoration:underline;text-underline-offset:2px;text-decoration-thickness:1px;}
.tb-prose a:hover{color:var(--text);}
.tb-prose strong{color:var(--text);font-weight:600;}
.tb-prose code{font-family:var(--mono);font-size:12.5px;background:var(--surface-2);padding:2px 6px;border-radius:6px;color:var(--text);}
.tb-steps{counter-reset:s;list-style:none;padding:0;margin:0;}
.tb-steps li{counter-increment:s;position:relative;padding-left:38px;margin-bottom:12px;font-size:14px;color:var(--text-2);line-height:1.7;}
.tb-steps li::before{content:counter(s);position:absolute;left:0;top:-1px;width:26px;height:26px;border-radius:8px;background:var(--surface-2);border:1px solid var(--border);color:var(--text);font-family:var(--mono);font-size:12px;font-weight:600;display:grid;place-items:center;}
.tb-table-wrap{overflow-x:auto;margin:12px 0;}
.tb-table{width:100%;border-collapse:collapse;font-size:13px;}
.tb-table th{text-align:left;padding:9px 10px;font-family:var(--mono);font-weight:500;color:var(--text-3);font-size:10.5px;text-transform:uppercase;letter-spacing:.8px;border-bottom:2px solid var(--border);}
.tb-table td{padding:7px 10px;border-bottom:1px solid var(--border);font-size:13px;color:var(--text-2);}
.tb-table tr:hover td{background:var(--surface-2);}

/* ---------- Startseite: großflächiger Kopfbereich ---------- */
.hero-home{position:relative;text-align:center;padding:96px 24px 64px;}
/* Reicht bewusst über die Kopfzeile hinaus, damit der Verlauf hinter ihr durchscheint. */
.hero-home .hero-bg{position:absolute;top:-150px;left:-10%;right:-10%;height:calc(100% + 240px);z-index:0;pointer-events:none;filter:blur(72px);opacity:.95;
  -webkit-mask-image:linear-gradient(180deg,#000 0%,#000 55%,transparent 100%);
  mask-image:linear-gradient(180deg,#000 0%,#000 55%,transparent 100%);
  background:
    radial-gradient(42% 52% at 12% 28%,var(--tone-rose) 0%,transparent 65%),
    radial-gradient(38% 48% at 84% 22%,var(--tone-violet) 0%,transparent 65%),
    radial-gradient(46% 54% at 62% 74%,var(--tone-sky) 0%,transparent 65%),
    radial-gradient(36% 46% at 28% 80%,var(--tone-peach) 0%,transparent 65%);}
.hero-home .hero-in{position:relative;z-index:1;max-width:840px;margin:0 auto;}
.hero-eyebrow{display:inline-flex;align-items:center;gap:8px;padding:6px 14px;border-radius:100px;background:rgba(255,255,255,.72);backdrop-filter:blur(10px);border:1px solid rgba(255,255,255,.9);font-family:var(--mono);font-size:11.5px;letter-spacing:-.1px;color:var(--text-2);margin-bottom:26px;}
.hero-eyebrow s{width:6px;height:6px;border-radius:50%;background:var(--success);box-shadow:0 0 0 3px var(--success-soft);text-decoration:none;}
.hero-home h1{font-size:clamp(34px,6.2vw,62px);font-weight:800;letter-spacing:-2.2px;line-height:1.04;margin:0 0 18px;color:var(--text);}
.hero-rotate{display:inline-block;position:relative;padding:0 .16em;border-radius:14px;background:linear-gradient(110deg,var(--tone-violet),var(--tone-rose));white-space:nowrap;}
.hero-rotate span{display:inline-block;animation:heroIn .5s cubic-bezier(.2,.7,.3,1);}
@keyframes heroIn{from{opacity:0;transform:translateY(.32em);}to{opacity:1;transform:none;}}
.hero-home .hero-sub{font-size:clamp(15px,1.7vw,18px);color:var(--text-2);line-height:1.6;max-width:560px;margin:0 auto 28px;}
.hero-actions{display:flex;gap:10px;justify-content:center;flex-wrap:wrap;margin-bottom:28px;}
.hero-actions .tb-btn{padding:13px 24px;font-size:14.5px;border-radius:100px;}
.hero-actions .tb-btn.ghost{background:rgba(255,255,255,.8);backdrop-filter:blur(10px);}
.hero-quick{display:flex;flex-wrap:wrap;gap:7px;justify-content:center;margin-top:20px;font-size:12.5px;}
.hero-quick b{color:var(--text-3);font-weight:500;font-family:var(--mono);font-size:11px;text-transform:uppercase;letter-spacing:.8px;align-self:center;margin-right:4px;}
.hero-quick a{padding:6px 13px;border-radius:100px;background:rgba(255,255,255,.75);border:1px solid var(--border);color:var(--text-2);text-decoration:none;transition:.14s;}
.hero-quick a:hover{background:#fff;color:var(--text);border-color:var(--border-hover);}

/* Kennzahlenleiste */
.statband{border-top:1px solid var(--border);border-bottom:1px solid var(--border);background:var(--surface);position:relative;z-index:3;}
.statband-in{max-width:var(--max-w);margin:0 auto;padding:0 24px;display:grid;grid-template-columns:repeat(4,1fr);}
.statband .st{padding:26px 12px;text-align:center;border-right:1px solid var(--border);}
.statband .st:last-child{border-right:none;}
.statband .st-n{font-family:var(--mono);font-size:clamp(22px,3vw,30px);font-weight:600;letter-spacing:-1.2px;color:var(--text);}
.statband .st-l{font-size:12.5px;color:var(--text-3);margin-top:5px;}
@media(max-width:760px){
  .hero-home{padding:64px 18px 44px;}
  .statband-in{grid-template-columns:1fr 1fr;}
  .statband .st{border-bottom:1px solid var(--border);}
  .statband .st:nth-child(2){border-right:none;}
  .statband .st:nth-child(3),.statband .st:nth-child(4){border-bottom:none;}
}
@media(prefers-reduced-motion:reduce){.hero-rotate span{animation:none;}}

/* ---------- Landingpages ---------- */
.tb-updated{font-size:11.5px;color:var(--text-3);margin:14px 0 0;font-family:var(--mono);}
.tb-updated time{color:var(--text-3);}
.tb-table tr.is-weekend td{background:var(--surface-2);color:var(--text-3);}
.tb-table tr.is-current td{background:var(--surface-2);}
.tb-table td a{color:var(--link);text-decoration:none;}
.tb-table td a:hover{text-decoration:underline;}
.tag-weekend{font-family:var(--mono);font-size:9.5px;text-transform:uppercase;letter-spacing:.5px;background:var(--surface);border:1px solid var(--border);color:var(--text-3);padding:2px 6px;border-radius:100px;margin-left:6px;white-space:nowrap;}
.tb-table tfoot td{border-top:2px solid var(--border);border-bottom:none;color:var(--text);}
a.tb-chip{text-decoration:none;display:inline-block;}
.tb-chips .tb-chip.on{cursor:default;}

/* ---------- Werbeplatz ---------- */
.tb-ad{position:relative;z-index:3;max-width:var(--max-rd);margin:0 auto 20px;padding:0 24px;}
.tb-ad-slot{background:var(--surface-2);border:1px dashed var(--border);border-radius:var(--radius);min-height:90px;display:flex;align-items:center;justify-content:center;font-family:var(--mono);font-size:10.5px;color:var(--text-3);letter-spacing:.5px;}

/* ---------- Bedienelemente der Tools ---------- */
.tb-field{margin-bottom:14px;}
.tb-label{display:block;font-size:12.5px;font-weight:600;color:var(--text-2);margin-bottom:6px;}
.tb-hint{font-size:11.5px;color:var(--text-3);margin-top:5px;line-height:1.5;}
.tb-input,.tb-select,.tb-textarea{width:100%;padding:11px 13px;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);font-family:var(--sans);font-size:14.5px;color:var(--text);outline:none;transition:.15s;}
.tb-input:focus,.tb-select:focus,.tb-textarea:focus{border-color:var(--text);box-shadow:0 0 0 3px rgba(42,69,214,.14);}
/* Eingaben, die nicht gelesen werden konnten, markieren — ohne Markierung passiert
   bei einer falschen Schreibweise einfach nichts und niemand erfaehrt warum. */
.tb-input.tb-invalid{border-color:var(--danger);background:var(--danger-soft);}
.tb-textarea{min-height:170px;resize:vertical;line-height:1.65;font-size:14px;}
.tb-textarea.mono{font-family:var(--mono);font-size:13px;}
.tb-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:12px;}
.tb-row.two{grid-template-columns:1fr 1fr;}
.tb-btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:11px 18px;border-radius:var(--radius);border:1px solid transparent;background:var(--accent);color:#fff;font-family:var(--sans);font-size:14px;font-weight:600;cursor:pointer;transition:.15s;text-decoration:none;}
.tb-btn:hover{background:var(--accent-hover);}
.tb-btn:disabled{opacity:.5;cursor:not-allowed;}
.tb-btn svg{width:15px;height:15px;stroke-width:2;}
.tb-btn.ghost{background:var(--surface);color:var(--text-2);border-color:var(--border);}
.tb-btn.ghost:hover{background:var(--surface-2);color:var(--text);}
.tb-btn.wide{width:100%;}
.tb-btns{display:flex;flex-wrap:wrap;gap:9px;}
.tb-toggle{display:flex;border-radius:var(--radius);overflow:hidden;border:1px solid var(--border);background:var(--surface-2);padding:3px;gap:3px;margin-bottom:16px;}
.tb-toggle button{flex:1;padding:9px 8px;text-align:center;font-family:var(--sans);font-size:13px;font-weight:600;border:none;cursor:pointer;transition:.15s;background:transparent;color:var(--text-3);border-radius:9px;}
.tb-toggle button.on{background:var(--surface);color:var(--text);box-shadow:var(--shadow-sm);border:1px solid var(--border);}
.tb-toggle button:hover:not(.on){color:var(--text);}
.tb-chips{display:flex;flex-wrap:wrap;gap:7px;}
.tb-chip{padding:6px 12px;border-radius:100px;border:1px solid var(--border);background:var(--surface);font-family:var(--sans);font-size:12.5px;font-weight:500;color:var(--text-2);cursor:pointer;transition:.15s;}
.tb-chip:hover{border-color:var(--border-hover);color:var(--text);}
.tb-chip.on{background:var(--text);border-color:var(--text);color:#fff;}
.tb-switch[hidden]{display:none;}
.tb-switch{display:flex;align-items:center;gap:9px;font-size:13.5px;color:var(--text-2);cursor:pointer;user-select:none;padding:4px 0;}
.tb-switch input{width:17px;height:17px;accent-color:var(--accent);cursor:pointer;}
.tb-range{width:100%;accent-color:var(--accent);}

/* Ablagefläche für Dateien */
.tb-drop{border:2px dashed var(--border);border-radius:var(--radius-lg);padding:38px 20px;text-align:center;cursor:pointer;transition:.18s;background:var(--surface-2);}
.tb-drop:hover,.tb-drop.over{border-color:var(--text-3);background:var(--surface-2);}
.tb-drop-ic{width:46px;height:46px;border-radius:14px;background:var(--surface);border:1px solid var(--border);display:grid;place-items:center;margin:0 auto 13px;color:var(--text);}
.tb-drop-ic svg{width:21px;height:21px;stroke-width:1.8;}
.tb-drop strong{display:block;font-size:15px;font-weight:600;margin-bottom:5px;}
.tb-drop span{font-size:12.5px;color:var(--text-3);}
.tb-files{display:flex;flex-direction:column;gap:8px;margin-top:14px;}
.tb-file{display:flex;align-items:center;gap:11px;padding:10px 12px;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);font-size:13px;}
.tb-file-n{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:500;}
.tb-file-s{font-family:var(--mono);font-size:11.5px;color:var(--text-3);flex-shrink:0;}
.tb-file button{background:none;border:none;color:var(--text-3);cursor:pointer;padding:3px;line-height:0;border-radius:6px;}
.tb-file button:hover{color:var(--danger);background:var(--danger-soft);}
.tb-file button svg{width:15px;height:15px;stroke-width:2;}
.tb-file-h{cursor:grab;color:var(--text-3);line-height:0;}
.tb-file-h svg{width:15px;height:15px;stroke-width:2;}
.tb-file.drag{opacity:.5;}

/* Ergebnisse und Statusmeldungen */
.tb-result{margin-top:16px;padding:18px;border-radius:var(--radius-lg);background:linear-gradient(135deg,rgba(194,182,255,.22),rgba(255,183,211,.18));border:1px solid var(--border);}
.tb-result.hidden,.hidden{display:none!important;}
.tb-out{font-family:var(--mono);font-size:26px;font-weight:600;letter-spacing:-.8px;color:var(--text);word-break:break-all;}
.tb-out-l{font-family:var(--mono);font-size:10.5px;text-transform:uppercase;letter-spacing:1px;color:var(--text-3);margin-bottom:5px;}
/* Quellenkasten: belegt, ohne vom Inhalt abzulenken. */
.tb-quellen ul{margin:0;padding-left:20px;}
.tb-quellen li{margin:6px 0;font-size:14.5px;}
.tb-quellen .tb-hint{margin-top:12px;}

.tb-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(110px,1fr));gap:11px;}
.tb-stat{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:14px;text-align:center;}
.tb-stat-n{font-family:var(--mono);font-size:22px;font-weight:600;letter-spacing:-.8px;color:var(--text);overflow-wrap:anywhere;}
/* Steht im Kaestchen ein Wort statt einer Zahl ("Windows-1252"), sprengt die grosse
   Ziffernschrift den Rahmen. Diese Variante nimmt Fließtext und darf umbrechen. */
.tb-stat-n.wort{font-family:var(--sans);font-size:15px;line-height:1.35;letter-spacing:-.2px;overflow-wrap:break-word;hyphens:auto;}
.tb-stat-l{font-size:11.5px;color:var(--text-3);margin-top:3px;}
.tb-note{padding:12px 14px;border-radius:var(--radius);font-size:13px;line-height:1.6;margin-top:14px;}
.tb-note.info{background:var(--surface-2);border:1px solid var(--border);color:var(--text-2);}
.tb-note.warn{background:var(--highlight-soft);color:var(--text-2);}
.tb-note.err{background:var(--danger-soft);color:#a33359;}
.tb-busy{display:flex;align-items:center;gap:10px;font-size:13.5px;color:var(--text-2);margin-top:14px;}
.tb-busy[hidden]{display:none;}
.tb-spin{width:17px;height:17px;border:2px solid var(--border);border-top-color:var(--text);border-radius:50%;animation:tbspin .7s linear infinite;flex-shrink:0;}
@keyframes tbspin{to{transform:rotate(360deg);}}
.tb-bar{height:7px;border-radius:100px;background:var(--surface-2);overflow:hidden;margin-top:12px;}
.tb-bar i{display:block;height:100%;width:0;background:var(--text);transition:width .25s;}
.tb-copy{position:relative;}
.tb-copied{position:absolute;top:-28px;right:0;background:var(--text);color:#fff;font-size:11px;padding:4px 9px;border-radius:6px;opacity:0;transition:.2s;pointer-events:none;}
.tb-copied.on{opacity:1;}
.tb-preview{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:11px;margin-top:14px;}
.tb-thumb{border:1px solid var(--border);border-radius:var(--radius);overflow:hidden;background:var(--surface);}
.tb-thumb img,.tb-thumb canvas{width:100%;height:118px;object-fit:contain;background:var(--surface-2);display:block;}
.tb-thumb p{font-size:11px;color:var(--text-3);padding:7px 9px;margin:0;text-align:center;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}

/* Infokarten der mitgelieferten Seiten: H2 soll aussehen wie zuvor H3 */
.tb-info-card h2{font-family:var(--mono);font-size:10.5px;font-weight:500;color:var(--text-3);text-transform:uppercase;letter-spacing:1px;margin:0 0 7px;}

/* ---------- FAQ ---------- */
.tb-faq details{border-bottom:1px solid var(--border);}
.tb-faq details:last-child{border-bottom:none;}
.tb-faq summary{padding:13px 0;cursor:pointer;font-weight:600;font-size:14px;list-style:none;display:flex;justify-content:space-between;align-items:center;gap:14px;transition:.15s;}
.tb-faq summary::-webkit-details-marker{display:none;}
.tb-faq summary:hover{color:var(--text-2);}
.tb-faq summary::after{content:'';width:8px;height:8px;border-right:2px solid var(--text-3);border-bottom:2px solid var(--text-3);transform:rotate(45deg) translateY(-2px);transition:transform .2s;flex-shrink:0;}
.tb-faq details[open] summary::after{transform:rotate(225deg) translateY(-2px);}
.tb-faq .a{font-size:13.5px;color:var(--text-2);line-height:1.78;padding-bottom:13px;}
.tb-faq .a p{margin:0 0 8px;}
.tb-faq .a p:last-child{margin-bottom:0;}
.tb-faq .a a{color:var(--link);text-decoration:underline;text-underline-offset:2px;font-weight:500;}
.tb-faq .a a:hover{text-decoration:underline;}

/* ---------- Tool-Karten und Raster ---------- */
.tb-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:12px;}
.tb-tool{position:relative;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);padding:18px;display:flex;flex-direction:column;gap:8px;text-decoration:none;transition:transform .2s,box-shadow .2s,border-color .2s;}
.tb-tool:hover{transform:translateY(-3px);box-shadow:var(--shadow);border-color:var(--border-hover);}
.tb-tool-top{display:flex;align-items:center;justify-content:space-between;gap:10px;}
.tb-tool-ic{width:37px;height:37px;border-radius:11px;display:grid;place-items:center;background:var(--tc-s,var(--accent-soft));color:var(--tc,var(--accent));flex-shrink:0;}
.tb-tool-ic svg{width:18px;height:18px;stroke-width:1.7;display:block;}
.tb-tool-tag{font-family:var(--mono);font-size:9.5px;font-weight:500;padding:4px 8px;border-radius:100px;text-transform:uppercase;letter-spacing:.6px;background:var(--tc-s,var(--surface-2));color:var(--text-2);white-space:nowrap;}
.tb-tool h3{font-size:15.5px;font-weight:700;letter-spacing:-.35px;margin:0;color:var(--text);}
.tb-tool p{font-size:12.8px;color:var(--text-2);line-height:1.6;margin:0;flex:1;}

/* Schmale Kachel für die langen Gesamtlisten (Startseite, /tools/).
   Ohne Beschreibung und ohne Bereichsschild passen doppelt so viele
   Werkzeuge auf einen Bildschirm; die Beschreibung steht auf der jeweiligen
   Kategorieseite weiterhin unter jeder Kachel. */
.tb-grid-s{grid-template-columns:repeat(auto-fill,minmax(196px,1fr));gap:9px;}
.tb-tool-s{flex-direction:row;align-items:center;gap:11px;padding:11px 13px;}
.tb-tool-s .tb-tool-ic{width:31px;height:31px;border-radius:9px;}
.tb-tool-s .tb-tool-ic svg{width:16px;height:16px;}
.tb-tool-s h3{font-size:13.8px;letter-spacing:-.25px;line-height:1.25;}
.tb-tool-s:hover{transform:translateY(-2px);}
.tb-tool[hidden]{display:none;}
.tb-cluster{margin-bottom:38px;scroll-margin-top:125px;}/* Kopfzeile 57 px + Filterleiste 59 px */
.tb-cl-head{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;padding-bottom:13px;margin-bottom:16px;border-bottom:1px solid var(--border);}
.tb-cl-t{display:flex;align-items:center;gap:12px;text-decoration:none;}
.tb-cl-ic{width:36px;height:36px;border-radius:10px;display:grid;place-items:center;background:var(--cc-s,var(--accent-soft));color:var(--cc,var(--accent));flex-shrink:0;transition:transform .2s;}
.tb-cl-t:hover .tb-cl-ic{transform:scale(1.08);}
.tb-cl-ic svg{width:18px;height:18px;stroke-width:1.8;display:block;}
.tb-cl-t h2,.tb-cl-t h3{font-size:19px;font-weight:700;letter-spacing:-.55px;margin:0;color:var(--text);display:flex;align-items:center;gap:9px;}
.tb-cl-t em{font-family:var(--mono);font-size:10px;font-style:normal;font-weight:500;color:var(--text-2);background:var(--cc-s,var(--surface-2));padding:3px 8px;border-radius:100px;}
.tb-cl-t p{font-size:12.8px;color:var(--text-3);margin:3px 0 0;}
.tb-cl-all{display:inline-flex;align-items:center;gap:5px;font-size:12.5px;font-weight:600;color:var(--text);text-decoration:none;white-space:nowrap;transition:gap .15s;}
.tb-cl-all:hover{gap:9px;}
.tb-cl-all svg{width:12px;height:12px;stroke-width:2.4;}
.tb-rel-more{display:inline-flex;align-items:center;gap:6px;margin-top:14px;font-size:12.5px;font-weight:600;color:var(--text);text-decoration:none;transition:gap .15s;}
.tb-rel-more:hover{gap:10px;}
.tb-rel-more svg{width:12px;height:12px;stroke-width:2.4;}

/* ---------- Suche ---------- */
.tb-search{position:relative;max-width:520px;margin:0 auto;}
.tb-search input{width:100%;padding:16px 20px 16px 48px;background:var(--surface);border:1px solid var(--border);border-radius:100px;font-family:var(--sans);font-size:15px;color:var(--text);outline:none;box-shadow:var(--shadow-sm);transition:.18s;}
.tb-search input:focus{border-color:var(--text);box-shadow:0 0 0 4px rgba(42,69,214,.14);}
.tb-search>svg{position:absolute;left:18px;top:50%;transform:translateY(-50%);width:17px;height:17px;color:var(--text-3);stroke-width:2;}
.tb-empty{text-align:center;padding:44px 20px;color:var(--text-3);font-size:14px;grid-column:1/-1;}

/* ---------- Blog ---------- */
.tb-post-meta{display:flex;flex-wrap:wrap;align-items:center;gap:10px;font-size:12px;color:var(--text-3);margin-bottom:6px;justify-content:center;}
.tb-post-meta time{font-family:var(--mono);}
.tb-posts{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:13px;}
.tb-post{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);padding:20px;text-decoration:none;display:flex;flex-direction:column;gap:8px;transition:transform .2s,box-shadow .2s,border-color .2s;}
.tb-post:hover{transform:translateY(-3px);box-shadow:var(--shadow);border-color:var(--border-hover);}
.tb-post .k{font-family:var(--mono);font-size:10px;text-transform:uppercase;letter-spacing:.9px;color:var(--text-3);}
.tb-post h3{font-size:16px;font-weight:700;letter-spacing:-.4px;margin:0;color:var(--text);line-height:1.32;}
.tb-post p{font-size:13px;color:var(--text-2);line-height:1.62;margin:0;flex:1;}
.tb-post .m{font-size:11.5px;color:var(--text-3);font-family:var(--mono);}
.tb-cta{background:linear-gradient(135deg,rgba(207,214,255,.35),rgba(255,203,186,.3));border:1px solid var(--border);border-radius:var(--radius-lg);padding:20px 22px;display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap;margin:22px 0;}
.tb-cta div{flex:1;min-width:200px;}
.tb-cta strong{display:block;font-size:15.5px;margin-bottom:4px;}
.tb-cta p{font-size:13px;color:var(--text-2);margin:0;line-height:1.6;}

/* ---------- Fußzeile ---------- */
.tbf{position:relative;z-index:3;background:var(--surface);border-top:1px solid var(--border);padding:44px 24px 24px;margin-top:32px;font-family:var(--sans);}
.tbf-in{max-width:var(--max-w);margin:0 auto;}
.tbf-cols{display:grid;grid-template-columns:1.5fr repeat(4,1fr);gap:26px;margin-bottom:30px;}
.tbf-about p{font-size:12.5px;color:var(--text-2);line-height:1.72;margin:13px 0 0;max-width:260px;}
.tbf-logo{display:flex;align-items:center;gap:10px;text-decoration:none;color:var(--text);}
.tbf-col h3{font-family:var(--mono);font-size:10.5px;font-weight:500;text-transform:uppercase;letter-spacing:1px;color:var(--text-3);margin:0 0 12px;}
.tbf-col a{display:block;font-size:12.5px;color:var(--text-2);padding:4px 0;text-decoration:none;transition:.12s;}
.tbf-col a:hover{color:var(--text);}
.tbf-col a.hub{color:var(--text);font-weight:600;}
.tbf-bottom{border-top:1px solid var(--border);padding-top:20px;display:flex;justify-content:space-between;align-items:center;gap:14px;flex-wrap:wrap;}
.tbf-bottom p{font-size:11.5px;color:var(--text-3);margin:0;}
.tbf-links{display:flex;gap:18px;flex-wrap:wrap;}
.tbf-links a{font-size:11.5px;color:var(--text-3);text-decoration:none;transition:.12s;}
.tbf-links a:hover{color:var(--text);}

/* ---------- Responsiv ---------- */
@media(max-width:1000px){.tbf-cols{grid-template-columns:1fr 1fr 1fr;gap:22px;}}
@media(max-width:860px){
  .tbh-nav{display:none;position:absolute;top:calc(100% + 11px);left:16px;right:16px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);flex-direction:column;align-items:stretch;padding:7px;gap:2px;box-shadow:var(--shadow);max-height:78vh;overflow-y:auto;}
  .tbh-nav.open{display:flex;}
  .tbh-btn{width:100%;justify-content:space-between;}
  .tbh-dd{position:static;opacity:1;visibility:visible;transform:none;box-shadow:none;border:none;background:var(--surface-2);margin:2px 0 6px;display:none;min-width:0;}
  .tbh-dd.wide{grid-template-columns:1fr;min-width:0;}
  .tbh-item.open .tbh-dd{display:block;}
  .tbh-item.open .tbh-dd.wide{display:grid;}
  .tbh-burger{display:grid;}
  .tbh-in{padding:11px 16px;}
  .tb-hero{padding:34px 18px 24px;}
  .tb-wrap,.tb-ad{padding-left:16px;padding-right:16px;}
  .tb-crumbs{padding:14px 16px 0;}
  .tb-card{padding:20px;}
  .tbf-cols{grid-template-columns:1fr 1fr;}
  .tb-cl-head{flex-direction:column;align-items:flex-start;gap:10px;}
  .tb-row.two{grid-template-columns:1fr;}
}
@media(max-width:640px){
  /* Umschalter mit vielen Reitern lieber schieben als umbrechen */
  .tb-toggle{overflow-x:auto;flex-wrap:nowrap;-webkit-overflow-scrolling:touch;}
  .tb-toggle button{flex:0 0 auto;white-space:nowrap;padding:9px 13px;}
  .tb-stats{grid-template-columns:1fr 1fr;}
  .tb-preview{grid-template-columns:1fr 1fr;}
}
@media(max-width:480px){
  .tb-out{font-size:22px;}
  .tb-btns .tb-btn{flex:1;}
  .tb-file{flex-wrap:wrap;}
  .tb-file-n{flex:1 0 100%;}
}
@media(prefers-reduced-motion:reduce){
  *{animation-duration:.01ms!important;transition-duration:.01ms!important;}
  html{scroll-behavior:auto;}
}
:focus-visible{outline:2px solid var(--link);outline-offset:2px;border-radius:4px;}

/* Der Verlauf .tb-mesh ragt absichtlich 10 % über beide Seiten hinaus, damit er weich
   ausläuft. Ohne Begrenzung verbreitert das aber das gesamte Dokument und erzeugt auf
   jeder Seite waagerechtes Scrollen — auf dem Handy besonders störend.

   Begrenzt wird am Elternrahmen, nicht an html oder body: dort gesetzt, verlöre die
   klebende Kopfzeile (.tbh, position:sticky) ihre Funktion — im Browser gegengeprüft.

   "overflow-x:clip" statt "hidden", weil clip nur waagerecht begrenzt. Der Verlauf
   darf weiterhin nach oben und unten über den Kopfbereich hinauslaufen, genau das
   macht den weichen Übergang aus. */
.tb-hero{overflow-x:clip;}

/* Dieselbe Ursache auf der Startseite: .hero-bg ragt mit left/right -10 % über beide
   Seiten hinaus und verbreiterte das Dokument bei 375 px auf 412 px. Wieder am
   Elternrahmen begrenzt, wieder mit clip statt hidden, damit der Verlauf senkrecht
   weiter übersteht — im Browser gegengeprüft: 150 px oben, 90 px unten bleiben. */
.hero-home{overflow-x:clip;}

/* Feiertagsliste auf den Kalenderseiten */
.kal-liste{list-style:none;margin:10px 0 0;padding:0;display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:2px 18px;}
.kal-liste li{display:flex;gap:9px;align-items:baseline;padding:6px 0;border-bottom:1px solid var(--border);font-size:13.5px;}
.kal-liste time{font-family:var(--mono);font-size:12.5px;color:var(--text-3);min-width:72px;}
.kal-liste span{flex:1;color:var(--text);}
.kal-liste em{font-style:normal;font-size:12px;color:var(--text-3);}

/* Kalendervorschau — genutzt vom Kalender-Werkzeug und den Kalenderseiten */
.kal-jahr{display:grid;grid-template-columns:repeat(auto-fit,minmax(215px,1fr));gap:14px;margin-top:12px;}
.kal-monat{border:1px solid var(--border);border-radius:var(--radius);padding:11px 12px 8px;background:var(--surface);}
.kal-monat h3{margin:0 0 7px;font-size:14px;letter-spacing:-.01em;}
.kal-monat table{width:100%;border-collapse:collapse;font-variant-numeric:tabular-nums;}
.kal-monat th{font-size:10px;font-weight:600;color:var(--text-3);padding:2px 0;text-align:center;}
.kal-monat td{font-size:11.5px;color:var(--text-2);padding:3px 0;text-align:center;border-radius:4px;}
.kal-monat th.kal-kw,.kal-monat td.kal-kw{color:var(--text-3);font-size:9.5px;font-family:var(--mono);border-right:1px solid var(--border);padding-right:4px;}
.kal-monat td.kal-we{color:var(--text-3);background:var(--surface-2);}
.kal-monat td.kal-ft{background:#fde8ee;color:#a3204a;font-weight:600;}
/* Schulferien: eigene, ruhigere Markierung. Sie soll sich vom Feiertag unterscheiden
   lassen, ohne ihn zu übertönen — ein Feiertag ist die wichtigere Aussage. */
.kal-monat td.kal-fe{background:#e8f2e6;color:#2f5735;}
.kal-thema .kal-monat td.kal-fe{background:var(--k-fe);color:var(--k-fe-text);}
.kal-monat td.kal-fe.kal-we{background:#dfeddd;}
.kal-legende{display:flex;gap:16px;flex-wrap:wrap;margin-top:12px;font-size:12.5px;color:var(--text-3);}
.kal-legende i{display:inline-block;width:12px;height:12px;border-radius:3px;vertical-align:-1px;margin-right:6px;background:var(--surface-2);}
.kal-legende i.ft{background:#fde8ee;}
.kal-legende i.fe{background:#e8f2e6;}

/* Kalender aussuchen — Bildergalerie statt Einstellungsfeldern.
   Die Maße folgen den Vorgaben für ältere Nutzerinnen: Vorschaubilder mindestens
   240 px breit, Klickflächen mindestens 44 px, Fließtext 18 px, Knopf 56 px hoch. */
.kal-waehler{padding-top:22px;}
.kal-lead{font-size:18px;line-height:1.6;color:var(--text-2);max-width:62ch;margin:6px 0 0;}
.kal-feld{border:0;padding:0;margin:26px 0 0;min-width:0;}
.kal-feld legend{display:flex;align-items:center;gap:10px;padding:0;margin-bottom:14px;font-size:19px;font-weight:600;color:var(--text);}
.kal-nr{display:inline-grid;place-items:center;width:28px;height:28px;border-radius:50%;background:var(--text);color:#fff;font-size:15px;font-weight:600;flex:none;}

.kal-designs{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:18px;}
.kal-design{position:relative;display:flex;flex-direction:column;cursor:pointer;border-radius:var(--radius);padding:10px 10px 12px;border:2px solid transparent;transition:border-color .15s,background .15s;}
.kal-design:hover{background:var(--surface-2);}
.kal-design input{position:absolute;opacity:0;width:0;height:0;}
.kal-design img{width:100%;height:auto;display:block;border:1px solid var(--border);border-radius:6px;background:#fff;}
.kal-design-name{margin-top:10px;font-size:17px;font-weight:600;color:var(--text);}
.kal-design-fuer{font-size:14.5px;color:var(--text-3);line-height:1.4;}
.kal-design:has(input:checked){border-color:var(--text);background:var(--surface-2);}
.kal-design:has(input:focus-visible){outline:3px solid var(--text);outline-offset:2px;}
/* Häkchen auf dem gewählten Bild — der Rahmen allein wird leicht übersehen. */
.kal-design:has(input:checked) img{border-color:var(--text);}
.kal-design:has(input:checked)::after{content:"✓";position:absolute;top:18px;right:18px;width:34px;height:34px;display:grid;place-items:center;border-radius:50%;background:var(--text);color:#fff;font-size:19px;line-height:1;}

.kal-formen{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:12px;}
.kal-form{display:flex;flex-direction:column;gap:3px;min-height:44px;padding:14px;cursor:pointer;border:2px solid var(--border);border-radius:var(--radius);background:var(--surface);transition:border-color .15s;}
.kal-form:hover{border-color:var(--border-hover);}
.kal-form input{position:absolute;opacity:0;width:0;height:0;}
.kal-form:has(input:checked){border-color:var(--text);background:var(--surface-2);}
.kal-form:has(input:focus-visible){outline:3px solid var(--text);outline-offset:2px;}
.kal-form-name{font-size:17px;font-weight:600;}
.kal-form-fuer{font-size:14.5px;color:var(--text-3);line-height:1.45;}
.kal-form-bild{display:block;height:38px;width:54px;border:1px solid var(--border);border-radius:4px;margin-bottom:8px;background:#fff;}
.kal-form-monat{background-image:repeating-linear-gradient(90deg,#c9ccd4 0 1px,transparent 1px 14.3%),repeating-linear-gradient(180deg,#c9ccd4 0 1px,transparent 1px 20%);}
.kal-form-jahr{background-image:repeating-linear-gradient(90deg,#c9ccd4 0 1px,transparent 1px 33.3%),repeating-linear-gradient(180deg,#c9ccd4 0 1px,transparent 1px 25%);}
.kal-form-planer{width:64px;height:32px;background-image:repeating-linear-gradient(90deg,#c9ccd4 0 1px,transparent 1px 8.3%);}

.kal-los{margin-top:26px;}
.kal-knopf{min-height:56px;padding:0 30px;font-size:19px;}
.kal-mass{margin:8px 0 0;font-size:14px;color:var(--text-3);}
.kal-mehr{margin-top:20px;border-top:1px solid var(--border);padding-top:14px;}
.kal-mehr summary{cursor:pointer;font-size:16px;color:var(--text-2);padding:8px 0;min-height:44px;display:flex;align-items:center;gap:8px;list-style:none;}
.kal-mehr summary::-webkit-details-marker{display:none;}
.kal-mehr summary::before{content:"";width:0;height:0;border-left:6px solid currentColor;border-top:5px solid transparent;border-bottom:5px solid transparent;transition:transform .15s;}
.kal-mehr[open] summary::before{transform:rotate(90deg);}
.kal-mehr-in{display:flex;flex-direction:column;gap:12px;padding:6px 0 4px;}
.kal-mehr-in .tb-switch{font-size:16px;}
.kal-drucktipp{margin-top:18px;font-size:15px;line-height:1.6;}

/* Das Bild der einzelnen Kalenderseite. Nicht zu breit: Es ist eine Abbildung des
   Ausdrucks, keine Bühne. */
.kal-seitenbild figure{margin:12px 0 0;display:flex;gap:24px;align-items:flex-start;flex-wrap:wrap;}
.kal-seitenbild img{width:100%;max-width:340px;height:auto;display:block;border:1px solid var(--border);border-radius:6px;background:#fff;box-shadow:var(--shadow-sm);}
.kal-seitenbild figcaption{flex:1;min-width:220px;font-size:16px;line-height:1.65;color:var(--text-2);}
.kal-pdf-direkt{margin:14px 0 0;font-size:15px;color:var(--text-2);}
.tb-chips.kal-start-laender{flex-wrap:wrap;overflow:visible;margin:10px 0 12px;}
.kal-excel{margin:14px 0 0;font-size:15px;color:var(--text-2);display:flex;flex-wrap:wrap;align-items:center;gap:8px 12px;}
.kal-excel .tb-hint{flex-basis:100%;margin:0;}
.kal-excel-form{display:flex;flex-wrap:wrap;align-items:flex-end;gap:12px 20px;margin:12px 0;}
.kal-excel-form select{font:inherit;padding:8px 10px;border:1px solid var(--border);border-radius:10px;background:var(--surface);max-width:100%;}
.kal-ein-monat{grid-template-columns:minmax(0,420px);}
.kal-monatsnav,.kal-monatslinks{margin:12px 0 0;font-size:15px;line-height:1.7;}

@media (max-width:560px){
  .kal-designs{grid-template-columns:repeat(2,1fr);gap:12px;}
  .kal-design{padding:6px 6px 8px;}
  .kal-design-name{font-size:15.5px;}
  .kal-design-fuer{font-size:13px;}
  .kal-design:has(input:checked)::after{top:12px;right:12px;width:28px;height:28px;font-size:16px;}
  .kal-knopf{width:100%;}
}

@media print{
  .tbh,.tbf,.tb-crumbs,.tb-side,.tb-panel .tb-btns,.kal-legende{display:none!important;}
  .kal-jahr{grid-template-columns:repeat(3,1fr);gap:8px;}
  .kal-monat{break-inside:avoid;border-color:#ccc;}
}

/* Quellenangabe zum Kopieren — Brückentage und künftige zitierbare Datenseiten. */
.tb-copy{display:flex;align-items:stretch;gap:8px;margin-top:6px;flex-wrap:wrap}
.tb-copy code{flex:1 1 260px;min-width:0;background:var(--surface-2);border:1px solid var(--border);
  border-radius:9px;padding:10px 12px;font-family:var(--mono);font-size:12.5px;line-height:1.5;
  color:var(--text-2);overflow-x:auto;white-space:pre-wrap;word-break:break-word}
.tb-copy .tb-btn{flex:0 0 auto;align-self:flex-start}
@media (max-width:520px){.tb-copy .tb-btn{width:100%}}

/* ---------- Suche in der Kopfzeile ---------- */
/* Bis 11.09.2026 gab es die Suche nur auf der Startseite. */
.tbh-find{display:flex;align-items:center;gap:8px;height:34px;padding:0 11px;border-radius:9px;border:1px solid var(--border);background:var(--surface);color:var(--text-3);font-family:var(--sans);font-size:13px;cursor:pointer;transition:.15s;min-width:180px;}
.tbh-find:hover{color:var(--text);border-color:var(--border-hover);}
.tbh-find svg{width:15px;height:15px;stroke-width:2;flex-shrink:0;}
.tbh-find span{flex:1;text-align:left;}
.tbh-find kbd{font-family:var(--mono);font-size:10.5px;padding:2px 6px;border-radius:5px;background:var(--surface-2);color:var(--text-3);border:1px solid var(--border);}

.tbh-findbox{position:fixed;inset:0;z-index:120;}
.tbh-findbg{position:absolute;inset:0;background:rgba(23,20,38,.42);backdrop-filter:blur(3px);-webkit-backdrop-filter:blur(3px);}
.tbh-findin{position:relative;max-width:620px;margin:10vh auto 0;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:0 24px 60px rgba(23,20,38,.24);overflow:hidden;}
.tbh-findfield{display:flex;align-items:center;gap:11px;padding:15px 16px;border-bottom:1px solid var(--border);}
.tbh-findfield svg{width:18px;height:18px;stroke-width:2;color:var(--text-3);flex-shrink:0;}
.tbh-findfield input{flex:1;border:0;background:none;font-family:var(--sans);font-size:16px;color:var(--text);outline:none;min-width:0;}
.tbh-findfield input::-webkit-search-cancel-button{display:none;}
.tbh-findx{width:28px;height:28px;border-radius:8px;border:1px solid var(--border);background:var(--surface-2);color:var(--text-3);display:grid;place-items:center;cursor:pointer;flex-shrink:0;}
.tbh-findx svg{width:13px;height:13px;}
.tbh-findhint{font-size:11.5px;color:var(--text-3);margin:0;padding:8px 16px;border-bottom:1px solid var(--border);background:var(--surface-2);}
.tbh-findhint kbd{font-family:var(--mono);font-size:10px;padding:1px 5px;border-radius:4px;background:var(--surface);border:1px solid var(--border);}
.tbh-findres{max-height:52vh;overflow-y:auto;padding:7px;}
.tbh-findrow{display:flex;align-items:center;gap:11px;padding:9px 10px;border-radius:10px;text-decoration:none;color:var(--text);}
.tbh-findrow:hover,.tbh-findrow:focus-visible{background:var(--surface-2);outline:none;}
.tbh-findic{width:31px;height:31px;border-radius:9px;display:grid;place-items:center;background:var(--tc-s,var(--accent-soft));color:var(--tc,var(--accent));flex-shrink:0;}
.tbh-findic svg{width:16px;height:16px;stroke-width:1.7;display:block;}
.tbh-findtx{flex:1;min-width:0;}
.tbh-findtx strong{display:block;font-size:14px;font-weight:600;letter-spacing:-.2px;}
.tbh-findtx span{display:block;font-size:12px;color:var(--text-3);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.tbh-findcat{font-family:var(--mono);font-size:9.5px;text-transform:uppercase;letter-spacing:.6px;color:var(--text-3);flex-shrink:0;}
.tbh-findleer,.tbh-findmehr{font-size:13px;color:var(--text-2);margin:0;padding:14px 12px;}
.tbh-findleer a,.tbh-findmehr a{color:var(--link);text-decoration:underline;text-underline-offset:2px;}
body.tb-findoffen{overflow:hidden;}

/* ---------- Filterleiste auf /tools/ ---------- */
.tb-filter{position:sticky;top:57px;z-index:80;background:var(--glass);backdrop-filter:blur(20px) saturate(160%);-webkit-backdrop-filter:blur(20px) saturate(160%);border-bottom:1px solid var(--border);margin-bottom:22px;}
.tb-filter-in{display:flex;align-items:center;gap:14px;padding-top:11px;padding-bottom:11px;}
.tb-filter-field{display:flex;align-items:center;gap:9px;height:36px;padding:0 12px;border-radius:10px;border:1px solid var(--border);background:var(--surface);flex:0 0 268px;}
.tb-filter-field svg{width:15px;height:15px;stroke-width:2;color:var(--text-3);flex-shrink:0;}
.tb-filter-field input{flex:1;border:0;background:none;font-family:var(--sans);font-size:13.5px;color:var(--text);outline:none;min-width:0;}
.tb-filter-field input::-webkit-search-cancel-button{display:none;}
.tb-chips{display:flex;flex-wrap:nowrap;align-items:center;gap:6px;overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:none;}
.tb-chips::-webkit-scrollbar{display:none;}
.tb-chip{flex:0 0 auto;display:inline-flex;align-items:center;gap:6px;height:32px;padding:0 12px;border-radius:100px;border:1px solid var(--border);background:var(--surface);color:var(--text-2);font-family:var(--sans);font-size:13px;font-weight:500;white-space:nowrap;cursor:pointer;transition:.15s;}
.tb-chip:hover{color:var(--text);border-color:var(--border-hover);}
.tb-chip em{font-family:var(--mono);font-size:10px;font-style:normal;color:var(--text-3);}
.tb-chip.is-on{background:var(--cc-s,var(--surface-2));border-color:var(--cc,var(--border-hover));color:var(--text);}
.tb-chip.is-on em{color:var(--text-2);}
.tb-filter-leer{font-size:14px;color:var(--text-2);padding:30px 0 50px;text-align:center;}
.tb-linkbtn{border:0;background:none;padding:0;font:inherit;color:var(--link);text-decoration:underline;text-underline-offset:2px;cursor:pointer;}

@media(max-width:860px){
  .tbh-find{min-width:0;margin-left:auto;padding:0 9px;}
  .tbh-find span,.tbh-find kbd{display:none;}
  .tbh-find{width:34px;justify-content:center;}
  .tbh-burger{margin-left:0;}
  .tbh-findin{margin:0;max-width:none;height:100%;border:0;border-radius:0;display:flex;flex-direction:column;}
  .tbh-findres{max-height:none;flex:1;}
  .tbh-findhint{display:none;}
  .tb-filter{top:57px;}
  .tb-filter-in{flex-direction:column;align-items:stretch;gap:9px;}
  .tb-filter-field{flex:1 1 auto;}
  .tb-filter{position:static;}
  .tb-chips{margin:0 -16px;padding:0 16px;}
  /* Zwei Spalten statt einer: sonst passen auch ohne Beschreibung nur
     gut vier Werkzeuge auf einen Handybildschirm. */
  .tb-grid-s{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;}
  .tb-tool-s{padding:10px 11px;gap:9px;}
  .tb-tool-s h3{font-size:13px;}
}

/* =====================================================================
   Redesign H2 (16.10.2026) — Stil H, Verlauf Blau → Violett.
   Entwurf: Redesign-Vorschläge, Board „H2 · Blau → Violett“.
   Grundsätze: ruhige weiße Flächen statt bunter Nebel, Farbe nur für
   Handlungen (Knöpfe, Links, aktive Elemente), größere Schrift im Fließtext.
   ===================================================================== */

/* Ruhiger Hintergrund: kein Körnungsfilter, kein bunter Nebel mehr, nur ein
   ganz leichter Schimmer in den Markenfarben oben auf der Seite. */
.tb-grain{display:none;}
.tb-mesh,.hero-home .hero-bg{filter:none;opacity:1;top:-120px;height:calc(100% + 180px);
  background:
    radial-gradient(60% 70% at 15% 0%,rgba(29,78,216,.07) 0%,transparent 70%),
    radial-gradient(55% 65% at 90% 10%,rgba(124,58,237,.08) 0%,transparent 70%);}

/* Kopfzeile */
.tbh{background:rgba(255,255,255,.88);}
.tbh-mark{border-radius:10px;background:var(--grad-135);}
.tbh-name{font-weight:800;letter-spacing:-.4px;}
.tbh-btn,.tbh-link{font-size:14px;color:var(--text-2);}
.tbh-item.on .tbh-btn,.tbh-link.on{color:var(--accent);background:var(--accent-soft);}

/* Überschriften und Fließtext: etwas größer und kräftiger, leichter lesbar */
.tb-hero h1{font-weight:800;letter-spacing:-1.1px;}
.tb-hero p{font-size:16.5px;line-height:1.65;}
.tb-section h2,.tb-prose h2{font-size:21px;font-weight:800;letter-spacing:-.5px;}
.tb-prose p,.tb-prose li{font-size:15.5px;line-height:1.75;}
.tb-prose h3{font-size:16.5px;font-weight:700;}
.tb-prose a,.tb-faq .a a{color:var(--link);}
.tb-prose a:hover{color:var(--brand-b);}
.tb-steps li{font-size:15px;}
.tb-steps li::before{background:var(--accent-soft);border-color:transparent;color:var(--accent);font-family:var(--sans);font-weight:800;}
.tb-label{font-size:13.5px;color:var(--text);}
.tb-hint{font-size:12.5px;}
.tb-badge{font-size:12.5px;padding:6px 13px;}
.tb-badge svg{color:var(--accent);}

/* Karten */
.tb-card{border-color:var(--border);box-shadow:none;}
.tb-tool,.tb-post{box-shadow:none;}
.tb-tool:hover,.tb-post:hover{border-color:#c7cdf7;box-shadow:0 10px 30px rgba(29,78,216,.08);}
.tb-tool h3{font-size:16px;font-weight:800;}
.tb-tool p{font-size:13.5px;}

/* Symbole: alle Bereiche in den Markenfarben statt je eigener Farbe */
.tb-tool-ic,.tbh-i,.tb-cl-ic,.tbh-findic{background:linear-gradient(135deg,#eef2ff,#f3e8ff);color:var(--brand-a);}
.tb-tool-tag{background:var(--accent-soft);color:var(--accent);}
.tb-cl-t em{background:var(--accent-soft);color:var(--accent);}

/* Knöpfe: Hauptknopf im Verlauf, Nebenknopf weiß mit Rahmen */
.tb-btn{background:var(--grad);border:none;font-weight:700;border-radius:12px;transition:filter .15s,transform .15s,box-shadow .15s;}
.tb-btn:hover{background:var(--grad);filter:brightness(1.08);box-shadow:0 6px 18px rgba(79,70,229,.25);}
.tb-btn:active{transform:translateY(1px);}
.tb-btn:disabled{background:#c9cbd6;filter:none;box-shadow:none;opacity:1;}
.tb-btn.ghost{background:var(--surface);color:var(--text);border:1px solid var(--border);}
.tb-btn.ghost:hover{background:var(--surface-2);filter:none;box-shadow:none;}
.tb-btn:focus-visible,.tb-chip:focus-visible,a:focus-visible{outline:3px solid rgba(29,78,216,.35);outline-offset:2px;}

/* Auswahlchips */
.tb-chip:hover{border-color:#c7cdf7;color:var(--text);}
.tb-chip.on,.tb-chips .tb-chip.on{background:var(--grad);border-color:transparent;color:#fff;}
.tb-toggle button.on{color:var(--accent);}

/* Eingabefelder */
.tb-input:focus,.tb-select:focus,.tb-textarea:focus,.tb-search input:focus{border-color:var(--brand-a);box-shadow:0 0 0 4px rgba(29,78,216,.12);}
.tb-input,.tb-select,.tb-textarea{border-radius:12px;font-size:15px;}

/* Ablagefläche */
.tb-drop{border-radius:var(--radius-lg);background:#fafaff;border-color:#d9dcf2;}
.tb-drop:hover,.tb-drop.over{border-color:var(--brand-a);background:#f3f5ff;}

/* Links mit Pfeil */
.tb-rel-more,.tb-cl-all{color:var(--accent);}

/* Startseite: Kennzahlen in Markenfarben */
.statband .st-n{font-family:var(--sans);font-weight:800;letter-spacing:-1px;background:var(--grad);-webkit-background-clip:text;background-clip:text;color:transparent;}
.statband .st-l{font-size:13px;}

/* Startseite, Kopfbereich: Text links, Verlaufskarte rechts (Entwurf H) */
.hero-home{text-align:left;padding:64px 24px 56px;}
.hero-home .hero-in{max-width:var(--max-w);display:grid;grid-template-columns:minmax(0,1fr) 420px;gap:56px;align-items:center;}
.hero-eyebrow{background:var(--accent-soft);border:none;backdrop-filter:none;color:var(--accent);font-family:var(--sans);font-size:13px;font-weight:600;letter-spacing:0;text-transform:none;}
.hero-eyebrow s{background:var(--brand-a);box-shadow:0 0 0 3px rgba(29,78,216,.15);}
.hero-home h1{font-size:clamp(34px,5vw,56px);letter-spacing:-1.6px;line-height:1.06;}
.hero-rotate{padding:0;border-radius:0;background:var(--grad);-webkit-background-clip:text;background-clip:text;color:transparent;}
.hero-home .hero-sub{margin:0 0 26px;max-width:540px;font-size:18px;}
.hero-actions{justify-content:flex-start;}
.hero-actions .tb-btn{border-radius:12px;padding:14px 24px;font-size:15.5px;}
.hero-actions .tb-btn.ghost{background:var(--surface);backdrop-filter:none;}
.hero-home .tb-search{max-width:none;margin:0;}
.hero-home .tb-search input{border-radius:14px;}
.hero-quick{justify-content:flex-start;}
.hero-quick a{background:var(--surface);}
.hero-quick a:hover{border-color:#c7cdf7;color:var(--accent);}
.hero-card{display:flex;align-items:flex-end;height:340px;padding:28px;border-radius:28px;background:var(--grad-135);text-decoration:none;color:var(--text);transition:transform .2s,box-shadow .2s;}
.hero-card:hover{transform:translateY(-3px);box-shadow:0 20px 50px rgba(79,70,229,.28);}
.hero-card-in{display:flex;flex-direction:column;gap:10px;width:100%;background:#fff;border-radius:18px;padding:20px;}
.hero-card-top{display:flex;justify-content:space-between;align-items:center;font-size:16px;}
.hero-card-top strong{font-weight:800;}
.hero-card-top em{font-style:normal;font-size:12px;font-weight:600;color:var(--success);}
.hero-card-top em::before{content:"● ";}
.hero-card-file{display:flex;justify-content:space-between;font-size:14px;background:var(--surface-2);padding:10px 12px;border-radius:10px;}
.hero-card-file span:last-child{color:var(--text-3);}
.hero-card-btn{text-align:center;background:var(--text);color:#fff;font-size:14px;font-weight:700;padding:11px;border-radius:10px;}
@media(max-width:960px){
  .hero-home .hero-in{grid-template-columns:1fr;}
  .hero-card{display:none;}
}
@media(max-width:760px){.hero-home{padding:40px 18px 36px;}}

/* Restliche Flächen aus dem alten Farbsystem auf die Markenfarben */
.tb-result{background:linear-gradient(135deg,#f3f5ff,#f6f0ff);border-color:#e3e6fb;}
.tb-cta{background:linear-gradient(135deg,#f3f5ff,#f6f0ff);border-color:#e3e6fb;}
.tb-hero .tb-btns{justify-content:center;margin-top:20px;}
.kal-nr{background:var(--grad-135);}
.kal-design:has(input:checked),.kal-form:has(input:checked){border-color:var(--brand-a);background:#f5f6ff;}
.kal-design:has(input:checked) img{border-color:var(--brand-a);}
.kal-design:has(input:checked)::after{background:var(--grad-135);}
/* Schmale Kacheln (/tools/, Startseite): kleinere Schrift als die großen Kacheln, und
   lange Wörter dürfen umbrechen — sonst ragt bei 375 px eine Kachel über den Rand. */
.tb-tool-s{min-width:0;}
.tb-tool-s h3{font-size:14.5px;overflow-wrap:anywhere;hyphens:auto;}

/* =====================================================================
   Redesign H2, Schritt 2 (17.10.2026): ruhiger, nach dem Vorbild von
   Cloudflare und Adobe. Brendas Rückmeldung: „zu unruhig“. Darum:
   weniger Rahmen und Kästchen, keine Etiketten und Pillen, Symbole ohne
   farbige Fläche, Beschriftungen in normaler Schrift statt Großbuchstaben
   in Schreibmaschinenschrift, Listen statt Kachelraster.
   ===================================================================== */

/* Verzeichnis aller Werkzeuge (Startseite) */
.tb-dir{margin:56px 0 40px;}
.tb-dir>h2{font-size:24px;font-weight:800;letter-spacing:-.5px;margin:0 0 24px;}
.tb-dir-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:36px 32px;}
.tb-dir-col h3{font-size:15px;font-weight:700;margin:0 0 10px;padding-bottom:10px;border-bottom:1px solid var(--border);display:flex;justify-content:space-between;align-items:baseline;}
.tb-dir-col h3 a{color:var(--text);text-decoration:none;}
.tb-dir-col h3 a:hover{color:var(--accent);}
.tb-dir-col h3 span{font-size:13px;font-weight:500;color:var(--text-3);}
.tb-dir-col ul{list-style:none;margin:0;padding:0;}
.tb-dir-col li a{display:block;padding:5px 0;font-size:15px;color:var(--text-2);text-decoration:none;}
.tb-dir-col li a:hover{color:var(--accent);}
@media(max-width:960px){.tb-dir-grid{grid-template-columns:repeat(2,minmax(0,1fr));}}
@media(max-width:520px){.tb-dir-grid{grid-template-columns:1fr;gap:28px;}}

/* Schlichte Linkliste in Spalten (z. B. Bundesländer) */
.tb-linkgrid{list-style:none;margin:14px 0 18px;padding:0;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:2px 24px;}
.tb-prose .tb-linkgrid li{margin:0;font-size:15px;}
.tb-prose .tb-linkgrid a{display:block;padding:5px 0;color:var(--text-2);font-weight:500;text-decoration:none;}
.tb-prose .tb-linkgrid a:hover{color:var(--accent);}
@media(max-width:760px){.tb-linkgrid{grid-template-columns:repeat(2,minmax(0,1fr));}}
.kal-start-mehr{display:flex;flex-wrap:wrap;gap:8px 28px;padding-top:14px;border-top:1px solid var(--border);}
.tb-prose .kal-start-mehr a{text-decoration:none;font-weight:600;}
.tb-prose .kal-start-mehr a::after{content:" →";}

/* Karten: kein Etikett, Symbol ohne farbige Fläche, kein Hochspringen */
.tb-tool-tag{display:none;}
.tb-tool-ic,.tbh-i,.tb-cl-ic,.tbh-findic{background:none;color:var(--accent);width:auto;height:auto;border-radius:0;justify-content:start;}
.tb-tool-ic svg{width:22px;height:22px;stroke-width:1.6;}
.tb-tool{padding:20px;gap:10px;}
.tb-tool:hover,.tb-post:hover{transform:none;box-shadow:none;border-color:#c7cdf7;}
.tb-tool:hover h3{color:var(--accent);}

/* Schmale Kacheln (/tools/): Zeilen statt Kästen */
.tb-grid-s{gap:0 28px;}
.tb-tool-s{border:none;border-bottom:1px solid var(--border);border-radius:0;padding:12px 2px;background:none;gap:12px;}
.tb-tool-s:hover{border-color:var(--border);background:none;}
.tb-tool-s .tb-tool-ic{width:auto;height:auto;}
.tb-tool-s .tb-tool-ic svg{width:18px;height:18px;}
.tb-tool-s h3{font-size:15px;font-weight:600;}

/* Bereichsköpfe (/tools/): ohne Symbolkasten und Zählpille */
.tb-cl-t em{background:none;color:var(--text-3);font-family:var(--sans);font-size:14px;font-weight:500;padding:0;}
.tb-cl-head{border-bottom-color:var(--text);}

/* Beschriftungen in normaler Schrift statt Schreibmaschine in Großbuchstaben */
.hero-quick b,.tb-post .k,.tb-table th,.tb-updated,.tbh-all{font-family:var(--sans);text-transform:none;letter-spacing:0;}
.hero-quick b{font-size:14px;color:var(--text-3);}
.tb-table th{font-size:13px;font-weight:600;color:var(--text-2);border-bottom-width:1px;}
.tb-updated{font-size:13px;}
.tb-post .k{font-size:13px;font-weight:600;color:var(--accent);}

/* Beliebt-Zeile als schlichte Links */
.hero-quick{gap:6px 18px;}
.hero-quick a{padding:0;border:none;background:none;border-radius:0;color:var(--text-2);font-size:14.5px;font-weight:500;}
.hero-quick a:hover{background:none;color:var(--accent);}

/* Links im Fließtext: Farbe trägt, Unterstrich nur zart */
.tb-prose a,.tb-faq .a a{text-decoration-color:rgba(29,78,216,.3);text-underline-offset:3px;}
.tb-prose a:hover,.tb-faq .a a:hover{text-decoration-color:currentColor;color:var(--accent);}

/* Badges unter der Überschrift: ohne Rahmen */
.tb-badge{border:none;background:none;padding:2px 6px;color:var(--text-2);}
.tb-badges{gap:4px 14px;}
/* Kopfbereich bündig mit Kopfzeile und Inhalt (beide: max-w mit 24 px Innenabstand) */
.hero-home{padding-left:0;padding-right:0;}
.hero-home .hero-in{padding:0 24px;}
.tb-prose ul.tb-linkgrid{padding-left:0;}
.tb-chip *{font-family:var(--sans);}

/* =====================================================================
   Redesign H2, Schritt 3 (17.10.2026): Werkzeugseiten nach Entwurf T3.
   Brendas Wahl: weißer Hintergrund, wenig Kästen, immer Schritte 1 – 2 – 3,
   passende Werkzeuge elegant verlinkt. Nur das Werkzeug selbst ist ein Kasten.
   ===================================================================== */
:root{--bg:#ffffff;}
.tb-mesh,.hero-home .hero-bg{display:none;}

/* Kopf der Werkzeugseite: groß, mittig, ruhig */
.tb-hero-werkzeug{padding:56px 24px 36px;}
.tb-hero-werkzeug h1{font-size:clamp(30px,4.6vw,46px);letter-spacing:-1.2px;line-height:1.1;margin-bottom:14px;}
.tb-hero-werkzeug p{font-size:18.5px;max-width:640px;}
.tb-hero-werkzeug .tb-badges{margin-top:16px;}

/* Werkzeug: der einzige Kasten auf der Seite */
.tb-werkzeug{max-width:900px;}
.tb-werkzeug #tool{border-radius:24px;padding:36px;border-color:#e6e7ee;}
.tb-privat{text-align:center;margin:14px 0 0;font-size:13.5px;}

/* Schritte 1 – 2 – 3 */
.tb-s3{margin:48px 0 0;}
.tb-s3 h2{font-size:15px;font-weight:700;color:var(--text-3);text-align:center;margin:0 0 22px;}
.tb-s3 ol{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(var(--n,3),minmax(0,1fr));gap:28px;}
.tb-s3 li{text-align:center;}
.tb-s3-n{display:block;font-size:34px;font-weight:800;line-height:1;margin-bottom:12px;background:var(--grad);-webkit-background-clip:text;background-clip:text;color:transparent;}
.tb-s3 p{margin:0;font-size:15.5px;line-height:1.6;color:var(--text-2);}
@media(max-width:700px){
  .tb-s3 ol{grid-template-columns:1fr;gap:18px;}
  .tb-s3 li{display:flex;gap:16px;text-align:left;align-items:baseline;}
  .tb-s3-n{font-size:26px;margin:0;min-width:22px;}
}

/* Passt dazu: eine schlichte Zeile */
.tb-passt{display:flex;flex-wrap:wrap;justify-content:center;align-items:baseline;gap:8px 22px;margin:44px 0 36px;padding:20px 0;border-top:1px solid var(--border);border-bottom:1px solid var(--border);font-size:15.5px;}
.tb-passt span{color:var(--text-3);font-weight:600;}
.tb-passt a{color:var(--accent);font-weight:600;text-decoration:none;}
.tb-passt a:hover{color:var(--brand-b);}
.tb-passt a::after{content:" →";}

/* Inhalt ohne Kasten, gut lesbare Zeilenlänge */
.tb-plain{margin:44px auto 0;max-width:720px;}
.tb-plain h2{font-size:24px;margin-top:40px;}
.tb-plain p,.tb-plain li{font-size:16.5px;line-height:1.75;}

/* Häufige Fragen: Linien statt Kasten (überall) */
.tb-card.tb-faq{background:none;border:none;box-shadow:none;padding:0;margin-top:44px;}
.tb-faq h2{font-size:24px;}
.tb-faq details{border-bottom:1px solid var(--border);}
.tb-faq summary{font-size:16.5px;font-weight:600;padding:18px 0;}
.tb-werkzeug .tb-faq,.tb-werkzeug .tb-quellen{max-width:720px;margin-left:auto;margin-right:auto;}

/* Weitere Werkzeuge: Liste in zwei Spalten */
.tb-more{margin:56px 0 24px;padding-top:32px;border-top:1px solid var(--border);}
.tb-more h2{font-size:22px;font-weight:800;margin:0 0 16px;}
.tb-more ul{list-style:none;margin:0 0 8px;padding:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:4px 36px;}
.tb-more li a{display:flex;flex-direction:column;gap:2px;padding:12px 0;text-decoration:none;border-bottom:1px solid var(--border);}
.tb-more li strong{font-size:16px;font-weight:700;color:var(--text);}
.tb-more li span{font-size:14px;color:var(--text-3);line-height:1.5;}
.tb-more li a:hover strong{color:var(--accent);}
@media(max-width:700px){.tb-more ul{grid-template-columns:1fr;}}

/* Logo-Kachel wie das Favicon: Hellblau → Violett. Mit den dunklen Markenfarben war der
   Verlauf in 16–32 px kaum zu sehen (Brenda, 17.10.2026). */
.tbh-mark{background:linear-gradient(135deg,#0ea5e9,#7c3aed);}

/* =====================================================================
   Redesign H2, Schritt 4 (17.10.2026): Titel im Farbkasten (Entwurf V1)
   für Werkzeugseiten und Startseite — Verlauf Blau → Violett mit feinem
   Raster, weiße Schrift.
   ===================================================================== */
.tb-band{background-color:#1d4ed8;
  background-image:linear-gradient(rgba(255,255,255,.07) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.07) 1px,transparent 1px),linear-gradient(120deg,#1d4ed8,#7c3aed);
  background-size:32px 32px,32px 32px,100% 100%;color:#fff;border-radius:28px;}
.tb-hero-werkzeug{padding:28px 24px 32px;}
.tb-hero-werkzeug .tb-band{max-width:980px;padding:52px 48px 44px;}
.tb-band-k{display:inline-block;font-size:13.5px;font-weight:600;color:#dbeafe;text-decoration:none;margin-bottom:12px;}
.tb-band-k:hover{color:#fff;}
.tb-hero-werkzeug .tb-band h1{color:#fff;margin-bottom:14px;}
.tb-hero-werkzeug .tb-band h1 .grad{color:#fff;}
.tb-hero-werkzeug .tb-band p{color:#e0e7ff;}
.tb-band .tb-badge{color:#eef2ff;}
.tb-band .tb-badge svg{color:#fff;}
@media(max-width:700px){
  .tb-hero-werkzeug{padding:18px 16px 24px;}
  .tb-hero-werkzeug .tb-band{padding:36px 22px 30px;border-radius:22px;}
}

/* Startseite nach Entwurf S1 mit Überschrift im Farbkasten */
.hero-home{padding:28px 24px 0;text-align:center;}
.hero-home .tb-band.hero-in{display:block;max-width:var(--max-w);margin:0 auto;padding:72px 48px 64px;}
.hero-home h1{color:#fff;font-size:clamp(32px,5.2vw,58px);letter-spacing:-1.6px;line-height:1.06;margin:0 auto 18px;max-width:880px;}
.hero-home .hero-rotate{background:none;-webkit-background-clip:border-box;background-clip:border-box;color:#c7d2fe;}
.hero-home .hero-sub{color:#e0e7ff;margin:0 auto 30px;max-width:600px;font-size:19px;}
.hero-home .tb-search{max-width:640px;margin:0 auto;}
.hero-home .tb-search input{border:none;border-radius:16px;padding:19px 22px 19px 54px;font-size:17px;box-shadow:0 10px 30px rgba(15,23,42,.18);}
.hero-home .tb-search input:focus{box-shadow:0 0 0 4px rgba(255,255,255,.35);}
.hero-home .tb-search>svg{left:22px;}
.tb-start{max-width:1000px;padding-top:12px;}
/* Bereiche als Symbole */
.tb-bereiche{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:8px;margin:28px 0 8px;}
.tb-bereiche a{display:flex;flex-direction:column;align-items:center;gap:10px;padding:18px 6px;border-radius:14px;text-decoration:none;color:var(--text);font-size:15px;font-weight:700;transition:background .15s;}
.tb-bereiche a:hover{background:var(--surface-2);color:var(--accent);}
.tb-bereiche svg{width:28px;height:28px;stroke-width:1.6;color:var(--accent);}
@media(max-width:700px){.tb-bereiche{grid-template-columns:repeat(3,minmax(0,1fr));}}
/* Beliebt: Liste in zwei Spalten */
.tb-beliebt{margin:48px 0 40px;}
.tb-beliebt h2{font-size:24px;font-weight:800;margin:0 0 10px;}
.tb-beliebt ul{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));column-gap:48px;}
.tb-beliebt a{display:flex;justify-content:space-between;padding:16px 0;border-bottom:1px solid var(--border);text-decoration:none;color:var(--text);font-size:17px;font-weight:600;}
.tb-beliebt a::after{content:"→";color:var(--text-3);}
.tb-beliebt a:hover{color:var(--accent);}
.tb-beliebt a:hover::after{color:var(--accent);}
@media(max-width:700px){.tb-beliebt ul{grid-template-columns:1fr;}}
/* Kalender ohne Kasten */
.tb-start .kal-start{margin:48px 0 0;}
.tb-start .kal-start h2{font-size:24px;margin:0 0 8px;}
/* Warum ToolsBuddy */
.tb-warum{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:40px;margin:56px 0 0;padding-top:40px;border-top:1px solid var(--border);}
.tb-warum h2{font-size:17px;font-weight:800;margin:0 0 8px;}
.tb-warum p{font-size:15px;line-height:1.6;color:var(--text-2);margin:0;}
@media(max-width:700px){.tb-warum{grid-template-columns:1fr;gap:22px;}}
/* Zugeklapptes Verzeichnis */
.tb-alle{margin:48px 0 24px;border-top:1px solid var(--border);border-bottom:1px solid var(--border);}
.tb-alle summary{cursor:pointer;padding:20px 0;font-size:16px;font-weight:700;color:var(--accent);list-style:none;}
.tb-alle summary::-webkit-details-marker{display:none;}
.tb-alle summary::after{content:" ↓";}
.tb-alle[open] summary::after{content:" ↑";}
.tb-alle .tb-dir-grid{padding:8px 0 28px;grid-template-columns:repeat(3,minmax(0,1fr));}
@media(max-width:700px){
  .hero-home{padding:16px 16px 0;}
  .hero-home .tb-band.hero-in{padding:44px 20px 36px;border-radius:22px;}
  .tb-alle .tb-dir-grid{grid-template-columns:1fr;}
}
/* Das Suchfeld ist ein <label> und damit inline — ohne display:block greift max-width nicht. */
.tb-search{display:block;}
/* Fußzeile: Überschriften in normaler Schrift wie im übrigen Redesign */
.tbf-col h3{font-family:var(--sans);font-size:13.5px;font-weight:700;text-transform:none;letter-spacing:0;color:var(--text);}

/* Werkzeugseite unten: eine einheitliche Spalte (720 px) wie im Entwurf T3 */
.tb-werkzeug .tb-plain,.tb-werkzeug .tb-faq,.tb-werkzeug .tb-quellen,.tb-werkzeug .tb-updated,
.tb-werkzeug .tb-more,.tb-werkzeug>.tb-section{max-width:720px;margin-left:auto;margin-right:auto;}
.tb-werkzeug .tb-updated{margin-top:20px;}
/* Häufige Fragen: deutlich als aufklappbar erkennbar */
.tb-faq summary{list-style:none;cursor:pointer;display:flex;justify-content:space-between;gap:16px;}
.tb-faq summary::-webkit-details-marker{display:none;}
.tb-faq details .a{padding:0 0 18px;}
.tb-faq details .a p{font-size:16px;line-height:1.7;color:var(--text-2);}
/* Anleitungen auf der Werkzeugseite: Liste statt Kästen */
.tb-werkzeug .tb-posts{display:flex;flex-direction:column;gap:0;}
.tb-werkzeug .tb-post{border:none;border-bottom:1px solid var(--border);border-radius:0;padding:14px 0;background:none;}
.tb-werkzeug .tb-post:hover{border-color:var(--border);}
.tb-werkzeug .tb-post h3{font-size:16px;}
.tb-werkzeug .tb-post:hover h3{color:var(--accent);}
.tb-werkzeug .tb-post .k{display:none;}
.tb-werkzeug>.tb-section h2{font-size:22px;font-weight:800;}
/* Fußzeile: Abstand zwischen den Bereichen, ruhigere Übersicht-Links */
.tbf-col h3:not(:first-child){margin-top:26px;}
.tbf-col a{font-size:13.5px;}
.tbf-col a.hub{font-weight:500;color:var(--accent);}
/* Titel: Werkzeugname groß, Zusatz kleiner darunter */
.tb-sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;}
.h1-zusatz{display:block;font-size:.5em;font-weight:600;letter-spacing:-.3px;color:#c7d2fe;margin-top:10px;}
.tb-hero-werkzeug .tb-band h1{font-size:clamp(34px,5.4vw,54px);}
.tb-hero-werkzeug .tb-band p{max-width:600px;font-size:17.5px;}
/* Ablagefläche großzügiger, Symbol im Verlauf */
.tb-werkzeug .tb-drop{padding:56px 24px;}
.tb-drop-ic{background:var(--grad-135);border:none;color:#fff;width:56px;height:56px;border-radius:16px;}
.tb-drop-ic svg{stroke:#fff;}
.tb-drop strong{font-size:17px;}
.tb-hero-werkzeug .tb-band{max-width:852px;}

/* =====================================================================
   Redesign H2, Schritt 5 (17.10.2026): unter dem Farbkasten „super clean“.
   Brenda: „alles darunter ist zu unruhig“. Darum: kein Kasten im Kasten,
   Knöpfe erst, wenn eine Datei gewählt ist, Schritte linksbündig und kurz.
   ===================================================================== */
/* Datei-Werkzeuge: nur die Ablagefläche, kein Rahmen drumherum */
.tb-werkzeug #tool:has(.tb-drop){border:none;padding:0;background:none;}
.tb-werkzeug .tb-drop{border:1.5px dashed #cdd2ee;border-radius:24px;background:#fafaff;padding:64px 24px;}
.tb-werkzeug .tb-drop span{color:var(--text-3);}
/* Knöpfe erst zeigen, wenn Dateien in der Liste stehen */
.tb-werkzeug .tb-files:empty~.tb-btns{display:none;}
.tb-werkzeug .tb-files:not(:empty){margin-top:18px;}
/* Werkzeuge ohne Ablagefläche (Rechner, Generatoren): zarter Rahmen, viel Luft */
.tb-werkzeug #tool{border-color:#ececf0;}

/* Schritte: linksbündig, kleine Nummer im Verlauf, ruhige Zeilen */
.tb-s3{margin:56px 0 0;}
.tb-s3 h2{text-align:left;font-size:20px;font-weight:800;color:var(--text);margin:0 0 20px;}
.tb-s3 ol{gap:32px;}
.tb-s3 li{text-align:left;display:flex;flex-direction:column;gap:12px;}
.tb-s3-n{display:flex;align-items:center;justify-content:center;width:32px;height:32px;border-radius:50%;font-size:15px;margin:0;background:var(--grad-135);-webkit-background-clip:border-box;background-clip:border-box;color:#fff;}
.tb-s3 p{font-size:15px;line-height:1.6;}
@media(max-width:700px){.tb-s3 li{flex-direction:row;gap:14px;align-items:flex-start;}.tb-s3-n{flex-shrink:0;}}

/* Passt dazu: ohne Linien, eine ruhige Zeile */
.tb-passt{justify-content:flex-start;border:none;padding:0;margin:40px 0 40px;font-size:15px;}
.tb-passt a::after{content:"";}
.tb-passt a{font-weight:600;}
.tb-passt span{color:var(--text);font-weight:700;margin-right:6px;}
/* Eine einzige Spaltenkante unter dem Farbkasten: Werkzeug, Schritte, Werbung, Text,
   Fragen und Listen beginnen alle links an derselben Linie. */
.tb-werkzeug .tb-plain,.tb-werkzeug .tb-faq,.tb-werkzeug .tb-quellen,.tb-werkzeug .tb-updated,
.tb-werkzeug .tb-more,.tb-werkzeug>.tb-section{max-width:none;margin-left:0;margin-right:0;}
.tb-werkzeug .tb-ad{max-width:none;padding:0;margin:0 0 8px;}
.tb-werkzeug .tb-plain p,.tb-werkzeug .tb-plain li{max-width:760px;}
.tb-out-l{font-family:var(--sans);text-transform:none;letter-spacing:0;font-size:13.5px;font-weight:600;color:var(--text-2);}
/* Schritte: Nummer mittig über dem Text, mehr Abstand zur Überschrift (Brenda, 17.10.2026) */
.tb-s3 h2{text-align:center;margin-bottom:36px;}
.tb-s3 li{text-align:center;align-items:center;gap:14px;}
@media(max-width:700px){
  .tb-s3 h2{margin-bottom:26px;}
  .tb-s3 li{flex-direction:column;align-items:center;text-align:center;gap:10px;}
}
.tb-passt{justify-content:center;}
/* Schritte als ruhige Liste: Nummer links, Text linksbündig, Block mittig.
   Mittig gesetzte Absätze unterschiedlicher Länge wirkten unruhig (Brenda, 17.10.2026). */
.tb-s3 ol{display:flex;flex-direction:column;gap:0;max-width:640px;margin:0 auto;}
.tb-s3 li{display:flex;flex-direction:row;align-items:center;gap:18px;text-align:left;padding:14px 0;border-bottom:1px solid var(--border);}
.tb-s3 li:last-child{border-bottom:none;}
.tb-s3-n{flex-shrink:0;}
.tb-s3 p{font-size:16px;color:var(--text);}
@media(max-width:700px){.tb-s3 li{flex-direction:row;align-items:flex-start;text-align:left;gap:14px;}}
.tb-hero-werkzeug .tb-band p{max-width:700px;}

/* =====================================================================
   Redesign H2, Schritt 6 (17.10.2026): Farbkasten für ALLE Seitenköpfe.
   Bisher nur bei den erzeugten Werkzeugseiten; Bereichs-, Kalender-,
   Feiertags-, Arbeitstage-, Umrechner- und Ratgeberseiten sowie die zwölf
   älteren, von Hand gebauten Werkzeuge nutzen denselben Kopf (.tb-hero-in).
   ===================================================================== */
.tb-hero{padding:28px 24px 32px;}
.tb-hero>.tb-hero-in{max-width:calc(var(--max-w) - 48px);padding:52px 48px 44px;border-radius:28px;color:#fff;
  background-color:#1d4ed8;
  background-image:linear-gradient(rgba(255,255,255,.07) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.07) 1px,transparent 1px),linear-gradient(120deg,#1d4ed8,#7c3aed);
  background-size:32px 32px,32px 32px,100% 100%;}
.tb-hero>.tb-hero-in h1,.tb-hero>.tb-hero-in h1 .grad{color:#fff;}
.tb-hero>.tb-hero-in p{color:#e0e7ff;margin-left:auto;margin-right:auto;}
.tb-hero>.tb-hero-in a:not(.tb-btn){color:#fff;}
.tb-hero>.tb-hero-in strong,.tb-hero>.tb-hero-in b{color:#fff;}
.tb-hero>.tb-hero-in .tb-badge{color:#eef2ff;background:none;border:none;}
.tb-hero>.tb-hero-in .tb-badge svg{color:#fff;}
/* Knöpfe im Farbkasten: weiß, damit sie sich abheben */
.tb-hero>.tb-hero-in .tb-btn{background:#fff;color:var(--accent);box-shadow:none;}
.tb-hero>.tb-hero-in .tb-btn:hover{filter:none;background:#eef2ff;}
.tb-hero>.tb-hero-in .tb-post-meta,.tb-hero>.tb-hero-in .tb-post-meta time{color:#dbeafe;}
@media(max-width:700px){
  .tb-hero{padding:18px 16px 24px;}
  .tb-hero>.tb-hero-in{padding:36px 22px 30px;border-radius:22px;}
}
/* Werkzeugseiten: Farbkasten so breit wie das Werkzeug (die Regel für alle Seitenköpfe
   oben setzt sonst die breitere Seitenbreite). */
.tb-hero-werkzeug>.tb-hero-in{max-width:852px;}

/* =====================================================================
   Ruhige Unterseiten (31.10.2026): Kalender, Feiertage, Arbeitstage,
   Schuljahr, Kalenderwochen, Brückentage, Mondkalender, Umrechner,
   Bereichs- und Ratgeberseiten — gleiche Regeln wie die Werkzeugseiten:
   kein Kasten um Text und Tabellen, nur Bedienelemente behalten einen
   Rahmen. Gilt für alle <main> außer Werkzeugseiten und Startseite.
   ===================================================================== */
main.tb-wrap:not(.tb-werkzeug):not(.tb-start) .tb-card{background:none;border:none;box-shadow:none;border-radius:0;padding:0;margin:0 0 52px;}
/* Bedienelemente bleiben ein Kasten: Kalender-Auswahl, Rechner, Formulare */
main.tb-wrap:not(.tb-werkzeug):not(.tb-start) .tb-card:has(input,select,textarea,button),
main.tb-wrap:not(.tb-werkzeug):not(.tb-start) .tb-card.kal-waehler{background:var(--surface);border:1px solid #ececf0;border-radius:24px;padding:36px;}
main.tb-wrap:not(.tb-werkzeug):not(.tb-start) .tb-card>h2:first-child,
main.tb-wrap:not(.tb-werkzeug):not(.tb-start) .tb-section>h2{font-size:24px;font-weight:800;letter-spacing:-.5px;margin:0 0 14px;}
main.tb-wrap:not(.tb-werkzeug):not(.tb-start) .tb-section{margin-bottom:52px;}
main.tb-wrap:not(.tb-werkzeug):not(.tb-start) .tb-prose p,
main.tb-wrap:not(.tb-werkzeug):not(.tb-start) .tb-prose li{font-size:16px;line-height:1.75;max-width:820px;}
main.tb-wrap:not(.tb-werkzeug):not(.tb-start) .tb-prose h2{font-size:24px;margin-top:40px;}
main.tb-wrap:not(.tb-werkzeug):not(.tb-start) .tb-prose h2:first-child{margin-top:0;}

/* Kennzahlen: ruhige Zahlenreihe mit Trennlinien statt Kästchen */
main.tb-wrap:not(.tb-werkzeug):not(.tb-start) .tb-stats{gap:0;margin-bottom:52px;border-top:1px solid var(--border);border-bottom:1px solid var(--border);}
main.tb-wrap:not(.tb-werkzeug):not(.tb-start) .tb-stat{background:none;border:none;border-radius:0;padding:22px 12px;border-right:1px solid var(--border);}
main.tb-wrap:not(.tb-werkzeug):not(.tb-start) .tb-stat:last-child{border-right:none;}
.tb-stat-n{font-family:var(--sans);font-weight:800;letter-spacing:-.8px;font-size:28px;}
.tb-stat-l{font-size:13px;color:var(--text-2);margin-top:4px;}
@media(max-width:700px){
  main.tb-wrap:not(.tb-werkzeug):not(.tb-start) .tb-stat:nth-child(2n){border-right:none;}
  main.tb-wrap:not(.tb-werkzeug):not(.tb-start) .tb-stat{border-bottom:1px solid var(--border);}
}

/* Jahr- und Länderwahl: schlichte Links statt Pillen (nur Links, nicht die Schalter in Werkzeugen) */
main.tb-wrap:not(.tb-werkzeug):not(.tb-start) .tb-chips{gap:6px 22px;flex-wrap:wrap;overflow:visible;}
main.tb-wrap:not(.tb-werkzeug):not(.tb-start) a.tb-chip{border:none;background:none;padding:4px 0;height:auto;border-radius:0;font-size:15px;color:var(--text-2);font-weight:500;}
main.tb-wrap:not(.tb-werkzeug):not(.tb-start) a.tb-chip:hover{color:var(--accent);}
main.tb-wrap:not(.tb-werkzeug):not(.tb-start) span.tb-chip.on{background:none;border:none;padding:4px 0;height:auto;color:var(--accent);font-weight:800;font-size:15px;}
main.tb-wrap:not(.tb-werkzeug):not(.tb-start) .tb-label{font-size:13.5px;font-weight:700;color:var(--text);margin-bottom:6px;}

/* Kleine Etiketten in Tabellen: normale Schrift, ohne Rahmen */
.tag-weekend{font-family:var(--sans);text-transform:none;letter-spacing:0;font-size:12px;border:none;background:var(--surface-2);color:var(--text-2);padding:2px 8px;}

/* Quellen: schlichte Liste */
main.tb-wrap:not(.tb-werkzeug):not(.tb-start) .tb-quellen h2{font-size:18px;}
main.tb-wrap:not(.tb-werkzeug):not(.tb-start) .tb-ad{max-width:none;padding:0;margin:0 0 52px;}
/* Knöpfe im Fließtext: die Linkfarbe der Prosa machte die Schrift auf dem Verlauf unsichtbar. */
.tb-prose a.tb-btn,.tb-prose a.tb-btn:hover{color:#fff;text-decoration:none;}
.tb-prose a.tb-btn.ghost,.tb-prose a.tb-btn.ghost:hover{color:var(--text);}

/* =====================================================================
   Umrechner (31.10.2026): lange Tabellen zweispaltig, Bildschirmgrößen als
   maßstäbliche Umrisse, Hinweis auf die passende Gerätegröße im Rechner.
   ===================================================================== */
.tb-table-num td{font-variant-numeric:tabular-nums;}
.tb-table-split{display:grid;grid-template-columns:1fr 1fr;gap:0 32px;}
/* Gleiche Spaltenbreiten in beiden Hälften, damit die Zahlen auch untereinander fluchten. */
.tb-table-split .tb-table{table-layout:fixed;}
.tb-table-split .tb-table th:first-child,.tb-table-split .tb-table td:first-child{width:42%;}
.tb-table-split .tb-table:has(th:nth-child(3)) :is(th,td):first-child{width:30%;}
@media(max-width:640px){
  .tb-table-split{grid-template-columns:1fr;}
  .tb-table-split .tb-table-wrap+.tb-table-wrap{margin-top:-12px;}
  .tb-table-split .tb-table-wrap+.tb-table-wrap thead{display:none;}
}

.tb-screens{list-style:none;margin:26px 0 22px;padding:0;display:grid;grid-template-columns:repeat(8,minmax(0,1fr));align-items:end;gap:8px;}
.tb-prose ul.tb-screens{padding-left:0;}
.tb-screens li{margin:0;padding:0;}
.tb-screens button{display:flex;flex-direction:column;align-items:center;justify-content:flex-end;gap:4px;width:100%;padding:8px 2px;border:0;border-radius:12px;background:none;font:inherit;color:inherit;cursor:pointer;transition:background .2s;}
.tb-screens button:hover{background:var(--surface-2);}
.tb-screens button:focus-visible{outline:2px solid var(--accent);outline-offset:2px;}
.tb-screen{position:relative;display:block;width:calc(var(--d) / 75 * 100%);aspect-ratio:16/9;margin-bottom:10px;border:2px solid var(--border-hover);border-radius:4px;background:linear-gradient(160deg,var(--surface-2),#fff);transition:border-color .25s,background .25s,box-shadow .25s,transform .25s;}
.tb-screen::after{content:"";position:absolute;left:50%;bottom:-8px;width:28%;height:2px;transform:translateX(-50%);border-radius:2px;background:var(--border-hover);transition:background .25s;}
.tb-screens b{font-size:15px;font-weight:700;color:var(--text);line-height:1.1;}
.tb-screens small{font-size:12.5px;color:var(--text-3);white-space:nowrap;}
.tb-screens button:hover .tb-screen{border-color:#a5b4fc;}
.tb-screens li.is-active .tb-screen{border-color:transparent;background:var(--grad-135);box-shadow:0 8px 22px rgba(79,70,229,.28);transform:translateY(-2px);}
.tb-screens li.is-active .tb-screen::after{background:var(--brand-b);}
.tb-screens li.is-active b{color:var(--accent);}
@media(max-width:640px){
  .tb-screens{grid-template-columns:repeat(4,minmax(0,1fr));row-gap:14px;}
}

.tb-screen-hint{margin:14px 0 0;padding:11px 14px;border-radius:12px;background:var(--accent-soft);color:var(--text);font-size:14.5px;line-height:1.5;animation:tbHintIn .25s ease;}
.tb-screen-hint strong{color:var(--accent);}
.tb-screen-hint[hidden]{display:none;}
@keyframes tbHintIn{from{opacity:0;transform:translateY(-3px);}to{opacity:1;transform:none;}}
@media(prefers-reduced-motion:reduce){.tb-screen,.tb-screen-hint{transition:none;animation:none;}}

/* Größenstufen (KB in MB): eine Treppe von Byte bis Terabyte */
.tb-prose ol.tb-stufen{list-style:none;counter-reset:stufe;margin:18px 0 20px;padding:0;display:grid;gap:6px;}
.tb-stufen li{counter-increment:stufe;display:flex;align-items:baseline;gap:12px;margin:0;padding:10px 14px;border-radius:12px;background:var(--surface-2);margin-left:calc((var(--i,1) - 1) * 18px);}
.tb-stufen li::before{content:counter(stufe);font-weight:800;font-size:15px;background:var(--grad);-webkit-background-clip:text;background-clip:text;color:transparent;min-width:14px;}
.tb-stufen b{font-weight:700;color:var(--text);white-space:nowrap;}
.tb-stufen span{color:var(--text-3);font-size:14px;}
.tb-stufen li:nth-child(3){background:var(--accent-soft);}
.tb-stufen li:nth-child(2){--i:2;}.tb-stufen li:nth-child(3){--i:3;}.tb-stufen li:nth-child(4){--i:4;}.tb-stufen li:nth-child(5){--i:5;}
@media(max-width:640px){.tb-stufen li{margin-left:calc((var(--i,1) - 1) * 8px);flex-wrap:wrap;gap:2px 10px;}}

/* Aktuelle Kalenderwoche auf /kalenderwochen/: Kachel mit der Nummer, daneben Zeitraum und Wochenleiste */
main.tb-wrap:not(.tb-werkzeug):not(.tb-start) .tb-card.kw-heute{display:grid;grid-template-columns:auto 1fr;gap:32px;align-items:center;padding:30px;border:1px solid #e0e4fb;border-radius:28px;background:linear-gradient(135deg,#f6f7ff 0%,#faf6ff 100%);}
.kw-kachel{display:flex;flex-direction:column;align-items:center;justify-content:center;width:168px;aspect-ratio:1;border-radius:24px;background:var(--grad-135);color:#fff;box-shadow:0 14px 34px rgba(79,70,229,.28);position:relative;overflow:hidden;}
.kw-kachel::before{content:"";position:absolute;inset:0;background:radial-gradient(circle at 25% 15%,rgba(255,255,255,.28),transparent 55%);}
.kw-kachel span{position:relative;font-size:15px;font-weight:700;letter-spacing:.14em;opacity:.85;}
.kw-kachel b{position:relative;font-size:76px;font-weight:800;line-height:1;letter-spacing:-.03em;font-variant-numeric:tabular-nums;}
.kw-kachel small{position:relative;margin-top:6px;font-size:14px;font-weight:600;opacity:.85;}
.kw-text{min-width:0;}
.kw-text h2{margin:0 0 4px;font-size:13px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--accent);}
.kw-gross{margin:0 0 8px;font-size:34px;font-weight:800;line-height:1.15;letter-spacing:-.02em;color:var(--text);}
.kw-zeitraum{margin:0 0 18px;color:var(--text-2);font-size:15.5px;line-height:1.55;}
.kw-zeitraum strong{color:var(--text);font-weight:600;}
.kw-tage{list-style:none;margin:0 0 20px;padding:0;display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:6px;max-width:440px;}
.kw-tage[hidden]{display:none;}
.kw-tage li{display:flex;flex-direction:column;align-items:center;gap:2px;padding:9px 0 8px;border-radius:12px;background:#fff;border:1px solid #e6e8f5;}
.kw-tage span{font-size:12px;font-weight:600;color:var(--text-3);}
.kw-tage b{font-size:17px;font-weight:700;color:var(--text);font-variant-numeric:tabular-nums;}
.kw-tage li.is-wochenende{background:transparent;border:1px dashed var(--border-hover);}
.kw-tage li.is-heute{border-color:transparent;background:var(--grad-135);box-shadow:0 6px 16px rgba(79,70,229,.25);}
.kw-tage li.is-heute span,.kw-tage li.is-heute b{color:#fff;}
.kw-aktionen{display:flex;flex-wrap:wrap;align-items:center;gap:10px 18px;}
.kw-aktionen .tb-btn svg{width:16px;height:16px;}
.kw-nachbarn{display:flex;flex-wrap:wrap;gap:6px 14px;font-size:13.5px;color:var(--text-3);}
.kw-nachbarn[hidden]{display:none;}
.kw-nachbarn a{color:var(--text-2);text-decoration:none;border-bottom:1px solid var(--border-hover);}
.kw-nachbarn a:hover{color:var(--accent);border-color:var(--accent);}
@media(max-width:640px){
  main.tb-wrap:not(.tb-werkzeug):not(.tb-start) .tb-card.kw-heute{grid-template-columns:1fr;gap:20px;padding:18px;border-radius:22px;}
  .kw-kachel{width:100%;aspect-ratio:auto;flex-direction:row;gap:12px;padding:18px 20px;justify-content:flex-start;}
  .kw-kachel b{font-size:56px;}
  .kw-kachel small{margin:0 0 0 auto;}
  .kw-gross{font-size:26px;}
  .kw-tage{gap:4px;}
  .kw-tage b{font-size:15px;}
}

/* Kalenderseiten, neu geordnet am 04.11.2026 (Brendas Wunsch: übersichtlicher) */

/* Entwurfsauswahl kompakter: sechs je Zeile am Computer, drei am Handy — der Download-Knopf
   rückt damit ungefähr eine Bildschirmhöhe nach oben */
.kal-designs{grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:12px;}
.kal-design{padding:8px 8px 10px;}
.kal-design-name{margin-top:8px;font-size:15px;font-weight:700;}
.kal-design-fuer{font-size:13px;}
.kal-design:has(input:checked)::after{top:14px;right:14px;width:28px;height:28px;font-size:15px;}
@media(max-width:640px){
  .kal-designs{grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;}
  .kal-design{min-width:0;}
  .kal-design{padding:4px 4px 6px;}
  .kal-design-name{font-size:13px;margin-top:6px;}
  .kal-design-fuer{display:none;}
  .kal-design:has(input:checked)::after{top:8px;right:8px;width:22px;height:22px;font-size:12px;}
}

/* Kennzahlen über dem Jahresraster */
.kal-zahlen{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px;margin:4px 0 22px;}
.kal-zahl{display:flex;flex-direction:column;gap:2px;padding:14px 16px;border-radius:16px;background:linear-gradient(135deg,#f6f7ff,#faf6ff);border:1px solid #e3e6fb;text-decoration:none;transition:border-color .15s,transform .15s;}
a.kal-zahl:hover{border-color:#a5b4fc;transform:translateY(-1px);}
.kal-zahl b{font-size:30px;font-weight:800;line-height:1.1;letter-spacing:-.02em;background:var(--grad);-webkit-background-clip:text;background-clip:text;color:transparent;font-variant-numeric:tabular-nums;}
.kal-zahl span{font-size:13.5px;color:var(--text-2);line-height:1.35;}
@media(max-width:640px){.kal-zahlen{grid-template-columns:repeat(2,1fr);}.kal-zahl b{font-size:26px;}}

/* Feiertage als Karten mit Datumsblatt */
.kal-fk{list-style:none;margin:14px 0 6px;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:10px;}
.kal-fk li{display:grid;grid-template-columns:auto 1fr;grid-template-rows:auto auto;column-gap:14px;align-items:center;padding:12px 14px;border:1px solid var(--border);border-radius:14px;background:var(--surface);}
.kal-fk time{grid-row:span 2;display:flex;flex-direction:column;align-items:center;justify-content:center;width:54px;height:56px;border-radius:12px;background:var(--grad-135);color:#fff;line-height:1;}
.kal-fk time b{font-size:22px;font-weight:800;}
.kal-fk time small{font-size:11.5px;font-weight:600;margin-top:3px;opacity:.9;}
.kal-fk-name{font-size:15.5px;font-weight:700;color:var(--text);line-height:1.25;}
.kal-fk-tag{font-size:13px;color:var(--text-3);}
.kal-fk-tag i{font-style:normal;color:var(--accent);font-weight:600;}
.kal-fk li.is-eigen{border-color:#c7cdf7;background:#f8f8ff;}
.kal-fk li.is-wochenende time{background:var(--surface-2);color:var(--text-3);}
.kal-fk li.is-wochenende .kal-fk-name{color:var(--text-2);}

/* Schulferien als Zeitleiste über das Jahr */
.tb-prose ol.kal-ferien{list-style:none;margin:18px 0 0;padding:0;display:grid;gap:8px;}
.kal-ferien-z{margin:0;padding:12px 16px 14px;border:1px solid var(--border);border-radius:14px;background:var(--surface);}
.kal-ferien-kopf{display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 10px;}
.kal-ferien-kopf b{font-size:16px;color:var(--text);}
.kal-ferien-kopf em{font-style:normal;font-size:13px;color:var(--text-3);}
.kal-ferien-dauer{margin-left:auto;padding:2px 10px;border-radius:999px;background:var(--accent-soft);color:var(--accent);font-size:13px;font-weight:700;white-space:nowrap;}
.kal-ferien-zeit{font-size:14.5px;color:var(--text-2);margin:2px 0 10px;}
.kal-ferien-leiste{position:relative;height:8px;border-radius:999px;background:repeating-linear-gradient(90deg,var(--surface-2) 0 calc(100%/12 - 2px),#fff calc(100%/12 - 2px) calc(100%/12));}
.kal-ferien-leiste span{position:absolute;top:0;bottom:0;border-radius:999px;background:var(--grad);}
.kal-ferien-monate{display:grid;grid-template-columns:repeat(12,1fr);box-sizing:border-box;max-width:820px;margin:6px 0 14px;padding:0 17px;font-size:11px;font-weight:600;color:var(--text-3);text-align:center;}
@media(max-width:640px){
  .kal-fk{gap:6px;}
  .kal-fk li{padding:9px 12px;column-gap:12px;}
  .kal-fk time{width:46px;height:48px;border-radius:10px;}
  .kal-fk time b{font-size:19px;}
}

/* Umrechner-Seiten: zwei Felder mit Gleichheitszeichen, darunter das Ergebnis als Satz */
.umr-felder{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);align-items:end;gap:14px;}
.umr-feld{min-width:0;}
.umr-eingabe{position:relative;}
.umr-eingabe .tb-input{height:64px;padding:0 76px 0 18px;font-size:26px;font-weight:700;font-variant-numeric:tabular-nums;border-radius:14px;}
.umr-eingabe span{position:absolute;right:18px;top:50%;transform:translateY(-50%);font-size:24px;font-weight:700;color:var(--text-2);pointer-events:none;}
.umr-gleich{display:grid;place-items:center;width:44px;height:44px;margin-bottom:10px;border-radius:50%;background:var(--grad-135);color:#fff;font-size:24px;font-weight:700;box-shadow:0 6px 16px rgba(79,70,229,.25);}
.umr-ergebnis{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:12px 18px;margin:18px 0 6px;padding:16px 20px;border-radius:16px;background:linear-gradient(135deg,#f6f7ff,#faf6ff);border:1px solid #e3e6fb;}
.umr-satz{margin:0;font-size:24px;font-weight:600;color:var(--text-2);font-variant-numeric:tabular-nums;min-height:1.4em;}
.umr-satz b{font-size:24px;font-weight:800;color:var(--text);}
.umr-chips-titel{margin:18px 0 8px;font-size:12.5px;font-weight:700;letter-spacing:.05em;text-transform:uppercase;color:var(--text-3);}
@media(max-width:640px){
  .umr-felder{grid-template-columns:1fr;gap:6px;}
  .umr-gleich{justify-self:center;margin:4px 0 0;width:36px;height:36px;font-size:20px;}
  .umr-eingabe .tb-input{height:56px;font-size:22px;}
  .umr-ergebnis{padding:14px 16px;}
  .umr-satz{font-size:20px;}
  .umr-satz b{font-size:21px;}
  .umr-eingabe span{font-size:20px;}
}

/* Farbkasten so breit wie der Inhalt darunter (04.11.2026, Brendas Hinweis): Auf Seiten mit
   schmalem Inhalt (Umrechner, Kalenderwochen je Jahr, Ratgeber-Artikel) war der Kasten
   1.132 px breit, der Text darunter nur 792 px. */
.tb-hero:has(+ main.tb-wrap:not(.wide):not(.tb-werkzeug))>.tb-hero-in{max-width:calc(var(--max-rd) - 48px);}
.tb-s3 + .tb-card.tb-prose{margin-top:48px;}

/* Das „=“ als zwei Striche: das Schriftzeichen sitzt in Plus Jakarta Sans 4,3 px unter der
   Mitte (gemessen mit build/zentriercheck.mjs, 05.11.2026) */
.umr-gleich{position:relative;font-size:0;}
.umr-gleich::before,.umr-gleich::after{content:"";position:absolute;left:50%;width:16px;height:3px;border-radius:2px;background:#fff;transform:translateX(-50%);}
.umr-gleich::before{top:calc(50% - 5px);}
.umr-gleich::after{top:calc(50% + 2px);}
@media(max-width:640px){.umr-gleich::before,.umr-gleich::after{width:14px;}}
