/* EO console — Quiet Knowledge Desk: paper/ink surfaces, restrained accent, governed density. */
:root{
  --canvas:#F7F7F3; --surface:#FFFFFC; --surface2:#F1F0EA; --surface3:#E8E6DE;
  --ink:#11110F; --ink2:#474843; --ink3:#666861; --faint:#85877F;
  --accent:#3E5BC6; --accent2:#324AA0; --accentT:#ECEEF7; --accentT2:#DFE3F3; --accentRGB:62,91,198;
  --green:#168657; --greenT:#E8F5EE;
  --amber:#B66A00; --amberT:#F8EBD7;
  --red:#C93F3F; --redT:#F8E7E7;
  --line:rgba(17,17,15,.10); --line2:rgba(17,17,15,.18);
  --sans:'Inter',system-ui,-apple-system,sans-serif;
  --mono:'JetBrains Mono',ui-monospace,monospace;
  --r-xs:4px; --r-sm:8px; --r-md:12px; --r-lg:16px; --r-full:9999px;
  --sh-sm:0 1px 1px rgba(17,17,15,.04);
  --sh:0 1px 2px rgba(17,17,15,.04),0 14px 28px -24px rgba(17,17,15,.22);
  --sh-lg:0 8px 32px -24px rgba(17,17,15,.36);
}
*{box-sizing:border-box}
html,body{margin:0;padding:0}
body{background:var(--canvas);font-family:var(--sans);color:var(--ink);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;font-size:14px;font-feature-settings:"ss01";font-variant-numeric:tabular-nums}
::selection{background:rgba(var(--accentRGB),.16)}
::-webkit-scrollbar{width:11px;height:11px}
::-webkit-scrollbar-thumb{background:rgba(17,17,15,.16);border-radius:99px;border:3px solid var(--canvas)}
::-webkit-scrollbar-track{background:transparent}
input,textarea,button,select{font-family:inherit}
button{cursor:pointer}
button:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible{outline:2px solid rgba(var(--accentRGB),.35);outline-offset:2px}
@keyframes eoPulse{0%,100%{opacity:1}50%{opacity:.3}}
@keyframes eoModal{from{opacity:0;transform:translateY(14px) scale(.98)}to{opacity:1;transform:none}}
@keyframes eoToast{from{opacity:0;transform:translate(-50%,14px)}to{opacity:1;transform:translate(-50%,0)}}
/* Respect reduced-motion: stop the infinite status/ticker pulses, modal/toast
   entrances, and hover/sidebar transitions for users who opt out of motion. */
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important;scroll-behavior:auto!important}
}

svg{display:block}
.icon{width:18px;height:18px;display:inline-flex;align-items:center;justify-content:center;flex-shrink:0}
.icon svg{width:18px;height:18px}
/* vendored brand logos (<img>) size to match the line-mark in each container */
.brand-logo{object-fit:contain;display:block;width:22px;height:22px}
.icon .brand-logo,.pick-card .pc-icon .brand-logo{width:18px;height:18px}
.sel-head .sel-tile .brand-logo{width:24px;height:24px}

/* ===================== flat split layout ===================== */
.app{display:flex;min-height:100vh;align-items:stretch;background:var(--canvas)}

/* sidebar — flush, separated by a hairline (no floating card) */
.sidebar{width:236px;flex-shrink:0;background:var(--canvas);border-right:1px solid var(--line);padding:16px;position:sticky;top:0;height:100vh;display:flex;flex-direction:column;transition:width .24s cubic-bezier(.2,.7,.2,1),padding .24s cubic-bezier(.2,.7,.2,1)}
.sb-toggle-row{display:flex;align-items:center;justify-content:flex-end;padding:2px 2px 0}
.sb-toggle{width:32px;height:32px;border-radius:var(--r-sm);border:1px solid var(--line);background:var(--surface);color:var(--ink2);font-size:15px;flex-shrink:0}
.nav{margin-top:18px;display:flex;flex-direction:column;gap:4px}
.nav button{display:flex;align-items:center;gap:10px;width:100%;text-align:left;border:none;border-radius:var(--r-sm);padding:10px 12px;font-size:14px;font-weight:500;background:transparent;color:var(--ink2)}
.nav button .icon{width:22px}
.nav button.on{background:var(--ink);color:var(--surface);font-weight:600}
.nav button span.lbl{white-space:nowrap}
.sb-user{margin-top:auto;background:var(--surface);border:1px solid var(--line);border-radius:var(--r-md);padding:10px 11px;display:flex;align-items:center;gap:10px}
/* the avatar+name is the real (keyboard-focusable) Settings trigger; sign-out is a
   sibling button so we never nest interactive controls */
.sb-user-main{flex:1;min-width:0;display:flex;align-items:center;gap:10px;background:none;border:none;padding:0;cursor:pointer;color:inherit;text-align:left;font:inherit}
.sb-user-main:focus-visible{outline:2px solid rgba(var(--accentRGB),.35);outline-offset:3px;border-radius:var(--r-sm)}
/* active "you are here" state when on the Settings screen — mirrors nav active */
.sb-user.on{background:var(--ink);border-color:var(--ink)}
.sb-user.on .nm,.sb-user.on .role{color:var(--surface)}
.sb-user.on .sb-avatar{background:var(--surface);color:var(--ink)}
.sb-avatar{width:32px;height:32px;border-radius:var(--r-full);background:var(--surface3);color:var(--ink2);display:flex;align-items:center;justify-content:center;font-family:var(--mono);font-size:10.5px;font-weight:600;flex-shrink:0}
.sb-user-text{line-height:1.25;min-width:0;flex:1;display:flex;flex-direction:column}
.sb-user-text .nm{font-weight:600;font-size:13px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.sb-user-text .role{font-size:11.5px;color:var(--ink3)}
.sb-signout{flex-shrink:0;width:26px;height:26px;border-radius:var(--r-xs);border:none;background:var(--surface2);color:var(--ink3);font-size:13px}

/* collapsed rail */
.app.collapsed .sidebar{width:74px;padding:16px 13px}
.app.collapsed .sb-toggle-row{justify-content:center}
.app.collapsed .nav button{gap:0;padding:11px 0;justify-content:center;overflow:hidden}
.app.collapsed .nav button span.lbl{display:none}
.app.collapsed .sb-user{background:transparent;justify-content:center;padding:8px 0;border-radius:var(--r-md)}
.app.collapsed .sb-user-main{flex:0;justify-content:center}
.app.collapsed .sb-user-text,.app.collapsed .sb-signout{display:none}

/* main pane — flush, full height */
.main{flex:1;min-width:0;background:var(--canvas);display:flex;flex-direction:column;min-height:100vh;overflow:hidden}
.topbar{flex-shrink:0;height:64px;padding:0 26px;display:flex;align-items:center;gap:16px;border-bottom:1px solid var(--line);background:var(--surface)}
.crumb{font-size:15px;font-weight:600;color:var(--ink)}
.tb-search{margin-left:auto;position:relative;width:280px;max-width:34vw}
.tb-search input{width:100%;height:38px;border:1px solid var(--line);border-radius:var(--r-sm);padding:0 14px;font-size:13px;background:var(--surface2);outline:none;color:var(--ink)}
.content{flex:1;overflow:auto;padding:30px 30px 44px}
.page{max-width:920px;margin:0 auto}
.page.narrow{max-width:860px}
.page h1{margin:0;font-size:28px;font-weight:600;letter-spacing:0}
.page .page-sub{margin:7px 0 0;color:var(--ink3);font-size:14.5px;line-height:1.55;max-width:62ch}
/* page title now lives in the topbar crumb — the first content block sits flush
   at the content padding instead of below a deleted heading */
.page > :first-child{margin-top:0}

/* buttons */
.btn{border:1px solid var(--line);border-radius:var(--r-sm);background:var(--surface);color:var(--ink2);font-size:14px;font-weight:500;height:42px;padding:0 18px}
.btn.pill{border-radius:999px;height:40px;font-size:13.5px;padding:0 18px;white-space:nowrap}
.btn.primary{border-color:var(--accent);background:var(--accent);color:#fff;font-weight:600}
.btn.danger{border-color:transparent;background:var(--redT);color:var(--red);font-weight:600;font-size:13.5px}
.btn.block{width:100%}
.btn.link{background:none;color:var(--accent);font-size:13px;font-weight:600;height:auto;padding:0}
.btn:disabled{opacity:.48;cursor:not-allowed}

/* status pill */
.status{display:inline-flex;align-items:center;gap:5px;font-family:var(--mono);font-size:10px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;padding:3px 8px;border-radius:999px}
.status .dot{width:6px;height:6px;border-radius:50%;background:currentColor}
.status.live{color:var(--green);background:var(--greenT)}
.status.live .dot{animation:eoPulse 2s infinite}
.status.succeeded{color:var(--green);background:var(--greenT)}
.status.idle{color:var(--ink3);background:var(--surface3)}
.status.gated{color:var(--amber);background:var(--amberT)}
.status.off{color:var(--red);background:var(--redT)}

/* ===================== connections ===================== */
.hero{margin-top:24px;border-radius:var(--r-md);background:var(--surface);border:1px solid var(--line);padding:22px 24px;display:flex;align-items:center;gap:20px;flex-wrap:wrap;cursor:pointer;width:100%;text-align:left;font-size:inherit;color:inherit;box-shadow:var(--sh-sm)}
.hero-icon{width:52px;height:52px;border-radius:var(--r-sm);background:var(--ink);display:flex;align-items:center;justify-content:center;flex-shrink:0}
.hero-icon svg{width:28px;height:28px}
.hero-main{flex:1;min-width:160px}
.hero-eyebrow{font-family:var(--mono);font-size:10.5px;font-weight:600;letter-spacing:.1em;color:var(--ink3);text-transform:uppercase}
.hero-title{margin-top:4px;font-size:20px;font-weight:600;letter-spacing:0}
.hero-copy{margin-top:3px;font-size:13.5px;color:var(--ink2)}
.hero-stats{display:flex;gap:26px}
.hero-stats .num{font-size:24px;font-weight:600}
.hero-stats .num.green{color:var(--green)}
.hero-stats .lbl{font-size:12px;color:var(--ink3)}

.section-head{margin-top:30px;display:flex;align-items:center;gap:10px}
.section-head h2{margin:0;font-size:16px;font-weight:600}
.section-head .count{font-family:var(--mono);font-size:11px;color:var(--faint)}
.section-head .btn.link{margin-left:auto}

.tile-grid{margin-top:14px;display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:12px}
.tile{border:1px solid var(--line);border-radius:var(--r-md);background:var(--surface);padding:14px;cursor:pointer;transition:transform .16s,box-shadow .16s,border-color .16s;text-align:left;font-size:inherit;color:inherit}
.tile:hover{transform:translateY(-1px);box-shadow:var(--sh);border-color:var(--line2)}
.tile-top{display:flex;align-items:flex-start;justify-content:space-between}
.tile-icon{width:38px;height:38px;border-radius:var(--r-sm);background:var(--surface2);border:1px solid var(--line);display:flex;align-items:center;justify-content:center;overflow:hidden;flex-shrink:0;color:var(--ink)}
.tile-icon svg{width:22px;height:22px}
.tile-name{margin-top:12px;font-size:14.5px;font-weight:600;letter-spacing:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.tile-sub{margin-top:2px;font-size:12.5px;color:var(--ink3);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.tile-add{border:1.5px dashed var(--line2);border-radius:var(--r-md);background:transparent;color:var(--ink3);font-size:13px;font-weight:500;min-height:104px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px}
.tile-add .plus{font-size:20px}
.mono{font-family:var(--mono)}

.ticker{margin-top:30px;border:1px solid var(--line);border-radius:var(--r-md);background:var(--surface2);padding:14px 16px;display:flex;align-items:center;gap:11px}
.ticker .dot{width:7px;height:7px;border-radius:50%;background:var(--accent);animation:eoPulse 1.6s infinite;flex-shrink:0}
.ticker .line{font-size:13px;color:var(--ink2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ticker .tag{margin-left:auto;font-size:12px;color:var(--faint);white-space:nowrap}

/* ===================== brain ===================== */
.brain-search{margin-top:22px;display:flex;gap:14px;flex-wrap:wrap;align-items:center}
.brain-search input{flex:1;min-width:240px;height:44px;border:1px solid var(--line);border-radius:var(--r-sm);padding:0 14px;font-size:14px;background:var(--surface);outline:none;color:var(--ink)}
.type-pills{margin-top:14px;display:flex;gap:8px;flex-wrap:wrap}
.type-pill{display:inline-flex;align-items:center;gap:7px;border:1px solid var(--line);background:var(--surface);color:var(--ink2);border-radius:999px;padding:7px 12px;font-size:12.5px;font-weight:500;text-transform:capitalize}
.type-pill.on{background:var(--ink);color:#fff}
.type-pill .tdot{width:7px;height:7px;border-radius:50%;display:inline-block}
.type-pill .cnt{opacity:.55}
.record-grid{margin-top:18px;display:grid;grid-template-columns:repeat(auto-fill,minmax(270px,1fr));gap:14px}
.record{border:1px solid var(--line);border-radius:var(--r-md);background:var(--surface);padding:16px;cursor:pointer;transition:transform .16s,box-shadow .16s,border-color .16s;text-align:left;font-size:inherit;color:inherit}
.record:hover{transform:translateY(-1px);box-shadow:var(--sh);border-color:var(--line2)}
.record-top{display:flex;align-items:center;gap:8px}
.record-top .when{margin-left:auto;font-size:11.5px;color:var(--faint)}
.type-tag{font-family:var(--mono);font-size:10px;font-weight:600;letter-spacing:.05em;padding:3px 8px;border-radius:999px;text-transform:uppercase}
.record-title{margin-top:12px;font-size:16px;font-weight:600;letter-spacing:0;overflow-wrap:anywhere}
.record-meta{margin-top:6px;color:var(--ink3);font-size:13px;line-height:1.5}
.record-foot{margin-top:13px;font-size:11.5px;color:var(--faint);display:flex;gap:12px}
.empty-dash{margin-top:18px;border:1.5px dashed var(--line2);border-radius:var(--r-md);padding:38px;text-align:center;color:var(--ink3);font-size:14px}

/* ===================== skills ===================== */
.skill-list{margin-top:24px;display:flex;flex-direction:column;gap:14px}
.skill-add{border:1.5px dashed var(--line2);border-radius:var(--r-md);background:transparent;color:var(--ink3);font-size:13px;font-weight:500;padding:18px;display:flex;align-items:center;justify-content:center;gap:6px}
.skill-add .plus{font-size:18px}
.skill-add:hover{border-color:var(--accent);color:var(--accent)}
.skill-card{border:1px solid var(--line);border-radius:var(--r-md);background:var(--surface);padding:20px;box-shadow:var(--sh-sm)}
.skill-head{display:flex;align-items:flex-start;gap:16px;flex-wrap:wrap}
.skill-id{flex:1;min-width:200px}
.skill-name-row{display:flex;align-items:center;gap:9px;flex-wrap:wrap}
.skill-name{font-size:16px;font-weight:600;letter-spacing:0}
.skill-scope{font-family:var(--mono);font-size:10.5px;color:var(--ink3);background:var(--surface2);padding:2px 8px;border-radius:999px}
.skill-version{font-family:var(--mono);font-size:10.5px;color:var(--faint)}
.skill-desc{margin-top:8px;color:var(--ink3);font-size:13.5px;line-height:1.55;max-width:62ch}
.skill-share{margin-top:18px;border-top:1px solid var(--line);padding-top:15px}
.skill-share .lbl{font-size:12px;font-weight:500;color:var(--ink3);margin-bottom:10px}
.chip-row{display:flex;gap:8px;flex-wrap:wrap}
.agent-chip{display:inline-flex;align-items:center;gap:7px;border:none;background:var(--surface2);color:var(--ink3);border-radius:999px;padding:5px 12px 5px 5px;font-size:12.5px;font-weight:500;white-space:nowrap;transition:background .15s,color .15s}
.agent-chip.on{background:var(--accentT);color:var(--accent2)}
.agent-chip .av{width:20px;height:20px;border-radius:50%;background:var(--ink3);color:#fff;font-size:10px;font-weight:600;display:inline-flex;align-items:center;justify-content:center}
.agent-chip.on .av{background:var(--accent)}

/* toggle switch */
.tg{position:relative;width:40px;height:24px;border-radius:999px;border:1px solid var(--line);background:var(--surface3);transition:background .18s,border-color .18s;flex-shrink:0}
.tg.on{background:var(--accent)}
.tg .knob{position:absolute;top:3px;left:3px;width:18px;height:18px;border-radius:50%;background:#fff;box-shadow:0 1px 3px rgba(0,0,0,.25);transition:left .18s}
.tg.on .knob{left:19px}

/* ===================== settings ===================== */
.settings-grid{margin-top:24px;display:grid;grid-template-columns:1fr 1fr;gap:16px}
.card{border:1px solid var(--line);border-radius:var(--r-md);background:var(--surface);padding:20px;box-shadow:var(--sh-sm)}
.card.amber{border-color:var(--amberT);background:var(--amberT);box-shadow:none}
.card.wide{margin-top:16px}
.card .card-lbl{font-family:var(--mono);font-size:10.5px;font-weight:600;color:var(--ink3);text-transform:uppercase;letter-spacing:.1em}
.card.amber .card-lbl{color:var(--amber)}
.card h2{margin:14px 0 0;font-size:18px;font-weight:600;letter-spacing:0}
.card p{margin:7px 0 0;color:var(--ink2);font-size:13px;line-height:1.55}
.kv-rows{margin-top:16px;display:flex;flex-direction:column;gap:13px;font-size:14px}
.kv-rows>div{display:flex;justify-content:space-between;gap:14px}
.kv-rows .k{color:var(--ink3);white-space:nowrap}
.kv-rows .v{font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.card .btn{margin-top:20px;height:42px;border-radius:999px}
.export-row{margin-top:16px;display:flex;gap:30px;flex-wrap:wrap;align-items:flex-end}
.export-row .grp-lbl{font-size:13px;color:var(--ink3);margin-bottom:9px}
.seg-group{display:flex;gap:4px;background:var(--surface2);border:1px solid var(--line);border-radius:999px;padding:3px}
.seg{border:none;border-radius:999px;background:transparent;color:var(--ink3);font-size:12.5px;font-weight:500;padding:7px 15px}
.seg.on{background:var(--surface);color:var(--ink);font-weight:600;box-shadow:var(--sh-sm)}
.export-row .btn{margin-top:0}

/* ===================== deploy ===================== */
.deploy-grid{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(280px,.85fr);gap:16px;align-items:start}
.deploy-launch h2,.deploy-disabled h2,.managed-run-card h2,.managed-box-card h2,.agent-profile-card h2{margin:12px 0 0;font-size:18px;font-weight:600;letter-spacing:0}
.field-label{display:block;margin-top:14px;font-size:13px;font-weight:600;color:var(--ink2)}
.deploy-budget-row{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.deploy-authority{margin-top:16px;border:1px solid var(--line);border-radius:var(--r-sm);background:var(--surface2);padding:12px 14px}
.da-row{display:flex;justify-content:space-between;gap:16px;padding:6px 0;font-size:12.5px;border-bottom:1px solid var(--line)}
.da-row:last-of-type{border-bottom:0}
.da-k{color:var(--ink3);white-space:nowrap}
.da-v{color:var(--ink);font-weight:500;text-align:right}
.deploy-authority .pv-tools{margin-top:10px}
.deploy-disabled{background:var(--surface2);box-shadow:none}
.agent-profile-card{margin-top:16px}
.profile-note{margin-top:10px;color:var(--ink3);font-size:13px;line-height:1.5}
#agent-profile-list{margin-top:16px;display:flex;flex-direction:column;gap:9px}
.agent-profile-row{width:100%;border:1px solid var(--line);border-radius:var(--r-sm);background:var(--surface);padding:13px 14px;color:inherit;text-align:left;display:flex;align-items:center;justify-content:space-between;gap:14px;font:inherit}
.agent-profile-row:hover{border-color:var(--line2);box-shadow:var(--sh-sm)}
.managed-run-card,.managed-box-card,.approval-card{margin-top:16px}
.managed-run-head{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;flex-wrap:wrap}
.managed-run-filters{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.managed-run-filters .field-input{margin-top:0;height:38px;width:170px}
.managed-run-filters .btn{margin-top:0;height:38px}
#managed-run-list,#managed-box-list,#prod-approval-list{margin-top:16px;display:flex;flex-direction:column;gap:9px}
.managed-run-row,.managed-box-row{width:100%;border:1px solid var(--line);border-radius:var(--r-sm);background:var(--surface);padding:13px 14px;color:inherit;text-align:left;display:flex;align-items:center;justify-content:space-between;gap:14px;font:inherit}
.managed-run-row:hover,.managed-box-row:hover{border-color:var(--line2);box-shadow:var(--sh-sm)}
.approval-row{width:100%;border:1px solid var(--line);border-radius:var(--r-sm);background:var(--surface);padding:13px 14px;display:flex;align-items:center;justify-content:space-between;gap:14px}
.approval-actions{display:flex;align-items:center;gap:8px;flex-shrink:0;flex-wrap:wrap;justify-content:flex-end}
.approval-actions .btn{height:34px;margin-top:0}
.mrr-main{min-width:0;display:flex;flex-direction:column;gap:4px}
.mrr-goal{font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.mrr-meta{font-family:var(--mono);font-size:11px;color:var(--ink3);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.mrr-side{display:flex;align-items:center;gap:10px;flex-shrink:0}
.mrr-cost{font-family:var(--mono);font-size:11px;color:var(--ink3);min-width:54px;text-align:right}
.mb-actions{margin-top:10px;display:flex;flex-wrap:wrap;gap:8px}
.mb-actions .btn{height:36px;margin-top:0}
.mb-form-grid{margin-top:4px;display:grid;grid-template-columns:1fr 1fr;gap:0 12px}
.mb-form-grid .full{grid-column:1/-1}
.run-result{margin:10px 0 0;border-radius:var(--r-sm);padding:14px;background:var(--surface2);font-family:var(--mono);font-size:12px;line-height:1.6;white-space:pre-wrap;word-break:break-word;color:var(--ink2)}
.loading.compact{padding:26px}

/* ===================== modal ===================== */
.modal-wrap{position:fixed;inset:0;z-index:50;display:none;align-items:center;justify-content:center;padding:24px}
.modal-wrap.on{display:flex}
.modal-scrim{position:absolute;inset:0;background:rgba(17,17,15,.34);backdrop-filter:blur(3px)}
.modal{position:relative;width:min(540px,100%);max-height:88vh;background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);box-shadow:var(--sh-lg);display:flex;flex-direction:column;animation:eoModal .26s cubic-bezier(.2,.7,.2,1);overflow:hidden}
.mhead{flex-shrink:0;padding:22px 24px;display:flex;align-items:flex-start;gap:13px;border-bottom:1px solid var(--line)}
.mhead .mark{width:40px;height:40px;border-radius:var(--r-sm);background:var(--surface2);color:var(--ink);display:flex;align-items:center;justify-content:center;overflow:hidden;flex-shrink:0;font-size:16px;font-weight:600}
.mhead .mark svg{width:22px;height:22px}
.mhead .mark.accent{background:var(--accentT);color:var(--accent2)}
.mhead .mark.green{background:var(--greenT);color:var(--green)}
.mhead .mark.ink{background:var(--ink);color:#fff}
.mhead .mtitle{font-weight:600;font-size:17px;letter-spacing:0}
.mhead .msub{font-size:13px;color:var(--ink3);margin-top:2px}
.mhead .mtext{min-width:0;flex:1}
.mhead .x{width:32px;height:32px;border:none;border-radius:var(--r-sm);background:var(--surface2);color:var(--ink3);font-size:15px;flex-shrink:0}
.mbody{flex:1;overflow:auto;padding:24px}
.mfoot{flex-shrink:0;padding:16px 24px;border-top:1px solid var(--line);display:flex;gap:10px;justify-content:flex-end;flex-wrap:wrap}
.mfoot .btn{white-space:nowrap}
.mfoot .quick-life{margin-right:auto}
@media (max-width:520px){
  .mfoot{padding:14px 16px;justify-content:stretch}
  .mfoot .btn{flex:1 1 100%;min-width:0}
  .mfoot .quick-life{margin-right:0}
}

/* modal content primitives */
.step-lbl{font-size:13px;font-weight:600;color:var(--ink2)}
.step-lbl.gap{margin-top:22px}
.step-lbl .hint{font-weight:400;color:var(--faint)}
.pick-grid{margin-top:12px;display:grid;grid-template-columns:1fr 1fr;gap:10px}
.pick-card{display:flex;align-items:center;justify-content:space-between;gap:8px;border:1.5px solid var(--line);background:var(--surface);border-radius:var(--r-sm);padding:10px 12px;text-align:left;transition:border-color .15s,background .15s}
.pick-card.on{border-color:var(--accent);background:var(--accentT)}
.pick-card .pc-main{display:flex;align-items:center;gap:9px;min-width:0}
.pick-card .pc-icon{width:28px;height:28px;border-radius:var(--r-xs);background:var(--surface2);color:var(--ink);display:flex;align-items:center;justify-content:center;flex-shrink:0}
.pick-card .pc-label{font-weight:500;font-size:13.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.pick-card .pc-kind{font-family:var(--mono);font-size:9.5px;font-weight:600;color:var(--faint);text-transform:uppercase;letter-spacing:.08em}
.pick-card .pc-kind.accent{color:var(--accent)}
.note{margin-top:12px;border:1px solid var(--line);border-radius:var(--r-sm);background:var(--surface2);padding:12px 14px;font-size:13px;color:var(--ink2);line-height:1.55}
.note b{color:var(--ink)}
.note.green{background:var(--greenT)}
.note.amber{background:var(--amberT);color:var(--amber);font-weight:500;font-size:12.5px;border-radius:var(--r-sm);padding:11px 14px}
.note.plain{background:var(--surface2)}
.radio-list{margin-top:12px;display:flex;flex-direction:column;gap:9px}
.radio-row{display:flex;align-items:center;justify-content:space-between;gap:10px;border:1.5px solid var(--line);background:var(--surface);border-radius:var(--r-sm);padding:12px 14px;text-align:left;width:100%}
.radio-row.on{border-color:var(--accent);background:var(--accentT)}
.radio-row .r-main{display:flex;align-items:center;gap:11px;min-width:0}
.radio-row .r-label{font-weight:500}
.radio-row .r-note{font-size:12px;color:var(--ink3);white-space:nowrap}
.radio-row .r-note.green{color:var(--green);font-weight:600;font-size:11.5px}
.radio-row .r-note.amber{color:var(--amber);font-weight:600;font-size:11.5px}
.radio{display:inline-block;width:18px;height:18px;border-radius:50%;border:2px solid var(--line2);background:transparent;flex-shrink:0}
.radio-row.on .radio{border-color:var(--accent);background:radial-gradient(var(--accent) 0 5px,transparent 6px)}
.adv-box{margin-top:12px;border:1px solid var(--line);border-radius:var(--r-sm);background:var(--surface2);padding:6px 14px}
.adv-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:11px 0;border-bottom:1px solid var(--line)}
.adv-row:last-child{border-bottom:none}
.adv-row .a-name,.quick-file-row .a-name{font-size:13.5px;font-weight:500}
.adv-row .a-desc,.quick-file-row .a-desc{font-size:12px;color:var(--ink3)}
.quick-file-row{width:100%;border:0;border-bottom:1px solid var(--line);background:transparent;color:inherit;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:11px 0;text-align:left;cursor:pointer;font:inherit}
.quick-file-row:last-child{border-bottom:none}
.quick-file-row:hover .a-name{color:var(--accent)}
.quick-file-row .qf-main{min-width:0}
/* Quick app detail — lead with what/open, push the engineering into a disclosure */
.quick-lede{margin:0;font-size:14px;line-height:1.55;color:var(--ink2)}
.quick-meta{margin-top:12px;display:flex;align-items:center;gap:14px;flex-wrap:wrap;font-size:12.5px;color:var(--ink3)}
.quick-tech{margin-top:20px;border-top:1px solid var(--line);padding-top:4px}
.quick-tech>summary{font-size:12.5px;font-weight:500;color:var(--ink3);cursor:pointer;padding:10px 0;list-style:none}
.quick-tech>summary::-webkit-details-marker{display:none}
.quick-tech>summary::before{content:"›";display:inline-block;width:14px;color:var(--faint);transition:transform .15s}
.quick-tech[open]>summary::before{transform:rotate(90deg)}
.quick-tech>summary:focus-visible{outline:2px solid rgba(var(--accentRGB),.35);outline-offset:2px;border-radius:var(--r-xs)}
.scope-chip{border:none;border-radius:999px;background:var(--surface3);color:var(--ink3);padding:5px 13px;font-size:11.5px;font-weight:600;min-width:48px}
.scope-chip.on{background:var(--greenT);color:var(--green)}
.scope-chip.gated{background:var(--amberT);color:var(--amber)}
.field-input{margin-top:8px;width:100%;height:42px;border:1.5px solid var(--line);border-radius:var(--r-sm);padding:0 12px;font-size:13.5px;background:var(--surface);outline:none;color:var(--ink)}
.field-input.mono{font-family:var(--mono);font-size:13px}
.field-area{margin-top:8px;width:100%;min-height:80px;border:1.5px solid var(--line);border-radius:var(--r-sm);padding:12px;font-size:13.5px;line-height:1.5;background:var(--surface);outline:none;resize:vertical;color:var(--ink)}
.field-area.mono{font-family:var(--mono);font-size:12.5px;line-height:1.6;min-height:110px}
.field-area.big{min-height:230px;border-radius:var(--r-md);padding:14px;font-size:14px;line-height:1.65}
.onboard-pre{margin:10px 0 0;border-radius:var(--r-sm);padding:16px;background:#151515;color:#F1F0EA;font-family:var(--mono);font-size:11.5px;line-height:1.7;overflow:auto;white-space:pre-wrap;word-break:break-all}
.mini-lbl{font-family:var(--mono);font-size:10.5px;font-weight:600;color:var(--ink3);text-transform:uppercase;letter-spacing:.1em}
.mini-lbl.gap{margin-top:20px;display:block}
.stat-row{display:flex;gap:10px}
.stat-cell{flex:1;border:1px solid var(--line);background:var(--surface2);border-radius:var(--r-sm);padding:12px 14px}
.stat-cell .sv{font-family:var(--mono);font-size:18px;font-weight:600}
.stat-cell .sv.green{color:var(--green)}
.stat-cell .sv.capitalize{text-transform:capitalize}
.stat-cell .sk{font-size:11.5px;color:var(--ink3)}
.act-row{display:flex;gap:12px;padding:9px 0;border-bottom:1px solid var(--line);font-size:12.5px}
.act-row:last-child{border-bottom:none}
.act-row .t{color:var(--faint);font-family:var(--mono);white-space:nowrap}
.act-row .x2{color:var(--ink2);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.perm-head{margin-top:22px;display:flex;align-items:center;gap:10px}
.perm-head .lbl{font-size:13px;font-weight:600;color:var(--ink2)}
.perm-head .seg-group{margin-left:auto}
.perm-head .seg{padding:6px 14px}
.sel-head{margin-top:14px;display:flex;align-items:center;gap:12px}
.sel-head .sel-tile{width:44px;height:44px;border-radius:var(--r-sm);background:var(--surface2);border:1px solid var(--line);color:var(--ink);display:flex;align-items:center;justify-content:center;overflow:hidden;flex-shrink:0}
.sel-head .sel-tile svg{width:24px;height:24px}
.sel-head .sel-name{font-weight:600;font-size:16px}
.sel-head .sel-kind{font-size:12px;color:var(--ink3)}
.cat-card{border:1px solid var(--line);border-radius:var(--r-sm);background:var(--surface);padding:14px;text-align:left;transition:border-color .15s,box-shadow .15s}
.cat-card:hover{border-color:var(--line2);box-shadow:var(--sh-sm)}
.cat-card .cc-top{display:flex;align-items:center;justify-content:space-between}
.cat-card .cc-icon{width:32px;height:32px;border-radius:var(--r-xs);background:var(--surface2);border:1px solid var(--line);display:flex;align-items:center;justify-content:center;overflow:hidden;flex-shrink:0;color:var(--ink)}
.cat-card .cc-kind{font-family:var(--mono);font-size:9.5px;font-weight:600;color:var(--ink3);text-transform:uppercase;letter-spacing:.08em}
.cat-card .cc-name{margin-top:11px;font-weight:600;font-size:13.5px}
.cat-card .cc-desc{margin-top:2px;font-size:11.5px;color:var(--ink3)}
.record-modal-top{display:flex;align-items:center;gap:9px}
.record-modal-top .when{font-size:12px;color:var(--ink3)}
.cites{margin-top:10px;font-size:12px;color:var(--faint)}
.provenance{margin-top:12px;border:1px solid var(--line);border-radius:var(--r-sm);background:var(--surface2);padding:11px 14px}
.pv-line{display:flex;align-items:center;gap:9px;font-size:12.5px;color:var(--ink2)}
.pv-line b{color:var(--ink);font-weight:600}
.pv-dot{width:7px;height:7px;border-radius:50%;background:var(--accent);flex-shrink:0}
.pv-dot.plain{background:var(--faint)}
.pv-chip{margin-left:auto;font-size:11px;font-weight:500;color:var(--ink3);background:var(--surface3);border-radius:999px;padding:3px 9px;white-space:nowrap}
.pv-tools{margin-top:9px;display:flex;flex-wrap:wrap;gap:6px}
.pv-tool{font-family:var(--mono);font-size:10px;color:var(--accent2);background:var(--accentT);border-radius:999px;padding:3px 8px;text-transform:uppercase;letter-spacing:.05em}
.btn-row{margin-top:18px;display:flex;gap:10px}
.btn-row .grow{flex:1}
.cli{display:block;margin-top:10px;border-radius:var(--r-sm);background:var(--surface2);padding:12px 14px;font-family:var(--mono);font-size:12.5px;color:var(--ink2)}

/* toast */
.toast{position:fixed;left:50%;bottom:30px;transform:translateX(-50%);z-index:70;background:var(--ink);color:#fff;border-radius:999px;padding:11px 18px;font-size:13px;font-weight:500;box-shadow:var(--sh-lg);display:none;align-items:center;gap:9px}
.toast.on{display:flex;animation:eoToast .25s ease}
.toast::before{content:"";width:6px;height:6px;border-radius:50%;background:#5BE0A0}

/* loading / empty */
.loading{padding:44px;text-align:center;color:var(--ink3);font-size:14px}

/* ===================== login ===================== */
.login-body{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:40px 24px;background:var(--canvas)}
.login-wrap{width:100%;max-width:460px}
.login-card{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);box-shadow:var(--sh);padding:36px 34px}
.login-brand{display:flex;align-items:center;gap:11px}
.login-logo{width:38px;height:38px;border-radius:var(--r-sm);background:var(--ink);display:flex;align-items:center;justify-content:center;color:#fff;font-family:var(--mono);font-weight:700;font-size:14px;letter-spacing:0}
.login-brand-text{line-height:1.15}
.login-brand-text .nm{font-weight:600;font-size:15px}
.login-brand-text .sub{font-size:12px;color:var(--ink3)}
.login-card h1{margin:30px 0 0;font-size:27px;font-weight:600;letter-spacing:0;line-height:1.15}
.login-card .lede{margin:12px 0 0;color:var(--ink3);font-size:14.5px;line-height:1.6}
.login-tabs{margin-top:24px;display:flex;gap:4px;background:var(--surface2);border:1px solid var(--line);border-radius:999px;padding:3px}
.login-tabs button{flex:1;border:none;border-radius:999px;background:transparent;color:var(--ink3);font-size:13px;font-weight:500;padding:8px 0}
.login-tabs button.on{background:var(--surface);color:var(--ink);font-weight:600;box-shadow:var(--sh-sm)}
.login-card form{margin-top:18px}
.login-card label{display:block;font-size:13px;font-weight:500;color:var(--ink2);margin-top:14px}
.login-card input{margin-top:8px;width:100%;height:46px;border:1.5px solid var(--line);border-radius:var(--r-sm);padding:0 14px;font-size:15px;background:var(--surface);outline:none;color:var(--ink)}
.login-card .btn{margin-top:16px;width:100%;height:46px;border-radius:var(--r-sm);font-size:15px}
.login-card .btn.primary{font-weight:600}
.login-sep{display:flex;align-items:center;gap:10px;margin:18px 0 0;color:var(--faint);font-size:12px}
.login-sep:before,.login-sep:after{content:"";height:1px;flex:1;background:var(--line)}
.login-err{margin-top:16px;border-radius:var(--r-sm);background:var(--redT);color:var(--red);padding:11px 14px;font-size:13px;font-weight:500}
.login-hint{margin:14px 0 0;font-size:12.5px;color:var(--faint);line-height:1.5}
.login-advanced{margin-top:18px;border-top:1px solid var(--line);padding-top:14px}
.login-advanced summary{font-size:12.5px;color:var(--ink3);cursor:pointer}
.login-advanced .btn{background:var(--surface2);color:var(--ink2)}
.login-foot{text-align:center;margin-top:18px;font-size:12.5px;color:var(--faint)}

/* ===================== home (launchpad) ===================== */
.home-hero{margin-top:0;text-align:left;padding:8px 0 2px}
.home-eyebrow{font-family:var(--mono);font-size:10.5px;font-weight:600;letter-spacing:.1em;color:var(--ink3);text-transform:uppercase}
.home-ask-title{margin:10px 0 0;font-size:27px;font-weight:600;letter-spacing:0}
.home-ask{margin:20px 0 0;max-width:680px;display:flex;align-items:center;gap:10px;background:var(--surface);border:1px solid var(--line2);border-radius:var(--r-md);padding:7px 7px 7px 14px;box-shadow:var(--sh-sm)}
.home-ask:focus-within{border-color:var(--accent)}
.home-ask-icon{flex-shrink:0;width:26px;height:26px;color:var(--accent);display:flex;align-items:center;justify-content:center}
.home-ask-icon svg{width:22px;height:22px}
.home-ask-input{flex:1;min-width:0;border:none;outline:none;background:none;font-size:15px;color:var(--ink);font-family:inherit}
.home-ask .btn{height:38px;border-radius:var(--r-sm)}
.home-stats{margin:16px 0 0;display:flex;justify-content:flex-start;gap:8px;flex-wrap:wrap}
.home-stat{border:1px solid var(--line);background:var(--surface);border-radius:999px;padding:8px 16px;font-size:13px;color:var(--ink2);font-weight:500}
.home-stat:hover{border-color:var(--line2);color:var(--ink)}
.home-stat b{color:var(--ink);font-weight:700}
.home-stat b.green{color:var(--green)}
.home-cols{margin-top:18px;display:grid;grid-template-columns:1fr 300px;gap:30px;align-items:start}
.home-col-main>:first-child,.home-col-side>:first-child{margin-top:0}
.section-head.gap{margin-top:26px}
.home-brief-card{display:block;width:100%;text-align:left;border:1px solid var(--line);border-radius:var(--r-md);background:var(--surface);padding:16px;margin-top:16px;cursor:pointer;transition:transform .16s,box-shadow .16s,border-color .16s;font:inherit;color:inherit}
.home-brief-card:hover{transform:translateY(-1px);box-shadow:var(--sh);border-color:var(--line2)}
.hb-top{display:flex;align-items:center;gap:8px}
.hb-eyebrow{font-family:var(--mono);font-size:10px;font-weight:600;letter-spacing:.08em;color:var(--accent2);text-transform:uppercase}
.hb-top .when{margin-left:auto;font-size:11.5px;color:var(--faint)}
.hb-body{margin-top:10px;font-size:14px;line-height:1.55;color:var(--ink);overflow-wrap:anywhere}
.hb-body .muted{color:var(--ink3)}
.hb-foot{margin-top:12px;font-size:11.5px;color:var(--faint)}
.home-brief-empty{margin-top:16px;border:1.5px dashed var(--line2);border-radius:var(--r-md);padding:24px;text-align:center;color:var(--ink3);font-size:13.5px;line-height:1.5}
.home-source{display:flex;align-items:center;gap:12px;width:100%;text-align:left;border:1px solid var(--line);border-radius:var(--r-md);background:var(--surface);padding:12px 13px;margin-top:14px;cursor:pointer;transition:transform .16s,box-shadow .16s,border-color .16s;font:inherit;color:inherit}
.home-source:hover{transform:translateY(-1px);box-shadow:var(--sh);border-color:var(--line2)}
.hs-icon{width:38px;height:38px;border-radius:var(--r-sm);background:var(--surface2);border:1px solid var(--line);display:flex;align-items:center;justify-content:center;overflow:hidden;flex-shrink:0;color:var(--ink)}
.hs-icon svg{width:21px;height:21px}
.hs-text{flex:1;min-width:0}
.hs-name{display:block;font-size:13.5px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.hs-sub{display:block;margin-top:1px;font-size:12px;color:var(--ink3);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.posture-strip{margin-top:14px;border:1px solid var(--line);border-radius:var(--r-md);background:var(--surface2);padding:14px 16px}
.posture-strip .ps-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:5px 0;font-size:13px}
.ps-row+.ps-row{border-top:1px solid var(--line)}
.ps-k{color:var(--ink3)}
.ps-v{font-weight:600;color:var(--ink)}
.ps-v.capitalize{text-transform:capitalize}
.ps-note{margin-top:10px;font-size:11.5px;color:var(--faint);line-height:1.5}

/* ===================== responsive ===================== */
@media (max-width:880px){
  .home-cols{grid-template-columns:1fr;gap:8px}
  .sidebar{width:74px;padding:16px 13px}
  .sb-toggle-row{display:none}
  .nav button{gap:0;padding:11px 0;justify-content:center;overflow:hidden}
  .nav button span.lbl{display:none}
  .sb-user{background:transparent;justify-content:center;padding:8px 0}
  .sb-user-main{flex:0;justify-content:center}
  .sb-user-text,.sb-signout{display:none}
  .topbar{padding:0 16px;gap:10px}
  /* the topbar search squeezes to a dead sliver on narrow widths; hide it here —
     Brain keeps its own full-width search box, so search is still reachable */
  .tb-search{display:none}
  .content{padding:20px 16px 36px}
  .settings-grid{grid-template-columns:1fr}
  .deploy-grid{grid-template-columns:1fr}
  .deploy-budget-row{grid-template-columns:1fr}
  .managed-run-head{align-items:stretch}
  .managed-run-filters,.managed-run-filters .field-input,.managed-run-filters .btn{width:100%}
  .managed-run-row,.managed-box-row,.approval-row,.agent-profile-row{align-items:flex-start}
  .mrr-side,.approval-actions{flex-direction:column;align-items:flex-end;gap:6px}
  .mb-form-grid{grid-template-columns:1fr}
  .pick-grid{grid-template-columns:1fr}
}

/* ===================== add-an-agent modal: connect | deploy ===================== */
.mode-tabs{display:flex;gap:4px;background:var(--surface2);border:1px solid var(--line);border-radius:999px;padding:3px;margin-bottom:4px}
.mode-tabs .mode-tab{flex:1;border:none;border-radius:999px;background:transparent;color:var(--ink3);padding:8px 0;line-height:1.2;display:flex;flex-direction:column;align-items:center;gap:1px}
.mode-tabs .mode-tab .mt-m{font-size:13px;font-weight:600}
.mode-tabs .mode-tab .mt-s{font-size:11px;color:var(--faint)}
.mode-tabs .mode-tab.on{background:var(--surface);box-shadow:var(--sh-sm)}
.mode-tabs .mode-tab.on .mt-m{color:var(--ink)}
.mode-tabs .mode-tab.on .mt-s{color:var(--ink3)}
.runhint{margin-top:10px;font-size:12px;color:var(--ink3);line-height:1.5}
.runhint .btn.link{font-size:12px;vertical-align:baseline}
.task-budget{margin-top:10px;display:flex;gap:8px;flex-wrap:wrap}
.task-chip{font-family:var(--mono);font-size:11px;color:var(--ink2);background:var(--surface2);border:1px solid var(--line);border-radius:999px;padding:7px 12px}
.task-chip b{color:var(--ink);font-weight:600}
.size-hint{margin-top:8px;font-family:var(--mono);font-size:11.5px;color:var(--ink3)}
.idle-row{margin-top:8px;display:flex;align-items:center;gap:10px}
.idle-row .field-input{margin-top:0;width:96px}
.idle-row .u{font-size:13px;color:var(--ink3)}
.gov-note{margin-top:18px;border:1px solid var(--line);border-radius:var(--r-sm);background:var(--surface2);padding:12px 14px;display:flex;gap:11px;align-items:flex-start}
.gov-note .gv-ic{flex-shrink:0;width:18px;height:18px;color:var(--green)}
.gov-note .gv-ic svg{width:18px;height:18px}
.gov-note .gv-tx{font-size:12.5px;line-height:1.55;color:var(--ink2)}
.gov-note .gv-tx b{color:var(--ink);font-weight:600}
.adv-disclosure{margin-top:18px;border-top:1px solid var(--line);padding-top:4px}
.adv-disclosure>summary{font-size:12.5px;font-weight:600;color:var(--ink2);cursor:pointer;padding:11px 0;list-style:none}
.adv-disclosure>summary:focus-visible{outline:2px solid rgba(var(--accentRGB),.35);outline-offset:2px;border-radius:var(--r-xs)}
.adv-disclosure>summary::-webkit-details-marker{display:none}
.adv-disclosure>summary::before{content:"›";display:inline-block;width:14px;color:var(--faint)}
.adv-disclosure[open]>summary::before{content:"⌄";color:var(--ink3)}
.adv-disclosure .mb-form-grid{margin-top:4px}
.ok-strip{margin-top:14px;display:flex;flex-direction:column;gap:9px}
