.starforge-control-toggle {
  position: fixed;
  right: 18px;
  bottom: 18px;
  z-index: 1200;
  padding: 11px 14px;
  border: 1px solid #f9733d;
  color: #f4f0e8;
  background: #111a1c;
  font: 700 11px/1.2 ui-monospace, monospace;
  letter-spacing: .08em;
  box-shadow: 0 12px 32px rgba(0, 0, 0, .35);
}

.starforge-control-panel {
  position: fixed;
  right: 18px;
  bottom: 68px;
  z-index: 1200;
  width: min(360px, calc(100vw - 28px));
  padding: 16px;
  border: 1px solid #38484b;
  color: #e9ece8;
  background: rgba(9, 16, 18, .98);
  box-shadow: 0 20px 60px rgba(0, 0, 0, .5);
}

.starforge-control-panel[hidden] { display: none; }
.starforge-control-panel h2 { margin: 0 0 4px; font-size: 15px; }
.starforge-control-panel p { margin: 0 0 12px; color: #9ca9aa; font-size: 11px; line-height: 1.55; }
.starforge-control-status { display: flex; align-items: center; gap: 8px; margin: 9px 0 13px; font: 10px/1.4 ui-monospace, monospace; }
.starforge-control-status::before { width: 8px; height: 8px; border-radius: 50%; background: #657477; content: ""; }
.starforge-control-status.is-ready::before { background: #52c788; box-shadow: 0 0 0 4px rgba(82,199,136,.12); }
.starforge-control-status.is-error::before { background: #f9733d; }
.starforge-control-actions { display: grid; gap: 8px; }
.starforge-control-actions button { min-height: 38px; padding: 9px 11px; border: 1px solid #405154; color: #e9ece8; background: #101b1d; text-align: left; font-size: 11px; }
.starforge-control-actions button:first-child { border-color: #f9733d; background: rgba(249,115,61,.12); }
.starforge-control-actions button:disabled { cursor: wait; opacity: .55; }
.starforge-control-log { max-height: 120px; margin-top: 12px; padding: 9px; overflow: auto; border: 1px solid #263638; color: #aab5b5; background: #081012; white-space: pre-wrap; font: 9px/1.55 ui-monospace, monospace; }

@media (max-width: 640px) {
  .starforge-control-toggle { right: 12px; bottom: 12px; }
  .starforge-control-panel { right: 12px; bottom: 62px; }
}
