/* Gairox dispatch studio: topology is permission, never a broadcast bus. */
.sidebar{overflow-y:auto;overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:#52675e transparent;height:100dvh}.sidebar>*{flex-shrink:0}.sidebar-bottom{padding-top:24px}.nav-item{min-height:42px}.control-toolbar{display:flex;gap:8px;flex-wrap:wrap;margin:12px 0 20px}.control-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(235px,1fr));gap:12px}.control-card{border:1px solid var(--border);background:#11181b;border-radius:9px;padding:17px;min-width:0}.control-card h3{margin:8px 0;font-size:15px}.control-card p{color:var(--muted);line-height:1.7;overflow-wrap:anywhere}.control-card header{display:flex;align-items:center;justify-content:space-between}.control-card .button{padding:7px 10px}.control-dot{width:9px;height:9px;border-radius:50%;background:var(--agent-color)}.control-actions{display:flex;gap:7px;flex-wrap:wrap;margin-top:14px}.control-form{display:grid;gap:14px}.control-form label{display:grid;gap:7px;font-size:11px;color:#b6c3ca}.control-form input,.control-form select,.control-form textarea,.chat-compose textarea,.chat-toolbar select,.dispatch-form input,.dispatch-form select{width:100%;min-width:0;color:var(--text);background:#0e1418;border:1px solid #39464b;border-radius:6px;padding:11px;font:inherit}.control-form textarea{min-height:85px}.control-form .two-columns{display:grid;grid-template-columns:1fr 1fr;gap:12px}.control-form .checkbox{display:flex;align-items:center}.control-form input[type=checkbox]{width:auto}.control-form p{margin:0;line-height:1.8;color:var(--muted)}.topology{margin:18px 0;border:1px solid #364840;border-radius:10px;background-color:#0b1215;background-image:radial-gradient(#34453e 1px,transparent 1px);background-size:20px 20px;overflow:auto;max-height:590px}.topology svg{display:block;min-width:800px;width:100%;height:auto}.graph-node{cursor:pointer}.graph-node rect{fill:#17252a;stroke:#526b62}.graph-node:hover rect{stroke:#c0f6d6;stroke-width:2}.graph-node text{fill:#e5f1ed;font-size:13px;font-family:inherit}.graph-node .graph-detail{fill:#96afa8;font-size:10px}.graph-edge{fill:none;stroke:#78b59d;stroke-width:1.7;opacity:.55}.graph-label{font-size:9px;fill:#a3c1b4;paint-order:stroke;stroke:#0b1215;stroke-width:4px}.route-table{max-height:330px;overflow:auto}.route-table td{font-size:11px}.control-note{border-left:2px solid #93ceb1;padding:12px 15px;background:#17231f;color:#b4c7be;font-size:11px;line-height:1.9;margin:15px 0}.empty-desk{border:1px dashed #4a555a;min-height:115px;padding:20px;color:#81928c}.empty-desk small{display:block;margin-top:10px}.custom-desks{margin-top:14px;display:grid;grid-template-columns:repeat(auto-fit,minmax(145px,1fr));gap:10px}.agent-room.disabled{opacity:.4}.chat-layout{display:grid;grid-template-columns:minmax(0,1fr) 245px;gap:16px}.chat-toolbar{display:flex;gap:12px;align-items:center;margin-bottom:15px}.chat-toolbar select{max-width:300px}.chat-log{height:410px;overflow-y:auto;overscroll-behavior:contain;padding:14px;background:#0c1316;border:1px solid #2b3c39;border-radius:9px}.chat-message{padding:12px 14px;border:1px solid #30433d;border-radius:8px;margin-bottom:12px;background:#17231f;white-space:pre-wrap;overflow-wrap:anywhere;line-height:1.8;font-size:12px}.chat-message.user{margin-left:30px;background:#19212c;border-color:#354054}.chat-message small{display:block;color:#a2c2b0;font-size:9px;letter-spacing:1px;margin-bottom:6px}.chat-compose{display:grid;grid-template-columns:1fr auto;gap:10px;margin-top:12px}.chat-compose textarea{resize:vertical;min-height:78px;max-height:210px}.chat-compose button{align-self:end}.chat-tips code{display:block;white-space:pre-wrap;overflow-wrap:anywhere;margin:12px 0;font-size:10px;line-height:1.8}.chat-tips p{font-size:11px;line-height:1.9;color:var(--muted)}.job-state{color:#a9c3b7;font-size:10px;margin:10px 0;min-height:16px}.cost-strip{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:20px}.cost-strip b{display:block;font-size:23px;margin:10px 0}.cost-strip small{color:#91a79d}.dispatch-form{display:grid;grid-template-columns:1fr 1fr 2fr auto;gap:8px;margin:15px 0}.graph-legend{display:flex;gap:15px;flex-wrap:wrap;color:#a8c3b6;font-size:10px}.mini-code{font-family:ui-monospace,monospace;font-size:10px;color:#9cb5ae;overflow-wrap:anywhere}.control-card .status-running{color:#bef5d5}.control-card .status-failed{color:#ffc7ba}.control-error{color:#ffc0b5;font-size:12px;white-space:pre-wrap}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0)}
@media(max-width:1000px){.chat-layout{grid-template-columns:1fr}.chat-tips{display:none}.cost-strip{grid-template-columns:1fr 1fr}.dispatch-form{grid-template-columns:1fr 1fr}.dispatch-form input{grid-column:1/-1}}
@media(max-width:760px){.sidebar .sidebar-bottom{display:block;padding-top:20px}.sidebar .funding-card,.sidebar .founder-profile>span:not(:first-child){display:none}.sidebar .founder-profile{justify-content:center}.sidebar{padding-bottom:25px}.control-form .two-columns{grid-template-columns:1fr}.chat-compose{grid-template-columns:1fr}.chat-compose button{justify-self:end}.chat-log{height:350px}.control-toolbar .button{white-space:normal}.cost-strip{gap:8px}.control-card{padding:12px}.chat-toolbar{flex-wrap:wrap}}

/* ==========================================================================
   GAIROX Headquarters Sign-In Gate
   ========================================================================== */
.auth-wall {
  position: fixed;
  inset: 0;
  background: radial-gradient(circle at 50% 15%, #19242a 0%, #0a0e12 65%, #050709 100%);
  display: flex;
  align-items: center;
  justify-content: center;
  z-index: 9999;
  padding: 24px;
}
.auth-card {
  width: 100%;
  max-width: 440px;
  background: rgba(18, 24, 29, 0.92);
  backdrop-filter: blur(20px);
  -webkit-backdrop-filter: blur(20px);
  border: 1px solid #2f3e3a;
  border-radius: 16px;
  padding: 40px 34px;
  box-shadow: 0 30px 90px rgba(0, 0, 0, 0.85), 0 0 0 1px rgba(190, 245, 213, 0.08);
  position: relative;
  overflow: hidden;
}
.auth-card::before {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  height: 3px;
  background: linear-gradient(90deg, #64dcb5, #c6afff, #64dcb5);
}
.auth-header {
  display: flex;
  align-items: center;
  gap: 15px;
  margin-bottom: 22px;
}
.auth-brand-name {
  font-size: 28px;
  font-weight: 800;
  letter-spacing: -1.2px;
  color: #fff;
  line-height: 1;
}
.auth-brand-name span {
  color: var(--mint);
}
.auth-brand-sub {
  display: block;
  font-size: 8px;
  letter-spacing: 2px;
  color: var(--muted);
  margin-top: 6px;
  font-weight: 600;
}
.auth-security-badge {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-size: 9px;
  letter-spacing: 1.2px;
  color: #a4e5c2;
  background: rgba(35, 55, 43, 0.6);
  border: 1px solid #3d604c;
  padding: 5px 10px;
  border-radius: 6px;
  margin-bottom: 18px;
  font-weight: 600;
}
.auth-security-badge .tiny-dot {
  width: 5px;
  height: 5px;
  background: #a4e5c2;
  border-radius: 50%;
  box-shadow: 0 0 6px #a4e5c2;
}
.auth-card h2 {
  font-size: 21px;
  font-weight: 650;
  margin: 0 0 10px;
  letter-spacing: -0.6px;
  color: #fff;
}
.auth-desc {
  color: #8fa099;
  font-size: 12px;
  line-height: 1.65;
  margin: 0 0 24px;
}
.auth-form {
  display: flex;
  flex-direction: column;
  gap: 8px;
}
.auth-form label {
  font-size: 10px;
  letter-spacing: 1px;
  text-transform: uppercase;
  color: #a5b6ae;
  font-weight: 600;
}
.auth-input-group {
  position: relative;
  display: flex;
  align-items: center;
}
.auth-input-group input {
  width: 100%;
  background: #0d1316;
  border: 1px solid #364841;
  border-radius: 8px;
  color: #e9f2ee;
  padding: 13px 45px 13px 14px;
  font-size: 13.5px;
  outline: none;
  transition: border-color 0.2s, box-shadow 0.2s;
  box-sizing: border-box;
}
.auth-input-group input:focus {
  border-color: var(--mint);
  box-shadow: 0 0 0 3px rgba(190, 245, 213, 0.15);
}
.auth-pwd-toggle {
  position: absolute;
  right: 10px;
  background: transparent;
  border: none;
  color: #798d84;
  font-size: 15px;
  cursor: pointer;
  padding: 6px;
  border-radius: 4px;
}
.auth-pwd-toggle:hover {
  color: #c0d8cc;
}
.auth-error-msg {
  color: #ffa599;
  font-size: 11.5px;
  margin: 4px 0 6px;
  min-height: 16px;
}
.auth-submit-btn {
  width: 100%;
  padding: 13px;
  font-size: 12.5px;
  font-weight: 600;
  letter-spacing: 0.4px;
  border-radius: 8px;
  margin-top: 8px;
  cursor: pointer;
}
.auth-card-footer {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-top: 30px;
  padding-top: 18px;
  border-top: 1px solid #23302a;
  font-size: 9.5px;
  color: #63776e;
}

/* ==========================================================================
   GAIROX Live Production Environment Theme
   ========================================================================== */
.environment.live {
  border-color: #2a523a !important;
  color: #a4e5c2 !important;
  background: #14231c !important;
  font-weight: 600;
  display: inline-flex;
  align-items: center;
  gap: 6px;
}
.environment.live i {
  background: #a4e5c2 !important;
  box-shadow: 0 0 8px #a4e5c2 !important;
  display: inline-block;
  width: 6px;
  height: 6px;
  border-radius: 50%;
  animation: live-pulse 1.8s ease-in-out infinite;
}
@keyframes live-pulse {
  0% { transform: scale(0.95); opacity: 0.7; }
  50% { transform: scale(1.15); opacity: 1; box-shadow: 0 0 12px #a4e5c2; }
  100% { transform: scale(0.95); opacity: 0.7; }
}
.mode-note.live-note {
  border-color: #244432;
  background: #122218;
  color: #bedbc7;
}
.mode-note.live-note b {
  color: #a4e5c2;
}


