:root{--bg:#f5f6f8;--card:#fff;--ink:#1d2430;--mut:#6b7280;--line:#e3e6eb;--acc:#2B5C8A;--acc2:#e8f0f8;--warn:#b45309;--warnbg:#fff4e0;--red:#b91c1c;--ok:#15803d}
[hidden]{display:none!important}
*{box-sizing:border-box}body{margin:0;font:15px/1.5 system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;background:var(--bg);color:var(--ink)}
a{color:var(--acc)}.wrap{max-width:1180px;margin:0 auto;padding:0 16px}
.top{background:#fff;border-bottom:1px solid var(--line);position:sticky;top:0;z-index:5}.top .wrap{display:flex;align-items:center;gap:20px;min-height:58px;flex-wrap:wrap}
.logo{font-size:18px;text-decoration:none;color:var(--ink)}.logo b{color:var(--acc)}
nav{display:flex;gap:4px;flex-wrap:wrap;margin-left:auto}nav a{text-decoration:none;color:var(--ink);padding:7px 11px;border-radius:8px;font-size:14px}nav a.on,nav a:hover{background:var(--acc2);color:var(--acc)}
.dot{background:var(--warn);color:#fff;border-radius:10px;padding:0 7px;font-size:12px}
main{padding:22px 16px 40px}h1{font-size:24px;margin:6px 0 16px}h2{font-size:16px;margin:26px 0 10px}.card h2{margin-top:0}h3{font-size:13px;margin:12px 0 6px;color:var(--mut)}
.card{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:18px;margin-bottom:16px}.narrow{max-width:480px}
.muted{color:var(--mut)}.small{font-size:13px}
label{display:block;margin-bottom:12px;font-size:13px;font-weight:600;color:#374151}label small{font-weight:400;color:var(--mut)}
input:not([type=checkbox]):not([type=radio]),select,textarea{display:block;width:100%;margin-top:4px;padding:9px 11px;border:1px solid #cfd4db;border-radius:8px;font:inherit;font-weight:400;background:#fff}
textarea.code{font:12.5px/1.45 ui-monospace,Consolas,monospace}
label.check,label.radio{display:flex;gap:8px;align-items:center;font-weight:400}
.btn{display:inline-block;background:var(--acc);color:#fff;border:0;border-radius:8px;padding:9px 16px;font:inherit;font-weight:600;cursor:pointer;text-decoration:none}.btn:hover{filter:brightness(1.1)}
.btn.sm{padding:6px 11px;font-size:13px}.btn.big{padding:12px 22px;font-size:16px}.btn.ghost{background:#fff;color:var(--acc);border:1px solid #c7d4e2}.btn.danger{background:#fff;color:var(--red);border:1px solid #f0c4c4}
.row{display:flex;gap:8px;flex-wrap:wrap;align-items:center}.row form{margin:0}.row select{width:auto;margin:0}
.flash{padding:11px 14px;border-radius:10px;margin-bottom:14px;background:#e8f6ee;color:var(--ok);border:1px solid #bfe5cc}.flash.err{background:#fdecec;color:var(--red);border-color:#f3c2c2}.flash.warn{background:var(--warnbg);color:var(--warn);border-color:#f5d49a}
.stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px}.stat{background:#fff;border:1px solid var(--line);border-radius:12px;padding:14px}.stat b{font-size:26px;display:block}.stat span{color:var(--mut);font-size:13px}
.bar{height:6px;background:#eceff3;border-radius:4px;margin:8px 0 4px;position:relative}.bar i{display:block;height:100%;background:var(--acc);border-radius:4px}.bar em{position:absolute;top:-3px;width:2px;height:12px;background:var(--warn)}
.stat small{color:var(--mut);font-size:11px}
.rem-h{color:var(--warn)}.reminders{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:14px}
.reminder{border-left:4px solid var(--warn);margin:0}.rh{display:flex;justify-content:space-between;gap:10px}.since{background:var(--warnbg);color:var(--warn);font-weight:700;border-radius:8px;padding:3px 9px;height:fit-content;white-space:nowrap}
.meta{font-size:13.5px}.kontaktdaten{background:#f8fafc;border:1px solid var(--line);border-radius:8px;padding:10px 12px;margin:8px 0 12px;font-size:14px;display:grid;gap:4px;word-break:break-word}.ic{display:inline-block;width:20px}
.tablecard{padding:0;overflow-x:auto}table.list{width:100%;border-collapse:collapse;font-size:14px}.list th{text-align:left;font-size:12px;text-transform:uppercase;letter-spacing:.3px;color:var(--mut);padding:10px 14px;border-bottom:1px solid var(--line)}.list td{padding:10px 14px;border-bottom:1px solid var(--line);vertical-align:top}.list tbody tr{cursor:pointer}.list tbody tr:hover{background:#fafbfc}.list tr.due{background:#fffaf0}
.wohin{max-width:220px;word-break:break-word}
.badge{display:inline-block;font-size:12px;font-weight:600;padding:2px 9px;border-radius:20px;background:#eef1f5;color:#374151;white-space:nowrap}.badge.due{background:var(--warnbg);color:var(--warn)}
.st-versendet{background:var(--acc2);color:var(--acc)}.st-nachgefasst{background:#eef2ff;color:#4338ca}.st-gespraech{background:#e6f6ec;color:var(--ok)}.st-zusage{background:#15803d;color:#fff}.st-absage{background:#fdecec;color:var(--red)}
.empty{text-align:center;padding:40px}
.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:6px 24px}.form-grid .full{grid-column:1/-1}fieldset{border:0;padding:0;margin:0 0 8px}legend{font-weight:700;color:var(--acc);margin-bottom:10px;font-size:14px;text-transform:uppercase;letter-spacing:.4px}.two{display:grid;grid-template-columns:1fr 2fr;gap:10px}
.head-row{display:flex;justify-content:space-between;align-items:flex-end;gap:10px}.head-row h1{margin-bottom:12px}
.cols{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:16px;align-items:start}
.files li a:first-of-type{flex:1;word-break:break-all}.files{list-style:none;padding:0;margin:0 0 12px}.files li{display:flex;align-items:center;gap:10px;padding:8px 0;border-bottom:1px solid var(--line)}
.inline-opts{display:flex;gap:12px;flex-wrap:wrap;align-items:center}.inline-opts select{width:auto;margin:0}.inline-opts label{margin:0}
.hint{background:#fffbeb;border-color:#f6e2a8}.hint ul{margin:0;padding-left:20px}
.kw{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:4px 16px}.chip{display:inline-block;background:#f1f4f8;border-radius:6px;padding:2px 8px;margin:0 4px 5px 0;font-size:13px}.chip.warn{background:var(--warnbg);color:var(--warn)}
.letter{font-size:14.5px;line-height:1.6;max-width:70ch}pre.ad{white-space:pre-wrap;font:13px/1.5 inherit;max-height:420px;overflow:auto;background:#f8fafc;padding:12px;border-radius:8px}
details summary{cursor:pointer}details[open] summary{margin-bottom:12px}
.dl{display:grid;grid-template-columns:auto 1fr;gap:4px 12px;font-size:14px;margin:0 0 12px}.dl dt{color:var(--mut)}.dl dd{margin:0}
.log{list-style:none;padding:0;margin:0 0 12px;font-size:13px;max-height:220px;overflow:auto}.log li{padding:3px 0;border-bottom:1px dashed var(--line)}.log span{color:var(--mut);font-size:12px}
.foto{width:150px;height:150px;border-radius:50%;object-fit:cover;display:block;margin-bottom:10px}
.gen{display:flex;gap:16px;align-items:center;background:var(--acc2);border-color:#c7d8ea}.gen.fehler{background:#fdecec;border-color:#f3c2c2}.gen.fehler .spinner{display:none}
.spinner{width:30px;height:30px;border:3px solid #c7d8ea;border-top-color:var(--acc);border-radius:50%;animation:sp 1s linear infinite;flex:none}@keyframes sp{to{transform:rotate(360deg)}}
.foot{padding:20px 16px 30px}
@media(max-width:860px){.cols,.form-grid{grid-template-columns:1fr}.two{grid-template-columns:1fr}nav{margin-left:0}.list th:nth-child(4),.list td:nth-child(4),.list th:nth-child(6),.list td:nth-child(6){display:none}}
a.stat{text-decoration:none;color:inherit}a.stat:hover{border-color:#c7d4e2}
.stern{display:inline;margin:0}.stern button{background:none;border:0;font-size:20px;line-height:1;color:#cfd4db;cursor:pointer;padding:2px 4px}.stern button.on{color:#e0a100}.stern button:hover{color:#e0a100}
td.st{width:34px;padding-right:0!important}
.filter input{width:190px;margin:0}.filter select{margin:0}
.tabs{display:flex;gap:6px;flex-wrap:wrap;margin:0 0 14px}.tabs a{padding:7px 13px;border-radius:20px;background:#fff;border:1px solid var(--line);text-decoration:none;color:var(--ink);font-size:14px}.tabs a.on{background:var(--acc);color:#fff;border-color:var(--acc)}
.firmen{display:grid;grid-template-columns:repeat(auto-fill,minmax(340px,1fr));gap:14px}.firma{margin:0;display:flex;flex-direction:column}.firma .fa{margin-top:auto;padding-top:8px}
.fh{display:flex;justify-content:space-between;gap:10px;align-items:flex-start}.fn{margin:0;font-size:17px;color:var(--ink)}.fn a{color:inherit;text-decoration:none}.fn a:hover{color:var(--acc)}
.chips{margin:8px 0 2px}.chip.fit{background:#e6f6ec;color:var(--ok)}
.det3{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}.det3 h4{margin:8px 0 4px;font-size:13px;color:var(--acc)}.det3 ul{margin:0;padding-left:18px;font-size:13.5px}.det3 li{margin-bottom:3px}
.two3{display:grid;grid-template-columns:repeat(3,1fr);gap:0 12px}
.modi{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.modus{display:flex;gap:10px;align-items:flex-start;border:1px solid var(--line);border-radius:10px;padding:12px;cursor:pointer;margin:0}.modus:has(input:checked){border-color:var(--acc);background:var(--acc2)}.modus small{display:block;font-weight:400;color:var(--mut)}
.sub-box{border:1px solid var(--line);border-radius:10px;padding:12px 12px 2px;margin:4px 0 12px;background:#fafbfc}
.checks{list-style:none;padding:0;margin:0;font-size:14px}.checks li{padding:5px 0;border-bottom:1px dashed var(--line)}.checks li span{display:inline-block;width:18px;font-weight:700}.checks li.ok span{color:var(--ok)}.checks li.no span{color:var(--red)}.checks small{display:block;color:var(--mut);margin-left:18px;word-break:break-all}
.anh{border:1px solid var(--line);border-radius:8px;padding:10px 12px;margin-bottom:12px}.anh label{margin:6px 0 0}
.hint{background:#fffbeb;border:1px solid #f6e2a8;border-radius:8px;padding:10px 14px;margin:12px 0}.hint ul{margin:6px 0 0;padding-left:20px}
.card details{margin-top:10px}.files form{margin:0}
.btn[disabled]{opacity:.45;cursor:not-allowed}
@media(max-width:860px){.det3,.two3,.modi{grid-template-columns:1fr}.firmen{grid-template-columns:1fr}.filter input{width:130px}}
.fh .row{flex-wrap:nowrap}
/* Vorschau */
.vs-opts{display:flex;flex-wrap:wrap;gap:10px 22px;align-items:flex-start;background:#f8fafc;border:1px solid var(--line);border-radius:10px;padding:12px 14px;margin:6px 0 12px}
.vs-opts .seg{display:flex;flex-direction:column;gap:2px}.vs-opts .seg>b{font-size:12px;text-transform:uppercase;letter-spacing:.3px;color:var(--mut);margin-bottom:4px}
.vs-opts label{margin:0}.vs-opts select{margin:0;width:auto}.vs-opts .dim{opacity:.45}
.vs-tabs{display:flex;gap:6px;flex-wrap:wrap;align-items:center;margin-bottom:8px}.vs-tab{border:1px solid var(--line);background:#fff;border-radius:8px 8px 0 0;padding:7px 14px;font:inherit;font-size:14px;cursor:pointer;color:var(--ink)}.vs-tab.on{background:var(--acc);color:#fff;border-color:var(--acc)}
.vs-open{margin-left:auto}
.vs-frame{position:relative;background:#e9ecf1;border:1px solid var(--line);border-radius:10px;overflow:hidden}
.vs-frame iframe{position:relative;z-index:1;display:block;width:100%;height:1150px;border:0;background:transparent}
.vs-load{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;color:var(--mut);font-size:14px}
.ausgabe{margin-top:14px;padding-top:14px;border-top:1px solid var(--line)}
.flash.small{font-size:13px;padding:8px 12px}
@media(max-width:860px){.vs-frame iframe{height:560px}}
.vs-frame{min-height:420px;max-height:1200px;overflow:auto;padding:18px}
.vs-load{position:static;padding:60px 0}.vs-load.err{color:var(--red);white-space:pre-wrap}
.vs-pages{display:flex;flex-direction:column;align-items:center;gap:18px}
.vs-page{margin:0;width:100%;max-width:800px}.vs-page img{display:block;width:100%;height:auto;background:#fff;box-shadow:0 2px 10px rgba(0,0,0,.18);border-radius:2px}
.vs-page figcaption{text-align:center;font-size:12px;color:var(--mut);margin-top:6px}
.vs-pdf{display:block;width:100%;height:1100px;border:0}
@media(max-width:860px){.vs-frame{padding:8px;max-height:none}}
/* Profil-Formular */
.pform .card h2{margin-bottom:12px}
.rep-rows{display:flex;flex-direction:column;gap:10px;margin-bottom:10px}
.rep-row{display:flex;gap:10px;align-items:flex-start;border:1px solid var(--line);border-radius:10px;padding:10px 10px 0;background:#fafbfc}
.rep-f{flex:1;display:grid;grid-template-columns:repeat(6,1fr);gap:0 10px}
.rep-f .w1{grid-column:span 1}.rep-f .w2{grid-column:span 2}.rep-f .w3{grid-column:span 3}.rep-f .w4{grid-column:span 4}
.rep-f label:has(textarea){grid-column:1/-1}
.rep-b{display:flex;gap:4px;padding-top:18px}
.ib{border:1px solid var(--line);background:#fff;border-radius:6px;width:28px;height:28px;cursor:pointer;font-size:13px;color:var(--ink)}.ib:hover{border-color:var(--acc);color:var(--acc)}.ib.del:hover{border-color:var(--red);color:var(--red)}
.savebar{position:sticky;bottom:0;z-index:4;background:rgba(245,246,248,.95);backdrop-filter:blur(4px);padding:12px 0;display:flex;gap:14px;align-items:center;border-top:1px solid var(--line);margin-bottom:16px}
#dirty{color:var(--warn);font-weight:600}
/* Dropzone & Anlagen */
.dropzone{display:flex;flex-direction:column;align-items:center;gap:4px;text-align:center;border:2px dashed #c7d4e2;border-radius:12px;padding:18px 12px;cursor:pointer;background:#f8fafc;font-weight:400;margin:0 0 12px;transition:.15s}
.dropzone.over{border-color:var(--acc);background:var(--acc2)}.dropzone input{display:none}.dz-icon{font-size:24px}.dz-status{color:var(--acc);font-weight:600}
.anl{list-style:none;padding:0;margin:0 0 10px;font-size:13.5px}.anl li{display:flex;align-items:center;gap:6px;padding:5px 0;border-bottom:1px solid var(--line)}
.anl li a{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.anl .check{margin:0}.anl .rep-b{padding:0}
.anl-del{margin-top:10px;display:flex;flex-direction:column;gap:2px}.anl-del form{margin:0}
.linkbtn{background:none;border:0;color:var(--red);cursor:pointer;padding:2px 0;text-align:left;font:inherit;font-size:12.5px}
/* Download */
.dl-panel{margin-top:16px;padding-top:14px;border-top:1px solid var(--line)}.dl-panel h3{color:var(--ink);font-size:15px;margin:0 0 10px}
.dl-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.dl-box{border:1px solid var(--line);border-radius:10px;padding:14px;display:flex;flex-direction:column;gap:8px;background:#fafbfc}.dl-box small{color:var(--mut)}.dl-box .btn{align-self:flex-start}
.dl-links{display:flex;flex-wrap:wrap;gap:6px 14px;font-size:13.5px}
@media(max-width:860px){.rep-f{grid-template-columns:1fr 1fr}.rep-f label{grid-column:1/-1!important}.dl-grid{grid-template-columns:1fr}}
.rep-f .w6{grid-column:1/-1}
.dropzone input[type=file]{display:none!important}
.dz-list{list-style:none;padding:0;margin:8px 0 0;max-height:220px;overflow:auto}.dz-list li{padding:2px 0;word-break:break-all}
.dz-list li.ok{color:var(--ok)}.dz-list li.err{color:var(--red)}.dz-list li.skip{color:var(--mut)}
