:root{--nav:#f7fafc;--bg:#2f4d64;--bg2:#29475e;--line:rgba(255,255,255,.11);--cyan:#35d6df;--green:#37e77c;--text:#eaf6ff;--muted:#a9c0d0;--dark:#263f54;--danger:#ef5d73}*{box-sizing:border-box}body{margin:0;font-family:Inter,Segoe UI,Arial,sans-serif;background:var(--bg);color:var(--text)}.hidden{display:none!important}.login{min-height:100vh;display:grid;place-items:center;background:radial-gradient(circle at top left,#38d5df33,transparent 30%),#20384b}.login-card{width:min(430px,92vw);background:#fff;color:#20384b;border-radius:14px;padding:34px;box-shadow:0 25px 80px #0005}.login-card p{color:#63798a}.mark{width:50px;height:50px;border:2px solid #b7f8ff;color:#14b7c4;display:grid;place-items:center;border-radius:13px;font-weight:900}.mark.small{width:32px;height:32px;border-radius:8px}.login label{display:block;margin:16px 0 6px;color:#5e7282;font-size:13px}.login input,.add-server input,.create-user input,.create-user select,select{width:100%;border:1px solid #d9e6ee;border-radius:4px;padding:12px;background:#fff;color:#263f54}button{border:0;border-radius:3px;background:#eef5f8;color:#31536a;padding:11px 15px;font-weight:700;cursor:pointer}button.cyan{background:var(--cyan);color:#fff}button.danger{background:var(--danger);color:#fff}.error{color:#b91c1c;margin-top:10px}.topbar{height:64px;background:var(--nav);color:#577083;display:flex;align-items:center;gap:24px;padding:0 22px;border-bottom:1px solid #dbe7ee}.brand{display:flex;align-items:center;gap:9px;color:#22657a;font-size:20px;margin-right:auto}.topbar nav{display:flex;gap:20px}.topbar nav button{background:transparent;color:#7f9aac;border-left:1px solid #edf2f6;border-radius:0}.topbar nav button.active{color:#25c4d5}.who{display:flex;gap:12px;align-items:center;font-size:13px}.app{min-height:100vh}.impersonation{background:#ffe8a3;color:#684b00;padding:12px 22px}.impersonation button{margin-left:12px;background:#684b00;color:#fff}.page{display:none;padding:18px}.active-page{display:block}.hero-panel,.panel,.nodequery{background:var(--dark);border:1px solid var(--line);box-shadow:0 15px 40px #0001}.hero-panel{display:flex;justify-content:space-between;align-items:center;padding:18px 22px;margin-bottom:14px}.hero-panel h1{margin:0 0 6px}.hero-panel p,.panel p{margin:0;color:var(--muted)}.summary-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-bottom:14px}.summary-card{background:#fff;color:#31495b;border-radius:6px;padding:20px}.summary-card span{display:block;color:#8ea1ad}.summary-card strong{font-size:36px}.panel{padding:20px;margin-bottom:14px}.row,.add-server{display:flex;justify-content:space-between;gap:18px;align-items:center}.add-server form,.create-user{display:flex;gap:10px;min-width:min(620px,100%)}pre{background:#1c3143;border:1px solid var(--line);padding:14px;overflow:auto;color:#dffaff}.server-list{display:grid}.server-row{display:grid;grid-template-columns:1.7fr .6fr .6fr .6fr .6fr .8fr;gap:12px;align-items:center;border-top:1px solid var(--line);padding:13px;cursor:pointer}.server-row:hover{background:#ffffff0a}.server-row strong{display:block}.server-row span{color:var(--muted);font-size:13px}.badge{justify-self:start;text-transform:capitalize;font-size:12px;padding:5px 9px;border-radius:99px;background:#ffffff12}.badge.online{color:#b6ffd3}.badge.offline{color:#ffc0ca}.badge.waiting{color:#fff3b0}.nodequery{margin-top:16px}.detail-head{display:flex;justify-content:space-between;gap:18px;padding:18px 22px}.tiny{color:#59c5e6}.detail-head h2{margin:4px 0;font-size:28px}.detail-head select{width:auto;background:#263f54;color:white;border-color:#3c637d}.status-line{display:flex;gap:16px;align-items:center;color:#bcd2df;font-size:14px}.dot{width:13px;height:13px;border-radius:99px;display:inline-block}.dot.online{background:var(--green);box-shadow:0 0 0 4px #37e77c22}.dot.offline{background:var(--danger)}.dot.waiting{background:#f5c84b}.owner-line{margin-top:8px;color:#9eb7c8}.head-actions{display:flex;gap:10px;align-items:flex-start}.spark{background:#28455c;padding:14px 20px}.tabs{display:flex;overflow-x:auto;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.tabs button{background:#2b485f;color:#bcd2df;border-right:1px solid var(--line);border-radius:0;padding:15px 22px;white-space:nowrap}.tabs button.active{background:#335a74;color:white}.tab-body{display:none;padding:22px}.active-body{display:block}.info-grid{display:grid;grid-template-columns:1fr 1fr;gap:70px;padding:4px 0 24px}.info-grid dl{margin:0}.info-grid div{display:grid;grid-template-columns:190px 1fr;margin:11px 0}.info-grid dt{color:#9eb7c8}.info-grid dd{margin:0;color:white;font-weight:700}.mini-cards{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}.white-card{background:#fff;color:#31495b;border-radius:7px;padding:25px 26px;min-height:160px}.white-card span{display:block;color:#a8b6bf}.white-card strong{font-size:34px;font-weight:400;margin-right:8px}.white-card small{color:#738895}.bar{height:10px;background:#eff8f9;margin:22px 0 12px}.bar i{display:block;height:100%;background:var(--cyan);width:0}.white-card em{color:#8da1ac;font-style:normal;font-size:13px}canvas{width:100%;height:260px;background:#28455c;border-radius:5px}table{width:100%;border-collapse:collapse;background:#28455c}th,td{text-align:left;padding:12px;border-bottom:1px solid var(--line);font-size:14px}th{color:#bcd2df}.events div,.audit div{display:grid;gap:4px;border-bottom:1px solid var(--line);padding:12px}.events span,.audit span,.users-table span{color:#b9cbd6}.empty-state{color:#b9cbd6;padding:25px}.user-row{display:grid;grid-template-columns:1fr auto auto auto;gap:10px;align-items:center;border-top:1px solid var(--line);padding:12px}@media(max-width:900px){.topbar{height:auto;flex-wrap:wrap;padding:12px}.topbar nav{overflow-x:auto;max-width:100%}.summary-grid,.info-grid,.mini-cards{grid-template-columns:1fr}.row,.add-server,.hero-panel,.detail-head{flex-direction:column;align-items:stretch}.add-server form,.create-user{flex-direction:column}.server-row,.user-row{grid-template-columns:1fr}.info-grid div{grid-template-columns:1fr}.head-actions{flex-wrap:wrap}}
body.theme-light{--nav:#ffffff;--bg:#eef5f9;--bg2:#e6f0f6;--line:rgba(40,70,90,.14);--cyan:#20bccb;--green:#14b86b;--text:#263f54;--muted:#597486;--dark:#ffffff;--danger:#e64c65;--chart-grid:rgba(40,70,90,.14);color:#263f54}.theme-light .hero-panel,.theme-light .panel,.theme-light .nodequery{box-shadow:0 12px 36px rgba(31,57,76,.08)}.theme-light .summary-card,.theme-light .white-card{box-shadow:0 8px 25px rgba(31,57,76,.08)}.theme-light .detail-head select,.theme-light pre,.theme-light canvas,.theme-light table,.theme-light .spark{background:#eef7fb;color:#263f54;border-color:#cce2ee}.theme-light .tabs button{background:#f2f8fb;color:#385c73}.theme-light .tabs button.active{background:#dceff8;color:#17384f}.theme-light .info-grid dd{color:#20384b}.theme-light .server-row:hover{background:#eef7fb}.theme-light .topbar nav button{border-left-color:#edf3f7}.theme-light .login{background:radial-gradient(circle at top left,#38d5df33,transparent 30%),#eef5f9}.plans-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-top:18px}.plan-card{background:#fff;color:#31495b;border-radius:8px;padding:22px;border:2px solid transparent;box-shadow:0 10px 30px #0001}.plan-card.current{border-color:var(--cyan)}.plan-card span{color:#1eb6c4;font-weight:800}.plan-card h2{margin:6px 0 10px;color:#263f54}.plan-card strong{font-size:22px}.plan-card p{margin:8px 0 12px;color:#667f90}.plan-card ul{padding-left:18px;min-height:95px;color:#526b7a}.plan-card em{display:inline-block;background:#e8fbfd;color:#1595a3;border-radius:99px;padding:8px 12px;font-style:normal;font-weight:800}.account-form{display:grid;grid-template-columns:repeat(2,minmax(220px,1fr));gap:14px;margin-top:18px}.account-form label{display:grid;gap:7px;color:var(--muted);font-weight:700}.account-form input,.account-form select{border:1px solid #d9e6ee;border-radius:4px;padding:12px;background:#fff;color:#263f54}.account-form button{justify-self:start}.swal2-popup{font-family:Inter,Segoe UI,Arial,sans-serif!important}.swal2-confirm{background:var(--cyan)!important}.swal2-cancel{background:#8096a8!important}@media(max-width:900px){.plans-grid,.account-form{grid-template-columns:1fr}}

/* NodeWatch admin/customer split + UI polish */
.navlink{display:inline-flex;align-items:center;padding:11px 15px;color:#7f9aac;text-decoration:none;font-weight:800;border-left:1px solid #edf2f6}
.navlink:hover,.navlink.active{color:#25c4d5}
.create-user{display:grid;grid-template-columns:1.2fr 1.1fr .8fr .8fr auto;gap:10px;align-items:stretch;width:100%;min-width:0}
.create-user input,.create-user select{min-width:0;height:48px}
.create-user button{height:48px;white-space:nowrap}.users-table{display:grid;gap:12px;margin-top:18px}.user-row{display:grid;grid-template-columns:minmax(320px,1fr) auto;gap:16px;align-items:center;border-top:1px solid var(--line);padding:16px 12px}.user-main strong{font-size:16px;margin-right:6px}.user-main span{display:block;margin-top:5px}.user-actions{display:flex;gap:10px;justify-content:flex-end;flex-wrap:wrap}.user-actions button{white-space:nowrap}.user-actions .danger{min-width:84px}.admin-section .panel{max-width:1500px;margin-left:auto;margin-right:auto}.nodewatch-swal .swal2-title{color:#253f53}.swal-nodewatch-select{width:100%;height:48px;border:1px solid #d9e6ee;border-radius:7px;padding:0 14px;background:#fff;color:#263f54;font-size:16px}.swal2-popup{border-radius:10px!important}.swal2-html-container{overflow:visible!important}.swal2-backdrop-show{backdrop-filter:blur(1px)}
.theme-light .navlink{border-left-color:#edf3f7}.theme-light .create-user input,.theme-light .create-user select,.theme-light .account-form input,.theme-light .account-form select{background:#fff;color:#263f54}.theme-light .user-row{background:#fff;border-radius:6px;border:1px solid var(--line);box-shadow:0 8px 25px rgba(31,57,76,.06)}
body:not(.theme-light) .create-user input,body:not(.theme-light) .create-user select,body:not(.theme-light) .account-form input,body:not(.theme-light) .account-form select{background:#20384b;color:#eaf6ff;border-color:#42677f}body:not(.theme-light) .create-user input::placeholder,body:not(.theme-light) .account-form input::placeholder{color:#9eb7c8}.plans-grid .plan-card button[disabled]{opacity:.65;cursor:not-allowed}.plan-card .stripe-note{display:block;margin-top:10px;color:#6d8392;font-size:13px}
@media(max-width:1100px){.create-user{grid-template-columns:1fr 1fr}.create-user button{grid-column:1/-1}.user-row{grid-template-columns:1fr}.user-actions{justify-content:flex-start}}
@media(max-width:700px){.create-user{grid-template-columns:1fr}.topbar nav{gap:6px}.navlink{padding:10px 12px}.user-actions{display:grid;grid-template-columns:1fr 1fr;width:100%}.user-actions button{width:100%}}

.admin-float{position:fixed;right:24px;bottom:24px;z-index:60;display:inline-flex;align-items:center;gap:8px;background:var(--cyan);color:#fff;text-decoration:none;font-weight:900;border-radius:999px;padding:14px 18px;box-shadow:0 14px 35px rgba(0,0,0,.28);border:1px solid rgba(255,255,255,.35)}
.admin-float:before{content:"⚙";font-size:16px}.admin-float:hover{filter:brightness(1.05);transform:translateY(-1px)}.theme-light .admin-float{color:#fff;box-shadow:0 14px 35px rgba(31,57,76,.22)}
@media(max-width:700px){.admin-float{right:14px;bottom:14px;padding:13px 15px;font-size:14px}}


/* Responsive + floating admin refinements */
html{scroll-behavior:smooth}body{min-width:0}.app{padding-bottom:84px}.topbar{position:sticky;top:0;z-index:40}.topbar nav button,.topbar .navlink,.who button{min-height:44px}.brand{min-width:max-content}.who{min-width:max-content}.page{max-width:1800px;margin:0 auto}.panel,.hero-panel,.nodequery{max-width:100%;overflow:hidden}pre{max-width:100%;white-space:pre-wrap;word-break:break-word}canvas{max-width:100%}img,svg{max-width:100%;height:auto}.server-list,.users-table,.audit,.events{min-width:0}.server-row>*{min-width:0}.server-row strong,.server-row span,.user-main strong,.user-main span{overflow-wrap:anywhere}.detail-head>div{min-width:0}.head-actions{min-width:0}.tabs{-webkit-overflow-scrolling:touch;scrollbar-width:thin}.tabs button{min-height:52px}.white-card,.summary-card,.plan-card{min-width:0}.account-form input,.account-form select,.create-user input,.create-user select,.add-server input{font-size:16px}.admin-float{bottom:calc(24px + env(safe-area-inset-bottom));right:calc(24px + env(safe-area-inset-right))}.has-admin-float{padding-bottom:92px}

@media(max-width:1200px){
  .summary-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .mini-cards{grid-template-columns:repeat(2,minmax(0,1fr))}
  .mini-cards .white-card:last-child{grid-column:1/-1}
  .info-grid{gap:28px}
  .server-row{grid-template-columns:1.4fr .55fr .55fr .55fr .55fr .7fr}
}

@media(max-width:900px){
  .topbar{align-items:flex-start;gap:12px}.topbar nav{order:3;width:100%;display:flex;overflow-x:auto;padding-bottom:4px}.who{margin-left:0;width:100%;justify-content:space-between;flex-wrap:wrap}.page{padding:12px}.hero-panel,.panel{padding:16px}.summary-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.summary-card{padding:16px}.summary-card strong{font-size:30px}.detail-head{padding:16px}.detail-head h2{font-size:24px}.head-actions{display:grid;grid-template-columns:1fr 1fr;width:100%}.head-actions .spark{grid-column:1/-1}.head-actions button{width:100%}.status-line{flex-wrap:wrap;gap:8px 14px}.tabs button{padding:14px 16px}.tab-body{padding:16px}.info-grid{gap:12px}.mini-cards{grid-template-columns:1fr;gap:14px}.mini-cards .white-card:last-child{grid-column:auto}.white-card{padding:20px;min-height:140px}.plans-grid{grid-template-columns:1fr}.user-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));width:100%}.user-actions button{width:100%}
}

@media(max-width:640px){
  .login-card{padding:24px}.brand{font-size:18px}.who{font-size:12px}.who button{padding:10px 12px}.topbar nav button{padding:10px 12px;font-size:13px}.summary-grid{grid-template-columns:1fr}.add-server form{width:100%}.server-row{display:grid;grid-template-columns:1fr 1fr;gap:8px;padding:14px 10px;border:1px solid var(--line);border-radius:8px;margin:10px 0}.server-row strong{grid-column:1/-1;font-size:16px}.server-row span:first-of-type{grid-column:1/-1}.server-row .badge{grid-column:1/-1}.detail-head select{width:100%;margin-top:8px}.head-actions{grid-template-columns:1fr}.tabs{margin-left:-16px;margin-right:-16px}.tabs button{font-size:13px;padding:13px 14px}.info-grid div{gap:4px;margin:13px 0}.info-grid dt{font-size:13px}.info-grid dd{font-size:15px}.white-card strong{font-size:30px}.create-user{grid-template-columns:1fr!important}.user-row{padding:14px 0}.user-actions{grid-template-columns:1fr}.account-form{grid-template-columns:1fr}.swal2-popup{width:calc(100vw - 28px)!important}.admin-float{right:calc(12px + env(safe-area-inset-right));bottom:calc(12px + env(safe-area-inset-bottom));padding:12px 14px;font-size:13px}.admin-float:before{font-size:14px}
}

@media(max-width:420px){
  .page{padding:10px}.topbar{padding:10px}.mark.small{width:28px;height:28px}.brand strong{font-size:17px}.who span{width:100%;overflow-wrap:anywhere}.summary-card strong{font-size:28px}.panel h1,.hero-panel h1{font-size:25px}.panel h2{font-size:20px}.detail-head h2{font-size:22px}.status-line{font-size:13px}.server-row{grid-template-columns:1fr}.spark{padding:12px}.admin-float{width:46px;height:46px;justify-content:center;padding:0;border-radius:50%;font-size:0}.admin-float:before{font-size:18px;margin:0}
}

/* Server alert/notification rules */
.alerts-layout{display:grid;grid-template-columns:minmax(280px,420px) 1fr;gap:24px;align-items:start}.alert-rule-form{background:rgba(255,255,255,.04);border:1px solid var(--line);border-radius:10px;padding:18px}.alert-rule-form h3,.alerts-layout h3{margin:0 0 8px}.alert-rule-form p{color:var(--muted);margin:0 0 14px}.alert-rule-form label{display:grid;gap:7px;margin:12px 0;color:var(--muted);font-weight:700}.alert-rule-form input,.alert-rule-form select{width:100%;padding:13px 14px;border-radius:7px;border:1px solid #486b82;background:#20384b;color:#eaf6ff;font-size:16px}.theme-light .alert-rule-form{background:#f8fbfd}.theme-light .alert-rule-form input,.theme-light .alert-rule-form select{background:#fff;color:#23394b;border-color:#dce8f0}.alert-rules{display:grid;gap:12px}.alert-rule{display:grid;grid-template-columns:1fr auto;gap:16px;align-items:center;padding:14px 0;border-bottom:1px solid var(--line)}.alert-rule strong{display:block;color:var(--text)}.alert-rule span{display:block;color:var(--muted);font-size:14px;margin-top:4px}.alert-rule div:last-child{display:flex;gap:10px;flex-wrap:wrap}.alert-rule button{min-height:40px}
@media(max-width:900px){.alerts-layout{grid-template-columns:1fr}.alert-rule{grid-template-columns:1fr}.alert-rule div:last-child{display:grid;grid-template-columns:1fr 1fr;width:100%}.alert-rule button{width:100%}}
@media(max-width:420px){.alert-rule div:last-child{grid-template-columns:1fr}}

.check-row{display:flex!important;align-items:center;gap:10px;flex-direction:row!important;margin:8px 0;color:var(--text)}
.check-row input{width:auto!important;min-height:auto!important}
.admin-edit-grid{display:grid;gap:12px;text-align:left}
.admin-edit-grid label{display:grid;gap:6px;font-size:13px;color:var(--muted)}
.admin-edit-grid input,.admin-edit-grid select{width:100%;box-sizing:border-box;border-radius:10px;border:1px solid var(--line);background:var(--input);color:var(--text);padding:10px 12px}
.wide-swal{width:min(720px,94vw)!important}
@media (min-width:700px){.admin-edit-grid{grid-template-columns:1fr 1fr}}

/* Modal/readability fixes for SweetAlert admin forms */
.nodewatch-swal.swal2-popup,
.swal2-popup.nodewatch-swal{
  background:#ffffff!important;
  color:#23394b!important;
}
.nodewatch-swal .swal2-title,
.swal2-popup.nodewatch-swal .swal2-title{
  color:#23394b!important;
  font-weight:800!important;
}
.nodewatch-swal .swal2-html-container,
.swal2-popup.nodewatch-swal .swal2-html-container{
  color:#23394b!important;
  opacity:1!important;
}
.nodewatch-swal .admin-edit-grid,
.swal2-popup.nodewatch-swal .admin-edit-grid{
  display:grid;
  gap:14px;
  text-align:left;
}
.nodewatch-swal .admin-edit-grid label,
.swal2-popup.nodewatch-swal .admin-edit-grid label{
  display:grid;
  gap:7px;
  color:#526b7d!important;
  font-weight:700;
  font-size:13px;
  opacity:1!important;
}
.nodewatch-swal .admin-edit-grid input,
.nodewatch-swal .admin-edit-grid select,
.swal2-popup.nodewatch-swal .admin-edit-grid input,
.swal2-popup.nodewatch-swal .admin-edit-grid select{
  width:100%!important;
  height:46px!important;
  box-sizing:border-box!important;
  border-radius:8px!important;
  border:1px solid #cfdfe9!important;
  background:#ffffff!important;
  color:#20384b!important;
  padding:10px 12px!important;
  font-size:15px!important;
  opacity:1!important;
  -webkit-text-fill-color:#20384b!important;
}
.nodewatch-swal .admin-edit-grid input::placeholder,
.swal2-popup.nodewatch-swal .admin-edit-grid input::placeholder{
  color:#8aa0ae!important;
  opacity:1!important;
}
.nodewatch-swal .admin-edit-grid select option,
.swal2-popup.nodewatch-swal .admin-edit-grid select option{
  background:#ffffff!important;
  color:#20384b!important;
}
.nodewatch-swal .swal2-actions{
  margin-top:26px!important;
}
.wide-swal{width:min(760px,94vw)!important;}
@media (min-width:700px){
  .nodewatch-swal .admin-edit-grid{grid-template-columns:1fr 1fr;}
}
@media (max-width:699px){
  .wide-swal{width:calc(100vw - 24px)!important;}
  .nodewatch-swal .admin-edit-grid{grid-template-columns:1fr;}
}
