/* I LOVE VPS / Customer UX v7.3.15 — scoped re-layout, navy+white original theme.
   No core admin, Proxmox, noVNC, billing or guest CSS rewritten. */
:root{--cv15-blue:#286ff0;--cv15-ink:#142845;--cv15-border:#dce6f5;--cv15-muted:#7891ae}
html:has(#main.dashboard:not(.hidden)),body:has(#main.dashboard:not(.hidden)){scrollbar-width:none;overflow-x:hidden}
html:has(#main.dashboard:not(.hidden))::-webkit-scrollbar,body:has(#main.dashboard:not(.hidden))::-webkit-scrollbar{width:0;height:0}
.dashboard .side,.dashboard .workspace,.dashboard .workspace main,.dashboard .cp-pane,.dashboard .cp-detail-card,.dashboard .tablewrap{scrollbar-width:none}
.dashboard .side::-webkit-scrollbar,.dashboard .workspace::-webkit-scrollbar,.dashboard .workspace main::-webkit-scrollbar,.dashboard .cp-pane::-webkit-scrollbar,.dashboard .cp-detail-card::-webkit-scrollbar,.dashboard .tablewrap::-webkit-scrollbar{width:0;height:0}
.dashboard .side{background:linear-gradient(165deg,#112b4d,#091c39);box-shadow:none;border-right:1px solid #102d54}
.dashboard .brand{padding-bottom:18px}.dashboard .cp-nav-label{margin:0;padding:15px 13px 6px;font-size:10px;color:#92b4e1}
.dashboard .cp-nav .side-item{min-height:44px;border-radius:9px;display:flex;align-items:center;font-size:13.5px;line-height:1.4;white-space:normal}
.dashboard .cp-nav .side-item.chosen{background:linear-gradient(120deg,#367ff3,#2262e7);box-shadow:0 5px 15px #0a264966}
.dashboard .workspace{background:#f4f7fc}
.dashboard .workspace header{background:#fff;border-bottom:1px solid #e2e9f4;padding:20px clamp(16px,2.2vw,34px)}
.dashboard .workspace header h1{font-size:clamp(23px,2vw,29px);letter-spacing:-.5px}
.dashboard .workspace header p{color:#8295ae}
.dashboard .workspace main:has(#cp-pages){max-width:none;width:100%;padding:20px clamp(14px,1.8vw,30px) 52px}
.dashboard #cp-vms .cp-heading-vm{padding:0 3px;margin:0 0 16px}
.dashboard #cp-vms .cp-heading-vm h2{font-size:20px}
.dashboard #cp-vms .cp-heading-vm p{font-size:13px}
.dashboard #cp-vms #cp-vm-summary{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:13px;margin-bottom:15px}
.dashboard #cp-vms #cp-vm-summary .cp-stat{padding:15px 18px;min-height:89px;border-radius:15px;box-shadow:0 6px 20px #1b41650b}
.dashboard #cp-vms #cp-vm-summary .cp-stat strong{font-size:25px}
.dashboard #my-vps-list{display:grid;grid-template-columns:minmax(0,1fr);gap:16px;max-width:none}
.dashboard #my-vps-list .cp-vm-card{width:100%;padding:19px;border-radius:17px;box-shadow:0 6px 23px #0f32640a;min-width:0}
.dashboard #my-vps-list .cp-vm-top{align-items:center;position:relative;gap:14px;margin-bottom:13px;flex-wrap:wrap}
.dashboard #my-vps-list .cp-vm-icon{width:51px;height:51px;min-width:51px;background:#e7f1ff;color:#1f68e7;border-radius:14px}
.dashboard #my-vps-list .cp-vm-name{flex:1;min-width:200px}
.dashboard #my-vps-list .cp-vm-label{font-size:12px;color:#6682a5}
.dashboard #my-vps-list .cp-vm-name h3{font-size:22px;line-height:1.25;color:#102c56}
.dashboard #my-vps-list .cp-vm-plan{background:#e8f1ff;border-radius:8px;padding:4px 9px;color:#315d99;font-size:11px;font-weight:750}
.dashboard #my-vps-list .cv15-identity-info{order:20;width:100%;color:#8da1b9;font-size:11px;display:none}
.dashboard #my-vps-list .cp-vm-usage{display:flex;align-items:center;justify-content:space-around;gap:18px;background:#f7faff;border:1px solid #e0eaf8;border-radius:13px;padding:16px 22px;margin:0 0 12px;flex-wrap:wrap}
.dashboard #my-vps-list .cp-vm-usage>div{min-width:95px}
.dashboard #my-vps-list .cp-gauge{width:75px;height:75px}
.dashboard #my-vps-list .cp-vm-service{margin:0 0 12px;border:1px solid #e8edf5;border-radius:10px;background:#fff;padding:13px 17px;display:flex;flex-wrap:wrap;align-items:center;gap:11px}
.dashboard #my-vps-list .cp-vm-service span{color:#8095ae;font-size:12px}
.dashboard #my-vps-list .cp-vm-service b{font-size:13px;margin-right:25px;color:#23486f}
.dashboard #my-vps-list .cp-vm-buttons{margin:12px 0 0;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}
.dashboard #my-vps-list .cp-vm-buttons button{min-width:0;min-height:43px;padding:10px 9px;font-weight:800;border-radius:9px;font-size:13px;white-space:normal}
.dashboard #my-vps-list .cp-vm-buttons .cp-more{display:none!important}
.dashboard #my-vps-list .cp-extra,.dashboard #my-vps-list .cp-extra[hidden]{display:grid!important;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px;border-top:0;border-radius:11px;background:#eef5ff;margin:10px 0 0;padding:13px}
.dashboard #my-vps-list .cp-extra button{font-size:12px;padding:10px 8px;font-weight:750;border:1px solid #d5e3f7;background:#fff;border-radius:9px;color:#23518b;min-height:41px;white-space:normal}
.dashboard #my-vps-list .cp-extra button:disabled{opacity:.45;cursor:not-allowed}
.dashboard #my-vps-list .cp-vm-jobs{border-radius:10px;margin-top:12px;scrollbar-width:none}
.dashboard #my-vps-list .cp-vm-jobs::-webkit-scrollbar{display:none}
.cv15-detailrow{margin-top:15px;min-width:0}
.cv15-threecols{display:grid;grid-template-columns:1.2fr 1fr 1fr;gap:13px;align-items:stretch}
.cv15-panel{background:#fff;border:1px solid var(--cv15-border);border-radius:14px;min-width:0;padding:17px 18px;box-shadow:0 4px 14px #17365e07}
.cv15-panel-title{font-size:15px;font-weight:850;color:#16345b;display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:14px}
.cv15-panel-title small{font-size:11px;font-weight:650;color:#8297b0}
.cv15-sparkrow{display:grid;grid-template-columns:100px minmax(0,1fr);align-items:center;gap:10px;border-bottom:1px solid #edf2f9;padding:8px 0}
.cv15-sparkrow:last-of-type{border:0}.cv15-sparkrow>div strong{display:block;font-size:11px;font-weight:700;color:#627b9d}.cv15-sparkrow>div b{display:block;font-size:17px;margin-top:3px;color:#1c3b67}
.cv15-sparkrow svg{width:100%;height:48px}.cv15-no-graph{font-size:11px;color:#91a4bc;text-align:center;padding:14px 0}
.cv15-data-source{display:block;margin:10px 0 0;font-size:10px;color:#879db4}
.cv15-log{display:grid;grid-template-columns:12px minmax(0,1fr) auto;gap:7px;align-items:start;padding:9px 0;border-bottom:1px solid #eef2f8}
.cv15-log-dot{border-radius:50%;height:9px;width:9px;margin:5px 0 0;background:#8ca3c5}.cv15-log-dot.ok{background:#16ae76}.cv15-log-dot.bad{background:#e26166}
.cv15-log strong,.cv15-ready-line strong{display:block;font-size:12px;line-height:1.4}.cv15-log small,.cv15-ready-line small{display:block;font-size:11px;margin-top:3px;color:#8094b0;overflow-wrap:anywhere}
.cv15-log time{font-size:10px;color:#8ca1b8;white-space:nowrap}.cv15-textaction{font-size:12px;color:#286ce2;background:transparent;border:0;box-shadow:none;margin:9px 0 0;padding:6px 0;font-weight:800}
.cv15-ready-line{display:grid;grid-template-columns:25px minmax(0,1fr) auto;gap:8px;border-bottom:1px solid #edf1f7;padding:11px 0;align-items:start}
.cv15-ready-mark{display:grid;place-items:center;width:24px;height:24px;background:#fdf1d8;color:#ac790b;border-radius:50%;font-weight:850;font-style:normal}.cv15-ready-mark.ok{background:#ddf8ed;color:#07885b}.cv15-ready-mark.bad{background:#ffeded;color:#b45550}
.cv15-ready-line em{color:#8599b0;font-size:10px;white-space:nowrap;font-style:normal}
.cv15-empty{font-size:13px;color:#8499af;padding:21px 10px;text-align:center}.cv15-pending{padding:25px 10px;text-align:center;color:#8ca2bb}
/* Detail panel is now inline, preventing nested viewport/modal scrollbars. */
.dashboard #cp-vms #cp-detail-overlay{position:static;inset:auto;display:block;place-items:unset;background:transparent;backdrop-filter:none;padding:0;margin-top:15px;z-index:auto}
.dashboard #cp-vms #cp-detail-overlay.hidden{display:none!important}
.dashboard #cp-vms #cp-detail-overlay .cp-detail-card{width:100%;max-height:none;overflow:visible;border:1px solid var(--cv15-border);border-radius:16px;box-shadow:0 7px 22px #1f41650a;padding:21px}
body.cp-modal-open:has(#cp-vms #cp-detail-overlay){overflow:auto}
.dashboard #cp-vms #cp-detail-overlay .cp-detail-top h2{font-size:20px}
/* Page-load overlay only covers the workspace; login and noVNC remain operational. */
.cv15-loading{position:fixed;inset:0 0 0 230px;z-index:40;display:grid;place-items:center;background:rgba(245,248,255,.82);backdrop-filter:blur(4px);pointer-events:none}
.cv15-loading[hidden]{display:none!important}
.cv15-loader-card{width:min(340px,calc(100% - 28px));min-height:160px;padding:24px 28px;border-radius:22px;background:#fff;border:1px solid #e0eaf9;box-shadow:0 20px 48px #153c7621;display:flex;align-items:center;flex-direction:column;gap:9px;text-align:center}
.cv15-loader-card strong{color:#173b6a;font-size:14px}.cv15-loader-card span{font-size:12px;color:#8599b1}
.cv15-orbit{height:57px;width:57px;border:5px solid #d6e6ff;border-top-color:#2874ef;border-radius:50%;animation:cv15-spin .85s linear infinite}
.cv15-orbit i,.cv15-orbit b{display:none}@keyframes cv15-spin{to{transform:rotate(360deg)}}
/* Tenant payment proof is fully inside the logged-in Customer billing pane. */
.cv15-payment-section{margin-top:18px}.cv15-proof-panel{padding:22px 24px}.cv15-proof-panel p{font-size:13px;line-height:1.6;color:#70849f}
.cv15-proof-panel form{max-width:100%;display:grid;gap:11px;margin-top:16px}
.cv15-proof-panel label{display:block;font-size:12px;font-weight:800;color:#2c4970}
.cv15-proof-panel input,.cv15-proof-panel select,.cv15-proof-panel textarea{margin:7px 0 0;width:100%;background:#fafdff;border:1px solid #dce7f5;border-radius:9px;padding:12px;font-size:13px;color:#203e64;min-height:43px}
.cv15-proof-panel textarea{min-height:69px;resize:vertical}
.cv15-formgrid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:13px}
.cv15-payment-foot{display:flex;justify-content:space-between;align-items:center;gap:15px;flex-wrap:wrap}
.cv15-payment-foot small{font-size:11px;color:#829ab2;max-width:590px}.cv15-payment-foot .primary{font-size:13px;min-height:42px}
#cv15-proof-result{font-weight:800;font-size:12px;color:#a44343}#cv15-proof-result.ok{color:#168657}
/* Keep page scroll functioning but no visible scrollbar, never clip inaccessible content. */
@media(max-width:1250px){.cv15-threecols{grid-template-columns:1fr 1fr}.cv15-monitor{grid-column:1/-1}}
@media(max-width:980px){.dashboard #my-vps-list .cp-vm-buttons{grid-template-columns:repeat(2,1fr)}.dashboard #my-vps-list .cp-extra,.dashboard #my-vps-list .cp-extra[hidden]{grid-template-columns:repeat(3,1fr)!important}}
@media(max-width:760px){.cv15-loading{inset:0}.dashboard #cp-vms #cp-vm-summary{grid-template-columns:repeat(2,1fr)}.dashboard #my-vps-list .cp-vm-card{padding:13px}.dashboard #my-vps-list .cp-vm-usage{padding:12px;gap:12px}.dashboard #my-vps-list .cp-vm-service{padding:11px}.cv15-threecols{grid-template-columns:1fr}.cv15-monitor{grid-column:auto}.dashboard #my-vps-list .cp-extra,.dashboard #my-vps-list .cp-extra[hidden]{grid-template-columns:repeat(2,1fr)!important}.cv15-formgrid{grid-template-columns:1fr}.dashboard .workspace main:has(#cp-pages){padding:14px 12px 30px}.dashboard .workspace header{position:relative}}
@media(max-width:450px){.dashboard #cp-vms #cp-vm-summary{grid-template-columns:1fr 1fr}.dashboard #my-vps-list .cp-vm-buttons{grid-template-columns:1fr 1fr}.cv15-sparkrow{grid-template-columns:82px minmax(0,1fr)}.dashboard .workspace header .account{flex-wrap:wrap;gap:6px}.dashboard .cp-vm-top{gap:8px}}
@media(prefers-reduced-motion:reduce){.cv15-orbit{animation:none;border-top-color:#bcd5f9}}
/* VMs show four status summaries and live disk/network alongside CPU/RAM. */
.dashboard #cp-vms #cp-vm-summary{grid-template-columns:repeat(4,minmax(0,1fr))}
.dashboard #my-vps-list .cp-vm-usage .cv15-extra-metrics{display:flex;justify-content:center;align-items:center;gap:20px;flex:1 1 260px;min-width:210px}
.cv15-mini-metric{display:flex;align-items:center;gap:9px;min-width:100px}
.cv15-mini-icon{width:36px;height:36px;display:grid;place-items:center;background:#e5efff;border-radius:10px;color:#286de5;font-size:20px}
.cv15-mini-metric small{font-size:11px;font-weight:700;display:block;color:#7590ae}
.cv15-mini-metric strong{font-size:15px;display:block;margin:3px 0;color:#193f70}
.cv15-mini-metric span:last-child{display:block;font-size:10px;color:#8ca0b7}
@media(max-width:1100px){.dashboard #cp-vms #cp-vm-summary{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:760px){.dashboard .side{padding:10px 12px!important}.dashboard .cp-nav{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:5px!important;overflow:visible!important}.dashboard .cp-nav-label{display:none!important}.dashboard .cp-nav .side-item{width:100%!important;min-height:42px;font-size:11px;white-space:normal!important;padding:8px!important;gap:7px}.dashboard .cp-nav .cd14-side-button{width:100%!important;min-height:42px;white-space:normal!important;padding:8px!important;text-align:left}.dashboard .cp-nav-icon{font-size:15px;width:16px}.dashboard .workspace header{padding:15px 13px}}
@media(max-width:450px){.dashboard #my-vps-list .cp-vm-usage .cv15-extra-metrics{width:100%;flex-wrap:wrap;justify-content:space-around;gap:12px;min-width:0}.dashboard #cp-vms #cp-vm-summary .cp-stat{min-height:78px;padding:11px 12px}.dashboard #cp-vms #cp-vm-summary .cp-stat-symbol{width:33px;height:33px;font-size:16px}.dashboard #cp-vms #cp-vm-summary .cp-stat strong{font-size:18px}}
/* Modal internals remain keyboard/wheel-scrollable; their tracks are visually hidden. */
#payment-modal .dialog,.dashboard .cp-detail-overlay,.dashboard .workspace .tablewrap{scrollbar-width:none}
#payment-modal .dialog::-webkit-scrollbar,.dashboard .cp-detail-overlay::-webkit-scrollbar,.dashboard .workspace .tablewrap::-webkit-scrollbar{width:0;height:0}
