:root{
  --bg:#0b0e14; --panel:#12161f; --panel2:#0e1219; --border:#1f2633;
  --fg:#e6ebf2; --mut:#8b94a7; --cyan:#4cc2ff; --green:#3ddc97; --red:#ff5f6d; --amber:#ffc14d;
}
*{box-sizing:border-box}
html,body{margin:0;padding:0;background:var(--bg);color:var(--fg);font:14px/1.5 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace}
.hidden{display:none!important}
button{font:inherit;cursor:pointer;border:1px solid var(--border);background:var(--panel2);color:var(--fg);padding:6px 12px;border-radius:8px}
button:hover:not(:disabled){border-color:var(--cyan)}
button:disabled{opacity:.4;cursor:not-allowed}
button.primary{background:#123a55;border-color:#1d5d86;color:#eaf7ff}
button.primary:hover:not(:disabled){background:#174a6e}
button.secondary{background:var(--panel2)}
button.link{background:none;border:none;color:var(--cyan);text-decoration:underline;padding:0}
input,select{background:#0a0d13;border:1px solid var(--border);color:var(--fg);border-radius:8px;padding:6px 8px}
input:focus,select:focus{outline:none;border-color:var(--cyan)}
label{display:block;font-size:12px;color:var(--mut);margin-bottom:8px}
label input{margin-top:4px;width:100%}

.topbar{display:flex;align-items:center;gap:24px;padding:12px 20px;border-bottom:1px solid var(--border);background:var(--panel2);position:sticky;top:0;z-index:20}
.logo{font-weight:700;color:var(--cyan);white-space:nowrap}
.tabs{display:flex;gap:6px;flex-wrap:wrap}
.tab{background:none;border:none;color:var(--mut);padding:6px 12px;border-radius:8px}
.tab:hover{color:var(--fg)}
.tab.active{background:#1b2434;color:var(--fg)}
.topmeta{margin-left:auto;display:flex;gap:10px;align-items:center}
#farmSel{background:var(--panel);color:var(--text);border:1px solid var(--border);border-radius:6px;padding:4px 8px;font-size:13px;max-width:180px}
.state{color:var(--green)}
.state.running{color:var(--cyan)}

.shell{max-width:1180px;margin:0 auto;padding:20px}
.view{display:none}
.view.active{display:block}
.stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:12px;margin-bottom:16px}
.stat{background:var(--panel);border:1px solid var(--border);border-radius:12px;padding:14px}
.stat span{font-size:11px;color:var(--mut);text-transform:uppercase;letter-spacing:.05em}
.stat b{display:block;font-size:28px;margin-top:4px}
.grid2{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-bottom:16px}
@media(max-width:820px){.grid2{grid-template-columns:1fr}}
.panel{background:var(--panel);border:1px solid var(--border);border-radius:12px;padding:16px;margin-bottom:16px}
.panel h2{margin:0 0 8px;font-size:16px}
.muted{color:var(--mut)}
.small{font-size:12px}
.row{display:flex;gap:10px;align-items:center;flex-wrap:wrap}
.row.spread{justify-content:space-between}
.progress{height:10px;background:#0a0d13;border:1px solid var(--border);border-radius:99px;overflow:hidden;margin:10px 0}
.progress i{display:block;height:100%;width:0;background:linear-gradient(90deg,var(--cyan),var(--green));transition:width .5s}
.big{font-size:22px}
.logview{background:#06080d;border:1px solid var(--border);border-radius:10px;padding:10px;height:260px;overflow:auto;white-space:pre-wrap;word-break:break-all;font-size:12px}
.logview.tall{height:calc(100vh - 220px)}

.tbl{width:100%;border-collapse:collapse;font-size:13px}
.tbl th,.tbl td{text-align:left;padding:8px 10px;border-bottom:1px solid var(--border);vertical-align:middle}
.tbl th{color:var(--mut);font-size:11px;text-transform:uppercase;letter-spacing:.04em}
.tbl td.email{max-width:300px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.chip{display:inline-block;padding:2px 8px;border-radius:99px;font-size:11px;border:1px solid var(--border)}
.chip.active{color:var(--green);border-color:var(--green)}
.chip.inactive{color:var(--mut)}
.chip.pending{color:var(--amber);border-color:var(--amber)}
.chip.error{color:var(--red);border-color:var(--red)}

.batch-card{border:1px solid var(--border);border-radius:10px;padding:12px;margin-bottom:10px;background:var(--panel2)}
.batch-head{display:flex;gap:14px;align-items:center;flex-wrap:wrap}
.batch-meta{font-size:12px;color:var(--mut)}
.batch-body{margin-top:10px;font-size:12px}

.error{color:var(--red);min-height:18px;margin-top:6px}
.login{position:fixed;inset:0;background:rgba(5,8,13,.92);display:flex;align-items:center;justify-content:center;z-index:50}
.login-card{background:var(--panel);border:1px solid var(--border);border-radius:14px;padding:28px;width:320px;text-align:center}
.login-card input{width:100%;margin:10px 0}
.modal{position:fixed;inset:0;background:rgba(5,8,13,.6);display:flex;align-items:center;justify-content:center;z-index:40}
.modal-card{background:var(--panel);border:1px solid var(--border);border-radius:14px;padding:20px;max-width:760px;width:92%;max-height:80vh;overflow:auto}
#qChart .bar-row{display:flex;align-items:center;gap:8px;font-size:11px;margin:3px 0}
#qChart .bar{height:14px;background:#1b4f73;border-radius:3px;min-width:2px}
#qChart .bar-row:hover .bar{background:var(--cyan)}
.cfg-row{display:grid;grid-template-columns:1fr 1.6fr auto;gap:10px;align-items:center;padding:5px 0;border-bottom:1px dashed var(--border);font-size:13px}
.cfg-row input{width:100%}
pre#qRaw{max-height:160px;overflow:auto}
.tbl-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch;border-radius:10px}

@media(max-width:820px){
  .shell{padding:14px}
  .topbar{gap:12px;padding:10px 14px}
  .stats{grid-template-columns:repeat(auto-fit,minmax(130px,1fr))}
}

@media(max-width:640px){
  .topbar{flex-wrap:wrap;gap:8px 12px;padding:10px 12px}
  .tabs{order:3;flex-basis:100%;flex-wrap:nowrap;overflow-x:auto;gap:4px;padding-bottom:4px;scrollbar-width:none}
  .tabs::-webkit-scrollbar{display:none}
  .tab{white-space:nowrap;padding:8px 12px}
  .topmeta{margin-left:0;flex:1;justify-content:flex-end}
  .logo span{display:none}
  .shell{padding:12px}
  .stats{grid-template-columns:repeat(2,1fr);gap:10px}
  .stat{padding:12px}
  .stat b{font-size:24px}
  .grid2{gap:12px}
  .row{gap:8px}
  button{padding:9px 12px}
  #tab-overview .grid2 .panel:first-child .row > button{flex:1 1 auto}
  .cfg-row{grid-template-columns:1fr;gap:6px}
  .login-card{width:min(320px,92vw)}
  .modal-card{width:96%}
  .tbl th,.tbl td{padding:7px 8px}
  #tab-accounts .tbl th:nth-child(6),#tab-accounts .tbl td:nth-child(6){display:none}
  #qChart .bar-row{flex-wrap:wrap}
  .batch-head{gap:8px}
}
