/* Kinderwunschportal – ergänzt prosilver. Keine externen Schriften (DSGVO). */
.kw {
	--kw-ink: #2d3350;
	--kw-muted: #5f6684;
	--kw-sky: #eef2fa;
	--kw-line: #d8deec;
	--kw-rose: #d9576f;
	--kw-rose-soft: #fbe3e8;
	--kw-sage: #d3efe7;
	--kw-teal: #23806e;
	--kw-gold: #c98a12;
	--kw-gold-soft: #fdf1d6;
	--kw-radius: 10px;
	color: var(--kw-ink);
	font-size: 1.1em;
	line-height: 1.55;
}
.kw h2, .kw h3 { font-family: ui-rounded, "SF Pro Rounded", "Segoe UI", system-ui, sans-serif; color: var(--kw-ink); border: 0; text-transform: none; }
.kw h2 { font-size: 1.75em; margin: .2em 0 .35em; font-weight: 700; letter-spacing: -.01em; }
.kw h3 { font-size: 1.2em; margin: 0 0 .5em; font-weight: 650; }
.kw p { margin: 0 0 .8em; }
.kw a:focus-visible, .kw button:focus-visible, .kw input:focus-visible, .kw select:focus-visible, .kw textarea:focus-visible { outline: 3px solid #7d8fd8; outline-offset: 2px; }
.kw .kw-lead { font-size: 1.1em; color: var(--kw-muted); max-width: 46em; }
.kw .kw-small { font-size: .9em; color: var(--kw-muted); }
.kw .kw-note { font-size: .9em; color: var(--kw-muted); border-left: 3px solid var(--kw-line); padding: .2em 0 .2em .8em; margin-top: 1.2em; }
.kw .kw-box { background: #fff; border: 1px solid var(--kw-line); border-radius: var(--kw-radius); padding: 1.1em 1.25em; margin-bottom: 1em; }
.kw .kw-box-sky { background: var(--kw-sky); border-color: transparent; }
.kw .kw-errors { background: #fdecef; border: 1px solid #f1b5c1; color: #8c1d33; border-radius: var(--kw-radius); padding: .8em 1em; margin-bottom: 1em; }
.kw .kw-errors p { margin: 0; }
.kw .kw-btn { display: inline-block; border: 1px solid var(--kw-ink); background: var(--kw-ink); color: #fff !important; border-radius: 999px; padding: .5em 1.15em; font-weight: 600; font-size: 1em; cursor: pointer; text-decoration: none !important; line-height: 1.3; font-family: inherit; }
.kw .kw-btn:hover { background: #434b72; }
.kw .kw-btn-ghost { background: transparent; color: var(--kw-ink) !important; border-color: var(--kw-line); }
.kw .kw-btn-ghost:hover { background: var(--kw-sky); }
.kw .kw-btn-small { font-size: .85em; padding: .35em .85em; }
.kw .kw-btn-danger { background: #a3263e; border-color: #a3263e; }
.kw .kw-btn-danger:hover { background: #87192f; }
.kw .kw-row { display: flex; flex-wrap: wrap; gap: .6em; align-items: center; }
.kw .kw-badge { display: inline-block; border-radius: 999px; padding: .1em .65em; font-size: .8em; font-weight: 600; background: var(--kw-sky); color: var(--kw-muted); vertical-align: middle; }
.kw h2 .kw-badge { font-size: .5em; font-family: inherit; }
.kw .kw-badge-gold { background: var(--kw-gold-soft); color: #7a5208; }
.kw .kw-badge-rose { background: var(--kw-rose-soft); color: #9a2840; }
.kw .kw-form label { font-weight: 600; display: block; margin-bottom: .3em; }
.kw .kw-form .kw-field { margin-bottom: 1.1em; }
.kw .kw-form input[type=text], .kw .kw-form input[type=date], .kw .kw-form input[type=number], .kw .kw-form textarea, .kw .kw-form select {
	font: inherit; color: var(--kw-ink); background: #fff; border: 1px solid #b9c1d8; border-radius: 8px; padding: .5em .65em; max-width: 100%; box-sizing: border-box;
}
.kw .kw-form textarea { width: 100%; min-height: 9em; line-height: 1.5; }
.kw .kw-form input[type=number] { width: 6em; }
.kw .kw-check { display: flex !important; gap: .6em; align-items: flex-start; font-weight: 400 !important; }
.kw .kw-check input { margin-top: .3em; flex: none; }
.kw .kw-explain { display: block; font-size: .88em; color: var(--kw-muted); margin-top: .25em; font-weight: 400; }
.kw .kw-seg { display: inline-flex; border: 1px solid #b9c1d8; border-radius: 999px; overflow: hidden; }
.kw .kw-seg label { margin: 0; font-weight: 500; }
.kw .kw-seg input { position: absolute; opacity: 0; }
.kw .kw-seg span { display: block; padding: .4em .9em; cursor: pointer; }
.kw .kw-seg input:checked + span { background: var(--kw-ink); color: #fff; }
.kw .kw-seg input:focus-visible + span { outline: 3px solid #7d8fd8; outline-offset: -3px; }

/* ---------- Startseite ---------- */
.kw-hero { display: grid; grid-template-columns: minmax(0, 1.5fr) minmax(0, 1fr); gap: 1.5em; align-items: center; background: linear-gradient(160deg, #eef2fa 0%, #f8eef3 100%); border-radius: 14px; padding: 2em 2em 1.8em; margin-bottom: 1.4em; }
.kw-hero h2 { font-size: 2.1em; line-height: 1.15; }
.kw-hero-art { justify-self: center; width: 100%; max-width: 230px; }
.kw-stats { display: flex; flex-wrap: wrap; gap: 1.6em; margin-top: 1.2em; }
.kw-stats div { font-size: .9em; color: var(--kw-muted); }
.kw-stats strong { display: block; font-size: 1.5em; color: var(--kw-ink); }
.kw-tools { display: grid; grid-template-columns: repeat(auto-fill, minmax(210px, 1fr)); gap: .9em; margin-bottom: 1.5em; }
.kw-tool { display: block; background: #fff; border: 1px solid var(--kw-line); border-radius: var(--kw-radius); padding: 1em 1.1em; color: var(--kw-ink) !important; text-decoration: none !important; }
.kw-tool:hover { border-color: #9aa6cf; }
.kw-tool strong { display: flex; align-items: center; gap: .45em; font-size: 1.08em; margin-bottom: .25em; }
.kw-tool span { color: var(--kw-muted); font-size: .92em; }
.kw-tool svg { flex: none; }
.kw-cols { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 1.2em; }
.kw-list { list-style: none; margin: 0; padding: 0; }
.kw-list li { padding: .7em 0; border-top: 1px solid var(--kw-line); }
.kw-list li:first-child { border-top: 0; padding-top: 0; }
.kw-list .kw-title { font-weight: 600; }
.kw-head { display: flex; justify-content: space-between; align-items: baseline; gap: 1em; margin-bottom: .6em; }
.kw-head h3 { margin: 0; }

/* ---------- Storch ---------- */
.kw-tabs { display: flex; flex-wrap: wrap; gap: .4em; margin: 1em 0; }
.kw-tabs a { border-radius: 999px; padding: .35em .95em; border: 1px solid var(--kw-line); color: var(--kw-ink); text-decoration: none; background: #fff; }
.kw-tabs a[aria-current=page] { background: var(--kw-ink); color: #fff; border-color: var(--kw-ink); }
.kw-wishes { display: grid; grid-template-columns: repeat(auto-fill, minmax(290px, 1fr)); gap: 1em; }
.kw-wish { position: relative; background: #fff; border: 1px solid var(--kw-line); border-radius: var(--kw-radius); padding: 1.1em 1.2em .9em; display: flex; flex-direction: column; scroll-margin-top: 1em; }
.kw-wish:target { box-shadow: 0 0 0 3px #b8c3ea; }
.kw-wish-fulfilled { border-color: #ecc874; background: linear-gradient(180deg, #fffaf0 0%, #fff 60%); }
.kw-wish-muted { opacity: .75; border-style: dashed; }
.kw-wish-meta { display: flex; justify-content: space-between; gap: .5em; font-size: .9em; color: var(--kw-muted); margin-bottom: .55em; }
.kw-wish-meta strong { color: var(--kw-ink); }
.kw-wish-text { white-space: normal; overflow-wrap: anywhere; font-size: 1.05em; flex: 1; margin-bottom: .8em; }
.kw-wish-foot { display: flex; flex-wrap: wrap; gap: .5em; align-items: center; border-top: 1px solid var(--kw-line); padding-top: .7em; }
.kw-wish-foot form { margin: 0; display: inline; }
.kw-thumb { display: inline-flex; align-items: center; gap: .35em; border: 1px solid var(--kw-line); border-radius: 999px; background: #fff; padding: .3em .8em; font: inherit; font-size: .9em; color: var(--kw-ink); cursor: pointer; }
.kw-thumb:hover { background: var(--kw-sky); }
.kw-thumb[aria-pressed=true] { background: var(--kw-gold-soft); border-color: #ecc874; }
.kw-thumb-count { font-size: .88em; color: var(--kw-muted); }
.kw-linkbtn { background: none; border: 0; padding: 0; color: var(--kw-muted); font: inherit; font-size: .88em; cursor: pointer; text-decoration: underline; }
.kw-linkbtn:hover { color: var(--kw-ink); }
.kw-wish details { font-size: .9em; }
.kw-wish details summary { cursor: pointer; color: var(--kw-muted); text-decoration: underline; }
.kw-wish details form { display: block; margin-top: .5em; }
.kw-wish details input[type=text] { width: 100%; box-sizing: border-box; margin-bottom: .4em; font: inherit; padding: .35em .5em; border: 1px solid #b9c1d8; border-radius: 6px; }
.kw-spacer { flex: 1; }
.kw-fulfilled-banner { display: flex; align-items: center; gap: .4em; color: #7a5208; font-weight: 600; font-size: .92em; margin-bottom: .45em; }
.kw-empty { text-align: center; padding: 2.5em 1em; color: var(--kw-muted); }
.kw .pagination { float: none; text-align: right; margin: 1em 0; }

/* ---------- Kalender ---------- */
.kw-cal-layout { display: grid; grid-template-columns: minmax(0, 1.65fr) minmax(250px, 1fr); gap: 1.2em; align-items: start; }
.kw-cal-nav { display: flex; align-items: center; justify-content: space-between; gap: .5em; margin-bottom: .7em; }
.kw-cal-nav h3 { margin: 0; font-size: 1.3em; }
.kw-cal-nav a { text-decoration: none; }
.kw-cal-grid { width: 100%; border-collapse: separate; border-spacing: 4px; table-layout: fixed; }
.kw-cal-grid th { font-size: .85em; color: var(--kw-muted); font-weight: 600; padding: .2em 0; text-align: center; }
.kw-cal-grid td { padding: 0; height: 4.2em; vertical-align: top; }
.kw-day { position: relative; display: flex; flex-direction: column; justify-content: space-between; height: 100%; min-height: 4.2em; box-sizing: border-box; border-radius: 8px; padding: .3em .4em; background: #f6f7fb; color: var(--kw-ink) !important; text-decoration: none !important; border: 2px solid transparent; }
a.kw-day:hover { border-color: #9aa6cf; }
.kw-day-num { font-weight: 600; font-size: .95em; }
.kw-day-icons { display: flex; flex-wrap: wrap; gap: 2px; align-items: center; font-size: .72em; line-height: 1; min-height: 1em; }
.kw-day-temp { font-size: .7em; color: var(--kw-muted); }
.kw-out .kw-day { opacity: .4; }
.kw-fertile .kw-day { background: var(--kw-sage); }
.kw-fertile.kw-past .kw-day { background: #e8f5f1; }
.kw-ovulation .kw-day { background: var(--kw-teal); color: #fff !important; }
.kw-ovulation .kw-day-temp { color: #d9f1ea; }
.kw-ovulation.kw-past .kw-day { background: #9fcfc4; color: var(--kw-ink) !important; }
.kw-period-predicted .kw-day { background: #fff; border: 2px dashed #e693a4; }
.kw-period .kw-day { background: var(--kw-rose); color: #fff !important; }
.kw-period .kw-day-temp { color: #fde4ea; }
.kw-today .kw-day { box-shadow: 0 0 0 2px #fff, 0 0 0 4px var(--kw-ink); }
.kw-ico { display: inline-flex; align-items: center; justify-content: center; min-width: 1.35em; height: 1.35em; border-radius: 999px; font-weight: 700; font-size: .95em; background: #fff; color: var(--kw-ink); box-shadow: inset 0 0 0 1px rgba(45, 51, 80, .25); padding: 0 .2em; }
.kw-ico-lh { color: var(--kw-teal); }
.kw-ico-preg { color: #b0233f; }
.kw-ico-heart { color: #d9576f; }
.kw-ico-egg { background: transparent; box-shadow: none; color: inherit; }
.kw-legend { display: flex; flex-wrap: wrap; gap: .5em 1.1em; font-size: .88em; color: var(--kw-muted); margin-top: .8em; padding: 0; list-style: none; }
.kw-legend li { display: flex; align-items: center; gap: .4em; }
.kw-sw { display: inline-block; width: 1.1em; height: 1.1em; border-radius: 4px; background: #f6f7fb; }
.kw-sw-period { background: var(--kw-rose); }
.kw-sw-pred { background: #fff; border: 2px dashed #e693a4; box-sizing: border-box; }
.kw-sw-fertile { background: var(--kw-sage); }
.kw-sw-ovu { background: var(--kw-teal); }
.kw-sum-big { font-size: 2.6em; font-weight: 700; line-height: 1; font-family: ui-rounded, "SF Pro Rounded", "Segoe UI", system-ui, sans-serif; }
.kw-sum-big small { font-size: .38em; font-weight: 600; color: var(--kw-muted); margin-left: .25em; }
.kw-sum-list { margin: 1em 0 0; padding: 0; list-style: none; }
.kw-sum-list li { display: flex; justify-content: space-between; gap: 1em; padding: .5em 0; border-top: 1px solid var(--kw-line); }
.kw-sum-list li span:first-child { color: var(--kw-muted); }
.kw-sum-list li span:last-child { font-weight: 600; text-align: right; }
.kw-sum-list em { display: block; font-style: normal; font-weight: 400; font-size: .85em; color: var(--kw-muted); }
.kw-callout { border-radius: 8px; padding: .7em .9em; margin-top: .9em; font-size: .95em; }
.kw-callout-sage { background: var(--kw-sage); color: #14574a; }
.kw-callout-rose { background: var(--kw-rose-soft); color: #8c1d33; }
.kw-callout-sky { background: var(--kw-sky); }
.kw-period-form { display: flex; flex-wrap: wrap; gap: .6em; align-items: flex-end; }
.kw-period-form label { font-weight: 600; font-size: .9em; display: block; margin-bottom: .2em; }
.kw-chart svg { width: 100%; max-width: 760px; height: auto; display: block; }
.kw-chart .kw-grid { stroke: #e3e7f1; stroke-width: 1; }
.kw-chart .kw-axis { fill: var(--kw-muted); font-size: 10px; font-family: system-ui, sans-serif; }
.kw-chart .kw-line { fill: none; stroke: var(--kw-ink); stroke-width: 2; stroke-linejoin: round; }
.kw-chart .kw-dot { fill: #fff; stroke: var(--kw-ink); stroke-width: 2; }
.kw-chart .kw-ovu-line { stroke: var(--kw-teal); stroke-width: 2; stroke-dasharray: 4 4; }
.kw-day-form .kw-field { padding: .9em 0; border-top: 1px solid var(--kw-line); margin: 0; }
.kw-day-form .kw-field:first-of-type { border-top: 0; }
.kw-daynav { display: flex; justify-content: space-between; gap: .5em; margin-bottom: .6em; }

/* ---------- Rechner ---------- */
.kw-calc-cols { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 1.2em; align-items: start; }
.kw-calc-fields { display: flex; flex-wrap: wrap; gap: .8em 1.2em; align-items: flex-end; margin-bottom: 1em; }
.kw-calc-fields .kw-field { margin: 0; }
.kw-result { margin-top: 1em; }
.kw-result[hidden] { display: none; }
.kw-cycle { border-top: 1px solid var(--kw-line); padding: .7em 0; }
.kw-cycle h4 { margin: 0 0 .35em; font-size: 1em; color: var(--kw-muted); font-weight: 600; }
.kw-cycle dl { display: grid; grid-template-columns: auto 1fr; gap: .25em 1em; margin: 0; }
.kw-cycle dt { color: var(--kw-muted); }
.kw-cycle dd { margin: 0; font-weight: 600; }
.kw-due { font-size: 1.9em; font-weight: 700; font-family: ui-rounded, "SF Pro Rounded", "Segoe UI", system-ui, sans-serif; margin: .2em 0; }
.kw-progress { height: .55em; background: var(--kw-sky); border-radius: 999px; overflow: hidden; margin: .6em 0 .3em; }
.kw-progress span { display: block; height: 100%; background: linear-gradient(90deg, #9aa6cf, var(--kw-rose)); border-radius: 999px; }

/* ---------- Glossar ---------- */
.kw-glossary-search { width: 100%; max-width: 24em; font: inherit; padding: .55em .8em; border: 1px solid #b9c1d8; border-radius: 999px; box-sizing: border-box; margin: .4em 0 1em; }
.kw-letter { font-size: 1.3em; color: var(--kw-rose); font-weight: 700; margin: 1em 0 .3em; font-family: ui-rounded, "SF Pro Rounded", "Segoe UI", system-ui, sans-serif; }
.kw-glossary dl { margin: 0; }
.kw-term { display: grid; grid-template-columns: 9em minmax(0, 1fr); gap: 1em; padding: .65em 0; border-top: 1px solid var(--kw-line); }
.kw-term dt { font-weight: 700; }
.kw-term dd { margin: 0; }
.kw-term dd strong { display: block; }
.kw-term dd span { color: var(--kw-muted); }

/* ---------- Navigation ---------- */
.kw-nav-icon { width: 14px; height: 14px; vertical-align: -2px; margin-right: 2px; }


/* ---------- 0.3.0: Allgemein ---------- */
.kw .sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0, 0, 0, 0); border: 0; }
.kw .kw-inline { display: inline; margin: 0; }
.kw .kw-indent { margin: .4em 0 0 1.7em; }
.kw-callout-gold { background: var(--kw-gold-soft); color: #6b4706; }
.kw-callout-gold a { color: #6b4706; font-weight: 600; }
.kw-cols-3 { grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); }

/* ---------- Startseite: Überblick & Bereiche ---------- */
.kw-dash { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: .9em; margin-bottom: 1.4em; }
.kw-dash-card { display: flex; flex-direction: column; gap: .2em; border-radius: var(--kw-radius); padding: 1em 1.1em; text-decoration: none !important; color: var(--kw-ink) !important; border: 1px solid var(--kw-line); background: #fff; }
.kw-dash-card strong { font-size: 1.15em; }
.kw-dash-card:hover { border-color: #9aa6cf; }
.kw-dash-cycle { border-top: 4px solid var(--kw-rose); }
.kw-dash-fertile { background: var(--kw-sage); }
.kw-dash-hibbel { border-top: 4px solid #8f9be0; }
.kw-dash-preg { border-top: 4px solid var(--kw-gold); }
.kw-sections { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1em; margin-bottom: 1.4em; }
.kw-section { display: flex; flex-direction: column; gap: .6em; border-radius: 14px; padding: 1.1em; }
.kw-section h3 { margin: 0; }
.kw-section p { margin: 0 0 .2em; }
.kw-section-cycle { background: #fbeef1; }
.kw-section-ttc { background: #eef1fb; }
.kw-section-preg { background: #fdf6e6; }
.kw-section .kw-tool { border-color: transparent; }

/* ---------- Hibbelliste ---------- */
.kw-own { border-left: 4px solid #8f9be0; }
.kw-own-due { border-left-color: var(--kw-gold); background: #fffaf0; }
.kw-own p { margin: 0 0 .5em; }
.kw-own summary { cursor: pointer; color: var(--kw-muted); }
.kw-status-picker { display: grid; grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)); gap: .6em; margin-top: .7em; }
.kw-status-picker form { margin: 0; }
.kw-status-btn { width: 100%; height: 100%; text-align: left; font: inherit; color: var(--kw-ink); background: #fff; border: 1px solid var(--kw-line); border-radius: var(--kw-radius); padding: .7em .8em; cursor: pointer; display: flex; flex-direction: column; gap: .2em; }
.kw-status-btn span { font-size: .85em; color: var(--kw-muted); }
.kw-status-btn:hover { border-color: #9aa6cf; }
.kw-status-btn[aria-pressed=true] { border-width: 2px; border-color: var(--kw-ink); }
.kw-hibbel-group { margin-bottom: 1.4em; }
.kw-hibbel-group h3 { display: flex; align-items: center; gap: .5em; }
.kw-hg-today h3 { color: #b0233f; }
.kw-hibbel { border-top: 4px solid #8f9be0; }
.kw-hibbel.kw-st-unsure { border-top-color: #a88be0; }
.kw-hibbel.kw-st-positive { border-top-color: var(--kw-gold); background: linear-gradient(180deg, #fffaf0 0%, #fff 60%); }
.kw-hibbel.kw-st-again { border-top-color: #7cc4b2; }
.kw-hibbel.kw-st-pause { border-top-color: #c7c2b8; }
.kw-hibbel-own { box-shadow: 0 0 0 2px #dfe4f7; }
.kw-hibbel-user a { font-weight: 700; }
.kw-status { font-size: .85em; font-weight: 600; white-space: nowrap; }
.kw-nmt { font-size: 1.05em; margin-bottom: .4em; }
.kw-nmt span { color: var(--kw-muted); font-size: .85em; }
.kw-nmt em { font-style: normal; color: var(--kw-muted); font-size: .9em; }
.kw-tags { gap: .3em; margin-bottom: .5em; }
.kw-spacer-v { flex: 1; }
.kw-greetings { margin-top: .6em; font-size: .92em; }
.kw-greetings summary { cursor: pointer; color: var(--kw-muted); }
.kw-msgs { list-style: none; margin: .5em 0; padding: 0; }
.kw-msgs li { padding: .35em 0; border-top: 1px dashed var(--kw-line); overflow-wrap: anywhere; }
.kw-msgs li:first-child { border-top: 0; }
.kw-msg-user { font-weight: 600; margin-right: .3em; }
.kw-msg-time { display: block; font-size: .8em; color: var(--kw-muted); }
.kw-msg-ask { color: var(--kw-muted); }
.kw-greet-form { display: flex; gap: .4em; margin-top: .4em; }
.kw-greet-form input[type=text] { flex: 1; min-width: 0; font: inherit; padding: .35em .5em; border: 1px solid #b9c1d8; border-radius: 6px; }
.kw-entry-links { margin-top: .5em; font-size: .9em; justify-content: space-between; }

/* ---------- Schwangerschaft ---------- */
.kw-preg-hero { display: flex; align-items: center; gap: 1.4em; background: linear-gradient(160deg, #fdf6e6 0%, #f8eef3 100%); border-radius: 14px; padding: 1.4em 1.6em; margin-bottom: 1.2em; }
.kw-preg-hero h3 { font-size: 1.5em; margin: 0 0 .2em; }
.kw-preg-hero p { margin: 0 0 .3em; }
.kw-preg-ring { --p: 0; flex: none; width: 116px; height: 116px; border-radius: 50%; display: grid; place-items: center; background: conic-gradient(var(--kw-rose) calc(var(--p) * 1%), #fff 0); }
.kw-preg-ring > div { width: 92px; height: 92px; border-radius: 50%; background: #fffaf3; display: flex; flex-direction: column; align-items: center; justify-content: center; }
.kw-preg-ring strong { font-size: 1.6em; line-height: 1; font-family: ui-rounded, "SF Pro Rounded", "Segoe UI", system-ui, sans-serif; }
.kw-preg-ring span { font-size: .8em; color: var(--kw-muted); }
.kw-preg-cols { align-items: start; }
.kw-week-size { display: flex; gap: .9em; align-items: center; margin-bottom: .9em; }
.kw-week-fruit { flex: none; width: 3.2em; height: 3.2em; border-radius: 50%; background: var(--kw-gold-soft); color: #7a5208; display: grid; place-items: center; font-weight: 700; font-size: 1.2em; }
.kw-week-cols { display: grid; grid-template-columns: 1fr 1fr; gap: 1em; }
.kw-week-cols h4 { margin: 0 0 .3em; font-size: 1em; }
.kw-chk-group { margin-top: .7em; }
.kw-chk-group > summary { cursor: pointer; font-weight: 650; padding: .3em 0; }
.kw-chk-now > summary { color: #b0233f; }
.kw-chk { list-style: none; margin: 0; padding: 0; }
.kw-chk li { display: flex; gap: .7em; padding: .6em 0; border-top: 1px solid var(--kw-line); scroll-margin-top: 1em; }
.kw-chk li p { margin: .2em 0 0; font-size: .92em; color: var(--kw-muted); }
.kw-chk li form { margin: 0; }
.kw-chk-box { width: 1.5em; height: 1.5em; border-radius: 6px; border: 2px solid #9aa6cf; background: #fff; cursor: pointer; flex: none; margin-top: .1em; position: relative; }
.kw-chk-box[aria-pressed=true] { background: var(--kw-teal); border-color: var(--kw-teal); }
.kw-chk-box[aria-pressed=true]::after { content: ""; position: absolute; left: .42em; top: .12em; width: .35em; height: .7em; border: solid #fff; border-width: 0 2px 2px 0; transform: rotate(45deg); }
.kw-done strong { text-decoration: line-through; color: var(--kw-muted); }
.kw-cat { display: inline-block; border-radius: 999px; padding: 0 .55em; font-size: .85em; margin-right: .3em; background: var(--kw-sky); }
.kw-cat-vaccine { background: #e4f1fb; }
.kw-cat-checkup { background: #fbe3e8; }
.kw-cat-health { background: var(--kw-sage); }
.kw-cat-work { background: var(--kw-gold-soft); }
.kw-weeks { display: flex; flex-wrap: wrap; gap: .3em; align-items: center; margin-bottom: 1em; }
.kw-weeks a { display: inline-block; min-width: 2.1em; text-align: center; padding: .25em .3em; border-radius: 8px; background: #fff; border: 1px solid var(--kw-line); color: var(--kw-ink); text-decoration: none; }
.kw-weeks a[aria-current=page] { background: var(--kw-ink); color: #fff; border-color: var(--kw-ink); }
.kw-weeks-tri { font-size: .8em; color: var(--kw-muted); margin: 0 .2em 0 .6em; }
details.kw-box > summary { cursor: pointer; }

@media (max-width: 900px) {
	.kw-sections { grid-template-columns: minmax(0, 1fr); }
}
@media (max-width: 560px) {
	.kw-week-cols { grid-template-columns: minmax(0, 1fr); }
	.kw-preg-hero { flex-direction: column; align-items: flex-start; }
}


/* ---------- 0.4.0: Portal-Bereiche, Bereichsseiten, Profil, Board3 ---------- */
.kw-hero-compact { padding: 1.5em 1.8em; }
.kw-hero-compact .kw-hero-art { max-width: 170px; }
.kw-areas { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1em; margin-bottom: 1.4em; }
.kw-area { display: flex; flex-direction: column; gap: .5em; border-radius: 14px; padding: 1.2em 1.25em; }
.kw-area h3 { margin: 0; font-size: 1.35em; }
.kw-area h3 a { color: var(--kw-ink); text-decoration: none; }
.kw-area-live { background: rgba(255, 255, 255, .75); border-radius: var(--kw-radius); padding: .7em .85em; margin: 0; min-height: 3.2em; }
.kw-area-links { list-style: none; margin: 0; padding: 0; flex: 1; }
.kw-area-links li { padding: .3em 0; border-top: 1px solid rgba(45, 51, 80, .1); }
.kw-area-links li:first-child { border-top: 0; }
.kw-area-links a { font-weight: 600; }
.kw-area .kw-btn { align-self: flex-start; }
.kw-section-head { border-radius: 14px; padding: 1.3em 1.5em; margin-bottom: 1.2em; }
.kw-section-head h2 { margin-top: 0; }
.kw-section-head p { margin: 0; }
.kw-tools-2 { grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); margin-bottom: 1em; }
.kw-w-cycle .kw-sum-big { margin-bottom: .2em; }
.kw-w-hint { margin: .2em 0 .7em; }
.kw-w-fertile .kw-w-hint { color: #14574a; font-weight: 600; }
.kw-strip { display: grid; grid-template-columns: repeat(14, minmax(0, 1fr)); gap: 3px; margin-bottom: .7em; }
.kw-strip span { text-align: center; font-size: .75em; padding: .35em 0; border-radius: 5px; background: #f6f7fb; }
.kw-strip .kw-fertile { background: var(--kw-sage); }
.kw-strip .kw-ovulation { background: var(--kw-teal); color: #fff; }
.kw-strip .kw-period-predicted { background: #fff; box-shadow: inset 0 0 0 1px #e693a4; }
.kw-strip .kw-strip-today { font-weight: 700; box-shadow: inset 0 0 0 2px var(--kw-ink); }
.kw-w-preg { display: flex; gap: 1em; align-items: center; margin-bottom: .8em; }
.kw-w-preg p { margin: .2em 0 0; }
.kw-preg-ring-small { width: 84px; height: 84px; }
.kw-preg-ring-small > div { width: 66px; height: 66px; }
.kw-preg-ring-small strong { font-size: 1.15em; }
.kw-term-day { font-size: 1.05em; margin-bottom: .3em; }
.kw-term-day strong { color: var(--kw-rose); }
.kw-forum-links { list-style: none; margin: 0 0 .9em; padding: 0; display: flex; flex-wrap: wrap; gap: .4em; }
.kw-forum-links li { background: var(--kw-sky); border-radius: 999px; padding: .25em .8em; }
.kw-forum-links a { font-weight: 600; }
.kw-list-inline li { border-top: 0; padding: .25em 0; }
.kw-today-text { color: #b0233f; font-weight: 600; }
.kw-stats-line { text-align: center; margin-top: 1em; }
.kw-ucp-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: 1em; margin-top: 1em; }
.kw-ucp-wide { grid-column: 1 / -1; }
.kw-ucp .kw-box h3 { margin-bottom: .6em; }
.kw-start-pages { border: 0; padding: 0; }
.kw-start-option { display: flex; gap: .7em; align-items: flex-start; padding: .7em .8em; border: 1px solid var(--kw-line); border-radius: var(--kw-radius); margin: .5em 0; cursor: pointer; background: #fff; }
.kw-start-option input { margin-top: .3em; }
.kw-start-option > span { display: flex; flex-direction: column; }
.kw-b3 { font-size: 1em; }
.kw-b3 .kw-w-preg { flex-direction: column; align-items: flex-start; }
.kw-b3 .kw-strip { grid-template-columns: repeat(7, minmax(0, 1fr)); }
.kw-b3 .kw-sum-big { font-size: 2em; }
.kw-b3-menu { list-style: none; margin: 0; padding: 0; }
.kw-b3-menu > li { padding: .4em 0; border-top: 1px solid var(--kw-line); }
.kw-b3-menu > li:first-child { border-top: 0; }
.kw-b3-menu ul { list-style: none; margin: .2em 0 0 .8em; padding: 0; }
@media (max-width: 900px) {
	.kw-areas { grid-template-columns: minmax(0, 1fr); }
}

@media (max-width: 900px) {
	.kw-cal-layout, .kw-cols, .kw-calc-cols { grid-template-columns: minmax(0, 1fr); }
	.kw-hero { grid-template-columns: minmax(0, 1fr); padding: 1.4em; }
	.kw-hero-art { display: none; }
}
@media (max-width: 560px) {
	.kw { font-size: 1em; }
	.kw-cal-grid { border-spacing: 2px; }
	.kw-cal-grid td { height: 3.3em; }
	.kw-day { min-height: 3.3em; padding: .2em .25em; }
	.kw-day-temp { display: none; }
	.kw-term { grid-template-columns: minmax(0, 1fr); gap: .2em; }
	.kw-hero h2 { font-size: 1.6em; }
}
@media (prefers-reduced-motion: reduce) {
	.kw * { transition: none !important; }
}

/* ---- 0.5.0: Tagesformular & Temperaturkurve ---- */
.kw .kw-dayform-box { max-width: 52em; }
.kw .kw-fs { border: 1px solid var(--kw-line); border-radius: var(--kw-radius); padding: .6em 1em 1em; margin: 0 0 1em; }
.kw .kw-fs legend { font-weight: 700; padding: 0 .4em; font-size: 1.05em; }
.kw .kw-fs-details > summary { cursor: pointer; font-weight: 700; padding: .3em 0; }
.kw .kw-fs-details[open] > summary { margin-bottom: .6em; }
.kw .kw-label { display: block; font-weight: 600; margin-bottom: .3em; }
.kw .kw-seg-wrap { flex-wrap: wrap; border-radius: 1em; }
.kw .kw-mucus-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(10.5em, 1fr)); gap: .4em; }
.kw .kw-mucus-grid label { margin: 0; font-weight: 400; }
.kw .kw-mucus-grid input { position: absolute; opacity: 0; }
.kw .kw-mucus-grid span { display: block; border: 1px solid #b9c1d8; border-radius: .7em; padding: .45em .7em; cursor: pointer; height: 100%; box-sizing: border-box; font-size: .92em; }
.kw .kw-mucus-grid span b { display: block; font-size: 1.15em; }
.kw .kw-mucus-grid input:checked + span { background: var(--kw-ink); color: #fff; border-color: var(--kw-ink); }
.kw .kw-mucus-grid input:focus-visible + span { outline: 3px solid #7d8fd8; }
.kw .kw-chips { display: flex; flex-wrap: wrap; gap: .4em; margin: .3em 0 .8em; }
.kw .kw-chips label { margin: 0; font-weight: 400; }
.kw .kw-chips input { position: absolute; opacity: 0; }
.kw .kw-chips span { display: inline-block; border: 1px solid #b9c1d8; border-radius: 999px; padding: .3em .8em; cursor: pointer; font-size: .9em; }
.kw .kw-chips input:checked + span { background: var(--kw-rose-soft); border-color: #e48aa0; color: #8c1d33; font-weight: 600; }
.kw .kw-chips input:focus-visible + span { outline: 3px solid #7d8fd8; }

.kw .kw-table { width: 100%; border-collapse: collapse; }
.kw .kw-table th, .kw .kw-table td { text-align: left; padding: .55em .5em; border-bottom: 1px solid var(--kw-line); vertical-align: middle; }
.kw .kw-table th { font-size: .85em; color: var(--kw-muted); }
.kw .kw-curve-current td { background: #fbf6fb; }
.kw .kw-muted { color: var(--kw-muted); }
.kw .kw-curve-actions { margin-bottom: .8em; }
.kw .kw-curve-wrap { overflow-x: auto; -webkit-overflow-scrolling: touch; background: #fff; border: 1px solid var(--kw-line); border-radius: var(--kw-radius); padding: .4em; margin-bottom: .5em; }
.kw .kw-curve-wrap svg, .kw .kw-curve-wrap img { display: block; max-width: none; height: auto; }
.kw .kw-curve-wrap svg a:hover rect, .kw .kw-curve-wrap svg a:focus rect { fill: rgba(125, 143, 216, .12); }
.kw .kw-curve-summary ul { margin: 0 0 .6em 1.2em; }
.kw .kw-curve-summary li { margin: .2em 0; }
.kw .kw-note-positive { background: var(--kw-gold-soft); border-radius: var(--kw-radius); padding: .6em .9em; font-weight: 600; }
@media (max-width: 700px) {
	.kw .kw-table thead { display: none; }
	.kw .kw-table tr { display: block; border-bottom: 1px solid var(--kw-line); padding: .4em 0; }
	.kw .kw-table td { display: block; border: 0; padding: .15em .3em; }
}
@media print {
	.kw-noprint, #page-header, #page-footer, .navbar, #nav-breadcrumbs { display: none !important; }
	.kw .kw-curve-wrap { border: 0; overflow: visible; }
	.kw .kw-curve-wrap svg { width: 100%; }
}
.kw-day-form .kw-calc-fields .kw-field { border-top: 0; padding: 0; }
.kw .kw-curve-list + .kw-box .kw-row { align-items: flex-end; }
