:root{color-scheme:light;--csu: #0080c9;--csu-dark: #00699f;--csu-tint: #eaf4fb;--page: #eef2f6;--card: #ffffff;--card-inset: #fafcfd;--border: #dfe5ec;--border-soft: #e9edf2;--text: #1a2733;--text-secondary: #52616f;--text-muted: #8494a3;--track: #e8e8e8;--good: #1a8a3c;--good-bg: #e6f4ea;--bad: #c53030;--bad-bg: #fbeaea;--warn: #b7791f;--warn-bg: #fdf3dc;--shadow: 0 1px 2px rgba(20,40,70,.06), 0 2px 10px rgba(20,40,70,.05);--radius: 10px;--font: -apple-system, BlinkMacSystemFont, "Segoe UI", Helvetica, Arial, sans-serif}*,*:before,*:after{box-sizing:border-box}html,body,#root{height:100%}html{-webkit-text-size-adjust:100%}body{margin:0;font-family:var(--font);color:var(--text);background:var(--page);font-size:14px;line-height:1.45;overflow-x:hidden}img,video,canvas{max-width:100%}a{color:var(--csu);text-decoration:none}a:hover{text-decoration:underline}h1,h2,h3,h4{margin:0 0 .5rem;line-height:1.25}h1{font-size:1.5rem}h2{font-size:1.15rem}h3{font-size:1rem;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.04em;font-weight:600}p{margin:0 0 .75rem}code,.mono{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.85em;overflow-wrap:anywhere}.app-header{background:var(--card);border-bottom:1px solid var(--border);position:sticky;top:0;z-index:20}.app-header .inner{max-width:1400px;margin:0 auto;padding:8px 20px;min-height:56px;display:flex;align-items:center;gap:8px 24px;flex-wrap:wrap}.brand{display:flex;align-items:center;gap:10px;color:var(--text);font-weight:700;font-size:1.05rem}.brand img{height:30px;width:auto}.brand small{color:var(--text-muted);font-weight:500;font-size:.8rem}.nav{display:flex;gap:4px;flex:1 1 auto;min-width:260px;overflow-x:auto;scrollbar-width:none}.nav::-webkit-scrollbar{display:none}.nav a{padding:8px 12px;border-radius:8px;color:var(--text-secondary);font-weight:500;white-space:nowrap}.nav a:hover{background:var(--csu-tint);text-decoration:none}.nav a.aktiv{background:var(--csu-tint);color:var(--csu-dark)}.user-menu{display:flex;align-items:center;gap:10px;color:var(--text-secondary);margin-left:auto;min-width:0;flex-shrink:0}.brand{flex-shrink:0}.user-menu strong{color:var(--text)}.user-menu .rollen{display:inline}.page{max-width:1400px;margin:0 auto;padding:24px 20px 48px;min-width:0}.app-footer{max-width:1400px;margin:0 auto;padding:12px 20px 28px;color:var(--text-muted);font-size:.8rem;text-align:center}.app-footer strong{color:var(--text-secondary)}.page-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:18px;flex-wrap:wrap}.page-head>:first-child{min-width:0}.page-head h1{overflow-wrap:anywhere}.page-head .meta{color:var(--text-secondary)}.card{background:var(--card);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);padding:16px 18px}.card+.card{margin-top:16px}.card h2{display:flex;align-items:center;justify-content:space-between;gap:8px}.grid-2{display:grid;grid-template-columns:1fr 1fr;gap:16px;align-items:stretch}.grid-2>.card+.card,.split>.card+.card{margin-top:0}.split{display:grid;grid-template-columns:minmax(0,1fr) 420px;gap:20px;align-items:start}@media(max-width:1100px){.split,.grid-2{grid-template-columns:minmax(0,1fr)}}.card{min-width:0}.card>h2{flex-wrap:wrap}.stack>*+*{margin-top:12px}.row{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.row.between{justify-content:space-between}.muted{color:var(--text-muted)}.secondary{color:var(--text-secondary)}.small{font-size:.85rem}.leer{color:var(--text-muted);font-style:italic;padding:8px 0}.btn{display:inline-flex;align-items:center;gap:6px;padding:7px 13px;border-radius:8px;border:1px solid var(--border);background:var(--card);color:var(--text);font:inherit;font-weight:500;cursor:pointer}.btn:hover{background:var(--card-inset)}.btn:disabled{opacity:.55;cursor:not-allowed}.btn-primary{background:var(--csu);border-color:var(--csu);color:#fff}.btn-primary:hover{background:var(--csu-dark)}.btn-danger{color:var(--bad);border-color:#efc3c3}.btn-danger:hover{background:var(--bad-bg)}.btn-ghost{border-color:transparent;background:transparent;color:var(--csu)}.btn-ghost:hover{background:var(--csu-tint)}.btn-sm{padding:4px 9px;font-size:.85rem}.feld{display:flex;flex-direction:column;gap:4px;margin-bottom:12px}.feld label{font-weight:600;font-size:.85rem;color:var(--text-secondary)}.feld .hinweis{font-size:.8rem;color:var(--text-muted)}input[type=text],input[type=email],input[type=password],input[type=date],input[type=number],select,textarea{font:inherit;padding:8px 10px;border:1px solid var(--border);border-radius:8px;background:#fff;color:var(--text);width:100%}input:focus,select:focus,textarea:focus{outline:2px solid var(--csu-tint);border-color:var(--csu)}textarea{min-height:80px;resize:vertical}input[type=checkbox]{width:auto}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:12px}.fehler{background:var(--bad-bg);color:var(--bad);border:1px solid #efc3c3;padding:8px 12px;border-radius:8px;margin-bottom:12px}.ok{background:var(--good-bg);color:var(--good);border:1px solid #bfe3c8;padding:8px 12px;border-radius:8px;margin-bottom:12px}.warnung{background:var(--warn-bg);color:var(--warn);border:1px solid #f1dfae;padding:8px 12px;border-radius:8px;margin-bottom:12px}.info{background:var(--csu-tint);color:var(--text);border:1px solid #c9e2f2;padding:8px 12px;border-radius:8px;margin-bottom:12px;display:grid;gap:4px}.badge{display:inline-block;padding:2px 8px;border-radius:999px;font-size:.75rem;font-weight:600;background:var(--track);color:var(--text-secondary);white-space:nowrap}.badge-entwurf{background:var(--track)}.badge-in_umlauf{background:var(--csu-tint);color:var(--csu-dark)}.badge-freigegeben{background:var(--good-bg);color:var(--good)}.badge-archiviert{background:#eceff3;color:var(--text-muted)}.badge-ok{background:var(--good-bg);color:var(--good)}.badge-bad{background:var(--bad-bg);color:var(--bad)}.badge-warn{background:var(--warn-bg);color:var(--warn)}.e2e-badge{display:inline-flex;align-items:center;gap:5px;flex-shrink:0}.e2e-geplant{background:#edeff2;color:var(--text-secondary);border:1px solid var(--border)}.e2e-zeile{margin-top:8px;display:flex;flex-direction:column;align-items:center;gap:5px}.e2e-zeile .e2e-erklaerung{color:var(--text-secondary);max-width:62ch;text-align:center}table.tabelle{width:100%;border-collapse:collapse}.tabelle-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch;max-width:100%}.tabelle-wrap>.tabelle{min-width:640px}.tabelle th{white-space:nowrap}.tabelle td{overflow-wrap:break-word;word-break:normal}.tabelle td .mono,.tabelle td.mono{overflow-wrap:anywhere}.tabelle th,.tabelle td{text-align:left;padding:9px 10px;border-bottom:1px solid var(--border-soft);vertical-align:top}.tabelle th{font-size:.78rem;text-transform:uppercase;letter-spacing:.04em;color:var(--text-muted);font-weight:600}.tabelle tr:hover td{background:var(--card-inset)}.tabelle tr.klickbar{cursor:pointer}.stationen{list-style:none;margin:0;padding:0}.station{display:grid;grid-template-columns:28px 1fr;gap:10px;padding:10px 0;border-bottom:1px solid var(--border-soft)}.station:last-child{border-bottom:0}.station .nr{width:26px;height:26px;border-radius:50%;background:var(--track);color:var(--text-secondary);display:flex;align-items:center;justify-content:center;font-weight:700;font-size:.8rem}.station.bearbeitet .nr{background:var(--good-bg);color:var(--good)}.station.uebersprungen .nr{background:#eceff3;color:var(--text-muted);text-decoration:line-through}.station.aktuell .nr{background:var(--csu);color:#fff;box-shadow:0 0 0 3px var(--csu-tint)}.station .titel{font-weight:600}.station .details{color:var(--text-secondary);font-size:.85rem}.anmerkung{padding:10px 12px;border:1px solid var(--border-soft);border-radius:8px;background:var(--card-inset);cursor:pointer}.anmerkung.aktiv{border-color:var(--csu);background:var(--csu-tint)}.anmerkung .kopf{display:flex;justify-content:space-between;gap:8px;font-size:.8rem;color:var(--text-muted);margin-bottom:4px}.anmerkung .marker{display:inline-flex;width:18px;height:18px;border-radius:50%;background:var(--csu);color:#fff;font-size:.7rem;font-weight:700;align-items:center;justify-content:center;margin-right:6px}.pdf-viewer{background:#d7dde5;border-radius:var(--radius);padding:14px;min-height:400px;position:relative;overflow-x:auto;-webkit-overflow-scrolling:touch}.pdf-toolbar{display:flex;gap:8px;align-items:center;margin-bottom:10px;color:var(--text-secondary);font-size:.85rem;flex-wrap:wrap}.pdf-seite{position:relative;margin:0 auto 14px;box-shadow:0 2px 12px #0000002e;background:#fff}.pdf-seite canvas{display:block}.pdf-overlay{position:absolute;inset:0}.pdf-overlay.auswahl{cursor:crosshair}.pdf-annot{position:absolute;border:1.5px solid rgba(255,200,40,.95);background:#ffd93c47;border-radius:2px}.pdf-annot.aktiv{border-color:var(--csu);background:#0080c92e}.pdf-annot .marker{position:absolute;top:-9px;right:-9px;width:18px;height:18px;border-radius:50%;background:var(--csu);color:#fff;font-size:.7rem;font-weight:700;display:flex;align-items:center;justify-content:center}.pdf-auswahl-rect{position:absolute;border:1.5px dashed var(--csu);background:#0080c91f}.pdf-hinweis{position:absolute;top:14px;left:50%;transform:translate(-50%);background:var(--csu);color:#fff;padding:6px 12px;border-radius:999px;font-size:.85rem;z-index:2}.login-wrap{min-height:100%;display:flex;align-items:center;justify-content:center;padding:24px}.login-card{width:100%;max-width:380px}.login-card .brand{justify-content:center;margin-bottom:6px}.login-card .langform{text-align:center;color:var(--csu-dark);font-weight:600;margin:0 0 14px}.tabs{display:flex;gap:4px;border-bottom:1px solid var(--border);margin-bottom:16px}.tabs button{background:none;border:0;border-bottom:2px solid transparent;padding:8px 14px;font:inherit;font-weight:500;color:var(--text-secondary);cursor:pointer}.tabs button.aktiv{color:var(--csu-dark);border-bottom-color:var(--csu)}details.protokoll summary{cursor:pointer;font-weight:600;color:var(--text-secondary)}.protokoll-liste{list-style:none;padding:0;margin:8px 0 0;font-size:.82rem}.protokoll-liste li{padding:4px 0;border-bottom:1px dashed var(--border-soft);display:grid;grid-template-columns:130px 1fr;gap:8px}.aufgabe{display:flex;justify-content:space-between;gap:12px;padding:10px 0;border-bottom:1px solid var(--border-soft);flex-wrap:wrap}.aufgabe>:first-child{min-width:0;flex:1 1 240px}.aufgabe:last-child{border-bottom:0}.nur-mobil{display:none}.kartenliste{display:flex;flex-direction:column;gap:10px}.karte-zeile{border:1px solid var(--border-soft);border-radius:8px;padding:10px 12px;background:var(--card-inset)}.karte-zeile .karte-kopf{display:flex;justify-content:space-between;gap:8px;align-items:flex-start;font-weight:600}.karte-zeile .karte-meta{color:var(--text-secondary);font-size:.85rem;margin-top:4px;display:flex;flex-wrap:wrap;gap:4px 12px}@media(max-width:900px){.tabelle-stapel thead{display:none}.tabelle-stapel,.tabelle-stapel tbody,.tabelle-stapel tr,.tabelle-stapel td{display:block;width:100%;min-width:0}.tabelle-stapel tr{border:1px solid var(--border-soft);border-radius:8px;padding:6px 10px;margin-bottom:8px;background:var(--card-inset)}.tabelle-stapel td{border:0;padding:4px 0;display:grid;grid-template-columns:38% minmax(0,1fr);column-gap:12px;align-items:baseline}.tabelle-stapel td:before{content:attr(data-label);grid-column:1;font-size:.72rem;text-transform:uppercase;letter-spacing:.04em;color:var(--text-muted);font-weight:600}.tabelle-stapel td>*{grid-column:2;min-width:0}.tabelle-stapel td[data-label=""],.tabelle-stapel td:not([data-label]){grid-template-columns:minmax(0,1fr)}.tabelle-stapel td[data-label=""]:before,.tabelle-stapel td:not([data-label]):before{display:none}.tabelle-stapel td[data-label=""]>*,.tabelle-stapel td:not([data-label])>*{grid-column:1}.tabelle-stapel td.voll{display:block}.tabelle-stapel tr:hover td{background:transparent}.tabelle-wrap.tabelle-stapel-wrap{overflow:visible}.tabelle-wrap.tabelle-stapel-wrap>.tabelle{min-width:0}}@media(max-width:1100px){.brand small{display:none}.nav{order:3;flex:1 0 100%;min-width:0}.app-header .inner{padding:8px 16px 6px;gap:6px 16px}.page{padding:18px 16px 40px}.pdf-viewer{padding:10px}}@media(max-width:720px){body{font-size:15px}.nur-mobil{display:block}.nur-desktop{display:none!important}.app-header .inner{padding:8px 12px;gap:6px 12px}.brand img{height:24px}.brand span{font-size:.95rem}.brand small{display:none}.app-footer{padding:10px 12px 24px}.user-menu{gap:6px}.user-menu .rollen{display:none}.user-menu strong{max-width:120px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;display:inline-block;vertical-align:bottom}.nav{order:3;flex:1 0 100%;overflow-x:auto;-webkit-overflow-scrolling:touch;padding-bottom:2px;scrollbar-width:none}.nav::-webkit-scrollbar{display:none}.nav a{padding:8px 10px;font-size:.9rem}.page{padding:14px 12px 32px}.page-head{margin-bottom:12px}.page-head h1{font-size:1.25rem}.page-head>.row{width:100%}.page-head>.row .btn,.page-head>.row a.btn{flex:1 1 auto;justify-content:center}.card{padding:12px;border-radius:8px}.form-row{grid-template-columns:1fr}.split{gap:12px}.tabs{overflow-x:auto;-webkit-overflow-scrolling:touch;flex-wrap:nowrap;scrollbar-width:none}.tabs::-webkit-scrollbar{display:none}.tabs button{white-space:nowrap;padding:8px 10px}.btn{min-height:40px}.btn-sm{min-height:34px}.pdf-toolbar{font-size:.8rem}.pdf-hinweis{font-size:.8rem;padding:5px 10px;top:8px;max-width:calc(100% - 24px);text-align:center}.station{grid-template-columns:26px 1fr}.aufgabe{flex-direction:column;align-items:stretch}.aufgabe>:first-child{flex-basis:auto}.aufgabe .btn{align-self:flex-start}.protokoll-liste li{grid-template-columns:1fr;gap:2px}.login-card{padding:18px 14px}}@media(pointer:coarse){input[type=text],input[type=email],input[type=password],input[type=date],input[type=number],select,textarea{font-size:16px;min-height:42px}.btn{min-height:40px}.btn-sm{min-height:36px;min-width:40px;justify-content:center}.nav a,.tabs button{min-height:40px;display:inline-flex;align-items:center}.pdf-overlay.auswahl{touch-action:none}.pdf-annot .marker{width:22px;height:22px;font-size:.8rem;top:-11px;right:-11px}}.schluessel-hinweis{margin-bottom:14px}.schluessel-hinweis input{font-size:16px}.fortschritt{display:flex;align-items:center;gap:8px;color:var(--text-secondary);font-size:13px}.fortschritt:before{content:"";width:12px;height:12px;border:2px solid var(--csu);border-right-color:transparent;border-radius:50%;animation:dreh .8s linear infinite;flex-shrink:0}@keyframes dreh{to{transform:rotate(360deg)}}.anteil{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:13px;word-break:break-all;background:var(--card-inset);padding:8px 10px;border-radius:6px;border:1px solid var(--border)}.kategorie-gruppe{border:1px solid var(--border-soft);border-radius:8px;margin-top:10px;background:var(--card)}.kategorie-gruppe>summary{display:flex;flex-wrap:wrap;align-items:center;gap:6px 10px;padding:10px 12px;cursor:pointer;font-weight:600;list-style:none}.kategorie-gruppe>summary::-webkit-details-marker{display:none}.kategorie-gruppe>summary:before{content:"▸";color:var(--text-muted);flex-shrink:0;transition:transform .15s}.kategorie-gruppe[open]>summary:before{transform:rotate(90deg)}.kategorie-gruppe>summary .kategorie-name{min-width:0;overflow-wrap:anywhere}.kategorie-gruppe>summary .kategorie-kurz{background:var(--csu-tint);color:var(--csu-dark);font-family:ui-monospace,SFMono-Regular,Menlo,monospace;letter-spacing:.04em}.kategorie-gruppe>.tabelle-wrap{margin:0 12px 8px}@media(pointer:coarse){.kategorie-gruppe>summary{min-height:40px}}.umschalter{display:inline-flex;border:1px solid var(--border);border-radius:8px;overflow:hidden;max-width:100%}.umschalter>.btn{border:0;border-radius:0;white-space:nowrap}.umschalter>.btn+.btn{border-left:1px solid var(--border)}.umschalter>.btn[aria-pressed=true]{background:var(--csu-tint);color:var(--csu-dark);font-weight:600}.suche-stand{margin-top:8px}.suche-liste{list-style:none;margin:10px 0 0;padding:0}.suche-eintrag{padding:8px;margin:0 -8px;border-top:1px solid var(--border-soft);border-radius:6px;cursor:pointer}.suche-eintrag:hover{background:var(--csu-tint)}.suche-fund{margin-top:3px;overflow-wrap:anywhere}.suche-fund mark{background:#fff3a8;color:inherit;padding:0 1px;border-radius:2px}
