:root{--bg:#f5f7fb;--panel:#fff;--text:#111827;--muted:#6b7280;--line:#e5e7eb;--accent:#4f46e5;--accent2:#eef2ff;--danger:#b91c1c;--success:#067647;--radius:18px}*{box-sizing:border-box}body{margin:0;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;background:var(--bg);color:var(--text)}a{color:inherit;text-decoration:none}.topbar{height:72px;background:#111827;color:#fff;display:flex;align-items:center;justify-content:space-between;padding:0 28px;position:sticky;top:0;z-index:20}.brand{display:flex;align-items:center;gap:12px}.brandmark,.logohero{display:grid;place-items:center;background:linear-gradient(135deg,#5b5cf0,#7c3aed);color:#fff;font-weight:800;letter-spacing:-.04em}.brandmark{width:38px;height:38px;border-radius:12px}.brand strong{display:block}.brand small{display:block;color:#aeb6c5;font-size:11px;margin-top:2px}.topbar nav{display:flex;gap:8px}.topbar nav a{padding:10px 12px;border-radius:10px;color:#d7dce5}.topbar nav a:hover{background:#1f2937;color:#fff}.page{max-width:1180px;margin:0 auto;padding:36px 24px 60px}.loginpage{max-width:none;min-height:100vh;display:grid;place-items:center;padding:24px;background:radial-gradient(circle at top,#eef2ff 0,#f8fafc 45%,#eef2f7 100%)}.loginbox{width:min(420px,100%);background:#fff;border:1px solid var(--line);border-radius:24px;padding:34px;box-shadow:0 20px 60px rgba(17,24,39,.08)}.logohero{width:58px;height:58px;border-radius:17px;margin-bottom:20px}.loginbox h1{margin:0 0 8px;font-size:30px}.muted,.pagehead p,.apphero p{color:var(--muted)}.stack{display:grid;gap:16px}.stack label,label{display:grid;gap:7px;font-weight:650;font-size:14px}input,textarea,select{width:100%;border:1px solid #d7dce2;border-radius:12px;background:#fff;padding:12px 13px;font:inherit;color:var(--text);outline:none}input:focus,textarea:focus,select:focus{border-color:#8b8df3;box-shadow:0 0 0 3px #eeefff}.btn{border:1px solid #d7dce2;background:#fff;color:#111827;border-radius:12px;padding:11px 15px;font:inherit;font-weight:700;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;gap:8px}.btn:hover{background:#f8fafc}.btn.primary{background:var(--accent);border-color:var(--accent);color:#fff}.btn.primary:hover{background:#4338ca}.btn.dangerghost{color:var(--danger);border-color:#fecaca}.btn.small{padding:7px 10px;font-size:13px}.pagehead,.apphero{display:flex;align-items:center;justify-content:space-between;gap:18px;margin-bottom:26px}.pagehead h1,.apphero h1,.narrow h1{font-size:34px;line-height:1.1;margin:0 0 6px}.appgrid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.appcard{display:flex;gap:16px;background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:18px;transition:.15s ease}.appcard:hover{transform:translateY(-1px);box-shadow:0 10px 30px rgba(17,24,39,.06);border-color:#d5d8e1}.appicon{width:52px;height:52px;border-radius:15px;background:#eef2ff;color:#4f46e5;display:grid;place-items:center;font-weight:850;flex:0 0 auto}.appicon.big{width:64px;height:64px;border-radius:18px;font-size:20px}.grow{min-width:0;flex:1}.row{display:flex;align-items:center}.between{justify-content:space-between}.gap{gap:12px}.appcard h2{font-size:18px;margin:0}.appcard p{margin:4px 0 13px;color:var(--muted)}.meta{display:flex;gap:18px;flex-wrap:wrap;color:#6b7280;font-size:12px}.status{display:inline-flex;align-items:center;gap:6px;border-radius:999px;padding:6px 10px;font-size:12px;font-weight:800}.status:before{content:"";width:7px;height:7px;border-radius:50%;background:currentColor}.status.online{background:#ecfdf3;color:#067647}.status.offline{background:#f3f4f6;color:#6b7280}.status.large{font-size:13px;padding:8px 12px}.panel{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:20px}.quickgrid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin-bottom:16px}.panel .label{display:block;color:var(--muted);font-size:12px;font-weight:800;text-transform:uppercase;letter-spacing:.04em}.bigtext{display:block;font-size:26px;margin:7px 0 3px}.biglink{display:block;font-size:16px;font-weight:800;color:#4338ca;margin-top:10px;word-break:break-all}.panel small{color:var(--muted)}.twocol{display:grid;grid-template-columns:1.3fr .7fr;gap:16px;margin-bottom:16px}.panel h2{margin:0 0 8px;font-size:19px}.panel h3{font-size:15px}.dropzone{border:1.5px dashed #c7cbea;background:#fafaff;border-radius:14px;padding:18px;text-align:center;cursor:pointer}.dropzone input{border:0;padding:0;margin-bottom:8px}.dropzone span{font-weight:800}.dropzone small{display:block;margin-top:3px}.actions{display:flex;gap:8px;flex-wrap:wrap;margin:14px 0}.linklist{display:grid;margin-top:12px;border-top:1px solid var(--line)}.linklist a{display:flex;justify-content:space-between;padding:13px 2px;border-bottom:1px solid var(--line);font-weight:650}.tablewrap{overflow-x:auto}table{width:100%;border-collapse:collapse}th,td{text-align:left;padding:12px 10px;border-bottom:1px solid var(--line);font-size:14px}th{color:var(--muted);font-size:12px;text-transform:uppercase}.pill{display:inline-block;padding:5px 9px;border-radius:999px;background:#f3f4f6;font-size:12px;font-weight:750}.pill.active{background:#ecfdf3;color:#067647}.pill.failed{background:#fef2f2;color:#b91c1c}.pill.building{background:#fff7ed;color:#9a3412}.back{display:inline-block;margin-bottom:16px;color:#4f46e5;font-weight:700}.narrow{max-width:720px;margin:0 auto}.hint{font-weight:500;color:var(--muted)}.envform{display:grid;grid-template-columns:1fr 1.5fr auto;align-items:end;gap:10px}.secretlist{display:grid}.secretlist>div{display:grid;grid-template-columns:1fr 1fr auto;align-items:center;border-bottom:1px solid var(--line);padding:11px 0}.secretlist code{font-weight:800}.iconbtn{border:0;background:transparent;font-size:24px;color:#9ca3af;cursor:pointer}.logs{background:#0b1020;color:#d7e0ff;padding:18px;border-radius:16px;min-height:360px;overflow:auto;white-space:pre-wrap;font-size:12px}.alerts{display:grid;gap:8px;margin-bottom:16px}.alert{padding:12px 14px;border-radius:12px;font-weight:650}.alert.success{background:#ecfdf3;color:#067647}.alert.danger{background:#fef2f2;color:#b91c1c}.alert.warning{background:#fff7ed;color:#9a3412}.empty{text-align:center;background:#fff;border:1px dashed #d4d7df;border-radius:24px;padding:55px 24px}.emptyicon{width:60px;height:60px;border-radius:18px;background:#eef2ff;color:#4f46e5;display:grid;place-items:center;font-size:32px;margin:0 auto 15px}.empty h2{margin-bottom:6px}.empty p{color:var(--muted);margin-bottom:20px}.qr{width:220px;max-width:100%;border:8px solid #fff}.wait{margin-top:12px;background:#eef2ff;color:#3730a3;padding:12px;border-radius:12px;font-weight:700}.hidden{display:none}hr{border:0;border-top:1px solid var(--line);margin:20px 0}@media(max-width:800px){.topbar{padding:0 16px;height:auto;min-height:68px}.brand small{display:none}.topbar nav a{font-size:0;padding:10px}.topbar nav a:before{font-size:13px}.topbar nav a:nth-child(1):before{content:'Apps'}.topbar nav a:nth-child(2):before{content:'Log'}.topbar nav a:nth-child(3):before{content:'2FA'}.topbar nav a:nth-child(4):before{content:'Aus'}.page{padding:24px 14px 50px}.pagehead,.apphero{align-items:flex-start}.pagehead h1,.apphero h1,.narrow h1{font-size:28px}.appgrid,.quickgrid,.twocol{grid-template-columns:1fr}.envform{grid-template-columns:1fr}.appcard{padding:15px}.appicon{width:46px;height:46px}.meta{gap:8px}.pagehead{flex-direction:column}.pagehead .btn{width:100%}.apphero{flex-direction:column}.actions form,.actions button{flex:1}.loginbox{padding:26px 20px}.panel{padding:16px}}@media(max-width:430px){.topbar nav{gap:0}.brand strong{font-size:14px}.quickgrid{gap:10px}.dropzone{padding:14px}.btn{min-height:44px}}
.versionbadge{display:inline-flex;align-items:center;border-radius:999px;padding:8px 12px;background:#eef2ff;color:#4338ca;font-weight:800;font-size:13px;white-space:nowrap}.managerdrop{margin-top:14px}.update-status{margin-bottom:16px;display:grid;gap:7px}.update-status.success{border-color:#a7f3d0;background:#f0fdf4}.update-status.rollback,.update-status.failed,.update-status.fatal{border-color:#fecaca;background:#fef2f2}.update-status.building,.update-status.switching{border-color:#fed7aa;background:#fff7ed}.steps{display:grid;gap:14px;margin-top:16px}.steps>div{display:flex;gap:12px;align-items:flex-start}.steps b{width:30px;height:30px;flex:0 0 30px;border-radius:10px;background:#eef2ff;color:#4338ca;display:grid;place-items:center}.steps span{display:grid;gap:3px}.steps small{color:var(--muted);line-height:1.45}.updatewait{text-align:center}.updatewait .logohero{margin:0 auto 20px}.progressline{height:8px;background:#eef2ff;border-radius:999px;overflow:hidden;margin:24px 0}.progressline span{display:block;height:100%;width:40%;background:var(--accent);border-radius:999px;animation:managerProgress 1.2s ease-in-out infinite alternate}@keyframes managerProgress{from{transform:translateX(-80%)}to{transform:translateX(230%)}}@media(max-width:800px){.topbar nav a:nth-child(4):before{content:'Sys'}.topbar nav a:nth-child(5):before{content:'Aus'}}

.backupgrid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;align-items:end;margin:18px 0}.dangerpanel{border-color:#fecaca;background:#fffafa}.dangerpanel h2{color:#991b1b}@media(max-width:800px){.backupgrid{grid-template-columns:1fr}}
.installprogress{margin-top:14px;border:1px solid #c7d2fe;background:#f8faff;border-radius:14px;padding:15px}.installprogress.failed{border-color:#fecaca;background:#fef2f2}.progresshead{display:flex;justify-content:space-between;gap:16px;align-items:center}.progressbar{height:12px;background:#e5e7eb;border-radius:999px;overflow:hidden;margin:12px 0 8px}.progressbar span{display:block;height:100%;background:var(--accent);border-radius:999px;transition:width .35s ease}.installprogress.failed .progressbar span{background:#b91c1c}

/* v3.6.0 – sicherer Wartungsbereich */
.maintenance-head{margin-bottom:18px}.maintenance-section{margin-bottom:16px}.sectionhead{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;margin-bottom:18px}.sectionhead h2,.sectionhead h3{margin:3px 0 4px}.eyebrow{font-size:11px;text-transform:uppercase;letter-spacing:.08em;color:var(--muted);font-weight:850}.maintenance-kv{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px;margin:14px 0 20px}.maintenance-kv>div{border:1px solid var(--line);background:#fafbfc;border-radius:13px;padding:12px;min-width:0}.maintenance-kv span{display:block;color:var(--muted);font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.03em;margin-bottom:5px}.maintenance-kv strong{display:block;font-size:14px;overflow-wrap:anywhere}.maintenance-kv small{display:block;color:var(--muted);margin-top:4px;overflow-wrap:anywhere}.compacttable td code,.compacttable th code{word-break:break-all}.maintenance-logs{min-height:230px;max-height:420px}.loghead{margin-top:20px;margin-bottom:8px}.maintenance-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:16px}.smallnote{font-size:12px;line-height:1.5}.subpanel{border:1px solid var(--line);border-radius:15px;background:#fafbfc;padding:16px;margin-top:14px}.admin-kv{grid-template-columns:repeat(5,minmax(0,1fr))}.compact-kv{grid-template-columns:repeat(3,minmax(0,1fr));margin-bottom:16px}.diagnostic-details{margin-top:14px;border-top:1px solid var(--line);padding-top:12px}.diagnostic-details summary{cursor:pointer;font-weight:750}.diagnostic-pre{white-space:pre-wrap;word-break:break-word;background:#111827;color:#dbe3f1;border-radius:12px;padding:14px;max-height:320px;overflow:auto}.reauth-dialog{border:0;border-radius:20px;padding:0;max-width:460px;width:calc(100% - 28px);box-shadow:0 28px 90px rgba(0,0,0,.28)}.reauth-dialog::backdrop{background:rgba(17,24,39,.66);backdrop-filter:blur(3px)}.reauth-dialog form{padding:24px}.reauth-dialog h2{margin:3px 0 5px}.toast{position:fixed;right:22px;bottom:22px;max-width:min(520px,calc(100vw - 44px));z-index:100;background:#ecfdf3;color:#067647;border:1px solid #a7f3d0;border-radius:14px;padding:14px 16px;font-weight:700;box-shadow:0 14px 45px rgba(17,24,39,.15)}.toast.danger{background:#fef2f2;color:#991b1b;border-color:#fecaca}.maintenance-transport-warning{line-height:1.5}.terminal-card{background:#0a0f1d;border-radius:18px;overflow:hidden;border:1px solid #263248;box-shadow:0 18px 50px rgba(17,24,39,.16)}.terminal-head{display:flex;align-items:center;justify-content:space-between;padding:12px 14px;background:#111827;color:#dbe3f1}.terminal-head>div{display:flex;align-items:center;gap:9px}.terminal-head small{color:#94a3b8}.terminal-dot{width:9px;height:9px;border-radius:50%;background:#22c55e}.terminal-output{margin:0;min-height:500px;max-height:68vh;overflow:auto;padding:18px;color:#dce7ff;background:#070b14;white-space:pre-wrap;overflow-wrap:anywhere;font:13px/1.55 ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono",monospace;outline:none}.terminal-input{position:fixed;left:-10000px;top:-10000px;width:1px;height:1px;opacity:0}.terminal-help{padding:10px 14px;background:#101827;color:#94a3b8;font-size:11px;line-height:1.45}
@media(max-width:980px){.maintenance-kv,.admin-kv{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:620px){.sectionhead{flex-direction:column}.sectionhead .btn{width:100%}.maintenance-kv,.admin-kv,.compact-kv{grid-template-columns:1fr}.terminal-output{min-height:420px}.toast{right:14px;bottom:14px;max-width:calc(100vw - 28px)}}

/* v3.7.0 – eigener HTTPS-Adminzugang */
.https-admin-page{max-width:880px}.https-admin-page code{font-size:.92em}.https-kv{grid-template-columns:repeat(4,minmax(0,1fr))}.https-admin-page .stack{display:grid;gap:14px}.https-admin-page label{display:grid;gap:7px;font-weight:750}.https-admin-page label small{font-weight:500;line-height:1.45}.btn.danger{background:#b42318;color:#fff;border-color:#b42318}.btn.danger:hover{background:#912018}.alert.success{background:#ecfdf3;color:#067647;border:1px solid #a7f3d0}.https-admin-page .dangerpanel .sectionhead{margin-bottom:12px}@media(max-width:900px){.https-kv{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:620px){.https-kv{grid-template-columns:1fr}}
