/* ═══════════════════════════════════════════════════════
   DIF AG Berater Dashboard v7 – Stylesheet
   ═══════════════════════════════════════════════════════ */

/* ─── CSS Variables (Dark Theme Default) ─── */
:root{--dk:#212a48;--dkl:#2d3a5c;--go:#cfa460;--gol:#e0be85;--god:#b8893d;--bg:#0f1524;--cd:#1a2238;--cdh:#1e2844;--tm:#8892a8;--tl:#b0b8cc;--bd:#2a3650;--ok:#22c55e;--wn:#f59e0b;--er:#ef4444;--tx:#ffffff;--txs:#e2e8f0}
[data-theme="light"]{--dk:#e8ecf4;--dkl:#dce2ee;--go:#b8893d;--gol:#a07830;--god:#c9a04a;--bg:#f0f2f5;--cd:#ffffff;--cdh:#f5f6f8;--tm:#64748b;--tl:#475569;--bd:#d1d5db;--ok:#16a34a;--wn:#d97706;--er:#dc2626;--tx:#1e293b;--txs:#334155}

/* ─── Reset & Base ─── */
*{margin:0;padding:0;box-sizing:border-box}
body{font-family:'Montserrat',sans-serif;background:var(--bg);color:var(--tx);min-height:100vh;transition:background .3s,color .3s}
input,select,button{font-family:inherit}
a{color:var(--go);text-decoration:none}
::-webkit-scrollbar{width:6px}::-webkit-scrollbar-thumb{background:var(--bd);border-radius:3px}

/* ─── Login Screen ─── */
#LS{display:flex;min-height:100vh;background:radial-gradient(ellipse at 50% -15%,var(--dkl) 0%,var(--bg) 70%);align-items:center;justify-content:center;padding:20px}
.lc{width:100%;max-width:420px;background:var(--cd);border-radius:20px;border:1px solid var(--bd);box-shadow:0 32px 80px rgba(0,0,0,.45),0 8px 24px rgba(0,0,0,.15);overflow:hidden}
.fb{display:flex;width:100%;height:3px}.fb span{flex:1}.fb span:nth-child(1){background:#000}.fb span:nth-child(2){background:#d30e14}.fb span:nth-child(3){background:#f5c800}
.lc-top{padding:44px 36px 28px;text-align:center;display:flex;align-items:center;justify-content:center}
.lc-flag{display:flex;width:100%}.lc-flag span{flex:1;height:5px}.lc-flag span:nth-child(1){background:#000}.lc-flag span:nth-child(2){background:#dd0000}.lc-flag span:nth-child(3){background:#f5c800}
.lc-body{padding:28px 36px 32px}
.lf{width:100%}
.fg{margin-bottom:20px}
.fg label{display:block;font-size:12px;font-weight:600;color:var(--tl);margin-bottom:8px;text-transform:uppercase;letter-spacing:.08em}
.fi{width:100%;padding:14px 16px;border-radius:12px;border:1px solid var(--bd);background:var(--cd);color:var(--tx);font-size:14px;outline:none;transition:background .3s,color .3s,border-color .3s}.fi:focus{border-color:var(--go)}
.bg{width:100%;padding:15px;border-radius:12px;border:none;background:linear-gradient(135deg,var(--go),var(--god));color:#fff;font-size:15px;font-weight:700;cursor:pointer}.bg:disabled{opacity:.6}
#le{color:var(--er);font-size:13px;margin-bottom:16px;display:none}

/* ─── App Layout ─── */
#app{display:none;min-height:100vh}#app.a{display:flex}#LS.h{display:none}

/* ─── Sidebar ─── */
.sb{width:220px;background:var(--cd);border-right:1px solid var(--bd);display:flex;flex-direction:column;flex-shrink:0;transition:background .3s;height:100vh;position:sticky;top:0;overflow:hidden}
.sl{padding:16px;border-bottom:1px solid var(--bd);display:flex;align-items:center;gap:10px}
.sl .sm{width:32px;height:32px;border-radius:8px;background:linear-gradient(135deg,var(--go),var(--god));display:flex;align-items:center;justify-content:center;font-size:13px;font-weight:900;color:#fff;flex-shrink:0}
.sl .st{font-size:11px;font-weight:700;line-height:1.3}
.sb nav{flex:1;padding:12px 8px;overflow-y:auto}
.ni{display:flex;align-items:center;gap:10px;width:100%;padding:10px 12px;border-radius:8px;border:1px solid transparent;background:none;color:var(--tm);font-size:12px;font-weight:500;cursor:pointer;margin-bottom:3px;text-align:left;transition:color .3s}
.ni:hover{color:var(--tl);background:rgba(128,128,128,.06)}
.ni.ac{background:rgba(207,164,96,.1);border-color:rgba(207,164,96,.2);color:var(--go);font-weight:700}
.ni svg{width:16px;height:16px;flex-shrink:0}
.sbb{padding:10px 8px;border-top:1px solid var(--bd)}

/* ─── Nav Groups (collapsible) ─── */
.nav-group{margin-bottom:2px}
.nav-group-head{display:flex;align-items:center;gap:10px;width:100%;padding:10px 12px;border-radius:8px;border:none;background:none;color:var(--tl);font-size:12px;font-weight:600;cursor:pointer;text-align:left;transition:color .2s,background .2s;font-family:inherit}
.nav-group-head:hover{color:var(--tx);background:rgba(128,128,128,.06)}
.nav-group-head svg{width:16px;height:16px;flex-shrink:0}
.nav-arrow{margin-left:auto;font-size:10px;transition:transform .2s;color:var(--tm)}
.nav-group.open .nav-arrow{transform:rotate(90deg)}
.nav-group-items{display:none;padding-left:16px}
.nav-group.open .nav-group-items{display:block}
.nav-group-items .ni{padding:7px 12px;font-size:11px;gap:6px}
.nav-group.open>.nav-group-head{color:var(--go)}

/* ─── Main Content ─── */
.mn{flex:1;overflow:auto;display:flex;flex-direction:column}
.tb{display:flex;justify-content:space-between;align-items:center;padding:12px 24px;border-bottom:1px solid var(--bd);background:var(--cd);position:sticky;top:0;z-index:10;transition:background .3s}
.tb h1{font-size:16px;font-weight:700}
.ub{display:flex;align-items:center;gap:8px;padding:5px 12px 5px 5px;border-radius:8px;background:var(--bg);border:1px solid var(--bd)}
.ub .av{width:26px;height:26px;border-radius:6px;background:linear-gradient(135deg,var(--go),var(--god));display:flex;align-items:center;justify-content:center;font-size:10px;font-weight:800;color:#fff}
.ub span{font-size:11px;font-weight:600;color:var(--tl)}
.ct{padding:24px;flex:1}

/* ─── Cards & Tables ─── */
.c{background:var(--cd);border-radius:14px;padding:20px;border:1px solid var(--bd);margin-bottom:16px;transition:background .3s}
table{width:100%;border-collapse:collapse;font-size:11px}
th{padding:7px 8px;text-align:center;font-size:9px;font-weight:700;color:var(--tm);text-transform:uppercase;letter-spacing:.04em;border-bottom:1px solid var(--bd);white-space:nowrap;position:sticky;top:0;background:var(--cd);z-index:2}
th.l{text-align:left}
td{padding:8px;border-bottom:1px solid var(--bd);text-align:center;white-space:nowrap;color:var(--txs)}
td.l{text-align:left}
tr:hover{background:var(--cdh)}
/* ─── Sticky First Column ─── */
table td:first-child,table th:first-child{position:sticky;left:0;background:var(--cd)}
table td:first-child{z-index:1}
table th:first-child{z-index:3}
tr:hover td:first-child{background:var(--cdh)}
table th:first-child::after,table td:first-child::after{content:'';position:absolute;top:0;right:-6px;bottom:0;width:6px;pointer-events:none;background:linear-gradient(to right,rgba(0,0,0,.08),transparent)}
/* ─── Sticky tfoot ─── */
tfoot td{font-weight:800;background:var(--cd);position:sticky;bottom:0;z-index:1;border-top:2px solid var(--bd)}
tfoot td:first-child{z-index:2}

/* ─── Badges ─── */
.bd{display:inline-flex;align-items:center;gap:3px;padding:2px 8px;border-radius:20px;font-size:10px;font-weight:600}.bd::before{content:'';width:5px;height:5px;border-radius:50%}
.bd-c{background:rgba(59,130,246,.12);color:#3b82f6}.bd-c::before{background:#3b82f6}
.bd-p{background:rgba(207,164,96,.12);color:var(--go)}.bd-p::before{background:var(--go)}
.bd-r{background:rgba(34,197,94,.12);color:#22c55e}.bd-r::before{background:#22c55e}
.bd-m{background:rgba(139,92,246,.12);color:#8b5cf6}.bd-m::before{background:#8b5cf6}
.bd-i{background:rgba(100,116,139,.12);color:#64748b}.bd-i::before{background:#64748b}
.bd-a{background:rgba(239,68,68,.12);color:#ef4444}.bd-a::before{background:#ef4444}

/* ─── Progress Bars ─── */
.pb{width:40px;height:5px;border-radius:3px;background:var(--bd);overflow:hidden;display:inline-block;vertical-align:middle;margin-right:4px}
.pf{height:100%;border-radius:3px}

/* ─── Grids ─── */
.g2{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.g3{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}
.g4{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}
.g5{display:grid;grid-template-columns:repeat(5,1fr);gap:10px}

/* ─── Filter & Buttons ─── */
.ft{display:flex;gap:6px;margin-bottom:20px;flex-wrap:wrap}
.fb2{padding:7px 16px;border-radius:8px;border:1px solid var(--bd);background:transparent;color:var(--tm);font-size:12px;font-weight:600;cursor:pointer}.fb2.ac{border-color:var(--go);background:rgba(207,164,96,.08);color:var(--go)}
.km{background:var(--cd);border-radius:10px;padding:14px;border:1px solid var(--bd);transition:background .3s}.km .v{font-size:16px;font-weight:800;margin-bottom:2px}.km .l2{font-size:10px;color:var(--tm)}
.ua{border:2px dashed var(--bd);border-radius:12px;padding:32px;text-align:center}.ua.go{border-color:rgba(207,164,96,.3);background:rgba(207,164,96,.03)}
.bs{padding:7px 16px;border-radius:8px;border:1px solid var(--bd);background:transparent;color:var(--tl);font-size:11px;font-weight:600;cursor:pointer}.bs.go{background:linear-gradient(135deg,var(--go),var(--god));color:#fff;border:none}
.bs.er{background:rgba(239,68,68,.1);color:var(--er);border-color:rgba(239,68,68,.3)}.bs.er:hover{background:rgba(239,68,68,.2)}

/* ─── Toast ─── */
.to{position:fixed;bottom:200px;right:20px;padding:12px 20px;border-radius:10px;background:var(--ok);color:#fff;font-size:12px;font-weight:600;z-index:9999;transform:translateY(80px);opacity:0;transition:all .3s}.to.sh{transform:translateY(0);opacity:1}.to.er{background:var(--er)}

/* ─── Misc ─── */
.mb{display:inline-block;padding:2px 5px;border-radius:4px;font-size:8px;font-weight:800;background:rgba(207,164,96,.15);color:var(--go)}
.tc{cursor:pointer;transition:all .15s}.tc:hover{transform:scale(1.01);border-color:rgba(207,164,96,.3)}
.modal-bg{position:fixed;inset:0;background:rgba(0,0,0,.6);z-index:200;display:flex;align-items:center;justify-content:center}
.modal{background:var(--cd);border:1px solid var(--bd);border-radius:16px;padding:24px;max-width:400px;width:90%}
.modal h3{margin-bottom:12px}.modal p{font-size:13px;color:var(--tm);margin-bottom:20px}
.modal .btns{display:flex;gap:10px;justify-content:flex-end}
.thb{width:36px;height:36px;border-radius:8px;border:1px solid var(--bd);background:var(--bg);color:var(--tm);cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:16px;transition:all .2s}.thb:hover{border-color:var(--go);color:var(--go)}
.logo-img{display:block;border-radius:8px}
.tw{overflow:auto;max-height:calc(100vh - 240px)}
.tw thead tr:first-child th{position:sticky;top:0;z-index:2;background:var(--dk)}
.tw thead tr:nth-child(2) th{position:sticky;top:31px;z-index:2;background:var(--dk)}

/* ─── Global Search ─── */
.global-search{position:relative}
.global-search input{padding:6px 12px 6px 30px;border-radius:8px;border:1px solid var(--bd);background:var(--bg);color:var(--tx);font-size:12px;width:200px;outline:none;transition:border-color .2s,width .2s}
.global-search input:focus{border-color:var(--go);width:280px}
.global-search svg{position:absolute;left:8px;top:50%;transform:translateY(-50%);width:14px;height:14px;color:var(--tm)}

/* ─── Loading Spinner ─── */
.loading{display:flex;align-items:center;justify-content:center;padding:40px;color:var(--tm)}
.spinner{width:24px;height:24px;border:3px solid var(--bd);border-top-color:var(--go);border-radius:50%;animation:spin .8s linear infinite;margin-right:10px}
@keyframes spin{to{transform:rotate(360deg)}}

/* ─── Export Button ─── */
.export-btn{display:inline-flex;align-items:center;gap:6px;padding:6px 14px;border-radius:8px;border:1px solid var(--bd);background:transparent;color:var(--tm);font-size:11px;font-weight:600;cursor:pointer;transition:all .2s}
.export-btn:hover{border-color:var(--go);color:var(--go);background:rgba(207,164,96,.05)}
.export-btn svg{width:14px;height:14px}

/* ─── Mobile Menu Toggle ─── */
.mobile-toggle{display:none;width:36px;height:36px;border-radius:8px;border:1px solid var(--bd);background:var(--bg);color:var(--tm);cursor:pointer;align-items:center;justify-content:center;font-size:18px}

/* ═══════════════════════════════════════════════════════
   RESPONSIVE / MOBILE
   ═══════════════════════════════════════════════════════ */

@media(max-width:1024px){
  .g4{grid-template-columns:repeat(2,1fr)}
  .g5{grid-template-columns:repeat(3,1fr)}
}

@media(max-width:768px){
  /* Sidebar: Off-Canvas */
  .sb{position:fixed;left:-260px;top:0;z-index:50;width:260px;height:100vh;transition:left .3s ease;box-shadow:none}
  .sb.open{left:0;box-shadow:4px 0 20px rgba(0,0,0,.3)}
  .sb-overlay{display:none;position:fixed;inset:0;background:rgba(0,0,0,.4);z-index:49}
  .sb-overlay.show{display:block}

  /* Mobile Toggle sichtbar */
  .mobile-toggle{display:flex}

  /* Grids auf 1 Spalte */
  .g2,.g3,.g4,.g5{grid-template-columns:1fr}

  /* Content weniger Padding */
  .ct{padding:14px}
  .tb{padding:10px 14px}
  .tb h1{font-size:14px}

  /* Tabellen horizontal scrollbar */
  .tw{max-height:none;-webkit-overflow-scrolling:touch}
  table{min-width:600px}

  /* Cards kompakter */
  .c{padding:14px;border-radius:10px}

  /* KM Kacheln kleiner */
  .km{padding:10px}
  .km .v{font-size:14px}

  /* Filter-Buttons wrappen besser */
  .ft{gap:4px}
  .fb2{padding:5px 10px;font-size:11px}

  /* Global Search volle Breite */
  .global-search input{width:140px}
  .global-search input:focus{width:200px}

  /* User-Badge kompakter */
  .ub span{display:none}
}

@media(max-width:480px){
  .lc{border-radius:12px}
  .lc-body{padding:20px 24px 28px}
  .lc-top{padding:30px 24px 20px}
  .tb h1{font-size:13px}
  .global-search input{width:100px}
  .global-search input:focus{width:160px}
}
