/* Schriftart wird non-blocking in base.html geladen (kein render-blockierendes @import) */
:root{--color-primary:59 109 251;--color-text:228 230 235;color-scheme:dark}
*{margin:0;padding:0;box-sizing:border-box}
/* Browser-Autofill (User/Passwort) darf keine weissen Felder malen */
.form-group input:-webkit-autofill,.term-input:-webkit-autofill,.code-edit:-webkit-autofill,
.form-group input:-webkit-autofill:hover,.term-input:-webkit-autofill:hover,
.form-group input:-webkit-autofill:focus,.term-input:-webkit-autofill:focus{
-webkit-text-fill-color:#e4e6eb;-webkit-box-shadow:0 0 0 80px #14171f inset;box-shadow:0 0 0 80px #14171f inset;caret-color:#e4e6eb;transition:background-color 9999s ease-in-out 0s}
.form-group input:autofill,.term-input:autofill{filter:none}
@keyframes fadeIn{from{opacity:0}to{opacity:1}}
@keyframes fadeInUp{from{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}
@keyframes smoothIn{from{opacity:0;transform:translateY(8px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}
@keyframes shake{0%,100%{transform:translateX(0)}25%{transform:translateX(-5px)}75%{transform:translateX(5px)}}
@keyframes glow{0%,100%{box-shadow:0 0 8px rgba(88,101,242,.3)}50%{box-shadow:0 0 22px rgba(88,101,242,.6)}}
@keyframes pulse{0%,100%{opacity:1}50%{opacity:.4}}
body{background:rgb(5,7,13);min-height:100vh;color:#e4e6eb;font-family:'Inter',-apple-system,sans-serif;overflow-x:hidden}
body::before{content:"";position:fixed;inset:0;z-index:-1;background:radial-gradient(720px 340px at 10% -6%,rgba(59,109,251,.12),transparent 72%),radial-gradient(560px 300px at 96% 4%,rgba(59,109,251,.07),transparent 72%);pointer-events:none;animation:fadeIn 1s ease}
#interactive-bg{position:fixed;inset:0;z-index:0;pointer-events:none}
a{color:inherit}
.acp-shell{display:flex;min-height:100vh;position:relative;z-index:1}
.sidebar{width:264px;flex-shrink:0;background:rgba(30,31,34,.72);backdrop-filter:blur(20px);border-right:1px solid rgba(255,255,255,.08);padding:24px 16px;display:flex;flex-direction:column;gap:8px;position:sticky;top:0;height:100vh;animation:fadeInUp .5s ease both}
.brand{display:flex;align-items:center;gap:12px;padding:8px 12px 20px;border-bottom:1px solid rgba(255,255,255,.06);margin-bottom:16px}
.brand-mark{width:42px;height:42px;border-radius:12px;background:linear-gradient(135deg,#5865f2,#3b6dfb);display:flex;align-items:center;justify-content:center;font-weight:800;font-size:1.1rem;color:#fff;box-shadow:0 4px 20px rgba(88,101,242,.4)}
.brand h1{font-size:1.05rem;font-weight:800;letter-spacing:.3px;background:linear-gradient(135deg,#fff,#8b939a);-webkit-background-clip:text;-webkit-text-fill-color:transparent}
.brand small{display:block;font-size:.68rem;color:#8b939a;font-weight:600;letter-spacing:1.5px;-webkit-text-fill-color:#8b939a}
.side-label{font-size:.68rem;font-weight:700;color:#5c5e66;text-transform:uppercase;letter-spacing:1px;padding:10px 12px 4px}
.side-link{display:flex;align-items:center;gap:12px;padding:12px 14px;border-radius:10px;text-decoration:none;color:#8b939a;font-size:.9rem;font-weight:600;transition:all .25s;border:1px solid transparent}
.badge{display:inline-block;min-width:20px;height:20px;line-height:20px;text-align:center;font-size:.68rem;font-weight:800;color:#fff;background:#f23f43;border-radius:10px;margin-left:auto;padding:0 6px}
.side-link svg{flex-shrink:0;opacity:.8}
.side-link:hover{color:#e4e6eb;background:rgba(255,255,255,.04);transform:translateX(3px)}
.side-link.active{color:#fff;background:linear-gradient(135deg,rgba(88,101,242,.28),rgba(59,109,251,.18));border-color:rgba(88,101,242,.35);box-shadow:0 4px 16px rgba(88,101,242,.2)}
.side-foot{margin-top:auto;padding:12px;border-radius:10px;background:rgba(0,0,0,.25);border:1px solid rgba(255,255,255,.06);font-size:.72rem;color:#5c5e66;text-align:center}
.side-close{display:none;margin-left:auto;width:40px;height:40px;flex-shrink:0;border-radius:10px;background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.1);color:#e4e6eb;font-size:1rem;cursor:pointer;align-items:center;justify-content:center}
.side-close:hover{background:rgba(242,63,67,.2);color:#f23f43}
.main{flex:1;min-width:0;padding:28px 32px 48px;display:flex;flex-direction:column;align-items:center}
.main>*:not(.modal-ov){width:100%;max-width:1100px}
.topbar{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:24px;animation:fadeInUp .5s ease both}
.topbar h2{font-size:1.5rem;font-weight:800;background:linear-gradient(135deg,#fff,#8b939a);-webkit-background-clip:text;-webkit-text-fill-color:transparent}
.topbar p{font-size:.82rem;color:#8b939a;margin-top:3px}
.user-pill{display:flex;align-items:center;gap:10px;padding:6px 14px 6px 6px;background:rgba(0,0,0,.3);border:1px solid rgba(255,255,255,.08);border-radius:20px;text-decoration:none;transition:border-color .25s}
a.user-pill:hover{border-color:rgba(88,101,242,.4)}
.avatar-img{width:30px;height:30px;border-radius:50%;object-fit:cover;flex-shrink:0}
.avatar-big-wrap{display:flex;justify-content:center;margin-bottom:16px}
.avatar-big{width:96px;height:96px;border-radius:50%;object-fit:cover;box-shadow:0 4px 20px rgba(88,101,242,.35)}
.avatar-big-empty{display:flex;align-items:center;justify-content:center;font-size:2rem;font-weight:800;color:#fff;background:linear-gradient(135deg,#5865f2,#3b6dfb)}
input[type=file]{width:100%;padding:12px 14px;background:rgba(0,0,0,.3);border:1px solid rgba(255,255,255,.08);border-radius:10px;color:#e4e6eb;font-size:.85rem;font-family:inherit}
input[type=file]::file-selector-button{padding:8px 14px;margin-right:12px;background:rgba(88,101,242,.2);border:1px solid rgba(88,101,242,.35);border-radius:8px;color:#fff;font-weight:600;font-family:inherit;cursor:pointer}
.avatar-dot{width:30px;height:30px;border-radius:50%;background:linear-gradient(135deg,#5865f2,#3b6dfb);display:flex;align-items:center;justify-content:center;font-weight:800;font-size:.85rem;color:#fff}
.user-pill span{font-size:.8rem;font-weight:600}
.btn-logout{padding:8px 14px;background:rgba(242,63,67,.15);border:1px solid rgba(242,63,67,.25);border-radius:8px;color:#f23f43;font-size:.78rem;font-weight:700;cursor:pointer;text-decoration:none;transition:all .25s}
.btn-logout:hover{background:rgba(242,63,67,.3);transform:translateY(-1px)}
.glass-card{background:rgba(30,31,34,.7);backdrop-filter:blur(20px);border:1px solid rgba(255,255,255,.08);border-radius:16px;padding:28px;box-shadow:0 8px 32px rgba(0,0,0,.3),inset 0 1px 0 rgba(255,255,255,.05);animation:fadeInUp .5s ease both;position:relative;z-index:1}
.stats{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin-bottom:18px}
.stat-mini{display:flex;align-items:center;gap:12px;padding:16px 18px;background:rgba(30,31,34,.7);backdrop-filter:blur(20px);border:1px solid rgba(255,255,255,.08);border-radius:12px;transition:all .3s;animation:smoothIn .4s ease both}
.stat-mini:hover{border-color:rgba(88,101,242,.35);transform:translateY(-2px)}
.stat-icon{width:40px;height:40px;border-radius:11px;display:flex;align-items:center;justify-content:center;flex-shrink:0}
.stat-label{font-size:.66rem;font-weight:700;color:#8b939a;text-transform:uppercase;letter-spacing:.6px}
.stat-value{font-size:1.05rem;font-weight:700}
.stat-sub{font-size:.72rem;color:#5c5e66}
.grid2{display:grid;grid-template-columns:1.4fr 1fr;gap:14px}
.card-title{font-size:.78rem;font-weight:700;color:#b5bac1;text-transform:uppercase;letter-spacing:.6px;margin-bottom:14px}
.dot{width:9px;height:9px;border-radius:50%;flex-shrink:0;transition:background-color .4s,box-shadow .4s}
.rowline{display:flex;align-items:center;gap:10px;padding:10px 4px;border-bottom:1px solid rgba(255,255,255,.05);font-size:.85rem;color:#b5bac1;transition:background-color .3s}
.rowline:last-child{border:none}
.pulse{animation:pulse 2s infinite}
.form-group{margin-bottom:16px}
.form-group label{display:block;font-size:.72rem;font-weight:700;color:#b5bac1;margin-bottom:6px;text-transform:uppercase;letter-spacing:.6px}
.form-group input{width:100%;padding:12px 14px;background:rgba(0,0,0,.3);border:1px solid rgba(255,255,255,.08);border-radius:10px;color:#e4e6eb;font-size:.92rem;font-family:inherit;transition:all .25s}
.form-group input:focus{outline:none;border-color:rgba(88,101,242,.5);box-shadow:0 0 0 3px rgba(88,101,242,.15)}
.btn-primary{width:100%;padding:13px;background:linear-gradient(135deg,#5865f2,#4752c4);color:#fff;border:none;border-radius:10px;font-size:.92rem;font-weight:700;font-family:inherit;cursor:pointer;transition:all .25s}
.btn-primary:hover{transform:translateY(-2px);box-shadow:0 8px 25px rgba(88,101,242,.45)}
.status-message{margin-top:14px;padding:12px 16px;border-radius:10px;font-size:.83rem;font-weight:500;display:none}
.status-message.success{display:block;background:rgba(35,165,90,.15);border:1px solid rgba(35,165,90,.3);color:#23a55a}
.status-message.error{display:block;background:rgba(242,63,67,.15);border:1px solid rgba(242,63,67,.3);color:#f23f43;animation:shake .4s ease}
.login-wrap{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:24px;position:relative;z-index:1}
.login-card{max-width:400px;width:100%;text-align:center}
.login-mark{width:64px;height:64px;border-radius:18px;background:linear-gradient(135deg,#5865f2,#3b6dfb);display:flex;align-items:center;justify-content:center;font-size:1.6rem;font-weight:800;color:#fff;margin:0 auto 16px;box-shadow:0 8px 28px rgba(88,101,242,.45);animation:glow 3s ease infinite}
.login-title{font-size:1.4rem;font-weight:800;background:linear-gradient(135deg,#fff,#8b939a);-webkit-background-clip:text;-webkit-text-fill-color:transparent;margin-bottom:6px}
.login-sub{font-size:.85rem;color:#8b939a;margin-bottom:22px}
.login-card form{text-align:left}
.footer{text-align:center;margin-top:28px;font-size:.72rem;color:#3d3f46}
.log-box{background:#0b0d12;border:1px solid rgba(255,255,255,.08);border-radius:10px;padding:12px 14px;height:320px;overflow-y:auto;margin:0;white-space:pre-wrap;word-break:break-word;font-family:monospace;font-size:.78rem;line-height:1.5;color:#b5bac1}
.term-input{flex:1;min-width:0;padding:13px 14px;background:rgba(0,0,0,.3);border:1px solid rgba(255,255,255,.08);border-radius:10px;color:#e4e6eb;font-size:16px;font-family:monospace}
.term-input:focus{outline:none;border-color:rgba(88,101,242,.5);box-shadow:0 0 0 3px rgba(88,101,242,.15)}
.chart-wrap{position:relative;height:220px;margin-bottom:14px}
.chart-wrap:last-child{margin-bottom:0}
.dom-row{cursor:pointer;border-radius:8px}
.dom-row:hover{background:rgba(88,101,242,.08)}
.dom-active{background:rgba(88,101,242,.14)!important;border:1px solid rgba(88,101,242,.3)}
.toggle-title{cursor:pointer;user-select:none;display:flex;align-items:center;justify-content:space-between;gap:10px;transition:color .25s}
.toggle-title:hover{color:#fff}
.toggle-title::after{content:'▾';color:#5c5e66;font-size:.9rem;transition:transform .3s,color .25s;flex-shrink:0}
.collapsed>.toggle-title::after{transform:rotate(-90deg)}
.collapsible:not(.collapsed)>.toggle-title::after{color:#5865f2}
#auditCard:not(.collapsed) .svc-chev{transform:rotate(180deg);color:#5865f2}
.view-enter{animation:fadeInUp .35s ease both}
.coll-body{overflow:hidden;max-height:3000px;transition:max-height .35s ease}
.collapsed>.coll-body{max-height:0!important}
.stat-click{cursor:pointer}
.stat-click:hover{border-color:rgba(88,101,242,.35)}
.svc-chev{margin-left:auto;color:#5c5e66;font-size:.9rem;transition:transform .3s;flex-shrink:0}
.stat-mini.open .svc-chev{transform:rotate(180deg);color:#5865f2}
.svc-log{display:none}
.svc-log.open{display:block;animation:fadeInUp .4s ease both}
.svc-open{color:inherit;text-decoration:none;border-bottom:1px dashed rgba(88,101,242,.6)}
.svc-open:hover{color:#8b9bff;border-bottom-style:solid}
.svc-open.small{font-size:.72rem;font-weight:600;letter-spacing:0;text-transform:none}
.sys-tabs{display:flex;gap:8px;margin-bottom:16px;animation:fadeInUp .5s ease both;overflow-x:auto;scrollbar-width:none;-webkit-overflow-scrolling:touch;padding-bottom:2px;max-width:100%}
.sys-tabs::-webkit-scrollbar{display:none}
.sys-tab{flex:1 0 auto;min-width:max-content;padding:12px 16px;background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.08);border-radius:10px;color:#8b939a;font-size:.88rem;font-weight:700;font-family:inherit;cursor:pointer;transition:all .25s;white-space:nowrap;scroll-snap-align:start;min-height:44px}
.sys-tab:hover{color:#e4e6eb}
.sys-tab.active{color:#fff;background:linear-gradient(135deg,rgba(88,101,242,.28),rgba(59,109,251,.18));border-color:rgba(88,101,242,.35)}
.sys-tab:focus-visible{outline:2px solid rgba(88,101,242,.7);outline-offset:2px}
.code-edit{width:100%;min-height:280px;padding:14px;background:#0b0d12;border:1px solid rgba(255,255,255,.08);border-radius:10px;color:#e4e6eb;font-size:.8rem;line-height:1.5;font-family:monospace;resize:vertical;white-space:pre}
.code-edit:focus{outline:none;border-color:rgba(88,101,242,.5);box-shadow:0 0 0 3px rgba(88,101,242,.15)}
/* Datei-Editor: Toolbar + Zeilennummern + Vollbild */
.fb-tools{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:8px}
.fb-tools .abtn{min-height:44px}
.fb-find{flex:1;min-width:120px;font-size:.8rem;padding:10px 12px}
.fb-goto{flex:0 0 90px;min-width:0;font-size:.8rem;padding:10px 12px}
.fb-edit-wrap{display:flex;gap:0;background:#0b0d12;border:1px solid rgba(255,255,255,.08);border-radius:10px;overflow:hidden;min-height:280px;max-height:60vh}
.fb-lines{flex:0 0 auto;min-width:44px;max-width:64px;padding:14px 8px 14px 12px;background:rgba(255,255,255,.03);border-right:1px solid rgba(255,255,255,.06);color:#5c5e66;font-family:monospace;font-size:.8rem;line-height:1.5;text-align:right;white-space:pre;overflow:hidden;user-select:none}
.fb-area{flex:1;min-width:0;border:none!important;border-radius:0!important;min-height:280px;max-height:60vh;font-size:14px}
.fb-area:focus{box-shadow:none!important}
.fb-media img,.fb-media video{max-height:60vh}
.fb-media iframe{background:#fff}
#fbEditCard.fb-full{position:fixed;inset:0;z-index:80;margin:0!important;max-width:none!important;width:100%!important;border-radius:0!important;display:flex;flex-direction:column;background:rgba(8,10,15,.98);overflow-y:auto;padding:16px}
#fbEditCard.fb-full .fb-edit-wrap,#fbEditCard.fb-full .fb-area{flex:1;max-height:none;min-height:40vh}
#fbEditCard.fb-full #fbMonaco{flex:1;height:auto!important;min-height:0;width:100%;max-width:none;align-self:stretch}
#fbEditCard.fb-full .code-prev{max-height:none}
.abtn.active{border-color:rgba(35,165,90,.6);color:#fff;background:rgba(35,165,90,.18)}
/* 21-40: Galerie, Palette, Tabellen */
#galGrid img{transition:transform .25s}
#galGrid a:hover img{transform:scale(1.03)}
.pal-it:hover{background:rgba(88,101,242,.1)}
#palIn{font-size:16px}
table th{font-weight:700;color:#b5bac1}
.code-prev{width:100%;min-height:280px;max-height:60vh;overflow:auto;padding:14px;background:#0b0d12;border:1px solid rgba(255,255,255,.08);border-radius:10px;font-size:.8rem;line-height:1.5;font-family:monospace;white-space:pre}
.code-prev code{background:none;padding:0;color:#e4e6eb}
.hljs-comment,.hljs-quote{color:#5c5e66;font-style:italic}
.hljs-keyword,.hljs-selector-tag,.hljs-doctag,.hljs-template-tag{color:#7c8aff}
.hljs-string,.hljs-regexp,.hljs-meta .hljs-string{color:#7bd88f}
.hljs-number,.hljs-literal{color:#f0b232}
.hljs-title,.hljs-title.function_,.hljs-section{color:#00d4ff}
.hljs-built_in,.hljs-builtin-name{color:#faa61a}
.hljs-name,.hljs-selector-id,.hljs-selector-class,.hljs-attr,.hljs-attribute,.hljs-variable,.hljs-template-variable{color:#ed94ff}
.hljs-type,.hljs-class .hljs-title{color:#ffd700}
.hljs-symbol,.hljs-bullet,.hljs-link,.hljs-meta{color:#8b939a}
.hljs-emphasis{font-style:italic}.hljs-strong{font-weight:700}
.term-box{background:#0b0d12;border:1px solid rgba(255,255,255,.08);border-radius:10px;padding:8px;height:62vh;min-height:340px;overflow:hidden}
.term-box .xterm{height:100%;padding:2px}
.tkey{min-height:40px;touch-action:manipulation}
/* Sitzungs-Dropdown: natives Select (mobiler Picker) im App-Design */
.sel-wrap{position:relative;flex:1;min-width:160px;display:flex;align-items:center}
select.term-sel{width:100%;appearance:none;-webkit-appearance:none;min-height:44px;padding:11px 38px 11px 32px;background-color:rgba(0,0,0,.35);background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%238b939a' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 14px center;border:1px solid rgba(255,255,255,.1);border-radius:10px;color:#e4e6eb;font-size:.85rem;font-family:monospace;cursor:pointer;transition:border-color .25s,box-shadow .25s}
select.term-sel:hover{border-color:rgba(88,101,242,.35)}
select.term-sel:focus{outline:none;border-color:rgba(88,101,242,.5);box-shadow:0 0 0 3px rgba(88,101,242,.15)}
select.term-sel option{background-color:#14171f;color:#e4e6eb}
.sel-dot{position:absolute;left:13px;width:8px;height:8px;border-radius:50%;background:#5c5e66;pointer-events:none;flex-shrink:0}
/* Terminal-Vollbild: Karte wird fixiertes Overlay, Box füllt den Rest */
.term-card-full{position:fixed;inset:0;z-index:80;margin:0!important;border-radius:0!important;display:flex;flex-direction:column;background:rgba(8,10,15,.98);overflow:hidden}
.term-card-full .term-box{flex:1;height:auto;min-height:0}
.row-actions{display:flex;gap:6px;margin-left:auto;flex-wrap:wrap}
.row-actions .term-btn{min-width:0;padding:8px 12px;font-size:.75rem;min-height:38px}
.abtn{display:inline-flex;align-items:center;gap:6px;padding:9px 14px;min-height:42px;background:rgba(88,101,242,.12);border:1px solid rgba(88,101,242,.28);border-radius:10px;color:#dbe1ff;font-size:.8rem;font-weight:700;font-family:inherit;cursor:pointer;transition:all .25s;backdrop-filter:blur(10px);white-space:nowrap}
.abtn:hover{background:rgba(88,101,242,.25);border-color:rgba(88,101,242,.5);transform:translateY(-1px);box-shadow:0 4px 14px rgba(88,101,242,.25)}
.abtn:active{transform:translateY(0) scale(.97)}
.abtn .em{font-size:.95rem;line-height:1}
.abtn svg{flex-shrink:0;display:block}
.abtn.icon-only{padding:8px 10px}
.frow-ic{display:inline-flex;color:#5865f2;flex-shrink:0}
.glass-card.dragover{border-color:rgba(35,165,90,.6)!important;box-shadow:0 0 0 3px rgba(35,165,90,.2),0 8px 32px rgba(0,0,0,.3)}
#fbList .rowline{padding:6px 4px;font-size:.76rem;gap:8px}
#fbList .abtn.icon-only{padding:3px 5px;min-height:26px;min-width:26px;border-radius:7px}
#fbList .abtn.icon-only svg{width:11px;height:11px}
#fbCard .term-bar .abtn{padding:6px 10px;min-height:32px;font-size:.75rem}
#fbCard .term-bar .abtn svg{width:12px;height:12px}
.abtn.danger{background:rgba(242,63,67,.1);border-color:rgba(242,63,67,.28);color:#ffb4b6}
.abtn.danger:hover{background:rgba(242,63,67,.22);border-color:rgba(242,63,67,.5);box-shadow:0 4px 14px rgba(242,63,67,.2)}
.abtn.ok{background:rgba(35,165,90,.1);border-color:rgba(35,165,90,.28);color:#b9f0cd}
.abtn.ok:hover{background:rgba(35,165,90,.22);border-color:rgba(35,165,90,.5);box-shadow:0 4px 14px rgba(35,165,90,.2)}
.abtn.ghost{background:rgba(255,255,255,.04);border-color:rgba(255,255,255,.1);color:#b5bac1}
.abtn.ghost:hover{background:rgba(255,255,255,.09);color:#e4e6eb}
.bar{height:8px;border-radius:4px;background:rgba(255,255,255,.06);margin:2px 0 10px 19px;overflow:hidden}
.bar-fill{height:100%;border-radius:4px;background:linear-gradient(90deg,#5865f2,#3b6dfb);transition:width .5s}
.catbar{display:flex;height:10px;border-radius:5px;background:rgba(255,255,255,.06);margin:2px 0 8px 19px;overflow:hidden}
.catbar>div{height:100%;min-width:0}
.stor-row{padding-top:3px;padding-bottom:3px;flex-wrap:nowrap!important;white-space:nowrap;gap:8px;overflow:hidden}
.stor-row b{flex:0 0 auto;white-space:nowrap}
.stor-row span{flex-shrink:0;white-space:nowrap}
#resDisks .rowline{animation:none;flex-wrap:nowrap;white-space:nowrap;gap:8px;overflow:hidden;overflow-wrap:normal}
#resDisks .disk-head b{flex:0 0 auto;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}
#resDisks .disk-head .disk-sub{flex:1 1 auto;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
#resDisks .disk-head .disk-pct{flex:0 0 auto;white-space:nowrap}
#resDisks .bar-fill{transition:none}
#resCores{display:grid;grid-template-columns:repeat(4,1fr);gap:4px;min-height:52px}
.core-chip{font-size:.66rem;font-weight:700;padding:3px 4px;border-radius:12px;background:rgba(88,101,242,.15);border:1px solid rgba(88,101,242,.3);color:#b5bac1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;text-align:center;min-width:0}
.core-chip.off{background:rgba(255,255,255,.03);border-color:rgba(255,255,255,.08);color:#5c5e66}
.core-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}
.core-cell{background:rgba(0,0,0,.25);border:1px solid rgba(255,255,255,.06);border-radius:10px;padding:8px 10px;min-width:0}
.core-cell.off{opacity:.55}
.core-cell .ct{display:flex;justify-content:space-between;font-size:.68rem;font-weight:700;color:#b5bac1;margin-bottom:4px}
.core-cell .ct .cv{color:#e4e6eb}
.core-cell .cw{position:relative;height:64px}
.core-cell svg.spark{width:100%;height:64px;display:block}
.core-view-btn.active{border-color:rgba(88,101,242,.6);color:#fff}
.sys-duo{display:grid;grid-template-columns:2fr 1fr;gap:14px;margin-bottom:14px}
.sys-duo>.glass-card{margin:0}
.dd{position:relative;display:inline-block;max-width:100%}
.dd.open{z-index:200}
.glass-card.dd-above{z-index:5}
.dd-btn{display:inline-flex;align-items:center;gap:8px;padding:11px 14px;min-height:44px;background:rgba(0,0,0,.35);border:1px solid rgba(255,255,255,.1);border-radius:10px;color:#e4e6eb;font-size:.85rem;font-weight:600;font-family:inherit;cursor:pointer;transition:border-color .25s,box-shadow .25s;white-space:nowrap;max-width:100%}
.dd-btn:hover{border-color:rgba(88,101,242,.35)}
.dd.open .dd-btn{border-color:rgba(88,101,242,.5);box-shadow:0 0 0 3px rgba(88,101,242,.15)}
.dd-btn .dd-label{overflow:hidden;text-overflow:ellipsis}
.dd-btn .dd-chev{color:#8b939a;font-size:.75rem;transition:transform .25s,color .25s;flex-shrink:0}
.dd.open .dd-btn .dd-chev{transform:rotate(180deg);color:#fff}
.dd-list{position:absolute;top:calc(100% + 6px);left:0;min-width:100%;max-width:78vw;max-height:280px;overflow-y:auto;background:rgba(20,22,28,.98);border:1px solid rgba(88,101,242,.3);border-radius:12px;box-shadow:0 12px 40px rgba(0,0,0,.5);z-index:200;display:none;padding:6px}
.dd.open .dd-list{display:block;animation:fadeInUp .22s ease both}
.dd-opt{display:flex;align-items:center;gap:8px;padding:10px 12px;border-radius:8px;font-size:.83rem;color:#b5bac1;cursor:pointer;white-space:nowrap}
.dd-opt:hover{background:rgba(88,101,242,.15);color:#fff}
.dd-opt.sel{color:#fff;background:rgba(88,101,242,.18)}
.dd-opt .tick{margin-left:auto;color:#5865f2;font-weight:800;visibility:hidden;flex-shrink:0}
.dd-opt.sel .tick{visibility:visible}
.res-range.active{border-color:rgba(88,101,242,.6);color:#fff}
.net-range.active{border-color:rgba(88,101,242,.6);color:#fff}
.mod-range.active{border-color:rgba(88,101,242,.6);color:#fff}
.w-range.active{border-color:rgba(88,101,242,.6);color:#fff}
.ev-f.active{border-color:rgba(88,101,242,.6);color:#fff}
.abtn.ghost.w-range.active{border-color:rgba(88,101,242,.6);color:#fff}
@media(max-width:900px){.sys-duo{grid-template-columns:1fr}
.sys-tabs{flex-wrap:nowrap;overflow-x:auto}
.sys-tab{flex:0 0 auto}
.card-title .row-actions{max-width:100%;overflow-x:auto;flex-wrap:nowrap;scrollbar-width:none}
.card-title .row-actions::-webkit-scrollbar{display:none}
.card-title .row-actions .abtn{flex:0 0 auto}}
@media(max-width:560px){.core-grid{grid-template-columns:repeat(2,1fr)}}
.modal-ov{position:fixed;inset:0;z-index:60;background:rgba(0,0,0,.6);backdrop-filter:blur(3px);display:none;align-items:center;justify-content:center;padding:18px}
.modal-ov.show{display:flex;animation:fadeIn .25s ease}
.modal-card{max-width:720px;width:100%;max-height:88dvh;overflow-y:auto;margin:0;animation:smoothIn .3s ease both}
.modal-head{display:flex;align-items:flex-start;gap:12px;margin-bottom:12px}
.modal-title{font-size:1.1rem;font-weight:800;overflow-wrap:anywhere}
.modal-sub{font-size:.75rem;color:#8b939a;margin-top:3px}
.modal-x{display:flex!important;margin-left:auto}
.modal-live{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:12px}
.live-chip{font-size:.72rem;font-weight:700;padding:6px 12px;border-radius:20px;background:rgba(88,101,242,.15);border:1px solid rgba(88,101,242,.3);color:#b5bac1}
.live-chip.ok{background:rgba(35,165,90,.15);border-color:rgba(35,165,90,.35);color:#23a55a}
.live-chip.warn{background:rgba(240,178,50,.15);border-color:rgba(240,178,50,.35);color:#f0b232}
.mstats{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}
.mstat{background:rgba(0,0,0,.25);border:1px solid rgba(255,255,255,.06);border-radius:10px;padding:10px 12px}
.mstat .v{font-size:1rem;font-weight:800}
.mstat .k{font-size:.65rem;font-weight:700;color:#8b939a;text-transform:uppercase;letter-spacing:.5px;margin-top:2px}
@media(max-width:560px){.modal-ov{padding:0;align-items:flex-end}.modal-card{border-radius:16px 16px 0 0;max-height:92dvh}.mstats{grid-template-columns:repeat(2,1fr)}}
html{-webkit-text-size-adjust:100%}
button,a{-webkit-tap-highlight-color:transparent;touch-action:manipulation}
body.no-scroll{overflow:hidden}
.side-overlay{position:fixed;inset:0;background:rgba(0,0,0,.55);backdrop-filter:blur(2px);opacity:0;visibility:hidden;transition:opacity .3s;z-index:40}
.side-overlay.show{opacity:1;visibility:visible}
@media(max-width:900px){
.sidebar{position:fixed;left:0;top:0;bottom:0;z-index:50;transform:translateX(-105%);transition:transform .32s cubic-bezier(.4,0,.2,1);box-shadow:24px 0 60px rgba(0,0,0,.5);height:100dvh;animation:none}
.sidebar.open{transform:none}
.side-close{display:flex!important}
.main{padding:18px 16px 40px;max-width:100%}
.stats{grid-template-columns:1fr 1fr}
.grid2{grid-template-columns:1fr}
.burger{display:flex!important}
.topbar{flex-wrap:wrap;gap:12px}
.glass-card{padding:20px}
}
@media(max-width:560px){
.sys-tabs{flex-wrap:nowrap;gap:6px;overflow-x:auto;margin-left:-2px;margin-right:-2px;padding:2px 2px 6px;scroll-snap-type:x proximity}
.sys-tab{flex:0 0 auto;min-width:max-content;padding:11px 14px;font-size:.8rem;white-space:nowrap;overflow:visible;text-overflow:clip;min-height:44px}
.row-actions{gap:4px}
/* Unter-Filter (Zeiträume, Event-Level, Core-Ansicht): horizontal scrollen statt quetschen */
.card-title{display:flex;flex-wrap:wrap;gap:8px;align-items:center}
.card-title .row-actions{margin-left:0;width:100%;max-width:100%;flex-wrap:nowrap;overflow-x:auto;padding-bottom:4px;scrollbar-width:none;-webkit-overflow-scrolling:touch}
.card-title .row-actions::-webkit-scrollbar{display:none}
.card-title .row-actions .abtn{flex:0 0 auto;min-height:44px}
/* Job-/Backup-/Clean-Buttons: Touch-Ziele */
#jobList .abtn,#bkList .abtn,#clList .abtn{min-height:44px;min-width:44px}
#jobList .rowline,#bkList .rowline{flex-wrap:wrap}
/* Datei-Editor mobil: Toolbar 2-spaltig, Editor lesbar */
.fb-tools{gap:6px}
.fb-find{flex:1 1 40%;min-width:0;font-size:16px}
.fb-goto{flex:0 0 72px}
.fb-edit-wrap{max-height:55vh}
.fb-area{font-size:16px}
#fbList .abtn.icon-only{padding:3px 5px;min-height:26px;min-width:26px;border-radius:7px}
#fbList .abtn.icon-only svg{width:11px;height:11px}
#fbList .rowline{padding:4px 2px;font-size:.72rem;gap:6px}
#fbList .row-actions{gap:3px}
#fbCard .term-bar .abtn{padding:5px 8px;min-height:30px;min-width:30px;font-size:.72rem}
#fbCard .term-bar .abtn svg{width:12px;height:12px}
.main{padding:14px 12px calc(32px + env(safe-area-inset-bottom));overflow-x:hidden}
.topbar h2{font-size:1.2rem}
.topbar p{font-size:.75rem}
.user-pill{padding:5px 10px 5px 5px;gap:8px;max-width:60vw}
.user-pill span{font-size:.75rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.avatar-dot{width:26px;height:26px;font-size:.75rem;flex-shrink:0}
.avatar-img{width:26px;height:26px}
.btn-logout{padding:9px 12px;font-size:.75rem;min-height:44px;display:inline-flex;align-items:center}
.stats{grid-template-columns:1fr;gap:10px}
.stat-mini{padding:13px 14px}
.stat-icon{width:34px;height:34px}
.stat-value{font-size:.95rem}
.glass-card{padding:16px;border-radius:14px}
.side-link{padding:14px;font-size:.95rem}
.form-group input{font-size:16px;padding:13px 14px}
.btn-primary{min-height:48px;font-size:1rem}
.rowline{font-size:.8rem;flex-wrap:wrap;overflow-wrap:anywhere}
.rowline b{overflow-wrap:anywhere;min-width:0}
/* Speicher (#resDisks): immer einzeilig halten, auch auf dünnen Hochkant-Monitoren */
#resDisks .rowline{flex-wrap:nowrap;gap:6px;font-size:.78rem;overflow-wrap:normal;white-space:nowrap}
#resDisks .rowline b{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;overflow-wrap:normal}
.card-title{font-size:.72rem}
.login-wrap{padding:16px}
.login-card{padding:24px 20px!important}
.login-title{font-size:1.2rem}
.brand h1{font-size:1rem}
.footer{margin-top:20px}
.log-box{height:240px}
}
.burger{display:none;align-items:center;justify-content:center;width:40px;height:40px;border-radius:10px;background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.1);color:#e4e6eb;font-size:1.1rem;cursor:pointer}
*{scrollbar-width:thin;scrollbar-color:#4752c4 rgba(255,255,255,.06)}
::-webkit-scrollbar{width:10px;height:10px}
::-webkit-scrollbar-track{background:rgba(255,255,255,.04);border-radius:8px}
::-webkit-scrollbar-thumb{background:linear-gradient(135deg,#5865f2,#4752c4);border-radius:8px;border:2px solid rgb(5,7,13)}
::-webkit-scrollbar-thumb:hover{background:#6a76ff}
::-webkit-scrollbar-corner{background:transparent}
.log-box::-webkit-scrollbar,.code-edit::-webkit-scrollbar,.modal-card::-webkit-scrollbar{width:8px;height:8px}
.log-box,.code-edit,.modal-card{scrollbar-width:thin;scrollbar-color:#4752c4 rgba(255,255,255,.04)}
