/* TD Industry — Cookbook: recursive build breakdown (steps + gather list). */
  :root{
    --cb-min:#8a97bd; --cb-ice:#7fd4e0; --cb-pi:#4ea36b; --cb-gas:#4fb8d4;
    --cb-sal:#d4af37; --cb-rx:#a98bd8; --cb-other:#9a8f7a; --cb-market:#d98b5a;
  }
  .cb{color:var(--parchment)}
  .cb-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-bottom:16px}
  .cb-seg{display:inline-flex;border:1px solid var(--line);border-radius:6px;overflow:hidden}
  .cb-seg button{background:transparent;border:0;color:var(--slate);font-family:var(--mono);font-size:.72rem;letter-spacing:.05em;padding:8px 15px;cursor:pointer;transition:background .15s,color .15s}
  .cb-seg button+button{border-left:1px solid var(--line)}
  .cb-seg button.on{background:linear-gradient(180deg,rgba(79,184,212,.14),rgba(79,184,212,.04));color:var(--blueprint)}
  .cb-seg button:hover:not(.on){color:var(--parchment)}
  .cb-meta{font-family:var(--mono);font-size:.66rem;color:var(--slate);flex:1;min-width:160px}
  .cb-exp{background:none;border:0;color:var(--slate);font-family:var(--mono);font-size:.68rem;letter-spacing:.04em;cursor:pointer;padding:4px 2px}
  .cb-exp:hover{color:var(--blueprint)}
  .cb-dot{width:8px;height:8px;border-radius:50%;flex:0 0 auto}
  .hidden{display:none}

  /* steps */
  .cb-step{border:1px solid var(--line);border-radius:7px;margin-bottom:8px;background:rgba(16,28,64,.35);overflow:hidden}
  .cb-step.gap{border-color:var(--gold-dim)}
  .cb-head{width:100%;display:flex;align-items:center;gap:12px;padding:11px 14px;background:transparent;border:0;text-align:left;cursor:pointer;color:var(--parchment)}
  .cb-head:hover{background:rgba(255,255,255,.02)}
  .cb-chev{width:15px;height:15px;flex:0 0 auto;stroke:var(--slate);fill:none;stroke-width:2;transition:transform .18s}
  .cb-step.open>.cb-head .cb-chev{transform:rotate(90deg);stroke:var(--blueprint)}
  .cb-name{font-size:.9rem;font-weight:500}
  .cb-qty{font-family:var(--mono);font-size:.74rem;color:var(--blueprint)}
  .cb-flex{flex:1}
  .cb-tag{font-family:var(--mono);font-size:.55rem;letter-spacing:.1em;text-transform:uppercase;padding:2px 8px;border-radius:999px;border:1px solid;color:var(--emerald);border-color:#2f5e43;white-space:nowrap}
  .cb-tag.gap{color:var(--gold-bright);border-color:var(--gold-dim)}
  .cb-tag.rx{color:var(--cb-rx);border-color:#5a4a7a}

  /* copy gather list */
  .cb-listbar{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:14px}
  .cb-listlbl{font-family:var(--mono);font-size:.6rem;letter-spacing:.14em;text-transform:uppercase;color:var(--slate-dim)}
  .cb-copy{font-family:var(--mono);font-size:.66rem;letter-spacing:.05em;color:var(--slate);background:transparent;border:1px solid var(--line);border-radius:6px;padding:6px 13px;cursor:pointer;white-space:nowrap;transition:color .15s,border-color .15s,background .15s}
  .cb-copy:hover{color:var(--blueprint);border-color:var(--blueprint-dim);background:rgba(79,184,212,.06)}
  .cb-copy.ok{color:var(--emerald);border-color:#2f5e43;background:rgba(47,94,67,.12)}
  .cb-body{display:none;padding:6px 14px 14px 32px;border-top:1px solid var(--line-soft)}
  .cb-step.open>.cb-body{display:block}
  .cb-sub{font-family:var(--mono);font-size:.55rem;letter-spacing:.14em;text-transform:uppercase;color:var(--slate-dim);margin:12px 0 8px}
  .cb-substeps{border-left:1px dashed var(--blueprint-dim);padding-left:12px;margin-left:2px}

  /* material row with have/need bar — steps AND gather list */
  .cb-mat{display:grid;grid-template-columns:1fr auto;gap:3px 14px;padding:8px 10px;border-radius:6px;border:1px solid transparent}
  .cb-mat:hover{background:rgba(255,255,255,.02);border-color:var(--line-soft)}
  .cb-mtop{display:flex;align-items:center;gap:10px;grid-column:1;min-width:0}
  .cb-mn{font-size:.85rem;color:var(--parchment);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .cb-cat{font-family:var(--mono);font-size:.55rem;letter-spacing:.08em;text-transform:uppercase;color:var(--slate-dim);flex:0 0 auto}
  .cb-cat.buy{color:var(--cb-market)}
  .cb-mq{grid-column:2;grid-row:1;font-family:var(--mono);font-size:.78rem;color:var(--parchment);text-align:right;font-variant-numeric:tabular-nums}
  .cb-bar{grid-column:1 / -1;height:5px;border-radius:3px;background:var(--void2);overflow:hidden;margin-top:2px}
  .cb-bar span{display:block;height:100%;border-radius:3px}
  .cb-msub{grid-column:1 / -1;font-family:var(--mono);font-size:.63rem;color:var(--slate-dim);font-variant-numeric:tabular-nums;display:flex;justify-content:space-between;gap:12px}
  .cb-st{font-weight:600}
  .cb-st.ok{color:var(--emerald)} .cb-st.bad{color:var(--crit)} .cb-st.buy{color:var(--cb-market)}

  /* gather list */
  .cb-catg{margin-bottom:16px}
  .cb-cath{display:flex;align-items:center;gap:9px;font-family:var(--mono);font-size:.64rem;letter-spacing:.12em;text-transform:uppercase;color:var(--slate);margin:0 2px 8px}
  .cb-cath b{color:var(--parchment)}
  .cb-cath .cb-n{margin-left:auto;color:var(--slate-dim);font-size:.6rem}
  .cb-seclabel{font-family:var(--mono);font-size:.6rem;letter-spacing:.16em;text-transform:uppercase;color:var(--slate-dim);margin:18px 2px 12px;display:flex;align-items:center;gap:10px}
  .cb-seclabel::after{content:"";flex:1;height:1px;background:var(--line-soft)}
  .cb-gapline{display:flex;align-items:center;gap:11px;padding:10px 12px;border:1px solid var(--gold-dim);border-radius:6px;margin-bottom:7px;background:rgba(212,175,55,.06)}
  .cb-gn{font-size:.86rem;color:var(--parchment)}
  .cb-gq{font-family:var(--mono);font-size:.62rem;color:var(--slate-dim)}
  .cb-gact{margin-left:auto;font-family:var(--mono);font-size:.6rem;letter-spacing:.08em;text-transform:uppercase;color:var(--gold-bright)}
  .cb-oknote{font-family:var(--mono);font-size:.72rem;color:var(--emerald);padding:8px 2px}

  /* trigger button reused across views */
  .cb-open{display:inline-flex;align-items:center;gap:8px;background:transparent;border:1px solid var(--blueprint-dim);color:var(--blueprint);font-family:var(--mono);font-size:.7rem;letter-spacing:.05em;padding:8px 13px;border-radius:5px;cursor:pointer;transition:background .18s,border-color .18s}
  .cb-open:hover{background:rgba(79,184,212,.08);border-color:var(--blueprint)}
  .cb-open svg{width:14px;height:14px;stroke:currentColor;fill:none;stroke-width:1.7}
  .cb-open.bp-recipe{padding:5px 10px;font-size:.64rem}
  .cb-open.bp-recipe svg{width:13px;height:13px}

  /* Job order dishes — each ordered item is a claim row + its own expandable recipe */
  .dish{margin-bottom:8px}
  .dish-head{padding:12px 14px}
  .dish-exp{width:100%;display:flex;align-items:center;gap:10px;background:transparent;border:0;text-align:left;cursor:pointer;color:var(--parchment);padding:0}
  .dish-exp:disabled{cursor:default}
  .dish-exp:hover:not(:disabled) .dish-title{color:var(--blueprint)}
  .dish.open .dish-exp .cb-chev{transform:rotate(90deg);stroke:var(--blueprint)}
  .dish-exp:disabled .cb-chev{opacity:.25}
  .dish-title{font-size:.9rem;font-weight:500}.dish-title b{color:var(--blueprint);font-weight:600}
  .dish-reward{margin-left:auto;font-family:var(--mono);font-size:.78rem;color:var(--gold);white-space:nowrap}.dish-reward small{color:var(--slate-dim);font-size:.62rem}
  .dish .pbar.sm{margin:10px 0 8px}
  .dish-foot{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}
  .dish-body{border-top:1px solid var(--line-soft)}
  .dish-done{font-family:var(--mono);font-size:.72rem;color:var(--slate);padding:6px 2px}
  .dish.mine{border-color:var(--blueprint-dim)}

  /* modal overlay */
  .cb-modal-backdrop{position:fixed;inset:0;z-index:120;background:rgba(4,7,14,.74);backdrop-filter:blur(6px);display:none;align-items:center;justify-content:center;padding:24px;animation:fade .2s ease}
  .cb-modal{width:100%;max-width:720px;max-height:90vh;display:flex;flex-direction:column;background:linear-gradient(180deg,var(--panel),var(--midnight));border:1px solid var(--line);border-radius:12px;overflow:hidden;box-shadow:0 40px 100px rgba(0,0,0,.6);animation:modalIn .3s cubic-bezier(.22,.7,.2,1)}
  .cb-modal-head{flex:0 0 auto;display:flex;align-items:flex-start;justify-content:space-between;gap:12px;padding:18px 22px;border-bottom:1px solid var(--line);background:linear-gradient(180deg,rgba(79,184,212,.05),transparent)}
  .cb-modal-kick{font-family:var(--mono);font-size:.6rem;letter-spacing:.2em;text-transform:uppercase;color:var(--blueprint)}
  .cb-modal-title{font-family:var(--display);font-weight:600;font-size:1.25rem;color:var(--parchment);margin-top:4px}
  .cb-modal-body{flex:1 1 auto;overflow-y:auto;padding:20px 22px}
