/* ELT-Projektmanager – Design: Navy/Amber, passend zur Roadmap-Praesentation */
:root{
  --navy:#1B2A4A; --navy2:#2A3F6B; --ice:#D8E4F5; --ice2:#EEF3FA;
  --amber:#F5A800; --grey:#5A6472; --line:#E2E8F2; --white:#fff;
  --green:#1E9E5A; --red:#D64545; --blue:#2F6FB3;
  --ok-bg:#E6F5EC; --warn-bg:#FFF3D6; --off-bg:#F0F2F6;
}
*{box-sizing:border-box}
html,body{margin:0;padding:0}
body{font-family:"Segoe UI",Arial,sans-serif;color:var(--navy);background:#F6F8FB}
#app{display:flex;min-height:100vh}

/* Sidebar */
.sidebar{width:250px;background:var(--navy);color:#fff;display:flex;flex-direction:column;position:fixed;top:0;bottom:0;left:0}
.brand{display:flex;gap:12px;align-items:center;padding:22px 20px 18px}
.brand-mark{width:40px;height:40px;border-radius:9px;background:var(--amber);color:var(--navy);display:flex;align-items:center;justify-content:center;font-size:22px;font-weight:700}
.brand-title{font-weight:700;font-size:15px}
.brand-sub{font-size:11px;color:var(--ice);opacity:.85}
.sidebar nav{display:flex;flex-direction:column;padding:10px 12px;gap:2px}
.sidebar nav a{color:var(--ice);text-decoration:none;padding:11px 14px;border-radius:8px;font-size:14px;font-weight:500}
.sidebar nav a:hover{background:var(--navy2);color:#fff}
.sidebar nav a.active{background:var(--amber);color:var(--navy);font-weight:700}
.sidebar-foot{margin-top:auto;padding:16px 20px;font-size:11px;color:var(--ice);opacity:.7;line-height:1.5}

/* Main */
main{margin-left:250px;flex:1;padding:28px 34px 60px;max-width:1200px}
.loading{color:var(--grey);padding:40px}
h1{font-size:26px;margin:0 0 4px}
.subtitle{color:var(--grey);font-size:14px;margin:0 0 24px}
.page-head{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:22px}

/* Buttons */
button,.btn{font-family:inherit;font-size:14px;border:none;border-radius:8px;padding:10px 16px;cursor:pointer;font-weight:600}
.btn-primary{background:var(--amber);color:var(--navy)}
.btn-primary:hover{background:#e39c00}
.btn-ghost{background:var(--ice2);color:var(--navy)}
.btn-ghost:hover{background:var(--ice)}
.btn-danger{background:#fff;color:var(--red);border:1px solid var(--red)}
.btn-sm{padding:6px 11px;font-size:12.5px}
a.linkbtn{color:var(--blue);text-decoration:none;font-weight:600;font-size:13px}
a.linkbtn:hover{text-decoration:underline}

/* Cards */
.cards{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-bottom:26px}
.stat{background:#fff;border:1px solid var(--line);border-radius:12px;padding:18px}
.stat .v{font-size:34px;font-weight:700;line-height:1}
.stat .l{font-size:12.5px;color:var(--grey);margin-top:6px}
.stat.amber .v{color:var(--amber)}
.stat.navy{background:var(--navy);border-color:var(--navy)}
.stat.navy .v{color:var(--amber)} .stat.navy .l{color:var(--ice)}

.panel{background:#fff;border:1px solid var(--line);border-radius:12px;padding:20px;margin-bottom:20px}
.panel h2{font-size:16px;margin:0 0 14px}
.grid-2{display:grid;grid-template-columns:1fr 1fr;gap:20px}

/* Tabelle Projekte */
table{width:100%;border-collapse:collapse;font-size:13.5px}
th,td{text-align:left;padding:11px 12px;border-bottom:1px solid var(--line);vertical-align:middle}
th{font-size:12px;text-transform:uppercase;letter-spacing:.4px;color:var(--grey)}
tr.clickable{cursor:pointer}
tr.clickable:hover{background:var(--ice2)}
.badge{display:inline-block;padding:3px 9px;border-radius:20px;font-size:11.5px;font-weight:600}
.badge.aktiv{background:var(--ok-bg);color:var(--green)}
.badge.abgeschlossen{background:var(--ice);color:var(--navy2)}
.badge.pausiert{background:var(--warn-bg);color:#9a6b00}
.badge.lph{background:var(--navy);color:#fff}

/* Fortschrittsbalken */
.bar{background:var(--line);border-radius:20px;height:10px;overflow:hidden;min-width:90px}
.bar > span{display:block;height:100%;background:var(--amber);border-radius:20px}
.bar-wrap{display:flex;align-items:center;gap:10px}
.bar-wrap .pct{font-weight:700;font-size:13px;min-width:38px;text-align:right}

/* SVG-Diagramme */
.charts{display:grid;grid-template-columns:1fr 1fr;gap:20px}
.donut-label{font-size:26px;font-weight:700;fill:var(--navy)}
.donut-sub{font-size:11px;fill:var(--grey)}
.legend{display:flex;flex-wrap:wrap;gap:10px 18px;margin-top:8px;font-size:12.5px;color:var(--grey)}
.legend i{display:inline-block;width:11px;height:11px;border-radius:3px;margin-right:6px;vertical-align:middle}

/* Checklisten */
.phase-tabs{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:18px}
.phase-tabs button{background:var(--ice2);color:var(--navy);border-radius:20px;padding:8px 15px;font-size:13px;position:relative}
.phase-tabs button.active{background:var(--navy);color:#fff}
.phase-tabs button .mini{display:block;font-size:10px;font-weight:700;margin-top:2px}
.phase-tabs button.active .mini{color:var(--amber)}
.section-title{font-size:14px;font-weight:700;color:var(--navy2);margin:20px 0 8px;padding-bottom:6px;border-bottom:2px solid var(--ice)}
.check-item{display:flex;gap:12px;padding:11px 8px;border-bottom:1px solid var(--line);align-items:flex-start}
.check-item .key{font-weight:700;font-size:12.5px;color:var(--navy2);min-width:34px;padding-top:4px}
.check-item .body{flex:1}
.check-item .txt{font-size:14px;line-height:1.35}
.check-item .meta{font-size:12px;color:var(--grey);margin-top:3px}
.check-item .meta b{color:var(--navy2);font-weight:600}
.check-item.done{background:#F4FBF6}
.check-item select{font-family:inherit;font-size:13px;padding:6px 8px;border:1px solid var(--line);border-radius:7px;background:#fff;min-width:110px}
.check-item select.s-erledigt{background:var(--ok-bg);color:var(--green);font-weight:600}
.check-item select.s-inarbeit{background:var(--warn-bg)}
.check-item select.s-nz{background:var(--off-bg);color:var(--grey)}

/* Zeile mit Anlagengruppen-Tabs (links) und Filter (rechts) */
.kg-row{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:10px;margin:0 0 12px}
/* Zweite Tab-Reihe: Anlagengruppen (Excel-artig, unter den Phasen) */
.kg-tabs{display:flex;gap:5px;flex-wrap:wrap;margin:0}
.kg-tabs button{background:#fff;border:1px solid var(--line);color:var(--navy);border-radius:6px;padding:7px 13px;font-size:12.5px;font-weight:600;cursor:pointer}
.kg-tabs button .mini{font-size:10px;font-weight:700;color:var(--grey);margin-left:5px;font-variant-numeric:tabular-nums}
.kg-tabs button:hover{background:var(--ice2)}
.kg-tabs button.active{background:var(--navy2);color:#fff;border-color:var(--navy2)}
.kg-tabs button.active .mini{color:var(--amber)}
.kg-tabs button.kg-tab-KG440{border-left:3px solid #C77800}
.kg-tabs button.kg-tab-KG450{border-left:3px solid #2F6FB3}
.kg-tabs button.kg-tab-KG480{border-left:3px solid #1E9E5A}

/* Filterleiste innerhalb einer Phase (rechts in der KG-Zeile) */
.filterbar{display:flex;align-items:center;gap:10px;margin:0}
.filterlabel{font-size:11.5px;color:var(--grey);font-weight:700;text-transform:uppercase;letter-spacing:.5px}
.filterbar select{font-family:inherit;font-size:13px;padding:7px 10px;border:1px solid var(--line);border-radius:6px;background:#fff;color:var(--navy)}

/* Anlagengruppen-Kopf (KG440/450/480 + Allgemein) */
.kg-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:18px 0 4px;padding:9px 12px;background:var(--ice2);border-left:4px solid var(--navy2);border-radius:3px}
.kg-name{font-size:13px;font-weight:700;color:var(--navy);letter-spacing:.2px}
.kg-count{font-size:12px;font-weight:700;color:var(--grey);font-variant-numeric:tabular-nums;white-space:nowrap}
.kg-head.kg-ALLG{border-left-color:#8A94A6}
.kg-head.kg-KG440{border-left-color:#C77800}
.kg-head.kg-KG450{border-left-color:#2F6FB3}
.kg-head.kg-KG480{border-left-color:#1E9E5A}
.check-item .key{font-variant-numeric:tabular-nums}

/* Formular / Modal */
.modal-bg{position:fixed;inset:0;background:rgba(20,30,50,.45);display:flex;align-items:center;justify-content:center;z-index:50}
.modal{background:#fff;border-radius:14px;padding:26px;width:560px;max-width:94vw;max-height:92vh;overflow:auto}
.modal h2{margin:0 0 18px}
.field{margin-bottom:14px}
.field label{display:block;font-size:12.5px;font-weight:600;color:var(--navy2);margin-bottom:5px}
.field input,.field select,.field textarea{width:100%;font-family:inherit;font-size:14px;padding:9px 11px;border:1px solid var(--line);border-radius:8px}
.field textarea{min-height:64px;resize:vertical}
.field-row{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.modal-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:20px}

/* Archiv / Wiki */
.doc-row{display:flex;align-items:center;gap:14px;padding:12px 4px;border-bottom:1px solid var(--line)}
.doc-icon{width:38px;height:38px;border-radius:8px;background:var(--ice2);display:flex;align-items:center;justify-content:center;font-size:16px;font-weight:700;color:var(--navy2)}
.doc-title{font-weight:600;font-size:14px}
.doc-meta{font-size:12px;color:var(--grey)}
.wiki-layout{display:grid;grid-template-columns:220px 1fr;gap:24px}
.wiki-nav a{display:block;padding:9px 12px;border-radius:8px;color:var(--navy);text-decoration:none;font-size:13.5px;font-weight:500}
.wiki-nav a:hover{background:var(--ice2)}
.wiki-nav a.active{background:var(--navy);color:#fff}
.wiki-content{background:#fff;border:1px solid var(--line);border-radius:12px;padding:26px;line-height:1.55;font-size:14.5px}
.wiki-content h1{font-size:22px;margin-top:0}
.wiki-content ul{padding-left:20px}
.wiki-content li{margin-bottom:6px}
.wiki-content code{background:var(--ice2);padding:1px 6px;border-radius:5px;font-size:13px}
.muted{color:var(--grey);font-size:.92em}
.warn{color:#b5540b;font-weight:600}
.empty{color:var(--grey);text-align:center;padding:50px 20px}
.toast{position:fixed;bottom:22px;right:22px;background:var(--navy);color:#fff;padding:12px 18px;border-radius:9px;font-size:13.5px;z-index:80;opacity:0;transform:translateY(10px);transition:.2s}
.toast.show{opacity:1;transform:none}

/* Login-Bildschirm */
#app.login-mode .sidebar{display:none}
#app.login-mode main{margin-left:0;max-width:none}
.login-wrap{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:20px}
.login-card{background:#fff;border:1px solid var(--line);border-radius:14px;padding:32px;width:360px;max-width:92vw;box-shadow:0 12px 44px rgba(20,30,50,.12)}
.login-brand{font-size:18px;font-weight:700;color:var(--navy);display:flex;align-items:center;gap:8px;margin-bottom:18px}
.login-brand .brand-mark{width:34px;height:34px;border-radius:8px;background:var(--amber);color:var(--navy);display:flex;align-items:center;justify-content:center;font-size:18px}
.login-card h2{font-size:20px;margin:0 0 16px}
.login-err{background:#FDECEC;color:var(--red);padding:9px 12px;border-radius:8px;font-size:13px;margin-bottom:14px}

/* Benutzerbox in der Sidebar */
.userbox .uname{font-size:13.5px;font-weight:700;color:#fff}
.userbox .urole{font-size:11.5px;color:var(--amber);margin:2px 0 6px}
.userbox .uacts a{color:var(--ice);font-size:11.5px;text-decoration:none}
.userbox .uacts a:hover{text-decoration:underline;color:#fff}
.check-item select:disabled{opacity:.75;cursor:not-allowed}

/* Instanz-Badge (DEV) */
.inst-badge{display:inline-block;background:var(--red);color:#fff;font-size:10px;font-weight:800;
  letter-spacing:.08em;padding:2px 7px;border-radius:6px;vertical-align:middle;margin-left:2px}
.brand .inst-badge{margin-top:4px}

/* Prüfprotokoll */
.log-filter{margin-bottom:14px;display:flex;gap:10px;align-items:center;flex-wrap:wrap}
.log-filter input,.log-filter select{padding:7px 10px;border:1px solid var(--line);border-radius:8px;font:inherit;background:#fff}
.log-table{font-size:13px}
.log-table td{vertical-align:top}
.log-ts{white-space:nowrap;color:var(--grey);font-variant-numeric:tabular-nums}
.log-detail{color:var(--grey)}
.akt{display:inline-block;padding:2px 9px;border-radius:20px;font-size:12px;font-weight:600;
  background:var(--ice2);color:var(--navy)}
.akt.akt-ok{background:var(--ok-bg);color:var(--green)}
.akt.akt-warn{background:#FDECEC;color:var(--red)}
.akt.akt-muted{background:var(--off-bg);color:var(--grey)}

/* Beta-Hinweis: Plakette auf dem Dashboard */
.beta-notice{display:flex;align-items:center;gap:10px;background:var(--warn-bg);
  border:1px solid #F0D48A;color:#7a5b00;border-radius:10px;padding:10px 14px;
  font-size:13px;margin-bottom:16px;line-height:1.4}
.beta-notice-tag{flex:none;background:var(--amber);color:var(--navy);font-weight:800;
  font-size:11px;letter-spacing:.06em;padding:2px 8px;border-radius:6px}

/* Beta-Hinweis: Bestätigungsdialog (Haftungsausschluss) */
.beta-modal{width:520px;max-width:94vw}
.beta-modal-head{display:flex;align-items:center;gap:12px;margin-bottom:14px}
.beta-modal-mark{flex:none;width:40px;height:40px;border-radius:9px;background:var(--amber);
  color:var(--navy);display:flex;align-items:center;justify-content:center;font-size:22px}
.beta-modal-head h2{margin:0;font-size:19px}
.beta-modal-sub{font-size:12.5px;color:var(--grey);margin-top:2px}
.beta-modal-list{margin:0 0 14px;padding-left:18px}
.beta-modal-list li{font-size:13.5px;line-height:1.5;margin-bottom:9px;color:#3a4557}
.beta-modal-confirm{background:var(--ice2);border-radius:8px;padding:10px 12px;
  font-size:12.5px;color:var(--navy);margin-bottom:16px}

/* Responsiv – schmale Fenster/Laptops */
@media (max-width:1100px){
  .cards{grid-template-columns:repeat(2,1fr)}
  .grid-2,.charts{grid-template-columns:1fr}
}
@media (max-width:820px){
  .sidebar{width:200px}
  main{margin-left:200px;padding:20px}
  .wiki-layout{grid-template-columns:1fr}
  .field-row{grid-template-columns:1fr}
  table{font-size:12.5px}
  th,td{padding:8px 8px}
}
