/* MINT-Material · Informatik Oberstufe (Grundkurs/Leistungskurs):
   Java-Quelltext, Struktogramm (Nassi-Shneiderman), Tracetabelle, Reihungs-Kästchen.
   Einbinden nach fach.css. Farben nur aus var(--fach-*) und der Nuklidkarten-Palette. */

/* ---------- Code im Fließtext ---------- */
.erklaer-text code,.stichliste code,.dbox code,.hinweis-card code,.applet-lead code,.applet-note code,.applet-readout code,
.aufgabe code,.aufgabe-text code,.teilaufgaben code,.ta-body code,.ux code,.fehler-card code,.lk-back code,.lk-front code,.st-q code,.zf code{font-family:ui-monospace,'SF Mono',Menlo,Consolas,'Liberation Mono',monospace;font-size:.9em;background:#f4ede0;border:1px solid #e6dcc9;border-radius:6px;padding:1px 6px;color:#2b241d;overflow-wrap:anywhere}
.dbox code{background:#fff}

/* ---------- Java-Listing ---------- */
pre.java{margin:14px 0 18px;padding:12px 16px 12px 0;background:#fffdf8;border:1px solid var(--rule,#d9cdb8);border-left:4px solid var(--fach-strong);border-radius:12px;font:14.5px/1.7 ui-monospace,'SF Mono',Menlo,Consolas,'Liberation Mono',monospace;color:#2b241d;overflow-x:auto;tab-size:4;counter-reset:jln;white-space:pre}
pre.java .jl{display:block;counter-increment:jln;padding-left:16px}
pre.java .jl::before{content:counter(jln);display:inline-block;width:1.7em;margin-right:14px;text-align:right;color:#b3a591;user-select:none;-webkit-user-select:none}
pre.java.nolines .jl::before{content:none}
pre.java .jl.hl{background:rgba(244,208,63,.28)}
pre.java .jk{color:#2c5fb5;font-weight:700}
pre.java .jt{color:#7c5fb5;font-weight:600}
pre.java .jn{color:#c47a3a}
pre.java .js{color:#4a7530}
pre.java .jc{color:#8a7f72;font-style:italic}
.code-cap{font:600 13px 'Fredoka',Inter,sans-serif;color:var(--ink-soft,#5b4f43);margin:-10px 0 18px;letter-spacing:.02em}

/* ---------- Struktogramm (Nassi-Shneiderman) ---------- */
.sg{--sg-line:#2f2f2f;display:block;max-width:560px;margin:14px 0 20px;border:2px solid var(--sg-line);background:#fff;font:15px/1.45 'Inter',sans-serif;color:#2b241d}
.sg-kopf{padding:6px 12px;border-bottom:2px solid var(--sg-line);background:var(--fach,#f7dcc4);font:600 15px 'Fredoka',Inter,sans-serif;color:var(--fach-ink)}
.sg-s{padding:7px 12px;border-bottom:1.5px solid var(--sg-line)}
.sg>:last-child,.sg-body>:last-child,.sg-col>:last-child{border-bottom:0}
.sg-loop{border-bottom:1.5px solid var(--sg-line)}
.sg-loop>.sg-head{padding:7px 12px}
.sg-loop>.sg-body{margin-left:28px;border-left:1.5px solid var(--sg-line);border-top:1.5px solid var(--sg-line)}
.sg-loop.fuss>.sg-body{border-top:0;border-bottom:1.5px solid var(--sg-line)}
.sg-if{border-bottom:1.5px solid var(--sg-line)}
.sg-cond{position:relative;display:grid;grid-template-columns:1fr 1fr;min-height:62px;border-bottom:1.5px solid var(--sg-line);background:
 linear-gradient(to top right,transparent calc(50% - 1px),var(--sg-line) calc(50% - .5px),var(--sg-line) calc(50% + .5px),transparent calc(50% + 1px)) left/50% 100% no-repeat,
 linear-gradient(to top left,transparent calc(50% - 1px),var(--sg-line) calc(50% - .5px),var(--sg-line) calc(50% + .5px),transparent calc(50% + 1px)) right/50% 100% no-repeat}
.sg-q{position:absolute;left:50%;top:6px;transform:translateX(-50%);padding:0 8px;background:#fff;text-align:center;white-space:nowrap;max-width:92%}
.sg-y,.sg-n{align-self:end;padding:0 10px 4px;font:600 13px 'Fredoka',Inter,sans-serif;color:var(--fach-ink)}
.sg-n{text-align:right}
.sg-br{display:grid;grid-template-columns:1fr 1fr}
.sg-col{min-width:0}
.sg-col+.sg-col{border-left:1.5px solid var(--sg-line)}
.sg-leer{padding:7px 12px;color:#8a7f72}
.sg .kw{font-weight:700;color:var(--fach-ink)}
@media(max-width:560px){.sg{font-size:13.5px}.sg-loop>.sg-body{margin-left:18px}.sg-q{white-space:normal;width:88%}}

/* ---------- Tracetabelle ---------- */
.trace-wrap{overflow-x:auto;margin:12px 0 18px}
table.trace{border-collapse:collapse;background:#fff;font:14.5px/1.4 ui-monospace,'SF Mono',Menlo,Consolas,monospace;min-width:280px}
table.trace th{font:600 13.5px 'Fredoka',Inter,sans-serif;background:var(--fach,#f7dcc4);color:var(--fach-ink);padding:6px 12px;border:1px solid var(--rule,#d9cdb8);text-align:center}
table.trace td{padding:5px 12px;border:1px solid var(--rule,#d9cdb8);text-align:center}
table.trace tr.neu td{background:#fbf3d6}
table.trace td.chg{font-weight:700;color:#2c5fb5}

/* ---------- Reihung als Kästchenreihe ---------- */
.arr{display:flex;flex-wrap:wrap;gap:0;margin:12px 0 18px;font:600 16px ui-monospace,'SF Mono',Menlo,Consolas,monospace}
.arr-name{align-self:center;margin-right:12px;font:600 15px 'Fredoka',Inter,sans-serif;color:var(--fach-ink)}
.arr-c{display:flex;flex-direction:column;align-items:center;min-width:48px}
.arr-c b{display:block;width:100%;text-align:center;padding:9px 6px;background:#fff;border:2px solid var(--fach-ink);margin-left:-2px;font-weight:600}
.arr-c:first-of-type b{margin-left:0}
.arr-c i{font:500 12.5px 'Inter',sans-serif;font-style:normal;color:#8a7f72;margin-top:3px}
.arr-c.mark b{background:#fbf3d6}
.arr-c.ok b{background:#e9f4df}

@media print{pre.java,.sg,table.trace{break-inside:avoid}pre.java{white-space:pre-wrap}}
