
:root{
--bg:#090c10;
--sidebar:#0d1117;
--panel:#11161d;
--panel2:#151b23;
--line:#232b36;
--text:#f7f9fb;
--muted:#8994a4;
--green:#34d17b;
--yellow:#ffbd4a;
--red:#ff626d;
--blue:#64a8ff;
}

*{box-sizing:border-box}

html{scroll-behavior:smooth}

body{
margin:0;
background:var(--bg);
color:var(--text);
font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Inter,Arial,sans-serif;
}

.sidebar{
position:fixed;
left:0;
top:0;
bottom:0;
width:230px;
padding:24px 16px;
background:var(--sidebar);
border-right:1px solid var(--line);
display:flex;
flex-direction:column;
z-index:20;
}

.side-brand{
display:flex;
align-items:center;
gap:12px;
padding:0 8px 28px;
}

.logo-mark{
width:38px;
height:38px;
border-radius:11px;
background:#fff;
color:#080b10;
font-weight:900;
font-size:22px;
display:grid;
place-items:center;
}

.side-brand strong{
font-size:18px;
display:block;
}

.side-brand span{
color:var(--muted);
font-size:12px;
}

nav{
display:flex;
flex-direction:column;
gap:5px;
}

nav a{
display:flex;
align-items:center;
gap:12px;
padding:11px 13px;
border-radius:10px;
text-decoration:none;
color:#9ba6b5;
font-size:14px;
}

nav a:hover,
nav a.active{
background:#181e27;
color:#fff;
}

.sidebar nav .nav-icon{
display:block;
width:20px;
height:20px;
flex:0 0 20px;
}

.side-server{
margin-top:auto;
padding:14px;
background:#121821;
border:1px solid var(--line);
border-radius:12px;
font-size:13px;
}

.side-server small{
display:block;
color:var(--muted);
margin:5px 0 0 19px;
}

.dot{
display:inline-block;
width:8px;
height:8px;
border-radius:50%;
background:var(--green);
margin-right:7px;
box-shadow:0 0 10px rgba(52,209,123,.5);
}

.app{
margin-left:230px;
min-height:100vh;
}

.topbar{
height:82px;
display:flex;
align-items:center;
justify-content:space-between;
padding:0 34px;
border-bottom:1px solid var(--line);
background:rgba(9,12,16,.93);
position:sticky;
top:0;
z-index:10;
backdrop-filter:blur(14px);
}

.topbar h1{
margin:0;
font-size:21px;
}

.topbar p{
margin:4px 0 0;
font-size:12px;
color:var(--muted);
}

main{
max-width:1480px;
margin:0 auto;
padding:30px 34px 60px;
}

.section-head{
display:flex;
align-items:center;
justify-content:space-between;
gap:20px;
margin-bottom:20px;
}

.section-head h2{
font-size:18px;
margin:0;
}

.section-head p{
margin:5px 0 0;
font-size:13px;
color:var(--muted);
}

.cards{
display:grid;
grid-template-columns:repeat(6,1fr);
gap:12px;
margin-bottom:22px;
}

.card{
padding:19px;
border:1px solid var(--line);
border-radius:14px;
background:var(--panel);
}

.card span{
display:block;
font-size:12px;
color:var(--muted);
margin-bottom:9px;
}

.card strong{
font-size:30px;
}

.card.green strong{color:var(--green)}
.card.yellow strong{color:var(--yellow)}
.card.red strong{color:var(--red)}

.status-card{
display:block;
color:var(--text);
text-decoration:none;
cursor:pointer;
transition:border-color .15s,background .15s,box-shadow .15s;
}

.status-card:hover{
border-color:var(--yellow);
background:#191f28;
}

.status-card[aria-current="true"]{
border-color:var(--yellow);
box-shadow:inset 0 0 0 1px var(--yellow);
}

.status-card:focus-visible{
outline:3px solid var(--yellow);
outline-offset:4px;
}

#clients{scroll-margin-top:100px}

.client-filter-toolbar{
display:flex;
align-items:center;
justify-content:space-between;
flex-wrap:wrap;
gap:12px;
margin:0 0 18px;
color:var(--muted);
font-size:13px;
}

.client-filter-summary,.client-filter-resets{
display:flex;
align-items:center;
flex-wrap:wrap;
gap:12px;
min-width:0;
}

.filter-badge{
padding:7px 11px;
border:1px solid #675326;
border-radius:8px;
color:var(--yellow);
background:#292311;
font-weight:600;
}

.client-filter-resets a{color:var(--text);text-underline-offset:3px}
.client-filter-resets a:hover{color:var(--yellow)}
.search-applied{overflow-wrap:anywhere}

.panel{
background:var(--panel);
border:1px solid var(--line);
border-radius:16px;
padding:22px;
margin-bottom:20px;
}

.metrics{
display:grid;
grid-template-columns:repeat(6,1fr);
gap:12px;
}

.metric{
background:var(--panel2);
border:1px solid var(--line);
border-radius:13px;
padding:16px;
min-height:115px;
}

.metric span{
display:block;
color:var(--muted);
font-size:12px;
margin-bottom:9px;
}

.metric strong{
font-size:24px;
display:block;
}

.metric small{
display:block;
color:var(--muted);
font-size:11px;
margin-top:5px;
}

.metric.speed strong{
font-size:29px;
}

.metric .uptime{
font-size:18px;
padding-top:7px;
}

.bar{
height:5px;
background:#242d39;
border-radius:999px;
overflow:hidden;
margin-top:15px;
}

.bar i{
display:block;
height:100%;
background:var(--green);
border-radius:999px;
}

.metric-note{
color:var(--muted);
font-size:11px;
margin:13px 0 0;
}

.server-online{
font-size:12px;
color:#c9d0da;
}

.notice{
padding:15px 18px;
margin-bottom:20px;
border-radius:13px;
border:1px solid #6d5117;
background:#2b220e;
color:#f2ce79;
font-size:13px;
}

.create-grid{
display:grid;
grid-template-columns:1.2fr 1fr 1.2fr .8fr auto;
gap:11px;
align-items:end;
}

label span{
display:block;
font-size:11px;
color:var(--muted);
margin:0 0 7px 2px;
}

input,
select,
button{
font:inherit;
border:1px solid var(--line);
background:var(--panel2);
color:var(--text);
border-radius:10px;
padding:12px 13px;
outline:none;
}

input:focus,
select:focus{
border-color:#445064;
}

.create-grid input,
.create-grid select{
width:100%;
height:46px;
}

button{
cursor:pointer;
}

.primary{
background:#f6f7f9;
color:#0c0f14;
border-color:#f6f7f9;
font-weight:750;
}

.create-btn{
height:46px;
white-space:nowrap;
}

.ghost{
background:transparent;
}

.hint{
color:var(--muted);
font-size:12px;
}

.search{
display:flex;
gap:8px;
}

.search input{
width:340px;
}

.table-wrap{
overflow:auto;
}

table{
width:100%;
border-collapse:collapse;
min-width:960px;
}

th,
td{
text-align:left;
padding:14px 12px;
border-top:1px solid var(--line);
font-size:13px;
}

th{
color:var(--muted);
font-size:10px;
text-transform:uppercase;
letter-spacing:.08em;
}

.client-link{
font-weight:750;
color:#fff;
text-decoration:none;
}

.client-link:hover{
text-decoration:underline;
}

.sub{
color:var(--muted);
font-size:11px;
margin-top:4px;
}

.mono{
font-family:ui-monospace,SFMono-Regular,Menlo,monospace;
}

.status{
display:inline-flex;
padding:5px 8px;
border-radius:999px;
font-size:10px;
font-weight:850;
letter-spacing:.06em;
}

.status.online{
background:#103822;
color:#69e49b;
}

.status.offline{
background:#222934;
color:#aeb7c4;
}

.status.never{
background:#29252e;
color:#c7b8ce;
}

.status.expired{
background:#3c2a0d;
color:#ffd173;
}

.status.disabled{
background:#3d151a;
color:#ff9fa6;
}

.empty{
padding:40px;
text-align:center;
color:var(--muted);
}

.mini-grid{
display:grid;
grid-template-columns:repeat(3,1fr);
gap:14px;
}

.panel.mini{
margin:0;
}

.mini h3{
font-size:13px;
color:var(--muted);
margin:0 0 12px;
}

.mini strong{
font-size:25px;
display:block;
}

.mini span{
font-size:11px;
color:var(--muted);
display:block;
margin-top:6px;
}

@media(max-width:1200px){

.cards{
grid-template-columns:repeat(3,1fr);
}

.metrics{
grid-template-columns:repeat(3,1fr);
}

.create-grid{
grid-template-columns:1fr 1fr;
}

}

@media(max-width:760px){

.sidebar{
width:66px;
padding:18px 9px;
}

.side-brand div:not(.logo-mark),
.sidebar nav span,
.side-server{
display:none;
}

.logo-mark{
width:42px;
height:42px;
}

nav a{
justify-content:center;
font-size:18px;
padding:12px;
}

.app{
margin-left:66px;
}

.topbar{
padding:0 18px;
}

main{
padding:20px 14px 50px;
}

.cards,
.metrics,
.mini-grid{
grid-template-columns:1fr 1fr;
}

.create-grid{
grid-template-columns:1fr;
}

.section-head{
align-items:flex-start;
flex-direction:column;
}

.search{
width:100%;
}

.search input{
width:100%;
}

}



/* ===== CLIENT PAGE ===== */

.crumb{
display:inline-block;
font-size:12px;
color:var(--muted);
text-decoration:none;
margin-bottom:4px;
}

.crumb:hover{
color:#fff;
}

.client-main{
max-width:1250px;
}

.client-layout{
display:grid;
grid-template-columns:minmax(0,1.6fr) 360px;
gap:20px;
}

.client-info{
margin-bottom:20px;
}

.info-grid{
display:grid;
grid-template-columns:repeat(4,1fr);
gap:12px;
margin-bottom:24px;
}

.info-item{
background:var(--panel2);
border:1px solid var(--line);
border-radius:13px;
padding:17px;
}

.info-item span{
display:block;
font-size:11px;
color:var(--muted);
margin-bottom:8px;
}

.info-item strong{
font-size:17px;
}

.client-details{
display:grid;
grid-template-columns:1fr 1fr;
border-top:1px solid var(--line);
}

.client-details > div{
padding:15px 8px;
border-bottom:1px solid var(--line);
}

.client-details > div:nth-child(odd){
padding-right:22px;
}

.client-details span{
display:block;
font-size:11px;
color:var(--muted);
margin-bottom:5px;
}

.client-details strong{
font-size:13px;
font-weight:600;
}

.detail-small{
font-size:11px !important;
word-break:break-all;
}

.qr-card{
text-align:center;
}

.qr-title h2{
margin:0;
font-size:18px;
}

.qr-title p{
margin:5px 0 0;
color:var(--muted);
font-size:12px;
}

.qr-wrap{
margin:20px auto;
background:#fff;
padding:13px;
border-radius:15px;
width:min(275px,100%);
}

.qr-wrap img{
display:block;
width:100%;
height:auto;
}

.activation-box{
background:var(--panel2);
border:1px solid var(--line);
border-radius:13px;
padding:15px;
margin:0 0 12px;
}

.activation-box span{
display:block;
font-size:11px;
color:var(--muted);
}

.activation-box strong{
display:block;
font-size:27px;
letter-spacing:.17em;
margin:7px 0;
}

.activation-box small{
color:var(--muted);
font-size:10px;
}

.download-button{
display:block;
background:#f5f7f9;
color:#090c10;
text-decoration:none;
font-weight:800;
border-radius:11px;
padding:13px;
}

.security-note{
font-size:10px;
line-height:1.5;
color:var(--muted);
margin:12px 0 0;
}

.subscription-panel{
margin-top:0;
}

.expire-big{
font-size:18px;
}

.extend-row{
display:flex;
gap:9px;
flex-wrap:wrap;
}

.extend-btn{
min-width:100px;
}

.extend-btn:hover{
border-color:#4c596b;
background:#1b222c;
}

/* Exact shared expiry edits; native controls also work without JavaScript. */
.subscription-panel{scroll-margin-top:100px;}
.expiry-editor{margin-top:18px;padding-top:16px;border-top:1px solid var(--line);}
.expiry-editor summary{cursor:pointer;font-weight:600;font-size:14px;padding:5px 0;}
.expiry-editor summary:focus-visible{outline:2px solid var(--blue);outline-offset:3px;}
.expiry-form{margin-top:16px;max-width:680px;}
.expiry-date-label{display:block;max-width:280px;}
.expiry-date-label > span{display:block;margin-bottom:7px;font-size:12px;color:var(--muted);}
.expiry-date-label input{width:100%;min-height:46px;color-scheme:dark;}
.expiry-confirm{display:flex;align-items:flex-start;gap:10px;margin:16px 0;font-size:13px;line-height:1.5;}
.expiry-confirm input{width:18px;height:18px;min-width:18px;margin:1px 0 0;accent-color:var(--yellow);}
.expiry-save{display:flex;justify-content:flex-start;}
@media(max-width:700px){
.expiry-date-label{max-width:none;}
.expiry-save button{width:100%;}
}

.danger-panel{
display:flex;
align-items:center;
justify-content:space-between;
gap:25px;
}

.danger-panel h2{
margin:0;
font-size:17px;
}

.danger-panel p{
margin:6px 0 0;
color:var(--muted);
font-size:12px;
max-width:600px;
}

.danger-actions{
display:flex;
gap:10px;
flex-shrink:0;
}

.disable-btn{
background:#35280c;
border-color:#70551b;
color:#ffd477;
}

.enable-btn{
background:#123a24;
border-color:#276a43;
color:#71e59f;
}

.delete-btn{
background:#351519;
border-color:#6e2c33;
color:#ff9ca4;
}

.disable-btn:hover,
.delete-btn:hover,
.enable-btn:hover{
filter:brightness(1.15);
}

@media(max-width:1050px){

.client-layout{
grid-template-columns:1fr;
}

.qr-card{
max-width:460px;
}

.info-grid{
grid-template-columns:1fr 1fr;
}

}

@media(max-width:700px){

.info-grid,
.client-details{
grid-template-columns:1fr;
}

.danger-panel{
align-items:flex-start;
flex-direction:column;
}

.danger-actions{
width:100%;
flex-direction:column;
}

.danger-actions form,
.danger-actions button{
width:100%;
}

}



.reset-device-btn{
background:#17263a;
border-color:#29486d;
color:#9ec9ff;
}

.reset-device-btn:hover:not(:disabled){
filter:brightness(1.18);
}

.reset-device-btn:disabled{
opacity:.35;
cursor:not-allowed;
}


.refresh-brand{
width:100%;
border:0;
background:transparent;
color:inherit;
font:inherit;
text-align:left;
cursor:pointer;
}

.refresh-brand:hover{opacity:.82}

.refresh-brand:focus-visible{
outline:2px solid var(--blue);
outline-offset:4px;
border-radius:12px;
}

.panel-refresh{
border:0;
background:transparent;
color:inherit;
font:inherit;
padding:6px 0;
text-align:left;
cursor:pointer;
}

.panel-refresh:hover h1{color:var(--blue)}

.panel-refresh:focus-visible{
outline:2px solid var(--blue);
outline-offset:5px;
border-radius:8px;
}

/* Multi-device subscriptions */
.create-grid{
grid-template-columns:1.2fr 1fr 1.2fr .8fr .65fr auto;
}

.devices-panel{margin-bottom:20px;}

.device-list{
display:grid;
gap:9px;
margin-bottom:16px;
}

.device-row{
display:flex;
align-items:center;
justify-content:space-between;
gap:16px;
padding:13px 15px;
border:1px solid var(--line);
border-radius:12px;
background:var(--panel2);
color:var(--text);
text-decoration:none;
}

.device-row:hover,
.device-row.current{
border-color:#3a71b3;
background:#172333;
}

.device-row strong,
.device-row span,
.device-row small{display:block;}

.device-row strong{font-size:14px;}
.device-row > div:first-child span,
.device-meta small{color:var(--muted);font-size:11px;margin-top:4px;}

.device-meta{text-align:right;}

.device-add-grid{
display:grid;
grid-template-columns:1fr 1fr auto;
gap:11px;
align-items:end;
}

.device-add-grid input{width:100%;height:46px;}

@media(max-width:1050px){
.create-grid{grid-template-columns:repeat(3,1fr);}
}

@media(max-width:700px){
.create-grid,
.device-add-grid{grid-template-columns:1fr;}
.device-row{align-items:flex-start;flex-direction:column;}
.device-meta{text-align:left;}
}

/* Multi-device layout refinement */
.danger-panel{
align-items:flex-start;
flex-direction:column;
}

.danger-actions{
width:100%;
flex-wrap:wrap;
}

.danger-actions form{
display:flex;
gap:9px;
flex-wrap:wrap;
align-items:center;
}

.danger-actions input{
width:190px;
}

/* Shared customer contacts; scoped to avoid affecting VPN controls. */
.contacts-panel{scroll-margin-top:100px;}
.contact-preference{
font-size:12px;
padding:7px 10px;
border:1px solid #36533f;
border-radius:9px;
background:#14271d;
color:#8ee8b3;
white-space:nowrap;
}
.contact-actions{
display:flex;
flex-wrap:wrap;
gap:9px;
margin-bottom:12px;
}
.contact-action{
display:inline-flex;
align-items:center;
justify-content:center;
min-height:42px;
padding:10px 14px;
border:1px solid var(--line);
border-radius:10px;
background:var(--panel2);
color:var(--text);
font:inherit;
font-size:13px;
text-decoration:none;
cursor:pointer;
}
.contact-action:hover{border-color:var(--blue);background:#192333;}
.contact-action:focus-visible,
.contact-editor summary:focus-visible,
.contact-message summary:focus-visible{
outline:2px solid var(--blue);
outline-offset:3px;
}
.contact-action:disabled{opacity:.6;cursor:wait;}
.contact-action.telegram{border-color:#29516c;color:#9edaff;}
.contact-action.vk{border-color:#2b4c7b;color:#a7caff;}
.contact-action.max{border-color:#56416e;color:#d3b7ff;}
.contact-help{
color:var(--muted);
font-size:12px;
line-height:1.6;
margin:8px 0;
}
.contact-editor,
.contact-message{
margin-top:16px;
padding-top:14px;
border-top:1px solid var(--line);
}
.contact-editor summary,
.contact-message summary{
cursor:pointer;
font-size:14px;
font-weight:600;
padding:5px 0;
}
.contact-form{
display:grid;
grid-template-columns:repeat(2,minmax(0,1fr));
gap:14px 18px;
margin-top:16px;
}
.contact-form label{display:block;min-width:0;}
.contact-form label > span{display:block;font-size:12px;color:var(--muted);margin-bottom:7px;}
.contact-form input,
.contact-form select{width:100%;min-width:0;height:46px;}
.contact-full{grid-column:1/-1;}
.contact-save{display:flex;justify-content:flex-end;}
.contact-message textarea,
.contact-copy-dialog textarea,
.contact-copy-fallback textarea{
display:block;
width:100%;
margin:12px 0;
padding:12px;
border:1px solid var(--line);
border-radius:10px;
background:var(--panel2);
color:var(--text);
font:inherit;
font-size:13px;
line-height:1.5;
resize:vertical;
}
.contact-notice{padding:11px 14px;border-radius:10px;font-size:13px;}
.contact-notice.success{border:1px solid #276a43;background:#123a24;color:#99e9ba;}
.contact-notice.error{border:1px solid #6e2c33;background:#351519;color:#ffb3b9;}
.contact-feedback{min-height:18px;font-size:12px;color:var(--green);margin:12px 0 0;}
.contact-copy-dialog{
width:min(560px,calc(100% - 32px));
padding:22px;
border:1px solid var(--line);
border-radius:16px;
background:var(--panel);
color:var(--text);
}
.contact-copy-dialog::backdrop{background:rgba(0,0,0,.72);}
.contact-copy-dialog h2{font-size:18px;margin:0 0 12px;}
.contact-copy-fallback:not([hidden]){margin-top:14px;padding:14px;border:1px solid var(--line);border-radius:10px;}
.contact-list-links{display:flex;gap:6px;flex-wrap:wrap;margin-top:6px;}
.contact-list-links a{font-size:11px;color:#a7caff;text-decoration:none;padding:3px 6px;border:1px solid var(--line);border-radius:6px;}
.contact-list-links a:hover{border-color:var(--blue);}

@media(max-width:700px){
.contact-form{grid-template-columns:1fr;}
.contact-actions .contact-action{flex:1 1 auto;}
.contact-save button{width:100%;}
.contact-preference{white-space:normal;}
}

@media(max-width:700px){
.danger-actions form,
.danger-actions input{
width:100%;
}
}

/* Client groups and independent application/server choices. */
section[id],div[id="statistics"],div[id="settings"]{scroll-margin-top:105px;}
input:focus-visible,select:focus-visible,button:focus-visible,a:focus-visible,summary:focus-visible{outline:2px solid var(--blue);outline-offset:3px;}
[hidden]{display:none !important;}
.topbar-actions{display:flex;align-items:center;gap:18px;}
.topbar-actions form{margin:0;}
.topbar-create{color:var(--text);font-size:13px;font-weight:650;text-decoration:none;}
.topbar-create:hover{color:var(--blue);}
.quiet-link{color:#a7caff;text-decoration:none;font-size:12px;white-space:nowrap;}
.quiet-link:hover{color:#fff;}
.overview-heading{margin-bottom:16px;}
.side-server-title{display:block;color:var(--muted);font-size:10px;letter-spacing:.05em;margin-bottom:12px;}
.side-server-list a{display:block;text-decoration:none;color:var(--text);padding:7px 0;font-size:12px;}
.side-server-list small{font-size:10px;margin-top:3px;}
.dot.unavailable{background:var(--muted);box-shadow:none;}
.server-cards{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin-bottom:20px;}
.server-card{border:1px solid var(--line);border-radius:14px;padding:18px 20px;background:linear-gradient(125deg,#151d28,var(--panel));}
.server-card.state-unavailable{background:var(--panel);}
.server-card-heading{display:flex;align-items:center;gap:12px;}
.server-location-icon{display:grid;place-items:center;width:40px;height:40px;flex-shrink:0;border:1px solid #304059;border-radius:12px;background:#1c293b;color:#bed5f5;font-weight:750;}
.state-unavailable .server-location-icon{color:var(--muted);background:var(--panel2);border-color:var(--line);}
.server-card h3{font-size:16px;margin:0;}
.server-card p{font-size:11px;color:var(--muted);margin:5px 0 0;overflow-wrap:anywhere;}
.server-state{margin-left:auto;font-size:11px;white-space:nowrap;color:#b8c6d7;}
.state-unavailable .server-state{color:var(--muted);}
.server-card-bottom{display:flex;justify-content:space-between;gap:12px;align-items:center;margin-top:16px;padding-top:12px;border-top:1px solid var(--line);font-size:11px;color:var(--muted);}
.server-card-bottom strong{font-size:15px;color:var(--text);margin-right:4px;}
.filter-hint{color:var(--muted);font-size:12px;margin:8px 0 12px;}
.multiserver-create{grid-template-columns:repeat(4,minmax(0,1fr));gap:15px 14px;}
.multiserver-create label,.multiserver-search label,.multiserver-device-add label{min-width:0;}
.creation-footer{grid-column:1/-1;display:flex;align-items:center;justify-content:space-between;gap:24px;margin-top:2px;}
.creation-footer .contact-help{margin:0;max-width:760px;font-size:11px;}
.creation-footer .create-btn{flex-shrink:0;}
.server-suggestion{grid-column:1/-1;border:1px solid #355078;background:#152338;color:#b8d4ff;border-radius:10px;padding:11px 13px;font-size:12px;margin:0;line-height:1.6;}
.text-action{color:#d4e5ff;padding:0;margin-left:8px;border:0;border-radius:3px;background:transparent;font-size:12px;font-weight:700;text-decoration:underline;text-underline-offset:3px;}
.view-chip{font-size:12px;font-weight:650;padding:8px 12px;border:1px solid #3f4c61;background:#1b2533;border-radius:9px;color:#d4e0f0;white-space:nowrap;}
.multiserver-search{display:grid;grid-template-columns:minmax(130px,.7fr) minmax(200px,1fr) minmax(200px,1.5fr) auto;align-items:end;gap:12px;margin-bottom:18px;}
.multiserver-search input,.multiserver-search select{width:100%;min-width:0;height:44px;}
.multiserver-search button{height:44px;}
.filter-badge{padding:6px 9px;font-size:11px;}
.client-filter-toolbar{font-size:12px;margin-bottom:16px;}
.customer-groups{display:grid;gap:16px;}
.customer-group{min-width:0;background:#10161e;border:1px solid #2b3442;border-radius:13px;overflow:hidden;}
.customer-heading{display:flex;gap:13px;align-items:center;padding:17px 18px;background:linear-gradient(115deg,#18212d,#141b24);}
.customer-avatar{width:42px;height:42px;flex-shrink:0;border-radius:12px;background:#273143;border:1px solid #364258;display:grid;place-items:center;color:#cfdbed;font-size:18px;font-weight:750;}
.customer-identity{min-width:0;flex:1;}
.customer-name{font-size:15px;font-weight:750;color:var(--text);text-decoration:none;overflow-wrap:anywhere;}
.customer-name:hover{color:var(--blue);}
.customer-description{display:flex;flex-wrap:wrap;gap:6px 15px;font-size:11px;color:var(--muted);margin-top:5px;}
.customer-expiry{text-align:right;font-size:11px;flex-shrink:0;}
.customer-expiry>span{display:block;color:var(--muted);margin-bottom:5px;}
.customer-expiry strong{font-size:13px;display:block;font-weight:650;}
.customer-expiry>a{display:block;color:#a7caff;text-decoration:none;margin-top:6px;}
.customer-devices table{min-width:890px;}
.customer-devices th{padding:11px 13px;background:#111922;font-size:9px;}
.customer-devices td{padding:14px 13px;font-size:12px;vertical-align:middle;}
.customer-devices td:first-child{min-width:180px;}
.customer-devices .client-link{font-size:13px;}
.customer-devices .sub{font-size:10px;}
.customer-devices .status{font-size:9px;letter-spacing:0;white-space:nowrap;}
.server-tag{display:inline-flex !important;align-items:center;color:#b8d3fb;background:#182b44;border:1px solid #2a466d;padding:4px 7px;border-radius:6px;font-size:10px;white-space:nowrap;}
.server-tag.amsterdam{color:#d2c2f7;background:#2b223d;border-color:#4b3d67;}
.server-tag.germany{color:#b8e8df;background:#19342e;border-color:#315e51;}
.app-label{font-size:11px;color:#d0d7e2;}
.last-seen{color:#aeb9c8;white-space:nowrap;font-size:11px !important;}
.traffic-value{white-space:nowrap;font-variant-numeric:tabular-nums;}
.activation-inline{display:block;font-size:13px;font-weight:650;letter-spacing:.08em;margin-bottom:7px;color:#e8d4a5;}
.row-actions{display:flex;flex-wrap:wrap;gap:6px;}
.row-action{display:inline-flex;align-items:center;justify-content:center;border:1px solid #364257;background:#1b2532;border-radius:7px;padding:6px 8px;min-height:29px;color:#d0dcef;font-size:10px;font-weight:550;white-space:nowrap;text-decoration:none;}
.row-action:hover{background:#23334a;border-color:#658bbd;}
.row-action:disabled{opacity:.6;cursor:wait;}
.sync-warning{font-size:10px;color:var(--yellow);margin-top:5px;}
.data-availability-note{border:1px solid #354054;background:#19212d;color:#c6cfdd;padding:12px 14px;border-radius:10px;font-size:12px;line-height:1.6;margin:12px 0;}
.empty-table{min-width:0;}
.server-details-section{padding:0 22px;}
.server-details>summary{cursor:pointer;display:flex;align-items:center;justify-content:space-between;gap:15px;padding:20px 0;list-style:none;}
.server-details>summary::-webkit-details-marker{display:none;}
.server-details>summary strong{font-size:15px;display:block;}
.server-details>summary small{color:var(--muted);font-size:11px;display:block;margin-top:5px;}
.details-prompt{font-size:12px;color:#a7caff;}
.details-prompt::after{content:' ▾';}
.server-details[open] .details-prompt::after{content:' ▴';}
.server-detail-list{display:grid;gap:18px;}
.server-detail{padding:18px 0;border-top:1px solid var(--line);}
.server-detail h3{font-size:15px;margin:0;}
.server-detail .section-head{margin-bottom:14px;}
.server-detail .metrics{gap:10px;}
.server-detail .metric{min-height:105px;padding:14px;}
.server-detail .metric strong{font-size:21px;}
.server-detail .metric .uptime{font-size:15px;}
.server-details>.metric-note{margin:0 0 20px;}
.metric progress{width:100%;height:5px;margin-top:15px;border:0;border-radius:999px;overflow:hidden;appearance:none;}
.metric progress::-webkit-progress-bar{background:#242d39;}
.metric progress::-webkit-progress-value{background:var(--green);}
.metric progress::-moz-progress-bar{background:var(--green);}
.mini .quiet-link{display:inline-block;margin-top:13px;}
.mini .app-summary{font-size:17px;line-height:1.6;}
.client-page .topbar{height:auto;min-height:90px;gap:16px;padding-top:12px;padding-bottom:12px;}
.client-page .topbar p{max-width:640px;line-height:1.5;}
.device-platform{display:flex !important;align-items:center;gap:8px;flex-wrap:wrap;margin-top:8px !important;}
.device-platform>span{margin:0 !important;}
.multiserver-device-add{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;}
.multiserver-device-add select{width:100%;height:46px;}
.multiserver-device-add>.primary{grid-column:1/-1;justify-self:start;}
.primary:disabled{opacity:.45;cursor:not-allowed;}
.copy-code-button{width:100%;font-size:13px;}
.manual-config{margin-top:20px;padding-top:15px;border-top:1px solid var(--line);}
.manual-config summary{color:var(--muted);font-size:12px;cursor:pointer;margin-bottom:12px;}
.config-copy-button{width:100%;margin-top:10px;}
.qr-card .activation-box{margin-top:22px;}
.legacy-activation .row-action{margin-top:10px;}
.config-copy-dialog textarea,.config-copy-fallback textarea{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:11px;line-height:1.5;}
.config-feedback:empty{display:none;}
.config-feedback:not(:empty){position:fixed;z-index:60;bottom:22px;left:50%;transform:translateX(-50%);max-width:min(600px,calc(100% - 32px));width:max-content;padding:13px 18px;margin:0;border:1px solid #32734f;border-radius:11px;background:#163426;color:#c2f6d7;font-size:13px;line-height:1.5;box-shadow:0 8px 35px #0008;}
.config-feedback.error{border-color:#85404b;background:#3b1c24;color:#ffd0d5;}
.config-copy-fallback:not([hidden]){position:fixed;z-index:65;left:50%;top:50%;transform:translate(-50%,-50%);width:min(580px,calc(100% - 28px));padding:20px;border:1px solid #465771;border-radius:14px;background:var(--panel);box-shadow:0 0 0 100vmax #000a;}
.config-copy-fallback label{font-size:13px;color:var(--muted);line-height:1.6;}
.config-copy-fallback textarea{display:block;resize:vertical;width:100%;max-height:55vh;padding:12px;margin:14px 0;border:1px solid var(--line);border-radius:10px;background:var(--panel2);color:var(--text);}
@media(max-width:1200px){
.server-card{padding:16px;}
.server-card-heading{flex-wrap:wrap;gap:10px;}
.server-state{margin-left:auto;}
.multiserver-search{grid-template-columns:1fr 1.4fr;}
.multiserver-search .search-query{grid-column:1;}
.multiserver-search button{justify-self:start;min-width:100px;}
.server-detail .metrics{grid-template-columns:repeat(3,minmax(0,1fr));}
}
@media(max-width:1050px){
.multiserver-create{grid-template-columns:repeat(2,minmax(0,1fr));}
.creation-footer{gap:16px;}
.server-cards{grid-template-columns:1fr;}
.server-card-heading{flex-wrap:nowrap;}
}
@media(max-width:760px){
.sidebar .refresh-brand{padding:0 0 23px;}
.server-card-heading{flex-wrap:wrap;}
.topbar-actions{gap:10px;}
.topbar-create{font-size:11px;}
.topbar-actions .ghost{font-size:11px;padding:9px;}
.topbar h1{font-size:18px;}
.topbar p{font-size:10px;}
.panel{padding:17px;}
.cards{gap:8px;}
.card{padding:14px;}
.card span{font-size:10px;}
.card strong{font-size:25px;}
.creation-footer{align-items:stretch;flex-direction:column;}
.creation-footer .create-btn{width:100%;}
.customer-heading{padding:14px;flex-wrap:wrap;gap:10px;}
.customer-avatar{width:35px;height:35px;border-radius:10px;font-size:15px;}
.customer-expiry{width:100%;text-align:left;border-top:1px solid var(--line);padding-top:10px;margin-top:3px;display:flex;gap:10px;align-items:center;}
.customer-expiry>span,.customer-expiry>a{margin:0;}
.customer-expiry>a{margin-left:auto;}
.server-details-section{padding:0 17px;}
.server-detail .metrics{grid-template-columns:repeat(2,minmax(0,1fr));}
.server-details>summary{padding:18px 0;}
.client-page .topbar{align-items:flex-start;}
.client-page .topbar>div{min-width:0;}
.client-page .topbar>.status{margin-top:5px;flex-shrink:0;}
.mini-grid{grid-template-columns:1fr;}
.customer-devices table,.customer-devices tbody{display:block;min-width:0;}
.customer-devices thead{display:none;}
.customer-devices tr{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px 12px;border-top:1px solid var(--line);padding:15px;}
.customer-devices td{display:block;min-width:0;padding:0;border:0;}
.customer-devices td:first-child{grid-column:1/-1;min-width:0;padding-bottom:12px;border-bottom:1px solid var(--line);}
.customer-devices td::before{content:attr(data-label);display:block;color:var(--muted);font-size:9px;margin-bottom:6px;}
.customer-devices .device-access{grid-column:1/-1;}
.customer-devices .last-seen{white-space:normal;}
.customer-devices .row-action{min-height:34px;padding:7px 11px;font-size:11px;}
}
@media(max-width:480px){
.multiserver-create,.multiserver-device-add,.multiserver-search{grid-template-columns:1fr;}
.multiserver-search button{width:100%;justify-self:stretch;}
.multiserver-device-add>.primary{width:100%;}
.server-card-bottom{align-items:flex-start;flex-direction:column;gap:8px;}
.server-card .server-state{margin-left:52px;}
.customer-expiry{flex-wrap:wrap;}
.topbar-create{display:none;}
.client-page .topbar{flex-direction:column;gap:8px;}
}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto;}*{transition:none !important;}}

/* Foreign configurations remain separate from customer subscriptions. */
.server-card-links{display:flex;align-items:center;justify-content:flex-end;gap:14px;flex-wrap:wrap;}
.unmanaged-server-link{color:#e4c384;}
.unmanaged-server-link:hover{color:#ffe4b2;}
.readonly-badge{flex-shrink:0;font-size:11px;font-weight:650;white-space:nowrap;color:#c0cbd9;background:#1c2531;border:1px solid #3c485a;border-radius:8px;padding:8px 11px;}
.unmanaged-readonly-note{margin:0 0 15px;border-left:3px solid #60748e;padding:3px 0 3px 12px;color:#b6c2d2;font-size:12px;line-height:1.7;max-width:820px;}
.unmanaged-summary{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:8px 18px;color:#aeb9c8;font-size:12px;}
.unmanaged-summary strong{font-size:14px;color:var(--text);}
.unmanaged-filter-help{font-size:11px;margin:8px 0 17px;}
.unmanaged-peers{border:1px solid var(--line);border-radius:11px;background:#10161e;}
.unmanaged-peers table{min-width:920px;}
.unmanaged-peers th{padding:12px;background:#151d28;font-size:9px;border-top:0;}
.unmanaged-peers td{padding:14px 12px;font-size:12px;vertical-align:middle;}
.unmanaged-peers .status{font-size:9px;letter-spacing:0;white-space:nowrap;}
.unmanaged-name{font-size:12px;font-weight:600;overflow-wrap:anywhere;}
.unmanaged-address{max-width:250px;overflow-wrap:anywhere;font-size:11px !important;}
.unmanaged-address strong{font-size:11px;font-weight:500;}
.unmanaged-address .sub{font-size:10px;line-height:1.5;}
.unmanaged-peers .unmanaged-empty{padding:28px;white-space:normal;text-align:center;color:var(--muted);}
.external-delete-button{border:1px solid #5b3038;border-radius:7px;padding:7px 9px;min-height:30px;background:#2b171d;color:#ffb5bd;font-size:10px;}
.external-delete-button:hover:not(:disabled){border-color:#99515e;background:#3d1b25;}
.external-delete-button:disabled{opacity:.4;cursor:not-allowed;}
.external-delete-details{display:grid;gap:12px;margin:18px 0;}
.external-delete-details>div{display:grid;grid-template-columns:90px minmax(0,1fr);gap:15px;}
.external-delete-details dt{color:var(--muted);font-size:12px;}
.external-delete-details dd{margin:0;font-size:13px;overflow-wrap:anywhere;}
.external-delete-warning{padding:12px;border:1px solid #663039;border-radius:9px;background:#2c171d;color:#ffc2c8;font-size:12px;line-height:1.6;}
.external-delete-dialog label{display:block;margin-top:18px;}
.external-delete-dialog label>span{font-size:12px;color:#b8c4d5;line-height:1.5;margin-bottom:9px;}
.external-delete-dialog input[type="text"]{width:100%;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:13px;}
.external-delete-dialog .external-delete-exclusive{display:flex;align-items:flex-start;gap:10px;margin-top:18px;}
.external-delete-exclusive input{width:18px;height:18px;min-width:18px;margin:2px 0 0;accent-color:var(--red);}
.external-delete-dialog .external-delete-exclusive>span{margin:0;font-size:12px;line-height:1.6;}
.external-delete-actions{display:flex;align-items:center;justify-content:flex-end;gap:10px;margin-top:20px;}
.external-delete-actions .delete-btn{font-size:13px;min-height:42px;}
.external-delete-actions .delete-btn:disabled{opacity:.4;cursor:not-allowed;}
.external-delete-feedback:empty{display:none;}
.external-delete-feedback:not(:empty){position:fixed;z-index:60;bottom:22px;left:50%;transform:translateX(-50%);max-width:min(600px,calc(100% - 32px));width:max-content;padding:13px 18px;margin:0;border:1px solid #85404b;border-radius:11px;background:#3b1c24;color:#ffd0d5;font-size:13px;line-height:1.5;}
@media(max-width:1200px){.server-card-links{gap:8px;}}
@media(max-width:760px){
.unmanaged-peers table,.unmanaged-peers tbody{display:block;min-width:0;}
.unmanaged-peers thead{display:none;}
.unmanaged-peers tr[data-unmanaged-peer-row]{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px 12px;border-top:1px solid var(--line);padding:15px;}
.unmanaged-peers tr[data-unmanaged-peer-row]:first-child{border-top:0;}
.unmanaged-peers tr[data-unmanaged-peer-row] td{display:block;min-width:0;max-width:none;padding:0;border:0;}
.unmanaged-peers tr[data-unmanaged-peer-row] td:first-child{grid-column:1/-1;padding-bottom:10px;border-bottom:1px solid var(--line);}
.unmanaged-peers tr[data-unmanaged-peer-row] td::before{content:attr(data-label);display:block;color:var(--muted);font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Arial,sans-serif;font-size:9px;margin-bottom:6px;}
.unmanaged-peers .last-seen{white-space:normal;}
.unmanaged-peers .unmanaged-actions{grid-column:1/-1;}
.unmanaged-actions .external-delete-button{min-height:35px;padding:8px 12px;font-size:11px;}
.unmanaged-readonly-note{font-size:11px;}
}
@media(max-width:480px){.external-delete-actions{align-items:stretch;flex-direction:column-reverse;}.external-delete-actions button{width:100%;}.external-delete-details>div{grid-template-columns:1fr;gap:5px;}}
