:root {
  --bg: #f4f2ee;
  --surface: #ffffff;
  --surface-2: #f9f8f5;
  --ink: #16191f;
  --ink-2: #4b5260;
  --ink-3: #7c8391;
  --line: #e3e0d9;
  --accent: #14213d;
  --accent-ink: #ffffff;
  --accent-soft: #e6eaf2;
  --gold: #c8962e;
  --ok: #2f7d4f;
  --ok-soft: #e3f1e8;
  --warn: #a8661b;
  --warn-soft: #f8ecd9;
  --bad: #b23a3a;
  --bad-soft: #f7e2e2;
  --radius: 14px;
  --shadow: 0 1px 2px rgba(20, 25, 35, .05), 0 4px 16px rgba(20, 25, 35, .05);
  --font: -apple-system, BlinkMacSystemFont, "SF Pro Text", "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
  --mono: ui-monospace, "SF Mono", Menlo, Consolas, monospace;
  color-scheme: light;
}
@media (prefers-color-scheme: dark) {
  :root {
    --bg: #0d1117; --surface: #161b22; --surface-2: #1c222b; --ink: #e8eaed; --ink-2: #b4bac4; --ink-3: #8a919c;
    --line: #2a313b; --accent: #9db4e0; --accent-ink: #0d1117; --accent-soft: #1f2a3d; --gold: #e0b45a;
    --ok: #6cc28f; --ok-soft: #173024; --warn: #e3a557; --warn-soft: #33260f; --bad: #ec8a8a; --bad-soft: #3a1b1b;
    --shadow: 0 1px 2px rgba(0,0,0,.3);
    color-scheme: dark;
  }
}

* { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; }
body {
  margin: 0; background: var(--bg); color: var(--ink); font: 15px/1.5 var(--font);
  padding-bottom: env(safe-area-inset-bottom);
}
a { color: var(--accent); text-decoration: none; }
h1, h2, h3 { line-height: 1.2; margin: 0 0 .5em; letter-spacing: -.01em; }
h1 { font-size: 1.6rem; }
h2 { font-size: 1.15rem; }
h3 { font-size: 1rem; }
p { margin: 0 0 .75em; }
.muted { color: var(--ink-3); }
.small { font-size: .85rem; }

/* ---------- Barre du haut ---------- */
.topbar {
  position: sticky; top: 0; z-index: 10;
  display: flex; align-items: center; justify-content: space-between; gap: 12px;
  padding: calc(10px + env(safe-area-inset-top)) 16px 10px;
  background: color-mix(in srgb, var(--bg) 88%, transparent);
  backdrop-filter: saturate(1.4) blur(12px); -webkit-backdrop-filter: saturate(1.4) blur(12px);
  border-bottom: 1px solid var(--line);
}
.brand { font-weight: 700; color: var(--ink); display: flex; align-items: center; gap: 8px; }
.brand-mark { color: var(--gold); }
.topbar nav { display: flex; gap: 4px; }
.topbar nav a { padding: 6px 10px; border-radius: 999px; color: var(--ink-2); font-size: .92rem; }
.topbar nav a.active { background: var(--accent-soft); color: var(--accent); font-weight: 600; }

.view { max-width: 980px; margin: 0 auto; padding: 18px 16px 60px; }

/* ---------- Composants ---------- */
.card { background: var(--surface); border: 1px solid var(--line); border-radius: var(--radius); padding: 18px; box-shadow: var(--shadow); margin-bottom: 14px; }
.card.flat { box-shadow: none; }
.row { display: flex; gap: 12px; align-items: center; flex-wrap: wrap; }
.row.between { justify-content: space-between; }
.grid2 { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.grid3 { display: grid; grid-template-columns: repeat(3, 1fr); gap: 12px; }
@media (max-width: 680px) { .grid2, .grid3 { grid-template-columns: 1fr; } }

.btn {
  appearance: none; border: 1px solid var(--line); background: var(--surface); color: var(--ink);
  font: inherit; font-weight: 600; font-size: .92rem; padding: 10px 16px; border-radius: 10px; cursor: pointer;
  display: inline-flex; align-items: center; gap: 6px; min-height: 42px; transition: transform .05s, background .15s;
}
.btn:active { transform: scale(.98); }
.btn.primary { background: var(--accent); color: var(--accent-ink); border-color: var(--accent); }
.btn.ghost { background: transparent; }
.btn.danger { color: var(--bad); }
.btn.sm { min-height: 34px; padding: 6px 12px; font-size: .85rem; }
.btn[disabled] { opacity: .5; cursor: not-allowed; }

label { display: block; font-weight: 600; font-size: .86rem; color: var(--ink-2); margin: 10px 0 5px; }
input, textarea, select {
  width: 100%; font: inherit; font-size: 16px; /* évite le zoom iOS */ color: var(--ink);
  background: var(--surface-2); border: 1px solid var(--line); border-radius: 10px; padding: 10px 12px;
}
input:focus, textarea:focus, select:focus { outline: 2px solid color-mix(in srgb, var(--accent) 40%, transparent); outline-offset: 1px; }
textarea { min-height: 110px; resize: vertical; line-height: 1.45; }
textarea.tall { min-height: 260px; }
textarea.mono { font-family: var(--mono); font-size: 13px; }
.check { display: flex; gap: 8px; align-items: center; font-weight: 500; }
.check input { width: auto; }

.badge { display: inline-block; font-size: .75rem; font-weight: 700; padding: 3px 9px; border-radius: 999px; background: var(--surface-2); color: var(--ink-2); border: 1px solid var(--line); white-space: nowrap; }
.badge.ok { background: var(--ok-soft); color: var(--ok); border-color: transparent; }
.badge.warn { background: var(--warn-soft); color: var(--warn); border-color: transparent; }
.badge.bad { background: var(--bad-soft); color: var(--bad); border-color: transparent; }
.badge.info { background: var(--accent-soft); color: var(--accent); border-color: transparent; }

.chips { display: flex; flex-wrap: wrap; gap: 6px; }
.chip { font-size: .82rem; padding: 4px 10px; border-radius: 999px; background: var(--surface-2); border: 1px solid var(--line); }
.chip.ok { background: var(--ok-soft); border-color: transparent; color: var(--ok); }
.chip.miss { background: var(--bad-soft); border-color: transparent; color: var(--bad); }
.chip.req::after { content: " ★"; color: var(--gold); }

.notice { border-radius: 12px; padding: 12px 14px; margin-bottom: 14px; font-size: .92rem; }
.notice.warn { background: var(--warn-soft); color: var(--warn); }
.notice.bad { background: var(--bad-soft); color: var(--bad); }
.notice.info { background: var(--accent-soft); color: var(--accent); }

/* ---------- Liste des candidatures ---------- */
.app-item { display: grid; grid-template-columns: 1fr auto; gap: 6px 12px; align-items: center; padding: 14px 16px; border-bottom: 1px solid var(--line); color: var(--ink); }
.app-item:last-child { border-bottom: 0; }
.app-item .t { font-weight: 650; }
.app-item .s { color: var(--ink-3); font-size: .85rem; }
.list { padding: 0; overflow: hidden; }
.empty { text-align: center; padding: 40px 16px; color: var(--ink-3); }

/* ---------- Scores ---------- */
.score { display: flex; flex-direction: column; gap: 6px; }
.score .v { font-size: 2rem; font-weight: 750; letter-spacing: -.02em; font-variant-numeric: tabular-nums; }
.score .l { font-size: .8rem; color: var(--ink-3); font-weight: 600; text-transform: uppercase; letter-spacing: .04em; }
.bar { height: 6px; border-radius: 99px; background: var(--line); overflow: hidden; }
.bar > i { display: block; height: 100%; border-radius: 99px; background: var(--accent); }
.bar.ok > i { background: var(--ok); } .bar.warn > i { background: var(--warn); } .bar.bad > i { background: var(--bad); }

/* ---------- Progression ---------- */
.steps { display: grid; gap: 8px; }
.step { display: flex; align-items: center; gap: 10px; font-size: .95rem; }
.step .dot { width: 22px; height: 22px; border-radius: 50%; border: 2px solid var(--line); display: grid; place-items: center; font-size: 12px; flex: none; }
.step.done .dot { background: var(--ok); border-color: var(--ok); color: #fff; }
.step.running .dot { border-color: var(--accent); border-top-color: transparent; animation: spin .8s linear infinite; }
.step.error .dot { background: var(--bad); border-color: var(--bad); color: #fff; }
@keyframes spin { to { transform: rotate(360deg); } }

/* ---------- Onglets ---------- */
.tabs { display: flex; gap: 4px; overflow-x: auto; scrollbar-width: none; margin: 4px -16px 14px; padding: 0 16px; -webkit-overflow-scrolling: touch; }
.tabs::-webkit-scrollbar { display: none; }
.tab { flex: none; padding: 8px 13px; border-radius: 999px; border: 1px solid var(--line); background: var(--surface); color: var(--ink-2); font-weight: 600; font-size: .88rem; cursor: pointer; }
.tab.active { background: var(--accent); color: var(--accent-ink); border-color: var(--accent); }

.kv { display: grid; grid-template-columns: 140px 1fr; gap: 6px 12px; font-size: .93rem; }
.kv dt { color: var(--ink-3); }
.kv dd { margin: 0; }
@media (max-width: 560px) { .kv { grid-template-columns: 1fr; } .kv dt { margin-top: 6px; } }

ul.clean { margin: 0; padding-left: 18px; }
ul.clean li { margin-bottom: 4px; }
.qa { border-top: 1px solid var(--line); padding: 12px 0; }
.qa:first-child { border-top: 0; }
.qa summary { font-weight: 650; cursor: pointer; }
.pre { white-space: pre-wrap; }

table.skills { width: 100%; border-collapse: collapse; font-size: .9rem; }
table.skills td, table.skills th { padding: 8px 6px; border-bottom: 1px solid var(--line); text-align: left; vertical-align: top; }
table.skills th { color: var(--ink-3); font-weight: 600; font-size: .78rem; text-transform: uppercase; }

.exp-edit { border: 1px solid var(--line); border-radius: 12px; padding: 12px; margin-bottom: 10px; background: var(--surface-2); }
.sticky-actions { display: flex; gap: 8px; justify-content: flex-end; flex-wrap: wrap; margin-top: 16px; }
@media (max-width: 560px) { .sticky-actions .btn { width: 100%; justify-content: center; } }

/* Trois scores côte à côte, même sur iPhone */
.scores3 { display: grid; grid-template-columns: repeat(3, 1fr); gap: 10px; margin-bottom: 14px; }
.scores3 .card { margin: 0; }
@media (max-width: 560px) {
  .scores3 .card { padding: 12px; }
  .scores3 .score .v { font-size: 1.5rem; }
  .scores3 .score .l { font-size: .68rem; min-height: 2.2em; }
  .scores3 .score .small { font-size: .7rem; line-height: 1.3; }
}

.toast {
  position: fixed; left: 50%; bottom: calc(22px + env(safe-area-inset-bottom)); transform: translateX(-50%) translateY(20px);
  background: var(--ink); color: var(--bg); padding: 10px 16px; border-radius: 10px; font-weight: 600; font-size: .9rem;
  opacity: 0; pointer-events: none; transition: all .2s; max-width: calc(100% - 32px); z-index: 50;
}
.toast.show { opacity: 1; transform: translateX(-50%) translateY(0); }
.toast.err { background: var(--bad); color: #fff; }

.login { max-width: 380px; margin: 12vh auto 0; }
.login .brand { font-size: 1.3rem; margin-bottom: 18px; }
hr { border: 0; border-top: 1px solid var(--line); margin: 16px 0; }


/* ForgeX JOB — reuse of qualified ForgeX Observatory Functional Green charter.
   Source: ForgeX/02-Code/observatory/ui/tokens.css. No new design system. */
:root {
  --bg: #0c0c0e;
  --surface: #1a1a1e;
  --surface-2: #26262b;
  --ink: #e2e2e7;
  --ink-2: #b8b8c1;
  --ink-3: #9a9aa6;
  --line: #33333a;
  --accent: #c8954d;
  --accent-ink: #0c0c0e;
  --accent-soft: #30271e;
  --gold: #c8954d;
  --ok: #85b885;
  --ok-soft: #203225;
  --warn: #e1b455;
  --warn-soft: #352b19;
  --bad: #e17a7a;
  --bad-soft: #392323;
  --radius: 8px;
  --shadow: 0 8px 28px rgba(0,0,0,.18);
  color-scheme: dark;
}
@media (prefers-color-scheme: dark) {
  :root {
    --bg: #0c0c0e; --surface: #1a1a1e; --surface-2: #26262b;
    --ink: #e2e2e7; --ink-2: #b8b8c1; --ink-3: #9a9aa6;
    --line: #33333a; --accent: #c8954d; --accent-ink: #0c0c0e;
    --accent-soft: #30271e; --gold: #c8954d;
    --ok: #85b885; --ok-soft: #203225;
    --warn: #e1b455; --warn-soft: #352b19;
    --bad: #e17a7a; --bad-soft: #392323;
    color-scheme: dark;
  }
}
:focus-visible { outline: 2px solid #c8954d; outline-offset: 3px; }
.topbar { background: rgba(26,26,30,.94); border-bottom: 1px solid var(--line); padding-inline: clamp(16px,3vw,40px); }
.brand { letter-spacing: .015em; font-size: 1rem; }
.brand-mark { font-size: 1.25rem; }
.view { max-width: 1200px; padding: 28px clamp(16px,3vw,36px) 72px; }
.card { border-radius: 10px; padding: clamp(18px,2.4vw,28px); box-shadow: var(--shadow); }
.btn { border-radius: 7px; transition: background .15s, border-color .15s, transform .1s; }
.btn.primary:hover { background: #dfac68; border-color: #dfac68; }
input, textarea, select { border-radius: 7px; }
h1 { font-size: clamp(1.55rem,2.8vw,2.15rem); letter-spacing: -.035em; }
h2 { letter-spacing: -.02em; }
@media (prefers-reduced-motion: reduce) { *, *::before, *::after { transition-duration: .01ms !important; animation-duration: .01ms !important; } }

/* ForgeX JOB — cockpit parity: tokens observed from the live Antares-X 17760 surface. */
:root {
  --bg:#0B0F14; --surface:#171E27; --surface-2:#1C242F;
  --ink:#E6ECF3; --ink-2:#A6B2C2; --ink-3:#8593A5;
  --line:#2E3742; --accent:#3C8DFF; --accent-ink:#0B0E13;
  --accent-soft:rgba(60,141,255,.13); --gold:#B88A43;
  --ok:#3FBF7F; --ok-soft:#153529; --warn:#F2A23A;
  --warn-soft:#392A16; --bad:#E35D6A; --bad-soft:#381F29;
  --radius:10px; --shadow:0 1px 0 rgba(255,255,255,.03) inset,0 10px 30px -18px rgba(0,0,0,.7);
  color-scheme:dark;
}
@media (prefers-color-scheme:dark) {
 :root { --bg:#0B0F14; --surface:#171E27; --surface-2:#1C242F; --ink:#E6ECF3; --ink-2:#A6B2C2; --ink-3:#8593A5; --line:#2E3742; --accent:#3C8DFF; --accent-ink:#0B0E13; --accent-soft:rgba(60,141,255,.13); --gold:#B88A43; --ok:#3FBF7F; --ok-soft:#153529; --warn:#F2A23A; --warn-soft:#392A16; --bad:#E35D6A; --bad-soft:#381F29; color-scheme:dark; }
}
body { background:var(--bg); font-size:14px; }
.topbar { height:58px; padding:0 20px; background:#171E27; border-bottom:1px solid var(--line); position:sticky; top:0; z-index:20; }
.topbar[hidden], .workspace-sidebar[hidden], .activity-rail[hidden] { display:none!important; }
.brand { gap:10px; font-size:14px; }
.forge-mark { font-size:24px; color:var(--gold); }
.forge-word { font-size:18px; font-weight:850; letter-spacing:.06em; color:#E6ECF3; }
.forge-x { color:var(--accent); }
.brand-divider { width:1px; height:27px; background:var(--line); margin:0 6px; }
.product-name { font-weight:750; letter-spacing:.13em; }
.product-name small { display:block; font-size:9px; letter-spacing:.16em; color:var(--ink-3); font-weight:500; }
.topbar-meta { display:flex; align-items:center; gap:16px; }
.environment-pill { border:1px solid #29614d; color:var(--ok); border-radius:20px; padding:4px 10px; font:11px var(--mono); }
.cockpit-link { border:1px solid var(--line); padding:6px 12px; border-radius:7px; color:var(--ink-2); }
.workspace-shell { display:grid; grid-template-columns:272px minmax(0,1fr) 310px; min-height:calc(100vh - 58px); }
.workspace-shell.login-shell { display:block; }
.workspace-sidebar { position:sticky; top:58px; height:calc(100vh - 58px); background:#171E27; border-right:1px solid var(--line); padding:16px 12px; display:flex; flex-direction:column; gap:18px; }
.workspace-sidebar nav { display:grid; gap:6px; }
.workspace-sidebar nav a { display:block; padding:13px 14px; color:var(--ink-2); border-radius:9px; border:1px solid transparent; }
.workspace-sidebar nav a:hover,.workspace-sidebar nav a.active { background:rgba(60,141,255,.13); color:var(--ink); border-color:rgba(60,141,255,.42); }
.new-action { display:flex; justify-content:center; width:100%; padding:13px 8px; background:linear-gradient(180deg,#3F95FF,#276CCD)!important; color:white!important; border:1px solid #569eff!important; box-shadow:0 3px 14px rgba(60,141,255,.25); }
.sidebar-heading { font:10px var(--mono); letter-spacing:.15em; color:var(--ink-3); margin:12px 12px 0; }
.sidebar-bottom { margin-top:auto; padding:14px 10px; font:12px/1.9 var(--mono); color:var(--ink-2); border-top:1px solid var(--line); }
.status-dot { display:inline-block; width:8px; height:8px; border-radius:50%; background:var(--ok); }
.sidebar-note { font-size:10px; color:var(--ink-3); }
.view { width:100%; max-width:1080px; padding:28px clamp(18px,3vw,38px) 70px; min-width:0; }
.activity-rail { background:#151C25; border-left:1px solid var(--line); padding:0 14px 24px; }
.rail-heading { padding:18px 5px; font-weight:650; border-bottom:1px solid var(--line); }
.rail-card { margin-top:24px; border:1px solid var(--line); background:var(--surface); border-radius:16px; padding:18px; }
.rail-kicker { font:11px var(--mono); letter-spacing:.1em; color:var(--ink-3); }
.rail-card h2 { margin-top:18px; font-size:17px; }
.rail-card p { color:var(--ink-2); font-size:13px; line-height:1.7; }
.rail-rule { border-top:1px solid var(--line); margin:18px 0; }
.rail-step { padding:9px 0; display:flex; gap:12px; align-items:center; color:var(--ink-2); font-size:13px; }
.rail-step span { color:var(--ok); }
.rail-step:nth-last-of-type(1) span { color:var(--warn); }
.rail-cta { display:block; text-align:center; border:1px solid rgba(60,141,255,.42); background:var(--accent-soft); padding:11px; border-radius:8px; color:#8fbcff; font-weight:600; }
.rail-card .rail-caption { font-size:11px; }
.card { background:var(--surface); border-color:var(--line); }
.btn.primary { background:var(--accent); border-color:var(--accent); color:var(--accent-ink); }
.btn.primary:hover { background:#62a4ff; border-color:#62a4ff; }
:focus-visible { outline:2px solid var(--accent); outline-offset:2px; }
@media(max-width:1150px) { .workspace-shell { grid-template-columns:220px minmax(0,1fr); } .activity-rail { display:none; } }
@media(max-width:700px) { .topbar { padding:0 12px; } .forge-word { font-size:14px; } .product-name small,.environment-pill { display:none; } .workspace-shell { display:block; } .workspace-sidebar { position:static; height:auto; padding:10px; gap:8px; } .workspace-sidebar nav { display:flex; overflow-x:auto; } .workspace-sidebar nav a { white-space:nowrap; padding:9px; } .sidebar-heading,.sidebar-bottom { display:none; } .new-action { min-height:38px; } .view { padding:18px 12px 60px; } .topbar-meta { gap:6px; } .cockpit-link { font-size:11px; padding:6px; } }

/* Official brand assets served from the qualified local Antares cockpit. */
.topbar .brand {display:flex;align-items:center;gap:12px}
.official-forgex-logo {width:152px;height:auto;max-height:42px;object-fit:contain;display:block}
.topbar .brand-divider {height:28px;flex:0 0 1px}
@media(max-width:700px){.official-forgex-logo{width:116px}}

/* Bottom composer — text first, opt-in browser speech recognition. */
.workspace-shell {position:relative; padding-bottom:105px}
.job-composer {position:fixed; bottom:0; left:272px; right:310px; z-index:25; background:#151C25; border-top:1px solid var(--line); padding:10px 20px 6px; display:flex; align-items:center; gap:10px; flex-wrap:wrap; box-shadow:0 -8px 25px rgba(0,0,0,.2)}
.job-composer[hidden]{display:none!important}
.job-composer textarea {flex:1 1 240px; min-height:44px; max-height:90px; resize:vertical; padding:11px 13px; margin:0; background:#1C242F; color:var(--ink); border:1px solid var(--line); font:inherit}
.job-composer button {height:42px; min-width:46px; border-radius:9px; border:1px solid var(--line); background:#222B37; color:var(--ink); font-size:19px; cursor:pointer}
.job-composer #job-composer-send {background:var(--accent); color:#08111e}
.job-composer button.listening {border-color:#E35D6A; background:#482530}
.job-composer button:disabled {opacity:.4;cursor:not-allowed}
.composer-status {flex:1 0 100%; color:var(--ink-3); font-size:11px; padding-left:4px}
.sr-only {position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
@media(max-width:1150px){.job-composer{left:220px;right:0}}
@media(max-width:700px){.job-composer{left:0;right:0;padding:8px 10px}.job-composer textarea{flex-basis:150px}.workspace-shell{padding-bottom:125px}}

/* Native cockpit conversation embedded in JOB: no clipboard relay. */
.workspace-shell {padding-bottom:70px}
.job-conversation-dock {position:fixed;bottom:0;left:272px;right:310px;z-index:30;background:#151C25;border-top:1px solid var(--line)}
.job-conversation-dock[hidden],.job-conversation-panel[hidden]{display:none!important}
.conversation-toggle{width:100%;min-height:55px;text-align:left;padding:12px 22px;background:#171E27;border:0;color:#d8e9ff;font:600 14px system-ui;cursor:pointer}
.conversation-toggle span{float:right;font-size:20px}
.job-conversation-panel{height:min(72vh,740px);display:flex;flex-direction:column;background:#0b0f14;border:1px solid #3c8dff}
.conversation-panel-header{height:44px;flex-shrink:0;display:flex;align-items:center;gap:12px;padding:0 14px;color:#e6ecf3;background:#171e27}
.conversation-panel-header span{font-size:11px;color:#a6b2c2}
.conversation-panel-header button{margin-left:auto;border:0;background:transparent;color:#e6ecf3;cursor:pointer;font-size:17px}
@media(max-width:1150px){.job-conversation-dock{left:220px;right:0}}
@media(max-width:700px){.job-conversation-dock{left:0;right:0}.job-conversation-panel{height:78vh}}

/* Assistant ForgeX Job natif : fil du dossier + composer unique clavier/dictée. */
button.rail-cta{width:100%;cursor:pointer;font:inherit;font-weight:600}
.job-conversation-panel{background:var(--bg);border-color:var(--accent)}
.conversation-panel-header span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.assistant-disclosure{margin:0;padding:8px 14px;font-size:11px;line-height:1.5;color:var(--ink-3);border-bottom:1px solid var(--line);background:var(--surface)}
.assistant-log{flex:1;overflow-y:auto;padding:14px;display:flex;flex-direction:column;gap:10px;min-height:0}
.assistant-msg{max-width:min(720px,92%);padding:10px 12px;border-radius:10px;border:1px solid var(--line);background:var(--surface)}
.assistant-msg.user{align-self:flex-end;background:var(--accent-soft);border-color:color-mix(in srgb,var(--accent) 40%,transparent)}
.assistant-msg.pending{opacity:.75;font-style:italic}
.assistant-msg.error{border-color:var(--bad);background:var(--bad-soft)}
.assistant-who{font:600 11px var(--font);color:var(--ink-3);margin-bottom:4px}
.assistant-text{white-space:pre-wrap;overflow-wrap:anywhere;color:var(--ink)}
.assistant-meta{margin-top:6px;font:10px var(--mono);color:var(--ink-3);overflow-wrap:anywhere}
.assistant-composer{flex-shrink:0;padding:10px 14px 8px;border-top:1px solid var(--line);background:var(--surface)}
.assistant-composer textarea{width:100%;min-height:70px;max-height:200px;margin:0;font:inherit}
.assistant-composer textarea[readonly]{outline:2px solid var(--warn);outline-offset:1px}
.assistant-actions{display:flex;gap:8px;align-items:center;justify-content:flex-end;flex-wrap:wrap;margin-top:8px}
.assistant-actions select{width:auto;min-height:34px;padding:4px 8px;font-size:.85rem}
.assistant-actions #assistant-mic[aria-pressed="true"]{border-color:var(--bad);color:var(--bad)}
.assistant-status{margin:6px 0 0;min-height:1.2em;font-size:11px;color:var(--ink-3)}
@media(max-width:700px){.assistant-actions{justify-content:stretch}.assistant-actions .btn{flex:1 1 auto}.assistant-msg{max-width:100%}}

/* ForgeX JOB — cockpit dual theme, reuse existing official brand assets */
.theme-toggle{border:1px solid var(--line);background:var(--surface-2);color:var(--ink);border-radius:8px;padding:7px 12px;cursor:pointer;margin-left:12px;font:inherit}
html[data-theme=light]{--bg:#f3f6fa;--surface:#fff;--surface-2:#eaf0f7;--ink:#172231;--ink-2:#42566d;--ink-3:#61748a;--line:#cbd6e3;--accent:#1766c5;--accent-ink:#fff;--accent-soft:#e2efff;--gold:#956626;--ok:#187444;--ok-soft:#ddf3e7;--warn:#966010;--warn-soft:#fff1d7;--bad:#a52c42;--bad-soft:#fce5e9;color-scheme:light}
html[data-theme=light] body,html[data-theme=light] .workspace-shell{background:var(--bg);color:var(--ink)}
html[data-theme=light] .topbar,html[data-theme=light] .workspace-sidebar,html[data-theme=light] .activity-rail{background:#fff;color:var(--ink);border-color:var(--line)}
html[data-theme=light] .forge-word,html[data-theme=light] .product-name,html[data-theme=light] .sidebar-heading{color:var(--ink)}
html[data-theme=light] .card,html[data-theme=light] .rail-card,html[data-theme=light] .view .panel{background:var(--surface);color:var(--ink);border-color:var(--line)}
