:root {
      --bg: #0b1020;
      --panel: #0f1730;
      --border: rgba(255,255,255,.12);
      --text: rgba(255,255,255,.92);
      --muted: rgba(255,255,255,.65);
      --ok: #34d399;
      --warn: #fbbf24;
      --err: #fb7185;
      --info: #60a5fa;
      --shadow: 0 20px 60px rgba(0,0,0,.35);
    }
    * { box-sizing: border-box; }
    body {
      margin: 0;
      font-family: system-ui, -apple-system, Segoe UI, Roboto, Arial, sans-serif;
      background: radial-gradient(1200px 700px at 10% 10%, #182353, transparent),
                  radial-gradient(900px 600px at 90% 30%, #1b3a2b, transparent),
                  var(--bg);
      color: var(--text);
      padding: 22px;
    }
    .wrap {
      max-width: 1100px;
      margin: 0 auto;
      display: flex;
    }
    .card {
      background: linear-gradient(180deg, rgba(255,255,255,.06), rgba(255,255,255,.03));
      border: 1px solid var(--border);
      border-radius: 14px;
      box-shadow: var(--shadow);
      overflow: hidden;
      display: flex;
      flex-direction: column;
      
    }
    .card header {
      padding: 12px 14px;
      border-bottom: 1px solid var(--border);
      display: flex;
      align-items: center;
      justify-content: space-between;
      gap: 10px;
    }
    .title {
      display: flex;
      flex-direction: column;
      gap: 2px;
    }
    .title strong { font-size: 14px; }
    .title span { font-size: 12px; color: var(--muted); }
    .btns { display: flex; gap: 8px; }
    button {
      border: 1px solid var(--border);
      background: rgba(255,255,255,.06);
      color: var(--text);
      padding: 8px 10px;
      border-radius: 10px;
      cursor: pointer;
      font-size: 12px;
    }
    button:hover { background: rgba(255,255,255,.10); }
    button:disabled { opacity: .55; cursor: not-allowed; }

    /* Console */
    #console {
      background: #070b16;
      padding: 14px;
      min-height: 70vh;
      height: 100%;
      overflow: auto;
      font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, "Liberation Mono", monospace;
      font-size: 13px;
      line-height: 1.45;
    }
    .line { white-space: pre-wrap; word-break: break-word; }
    .line .ts { color: rgba(255,255,255,.38); margin-right: 8px; }
    .ok { color: var(--ok); }
    .warn { color: var(--warn); }
    .err { color: var(--err); }
    .info { color: var(--info); }
    .muted { color: var(--muted); }

    .prompt {
      border-top: 1px solid var(--border);
      display: flex;
      align-items: center;
      gap: 10px;
      padding: 10px 12px;
      background: rgba(0,0,0,.18);
      font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, "Liberation Mono", monospace;
    }
    .prompt .prefix { color: rgba(255,255,255,.65); }
    .prompt input {
      flex: 1;
      background: transparent;
      border: none;
      outline: none;
      color: var(--text);
      font-size: 13px;
      padding: 6px 0;
    }