/* ============================================================
   CONFLUENCE — Strategy Builder v2 (light, block-canvas)
   Loads after confluence.css.
   ============================================================ */

/* ---------- layout ---------- */
.bwrap{position:relative;height:calc(100vh - 58px);display:grid;grid-template-columns:352px 1fr 322px;min-width:0}
.bwrap.rpc{grid-template-columns:352px 1fr 54px}
.bwrap.rpc .rpanel{display:none}
.rprail{display:none}
.bwrap.rpc .rprail{display:flex;flex-direction:column;align-items:center;gap:10px;padding:14px 0;border-left:1px solid var(--border);background:var(--card)}
.rprail button{width:34px;height:34px;border-radius:10px;border:1px solid var(--border-2);background:var(--card);color:var(--dim);cursor:pointer;display:grid;place-items:center;box-shadow:var(--sh-sm)}
.rprail button:hover{color:var(--accent-ink);border-color:var(--accent-line);background:var(--accent-wash)}
.rprail button svg{width:16px;height:16px}

/* dotted canvas spans the whole workspace */
.canvas-bg{position:absolute;inset:0;background-image:radial-gradient(#d3d9e1 1.1px,transparent 1.1px);background-size:22px 22px;background-color:var(--canvas);pointer-events:none}

/* ---------- floating panel columns ---------- */
.lpanel,.rpanel{position:relative;z-index:2;overflow-y:auto;padding:20px 18px 32px;display:flex;flex-direction:column;gap:16px;min-height:0}
.lpanel .tin{height:38px;font-size:13.5px}
.lpanel textarea.tin{height:auto;min-height:64px}
.lpanel .btn{height:38px;font-size:13px}
.lpanel .btn.sm{height:34px;font-size:12.5px}
.pcard{background:var(--card);border:1px solid var(--border);border-radius:14px;box-shadow:var(--sh-md);flex:none}
.pcard .ph{display:flex;align-items:center;gap:8px;padding:13px 17px;border-bottom:1px solid var(--border);font-size:13px;font-weight:700;color:var(--ink)}
.pcard .ph .grip{margin-left:auto;color:var(--border-2);letter-spacing:2px;font-size:11px}
.pcard .pb{padding:16px 17px}

/* quick actions card */
.qa{padding:10px}
.qa .btn{width:100%}
.qa .row{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:8px}
.btn.saved{background:var(--accent);border-color:var(--accent);color:#fff;justify-content:space-between;box-shadow:0 1px 2px rgba(16,24,40,.1),0 8px 18px -10px rgba(0,184,114,.7)}
.btn.saved:hover{background:#00a866}

/* fields */
.field{margin-bottom:14px}
.field:last-child{margin-bottom:0}
.field>label{display:block;font-family:var(--mono);font-size:9px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--mute);margin-bottom:6px}
.row2{display:grid;grid-template-columns:1fr 1fr;gap:8px}

/* ---------- validation / health ---------- */
.valid{border-radius:10px;padding:11px 12px;border:1px solid var(--t-line);background:var(--t-wash)}
.valid.ok{border-color:var(--accent-line);background:var(--accent-wash)}
.valid-h{display:flex;align-items:center;gap:9px;font-size:12px;font-weight:700;color:var(--ink)}
.valid-h .ico{width:22px;height:22px;border-radius:50%;display:grid;place-items:center;flex:none}
.valid.ok .ico{background:var(--accent);color:#fff}
.valid:not(.ok) .ico{background:#f5dfb3;color:var(--t-ink)}
.valid-h .ico svg{width:13px;height:13px}
.issues{margin-top:8px;display:flex;flex-direction:column;gap:6px}
.issue{display:flex;align-items:flex-start;gap:8px;font-size:11.5px;color:var(--body);line-height:1.45}
.issue svg{width:12px;height:12px;flex:none;margin-top:2px;color:var(--t)}
.issue b{color:var(--ink);font-weight:700}

/* ---------- Albert card ---------- */
.albert .ph .spark{width:24px;height:24px;border-radius:8px;display:grid;place-items:center;background:var(--accent-wash);border:1px solid var(--accent-line);color:var(--accent-ink)}
.albert .ph .spark svg{width:13px;height:13px}
.albert .ph .tag{margin-left:auto;font-family:var(--mono);font-size:8.5px;font-weight:700;letter-spacing:.05em;color:var(--accent-ink);background:var(--accent-wash);border:1px solid var(--accent-line);padding:2px 7px;border-radius:999px}
.albert textarea{width:100%;min-height:74px;padding:10px 12px;border-radius:9px;border:1px solid var(--border-2);background:var(--bg);color:var(--ink);font-family:var(--ui);font-size:13px;line-height:1.5;outline:none;resize:none}
.albert textarea:focus{border-color:var(--accent);box-shadow:0 0 0 3px rgba(0,184,114,.14)}
.albert textarea::placeholder{color:var(--mute)}
.alb-run{margin-top:10px;width:100%;height:40px;border:none;border-radius:999px;background:var(--accent);color:#fff;font-family:var(--ui);font-weight:700;font-size:13.5px;cursor:pointer;display:flex;align-items:center;justify-content:center;gap:8px;box-shadow:0 8px 18px -10px rgba(0,184,114,.8)}
.alb-run:hover{background:#00a866}
.alb-run svg{width:14px;height:14px}
.alb-ex{margin-top:10px;font-family:var(--mono);font-size:8.5px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--mute)}
.alb-chip{display:inline-block;margin:7px 6px 0 0;font-size:11px;font-weight:600;color:var(--body);background:var(--card);border:1px solid var(--border-2);border-radius:999px;padding:5px 11px;cursor:pointer;transition:.14s;box-shadow:var(--sh-sm)}
.alb-chip:hover{border-color:var(--accent);color:var(--accent-ink);background:var(--accent-wash)}

/* ---------- center canvas ---------- */
.canvas{position:relative;z-index:1;overflow-y:auto;min-width:0}
.canvas-inner{max-width:760px;margin:0 auto;padding:22px 30px 90px}

/* strategy header card */
.sroot{display:flex;flex-wrap:wrap;align-items:center;gap:9px 11px;background:var(--card);border:1px solid var(--border);border-radius:16px;box-shadow:var(--sh-md);padding:12px 16px;margin-bottom:18px}
.sroot .ico{width:34px;height:34px;border-radius:10px;display:grid;place-items:center;background:var(--accent-wash);border:1px solid var(--accent-line);color:var(--accent-ink);flex:none}
.sroot .ico svg{width:18px;height:18px}
.sroot .nm{flex:1;min-width:80px;font-size:16px;font-weight:700;color:var(--ink);letter-spacing:-.01em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.pill-ai{display:inline-flex;align-items:center;gap:7px;height:32px;padding:0 14px;border-radius:999px;border:1.5px solid var(--u-line);background:var(--u-wash);color:var(--u-ink);font-family:var(--ui);font-size:12px;font-weight:700;cursor:pointer;transition:.14s;flex:none}
.pill-ai:hover{border-color:var(--u);box-shadow:0 0 0 3px rgba(47,111,228,.12)}
.sroot .pill{flex:none;background:var(--card)}

/* ---------- stage tree ---------- */
.stage{position:relative;margin-left:12px;padding-left:30px;border-left:2px solid var(--border-2)}
.stage:last-child{border-left-color:transparent}
.stage::before{content:"";position:absolute;left:-2px;top:24px;width:26px;height:2px;background:var(--border-2)}
.stnum{position:absolute;left:-13px;top:12px;width:24px;height:24px;border-radius:50%;background:var(--card);border:1.5px solid var(--border-2);display:grid;place-items:center;font-family:var(--mono);font-size:10.5px;font-weight:700;color:var(--dim);z-index:2;box-shadow:var(--sh-sm)}

.block{margin:6px 0 22px}
.bhead{display:flex;align-items:center;gap:10px;cursor:pointer;user-select:none}
.btag{display:inline-flex;align-items:center;gap:7px;font-family:var(--mono);font-size:10.5px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:#fff;padding:8px 15px;border-radius:999px;box-shadow:var(--sh-md);flex:none}
.block.u .btag{background:var(--u)}
.block.s .btag{background:var(--s)}
.block.t .btag{background:var(--t)}
.block.r .btag{background:var(--r)}
.bhead .desc{font-size:11.5px;color:var(--dim);font-weight:500}
.bhead .chev{margin-left:auto;width:26px;height:26px;border-radius:50%;border:1px solid var(--border-2);background:var(--card);color:var(--dim);transition:.18s;display:grid;place-items:center;box-shadow:var(--sh-sm);flex:none}
.bhead .chev svg{width:14px;height:14px}
.block.collapsed .chev{transform:rotate(-90deg)}
.block.collapsed .bbody{display:none}

.bbody{margin:12px 0 0 15px;padding-left:26px;border-left:2px solid var(--border-2);position:relative}

/* logic row */
.logicrow{display:flex;align-items:center;gap:9px;margin:0 0 12px;position:relative}
.logicrow::before{content:"";position:absolute;left:-26px;top:50%;width:22px;height:2px;background:var(--border-2)}
.lg-lbl{font-family:var(--mono);font-size:8.5px;font-weight:700;letter-spacing:.14em;color:var(--mute)}
.lg-seg{display:inline-flex;background:var(--card);border:1px solid var(--border-2);border-radius:999px;padding:3px;box-shadow:var(--sh-sm)}
.lg-seg button{border:none;background:transparent;font-family:var(--ui);font-size:11.5px;font-weight:700;color:var(--dim);padding:4px 13px;border-radius:999px;cursor:pointer;transition:.14s;white-space:nowrap}
.block.u .lg-seg button.on{background:var(--u);color:#fff}
.block.s .lg-seg button.on{background:var(--s);color:#fff}
.lg-seg button:not(.on):hover{color:var(--ink)}
.logicrow .hint{font-size:11.5px;color:var(--dim)}
.lg-num{width:34px;height:24px;text-align:center;border:1px solid var(--border-2);border-radius:7px;background:var(--card);font-family:var(--mono);font-size:11.5px;font-weight:700;color:var(--ink);outline:none}
.lg-num:focus{border-color:var(--accent);box-shadow:0 0 0 3px rgba(0,184,114,.14)}
.lg-of{color:var(--dim)}
.lg-desc{display:inline-flex;align-items:center;gap:6px}

/* ---------- condition chips ---------- */
.cond{display:flex;align-items:center;gap:9px;background:var(--card);border:1px solid var(--border);border-radius:14px;box-shadow:var(--sh-sm);padding:10px 12px;margin-bottom:10px;position:relative;transition:.14s}
.cond:hover{box-shadow:var(--sh-md);border-color:var(--border-2)}
.cond::before{content:"";position:absolute;left:-27px;top:50%;width:24px;height:2px;background:var(--border-2)}
.ctype{position:absolute;top:-7.5px;left:14px;font-family:var(--mono);font-size:8px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--mute);background:var(--card);padding:0 6px;border-radius:4px}
.cgrip{color:var(--border-2);cursor:grab;display:grid;place-items:center;flex:none}
.cgrip svg{width:13px;height:15px}
.cgrip:hover{color:var(--mute)}
.sentence{flex:1;min-width:0;font-size:13px;line-height:2;color:var(--body)}
.cx{color:var(--mute);cursor:pointer;width:24px;height:24px;display:grid;place-items:center;border-radius:50%;flex:none;transition:.12s}
.cx:hover{color:var(--r-ink);background:var(--r-wash)}
.cx svg{width:13px;height:13px}

/* tokens */
.tok{display:inline-flex;align-items:center;border-radius:999px;padding:3px 10px;margin:0 1px;font-weight:600;white-space:nowrap;font-size:12px;vertical-align:middle}
.tok.op{color:var(--dim);font-weight:500;padding:3px 2px}
.tok.metric{background:#f1f4f8;border:1px solid var(--border-2);color:var(--ink);font-family:var(--mono);font-size:11px}
.tok.val{background:var(--card);border:1.5px solid var(--accent-line);color:var(--ink);font-family:var(--mono);font-size:11px;cursor:text;outline:none}
.tok.val:focus{border-color:var(--accent);box-shadow:0 0 0 3px rgba(0,184,114,.14)}
.tok.tick{background:var(--u-wash);border:1px solid var(--u-line);color:var(--u-ink);font-family:var(--mono);font-size:11px;cursor:text;outline:none}
.tok.tick:focus{border-color:var(--u);box-shadow:0 0 0 3px rgba(47,111,228,.14)}
.tok.sel{background:var(--card);border:1.5px solid var(--accent-line);color:var(--ink);cursor:pointer;transition:.13s}
.tok.sel svg{width:11px;height:11px;margin-left:5px;opacity:.9;color:var(--accent-ink)}
.tok.sel:hover{border-color:var(--accent);background:var(--accent-wash)}

/* add block ghost */
.addblk{width:100%;min-height:40px;border:1.5px dashed var(--border-2);background:rgba(255,255,255,.65);border-radius:12px;color:var(--dim);font-family:var(--ui);font-weight:700;font-size:12px;display:flex;align-items:center;justify-content:center;gap:8px;cursor:pointer;transition:.15s;position:relative;margin-top:2px}
.addblk::before{content:"";position:absolute;left:-27px;top:50%;width:24px;height:2px;background:var(--border-2)}
.addblk:hover{border-color:var(--accent);color:var(--accent-ink);background:var(--accent-wash)}
.addblk svg{width:15px;height:15px;background:var(--t);color:#fff;border-radius:50%;padding:2.5px}
.rgrid{display:flex;flex-direction:column}

/* ---------- match preview (right) ---------- */
.rp .ph .x{margin-left:auto;width:24px;height:24px;border-radius:50%;display:grid;place-items:center;border:1px solid var(--border-2);background:var(--card);color:var(--dim);cursor:pointer}
.rp .ph .x:hover{color:var(--ink);background:var(--hover)}
.rp .ph .x svg{width:12px;height:12px}
.minibox{margin:12px 12px 0;background:#0c1117;border-radius:12px;padding:12px 40px 14px 12px;position:relative;
  --bg:#0c1117;--accent:#2fe39b;--bull:#2fe39b;--bear:#ff5c6e}
.mini{position:relative;height:170px}
.mini .gl{position:absolute;left:0;right:0;height:1px;background:rgba(255,255,255,.07)}
.mini .yl{position:absolute;left:100%;margin-left:6px;transform:translateY(-50%);font-family:var(--mono);font-size:8px;color:#5d6a78}
.mini .lvl{position:absolute;left:0;right:0;border-top:1px dashed}
.mini .lvl span{position:absolute;left:100%;margin-left:5px;transform:translateY(-50%);font-family:var(--mono);font-size:7px;font-weight:700;padding:1px 4px;border-radius:3px;white-space:nowrap}
.mc{position:absolute;width:7px;transform:translateX(-50%)}
.mw{position:absolute;left:50%;transform:translateX(-50%);width:1.3px}
.mb{position:absolute;left:0;right:0;border-radius:1px}
.mmk{position:absolute;width:20px;height:20px;border-radius:50%;transform:translate(-50%,-50%);display:grid;place-items:center;z-index:5;background:var(--accent);color:#04140d;box-shadow:0 0 0 3px rgba(47,227,155,.2),0 0 12px rgba(47,227,155,.5)}
.mmk svg{width:11px;height:11px}
.rp-cap{padding:9px 16px 0;font-size:10.5px;color:var(--mute);font-style:italic;line-height:1.45}
.rp-stats{margin:11px 12px 0;display:grid;grid-template-columns:1fr 1fr;gap:8px}
.rp-stat{background:var(--bg);border:1px solid var(--border);border-radius:10px;padding:9px 12px}
.rp-stat .k{font-family:var(--mono);font-size:8px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--mute)}
.rp-stat .v{font-family:var(--mono);font-size:16px;font-weight:700;color:var(--ink);margin-top:4px}
.rp-foot{padding:12px;display:flex;flex-direction:column;gap:9px}
.runbt{height:38px;border-radius:999px;border:none;font-family:var(--ui);font-weight:700;font-size:12.5px;display:flex;align-items:center;justify-content:center;gap:8px;cursor:pointer;transition:.14s}
.runbt svg{width:14px;height:14px}
.runbt.ready{background:var(--accent);color:#fff;box-shadow:0 8px 18px -10px rgba(0,184,114,.8)}
.runbt.ready:hover{background:#00a866}
.runbt.blocked{background:#eef1f5;border:1px solid var(--border-2);color:var(--mute);cursor:not-allowed}
.rp-note{font-size:10.5px;color:var(--mute);font-style:italic;line-height:1.45;text-align:center}

/* ---------- block library popover ---------- */
.lib-mask{position:fixed;inset:0;background:rgba(19,24,32,.28);backdrop-filter:blur(1.5px);z-index:60;display:none}
.lib-mask.on{display:block}
.lib{position:absolute;width:440px;max-height:520px;background:var(--card);border:1px solid var(--border);border-radius:16px;box-shadow:var(--sh-lg);overflow:hidden;display:flex;flex-direction:column}
.lib-h{display:flex;align-items:center;gap:10px;padding:13px 15px;border-bottom:1px solid var(--border)}
.lib-h .t{font-family:var(--mono);font-size:10px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--ink);white-space:nowrap}
.lib-search{flex:1;display:flex;align-items:center;gap:8px;height:32px;padding:0 11px;border-radius:999px;border:1px solid var(--border-2);background:var(--bg)}
.lib-search svg{width:13px;height:13px;color:var(--mute)}
.lib-search input{flex:1;background:none;border:none;outline:none;color:var(--ink);font-size:12px;font-family:var(--ui)}
.lib-body{overflow-y:auto;padding:8px}
.lib-cat{font-family:var(--mono);font-size:9px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--mute);padding:11px 9px 5px}
.lib-item{display:flex;align-items:flex-start;gap:11px;padding:9px 9px;border-radius:11px;cursor:pointer;transition:.12s}
.lib-item:hover{background:var(--hover)}
.lib-item .li-ic{width:32px;height:32px;border-radius:9px;display:grid;place-items:center;flex:none;background:#f1f4f8;border:1px solid var(--border-2);color:var(--dim)}
.lib-item .li-ic svg{width:16px;height:16px}
#lib[data-target="universe"] .li-ic{background:var(--u-wash);border-color:var(--u-line);color:var(--u-ink)}
#lib[data-target="setup"] .li-ic{background:var(--s-wash);border-color:var(--s-line);color:var(--s-ink)}
#lib[data-target="trigger"] .li-ic{background:var(--t-wash);border-color:var(--t-line);color:var(--t-ink)}
#lib[data-target="risk"] .li-ic{background:var(--r-wash);border-color:var(--r-line);color:var(--r-ink)}
.lib-item .li-t{font-size:13px;font-weight:700;color:var(--ink)}
.lib-item .li-d{font-size:11.5px;color:var(--dim);margin-top:2px;line-height:1.35}

/* ---------- select dropdown ---------- */
.selmenu{position:fixed;z-index:80;min-width:180px;max-height:304px;overflow-y:auto;background:var(--card);border:1px solid var(--border);border-radius:12px;box-shadow:var(--sh-lg);padding:5px;display:none}
.selmenu.on{display:block}
.sm-it{padding:8px 11px;border-radius:8px;font-size:12.5px;font-weight:500;color:var(--body);cursor:pointer;white-space:nowrap;display:flex;align-items:center;gap:8px}
.sm-it:hover{background:var(--hover);color:var(--ink)}
.sm-it.on{color:var(--accent-ink);background:var(--accent-wash);font-weight:700}
.sm-it.on::before{content:"✓";font-size:11px;color:var(--accent-ink)}
.sm-it:not(.on)::before{content:"";width:11px}

/* ---------- Albert thinking overlay ---------- */
.thinking{position:absolute;inset:0;background:rgba(250,251,253,.82);backdrop-filter:blur(3px);z-index:40;display:none;flex-direction:column;align-items:center;justify-content:center;gap:16px}
.thinking.on{display:flex}
.think-ring{width:60px;height:60px;color:var(--accent);animation:spin 2.4s linear infinite}
.think-ring svg{width:60px;height:60px;filter:drop-shadow(0 4px 10px rgba(0,184,114,.35))}
.think-t{font-size:15px;font-weight:700;color:var(--ink)}
.think-s{font-family:var(--mono);font-size:11.5px;color:var(--accent-ink);min-height:18px}
@keyframes spin{to{transform:rotate(360deg)}}

/* ---------- Albert focused window ---------- */
.alb-expand{margin-left:6px;width:26px;height:26px;border-radius:8px;border:1px solid var(--border-2);background:var(--card);color:var(--dim);cursor:pointer;display:grid;place-items:center;transition:.13s}
.alb-expand:hover{color:var(--accent-ink);border-color:var(--accent-line);background:var(--accent-wash)}
.alb-expand svg{width:13px;height:13px}
.almask{position:fixed;inset:0;background:rgba(19,24,32,.42);backdrop-filter:blur(4px);z-index:96;display:none;align-items:center;justify-content:center}
.almask.on{display:flex}
.almodal{width:720px;max-width:94vw;height:min(640px,88vh);background:var(--card);border:1px solid var(--border);border-radius:18px;box-shadow:var(--sh-lg);display:flex;flex-direction:column;overflow:hidden}
.alm-h{display:flex;align-items:center;gap:12px;padding:15px 18px;border-bottom:1px solid var(--border)}
.alm-badge{width:38px;height:38px;border-radius:11px;display:grid;place-items:center;background:var(--accent-wash);border:1px solid var(--accent-line);color:var(--accent-ink);flex:none}
.alm-badge svg{width:19px;height:19px}
.alm-h .t{font-size:15px;font-weight:700;color:var(--ink)}
.alm-h .s{font-size:11.5px;color:var(--dim);margin-top:2px}
.alm-h .x{margin-left:auto;width:28px;height:28px;border-radius:50%;border:1px solid var(--border-2);background:var(--card);display:grid;place-items:center;cursor:pointer;color:var(--dim);font-size:13px;flex:none}
.alm-h .x:hover{background:var(--hover);color:var(--ink)}
.alm-thread{flex:1;overflow-y:auto;padding:18px;display:flex;flex-direction:column;gap:14px;background:var(--bg)}
.alm-empty{margin:auto;text-align:center;max-width:440px}
.alm-empty .t{font-size:17px;font-weight:700;color:var(--ink)}
.alm-empty .s{font-size:12.5px;color:var(--dim);line-height:1.55;margin-top:8px}
.alm-empty .alb-chip{margin:10px 4px 0}
.alm-msg{display:flex;gap:10px;align-items:flex-start}
.alm-msg.me{justify-content:flex-end}
.alm-msg.me .bub{background:var(--ink);color:#fff;border-radius:14px 14px 4px 14px;max-width:75%}
.alm-msg.al .bub{background:var(--card);border:1px solid var(--border);border-radius:4px 14px 14px 14px;box-shadow:var(--sh-sm);max-width:85%}
.alm-msg .bub{padding:11px 14px;font-size:13px;line-height:1.5}
.alm-msg .bub .sub{font-size:11.5px;color:var(--dim);margin-top:3px}
.alm-msg .abdg{width:28px;height:28px;border-radius:9px;display:grid;place-items:center;background:var(--accent-wash);border:1px solid var(--accent-line);color:var(--accent-ink);flex:none;margin-top:2px}
.alm-msg .abdg svg{width:14px;height:14px}
.alm-prop{margin-top:10px;border:1px solid var(--border);border-radius:11px;overflow:hidden}
.apr{display:flex;align-items:center;gap:10px;padding:8px 12px;font-size:12px;font-weight:600;color:var(--body);border-bottom:1px solid var(--border)}
.apr span{font-family:var(--mono);font-size:9px;font-weight:800;letter-spacing:.08em;width:86px;flex:none}
.apr.u span{color:var(--u-ink)}.apr.s span{color:var(--s-ink)}.apr.t span{color:var(--t-ink)}.apr.r span{color:var(--r-ink)}
.alm-acts{display:flex;gap:8px;padding:10px 12px;background:var(--bg)}
.alm-in{display:flex;gap:10px;align-items:flex-end;padding:14px 16px;border-top:1px solid var(--border)}
.alm-in textarea{flex:1;min-height:48px;max-height:120px;padding:12px 14px;border-radius:12px;border:1px solid var(--border-2);background:var(--card);color:var(--ink);font-family:var(--ui);font-size:13px;line-height:1.5;outline:none;resize:none}
.alm-in textarea:focus{border-color:var(--accent);box-shadow:0 0 0 3px rgba(0,184,114,.14)}
.alm-in button{height:44px;padding:0 20px;border:none;border-radius:999px;background:var(--accent);color:#fff;font-family:var(--ui);font-weight:800;font-size:13px;cursor:pointer;display:inline-flex;align-items:center;gap:8px;box-shadow:0 8px 18px -10px rgba(0,184,114,.8)}
.alm-in button:hover{background:#00a866}
.alm-think i{display:inline-block;width:6px;height:6px;border-radius:50%;background:var(--accent);margin-right:4px;animation:dotb 1.2s infinite}
.alm-think i:nth-child(2){animation-delay:.2s}.alm-think i:nth-child(3){animation-delay:.4s}
@keyframes dotb{0%,100%{opacity:.25;transform:translateY(0)}50%{opacity:1;transform:translateY(-3px)}}

/* ---------- Universe: Scan vs Fixed instruments ---------- */
.umode{display:inline-flex;flex-wrap:wrap;background:var(--card);border:1px solid var(--border-2);border-radius:999px;padding:3px;box-shadow:var(--sh-sm);margin:0 0 13px;position:relative;max-width:100%}
.umode::before{content:"";position:absolute;left:-29px;top:50%;width:26px;height:2px;background:var(--border-2)}
.umode button{border:none;background:transparent;font-family:var(--ui);font-size:11.5px;font-weight:700;color:var(--dim);padding:5px 14px;border-radius:999px;cursor:pointer;transition:.14s;white-space:nowrap}
.umode button.on{background:var(--u);color:#fff}
.umode button:not(.on):hover{color:var(--ink)}
.instchip{display:inline-flex;align-items:center;gap:1px;background:var(--u-wash);border:1px solid var(--u-line);border-radius:999px;padding:2px 4px 2px 3px}
.instchip .tok.tick{border:none;background:transparent;box-shadow:none;padding:3px 6px;font-size:11.5px;font-weight:700}
.instchip .ix{width:18px;height:18px;border-radius:50%;display:grid;place-items:center;color:var(--u-ink);opacity:.55;cursor:pointer;font-size:13px;line-height:1;transition:.12s}
.instchip .ix:hover{opacity:1;background:#fff}
.addsym{border:1.5px dashed var(--u-line);background:transparent;color:var(--u-ink);font-family:var(--ui);font-size:11.5px;font-weight:700;border-radius:999px;padding:5px 13px;cursor:pointer;transition:.13s}
.addsym:hover{background:var(--u-wash)}
.ctxlbl{font-family:var(--mono);font-size:8.5px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--mute);margin:2px 0 9px}

/* ---------- narrow-viewport hardening (squeezed center column) ---------- */
@media (max-width:1240px){
  .trialchip{display:none}
  .tab{padding:0 10px}
}
@media (max-width:1100px){
  .bwrap{grid-template-columns:280px 1fr 296px}
  .bwrap.rpc{grid-template-columns:280px 1fr 54px}
  .canvas-inner{padding:22px 18px 90px}
  .stage{padding-left:20px;margin-left:8px}
  .stage::before{width:16px}
  .bbody{margin-left:11px;padding-left:15px}
  .umode button{padding:4px 10px;font-size:10.5px}
  .umode::before,.cond::before,.addblk::before,.logicrow::before{left:-16px;width:13px}
  .bhead .desc{display:none}
  .tok{white-space:normal;line-height:1.35}
}
