:root{--bg:#e9eef2;--sf:#fff;--tx:#14263a;--mu:#586a7a;--ac:#12304a;--onac:#fff;--br:#a9741a;--bd:#cdd6de;--ok:#1b6e3d;--okb:#e1f2e7;--wa:#8a5a00;--wab:#fbf0d9;--er:#a8321f;--erb:#fbe8e4}
@media(prefers-color-scheme:dark){:root{--bg:#0f1a24;--sf:#172633;--tx:#e6edf3;--mu:#92a4b3;--ac:#8fc1e8;--onac:#0b1823;--br:#e0a94c;--bd:#2c3f50;--ok:#7dd3a0;--okb:#173a28;--wa:#f0c674;--wab:#3a2f17;--er:#ff9a85;--erb:#3d2420}}
*{box-sizing:border-box}
body{margin:0;background:var(--bg);color:var(--tx);font:16px/1.5 system-ui,-apple-system,"Segoe UI",sans-serif}
h1,h2,h3{font-family:Georgia,"Times New Roman",serif;line-height:1.2;margin:0 0 .5em}
h1{font-size:1.9rem}h2{font-size:1.3rem;margin-top:1.2em}h3{font-size:1.1rem}
a{color:var(--ac)}
.wrap{max-width:820px;margin:0 auto;padding:24px 16px 48px}
.wrap.wide{max-width:1180px}
.narrow{max-width:520px}
.muted{color:var(--mu)}
.small{font-size:.88rem}
.card{background:var(--sf);border:1px solid var(--bd);border-radius:8px;padding:18px}
.form{display:grid;gap:12px}
.form label,label.f{display:grid;gap:4px;font-weight:600;font-size:.95rem}
input,select,textarea{font:inherit;color:var(--tx);background:var(--bg);border:1.5px solid var(--bd);border-radius:6px;padding:9px 10px;width:100%}
input[type=checkbox]{width:auto}
textarea{min-height:110px;resize:vertical}
.btn{display:inline-block;background:var(--ac);color:var(--onac);border:0;border-radius:8px;padding:10px 18px;font:inherit;font-weight:600;cursor:pointer;text-decoration:none;text-align:center}
.btn.ghost{background:transparent;color:var(--ac);border:1.5px solid var(--ac)}
.btn.sm{padding:6px 12px;font-size:.9rem}
.btn.danger{background:transparent;color:var(--er);border:1.5px solid var(--er)}
.btn:disabled{opacity:.5;cursor:default}
:focus-visible{outline:3px solid var(--br);outline-offset:2px}
.row{display:flex;gap:8px;flex-wrap:wrap;align-items:center}
.note{padding:10px 14px;border-radius:6px;margin:0 0 14px}
.note.ok{background:var(--okb);color:var(--ok)}
.note.err{background:var(--erb);color:var(--er)}
.note.wa{background:var(--wab);color:var(--wa)}
.top{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;flex-wrap:wrap;margin-bottom:18px}
.badge{display:inline-block;border-radius:999px;padding:2px 10px;font-size:.82rem;font-weight:700}
.b-done{background:var(--okb);color:var(--ok)}
.b-start{background:var(--wab);color:var(--wa)}
.b-open{background:var(--bg);color:var(--mu);border:1px solid var(--bd)}
.b-late{background:var(--erb);color:var(--er)}
[hidden]{display:none!important}
.unit{background:var(--sf);border:1px solid var(--bd);border-left:6px solid var(--br);border-radius:6px;padding:16px 18px;margin-bottom:12px}
.unit h3{margin:0 0 4px}
.bar{height:8px;background:var(--bd);border-radius:4px;overflow:hidden;margin:10px 0 6px}
.bar i{display:block;height:100%;background:var(--br)}
.parts{display:flex;gap:6px;flex-wrap:wrap;margin:8px 0 12px;padding:0;list-style:none;font-size:.88rem}
.parts li{border:1px solid var(--bd);border-radius:999px;padding:2px 10px;color:var(--mu)}
.parts li.d{border-color:var(--ok);color:var(--ok)}
table{border-collapse:collapse;width:100%}
th,td{padding:8px 10px;border-bottom:1px solid var(--bd);text-align:left;vertical-align:top}
th{font-size:.85rem;color:var(--mu);font-weight:600}
.tw{overflow-x:auto;background:var(--sf);border:1px solid var(--bd);border-radius:8px}
.cell{cursor:pointer;background:none;border:0;font:inherit;color:inherit;text-align:left;padding:0}
.tabs{display:flex;gap:6px;flex-wrap:wrap;margin:0 0 16px}
.tabs button{background:var(--sf);border:1px solid var(--bd);border-radius:999px;padding:6px 14px;font:inherit;cursor:pointer;color:var(--tx)}
.tabs button[aria-selected=true]{background:var(--ac);color:var(--onac);border-color:var(--ac)}
.grid2{display:grid;gap:16px;grid-template-columns:repeat(auto-fit,minmax(280px,1fr))}
dialog{border:1px solid var(--bd);border-radius:10px;background:var(--sf);color:var(--tx);max-width:min(720px,94vw);padding:20px}
dialog::backdrop{background:rgba(0,0,0,.35)}
.cards{display:grid;grid-template-columns:repeat(3,1fr);gap:0}
.codecard{border:1px dashed #999;padding:14px;min-height:150px;break-inside:avoid;font-family:system-ui,sans-serif;color:#000;background:#fff}
.codecard b{font-size:1.4rem;letter-spacing:.06em;font-family:ui-monospace,Menlo,Consolas,monospace}
@media print{body{background:#fff}.noprint{display:none!important}.wrap{max-width:none;padding:0}}
@media(max-width:600px){h1{font-size:1.5rem}.cards{grid-template-columns:1fr 1fr}}

/* Fächer */
:root{--en:#2a62a8;--rw:#a9741a}
@media(prefers-color-scheme:dark){:root{--en:#8fbcf0;--rw:#e0a94c}}
[data-subject=en]{--sc:var(--en)}[data-subject=rw]{--sc:var(--rw)}
.pickh{margin-top:.4em}
.subjects{display:grid;gap:16px;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));margin:8px 0 24px}
.subj{display:grid;gap:8px;justify-items:start;align-content:start;background:var(--sf);border:1px solid var(--bd);border-top:6px solid var(--sc,var(--br));border-radius:10px;padding:20px 22px;color:var(--tx);text-decoration:none;min-height:190px;transition:transform .12s,box-shadow .12s}
.subj:hover,.subj:focus-visible{transform:translateY(-2px);box-shadow:0 6px 18px rgba(0,0,0,.12)}
.subj:active{transform:none}
.sicon{display:inline-grid;color:var(--sc,var(--br))}.sicon svg{width:52px;height:52px}
.sicon.sm{vertical-align:-7px;margin-right:8px}.sicon.sm svg{width:32px;height:32px}
.sname{font-family:Georgia,"Times New Roman",serif;font-size:1.5rem;font-weight:700;line-height:1.15}
.scount{font-size:.95rem;color:var(--mu)}
.subj .bar{width:100%;margin:0}.subj .bar i{background:var(--sc,var(--br))}
.subjhead{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap;margin:0 0 14px}
.subjhead h2{margin:0}
.unit[data-subject]{border-left-color:var(--sc)}
.unit[data-subject] .bar i{background:var(--sc)}
.subjlbl{font-family:system-ui,-apple-system,"Segoe UI",sans-serif;font-size:.85rem;text-transform:uppercase;letter-spacing:.06em;color:var(--sc);margin:16px 0 6px;padding-bottom:4px;border-bottom:2px solid var(--sc)}
.subjlbl:first-child{margin-top:0}
.subjtag{font-weight:700;color:var(--sc);font-family:system-ui,-apple-system,"Segoe UI",sans-serif;text-transform:uppercase;letter-spacing:.05em;font-size:.72rem}

/* Fristen deutlich */
.due{display:flex;align-items:center;gap:8px;width:fit-content;max-width:100%;margin:8px 0 4px;padding:7px 12px;border-radius:8px;background:#fde3c3;color:#7a3d00;border:1px solid #f0b46a;font-size:.95rem}
.due b{font-weight:700}
.due svg{flex:none}
.due.soon{background:#fbc98c;border-color:#e08a26}
.due.late{background:var(--erb);color:var(--er);border-color:var(--er)}
.due.ok{background:var(--okb);color:var(--ok);border-color:var(--ok)}
@media(prefers-color-scheme:dark){.due{background:#4a2f12;color:#ffc98a;border-color:#a8692a}.due.soon{background:#5c3610;border-color:#e08a26}}
.subj .due{margin:2px 0 0}
