*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
:root{--bg:#07090f;--bg2:#0c1018;--panel:rgba(255,255,255,0.04);--border:rgba(255,255,255,0.07);--border2:rgba(255,255,255,0.12);--blue:#00c8ff;--blue-dim:rgba(0,200,255,0.12);--green:#00d68f;--green-dim:rgba(0,214,143,0.12);--amber:#f5a623;--amber-dim:rgba(245,166,35,0.12);--red:#ff4d4d;--red-dim:rgba(255,77,77,0.12);--text:#c8d8e8;--text2:#6b7e96;--text3:#2d3a4e;--head:#e8f2ff;--mono:'JetBrains Mono','Courier New',monospace;--sidebar:220px;--topbar:52px;--radius:8px}
html,body{height:100%;background:var(--bg);color:var(--text);font-family:'Inter',system-ui,sans-serif;font-size:13px;line-height:1.5}
::-webkit-scrollbar{width:5px;height:5px}::-webkit-scrollbar-track{background:var(--bg)}::-webkit-scrollbar-thumb{background:var(--border2);border-radius:3px}
#lock-screen{position:fixed;inset:0;background:var(--bg);display:flex;align-items:center;justify-content:center;z-index:9999}
.lock-grid{position:absolute;inset:0;pointer-events:none;opacity:.35;background-image:linear-gradient(var(--border) 1px,transparent 1px),linear-gradient(90deg,var(--border) 1px,transparent 1px);background-size:60px 60px}
.lock-box{position:relative;width:380px;padding:40px 36px;background:rgba(12,16,24,.95);border:1px solid var(--border2);border-radius:14px;backdrop-filter:blur(20px);box-shadow:0 24px 80px rgba(0,0,0,.6)}
.lock-logo{display:flex;justify-content:center;margin-bottom:6px}.lock-logo img{width:160px;height:160px;object-fit:contain;filter:brightness(0) invert(1) sepia(1) saturate(5) hue-rotate(170deg)}
.lock-sub{font-size:10px;color:var(--text3);letter-spacing:2px;text-transform:uppercase;text-align:center;margin-bottom:28px}
.field-lbl{display:block;font-size:10px;font-weight:700;color:var(--text2);text-transform:uppercase;letter-spacing:.6px;margin-bottom:6px}
.lock-input{width:100%;padding:10px 14px;background:rgba(255,255,255,.04);border:1px solid var(--border2);border-radius:6px;color:var(--head);font-family:'Inter',sans-serif;font-size:13px;outline:none;margin-bottom:14px;transition:border-color .15s}
.lock-input:focus{border-color:var(--blue)}.lock-input::placeholder{color:var(--text3)}
.lock-btn{width:100%;padding:12px;margin-top:4px;background:linear-gradient(135deg,var(--blue),#0099cc);border:none;border-radius:7px;color:#fff;font-weight:700;font-size:13px;cursor:pointer;letter-spacing:.3px;transition:opacity .15s}
.lock-btn:hover{opacity:.85}.lock-btn:disabled{opacity:.4;cursor:not-allowed}
.lock-err{font-size:12px;color:var(--red);background:var(--red-dim);border:1px solid rgba(255,77,77,.3);border-radius:5px;padding:8px 12px;margin-bottom:12px;display:none}
.lock-err.visible{display:block}.lock-foot{margin-top:22px;padding-top:16px;border-top:1px solid var(--border);text-align:center;font-size:11px;color:var(--text3)}
#app{display:none;height:100vh;flex-direction:column}#app.visible{display:flex}
.topbar{height:var(--topbar);padding:0 24px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--border);background:rgba(7,9,15,.92);backdrop-filter:blur(12px);position:sticky;top:0;z-index:200;flex-shrink:0}
.topbar-left{display:flex;align-items:center;gap:10px}.topbar-logo{width:28px;height:28px;object-fit:contain;filter:brightness(0) invert(1) sepia(1) saturate(5) hue-rotate(170deg)}
.topbar-name{font-size:13px;font-weight:700;color:var(--head);letter-spacing:-.2px;line-height:1.2}.topbar-sub{font-size:9px;color:var(--text3);letter-spacing:1.5px;text-transform:uppercase}
.topbar-right{display:flex;align-items:center;gap:12px}
.pulse-dot{width:6px;height:6px;border-radius:50%;background:var(--green);box-shadow:0 0 6px var(--green);transition:background .3s}.pulse-dot.err{background:var(--red);box-shadow:0 0 6px var(--red)}
.role-badge{display:inline-flex;align-items:center;font-size:10px;font-weight:700;padding:3px 8px;border-radius:3px;text-transform:uppercase;letter-spacing:.5px;border:1px solid}
.role-badge.owner{color:var(--amber);background:var(--amber-dim);border-color:rgba(245,166,35,.3)}.role-badge.admin{color:var(--blue);background:var(--blue-dim);border-color:rgba(0,200,255,.3)}.role-badge.operator{color:var(--green);background:var(--green-dim);border-color:rgba(0,214,143,.3)}
.app-body{display:flex;flex:1;overflow:hidden}
.sidebar{width:var(--sidebar);flex-shrink:0;padding:20px 12px;border-right:1px solid var(--border);background:rgba(7,9,15,.7);backdrop-filter:blur(12px);overflow-y:auto;display:flex;flex-direction:column;gap:2px}
.nav-section-label{font-size:9px;font-weight:700;color:var(--text3);text-transform:uppercase;letter-spacing:1px;padding:0 12px 10px;margin-bottom:4px}
.nav-item{display:flex;align-items:center;gap:10px;padding:9px 12px;border-radius:6px;border:none;background:transparent;color:var(--text2);cursor:pointer;font-size:13px;font-weight:400;width:100%;text-align:left;border-left:2px solid transparent;transition:all .1s}
.nav-item:hover{background:rgba(255,255,255,.03);color:var(--text)}.nav-item.active{background:var(--blue-dim);color:var(--blue);border-left-color:var(--blue);font-weight:600}
.nav-icon{font-size:13px;opacity:.6;width:18px;text-align:center}.nav-item.active .nav-icon{opacity:1}
.main-content{flex:1;padding:28px 32px;overflow-y:auto}
.page-header{display:flex;align-items:flex-start;justify-content:space-between;margin-bottom:24px}
.page-title{font-size:20px;font-weight:700;color:var(--head);letter-spacing:-.3px;margin:0}.page-sub{font-size:12px;color:var(--text2);margin-top:3px}
.header-actions{display:flex;gap:8px;flex-shrink:0}
.metrics{display:grid;grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:14px;margin-bottom:28px}
.metric{background:var(--panel);border:1px solid var(--border);border-radius:var(--radius);padding:22px 24px;position:relative;overflow:hidden}
.metric::before{content:'';position:absolute;top:0;left:0;right:0;height:2px}
.metric.blue::before{background:linear-gradient(90deg,transparent,var(--blue))}.metric.green::before{background:linear-gradient(90deg,transparent,var(--green))}.metric.amber::before{background:linear-gradient(90deg,transparent,var(--amber))}
.metric-label{font-size:10px;font-weight:600;color:var(--text2);text-transform:uppercase;letter-spacing:.7px;margin-bottom:12px}
.metric-val{font-size:28px;font-weight:700;color:var(--head);letter-spacing:-1px;line-height:1}
.card{background:var(--panel);border:1px solid var(--border);border-radius:var(--radius);overflow:hidden}.tbl-wrap{overflow-x:auto}
table{width:100%;border-collapse:collapse}thead tr{border-bottom:1px solid var(--border)}
th{padding:11px 14px;text-align:left;font-size:10px;font-weight:700;color:var(--text3);text-transform:uppercase;letter-spacing:.7px;white-space:nowrap}
tbody tr{border-bottom:1px solid rgba(255,255,255,.04);transition:background .1s}tbody tr:last-child{border-bottom:none}tbody tr:hover{background:rgba(255,255,255,.025)}
td{padding:12px 14px;white-space:nowrap;vertical-align:middle}.empty-cell{padding:48px;text-align:center;color:var(--text3);font-size:12px}
.st{display:inline-flex;align-items:center;gap:5px;font-size:10px;font-weight:700;padding:3px 8px;border-radius:3px;text-transform:uppercase;letter-spacing:.5px;border:1px solid}
.st-online,.st-active,.st-complete,.st-completed,.st-yes,.st-success,.st-approved{color:var(--green);background:var(--green-dim);border-color:rgba(0,214,143,.25)}
.st-offline,.st-no,.st-idle{color:var(--text2);background:rgba(255,255,255,.04);border-color:var(--border)}
.st-queued,.st-pending,.st-draining,.st-suspended{color:var(--amber);background:var(--amber-dim);border-color:rgba(245,166,35,.25)}
.st-processing,.st-running{color:var(--blue);background:var(--blue-dim);border-color:rgba(0,200,255,.25)}
.st-failed,.st-banned,.st-error{color:var(--red);background:var(--red-dim);border-color:rgba(255,77,77,.25)}
.mono{font-family:var(--mono);font-size:11.5px;color:#7abcdf}.mono-dim{font-family:var(--mono);font-size:11.5px;color:var(--text2)}.dim{color:var(--text2);font-size:12px}.strong{color:var(--head);font-weight:600}.muted{color:var(--text3)}
.btn{padding:8px 16px;border-radius:5px;font-size:12px;font-weight:700;cursor:pointer;letter-spacing:.3px;border:1px solid;transition:all .12s;white-space:nowrap;font-family:inherit}
.btn-sm{padding:5px 11px;font-size:11px}.btn-primary{background:linear-gradient(135deg,var(--blue),#0099cc);color:#fff;border-color:transparent}.btn-primary:hover{opacity:.85}
.btn-approve{color:var(--green);background:var(--green-dim);border-color:rgba(0,214,143,.3)}.btn-approve:hover{background:rgba(0,214,143,.2)}
.btn-danger{color:var(--red);background:var(--red-dim);border-color:rgba(255,77,77,.3)}.btn-danger:hover{background:rgba(255,77,77,.2)}
.btn-ghost{color:var(--text2);background:transparent;border-color:var(--border2)}.btn-ghost:hover{border-color:var(--blue);color:var(--blue)}
.btn-amber{color:var(--amber);background:var(--amber-dim);border-color:rgba(245,166,35,.3)}.btn-amber:hover{background:rgba(245,166,35,.2)}
.btn:disabled{opacity:.4;cursor:not-allowed}.acts{display:flex;gap:6px}
.spinner{padding:48px;text-align:center;color:var(--text3);font-size:12px}
.spinner-ring{width:20px;height:20px;border:2px solid var(--border2);border-top-color:var(--blue);border-radius:50%;margin:0 auto 10px;animation:spin .8s linear infinite}
@keyframes spin{to{transform:rotate(360deg)}}
.err-banner{padding:10px 16px;margin-bottom:16px;background:var(--red-dim);border:1px solid rgba(255,77,77,.3);border-radius:6px;font-size:12px;color:var(--red)}
#toast{position:fixed;top:64px;right:20px;z-index:9500;padding:10px 16px;border-radius:6px;font-size:12px;font-weight:600;display:none;pointer-events:none;max-width:340px}
#toast.ok{background:var(--green-dim);border:1px solid rgba(0,214,143,.35);color:var(--green)}#toast.err{background:var(--red-dim);border:1px solid rgba(255,77,77,.35);color:var(--red)}#toast.show{display:block}
.modal-overlay{position:fixed;inset:0;background:rgba(0,0,0,.7);backdrop-filter:blur(4px);display:none;align-items:center;justify-content:center;z-index:8000}.modal-overlay.open{display:flex}
.modal{background:var(--bg2);border:1px solid var(--border2);border-radius:12px;padding:28px 32px;width:440px;max-width:90vw}
.modal-header{font-size:15px;font-weight:700;color:var(--head);margin-bottom:20px;display:flex;justify-content:space-between;align-items:center}
.modal-close{background:none;border:none;color:var(--text2);cursor:pointer;font-size:20px;line-height:1;padding:0}.modal-close:hover{color:var(--red)}
.modal-foot{display:flex;gap:8px;justify-content:flex-end;margin-top:20px}.form-row{margin-bottom:14px}
.form-lbl{display:block;font-size:10px;font-weight:700;color:var(--text2);text-transform:uppercase;letter-spacing:.5px;margin-bottom:6px}
.form-inp{width:100%;padding:10px 14px;background:rgba(255,255,255,.04);border:1px solid var(--border2);border-radius:6px;color:var(--head);font-family:'Inter',sans-serif;font-size:13px;outline:none;box-sizing:border-box;transition:border-color .15s}
.form-inp:focus{border-color:var(--blue)}.form-sel{width:100%;padding:10px 14px;background:var(--bg2);border:1px solid var(--border2);border-radius:6px;color:var(--head);font-family:'Inter',sans-serif;font-size:13px;outline:none;box-sizing:border-box}
@media(max-width:900px){.sidebar{display:none}.main-content{padding:16px}.metrics{grid-template-columns:repeat(2,1fr)}}
@media(max-width:560px){.metrics{grid-template-columns:1fr}}

/* ── Worker Earnings ──────────────────────────────────────────────────── */
.st-paid{background:rgba(16,185,129,.15);color:#10b981;border:1px solid rgba(16,185,129,.3);}
.st-pending{background:rgba(245,158,11,.15);color:#f59e0b;border:1px solid rgba(245,158,11,.3);}

.payout-dot{color:var(--amber);font-size:10px;vertical-align:middle;margin-left:4px;cursor:help;}

.payout-eligible{color:var(--amber)!important;font-weight:700;}
.payout-ready-badge{
  display:inline-block;margin-top:4px;padding:2px 8px;
  background:rgba(245,158,11,.15);color:#f59e0b;
  border:1px solid rgba(245,158,11,.3);border-radius:4px;
  font-size:11px;font-weight:600;
}

.we-summary{
  display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));
  gap:12px;margin-bottom:16px;
}
.we-stat{
  background:var(--surface2);border:1px solid var(--border);
  border-radius:8px;padding:12px 16px;
}
.we-stat-label{font-size:11px;color:var(--muted);text-transform:uppercase;letter-spacing:.05em;margin-bottom:6px;}
.we-stat-val{font-size:20px;font-weight:700;color:var(--fg);}

/* Wide modal for worker earnings drill-down */
.modal-wide{width:min(860px,96vw);}
.modal-title{font-weight:600;font-size:15px;}
