@import url('https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&display=swap');
:root{--bg:#0b0d12;--sidebar:#0f1219;--surface:#141821;--surface2:#1a1f2b;--line:#252b38;--text:#f4f6fa;--muted:#929bad;--accent:#ff8b3d;--accent2:#ffb16f;--good:#51d6a3;--danger:#ff6b6b;--radius:20px}*{box-sizing:border-box}html{background:var(--bg)}body{margin:0;font:14px/1.55 Inter,system-ui,sans-serif;color:var(--text);background:radial-gradient(circle at 70% -10%,#1d2432 0,transparent 34%),var(--bg)}a{color:inherit;text-decoration:none}button,input,select{font:inherit}.app-shell{display:grid;grid-template-columns:250px 1fr;min-height:100vh}.sidebar{position:sticky;top:0;height:100vh;display:flex;flex-direction:column;padding:24px 18px;border-right:1px solid var(--line);background:rgba(15,18,25,.94);backdrop-filter:blur(18px)}.brand{display:flex;align-items:center;gap:12px;padding:0 8px 26px}.brand-mark{display:grid;place-items:center;width:42px;height:42px;border-radius:13px;background:linear-gradient(145deg,var(--accent),var(--accent2));color:#17120e;font-weight:800;box-shadow:0 12px 28px rgba(255,139,61,.22)}.brand strong,.brand small{display:block}.brand strong{font-size:15px}.brand small{color:var(--muted);font-size:11px;letter-spacing:.08em;text-transform:uppercase}.sidebar nav{display:flex;flex-direction:column;gap:5px}.nav-link{display:flex;align-items:center;gap:12px;padding:11px 13px;border-radius:12px;color:#b8c0cf;transition:.15s}.nav-link:hover{color:#fff;background:var(--surface2)}.nav-label{margin:22px 13px 7px;color:#626c7d;font-size:10px;font-weight:700;letter-spacing:.13em;text-transform:uppercase}.sidebar-user{display:grid;grid-template-columns:auto 1fr auto;gap:10px;align-items:center;margin-top:auto;padding:14px 8px 0;border-top:1px solid var(--line)}.sidebar-user strong,.sidebar-user small{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sidebar-user small{color:var(--muted);font-size:11px}.sidebar-user button{border:0;background:none;color:var(--muted);cursor:pointer}.avatar{display:grid;place-items:center;width:36px;height:36px;border-radius:11px;background:#252c39;font-weight:700}.main{min-width:0}.topbar{display:flex;justify-content:space-between;padding:17px 34px;border-bottom:1px solid var(--line);color:var(--muted);font-size:12px}.status-dot{display:inline-block;width:7px;height:7px;margin-right:8px;border-radius:50%;background:var(--good);box-shadow:0 0 12px var(--good)}.content-wrap{max-width:1450px;margin:auto;padding:46px 42px 70px}.page-head{display:flex;align-items:flex-end;justify-content:space-between;gap:30px;margin-bottom:32px}.kicker{display:block;margin-bottom:8px;color:var(--accent);font-size:11px;font-weight:700;letter-spacing:.13em;text-transform:uppercase}h1,h2,p{margin-top:0}h1{margin-bottom:8px;font-size:clamp(30px,4vw,48px);line-height:1.05;letter-spacing:-.045em}h2{letter-spacing:-.025em}.page-head p,.panel p,.module-card p{color:var(--muted)}.date-card{min-width:150px;padding:15px 18px;border:1px solid var(--line);border-radius:15px;background:rgba(20,24,33,.72)}.date-card small,.date-card strong{display:block}.date-card small{color:var(--muted)}.module-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin-bottom:24px}.module-card{position:relative;display:flex;min-height:220px;padding:24px;flex-direction:column;justify-content:space-between;border:1px solid var(--line);border-radius:var(--radius);background:linear-gradient(145deg,rgba(25,30,41,.98),rgba(16,19,27,.95));overflow:hidden;transition:.18s}.module-card:hover{transform:translateY(-3px);border-color:#3a4355;box-shadow:0 22px 50px rgba(0,0,0,.26)}.module-icon{display:grid;place-items:center;width:48px;height:48px;border-radius:15px;background:#222937;font-size:20px}.module-status{color:var(--good);font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.12em}.module-card h2{margin:7px 0 5px}.module-card p{margin:0}.module-arrow{position:absolute;right:22px;top:22px;color:#697386}.dashboard-row{display:grid;grid-template-columns:1.4fr 1fr;gap:16px}.panel{padding:25px;border:1px solid var(--line);border-radius:var(--radius);background:rgba(20,24,33,.86)}.panel-head{display:flex;justify-content:space-between;align-items:center}.metric-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.metric-grid div{padding:18px;border-radius:14px;background:var(--surface2)}.metric-grid strong,.metric-grid span{display:block}.metric-grid strong{font-size:28px}.metric-grid span{color:var(--muted);font-size:12px}.panel-note{margin:15px 0 0!important;font-size:12px}.check-list{list-style:none;padding:0;margin:18px 0 0}.check-list li{padding:9px 0;border-bottom:1px solid var(--line)}.check-list li:before{content:'✓';margin-right:10px;color:var(--good)}.guest-shell{min-height:100vh}.login-layout{display:grid;grid-template-columns:1.1fr .9fr;min-height:100vh}.login-intro{display:flex;padding:55px 7vw;flex-direction:column;justify-content:space-between;background:radial-gradient(circle at 20% 20%,rgba(255,139,61,.14),transparent 28%),linear-gradient(145deg,#111620,#090b10)}.brand-login{padding-left:0}.login-intro h1{max-width:760px;font-size:clamp(42px,6vw,80px)}.login-intro p{max-width:620px;color:var(--muted);font-size:17px}.login-intro>small{color:#596273}.login-panel{display:grid;place-items:center;padding:30px;background:#0d1016}.login-card{width:min(420px,100%);padding:34px;border:1px solid var(--line);border-radius:24px;background:rgba(20,24,33,.92);box-shadow:0 30px 70px rgba(0,0,0,.3)}.login-card h2{font-size:30px;margin-bottom:8px}.login-card>p{color:var(--muted);margin-bottom:28px}label{display:block;margin:15px 0 0;color:#cbd1dc;font-weight:600}input,select{width:100%;margin-top:7px;padding:12px 13px;border:1px solid #303747;border-radius:11px;outline:none;color:var(--text);background:#10141c}input:focus,select:focus{border-color:var(--accent);box-shadow:0 0 0 3px rgba(255,139,61,.12)}label small{display:block;margin-top:5px;color:var(--muted);font-weight:400}.button{display:inline-flex;align-items:center;justify-content:center;padding:11px 15px;border:1px solid transparent;border-radius:11px;font-weight:700;cursor:pointer}.button-primary{color:#1a120c;background:linear-gradient(135deg,var(--accent),var(--accent2))}.button-wide{width:100%;margin-top:24px}.button-ghost{border-color:var(--line);color:#c6cbd5;background:transparent}.button:disabled{opacity:.35;cursor:not-allowed}.alert{margin-bottom:20px;padding:13px 15px;border:1px solid #4b4533;border-radius:12px;background:#28251b}.alert-error{border-color:#573030;background:#2a181b;color:#ffc1c1}.form-stack{margin-top:20px}.users-layout{grid-template-columns:380px 1fr}.user-list{display:flex;flex-direction:column}.user-row{display:grid;grid-template-columns:auto minmax(150px,1fr) auto auto auto;gap:14px;align-items:center;padding:14px 0;border-bottom:1px solid var(--line)}.user-data strong,.user-data span{display:block}.user-data span{color:var(--muted);font-size:12px}.role-pill,.state{padding:5px 9px;border-radius:999px;background:#252b38;font-size:11px}.state.active{color:var(--good)}.state.inactive{color:var(--danger)}.empty-state,.error-page{padding:50px;border:1px dashed var(--line);border-radius:var(--radius);text-align:center}.error-page{margin:10vh auto;max-width:700px}
@media(max-width:1050px){.module-grid{grid-template-columns:repeat(2,1fr)}.users-layout{grid-template-columns:1fr}.user-row{grid-template-columns:auto 1fr auto}.user-row .role-pill,.user-row .state{display:none}}@media(max-width:760px){.app-shell{grid-template-columns:1fr}.sidebar{position:static;height:auto;padding:14px}.sidebar nav{display:grid;grid-template-columns:repeat(3,1fr)}.nav-label,.sidebar-user{display:none}.brand{padding-bottom:12px}.topbar{padding:12px 18px}.content-wrap{padding:30px 18px}.module-grid,.dashboard-row{grid-template-columns:1fr}.page-head{align-items:flex-start;flex-direction:column}.login-layout{grid-template-columns:1fr}.login-intro{display:none}.login-panel{min-height:100vh}.user-row{grid-template-columns:auto 1fr}.user-row form{grid-column:2}.module-card{min-height:190px}}

.user-access-card{position:relative;padding:18px 0;border-bottom:1px solid var(--line)}.user-access-head{display:grid;grid-template-columns:auto 1fr auto;gap:12px;align-items:center}.access-form{display:grid;grid-template-columns:180px 1fr auto;gap:14px;align-items:end;margin:16px 0 8px;padding:14px;border-radius:14px;background:var(--surface2)}.access-form label{margin:0}.access-form fieldset{display:flex;flex-wrap:wrap;gap:9px;margin:0;padding:0;border:0}.access-form legend{margin-bottom:7px;color:var(--muted);font-size:11px}.module-check{display:inline-flex!important;align-items:center;gap:8px;margin:0!important;padding:8px 11px;border:1px solid var(--line);border-radius:10px;background:#171c26}.module-check input{width:auto;margin:0}.toggle-form{position:absolute;right:0;top:64px}.login-metrics{margin-bottom:16px}.stats-list>div{display:flex;justify-content:space-between;gap:24px;padding:13px 0;border-bottom:1px solid var(--line)}.stats-list strong,.stats-list small{display:block}.stats-list small{color:var(--muted)}.table-scroll{overflow:auto}.table{width:100%;border-collapse:collapse}.table th,.table td{padding:12px 10px;border-bottom:1px solid var(--line);text-align:left;white-space:nowrap}.table th{color:var(--muted);font-size:11px;text-transform:uppercase;letter-spacing:.08em}.button-primary{background:linear-gradient(135deg,var(--accent),var(--accent2))}
@media(max-width:900px){.access-form{grid-template-columns:1fr}.toggle-form{position:static}.user-access-card{padding-bottom:24px}}

/* MZ Digital 0.1.1 */
.brand img{width:42px;height:42px;object-fit:contain;border-radius:12px;box-shadow:0 8px 25px rgba(255,139,61,.18)}
.brand-login img{width:56px;height:56px}.login-logo{display:flex;justify-content:center;margin-bottom:18px}.login-logo img{width:84px;height:84px;object-fit:contain}.security-note{display:flex;align-items:center;justify-content:center;gap:8px;margin-top:18px;color:var(--muted);font-size:11px}.icon{display:block}.nav-link .icon{flex:0 0 auto}.module-card-top{display:flex;align-items:flex-start;justify-content:space-between}.module-icon{width:62px;height:62px;border-radius:18px;color:var(--accent);background:linear-gradient(145deg,rgba(255,139,61,.16),rgba(255,139,61,.05));border:1px solid rgba(255,139,61,.22)}.module-status{padding:6px 9px;border-radius:999px;background:rgba(72,209,133,.1)}.module-card:before{content:'';position:absolute;inset:auto -40px -70px auto;width:180px;height:180px;border-radius:50%;background:radial-gradient(circle,rgba(255,139,61,.1),transparent 68%)}.security-panel{background:linear-gradient(145deg,rgba(20,24,33,.94),rgba(11,18,18,.94))}.security-badge{display:inline-flex;align-items:center;gap:7px;padding:7px 10px;border:1px solid rgba(72,209,133,.25);border-radius:999px;color:var(--good);font-size:11px;font-weight:700}.sidebar-user button{display:grid;place-items:center;width:34px;height:34px;border-radius:10px}.sidebar-user button:hover{color:#fff;background:var(--surface2)}

/* MZ Digital 0.2.2 – Benutzerdetails und Modulakzente */
.module-card{border-top:2px solid color-mix(in srgb,var(--module-accent,#ff8b3d) 78%,transparent)}
.module-card:hover{border-color:color-mix(in srgb,var(--module-accent,#ff8b3d) 62%,#3a4355);box-shadow:0 22px 55px color-mix(in srgb,var(--module-accent,#ff8b3d) 13%,transparent)}
.module-card:before{background:radial-gradient(circle,color-mix(in srgb,var(--module-accent,#ff8b3d) 18%,transparent),transparent 68%)}
.module-icon{color:var(--module-accent,#ff8b3d);background:linear-gradient(145deg,color-mix(in srgb,var(--module-accent,#ff8b3d) 17%,transparent),color-mix(in srgb,var(--module-accent,#ff8b3d) 5%,transparent));border-color:color-mix(in srgb,var(--module-accent,#ff8b3d) 28%,transparent)}
.module-nav-link .icon{color:var(--module-accent,#ff8b3d)}
.users-overview-layout{align-items:start}.compact-user-list{display:flex;flex-direction:column;margin-top:12px}.compact-user-row{display:grid;grid-template-columns:auto minmax(160px,1fr) auto auto auto;gap:14px;align-items:center;padding:14px 8px;border-bottom:1px solid var(--line);border-radius:12px;transition:.15s}.compact-user-row:hover{background:var(--surface2)}.compact-user-data strong,.compact-user-data small{display:block}.compact-user-data small{color:var(--muted)}.user-row-arrow{color:var(--muted)}
.user-detail-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.35fr);gap:16px}.user-detail-grid .danger-panel{grid-column:1/-1}.account-meta{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:20px}.account-meta span{padding:13px;border-radius:12px;background:var(--surface2);color:var(--muted);font-size:11px}.account-meta strong{display:block;margin-top:3px;color:var(--text);font-size:13px}.workspace-access-list{display:flex;flex-direction:column;gap:12px}.workspace-access-card{padding:14px;border:1px solid var(--line);border-left:3px solid var(--module-accent,#ff8b3d);border-radius:14px;background:var(--surface2)}.workspace-toggle{display:grid!important;grid-template-columns:auto auto 1fr;gap:11px;align-items:center;margin:0!important}.workspace-toggle input,.permission-list input{width:auto;margin:0}.workspace-toggle strong,.workspace-toggle small,.permission-list strong,.permission-list small{display:block}.workspace-toggle small,.permission-list small{color:var(--muted);font-weight:400}.workspace-access-icon{display:grid;place-items:center;width:38px;height:38px;border-radius:11px;color:var(--module-accent,#ff8b3d);background:color-mix(in srgb,var(--module-accent,#ff8b3d) 12%,transparent)}.permission-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin:13px 0 0 58px}.permission-list label{display:grid;grid-template-columns:auto 1fr;gap:8px;align-items:start;margin:0;padding:9px;border:1px solid var(--line);border-radius:10px;background:#141923}.button-danger{color:#fff;border-color:#73373b;background:#5b2429}.danger-panel{border-color:#4c292d;background:linear-gradient(145deg,rgba(48,24,28,.72),rgba(20,24,33,.9))}.danger-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:16px}
@media(max-width:1050px){.user-detail-grid{grid-template-columns:1fr}.user-detail-grid .danger-panel{grid-column:auto}.compact-user-row{grid-template-columns:auto 1fr auto}.compact-user-row .role-pill,.compact-user-row .state{display:none}}
@media(max-width:700px){.permission-list{grid-template-columns:1fr;margin-left:0}.account-meta{grid-template-columns:1fr}.compact-user-row{padding-inline:0}}

/* v0.2.3 – kompakter Schutzstatus und benutzerorientiertes Dashboard */
.topbar-status{display:flex;align-items:center;gap:14px}.topbar-status>span{display:inline-flex;align-items:center}.topbar-security{gap:6px;padding:4px 8px;border:1px solid rgba(81,214,163,.22);border-radius:999px;color:var(--good);font-size:10px;font-weight:700;letter-spacing:.02em;background:rgba(81,214,163,.06)}.topbar-security .icon{width:14px;height:14px}.admin-dashboard-overview{margin-top:24px}@media(max-width:760px){.topbar-status{gap:8px}.topbar-security{padding:3px 6px;font-size:9px}.topbar-security .icon{display:none}}


/* MZ Digital 0.3.0 – Mein Konto, 2FA und Systemverwaltung */
.account-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.account-grid .two-factor-panel{grid-column:1/-1}.two-factor-setup-grid{display:grid;grid-template-columns:minmax(300px,.8fr) minmax(0,1.2fr);gap:18px}.qr-panel{text-align:center}.qr-box{display:grid;place-items:center;min-height:260px;padding:18px;margin:18px 0;border-radius:18px;background:#fff}.qr-box img{width:min(240px,100%);height:auto}.secret-code{display:block;padding:14px;border:1px dashed var(--line);border-radius:12px;color:var(--accent);font-size:17px;letter-spacing:.14em;overflow-wrap:anywhere}.recovery-panel{max-width:760px}.recovery-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:10px;margin:22px 0}.recovery-grid code{padding:13px;border:1px solid var(--line);border-radius:11px;background:var(--surface2);font-size:17px;text-align:center;letter-spacing:.12em}.inline-form{display:inline-block;margin-left:10px}.system-link-grid{margin-bottom:20px}.beszel-note{border-left:3px solid #51d6a3}
@media(max-width:900px){.account-grid,.two-factor-setup-grid{grid-template-columns:1fr}.account-grid .two-factor-panel{grid-column:auto}}@media(max-width:600px){.recovery-grid{grid-template-columns:1fr}}
@media print{.sidebar,.topbar,.page-head,.button,.alert{display:none!important}.app-shell{display:block}.content-wrap{padding:0}.recovery-grid{grid-template-columns:repeat(2,1fr)}}

.two-factor-admin-state{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:16px;padding-top:16px;border-top:1px solid var(--line)}.two-factor-admin-state form{margin:0}


/* MZ Digital 0.3.1 – modulabhängiges Akzentsystem */
:root{--area-accent:#ff8b3d;--area-accent-rgb:255,139,61;--admin-accent:#4f8cff;--admin-accent-rgb:79,140,255}
body{background:radial-gradient(circle at 72% -12%,rgba(var(--area-accent-rgb),.10) 0,transparent 34%),var(--bg);transition:background .25s ease}
.area-accent-line{height:1px;background:linear-gradient(90deg,rgba(var(--area-accent-rgb),.9),rgba(var(--area-accent-rgb),.16) 42%,transparent 78%);opacity:.72}
.topbar-left{display:flex;align-items:center;gap:24px;min-width:0}.breadcrumb{display:flex;align-items:center;gap:9px;color:var(--muted);font-size:12px;white-space:nowrap}.breadcrumb a,.breadcrumb strong{display:flex;align-items:center;gap:6px}.breadcrumb a:hover{color:#fff}.breadcrumb strong{color:var(--area-accent)}
.nav-link.active{color:#fff;background:rgba(var(--area-accent-rgb),.12);box-shadow:inset 3px 0 0 var(--area-accent)}
.module-nav-link.active{color:var(--module-accent);background:color-mix(in srgb,var(--module-accent) 13%,transparent);box-shadow:inset 3px 0 0 var(--module-accent)}
.admin-nav-label{color:#779fe8}.admin-nav-link:hover,.admin-nav-link.active{color:#bcd2ff;background:rgba(var(--admin-accent-rgb),.12);box-shadow:inset 3px 0 0 var(--admin-accent)}
.account-nav-link.active{color:#c4dcff;background:rgba(110,168,255,.12);box-shadow:inset 3px 0 0 #6ea8ff}
body.area-administration .kicker,body.area-administration .eyebrow{color:var(--admin-accent)}
body.area-administration .button-primary,body.area-administration button.button-primary{background:linear-gradient(135deg,#4f8cff,#78a9ff);color:#07101f;box-shadow:0 10px 28px rgba(79,140,255,.20)}
body.area-administration .panel{border-color:rgba(79,140,255,.18)}
body.area-administration .panel:hover{border-color:rgba(79,140,255,.32)}
body.area-account .kicker,body.area-account .eyebrow{color:#6ea8ff}
.module-card{isolation:isolate}.module-card:before{content:"";position:absolute;inset:auto -18% -46% 34%;height:70%;background:radial-gradient(circle,rgba(var(--module-accent-rgb,255,139,61),.20),transparent 67%);pointer-events:none;z-index:-1}
.system-link-grid .module-card{border-color:color-mix(in srgb,var(--module-accent) 30%,var(--line))}
@media(max-width:900px){.topbar-left{gap:10px}.breadcrumb{display:none}}


/* MZ Digital 0.3.2 – Live Monitoring */
.status-dot.warning{background:#f6c85f;box-shadow:0 0 12px rgba(246,200,95,.75)}.status-dot.critical{background:var(--danger);box-shadow:0 0 12px rgba(255,107,107,.75)}.status-dot.unknown{background:#7f8797;box-shadow:none}
.system-summary{display:flex;align-items:center;justify-content:space-between;gap:22px;margin-bottom:22px;padding:18px 22px;border:1px solid rgba(81,214,163,.25);border-radius:18px;background:linear-gradient(145deg,rgba(81,214,163,.08),rgba(20,24,33,.88))}.system-summary>div:first-child{display:flex;align-items:center;gap:13px}.system-summary strong{display:block;font-size:16px}.system-summary small{display:block;color:var(--muted);margin-top:2px}.status-orb{display:block;width:12px;height:12px;border-radius:50%;background:var(--good);box-shadow:0 0 18px rgba(81,214,163,.85)}.warning .status-orb,.system-summary.warning .status-orb{background:#f6c85f;box-shadow:0 0 18px rgba(246,200,95,.7)}.critical .status-orb,.system-summary.critical .status-orb{background:var(--danger);box-shadow:0 0 18px rgba(255,107,107,.7)}.unknown .status-orb,.system-summary.unknown .status-orb{background:#7f8797;box-shadow:none}.system-summary.warning{border-color:rgba(246,200,95,.28);background:linear-gradient(145deg,rgba(246,200,95,.08),rgba(20,24,33,.88))}.system-summary.critical{border-color:rgba(255,107,107,.28);background:linear-gradient(145deg,rgba(255,107,107,.08),rgba(20,24,33,.88))}.system-summary-counts{display:flex;gap:22px}.system-summary-counts span{color:var(--muted);font-size:12px}.system-summary-counts strong{display:inline;color:var(--text);font-size:17px;margin-right:3px}.live-state{display:inline-flex;align-items:center;gap:6px;padding:5px 9px;border:1px solid var(--line);border-radius:999px;color:var(--muted);font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.06em}.live-state i{width:7px;height:7px;border-radius:50%;background:#7f8797}.live-state.online{color:var(--good);border-color:rgba(81,214,163,.25);background:rgba(81,214,163,.06)}.live-state.online i{background:var(--good);box-shadow:0 0 8px rgba(81,214,163,.65)}.live-state.warning{color:#f6c85f;border-color:rgba(246,200,95,.25)}.live-state.warning i{background:#f6c85f}.live-state.offline{color:var(--danger);border-color:rgba(255,107,107,.25)}.live-state.offline i{background:var(--danger)}.service-metrics{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin:18px 0}.service-metrics span{padding:10px;border:1px solid var(--line);border-radius:11px;background:rgba(9,12,18,.35)}.service-metrics strong,.service-metrics small{display:block}.service-metrics strong{font-size:16px}.service-metrics small{color:var(--muted);font-size:10px;margin-top:2px}.monitoring-panel{border-left:3px solid #51d6a3}.resource-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;margin-top:20px}.resource-meter>div:first-child{display:flex;justify-content:space-between;gap:10px;margin-bottom:8px}.resource-meter span{color:var(--muted)}.meter{height:8px;border-radius:999px;background:#202633;overflow:hidden}.meter i{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,#4f8cff,#51d6a3)}.live-overview-panel{display:block;transition:.2s ease}.live-overview-panel:hover{transform:translateY(-2px);border-color:rgba(79,140,255,.35)}.panel-link{display:flex;align-items:center;gap:7px;margin-top:18px;color:var(--area-accent);font-size:12px;font-weight:700}
@media(max-width:850px){.system-summary{align-items:flex-start;flex-direction:column}.system-summary-counts{width:100%;justify-content:space-between}.resource-grid{grid-template-columns:1fr}.service-metrics{grid-template-columns:repeat(2,1fr)}}


/* MZ Digital 0.3.3 – Mobile Layout und Passkeys */
html,body{max-width:100%;overflow-x:hidden}.app-shell,.main,.content-wrap,.panel,.module-card,.dashboard-row>*{min-width:0}.mobile-menu-button,.mobile-logout-form,.sidebar-close,.sidebar-backdrop{display:none}.topbar-actions{display:flex;align-items:center;gap:10px}.mobile-logout{display:grid;place-items:center;width:40px;height:40px;border:1px solid var(--line);border-radius:12px;color:var(--muted);background:var(--surface);cursor:pointer}.mobile-logout:hover{color:#fff;border-color:var(--area-accent)}
.passkey-panel{grid-column:1/-1}.passkey-create{display:grid;grid-template-columns:minmax(220px,1fr) auto;gap:12px;align-items:end;margin:20px 0}.passkey-create label{margin:0}.passkey-message{min-height:22px;margin:8px 0;color:var(--muted);font-size:12px}.passkey-list{display:grid;gap:10px;margin-top:16px}.passkey-item{display:grid;grid-template-columns:auto 1fr auto;gap:12px;align-items:center;padding:14px;border:1px solid var(--line);border-radius:14px;background:var(--surface2)}.passkey-item strong,.passkey-item small{display:block}.passkey-item small{color:var(--muted);margin-top:3px}.passkey-icon{display:grid;place-items:center;width:42px;height:42px;border-radius:13px;color:#7fb0ff;background:rgba(79,140,255,.12)}.button-passkey{display:flex;align-items:center;justify-content:center;gap:9px;color:#07101f;background:linear-gradient(135deg,#7fb0ff,#51d6a3);border:0}.button-passkey:hover{filter:brightness(1.06)}.login-divider{display:flex;align-items:center;gap:12px;margin:18px 0;color:var(--muted);font-size:11px}.login-divider:before,.login-divider:after{content:"";height:1px;flex:1;background:var(--line)}
.table-scroll{max-width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.table{min-width:680px}.module-grid,.dashboard-row,.service-grid,.system-link-grid,.account-grid{max-width:100%}code,.secret-code,.login-ip,.table-subline{overflow-wrap:anywhere;word-break:break-word}
@media(max-width:900px){
  .app-shell{display:block}.sidebar{position:fixed;z-index:1002;top:0;bottom:0;left:0;width:min(84vw,310px);height:100dvh;transform:translateX(-105%);transition:transform .22s ease;box-shadow:20px 0 60px rgba(0,0,0,.45)}body.sidebar-open .sidebar{transform:translateX(0)}body.sidebar-open{overflow:hidden}.sidebar-backdrop{display:block;position:fixed;z-index:1001;inset:0;background:rgba(4,6,10,.68);opacity:0;visibility:hidden;transition:.22s}body.sidebar-open .sidebar-backdrop{opacity:1;visibility:visible}.sidebar-close{display:grid;place-items:center;position:absolute;right:12px;top:12px;width:38px;height:38px;border:1px solid var(--line);border-radius:11px;color:var(--muted);background:var(--surface);cursor:pointer}.brand{padding-right:45px}.mobile-menu-button{display:grid;place-items:center;flex:0 0 auto;width:40px;height:40px;border:1px solid var(--line);border-radius:12px;color:var(--text);background:var(--surface);cursor:pointer}.mobile-logout-form{display:block;margin:0}.topbar{position:sticky;z-index:900;top:0;align-items:center;gap:10px;padding:10px 14px;background:rgba(11,13,18,.92);backdrop-filter:blur(16px)}.topbar-left{flex:1;min-width:0}.topbar-status{max-width:100%;overflow:hidden}.topbar-status>span:first-child{max-width:100%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.topbar-security{display:none}.topbar-time{display:none}.content-wrap{width:100%;padding:28px 16px 60px}.page-head{align-items:flex-start;flex-direction:column;gap:12px;margin-bottom:22px}.date-card{width:100%;min-width:0}.module-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.dashboard-row{grid-template-columns:1fr}.sidebar-user{padding-bottom:max(12px,env(safe-area-inset-bottom))}
}
@media(max-width:620px){
  h1{font-size:clamp(28px,10vw,38px)}.module-grid{grid-template-columns:1fr}.module-card{min-height:190px}.metric-grid,.service-metrics,.resource-grid,.system-summary-counts{grid-template-columns:1fr;display:grid}.system-summary-counts{gap:8px}.account-grid{grid-template-columns:1fr}.passkey-panel{grid-column:auto}.passkey-create{grid-template-columns:1fr}.passkey-create .button{width:100%}.passkey-item{grid-template-columns:auto 1fr}.passkey-item form{grid-column:1/-1}.passkey-item form .button{width:100%}.login-layout{display:block;min-height:100dvh}.login-intro{display:none}.login-panel{min-height:100dvh;padding:20px 14px}.login-card{width:100%;max-width:460px;padding:26px 20px;border-radius:18px}.topbar-status{font-size:11px}.content-wrap img,.panel img{max-width:100%;height:auto}.button,.button-wide{min-height:46px}.nav-link{min-height:46px}
}

/* MZ Digital 0.3.5 – Responsive Framework
   Finaler Mobile-Override. Hebt ältere dreispaltige Sidebar-Regeln gezielt auf. */
@media (max-width: 900px) {
  html,
  body {
    width: 100%;
    max-width: 100%;
    overflow-x: clip;
  }

  body.sidebar-open {
    overflow: hidden;
    touch-action: none;
  }

  .app-shell {
    display: block;
    width: 100%;
    max-width: 100%;
    min-height: 100dvh;
    overflow: clip;
  }

  .main {
    display: block;
    width: 100%;
    max-width: 100vw;
    min-width: 0;
    margin: 0;
    overflow: clip;
  }

  .sidebar {
    position: fixed;
    z-index: 1002;
    inset: 0 auto 0 0;
    display: flex;
    width: min(86vw, 320px);
    max-width: calc(100vw - 44px);
    height: 100dvh;
    padding: 20px 16px max(18px, env(safe-area-inset-bottom));
    flex-direction: column;
    overflow-x: hidden;
    overflow-y: auto;
    overscroll-behavior: contain;
    visibility: hidden;
    transform: translate3d(-105%, 0, 0);
    transition: transform .22s ease, visibility 0s linear .22s;
    contain: layout paint;
    box-shadow: 20px 0 60px rgba(0, 0, 0, .48);
  }

  body.sidebar-open .sidebar {
    visibility: visible;
    transform: translate3d(0, 0, 0);
    transition: transform .22s ease, visibility 0s;
  }

  /* Entscheidend: das alte dreispaltige Mobile-Grid vollständig zurücksetzen. */
  .sidebar nav {
    display: flex !important;
    width: 100%;
    min-width: 0;
    max-width: 100%;
    flex: 0 0 auto;
    flex-direction: column !important;
    grid-template-columns: none !important;
    grid-auto-flow: row !important;
    gap: 5px;
    overflow: visible;
  }

  .sidebar .nav-label {
    display: block;
    width: 100%;
    margin: 20px 12px 7px;
  }

  .sidebar .nav-link {
    display: flex !important;
    width: 100%;
    min-width: 0;
    max-width: 100%;
    min-height: 48px;
    padding: 12px 13px;
    flex: 0 0 auto;
    align-items: center;
    justify-content: flex-start;
    gap: 12px;
    overflow: hidden;
  }

  .sidebar .nav-link .icon {
    flex: 0 0 auto;
  }

  .sidebar .nav-link span {
    display: block;
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
  }

  .sidebar-user {
    display: grid;
    width: 100%;
    min-width: 0;
    margin-top: auto;
  }

  .brand {
    width: 100%;
    min-width: 0;
    padding: 0 48px 22px 4px;
  }

  .brand img {
    flex: 0 0 auto;
  }

  .brand span {
    min-width: 0;
  }

  .brand strong,
  .brand small {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
  }

  .sidebar-backdrop {
    display: block;
    position: fixed;
    z-index: 1001;
    inset: 0;
    visibility: hidden;
    opacity: 0;
    background: rgba(4, 6, 10, .72);
    transition: opacity .22s ease, visibility 0s linear .22s;
  }

  body.sidebar-open .sidebar-backdrop {
    visibility: visible;
    opacity: 1;
    transition: opacity .22s ease, visibility 0s;
  }

  .topbar {
    width: 100%;
    max-width: 100vw;
  }

  .topbar-left,
  .topbar-actions,
  .topbar-status,
  .topbar-status > span {
    min-width: 0;
  }

  .content-wrap {
    width: 100%;
    max-width: 100%;
    min-width: 0;
    margin: 0;
    padding-inline: max(16px, env(safe-area-inset-left)) max(16px, env(safe-area-inset-right));
    overflow: clip;
  }

  .content-wrap > *,
  .page-head,
  .page-head > *,
  .module-grid,
  .dashboard-row,
  .panel,
  .module-card,
  .system-summary,
  .resource-grid,
  .service-grid,
  .system-link-grid,
  .account-grid {
    width: 100%;
    max-width: 100%;
    min-width: 0;
  }

  .page-head h1,
  .page-head p,
  .panel h1,
  .panel h2,
  .panel p {
    max-width: 100%;
    overflow-wrap: anywhere;
  }
}

@media (max-width: 620px) {
  .content-wrap {
    padding-top: 26px;
    padding-bottom: max(52px, env(safe-area-inset-bottom));
  }

  .page-head h1 {
    font-size: clamp(2.25rem, 12vw, 3.35rem);
    line-height: .98;
    letter-spacing: -.055em;
  }

  .topbar {
    padding-inline: max(12px, env(safe-area-inset-left)) max(12px, env(safe-area-inset-right));
  }
}

/* MZ Digital 0.4.0 – PWA */
.pwa-install{position:fixed;z-index:950;right:20px;bottom:max(20px,env(safe-area-inset-bottom));max-width:calc(100vw - 40px)}
.pwa-install[hidden],.pwa-modal[hidden],.pwa-ios-help[hidden],.pwa-generic-help[hidden],.pwa-modal [hidden]{display:none!important}
.pwa-install-button{display:flex;align-items:center;gap:9px;min-height:44px;padding:11px 15px;border:1px solid rgba(var(--area-accent-rgb,255,139,61),.38);border-radius:999px;background:rgba(20,24,33,.94);color:var(--text);font:inherit;font-weight:700;box-shadow:0 15px 40px rgba(0,0,0,.35);backdrop-filter:blur(18px);cursor:pointer}
.pwa-install-button:hover{border-color:var(--area-accent);transform:translateY(-1px)}
.pwa-install-button .icon{color:var(--area-accent)}
.pwa-modal{position:fixed;z-index:1300;inset:0;display:grid;place-items:center;padding:max(20px,env(safe-area-inset-top)) max(16px,env(safe-area-inset-right)) max(20px,env(safe-area-inset-bottom)) max(16px,env(safe-area-inset-left))}
.pwa-modal-backdrop{position:absolute;inset:0;background:rgba(4,6,10,.78);backdrop-filter:blur(10px)}
.pwa-modal-card{position:relative;width:min(100%,440px);max-height:calc(100dvh - 40px);overflow:auto;padding:30px;border:1px solid var(--line);border-radius:24px;background:linear-gradient(145deg,rgba(24,29,40,.98),rgba(15,18,25,.98));box-shadow:0 32px 90px rgba(0,0,0,.5)}
.pwa-modal-close{position:absolute;top:14px;right:14px;display:grid;place-items:center;width:40px;height:40px;border:1px solid var(--line);border-radius:12px;background:var(--surface2);color:var(--muted);cursor:pointer}
.pwa-modal-icon{width:72px;height:72px;margin-bottom:18px;border-radius:18px;box-shadow:0 12px 30px rgba(var(--area-accent-rgb,255,139,61),.18)}
.pwa-modal-card h2{margin:8px 0 12px;font-size:clamp(1.65rem,6vw,2.25rem);line-height:1.05}
.pwa-modal-card p,.pwa-modal-card li{color:var(--muted);line-height:1.55}
.pwa-ios-help ol{margin:18px 0 24px;padding-left:22px}.pwa-ios-help li+li{margin-top:8px}
.pwa-dismiss{display:block;width:100%;margin-top:10px;padding:10px;border:0;background:transparent;color:var(--muted);font:inherit;cursor:pointer}
body.pwa-modal-open{overflow:hidden}
@media(display-mode:standalone){.pwa-install{display:none!important}.topbar{padding-top:max(14px,env(safe-area-inset-top))}.sidebar{padding-top:max(20px,env(safe-area-inset-top))}}
@media(max-width:620px){.pwa-install{right:12px;bottom:max(12px,env(safe-area-inset-bottom));max-width:calc(100vw - 24px)}.pwa-install-button span{font-size:.86rem}.pwa-modal-card{padding:26px 20px;border-radius:20px}}
