/* 2.9.1: consistent controls, subscription cards and explicit server access. */
body{--control-shadow:0 6px 18px rgba(88,60,210,.16)}
button,.button{min-height:44px;padding:11px 17px;border:1px solid rgba(163,143,255,.28);border-radius:12px;background:linear-gradient(135deg,#8b73ff,#6c51e5);box-shadow:var(--control-shadow);font-weight:750;letter-spacing:0;text-decoration:none}
button:hover,.button:hover{filter:brightness(1.1)}button:focus-visible,.button:focus-visible{outline:2px solid #bdc9ff;outline-offset:3px}
button.ghost,.button.ghost{background:linear-gradient(145deg,#141c31,#0d1425);border:1px solid #344361;color:#dde5fb;box-shadow:none}
button.danger,.button.danger{background:#451b2b;border-color:#81344b;color:#ffb5c2;box-shadow:none}
button:disabled,.button[aria-disabled=true]{opacity:.45;cursor:not-allowed;box-shadow:none;filter:none;transform:none}
button.small-button,.button.small-button{min-height:38px;padding:9px 13px;font-size:12px}
input,select,textarea{min-height:44px;border-color:#2b3650;background:#090f1e;border-radius:11px;font-size:14px;line-height:1.4}input:focus,select:focus,textarea:focus{box-shadow:0 0 0 3px #8872ff20;border-color:#a18bff}
input[type=checkbox],input[type=radio]{width:18px;height:18px;min-height:18px;flex:0 0 18px;accent-color:#9982ff}
.actions{gap:12px}.actions form{margin:0}.card>form+form{margin-top:16px}.inline-form>select{flex:1 1 180px;width:auto}.inline-form>button{flex:0 0 auto}
.page-title{align-items:center;margin-bottom:22px}.page-title h1{margin:4px 0 0}.section-tabs{display:flex;gap:8px;flex-wrap:wrap;margin:16px 0 22px}.section-tabs a{padding:10px 16px;border-radius:11px;background:#111a2d;border:1px solid #2b3852;color:#b9c6e3;text-decoration:none;font-size:13px;font-weight:700}.section-tabs a:hover,.section-tabs .is-active{color:#eeeaff;border-color:#7463b6;background:#211d3d}
.count-chip{display:inline-flex;align-items:center;white-space:nowrap;padding:7px 11px;border:1px solid #344261;border-radius:20px;color:#c9d4ed;font-size:12px;font-weight:650}
.subscription-info-card{position:relative;min-width:0;margin:14px 0;padding:24px;border-radius:24px;border:1px solid #3c4072;background:radial-gradient(ellipse at 92% 0,#533daa26,transparent 60%),linear-gradient(150deg,#111a30,#0a1020);box-shadow:0 12px 36px #0003;overflow:hidden}
.subscription-info-head{display:flex;align-items:center;justify-content:space-between;gap:14px}.subscription-info-head>div{min-width:0}.subscription-info-head h2{margin:6px 0 0;font-size:25px;line-height:1.2;overflow-wrap:anywhere;letter-spacing:-.025em}.subscription-info-head .eyebrow{font-size:10px;color:#a8b4d4}
.access-pill{display:inline-flex;align-items:center;gap:7px;flex-shrink:0;padding:7px 10px;border-radius:99px;border:1px solid #225448;background:#123a2c66;color:#78e6bb;font-size:12px;font-weight:700}.access-pill i{width:6px;height:6px;border-radius:50%;background:currentColor}.access-pill.is-inactive{border-color:#73404e;background:#46213166;color:#ffaaba}
.unlimited-banner{display:flex;align-items:center;gap:16px;margin:24px 0;padding:18px;border:1px solid #36537c;border-radius:16px;background:linear-gradient(110deg,#164b6f45,#35215e45)}.unlimited-symbol{font-size:49px;line-height:1;color:#82d9ff;flex:0 0 52px;text-align:center}.unlimited-banner>div{min-width:0}.unlimited-banner strong{display:block;color:#e2f5ff;font-size:23px;font-weight:800;line-height:1.25;letter-spacing:-.02em}.unlimited-banner div>span{display:block;margin-top:5px;color:#9eafcd;font-size:12px}
.subscription-info-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}.subscription-info-metric{min-width:0;padding:0 4px}.subscription-info-metric>span{display:block;font-size:12px;color:#97a7c6}.subscription-info-metric>strong{display:block;margin:9px 0;font-size:27px;line-height:1.2;letter-spacing:-.025em;font-variant-numeric:tabular-nums}.subscription-info-metric strong small{font-size:16px;font-weight:500;color:#93a1bf}.subscription-info-metric>small{font-size:12px;color:#9cacca}.device-slots{display:flex;gap:5px;max-width:108px;margin-top:10px}.device-slots i{height:4px;flex:1;border-radius:4px;background:#303954}.device-slots .is-filled{background:#a38bff}
.subscription-info-actions{display:grid;grid-template-columns:1.4fr 1fr;gap:12px;margin-top:24px}.subscription-info-actions>.button{width:100%;min-width:0}.subscription-next{padding-top:16px;margin-top:18px;border-top:1px solid #29334b;color:#a8b4d1;font-size:12px}.subscription-next summary{cursor:pointer}.subscription-next p{display:grid;gap:3px}
.subscription-plan{margin:0;gap:0}.subscription-plan>h2{margin-top:5px;margin-bottom:0}.subscription-plan .plan-price{font-size:30px;margin:22px 0 10px}.subscription-plan .plan-price small{font-size:12px;color:#9ba9c6}.subscription-plan>p:not(.plan-price){font-size:13px;color:#a7b4d0;margin:0 0 16px}.subscription-plan>details>summary{cursor:pointer;color:#d0d9f0;font-size:13px}.subscription-buy{gap:15px}.subscription-buy label{font-size:12px}.subscription-buy .term-total{padding-top:6px}.subscription-buy .term-total>span{color:#a5b3cf;font-size:13px}
.plan-settings{padding:20px;border:1px solid #303d58;border-radius:17px;background:#0b1324;display:grid;gap:16px}.plan-settings>h2{margin:0}.plan-settings>.eyebrow{margin-bottom:-10px}.plans-config>.subscription-plans{margin-top:0}.plans-config .form-grid{margin:22px 0}.plans-config>form>button{min-width:200px}
.servers-editor{scroll-margin-top:105px}.servers-editor>.section-head{align-items:center}.servers-editor .section-head h2{margin:5px 0 0}.servers-editor .section-head p{font-size:13px;margin:7px 0 0}.server-search{margin:22px 0 16px}.server-editor-list{display:grid;gap:14px}.server-editor-row{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(250px,1fr);gap:24px;padding:20px;border:1px solid #31415d;border-radius:17px;background:linear-gradient(130deg,#111a2c,#0d1423)}.server-editor-row.is-hidden{border-color:#2d3348;background:#0b111e}.server-editor-main,.server-editor-access{min-width:0}.server-row-heading{display:flex;align-items:center;gap:11px;margin-bottom:16px;min-width:0}.server-row-heading>div{min-width:0;flex:1}.server-row-heading strong{display:block;overflow-wrap:anywhere;font-size:15px}.server-row-heading small{display:block;margin-top:4px;color:#8c9cbc;font-size:11px}.server-symbol{display:grid;place-items:center;width:36px;height:36px;flex:0 0 36px;border-radius:11px;background:#2f2655;color:#bcaaff;font-size:20px}.issue-badge{padding:5px 8px;border-radius:8px;font-size:10px;font-weight:700;background:#12392e;color:#79d9b7;white-space:nowrap}.is-hidden .issue-badge{background:#242b3b;color:#9aa8c4}.server-editor-row label{font-size:12px}.server-editor-access{display:grid;gap:15px;align-content:start}.server-caution{color:#f4bd86;font-size:12px;margin:-2px 0 14px}.tariff-switches{border:0;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:8px;min-width:0}.tariff-switches legend{color:#a6b4d0;font-size:12px;margin-bottom:8px;padding:0}.tariff-switch{display:flex;align-items:center;gap:8px;padding:9px 11px;min-height:38px;border:1px solid #33415d;border-radius:10px;background:#0a1121;cursor:pointer}.tariff-switch:has(input:checked){border-color:#8870dc;background:#30224c}.tariff-switch span{font-size:12px;color:#dce4f8;overflow-wrap:anywhere}.tariff-switch input{margin:0}.editor-savebar{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-top:20px;padding-top:18px;border-top:1px solid #29364e}.editor-savebar>span{font-size:12px;color:#93a4c4}.server-no-results{padding:22px;text-align:center;color:#9ca9c4}
.empty-state{padding:25px;text-align:center}.empty-state p{font-size:13px;color:#8f9fbc}.ext-form{display:grid;gap:17px}.ext-form>.form-grid{gap:17px}.ext-form>button{justify-self:start;min-width:180px}.ext-source-tabs a{text-decoration:none}.ext-route-info small{margin-top:4px}.ext-route-list+.button{margin-top:16px}.ext-page>.card>form[data-global-sort-form]>button{margin-top:15px}
@media(max-width:850px){.server-editor-row{grid-template-columns:1fr;gap:18px}.server-editor-access{grid-template-columns:1fr 1.5fr;align-items:start}.subscription-info-card{padding:20px}.section-tabs{margin-top:12px}.subscription-info-metric>.subscription-expiry{font-size:25px}}
@media(max-width:560px){.subscription-info-card{padding:18px;border-radius:20px}.subscription-info-head h2{font-size:23px}.access-pill{font-size:10px;padding:7px 9px}.unlimited-banner{margin:20px 0;padding:13px;gap:11px;border-radius:14px}.unlimited-symbol{font-size:43px;flex-basis:38px}.unlimited-banner strong{font-size:19px}.unlimited-banner div>span{font-size:10px}.subscription-info-grid{gap:12px}.subscription-info-metric>strong{font-size:26px}.subscription-info-metric>.subscription-expiry{font-size:23px}.subscription-info-metric>small{font-size:11px}.subscription-info-actions{gap:8px;margin-top:21px}.subscription-info-actions>.button{font-size:12px;padding:10px 7px;min-height:44px}.server-editor-row{padding:15px;gap:16px}.server-editor-access{grid-template-columns:1fr}.server-row-heading{gap:8px}.server-row-heading strong{font-size:14px}.server-symbol{width:31px;height:31px;flex-basis:31px}.editor-savebar{display:grid;gap:13px}.editor-savebar>button{width:100%}.servers-editor{scroll-margin-top:130px}.plan-settings{padding:17px}.plans-config>form>button{width:100%}.section-tabs>a{flex:1;text-align:center;padding:11px 12px}.subscription-plan .plan-price{font-size:28px}.card.danger-zone.actions{display:grid;gap:12px}.card.danger-zone.actions form{width:100%}.card.danger-zone.actions button{width:100%}.inline-form>select,.inline-form>button{width:100%;flex-basis:100%}.page-title>.button{font-size:12px}}
@media(prefers-reduced-motion:reduce){button,.button{transition:none}.html{scroll-behavior:auto}}

.inline-form .domain-input{flex:1 1 290px}.inline-form .domain-input input{max-width:none}.subscription-address>.inline-form{margin-top:20px}.card.danger-zone.actions>form+form{margin-top:0}.client-admin-summary{padding:24px;border:1px solid #354261;border-radius:22px;background:linear-gradient(135deg,#151d34,#0c1425)}.client-admin-summary h1{font-size:28px;line-height:1.2;margin:6px 0;overflow-wrap:anywhere}.client-admin-summary .subscription-info-head p{margin:0;color:#9daccc;font-size:13px}.client-admin-summary .stats{margin:22px 0 0}.client-admin-summary .stat strong{font-size:clamp(17px,2vw,24px)}
@media(max-width:560px){.client-admin-summary{padding:18px}.client-admin-summary .stats{grid-template-columns:1fr}.client-admin-summary .subscription-info-head{align-items:flex-start;flex-wrap:wrap}.client-admin-summary h1{font-size:24px}.subscription-info-head .is-inactive{white-space:normal;max-width:150px}.subscription-address>.inline-form>button{width:100%}}

/* Own VPS and payment diagnostics. */
.own-direct-config { grid-column:1 / -1;min-width:0; }
.own-direct-config textarea { display:block;max-width:100%;width:100%;resize:vertical;min-height:90px;word-break:break-all; }
.tbank-diagnostics { margin-top:18px;min-width:0; }
.tbank-diagnostics p,.payment-error p { overflow-wrap:anywhere; }
.payment-error { max-width:320px;min-width:160px;white-space:normal; }
.payment-error summary { cursor:pointer; }
.server-editor-main,.server-editor-access { min-width:0; }

.own-device-status details+details { margin-top:14px; }
.own-device-status summary { cursor:pointer;overflow-wrap:anywhere; }
.own-device-status .server-row { gap:12px;align-items:start; }
.own-device-status .server-row span { overflow-wrap:anywhere; }
.own-node-actions { display:flex;flex-wrap:wrap;align-items:center;gap:10px;margin:16px 0; }
.own-profile-row { display:flex;align-items:center;justify-content:space-between;gap:20px;padding:16px;margin-top:12px;border:1px solid #31415d;border-radius:14px;background:#0b1323;min-width:0; }
.own-profile-name { display:grid;gap:7px;min-width:0; }
.own-profile-name strong,.own-profile-name span,.own-profile-name small { overflow-wrap:anywhere; }
.own-profile-name span { font-size:13px; }
.own-profile-name small { font-size:11px; }
.own-profile-row form { flex-shrink:0; }
.own-profile-row button { white-space:normal;min-height:44px; }
@media(max-width:650px){.own-profile-row{flex-direction:column;align-items:stretch;gap:13px;padding:14px}.own-profile-row form,.own-profile-row button{width:100%}.own-node-actions{align-items:stretch}.own-node-actions form,.own-node-actions .button{flex:1 1 100%}.own-node-actions button{width:100%}}
.node-install pre{max-width:100%;overflow-x:auto;padding:16px;border:1px solid #31415d;border-radius:12px;background:#080f1d;font-size:12px;line-height:1.6;white-space:pre-wrap;overflow-wrap:anywhere}.node-install ol{padding-left:23px;line-height:1.7}.node-install li+li{margin-top:8px}
