/* Forge Console — терминал-эстетика для продвинутых кодеров.
   Отдельное окно поверх существующего движка; god-mode не затрагивается. */
:root{
  --fc-bg:#0a0e14; --fc-panel:#0d1219; --fc-bd:#1c2530;
  --fc-txt:#c8d3e0; --fc-dim:#6b7888; --fc-green:#4ec9b0; --fc-amber:#e0a44e;
  --fc-blue:#6fb3ff; --fc-red:#e06c75; --fc-active:#1a2330;
}
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
.fc-body{
  font-family:"JetBrains Mono",ui-monospace,Menlo,Consolas,monospace;
  background:var(--fc-bg);color:var(--fc-txt);min-height:100vh;
  font-size:13px;line-height:1.55;display:flex;flex-direction:column;
}
.fc-titlebar{
  display:flex;align-items:center;gap:12px;padding:9px 16px;
  background:var(--fc-panel);border-bottom:1px solid var(--fc-bd);
  position:sticky;top:0;z-index:5;
}
.fc-dots{display:flex;gap:7px}
.fc-dots span{width:11px;height:11px;border-radius:50%;background:#39414d}
.fc-dots span:nth-child(1){background:#e06c75}
.fc-dots span:nth-child(2){background:#e0a44e}
.fc-dots span:nth-child(3){background:#4ec9b0}
.fc-title{color:var(--fc-dim);font-size:12px;letter-spacing:.02em}
.fc-titlebar-end{margin-left:auto;display:flex;align-items:center;gap:14px}
.fc-flag{font-size:11px;color:var(--fc-amber);text-transform:uppercase;letter-spacing:.08em}
.fc-link{color:var(--fc-blue);text-decoration:none;font-size:12px}
.fc-link:hover{text-decoration:underline}

.fc-shell{
  flex:1;display:grid;grid-template-columns:1fr 280px;grid-template-rows:1fr auto;
  grid-template-areas:"stream side" "prompt prompt";
  gap:1px;background:var(--fc-bd);max-width:1280px;width:100%;margin:0 auto;
}
.fc-stream{grid-area:stream;background:var(--fc-bg);padding:18px 22px;overflow-y:auto;max-height:calc(100vh - 120px)}
.fc-line{white-space:pre-wrap;word-break:break-word;padding:1px 0}
.fc-muted{color:var(--fc-dim)}
.fc-echo{color:var(--fc-blue)}.fc-echo::before{content:"forge ❯ ";color:var(--fc-dim)}
.fc-ok{color:var(--fc-green)}
.fc-warn{color:var(--fc-amber)}
.fc-err{color:var(--fc-red)}
.fc-head{color:var(--fc-txt);margin-top:12px;border-bottom:1px solid var(--fc-bd);padding-bottom:3px}
.fc-kv{color:var(--fc-dim)}.fc-kv b{color:var(--fc-txt);font-weight:500}
.fc-li{padding-left:14px;position:relative}
.fc-li::before{content:"·";position:absolute;left:2px;color:var(--fc-dim)}
.fc-file{color:var(--fc-green)}

.fc-side{grid-area:side;background:var(--fc-panel);padding:16px 14px;overflow-y:auto;max-height:calc(100vh - 120px)}
.fc-side-h{font-size:10px;text-transform:uppercase;letter-spacing:.14em;color:var(--fc-dim);margin:18px 0 8px}
.fc-side-h:first-child{margin-top:0}
.fc-pipe{list-style:none;display:flex;flex-direction:column;gap:4px}
.fc-step{display:flex;align-items:center;gap:9px;padding:7px 9px;border:1px solid var(--fc-bd);border-radius:6px;font-size:12px}
.fc-step .s-dot{width:7px;height:7px;border-radius:50%;background:#39414d;flex-shrink:0}
.fc-step.done .s-dot{background:var(--fc-green)}
.fc-step.active{border-color:var(--fc-blue);background:var(--fc-active)}
.fc-step.active .s-dot{background:var(--fc-blue);box-shadow:0 0 6px var(--fc-blue)}
.fc-step .s-tag{margin-left:auto;font-size:9px;text-transform:uppercase;letter-spacing:.06em;color:var(--fc-dim)}
.fc-step.active .s-tag{color:var(--fc-blue)}.fc-step.done .s-tag{color:var(--fc-green)}

.fc-modes{display:flex;border:1px solid var(--fc-bd);border-radius:6px;overflow:hidden}
.fc-mode-btn{flex:1;padding:7px;background:transparent;border:none;color:var(--fc-dim);
  font-family:inherit;font-size:12px;cursor:pointer}
.fc-mode-btn.active{background:var(--fc-active);color:var(--fc-blue)}
.fc-slots{display:flex;flex-direction:column;gap:6px;margin-top:8px}
.fc-slot{padding:8px 10px;border:1px solid var(--fc-bd);border-radius:6px;font-size:12px}
.fc-slot.dim{opacity:.4}
.fc-slot.on{border-color:var(--fc-blue)}
.fc-slot .sl-l{color:var(--fc-txt)}
.fc-slot .sl-h{color:var(--fc-dim);font-size:11px;margin-top:2px}

.fc-ctl{display:flex;flex-direction:column;gap:6px}
.fc-ctl-btn{padding:8px 10px;border:1px solid var(--fc-bd);border-radius:6px;background:transparent;
  color:var(--fc-txt);font-family:inherit;font-size:12px;cursor:pointer;text-align:left}
.fc-ctl-btn:hover:not(:disabled){border-color:var(--fc-blue);color:var(--fc-blue)}
.fc-ctl-btn:disabled{opacity:.4;cursor:not-allowed}
.fc-ctl-btn.fc-stop:hover{border-color:var(--fc-red);color:var(--fc-red)}
.fc-toggle{display:flex;align-items:center;gap:8px;margin-top:10px;font-size:12px;color:var(--fc-dim);cursor:pointer}

.fc-prompt{grid-area:prompt;display:flex;align-items:flex-end;gap:10px;
  background:var(--fc-panel);border-top:1px solid var(--fc-bd);padding:10px 18px}
.fc-caret{color:var(--fc-green);white-space:nowrap;font-weight:700}
.fc-input{flex:1;background:transparent;border:none;outline:none;color:var(--fc-txt);
  font-family:inherit;font-size:13px;resize:none;overflow:hidden;line-height:1.55;
  min-height:20px;max-height:160px;overflow-y:auto}
.fc-input::placeholder{color:var(--fc-dim)}
.fc-run{padding:7px 18px;border:1px solid var(--fc-green);border-radius:6px;background:transparent;
  color:var(--fc-green);font-family:inherit;font-size:12px;font-weight:700;cursor:pointer}
.fc-run:hover{background:rgba(78,201,176,.12)}

@media(max-width:840px){
  .fc-shell{grid-template-columns:1fr;grid-template-areas:"stream" "side" "prompt"}
  .fc-stream,.fc-side{max-height:none}
}

/* ── Model selector redesign (ms-*) ── */
.ms-tabs{display:flex;gap:3px;margin:6px 0 4px}
.ms-tab{flex:1;padding:5px 4px;background:transparent;border:1px solid var(--fc-bd);
  border-radius:5px;color:var(--fc-dim);font-family:inherit;font-size:11px;
  cursor:pointer;text-align:center;transition:all .12s;line-height:1.2}
.ms-tab.on{background:var(--fc-active);border-color:var(--fc-blue);color:var(--fc-blue)}
.ms-tab:hover:not(.on){border-color:var(--fc-blue);color:var(--fc-txt)}
.ms-tiers{display:flex;flex-direction:column;gap:4px;margin-top:4px}
.ms-row{display:flex;align-items:center;gap:7px;padding:7px 9px;
  border:1px solid var(--fc-bd);border-radius:7px;transition:border-color .15s,background .15s}
.ms-row.on{border-color:rgba(111,179,255,.4);background:rgba(111,179,255,.05)}
.ms-row.dim{opacity:.28;pointer-events:none}
.ms-tier-icon{font-size:13px;width:16px;text-align:center;flex-shrink:0;line-height:1}
.ms-tier-name{font-size:11px;color:var(--fc-txt);font-weight:500;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ms-pick{background:var(--fc-bg);border:1px solid var(--fc-bd);border-radius:5px;
  color:var(--fc-dim);font-family:inherit;font-size:10px;padding:3px 18px 3px 5px;
  cursor:pointer;-webkit-appearance:none;appearance:none;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='8' height='5'%3E%3Cpath d='M0 0l4 5 4-5z' fill='%236b7888'/%3E%3C/svg%3E");
  background-repeat:no-repeat;background-position:right 4px center;
  width:0;flex:1 1 0;min-width:0;max-width:100px}
.ms-pick:focus{outline:none;border-color:var(--fc-blue);color:var(--fc-txt)}
.ms-pick option,.ms-pick optgroup{background:var(--fc-panel);color:var(--fc-txt)}
.ms-bill{font-size:10px;color:var(--fc-amber);padding:2px 9px 4px;line-height:1.3}

/* ── Running indicator ── */
@keyframes fc-pulse{0%,100%{opacity:.3}50%{opacity:.9}}
.fc-working{color:var(--fc-green);animation:fc-pulse 1.3s ease-in-out infinite}
@keyframes fc-dot-glow{0%,100%{box-shadow:0 0 4px var(--fc-blue)}50%{box-shadow:0 0 9px var(--fc-blue),0 0 16px var(--fc-blue)}}
.fc-step.active .s-dot{animation:fc-dot-glow 1.3s ease-in-out infinite}

/* ── Hints (примеры задач) ── */
.fc-hints{display:flex;flex-wrap:wrap;gap:7px;margin-top:14px}
.fc-hint{padding:5px 11px;border:1px solid var(--fc-bd);border-radius:20px;
  color:var(--fc-dim);font-size:11px;cursor:pointer;transition:all .12s;background:transparent}
.fc-hint:hover{border-color:var(--fc-blue);color:var(--fc-txt)}
