:root{color-scheme:dark;font-family:Inter,ui-sans-serif,system-ui,sans-serif;background:#071019;color:#e8f0f5}*{box-sizing:border-box}body{margin:0;min-height:100vh;background:radial-gradient(circle at 50% 0,#183548 0,#071019 52%)}button,input,textarea{font:inherit}button{border:0;border-radius:12px;cursor:pointer;padding:12px 18px;color:#06130f;font-weight:750;background:#25d59c}button:disabled{opacity:.5;cursor:not-allowed}.topbar{position:sticky;z-index:5;top:0;display:flex;align-items:center;justify-content:space-between;padding:max(14px,env(safe-area-inset-top)) max(20px,env(safe-area-inset-right)) 14px max(20px,env(safe-area-inset-left));border-bottom:1px solid #253d4c;background:#071019e8;backdrop-filter:blur(15px)}.brand{display:flex;align-items:center;gap:11px}.brand h1{margin:0;font-size:22px;letter-spacing:-.04em}.brand small{color:#8299a8}.pulse{width:12px;height:12px;border-radius:50%;background:#25d59c;box-shadow:0 0 18px #25d59c}.add{padding:9px 14px}main{width:min(1200px,100%);margin:auto;padding:24px}.profiles{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,340px),1fr));gap:18px;align-items:start}.server-card{padding:22px;border:1px solid #294151;border-radius:22px;background:#091620f0;box-shadow:0 16px 50px #0005}.card-head,.dialog-head,.status-row,.users-head,.actions{display:flex;align-items:center}.card-head,.dialog-head,.users-head{justify-content:space-between}.card-head h2{margin:0;font-size:19px}.server-address{margin:4px 0 0;color:#8299a8;font-size:13px}.icon{padding:7px 11px;color:#b8c7d0;background:transparent;font-size:20px}.status-row{gap:8px;margin:20px 0;color:#a9bbc7;font-size:14px}.status-row strong{margin-left:auto;color:#e8f0f5}.status-dot{width:9px;height:9px;border-radius:50%;background:#71818a}.status-dot.online{background:#25d59c;box-shadow:0 0 12px #25d59c}.connect,.disconnect{width:100%}.active{margin-top:14px}.ptt{width:100%;min-height:118px;border-radius:20px;display:grid;place-content:center;gap:4px;font-size:20px;touch-action:none;user-select:none;box-shadow:inset 0 -7px 0 #15986f}.ptt small{font-size:11px;opacity:.65}.ptt.transmitting{background:#ffb648;box-shadow:inset 0 -7px 0 #c6790a,0 0 35px #ffb64844;transform:translateY(2px)}.level{height:5px;background:#1b303d;border-radius:8px;overflow:hidden;margin:15px 2px 22px}.level div{width:0;height:100%;background:#25d59c;transition:width .05s linear}.users-head h3{margin:0;color:#a9bbc7;font-size:14px}.user-count{border-radius:99px;background:#1a303c;padding:2px 9px;font-size:12px}.users{list-style:none;padding:0;margin:8px 0 18px;max-height:130px;overflow:auto}.users li{padding:8px 0;border-bottom:1px solid #1c303b}.secondary{color:#d9e3e9;background:#1a303c}.danger{color:#ffb4b4;background:#3a1d26;margin-right:auto}.error{min-height:18px;color:#ff8d8d;margin:12px 0 0;font-size:13px}.empty{text-align:center;padding:15vh 20px}.empty h2{margin-bottom:6px}.empty p{color:#8da2af;margin:0 0 22px}dialog{width:min(620px,calc(100% - 24px));max-height:calc(100dvh - 24px);overflow:auto;color:inherit;border:1px solid #36505f;border-radius:22px;background:#0a1822;box-shadow:0 30px 100px #000b}dialog::backdrop{background:#02070bc7;backdrop-filter:blur(4px)}.dialog-head h2{margin:0}.grid{display:grid;grid-template-columns:1fr 1fr;gap:15px;margin:22px 0}.grid label{display:grid;gap:7px;color:#afc0ca;font-size:13px}.grid label span{color:#6f8795}.wide{grid-column:1/-1}input,textarea{min-width:0;width:100%;padding:12px 13px;color:inherit;border:1px solid #36505f;border-radius:11px;background:#07141d;outline:none}input:focus,textarea:focus{border-color:#25d59c;box-shadow:0 0 0 3px #25d59c22}input[type=file]{font-size:12px}.privacy{color:#8299a8;font-size:12px;line-height:1.5}.actions{gap:10px;justify-content:flex-end;margin-top:20px}
select{padding:12px;border-radius:11px;background:#07141d;color:#e8f0f5;border:1px solid #36505f}.cert-actions{display:flex;align-items:center;gap:9px;flex-wrap:wrap}.cert-actions button{padding:9px 12px;font-size:12px}.cert-actions span{color:#25d59c;font-size:12px}
@media(max-width:600px){main{padding:12px}.topbar{padding-inline:14px}.brand small{display:none}.profiles{display:block}.server-card{border-radius:18px;padding:17px;margin-bottom:12px}.grid{grid-template-columns:1fr}.wide{grid-column:auto}.actions{display:grid;grid-template-columns:1fr 1fr}.actions button{padding-inline:8px}.danger{grid-column:1/-1;order:3}.ptt{min-height:132px}}
.success{color:#25d59c;font-size:13px}.hidden{display:none}.honeypot{position:absolute;left:-9999px}.auth-tabs{display:flex;gap:8px;margin:26px 0 18px}.auth-tabs button{flex:1}.auth-tabs button:not(.selected){background:#1a303c;color:#d9e3e9}.top-actions{display:flex;align-items:center;gap:8px}.top-actions button{padding:9px 12px}@media(max-width:520px){.top-actions{gap:5px}.top-actions button{padding:8px;font-size:12px}}
.mumble-workspace{display:grid;grid-template-columns:minmax(190px,1fr) minmax(180px,.85fr);gap:14px}.channel-browser{min-height:230px;max-height:430px;overflow:auto;border:1px solid #294151;border-radius:12px;background:#07141d}.pane-title{position:sticky;top:0;z-index:1;padding:9px 11px;border-bottom:1px solid #294151;background:#10232e;color:#a9bbc7;font-size:12px;font-weight:700}.channel-row,.tree-user{width:100%;padding:7px 8px 7px calc(8px + var(--depth)*15px);border:0;border-radius:0;text-align:left;font-size:13px}.channel-row{display:block;color:inherit;background:transparent;font-weight:600}.channel-row:hover,.channel-row.current{background:#25d59c22;color:#69efc2}.tree-user{color:#9db0bc;font-size:12px}.voice-pane{min-width:0}.connection-card[data-layout="compact"] .mumble-workspace{grid-template-columns:1fr}.connection-card[data-layout="compact"] .channel-browser{max-height:220px;min-height:120px}.connection-card[data-theme="mumble"]{background:#30343a;color:#f1f1f1;border-color:#5d6269;border-radius:8px}.connection-card[data-theme="mumble"] .channel-browser{background:#202328;border-color:#62676e;border-radius:3px}.connection-card[data-theme="mumble"] .pane-title{background:#3c4148;border-color:#62676e}.connection-card[data-theme="mumble"] .channel-row.current{background:#28649b;color:#fff}.connection-card[data-theme="mumble"] .ptt{background:#4f8f4f;box-shadow:inset 0 -5px #376b37}.connection-card[data-theme="light"]{background:#f3f6f8;color:#17212a;border-color:#b6c1c9}.connection-card[data-theme="light"] .server-address,.connection-card[data-theme="light"] .status-row,.connection-card[data-theme="light"] .tree-user{color:#52636e}.connection-card[data-theme="light"] .channel-browser{background:#fff;border-color:#b6c1c9}.connection-card[data-theme="light"] .pane-title{background:#e3e9ed;border-color:#b6c1c9}.connection-card[data-theme="light"] .channel-row.current{background:#cdeee3;color:#075b42}@media(max-width:700px){.mumble-workspace{grid-template-columns:1fr}.channel-browser{min-height:130px;max-height:240px}}
.auth-shell{min-height:100vh;display:grid;place-items:center}.auth-card{width:min(420px,100%);padding:30px;border:1px solid #294151;border-radius:22px;background:#091620f0}.auth-card h2{margin-top:30px}.auth-card form,.stack{display:grid;gap:13px}.auth-card label{display:grid;gap:7px}.auth-card button{margin-top:6px}.admin-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.wide-admin{grid-column:1/-1}.navlink{color:#25d59c;margin-right:12px;text-decoration:none}.check{display:block;margin:15px 0}.check input{width:auto}.stack select{padding:12px;border-radius:11px;background:#07141d;color:#e8f0f5;border:1px solid #36505f}.data-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(110px,1fr));gap:10px;padding:10px 0;border-bottom:1px solid #294151;align-items:center}.data-row span{overflow-wrap:anywhere}.data-row small{display:block;color:#8299a8}.mini{padding:7px 9px;margin:0}.auth-card .brand h1{font-size:26px}@media(max-width:760px){.admin-grid{grid-template-columns:1fr}.wide-admin{grid-column:auto}}
.auth-card .auth-link{display:block;width:100%;margin-top:10px;padding:5px;color:#69efc2;background:transparent;font-size:13px;text-align:center}.auth-card .auth-link:hover{text-decoration:underline}
.service-message-form{display:grid;gap:10px}.service-message-form label{color:#afc0ca;font-size:13px}.service-message-form textarea{min-width:0;width:100%;min-height:100px;resize:vertical;padding:12px 13px;color:inherit;border:1px solid #36505f;border-radius:11px;background:#07141d;font:inherit;outline:none}.service-message-form textarea:focus{border-color:#25d59c;box-shadow:0 0 0 3px #25d59c22}.service-banner{position:sticky;z-index:4;top:75px;display:flex;align-items:center;gap:12px;padding:12px max(20px,calc((100% - 1160px)/2));color:#fff3d6;border-bottom:1px solid #9a6a16;background:#5c3c0df2}.service-banner[hidden]{display:none}.service-banner span{flex:1}.service-banner .icon{color:inherit}.connection-row{grid-template-columns:repeat(6,minmax(120px,1fr))}@media(max-width:900px){.connection-row{grid-template-columns:repeat(2,minmax(0,1fr))}}
.ptt-config{display:grid;grid-template-columns:minmax(120px,1fr) auto auto;align-items:center;gap:8px;padding:12px;border:1px solid #294151;border-radius:12px}.ptt-config>span,.ptt-config>small{grid-column:1/-1;color:#8299a8}.ptt-config>strong{overflow-wrap:anywhere}.ptt-config button{padding:8px 11px}.connection-card.keyboard-active{outline:2px solid #25d59c;outline-offset:2px}.connection-card.keyboard-active .profile-title::after{content:" · aktiv PTT";color:#69efc2;font-size:11px;font-weight:600}@media(max-width:600px){.ptt-config{grid-template-columns:1fr 1fr}.ptt-config>strong{grid-column:1/-1}}

/* Shared accessibility improvements for every theme and page. */
:where(button, a, input, select, textarea):focus-visible {
  outline: 3px solid #fff;
  outline-offset: 3px;
  box-shadow: 0 0 0 6px #071019;
}
.stack label { display: grid; gap: 7px; }
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation: none !important; transition: none !important; scroll-behavior: auto !important; }
}

/* Keep hidden authentication controls hidden despite label/link display rules. */
.auth-card .hidden{display:none}
.file-input-native{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}.file-input-controls{display:flex;align-items:center;gap:10px;margin-top:7px}.file-input-controls button{padding:8px 11px}.file-input-status{min-width:0;color:#8299a8;font-size:12px;overflow-wrap:anywhere}

/* User-configurable Radio DX workspace. */
.dx-editor{margin:14px 0;padding:14px;border:1px solid #294151;border-radius:12px;background:#0a1821}.dx-editor[hidden]{display:none}.dx-editor-head,.dx-dashboard-head,.dx-frame-head{display:flex;align-items:center;justify-content:space-between;gap:12px}.dx-editor-head>div{display:flex;flex-direction:column}.dx-dashboard-head{flex-wrap:wrap;justify-content:flex-start;gap:4px 12px}.dx-dashboard-head h3{margin:0;font-size:14px;line-height:1.4}.dx-dashboard-head small{line-height:1.4}.dx-editor-head small,.dx-dashboard-head small{color:#8299a8}.dx-source-row{display:grid;grid-template-columns:auto minmax(120px,.55fr) minmax(220px,1fr) auto;align-items:end;gap:10px;margin-top:12px;padding-top:12px;border-top:1px solid #294151}.dx-source-row label{margin:0}.dx-source-row .check{align-self:center}.dx-url-label{min-width:0}.connection-card.has-dx-dashboard{grid-column:1/-1}.dx-dashboard{margin-top:10px;padding:10px 12px;border:1px solid #2d6476;border-radius:12px;background:#07141d}.dx-source-choices{display:flex;flex-wrap:wrap;gap:8px;margin:8px 0}.dx-source-choices button{padding:8px 12px;background:#16303e}.dx-source-choices button.active{color:#042018;background:#69efc2}.dx-frame-panel{overflow:hidden;border:1px solid #294151;border-radius:10px;background:#fff}.dx-frame-head{padding:10px 12px;color:#e7f4fa;background:#102b38}.dx-frame-head a{color:#69efc2}.dx-frame-panel iframe{display:block;width:100%;height:min(62vh,620px);min-height:380px;border:0;background:#fff}.dx-source-image{display:block;max-width:100%;height:auto;margin:18px auto;object-fit:contain}
@media(max-width:700px){.dx-source-row{grid-template-columns:1fr 1fr}.dx-source-row .dx-url-label{grid-column:1/-1}.dx-frame-panel iframe{height:520px;min-height:320px}}

#internet-sources-list .dx-source-row{grid-template-columns:minmax(120px,.55fr) minmax(220px,1fr) auto}#dx-shared-options{display:flex;align-items:end;gap:10px;margin-top:12px}#dx-shared-options[hidden]{display:none}@media(max-width:700px){#internet-sources-list .dx-source-row{grid-template-columns:1fr}#dx-shared-options{flex-direction:column;align-items:stretch}}

#dx-shared-options>label{display:flex;flex-direction:column;align-items:stretch;gap:6px;min-width:0;flex:1}#dx-shared-source{width:100%}

#dx-source-list .dx-separate-label{grid-column:1/-1}.dx-separate-note{padding:12px;color:#102b38}

#profile-tokens{min-height:88px;resize:vertical;line-height:1.5}

.join-link-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px 18px;padding:14px 0;border-bottom:1px solid #294151;align-items:start}.join-link-summary,.join-link-url{min-width:0;overflow-wrap:anywhere}.join-link-url{grid-column:1;line-height:1.5}.join-link-actions{grid-column:2;grid-row:1 / span 2;display:flex;gap:8px;align-self:center}.join-link-actions button{white-space:nowrap}.join-source-editor{min-width:0;border-top:1px solid #294151;padding-top:12px}.join-source-editor .actions{flex-wrap:wrap;justify-content:flex-start}.join-source-editor select{min-width:0;max-width:100%}.join-source-row{display:grid;grid-template-columns:minmax(120px,1fr) minmax(160px,2fr) auto auto;gap:12px;align-items:end;margin-top:14px}.join-source-row .check{display:flex;align-items:center;gap:6px;margin:0;padding-bottom:12px}.join-source-row input[type=checkbox]{width:auto}@media(max-width:700px){.join-link-row{grid-template-columns:minmax(0,1fr)}.join-link-actions{grid-column:1;grid-row:auto;flex-wrap:wrap}.join-source-row{grid-template-columns:minmax(0,1fr)}.join-source-row .check{padding:0}.join-source-row button{justify-self:start}}

.admin-section-details>summary{cursor:pointer;color:inherit;padding:2px 0;list-style-position:outside;margin-left:18px}.admin-section-details>summary h2{display:inline;margin:0;font-size:19px}.admin-section-details>summary:focus-visible{outline:2px solid #25d59c;outline-offset:6px;border-radius:3px}.admin-section-body{margin-top:18px}.admin-section-body>.users-head:empty{display:none}.admin-section-details:not([open])>summary{margin-block:0}

.dx-dashboard-toggle{cursor:pointer;font-weight:600;font-size:14px;line-height:1.4}.dx-dashboard-toggle:focus-visible{outline:2px solid #61e9ff;outline-offset:4px}.dx-dashboard-content{margin-top:10px}.dx-dashboard-content>small{color:#8299a8}

.user-nicknames{grid-column:span 2}.user-nickname+.user-nickname{margin-top:8px}.user-nickname strong{display:block;font-weight:600}@media(max-width:480px){.user-nicknames{grid-column:1/-1}}
