/* Industry map - builds on research.css (.atlas); scoped to .ind */
.ind{--L1:#0e6b5c;--L1s:#dff0ea;--L2:#2466b8;--L2s:#e2ecf8;--L3:#a0540e;--L3s:#f8ead9;--L4:#5b47a6;--L4s:#ebe7f6;--acq:#7a8b84}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]) .ind{--L1:#52c5a9;--L1s:#12302a;--L2:#79aef0;--L2s:#15253a;--L3:#eaa545;--L3s:#35260f;--L4:#b3a2ee;--L4s:#241d3d;--acq:#71867e}}
:root[data-theme="dark"] .ind{--L1:#52c5a9;--L1s:#12302a;--L2:#79aef0;--L2s:#15253a;--L3:#eaa545;--L3s:#35260f;--L4:#b3a2ee;--L4s:#241d3d;--acq:#71867e}
.ind .L1{--c:var(--L1);--cs:var(--L1s)}.ind .L2{--c:var(--L2);--cs:var(--L2s)}.ind .L3{--c:var(--L3);--cs:var(--L3s)}.ind .L4{--c:var(--L4);--cs:var(--L4s)}
.ind .scroll{overflow-x:auto}
.ind svg.ifig{display:block;width:100%;min-width:760px;height:auto;font-family:var(--f-ui)}
.ind .note{font-size:13px;color:var(--ink-3)}

/* market map */
.ind .mapctl{display:flex;flex-wrap:wrap;gap:10px 16px;align-items:center;margin:0 0 14px;font-size:13.5px;color:var(--ink-2)}
.ind .mapctl .lg{display:inline-flex;align-items:center;gap:6px}
.ind .sw{display:inline-block;width:22px;height:14px;border-radius:4px;border:1.5px solid var(--L1);background:var(--L1s)}
.ind .sw.g-acquired{border-style:dashed;background:transparent;border-color:var(--acq)}
.ind .sw.g-major{background:var(--L1);border-color:var(--L1)}
.ind .sw.g-oss{background:transparent}
.ind .mapctl input,.ind .mapctl select,.ind .tctl input,.ind .tctl select{font:inherit;font-size:14px;padding:6px 10px;border:1px solid var(--line-2);border-radius:8px;background:var(--surface);color:var(--ink)}
.ind .srch{display:inline-flex;gap:6px;align-items:center}
.ind .imap{display:grid;gap:12px}
.ind .lrow{display:grid;grid-template-columns:150px 1fr;gap:12px;background:var(--surface);border:1px solid var(--line);border-left:4px solid var(--c);border-radius:10px;padding:12px}
.ind .lhead b{display:block;font:700 17px/1.2 var(--f-display);color:var(--c)}
.ind .lhead span{font-size:12.5px;color:var(--ink-2)}
.ind .lsegs{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:10px}
.ind .sbox{background:var(--bg);border:1px solid var(--line);border-radius:8px;padding:8px 10px 10px}
.ind .sbox .sh{display:block;font:600 13px/1.3 var(--f-ui);color:var(--ink);text-decoration:none;margin-bottom:7px}
.ind .sbox .sh em{font-style:normal;color:var(--ink-3);font-weight:400}
.ind .chips{display:flex;flex-wrap:wrap;gap:5px}
.ind .co{font:500 12.5px/1.2 var(--f-ui);padding:4px 8px;border-radius:6px;cursor:pointer;border:1.5px solid var(--c);background:var(--cs);color:var(--ink);transition:opacity .15s,transform .15s}
.ind .co small{display:block;font-size:10.5px;color:var(--ink-3);font-weight:400}
.ind .co.g-major{background:var(--c);color:var(--surface);font-weight:600}
.ind .co.g-major small{color:inherit}
.ind .co.g-acquired{border-style:dashed;border-color:var(--acq);background:transparent;color:var(--ink-2)}
.ind .co.g-oss{background:transparent}
.ind .co.g-oss::before{content:"{ } ";font:600 10px var(--f-mono);color:var(--c)}
.ind .co:hover,.ind .co:focus-visible{transform:translateY(-1px);box-shadow:0 2px 6px rgba(0,0,0,.12)}
.ind .co.dim{opacity:.22}
.ind .co.hit{outline:2px solid var(--threat);outline-offset:1px}
@media (max-width:720px){.ind .lrow{grid-template-columns:1fr}}

/* svg styling */
.ind svg .tn{font-size:12.5px;fill:var(--ink)}
.ind svg .tn.b{font-weight:600}
.ind svg .tn.s{font-size:11px;fill:var(--ink-2);font-weight:400}
.ind svg .tn.num{font:600 12.5px var(--f-mono)}
.ind svg .th{font:600 11px var(--f-mono);letter-spacing:.06em;text-transform:uppercase;fill:var(--ink-2)}
.ind svg .ax{font:11px var(--f-mono);fill:var(--ink-3)}
.ind svg .ax.b{font:600 11px var(--f-ui);fill:var(--ink-2)}
.ind svg .tl{font-size:11.5px;fill:var(--ink);font-weight:500;paint-order:stroke;stroke:var(--surface);stroke-width:3px}
.ind svg .tc{font:500 11px var(--f-ui);fill:var(--ink)}
.ind svg .tv{font:600 10.5px var(--f-mono);fill:var(--surface)}
.ind svg .grid{stroke:var(--line);stroke-width:1}
.ind svg .axis{stroke:var(--line-2);stroke-width:1.5}
.ind svg .col{stroke:var(--line);stroke-dasharray:2 4}
.ind svg .edge{fill:none;stroke:var(--line-2);stroke-width:1.4}
.ind svg .edge.thin{stroke-dasharray:2 3}
.ind svg .edge.L1,.ind svg .edge.L2,.ind svg .edge.L3,.ind svg .edge.L4{stroke:var(--c);opacity:.55}
.ind svg .node rect{fill:var(--surface);stroke:var(--line-2);stroke-width:1.2}
.ind svg .node.root rect{fill:var(--ink);stroke:none}
.ind svg .node.root .tn{fill:var(--surface)}
.ind svg .node.lay rect{fill:var(--c);stroke:none}
.ind svg .node.lay .tn{fill:var(--surface)}
.ind svg .node.seg rect{fill:var(--cs);stroke:var(--c)}
.ind svg .node.seg a:hover rect{stroke-width:2.2}
.ind svg .chip rect{fill:var(--surface);stroke:var(--c);stroke-width:1}
.ind svg .acq circle{fill:var(--ink);opacity:.85}
.ind svg .tgt circle,.ind svg .dot circle,.ind svg .pt circle,.ind svg .pt rect{fill:var(--c);stroke:var(--surface);stroke-width:1.2;cursor:pointer}
.ind svg .tgt{cursor:pointer}
.ind svg .tgt:hover .tn.b{text-decoration:underline}
.ind svg .dot circle{fill-opacity:.75}
.ind svg .dot.und circle{fill:var(--surface);stroke:var(--c);stroke-width:1.6}
.ind svg .pt.ring circle{fill:var(--surface);stroke:var(--c);stroke-width:2.2}
.ind svg .pt.val rect{fill-opacity:.55}
.ind svg .band{fill:transparent}.ind svg .band.alt{fill:var(--bg)}
.ind svg .st.independent,.ind .legend .st.independent{fill:var(--L1);background:var(--L1)}
.ind svg .st.acquired,.ind .legend .st.acquired{fill:var(--acq);background:var(--acq)}
.ind svg .st.major,.ind .legend .st.major{fill:var(--L4);background:var(--L4)}
.ind svg .st.oss,.ind .legend .st.oss{fill:var(--L3);background:var(--L3)}
.ind svg .mat{fill:var(--c);fill-opacity:.8}
.ind svg .lic.prop,.ind .legend .lic.prop{fill:var(--line-2);background:var(--line-2)}
.ind svg .lic.core,.ind .legend .lic.core{fill:var(--L2);background:var(--L2)}
.ind svg .lic.open,.ind .legend .lic.open{fill:var(--L3);background:var(--L3)}
.ind svg .now{fill:var(--accent)}
.ind svg .fc{stroke:var(--threat);stroke-width:2.5}
.ind svg .fc2{fill:var(--threat)}
.ind .legend i.st,.ind .legend i.lic{display:inline-block;width:12px;height:12px;border-radius:3px;margin-right:6px;vertical-align:-1px}
.ind .legend{margin-top:10px}

/* methods */
.ind .mgrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:10px}
.ind .mgrid .m{background:var(--surface);border:1px solid var(--line);border-radius:8px;padding:10px 12px}
.ind .mgrid .m b{font:600 14px var(--f-ui)}
.ind .mgrid .m .n{font:600 12px var(--f-mono);color:var(--ink-3)}
.ind .mgrid .m p{margin:4px 0 0;font-size:13.5px;color:var(--ink-2)}

/* segment profiles */
.ind .layer-h{border-left:4px solid var(--c);padding-left:10px;color:var(--c)}
.ind .layer-h span{font:400 14px var(--f-ui);color:var(--ink-2);margin-left:6px}
.ind .segs{display:grid;grid-template-columns:repeat(auto-fit,minmax(340px,1fr));gap:14px}
.ind .seg{background:var(--surface);border:1px solid var(--line);border-top:3px solid var(--c);border-radius:10px;padding:14px 16px;scroll-margin-top:60px}
.ind .seg h4{font:700 18px/1.2 var(--f-display);letter-spacing:normal;text-transform:none;color:var(--ink);margin:0}
.ind .seg .mix{font-size:12.5px;color:var(--ink-3);margin:2px 0 8px}
.ind .seg p{font-size:14.5px;margin:6px 0}
.ind .seg dl{margin:8px 0;font-size:14px}
.ind .seg dt{font:600 11px var(--f-mono);letter-spacing:.06em;text-transform:uppercase;color:var(--c);margin-top:8px}
.ind .seg dd{margin:2px 0 0;color:var(--ink-2)}
.ind .seg .pc{display:grid;grid-template-columns:1fr 1fr;gap:10px;font-size:13.5px}
.ind .seg .pc ul{margin:4px 0 0;padding-left:18px;color:var(--ink-2)}
.ind .seg .lead-list{display:flex;flex-wrap:wrap;gap:5px;align-items:center;font-size:13px}

/* table */
.ind .tctl{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin-bottom:10px}
.ind .tctl input[type=search]{flex:1 1 260px}
.ind .tctl .tn{font:12.5px var(--f-mono);color:var(--ink-3)}
.ind .tbl-wrap{overflow:auto;max-height:78vh;border:1px solid var(--line);border-radius:10px;background:var(--surface)}
.ind .ctable{border-collapse:collapse;width:100%;min-width:1100px;font-size:13.5px}
.ind .ctable th{position:sticky;top:0;background:var(--sunk);text-align:left;font:600 12px var(--f-ui);color:var(--ink-2);padding:8px 10px;cursor:pointer;white-space:nowrap;z-index:1}
.ind .ctable th[aria-sort=ascending]::after{content:" ▲"}.ind .ctable th[aria-sort=descending]::after{content:" ▼"}
.ind .ctable td{padding:7px 10px;border-top:1px solid var(--line);vertical-align:top}
.ind .ctable tr{cursor:pointer}
.ind .ctable tbody tr:hover{background:var(--bg)}
.ind .ctable td small{display:block;color:var(--ink-3);font-size:11.5px}
.ind .ctable .num{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}
.ind .ctable .ap{max-width:420px;color:var(--ink-2)}
.ind .ctable .cl{max-width:200px;color:var(--ink-2)}
.ind .ctable .nm b{font-weight:600}
.ind .sg{display:inline-block;font-size:11.5px;padding:2px 7px;border-radius:999px;background:var(--cs);color:var(--ink);border:1px solid var(--c);white-space:nowrap}
.ind .mt{display:inline-block;min-width:22px;text-align:center;border-radius:4px;font:600 12px var(--f-mono);padding:1px 4px;background:var(--sunk)}
.ind .mt.m4,.ind .mt.m5{background:var(--accent);color:var(--surface)}
.ind .mt.m3{background:var(--accent-soft)}

/* dialog */
.ind dialog{max-width:720px;width:calc(100% - 32px);border:1px solid var(--line-2);border-radius:12px;background:var(--surface);color:var(--ink);padding:20px 22px;box-shadow:0 20px 60px rgba(0,0,0,.3)}
.ind dialog::backdrop{background:rgba(10,16,14,.45)}
.ind dialog h3{font:700 24px/1.15 var(--f-display);margin:0 0 8px}
.ind dialog .x{position:absolute;right:12px;top:8px;font-size:26px;background:none;border:0;color:var(--ink-2);cursor:pointer}
.ind dialog .badges{display:flex;flex-wrap:wrap;gap:6px;margin:0 0 10px}
.ind dialog .b{font-size:12px;padding:2px 8px;border-radius:999px;background:var(--sunk);color:var(--ink-2)}
.ind dialog .b.L1,.ind dialog .b.L2,.ind dialog .b.L3,.ind dialog .b.L4{background:var(--cs);color:var(--ink);border:1px solid var(--c)}
.ind dialog dl{display:grid;grid-template-columns:140px 1fr;gap:6px 12px;font-size:14px;margin:12px 0 0}
.ind dialog dt{font:600 11px var(--f-mono);letter-spacing:.05em;text-transform:uppercase;color:var(--ink-3);padding-top:2px}
.ind dialog dd{margin:0;color:var(--ink-2);overflow-wrap:anywhere}
@media (max-width:560px){.ind dialog dl{grid-template-columns:1fr}.ind .seg .pc{grid-template-columns:1fr}}
.ind .caveats{font-size:14.5px;color:var(--ink-2);max-width:80ch}
.ind svg .lead{stroke:var(--ink-3);stroke-width:.8;stroke-dasharray:2 2}
.ind .ctable .ap{display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;max-width:420px}.ind .ctable td.ap{display:table-cell}.ind .ctable .ap-in{display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
