/* AgentForge — global styles (extracted from index.html) */
*{box-sizing:border-box;margin:0;padding:0}
:root{
  --bg:#0f1117;--bg2:#161b27;--bg3:#1e2535;--border:#2a3145;
  --text:#e2e8f0;--text2:#94a3b8;--accent:#f59e0b;--accent2:#fbbf24;
  --green:#22c55e;--red:#ef4444;--orange:#f59e0b;--purple:#a855f7;--radius:10px;
}
html,body{height:100%;font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;background:var(--bg);color:var(--text);font-size:15px}
/* Keyboard-only focus ring — visible for tab/keyboard users (incl. role=button
   agent cards), suppressed for mouse/touch via :focus-visible. */
:focus-visible{outline:2px solid var(--accent2);outline-offset:2px}
.agent-item:focus-visible{outline:2px solid var(--accent2);outline-offset:-2px}
::-webkit-scrollbar{width:4px}::-webkit-scrollbar-thumb{background:var(--border);border-radius:99px}
.app{display:flex;flex-direction:column;height:100vh;height:100dvh;overflow:hidden;max-width:560px;margin-inline:auto;position:relative}

/* Header */
.header{background:var(--bg2);border-bottom:1px solid var(--border);padding:calc(10px + env(safe-area-inset-top,0px)) 14px 10px;display:flex;align-items:center;gap:10px;flex-shrink:0}
.logo{font-size:17px;font-weight:700}.logo span{color:var(--accent2)}
.dot{width:9px;height:9px;border-radius:50%;background:var(--red);flex-shrink:0;transition:background .3s}
.dot.ok{background:var(--green)}.dot.warn{background:var(--orange)}
.hdr-right{margin-left:auto;display:flex;gap:6px}
.icon-btn{background:var(--bg3);border:1px solid var(--border);color:var(--text);padding:6px 11px;border-radius:var(--radius);font-size:14px;cursor:pointer}
.icon-btn.active-tab{background:var(--accent)22;border-color:var(--accent);color:var(--accent2)}

/* Screens */
.screen{display:none;flex:1;overflow:hidden;flex-direction:column}
.screen.active{display:flex}

/* ── SETUP SCREEN ── */
.welcome{flex:1;overflow-y:auto;padding:18px;display:flex;flex-direction:column;gap:13px}
.welcome-hero{text-align:center;padding:16px 0 6px}
.welcome-hero .big{font-size:48px;margin-bottom:8px}
.welcome-hero h1{font-size:21px;font-weight:700;margin-bottom:5px}
.welcome-hero p{font-size:13px;color:var(--text2);line-height:1.6}
.card{background:var(--bg2);border:1px solid var(--border);border-radius:var(--radius);padding:14px}
.card-title{font-size:11px;color:var(--text2);text-transform:uppercase;letter-spacing:.06em;margin-bottom:9px}
.field-input{width:100%;background:var(--bg3);border:1px solid var(--border);color:var(--text);padding:11px 13px;border-radius:var(--radius);font-size:15px;outline:none;font-family:monospace}
.field-input:focus{border-color:var(--accent)}
.field-hint{font-size:12px;color:var(--text2);margin-top:5px;line-height:1.5}
.primary-btn{width:100%;padding:13px;background:var(--accent);border:none;color:#fff;font-size:15px;font-weight:700;border-radius:var(--radius);cursor:pointer;margin-top:10px}
.primary-btn:disabled{opacity:.5}
.step-list{display:flex;flex-direction:column;gap:10px;margin-bottom:12px}
.step{display:flex;gap:11px;align-items:flex-start}
.snum{width:24px;height:24px;border-radius:50%;background:var(--accent);color:#fff;font-size:12px;font-weight:700;display:flex;align-items:center;justify-content:center;flex-shrink:0;margin-top:2px}
.step-body{font-size:13px;color:var(--text2);line-height:1.6}
.step-body b{color:var(--text);display:block;margin-bottom:1px}
.cmd{display:block;margin-top:3px;font-family:monospace;font-size:12px;background:var(--bg);border:1px solid var(--border);padding:6px 9px;border-radius:6px;color:var(--accent2);word-break:break-all}
.skip-link{text-align:center;font-size:13px;color:var(--text2)}
.skip-link span{color:var(--accent2);cursor:pointer;text-decoration:underline}
/* ── Multi-provider setup ── */
.setup-prov-btn{display:flex;flex-direction:column;align-items:center;gap:3px;padding:11px 8px;border-radius:var(--radius);border:1px solid var(--border);background:var(--bg3);color:var(--text2);cursor:pointer;font-size:13px;transition:border-color .15s;width:100%}
.setup-prov-btn.on{border-color:var(--accent);background:var(--accent)22;color:var(--accent2)}
.setup-prov-info{margin-bottom:12px}
.setup-steps{display:flex;flex-direction:column;gap:8px;margin-bottom:12px}
a{color:var(--accent2)}

/* ── AGENTS SCREEN ── */
.search-bar{padding:10px 12px;background:var(--bg2);border-bottom:1px solid var(--border)}
.search-input{width:100%;background:var(--bg3);border:1px solid var(--border);color:var(--text);padding:9px 12px;border-radius:var(--radius);font-size:15px;outline:none}
.search-input:focus{border-color:var(--accent)}
.div-scroll{display:flex;gap:5px;padding:7px 12px;overflow-x:auto;background:var(--bg2);border-bottom:1px solid var(--border);flex-shrink:0}
.div-scroll::-webkit-scrollbar{height:0}
.div-tab{white-space:nowrap;padding:4px 12px;border-radius:99px;border:1px solid var(--border);background:transparent;color:var(--text2);font-size:12px;cursor:pointer;flex-shrink:0}
.div-tab.on{background:var(--accent);border-color:var(--accent);color:#fff}
.agent-list{flex:1;overflow-y:auto;padding:8px}
.agent-item{display:flex;align-items:center;gap:11px;padding:11px;border-radius:var(--radius);cursor:pointer;margin-bottom:3px;-webkit-tap-highlight-color:transparent;position:relative}
.agent-item:active{background:var(--bg3)}
.agent-item.in-pipeline{border:1px solid var(--purple);background:var(--purple)11}
.agi-emoji{width:42px;height:42px;border-radius:10px;display:flex;align-items:center;justify-content:center;font-size:21px;flex-shrink:0}
.agi-info{min-width:0;flex:1}
.agi-name{font-weight:600;font-size:14px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.agi-div{font-size:11px;color:var(--text2);margin-top:1px}
.agi-desc{font-size:12px;color:var(--text2);margin-top:2px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.pipeline-badge{background:var(--purple);color:#fff;font-size:11px;font-weight:700;width:18px;height:18px;border-radius:50%;display:flex;align-items:center;justify-content:center;flex-shrink:0}
.fav-btn{flex-shrink:0;background:none;border:none;font-size:20px;line-height:1;cursor:pointer;color:var(--text2);padding:4px 4px;transition:transform .12s ease}
.fav-btn.on{color:var(--accent2)}
.fav-btn:active{transform:scale(1.3)}
.list-section{font-size:12px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--text2);padding:12px 6px 6px;display:flex;align-items:center;gap:7px}
.list-section .ls-line{flex:1;height:1px;background:var(--border)}
.msg-actions{display:flex;gap:6px;margin-top:5px;flex-wrap:wrap}
.msg-act{background:var(--bg3);border:1px solid var(--border);color:var(--text2);font-size:11px;padding:3px 9px;border-radius:7px;cursor:pointer}
.msg-act:active{background:var(--accent)22;color:var(--accent2)}

/* ── CHAT SCREEN ── */
.chat-header{display:flex;align-items:center;gap:10px;padding:11px 14px;background:var(--bg2);border-bottom:1px solid var(--border);flex-shrink:0}
.back-btn{background:none;border:none;color:var(--accent2);font-size:24px;cursor:pointer;padding:0;line-height:1}
.ch-emoji{width:38px;height:38px;border-radius:9px;display:flex;align-items:center;justify-content:center;font-size:20px;flex-shrink:0}
.ch-name{font-weight:700;font-size:15px}
.ch-sub{font-size:12px;color:var(--text2)}
.messages{flex:1;overflow-y:auto;padding:13px;display:flex;flex-direction:column;gap:11px}
.msg{display:flex;gap:8px;max-width:92%}
.msg.user{flex-direction:row-reverse;align-self:flex-end}
.msg-av{width:28px;height:28px;border-radius:7px;display:flex;align-items:center;justify-content:center;font-size:13px;flex-shrink:0;background:var(--bg3)}
.msg.user .msg-av{background:var(--accent);color:#fff;font-size:10px;font-weight:700}
.bubble{padding:10px 13px;border-radius:var(--radius);background:var(--bg3);border:1px solid var(--border);font-size:14px;line-height:1.65;word-break:break-word}
.msg.user .bubble{background:var(--accent);border-color:var(--accent);color:#fff}
.msg-meta{font-size:11px;color:var(--text2);margin-top:3px;display:flex;gap:8px;flex-wrap:wrap}
.msg.user .msg-meta{justify-content:flex-end}
.tool-call{background:var(--bg);border:1px solid var(--border);border-radius:8px;padding:8px 12px;font-size:12px;color:var(--text2);margin:4px 0;font-family:monospace}
.tool-call b{color:var(--orange)}
.cursor{animation:blink 1s step-end infinite;color:var(--accent2)}
@keyframes blink{0%,100%{opacity:1}50%{opacity:0}}
.input-row{display:flex;gap:8px;padding:10px 12px calc(10px + env(safe-area-inset-bottom,0px));background:var(--bg2);border-top:1px solid var(--border);flex-shrink:0}
.msg-input{flex:1;background:var(--bg3);border:1px solid var(--border);color:var(--text);padding:10px 12px;border-radius:var(--radius);font-size:15px;font-family:inherit;outline:none;resize:none;min-height:44px;max-height:120px}
.msg-input:focus{border-color:var(--accent)}
.send-btn{background:var(--accent);border:none;color:#fff;padding:0 16px;border-radius:var(--radius);font-size:19px;cursor:pointer;font-weight:700}
.send-btn:disabled{opacity:.4}

/* ── PIPELINE SCREEN ── */
.pipeline-body{flex:1;overflow-y:auto;padding:14px;display:flex;flex-direction:column;gap:12px}
.pipeline-top{background:var(--bg2);border:1px solid var(--border);border-radius:var(--radius);padding:14px}
.pipeline-goal{width:100%;background:var(--bg3);border:1px solid var(--border);color:var(--text);padding:11px 13px;border-radius:var(--radius);font-size:15px;font-family:inherit;outline:none;resize:none;min-height:70px}
.pipeline-goal:focus{border-color:var(--accent)}
.pipeline-queue{display:flex;flex-direction:column;gap:6px;margin:10px 0}
.pq-item{display:flex;align-items:center;gap:10px;background:var(--bg3);border:1px solid var(--border);padding:10px 12px;border-radius:var(--radius)}
.pq-num{width:22px;height:22px;border-radius:50%;background:var(--purple);color:#fff;font-size:11px;font-weight:700;display:flex;align-items:center;justify-content:center;flex-shrink:0}
.pq-emoji{font-size:18px;flex-shrink:0}
.pq-info{flex:1;min-width:0}
.pq-name{font-size:13px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.pq-div{font-size:11px;color:var(--text2)}
.pq-remove{background:none;border:none;color:var(--text2);font-size:18px;cursor:pointer;padding:0 4px;line-height:1}
.pipeline-hint{font-size:12px;color:var(--text2);text-align:center;padding:4px 0}
.run-btn{width:100%;padding:14px;background:var(--purple);border:none;color:#fff;font-size:15px;font-weight:700;border-radius:var(--radius);cursor:pointer}
.run-btn:disabled{opacity:.5}
.share-btn{width:100%;padding:11px;background:var(--bg3);border:1px solid var(--purple)66;color:var(--purple);font-size:14px;font-weight:600;border-radius:var(--radius);cursor:pointer;margin-top:8px}
.share-toast{position:fixed;bottom:80px;left:50%;transform:translateX(-50%) translateY(20px);background:var(--green);color:#fff;padding:10px 22px;border-radius:20px;font-size:13px;font-weight:600;opacity:0;transition:all .3s;pointer-events:none;z-index:9999;white-space:nowrap;box-shadow:0 4px 20px #0008}
.share-toast.show{opacity:1;transform:translateX(-50%) translateY(0)}

/* Pipeline execution */
.exec-screen{flex:1;overflow-y:auto;padding:14px;display:flex;flex-direction:column;gap:10px}
.exec-agent-block{background:var(--bg2);border:1px solid var(--border);border-radius:var(--radius);overflow:hidden}
.exec-agent-header{display:flex;align-items:center;gap:10px;padding:10px 14px;border-bottom:1px solid var(--border)}
.exec-agent-status{margin-left:auto;font-size:12px;color:var(--text2)}
.exec-agent-status.running{color:var(--orange)}
.exec-agent-status.done{color:var(--green)}
.exec-output{padding:12px 14px;font-size:13px;line-height:1.7;color:var(--text);max-height:300px;overflow-y:auto}
.exec-output.collapsed{max-height:80px;overflow:hidden;position:relative}
.expand-btn{width:100%;padding:7px;background:var(--bg3);border:none;border-top:1px solid var(--border);color:var(--text2);font-size:12px;cursor:pointer}
.final-output{background:var(--bg2);border:2px solid var(--green);border-radius:var(--radius);padding:14px}
.final-output h3{color:var(--green);margin-bottom:10px;font-size:15px}
.copy-btn{width:100%;padding:10px;background:var(--green)22;border:1px solid var(--green)44;color:var(--green);font-size:13px;font-weight:600;border-radius:var(--radius);cursor:pointer;margin-top:10px}
.save-btn2{width:100%;padding:10px;background:var(--accent)22;border:1px solid var(--accent)44;color:var(--accent2);font-size:13px;font-weight:600;border-radius:var(--radius);cursor:pointer;margin-top:6px}

/* ── MEMORY SCREEN ── */
.memory-body{flex:1;overflow-y:auto;padding:14px;display:flex;flex-direction:column;gap:10px}
.memory-item{background:var(--bg2);border:1px solid var(--border);border-radius:var(--radius);padding:12px 14px}
.memory-title{font-weight:600;font-size:13px;margin-bottom:4px}
.memory-preview{font-size:12px;color:var(--text2);display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;line-height:1.5}
.memory-meta{font-size:11px;color:var(--text2);margin-top:6px;display:flex;gap:10px}
.memory-actions{display:flex;gap:8px;margin-top:8px}
.mem-btn{flex:1;padding:6px;background:var(--bg3);border:1px solid var(--border);color:var(--text2);font-size:12px;border-radius:7px;cursor:pointer}
.mem-btn.danger{color:var(--red);border-color:var(--red)44}
.empty-memory{text-align:center;padding:40px 20px;color:var(--text2);font-size:13px}

/* ── SETTINGS SCREEN ── */
.settings-body{flex:1;overflow-y:auto;padding:14px;display:flex;flex-direction:column;gap:12px}
.prov-row{display:flex;gap:7px}
.prov-btn{flex:1;padding:9px 5px;border-radius:var(--radius);border:1px solid var(--border);background:var(--bg3);color:var(--text2);font-size:12px;cursor:pointer;text-align:center;line-height:1.4}
.prov-btn.on{border-color:var(--accent);background:var(--accent)22;color:var(--accent2);font-weight:600}
.model-chips{display:flex;flex-wrap:wrap;gap:5px;margin-top:7px}
.mchip{padding:5px 11px;border-radius:var(--radius);border:1px solid var(--border);background:var(--bg3);color:var(--text2);font-size:12px;cursor:pointer}
.mchip.on{border-color:var(--accent);background:var(--accent)22;color:var(--accent2)}

/* Markdown */
pre{background:#0d1117;border:1px solid var(--border);border-radius:7px;padding:10px;overflow-x:auto;margin:6px 0;font-size:12px}
code{font-family:monospace;font-size:12px;background:rgba(0,0,0,.3);padding:1px 4px;border-radius:3px}
pre code{background:none;padding:0}strong{color:var(--text)}
ul,ol{padding-left:18px;margin:4px 0}li{margin-bottom:2px}
h1,h2,h3{margin:8px 0 4px;color:var(--text)}p{margin-bottom:5px}p:last-child{margin-bottom:0}
hr{border:none;border-top:1px solid var(--border);margin:10px 0}

/* ── CODE RUNNER ── */
.code-block-wrap{position:relative;margin:6px 0}
.run-code-btn{position:absolute;top:5px;right:5px;background:var(--green)22;border:1px solid var(--green)44;color:var(--green);font-size:11px;padding:3px 8px;border-radius:5px;cursor:pointer;font-weight:600}
.run-code-btn:disabled{opacity:.5;cursor:not-allowed}
.code-tools{position:absolute;top:5px;right:5px;display:flex;gap:5px;flex-wrap:wrap;justify-content:flex-end;max-width:82%}
.code-tools .run-code-btn{position:static}
.ctool{font-size:11px;padding:3px 8px;border-radius:5px;cursor:pointer;font-weight:600;white-space:nowrap}
.ctool.prev{background:var(--accent)22;border:1px solid var(--accent)44;color:var(--accent2)}
.ctool.save{background:var(--purple)22;border:1px solid var(--purple)44;color:var(--purple)}
.ctool:disabled{opacity:.5;cursor:not-allowed}
.code-output{background:#0a1a0a;border:1px solid var(--green)33;border-top:none;border-radius:0 0 7px 7px;padding:8px 10px;font-size:12px;font-family:monospace;color:var(--green);white-space:pre-wrap;max-height:200px;overflow-y:auto}
.code-output.err{color:var(--red);border-color:var(--red)33}

/* ── MIC + ATTACH BUTTONS ── */
.mic-btn{background:var(--bg3);border:1px solid var(--border);color:var(--text2);width:44px;border-radius:var(--radius);font-size:19px;cursor:pointer;flex-shrink:0;display:flex;align-items:center;justify-content:center}
.mic-btn.on{background:var(--red)22;border-color:var(--red);color:var(--red);animation:pulse 1s infinite}
@keyframes pulse{0%,100%{opacity:1}50%{opacity:.5}}
.attach-chip{display:flex;align-items:center;gap:8px;margin:0 12px 8px;padding:7px 11px;background:var(--accent)11;border:1px solid var(--accent)44;border-radius:8px;font-size:12px;color:var(--accent2)}
.attach-chip .ac-name{flex:1;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.attach-chip .ac-x{background:none;border:none;color:var(--text2);font-size:16px;cursor:pointer;padding:0 2px;line-height:1}

/* ── DEBATE SCREEN ── */
.debate-body{flex:1;overflow-y:auto;padding:14px;display:flex;flex-direction:column;gap:12px}
.debate-select{width:100%;background:var(--bg3);border:1px solid var(--border);color:var(--text);padding:9px 12px;border-radius:var(--radius);font-size:13px;outline:none}
.debate-select:focus{border-color:var(--accent)}
.debate-round-block{background:var(--bg2);border:1px solid var(--border);border-radius:var(--radius);overflow:hidden}
.debate-round-header{padding:9px 14px;display:flex;align-items:center;gap:8px;border-bottom:1px solid var(--border);font-weight:600;font-size:13px}
.debate-round-body{padding:12px 14px;font-size:13px;line-height:1.7}
.role-badge{padding:2px 9px;border-radius:99px;font-size:11px;font-weight:700}
.role-a{background:var(--accent)22;color:var(--accent2);border:1px solid var(--accent)44}
.role-b{background:var(--orange)22;color:var(--orange);border:1px solid var(--orange)44}

/* ── BENCHMARK SCREEN ── */
.bench-body{flex:1;overflow-y:auto;padding:14px;display:flex;flex-direction:column;gap:10px}
.bench-item{background:var(--bg2);border:1px solid var(--border);border-radius:var(--radius);padding:11px 13px}
.bench-item-hdr{display:flex;align-items:center;gap:8px;margin-bottom:5px}
.bench-score{margin-left:auto;font-size:13px;font-weight:700;color:var(--accent2)}
.bench-bar{height:4px;background:var(--bg3);border-radius:2px;overflow:hidden;margin-top:7px}
.bench-bar-fill{height:100%;background:var(--accent);border-radius:2px;transition:width .6s ease}
.bench-winner{border-color:var(--green)!important;background:var(--green)08!important}

/* ── CREATOR SCREEN ── */
.creator-body{flex:1;overflow-y:auto;padding:14px;display:flex;flex-direction:column;gap:11px}
.creator-field{display:flex;flex-direction:column;gap:4px}
.creator-label{font-size:11px;color:var(--text2);text-transform:uppercase;letter-spacing:.05em}
.creator-input{background:var(--bg3);border:1px solid var(--border);color:var(--text);padding:10px 12px;border-radius:var(--radius);font-size:14px;outline:none;font-family:inherit;width:100%}
.creator-input:focus{border-color:var(--accent)}
.creator-select{background:var(--bg3);border:1px solid var(--border);color:var(--text);padding:10px 12px;border-radius:var(--radius);font-size:14px;outline:none;width:100%;cursor:pointer}
.creator-ta{background:var(--bg3);border:1px solid var(--border);color:var(--text);padding:10px 12px;border-radius:var(--radius);font-size:14px;outline:none;resize:vertical;font-family:inherit;width:100%;min-height:90px;line-height:1.5}
.creator-ta:focus,.creator-select:focus{border-color:var(--accent)}
.creator-row{display:flex;gap:8px}
.creator-row .creator-field{flex:1}
.creator-preview{background:var(--bg2);border:1px solid var(--border);border-radius:var(--radius);padding:12px;font-size:12px;color:var(--text2);white-space:pre-wrap;font-family:monospace;max-height:200px;overflow-y:auto;display:none}
.my-agent-item{display:flex;align-items:center;gap:11px;padding:11px;border-radius:var(--radius);cursor:pointer;margin-bottom:3px;background:var(--bg2);border:1px solid var(--border)88;position:relative}
.my-agent-del{background:none;border:none;color:var(--red);font-size:16px;padding:4px 6px;cursor:pointer;opacity:.7;flex-shrink:0}
.my-agent-del:hover{opacity:1}

/* ── Cross-device polish ───────────────────────────────────────────────────── */
/* Smooth, contained scrolling on the two scroll regions (no rubber-band bleed) */
.agent-list,.messages{-webkit-overflow-scrolling:touch;overscroll-behavior:contain}
/* On laptop/desktop, frame the mobile-width app as a centered card instead of
   stretching the phone UI across the whole screen. */
@media (min-width:560px){
  html,body{background:#0a0c12}
  .app{border-inline:1px solid var(--border);box-shadow:0 0 60px -20px #000}
}
/* Respect users who ask the OS to reduce motion (typewriter/cursor/transitions) */
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important;scroll-behavior:auto!important}
}
