/* ===================================================================
   Carimera Abrechnungsdatenbank – Design angelehnt an carimera.com
   Farben hier zentral änderbar:
   =================================================================== */
:root{
  --c-primary:#1474A4;
  --c-primary-dark:#0E5A80;
  --c-hellblau:#6FBEE4;
  --c-hellblau-soft:#E3F2FA;
  --c-navy:#0D3B54;
  --c-navy-2:#0A2F44;
  --c-bg:#F2F7FA;
  --c-card:#ffffff;
  --c-border:#DCE8F0;
  --c-text:#1B3A4D;
  --c-text-soft:#5A7689;
  --c-danger:#C84B4B;
  --c-danger-soft:#FBE9E9;
  --c-green:#2E9E62;
  --c-green-soft:#E4F5EC;
  --c-amber:#C98A1B;
  --c-amber-soft:#FBF1DC;
  --c-violet:#7A5FB8;
  --c-violet-soft:#EFEAF9;
  --radius:14px;
  --radius-s:9px;
  --shadow:0 2px 10px rgba(13,59,84,.07);
  --shadow-lg:0 10px 36px rgba(13,59,84,.18);
  --font:'Nunito Sans','Segoe UI',system-ui,-apple-system,Arial,sans-serif;
}
/* ---- Marke Kurfürst 2077: Grün + Koralle (kurfuersten-hilfe.de) ---- */
body.brand-kurfuerst{
  --c-primary:#2AA05C;
  --c-primary-dark:#1E7E46;
  --c-hellblau:#7FCDA0;
  --c-hellblau-soft:#E6F5EC;
  --c-navy:#11402C;
  --c-navy-2:#0B2E1F;
  --c-bg:#F3FAF5;
  --c-border:#D8EBDE;
  --c-text:#1D3A2C;
  --c-text-soft:#5B7A68;
  --c-violet:#B86A5F;
  --c-violet-soft:#FBEAE7;
}
body.brand-kurfuerst .logo .sub{color:#F5A19A}
body.brand-kurfuerst .userchip{background:#FBE5E2;color:#B45A4E}
body.brand-kurfuerst .badge.b-info{background:#FBE5E2;color:#B45A4E}
body.brand-kurfuerst .btn.soft{background:#FBE5E2;color:#A8544A}
body.brand-kurfuerst .btn.soft:hover{background:#F6D3CE}
body.brand-kurfuerst .chip{border-color:#F2C4BE}
body.brand-kurfuerst .nav-item.active{background:#2EA876}
body.brand-kurfuerst th{background:#E6F5EC;color:#1E7E46}
body.brand-kurfuerst .stat .k{color:#6E8B7B}
body.brand-kurfuerst .topbar{border-bottom:3px solid #F5A19A}
body.brand-kurfuerst .topbar h1{color:#1E7E46}
body.brand-kurfuerst .nav-sep{color:#F5A19A}
body.brand-kurfuerst .badge.b-out{background:#FBE5E2;color:#B45A4E}
body.brand-kurfuerst .card h2{color:#16553A}
body.brand-kurfuerst .card{border-top:3px solid #F5A19A}
body.brand-kurfuerst .stat{border-top:3px solid #F5A19A}
body.brand-kurfuerst .btn.ghost{color:#B45A4E;border-color:#E8998F}
body.brand-kurfuerst .btn.ghost:hover{background:#FBE5E2}
body.brand-kurfuerst.dark .userchip{background:rgba(245,161,154,.18);color:#F5A19A}
body.brand-kurfuerst.dark .btn.soft{background:rgba(245,161,154,.18);color:#F5A19A}
body.brand-kurfuerst aside{background:linear-gradient(180deg,var(--c-navy),var(--c-navy-2))}
body.brand-kurfuerst .nav-item{color:#CDE8D6}
body.brand-kurfuerst .nav-sep{color:#6FA482}
body.brand-kurfuerst .aside-foot{color:#8FBA9F}
#logoBox{background:#fff;margin:-22px -20px 12px;padding:6px 14px;display:flex;justify-content:center;align-items:center;height:64px;border-bottom:3px solid var(--c-hellblau)}
#logoBox img{display:block;max-width:132px;max-height:46px;width:auto;height:auto}
body.brand-kurfuerst #logoBox{border-bottom-color:#F5A19A}
#authLogo img{display:block;max-width:160px;max-height:120px;margin:0 auto}
*{box-sizing:border-box;margin:0;padding:0}
html,body{height:100%}
body{font-family:var(--font);background:var(--c-bg);color:var(--c-text);font-size:14.5px;line-height:1.5}
a{color:var(--c-primary)}
h1{font-size:1.45rem}h2{font-size:1.15rem}h3{font-size:1rem}
button{font-family:inherit}
input,select,textarea{font-family:inherit;font-size:14px;padding:9px 11px;border:1.5px solid var(--c-border);border-radius:var(--radius-s);background:#fff;color:var(--c-text);outline:none;width:100%}
input:focus,select:focus,textarea:focus{border-color:var(--c-hellblau);box-shadow:0 0 0 3px rgba(111,190,228,.25)}
label{font-size:12.5px;font-weight:700;color:var(--c-text-soft);display:block;margin-bottom:4px}
.hidden{display:none!important}
.muted{color:var(--c-text-soft)}
.small{font-size:12.5px}
.nowrap{white-space:nowrap}
.mt8{margin-top:8px}.mt12{margin-top:12px}.mt16{margin-top:16px}.mt24{margin-top:24px}
.mb8{margin-bottom:8px}.mb12{margin-bottom:12px}.mb16{margin-bottom:16px}
.flex{display:flex;gap:10px;align-items:center}
.flex-between{display:flex;justify-content:space-between;align-items:center;gap:10px;flex-wrap:wrap}
.grid2{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.grid3{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}
.right{text-align:right}
.btn{display:inline-flex;align-items:center;gap:7px;border:none;border-radius:999px;padding:9px 18px;font-size:13.5px;font-weight:700;cursor:pointer;background:var(--c-primary);color:#fff;transition:background .15s, transform .05s;text-decoration:none}
.btn:hover{background:var(--c-primary-dark)}
.btn:active{transform:scale(.98)}
.btn:disabled{opacity:.45;cursor:not-allowed}
.btn.ghost{background:transparent;color:var(--c-primary);border:1.5px solid var(--c-primary)}
.btn.ghost:hover{background:var(--c-hellblau-soft)}
.btn.soft{background:var(--c-hellblau-soft);color:var(--c-primary-dark)}
.btn.soft:hover{background:#d2e9f6}
.btn.danger{background:var(--c-danger)}
.btn.danger:hover{background:#a93d3d}
.btn.danger-ghost{background:transparent;color:var(--c-danger);border:1.5px solid var(--c-danger)}
.btn.danger-ghost:hover{background:var(--c-danger-soft)}
.btn.sm{padding:5px 12px;font-size:12.5px}
.btn.xs{padding:3px 9px;font-size:11.5px}
.btn.wide{width:100%;justify-content:center}
#app{display:flex;min-height:100vh}
aside{width:240px;background:linear-gradient(180deg,var(--c-navy),var(--c-navy-2));color:#fff;display:flex;flex-direction:column;position:fixed;top:0;bottom:0;left:0;z-index:20}
.logo{padding:22px 20px 16px}
.logo .word{font-size:1.5rem;font-weight:800;letter-spacing:.3px;color:var(--c-hellblau)}
.logo .word b{color:#fff;font-weight:800}
.logo .sub{font-size:11px;color:#9CC4DA;margin-top:2px;letter-spacing:.4px;text-transform:uppercase}
.dbswitch{margin-top:10px;width:100%;background:rgba(255,255,255,.1);border:1.5px solid rgba(255,255,255,.25);color:#fff;border-radius:9px;padding:7px 9px;font-size:13px;font-weight:700;cursor:pointer}
.dbswitch:focus{border-color:var(--c-hellblau);box-shadow:none}
.dbswitch option{color:var(--c-text);background:#fff}
nav{flex:1;padding:8px 12px;display:flex;flex-direction:column;gap:3px;overflow-y:auto}
.nav-item{display:flex;align-items:center;gap:11px;padding:10px 13px;border-radius:10px;color:#C9DEEB;font-size:14px;font-weight:600;cursor:pointer;border:none;background:transparent;text-align:left;width:100%}
.nav-item:hover{background:rgba(255,255,255,.08);color:#fff}
.nav-item.active{background:var(--c-primary);color:#fff}
.nav-item .ico{width:21px;text-align:center;font-size:15px}
.navcount{margin-left:auto;background:var(--c-danger);color:#fff;border-radius:999px;min-width:20px;height:20px;padding:0 6px;font-size:12px;font-weight:700;display:inline-flex;align-items:center;justify-content:center}
.nav-sep{margin:10px 13px 4px;font-size:10.5px;letter-spacing:1px;text-transform:uppercase;color:#5E849A}
.aside-foot{padding:14px 20px;font-size:11px;color:#7FA4BA;border-top:1px solid rgba(255,255,255,.08)}
main{flex:1;margin-left:240px;display:flex;flex-direction:column;min-width:0}
.topbar{background:#fff;border-bottom:3px solid var(--c-hellblau);padding:0 28px;height:64px;display:flex;justify-content:space-between;align-items:center;position:sticky;top:0;z-index:10}
.topbar h1{color:var(--c-navy);font-size:1.25rem}
.userchip{display:flex;align-items:center;gap:10px;background:var(--c-hellblau-soft);border-radius:999px;padding:6px 8px 6px 14px;font-size:13px;font-weight:700;color:var(--c-primary-dark)}
#view{padding:24px 32px 60px;width:100%}
@media (min-width:1800px){#view{padding:28px 48px 70px}body{font-size:15px}}
.card{background:var(--c-card);border:1px solid var(--c-border);border-radius:var(--radius);box-shadow:var(--shadow);padding:20px;margin-bottom:18px}
.card h2{color:var(--c-navy);margin-bottom:4px}
.card .sub{color:var(--c-text-soft);font-size:13px;margin-bottom:14px}
.stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:14px;margin-bottom:18px}
.stat{background:#fff;border:1px solid var(--c-border);border-radius:var(--radius);padding:16px 18px;box-shadow:var(--shadow)}
.stat .k{font-size:12px;font-weight:700;color:var(--c-text-soft);text-transform:uppercase;letter-spacing:.4px}
.stat .v{font-size:1.55rem;font-weight:800;color:var(--c-navy);margin-top:3px}
.stat .v.pos{color:var(--c-green)}
.stat .v.neg{color:var(--c-danger)}
.stat .hint{font-size:11.5px;color:var(--c-text-soft);margin-top:2px}
.stat{position:relative}
.dashEdit .stat,.dashEdit > .card{outline:2px dashed var(--c-hellblau);outline-offset:2px}
.dashTools{position:absolute;top:6px;right:8px;display:flex;gap:3px;z-index:5;background:var(--c-card);border-radius:999px;padding:1px}
.dashTools .btn{padding:1px 7px;font-size:11px}
.card{position:relative}
.tablewrap{overflow-x:auto;border:1px solid var(--c-border);border-radius:var(--radius-s)}
table{width:100%;border-collapse:collapse;font-size:13px;background:#fff}
th{background:var(--c-hellblau-soft);color:var(--c-primary-dark);text-align:left;padding:9px 10px;font-size:11.5px;text-transform:uppercase;letter-spacing:.4px;white-space:nowrap;position:sticky;top:0;cursor:pointer;user-select:none}
th:hover{background:#D4EBF8}
th.sort-asc::after{content:" ▲";font-size:9px}
th.sort-desc::after{content:" ▼";font-size:9px}
td{padding:8px 10px;border-top:1px solid var(--c-border);vertical-align:top}
tbody tr:hover{background:#F6FAFD}
tr.clickable{cursor:pointer}
.empty{padding:26px;text-align:center;color:var(--c-text-soft)}
.badge{display:inline-block;padding:2.5px 9px;border-radius:999px;font-size:11px;font-weight:800;white-space:nowrap}
.b-abs{background:var(--c-danger-soft);color:var(--c-danger)}
.b-zus{background:var(--c-green-soft);color:var(--c-green)}
.b-masse{background:var(--c-violet-soft);color:var(--c-violet)}
.b-beihilfe{background:#fde7c4;color:#8a5a00}
.b-sonstig{background:#EEF2F5;color:var(--c-text-soft)}
.b-offen{background:var(--c-amber-soft);color:var(--c-amber)}
.b-bearbeitet{background:var(--c-green-soft);color:var(--c-green)}
.b-info{background:var(--c-hellblau-soft);color:var(--c-primary-dark)}
.b-out{background:var(--c-hellblau-soft);color:var(--c-primary-dark)}
.b-in{background:var(--c-violet-soft);color:var(--c-violet)}
.b-klaerung{background:var(--c-hellblau-soft);color:var(--c-primary-dark)}
.b-wider{background:var(--c-violet-soft);color:var(--c-violet)}
.b-abgeschr{background:#EEF2F5;color:var(--c-text-soft)}
.chip{display:inline-flex;align-items:center;gap:6px;background:var(--c-hellblau-soft);color:var(--c-primary-dark);border-radius:999px;padding:4px 12px;font-size:12px;font-weight:700;margin:2px 4px 2px 0}
.tag{display:inline-block;background:var(--c-violet-soft);color:var(--c-violet);border-radius:999px;padding:3px 11px;font-size:12px;font-weight:700;margin:2px 4px 2px 0}
.note{background:var(--c-hellblau-soft);border:1px solid #BFE0F1;border-radius:var(--radius-s);padding:11px 14px;font-size:13px;color:var(--c-primary-dark);margin-bottom:14px}
.note.warn{background:var(--c-amber-soft);border-color:#EAD3A0;color:#8A6210}
.note.danger{background:var(--c-danger-soft);border-color:#EFC4C4;color:var(--c-danger)}
#authRoot{min-height:100vh;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,var(--c-navy) 0%,var(--c-primary) 70%,var(--c-hellblau) 130%);padding:20px}
.authcard{background:#fff;border-radius:20px;box-shadow:var(--shadow-lg);width:100%;max-width:420px;padding:34px 34px 28px}
.authcard .word{font-size:1.8rem;font-weight:800;color:var(--c-primary);text-align:center}
.authcard .sub2{text-align:center;color:var(--c-text-soft);font-size:12.5px;margin-bottom:22px;letter-spacing:.5px;text-transform:uppercase}
.authcard h2{text-align:center;color:var(--c-navy);margin-bottom:16px}
.field{margin-bottom:13px}
.autherr{background:var(--c-danger-soft);color:var(--c-danger);border-radius:var(--radius-s);padding:9px 12px;font-size:13px;margin-bottom:12px;font-weight:600}
.authfoot{text-align:center;margin-top:14px;font-size:12.5px}
.dropzone{border:2.5px dashed var(--c-hellblau);border-radius:var(--radius);background:var(--c-hellblau-soft);padding:38px 20px;text-align:center;cursor:pointer;transition:background .15s}
.dropzone:hover,.dropzone.drag{background:#D4EBF8}
.dropzone .big{font-size:2rem}
.dropzone b{color:var(--c-primary-dark)}
.previewcard{border:1.5px solid var(--c-hellblau);border-radius:var(--radius);padding:16px;margin-bottom:14px;background:#FBFDFE}
.searchbox{position:relative;max-width:880px}
.searchbox input{padding:12px 16px;font-size:15px;border-radius:999px;border-width:2px}
.suggest{position:absolute;top:calc(100% + 6px);left:0;right:0;background:#fff;border:1px solid var(--c-border);border-radius:var(--radius-s);box-shadow:var(--shadow-lg);z-index:30;max-height:340px;overflow-y:auto}
.suggest .group{padding:7px 14px 3px;font-size:10.5px;font-weight:800;letter-spacing:.8px;text-transform:uppercase;color:var(--c-text-soft);background:#F6FAFD}
.suggest .item{padding:9px 14px;cursor:pointer;display:flex;justify-content:space-between;gap:10px;font-size:13.5px}
.suggest .item:hover{background:var(--c-hellblau-soft)}
.suggest .item .cnt{color:var(--c-text-soft);font-size:12px;white-space:nowrap}
#modalRoot{position:fixed;inset:0;z-index:100;display:none}
#modalRoot.open{display:flex;align-items:center;justify-content:center;background:rgba(13,59,84,.5);padding:20px}
.modal{background:#fff;border-radius:18px;box-shadow:var(--shadow-lg);width:100%;max-width:560px;max-height:88vh;overflow-y:auto;padding:26px}
.modal.wide{max-width:760px}
.modal h2{color:var(--c-navy);margin-bottom:14px}
.modal .actions{display:flex;justify-content:flex-end;gap:10px;margin-top:20px}
#toastRoot{position:fixed;bottom:22px;right:22px;z-index:200;display:flex;flex-direction:column;gap:8px}
.toast{background:var(--c-navy);color:#fff;padding:12px 18px;border-radius:12px;box-shadow:var(--shadow-lg);font-size:13.5px;font-weight:600;max-width:420px;animation:slidein .2s ease}
.toast.ok{background:var(--c-green)}
.toast.err{background:var(--c-danger)}
@keyframes slidein{from{transform:translateY(12px);opacity:0}to{transform:none;opacity:1}}
.otpbox{background:var(--c-hellblau-soft);border:2px dashed var(--c-primary);border-radius:var(--radius);padding:18px;text-align:center;margin:14px 0}
.otpbox .otp{font-size:1.7rem;font-weight:800;letter-spacing:3px;color:var(--c-primary-dark);font-family:Consolas,monospace}
.mailrow{border:1px solid var(--c-border);border-radius:var(--radius-s);padding:12px 14px;margin-bottom:9px;background:#fff;cursor:pointer}
.mailrow:hover{background:#F6FAFD}
.mailrow .subj{font-weight:700;color:var(--c-navy)}
.mailbody{white-space:pre-wrap;background:#F8FBFD;border:1px solid var(--c-border);border-radius:var(--radius-s);padding:14px;font-size:13.5px;margin-top:10px}
.rtbar{display:flex;gap:6px;margin-bottom:6px;flex-wrap:wrap}
.rtedit{min-height:180px;max-height:340px;overflow:auto;background:#fff;border:1px solid var(--c-border);border-radius:var(--radius-s);padding:10px 12px;font-size:13.5px;line-height:1.5}
body.dark .rtedit{background:#0F2233;color:var(--c-text)}
.mailhtml{width:100%;height:440px;border:1px solid var(--c-border);border-radius:var(--radius-s);background:#fff;margin-top:10px}
.mapgrid{display:grid;grid-template-columns:200px 90px 1fr;gap:8px 12px;align-items:center;max-width:880px}
.mapgrid .h{font-size:11px;font-weight:800;text-transform:uppercase;color:var(--c-text-soft)}
kbd{background:#EEF4F8;border:1px solid var(--c-border);border-radius:5px;padding:1px 7px;font-family:Consolas,monospace;font-size:12px;color:var(--c-primary-dark)}
@media (max-width:980px){
  aside{width:64px}
  .logo .word,.logo .sub,.nav-item span.txt,.aside-foot,.nav-sep{display:none}
  main{margin-left:64px}
  .grid2,.grid3,.mapgrid{grid-template-columns:1fr}
}
@media print{aside,.topbar,.btn{display:none!important}main{margin-left:0}}

/* ---------- Dunkelmodus ---------- */
body.dark{
  --c-bg:#0E1B26; --c-card:#15293B; --c-border:#28425A;
  --c-text:#E5F0F7; --c-text-soft:#9DB7C8;
  --c-hellblau-soft:#1C3A52; --c-navy:#0A1722; --c-navy-2:#081320;
  --c-danger:#F29090; --c-green:#4ACB8F; --c-amber:#E8BE6A; --c-violet:#BBA4EC;
  --c-danger-soft:#3A2024; --c-green-soft:#16321F; --c-amber-soft:#3A2F16; --c-violet-soft:#2A2240;
  --shadow:0 2px 10px rgba(0,0,0,.35); --shadow-lg:0 10px 36px rgba(0,0,0,.5);
}
body.dark a{color:#7CC4E8}
body.dark .topbar, body.dark .stat, body.dark .card, body.dark table, body.dark .mailrow,
body.dark .modal, body.dark .suggest, body.dark .previewcard, body.dark .authcard{background:var(--c-card)}
body.dark .topbar h1, body.dark .card h2, body.dark .modal h2, body.dark .mailrow .subj, body.dark .authcard h2{color:#D9ECF7}
body.dark .stat .v{color:#E5F0F7}
body.dark .stat .v.pos{color:var(--c-green)}
body.dark .stat .v.neg{color:var(--c-danger)}
body.dark input, body.dark select, body.dark textarea{background:#0F2233;color:var(--c-text);border-color:var(--c-border)}
body.dark tbody tr:hover{background:#1C3A52}
body.dark th{background:#1C3A52;color:#A8D4F0}
body.dark th:hover{background:#23486A}
body.dark .dropzone{background:#13293C}
body.dark .dropzone:hover, body.dark .dropzone.drag{background:#1C3A52}
body.dark .otpbox{background:#1C3A52}
body.dark .otpbox .otp{color:#A8D4F0}
body.dark .mailbody{background:#0F2233;border-color:var(--c-border)}
body.dark kbd{background:#0F2233;border-color:var(--c-border);color:#A8D4F0}
body.dark .note{background:#1C3A52;border-color:#2E5374;color:#BFE0F1}
body.dark .note.danger{background:#3A2024;border-color:#5A2E34;color:#F0A8A8}
body.dark .chip{background:#1C3A52;color:#A8D4F0}
body.dark .b-sonstig{background:#22384A;color:#9DB7C8}
body.dark .b-info{background:#1C3A52;color:#A8D4F0}
body.dark .b-out{background:#1C3A52;color:#A8D4F0}
body.dark .userchip{background:#1C3A52;color:#A8D4F0}
body.dark .btn.soft{background:#1C3A52;color:#A8D4F0}
body.dark .btn.soft:hover{background:#23486A}
body.dark .suggest .group{background:#0F2233}
body.dark .suggest .item:hover{background:#1C3A52}
/* build-end-v13 */
