/* =========================================================
   BM138 — Glass Brand Theme
   Colors from logo: metallic silver + orange/amber glow
   ========================================================= */
:root{
  --bg0:#07090d;
  --bg1:#0b0f14;
  --orange:#ff7a1a;
  --orange2:#ff9a3c;
  --orange-dim:rgba(255,122,26,.14);
  --orange-line:rgba(255,122,26,.35);
  --silver:#c9d2db;
  --silver2:#e8eef4;
  --muted:#8b98a5;
  --muted2:#667582;
  --glass:rgba(16,22,30,.55);
  --glass2:rgba(22,30,40,.62);
  --glass-border:rgba(255,255,255,.08);
  --glass-border2:rgba(255,122,26,.18);
  --ok:#3dde8a;
  --bad:#ff6b6b;
  --warn:#ffc14d;
  --radius:16px;
  --radius-sm:12px;
  --shadow:0 20px 50px rgba(0,0,0,.45);
  --font:Inter,ui-sans-serif,system-ui,-apple-system,Segoe UI,Roboto,Arial,sans-serif;
}

*{box-sizing:border-box}
html,body{margin:0;padding:0;min-height:100%}
body{
  font-family:var(--font);
  color:var(--silver2);
  background:
    radial-gradient(1000px 500px at 12% -10%, rgba(255,122,26,.16), transparent 55%),
    radial-gradient(900px 480px at 95% 10%, rgba(255,154,60,.08), transparent 50%),
    radial-gradient(800px 500px at 50% 110%, rgba(255,122,26,.07), transparent 55%),
    linear-gradient(180deg, #080b10 0%, #0a0e14 100%);
  background-attachment:fixed;
}

.hidden{display:none !important}
a{color:var(--orange2);text-decoration:none}

/* ---------- AUTH (Login / 2FA) ---------- */
.auth-wrap{
  min-height:100vh;display:flex;align-items:center;justify-content:center;
  padding:28px 16px;
}
.auth-card, .login-card, .twofa-card{
  width:min(420px,100%);
  background:linear-gradient(160deg, rgba(255,255,255,.07), rgba(255,255,255,.02));
  backdrop-filter:blur(22px) saturate(140%);
  -webkit-backdrop-filter:blur(22px) saturate(140%);
  border:1px solid var(--glass-border);
  border-top-color:rgba(255,255,255,.14);
  border-radius:20px;
  padding:32px 28px 26px;
  box-shadow:var(--shadow), inset 0 1px 0 rgba(255,255,255,.06);
  position:relative;
  overflow:hidden;
}
.auth-card::before, .login-card::before{
  content:"";position:absolute;inset:-1px;border-radius:20px;pointer-events:none;
  background:linear-gradient(135deg, rgba(255,122,26,.25), transparent 35%, transparent 65%, rgba(201,210,219,.12));
  mask:linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0);
  mask-composite:exclude; padding:1px;
}
.login-brand{text-align:center;margin-bottom:22px;position:relative;z-index:1}
.login-logo{height:64px;margin:0 auto 14px;display:block;object-fit:contain;filter:drop-shadow(0 8px 18px rgba(255,122,26,.25))}
.login-card h1, .auth-card h1, .twofa-card h2{
  margin:0;font-size:22px;font-weight:700;letter-spacing:.2px;
  background:linear-gradient(90deg, #f4f7fa, #cfd8e2 40%, #ff9a3c);
  -webkit-background-clip:text;background-clip:text;color:transparent;
  text-align:center;
}
.login-tagline, .twofa-sub{
  margin:10px 0 0;color:var(--muted);font-size:12.5px;letter-spacing:.5px;text-align:center;line-height:1.45
}
.field-label{display:block;font-size:11px;color:var(--muted);margin:14px 0 6px;letter-spacing:.4px;font-weight:600;text-transform:uppercase}
.field-label small{text-transform:none;font-weight:400;color:var(--muted2)}

.login-form input[type=email],
.login-form input[type=password],
.login-form input[type=text],
.auth-card input,
.modal-card input,
.modal-card textarea,
.modal-card select,
.panel input, .panel select, .panel textarea{
  width:100%;
  background:rgba(5,10,16,.55) !important;
  color:var(--silver2) !important;
  border:1px solid rgba(255,255,255,.1) !important;
  border-radius:12px;
  padding:12px 14px;
  margin:0;
  outline:none;
  font-size:14px;
  transition:border-color .15s, box-shadow .15s, background .15s;
  -webkit-appearance:none;appearance:none;
}
.login-form input:focus,
.auth-card input:focus,
.modal-card input:focus,
.modal-card textarea:focus,
.modal-card select:focus{
  border-color:var(--orange-line) !important;
  box-shadow:0 0 0 3px var(--orange-dim);
  background:rgba(8,14,22,.75) !important;
}
.login-form input::placeholder{color:#5c6b78}
.pass-wrap{position:relative}
.pass-wrap input{padding-right:46px !important}
.pass-toggle{
  position:absolute;right:6px;top:50%;transform:translateY(-50%);
  background:transparent;border:0;color:var(--muted);cursor:pointer;font-size:14px;padding:8px;
}
.pass-toggle:hover{color:var(--orange2)}

.btn-primary, .login-form button[type=submit], #loginBtn, #verifyBtn,
.modal-card form button[type=submit], .modal-card form > button{
  width:100%;margin-top:18px;
  background:linear-gradient(100deg, var(--orange), var(--orange2));
  color:#120b05;border:0;border-radius:12px;padding:13px 16px;
  font-weight:800;font-size:14px;letter-spacing:.5px;cursor:pointer;
  box-shadow:0 10px 28px rgba(255,122,26,.28);
  transition:filter .15s, transform .15s;
}
.btn-primary:hover, #loginBtn:hover, #verifyBtn:hover{filter:brightness(1.06)}
.btn-primary:disabled, #loginBtn:disabled, #verifyBtn:disabled{opacity:.65;cursor:wait;filter:none;box-shadow:none}
.auth-msg, #authMsg, .twofa-msg, #twofaMsg{min-height:18px;margin-top:12px;text-align:center;color:var(--bad);font-size:13px}
.login-foot{margin:18px 0 0;text-align:center;color:var(--muted2);font-size:11px;letter-spacing:.35px}
.icon-logo{height:40px;margin:0 auto 12px;display:block;filter:drop-shadow(0 6px 14px rgba(255,122,26,.3))}
.btn-link{
  display:block;width:100%;margin-top:12px;background:transparent;border:0;
  color:var(--muted);cursor:pointer;font-size:13px;padding:8px;
}
.btn-link:hover{color:var(--orange2)}

/* OTP */
.qr-box{margin:0 0 18px;text-align:center}
.qr-box img{width:190px;height:190px;border-radius:14px;background:#fff;padding:8px;margin:0 auto 10px;display:block}
.otp-row{display:flex;gap:10px;justify-content:center;margin:8px 0 18px}
.otp-digit{
  width:48px;height:56px;text-align:center;font-size:22px;font-weight:700;
  border-radius:12px;border:1px solid rgba(255,255,255,.12);background:rgba(5,10,16,.55);color:#fff;
  outline:none;caret-color:var(--orange);
}
.otp-digit:focus{border-color:var(--orange);box-shadow:0 0 0 3px var(--orange-dim)}
.otp-digit.otp-error{border-color:var(--bad);box-shadow:0 0 0 3px rgba(255,107,107,.18)}
@media(max-width:480px){.otp-digit{width:42px;height:50px;font-size:20px}.otp-row{gap:6px}}

/* ---------- APP SHELL ---------- */
#app{min-height:100vh;display:flex}
.sidebar{
  width:248px;flex-shrink:0;
  background:rgba(10,14,20,.72);
  backdrop-filter:blur(18px) saturate(130%);
  -webkit-backdrop-filter:blur(18px) saturate(130%);
  border-right:1px solid var(--glass-border);
  display:flex;flex-direction:column;padding:18px 14px;
  position:sticky;top:0;height:100vh;
}
.brand{
  height:42px;object-fit:contain;margin:4px 10px 18px;display:block;
  filter:drop-shadow(0 6px 14px rgba(255,122,26,.2));
}
.nav-title{
  font-size:10px;letter-spacing:1.2px;color:var(--muted2);font-weight:700;
  margin:16px 10px 8px;text-transform:uppercase;
}
.nav-btn, #logout{
  display:block;width:100%;text-align:left;
  background:transparent;border:1px solid transparent;
  color:var(--silver);padding:10px 12px;border-radius:10px;
  cursor:pointer;font-size:13px;font-weight:600;margin:2px 0;
  transition:background .15s, border-color .15s, color .15s;
}
.nav-btn:hover, #logout:hover{
  background:rgba(255,255,255,.04);color:#fff;border-color:rgba(255,255,255,.06);
}
.nav-btn.active{
  background:linear-gradient(90deg, rgba(255,122,26,.18), rgba(255,122,26,.05));
  border-color:var(--orange-line);color:#fff;
  box-shadow:inset 0 0 0 1px rgba(255,122,26,.08);
}
#logout{margin-top:auto;color:var(--muted)}
.sidebar-foot{
  margin-top:12px;padding:10px 12px;border-radius:12px;
  background:rgba(255,255,255,.03);border:1px solid var(--glass-border);
  font-size:11px;color:var(--muted);
}
.sidebar-foot .dot{color:var(--ok)}

.main{flex:1;min-width:0;padding:22px 26px 40px}
.topbar{
  display:flex;justify-content:space-between;align-items:flex-start;gap:16px;
  margin-bottom:20px;
}
.topbar h1{margin:0;font-size:20px;font-weight:700;color:#f3f6f9}
.topbar p{margin:6px 0 0;color:var(--muted);font-size:13px}
.pill{
  display:inline-flex;align-items:center;gap:8px;
  padding:8px 12px;border-radius:999px;font-size:12px;font-weight:700;
  background:rgba(61,222,138,.1);border:1px solid rgba(61,222,138,.25);color:var(--ok);
  white-space:nowrap;
}
.pill::before{content:"";width:7px;height:7px;border-radius:50%;background:var(--ok);box-shadow:0 0 10px var(--ok)}

/* panels / glass cards */
.panel, .card, .detail-box, .project-row{
  background:var(--glass);
  backdrop-filter:blur(16px) saturate(140%);
  -webkit-backdrop-filter:blur(16px) saturate(140%);
  border:1px solid var(--glass-border);
  border-radius:var(--radius);
  box-shadow:0 12px 30px rgba(0,0,0,.22);
}
.panel{padding:18px 18px 16px;margin-bottom:16px}
.panel-head{
  display:flex;justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:14px;
}
.panel-head h2{
  margin:0;font-size:13px;letter-spacing:.8px;text-transform:uppercase;color:var(--silver);
  font-weight:800;
}
.section-sub{margin:6px 0 0;color:var(--muted);font-size:12.5px;line-height:1.45;font-weight:500}
.cards{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin-bottom:16px}
@media(max-width:1100px){.cards{grid-template-columns:repeat(2,1fr)}}
@media(max-width:640px){.cards{grid-template-columns:1fr}}
.card{padding:16px 16px 14px;position:relative;overflow:hidden}
.card::after{
  content:"";position:absolute;right:-20px;top:-20px;width:90px;height:90px;border-radius:50%;
  background:radial-gradient(circle, rgba(255,122,26,.18), transparent 70%);
  pointer-events:none;
}
.card .label{font-size:11px;color:var(--muted);letter-spacing:.5px;text-transform:uppercase;font-weight:700}
.card .value{margin-top:8px;font-size:28px;font-weight:800;letter-spacing:-.5px;color:#fff}
.card .hint{margin-top:6px;font-size:11px;color:var(--muted2)}

.btn-sm, .btn-xs{
  background:rgba(255,255,255,.05);
  color:var(--silver2);
  border:1px solid rgba(255,255,255,.1);
  border-radius:9px;padding:8px 12px;font-size:12px;font-weight:700;cursor:pointer;
}
.btn-sm:hover, .btn-xs:hover{background:rgba(255,122,26,.12);border-color:var(--orange-line);color:#fff}
.btn-sm{
  background:linear-gradient(100deg, var(--orange), var(--orange2));
  color:#140c05;border:0;box-shadow:0 8px 20px rgba(255,122,26,.22);
}
.btn-sm:hover{filter:brightness(1.05);color:#140c05}
.btn-xs.btn-danger{background:rgba(255,107,107,.08);border-color:rgba(255,107,107,.28);color:#ff8f8f}
.btn-xs.btn-danger:hover{background:rgba(255,107,107,.16)}
.actions{white-space:nowrap;display:flex;gap:6px}

/* tables */
.table-wrap{overflow:auto;border-radius:12px;border:1px solid rgba(255,255,255,.06)}
table{width:100%;border-collapse:collapse;font-size:13px}
th{
  text-align:left;padding:11px 12px;color:var(--muted);font-size:11px;letter-spacing:.5px;
  text-transform:uppercase;font-weight:700;
  background:rgba(255,255,255,.03);border-bottom:1px solid rgba(255,255,255,.06);
}
td{padding:12px;border-bottom:1px solid rgba(255,255,255,.04);color:var(--silver);vertical-align:middle}
tr:hover td{background:rgba(255,255,255,.02)}
.ip, code{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:12px;color:#b7c4d0}
.money{color:var(--orange2);font-weight:700}

.detail-box{padding:14px 16px}
.detail-box h3{margin:0 0 10px;font-size:12px;letter-spacing:.6px;text-transform:uppercase;color:var(--muted)}
.kv{display:flex;justify-content:space-between;gap:12px;padding:8px 0;border-bottom:1px solid rgba(255,255,255,.04);font-size:13px}
.kv span:first-child{color:var(--muted)}
.kv span:last-child{color:var(--silver2);font-weight:600;text-align:right}

.project-row{
  margin:10px 0;padding:14px 16px;
  display:flex;justify-content:space-between;align-items:center;gap:12px;
}

/* modal glass */
.modal{
  position:fixed;inset:0;z-index:50;
  background:rgba(4,7,12,.62);
  backdrop-filter:blur(8px);
  display:flex;align-items:center;justify-content:center;padding:20px;
}
.modal.hidden{display:none !important}
.modal-card{
  width:min(480px,100%);max-height:min(90vh,820px);overflow:auto;
  background:linear-gradient(165deg, rgba(24,32,42,.88), rgba(12,16,22,.92));
  backdrop-filter:blur(24px) saturate(140%);
  -webkit-backdrop-filter:blur(24px) saturate(140%);
  border:1px solid rgba(255,255,255,.1);
  border-radius:18px;padding:22px 22px 18px;
  box-shadow:0 30px 80px rgba(0,0,0,.55);
  position:relative;
}
.modal-card h2{margin:0 40px 8px 0;font-size:18px;color:#fff}
.modal-card > p{margin:0 0 12px;color:var(--muted);font-size:13px;line-height:1.45}
.modal-card .x{
  position:absolute;right:12px;top:12px;width:34px;height:34px;border-radius:10px;
  border:1px solid rgba(255,255,255,.08);background:rgba(255,255,255,.04);
  color:var(--muted);cursor:pointer;font-size:18px;line-height:1;
}
.modal-card .x:hover{color:#fff;border-color:rgba(255,255,255,.16)}
.modal-card textarea{min-height:88px;resize:vertical}
.form-msg{margin-top:12px;color:var(--ok);font-size:13px;min-height:18px}
pre#projectResult, pre#destResult{
  white-space:pre-wrap;background:rgba(0,0,0,.25);border:1px solid rgba(255,255,255,.06);
  border-radius:10px;padding:12px;color:#d7e0e8;font-size:12px;margin-top:12px;
}

.view.hidden{display:none !important}
.footer-note{
  margin-top:28px;text-align:center;color:var(--muted2);font-size:12px;
}
.footer-note a{color:var(--orange2)}

/* status colors */
.status-sent, .ok{color:var(--ok)}
.status-failed, .bad{color:var(--bad)}
.status-skipped{color:var(--warn)}

/* misc from older UI */
.small{font-size:12px;color:var(--muted)}

/* compatibility aliases */
.status-pill{
  display:inline-flex;align-items:center;gap:8px;
  padding:8px 12px;border-radius:999px;font-size:12px;font-weight:700;
  background:rgba(61,222,138,.1);border:1px solid rgba(61,222,138,.25);color:var(--ok);
  white-space:nowrap;
}
.env{
  margin-top:12px;padding:10px 12px;border-radius:12px;
  background:rgba(255,255,255,.03);border:1px solid var(--glass-border);
  font-size:11px;color:var(--muted);line-height:1.5;
}
.env span{color:var(--muted2)}
.layout, .shell{display:flex;min-height:100vh}
.aside, aside, .side{ /* if any */ }
#app > aside, #app .sidebar, .sidebar{width:248px}

/* shell structure used by index.html */
#app.layout, .layout{display:flex;min-height:100vh}
#app > aside{
  width:248px;flex-shrink:0;
  background:rgba(10,14,20,.72);
  backdrop-filter:blur(18px) saturate(130%);
  -webkit-backdrop-filter:blur(18px) saturate(130%);
  border-right:1px solid var(--glass-border);
  display:flex;flex-direction:column;padding:18px 14px;
  position:sticky;top:0;height:100vh;overflow:auto;
}
#app > main{flex:1;min-width:0;padding:22px 26px 40px}
#app > main > header{
  display:flex;justify-content:space-between;align-items:flex-start;gap:16px;
  margin-bottom:20px;
}
#app > main > header h1{margin:0;font-size:20px;font-weight:700;color:#f3f6f9}
#app > main > header p{margin:6px 0 0;color:var(--muted);font-size:13px}
#app > aside nav{display:flex;flex-direction:column;flex:1}

/* ===== Dashboard mockup-inspired ===== */
.kpi-grid{
  display:grid;
  grid-template-columns:repeat(5,minmax(0,1fr));
  gap:14px;margin-bottom:16px;
}
@media(max-width:1200px){.kpi-grid{grid-template-columns:repeat(3,1fr)}}
@media(max-width:720px){.kpi-grid{grid-template-columns:repeat(2,1fr)}}
.kpi-card{
  display:flex;gap:12px;align-items:flex-start;
  padding:16px;
  background:rgba(16,22,30,.55);
  backdrop-filter:blur(16px);
  border:1px solid rgba(255,255,255,.08);
  border-radius:16px;
  box-shadow:0 12px 30px rgba(0,0,0,.22);
  position:relative;overflow:hidden;
}
.kpi-card::after{
  content:"";position:absolute;right:-18px;top:-18px;width:80px;height:80px;border-radius:50%;
  background:radial-gradient(circle, rgba(255,122,26,.2), transparent 70%);
}
.kpi-icon{
  width:42px;height:42px;border-radius:12px;flex-shrink:0;
  display:flex;align-items:center;justify-content:center;
  background:rgba(255,122,26,.12);border:1px solid rgba(255,122,26,.22);
  font-size:18px;
}
.kpi-label{font-size:11px;color:var(--muted);text-transform:uppercase;letter-spacing:.5px;font-weight:700}
.kpi-value{font-size:28px;font-weight:800;color:#fff;margin-top:4px;letter-spacing:-.5px;line-height:1.1}
.kpi-sub{font-size:11px;color:var(--muted2);margin-top:4px}

.dash-split{display:grid;grid-template-columns:1.7fr .9fr;gap:14px;margin-bottom:16px}
@media(max-width:1100px){.dash-split{grid-template-columns:1fr}}
.pipeline-panel h2, .status-panel h2{margin:0 0 14px}
.pipeline{
  display:flex;align-items:center;justify-content:space-between;gap:8px;flex-wrap:wrap;
}
.pipe-step{
  flex:1;min-width:120px;text-align:center;
  background:rgba(255,255,255,.03);
  border:1px solid rgba(255,255,255,.07);
  border-radius:14px;padding:14px 10px;
}
.pipe-step.pipe-core{
  border-color:rgba(255,122,26,.3);
  background:linear-gradient(180deg, rgba(255,122,26,.12), rgba(255,255,255,.02));
  box-shadow:0 0 24px rgba(255,122,26,.08);
}
.pipe-orb{
  width:52px;height:52px;margin:0 auto 8px;border-radius:14px;
  display:flex;align-items:center;justify-content:center;
  font-size:11px;font-weight:800;letter-spacing:.4px;color:#fff;
  background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.1);
}
.pipe-orb.core{
  background:linear-gradient(135deg, rgba(255,122,26,.35), rgba(255,154,60,.15));
  border-color:rgba(255,122,26,.4);
  box-shadow:0 0 20px rgba(255,122,26,.2);
}
.pipe-title{font-size:13px;font-weight:700;color:#fff}
.pipe-sub{font-size:11px;color:var(--muted);margin-top:4px}
.pipe-live{font-size:11px;color:var(--ok);margin-top:8px;font-weight:700}
.pipe-arrow{color:var(--orange);font-size:20px;font-weight:700;padding:0 2px}

.uptime-ring{
  width:120px;height:120px;margin:8px auto 16px;border-radius:50%;
  display:flex;flex-direction:column;align-items:center;justify-content:center;
  background:
    radial-gradient(circle at center, rgba(10,14,20,.95) 58%, transparent 59%),
    conic-gradient(var(--orange) 0 90%, rgba(255,255,255,.08) 90% 100%);
  border:1px solid rgba(255,122,26,.25);
  box-shadow:0 0 30px rgba(255,122,26,.12);
}
.uptime-ring span{font-size:16px;font-weight:800;color:#fff}
.uptime-ring small{font-size:10px;color:var(--muted);margin-top:2px}
.status-list{display:flex;flex-direction:column;gap:8px}
.status-row{
  display:flex;justify-content:space-between;align-items:center;
  padding:9px 11px;border-radius:10px;
  background:rgba(255,255,255,.03);border:1px solid rgba(255,255,255,.05);
  font-size:12.5px;color:var(--silver);
}
.live{
  display:inline-flex;align-items:center;gap:6px;
  color:var(--ok);font-size:12px;font-weight:700;
  background:rgba(61,222,138,.08);border:1px solid rgba(61,222,138,.2);
  padding:6px 10px;border-radius:999px;
}
.badge{
  display:inline-block;padding:4px 8px;border-radius:999px;
  font-size:10.5px;font-weight:700;letter-spacing:.2px;margin:2px 2px 2px 0;
}
.badge-sent{background:rgba(61,222,138,.12);color:#3dde8a;border:1px solid rgba(61,222,138,.25)}
.badge-fail{background:rgba(255,107,107,.12);color:#ff8f8f;border:1px solid rgba(255,107,107,.25)}
.badge-skip{background:rgba(255,193,77,.12);color:#ffc14d;border:1px solid rgba(255,193,77,.25)}
.badge-wait{background:rgba(255,255,255,.06);color:#aab6c2;border:1px solid rgba(255,255,255,.1)}
.dest-list{display:flex;flex-wrap:wrap;gap:4px}
.muted, small.muted{color:var(--muted2);font-size:11px}
.event-row{cursor:pointer}
.event-row:hover td{background:rgba(255,122,26,.04)}

/* old cards fallback */
.cards .card span{display:block;font-size:11px;color:var(--muted);text-transform:uppercase;letter-spacing:.4px;font-weight:700}
.cards .card b{display:block;margin-top:8px;font-size:28px;color:#fff}

/* ===== Sidebar premium ===== */
#app > aside{
  width:260px;
  background:linear-gradient(180deg, rgba(12,16,22,.88), rgba(8,11,16,.94));
  border-right:1px solid rgba(255,255,255,.07);
}
.side-brand{padding:6px 8px 14px;border-bottom:1px solid rgba(255,255,255,.05);margin-bottom:10px}
.side-brand .brand{height:40px;margin:0 auto;display:block}
#app > aside nav{gap:2px}
.nav-title{
  margin:14px 12px 6px;
  font-size:10px;letter-spacing:1.3px;color:#667582;font-weight:800;
}
.nav-btn{
  display:flex !important;align-items:center;gap:12px;
  width:100%;text-align:left;
  background:transparent;border:1px solid transparent;
  color:#b7c2cc;padding:11px 12px;border-radius:12px;
  cursor:pointer;font-size:13px;font-weight:600;margin:2px 0;
  position:relative;transition:all .15s ease;
}
.nav-btn span{line-height:1.2}
.nav-ico{
  width:18px;height:18px;flex-shrink:0;opacity:.85;
}
.nav-btn:hover{
  background:rgba(255,255,255,.04);
  color:#fff;border-color:rgba(255,255,255,.05);
}
.nav-btn.active{
  background:linear-gradient(90deg, rgba(255,122,26,.16), rgba(255,122,26,.04));
  color:#fff;
  border-color:rgba(255,122,26,.28);
  box-shadow:inset 3px 0 0 #ff7a1a;
}
.nav-btn.active .nav-ico{opacity:1;color:#ff9a3c;stroke:#ff9a3c}
.side-bottom{margin-top:auto;padding-top:12px;display:flex;flex-direction:column;gap:8px}
.user-card{
  display:flex;align-items:center;gap:10px;
  padding:10px 12px;border-radius:14px;
  background:rgba(255,255,255,.04);
  border:1px solid rgba(255,255,255,.07);
}
.user-avatar{
  width:36px;height:36px;border-radius:10px;
  display:flex;align-items:center;justify-content:center;
  font-weight:800;font-size:14px;color:#140c05;
  background:linear-gradient(135deg,#ff7a1a,#ff9a3c);
  box-shadow:0 6px 16px rgba(255,122,26,.25);
}
.user-name{font-size:13px;font-weight:700;color:#fff}
.user-role{font-size:11px;color:#ff9a3c;margin-top:2px;font-weight:600;letter-spacing:.3px}
.logout-btn{color:#9aa7b3 !important}
.logout-btn:hover{color:#ff8f8f !important;background:rgba(255,107,107,.08) !important;border-color:rgba(255,107,107,.2) !important}
.env{
  font-size:11px;color:#667582;padding:8px 10px;border-radius:10px;
  background:rgba(255,255,255,.03);border:1px solid rgba(255,255,255,.05);
  display:flex;align-items:center;gap:8px;
}
.env-dot{
  width:7px;height:7px;border-radius:50%;background:#3dde8a;
  box-shadow:0 0 8px #3dde8a;display:inline-block;
}

/* Device breakdown */
.device-panel{display:flex;flex-direction:column;align-items:stretch}
.donut-wrap{position:relative;width:220px;height:220px;margin:4px auto 12px}
.donut-wrap canvas{width:220px;height:220px;display:block}
.donut-center{
  position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;
  pointer-events:none;
}
.donut-center strong{font-size:26px;font-weight:800;color:#fff;line-height:1}
.donut-center span{font-size:11px;color:var(--muted);margin-top:4px;text-transform:uppercase;letter-spacing:.4px}
.device-legend{display:flex;flex-direction:column;gap:8px}
.legend-row{
  display:flex;align-items:center;gap:8px;
  padding:8px 10px;border-radius:10px;
  background:rgba(255,255,255,.03);border:1px solid rgba(255,255,255,.05);
  font-size:12.5px;color:var(--silver);
}
.legend-row b{margin-left:auto;color:#fff}
.legend-pct{color:var(--muted);min-width:36px;text-align:right}
.legend-dot{width:9px;height:9px;border-radius:50%;flex-shrink:0}
.legend-empty{text-align:center;color:var(--muted);font-size:12px;padding:12px}

/* ===== Professional split login ===== */
.login-screen{
  min-height:100vh;padding:0;display:block;position:relative;overflow:hidden;
}
.login-bg{
  position:absolute;inset:0;pointer-events:none;
  background:
    radial-gradient(900px 500px at 18% 30%, rgba(255,122,26,.18), transparent 60%),
    radial-gradient(700px 400px at 85% 70%, rgba(255,154,60,.1), transparent 55%),
    radial-gradient(circle at 30% 40%, rgba(255,255,255,.03) 0 1px, transparent 1.5px),
    linear-gradient(135deg, #07090d 0%, #0b1018 45%, #0a0e14 100%);
  background-size:auto, auto, 48px 48px, auto;
}
.login-bg::before{
  content:"";position:absolute;inset:0;
  background:
    linear-gradient(rgba(255,122,26,.05) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255,122,26,.05) 1px, transparent 1px);
  background-size:64px 64px;
  mask-image:radial-gradient(ellipse at 30% 45%, #000 10%, transparent 70%);
  opacity:.45;
}
.login-bg::after{
  content:"";position:absolute;left:8%;top:18%;width:420px;height:420px;border-radius:50%;
  border:1px solid rgba(255,122,26,.12);
  box-shadow:
    0 0 0 40px rgba(255,122,26,.04),
    0 0 0 90px rgba(255,122,26,.025),
    inset 0 0 80px rgba(255,122,26,.06);
  opacity:.9;
}
.login-shell{
  position:relative;z-index:1;min-height:100vh;
  display:grid;grid-template-columns:1.15fr .85fr;gap:24px;
  align-items:center;padding:40px clamp(20px,5vw,64px);
  max-width:1200px;margin:0 auto;
}
.login-hero{color:#e8eef4;padding-right:12px}
.hero-logo{height:72px;object-fit:contain;margin-bottom:28px;filter:drop-shadow(0 10px 24px rgba(255,122,26,.3))}
.login-hero h1{
  margin:0;font-size:clamp(28px,4vw,40px);line-height:1.15;font-weight:800;color:#f4f7fa;
  letter-spacing:-.4px;
}
.login-hero h1 span{
  background:linear-gradient(90deg,#ff9a3c,#ff7a1a);
  -webkit-background-clip:text;background-clip:text;color:transparent;
}
.hero-desc{margin:16px 0 28px;color:#8b98a5;font-size:15px;line-height:1.6;max-width:520px}
.hero-features{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:14px}
.hero-features li{
  display:flex;gap:12px;align-items:flex-start;
  padding:12px 14px;border-radius:14px;
  background:rgba(255,255,255,.03);border:1px solid rgba(255,255,255,.06);
  backdrop-filter:blur(10px);
}
.hf-ico{
  width:36px;height:36px;border-radius:10px;flex-shrink:0;
  display:flex;align-items:center;justify-content:center;
  background:rgba(255,122,26,.12);border:1px solid rgba(255,122,26,.22);
  color:#ff9a3c;font-size:14px;font-weight:800;
}
.hero-features strong{display:block;color:#fff;font-size:13.5px;margin-bottom:2px}
.hero-features small{color:#8b98a5;font-size:12px;line-height:1.4}
.hero-copy{margin:28px 0 0;color:#5d6f7c;font-size:12px}

.login-panel{display:flex;justify-content:center}
.login-panel .login-card{
  width:min(400px,100%);
  margin:0;
}
.login-panel .login-brand h2{
  margin:0;text-align:center;font-size:26px;font-weight:800;color:#fff;
}
.login-panel .login-tagline{margin-top:8px}

@media(max-width:900px){
  .login-shell{grid-template-columns:1fr;padding:28px 18px 40px}
  .login-hero{order:2;padding:8px 0 0}
  .login-panel{order:1}
  .login-bg::after{width:280px;height:280px;left:50%;transform:translateX(-50%);top:8%;opacity:.5}
  .hero-logo{height:56px;margin-bottom:18px}
}

/* =========================================================
   ADMIN DASHBOARD — Solid Professional (no glass)
   Clean SaaS surfaces, BM138 orange accents
   ========================================================= */
#app, #app.layout{
  background:#0b0e13 !important;
}
#app > aside{
  background:#0f131a !important;
  backdrop-filter:none !important;
  -webkit-backdrop-filter:none !important;
  border-right:1px solid #1c2430 !important;
  box-shadow:none !important;
}
#app > main{
  background:#0b0e13 !important;
}
#app > main > header h1{color:#f3f5f7}
#app > main > header p{color:#8b96a3}

#app .panel,
#app .kpi-card,
#app .project-row,
#app .detail-box,
#app .modal-card,
#app .table-wrap,
#app .user-card,
#app .env,
#app .pipe-step,
#app .status-row,
#app .legend-row{
  backdrop-filter:none !important;
  -webkit-backdrop-filter:none !important;
}

#app .panel,
#app .kpi-card{
  background:#121821 !important;
  border:1px solid #1e2733 !important;
  box-shadow:0 1px 0 rgba(255,255,255,.02), 0 8px 24px rgba(0,0,0,.25) !important;
  border-radius:14px !important;
}
#app .kpi-card::after{
  background:radial-gradient(circle, rgba(255,122,26,.12), transparent 70%) !important;
  opacity:.7;
}
#app .kpi-value{color:#ffffff !important}
#app .kpi-label{color:#8b96a3 !important}
#app .kpi-sub{color:#6b7684 !important}
#app .kpi-icon{
  background:#1a222d !important;
  border:1px solid #2a3442 !important;
}

#app .pipe-step{
  background:#161c26 !important;
  border:1px solid #243041 !important;
}
#app .pipe-step.pipe-core{
  background:#1a160f !important;
  border-color:#3d2a14 !important;
  box-shadow:0 0 0 1px rgba(255,122,26,.15) !important;
}
#app .pipe-orb{
  background:#1a222d !important;
  border:1px solid #2a3442 !important;
}
#app .pipe-orb.core{
  background:linear-gradient(145deg,#2a1c0e,#1a140c) !important;
  border-color:#ff7a1a55 !important;
  box-shadow:0 0 16px rgba(255,122,26,.15) !important;
}

#app th{
  background:#161c26 !important;
  color:#8b96a3 !important;
  border-bottom:1px solid #243041 !important;
}
#app td{
  border-bottom:1px solid #1a222d !important;
  color:#c5ced8 !important;
}
#app tr:hover td{background:#161c26 !important}
#app .table-wrap{
  background:#121821 !important;
  border:1px solid #1e2733 !important;
}

#app .nav-btn{
  color:#a7b1bd !important;
}
#app .nav-btn:hover{
  background:#171d27 !important;
  color:#fff !important;
  border-color:#243041 !important;
}
#app .nav-btn.active{
  background:#1a160f !important;
  border-color:#3d2a14 !important;
  color:#fff !important;
  box-shadow:inset 3px 0 0 #ff7a1a !important;
}

#app .user-card,
#app .env{
  background:#161c26 !important;
  border:1px solid #243041 !important;
}

#app .btn-sm{
  background:linear-gradient(100deg,#ff7a1a,#ff9a3c) !important;
  color:#140c05 !important;
  border:0 !important;
  box-shadow:0 6px 16px rgba(255,122,26,.2) !important;
}
#app .btn-xs{
  background:#1a222d !important;
  border:1px solid #2a3442 !important;
  color:#d5dde6 !important;
}
#app .btn-xs:hover{
  border-color:#ff7a1a55 !important;
  color:#fff !important;
  background:#221a12 !important;
}

#app .modal{
  background:rgba(6,8,12,.72) !important;
  backdrop-filter:blur(4px) !important;
}
#app .modal-card{
  background:#121821 !important;
  border:1px solid #2a3442 !important;
  box-shadow:0 24px 60px rgba(0,0,0,.55) !important;
}

#app .live{
  background:#122019 !important;
  border:1px solid #1e3a2c !important;
  color:#3dde8a !important;
}
#app .status-pill{
  background:#122019 !important;
  border:1px solid #1e3a2c !important;
  color:#3dde8a !important;
}

#app .device-panel .donut-wrap{
  filter:none;
}
#app .legend-row{
  background:#161c26 !important;
  border:1px solid #243041 !important;
}

#app .section-sub,
#app .panel-head h2,
#app .panel > h2{
  color:#c5ced8;
}
#app .panel > h2,
#app .panel-head h2{
  color:#e8eef4 !important;
}

/* inputs inside app */
#app input, #app select, #app textarea{
  background:#0e131a !important;
  border:1px solid #2a3442 !important;
  color:#e8eef4 !important;
}
#app input:focus, #app select:focus, #app textarea:focus{
  border-color:#ff7a1a88 !important;
  box-shadow:0 0 0 3px rgba(255,122,26,.12) !important;
}
