/* SpicyWiFi ISP Manager v3.1.0 — Enterprise dashboard design system */
:root{
  --v3-bg:#07101b;--v3-surface:#0c1522;--v3-card:#0f1928;--v3-card-2:#111d2d;
  --v3-line:#1e2b3d;--v3-text:#f7f9fc;--v3-muted:#8594a8;--v3-orange:#ff8a00;
  --v3-green:#33d17a;--v3-red:#ff5364;--v3-blue:#5a78ff;--v3-purple:#8a63ff;--v3-yellow:#ffc247;
}
html[data-theme="dark"] body{background:var(--v3-bg)}
body.v3-enterprise{background:var(--v3-bg)}
.v3-enterprise .app-shell{grid-template-columns:248px minmax(0,1fr);background:var(--v3-bg)}
.v3-enterprise .sidebar{background:#070e18;border-inline-end:1px solid var(--v3-line);padding:20px 14px 14px;overflow:auto}
.v3-enterprise .brand{padding:0 8px 19px;border-bottom:1px solid #121e2d;margin-bottom:11px}
.v3-enterprise .brand img{width:44px;height:44px;border-radius:13px}
.v3-enterprise .brand b{font-size:19px;color:var(--v3-text)}
.v3-enterprise .brand span{font-size:11px;color:var(--v3-muted);letter-spacing:.02em}
.v3-enterprise #sideNav{display:block}
.v3-nav-section{margin:13px 9px 6px;color:#64748b;font-size:10px;font-weight:800;letter-spacing:.06em}
.v3-enterprise #sideNav button{width:100%;min-height:38px;display:flex;align-items:center;gap:11px;border:0;border-radius:9px;padding:8px 10px;background:transparent;color:#aab5c4;font-size:12px;text-align:start;cursor:pointer;transition:.15s ease}
.v3-enterprise #sideNav button i{width:20px;font-style:normal;text-align:center;color:#7f8ea1;font-size:15px}
.v3-enterprise #sideNav button.active{background:linear-gradient(90deg,#ff9517,#ff7900);color:white;box-shadow:0 8px 24px #ff79001c}
.v3-enterprise #sideNav button.active i{color:#fff}
.v3-enterprise #sideNav button:hover{background:#101b2a;color:#fff}
.v3-enterprise #sideNav button.active:hover{background:linear-gradient(90deg,#ff9517,#ff7900)}
.v3-enterprise .sidebar-foot{border-top:1px solid var(--v3-line);padding-top:14px;margin-top:20px}
.v3-enterprise main{background:radial-gradient(circle at 60% -20%,#17203a33,transparent 35%),var(--v3-bg)}
.v3-enterprise .topbar{min-height:70px;height:auto;padding:10px 20px;border-bottom:1px solid var(--v3-line);background:#080f19e8;backdrop-filter:blur(14px);gap:16px}
.v3-enterprise .topbar-title{display:none}
.v3-global-search{flex:1;max-width:330px;min-width:220px;position:relative;direction:ltr}
.v3-global-search input{width:100%;height:39px;border-radius:9px;border:1px solid var(--v3-line);background:#0c1624;color:var(--v3-text);padding:0 39px 0 13px;font-size:12px;outline:none}
.v3-global-search:after{content:'⌕';position:absolute;right:13px;top:8px;color:#77879a;font-size:18px}
.v3-enterprise .top-actions{margin-inline-start:auto;gap:8px}
.v3-enterprise .cloud-pill,.v3-enterprise .theme-toggle,.v3-enterprise .language-select{height:38px;border-radius:9px;background:#0d1725;border-color:var(--v3-line);color:#c7d0db}
.v3-enterprise .avatar{border:1px solid #344157;background:#192536;color:#fff}
.v3-enterprise .content{padding:15px 18px 30px;max-width:1680px;margin:auto;width:100%}
.v3-enterprise .sync-banner{display:none}
.v3-kpis{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:11px;margin-bottom:11px}
.v3-kpi{position:relative;min-height:112px;padding:14px 14px 12px;border-radius:12px;border:1px solid var(--v3-line);background:linear-gradient(180deg,#0f1928,#0b1420);overflow:hidden}
.v3-kpi .v3-ico{position:absolute;inset-inline-start:13px;top:13px;width:36px;height:36px;border-radius:50%;display:grid;place-items:center;background:#182337;font-size:16px}
.v3-kpi small{display:block;color:#9aa8b9;font-size:11px;padding-inline-start:43px;min-height:18px}
.v3-kpi strong{display:block;margin-top:9px;color:#fff;font-size:24px;line-height:1.15;letter-spacing:-.02em}
.v3-kpi em{display:block;margin-top:8px;font-size:10px;color:#7f8fa3;font-style:normal}
.v3-kpi em.good{color:var(--v3-green)}.v3-kpi em.bad{color:var(--v3-red)}
.v3-dash-grid{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,.9fr) minmax(290px,.72fr);gap:11px;margin-bottom:11px}
.v3-panel{border:1px solid var(--v3-line);border-radius:12px;background:linear-gradient(180deg,#0f1928,#0b1420);padding:14px;min-width:0}
.v3-panel-head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:12px}
.v3-panel-head h3{margin:0;font-size:14px;color:#f4f7fb}.v3-panel-head span,.v3-panel-head button{font-size:10px;color:#7892ff;background:none;border:0}
.v3-chart{height:220px;display:flex;align-items:center;justify-content:center;position:relative;overflow:hidden}
.v3-chart svg{width:100%;height:100%}.v3-chart-grid{stroke:#223045;stroke-width:1}.v3-chart-line-a{fill:none;stroke:var(--v3-orange);stroke-width:3}.v3-chart-line-b{fill:none;stroke:#7965ff;stroke-width:3}
.v3-chart-empty{color:#718096;font-size:11px;text-align:center}
.v3-donut-wrap{display:grid;grid-template-columns:180px minmax(0,1fr);gap:14px;align-items:center;min-height:220px}
.v3-donut{width:165px;height:165px;border-radius:50%;position:relative;margin:auto;background:var(--v3-donut,conic-gradient(#ff8a00 0 25%,#5f67ee 25% 50%,#45bd68 50% 75%,#eabf23 75% 100%))}
.v3-donut:after{content:'';position:absolute;inset:32px;border-radius:50%;background:#0d1724;border:1px solid #1b293a}
.v3-donut-center{position:absolute;z-index:1;inset:0;display:grid;place-content:center;text-align:center;pointer-events:none}.v3-donut-center b{font-size:22px}.v3-donut-center small{font-size:10px;color:var(--v3-muted)}
.v3-plan-list{display:grid;gap:9px;font-size:10px}.v3-plan-list>div{display:grid;grid-template-columns:auto 1fr auto;gap:7px;align-items:center;color:#9ca9b8}.v3-plan-list i{width:8px;height:8px;border-radius:50%}.v3-plan-list b{color:#e6ebf2;font-size:11px}.v3-plan-list span{text-align:end}
.v3-status-list{display:grid;gap:6px}.v3-status-row{display:grid;grid-template-columns:22px minmax(0,1fr) auto auto;align-items:center;gap:8px;min-height:35px;padding:7px 8px;border:1px solid #1b2839;border-radius:8px;background:#101a29;font-size:10px}.v3-status-row .status-dot{width:20px;height:20px;border-radius:50%;display:grid;place-items:center;background:#172638;color:#91a2b8}.v3-status-row b{font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.v3-status-row .online{color:var(--v3-green)}.v3-status-row .offline{color:var(--v3-red)}.v3-status-row small{color:#77879a}
.v3-lower{display:grid;grid-template-columns:minmax(0,1fr) 330px;gap:11px;margin-bottom:11px}.v3-table-wrap{overflow:auto}.v3-table{width:100%;border-collapse:collapse;font-size:10px;min-width:760px}.v3-table th{padding:9px 8px;color:#718198;text-align:start;font-weight:600;border-bottom:1px solid var(--v3-line)}.v3-table td{padding:10px 8px;border-bottom:1px solid #172435;color:#cbd3de;vertical-align:middle}.v3-table tr:last-child td{border-bottom:0}.v3-sub-name b{display:block;color:#fff;font-size:11px}.v3-sub-name small{color:#77879a}.v3-badge{display:inline-flex;align-items:center;padding:4px 7px;border-radius:999px;background:#172231;color:#aeb8c6;font-size:9px}.v3-badge.green{background:#0c2d20;color:#45db88}.v3-badge.warn{background:#34250d;color:#ffba3a}.v3-badge.red{background:#35141b;color:#ff6675}.v3-badge.blue{background:#171f45;color:#7e8eff}
.v3-right-stack{display:grid;gap:11px}.v3-alert{display:grid;grid-template-columns:auto minmax(0,1fr);gap:8px;padding:9px;border:1px solid #1b2839;border-radius:8px;background:#101a29;margin-bottom:6px}.v3-alert i{width:25px;height:25px;border-radius:50%;display:grid;place-items:center;background:#35151d;color:#ff6474;font-style:normal}.v3-alert b{font-size:10px;color:#e8edf4;display:block}.v3-alert small{color:#7f8da0;font-size:9px}.v3-tx{display:flex;justify-content:space-between;gap:10px;padding:9px 3px;border-bottom:1px solid #172435;font-size:10px}.v3-tx:last-child{border-bottom:0}.v3-tx div b{display:block}.v3-tx div small{color:#7b899b}.v3-tx strong.good{color:var(--v3-green)}.v3-tx strong.bad{color:var(--v3-red)}
.v3-quick-grid{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:8px}.v3-quick{min-height:66px;border:1px solid #213047;border-radius:9px;background:#101a29;color:#fff;padding:9px;display:flex;align-items:center;gap:9px;text-align:start;cursor:pointer}.v3-quick i{width:32px;height:32px;border-radius:8px;background:#14233c;display:grid;place-items:center;color:#7c8fff;font-style:normal}.v3-quick b{font-size:10px;display:block}.v3-quick small{font-size:9px;color:#738398}.v3-quick:hover{border-color:#3a4a64;background:#132033}
.v3-enterprise .vpn-live-panel{margin:0 0 11px}.v3-enterprise .panel{border-color:var(--v3-line);background:linear-gradient(180deg,#0f1928,#0b1420);box-shadow:none}
html[data-theme="light"] .v3-enterprise{--v3-bg:#f5f7fa;--v3-surface:#ffffff;--v3-card:#ffffff;--v3-card-2:#f9fbfd;--v3-line:#dce3ec;--v3-text:#172033;--v3-muted:#708096}
html[data-theme="light"] .v3-enterprise main{background:#f5f7fa}.v3-enterprise html[data-theme="light"]{background:#f5f7fa}
html[data-theme="light"] .v3-enterprise .sidebar,html[data-theme="light"] .v3-enterprise .topbar{background:#fff}
html[data-theme="light"] .v3-enterprise .v3-kpi,html[data-theme="light"] .v3-enterprise .v3-panel{background:#fff}
html[data-theme="light"] .v3-enterprise .v3-kpi strong,html[data-theme="light"] .v3-enterprise .v3-panel-head h3,html[data-theme="light"] .v3-enterprise .v3-sub-name b{color:#172033}
html[data-theme="light"] .v3-enterprise .v3-status-row,html[data-theme="light"] .v3-enterprise .v3-alert,html[data-theme="light"] .v3-enterprise .v3-quick{background:#f8fafc}
html[data-theme="light"] .v3-enterprise .v3-table td{color:#344054}
@media(max-width:1380px){.v3-kpis{grid-template-columns:repeat(3,1fr)}.v3-dash-grid{grid-template-columns:1fr 1fr}.v3-dash-grid>.v3-panel:last-child{grid-column:1/-1}.v3-quick-grid{grid-template-columns:repeat(3,1fr)}}
@media(max-width:980px){.v3-enterprise .app-shell{grid-template-columns:1fr}.v3-enterprise .sidebar{display:none}.v3-enterprise .content{padding:12px 12px 84px}.v3-global-search{display:none}.v3-kpis{grid-template-columns:repeat(2,1fr)}.v3-dash-grid,.v3-lower{grid-template-columns:1fr}.v3-donut-wrap{grid-template-columns:150px 1fr}.v3-quick-grid{grid-template-columns:repeat(2,1fr)}.v3-enterprise .mobile-nav{display:flex}}
@media(max-width:560px){.v3-kpis{grid-template-columns:1fr 1fr;gap:8px}.v3-kpi{min-height:100px;padding:12px}.v3-kpi strong{font-size:20px}.v3-donut-wrap{grid-template-columns:1fr}.v3-plan-list{grid-template-columns:1fr 1fr}.v3-quick-grid{grid-template-columns:1fr}.v3-enterprise .topbar{padding:8px 10px}.v3-enterprise .language-select{max-width:100px}}
.v3-isp-modal{max-width:980px}.v3-isp-body{padding:16px}.v3-360-hero{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:16px;border:1px solid var(--v3-line);border-radius:12px;background:#0e1927;margin-bottom:12px}.v3-360-hero h2{margin:8px 0 3px;font-size:22px}.v3-360-hero p{margin:0;color:var(--v3-muted);font-size:11px}.v3-360-hero>div:last-child{text-align:end}.v3-360-hero>div:last-child small{display:block;color:var(--v3-muted);font-size:10px}.v3-360-hero>div:last-child b{font-size:18px;color:#fff}.v3-360-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:9px;margin-bottom:12px}.v3-360-grid>div{padding:12px;border:1px solid var(--v3-line);border-radius:10px;background:#101a29;min-width:0}.v3-360-grid small{display:block;color:#76869a;font-size:9px;margin-bottom:5px}.v3-360-grid b{display:block;color:#edf2f7;font-size:11px;overflow:hidden;text-overflow:ellipsis}.v3-360-actions{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:12px}.v3-mini-list{display:grid;gap:6px}.v3-mini-list>div{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:4px 10px;padding:9px;border:1px solid #1b2839;border-radius:8px;background:#101a29}.v3-mini-list b{font-size:10px;color:#f2f5f8}.v3-mini-list span{font-size:9px;color:#9ca9b8}.v3-mini-list small{grid-column:1/-1;font-size:9px;color:#718096}.subscriber-360-mini{border:1px solid #344159;background:#142239;color:#ff9b22;border-radius:8px;padding:5px 8px;font-weight:800;cursor:pointer}.span-2{grid-column:span 2}.v3-isp-body textarea{min-height:90px;resize:vertical}
html[data-theme="light"] .v3-360-hero,html[data-theme="light"] .v3-360-grid>div,html[data-theme="light"] .v3-mini-list>div{background:#f8fafc}.v3-360-hero>div:last-child b{color:inherit}
@media(max-width:700px){.v3-360-hero{align-items:flex-start;flex-direction:column}.v3-360-grid{grid-template-columns:1fr 1fr}.span-2{grid-column:1/-1}}
/* v3 PostgreSQL ISP Core management surfaces */
.v3-core-toolbar{display:flex;justify-content:space-between;gap:14px;align-items:center;margin-bottom:18px;padding:14px 16px;border:1px solid var(--border);border-radius:14px;background:var(--surface-2)}
.v3-core-toolbar>div{display:grid;gap:4px}.v3-core-toolbar small{color:var(--muted)}.v3-core-cards{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:13px}.v3-core-card{border:1px solid var(--border);border-radius:16px;background:var(--surface-2);padding:16px}.v3-core-card-head{display:flex;justify-content:space-between;gap:12px;align-items:flex-start}.v3-core-card-head h3{margin:8px 0 2px}.v3-core-card-head small{color:var(--muted)}.v3-core-metrics{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin-top:14px}.v3-core-metrics>div{display:grid;gap:4px;padding:10px;border:1px solid var(--border);border-radius:11px}.v3-core-metrics span{font-size:11px;color:var(--muted)}.v3-core-metrics b{font-size:13px}.v3-check{display:flex!important;align-items:center;gap:10px!important}.v3-check input{width:18px!important;height:18px!important}.v3-security-note{display:grid;gap:5px;margin:12px 0 18px;padding:13px 15px;border:1px solid color-mix(in srgb,var(--accent) 30%,var(--border));border-radius:13px;background:color-mix(in srgb,var(--accent) 7%,var(--surface-2));color:var(--muted)}.v3-security-note b{color:var(--text)}
.v3-tree{display:grid;gap:7px}.v3-tree-node{margin-inline-start:calc(var(--tree-level) * 24px);display:flex;justify-content:space-between;align-items:center;gap:10px;padding:12px 14px;border:1px solid var(--border);border-radius:12px;background:var(--surface-2);position:relative}.v3-tree-node>div{display:grid;grid-template-columns:auto 1fr;column-gap:9px;align-items:center}.v3-tree-node b,.v3-tree-node small{grid-column:2}.v3-tree-node small{color:var(--muted);margin-top:2px}.v3-role-dot{grid-row:1/3;width:10px;height:10px;border-radius:999px;background:#72809a}.v3-role-dot.owner{background:#ff9b23}.v3-role-dot.admin{background:#9b72ff}.v3-role-dot.reseller{background:#43c989}.v3-role-dot.sub_reseller{background:#5f8dff}
.v3-wallet-summary{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-bottom:16px}.v3-wallet-summary>div,.v3-current-balance{padding:16px;border:1px solid var(--border);border-radius:14px;background:var(--surface-2);display:grid;gap:5px}.v3-wallet-summary span,.v3-current-balance small{color:var(--muted)}.v3-wallet-summary b,.v3-current-balance b{font-size:24px}.v3-core-table{overflow:auto;border:1px solid var(--border);border-radius:14px}.v3-core-table table{width:100%;border-collapse:collapse;min-width:680px}.v3-core-table th,.v3-core-table td{padding:12px 13px;border-bottom:1px solid var(--border);text-align:start}.v3-core-table th{font-size:11px;color:var(--muted);background:var(--surface-2)}.v3-core-table td small{display:block;color:var(--muted);margin-top:3px}.v3-voucher-result{display:grid;gap:12px;margin-top:18px}.v3-voucher-result>div{display:grid;gap:4px}.v3-voucher-result small{color:var(--muted)}.v3-voucher-result textarea{width:100%;resize:vertical;border:1px solid var(--border);border-radius:12px;padding:14px;background:var(--surface-2);color:var(--text);font:14px ui-monospace,SFMono-Regular,Menlo,monospace;direction:ltr;text-align:left}
@media(max-width:780px){.v3-core-cards{grid-template-columns:1fr}.v3-core-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}.v3-core-toolbar{align-items:stretch;flex-direction:column}.v3-wallet-summary{grid-template-columns:1fr}.v3-tree-node{margin-inline-start:calc(var(--tree-level) * 10px)}}
/* v3 production finance / NOC additions */
.v3-finance-methods{display:grid;gap:10px;margin-top:10px}
.v3-finance-methods>div{display:grid;grid-template-columns:minmax(90px,1fr) auto auto;gap:12px;align-items:center;padding:11px 12px;border:1px solid var(--border);border-radius:12px;background:color-mix(in srgb,var(--panel) 88%,transparent)}
.v3-finance-methods span{font-weight:700;text-transform:uppercase}.v3-finance-methods small{color:var(--muted)}
@media(max-width:680px){.v3-finance-methods>div{grid-template-columns:1fr auto}.v3-finance-methods small{grid-column:1/-1}.v3-wallet-summary{grid-template-columns:repeat(2,minmax(0,1fr))!important}}
