/* Sudoku-Werkzeuge (sudoku.domain-root.de; T55, 29.10.2026): Spielfeld, Tagesrätsel, Solver, Druckblätter.
   Rahmen, Felder und Knöpfe aus domainroot.css; Farben nur über die Variablen des Hosts. Druck: @page A4, schwarz-weiß. */

/* ---------- Brett ---------- */
.dr-sd-spiel, .dr-sd-solver { max-width: 520px; margin: 0 auto; }
.dr-sd-brett { display: grid; grid-template-rows: repeat(9, 1fr); width: 100%; aspect-ratio: 1; border: 3px solid var(--dr-tinte); border-radius: 6px; overflow: hidden; background: var(--dr-flaeche); user-select: none; transition: box-shadow .3s; }
.dr-sd-zeile { display: grid; grid-template-columns: repeat(9, 1fr); min-height: 0; }
.dr-sd-zelle { position: relative; display: flex; align-items: center; justify-content: center; min-width: 0; min-height: 0; margin: 0; padding: 0; border: 0; border-right: 1px solid var(--dr-linie-2); border-bottom: 1px solid var(--dr-linie-2); border-radius: 0; background: var(--dr-flaeche); color: var(--dr-marke); font: 600 clamp(1.05rem, 5.2vw, 1.75rem)/1 var(--dr-sans); cursor: pointer; }
.dr-sd-zeile .dr-sd-zelle:last-child { border-right: 0; }
.dr-sd-zeile:last-child .dr-sd-zelle { border-bottom: 0; }
.dr-sd-zelle.dr-sd-rand-r { border-right: 2px solid var(--dr-tinte); }
.dr-sd-zelle.dr-sd-rand-u { border-bottom: 2px solid var(--dr-tinte); }
.dr-sd-zelle:focus { outline: none; }
.dr-sd-zelle:focus-visible { outline: 3px solid var(--dr-akzent); outline-offset: -3px; z-index: 1; }
.dr-sd-zelle.dr-sd-fest { color: var(--dr-tinte); font-weight: 800; }
.dr-sd-zelle.dr-sd-eigen { color: var(--dr-marke); }
.dr-sd-zelle.dr-sd-gefunden { color: var(--dr-tipp); }
.dr-sd-zelle.dr-sd-bereich { background: var(--dr-flaeche-2); }
.dr-sd-zelle.dr-sd-gleich { background: var(--dr-tipp-tint); }
.dr-sd-zelle.dr-sd-gewaehlt { background: var(--dr-marke-tint); box-shadow: inset 0 0 0 2px var(--dr-marke); }
.dr-sd-zelle.dr-sd-falsch { background: var(--dr-warn-tint); color: var(--dr-warn); }
.dr-sd-zelle.dr-sd-ziel { background: var(--dr-tipp-tint); box-shadow: inset 0 0 0 2px var(--dr-tipp); }
.dr-sd-zelle.dr-sd-muster { background: var(--dr-info-tint); }
.dr-sd-zelle.dr-sd-streich { background: var(--dr-vorsicht-tint); box-shadow: inset 0 0 0 2px var(--dr-vorsicht-linie); }
.dr-sd-brett.dr-sd-ok { box-shadow: 0 0 0 4px var(--dr-tipp-linie), 0 0 28px var(--dr-tipp-linie); }
.dr-sd-notizen { position: absolute; inset: 2px; display: grid; grid-template-columns: repeat(3, 1fr); grid-template-rows: repeat(3, 1fr); font-size: clamp(.5rem, 1.9vw, .7rem); font-weight: 600; color: var(--dr-tinte-2); line-height: 1; }
.dr-sd-notizen span { display: flex; align-items: center; justify-content: center; }

/* ---------- Kopf, Stufen, Tasten ---------- */
.dr-sd-kopfzeile { display: flex; flex-direction: column; gap: .55rem; margin: 0 0 .75rem; }
.dr-main .prose .dr-sd-datum, .dr-sd-datum { margin: 0; font-weight: 800; font-size: 1.05rem; color: var(--dr-tinte); }
.dr-sd-stufen { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: .35rem; }
.dr-sd-stufe { padding: .55rem .3rem; border: 1.5px solid var(--dr-linie-2); border-radius: 9px; background: var(--dr-flaeche); color: var(--dr-marke); font: 700 .92rem/1.2 var(--dr-sans); cursor: pointer; }
.dr-sd-stufe:hover { border-color: var(--dr-marke); }
.dr-sd-stufe.dr-sd-stufe--aktiv { background: var(--dr-marke); border-color: var(--dr-marke); color: #fff; }
.dr-main .prose .dr-sd-meta, .dr-sd-meta { margin: 0; font-size: .92rem; color: var(--dr-tinte-2); font-variant-numeric: tabular-nums; }
.dr-sd-meta strong { color: var(--dr-tinte); }
.dr-main .prose .dr-sd-notizhinweis, .dr-sd-notizhinweis { margin: 0 0 .5rem; padding: .45rem .7rem; border-radius: 8px; background: var(--dr-vorsicht-tint); border: 1px solid var(--dr-vorsicht-linie); color: var(--dr-vorsicht); font-weight: 700; font-size: .9rem; text-align: center; }
.dr-sd-tasten { display: grid; grid-template-columns: repeat(10, minmax(0, 1fr)); gap: .3rem; margin: .7rem 0 0; }
.dr-sd-taste { min-height: 44px; padding: 0; border: 1.5px solid var(--dr-linie-2); border-radius: 8px; background: var(--dr-flaeche-2); color: var(--dr-tinte); font: 700 1.15rem/1 var(--dr-sans); cursor: pointer; }
.dr-sd-taste:hover { border-color: var(--dr-marke); background: var(--dr-marke-tint); }
.dr-sd-taste--loeschen { color: var(--dr-warn); }
.dr-sd-aktionen { justify-content: center; }
.dr-btn.dr-sd-an { background: var(--dr-vorsicht-tint); border-color: var(--dr-vorsicht); color: var(--dr-vorsicht); }
.dr-main .prose .dr-sd-meldung, .dr-sd-meldung { margin: .6rem 0 0; padding: .7rem .9rem; border-radius: 10px; background: var(--dr-tipp-tint); border: 1px solid var(--dr-tipp-linie); color: var(--dr-tipp); font-weight: 700; text-align: center; }
@media (max-width: 420px) {
    .dr-sd-tasten { grid-template-columns: repeat(5, minmax(0, 1fr)); }
    .dr-sd-stufe { font-size: .84rem; }
}

/* ---------- Solver ---------- */
.dr-sd-zeilenfeld { margin: 1rem 0 0; }
.dr-sd-zeilenfeld textarea { font: .95rem/1.4 var(--dr-mono); padding: .6rem .75rem; border-radius: 10px; border: 1.5px solid var(--dr-linie-2); background: var(--dr-grund); color: var(--dr-tinte); width: 100%; resize: vertical; word-break: break-all; }
.dr-sd-zeilenfeld textarea:focus { border-color: var(--dr-marke); outline: none; box-shadow: 0 0 0 4px color-mix(in srgb, var(--dr-akzent) 22%, transparent); }
.dr-main .prose .dr-sd-knoepfe, .dr-sd-knoepfe { display: flex; flex-wrap: wrap; gap: .5rem; margin: .4rem 0 1rem; }
.dr-main .prose .dr-sd-fehler, .dr-sd-fehler { margin: 0 0 1rem; padding: .7rem .9rem; border: 1px solid var(--dr-warn-linie); border-radius: 10px; background: var(--dr-warn-tint); color: var(--dr-warn); font-weight: 600; }
.dr-main .prose .dr-sd-ergebnis-kopf, .dr-sd-ergebnis-kopf { font-weight: 600; }
.dr-main .prose .dr-sd-zwischentitel, .dr-sd-zwischentitel { margin: .9rem 0 .3rem; padding: 0; font-size: 1.05rem; }
.dr-main .prose .dr-sd-techniken, .dr-sd-techniken { margin: 0 0 .5rem; }
.dr-sd-gitterpaar { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .8rem; }
.dr-main .prose figure.dr-sd-ergebnisgitter, .dr-sd-ergebnisgitter { margin: .6rem 0; max-width: 340px; }
.dr-main .prose table.dr-sd-tabelle, table.dr-sd-tabelle { width: 100%; border-collapse: collapse; table-layout: fixed; margin: 0; border: 2px solid var(--dr-tinte); background: var(--dr-flaeche); font-size: .95rem; }
.dr-main .prose table.dr-sd-tabelle caption, .dr-sd-tabelle caption { caption-side: top; text-align: left; font-size: .84rem; font-weight: 700; color: var(--dr-tinte-2); padding: 0 0 .25rem; }
.dr-main .prose table.dr-sd-tabelle td, .dr-sd-tabelle td { padding: 0; height: 2em; text-align: center; vertical-align: middle; border: 1px solid var(--dr-linie-2); color: var(--dr-tipp); font-weight: 600; }
.dr-main .prose table.dr-sd-tabelle td.dr-sd-v, .dr-sd-tabelle td.dr-sd-v { color: var(--dr-tinte); font-weight: 800; }
.dr-main .prose table.dr-sd-tabelle td.dr-sd-diff, .dr-sd-tabelle td.dr-sd-diff { background: var(--dr-vorsicht-tint); color: var(--dr-vorsicht); font-weight: 800; }
.dr-main .prose table.dr-sd-tabelle td.dr-sd-rand-r, .dr-sd-tabelle td.dr-sd-rand-r { border-right: 2px solid var(--dr-tinte); }
.dr-main .prose table.dr-sd-tabelle td.dr-sd-rand-u, .dr-sd-tabelle td.dr-sd-rand-u { border-bottom: 2px solid var(--dr-tinte); }
@media (max-width: 560px) { .dr-sd-gitterpaar { grid-template-columns: minmax(0, 1fr); } }

/* ---------- Druckblätter: Auswahl ---------- */
.dr-sd-druckform { align-items: start; }
.dr-sd-wahl { border: 1px solid var(--dr-linie); border-radius: 12px; padding: .6rem .9rem .7rem; margin: 0; min-width: 0; display: flex; flex-wrap: wrap; gap: .1rem 1.2rem; }
.dr-sd-wahl legend { font-weight: 700; font-size: .92rem; padding: 0 .3rem; }
.dr-sd-wahl label, .dr-sd-haken label { display: flex; gap: .5rem; align-items: center; min-height: 40px; cursor: pointer; font-weight: 600; }
.dr-sd-wahl input, .dr-sd-haken input { width: 1.15rem; height: 1.15rem; accent-color: var(--dr-marke); margin: 0; flex: none; }
.dr-sd-haken { justify-content: flex-end; }
.dr-sd-haken label.dr-sd-aus-grau { color: var(--dr-tinte-3); cursor: not-allowed; }
.dr-main .prose .dr-sd-status, .dr-sd-status { min-height: 1.3em; margin: 0 0 .6rem; }
@media (max-width: 640px) { .dr-sd-druckform { grid-template-columns: minmax(0, 1fr); } }

/* ---------- Druckblätter: Vorschau und Druck ---------- */
.dr-sd-blaetter { display: grid; gap: 1.2rem; margin: .5rem 0 1rem; padding: 1rem; border-radius: 12px; background: var(--dr-flaeche-3); }
.dr-sd-blatt { container-type: inline-size; width: 100%; max-width: 640px; margin: 0 auto; aspect-ratio: 210 / 297; padding: 5%; background: #fff; color: #000; box-shadow: 0 2px 10px rgba(0, 0, 0, .15); display: flex; flex-direction: column; overflow: hidden; }
.dr-main .prose .dr-sd-blattkopf, .dr-sd-blattkopf { display: flex; justify-content: space-between; gap: 1rem; margin: 0 0 3cqw; padding: 0 0 1.2cqw; border-bottom: .3cqw solid #000; font: 700 2.6cqw/1.2 var(--dr-sans); color: #000; }
.dr-main .prose .dr-sd-blattfuss, .dr-sd-blattfuss { margin: auto 0 0; font: 400 1.8cqw/1.2 var(--dr-sans); color: #555; text-align: right; }
.dr-sd-blattfeld { display: grid; justify-items: center; }
.dr-sd-blatt--vier .dr-sd-blattfeld { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 4cqw 5cqw; }
.dr-sd-loesungsfeld { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); gap: 2.2cqw 2.4cqw; align-content: start; }
.dr-main .prose figure.dr-sd-druckraetsel, .dr-sd-druckraetsel { margin: 0; width: 100%; }
.dr-main .prose .dr-sd-druckraetsel figcaption, .dr-sd-druckraetsel figcaption { margin: .8cqw 0 0; font: 600 2.2cqw/1.2 var(--dr-sans); color: #000; text-align: left; }
.dr-sd-loesungsfeld figcaption, .dr-main .prose .dr-sd-loesungsfeld figcaption { font-size: 1.7cqw; }
.dr-main .prose table.dr-sd-druckgitter, table.dr-sd-druckgitter { width: 100%; margin: 0; border-collapse: collapse; table-layout: fixed; border: .45cqw solid #000; background: #fff; color: #000; }
.dr-main .prose table.dr-sd-druckgitter td, .dr-sd-druckgitter td { position: relative; padding: 0; border: .12cqw solid #777; text-align: center; vertical-align: middle; color: #000; font-family: var(--dr-sans); font-weight: 600; }
.dr-main .prose table.dr-sd-druckgitter td.dr-sd-rand-r, .dr-sd-druckgitter td.dr-sd-rand-r { border-right: .45cqw solid #000; }
.dr-main .prose table.dr-sd-druckgitter td.dr-sd-rand-u, .dr-sd-druckgitter td.dr-sd-rand-u { border-bottom: .45cqw solid #000; }
.dr-main .prose .dr-sd-blatt--eins figure.dr-sd-druckraetsel, .dr-sd-blatt--eins .dr-sd-druckraetsel { width: 90%; }
.dr-sd-druckgitter--gross td { height: 10cqw; font-size: 5.6cqw; }
.dr-sd-druckgitter--mittel td { height: 5.2cqw; font-size: 2.9cqw; }
.dr-main .prose table.dr-sd-druckgitter--klein, table.dr-sd-druckgitter--klein { border-width: .3cqw; }
.dr-main .prose table.dr-sd-druckgitter--klein td, .dr-sd-druckgitter--klein td { height: 1.33cqw; font-size: 1cqw; font-weight: 500; border-width: .08cqw; }
.dr-main .prose table.dr-sd-druckgitter--klein td.dr-sd-rand-r, .dr-sd-druckgitter--klein td.dr-sd-rand-r { border-right-width: .3cqw; }
.dr-main .prose table.dr-sd-druckgitter--klein td.dr-sd-rand-u, .dr-sd-druckgitter--klein td.dr-sd-rand-u { border-bottom-width: .3cqw; }
.dr-sd-kand { position: absolute; inset: 6%; display: grid; grid-template-columns: repeat(3, 1fr); grid-template-rows: repeat(3, 1fr); }
.dr-sd-kand span { border-right: .08cqw dotted #aaa; border-bottom: .08cqw dotted #aaa; }
.dr-sd-kand span:nth-child(3n) { border-right: 0; }
.dr-sd-kand span:nth-child(n+7) { border-bottom: 0; }

@media print {
    html.dr-sd-druck .dr-sd-weg { display: none !important; }
    html.dr-sd-druck .dr-sd-pfad { display: block !important; margin: 0 !important; padding: 0 !important; border: 0 !important; box-shadow: none !important; background: none !important; max-width: none !important; width: auto !important; min-height: 0 !important; overflow: visible !important; }
    html.dr-sd-druck, html.dr-sd-druck body { background: #fff !important; margin: 0 !important; padding: 0 !important; }
    .dr-sd-blaetter { display: block !important; padding: 0 !important; margin: 0 !important; background: none !important; }
    .dr-sd-blatt { max-width: none; width: 100%; aspect-ratio: auto; height: 270mm; padding: 0; margin: 0; box-shadow: none; break-after: page; page-break-after: always; break-inside: avoid; }
    .dr-sd-blatt:last-child { break-after: auto; page-break-after: auto; }
    .dr-sd-blattkopf, .dr-sd-druckgitter, .dr-sd-druckgitter td { -webkit-print-color-adjust: exact; print-color-adjust: exact; }
}
@page { size: A4; margin: 12mm; }
