:root{--red:#E82B19;--black:#000;--bg:#f5f6f8;--line:#e5e7eb;--muted:#6b7280;--green:#109c58}*{box-sizing:border-box}body{margin:0;font:14px/1.45 Inter,ui-sans-serif,system-ui,-apple-system,Segoe UI,Arial;color:#171717;background:var(--bg)}a{color:inherit;text-decoration:none}.sidebar{position:fixed;inset:0 auto 0 0;width:230px;background:#000;color:#fff;padding:18px 14px;display:flex;flex-direction:column;z-index:20}.brand{display:flex;gap:10px;align-items:center;font-size:15px;letter-spacing:.3px;padding:4px 6px 22px}.brand span{font-size:28px}.brand i{font-style:normal;color:var(--red)}nav>a,nav details a,summary{display:block;padding:10px 12px;border-radius:8px;cursor:pointer}nav a:hover,summary:hover{background:#151515}summary{color:var(--red);font-weight:700;margin-top:6px}details a{margin-left:10px;color:#eee}.sidebar-user{margin-top:auto;border-top:1px solid #222;padding:14px 6px}.sidebar-user small{display:block;color:#9ca3af;margin:2px 0 8px}.sidebar-user button{background:none;color:#bbb;border:0;padding:0;cursor:pointer}header{position:fixed;left:230px;right:0;top:0;height:64px;background:#000;color:white;display:flex;align-items:center;gap:18px;padding:0 24px;z-index:15}.hamburger{display:none;background:none;border:0;color:white;font-size:20px;cursor:pointer}.global-search{width:min(360px,45vw);background:#171717;border:1px solid #303030;border-radius:7px;padding:10px 12px;color:#fff}.user-pill{margin-left:auto}main{margin-left:230px;padding:90px 28px 40px}.page-head{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:20px}.page-head h1{margin:0;font-size:28px}.page-head p{margin:5px 0 0;color:var(--muted)}.btn{display:inline-flex;align-items:center;justify-content:center;padding:10px 14px;border:1px solid var(--line);border-radius:7px;background:white;cursor:pointer}.btn.primary{background:var(--red);border-color:var(--red);color:white}.btn:disabled{opacity:.55;cursor:not-allowed}.card,.table-wrap,.filters{background:white;border:1px solid var(--line);border-radius:10px;box-shadow:0 1px 2px rgba(0,0,0,.03)}.card{padding:20px}.kpis{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-bottom:18px}.kpis strong{display:block;font-size:27px;margin-top:8px}.filters{display:flex;gap:10px;padding:12px;margin-bottom:14px}.filters input,.filters select,input,select,textarea{border:1px solid #d7dbe2;border-radius:7px;padding:10px 11px;background:#fff;width:100%}.filters input{max-width:280px}.filters select{max-width:190px}.table-wrap{overflow:auto}table{width:100%;border-collapse:collapse}th,td{padding:13px 14px;border-bottom:1px solid #edf0f3;text-align:left;white-space:nowrap}th{font-size:12px;color:#596170;background:#fbfbfc}.badge{display:inline-block;padding:4px 8px;border-radius:999px;background:#f1f2f4;font-size:12px}.badge.green{background:#e8f7ef;color:var(--green)}.icon-btn{display:inline-grid;place-items:center;width:31px;height:31px;border:1px solid var(--line);border-radius:7px}.form-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}.form-grid label{font-size:12px;font-weight:600}.form-grid input,.form-grid select,.form-grid textarea{margin-top:6px}.full{grid-column:1/-1}.actions{display:flex;justify-content:flex-end;gap:10px}.tabs{display:flex;gap:24px;border-bottom:1px solid var(--line);margin-bottom:16px}.tabs a{padding:10px 2px}.tabs .active{color:var(--red);border-bottom:2px solid var(--red)}.detail-grid{display:grid;grid-template-columns:2fr 1fr;gap:16px}.specs{display:grid;grid-template-columns:180px 1fr;gap:10px 18px}.specs dt{color:var(--muted)}.specs dd{margin:0;font-weight:600}.cost-summary>strong{display:block;color:var(--red);font-size:26px;margin:8px 0 16px}.cost-summary div{display:flex;justify-content:space-between;padding:6px 0}.module-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin-bottom:16px}.module-title{display:flex;justify-content:space-between;align-items:center}.alert{padding:12px 14px;border-radius:8px;background:#eef6ff;margin-bottom:14px}.alert.error{background:#fff0ee;color:#a82014}.timeline{display:grid;gap:10px}.version>div{display:flex;justify-content:space-between}.version strong{color:var(--red)}.hint{color:var(--muted)}code{background:#f1f3f5;padding:2px 5px;border-radius:4px}.bare{background:#0b0b0b}.login-shell{min-height:100vh;display:grid;place-items:center;padding:24px}.login-card{width:min(420px,100%);background:white;border-radius:14px;padding:32px}.brand.big{color:#000;font-size:22px}.form-stack{display:grid;gap:14px}.form-stack label{font-weight:600}.form-stack input{margin-top:6px}
@media(max-width:900px){.hamburger{display:block}.sidebar{transform:translateX(-100%);transition:.2s}.nav-open .sidebar{transform:translateX(0)}header{left:0}main{margin-left:0;padding:86px 16px 30px}.kpis{grid-template-columns:repeat(2,1fr)}.form-grid{grid-template-columns:1fr 1fr}.detail-grid{grid-template-columns:1fr}.module-grid{grid-template-columns:1fr}.filters{overflow:auto}.user-pill{display:none}}
@media(max-width:560px){.kpis{grid-template-columns:1fr}.form-grid{grid-template-columns:1fr}.page-head{align-items:flex-start;flex-direction:column}.page-head .btn{width:100%}.specs{grid-template-columns:1fr}.tabs{overflow:auto}.global-search{display:none}}
.actions-cell,.detail-actions{display:flex;gap:8px;align-items:center}.actions-cell form,.detail-actions form,td form{margin:0}.icon-btn{background:#fff;cursor:pointer}.btn.danger{color:#b42318;border-color:#f0b5b0}.check-grid{display:flex;flex-wrap:wrap;gap:18px;margin-top:10px}.check-grid label{display:flex;gap:8px;align-items:center}.check-grid input{width:auto;margin:0}
.install-shell{min-height:100vh;display:grid;place-items:center;padding:28px}.install-card{width:min(560px,100%);background:#fff;border-radius:14px;padding:30px}.install-card.wide{width:min(980px,100%)}.install-card h1{margin:8px 0}.install-card h2{margin:16px 0 0;font-size:17px;border-bottom:1px solid var(--line);padding-bottom:8px}.install-form{margin-top:18px}.requirements{display:flex;gap:8px;flex-wrap:wrap;margin:18px 0}.req{padding:6px 9px;border-radius:999px;background:#f2f3f5;font-size:12px}.req.ok{color:#087443;background:#e9f8f0}.req.bad{color:#a82014;background:#fff0ee}.check{display:flex;gap:9px;align-items:center;font-weight:500!important}.check input{width:auto;margin:0}.alert.success{background:#e9f8f0;color:#087443}.install-form small{display:block;color:var(--muted);margin-top:4px}.brand.big i{color:var(--red)}
@media(max-width:720px){.install-card,.install-card.wide{padding:20px}.install-form .form-grid{grid-template-columns:1fr}}

.head-actions,.actions-cell,.detail-actions,.tab-head{display:flex;align-items:center;gap:8px}.tab-head{justify-content:space-between;margin-bottom:14px}.danger{color:#b42318;border-color:#f2b8b5}.empty-state{padding:22px;color:var(--muted);text-align:center}.text-link{color:var(--red);font-weight:600}.success{background:#ecfdf3;color:#067647}
th.sortable{cursor:pointer;user-select:none}th.sortable:after{content:' ↕';opacity:.35}th.sort-asc:after{content:' ↑';opacity:1;color:var(--red)}th.sort-desc:after{content:' ↓';opacity:1;color:var(--red)}.nav-home-icon{color:var(--red);font-size:16px;margin-right:6px}.audit-meta{max-width:460px;white-space:normal}.filters select{min-width:160px}
nav a.active{background:#181818;color:#fff}nav details a.active{box-shadow:inset 3px 0 0 var(--red);color:#fff}.nav-home-icon{width:17px;height:17px;fill:var(--red);vertical-align:-3px;margin-right:7px}.sidebar-user .profile-link{display:block;color:#ddd;margin:7px 0;font-size:12px}.sidebar-user .profile-link:hover{color:var(--red)}


.group-checkbox-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-top:12px}.group-choice,.permission-choice{display:flex;align-items:flex-start;gap:10px;border:1px solid var(--line);border-radius:8px;padding:11px;background:#fff}.group-choice input,.permission-choice input{width:auto;margin:3px 0 0}.group-choice small,.permission-choice small,.cell-sub{display:block;color:var(--muted);font-size:12px;margin-top:3px}.permission-checkboxes{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.permission-section-head{display:flex;justify-content:space-between;align-items:center;gap:12px}.permission-group{margin-top:20px}.permission-group h3{margin-bottom:6px}.btn.small{padding:6px 9px;font-size:12px}.page-head.compact{margin-top:24px;margin-bottom:12px}.muted{color:var(--muted)}
@media(max-width:800px){.group-checkbox-grid,.permission-checkboxes{grid-template-columns:1fr}}

/* ABP Core 1.3.2: lange Navigationen bleiben innerhalb der Sidebar bedienbar. */
.sidebar>nav{flex:1 1 auto;min-height:0;overflow-y:auto;overflow-x:hidden;overscroll-behavior:contain;padding-right:3px;scrollbar-width:thin;scrollbar-color:#3a3a3a transparent}
.sidebar>nav::-webkit-scrollbar{width:7px}.sidebar>nav::-webkit-scrollbar-track{background:transparent}.sidebar>nav::-webkit-scrollbar-thumb{background:#333;border-radius:999px}.sidebar>nav::-webkit-scrollbar-thumb:hover{background:#4a4a4a}
.sidebar-user{flex:0 0 auto;margin-top:10px}

/* Zentrale Tab-Komponente fuer Core und Module. */
.tabs,.abp-tabs{display:flex;align-items:flex-end;gap:24px;border-bottom:1px solid var(--line);margin-bottom:16px;overflow-x:auto;overflow-y:hidden;scrollbar-width:thin}
.tabs a,.abp-tabs a,.abp-tabs button{position:relative;display:inline-flex;align-items:center;min-height:42px;padding:10px 2px;border:0;border-radius:0;background:transparent!important;color:#171717;font:inherit;white-space:nowrap;cursor:pointer}
.tabs a:hover,.abp-tabs a:hover,.abp-tabs button:hover{color:var(--red);background:transparent!important}
.tabs a.active,.tabs a[aria-current="page"],.abp-tabs a.active,.abp-tabs a[aria-current="page"],.abp-tabs button.active,.abp-tabs button[aria-current="page"]{color:var(--red)!important;background:transparent!important;border:0!important;box-shadow:none!important}
.tabs a.active:after,.tabs a[aria-current="page"]:after,.abp-tabs a.active:after,.abp-tabs a[aria-current="page"]:after,.abp-tabs button.active:after,.abp-tabs button[aria-current="page"]:after{content:"";position:absolute;left:0;right:0;bottom:-1px;height:2px;background:var(--red);border-radius:2px 2px 0 0}

@media(max-width:900px){header{padding:0 12px 0 16px}.hamburger{display:inline-grid;place-items:center;order:99;margin-left:auto;width:44px;height:44px;min-width:44px;padding:0;border-radius:8px;font-size:24px;line-height:1}.hamburger:hover,.hamburger:focus-visible{background:#171717;outline:2px solid transparent}.global-search{order:1}.user-pill{order:2;margin-left:auto}.sidebar{padding-bottom:max(14px,env(safe-area-inset-bottom))}}
@media(max-width:560px){.tabs,.abp-tabs{gap:20px}}
