/* Vorlagenserver – Seite „Rechner“ (rechner.js). Die Blätter sind wie im Excel-Rechner V2.8 angeordnet: gelbe
   Eingabezellen, farbige Kopfzeilen, Eingabe und Ergebnis in derselben Zeile. Grundformen aus stil.css. */
#ansicht-rechner { --r-linie: #1d2125; --r-gelb: #fffbcf; --r-gelb-rand: #cfc98f; --r-kopf-grau: #d9d9d9;
  --r-kopf-gruen: #c6e0b4; --r-kopf-blau: #b4c6e7; --r-kopf-gelb: #ffe699; --r-streifen: #dbe3f3; --r-hervor: #f4b183;
  --r-krida: #d6dce5; }
#ansicht-rechner h1 .leicht { font-weight: 400; color: var(--leise); }
.rechner-zeile { display: inline-flex; align-items: center; gap: 6px; font-size: 14px; color: var(--leise); }
.rechner-kopfzeile { display: flex; align-items: center; gap: 16px; flex-wrap: wrap; margin-bottom: 14px; font-size: 14px; }
.rechner-kopfzeile label { display: inline-flex; align-items: center; gap: 6px; }
.rechner-kopfzeile input { width: auto; }

/* ---------------------------------------------------------------- das Blatt */
.rblatt { background: var(--flaeche); border: 1px solid var(--linie); border-radius: var(--radius); padding: 22px 26px 26px;
  max-width: 720px; font-size: 14px; line-height: 1.35; }
.rblatt.blatt-legalisierung { max-width: none; }
.rblatt.blatt-150m2 { max-width: 980px; }
.rblatt.blatt-verlassenschaft { max-width: 860px; }
.rblatt.blatt-krida, .rblatt.blatt-krida138 { max-width: 760px; }
.rblatt input[type=text] { margin: 0; padding: 3px 7px; border: 1px solid var(--r-gelb-rand); border-radius: 0; background: var(--r-gelb);
  font-variant-numeric: tabular-nums; width: 100%; }
.rblatt input.rbetrag, .rblatt input.rzahl { text-align: right; font-weight: 600; }
.rblatt input.kurz { width: 62px; }
.rblatt input.mittel { width: 96px; }
.rblatt select { padding: 4px 6px; border: 1px solid var(--r-gelb-rand); border-radius: 0; background: var(--r-gelb); width: 100%; min-width: 0; }
.rblatt input[type=checkbox], .rblatt input[type=radio] { margin: 0; accent-color: var(--text); }
.rblatt th, .rblatt td { border-bottom: 0; padding: 2px 6px; text-transform: none; letter-spacing: 0; font-size: inherit; color: inherit;
  background: none; vertical-align: middle; }
.ungueltig { border-color: var(--fehler) !important; background: var(--fehler-hg) !important; }
.rinfo { color: var(--leise); cursor: help; font-size: 13px; }
.rtitel { font-weight: 650; margin: 0 0 12px; }
.rtitel.unterstrichen, .unterstrichen { text-decoration: underline; }
.rabsatz { margin: 14px 0 8px; }
.rleiste { font-weight: 650; padding: 2px 6px; margin: 16px 0 10px; }
.rleiste.grau { background: var(--r-kopf-grau); }
.rleiste.gruen { background: var(--r-kopf-gruen); }
.rleiste.blau { background: var(--r-kopf-blau); }
.rleiste.gelb { background: var(--r-kopf-gelb); }
.rw { text-align: right; white-space: nowrap; font-variant-numeric: tabular-nums; }
.rstark { font-weight: 700; }
.rmarke { font-weight: 700; color: #a8420a; }
.rfund { display: none; color: var(--leise); font-size: 12px; font-style: italic; font-weight: 400; white-space: normal; text-align: left; }
.mit-fundstellen .rfund { display: block; }
#ansicht-rechner.alt .rw, #ansicht-rechner.alt [data-kaesten] { opacity: .4; }

/* Eingabezeilen: Beschriftung links, gelbe Zelle rechts */
.reingaben { margin-bottom: 4px; }
.rz { display: grid; grid-template-columns: minmax(0, 1fr) 170px; gap: 10px; align-items: center; padding: 1px 0; }
.rz > * { min-width: 0; }
.rz > label { display: flex; align-items: center; gap: 6px; margin: 0; font-weight: 650; }
.rz.rz-wahl { grid-template-columns: minmax(0, 1fr) minmax(0, 330px); }
.rz .rhaken { font-weight: 400; cursor: pointer; grid-column: 1 / -1; }
.rz.rz-rechts { grid-template-columns: minmax(0, 1fr) 120px; }
.rz.rz-rechts > label { justify-content: flex-end; font-weight: 400; }

/* Kästen wie in Excel: Kopfzeile, Zeilen mit €-Spalte, Summe mit Strich */
.rkasten { width: 100%; border: 2px solid var(--r-linie); border-collapse: collapse; margin-top: 18px; }
.rkasten th { text-align: left; font-weight: 650; border-bottom: 2px solid var(--r-linie); }
.rkasten.grau th { background: var(--r-kopf-grau); }
.rkasten.gruen th { background: var(--r-kopf-gruen); }
.rkasten.blau th { background: var(--r-kopf-blau); }
.rkasten.gelb th { background: var(--r-kopf-gelb); }
.rkasten td.reuro { width: 22px; text-align: center; }
.rkasten td.rw { width: 120px; }
.rkasten td.rwort { font-weight: 650; }
.rkasten tr.summe td { border-top: 2px solid var(--r-linie); font-weight: 700; }
.rkasten .rdazu { float: right; margin-right: 30px; font-weight: 400; }
.rkasten .rdetail { display: none; margin-left: 8px; color: var(--leise); font-size: 12.5px; }
.rkasten tr.zw td { color: var(--leise); font-size: 13px; padding-left: 18px; }
.rkasten tr.zw, .rkasten.zw, .rhinweis.rnurweg { display: none; }
.mit-rechenweg .rkasten tr.zw, .rkasten.alles tr.zw { display: table-row; }
.mit-rechenweg .rkasten.zw { display: table; }
.mit-rechenweg .rkasten .rdetail, .rkasten.alles .rdetail { display: inline; }
.mit-rechenweg .rhinweis.rnurweg { display: block; }
[data-hinweise]:not(:empty) { display: grid; gap: 8px; margin-top: 8px; }

/* ---------------------------------------------------------------- 150 m² */
.r150g { overflow-x: auto; }
.r150 { display: grid; grid-template-columns: 410px 130px 130px 34px 130px; justify-content: start; gap: 8px; align-items: center; padding: 2px 0; min-width: 700px; }
.r150 .rmitte { text-align: center; }
.r150 input[type=text] { border: 2px solid var(--r-linie); background: #ffff66; }
.r150 .rw, .r150box .rw { font-weight: 600; }
.r150box { display: inline-grid; grid-template-columns: auto 130px; gap: 8px 40px; border: 2px solid var(--r-linie); padding: 2px 6px; margin: 18px 0 8px;
  font-weight: 650; }
.r150box .rfund { grid-column: 1 / -1; }

/* ---------------------------------------------------------------- ImmoESt */
.rimmo-kopf { display: grid; grid-template-columns: minmax(0, 1fr); gap: 4px; margin-bottom: 4px; }
.rtabelle { width: 100%; border: 1.5px solid var(--r-linie); border-collapse: collapse; }
.rtabelle td { border: 1px solid var(--r-linie); }
.rtabelle td.rr { width: 170px; text-align: right; padding: 0; }
.rtabelle td.rr .rw { display: block; padding: 2px 6px; font-weight: 600; }
.rtabelle td.rr .rw:not(:empty)::after, .rimmo-erg .rw:not(:empty)::after { content: " €"; }
.rtabelle input[type=text] { border: 0; background: var(--r-gelb); }
.rtabelle td.rl input[type=text] { background: none; }
.rtabelle tr.rbeilage td.rl { color: var(--leise); }
.rtabelle tr.rbeilage input { background: none; text-align: right; }
.rimmo-erg { display: grid; justify-content: end; gap: 2px; margin-top: 2px; }
.rimmo-erg > div:not(.rfund) { display: grid; grid-template-columns: auto 170px; gap: 14px; align-items: center; }
.rimmo-erg span:first-child { text-align: right; }
.rimmo-erg .rw { padding: 2px 6px; font-weight: 600; border: 1px solid var(--r-linie); }
.rimmo-erg .rkastenwert { border-width: 2px; font-weight: 700; }
.rerklaerung { border: 2px solid var(--r-linie); padding: 6px 8px; margin-top: 22px; }
.runterschrift { display: grid; grid-template-columns: 1fr 1fr; gap: 60px; margin-top: 46px; text-align: center; }
.runterschrift div { border-top: 1px solid var(--r-linie); padding-top: 3px; }

/* ---------------------------------------------------------------- Legalisierung: je Urkunde eine Karte */
.rkarten { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 20px; align-items: start; }
.rkarte-kopf { background: var(--r-kopf-gruen); font-weight: 650; border: 1.5px solid var(--r-linie); padding: 2px 6px; }
.rk { display: grid; grid-template-columns: 22px minmax(0, 1fr) auto; gap: 6px; align-items: center; min-height: 27px; padding: 0 4px;
  border: 1.5px solid var(--r-linie); border-top: 0; }
.rk:nth-child(odd) { background: var(--r-streifen); }
.rk.rk-bem { grid-template-columns: minmax(0, 1fr) 118px; background: none; font-weight: 650; }
.rk label { margin: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.rk input[type=text] { padding: 2px 6px; }
.rk input[type=checkbox]:not(:checked) ~ input[type=text] { visibility: hidden; }     /* Anzahl nur beim angehakten Posten */
.rkarte-erg { margin-top: 16px; }
.re { display: grid; grid-template-columns: minmax(0, 1fr) auto; padding: 1px 4px; }
.re.oben { border-top: 1.5px solid var(--r-linie); }
.re.stark { font-weight: 700; }
.re .rfund { grid-column: 1 / -1; }
.reuro-vor:not(:empty)::before { content: "€ "; }
.reuro-nach:not(:empty)::after { content: " €"; }

/* ---------------------------------------------------------------- Verlassenschaft */
.rverl { display: grid; grid-template-columns: minmax(0, 1fr) 190px; gap: 44px; align-items: start; }
.rverl .reingaben { max-width: none; }
.rblock { max-width: 430px; }
.rv { display: grid; grid-template-columns: 22px minmax(0, 1fr) 62px 110px; gap: 8px; align-items: center; padding: 1px 0 1px 26px; }
.rv label { margin: 0; }
.rv .rfund { grid-column: 2 / -1; }
.rv.rsumme .rw { font-weight: 700; text-decoration: underline; text-underline-offset: 3px; }
.rtp8 { display: grid; grid-template-columns: 1fr 1fr; gap: 0 60px; margin-top: 22px; }
.rtp8 .rleiste { margin-bottom: 4px; }
.rv2 { display: flex; justify-content: space-between; padding: 10px 4px 2px; }
.rv2 .rstark { text-decoration: underline; text-underline-offset: 3px; }
.rverl-rechts { margin-top: 142px; }
.rradios { display: grid; }
.rradio { display: flex; align-items: center; gap: 12px; padding: 0 0 0 16px; margin: 0; cursor: pointer; font-size: 13.5px; line-height: 20px; }

/* ---------------------------------------------------------------- Krida */
.rkridarahmen { overflow-x: auto; }
.rkrida { border-collapse: collapse; width: 100%; min-width: 560px; font-size: 13.5px; }
.rkrida td { border: 1px solid var(--r-linie); padding: 0 6px; height: 21px; }
.rkrida td.rr { width: 118px; text-align: right; padding: 0; }
.rkrida td.rr .rw { display: block; padding: 0 6px; }
.rkrida td.rfreizelle, .rkrida tr.rabstand td, .rkrida tr.rkopf td { border: 0; }
.rkrida td.rfreizelle.rr { width: 130px; }
.rkrida tr.rabstand td { height: 14px; }
.rkrida tr.rkopf th { text-align: left; font-weight: 700; background: #fff46a; border: 1px solid var(--r-linie); color: #7a5600; }
.rkrida input[type=text] { border: 0; background: var(--r-krida); padding: 0 6px; height: 21px; font-weight: 400; }
.rkrida td.rstark .rw { font-weight: 700; }
.rkrida tr.rhervor td.rl, .rkrida tr.rsumme td.rl { font-weight: 700; }
.rkrida tr.rhervor td.rr:nth-child(2) { background: var(--r-hervor); font-weight: 700; border-width: 2px; }
.rkrida td.rhervorzelle { background: var(--r-hervor); }
.rkrida tr.rsumme td { border-top-width: 2px; }

/* ---------------------------------------------------------------- Hinweise, Tarifstand */
.rhinweise { display: grid; gap: 8px; margin-top: 14px; max-width: 860px; }
.rhinweis { padding: 8px 12px; border-radius: 6px; font-size: 14px; margin: 0; }
.rhinweis.rneutral { background: var(--flaeche); border: 1px solid var(--linie); color: var(--leise); }
.rhinweis .rfund { margin-top: 3px; }
#rechner-stand { margin-top: 12px; max-width: 860px; }
.rstand { font-size: 13px; color: var(--leise); overflow-x: auto; }
.rstand summary { cursor: pointer; }
.rstand table { margin-top: 6px; font-size: 12px; }
.rstand td, .rstand th { padding: 3px 8px; border-top: 1px solid var(--linie); text-align: left; vertical-align: top; text-transform: none;
  letter-spacing: 0; background: none; }
.rstand .roffen-text { color: var(--warn); }

@media (max-width: 1100px) { .rkarten { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 760px) {
  .rblatt { padding: 14px 12px 18px; }
  .rverl { grid-template-columns: 1fr; gap: 18px; }
  .rverl-rechts { margin-top: 0; }
  .rz { grid-template-columns: minmax(0, 1fr) 120px; }
  .rz.rz-wahl { grid-template-columns: 1fr; }
  .rv { padding-left: 0; grid-template-columns: 22px minmax(0, 1fr) 56px 88px; }
  .rtp8 { grid-template-columns: 1fr; }
  .rkasten td.rw { width: 96px; }
}
@media (max-width: 560px) { .rkarten { grid-template-columns: 1fr; } }

@media print {
  /* Kopf und Fußzeile blendet stil.css aus; das Hinweisband des Testbetriebs bleibt auf dem Ausdruck */
  .nichtdruck, #rechner-fehler, .rinfo { display: none !important; }
  #ansicht-rechner { font-size: 10pt; }
  #ansicht-rechner h1 { font-size: 15pt; }
  .rblatt { border: 0; padding: 0; max-width: none; }
  .rblatt, .rkasten, .rkarte, .rblock, .rhinweis, .rtabelle tr { break-inside: avoid; }
  .rechner-kopfzeile input { border: 0 !important; padding: 0 2px !important; }
  #ansicht-rechner input::placeholder { color: transparent; }
  #ansicht-rechner input::-webkit-calendar-picker-indicator { display: none; }
  .rstand:not([open]) { display: none; }
  #ansicht-rechner.alt .rw, #ansicht-rechner.alt [data-kaesten] { opacity: 1; }
}
