/* /who-buys-from-whom customer map, variant D small multiples (hs-design/dependency-map/SPEC.md §7; matrix/network rules of the prototype dropped) */
.dm{max-width:1040px;padding-top:24px}
.dm-q{font:600 32px/1.2 "IBM Plex Sans",sans-serif;color:var(--ink);margin:0 0 8px;letter-spacing:-.01em}
.dm-hl{font:400 20px/1.35 "IBM Plex Sans",sans-serif;color:var(--ink);margin:0 0 4px;max-width:48ch}
.dm-sub{font:400 14px/1.4 "IBM Plex Sans",sans-serif;color:var(--sec);margin:0 0 24px;max-width:60ch}
.nw{white-space:nowrap}
.dm-key{display:flex;flex-wrap:wrap;align-items:center;gap:4px 8px;font:400 13px/1.5 "IBM Plex Sans",sans-serif;color:var(--sec);margin:0 0 16px}
.sw{display:inline-block;width:16px;height:8px;margin-left:8px}.sw:first-child{margin-left:0}
.sw-n{background:var(--ink)}.sw-u{background:var(--c2)}
.dm-list{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:1fr;gap:16px}
@media (min-width:900px){.dm-list{grid-template-columns:repeat(3,minmax(0,1fr));column-gap:32px;row-gap:24px;align-items:start}}
.dm-s{border-top:1px solid var(--rule);padding-top:4px}
.dm-sn{margin:0;font:600 16px/1.4 "IBM Plex Sans",sans-serif;display:flex;align-items:baseline;gap:8px}
.dm-sn>span:first-child{min-height:44px;display:inline-flex;align-items:center}
.dm-sn a{color:var(--ink);text-decoration:none;border:0;min-height:44px;min-width:44px;display:inline-flex;align-items:center}
@media (hover:hover){.dm-sn a:hover{text-decoration:underline}}
.dm-fy{font:400 13px/1 "IBM Plex Sans",sans-serif;color:var(--sec);font-variant-numeric:tabular-nums}
.dm-rows{list-style:none;margin:0;padding:0}
.dm-r>summary{list-style:none;display:grid;grid-template-columns:minmax(0,13fr) minmax(0,7fr) 6.5ch;align-items:center;gap:8px;min-height:44px;cursor:pointer;font:400 15px/1.3 "IBM Plex Sans",sans-serif;color:var(--ink)}
.dm-r>summary::-webkit-details-marker{display:none}
.dm-r>summary{-webkit-tap-highlight-color:transparent}
.dm-r>summary:active{background:color-mix(in srgb,var(--ink) 8%,transparent)}
.dm-r>summary:focus-visible{outline:2px solid var(--focus);outline-offset:2px}
.dm-l{overflow-wrap:anywhere}
@media (max-width:359px){.dm-r>summary{font-size:14px}}   /* labels <= 2 lines at 320 (gate P3) */
.dm-l i{font-style:normal;color:var(--sec)}
.dm-u .dm-l{color:var(--sec)}
.dm-b{display:block;height:12px}
.dm-b i{display:block;height:100%;background:var(--ink)}
.dm-u .dm-b i{background:var(--c2)}
.dm-v{text-align:right;font-variant-numeric:tabular-nums;font-weight:500;white-space:normal;line-height:1.25}
.dm-vg{grid-column:2/-1}
@media (max-width:719px){.dm-vg{grid-column:1/-1}}   /* mobile: the share text on its own full-width line (Marketing 439f29d P2-2) */   /* shares as listed ('16%, 15%, 12% and 12%'): own line under bar and value, wraps at spaces, each share whole (Cos 439f29d P1-1) */
.dm-top{font-weight:700}
.dm-r[open]>summary{border-bottom:1px solid var(--rule)}
.dm-d{font:400 14px/1.5 "IBM Plex Sans",sans-serif;color:var(--ink);padding:8px 0 12px;border-bottom:1px solid var(--rule);overflow-wrap:anywhere}
.dm-d p{margin:0 0 8px}.dm-d blockquote{margin:0 0 8px;padding-left:12px;border-left:2px solid var(--rule);color:var(--ink)}
.dm-lbl,.dm-src,.dm-nos,.dm-sec{color:var(--sec);font-size:13px}
.dm-raw{margin:0 0 8px}.dm-raw>summary{color:var(--sec);font-size:13px;cursor:pointer;min-height:24px}.dm-raw[open]>summary{margin-bottom:6px}
.dm a.dm-x,.dm-d a,.dm-more a{color:var(--ink);border:0;text-decoration:underline;text-underline-offset:2px}
.dm-src a,.dm-d p>a{display:inline-block;padding:12px 0;margin:-12px 0;min-width:24px}
.dm-x-p{font:400 15px/1.5 "IBM Plex Sans",sans-serif;color:var(--sec);margin:0 0 16px}
.dm-x-p a{display:inline-block;padding:12px 0;margin:-12px 0}
.dm-more{margin-top:32px;border-top:1px solid var(--rule);font:400 15px/1.5 "IBM Plex Sans",sans-serif;color:var(--ink)}
.dm-more>summary{min-height:44px;display:flex;align-items:center;cursor:pointer;font-weight:500}
.dm-more>summary::-webkit-details-marker{display:none}.dm-more>summary::after{content:"+";margin-left:auto;padding-left:16px;font-weight:400}.dm-more[open]>summary::after{content:"\2212"}
.dm-more>summary:focus-visible{outline:2px solid var(--focus);outline-offset:2px}
.dm-more h3{font:600 15px/1.4 "IBM Plex Sans",sans-serif;margin:16px 0 4px}
.dm-ll{list-style:none;margin:0;padding:0}.dm-ll li{min-height:32px;display:flex;align-items:center;flex-wrap:wrap;gap:0 4px}
.dm-ll a{min-height:32px;min-width:24px;display:inline-flex;align-items:center}
@media (max-width:719px){.dm-ll li,.dm-ll a{min-height:44px}}
@media (min-width:900px){.dm-cols{columns:4;column-gap:32px}.dm-cols li{break-inside:avoid}}
@media (max-width:719px){.dm-q{font-size:28px}.dm-hl{font-size:18px}}

/* basis line under the label (GFS: of wafer revenue): label + basis = 2 lines max at 320-1280 */
.dm-bs{grid-column:1/-1;margin-top:-6px;font-size:14px;color:var(--sec)}   /* own grid line under label, bar and value: the label stays <= 2 lines */
/* one value column (6.5ch, line 19) for every row: fits "16.4%*" and "approx." over "14%" (Design recheck fdef53d P2) */
.dm-ap{display:block;font-size:12px;font-weight:400;line-height:1.2;color:var(--sec);text-decoration:none}   /* filing qualifier on its own line in the value cell: "approx." over "14%" */
/* forced colors: bars and legend swatches stay visible (Design recheck fdef53d P3) */
@media (forced-colors:active){.dm-b i,.sw{forced-color-adjust:none;background:CanvasText}.dm-u .dm-b i,.sw-u{background:GrayText}}
@media (max-width:359px){.dm-hl{font-size:17px}}   /* map headline <= 2 lines at 320 px (Design recheck fdef53d P2) */
