:root{--text:#6b6375;--text-h:#08060d;--bg:#fff;--bg2:#f8f7fc;--border:#e5e4e7;--accent:#aa3bff;--accent-bg:#aa3bff14;--accent-border:#aa3bff4d;--shadow:#00000014 0 4px 12px, #0000000a 0 1px 3px;--rot:#ef4444;--rot-bg:#ef44441a;--gelb:#f59e0b;--gelb-bg:#f59e0b1a;--gruen:#22c55e;--gruen-bg:#22c55e1a;--grau:#9ca3af;--grau-bg:#9ca3af1a;--sans:system-ui, "Segoe UI", Roboto, sans-serif;font:16px/150% var(--sans);color:var(--text);background:var(--bg);-webkit-font-smoothing:antialiased}@media (prefers-color-scheme:dark){:root{--text:#9ca3af;--text-h:#f3f4f6;--bg:#16171d;--bg2:#1e1f28;--border:#2e303a;--accent:#c084fc;--accent-bg:#c084fc1f;--accent-border:#c084fc66;--shadow:#0006 0 4px 12px, #0003 0 1px 3px}}*{box-sizing:border-box}body{margin:0}#root{border-inline:1px solid var(--border);flex-direction:column;width:680px;max-width:100%;min-height:100svh;margin:0 auto;display:flex}.topbar{border-bottom:1px solid var(--border);background:var(--bg);z-index:10;justify-content:space-between;align-items:center;padding:14px 20px;display:flex;position:sticky;top:0}.topbar-title{color:var(--text-h);cursor:pointer;align-items:center;gap:8px;font-size:17px;font-weight:600;display:flex}.topbar-title span{font-size:20px}.topbar-actions{gap:8px;display:flex}button{font:inherit;cursor:pointer;border:none;border-radius:8px;padding:8px 14px;transition:opacity .15s,background .15s}button:hover{opacity:.85}button:active{opacity:.7}.btn-primary{background:var(--accent);color:#fff;font-weight:600}.btn-ghost{color:var(--text);border:1px solid var(--border);background:0 0}.btn-danger{background:var(--rot-bg);color:var(--rot);border:1px solid #ef444433;font-weight:600}.btn-back{color:var(--accent);background:0 0;padding:6px 10px;font-size:14px;font-weight:600}.login-wrap{flex-direction:column;flex:1;justify-content:center;align-items:center;gap:8px;padding:40px 24px;display:flex}.login-logo{margin-bottom:8px;font-size:52px}.login-wrap h1{color:var(--text-h);margin:0 0 4px;font-size:26px;font-weight:700}.login-wrap p{color:var(--text);margin:0 0 20px;font-size:14px}.login-form{flex-direction:column;gap:10px;width:100%;max-width:360px;display:flex}.login-form input{font:inherit;border:1px solid var(--border);background:var(--bg2);color:var(--text-h);border-radius:8px;outline:none;padding:11px 14px;font-size:15px}.login-form input:focus{border-color:var(--accent)}.login-form button{padding:12px;font-size:15px}.login-error{color:var(--rot);text-align:center;font-size:13px}.dashboard{flex-direction:column;gap:16px;padding:20px 16px;display:flex}.warn-banner{background:var(--rot-bg);color:var(--rot);border:1px solid #ef444440;border-radius:10px;align-items:center;gap:10px;padding:12px 16px;font-size:14px;font-weight:500;display:flex}.warn-banner-gelb{background:var(--gelb-bg);color:#92400e;border-color:#f59e0b40}@media (prefers-color-scheme:dark){.warn-banner-gelb{color:var(--gelb)}}.kat-grid{grid-template-columns:1fr 1fr;gap:12px;display:grid}.kat-kachel{background:var(--bg2);border:1px solid var(--border);cursor:pointer;text-align:left;border-radius:12px;flex-direction:column;gap:6px;padding:18px 16px;transition:box-shadow .15s,border-color .15s;display:flex}.kat-kachel:hover{box-shadow:var(--shadow);border-color:var(--accent-border)}.kat-kachel-header{justify-content:space-between;align-items:center;display:flex}.kat-icon{font-size:26px}.kat-ampeln{gap:4px;display:flex}.ampel-dot{border-radius:50%;width:8px;height:8px;display:inline-block}.ampel-dot.rot{background:var(--rot)}.ampel-dot.gelb{background:var(--gelb)}.ampel-dot.gruen{background:var(--gruen)}.ampel-dot.grau{background:var(--grau)}.kat-label{color:var(--text-h);font-size:15px;font-weight:600}.kat-count{color:var(--text);font-size:13px}.kat-liste{flex-direction:column;gap:10px;padding:16px;display:flex}.kat-liste-header{justify-content:space-between;align-items:center;margin-bottom:4px;display:flex}.kat-liste-title{color:var(--text-h);align-items:center;gap:8px;font-size:18px;font-weight:700;display:flex}.vertrag-karte{background:var(--bg2);border:1px solid var(--border);cursor:pointer;border-radius:12px;flex-direction:column;gap:8px;padding:14px 16px;transition:box-shadow .15s,border-color .15s;display:flex}.vertrag-karte:hover{box-shadow:var(--shadow);border-color:var(--accent-border)}.vertrag-karte-header{justify-content:space-between;align-items:center;gap:8px;display:flex}.vertrag-karte-name{color:var(--text-h);flex:1;font-size:15px;font-weight:600}.ampel-badge{white-space:nowrap;border-radius:20px;align-items:center;gap:5px;padding:3px 9px;font-size:12px;font-weight:600;display:inline-flex}.ampel-badge.rot{background:var(--rot-bg);color:var(--rot)}.ampel-badge.gelb{background:var(--gelb-bg);color:#92400e}.ampel-badge.gruen{background:var(--gruen-bg);color:#166534}.ampel-badge.grau{background:var(--grau-bg);color:var(--grau)}@media (prefers-color-scheme:dark){.ampel-badge.gelb{color:var(--gelb)}.ampel-badge.gruen{color:#4ade80}}.vertrag-karte-details{grid-template-columns:1fr 1fr;gap:4px 12px;font-size:13px;display:grid}.detail-row{flex-direction:column;gap:1px;display:flex}.detail-label{color:var(--text);text-transform:uppercase;letter-spacing:.5px;font-size:11px}.detail-value{color:var(--text-h);font-size:13px}.vertrag-karte-notiz{color:var(--text);border-top:1px solid var(--border);white-space:nowrap;text-overflow:ellipsis;padding-top:6px;font-size:13px;font-style:italic;overflow:hidden}.vertrag-detail{flex-direction:column;gap:14px;padding:16px;display:flex}.detail-header{justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.detail-header-left{flex-direction:column;gap:6px;display:flex}.detail-titel{color:var(--text-h);font-size:20px;font-weight:700;line-height:1.3}.detail-header-actions{flex-shrink:0;gap:8px;display:flex}.detail-section{background:var(--bg2);border:1px solid var(--border);border-radius:12px;flex-direction:column;gap:10px;padding:14px 16px;display:flex}.detail-section-title{text-transform:uppercase;letter-spacing:.6px;color:var(--text);margin-bottom:2px;font-size:12px;font-weight:600}.detail-grid{grid-template-columns:1fr 1fr;gap:10px 16px;display:grid}.detail-field{flex-direction:column;gap:2px;display:flex}.detail-field label{text-transform:uppercase;letter-spacing:.5px;color:var(--text);font-size:11px}.detail-field span{color:var(--text-h);font-size:14px;font-weight:500}.doc-link{color:var(--accent);background:var(--accent-bg);border:1px solid var(--accent-border);word-break:break-all;border-radius:6px;align-items:center;gap:6px;padding:6px 10px;font-size:13px;text-decoration:none;display:inline-flex}.doc-link:hover{opacity:.8}.notiz-box{color:var(--text-h);background:var(--bg2);border:1px solid var(--border);white-space:pre-wrap;border-radius:10px;padding:12px 14px;font-size:14px;line-height:1.6}.delete-zone{border-top:1px solid var(--border);justify-content:flex-end;padding-top:14px;display:flex}.form-wrap{flex-direction:column;gap:14px;padding:16px;display:flex}.form-section{background:var(--bg2);border:1px solid var(--border);border-radius:12px;flex-direction:column;gap:10px;padding:14px 16px;display:flex}.form-section-title{text-transform:uppercase;letter-spacing:.6px;color:var(--text);font-size:12px;font-weight:600}.form-grid{grid-template-columns:1fr 1fr;gap:10px;display:grid}.form-field{flex-direction:column;gap:4px;display:flex}.form-field.full{grid-column:1/-1}.form-field label{color:var(--text);text-transform:uppercase;letter-spacing:.4px;font-size:12px;font-weight:600}.form-field input,.form-field select,.form-field textarea{font:inherit;border:1px solid var(--border);background:var(--bg);color:var(--text-h);border-radius:8px;outline:none;padding:9px 12px;font-size:14px;transition:border-color .15s}.form-field input:focus,.form-field select:focus,.form-field textarea:focus{border-color:var(--accent)}.form-field textarea{resize:vertical;min-height:80px}.doc-eintrag{align-items:center;gap:8px;display:flex}.doc-eintrag input{flex:1}.btn-remove-doc{color:var(--rot);background:0 0;border:1px solid #ef44444d;border-radius:6px;padding:6px 10px;font-size:13px}.form-actions{justify-content:flex-end;gap:10px;display:flex}.modal-overlay{z-index:100;background:#00000080;justify-content:center;align-items:center;padding:20px;display:flex;position:fixed;inset:0}.modal{background:var(--bg);border:1px solid var(--border);width:100%;max-width:360px;box-shadow:var(--shadow);border-radius:14px;flex-direction:column;gap:16px;padding:24px;display:flex}.modal h3{color:var(--text-h);margin:0;font-size:17px}.modal p{color:var(--text);margin:0;font-size:14px}.modal-actions{justify-content:flex-end;gap:10px;display:flex}.leer{text-align:center;color:var(--text);padding:40px 20px;font-size:14px}.leer-icon{margin-bottom:8px;font-size:36px}.sp-trennlinie{color:var(--text);align-items:center;gap:10px;font-size:12px;display:flex}.sp-trennlinie:before,.sp-trennlinie:after{content:"";background:var(--border);flex:1;height:1px}.btn-sp{background:var(--accent-bg);color:var(--accent);border:1px solid var(--accent-border);border-radius:8px;width:100%;padding:9px 14px;font-size:13px;font-weight:600}.sp-picker{width:100%}.sp-ladetext{color:var(--text);padding:8px 0;font-size:13px}.sp-fehler{color:var(--rot);background:var(--rot-bg);border-radius:8px;padding:8px;font-size:13px}.sp-offen{border:1px solid var(--accent-border);background:var(--bg);border-radius:10px;overflow:hidden}.sp-kopf{background:var(--accent-bg);border-bottom:1px solid var(--accent-border);align-items:center;gap:8px;padding:8px 12px;display:flex}.sp-pfad{color:var(--accent);font-size:12px;font-weight:600}.sp-liste{flex-direction:column;max-height:260px;display:flex;overflow-y:auto}.sp-eintrag{border-bottom:1px solid var(--border);cursor:pointer;justify-content:space-between;align-items:center;padding:9px 14px;font-size:13px;transition:background .1s;display:flex}.sp-eintrag:last-child{border-bottom:none}.sp-eintrag:hover{background:var(--accent-bg)}.sp-ordner{color:var(--accent);font-weight:500}.sp-datei-name{text-overflow:ellipsis;white-space:nowrap;color:var(--text-h);flex:1;margin-right:8px;overflow:hidden}.sp-leer{color:var(--text);text-align:center;padding:16px;font-size:13px}@media (width<=480px){.kat-grid{grid-template-columns:1fr 1fr}.detail-grid,.form-grid{grid-template-columns:1fr}.form-field.full{grid-column:1}.vertrag-karte-details{grid-template-columns:1fr}}
