/* === ADMIN.CSS - eqbit2 - ported from old dashboard === */

/* Force Orbitron on all admin content except mono elements */
.admin-wrap, .admin-wrap * { font-family: var(--F); }
.admin-wrap .api-val, .admin-wrap .admin-term, .admin-wrap .admin-term-field,
.admin-wrap .admin-term-prompt, .admin-wrap .api-key-hidden,
.admin-wrap [style*="mono"] { font-family: var(--mono); }


/* Header, nav, layout (eqbit2 specific) */
/* === ADMIN.CSS - eqbit2 - ported from old dashboard === */

/* Header right elements */
.conn{display:flex;align-items:center;gap:10px}
.conn-dot{width:10px;height:10px;border-radius:50%;transition:0.3s}
.conn-dot.on{background:var(--green);box-shadow:0 0 10px rgba(0,230,118,0.5)}
.conn-label{font-size:21.4px;color:var(--t1);font-weight:600;letter-spacing:0.05em}
.conn-label{font-size:19.3px}
.clock{font-size:30px;font-weight:600;color:var(--cyan);text-shadow:0 0 20px rgba(0,220,200,0.25);letter-spacing:0.05em;display:flex;justify-content:flex-end}
.clock-wrap{text-align:right;min-width:220px}
.date{font-size:15px;color:var(--t3);letter-spacing:0.15em;margin-top:2px}
.version-box{background:rgba(78,164,255,0.08);border:1px solid rgba(78,164,255,0.2);border-radius:4px;padding:8px 14px;text-align:center}
.hdr-divider{width:1px;height:50px;background:var(--border)}
.build-btn{background:transparent;border:1px solid var(--orange);color:var(--orange);padding:6px 14px;border-radius:4px;cursor:pointer;font-size:11.8px;font-weight:700;letter-spacing:0.1em;font-family:var(--F);transition:all 0.2s}
.build-btn:hover{background:var(--orange);color:var(--bg);box-shadow:0 0 12px rgba(255,165,0,0.3)}
@keyframes buildpulse{0%{box-shadow:0 0 0 0 rgba(0,220,200,0.55)}60%{box-shadow:0 0 0 8px rgba(0,220,200,0)}100%{box-shadow:0 0 0 0 rgba(0,220,200,0)}}
.hdr-right{display:flex;align-items:center;gap:24px;position:relative;z-index:2}
.hdr *{-webkit-app-region:no-drag}
.nav-title{font-size:11.8px;color:var(--t3);letter-spacing:0.25em;text-transform:uppercase;padding:8px 20px 14px}
.nav-item{
  display:flex;align-items:center;gap:12px;padding:12px 20px;
  cursor:pointer;border-left:3px solid transparent;transition:all 0.2s;
}
.nav-item.active{border-left-color:var(--cyan);background:rgba(0,220,200,0.06)}
.sidebar-bottom{
  margin-top:auto;padding:20px;border-top:1px solid var(--border);
}
.sidebar-logo-wrap{padding:16px 0 12px;border-bottom:1px solid var(--border);margin-bottom:8px}
.qs-title{font-size:11.8px;color:var(--t3);letter-spacing:0.15em;margin-bottom:8px}

/* Admin content */
.api-row{display:flex;align-items:center;gap:8px;margin-bottom:8px}
.api-label{color:var(--t1);font-size:9.6px;color:var(--t3);letter-spacing:0.1em;text-transform:uppercase;width:80px;flex-shrink:0}
.api-val{color:var(--t0);font-family:var(--mono);font-size:10.7px;color:var(--cyan);flex:1;word-break:break-all}
.scan-btn{padding:5px 14px;border-radius:4px;border:1px solid var(--border);background:rgba(0,220,200,0.06);color:var(--cyan);font-family:var(--F);font-size:9.6px;font-weight:600;letter-spacing:0.1em;cursor:pointer;margin-bottom:10px}

/* Nav / sidebar */
.nav-item{
  display:flex;align-items:center;gap:12px;padding:12px 20px;
  cursor:pointer;border-left:3px solid transparent;transition:all 0.2s;
}
.nav-item.active{border-left-color:var(--cyan);background:rgba(0,220,200,0.06)}
.nav-item .icon{font-size:22.5px;color:var(--t3);transition:color 0.2s}
.nav-title{font-size:11.8px;color:var(--t3);letter-spacing:0.25em;text-transform:uppercase;padding:8px 20px 14px}
.sidebar{
  width:220px;border-right:1px solid var(--border);
  background:rgba(6,8,15,0.6);backdrop-filter:blur(12px);
  padding-top:16px;flex-shrink:0;position:relative;
  display:flex;flex-direction:column;
}
.sidebar-bottom{
  margin-top:auto;padding:20px;border-top:1px solid var(--border);
}
.qs-title{font-size:11.8px;color:var(--t3);letter-spacing:0.15em;margin-bottom:8px}
.qs-row{display:flex;justify-content:space-between;margin-bottom:4px}


/* Puuttuvat säännöt - lisätty vanhasta dashboardista */
.accent-cyan{border-color:rgba(0,220,200,0.25)}
.accent-purple{border-color:rgba(155,109,255,0.25)}

/* ══════════════════════════════════════════════════ */
/* Admin content rules from old dashboard            */
/* ══════════════════════════════════════════════════ */

.tunnel-card{
  padding:20px 24px;min-width:260px;flex:1 1 260px;
}
.tunnel-card::after{
  content:'';position:absolute;bottom:0;left:0;right:0;height:2px;
  background:var(--t3);transition:background 0.6s, box-shadow 0.6s;
}
.tunnel-card.on::after{
  background:var(--cyan);box-shadow:0 0 12px rgba(0,220,200,0.4);
}
.tunnel-label{font-size:9.6px;color:var(--t3);letter-spacing:0.15em;text-transform:uppercase}
.tunnel-name{font-size:18.2px;font-weight:700;margin-bottom:4px;transition:color 0.3s}
.tunnel-name.on{color:var(--cyan);text-shadow:0 0 15px rgba(0,220,200,0.2)}
.tunnel-name.off{color:var(--t2)}
.tunnel-url{font-size:11.8px;color:var(--t3);letter-spacing:0.1em;margin-bottom:14px}
.tunnel-status{font-size:11.8px;display:flex;align-items:center;gap:6px}
.tunnel-top{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:8px}
.tunnel-dot{width:7px;height:7px;border-radius:50%;display:inline-block;transition:0.3s}
.tunnel-dot.on{background:var(--green);box-shadow:0 0 6px rgba(0,230,118,0.5)}
.tunnel-dot.off{background:var(--red);box-shadow:0 0 6px rgba(255,82,82,0.3)}
.tunnel-dot.checking{background:var(--yellow);animation:pulse 1s infinite}
.tunnel-btns{display:flex;flex-direction:column;gap:8px}
.tunnel-btn{
  font-family:var(--F);font-size:9.6px;font-weight:600;
  width:100%;padding:10px 0;border-radius:4px;border:none;
  cursor:pointer;letter-spacing:0.12em;text-transform:uppercase;
  position:relative;overflow:hidden;transition:all 0.2s;
}
.tunnel-btn::after{
  content:'';position:absolute;bottom:0;left:0;right:0;height:2px;transition:background 0.3s;
}
.tunnel-btn.start{background:rgba(0,220,200,0.08);color:var(--cyan)}
.tunnel-btn.start::after{background:var(--cyan)}
.tunnel-btn.start:hover{background:rgba(0,220,200,0.15)}
.tunnel-btn.stop{background:rgba(255,82,82,0.08);color:var(--red)}
.tunnel-btn.stop::after{background:var(--red)}
.tunnel-btn.stop:hover{background:rgba(255,82,82,0.15)}
.tunnel-btn:disabled{opacity:0.12 !important;cursor:default;filter:grayscale(0.7) !important}
.tunnel-btn:disabled::after{background:var(--t3) !important}
.tunnel-btn:not(:disabled).start{filter:brightness(1.2)}
.tunnel-btn:not(:disabled).stop{filter:brightness(1.2)}
.tunnel-log{font-size:8.6px;color:var(--t3);margin-top:10px;font-family:'Courier New',monospace;max-height:40px;overflow-y:auto;display:none}
.tunnel-dot{width:6px;height:6px}
.tunnel-card{flex:0 0 auto;padding:8px 12px;margin:0}
.admin-top-row{display:grid;grid-template-columns:1.4fr 1fr 1fr;gap:12px;margin-bottom:12px;align-items:start}
.admin-unified{display:grid;grid-template-columns:1.4fr 1fr 1fr;grid-template-rows:auto 1fr;gap:12px;margin-bottom:12px}
.admin-bottom-row{display:grid;grid-template-columns:1.4fr 1fr 1fr;gap:12px}
.admin-term{background:rgba(0,0,0,0.5);border:1px solid var(--border);border-radius:8px;padding:12px;font-family:var(--mono);font-size:11.5px;color:var(--green);height:100%;min-height:320px;overflow-y:auto;line-height:2.1}
.admin-term-line{display:flex;gap:6px}
.admin-term-line .t-time{color:rgba(180,200,220,0.75);flex-shrink:0;width:58px;display:inline-block;font-size:10.5px}
.admin-term-line .t-cmd{color:var(--cyan)}
.admin-term-line .t-out{color:var(--green)}
.admin-term-line .t-err{color:var(--red)}
.admin-term-line .t-sys{color:var(--lilac)}
.admin-term-input{display:flex;gap:6px;margin-top:8px;border-top:1px solid var(--border);padding-top:8px}
.admin-term-prompt{color:var(--cyan);font-family:var(--mono);font-size:11px;flex-shrink:0;padding-top:2px}
.admin-term-field{flex:1;background:transparent;border:none;outline:none;color:var(--green);font-family:var(--mono);font-size:11px}
.admin-wrap{display:flex;flex-direction:column;gap:14px;padding:14px}
.admin-hdr{display:flex;align-items:center;justify-content:space-between;padding:8px 0 4px}
.admin-hdr-title{font-size:11.8px;font-weight:700;letter-spacing:0.2em;color:var(--cyan);text-transform:uppercase}
.admin-view-btn{padding:6px 14px;border-radius:4px;border:1px solid var(--purple);background:rgba(155,109,255,0.08);color:var(--lilac);font-family:var(--F);font-size:9.6px;font-weight:700;letter-spacing:0.15em;cursor:pointer;transition:all 0.2s}
.admin-view-btn:hover{background:rgba(155,109,255,0.2);color:var(--t0)}
.admin-row{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.admin-row-3{display:grid;grid-template-columns:1fr 1fr 1fr;gap:12px}
.admin-section-title{font-size:9.6px;font-weight:700;letter-spacing:0.2em;color:var(--cyan);text-transform:uppercase;margin-bottom:8px;display:flex;align-items:center;gap:8px}
.admin-card{background:var(--bgCard);border:1px solid var(--border);border-radius:8px;padding:14px;position:relative}
.admin-card.accent-cyan{border-color:rgba(0,220,200,0.25)}
.admin-card.accent-purple{border-color:rgba(155,109,255,0.25)}
.api-key-hidden{font-family:var(--mono);font-size:12.8px;color:var(--t3);letter-spacing:0.15em}
.dev-server-row{display:flex;align-items:center;gap:10px;padding:6px 10px;border-radius:4px;background:rgba(0,0,0,0.25);border:1px solid var(--border);margin-bottom:4px}
.dev-port{font-family:var(--mono);font-size:11.8px;font-weight:700;color:var(--cyan);width:52px}
.dev-name{font-size:10.7px;color:var(--t1);flex:1}
.dev-pid{font-family:var(--mono);font-size:9.6px;color:var(--t3)}
.dev-open-btn{padding:2px 8px;border-radius:3px;border:1px solid rgba(0,220,200,0.3);background:rgba(0,220,200,0.06);color:var(--cyan);font-size:9.6px;cursor:pointer}
.proj-workflow{display:inline-flex;align-items:center;gap:4px;font-size:8.4px;font-weight:700;letter-spacing:0.11em;text-transform:uppercase;padding:3px 10px;border-radius:2px;margin-bottom:7px;width:fit-content;white-space:nowrap;position:absolute;top:10px;left:50%;transform:translateX(-50%)}
.proj-workflow.auto{background:rgba(0,255,136,0.10);color:#00ff88;border:1px solid rgba(0,255,136,0.25)}
.proj-workflow.partial{background:rgba(255,184,0,0.10);color:#ffb800;border:1px solid rgba(255,184,0,0.25)}
.proj-workflow.manual{background:rgba(255,82,82,0.10);color:#ff5252;border:1px solid rgba(255,82,82,0.25)}
.proj-workflow.full{background:rgba(0,230,118,0.1);color:#00e676;border:1px solid rgba(0,230,118,0.45);text-shadow:0 0 8px rgba(0,230,118,0.5);animation:wf-pulse 2.5s ease-in-out infinite}
.proj-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.proj-card{display:flex;flex-direction:column;position:relative;border-radius:8px;padding:14px;padding-top:34px;cursor:pointer;overflow:hidden;transition:transform 0.15s,box-shadow 0.15s;border:1px solid rgba(60,70,110,0.4);background:linear-gradient(135deg,rgba(18,22,40,0.95) 0%,rgba(28,34,58,0.9) 40%,rgba(22,28,50,0.95) 100%)}
.proj-card::before{content:'';position:absolute;inset:0;background:linear-gradient(135deg,rgba(255,255,255,0.04) 0%,transparent 50%,rgba(255,255,255,0.02) 100%);pointer-events:none}
.proj-card::after{content:'';position:absolute;top:0;left:0;right:0;height:1px;background:linear-gradient(90deg,transparent,rgba(255,255,255,0.08),transparent)}
.proj-card:hover{transform:translateY(-2px);box-shadow:0 8px 24px rgba(0,0,0,0.4);border-color:rgba(155,109,255,0.4)}
.proj-card-corner{position:absolute;width:6px;height:6px;border-color:rgba(255,255,255,0.15);border-style:solid}
.proj-card-corner.tl{top:6px;left:6px;border-width:1px 0 0 1px}
.proj-card-corner.tr{top:6px;right:6px;border-width:1px 1px 0 0}
.proj-card-corner.bl{bottom:6px;left:6px;border-width:0 0 1px 1px}
.proj-card-corner.br{bottom:6px;right:6px;border-width:0 1px 1px 0}
.proj-type-badge{position:absolute;top:8px;right:8px;font-size:8.6px;font-weight:700;letter-spacing:0.12em;padding:2px 6px;border-radius:2px;text-transform:uppercase}
.proj-type-badge.web{background:rgba(0,220,200,0.12);color:var(--cyan);border:1px solid rgba(0,220,200,0.2)}
.proj-type-badge.electron{background:rgba(78,164,255,0.12);color:var(--blue);border:1px solid rgba(78,164,255,0.2)}
.proj-type-badge.react-native{background:rgba(155,109,255,0.12);color:var(--lilac);border:1px solid rgba(155,109,255,0.2)}
.proj-type-badge.other{background:rgba(255,145,0,0.12);color:var(--orange);border:1px solid rgba(255,145,0,0.2)}
.proj-name{font-size:13.9px;font-weight:800;color:var(--t0);letter-spacing:0.05em;margin:18px 0 4px;line-height:1.2}
.proj-domain{font-size:9.6px;color:var(--cyan);font-family:var(--mono);margin-bottom:6px;opacity:0.8}
.proj-notes{flex:1;font-size:9.6px;color:var(--t2);line-height:1.5;margin-bottom:10px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.proj-actions{display:flex;gap:5px;flex-wrap:wrap}
.proj-btn{padding:4px 10px;border-radius:3px;font-size:9.6px;font-weight:600;letter-spacing:0.08em;cursor:pointer;border:1px solid var(--border);background:rgba(0,0,0,0.3);color:var(--t2);font-family:var(--F);transition:all 0.15s}
.proj-btn.primary{border-color:rgba(0,220,200,0.4);color:var(--cyan);background:rgba(0,220,200,0.08)}
.proj-btn.primary:hover{background:rgba(0,220,200,0.18)}
.proj-btn:hover{border-color:var(--t2);color:var(--t0)}
.proj-btn.vscode{border-color:rgba(78,164,255,0.3);color:var(--blue)}
.proj-btn.vscode:hover{background:rgba(78,164,255,0.12)}
.proj-modal-overlay{position:fixed;inset:0;background:rgba(0,0,0,0.82);backdrop-filter:blur(6px);z-index:1000;display:flex;align-items:center;justify-content:center}
.proj-modal{position:relative;background:linear-gradient(135deg,rgba(8,12,28,0.99) 0%,rgba(14,22,45,0.99) 100%);border:1px solid rgba(0,220,200,0.3);border-radius:12px;padding:32px 37px;width:782px;max-width:92vw;max-height:88vh;overflow-y:auto;box-shadow:0 0 60px rgba(0,220,200,0.1),0 0 120px rgba(0,0,0,0.8)}
.proj-modal::after{content:'';position:absolute;top:0;left:0;right:0;height:1px;background:linear-gradient(90deg,transparent,rgba(0,220,200,0.5),transparent)}
.proj-modal-corner{position:absolute;width:12px;height:12px;border-color:rgba(0,220,200,0.5);border-style:solid}
.proj-modal-corner.tl{top:10px;left:10px;border-width:1px 0 0 1px}
.proj-modal-corner.tr{top:10px;right:10px;border-width:1px 1px 0 0}
.proj-modal-corner.bl{bottom:10px;left:10px;border-width:0 0 1px 1px}
.proj-modal-corner.br{bottom:10px;right:10px;border-width:0 1px 1px 0}
.proj-modal-close{position:absolute;top:14px;right:16px;background:none;border:none;color:var(--t2);font-size:18px;cursor:pointer;padding:2px 6px;border-radius:4px;transition:color 0.2s}
.proj-modal-close:hover{color:var(--red)}
.proj-modal h2{font-size:23px;font-weight:800;letter-spacing:0.08em;color:var(--t0);margin-bottom:6px;padding-right:30px}
.proj-modal-type{display:inline-block;font-size:10px;font-weight:700;letter-spacing:0.18em;text-transform:uppercase;padding:4px 12px;border-radius:4px;margin-bottom:20px;line-height:1}
.proj-detail-row{display:flex;align-items:flex-start;gap:14px;margin-bottom:14px;min-height:28px}
.proj-detail-label{font-size:12.5px;font-weight:700;letter-spacing:0.12em;text-transform:uppercase;color:#7ecfcf;min-width:140px;padding-top:3px}
.proj-detail-val{font-size:16px;color:var(--cyan);font-family:var(--mono);flex:1;word-break:break-all;line-height:1.5}
.proj-detail-val.notes{font-family:var(--font);color:var(--t1);font-size:11px}
.proj-edit-input{background:rgba(0,220,200,0.05);border:1px solid rgba(0,220,200,0.25);border-radius:4px;color:var(--cyan);font-family:var(--mono);font-size:15px;padding:8px 11px;width:100%;outline:none;transition:border-color 0.2s}
.proj-edit-input:focus{border-color:rgba(0,220,200,0.6);box-shadow:0 0 12px rgba(0,220,200,0.08)}
.proj-edit-input.notes{font-family:var(--font);color:var(--t1);resize:vertical;min-height:60px}
.proj-modal-divider{border:none;border-top:1px solid var(--border);margin:18px 0}
.proj-modal-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:4px}
.proj-edit-btn{padding:10px 20px;border-radius:5px;font-family:var(--font);font-size:12px;font-weight:700;letter-spacing:0.15em;text-transform:uppercase;cursor:pointer;border:1px solid;transition:all 0.2s}
.proj-edit-btn.edit{background:linear-gradient(135deg,rgba(155,109,255,0.12),rgba(155,109,255,0.06));border-color:rgba(155,109,255,0.45);color:var(--purple);text-shadow:0 0 12px rgba(155,109,255,0.4)}
.proj-edit-btn.edit:hover{background:linear-gradient(135deg,rgba(155,109,255,0.22),rgba(155,109,255,0.1));box-shadow:0 0 18px rgba(155,109,255,0.2)}
.proj-edit-btn.save{background:linear-gradient(135deg,rgba(0,220,200,0.14),rgba(0,220,200,0.06));border-color:rgba(0,220,200,0.5);color:var(--cyan);text-shadow:0 0 12px rgba(0,220,200,0.4)}
.proj-edit-btn.save:hover{background:linear-gradient(135deg,rgba(0,220,200,0.22),rgba(0,220,200,0.1));box-shadow:0 0 20px rgba(0,220,200,0.25)}
.proj-edit-btn.cancel-edit{background:linear-gradient(135deg,rgba(255,82,82,0.1),rgba(255,82,82,0.05));border-color:rgba(255,82,82,0.4);color:var(--red);text-shadow:0 0 12px rgba(255,82,82,0.3)}
.proj-detail-row{display:flex;gap:10px;margin-bottom:8px;align-items:flex-start}
.proj-detail-label{font-size:9.6px;color:#7ecfcf;letter-spacing:0.1em;text-transform:uppercase;width:90px;flex-shrink:0;padding-top:2px}
.proj-detail-val{font-size:10.7px;color:var(--t1);flex:1;font-family:var(--mono);word-break:break-all}
.proj-detail-val.secret{letter-spacing:0.15em;color:var(--t3)}
.cf-gear-btn{position:absolute;top:0;right:0;background:none;border:none;cursor:pointer;
  color:var(--t2);font-size:20px;padding:2px 5px;line-height:1;border-radius:4px;
  transition:color 0.2s,transform 0.4s;}
.cf-gear-btn:hover{color:var(--cyan);transform:rotate(60deg);}
.cf-modal-overlay{display:none;position:fixed;inset:0;background:rgba(0,0,0,0.72);
  z-index:9000;align-items:center;justify-content:center;}
.cf-modal-overlay.open{display:flex;}
.cf-modal{background:var(--bg2,#141520);border:1px solid var(--border);border-radius:10px;
  padding:20px 22px;width:360px;max-width:95vw;max-height:90vh;overflow-y:auto;
  box-shadow:0 8px 40px rgba(0,0,0,0.6);}
.cf-modal-title{font-size:12px;font-weight:800;letter-spacing:0.15em;text-transform:uppercase;
  color:var(--cyan);margin-bottom:16px;display:flex;align-items:center;gap:8px;}
.cf-modal-title::before{content:'⚙';font-size:14px;}
.cf-setting-row{display:flex;align-items:center;justify-content:space-between;
  padding:8px 0;border-bottom:1px solid rgba(255,255,255,0.05);}
.cf-setting-row:last-child{border-bottom:none;}
.cf-setting-label{font-size:11px;color:var(--t0);font-weight:500;}
.cf-setting-sub{font-size:9.5px;color:var(--t2);margin-top:2px;}
.cf-toggle{position:relative;width:36px;height:20px;flex-shrink:0;}
.cf-toggle input{opacity:0;width:0;height:0;position:absolute;}
.cf-toggle-track{position:absolute;inset:0;background:rgba(255,255,255,0.1);
  border-radius:20px;cursor:pointer;transition:background 0.2s;}
.cf-toggle input:checked + .cf-toggle-track{background:var(--cyan,#00dcc8);}
.cf-toggle-thumb{position:absolute;top:3px;left:3px;width:14px;height:14px;
  background:#fff;border-radius:50%;transition:transform 0.2s;pointer-events:none;}
.cf-toggle input:checked ~ .cf-toggle-thumb{transform:translateX(16px);}
.cf-select{background:rgba(255,255,255,0.07);border:1px solid var(--border);
  border-radius:5px;color:var(--t0);font-size:11px;padding:4px 8px;cursor:pointer;
  outline:none;min-width:130px;}
.cf-select:focus{border-color:var(--cyan);}
.cf-section-sep{font-size:9px;font-weight:700;letter-spacing:0.15em;text-transform:uppercase;
  color:var(--t3);margin:12px 0 4px;padding-top:8px;border-top:1px solid rgba(255,255,255,0.07);}
.cf-modal-footer{display:flex;gap:8px;margin-top:16px;justify-content:flex-end;}
.cf-btn-save{background:var(--cyan);color:#000;border:none;border-radius:6px;
  padding:7px 18px;font-size:11px;font-weight:700;cursor:pointer;letter-spacing:0.05em;}
.cf-btn-save:hover{opacity:0.85;}
.cf-btn-cancel{background:rgba(255,255,255,0.07);color:var(--t1);border:1px solid var(--border);
  border-radius:6px;padding:7px 14px;font-size:11px;cursor:pointer;}
.cf-btn-cancel:hover{background:rgba(255,255,255,0.12);}
.cf-password-row{margin-top:4px;display:none;}
.cf-password-input{background:rgba(255,255,255,0.07);border:1px solid var(--border);
  border-radius:5px;color:var(--t0);font-size:11px;padding:5px 9px;width:100%;
  outline:none;box-sizing:border-box;}
.cf-password-input:focus{border-color:var(--cyan);}

/* API row buttons */
.api-show-btn{padding:3px 10px;border-radius:3px;border:1px solid var(--border);background:transparent;color:var(--t2);font-size:9.6px;cursor:pointer}
.api-show-btn:hover{border-color:var(--lilac);color:var(--lilac)}
.api-copy-btn{padding:3px 8px;border-radius:3px;border:1px solid var(--border);background:rgba(0,220,200,0.06);color:var(--t2);font-size:9.6px;cursor:pointer;flex-shrink:0}
.api-copy-btn:hover{border-color:var(--cyan);color:var(--cyan)}
.api-row{display:flex;align-items:center;gap:8px;margin-bottom:8px}
.api-label{color:var(--t3);font-size:9.6px;letter-spacing:0.1em;text-transform:uppercase;width:80px;flex-shrink:0}
.api-val{color:var(--cyan);font-family:var(--mono);font-size:10.7px;flex:1;word-break:break-all}

/* ══ Slaves / Fleet CSS ══ */
.fleet-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:14px;margin-bottom:24px}
.prov-card{
  padding:18px 20px;transition:border-color 0.3s;
}
.prov-card::after{
  content:'';position:absolute;bottom:0;left:0;right:0;height:2px;
  background:var(--t3);transition:background 0.6s, box-shadow 0.6s;
}
.prov-card.available::after{background:var(--green);box-shadow:0 0 10px rgba(0,230,118,0.3)}
.prov-card.unavailable::after{background:var(--red);box-shadow:0 0 10px rgba(255,82,82,0.2)}
.prov-card.checking::after{background:var(--yellow);animation:pulse 1s infinite}
.prov-top{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:10px}
.prov-name{font-size:13.9px;font-weight:700;color:var(--t1);letter-spacing:0.05em}
.prov-badge{font-size:7.5px;padding:2px 6px;border-radius:3px;letter-spacing:0.1em;text-transform:uppercase;font-weight:600}
.prov-badge.free{background:rgba(0,230,118,0.12);color:var(--green);border:1px solid rgba(0,230,118,0.25)}
.prov-badge.paid{background:rgba(255,145,0,0.12);color:var(--orange);border:1px solid rgba(255,145,0,0.25)}
.prov-badge.local{background:rgba(155,109,255,0.12);color:var(--lilac);border:1px solid rgba(155,109,255,0.25)}
.prov-model{font-size:9.6px;color:var(--t3);letter-spacing:0.08em;font-family:'Courier New',monospace;margin-bottom:8px}
.prov-status{font-size:9.6px;display:flex;align-items:center;gap:5px}
.prov-status .tunnel-dot{width:6px;height:6px}
.prov-status-text{color:var(--t2)}
.prov-features{display:flex;gap:4px;margin-top:8px;flex-wrap:wrap}
.prov-feat{font-size:9.0px;padding:2px 5px;border-radius:2px;background:rgba(0,220,200,0.06);color:var(--cyan);border:1px solid rgba(0,220,200,0.15);letter-spacing:0.05em}
.fleet-actions{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:24px}
.fleet-btn{
  font-family:var(--F);font-size:11.5px;font-weight:600;
  padding:10px 18px;border-radius:4px;border:none;
  cursor:pointer;letter-spacing:0.1em;text-transform:uppercase;
  position:relative;overflow:hidden;transition:all 0.2s;
}
.fleet-btn::after{content:'';position:absolute;bottom:0;left:0;right:0;height:2px;transition:background 0.3s}
.fleet-btn.primary{background:rgba(0,220,200,0.08);color:var(--cyan)}
.fleet-btn.primary::after{background:var(--cyan)}
.fleet-btn.primary:hover{background:rgba(0,220,200,0.15)}
.fleet-btn.secondary{background:rgba(155,109,255,0.08);color:var(--lilac)}
.fleet-btn.secondary::after{background:var(--lilac)}
.fleet-btn.secondary:hover{background:rgba(155,109,255,0.15)}
.fleet-btn.warn{background:rgba(255,145,0,0.08);color:var(--orange)}
.fleet-btn.warn::after{background:var(--orange)}
.fleet-btn.warn:hover{background:rgba(255,145,0,0.15)}
.fleet-btn:disabled{opacity:0.15 !important;cursor:default;filter:grayscale(0.6)}
.fleet-log{
  background:rgba(0,0,0,0.4);border:1px solid var(--border);border-radius:4px;
  padding:10px 12px;font-family:'Courier New',monospace;font-size:12.8px;
  color:var(--t1);max-height:180px;overflow-y:auto;margin-bottom:24px;
  line-height:1.7;display:none;
}
.fleet-log.visible{display:block}
.fleet-log .log-time{color:var(--t3);margin-right:8px}
.fleet-log .log-ok{color:var(--green)}
.fleet-log .log-err{color:var(--red)}
.fleet-log .log-info{color:var(--cyan)}
.fleet-log .log-warn{color:var(--orange)}
.sched-row{display:flex;align-items:center;gap:14px;margin-bottom:14px}
.sched-indicator{width:10px;height:10px;border-radius:50%;flex-shrink:0}
.sched-indicator.running{background:var(--green);box-shadow:0 0 8px rgba(0,230,118,0.4);animation:pulse 2s infinite}
.sched-indicator.stopped{background:var(--red);box-shadow:0 0 6px rgba(255,82,82,0.2)}
.sched-text{font-size:14.2px;color:var(--t1);letter-spacing:0.08em}
.sched-detail{font-size:11.5px;color:var(--t2);margin-left:auto;letter-spacing:0.05em;font-family:'Courier New',monospace}
.sched-stats{display:flex;gap:18px;flex-wrap:wrap;margin-bottom:14px;padding:10px 14px;background:rgba(0,0,0,0.3);border:1px solid var(--border);border-radius:6px}
.sched-stat{display:flex;flex-direction:column;gap:2px}
.sched-stat-label{font-size:9.6px;color:var(--t3);letter-spacing:0.12em;text-transform:uppercase}
.sched-stat-val{font-size:12.8px;font-weight:700;color:var(--cyan);font-family:var(--mono)}
.prov-name, .metal .prov-model{
  text-shadow:0 1px 2px rgba(0,0,0,0.5) !important;
}
.slaves-wrap{display:flex;gap:0;height:100%}
.slaves-sidebar{width:220px;flex-shrink:0;border-right:1px solid var(--border);padding:12px 8px;display:flex;flex-direction:column;gap:6px;overflow-y:auto}
.slaves-sidebar-title{font-size:10.3px;font-weight:700;letter-spacing:0.2em;color:var(--t3);text-transform:uppercase;padding:4px 8px;margin-bottom:4px}
.slave-btn{position:relative;padding:10px 12px;border-radius:6px;border:1px solid var(--border);background:linear-gradient(135deg,rgba(18,22,40,0.95) 0%,rgba(28,34,58,0.9) 40%,rgba(22,28,50,0.95) 100%);cursor:pointer;transition:all 0.2s;overflow:hidden}
.slave-btn::before{content:'';position:absolute;inset:0;background:linear-gradient(135deg,rgba(255,255,255,0.04) 0%,transparent 50%,rgba(255,255,255,0.02) 100%);pointer-events:none}
.slave-btn::after{content:'';position:absolute;top:0;left:0;right:0;height:1px;background:linear-gradient(90deg,transparent,rgba(255,255,255,0.07),transparent)}
.slave-btn:hover{border-color:rgba(155,109,255,0.4);background:linear-gradient(135deg,rgba(22,28,50,0.98) 0%,rgba(34,42,72,0.95) 100%)}
.slave-btn.active{border-color:var(--cyan);box-shadow:0 0 12px rgba(0,220,200,0.15),inset 0 0 20px rgba(0,220,200,0.04)}
.slave-btn.active .slave-btn-name{color:var(--cyan)}
.slave-btn-top{display:flex;align-items:center;justify-content:space-between;margin-bottom:4px}
.slave-btn-name{font-size:12.8px;font-weight:700;letter-spacing:0.1em;color:var(--t1);text-transform:uppercase}
.slave-btn-dot{width:6px;height:6px;border-radius:50%;background:var(--t3);flex-shrink:0}
.slave-btn-dot.on{background:var(--green);box-shadow:0 0 5px var(--green)}
.slave-btn-dot.off{background:var(--red)}
.slave-btn-dot.checking{background:var(--yellow);animation:pulse 1s infinite}
.slave-btn-sub{font-size:10.3px;color:var(--t3);font-family:var(--mono);letter-spacing:0.05em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.slave-btn-type{font-size:9.0px;font-weight:700;letter-spacing:0.12em;padding:1px 5px;border-radius:2px;text-transform:uppercase}
.slave-btn-type.local{background:rgba(155,109,255,0.12);color:var(--lilac);border:1px solid rgba(155,109,255,0.2)}
.slave-btn-type.free{background:rgba(0,230,118,0.1);color:var(--green);border:1px solid rgba(0,230,118,0.2)}
.slave-btn-type.remote{background:rgba(78,164,255,0.1);color:var(--blue);border:1px solid rgba(78,164,255,0.2)}
.slaves-content{flex:1;overflow-y:auto;padding:14px 20px}