:root{--bg:#071016;--panel:#0d1820;--panel2:#101e27;--line:#20313b;--text:#edf5f7;--muted:#8ba0aa;--accent:#65f7b4;--danger:#ff667c}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}.shell{min-height:100vh;display:grid;grid-template-columns:240px 1fr}.sidebar{border-right:1px solid var(--line);padding:28px 22px;display:flex;flex-direction:column;position:sticky;top:0;height:100vh;background:#081219}.brand{display:flex;gap:10px;align-items:center;color:#fff;text-decoration:none;font-weight:900;letter-spacing:.12em}.brand-mark{width:34px;height:34px;border:1px solid #3af0a0;border-radius:10px;display:grid;place-items:center;color:var(--accent);box-shadow:0 0 24px #40e59b22}nav{margin-top:42px;display:flex;flex-direction:column;gap:7px}nav a{color:#a8bbc4;text-decoration:none;padding:11px 12px;border-radius:9px}nav a:hover{background:var(--panel2);color:#fff}.nav-label{font-size:10px;letter-spacing:.18em;color:#5f7681;margin:22px 12px 4px}.user{margin-top:auto;border-top:1px solid var(--line);padding-top:18px}.user small{display:block;color:var(--muted);margin-top:4px}.link{background:none;border:0;color:var(--accent);padding:8px 0;cursor:pointer}main{padding:34px 42px;max-width:1600px;width:100%;margin:auto}header{display:flex;justify-content:space-between;align-items:center;margin-bottom:32px}h1{font-size:32px;margin:5px 0 0}h2{margin:4px 0}.eyebrow{font-size:10px;letter-spacing:.2em;color:var(--accent);font-weight:800}.live{font-size:12px;color:var(--muted);border:1px solid var(--line);padding:8px 11px;border-radius:999px}.live span{display:inline-block;width:7px;height:7px;background:var(--accent);border-radius:50%;margin-right:7px;box-shadow:0 0 12px var(--accent)}.grid{display:grid;gap:16px}.kpis{grid-template-columns:repeat(4,minmax(0,1fr))}.card,.table-card,.form-card{background:linear-gradient(180deg,#0f1b23,#0b161d);border:1px solid var(--line);border-radius:15px}.card{padding:21px}.card>span,.metric span{display:block;color:var(--muted);font-size:10px;letter-spacing:.11em}.card>strong{display:block;font-size:25px;margin:9px 0 4px}.card small{color:var(--muted)}.section{margin-top:30px}.section-head{display:flex;justify-content:space-between;align-items:end;margin-bottom:14px}.section-head a{color:var(--accent);text-decoration:none}.service-list{display:grid;gap:8px}.service-row{display:grid;grid-template-columns:1fr repeat(3,130px);gap:20px;align-items:center;background:var(--panel);border:1px solid var(--line);border-radius:13px;padding:16px 18px;text-decoration:none;color:inherit}.service-row>div:first-child{display:grid;grid-template-columns:13px 1fr;column-gap:10px}.service-row strong{grid-column:2}.service-row small{grid-column:2;color:var(--muted);margin-top:3px}.status{width:9px;height:9px;border-radius:50%;margin-top:5px}.status.ok{background:var(--accent);box-shadow:0 0 12px #65f7b477}.status.bad{background:var(--danger)}.status.unknown{background:#72838b}.metric b{display:block;margin-top:5px}.table-card{overflow:auto}table{width:100%;border-collapse:collapse}th,td{text-align:left;padding:14px 16px;border-bottom:1px solid var(--line);font-size:13px}th{font-size:10px;letter-spacing:.08em;color:var(--muted)}tr:last-child td{border-bottom:0}.pill{font-size:10px;font-weight:800;border:1px solid var(--line);padding:5px 8px;border-radius:999px}.pill.paid{color:var(--accent);border-color:#2a8c68}.pill.overdue{color:#ff8898;border-color:#8e3d49}.pill.partially_paid{color:#f4c36b}.empty{border:1px dashed var(--line);color:var(--muted);padding:30px;border-radius:13px;text-align:center}.button,.primary{border:0;border-radius:9px;background:var(--accent);color:#04110c;padding:10px 15px;font-weight:800;text-decoration:none;cursor:pointer}.prose{max-width:850px}.prose p{color:var(--muted);line-height:1.7}.form-card{padding:26px;max-width:900px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:15px;margin:20px 0}label{display:grid;gap:7px;color:#b9c9cf;font-size:12px}input{background:#071118;border:1px solid var(--line);border-radius:9px;color:#fff;padding:11px 12px;outline:none}.login-page{min-height:100vh;display:grid;place-items:center;background:radial-gradient(circle at 50% 0,#123326 0,#071016 38%)}.login-card{width:min(430px,calc(100% - 30px));background:#0b171e;border:1px solid var(--line);border-radius:18px;padding:34px}.login-card h1{margin-top:32px}.login-card p{color:var(--muted);margin-bottom:26px}.login-card label{margin:14px 0}.login-card .primary{width:100%;margin-top:10px;padding:13px}.error{color:#ff8a9a;font-size:12px}.pagination{margin-top:15px}@media(max-width:1000px){.shell{grid-template-columns:1fr}.sidebar{position:relative;height:auto;border-right:0;border-bottom:1px solid var(--line)}nav{flex-direction:row;flex-wrap:wrap;margin-top:20px}.user{display:none}main{padding:25px 18px}.kpis{grid-template-columns:1fr 1fr}.service-row{grid-template-columns:1fr 100px}.service-row .metric:nth-last-child(-n+2){display:none}}@media(max-width:600px){.kpis,.form-grid{grid-template-columns:1fr}header{align-items:flex-start}.live{display:none}.service-row{grid-template-columns:1fr 90px}}

/* Webnest Client Portal v2 admin */
a{color:var(--accent)}select,textarea{background:#071118;border:1px solid var(--line);border-radius:9px;color:#fff;padding:11px 12px;outline:none;width:100%}input{width:100%}.first-section{margin-top:0}.wide{max-width:none}.flash{border:1px solid var(--line);border-radius:12px;padding:13px 16px;margin-bottom:18px;font-size:13px}.flash.success{background:#0d261d;border-color:#25664e;color:#b7f8d9}.flash.danger{background:#2a1117;border-color:#76313d;color:#ffc2cb}.flash ul{margin:8px 0 0}.admin-panel{background:var(--panel);border:1px solid var(--line);border-radius:13px;margin-top:10px;overflow:hidden}.admin-panel summary{cursor:pointer;list-style:none;padding:16px 18px;display:flex;align-items:center;justify-content:space-between;gap:20px}.admin-panel summary::-webkit-details-marker{display:none}.admin-panel summary>div:first-child{display:grid;grid-template-columns:14px 1fr;column-gap:10px;align-items:center}.admin-panel summary strong{grid-column:2}.admin-panel summary small{grid-column:2;color:var(--muted);margin-top:3px}.summary-metrics{display:flex;gap:22px;color:#c9d7dc;font-size:12px}.inline-form{border-top:1px solid var(--line);padding:18px}.form-grid.compact{margin:0 0 16px}.checks{display:flex;gap:18px;flex-wrap:wrap;margin:10px 0 16px}.check{display:flex;grid-template-columns:auto 1fr;align-items:center;gap:8px}.check input{width:auto}.actions{display:flex;align-items:center;gap:10px;margin-top:14px}.danger-button{background:transparent;border:0;color:#ff8294;cursor:pointer;padding:0 18px 18px}.danger-text{color:#ff8294}.add-panel{border-style:dashed}.billing-test{margin-top:16px;display:flex;align-items:center;justify-content:space-between;gap:20px}.billing-test>div>strong{font-size:18px}.pill.test{color:#8bc7ff;border-color:#315b80}.admin-kpis{grid-template-columns:repeat(4,minmax(0,1fr))}@media(max-width:900px){.admin-kpis{grid-template-columns:1fr 1fr}.summary-metrics{display:none}.billing-test{align-items:flex-start;flex-direction:column}}@media(max-width:600px){.admin-kpis{grid-template-columns:1fr}.admin-panel summary{align-items:flex-start}.inline-form{padding:15px}}

/* Webnest Client Portal v3 monitoring dashboard */
nav a.active{background:var(--panel2);color:#fff;border:1px solid #263b47}.status-hero{display:grid;grid-template-columns:auto 1fr auto;gap:18px;align-items:center;border:1px solid var(--line);border-radius:18px;padding:22px 24px;background:linear-gradient(135deg,#0f1e26,#0a151c);overflow:hidden;position:relative}.status-hero:after{content:"";position:absolute;inset:auto -10% -120px 30%;height:180px;background:radial-gradient(circle,#65f7b418 0,transparent 68%);pointer-events:none}.status-hero.danger:after{background:radial-gradient(circle,#ff667c18 0,transparent 68%)}.status-hero h2{font-size:20px;margin:4px 0}.status-hero p{margin:5px 0 0;color:var(--muted);font-size:13px}.status-orb{width:42px;height:42px;border:1px solid #275c49;border-radius:50%;display:grid;place-items:center}.status-orb span{width:12px;height:12px;border-radius:50%;background:var(--accent);box-shadow:0 0 18px var(--accent)}.status-hero.danger .status-orb{border-color:#6d3440}.status-hero.danger .status-orb span{background:var(--danger);box-shadow:0 0 18px var(--danger)}.status-hero.neutral .status-orb span{background:#71858f;box-shadow:none}.status-time{text-align:right;position:relative;z-index:1}.status-time span,.status-time small{display:block;color:var(--muted);font-size:10px;text-transform:uppercase;letter-spacing:.08em}.status-time strong{display:block;font-size:22px;margin:3px 0}.dashboard-kpis{margin-top:16px}.section-meta{color:var(--muted);font-size:12px}.monitor-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.monitor-card{background:linear-gradient(180deg,#0f1b23,#0a151c);border:1px solid var(--line);border-radius:16px;padding:18px;color:inherit;text-decoration:none;transition:.18s ease}.monitor-card:hover{transform:translateY(-1px);border-color:#33505d;background:linear-gradient(180deg,#11212a,#0c1920)}.monitor-card-head,.monitor-card-footer{display:flex;justify-content:space-between;align-items:center;gap:14px}.service-identity{display:flex;align-items:center;gap:10px}.service-identity>div{display:grid}.service-identity small{color:var(--muted);font-size:11px;margin-top:3px}.state-label{font-size:10px;text-transform:uppercase;letter-spacing:.08em;border:1px solid var(--line);border-radius:999px;padding:5px 8px}.state-label.ok{color:var(--accent);border-color:#2a7659}.state-label.bad{color:#ff8394;border-color:#783846}.state-label.unknown{color:#93a5ad}.endpoint{margin:17px 0;color:#9cb0b9;font-size:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.monitor-metrics{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;padding:14px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.monitor-metrics span,.sla-grid span{display:block;font-size:9px;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}.monitor-metrics b{display:block;margin-top:5px;font-size:14px}.monitor-card-footer{padding-top:13px;color:var(--muted);font-size:11px}.service-topbar{display:flex;justify-content:space-between;align-items:flex-end;gap:20px;margin-bottom:18px}.back-link{display:inline-block;color:var(--muted);text-decoration:none;font-size:12px;margin-bottom:10px}.service-title-line{display:flex;align-items:center;gap:9px;margin-bottom:5px}.status.large{width:11px;height:11px;margin:0}.service-url{font-size:12px;color:var(--muted);text-decoration:none}.range-tabs{display:flex;background:#08131a;border:1px solid var(--line);padding:4px;border-radius:10px}.range-tabs a{padding:7px 11px;border-radius:7px;text-decoration:none;color:var(--muted);font-size:11px;font-weight:800}.range-tabs a.active{background:var(--panel2);color:var(--accent)}.service-kpis{grid-template-columns:repeat(4,minmax(0,1fr))}.monitoring-layout{display:grid;grid-template-columns:2fr 1fr;gap:16px}.monitoring-layout.resource-charts{grid-template-columns:1fr 1fr;margin-top:16px}.chart-card{background:linear-gradient(180deg,#0f1b23,#0a151c);border:1px solid var(--line);border-radius:16px;padding:20px;min-width:0}.chart-head{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:12px}.chart-stat{text-align:right}.chart-stat span{display:block;color:var(--muted);font-size:9px;letter-spacing:.08em}.chart-stat strong{display:block;margin-top:4px}.chart-wrap{height:240px;width:100%;padding-top:8px}.chart-wrap.compact{height:190px}.chart-wrap svg{display:block;width:100%;height:100%;overflow:visible}.chart-gridline{stroke:#1d303a;stroke-width:1}.chart-line{fill:none;stroke:var(--accent);stroke-width:2;stroke-linejoin:round;stroke-linecap:round}.chart-line.secondary{stroke:#82a9ff}.chart-line.tertiary{stroke:#d58cff}.chart-axis{display:flex;justify-content:space-between;color:var(--muted);font-size:9px;margin-top:5px}.chart-empty{height:180px;display:grid;place-items:center;color:var(--muted);font-size:12px}.sla-number{font-size:34px;font-weight:850;margin:12px 0}.progress{height:8px;background:#071118;border:1px solid var(--line);border-radius:999px;overflow:hidden}.progress span{display:block;height:100%;background:var(--accent);border-radius:999px}.sla-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-top:22px}.sla-grid>div:last-child{grid-column:1/-1}.sla-grid strong{display:block;margin-top:5px;font-size:15px}.resource-kpis{grid-template-columns:repeat(4,minmax(0,1fr))}.two-columns{display:grid;grid-template-columns:1fr 1fr;gap:16px}.stack-card{background:var(--panel);border:1px solid var(--line);border-radius:14px;overflow:hidden}.alert-row,.incident-row,.empty-inline{display:flex;align-items:center;gap:12px;padding:15px 16px;border-bottom:1px solid var(--line)}.alert-row:last-child,.incident-row:last-child,.empty-inline:last-child{border-bottom:0}.alert-row>div,.incident-row>div{display:grid}.alert-row small,.incident-row small,.empty-inline small{color:var(--muted);font-size:10px;margin-top:3px}.alert-dot{width:9px;height:9px;border-radius:50%;background:#f4c36b}.alert-dot.critical{background:var(--danger)}.checkmark{width:28px;height:28px;border:1px solid #275c49;border-radius:50%;display:grid;place-items:center;color:var(--accent);font-weight:900}.empty-inline>div{display:grid}.incident-row{justify-content:space-between}.monitor-footnote{margin:24px 0 5px;color:#60757f;font-size:10px;text-align:center}.state-label,.pill{white-space:nowrap}@media(max-width:1100px){.monitor-grid{grid-template-columns:1fr}.monitoring-layout,.monitoring-layout.resource-charts,.two-columns{grid-template-columns:1fr}.resource-kpis,.service-kpis{grid-template-columns:1fr 1fr}}@media(max-width:700px){.status-hero{grid-template-columns:auto 1fr}.status-time{display:none}.monitor-metrics{grid-template-columns:1fr 1fr}.service-topbar{align-items:flex-start;flex-direction:column}.resource-kpis,.service-kpis{grid-template-columns:1fr}.chart-card{padding:15px}.chart-wrap{height:200px}}

/* Webnest Client Portal v4 operations + billing */
.page-lead{color:var(--muted);font-size:13px;margin:7px 0 0}.muted-cell{color:var(--muted);max-width:480px}.billing-head{display:flex;justify-content:space-between;align-items:flex-start;gap:24px;margin-bottom:18px}.integration-badges{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end}.integration-badge{border:1px solid var(--line);border-radius:999px;padding:7px 10px;font-size:9px;font-weight:850;letter-spacing:.07em}.integration-badge.ok{color:var(--accent);border-color:#2b765a;background:#0c211a}.integration-badge.bad{color:#ff8797;border-color:#703743;background:#241116}.integration-badge.test{color:#8bc7ff;border-color:#315b80;background:#0c1c2a}.billing-kpis{grid-template-columns:repeat(4,minmax(0,1fr))}.ops-warning{margin-top:16px;border:1px solid #315b80;background:#0c1c2a;border-radius:13px;padding:14px 16px;color:#b6d8f8;font-size:12px}.billing-run-form{display:flex;align-items:flex-end;gap:12px;background:var(--panel);border:1px solid var(--line);border-radius:14px;padding:16px}.billing-run-form label{max-width:240px}.billing-run-form label span{display:block;color:var(--muted);font-size:10px;margin-bottom:6px;text-transform:uppercase;letter-spacing:.08em}.billing-run-form .primary{height:42px}.billing-columns{align-items:start}.compact-table table{font-size:11px}.compact-table th,.compact-table td{padding:12px}.table-sub{display:block;color:var(--muted);font-size:9px;margin-top:3px}.pill.open,.pill.overdue,.pill.manual_review{color:#ff8797;border-color:#76313d}.pill.resolved,.pill.paid,.pill.matched,.pill.completed{color:var(--accent);border-color:#2b765a}.pill.partial,.pill.partially_paid,.pill.unmatched,.pill.pending{color:#f4c36b;border-color:#705a30}.pill.test{color:#8bc7ff;border-color:#315b80}.pill.sent,.pill.unpaid{color:#d6e0e4}.pill.running{color:#8bc7ff;border-color:#315b80}@media(max-width:1100px){.billing-kpis{grid-template-columns:1fr 1fr}.billing-head{flex-direction:column}.integration-badges{justify-content:flex-start}}@media(max-width:700px){.billing-kpis{grid-template-columns:1fr}.billing-run-form{align-items:stretch;flex-direction:column}.billing-run-form label{max-width:none}.billing-head{margin-bottom:8px}}
