/* TD Industry — Blueprint Library (grouped cards, in-game art, ME/TE meters, gaps) */
  /* controls */
  .bp-controls{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:18px}
  .bp-controls .input{flex:1;min-width:180px}
  /* coverage gaps */
  .bp-gaps{border-color:var(--oxblood);background:rgba(94,22,34,.08);margin-bottom:20px}
  .gap-list{display:flex;flex-wrap:wrap;gap:8px}
  .gap-chip{font-family:var(--mono);font-size:.72rem;color:#e0a0aa;border:1px solid var(--oxblood);border-radius:999px;padding:5px 12px;background:rgba(94,22,34,.15);cursor:pointer;transition:background .15s,border-color .15s,color .15s}
  .gap-chip:hover{background:rgba(94,22,34,.3);color:var(--parchment);border-color:var(--crit)}

  /* groups */
  .bp-group{margin-bottom:24px}
  .bp-grouph{font-family:var(--mono);font-size:.62rem;letter-spacing:.16em;text-transform:uppercase;color:var(--blueprint);margin:0 2px 12px;display:flex;align-items:center;gap:9px}
  .bp-groupn{color:var(--slate-dim)}
  .bp-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(330px,1fr));gap:12px}

  /* card */
  .bpcard{display:flex;gap:14px;border:1px solid var(--line);border-radius:9px;padding:14px;background:var(--midnight);transition:border-color .18s,transform .18s,box-shadow .18s}
  .bpcard:hover{border-color:var(--blueprint-dim);transform:translateY(-2px);box-shadow:0 10px 24px rgba(0,0,0,.28)}
  .bpcard.bpo{border-left:2px solid var(--gold-dim)}
  .bpcard.bpc{border-left:2px solid var(--blueprint-dim)}
  /* blueprint art (falls back to a blueprint-grid tile if the image can't load) */
  .bpcard-img{position:relative;width:72px;height:72px;flex:0 0 auto;border-radius:7px;overflow:hidden;border:1px solid var(--line-soft);display:flex;align-items:center;justify-content:center;
    background:linear-gradient(rgba(79,184,212,.06),rgba(79,184,212,.02)),
      repeating-linear-gradient(0deg,transparent 0 8px,rgba(79,184,212,.09) 8px 9px),
      repeating-linear-gradient(90deg,transparent 0 8px,rgba(79,184,212,.09) 8px 9px),var(--void2)}
  .bpcard-img .bp-img{width:100%;height:100%;object-fit:contain}
  .bpcard-img.broken::after{content:"◳";font-size:1.4rem;color:var(--blueprint-dim)}
  .bpcard-badge{position:absolute;left:4px;bottom:4px;font-family:var(--mono);font-size:.5rem;letter-spacing:.06em;padding:2px 5px;border-radius:3px;background:rgba(8,12,24,.8);border:1px solid var(--line)}
  .bpcard.bpo .bpcard-badge{color:var(--gold);border-color:var(--gold-dim)}
  .bpcard.bpc .bpcard-badge{color:var(--blueprint);border-color:var(--blueprint-dim)}
  .bpcard-body{flex:1;min-width:0;display:flex;flex-direction:column;gap:8px}
  .bpcard-top{display:flex;align-items:flex-start;gap:10px}
  .bpcard-name{font-size:.94rem;color:var(--parchment);font-weight:500;flex:1;min-width:0;line-height:1.25}
  .bpcard-sub{font-family:var(--mono);font-size:.66rem;color:var(--slate);margin-top:-4px}
  .bp-val{color:var(--gold)}
  /* research meters */
  .bp-meters{display:flex;flex-direction:column;gap:5px}
  .bpm{display:flex;align-items:center;gap:9px;font-family:var(--mono);font-size:.62rem}
  .bpm-l{color:var(--slate-dim);width:22px;letter-spacing:.08em}
  .bpm-track{flex:1;height:6px;background:var(--void2);border:1px solid var(--line-soft);border-radius:4px;overflow:hidden}
  .bpm-fill{display:block;height:100%;border-radius:3px;transition:width .5s cubic-bezier(.22,.7,.2,1)}
  .bpm-v{color:var(--parchment);white-space:nowrap;font-variant-numeric:tabular-nums}
  .bpm-v small{color:var(--slate-dim)}
  /* status chip */
  .bp-status{font-family:var(--mono);font-size:.54rem;letter-spacing:.06em;text-transform:uppercase;border:1px solid;border-radius:999px;padding:3px 9px;white-space:nowrap;flex:0 0 auto}
  .bp-status.perfect{color:var(--emerald);border-color:#2f5e43;background:rgba(78,163,107,.08)}
  .bp-status.good{color:var(--emerald);border-color:#2f5e43}
  .bp-status.mid{color:var(--gold);border-color:var(--gold-dim)}
  .bp-status.raw{color:var(--gold-bright);border-color:var(--gold-dim)}
  .bp-status.copy{color:var(--blueprint);border-color:var(--blueprint-dim)}
  .bp-status.rx{color:#a98bd8;border-color:#5a4a7a;background:rgba(169,139,216,.08)}
  /* reaction cards have no ME/TE — a note stands in for the meters */
  .bp-rxnote{font-family:var(--mono);font-size:.62rem;color:var(--slate-dim);border:1px dashed var(--line);border-radius:6px;padding:9px 11px;letter-spacing:.02em}
  /* footer + actions */
  .bpcard-foot{font-family:var(--mono);font-size:.66rem;color:var(--slate);margin-top:auto}
  .bpcard-own{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;display:block}
  .bpcard-act{display:flex;align-items:center;gap:8px;flex-wrap:wrap;padding-top:2px}
  .bp-recipe{display:inline-flex;align-items:center;gap:7px;background:transparent;border:1px solid var(--blueprint-dim);color:var(--blueprint);font-family:var(--mono);font-size:.64rem;letter-spacing:.03em;padding:7px 11px;border-radius:5px;cursor:pointer;transition:background .18s}
  .bp-recipe:hover{background:rgba(79,184,212,.08)}
  .bp-recipe svg{width:14px;height:14px;stroke:currentColor;fill:none;stroke-width:1.8}
  .bp-req{font-family:var(--mono);font-size:.64rem;text-transform:uppercase;letter-spacing:.05em;color:var(--gold);border:1px solid var(--gold-dim);border-radius:5px;padding:7px 12px;background:transparent;cursor:pointer}
  .bp-req:hover{background:rgba(212,175,55,.08)}
  .bp-done{font-family:var(--mono);font-size:.66rem;color:var(--emerald)}
  .bp-reqform{display:inline-flex;align-items:center;gap:7px;font-family:var(--mono);font-size:.66rem;color:var(--slate)}
  .bp-reqform input{width:48px;height:30px;background:var(--void);border:1px solid var(--line);border-radius:5px;color:var(--parchment);text-align:center;font-family:var(--mono);font-size:.74rem;outline:none}
  .bp-reqform input:focus{border-color:var(--blueprint-dim)}
  .bp-reqform .post{background:var(--blueprint);color:var(--void);border:0;border-radius:4px;padding:7px 10px;font-family:var(--mono);font-size:.6rem;text-transform:uppercase;font-weight:600;cursor:pointer}
  @media(max-width:560px){.bp-grid{grid-template-columns:1fr}}
