#load-screen{position:fixed;inset:0;z-index:100000;background:#F5F2EC;display:flex;align-items:center;justify-content:center;font-family:inherit;}
.load-box{background:#fff;border:1px solid #E3DED4;border-radius:var(--r-modal);padding:34px 30px;width:330px;max-width:90vw;box-shadow:var(--shadow-modal);text-align:center;}
.load-title{font-size:18px;font-weight:600;letter-spacing:-0.01em;color:var(--ink);}
.load-sub{font-size:13px;color:var(--muted);margin:6px 0 0;}
.load-err{min-height:16px;margin-top:12px;font-size:12px;color:var(--red,#A32035);}
/* One place where colour, type, spacing and shadow are named. The tier ramp
   (--lvl-*) and the green share ramp (--d*) are declared with the risk-view rules
   further down, in the same authority rather than a second copy of it. */
:root{
  /* text: one ramp. --faint is decorative, and only at 14px and up. */
  --ink:#1A1A1A;--body:#3A3A38;--muted:#6E6E6B;--faint:#9A9A95;
  /* chrome */
  --chip:#4E4E4B;--line:#E8E8E6;--rule:#C9C9C4;--bg:#FAFAFA;--card:#FFFFFF;--empty:#ECECEA;
  /* brand and interaction. Never a data fill. */
  --red:#A32035;--red-dark:#5E0E20;--red-pale:#E8C4CB;--red-tint:#FAF3F4;
  /* structure: the pale-blue axis band, wherever something labels an axis or a group */
  --axis:#DCE9F4;--axis-line:#B4CFE4;--axis-ink:#3F5F79;
  /* semantics: green only ever means found/yes, amber only ever means gap/caveat */
  --green:#2E8B57;--yes:var(--green);--yes-tint:#E4F2E4;
  --amber:#E8A317;--amber-deep:#B97D08;--gap:var(--amber);--gap-deep:#8A5A18;--gap-tint:#FCF3E3;
  /* the mitigation domain palette, read by the chart's inline fills */
  --mit-any:#C77CA6;--mit-1:#3E9C72;--mit-1c:#84C1A2;--mit-2:#6B4C93;--mit-2c:#9C88C4;
  --mit-3:#E0A22B;--mit-3c:#EFC98D;
  /* the type scale every size snaps to */
  --fs-tick:9.5px;--fs-eyebrow:10.5px;--fs-cap:11px;--fs-sec:12px;--fs-ui:13px;
  --fs-body:14px;--fs-lead:15.5px;--fs-h2:18px;--fs-h1:22px;
  /* rhythm */
  --sp-1:4px;--sp-2:8px;--sp-3:12px;--sp-4:16px;--sp-5:24px;--sp-6:32px;--sp-7:48px;
  --r-cell:3px;--r-ctl:6px;--r-modal:10px;--r-pill:999px;
  --shadow-hover:0 2px 10px rgba(26,26,26,.06);
  --shadow-pop:0 10px 30px rgba(26,26,26,.14);
  --shadow-modal:0 20px 60px rgba(0,0,0,.25);
  --measure:760px;--measure-wide:820px;
}
*{box-sizing:border-box;margin:0;padding:0;}
body{font-family:'Figtree',sans-serif;background:var(--bg);color:var(--ink);font-size:14px;line-height:1.4;-webkit-font-smoothing:antialiased;}
.page{max-width:2100px;margin:0 auto;padding:0 28px 0;}   /* no top padding: the red bar is the first thing on the page */
.header{background:#1A1A1A;text-align:center;width:100vw;margin-left:calc(50% - 50vw);padding:16px calc(50vw - 50%);margin-bottom:18px;}
.header h1{color:#fff;font-size:22px;font-weight:700;letter-spacing:-0.015em;}
@media(max-width:560px){.header h1{font-size:18px;}}
.brand{display:flex;align-items:center;gap:12px;flex:1;}
.brand-mark{width:18px;height:18px;background:var(--red);position:relative;}
.brand-mark::before{content:'';position:absolute;width:6px;height:18px;left:6px;top:0;background:var(--card);}
.brand-mark::after{content:'';position:absolute;width:18px;height:6px;left:0;top:6px;background:var(--card);}
.brand-text{font-size:13px;font-weight:600;}
.brand-text span{color:var(--muted);font-weight:400;}
.title-block{flex:1;text-align:left;}
/* The bar carries the brand red and is now the first thing on the page. */
.sitebar{display:flex;align-items:center;justify-content:space-between;gap:14px 24px;flex-wrap:wrap;width:100vw;margin-left:calc(50% - 50vw);padding:18px calc(50vw - 50%) 13px;margin-bottom:18px;background:var(--red);border-bottom:3px solid var(--red-dark);}
.sitebar-brand{display:flex;align-items:center;gap:16px;margin-left:clamp(0px,6vw,110px);}
/* the way back to the landing page (airisk.mit.edu/company-disclosures), which embeds the Explorer: _top, so it
   leaves the frame rather than loading the landing page inside it */
.sitebar-names{display:flex;flex-direction:column;align-items:flex-start;gap:3px;}
.sitebar-back{font-size:13px;line-height:1.3;color:rgba(255,255,255,.85);text-decoration:none;padding:4px 0;margin:-4px 0;}
.sitebar-back:hover,.sitebar-back:focus-visible{color:#fff;text-decoration:underline;text-underline-offset:3px;outline:none;}
.sitebar-title{font-size:22px;font-weight:700;color:#fff;letter-spacing:-0.01em;line-height:1.15;text-decoration:none;}
.sitebar-title:hover,.sitebar-title:focus-visible{text-decoration:underline;text-underline-offset:3px;outline:none;}
@media(max-width:640px){.sitebar-title{font-size:18px;}}
/* site footer */
.site-footer{display:flex;align-items:center;justify-content:space-between;gap:8px 24px;flex-wrap:wrap;width:100vw;margin-left:calc(50% - 50vw);margin-top:48px;padding:8px calc(50vw - 50%);background:#fff;border-top:1px solid var(--line);font-size:12px;color:var(--muted);}
.site-footer a{color:var(--muted);text-decoration:underline;}
.site-footer a:hover{color:var(--ink);}
.sitebar-logo{display:inline-flex;align-items:center;}
.sitebar-logo img{height:40px;display:block;}
.sitenav{display:flex;flex-wrap:wrap;gap:6px 18px;align-items:center;}
.sitenav a{font-size:13px;color:var(--red);text-decoration:none;font-weight:700;white-space:nowrap;}
.sitenav a:hover{color:var(--red-dark);}
.title-block h1{font-size:18px;font-weight:600;letter-spacing:-0.01em;}
.title-block p{font-size:12px;color:var(--muted);margin-top:2px;}
.framing{font-size:15.5px;line-height:1.5;max-width:var(--measure-wide);margin:0 0 20px;}
.framing p{margin:0 0 12px;}
.framing p:last-child{margin-bottom:0;}
.framing b{color:var(--red);font-weight:600;}
.framing .am{color:var(--amber-deep);font-weight:600;}
.framing-note{font-size:13px;color:var(--muted);margin-top:8px;line-height:1.5;}
.framing-note b{color:var(--ink);font-weight:600;}
.layout{display:grid;grid-template-columns:184px minmax(0,1fr) 250px;gap:16px;align-items:start;}
.layout.mx-full{grid-template-columns:minmax(0,1fr) 250px;}
/* no side panels: keep the card to a readable width and center it rather than letting it span the page */
.layout.mx-solo{grid-template-columns:minmax(0,1fr);max-width:1180px;margin:0 auto;}
.layout.mx-solo.mx-wide{max-width:min(1560px,96vw);}
.layout.mx-wide .center{overflow-x:visible;}
.panel{background:var(--card);border:1px solid var(--line);border-radius:var(--r-ctl);padding:18px;}
.panel-title{font-size:10.5px;font-weight:700;text-transform:uppercase;letter-spacing:0.05em;color:var(--muted);margin-bottom:12px;}
.filter-group{margin-bottom:18px;}
.filter-label{font-size:11px;color:var(--muted);margin-bottom:6px;font-weight:500;}
.filter-select{width:100%;padding:7px 10px;font-size:13px;font-family:inherit;border:1px solid var(--line);border-radius:var(--r-ctl);background:var(--card);color:var(--ink);appearance:none;cursor:pointer;background-image:url("data:image/svg+xml,%3Csvg width='10' height='6' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M1 1l4 4 4-4' stroke='%236E6E6B' fill='none' stroke-width='1.5'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 10px center;}
/* no card chrome: the tables carry their own borders, so a box around them was a box inside a box */
.center{padding:22px;overflow-x:auto;min-height:480px;}
.center-header{display:flex;align-items:center;justify-content:space-between;}
.center-header h2{font-size:22px;font-weight:600;letter-spacing:-0.01em;}
.center-header h2:empty{display:none;}
/* On red the track is a lift of the ground rather than a grey, an inactive tab is white held back, and
   the selected one inverts to a white pill with the red on it. */
.tabs{display:inline-flex;gap:2px;flex-wrap:wrap;background:rgba(255,255,255,0.16);padding:4px;border-radius:var(--r-modal);}
.chip{display:inline-block;font-size:13px;font-weight:600;padding:7px 15px;background:transparent;border:none;border-radius:var(--r-ctl);cursor:pointer;color:rgba(255,255,255,0.9);text-decoration:none;transition:background 0.12s,color 0.12s,box-shadow 0.12s;white-space:nowrap;}
.chip:focus-visible{outline:2px solid #fff;outline-offset:2px;}
.chip:hover{color:#fff;background:rgba(0,0,0,0.18);}
.chip.active{background:#fff;color:var(--red);font-weight:700;box-shadow:0 1px 2px rgba(0,0,0,0.18),0 0 0 0.5px rgba(0,0,0,0.06);}
.chip.active:hover{background:#fff;color:var(--red);}
.axis-cue{display:flex;align-items:center;margin-bottom:10px;}
.axis-spacer{width:158px;flex-shrink:0;}
.axis-arrow{font-size:11px;color:var(--muted);font-style:italic;}
.tip{border-bottom:1px dotted var(--muted);cursor:help;position:relative;font-style:normal;}
/* a term that is also a source link: same dotted underline, inherits its surroundings, never browser blue */
.tip-link{color:inherit;text-decoration:none;cursor:pointer;border-bottom:1px dotted currentColor;position:relative;}
.tip-link:hover{color:var(--red);}
.tip:hover::after,.tip:focus-visible::after{font-family:'Figtree',sans-serif;font-weight:400;font-style:normal;content:attr(data-tip);position:absolute;left:0;top:calc(100% + 6px);background:var(--ink);color:#fff;font-size:13px;line-height:1.45;font-style:normal;font-weight:400;letter-spacing:0;text-transform:none;padding:8px 11px;border-radius:var(--r-ctl);z-index:50;white-space:normal;box-shadow:var(--shadow-pop);width:max-content;max-width:320px;}
.tip:hover::before,.tip:focus-visible::before{content:'';position:absolute;left:14px;top:calc(100% + 1px);border:5px solid transparent;border-bottom-color:var(--ink);z-index:51;}
.intro-overlay{position:fixed;inset:0;background:rgba(26,26,26,0.5);display:flex;align-items:center;justify-content:center;z-index:100;padding:24px;}
/* above the highlight viewer's 1000: the tour opens it, so the card has to stay on top */
.tour{position:fixed;inset:0;z-index:1400;cursor:pointer;}   /* catches clicks: outside the card closes the tour */
.tour-card{cursor:default;}
.tour-spot{position:absolute;border-radius:var(--r-ctl);box-shadow:0 0 0 9999px rgba(26,26,26,0.5);transition:all 0.35s cubic-bezier(.4,0,.2,1);pointer-events:none;border:2px solid #fff;}
.tour-card{position:absolute;width:300px;background:var(--card);border-radius:var(--r-modal);padding:18px 20px;box-shadow:var(--shadow-modal);pointer-events:auto;transition:top 0.35s cubic-bezier(.4,0,.2,1),left 0.35s cubic-bezier(.4,0,.2,1);}
.tour-step-n{font-size:10.5px;font-weight:700;text-transform:uppercase;letter-spacing:0.05em;color:var(--muted);margin-bottom:6px;}
.tour-title{font-size:18px;font-weight:600;margin-bottom:7px;}
.tour-body{font-size:13px;line-height:1.5;color:var(--ink);margin-bottom:16px;}
.tour-body b{color:var(--red);font-weight:600;}
.tour-nav{display:flex;align-items:center;justify-content:space-between;}
.tour-nav-r{display:flex;gap:8px;}
.tour-skip{background:none;border:none;font-family:inherit;font-size:12px;color:var(--muted);cursor:pointer;padding:6px 0;}
.tour-skip:hover{color:var(--ink);}
.tour-btn{padding:7px 14px;font-family:inherit;font-size:12px;font-weight:500;border-radius:var(--r-ctl);border:1px solid var(--line);background:var(--card);color:var(--ink);cursor:pointer;}
.tour-btn:hover{border-color:var(--muted);}
.tour-btn.primary{background:var(--ink);color:#fff;border-color:var(--ink);}
.tour-btn.primary:hover{background:var(--red);border-color:var(--red);}
.tour-btn:disabled{opacity:0.4;cursor:default;}
.intro-card{background:var(--card);border-radius:var(--r-modal);max-width:520px;width:100%;padding:30px 32px;box-shadow:var(--shadow-modal);}
.intro-title{font-size:18px;font-weight:600;margin-bottom:12px;}
.intro-body{font-size:14px;line-height:1.55;color:var(--ink);margin-bottom:18px;}
.intro-body b{color:var(--red);}
.intro-steps{display:flex;flex-direction:column;gap:10px;margin-bottom:22px;}
.intro-step{font-size:13px;display:flex;align-items:center;gap:10px;color:var(--ink);}
.intro-step b{font-weight:600;}
.intro-dot{width:20px;height:20px;border-radius:50%;background:var(--red);color:#fff;font-size:11px;font-weight:600;display:flex;align-items:center;justify-content:center;flex-shrink:0;}
.intro-actions{display:flex;gap:10px;flex-wrap:wrap;}
.intro-hint{font-size:13px;color:var(--muted);line-height:1.5;margin-bottom:20px;}
.intro-body p{margin:0;}
.intro-body p+p{margin-top:10px;}
.intro-logo{height:30px;display:block;margin-bottom:18px;}
.intro-btn{padding:9px 18px;font-family:inherit;font-size:13px;font-weight:500;border-radius:var(--r-ctl);border:1px solid var(--line);background:var(--card);color:var(--ink);cursor:pointer;}
.intro-btn:hover{border-color:var(--muted);}
.intro-btn.primary{background:var(--ink);color:#fff;border-color:var(--ink);}
.intro-btn.primary:hover{background:var(--red);border-color:var(--red);}
.guide-wrap{max-width:none;}
/* The tour is an action rather than a view, so it sits at the end of the bar behind a
   divider and never takes the active state the tabs share. */

.guide-body{font-size:15px;line-height:1.62;margin-bottom:12px;color:var(--body);max-width:var(--measure);}
.guide-body b{color:var(--ink);font-weight:600;}
.about-tbl{width:100%;max-width:var(--measure);border-collapse:collapse;background:#fff;border:1px solid var(--line);border-radius:var(--r-ctl);overflow:hidden;margin:10px 0 2px;font-size:13px;}
.about-tbl th{text-align:left;vertical-align:top;width:210px;padding:12px 14px;font-weight:700;color:var(--ink);background:#fff;border-bottom:1px solid var(--line);border-right:1px solid var(--line);}
.about-tbl td{vertical-align:top;padding:12px 14px;color:var(--body);line-height:1.5;background:#fff;border-bottom:1px solid var(--line);}
.about-tbl tr:last-child th,.about-tbl tr:last-child td{border-bottom:none;}
/* the decomposed parts of a sector, indented under the category they came from, the same
   relationship the Sectors tab draws with its dashed child rows */
.about-tbl .abt-kid th{font-weight:600;color:var(--body);padding-left:16px;}
.abt-dash{display:inline-block;width:12px;color:var(--muted);font-weight:400;}
/* horizontal scroll wrapper so wide tables never force the page to scroll sideways */
.about-scroll{overflow-x:auto;max-width:100%;margin:10px 0 2px;-webkit-overflow-scrolling:touch;}
.about-scroll .about-tbl{margin:0;}
/* the 24-risk taxonomy table: domain (grouped), risk, definition */
.about-risk-tbl{width:100%;min-width:680px;border-collapse:collapse;background:#fff;border:1px solid var(--line);border-radius:var(--r-ctl);overflow:hidden;font-size:13px;}
.about-risk-tbl th{text-align:left;vertical-align:top;padding:11px 13px;font-weight:700;color:var(--ink);background:var(--bg);border-bottom:1px solid var(--line);}
.about-risk-tbl td{vertical-align:top;padding:11px 13px;line-height:1.5;border-bottom:1px solid var(--line);}
.about-risk-tbl .ar-dom{width:150px;font-weight:700;color:var(--ink);background:var(--bg);border-right:1px solid var(--line);}
.about-risk-tbl .ar-risk{width:220px;color:var(--ink);border-right:1px solid var(--line);}
.about-risk-tbl .ar-def{color:var(--body);}
.about-risk-tbl tbody tr:last-child td{border-bottom:none;}
/* About page accordion: a plain list of questions, each on its own line with a rule
   underneath and a + at the left that becomes a - when the answer is open. No panel and no
   fill: the questions are the page, and a row of tinted bars was reading as chrome. */
.about-acc{border:0;border-bottom:1px solid var(--line);border-radius:0;margin:0;background:none;}
.about-acc>summary{list-style:none;cursor:pointer;display:flex;align-items:baseline;gap:12px;
  padding:14px 4px;font-size:15px;font-weight:600;line-height:1.4;color:var(--ink);
  transition:color .12s;}
.about-acc>summary::-webkit-details-marker{display:none;}
/* the marker leads the question, and is a fixed width so every question starts on the
   same left edge whether it is open or closed */
.about-acc>summary::before{content:'+';flex:none;width:13px;text-align:center;
  font-size:15px;font-weight:400;line-height:1.1;color:var(--red);}
.about-acc[open]>summary::before{content:'\2212';}
.about-acc>summary:hover{color:var(--red);}
.about-acc>summary:focus-visible{outline:2px solid var(--red);outline-offset:2px;border-radius:var(--r-cell);}
/* the answer lines up with the question's text, not with its marker */
.acc-a{padding:2px 4px 16px 29px;}
.acc-a .guide-body:last-child{margin-bottom:0;}
/* FAQ section headings. Set as headings: ink, sized to lead the questions under them, with
   a short red rule above. They were 12px uppercase grey, which read as a caption. */
/* Lighter than the page title, not heavier: at 700 these sat above .sec-q's 600 and the eye met a run of
   section headings before it met the page. The red rule under each is gone with it; the questions below
   already carry the accent on their + markers, so the page keeps its colour without a bar per section. */
.faq-sec{margin:40px 0 16px;font-size:18px;font-weight:600;letter-spacing:-0.012em;
  color:var(--ink);line-height:1.25;}
.faq-sec:first-of-type{margin-top:6px;}
.faq-list{margin:0 0 12px;padding-left:4px;max-width:var(--measure);font-size:15px;line-height:1.6;
  color:var(--body);list-style:none;}
.faq-list li{position:relative;padding-left:18px;margin-bottom:8px;}
.faq-list li::before{content:'';position:absolute;left:2px;top:9px;width:5px;height:5px;
  border-radius:50%;background:#4E7BA0;}
.faq-list li:last-child{margin-bottom:0;}
.faq-list b{color:var(--ink);font-weight:600;}
.faq-lnk{color:var(--red);text-decoration:underline;text-underline-offset:2px;}
.faq-lnk:hover{color:var(--red-dark);}
/* copy that is not written yet, marked so it cannot ship unnoticed */
/* A citation, set apart so it can be read off and copied: hanging indent, its own rule, and the title in
   italic as every style expects it. Square brackets mark what is not settled yet. */
.faq-cite{font-size:13px;line-height:1.6;color:var(--ink);max-width:var(--measure);margin:0 0 10px;
  padding:11px 15px;background:var(--bg);border-left:3px solid var(--ink);border-radius:0 var(--r-ctl) var(--r-ctl) 0;
  padding-left:34px;text-indent:-19px;}
.faq-cite i{font-style:italic;}
.faq-cite .faq-gap{color:#8A5A18;font-weight:600;}
.faq-todo{background:#FCF3E3;border-left:3px solid #E0954A;border-radius:0 var(--r-ctl) var(--r-ctl) 0;
  padding:12px 15px;margin-bottom:10px;font-size:13px;line-height:1.55;color:#8A5A18;
  max-width:var(--measure);}
.gc{display:flex;flex-direction:column;border:1px solid var(--line);border-radius:var(--r-ctl);overflow:hidden;}
.gc-band{font-size:13px;font-weight:700;padding:10px 12px;text-align:center;}
.gc-band.gc-sig{background:var(--ink);color:#fff;}
.gc-def{font-size:12px;line-height:1.45;color:var(--body);padding:11px 12px;}
.gc-def b{color:var(--ink);font-weight:600;}
.gc-op{display:none;}
.gd-node{border:1px solid var(--line);border-radius:var(--r-ctl);padding:12px 16px;cursor:pointer;transition:border-color 0.12s,box-shadow .12s;background:var(--card);}
.gd-node:hover{border-color:var(--ink);box-shadow:0 2px 10px rgba(0,0,0,0.05);}
.gd-home{background:var(--bg);display:inline-block;margin-bottom:14px;}
.gd-name{font-size:14px;font-weight:600;}
.gd-sub{font-size:12px;color:var(--muted);margin-top:2px;}
.gd-fan{display:grid;grid-template-columns:repeat(2,1fr);gap:12px;}
.gd-arm{display:flex;flex-direction:column;gap:6px;}
.gd-arrow{font-size:12px;color:var(--muted);}
.gd-arrow b{color:var(--ink);font-weight:600;}
.sw{width:14px;height:10px;display:inline-block;vertical-align:-2px;margin-right:5px;border-radius:var(--r-cell);}
.sw-hi-ack{background:var(--red);}.sw-hi-no{background:var(--amber);}.sw-lo-ack{background:var(--red-pale);}.sw-lo-no{background:var(--empty);}
.grid{display:grid;gap:0;font-size:11px;}
.gcode{text-align:center;padding:6px 1px;color:var(--muted);font-size:9.5px;cursor:pointer;border-radius:var(--r-cell);transition:background 0.12s;writing-mode:vertical-rl;transform:rotate(180deg);max-height:96px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin:0 auto 4px;}
.gcode:hover{background:var(--bg);color:var(--ink);}
.gcode.colsel{background:var(--ink);color:white;}
.gsector{grid-column:1/-1;padding:14px 0 6px;font-size:10.5px;font-weight:700;color:var(--muted);text-transform:uppercase;letter-spacing:0.05em;border-top:1px solid var(--line);margin-top:6px;cursor:pointer;}
.gsector:hover{color:var(--red);}
.gsector.first{border-top:none;margin-top:0;}
.gsector-hint{font-weight:400;text-transform:none;letter-spacing:0;margin-left:6px;opacity:0;transition:opacity 0.12s;}
.gsector:hover .gsector-hint{opacity:1;color:var(--muted);}
.gco{padding:6px 8px 6px 0;font-size:12px;align-self:center;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;cursor:pointer;border-radius:var(--r-cell);transition:color 0.12s;}
.gco:hover{color:var(--red);}
.gco.rowsel{color:var(--red);font-weight:600;}
.gcell{width:28px;height:28px;margin:3px;background:var(--empty);border-radius:var(--r-cell);cursor:pointer;transition:transform 0.1s;box-sizing:border-box;display:flex;align-items:center;justify-content:center;font-size:14px;line-height:1;}
.gcell:hover{transform:scale(1.18);z-index:2;position:relative;}
.gcell.hiack{background:var(--red);color:#fff;}
.gcell.hino{background:var(--amber);color:var(--ink);}
.gcell.loack{background:var(--red-pale);color:var(--red-dark);}
.gcell.lono{color:var(--muted);}
.gcell.selected{outline:2px solid var(--ink);outline-offset:2px;}
.gcell.dim{opacity:0.2;}
.glyph-x{font-weight:400;}
.mx{display:grid;gap:0;font-size:13px;align-items:stretch;}
.mx-dh{border-bottom:1px solid var(--line);}
.mx-domain-last{border-right:1px solid #D2D2CE;}
.mx-risk.mx-dstart{border-left:1px solid #D2D2CE;}
.mx-risk.mx-dend{border-right:1px solid #D2D2CE;}
.mx-risk.colsel{color:var(--red);font-weight:700;}
.mx-sec.open .mx-tri{transform:rotate(90deg);}
.mx-cell.mv4,.mx-leg-sw.mv4{background:var(--lvl-5);}
.mx-cell.mv4{color:#fff;}
.mx-cell.mv3,.mx-leg-sw.mv3{background:var(--lvl-4);}
.mx-cell.mv3{color:var(--ink);}
.mx-cell.mv2,.mx-leg-sw.mv2{background:var(--lvl-3);}
.mx-cell.mv2{color:var(--ink);}
.mx-cell.mv1,.mx-leg-sw.mv1{background:var(--lvl-2);}
.mx-cell.mv1{color:var(--ink);}
.mx-cell.mv0,.mx-leg-sw.mv0{background:var(--lvl-1);}
.mx-cell.mv0{color:#fff;}
.mx-cell.mvnd,.mx-leg-sw.mvnd{background:var(--lvl-0);}
.mx-cell.mvnd{color:var(--muted);}
.mx-cell.dim{opacity:0.25;}
#mx-tip{font-family:'Figtree',sans-serif;line-height:1.45;position:fixed;z-index:300;pointer-events:none;background:var(--ink);color:#fff;font-size:13px;line-height:1.45;padding:8px 11px;border-radius:var(--r-ctl);max-width:320px;box-shadow:var(--shadow-pop);}
#mx-tip b{font-weight:600;display:block;margin-bottom:2px;}
#mx-tip span{color:#d9d9d9;display:block;}
/* the taxonomy definition: long, so give it room to breathe */
#mx-tip .mxtip-def{color:#b9b9b9;line-height:1.45;}
#mx-tip .mxtip-pre{white-space:pre-line;}
#mx-tip .mxtip-status{display:block;margin-top:8px;padding-top:8px;border-top:1px solid rgba(255,255,255,0.22);white-space:pre-line;}
/* the call to action: its own line, underlined, so it reads as somewhere to go rather than more prose */
#mx-tip .mxtip-cta{margin-top:7px;color:#fff;font-weight:600;text-decoration:underline;}
.mx-cell.selected{outline:2px solid var(--ink);outline-offset:-2px;}
.mx-co-role{font-size:10.5px;color:var(--muted);}
.mx-co-cov{background:var(--bg);font-weight:400;color:var(--muted);}
.mx-cell.co-yes{background:var(--green);color:#fff;border-color:#fff;}
.mx-cell.co-no{background:#fff;color:var(--muted);border-color:var(--line);}
.mx-cocell.vx-extreme{color:#fff;}
/* transposed home matrix: risks = rows, sectors = columns */
.mx-riskrow.colsel{color:var(--red);}
.mx-domband.first{border-top:none;padding-top:6px;}
/* home-matrix view pills */
/* The preamble is ruled off from the matrix, on the same darker hairline the risk page divides its
   sections with. The break is what says the introduction has ended. */
.mx-viewhead{margin:0 0 26px;padding-bottom:24px;border-bottom:1px solid #C9C9C4;}
.mx-pills{display:flex;gap:6px;flex-wrap:wrap;}
.mx-pill.active{background:var(--ink);color:#fff;border-color:var(--ink);}
.mx-viewnote{font-size:14px;color:var(--muted);margin-top:10px;line-height:1.5;max-width:var(--measure-wide);}
/* The orientation block: its own surface, with the app's red carrying the weight down its edge. A reader
   meets a defined object first and the matrix second, without a word of the page saying so. */
/* the findings are a list of statements, not tiles: the number leads each line and the line opens its view */
/* Home index */
.hx-lead{font-size:15px;line-height:1.55;color:var(--body);max-width:var(--measure-wide);margin:-6px 0 18px;}
.hx-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));grid-auto-rows:1fr;gap:12px;}
.hx-sub{font-size:15px;line-height:1.5;color:var(--body);margin:-8px 0 16px;max-width:var(--measure-wide);}
@media (max-width:1000px){.hx-grid{grid-template-columns:repeat(2,minmax(0,1fr));}}
@media (max-width:560px){.hx-grid{grid-template-columns:minmax(0,1fr);}}
.hx-tile{display:flex;flex-direction:column;align-items:stretch;gap:6px;text-align:left;font:inherit;background:#fff;border:1px solid var(--line);border-radius:7px;padding:14px 16px;cursor:pointer;color:var(--ink);min-width:0;}
.hx-tile:hover,.hx-tile:focus-visible{border-color:var(--ink);outline:none;}
.hx-tile:hover .rkt-go,.hx-tile:focus-visible .rkt-go{color:var(--red);}
.hx-risk{border-top:4px solid var(--red);}
.hx-sec{border-left:5px solid var(--rule);}
.hx-kicker{font-size:13px;color:var(--muted);line-height:1.3;}
.hx-name{display:flex;justify-content:space-between;align-items:baseline;gap:6px;font-size:15px;font-weight:700;line-height:1.3;}
.hx-text{font-size:15px;color:var(--body);line-height:1.45;}
.hx-text b{color:var(--ink);font-weight:700;}
.hx-cohead{display:flex;align-items:center;gap:10px;min-width:0;}
.hx-cohead .co-logo{flex:none;}
.hx-cohead .hx-name{flex:1;min-width:0;}
.hx-cofacts{display:flex;flex-direction:column;gap:2px;font-size:13px;line-height:1.4;color:var(--muted);}
.hx-cofacts b{color:var(--body);font-weight:600;}
.hx-all{grid-column:4;grid-row:1;display:flex;flex-direction:column;justify-content:flex-end;align-items:flex-start;gap:12px;text-align:left;font:inherit;background:var(--red);border:1px solid var(--red);border-radius:7px;padding:16px;cursor:pointer;color:#fff;}
.hx-all:hover,.hx-all:focus-visible{background:var(--red-dark);border-color:var(--red-dark);outline:none;}
.hx-all-i{width:26px;height:26px;color:#fff;}
.hx-all-i svg{width:26px;height:26px;display:block;}
.hx-all-t{font-size:18px;font-weight:700;line-height:1.3;}
.hx-all-arr{font-size:18px;color:#fff;line-height:1;}
.hx-notes{margin-top:28px;}
/* Home's matrix without its chrome: no printed severity, one reading sentence, one key line */
.mxv-clean .mxv-sev{display:none;}
.mxv-bar{margin:0 0 14px;}
.mxv-bar .rk-cap{margin:0;max-width:640px;}
.mxv-key{margin-top:14px;}
.mxv-key b{font-weight:700;color:var(--ink);}
.mxv-method{font-size:13px;color:var(--muted);line-height:1.5;margin:10px 0 0;max-width:var(--measure-wide);}
.lnk-btn{font:inherit;font-size:inherit;color:var(--red);background:none;border:0;padding:0;cursor:pointer;text-decoration:underline;text-underline-offset:2px;}
.lnk-btn:hover{color:var(--red-dark);}


/* Home hero: a statement and a way in on the left, the field of one hundred tiles on the right */
.hx-hero{display:block;margin:0 0 30px;}
.hx-hero-2{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:20px 48px;align-items:start;}
.hx-hero-txt{min-width:0;}
.hx-big{font-size:22px;line-height:1.35;color:var(--body);margin:0 0 14px;max-width:var(--measure);}
.hx-big b{color:var(--ink);font-weight:700;}
.hx-hero .hx-lead{margin:0 0 20px;}
.hx-find-lab{display:block;font-size:13px;color:var(--muted);margin-bottom:6px;}
.hx-find{position:relative;max-width:760px;}
.hx-find-row{display:flex;gap:0;}
.hx-find-box{position:relative;flex:1;min-width:0;}
.hx-ghost{position:absolute;left:0;top:0;right:0;bottom:0;padding:11px 14px;font-size:18px;line-height:1.3;color:var(--faint);white-space:pre;overflow:hidden;pointer-events:none;}
.hx-ac{position:absolute;left:0;right:0;top:100%;z-index:30;margin:4px 0 0;padding:4px 0;list-style:none;background:#fff;border:1px solid var(--rule);border-radius:6px;box-shadow:var(--shadow-pop);max-height:360px;overflow-y:auto;}
.hx-ac-i{display:flex;align-items:center;gap:10px;padding:9px 14px;font-size:15px;color:var(--ink);cursor:pointer;}
.hx-ac-i.on,.hx-ac-i:hover{background:var(--bg);}
.hx-ac-n{font-weight:700;}
.hx-ac-s{color:var(--muted);font-size:13px;margin-left:auto;text-align:right;}
.hx-find-q{display:block;width:100%;box-sizing:border-box;position:relative;font:inherit;font-size:18px;line-height:1.3;padding:11px 14px;border:1px solid var(--rule);border-right:0;border-radius:6px 0 0 6px;background:transparent;color:var(--ink);}
.hx-find-q:focus{outline:none;border-color:var(--ink);}
.hx-find-go{font:inherit;font-size:15px;font-weight:700;padding:11px 20px;border:1px solid var(--red);background:var(--red);color:#fff;border-radius:0 6px 6px 0;cursor:pointer;}
.hx-find-go:hover{background:var(--red-dark);border-color:var(--red-dark);}
.hx-field{min-width:0;}
.hx-field-bar{display:flex;justify-content:flex-end;margin:0 0 10px;}
.hxf{display:grid;grid-template-columns:repeat(10,42px);grid-auto-rows:42px;gap:4px;}
.hxf-tile{display:block;width:42px;height:42px;padding:0;border:1px solid transparent;border-radius:3px;background:var(--ink);cursor:pointer;}
.hxf-tile.z{background:#fff;border-color:var(--rule);}
.hxf-tile:hover,.hxf-tile:focus-visible{outline:2px solid var(--red);outline-offset:1px;}
.hxf-key{display:flex;flex-wrap:wrap;align-items:center;gap:6px 14px;font-size:13px;color:var(--body);margin:12px 0 0;}
.hxf-key-i{display:inline-flex;align-items:center;gap:6px;}
.hxf-key-i i{display:inline-block;width:14px;height:14px;border-radius:2px;background:var(--ink);}
.hxf-key-i i.z{background:#fff;border:1px solid var(--rule);}
.hxf-ramp .hxf-key-i{gap:5px;}
.hxf-key-t{color:var(--muted);}
.hxf-cap{font-size:13px;color:var(--muted);margin:8px 0 0;max-width:420px;line-height:1.45;}
.mxtip-co{display:flex;align-items:center;gap:8px;}
@media (max-width:900px){.hx-hero{grid-template-columns:1fr;}.hx-field-bar{justify-content:flex-start;}.hxf{grid-template-columns:repeat(10,minmax(0,1fr));grid-auto-rows:auto;max-width:420px;}.hxf-tile{width:auto;height:auto;aspect-ratio:1;}}

.mx-found{list-style:none;margin:0;padding:0;max-width:var(--measure-wide);}
.mx-found li{border-top:1px solid var(--line);}
.mx-found li:last-child{border-bottom:1px solid var(--line);}
.mx-found-card{display:block;width:100%;text-align:left;font:inherit;font-size:15px;line-height:1.5;color:var(--body);background:none;border:0;padding:12px 0;cursor:pointer;}
.mx-found-card:hover{color:var(--ink);}
.mx-found-card:hover .mx-found-n{color:var(--red);}
.mx-found-n{color:var(--ink);font-weight:700;font-variant-numeric:tabular-nums;}
.mx-found-card b{color:var(--ink);font-weight:600;}
.mx-brief{background:var(--card);border:1px solid var(--line);border-left:3px solid var(--red);
  border-radius:0 var(--r-ctl) var(--r-ctl) 0;padding:20px 24px;max-width:var(--measure-wide);margin:0;}
.mx-lead{font-size:15px;line-height:1.6;color:var(--body);max-width:var(--measure-wide);margin:0 0 12px;}
/* the standfirst: the first paragraph is set larger and in ink, so the eye starts there */
.mx-brief .mx-lead:first-child{line-height:1.55;color:var(--ink);margin-bottom:11px;}
/* The orienting notes, numbered rather than bulleted. A numeral implies an order to work through where a
   disc implies an unordered set, which is the whole difference being drawn here. */
.mx-points{list-style:none;counter-reset:mxp;margin:17px 0 0;padding:0;max-width:var(--measure-wide);}
.mx-points li{counter-increment:mxp;position:relative;padding-left:31px;font-size:15px;line-height:1.55;color:var(--body);margin-bottom:10px;}
.mx-points li:last-child{margin-bottom:0;}
.mx-points li::before{content:counter(mxp);position:absolute;left:0;top:2px;width:20px;height:20px;
  border-radius:50%;background:var(--red);color:#fff;font-size:10.5px;font-weight:700;
  display:flex;align-items:center;justify-content:center;}
.mx-points li b{color:var(--ink);font-weight:600;}
.mx-pillbar{margin-top:26px;padding-top:16px;border-top:1px dashed var(--line);}
/* The map of the rest of the tool, under the matrix. Cards rather than a list: each one is a place with a
   question attached, and the grid lets the eight sit as a set the eye can take in at once. */
/* the matrix's question sits under the rule that closes the introduction, so it needs its own air above */
/* ---- public embed ----------------------------------------------------------------------------------
   One figure on a white ground with no chrome: no header, no tabs, no footer, no side panel. The host
   page supplies its own surround, and the frame supplies only the drawing and its attribution. */
html.is-embed,html.is-embed body{background:#fff;margin:0;padding:0;}
.emb{padding:14px 16px 12px;background:#fff;}
.emb-fig{max-width:100%;}
.emb-fig .mxv{margin-top:0;}
.emb-fig .risk-tbl{margin-top:0;}
.emb-legend{display:flex;flex-wrap:wrap;gap:6px 20px;font-size:12px;color:var(--body);margin:0 0 10px;align-items:center;}
.emb-legend svg{margin-right:6px;}
.emb-foot{display:flex;flex-wrap:wrap;gap:6px 16px;justify-content:space-between;align-items:baseline;
  margin-top:12px;padding-top:9px;border-top:1px solid var(--line);font-size:11px;color:var(--muted);}
.emb-foot a{color:var(--red);text-decoration:none;}
.emb-foot a:hover{text-decoration:underline;}
.emb-err{font-size:13px;line-height:1.5;color:var(--muted);padding:22px 4px;}
/* The embed's own tooltip. The tool's is bound to #center-body, which an embed does not have, so the
   figures would otherwise have no hover at all once their native titles are taken off. */
.emb-tip{position:fixed;z-index:90;max-width:320px;background:var(--ink);color:#fff;font-size:12px;
  line-height:1.45;padding:8px 11px;border-radius:var(--r-ctl);pointer-events:none;white-space:pre-line;
  box-shadow:var(--shadow-pop);}
.emb-tip b{font-weight:700;}
html.is-embed [data-etip]{cursor:help;}
html.is-embed .bd-seg{transition:opacity .1s;}
html.is-embed .bd-seg:hover{opacity:0.82;}
/* Nothing in an embed drills in: the handlers are not bound, and the tool it would open sits behind
   the site's access gate. So the affordances that promise it are taken off rather than left dead. */
html.is-embed .mit-cat-arrow,html.is-embed .rtl-arr,html.is-embed .mxv-rh-in .rtl-arr{display:none;}
html.is-embed .mit-cat-btn,html.is-embed .risk-tbl-row,html.is-embed .mxv-rh,html.is-embed .mxv-cell,
html.is-embed .mit-domain-head,html.is-embed [data-secheader]{cursor:default;}
html.is-embed .mit-cat-btn{background:none;}
html.is-embed .risk-tbl-row:hover{background:none;}
html.is-embed .rtl-link{color:var(--ink);font-weight:600;}
/* the study's other descriptive figures, between the matrix and the map out */
.bd-svg,.sc-svg{width:100%;height:auto;display:block;font-family:'Figtree',sans-serif;max-width:var(--measure-wide);}
.bd-name{fill:var(--ink);font-size:12px;font-weight:600;text-anchor:end;}
.bd-fac{fill:var(--muted);font-size:9.5px;text-anchor:end;text-transform:uppercase;letter-spacing:0.04em;}
.bd-val{font-size:10.5px;font-weight:700;text-anchor:middle;}
.bd-seg{stroke:#fff;stroke-width:1;}
.bd-axis{fill:var(--muted);font-size:10.5px;}
.bd-axis-e{text-anchor:end;}
.bd-legend{display:flex;flex-wrap:wrap;gap:8px 20px;font-size:12px;color:var(--body);margin:0 0 16px;align-items:center;}
.bd-legend span{display:inline-flex;align-items:center;gap:7px;}
.bd-legend i{width:14px;height:10px;border-radius:var(--r-cell);flex:none;}
.sc-grid{stroke:var(--line);stroke-width:1;}
.sc-tick{fill:var(--muted);font-size:10.5px;text-anchor:middle;}
.sc-tick-y{text-anchor:end;}
.sc-ax{fill:var(--muted);font-size:11px;text-anchor:middle;}
.sc-dot{fill:var(--red);fill-opacity:0.85;stroke:#fff;stroke-width:1.5;transition:r .1s;}
html.is-embed .sc-dot:hover{fill-opacity:1;r:7;}
/* ---- landing-page embeds (app/embed-figs.js, 2026-10-14) ---- */
@media (max-width:599px){.emb{padding:10px 8px 8px;}}
.ef-note{font-size:14px;line-height:1.45;color:var(--muted);margin:10px 0 0;max-width:760px;}
.ef-tip{position:fixed;z-index:90;max-width:330px;background:#fff;color:var(--ink);border:1px solid var(--line);border-radius:7px;
  box-shadow:0 6px 22px rgba(0,0,0,.14);padding:12px 14px;font-size:14px;line-height:1.45;pointer-events:none;}
.ef-tip.pinned{pointer-events:auto;}
.ef-tip>b{font-size:15px;font-weight:700;display:block;margin-bottom:4px;}
.ef-tip-def{color:var(--body);margin-bottom:8px;}
.ef-tip-l{margin-top:3px;}
.ef-tip-hint{margin-top:10px;font-size:14px;font-weight:600;color:var(--red);}
.ef-tip-tbl{border-collapse:collapse;width:100%;font-size:14px;}
.ef-tip-tbl td{padding:2px 0;vertical-align:baseline;}
.ef-tip-tbl td+td{text-align:right;padding-left:10px;font-weight:600;white-space:nowrap;}
.ef-tip-tbl td.ef-tip-k{font-weight:400;color:var(--muted);}
.ef-tip-sw{display:inline-block;width:9px;height:9px;border-radius:50%;margin-right:6px;}
/* the split figures: risks, sectors, roles (shared layout) */
/* embed type: three sizes, the landing page's (orgrev-ms, 15 Oct): 14 small, 15/600 controls, 18 body and titles */
.ef-chart .fig1-tick,.ef-chart .fig1-name,.ef-chart .fig1-xlab{font-size:14px;}
.ef-split.wide{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:20px;align-items:start;}
.ef-chart{position:relative;}
.ef-chart .fig1,.ef-prof{display:block;width:auto;max-width:none;font-family:'Figtree',sans-serif;overflow:visible;}
.ef-chart [data-efrow]{cursor:pointer;outline:none;}
.ef-panel{border:1px solid var(--line);border-radius:7px;padding:14px 16px 16px;background:#fff;}
.ef-split.wide .ef-panel{position:sticky;top:10px;}
.ef-split:not(.wide) .ef-panel{position:absolute;left:0;right:0;z-index:5;display:none;box-shadow:0 8px 26px rgba(0,0,0,.16);}
.ef-split:not(.wide) .ef-panel.show{display:block;}
.ef-x{display:none;position:absolute;top:6px;right:8px;font:inherit;font-size:22px;line-height:1;width:32px;height:32px;border:0;background:none;color:var(--muted);cursor:pointer;}
.ef-split:not(.wide) .ef-x{display:block;}
.ef-split:not(.wide) .ef-p-name{padding-right:30px;}
.ef-touch{font-size:14px;color:var(--muted);margin:0 0 6px;}
.ef-p-name{font-size:18px;font-weight:700;line-height:1.3;}
.ef-p-def{font-size:14px;line-height:1.5;color:var(--body);margin:6px 0 10px;}
.ef-p-v{display:flex;gap:8px;align-items:center;font-size:14px;line-height:1.4;margin-top:5px;}
.ef-p-v svg{flex:none;}
.ef-r{color:#A32035;}.ef-g{color:#5B5C5F;}
.ef-p-tbl{border-collapse:collapse;width:100%;font-size:14px;line-height:1.35;}
.ef-p-tbl td{padding:3px 0;vertical-align:baseline;}
.ef-p-tbl td:first-child{padding-left:15px;text-indent:-15px;}
.ef-p-tbl tr.on td{font-weight:700;}
.ef-p-pct{text-align:right;padding-left:10px !important;font-weight:600;white-space:nowrap;}
.ef-p-k{text-align:right;padding-left:8px !important;color:var(--muted);white-space:nowrap;font-weight:400 !important;}
.ef-btn{display:block;margin-top:14px;padding:11px 14px;border-radius:7px;background:var(--red);color:#fff;font-size:15px;font-weight:600;line-height:1.3;text-decoration:none;text-align:center;}
.ef-btn:hover,.ef-btn:focus-visible{background:var(--red-dark);outline:none;}
.ef-xlab{font-size:14px;fill:#898A8D;text-anchor:middle;}
.ef-rname{fill:var(--ink);font-size:14px;text-anchor:end;}
.ef-rname.on{font-weight:700;}
/* sectors, roles */
.ef-rname{fill:var(--ink);text-anchor:end;}
.ef-grid{stroke:#EBEBEB;stroke-width:1;}
.ef-tick{font-size:14px;fill:#898A8D;text-anchor:middle;}
.ef-ghost{fill:none;stroke:#D1D1D1;stroke-width:1.6;stroke-linejoin:round;}
.ef-line{fill:none;stroke-width:3;stroke-linejoin:round;}
.ef-dot.zero{fill:#fff;stroke-width:1.8;}
.ef-band{fill:#FAF3F4;opacity:0;}
.ef-band.on{opacity:1;}
.ef-hit,.ef-hitc{fill:transparent;cursor:pointer;outline:none;}
.ef-pick{display:flex;flex-wrap:wrap;gap:6px;margin:0 0 12px;padding-right:40px;}
.ef-pick-b{display:inline-flex;align-items:center;gap:6px;font:inherit;font-size:15px;font-weight:600;line-height:1.3;text-align:left;padding:6px 10px;
  border:1px solid var(--line);border-radius:16px;background:#fff;color:var(--ink);cursor:pointer;}
.ef-pick-b.on{border-color:var(--c);box-shadow:inset 0 0 0 1px var(--c);background:color-mix(in srgb,var(--c) 10%,#fff);}
.ef-pick-sw{width:10px;height:10px;border-radius:50%;background:var(--c);flex:none;}
/* severity */
.ef-sev{display:block;font-family:'Figtree',sans-serif;overflow:visible;}
.ef-wash{opacity:.06;}
.ef-med{stroke:#D8D9DB;stroke-width:1.2;stroke-dasharray:5 4;}
.ef-sev-tick,.ef-sev-axt,.ef-sev-flag,.ef-sev-note{fill:#898A8D;}
.ef-sev-axt{fill:var(--ink);}
.ef-sev-note.red{fill:#D73027;}
.ef-flagbg{fill:#fff;opacity:.6;}
.ef-lead{stroke:#B9BABC;stroke-width:1;}
.ef-sev-dot{fill:#1A1A1A;}
.ef-sev-dot.on{fill:#A32035;}
.ef-sev-lab{fill:#1A1A1A;cursor:pointer;}
.ef-sev-num{fill:#1A1A1A;stroke:#fff;stroke-width:1.5;pointer-events:none;}
.ef-sev-numt{fill:#fff;font-size:14px;font-weight:700;text-anchor:middle;pointer-events:none;}
.ef-sev-list{margin:10px 0 0;padding-left:22px;font-size:14px;line-height:1.5;color:var(--body);}
.ef-sev-list b{color:var(--ink);font-weight:600;}
/* riskcards: two Home tiles and the Explore card in one row; one column on phones */
.ef-cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;}
.ef-cards a{text-decoration:none;}
.ef-cards .ef-all{grid-column:auto;grid-row:auto;color:#fff;flex-direction:row;align-items:center;justify-content:flex-end;}
@media (max-width:599px){.ef-cards{grid-template-columns:minmax(0,1fr);}.ef-cards .ef-all{padding:14px 16px;}}
.ef-q-stack{display:grid;}
.ef-q-page{grid-area:1/1;display:grid;grid-template-columns:repeat(var(--per,1),minmax(0,1fr));gap:12px;visibility:hidden;}
.ef-q-page.on{visibility:visible;}
.ef-q-card{margin:0;display:flex;flex-direction:column;border:1px solid var(--line);border-radius:7px;background:#fff;padding:16px 18px;}
.ef-q-risk{display:block;}
.ef-q-text{margin:8px 0 10px;font-size:18px;line-height:1.5;color:var(--ink);}
.ef-q-src{font-size:14px;line-height:1.45;color:var(--muted);margin-bottom:12px;}
.ef-q-src a{color:var(--body);}
.ef-q-card .ef-btn{margin-top:auto;}
.ef-q-nav{display:flex;align-items:center;gap:12px;margin-top:12px;}
.ef-q-b{font:inherit;font-size:18px;line-height:1;width:36px;height:36px;border:1px solid var(--line);border-radius:50%;background:#fff;color:var(--ink);cursor:pointer;}
.ef-q-b:hover,.ef-q-b:focus-visible{border-color:var(--ink);outline:none;}
.ef-q-n{font-size:14px;color:var(--muted);}
/* the camera: top right of a figure embed, shown on hover, on a tap, or on keyboard focus */
.emb{position:relative;}
.emb-dl{position:absolute;top:6px;right:6px;z-index:6;width:34px;height:34px;display:flex;align-items:center;justify-content:center;
  border:1px solid var(--line);border-radius:7px;background:#fff;color:var(--ink);cursor:pointer;opacity:0;pointer-events:none;transition:opacity .15s;}
.emb:hover .emb-dl,.emb.dl-on .emb-dl,.emb-dl:focus-visible{opacity:1;pointer-events:auto;}
.emb-dl:hover{border-color:var(--ink);}
.sc-lab{fill:var(--ink);font-size:10.5px;font-weight:600;}
.mxnav{margin:0;padding-top:0;}
.toolmap{padding-top:0;min-height:0;display:block;}
.toolmap .mxnav{margin-top:8px;}
/* the page's title size, taken from .sec-q on the element itself so the two cannot drift; only the
   spacing is its own, and it needs the extra specificity because .sec-q is declared later */
.mxnav .mxnav-h{margin:0 0 16px;}
.mxnav-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(268px,1fr));gap:12px;max-width:1240px;}
.mxnav-card{display:flex;flex-direction:column;gap:6px;text-align:left;font-family:inherit;
  background:var(--card);border:1px solid var(--line);border-radius:var(--r-ctl);padding:14px 16px;
  color:inherit;cursor:pointer;transition:border-color .12s,box-shadow .12s;}
button.mxnav-card:hover{border-color:var(--red);box-shadow:0 2px 10px rgba(26,26,26,0.06);}
button.mxnav-card:hover .mxnav-n,button.mxnav-card:hover .mxnav-arr{color:var(--red);}
button.mxnav-card:focus-visible{outline:2px solid var(--red);outline-offset:2px;}
.mxnav-top{display:flex;align-items:center;gap:9px;}
/* the icon carries the row; the arrow is pushed to the far end by the name taking the slack */
.mxnav-n{flex:1;min-width:0;}
.mxnav-i{flex:none;width:19px;height:19px;color:var(--red);display:block;}
.mxnav-i svg{width:19px;height:19px;display:block;}
.mxnav-card.here .mxnav-i{color:var(--muted);}
.mxnav-n{font-size:15px;font-weight:700;color:var(--ink);}
.mxnav-arr{font-size:15px;line-height:1;color:var(--muted);}
/* the reader's own position, stated rather than left to be inferred from the tab bar */
.mxnav-card.here{background:var(--bg);border-style:dashed;cursor:default;}
.mxnav-here{font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:0.05em;
  color:#fff;background:var(--red);border-radius:var(--r-cell);padding:3px 7px;white-space:nowrap;}
/* the question the destination asks of itself, quoted so the map cannot promise what the page does not */
.mxnav-q{font-size:13px;font-weight:600;color:var(--ink);line-height:1.35;}
/* vulnerability-tier columns */
.mx-tierhead{flex-direction:column;justify-content:flex-end;align-items:stretch;text-align:center;font-size:13px;font-weight:600;color:var(--ink);text-transform:none;letter-spacing:0;padding:7px 4px 8px;line-height:1.28;}
.mx-tierhead .sw{display:block;height:4px;border-radius:var(--r-cell);margin-bottom:6px;width:100%;}
.mx-sw4{background:var(--lvl-5);}.mx-sw3{background:var(--lvl-4);}.mx-sw2{background:var(--lvl-3);}.mx-sw1{background:var(--lvl-2);}.mx-sw0{background:var(--lvl-1);}
.mx-tiercell{flex-direction:column;gap:1px;line-height:1.1;}
.mx-tc-n{font-size:9.5px;font-weight:600;opacity:0.62;}
.mx-otherhead{cursor:default;}
.mx-otherhead:hover{color:var(--ink);}
.mx-oth-n{font-weight:400;color:var(--muted);}
/* ---- vulnerability view (Home > By vulnerability): opacity encodes acknowledgement, column encodes tier ---- */
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0;}
.mxv-wrap{position:relative;margin-top:4px;}
/* The callout belongs to the matrix, not to the viewport: absolute inside .mxv-wrap, the same containment
   the spotlight box uses, so it stays beside the rows it is describing when the page scrolls.
   placeCallout() parks it level with the current step, inside the wrap. */
.mxv-callout{position:absolute;z-index:20;width:300px;padding:14px 36px 15px 16px;background:var(--card);border:1px solid var(--line);box-shadow:var(--shadow-pop);border-radius:var(--r-ctl);font-size:13px;line-height:1.5;color:var(--ink);}
.mxv-callout-h{font-size:13px;font-weight:700;color:var(--red);margin-bottom:4px;}
.mxv-callout b{font-weight:700;}
.mxv-callout i{font-style:italic;}
.mxv-callout-x{position:absolute;top:5px;right:6px;width:26px;height:26px;display:flex;align-items:center;justify-content:center;background:none;border:none;border-radius:var(--r-ctl);font-family:inherit;font-size:18px;line-height:1;color:var(--red);cursor:pointer;}
.mxv-callout-x:hover{background:var(--red-tint);}
.mxv-callout-body{min-height:40px;}
.mxv-callout-foot{display:flex;align-items:center;gap:8px;margin-top:11px;}
.mxv-callout-dots{display:flex;align-items:center;gap:5px;margin-right:auto;}
.mxv-callout-dots i{width:6px;height:6px;border-radius:var(--r-pill);background:#E0BCC3;}
.mxv-callout-dots i.on{background:var(--red);}
.mxv-callout-btn{padding:5px 14px;font-family:inherit;font-size:13px;font-weight:600;color:#fff;background:var(--red);border:none;border-radius:var(--r-pill);cursor:pointer;}
.mxv-callout-btn:hover{background:var(--red-dark);}
.mxv-callout-btn.ghost{color:var(--red);background:none;border:1px solid #D07886;}
.mxv-callout-btn.ghost:hover{background:var(--red-tint);}
/* collapse: every grid line is one shared 1px border, so a cell ringed by n/a looks exactly like a cell in a
   dense block. With `separate` each cell drew its own 0.5px edge, which doubled up between neighbours and
   rendered as a faint hairline wherever a cell stood alone. */
table.mxv{border-collapse:collapse;margin:0;font-size:13px;border:1px solid var(--ink);}
/* no blanket padding reset here: `table.mxv th` outranks the .mxv-* classes and would silently zero them */
.mxv-cell{padding:0;}
/* the right border lives on the label, not on the first data cell: an n/a cell yields its borders, so the
   column's left edge would break on any row whose first tier has no data */
.mxv-rh{box-sizing:border-box;width:252px;height:36px;padding:6px 14px 6px 12px;text-align:left;font-size:13px;font-weight:600;line-height:1.3;color:var(--ink);border-top:1px solid #B4B4AF;border-right:1px solid var(--ink);cursor:pointer;}
/* the row label carries the number the rows are sorted by, so the ordering can
   be read off the page instead of inferred. An inner wrapper does the layout:
   making the th itself a flex container would drop its table-cell sizing. */
.mxv-rh-in{display:flex;align-items:baseline;gap:11px;}
/* fixed width and right-aligned so the decimal points line up down the column */
.mxv-sev{font-size:11px;font-weight:700;color:var(--muted);flex:none;width:29px;text-align:right;font-variant-numeric:tabular-nums;}
.mxv-rh:hover .mxv-sev,.mxv-rh.colsel .mxv-sev{color:var(--red);}
.mxv-rh:hover{color:var(--red);}
.mxv-rh.colsel{color:var(--red);}
/* the title row: plain black text on white. The underline belongs to the vulnerability label only, since it
   is the rule over the tier columns; it should not run on across the risk names. */
.mxv-axis{box-sizing:border-box;height:36px;background:var(--axis);color:var(--ink);border:1px solid var(--ink);padding:0 12px;text-align:center;vertical-align:middle;font-size:13px;font-weight:700;line-height:1.25;}
/* the Risks header doubles as the row-ordering indicator: a small caption noting the rows run by severity */
.mxv-riskhead{line-height:1.15;}
.mxv-sortnote{display:block;margin-top:3px;font-size:11px;font-weight:600;text-transform:none;letter-spacing:0.01em;color:var(--ink);}
.mxv-sortnote .tip-link{color:inherit;}
.mxv-th{width:104px;padding:9px 6px;vertical-align:middle;text-align:center;font-size:13px;font-weight:700;color:var(--ink);border:1px solid var(--ink);}
/* The tier colour as a keyline over its column rather than a fill behind its name.
   The ramp is still read off the header and off the legend, and the data cells go back
   to being the darkest thing in the table. It is the swatch the sibling matrix already
   drew on .mx-tierhead. */
.mxv-th-key{display:block;height:4px;border-radius:var(--r-cell);margin:0 0 6px;}
/* the overall column is not a vulnerability tier, so it takes no tint: a blue header like the axis labels */
/* this header carries a whole phrase, not a one-word tier name, so it drops the uppercase/letter-spacing
   treatment and tightens up: sentence case at 11.5px wraps to a few compact lines inside the 104px column. */
.mxv-th.mxv-overall{background:var(--axis);color:var(--ink);font-weight:700;font-size:11px;line-height:1.25;padding:7px 5px;}
.mxv-corner{border:none;}
/* the empty header corners should read as blank space: paint white borders along their OUTER edges (the table
   frame) so they win the collapse tie-break and disappear, but leave border:none on the INNER edges so the
   neighbouring blue cells (Risks, Sector vulnerability, All companies) still draw their own dividing lines. */
th.mxv-empty{background:#fff;border:none;padding:0;}
th.mxv-empty-t{border-top:1px solid #fff;}   /* hide the table's top frame edge above this cell */
th.mxv-empty-l{border-left:1px solid #fff;}  /* hide the table's left frame edge */
/* many columns (the sector views): tighter cells, and header names allowed to wrap */
.mxv-narrow .mxv-th{width:62px;padding:7px 3px;font-size:11px;font-weight:600;line-height:1.2;vertical-align:bottom;word-break:break-word;}
.mxv-narrow .mxv-cell{width:62px;font-size:11px;}
.mxv-narrow .mxv-rh{width:210px;padding-left:9px;font-size:12px;}
/* full sector names wrap over several lines: sit them on the baseline, not floating mid-cell */
.mxv-sechead{cursor:pointer;vertical-align:bottom;font-size:11px;font-weight:600;line-height:1.25;padding:8px 5px;}
.mxv-sechead:hover{color:var(--red);}
.mxv-cell{width:104px;height:36px;text-align:center;font-size:13px;font-weight:700;border:1px solid var(--ink);cursor:pointer;font-variant-numeric:tabular-nums;}
.mxv-cell:hover{outline:2px solid var(--ink);outline-offset:-2px;}
.mxv-cell:focus-visible{outline:2px solid var(--ink);outline-offset:-2px;}
/* n/a reads as "nothing to measure here": gray, hatched, and visibly not part of the tint ramp */
/* nothing to measure here: white, unbordered, marked only by a short rule. It should recede, not compete with
   the data cells. A real zero is white too, but it is bordered like any data cell and reads "0%". */
/* border-style:none, not transparent: under collapse, `none` always loses to the neighbour's border, so a
   data cell next to an n/a keeps its full black edge, while two adjacent n/a cells share no line at all. */
.mxv-na{background:#fff;border-style:none;cursor:default;}
.mxv-na-line{display:inline-block;width:18px;height:1.5px;background:#9A9A95;vertical-align:middle;}
/* demo spotlight: the current target keeps full strength, the rest of the table recedes */
.mxv-demo .mxv-cell,.mxv-demo .mxv-rh,.mxv-demo .mxv-th{opacity:0.32;transition:opacity 0.18s ease;}
.mxv-demo .mxv-hi{opacity:1;}
/* The box is one overlay element drawn over the table, not a shadow inset into each cell: per-cell rules
   are interrupted by the white 1px cell borders, which sit outside them. */
.mxv-box{position:absolute;box-sizing:border-box;pointer-events:none;border:2px solid var(--red);border-radius:var(--r-cell);box-shadow:0 0 0 3px rgba(163,32,53,0.14);z-index:5;}
@media(prefers-reduced-motion:reduce){.mxv-demo .mxv-cell,.mxv-demo .mxv-rh,.mxv-demo .mxv-th{transition:none;}}
.mxv-legend{display:flex;flex-wrap:wrap;justify-content:flex-start;align-items:center;gap:10px 20px;margin-top:20px;font-size:13px;color:var(--body);}
.mxv-note{margin-top:10px;text-align:left;font-size:15px;line-height:1.6;color:var(--ink);}
/* The severity footnote. Quiet, but the whole definition is here: the asterisk in
   the column header is only useful if what it points at is readable without a
   hover. */
.mxv-fns{list-style:none;margin:30px 0 0;padding:0;max-width:var(--measure-wide);text-align:left;}
.mxv-fns>li{position:relative;padding-left:19px;font-size:13px;line-height:1.6;color:var(--muted);}
.mxv-fns>li+li{margin-top:11px;}
/* the marker hangs in the gutter, so a second note's text lines up with the first */
.mxv-fn-m{position:absolute;left:0;top:0;font-weight:700;color:var(--ink);}
/* the marker in the header: never a link, so clicking it does not open the study */
.mxv-fn-r{font-weight:700;color:var(--ink);}
/* the phrase a footnote opens with, naming what it is about: same weight and ink as its marker */
.mxv-fn-lead{font-weight:700;color:var(--ink);}
.mxv-legend span{display:flex;align-items:center;gap:5px;}
.mxv-leg-na{display:inline-flex;align-items:center;justify-content:center;width:26px;height:15px;background:#fff;}
.mxv-leg-na::before{content:'';display:block;width:12px;height:1.5px;background:#9A9A95;}
.mxv-leg-sw{display:inline-block;width:14px;height:10px;border:1px solid var(--ink);vertical-align:-2px;margin:0 3px 0 7px;}
.mxv-oth-n{font-weight:400;color:var(--muted);}
@media (prefers-reduced-motion:reduce){#mx-tip,.mxv-callout,.mxv-cell{transition:none !important;}}
/* overall aggregate bar */
.mx-barcell{display:flex;align-items:center;gap:11px;border-top:1px solid var(--line);padding:0 12px 0 6px;cursor:pointer;min-height:32px;}
.mx-barcell:hover{background:var(--bg);}
.mx-bar{flex:1;height:15px;background:var(--lvl-0);border-radius:var(--r-cell);overflow:hidden;}
.mx-bar-pct{font-size:13px;font-weight:700;color:var(--ink);width:44px;text-align:right;}
.detail-eyebrow{font-size:10.5px;text-transform:uppercase;letter-spacing:0.05em;color:var(--muted);font-weight:700;}
.detail-title{font-size:15.5px;font-weight:600;margin:6px 0 4px;line-height:1.25;}
.detail-sub{font-size:12px;color:var(--muted);margin-bottom:14px;}
.plain{font-size:13px;line-height:1.5;background:var(--bg);padding:11px 13px;border-radius:var(--r-ctl);margin-bottom:14px;}
.sig-block{background:var(--bg);border-radius:var(--r-ctl);padding:12px 14px;margin-bottom:16px;}
.sig-title{font-size:10.5px;text-transform:uppercase;letter-spacing:0.05em;color:var(--muted);font-weight:700;margin-bottom:8px;}
.sig-intro{font-size:12px;line-height:1.45;margin-bottom:12px;}
.sig-def{font-size:11px;color:var(--muted);line-height:1.35;margin:-2px 0 8px;}
.ex-row{padding:9px 0;border-bottom:1px solid var(--line);}
.ex-row:first-of-type{border-top:1px solid var(--line);}
.ex-top{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:5px;}
.ex-label{font-size:12px;font-weight:600;}
.ex-band{font-size:10.5px;font-weight:700;text-transform:uppercase;letter-spacing:0.04em;padding:2px 8px;border-radius:var(--r-cell);flex-shrink:0;}
.ex-band.vx-extreme{background:var(--lvl-5);color:#fff;}
.ex-band.vx-high{background:var(--lvl-4);color:var(--ink);}
.ex-band.vx-mod{background:var(--lvl-3);color:var(--ink);}
.ex-band.vx-low{background:var(--lvl-2);color:var(--ink);}
.ex-track{height:4px;background:var(--line);border-radius:var(--r-cell);overflow:hidden;margin-bottom:5px;}
.ex-fill{height:100%;border-radius:var(--r-cell);}
.ex-fill.vx-extreme-fill{background:var(--lvl-5);}
.ex-fill.vx-high-fill{background:var(--lvl-4);}
.ex-fill.vx-mod-fill{background:var(--lvl-3);}
.ex-fill.vx-low-fill{background:var(--lvl-2);}
.ex-def{font-size:11px;color:var(--muted);line-height:1.35;}
.ex-score{display:flex;justify-content:space-between;align-items:center;padding-top:11px;margin-top:11px;border-top:1px solid var(--line);}
.ex-score .lbl{font-size:12px;font-weight:600;}
.ex-score .val{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:0.04em;padding:3px 10px;border-radius:var(--r-cell);}
.ex-score .val.high{background:var(--lvl-4);color:var(--ink);}
.ex-score .val.mod{background:var(--lvl-3);color:var(--ink);}
.evidence-empty{background:var(--card);border:1px solid var(--line);padding:14px;border-radius:var(--r-ctl);text-align:center;color:var(--body);font-size:13px;}
.evidence-quote{background:var(--bg);padding:13px 15px;border-left:2px solid var(--red);margin:10px 0;font-size:13px;line-height:1.5;}
.evidence-note{background:var(--bg);padding:8px 13px;border-left:2px solid var(--line);margin:6px 0 0;font-size:12px;color:var(--muted);font-style:italic;}
.disc-lead{font-size:13px;line-height:1.5;color:var(--ink);margin:8px 0 2px;}
.evidence-source{font-size:11px;color:var(--muted);margin-top:8px;}
.evidence-source a{color:var(--red);text-decoration:none;}
.detail-placeholder{color:var(--muted);font-size:13px;padding:30px 10px;text-align:center;line-height:1.5;}
.detail-placeholder-hint{margin:10px auto 0;max-width:430px;font-size:12.5px;opacity:0.85;}
.detail-action{display:block;width:100%;padding:9px;background:var(--ink);color:white;border:none;border-radius:var(--r-ctl);font-family:inherit;font-size:12px;font-weight:500;cursor:pointer;margin-top:16px;}
.detail-action:hover{background:var(--red);}
.rank-list{margin-top:4px;}
.rank-item{display:flex;align-items:center;gap:8px;padding:6px 0;font-size:13px;border-bottom:1px solid var(--line);cursor:pointer;}
.rank-item:hover{color:var(--red);}
.rank-num{color:var(--muted);font-size:11px;width:16px;flex-shrink:0;}
.rank-name{flex:1;}
.rank-dot{width:11px;height:11px;border-radius:var(--r-cell);flex-shrink:0;}
.rank-dot.hiack{background:var(--red);}.rank-dot.hino{background:var(--amber);}.rank-dot.loack{background:var(--red-pale);}.rank-dot.lono{background:var(--empty);}
.rk-row:hover{background:var(--bg);}
/* .sec-q, the question every view opens with, is set by the same rule as the profile's section
   titles (.cp-sec-title, below): one heading style for the site. */
.risk-domain-group{border-top:2px solid var(--line);padding-top:14px;margin-top:18px;}
.risk-domain-group:first-of-type{border-top:none;padding-top:4px;margin-top:8px;}
.risk-domain-h{font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:0.04em;color:var(--ink);margin:0 0 9px;}
.risk-domain-h:first-of-type{margin-top:4px;}
.risk-domain-ic{width:17px;height:17px;display:inline-flex;align-items:center;color:var(--muted);}
.risk-domain-ic svg{width:17px;height:17px;}
.risk-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(178px,1fr));gap:6px;margin-bottom:4px;}
.risk-card{border:1px solid var(--line);border-radius:var(--r-ctl);padding:10px 11px;cursor:pointer;background:var(--card);transition:border-color .12s,box-shadow .12s;}
.risk-card:hover{border-color:var(--ink);box-shadow:0 2px 10px rgba(0,0,0,0.06);}
.risk-card-top{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px;}
.risk-card-num{font-weight:700;color:var(--muted);margin-right:6px;}
.risk-sev-dot{display:inline-block;width:9px;height:9px;border-radius:50%;margin-right:6px;vertical-align:-1px;box-shadow:inset 0 0 0 1px rgba(0,0,0,0.15);}
.risk-card-name{font-size:13px;font-weight:600;line-height:1.3;margin-bottom:5px;}
.risk-card-meta{font-size:12px;color:var(--muted);}
.risk-tbl{width:100%;border-collapse:collapse;font-size:13px;}
/* Sentence case, at the Home matrix's own header size. These headers carry a
   whole sentence now ("Share of top 100 companies acknowledging this risk"), and
   uppercase with added letter-spacing is for two or three words, not for that. */
.risk-tbl th{text-align:left;font-size:13px;color:var(--ink);font-weight:700;padding:9px 12px;background:var(--axis);border-bottom:1px solid var(--ink);}
.risk-tbl-cov-h{text-align:right;width:150px;}
.risk-tbl-domain td{font-weight:700;font-style:italic;font-size:13px;padding:15px 12px 7px;border-bottom:1px solid var(--line);}
.risk-tbl-row{cursor:pointer;}
.risk-tbl-row:hover{background:var(--bg);}
.risk-tbl-row td{padding:10px 12px;border-bottom:1px solid var(--line);vertical-align:top;}
.risk-tbl-name{width:248px;font-weight:600;line-height:1.35;}
/* Sectors landing page: slightly larger sector names */
.risk-tbl-name b{color:var(--muted);font-weight:700;margin-right:6px;}
.rtl-link{color:var(--red);font-weight:600;}
.risk-tbl-row:hover .rtl-link{text-decoration:underline;}
.rtl-arr{color:var(--red);font-weight:700;margin-left:3px;}
.risk-tbl-desc{color:var(--body);line-height:1.5;}
.risk-tbl-cov{text-align:right;width:92px;font-weight:700;color:var(--ink);white-space:nowrap;font-variant-numeric:tabular-nums;}
.risk-tbl-cov .tip{border-bottom:none;}
.cov-bar{display:block;height:5px;background:var(--empty);border-radius:2px;margin-top:5px;overflow:hidden;}
.cov-bar i{display:block;height:100%;background:var(--ink);}
html.is-embed .cov-bar{display:none;}   /* Table 1 stays the manuscript's plain table */
.risk-tbl-cov .tip:hover::after,.risk-tbl-cov .tip:focus-visible::after{left:auto;right:0;font-weight:400;}
.risk-tbl-cov .tip:hover::before,.risk-tbl-cov .tip:focus-visible::before{left:auto;right:14px;}
/* Narrow screens: the fixed name and share widths starved the description to 145px at 780. */
@media (max-width:900px){.risk-tbl-name{width:auto;min-width:150px;}.risk-tbl-cov-h{width:auto;}.risk-tbl-cov{width:auto;}.risk-tbl-row td{padding:8px 8px;}.risk-tbl th{padding:8px 8px;}}
.gap-item{display:inline-flex;align-items:center;gap:4px;margin-left:8px;white-space:nowrap;}
.gap-icon{width:15px;height:15px;color:var(--amber-deep);flex-shrink:0;display:inline-flex;}
.gap-icon svg{width:100%;height:100%;}
/* block, not inline-block: the risk title that follows it is inline-block and would otherwise sit on the
   same line and collide with it */
.sec-back{display:block;width:fit-content;font-size:12px;color:var(--ink);font-weight:600;cursor:pointer;margin-bottom:12px;}
.cp-back{margin-left:auto;flex:none;font:inherit;font-size:13px;font-weight:700;color:var(--ink);background:#fff;border:1px solid var(--rule);border-radius:var(--r-ctl);padding:8px 14px;cursor:pointer;white-space:nowrap;}
.cp-back:hover,.cp-back:focus-visible{color:var(--red);border-color:var(--red);outline:none;}
/* the view's tour, at the far right of the heading row; the back button, when there is one, sits to its left */
.cp-tour{flex:none;display:inline-flex;align-items:center;gap:8px;font:inherit;font-size:15px;font-weight:700;color:#fff;background:var(--ink);border:1px solid var(--ink);border-radius:var(--r-ctl);padding:10px 18px;cursor:pointer;white-space:nowrap;box-shadow:0 2px 8px rgba(163,32,53,.25);}   /* filled since 2026-09-29: one visitor missed the outlined one */
.cp-tour:hover,.cp-tour:focus-visible{background:#3A3A3A;border-color:#3A3A3A;outline:none;}   /* ink, so it no longer competes with the red Explore buttons */
.cp-tour span{font-size:15px;line-height:1;}
.cp-head .cp-back{margin-left:auto;}.cp-head .cp-back+.cp-tour{margin-left:0;}.cp-head .cp-tour:first-of-type:not(.cp-back+.cp-tour){margin-left:auto;}
.sec-q-row{display:flex;align-items:flex-start;justify-content:space-between;gap:22px;margin:10px 0 24px;}
.sec-q-row .sec-q{margin:0;flex:1;min-width:0;}
.sec-q-row .cp-tour{margin-top:6px;}
.sec-back:hover{color:var(--red);}
.sec-dl{display:inline-flex;align-items:center;gap:8px;padding:8px 15px;font-family:inherit;font-size:13px;font-weight:600;color:var(--red);background:none;border:1px solid #D07886;border-radius:var(--r-pill);cursor:pointer;white-space:nowrap;}
.sec-dl:hover{background:#FAF3F4;border-color:var(--red);}
.sec-dl:disabled{opacity:0.6;cursor:default;}
.sec-dl-i{display:inline-flex;align-items:center;justify-content:center;width:17px;height:17px;border-radius:50%;background:var(--red);color:#fff;font-size:11px;font-weight:700;line-height:1;}
/* The sector table: one row per company, one column per risk. The 24 columns share the width the
   page has (1136px at 1440), so a column is about 38px: room for the taxonomy number, not the name.
   The domain band above groups the columns and the full name and definition are on the header's
   hover; the risk page opens on click. Under 1,132px the table scrolls and the company column
   stays put. */
.sht-wrap{position:relative;}
.sht-scroll{overflow-x:auto;overflow-y:hidden;}
.sht{width:100%;table-layout:fixed;border-collapse:separate;border-spacing:0;font-size:13px;}
/* The stacked variant puts the page in the wide layout (.mx-wide), so 24 columns get ~48px at 1440. */
.sht-wide .sht{min-width:1300px;}
.sht-angled{min-width:1136px;}
.sht th{background:var(--axis);color:var(--ink);font-weight:700;font-size:13px;padding:6px 4px;border:1px solid var(--ink);border-left-width:0;text-align:center;line-height:1.25;}
.sht th.sht-dom{font-size:12px;font-weight:700;padding:5px 3px;white-space:normal;overflow-wrap:break-word;hyphens:auto;}
.sht th.sht-risk{cursor:pointer;font-size:12px;font-weight:700;vertical-align:bottom;padding:6px 3px 7px;white-space:normal;overflow-wrap:break-word;hyphens:manual;line-height:1.15;}
.sht th.sht-risk:hover{background:#C7DCEE;color:var(--red);}
.sht th.sht-risk:focus-visible{outline:2px solid var(--red);outline-offset:-2px;}
.sht td.sht-co,.sht th.sht-corner{width:180px;min-width:180px;max-width:180px;}
.sht.sht-tagged td.sht-co,.sht.sht-tagged th.sht-corner{width:280px;min-width:280px;max-width:280px;}
/* Angled: 40px columns, the name on a 45-degree line ending at the column's centre and running up
   and to the left, over the empty corner above the company column. */
.sht-angled th.sht-risk{height:150px;padding:0;position:relative;overflow:visible;vertical-align:bottom;z-index:3;background:transparent;border-color:transparent;border-bottom:1px solid var(--ink);}
.sht-angled th.sht-risk:hover{background:transparent;}
.sht-angled th.sht-corner{background:transparent;border-color:transparent;border-bottom:1px solid var(--ink);z-index:0;vertical-align:bottom;text-align:left;padding:0 10px 8px;}
.sht-angled th.sht-dom{border-bottom:1px solid var(--ink);}
.sht-angled .sht-ang{position:absolute;right:50%;bottom:6px;transform-origin:right bottom;transform:rotate(45deg);white-space:nowrap;font-size:12px;font-weight:700;line-height:1;}
.sht-angled th.sht-risk:hover .sht-ang{color:var(--red);}
.sht th.sht-cohead{text-align:left;border-left-width:1px;font-weight:700;padding-left:10px;}
.sht td{border-bottom:1px solid var(--line);border-right:1px solid var(--line);padding:0;height:34px;}
.sht td.sht-co{position:sticky;left:0;z-index:1;background:var(--card);border-left:1px solid var(--line);padding:4px 10px;text-align:left;font-weight:400;color:var(--ink);cursor:pointer;line-height:1.3;}
.sht tbody tr:hover td.sht-co{color:var(--red);}
.sht tbody tr:hover td.sht-co .sht-co-n{text-decoration:underline;}
.sht td.sht-co .co-logo{display:inline-block;vertical-align:middle;margin-right:7px;}
.sht td.sht-co .sht-co-n{vertical-align:middle;}
.sht th.sht-cohead,.sht th.sht-corner{position:sticky;left:0;z-index:2;}
.sht-cotag{display:inline-block;vertical-align:middle;margin-left:7px;padding:1px 7px;border:1px solid;border-radius:var(--r-pill);font-size:12px;font-weight:700;font-style:normal;letter-spacing:0;color:var(--ink);}
.sht td.sht-cell{text-align:center;cursor:pointer;background:#fff;color:var(--muted);font-size:13px;}
.sht td.sht-cell.yes{background:var(--ink);color:#fff;}
.sht td.sht-cell:hover{outline:2px solid var(--ink);outline-offset:-2px;}
.sht td.sht-cell:focus-visible{outline:2px solid var(--red);outline-offset:-2px;}
.sht-fade{position:absolute;top:0;right:0;bottom:0;width:72px;pointer-events:none;background:linear-gradient(to right,rgba(255,255,255,0),var(--card) 62%,var(--card));}
/* the sector's expert vulnerability tints the empty cells; an acknowledged cell stays ink */
.sht td.sht-cell.no.v4,.sht-vleg-k i.v4{background:color-mix(in srgb,var(--lvl-5) 30%,#fff);}
.sht td.sht-cell.no.v3,.sht-vleg-k i.v3{background:color-mix(in srgb,var(--lvl-4) 30%,#fff);}
.sht td.sht-cell.no.v2,.sht-vleg-k i.v2{background:color-mix(in srgb,var(--lvl-3) 34%,#fff);}
.sht td.sht-cell.no.v1,.sht-vleg-k i.v1{background:color-mix(in srgb,var(--lvl-2) 40%,#fff);}
.sht td.sht-cell.no.v0,.sht-vleg-k i.v0{background:color-mix(in srgb,var(--lvl-1) 22%,#fff);}
.sht td.sht-cell.colhi{box-shadow:inset 2px 0 0 var(--ink),inset -2px 0 0 var(--ink);}
.sht-vleg{display:flex;flex-wrap:wrap;align-items:center;gap:6px 14px;margin-top:10px;font-size:13px;color:var(--body);}
.sht-vleg-l{font-weight:700;color:var(--ink);margin-right:4px;}
.sht-vleg-k{display:inline-flex;align-items:center;gap:6px;}
.sht-vleg-k i{display:inline-block;width:18px;height:14px;border:1px solid var(--line);border-radius:2px;}
.sht-scrollhint{font-size:13px;font-weight:700;color:var(--ink);text-align:right;margin:0 0 8px;}
.view-controls{display:flex;align-items:center;gap:8px;font-size:11px;font-weight:500;color:var(--muted);margin:4px 0 14px;}
.view-ctrl-sel{width:auto;display:inline-block;padding:5px 26px 5px 9px;font-size:12px;}

.co-search{font-family:inherit;font-size:13px;padding:7px 10px;border:1px solid var(--line);border-radius:var(--r-ctl);min-width:260px;color:var(--ink);}
/* The filter opens a panel of chips under the controls. It carries a count when
   anything is on, so a narrowed list never looks like the whole sample. */
.co-filter{display:inline-flex;align-items:center;gap:7px;font:inherit;font-size:13px;color:var(--ink);background:var(--card);border:1px solid var(--line);border-radius:var(--r-ctl);padding:6px 11px;cursor:pointer;}
.co-filter:hover{border-color:var(--muted);}
.co-filter.open{background:var(--axis);border-color:#B4CFE4;}
.co-filter.active{border-color:var(--red);}
.co-filter-i{display:inline-flex;width:15px;height:15px;}
.co-filter-i svg{width:15px;height:15px;}
.co-filter-n{min-width:17px;height:17px;padding:0 5px;box-sizing:border-box;display:inline-flex;align-items:center;justify-content:center;border-radius:var(--r-pill);background:var(--red);color:#fff;font-size:10.5px;font-weight:700;}
.co-fhint{flex-basis:100%;font-size:12px;color:var(--muted);line-height:1.4;}
.co-count{margin-left:auto;}
/* the name and its logo read as one thing, and the box holds its place whether the
   logo loads, fails, or was never there, so the column of names stays aligned */
.co-logo{width:20px;height:20px;flex:none;object-fit:contain;background:#fff;border:1px solid var(--line);border-radius:var(--r-cell);padding:1px;}
.co-logo-sm{width:15px;height:15px;border-radius:var(--r-cell);padding:0;}
.co-logo-none{border-color:transparent;background:none;}
/* Sector names run to 57 characters and a four-role list runs longer, so these
   cells hold as much as they have room for and trail off; the full text is on the
   cell's hover. Truncating in CSS rather than in JS lets the browser pick the point
   and keeps the whole string selectable. One rule, two names, so a test or a later
   change can address either column on its own. */
/* Nothing in this table is clipped. The roles cell used to cut its tail off at 270px,
   which made a company holding four roles read as holding two. It wraps instead. */
.cotbl-group-n{color:var(--axis-ink);font-weight:600;margin-left:8px;}
.cp-meta{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:12px;margin:14px 0 6px;}
.cp-meta-item{border:1px solid var(--line);border-radius:var(--r-ctl);padding:11px 13px;}
.cp-meta-note{display:block;margin-top:4px;font-size:11px;font-weight:400;color:var(--muted);line-height:1.4;}
.cp-meta-k{font-size:10.5px;text-transform:uppercase;letter-spacing:0.05em;color:var(--muted);font-weight:700;margin-bottom:4px;}
.cp-meta-v{font-size:14px;font-weight:600;font-variant-numeric:tabular-nums;}
.cp-meta-v.cp-ph{color:var(--muted);font-weight:400;font-style:italic;}
.cp-rolesum{margin-top:14px;font-size:13px;line-height:1.55;color:var(--body);max-width:var(--measure-wide);}
.cp-rolesum-h{font-size:10.5px;text-transform:uppercase;letter-spacing:0.05em;color:var(--muted);font-weight:700;margin-bottom:5px;}
/* Section titles have to hold their own against the tier colours and the tile grid below them:
   the scale's 22px view-title step, a short red bar above as a start marker, and air. */
.cp-sec-title,.rvsec-h{font-size:22px;font-weight:700;letter-spacing:-0.015em;color:var(--ink);margin:0 0 24px;line-height:1.2;padding-top:14px;position:relative;max-width:var(--measure-wide);}
.cp-sec-title::before,.rvsec-h::before{content:'';position:absolute;top:0;left:0;width:36px;height:3px;background:var(--red);border-radius:2px;}
.cp-ph-box{font-size:15px;color:var(--muted);background:var(--bg);border:1px solid var(--line);border-radius:var(--r-ctl);padding:12px 14px;line-height:1.5;}
.cp-risk-list{display:flex;flex-wrap:wrap;gap:7px;}
.cp-risk-chip{font-size:13px;border:1px solid var(--line);border-radius:var(--r-pill);padding:5px 11px;cursor:pointer;background:var(--card);line-height:1.3;}
.cp-risk-chip:hover{border-color:var(--ink);}
.cp-risk-chip b{color:var(--muted);margin-right:6px;font-weight:700;}
.mx-pop{display:flex;align-items:center;flex-wrap:wrap;gap:8px;margin:0 0 12px;font-size:13px;}
.mx-pop-l{color:var(--muted);}
.mx-pop-b{font-family:inherit;font-size:13px;padding:5px 12px;border:1px solid var(--line);background:var(--card);color:var(--ink);border-radius:var(--r-pill);cursor:pointer;}
.mx-pop-b:hover{border-color:var(--ink);}
.mx-pop-b.on{background:var(--ink);color:#fff;border-color:var(--ink);font-weight:600;}
.mxv-estnone{color:var(--muted);}
/* The sector spine. Widths are fixed and every column is ruled, because three
   columns of mixed content (a wrapping name, a long definition, a company list)
   drifted out of alignment row to row when the browser sized them. The two
   figure columns are gone; the definition and the examples took their width. */
/* Sectors overview cards */
.skc-lead{font-size:15px;color:var(--body);margin:-8px 0 22px;max-width:var(--measure-wide);}
.skc-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;}
@media (max-width:820px){.skc-grid{grid-template-columns:minmax(0,1fr);}}
.skc{background:#fff;border:1px solid var(--line);border-radius:7px;padding:16px 18px 14px;cursor:pointer;min-width:0;}
/* roles (app/roles.js): the card wears its role's colour; bold marks a company whose primary role this is */
.rlc{border-left:4px solid;}
.sht td.sht-co.sht-co-prim .sht-co-n{font-weight:700;}
.sht-rolekey{font-size:13px;color:var(--muted);margin:6px 0 0;}
.skc:hover,.skc:focus-visible{border-color:var(--ink);outline:none;}
.skc-h{display:flex;justify-content:space-between;align-items:baseline;gap:8px;}
.skc-name{font-size:22px;font-weight:700;line-height:1.2;}
.skc-go{color:var(--muted);font-size:22px;line-height:1;}
.skc:hover .skc-go,.skc:focus-visible .skc-go{color:var(--red);}
.skc-n{font-size:15px;color:var(--body);margin:6px 0 0;}
.skc-n+.skc-n{margin-top:2px;}
.cpm-chip.skc-chip{background:#F1F1EF;color:var(--ink);border:1px solid var(--line);padding:3px 7px;}
.cpm-chip.skc-chip:hover{outline:none;border-color:var(--ink);}
.skc-chh{font-size:13px;font-weight:700;margin-top:14px;padding-top:12px;border-top:1px solid var(--line);}
.skh-lab{font-size:13px;font-weight:700;margin-bottom:6px;}
.skh-grid{display:grid;grid-template-columns:66px repeat(24,minmax(0,1fr));gap:2px;align-items:stretch;}
.skh-rl{font-size:12px;color:var(--body);display:flex;align-items:center;gap:4px;padding-right:4px;line-height:1.1;white-space:nowrap;}
.skh-c{display:block;height:20px;min-width:0;background:#fff;border:1px solid var(--line);border-radius:2px;cursor:pointer;}
.skh-c.none{background:var(--bg);border-style:dashed;}
.skh-c.bound{background:#fff;border-style:dashed;border-color:var(--rule);}
.skh-c:hover,.skh-c:focus-visible{outline:2px solid var(--red);outline-offset:-1px;}
.skc-chips{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px;}
.skc-key{font-size:13px;color:var(--muted);margin:18px 0 0;max-width:var(--measure-wide);}
.sec-est{white-space:nowrap;}
.sec-ci{display:block;font-size:12px;font-weight:400;color:var(--muted);}
.sec-none{font-weight:400;color:var(--muted);font-size:13px;}
.cp-ack-intro{font-size:12px;color:var(--muted);line-height:1.55;max-width:var(--measure);margin:0 0 12px;}
.cp-risk-n{margin-left:8px;font-size:11px;font-weight:700;color:var(--muted);background:var(--bg);border-radius:var(--r-pill);padding:1px 7px;}
/* The mitigations block on a company page draws the Mitigations tab's own rows, so only the
   middle column differs: the tab plots a bar over two populations, this states whether this one
   company described the category. The tick pairs with Compare's, which is the site's other
   per-company tick. */
.cp-mit-chart{margin-top:12px;}
.cp-mit-status{display:flex;align-items:baseline;gap:8px;font-size:13px;min-width:0;}
.cp-mit-tick{font-size:15.5px;font-weight:700;line-height:1;flex:none;}
.cp-mit-status.yes .cp-mit-tick{color:var(--green);}
.cp-mit-status.no{color:var(--muted);}
.cp-mit-status.no .cp-mit-tick{color:#CBCBC8;}
.cp-mit-domsum{font-size:13px;font-weight:700;color:var(--ink);font-variant-numeric:tabular-nums;}
/* Passage pop-out. Two things appear inside it and they were checked to
   different degrees: the acknowledgment and the reviewer's assessment were
   validated by a person; the individual passages were located by an automated
   pass and were never adjudicated one by one. The copy keeps those apart. */
.pass-ovl{position:fixed;inset:0;background:rgba(26,26,26,0.5);z-index:120;display:flex;align-items:center;justify-content:center;padding:24px;}
.pass-card{background:var(--card);border-radius:var(--r-modal);max-width:900px;width:100%;max-height:86vh;display:flex;flex-direction:column;box-shadow:var(--shadow-modal);}
/* The company band on the quotes card. Scoped to .pass-card-co: the risk grid's card shares .pass-head
   and .pass-x and keeps the close button in its corner. */
.pass-co{display:flex;align-items:center;gap:12px;background:var(--red);color:#fff;padding:11px 12px 11px 16px;border-radius:var(--r-modal) var(--r-modal) 0 0;flex:none;}
.pass-co-n{flex:1;min-width:0;font-size:18px;font-weight:700;line-height:1.25;letter-spacing:-0.01em;}
/* the mark sits on its own white tile, so a logo drawn for a white page still reads on the red */
.co-logo-lg{width:30px;height:30px;border-radius:var(--r-ctl);padding:2px;}
.pass-co .pass-x{position:static;flex:none;width:36px;height:36px;font-size:22px;color:#fff;}
.pass-co .pass-x:hover{background:rgba(255,255,255,0.22);color:#fff;}
.pass-card-co .pass-head{padding-top:16px;}
.pass-card-co .pass-title{padding-right:0;}
.pass-head{padding:20px 24px 14px;border-bottom:1px solid var(--line);flex:none;position:relative;}
.pass-title{font-size:22px;font-weight:700;line-height:1.2;letter-spacing:-0.015em;padding-right:34px;}
.pass-sub{margin-top:6px;font-size:13px;line-height:1.5;color:var(--body);max-width:var(--measure-wide);}
.pass-alldocs{font:inherit;font-size:13px;font-weight:600;color:var(--red);background:none;border:0;padding:0;cursor:pointer;margin-left:10px;}
.pass-alldocs:hover{text-decoration:underline;}
.pass-verdict{display:flex;align-items:flex-start;gap:9px;padding:12px 14px;background:var(--red-tint);border-left:3px solid var(--red);font-size:15px;font-weight:400;line-height:1.45;color:var(--ink);}
.pass-verdict .pjt-tick{color:var(--red);}
.pass-how{font-size:13px;line-height:1.55;color:var(--body);max-width:var(--measure-wide);}
/* the card's inner structure: four small headings, the first flush with the top */
.pass-h{font-size:15px;font-weight:700;color:var(--ink);margin:24px 0 8px;}
.pass-h:first-child{margin-top:0;}
.pass-risk{font-size:15px;line-height:1.55;color:var(--body);max-width:var(--measure-wide);}
.pass-risk b{color:var(--ink);}
.pass-none{font-size:15px;color:var(--muted);}
.pass-actions{display:flex;flex-wrap:wrap;align-items:center;gap:8px 24px;margin-top:14px;}
/* the way on to the company, in the band where it is seen before any scrolling */
.pass-explore{flex:none;font:inherit;font-size:13px;font-weight:700;color:#fff;background:none;border:1px solid rgba(255,255,255,0.7);border-radius:var(--r-ctl);padding:6px 12px;cursor:pointer;white-space:nowrap;}
.pass-explore:hover{background:#fff;color:var(--red);border-color:#fff;}
@media (max-width:560px){.pass-explore{display:none;}}
.pass-go{font:inherit;font-size:13px;font-weight:700;color:var(--red);background:none;border:0;padding:0;cursor:pointer;}
.pass-go:hover{text-decoration:underline;}
.pass-psg-h{font-size:13px;color:var(--body);margin:0 0 12px;}
.pass-src{display:flex;align-items:center;gap:8px;margin:0 0 8px;}
/* Inside the evidence block everything is 13: the source in bold, its quotes regular. That keeps the
   block below the 15px section headings, so the card reads 18 (band) > 15 (headings, body) > 13 (evidence). */
.pass-src .pjt-doc{font-size:13px;font-weight:700;}
.pass-group .pjt-q{margin:0 0 8px 0;border-left-color:#D6D6D2;}
.pass-group .pjt-qt{font-style:italic;}
.pass-group{margin-bottom:10px;padding:12px 14px 6px;background:var(--bg);border:1px solid var(--line);border-radius:var(--r-ctl);}
.pass-status{margin-top:9px;font-size:12px;display:flex;align-items:center;gap:7px;color:var(--muted);}
.pass-dot{width:9px;height:9px;border-radius:var(--r-ctl);flex:none;background:var(--d5);}
.pass-dot.no{background:#E6E6E4;}
.pass-x{position:absolute;top:16px;right:16px;width:26px;height:26px;display:flex;align-items:center;justify-content:center;border:none;background:none;font-size:18px;line-height:1;color:var(--muted);cursor:pointer;border-radius:var(--r-ctl);font-family:inherit;}
.pass-x:hover{background:var(--bg);color:var(--ink);}
.pass-body{padding:20px 24px 24px;overflow-y:auto;}
/* The companies behind one cell of the risk grid, in the same card the passage viewer uses. Two counted
   lists rather than a column of ticks: which list a name is in is the answer, so a per-row mark would say
   the same thing twice. The count sits in the heading, where the reader is already looking for it. */
   whole point: the same rating reads the same here as in the cell the reader just clicked. Only the
   layout is this card's own, because a grid cell is one word and this is a labelled pair. */
  min-height:0;min-width:132px;padding:7px 12px;border-radius:var(--r-ctl);text-align:left;}
/* the acknowledging list gets the marker, the silent one does not: absence is the default state here */
.pass-note{font-size:13px;line-height:1.55;}
.pass-group:last-child{margin-bottom:0;}
.cp-stmt{border-left:2px solid var(--line);padding:1px 0 1px 12px;margin:0 0 9px;}
.cp-stmt:last-child{margin-bottom:0;}
.cp-stmt-q{font-size:13px;line-height:1.5;}
/* The document heading above a set of quotes, in the pale blue the app uses for
   anything that labels an axis or a group. Shared with the mitigation panel, where
   it is also the roll-up toggle, so both read the same. */
.pass-doc{display:inline-flex;align-items:baseline;gap:8px;margin:0 0 9px;font-size:13px;color:var(--ink);text-decoration:none;background:var(--axis);border:1px solid #B4CFE4;border-radius:var(--r-pill);padding:4px 13px;line-height:1.4;}
a.pass-doc:hover{border-color:var(--ink);}
.pass-doc-t{color:var(--muted);font-size:11px;}
/* One card per source document: its title, its type, how many extracts it holds,
   and a link to the document itself. The title block is the toggle, so most of the
   row opens the card; the arrow stays outside it because a link inside a button is
   neither valid nor reliably clickable. */
/* The passages card's table: Source, Passage, Review. The Review cell spans every passage row, which
   is the whole point of using a table here — the judgement was made over the set, and a merged cell
   shows that in its shape rather than asserting it in a sentence. Scrolls sideways rather than
   collapsing to blocks on a narrow screen, because a rowspan does not survive being turned into one. */
.pjt-doc{display:block;font-size:13px;line-height:1.4;color:var(--ink);word-break:break-word;}
/* no underline: the outward arrow already says the title is a link, and a rule under every row of
   the column read as clutter more than as an affordance */
a.pjt-doc{text-decoration:none;}
a.pjt-doc:hover{color:var(--red);}
.pjt-q{margin:0 0 10px;border-left:2px solid var(--line);padding-left:10px;}
.pjt-q:last-child{margin-bottom:0;}
/* the quoted text is its own element, so anything that follows sits on its own line rather than
   running on from the closing quotation mark as though it were part of what was said */
.pjt-qt{display:block;font-size:13px;line-height:1.5;color:var(--ink);}
.pjt-q-has{cursor:pointer;}
.pjt-q-has:hover{border-left-color:var(--red);}
.pjt-q-has:focus-visible{outline:2px solid var(--red);outline-offset:2px;}
/* the merged cell: ruled off from the passages it spans, and set apart from them */
/* Its own control on its own line, worded as what it does. A dotted underline under the verdict was
   the only sign it opened anything, and it read as emphasis rather than as a thing to press. */
.pjt-tick{font-size:15px;font-weight:700;line-height:1.2;flex:none;}
.mit-panel-sub{font-size:12px;color:var(--muted);line-height:1.5;margin:0 0 12px;max-width:var(--measure);}
.mit-dcard{border:1px solid var(--line);border-radius:var(--r-ctl);background:var(--card);margin-bottom:10px;overflow:hidden;}
.mit-dcard-h{display:flex;align-items:center;gap:12px;padding:11px 14px;background:#FCFCFA;}
.mit-dcard-btn{flex:1;min-width:0;display:flex;align-items:center;justify-content:space-between;gap:14px;background:none;border:0;padding:0;margin:0;font-family:inherit;color:inherit;text-align:left;cursor:pointer;}
.mit-dcard-btn:focus-visible{outline:2px solid var(--red);outline-offset:3px;border-radius:var(--r-cell);}
.mit-dcard-txt{display:flex;flex-direction:column;align-items:flex-start;gap:7px;min-width:0;}
.mit-dcard-t{font-size:14px;font-weight:600;color:var(--ink);line-height:1.3;}
.mit-dcard-btn:hover .mit-dcard-t{color:var(--red);}
.mit-dcard-t-none{color:var(--muted);font-weight:500;}
.mit-dcard-y{font-size:10.5px;font-weight:700;text-transform:uppercase;letter-spacing:0.05em;color:#3F5F79;background:var(--axis);border-radius:var(--r-ctl);padding:3px 9px;}
.mit-dcard-n{flex:none;min-width:25px;height:25px;padding:0 6px;box-sizing:border-box;border-radius:var(--r-pill);background:var(--empty);color:var(--ink);font-size:12px;font-weight:700;display:inline-flex;align-items:center;justify-content:center;font-variant-numeric:tabular-nums;}
.mit-dcard-lnk{flex:none;color:var(--muted);text-decoration:none;font-size:15.5px;line-height:1;padding:2px;}
.mit-dcard-lnk:hover{color:var(--red);}
.mit-dcard-body{display:none;border-top:1px solid var(--line);padding:6px 14px 10px;}
.mit-dcard.open>.mit-dcard-body{display:block;}
/* ---- highlight viewer: the page of the source document a quote sits on ---- */
.hlv{position:fixed;inset:0;background:rgba(26,26,26,0.5);z-index:1000;display:flex;align-items:center;justify-content:center;padding:20px;}
.hlv-panel{background:var(--card);border-radius:var(--r-modal);width:100%;max-width:1020px;max-height:92vh;display:flex;flex-direction:column;box-shadow:var(--shadow-modal);overflow:hidden;}
/* The company band, the same one the quotes card wears. The panel clips its own corners, so this needs no
   radius of its own. The link out and the close button sit in it, in white. */
.hlv-co{flex:none;display:flex;align-items:center;gap:12px;background:var(--red);color:#fff;padding:10px 12px 10px 16px;}
.hlv-co-n{flex:1;min-width:0;font-size:15.5px;font-weight:700;line-height:1.25;letter-spacing:-0.01em;
  line-height:1.25;}
.hlv-co-bare{justify-content:flex-end;}
.hlv-co .hlv-src{color:#fff;opacity:0.92;margin:0;font-size:12px;}
.hlv-co .hlv-src:hover{color:#fff;opacity:1;text-decoration:underline;}
.hlv-co .hlv-x{color:#fff;width:26px;height:26px;border-radius:var(--r-ctl);display:flex;align-items:center;justify-content:center;}
.hlv-co .hlv-x:hover{color:#fff;background:rgba(255,255,255,0.22);}
/* the coding caveat, flush inside the panel rather than carrying the free-standing banner's margins */
.hlv-banner{flex:none;margin:0;padding:8px 16px;font-size:12px;border-radius:0;}
.hlv-banner .mit-banner-lead{font-size:13px;}
.hlv-head{flex:none;display:flex;align-items:flex-start;gap:14px;padding:13px 16px 11px;border-bottom:1px solid var(--line);}
.hlv-titles{flex:1;min-width:0;}
.hlv-t{font-size:15.5px;font-weight:600;line-height:1.3;color:var(--ink);}
.hlv-sub{margin-top:4px;font-size:12px;color:var(--muted);}
.hlv-src{flex:none;margin-top:2px;font-size:12px;color:var(--muted);text-decoration:none;white-space:nowrap;}
.hlv-src:hover{color:var(--red);}
.hlv-x{flex:none;width:26px;height:26px;display:flex;align-items:center;justify-content:center;background:none;border:0;font-size:18px;line-height:1;color:var(--muted);cursor:pointer;border-radius:var(--r-ctl);font-family:inherit;}
.hlv-x:hover{background:var(--bg);color:var(--ink);}
.hlv-quote{flex:none;padding:10px 16px;border-bottom:1px solid var(--line);background:#FCFCFA;font-size:13px;line-height:1.5;color:var(--body);max-height:5.8em;overflow-y:auto;}
.hlv-stage{flex:1;min-height:0;overflow:auto;background:#EDEAE4;padding:16px;display:flex;justify-content:center;align-items:flex-start;}
.hlv-page{position:relative;flex:none;background:#fff;box-shadow:0 2px 12px rgba(0,0,0,0.18);line-height:0;}
.hlv-page canvas{display:block;}
.hlv-marks{position:absolute;left:0;top:0;pointer-events:none;}
/* the label column beside the page, and the rule tying a label to its line */
.hlv-page.gut{background:transparent;box-shadow:none;}
.hlv-page.gut canvas{box-shadow:0 2px 12px rgba(0,0,0,0.18);}
.hlv-rule{position:absolute;height:1px;background:#9DB8D6;opacity:0.8;pointer-events:none;}
.hlv-rule.v{width:1px;height:auto;}
.hlv-rule.cur{background:#C2697A;opacity:0.95;}
.hlv-bub.gut{transform:none;white-space:normal;max-width:172px;}
.hlv-bub.gut::after{display:none;}
/* pointing at a label isolates its coding; everything else recedes rather than
   disappearing, so the page does not appear to change under the reader */
.hlv-bub{pointer-events:auto;cursor:default;}
.hlv-mk,.hlv-bub,.hlv-rule{transition:opacity 0.13s ease;}
.hlv-page.dim .hlv-mk:not(.keep){opacity:0.10;}
.hlv-page.dim .hlv-rule:not(.keep){opacity:0.12;}
.hlv-page.dim .hlv-bub:not(.keep){opacity:0.3;}
.hlv-page.dim .hlv-bub.keep{box-shadow:0 3px 12px rgba(26,26,26,0.28);}
/* the located text, in the amber the mitigation figures use for acknowledgement */
.hlv-mk{position:absolute;background:rgba(224,162,43,0.30);border-radius:var(--r-cell);}
.hlv-mk.cur{background:rgba(224,162,43,0.46);box-shadow:0 0 0 1.5px rgba(163,32,53,0.5);}
/* the bubble naming a coding, sitting on the page above where it starts */
.hlv-bub{position:absolute;z-index:3;display:inline-flex;align-items:baseline;gap:7px;
  max-width:56%;box-sizing:border-box;padding:5px 12px 6px;border-radius:var(--r-pill);
  background:#FDF4E2;border:1px solid #E0A22B;color:#6B5108;
  /* stated rather than inherited: this label sits on top of a rendered page and has
     to read as part of the site, not as part of the document underneath it */
  font-family:'Figtree',sans-serif;font-size:13px;line-height:1.35;white-space:nowrap;
  box-shadow:0 3px 10px rgba(26,26,26,0.18);pointer-events:none;
  transform:translateY(calc(-100% - 7px));}
.hlv-bub.below{transform:translateY(7px);}
.hlv-bub b{font-weight:700;font-variant-numeric:tabular-nums;flex:none;}
.hlv-bub span{overflow:hidden;text-overflow:ellipsis;font-weight:500;}
/* the one the reader clicked through to reads as the subject, the rest as context */
.hlv-bub.cur{background:#FAF3F4;border-color:#C2697A;color:var(--ink);font-weight:600;
  box-shadow:0 2px 9px rgba(163,32,53,0.2);}
/* the page's other codings: present, legible, and clearly not the subject */
.hlv-mk.oth{background:rgba(78,134,194,0.18);}
.hlv-mk.oth.mit{background:rgba(135,112,182,0.18);}
.hlv-bub.oth{background:#F2F6FB;border-color:#9DB8D6;color:#38536F;font-size:12px;
  padding:4px 10px 5px;box-shadow:0 2px 7px rgba(26,26,26,0.12);}
.hlv-bub.oth span{font-weight:400;}
.hlv-btn.on{border-color:var(--red);color:var(--red);background:#FAF3F4;}
/* a small tail, so the bubble is clearly attached to the line below it */
.hlv-bub::after{content:'';position:absolute;left:14px;bottom:-5px;width:8px;height:8px;
  background:inherit;border:inherit;border-top:0;border-left:0;transform:rotate(45deg);}
.hlv-bub.below::after{top:-5px;bottom:auto;border:inherit;border-bottom:0;border-right:0;}
.hlv-foot{flex:none;display:flex;align-items:center;gap:10px;flex-wrap:wrap;padding:9px 16px;border-top:1px solid var(--line);font-size:12px;color:var(--muted);}
.hlv-spacer{flex:1;min-width:8px;}
.hlv-btn{background:none;border:1px solid var(--line);border-radius:var(--r-ctl);padding:5px 10px;font-family:inherit;font-size:12px;color:var(--ink);cursor:pointer;}
.hlv-btn:hover:not(:disabled){border-color:var(--red);color:var(--red);}
.hlv-btn:disabled{opacity:0.38;cursor:default;}
.hlv-msg{padding:34px 20px;max-width:var(--measure);text-align:center;font-size:13px;line-height:1.65;color:var(--muted);}
/* the affordance on a quote that can be shown in its document */
.mit-q-has,.cp-stmt-has{cursor:pointer;border-radius:0 var(--r-ctl) var(--r-ctl) 0;}
.mit-q-has:hover,.cp-stmt-has:hover{border-left-color:var(--red);background:#FCFAF6;}
.mit-q-has:focus-visible,.cp-stmt-has:focus-visible{outline:2px solid var(--red);outline-offset:2px;}
/* Always on its own line under the quote, never trailing the closing quotation mark, and set as a
   control rather than as prose so it cannot be read as part of what the company said. */
.hl-see{display:block;margin-top:7px;font-size:10.5px;font-weight:700;text-transform:uppercase;
  letter-spacing:0.05em;color:var(--muted);font-style:normal;}
.mit-q-has:hover .hl-see,.cp-stmt-has:hover .hl-see,.mit-q-has:focus-visible .hl-see,.cp-stmt-has:focus-visible .hl-see{color:var(--red);}
@media (max-width:640px){.hlv{padding:0;}.hlv-panel{max-height:100vh;border-radius:0;}}
.cp-cols{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:28px;margin-top:6px;}
.cp-line-tag.yes{color:#2E8B57;}
.cp-line-tag.no{color:var(--muted);}
.cp-head{display:flex;align-items:center;gap:22px;margin:10px 0 20px;}
.cp-logo{height:96px;width:96px;object-fit:contain;border:1px solid var(--line);border-radius:var(--r-ctl);background:#fff;padding:8px;flex-shrink:0;}
/* the page heading: a company, sector or risk name, or the question a view answers, all at 30px */
.cp-name,.sec-q{font-size:30px;font-weight:700;letter-spacing:-0.015em;line-height:1.1;color:var(--ink);}
.sec-q{margin:10px 0 24px;max-width:var(--measure-wide);}
.cp-name .cp-info{vertical-align:middle;margin-left:10px;}
.cp-desc{font-size:15px;line-height:1.55;color:var(--body);max-width:var(--measure-wide);margin:12px 0 16px;}
/* The two opening panels share one fact table: a narrow uppercase key column and a value
   column whose note sits under the value. The fold is a <details>, styled like the FAQ
   accordion, so "more" reads the same way across the site. */
.cp-facts{width:100%;border-collapse:collapse;font-size:15px;}
.cp-facts th,.cp-facts td{padding:9px 10px;border-bottom:1px solid var(--line);vertical-align:top;text-align:left;}
.cp-facts th{width:230px;font-size:13px;color:var(--muted);font-weight:600;padding-top:11px;line-height:1.4;}
.cp-facts td{font-weight:600;font-variant-numeric:tabular-nums;line-height:1.4;}
.cp-facts tr:last-child th,.cp-facts tr:last-child td{border-bottom:0;}
.cp-facts td a{color:var(--red);text-decoration:none;}
.cp-facts td a:hover{text-decoration:underline;}
.cp-fact-note{display:block;margin-top:4px;font-size:13px;font-weight:400;color:var(--body);line-height:1.5;max-width:var(--measure-wide);}
.cp-fact-rank{font-weight:500;color:var(--muted);}
.cp-code{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:13px;font-weight:600;background:#fff;border:1px solid var(--line);border-radius:4px;padding:1px 5px;margin-right:2px;}
.cp-flag{display:inline-block;vertical-align:-2px;width:20px;height:15px;border:1px solid var(--line);border-radius:2px;margin-right:7px;object-fit:cover;}
.cp-muted{color:var(--muted);font-weight:400;font-style:italic;}
.cp-fact-prose{display:block;font-weight:400;color:var(--body);line-height:1.5;max-width:var(--measure-wide);}
.cp-doc-mix{display:flex;flex-wrap:wrap;gap:4px 16px;margin-top:5px;font-size:13px;font-weight:400;color:var(--body);}
.cp-doc-mix b{font-weight:600;color:var(--ink);}
.cp-panel .cp-desc{margin:14px 10px 4px;}
.cp-fold{margin-top:4px;}
.cp-fold>summary{list-style:none;cursor:pointer;font-size:13px;font-weight:600;color:var(--ink);padding:9px 10px 7px;width:fit-content;}
.cp-fold>summary::-webkit-details-marker{display:none;}
.cp-fold>summary::before{content:'+';display:inline-block;width:14px;margin-right:6px;text-align:center;color:var(--muted);}
.cp-fold[open]>summary::before{content:'\2212';}
.cp-fold>summary:hover{color:var(--red);}
.cp-fold>summary:focus-visible{outline:2px solid var(--red);outline-offset:2px;border-radius:var(--r-cell);}
.cp-fold .cp-facts{border-top:1px solid var(--line);}
.cp-fold .cp-desc{margin:12px 10px 6px;}
/* the acknowledged-risks figure: an SVG that scales with the column; each tile is a focusable group */
.ackfig-head{display:flex;align-items:flex-end;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-bottom:24px;}
.ackfig-head .cp-sec-title,.ackfig-head .rvsec-h{margin:0;}
.cp-info{display:inline-flex;align-items:center;justify-content:center;width:15px;height:15px;margin-left:6px;border:1px solid var(--rule);border-radius:50%;border-bottom-style:solid;
  font-size:10px;font-weight:700;font-style:italic;color:var(--muted);background:#fff;vertical-align:1px;cursor:help;font-family:Georgia,serif;}
.cp-info:hover,.cp-info:focus-visible{color:#fff;background:var(--ink);border-color:var(--ink);outline:none;}
/* the bubble never inherits the glyph's Georgia italic, hovered or not */
.cp-info::after{font-family:'Figtree',sans-serif;font-size:13px;font-style:normal;font-weight:400;line-height:1.45;}
.cp-info:hover::after,.cp-info:focus-visible::after{white-space:normal;width:max-content;max-width:300px;text-align:left;}
.ackfig-wrap{margin-top:0;}
.ackfig{width:100%;height:auto;display:block;font-family:Figtree,sans-serif;}
.ackfig-tile{cursor:pointer;outline:none;}
.ackfig-tile:hover rect,.ackfig-tile:focus-visible rect{stroke:#1A1A1A;stroke-width:1.5;}
@media (max-width:560px){.cp-logo{height:64px;width:64px;}.cp-name{font-size:24px;}.cp-facts th{width:120px;}}
.cp-block{margin:0 -22px;padding:38px 22px 38px;border-top:1px solid var(--line);}
/* The page itself is --bg (#FAFAFA), so a band has to be white to show; alternating white
   sections on the grey page is what separates one section from the next. */
.cp-block.cp-shade{background:var(--card);}
.cp-block>.cp-sec-title:first-child{margin-top:0;}
.cp-meta-v a{color:var(--red);text-decoration:none;}
.cp-meta-v a:hover{text-decoration:underline;}
.cp-doclist{margin:6px 0 0;padding-left:20px;font-size:13px;line-height:1.6;color:var(--body);}
.cp-doclist li{margin-bottom:3px;}
/* The documents included for a company: a readable row each rather than a wall of
   thumbnails, because the title, what kind of document it is, and how much was coded in
   it are the things a reader is actually looking for. */
.doc2-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:12px;margin-top:4px;}
.doc2{display:flex;gap:13px;align-items:flex-start;padding:12px 14px;background:var(--card);border:1px solid var(--line);border-radius:var(--r-ctl);}
.doc2.can{cursor:pointer;}
.doc2.can:hover{border-color:var(--red);box-shadow:0 2px 12px rgba(26,26,26,0.08);}
.doc2.can:focus-visible{outline:2px solid var(--red);outline-offset:2px;}
.doc2-thumb{display:block;position:relative;flex:none;width:52px;height:66px;border:1px solid var(--line);
  border-radius:var(--r-cell);overflow:hidden;background:var(--bg);display:flex;align-items:center;
  justify-content:center;}
/* 21 documents have no thumbnail; an empty grey box looks like a failure, a label does not */
.doc2-thumb::before{content:'PDF';position:absolute;color:var(--muted);font-size:9.5px;font-weight:700;
  letter-spacing:0.08em;}
.doc2-thumb img{position:relative;z-index:1;}
.doc2-thumb img{width:100%;height:100%;object-fit:cover;object-position:top;background:#fff;}
.doc2-body{flex:1;min-width:0;display:flex;flex-direction:column;gap:6px;}
.doc2-title{display:block;font-size:15px;font-weight:600;line-height:1.3;color:var(--ink);text-decoration:none;}
a.doc2-title:hover{color:var(--red);text-decoration:underline;}
a.doc2-thumb:hover{border-color:var(--red);}
.doc2-ext{color:var(--muted);font-weight:400;font-size:13px;}
/* the label column is capped at 45% so a long label wraps instead of squeezing the value */
.doc2-facts{display:grid;grid-template-columns:minmax(0,40%) minmax(0,60%);column-gap:12px;row-gap:3px;margin:8px 0 0;font-size:13px;line-height:1.4;}
.doc2-facts>div{display:contents;}
.doc2-facts dt{color:var(--muted);}
.doc2-facts dd{margin:0;color:var(--ink);font-weight:600;}
.doc2.can:hover .doc2-title{color:var(--red);}
/* the year the document itself states; see docYear() for why there is no more than this */
.doc2-open{display:block;margin-top:8px;font-size:13px;color:var(--muted);font-weight:600;}
.doc2.can:hover .doc2-open{color:var(--red);}
@media (max-width:520px){.doc2-thumb{display:none;}}
/* ---- Documents tab: filters ----------------------------------------------------
   Each type has a fill and an ink, set as custom properties so the filter pill and its
   selected state read from one place. The results themselves are the company profile's
   document cards (.doc2-grid), declared with the profile.
   There was a prefers-color-scheme:dark block here, described in this comment as dormant until a
   theme toggle existed. It was not dormant: it fired on the reader's OS preference and painted the
   seven pills near-black on a page that is light either way. The palette can come back with a real
   toggle, and the rest of the site's colours to go with it. */
.dt-annual{--dt-bg:#FCEEDA;--dt-fg:#8A5A18;--dt-line:#E0954A;}
.dt-esg{--dt-bg:#E4F2E4;--dt-fg:#33693A;--dt-line:#57A65C;}
.dt-gov{--dt-bg:#E1ECF8;--dt-fg:#2F5680;--dt-line:#4E86C2;}
.dt-principles{--dt-bg:#EEE9F7;--dt-fg:#553F86;--dt-line:#8770B6;}
.dt-policy{--dt-bg:#DDF0EF;--dt-fg:#1F615D;--dt-line:#2F8F8A;}
.dt-investor{--dt-bg:#FBE7E2;--dt-fg:#8C3E2B;--dt-line:#D9705A;}
/* the residual bucket, deliberately not a colour */
.dt-other{--dt-bg:#EAE8E4;--dt-fg:var(--body);--dt-line:#A8A49C;}
/* the band's own 38px of padding is the air above the filters */
.dq{display:flex;flex-direction:column;gap:12px;margin:0 0 18px;}
.dq-top{display:flex;align-items:center;gap:10px;flex-wrap:wrap;}
.dq-text{flex:1 1 320px;min-width:240px;font-size:15px;padding:8px 12px;}
.dq-arrange{display:inline-flex;align-items:center;gap:6px;font-size:13px;color:var(--muted);}
.dq-arrange select{font-family:inherit;font-size:13px;color:var(--ink);padding:6px 26px 6px 9px;border:1px solid var(--line);border-radius:var(--r-ctl);background:var(--card);}
.dq-facets{display:flex;flex-wrap:wrap;gap:10px;align-items:center;padding:12px 14px;background:var(--bg);border:1px solid var(--line);border-radius:var(--r-ctl);}
.dq-dates{display:inline-flex;align-items:center;gap:6px;font-size:13px;color:var(--muted);}
.dq-dates-l{font-weight:600;color:var(--ink);}
.dq-date{width:150px;font-family:inherit;font-size:13px;padding:6px 8px;border:1px solid var(--line);border-radius:var(--r-ctl);background:var(--card);color:var(--ink);font-variant-numeric:tabular-nums;}
.dq-date:focus{outline:none;border-color:var(--red);}
/* the facet control */
.fct{position:relative;display:inline-block;}
.fct-btn{display:inline-flex;align-items:center;gap:8px;font:inherit;font-size:13px;color:var(--ink);background:var(--card);border:1px solid var(--line);border-radius:var(--r-ctl);padding:6px 10px;cursor:pointer;}
.fct-btn:hover{border-color:var(--muted);}
.fct-btn.on{border-color:var(--ink);font-weight:600;}
.fct.open .fct-btn{border-color:var(--red);}
.fct-caret{color:var(--muted);font-size:12px;}
.fct-pop{display:none;position:absolute;left:0;top:calc(100% + 5px);z-index:40;min-width:280px;max-width:380px;background:var(--card);border:1px solid var(--line);border-radius:var(--r-ctl);box-shadow:var(--shadow-pop);padding:6px;}
.fct.open .fct-pop{display:block;}
.fct-search{display:block;width:100%;box-sizing:border-box;font:inherit;font-size:13px;padding:6px 8px;margin:2px 0 6px;border:1px solid var(--line);border-radius:var(--r-ctl);}
.fct-list{max-height:320px;overflow-y:auto;}
.fct-opt{display:flex;align-items:center;gap:8px;padding:6px 8px;border-radius:var(--r-cell);font-size:13px;color:var(--ink);cursor:pointer;}
.fct-opt:hover{background:var(--bg);}
.fct-opt.zero{color:var(--muted);}
.fct-opt input{margin:0;accent-color:var(--ink);}
.fct-txt{flex:1;min-width:0;}
.fct-n{font-size:12px;font-weight:700;color:var(--muted);font-variant-numeric:tabular-nums;}
.fct-only{visibility:hidden;font:inherit;font-size:12px;font-weight:600;color:var(--red);background:none;border:0;padding:0 2px;cursor:pointer;}
.fct-opt:hover .fct-only,.fct-opt:focus-within .fct-only{visibility:visible;}
.fct-sw{display:inline-block;width:10px;height:10px;border-radius:2px;background:var(--dt-line);}
.fct-foot{display:flex;justify-content:space-between;gap:10px;padding:8px 8px 4px;border-top:1px solid var(--line);margin-top:4px;}
.fct-clear,.fct-done{font:inherit;font-size:13px;font-weight:600;background:none;border:0;cursor:pointer;color:var(--red);padding:2px 0;}
.fct-clear:disabled{color:var(--faint);cursor:default;}
.fct-done{color:var(--ink);}
.applied{display:inline-flex;flex-wrap:wrap;align-items:center;gap:6px;margin-left:12px;vertical-align:middle;}
.applied-clear{font:inherit;font-size:13px;font-weight:600;color:var(--red);background:none;border:0;cursor:pointer;padding:0 4px;}
.dq-grouph{display:flex;align-items:center;gap:8px;font-size:15px;font-weight:700;color:var(--ink);margin:22px 0 10px;padding:6px 10px;background:var(--axis);border-left:4px solid var(--axis-line);border-radius:var(--r-cell);}
.dq-grouph.doc2-typed,.dq-grouph[class*=" dt-"]{background:var(--dt-bg);border-left-color:var(--dt-line);color:var(--dt-fg);}
.dq-grouph:first-child{margin-top:4px;}
/* cards on the Documents page: grey ground on the white panel, the type as a keyline */
.doc2-typed{background:var(--bg);border-left:3px solid var(--dt-line);}
.doc2-typed .doc2-thumb{width:72px;height:92px;}
/* company cards: the logo where the document thumbnail sits */
.co-card{background:var(--bg);cursor:pointer;}
.co-card:hover{border-color:var(--red);box-shadow:0 2px 12px rgba(26,26,26,0.08);}
.co-card:hover .doc2-title{color:var(--red);}
.co-card:focus-visible{outline:2px solid var(--red);outline-offset:2px;}
.co-card-logo{width:72px;height:72px;display:flex;align-items:center;justify-content:center;background:#fff;}
.co-card-logo::before{display:none;}
.co-logo-card{width:56px;height:56px;border:0;padding:0;object-fit:contain;}
.co-card .cov-bar{width:140px;}
.co-card-go{display:block;margin-top:10px;text-align:right;font-size:13px;font-weight:600;color:var(--red);}
.co-card:hover .co-card-go{text-decoration:underline;}
.dq-hint{display:block;margin-top:6px;font-size:13px;color:var(--muted);}
.dq-row{display:flex;gap:12px;align-items:flex-end;flex-wrap:wrap;}
.dq-field{flex:1 1 340px;min-width:260px;display:flex;flex-direction:column;gap:4px;}
/* The filter labels are labels, not tags: 13px sentence case, the step the site gives a
   label. Small grey capitals were rejected on the profile and are rejected here. */
.dq-lab{font-size:13px;font-weight:600;color:var(--muted);}
.dq-combo{position:relative;display:flex;flex-wrap:wrap;
  align-items:center;gap:6px;padding:7px 9px;background:var(--card);
  border:1px solid var(--line);border-radius:var(--r-ctl);}
.dq-combo:focus-within{border-color:var(--red);box-shadow:0 0 0 3px rgba(163,32,53,0.08);}
.dq-chips{display:contents;}
/* company chips stay grey: colour is spoken for by document type */
.dq-chip{display:inline-flex;align-items:center;gap:5px;background:var(--empty);color:var(--ink);
  font-size:12px;font-weight:600;padding:3px 5px 3px 10px;border-radius:var(--r-pill);white-space:nowrap;}
.dq-chip-t{font-weight:500;font-style:italic;}
.dq-x{background:none;border:0;font-family:inherit;font-size:15px;line-height:1;color:var(--muted);
  cursor:pointer;padding:0 3px;}
.dq-x:hover{color:var(--red);}
.dq-input{flex:1;min-width:130px;border:0;background:none;font-family:inherit;font-size:13px;
  color:var(--ink);padding:3px 2px;}
.dq-input:focus{outline:none;}
.dq-pop{display:none;position:absolute;left:0;right:0;top:calc(100% + 5px);z-index:40;
  max-height:320px;overflow-y:auto;background:var(--card);border:1px solid var(--line);
  border-radius:var(--r-ctl);box-shadow:var(--shadow-pop);padding:5px;}
.dq-pop.open{display:block;}
.dq-opt{display:flex;width:100%;align-items:center;justify-content:space-between;gap:12px;
  background:none;border:0;font-family:inherit;font-size:13px;color:var(--ink);text-align:left;
  padding:7px 9px;border-radius:var(--r-ctl);cursor:pointer;}
.dq-opt:hover,.dq-opt:focus-visible{background:var(--bg);outline:none;}
.dq-opt-text{font-style:italic;color:var(--axis-ink);}
.dq-opt-n{flex:none;font-size:12px;font-weight:700;color:var(--muted);font-variant-numeric:tabular-nums;}
.dq-opt-h{font-size:13px;font-weight:600;color:var(--muted);padding:8px 9px 4px;}
.dq-opt-none{padding:10px;font-size:13px;color:var(--muted);}
/* selection is a border, because the fill already says which type this is */
.dq-bar{display:flex;align-items:flex-end;justify-content:space-between;gap:14px;flex-wrap:wrap;
  padding-top:2px;border-top:1px solid var(--line);}
.dq-count{font-size:13px;color:var(--muted);padding-top:10px;font-variant-numeric:tabular-nums;}
.dq-count b{color:var(--ink);font-size:15px;}
/* The company picker drops 320px over this bar, and the gap between the two is 46px, so
   there is no placement inside the bar that the popup cannot reach at every width. Clear
   therefore sits above it: aiming at Clear with the picker open used to add whichever
   company happened to be under the pointer. The card-white fill is the ground this band
   is on and the popup's own fill, so the button is invisible until it has to mask one. */
.dq-clear{background:var(--card);border:0;font-family:inherit;font-size:13px;color:var(--red);
  cursor:pointer;text-decoration:underline;padding:1px 5px;border-radius:var(--r-cell);
  margin-left:2px;position:relative;z-index:41;}
.dq-more{display:flex;justify-content:center;margin-top:16px;}
/* The results are the company profile's document cards (.doc2-grid / .doc2 / .doc2-facts):
   one card shape for a document wherever the site shows one. Only the two things a card here
   needs and the profile's does not are declared below. */
/* no usable title in the source; shown as absent rather than as a name */
.dq-untitled{font-weight:500;font-style:italic;color:var(--muted);}
/* the company row's value: a button into that company's page, set as the link it behaves like */
.dq-co{background:none;border:0;padding:0;font-family:inherit;font-size:13px;font-weight:600;
  color:var(--axis-ink);cursor:pointer;text-align:left;}
.dq-co:hover{color:var(--red);text-decoration:underline;}
/* stacked, the 340px flex-basis becomes a 340px *height* and leaves ~300px of dead space under
   each field, so the basis goes back to the content */
@media (max-width:560px){.dq-row{flex-direction:column;align-items:stretch;}.dq-field{flex-basis:auto;}}
.cp-docs{display:grid;grid-template-columns:repeat(auto-fill,minmax(148px,1fr));gap:12px;margin-top:2px;}
.cp-doc{display:flex;flex-direction:column;border:1px solid var(--line);border-radius:var(--r-ctl);overflow:hidden;text-decoration:none;color:var(--ink);background:var(--card);transition:border-color .12s,box-shadow .12s;}
.cp-doc:hover{border-color:var(--ink);box-shadow:0 2px 10px rgba(0,0,0,0.07);}
.cp-doc-thumb{position:relative;display:flex;align-items:center;justify-content:center;height:118px;background:var(--bg);border-bottom:1px solid var(--line);overflow:hidden;}
.cp-doc-thumb::before{content:'PDF';position:absolute;color:var(--muted);font-size:11px;font-weight:700;letter-spacing:0.08em;}
.cp-doc-thumb img{position:relative;z-index:1;width:100%;height:118px;object-fit:cover;object-position:top;background:#fff;}
.cp-doc-body{display:flex;flex-direction:column;gap:3px;padding:9px 10px;}
.cp-doc-title{font-size:12px;line-height:1.35;font-weight:500;}
.cp-doc-type{font-size:10.5px;text-transform:uppercase;letter-spacing:0.05em;color:var(--muted);font-weight:700;}
.cp-doc:hover .cp-doc-title{color:var(--red);}
.doc-cat{border:1px solid var(--line);border-radius:var(--r-ctl);margin-bottom:12px;overflow:hidden;}
.doc-cat-h{list-style:none;cursor:pointer;display:flex;align-items:center;gap:10px;padding:11px 14px;font-size:14px;font-weight:700;color:var(--ink);}
.doc-cat-h::-webkit-details-marker{display:none;}
.doc-cat-h::before{content:'›';font-size:15.5px;color:var(--muted);transition:transform .15s;display:inline-block;}
.doc-cat[open]>.doc-cat-h::before{transform:rotate(90deg);}
.doc-cat-n{font-size:12px;font-weight:600;color:var(--muted);background:#fff;border:1px solid var(--line);border-radius:var(--r-pill);padding:1px 9px;margin-left:auto;}
.doc-cat-body{padding:12px 14px 16px;}
.docs-grid{grid-template-columns:repeat(auto-fill,minmax(116px,1fr));gap:8px;}
.docs-grid .cp-doc-thumb{height:82px;}
.docs-grid .cp-doc-thumb img{height:82px;}
.docs-grid .cp-doc-body{padding:6px 8px;gap:2px;}
.docs-grid .cp-doc-title{font-size:11px;line-height:1.3;}
.docs-grid .cp-doc-type{font-size:9.5px;}
.cp-mx-intro{font-size:15px;color:var(--body);line-height:1.5;max-width:var(--measure);margin:2px 0 12px;}
/* wide enough that the risk labels fit unclipped: the longest ("Devaluation of
   human creativity") needs a ~171px column, so 106px of row header plus five of
   those. Narrower viewports shrink the columns and the labels clip as before. */
.cpm{display:grid;gap:0;position:relative;}
/* The axis bands, in the app's axis colour: square, pale blue, ink text, the same as the risk page's
   .rv2-axis. Not the black they were first drawn in, which read as a header bar rather than an axis. */
.cpm-axis{background:var(--axis);color:var(--ink);font-size:13px;font-weight:600;display:flex;align-items:center;justify-content:center;gap:2px;padding:7px 10px;line-height:1.3;text-align:center;}
/* 10px, not the band's 12: "Vulnerability" has to clear 13 uppercase characters inside a 106px column */
.cpm-axis-side{background:var(--axis);color:var(--ink);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;padding:10px 4px;}
.cpm-axis-side-txt{writing-mode:vertical-rl;transform:rotate(180deg);font-size:13px;font-weight:600;line-height:1.25;text-align:center;}
.cpm-corner{background:#fff;}
.cpm-colh{font-size:13px;font-weight:600;text-align:center;line-height:1.25;padding:7px 6px;color:#fff;border-left:1px solid #fff;display:flex;align-items:center;justify-content:center;}
.cpm-rowh{font-size:13px;font-weight:600;line-height:1.25;padding:7px 10px;color:#fff;border-top:1px solid #fff;display:flex;align-items:center;}
.cpm-l5{background:var(--lvl-5);}
.cpm-l4{background:var(--lvl-4);color:var(--ink);}
.cpm-l3{background:var(--lvl-3);color:var(--ink);}
.cpm-l2{background:var(--lvl-2);color:var(--ink);}
.cpm-l1{background:var(--lvl-1);}
/* one risk per line, so each chip can carry its short name and clip what does
   not fit. The full name, number and definition stay on the tooltip. */
.cpm-cell{border-top:1px solid var(--line);border-left:1px solid var(--line);min-height:40px;padding:5px;display:flex;flex-wrap:wrap;align-content:flex-start;gap:4px;}
.cpm-emptyh{font-size:12px;}   /* an unpopulated tier keeps its colour; only the column narrows */
.cpm-emptyc{min-height:26px;}
.cpm-hot{}
/* The one size deliberately off the type scale. The grid above is sized so that the
   longest risk name fits a chip unclipped, and it was measured at 10px: at 10.5 the two
   longest ("Devaluation of human creativity", "Transparency & interpretability") lose
   their last characters to the ellipsis. The geometry is load-bearing, the half-pixel
   is not. */
.cpm-chip{font-size:12px;font-weight:600;line-height:1.2;padding:4px 8px;border-radius:var(--r-cell);cursor:pointer;max-width:100%;}   /* the scale's micro step: these are tags */
.cpm-chip.yes{background:var(--chip);color:#fff;}
.cpm-chip.no{background:#E6E6E4;color:#8A8A88;}
.cpm-chip:hover{outline:2px solid var(--ink);outline-offset:-2px;}
.cpm-bracket{position:absolute;border:2px solid var(--red);border-radius:var(--r-ctl);pointer-events:none;z-index:2;}
.cpm-bracket-tag{position:absolute;bottom:-10px;left:8px;background:var(--red);color:#fff;font-size:12px;font-weight:600;padding:2px 8px;border-radius:var(--r-cell);white-space:nowrap;}
/* the one-axis grid: responsibility tiers as rows, one wide cell of chips per row (since 2026-09-22) */
.cpm-1d{grid-template-columns:160px minmax(0,1fr);}
.cpm-1d .cpm-axis{grid-column:2;}
.cpm-1d .cpm-rowh{justify-content:flex-end;text-align:right;}
.cpm-1d .cpm-cell{min-height:44px;}
.cpm-1d .cpm-emptyc{min-height:30px;}
.cpm-1d .cpm-bracket-tag{bottom:auto;top:3px;left:auto;right:3px;}
/* the snapshot sentence under every figure, and the correction request at the foot of a profile */
.tbc{color:var(--red);font-weight:700;}   /* preview marker for text Alexander has not confirmed */
.src-line{font-size:13px;color:var(--muted);line-height:1.5;margin:-14px 0 22px;max-width:var(--measure-wide);}
.snap-line{font-size:13px;color:var(--muted);margin:14px 0 0;line-height:1.5;}
.cp-corrections{font-size:13px;color:var(--muted);margin:26px 0 0;}
.cpm-legend{display:flex;flex-wrap:wrap;gap:20px;align-items:center;margin-top:14px;font-size:13px;color:var(--body);}
.cpm-legend>span{display:flex;align-items:center;gap:6px;}
.cpm-key{width:14px;height:10px;border-radius:var(--r-cell);display:inline-block;}
.cpm-key.yes{background:var(--ink);}
.cpm-key.no{background:#E6E6E4;}
.cpm-key-num{color:var(--muted);}
.cmp-filters{display:flex;flex-wrap:wrap;gap:18px;align-items:flex-start;padding:14px 16px;background:var(--bg);border-radius:var(--r-ctl);margin-bottom:14px;}
.cmp-fgroup{display:flex;flex-direction:column;gap:7px;}
.cmp-flabel{font-size:12px;font-weight:700;color:var(--ink);background:var(--axis);padding:5px 9px;border-radius:var(--r-ctl);}
.cmp-fchips{display:flex;gap:6px;flex-wrap:wrap;}
.cmp-fchip{font-size:12px;padding:4px 10px;border:1px solid var(--line);border-radius:var(--r-pill);cursor:pointer;background:var(--card);transition:all 0.1s;}
.cmp-fchip:hover{border-color:var(--muted);}
.cmp-fchip.on{background:var(--ink);color:#fff;border-color:var(--ink);}
.cmp-clearf{font-size:12px;color:var(--muted);cursor:pointer;align-self:center;margin-left:auto;text-decoration:underline;}
.cmp-clearf:hover{color:var(--ink);}
.cmp-status{display:flex;align-items:center;gap:12px;font-size:13px;color:var(--muted);white-space:nowrap;}
.cmp-selrow{display:flex;align-items:center;gap:16px;flex-wrap:wrap;margin:0 0 18px;}
.cmp-starts{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:8px;margin-top:12px;font-size:13px;color:var(--muted);}
.cmp-start{display:inline-flex;align-items:center;gap:7px;font:inherit;font-size:13px;font-weight:600;color:var(--ink);background:var(--card);border:1px solid var(--line);border-radius:var(--r-pill);padding:5px 11px;cursor:pointer;}
.cmp-start:hover{border-color:var(--red);color:var(--red);}
.cmp-diff{display:inline-flex;align-items:center;gap:8px;font-size:13px;color:var(--ink);margin:0 0 10px;cursor:pointer;}
.cmp-diff input{margin:0;accent-color:var(--ink);}
.cmp-combo{flex:1;min-width:280px;max-width:760px;}
.dq-chip-x{border:0;background:none;font:inherit;font-size:15px;line-height:1;color:var(--muted);cursor:pointer;padding:0 2px;}
.dq-chip-x:hover{color:var(--red);}
.cmp-clearsel{cursor:pointer;text-decoration:underline;}
.cmp-clearsel:hover{color:var(--ink);}
/* sentence case, like every other sector heading: these hold a full name now, and
   "Agriculture, Mining, Construction and Manufacturing" does not want capitalizing */
.cmp-chip.disabled:hover{border-color:var(--line);}
/* the chip is a row: logo, then the name with its role beneath */
.cmp-chip{display:inline-flex;align-items:center;gap:7px;}
.cmp-tick th>.co-logo{display:block;margin:0 auto 5px;}
.cmp-chip.on .cmp-chip-role{opacity:0.7;}
.cmp-gridwrap{overflow-x:auto;}
/* simplified compare: a ticks grid, companies as columns, risks as rows */
/* width:auto, not 100%. Stretched to the page the risk names took all the slack and pushed the ticks
   to the far right, which is the comparison being made: the eye should cross from a name to its row
   without traversing empty table. The table is now exactly as wide as its columns need. */
.cmp-tick{width:auto;table-layout:fixed;border-collapse:collapse;font-size:13px;}
/* the tick columns are as narrow as a tick needs; the risk names take whatever is left */
.cmp-tick col.cmp-c-co{width:170px;}
.cmp-tick col.cmp-c-risk{width:260px;}
.cmp-tick col.cmp-c-dom{width:170px;}
.cmp-tick td.cmp-tick-dom{font-size:13px;font-weight:600;color:var(--body);vertical-align:top;padding:8px 10px;background:var(--bg);border-bottom:2px solid var(--line);}
.cmp-tick th.cmp-tick-dom{text-align:left;}
.cmp-tick td.cmp-tick-cell .cpm-key{width:22px;height:14px;display:inline-block;vertical-align:middle;}
.cmp-tick td.cmp-tick-cell{cursor:pointer;}
.cmp-tick td.cmp-tick-cell:hover{outline:2px solid var(--ink);outline-offset:-2px;}
.cmp-tick td.cmp-tick-cell:focus-visible{outline:2px solid var(--red);outline-offset:-2px;}
.cmp-facts-h{margin-top:34px;}
.cmp-facts th[scope=col]{font-size:15px;font-weight:700;color:var(--ink);text-align:left;padding:8px 12px 8px 0;text-transform:none;letter-spacing:0;}
.cmp-facts td{vertical-align:top;}
.cmp-facts .cov-bar{width:140px;}
.cmp-facts-go td,.cmp-facts-go th{border-bottom:0;padding-top:14px;}
.cmp-go{font-size:13px;}
/* Scale exceptions, both in the six pinned company columns. the col.cmp-c-co rule above holds each at
   92px, which is what keeps six companies and the 300px risk column inside the page: the table is
   853px wide at 1440 and compresses to the container at 780. Measured at 1440 with six companies,
   raising these to 13px/12px leaves the table width unchanged (853px, the col rule fixes it) and
   costs header height instead: 104px -> 118px at 1440, and at 780 "Infrastructure provider" and
   "General-purpose AI developer" wrap from two lines to three, 104px -> 132px. The size is what
   lets a full role name fit a 92px column, so 11px and 9.5px stay until the column widens. */
.cmp-tick th{background:var(--axis);color:var(--ink);font-weight:700;font-size:13px;padding:8px 8px;border:1px solid var(--ink);text-align:center;vertical-align:bottom;line-height:1.25;cursor:pointer;}
.cmp-tick th.cmp-tick-risk{text-align:left;font-size:13px;vertical-align:middle;cursor:default;}
.cmp-tick th[data-cmpco]:hover{background:#C7DCEE;color:var(--red);}
.cmp-tick-co-n{display:block;overflow-wrap:anywhere;}
/* wraps now. As nowrap it set the column width from the longest string in it, not from the data. */
.cmp-tick td{border:1px solid var(--line);padding:6px 4px;font-variant-numeric:tabular-nums;}
.cmp-tick td.cmp-tick-risk{font-weight:600;color:var(--ink);cursor:pointer;line-height:1.35;padding:6px 10px;}
.cmp-tick td.cmp-tick-risk:hover{color:var(--red);}
.cmp-tick td.cmp-tick-risk b{color:var(--muted);font-weight:700;margin-right:5px;}
.cmp-tick td.cmp-tick-cell{text-align:center;}
.cmp-tick tbody tr:hover{background:var(--bg);}
.cmp-tick tfoot td{font-weight:700;border-top:2px solid var(--ink);font-size:13px;text-align:center;background:var(--bg);}
.cmp-tick tfoot td.cmp-tick-risk{text-align:left;font-size:13px;color:var(--muted);}
.rvm{display:grid;gap:0;font-size:11px;align-items:stretch;margin-top:14px;}
.rvm-sector{grid-column:1/-1;display:flex;align-items:center;justify-content:space-between;padding:8px 12px;margin-top:8px;border-radius:var(--r-cell);}
.rvm-sector.vx-extreme{background:var(--lvl-5);}
.rvm-sector.vx-extreme .rvm-secname,.rvm-sector.vx-extreme .rvm-secvuln{color:#fff;}
.rvm-sector.vx-high{background:var(--lvl-4);}
.rvm-sector.vx-high .rvm-secname,.rvm-sector.vx-high .rvm-secvuln{color:var(--ink);}
.rvm-sector.vx-mod{background:var(--lvl-3);}
.rvm-sector.vx-mod .rvm-secname,.rvm-sector.vx-mod .rvm-secvuln{color:var(--ink);}
.rvm-sector.vx-low{background:var(--lvl-2);}
.rvm-sector.vx-low .rvm-secname,.rvm-sector.vx-low .rvm-secvuln{color:var(--ink);}
.rvm-secname{font-size:13px;font-weight:600;text-transform:uppercase;letter-spacing:0.06em;cursor:pointer;}
.rvm-secname:hover{opacity:0.75;}
.rvm-secvuln{font-size:11px;font-weight:600;}
.rvm-name{font-size:13px;font-weight:500;padding:8px;border-top:1px solid var(--line);cursor:pointer;display:flex;flex-direction:column;justify-content:center;}
.rvm-name:hover{color:var(--red);}
.rvm-meta{font-size:11px;color:var(--muted);font-weight:400;margin-top:2px;}
.rvm-disccell{display:flex;align-items:center;justify-content:center;border-top:1px solid var(--line);}
.rvm-disc.yes{background:var(--green);color:#fff;}
.rvm-disc.no{background:#F4F4F2;}
.rvm-sector{cursor:pointer;gap:8px;}
.rvm-sectri{font-size:9.5px;display:inline-block;transition:transform 0.12s;flex-shrink:0;}
.rvm-sector.open .rvm-sectri{transform:rotate(90deg);}
.rvm-secname{flex:1;}
.rvm-secmeta{display:flex;align-items:center;gap:14px;}
.rvm-seccov{font-size:11px;font-weight:600;opacity:0.92;}
.rvm-respcell{display:flex;align-items:center;padding:6px 8px;border-top:1px solid var(--line);}
.rvm-resp{display:inline-block;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:0.04em;padding:4px 12px;border-radius:var(--r-cell);}
.rvm-hint{font-size:12px;color:var(--muted);line-height:1.5;margin:8px 0 2px;max-width:var(--measure);}
/* the risk name, standing where the description used to: the definition is on its hover */
/* The page asks two questions of one risk, on two different sets of companies. Each gets a heading that
   asks it, and the banner between them says where the set changes. */
.rvsec{margin:0 0 8px;}
/* Below the 22px risk title, above everything else on the page. The gap under them is deliberate: these
   are the only two headings here, so the air is what separates the page's two halves. */
/* the taxonomy's own definition of the risk, on the page rather than behind a hover */
/* Ruled off below, on the same rule and rhythm the .rvp section uses further down: the title and the
   definition are what the page is about, and the two questions come after them. The rule spans the page
   rather than the 82ch the text is held to, so it reads as a divider and not as an underline. */
.rv-desc{font-size:15px;line-height:1.55;color:var(--ink);max-width:var(--measure);margin:0 0 22px;}
.rv-descwrap{margin:0 0 22px;padding:0 0 20px;border-bottom:1px solid #C9C9C4;}
.rv-descwrap .rv-desc{margin:0;}
/* the two pills sit on one line and are the same size: their own margins would otherwise misalign them */
.mxv-actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin:16px 0 4px;}
.mxv-actions .rv-walk-open,.mxv-actions .sec-dl{margin:0;padding:6px 13px 6px 8px;font-size:13px;line-height:1.3;}
/* sits under the chart it explains */
.rv-walk-open{display:inline-flex;align-items:center;gap:7px;margin:16px 0 4px;padding:6px 13px 6px 8px;font-family:inherit;font-size:13px;font-weight:600;color:var(--red);background:none;border:1px solid #D07886;border-radius:var(--r-pill);cursor:pointer;}
.rv-walk-open:hover{background:#FAF3F4;color:var(--red-dark);border-color:var(--red);}
.rv-walk-q{display:inline-flex;align-items:center;justify-content:center;width:17px;height:17px;border-radius:50%;background:var(--red);color:#fff;font-size:11px;font-weight:700;line-height:1;}
.rv{margin-top:6px;}
.rv-sector.vx-extreme{background:var(--lvl-5);}.rv-sector.vx-extreme .rv-secname,.rv-sector.vx-extreme .rv-secmeta{color:#fff;}
.rv-sector.vx-high{background:var(--lvl-4);}.rv-sector.vx-high .rv-secname,.rv-sector.vx-high .rv-secmeta{color:var(--ink);}
.rv-sector.vx-mod{background:var(--lvl-3);}.rv-sector.vx-mod .rv-secname,.rv-sector.vx-mod .rv-secmeta{color:var(--ink);}
.rv-sector.vx-low{background:var(--lvl-2);}.rv-sector.vx-low .rv-secname,.rv-sector.vx-low .rv-secmeta{color:var(--ink);}
.rv-sector.open .rv-sectri{transform:rotate(90deg);}
.rv-body{padding:2px 0 10px 16px;}
.rv-actor{display:flex;align-items:center;gap:8px;margin:12px 0 7px;flex-wrap:wrap;}
.rv-chips{display:flex;flex-wrap:wrap;gap:6px;}
.rv-chip.yes{background:var(--green);color:#fff;border-color:var(--green);}
/* The manuscript's population figure, redrawn with the open risk picked out. One hue: the bars are the
   only fill, and the estimate rides over them as an outlined marker, so the two never read as two
   categories of the same kind of thing. */
/* #C9C9C4, the tone the matrix draws its own grid in, not the paler --line: these two rules divide the
   page's sections, and at --line they were fainter than the hairlines inside a single table. The legends
   rule below the matrix stays --line, so a separator within a section still reads as the lesser one. */
/* ---- Risks overview: the two figures and their switch ---- */
.rk-bar{display:flex;justify-content:space-between;align-items:center;gap:10px 28px;flex-wrap:wrap;margin:-6px 0 14px;}
.rk-controls{display:flex;gap:10px 28px;flex-wrap:wrap;margin-left:auto;}
.rk-cap{font-size:15px;color:var(--body);}
.rvl{display:grid;grid-template-columns:170px 1fr 1fr;gap:0;border-right:1px solid var(--line);border-bottom:1px solid var(--line);}
.rvl-corner{border-top:1px solid var(--line);border-left:1px solid var(--line);background:#fff;}
.rvl-colh{font-size:13px;font-weight:600;padding:8px 10px;border-top:1px solid var(--line);border-left:1px solid var(--line);background:var(--axis);display:flex;align-items:center;gap:8px;}
.rvl-colh::before{content:'';width:12px;height:10px;border-radius:var(--r-cell);flex:none;}
.rvl-colh.yes::before{background:var(--ink);}.rvl-colh.no::before{background:#E6E6E4;}
.rvl-rowh{font-size:13px;font-weight:600;padding:10px;border-top:1px solid var(--line);border-left:1px solid var(--line);background:var(--axis);display:flex;align-items:flex-start;line-height:1.3;}
.rvl-cell{border-top:1px solid var(--line);border-left:1px solid var(--line);padding:8px;display:flex;flex-wrap:wrap;align-content:flex-start;gap:4px;min-height:44px;background:#fff;}
.rvl-n{flex-basis:100%;font-size:13px;font-weight:700;color:var(--ink);}
.rvl-chip{display:inline-flex;align-items:center;gap:5px;}
.rvl-logo{width:16px;height:16px;padding:2px;border:none;border-radius:3px;background:#fff;}   /* a 12px mark on a 2px white pad */
.co-logo-none.rvl-logo{display:none;}
@media (max-width:820px){.rvl{grid-template-columns:1fr;}.rvl-corner,.rvl-colh{display:none;}.rvl-cell::before{display:block;flex-basis:100%;font-size:12px;color:var(--muted);}.rvl-cell.yes::before{content:'Acknowledged';}.rvl-cell.no::before{content:'No acknowledgement found';}}
.rk-switch{display:inline-flex;align-items:center;gap:0;font-size:13px;}
.rk-switch-lab{color:var(--muted);margin-right:8px;}
.rk-sw{font:inherit;font-size:13px;font-weight:600;padding:6px 12px;border:1px solid var(--rule);background:#fff;color:var(--body);cursor:pointer;}
.rk-sw:first-of-type{border-radius:6px 0 0 6px;}.rk-sw:last-of-type{border-radius:0 6px 6px 0;margin-left:-1px;}
.rk-sw.on{background:var(--ink);border-color:var(--ink);color:#fff;}
.rk-sw:hover:not(.on){background:var(--bg);}
.rkt{margin-top:4px;}
.rkt-dom{display:grid;grid-template-columns:262px 1fr;gap:10px;padding:14px 0;border-bottom:1px solid #E8E8E6;}
.rkt-dom:last-child{border-bottom:none;}
.rkt-domname{font-size:15px;font-weight:700;color:var(--ink);align-self:center;padding-right:24px;line-height:1.3;}
.rkt-domnum{color:var(--muted);margin-right:8px;}
.rkt-tiles{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;}
.rkt-tile{display:flex;flex-direction:column;align-items:stretch;gap:4px;text-align:left;font:inherit;background:#fff;border:1px solid var(--line);border-radius:7px;padding:12px 14px 12px;cursor:pointer;color:var(--ink);}
.rkt-tile:hover,.rkt-tile:focus-visible{border-color:var(--ink);outline:none;}
.rkt-name{font-size:15px;font-weight:600;line-height:1.3;}
/* the bar is the number's home: its length is the share, and the figure sits at the track's right end,
   where no risk reaches (the highest is 44%), in ink on the pale track */
.rkt-bar{position:relative;display:block;height:26px;background:var(--empty);border-radius:4px;overflow:hidden;margin-top:6px;}
.rkt-bar i{position:absolute;left:0;top:0;bottom:0;background:var(--ink);}
.rkt-bar b{position:absolute;right:8px;top:0;line-height:26px;font-size:15px;font-weight:700;color:var(--ink);font-variant-numeric:tabular-nums;}
.rkt-name{display:flex;justify-content:space-between;align-items:baseline;gap:6px;}
.rkt-go{color:var(--muted);font-size:18px;line-height:1;}
.rkt-tile:hover .rkt-go,.rkt-tile:focus-visible .rkt-go{color:var(--red);}
@media (max-width:820px){.rkt-dom{grid-template-columns:1fr;gap:8px;}.rkt-tiles{grid-template-columns:repeat(2,1fr);}}
@media (max-width:560px){.rkt-tiles{grid-template-columns:1fr;}}
/* the risk page's company grid: the profile's grid, with companies in the cells */
.rvc .cpm-cell{align-content:flex-start;}
.rvc .cpm-chip{max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.cpm-chip.rvc-fold{display:none;}.rvc-open .cpm-chip.rvc-fold{display:inline-block;}.rvc-open .rvl-chip.rvc-fold{display:inline-flex;}   /* chips with logos are flex, for the gap */
.cpm-chip.rvc-more{font-family:inherit;background:#fff;color:var(--red);border:1px solid var(--red);padding:3px 7px;}
.cpm-chip.rvc-more:hover{background:var(--red);color:#fff;outline:none;}
/* the tag sits inside the bracket's top-right corner, clear of the tier headers and of the cells below */
.rvc .cpm-bracket-tag{bottom:auto;top:3px;left:auto;right:3px;}
.rvd-wrap{display:grid;grid-template-columns:1fr 1fr;gap:24px 40px;margin-top:28px;}
.rvd-wrap.rvd-one{grid-template-columns:minmax(0,720px);margin-top:4px;}
.rvd-head th{text-align:left;font-size:13px;font-weight:400;color:var(--muted);padding:0 8px 8px 0;border-bottom:1px solid var(--rule);}
.rvd-head th.rvd-k{text-align:right;}
.rvd-go{color:var(--ink);text-decoration:none;font-weight:600;}
.rvd-go:hover{color:var(--red);text-decoration:underline;}
.rvd-h{font-size:15px;font-weight:700;margin:0 0 8px;}
.rvd-t{width:100%;border-collapse:collapse;font-size:13px;}
.rvd-t td{padding:6px 8px 6px 0;border-bottom:1px solid var(--line);vertical-align:middle;}
.rvd-name{font-weight:600;}
.rvd-lvl .rv2-lvl{display:inline-flex;min-height:0;padding:3px 8px;border:none;border-radius:var(--r-cell);font-size:12px;}
.rvd-k{white-space:nowrap;font-variant-numeric:tabular-nums;text-align:right;width:130px;}
.rvd-k .cov-bar{display:inline-block;width:60px;margin-left:8px;vertical-align:middle;}
@media (max-width:820px){.rvd-wrap{grid-template-columns:1fr;}}
/* Figure 1 */
.fig1-wrap{width:100%;}
.fig1{width:100%;height:auto;display:block;font-family:'Figtree',sans-serif;overflow:visible;}
.fig1-grid{stroke:#EBEBEB;stroke-width:1;}
.fig1-rule{stroke:#c3c2b7;stroke-width:1;}
.fig1-tick{fill:#898A8D;font-size:12px;text-anchor:middle;}
.fig1-xlab{fill:#898A8D;font-size:13px;text-anchor:middle;}
.fig1-name{fill:var(--ink);font-size:13px;text-anchor:end;}
.fig1-band{fill:#D9D9D9;}
.fig1-gline{fill:none;stroke:#5B5C5F;stroke-width:2.2;stroke-linejoin:round;}
.fig1-rline{fill:none;stroke:#A32035;stroke-width:3.2;stroke-linejoin:round;}
.fig1-gdot{fill:#5B5C5F;}
.fig1-rdot{fill:#A32035;}
.fig1-rdot.zero{fill:#fff;stroke:#A32035;stroke-width:2;}
.fig1-val-r{fill:#A32035;}.fig1-val-g{fill:#5B5C5F;}
.fig1-hit{fill:transparent;cursor:pointer;}
.fig1-anyrule{stroke:#c3c2b7;stroke-width:1;}
.fig1-anyname{font-weight:700;}
.fig1-row:hover .fig1-name,.fig1-row:focus-visible .fig1-name{font-weight:700;}
.fig1-row:focus-visible{outline:none;}
.fig1-row.on .fig1-name{font-weight:700;}
.fig1-row.on .fig1-hit{cursor:default;}
.fig1-band-row{fill:#FAF3F4;stroke:#E0B7C0;stroke-width:1;opacity:0;}
.fig1-band-row.on,.fig1-band-row.hov{opacity:1;}
.fig1-leg-name{font-size:15px;font-weight:700;fill:var(--ink);}
.fig1-leg-t{font-size:13px;fill:var(--body);}
.fig1-leg-r{fill:#A32035;font-weight:600;}.fig1-leg-g{fill:#5B5C5F;font-weight:600;}
.fig1-leg-go{font-size:13px;font-weight:600;fill:var(--red);cursor:pointer;}
.fig1-leg-go:hover{text-decoration:underline;}
.figsec-ghost{fill:none;stroke:#D1D1D1;stroke-width:1.6;stroke-linejoin:round;}
.figsec-line{fill:none;stroke-width:3.2;stroke-linejoin:round;}
.figsec-dot.zero{fill:#fff;stroke-width:2;}
.figsec-leg-sub{fill:var(--muted);}
.figsec-leg-me{font-weight:600;}
/* ---- risk view v2 (sector vulnerability x role responsibility) ---- */
:root{--lvl-5:#C4402F;--lvl-4:#E08A2E;--lvl-3:#E3C93F;--lvl-2:#9CC4E4;--lvl-1:#2E6DA4;--lvl-0:#E2E2E0;--d0:#F1F1EF;--d1:#DDEBE0;--d2:#B9D9C2;--d3:#8FC4A1;--d4:#5BA77D;--d5:#2E8B57;}
/* Each cell with content draws its own top and left edge only, never a full box: two neighbours can then
   never stack two borders on the same line, and the empty corner cells draw nothing at all. The container
   closes the right and bottom of the block. */
/* width:max-content, or the closing borders are drawn around the wrong box. The columns are fixed px, but
   a grid container is a block and stretches to the full width of the page, so border-bottom ran on past
   the last cell and border-right came back up at the page edge: an L hanging off the matrix. */
/* the axis bands and the level chips speak the Home matrix's language */
/* min-height: the "Most expected to act" tag hangs 9px above the bracket and lands on this row, so it needs
   enough height that the tag cannot swallow the rating word */
.rv2-lvl{display:flex;align-items:center;justify-content:center;text-align:center;min-height:34px;font-size:12px;font-weight:600;line-height:1.15;padding:8px 4px;}
/* the five rating levels, on the Home matrix's tier hues. Text shades are the AA-passing ones the contrast
   routine picks for each fill, hard-coded here so the color never depends on the inline style alone. */
.rv2-lvl.l5{background:var(--lvl-5);color:#fff;}                    /* Extremely / Primarily */
.rv2-lvl.l4{background:var(--lvl-4);color:#3d2509;}                 /* Highly */
.rv2-lvl.l3{background:var(--lvl-3);color:#4b400b;}                 /* Moderately */
.rv2-lvl.l2{background:var(--lvl-2);color:#1d4d75;}                 /* Minimally */
.rv2-lvl.l1{background:var(--lvl-1);color:#fff;}                    /* Not at all */
.rv2-lvl.l0{background:#fff;color:var(--muted);}               /* no data */
/* a rating chip explains itself on hover, so say it is hoverable */
.rv2-lvl[data-vtip]{cursor:help;}
.rv2-lvl[data-vtip]:focus-visible{outline:2px solid var(--red);outline-offset:-2px;}
.rv2-colname{font-size:13px;font-weight:600;line-height:1.25;}
/* ---------- MITIGATIONS TAB ---------- */
.mit-def{margin:2px 0 18px;padding-left:20px;max-width:var(--measure-wide);list-style:disc;}
.mit-def li{font-size:14px;line-height:1.55;color:var(--body);margin-bottom:6px;}
.mit-def b{font-weight:600;color:var(--ink);}
.mit-domain{margin-bottom:26px;}
/* The domain band is a row of the same chart, on the same three columns as the
   category rows, the any-mitigation row and the axis, so every mark sits on one
   scale and the eye can read down a column. */
.mit-domain-head{position:relative;display:grid;grid-template-columns:250px 1fr 40px;align-items:center;gap:16px;padding:10px 12px;background:var(--axis);color:var(--ink);border:1px solid var(--ink);}
.mit-any{display:grid;grid-template-columns:250px 1fr 40px;align-items:center;gap:16px;padding:12px;margin-bottom:20px;border-top:1px solid var(--ink);border-bottom:1px solid var(--ink);}
.mit-any .mit-cat-name{font-size:14px;font-weight:700;}
.mit-axis{display:grid;grid-template-columns:250px 1fr 40px;gap:16px;padding:6px 12px 0;}
.mit-axis-scale{position:relative;height:16px;}
.mit-axis-scale>i{position:absolute;top:0;transform:translateX(-50%);font-size:11px;font-style:normal;color:var(--muted);font-variant-numeric:tabular-nums;}
/* One row of the chart. The bar is the top 100 share; the diamond and its whisker
   are the top 1000 estimate with its 95% interval. Both marks are ink rather than
   the figure's white, so they stay legible where an interval runs past the end of
   its bar and onto the empty track. */
/* No track. The bar is a length on the page, not a filled portion of a slot, and
   a white track showed as a white block wherever the row behind it was not white,
   which the pale blue domain bands are. Only the gridlines remain. */
.mit-plot{position:relative;height:22px;background-image:repeating-linear-gradient(to right,var(--line) 0 1px,transparent 1px 25%);}
/* the fill color is set per row, from the domain palette */
.mit-bar-fill{position:absolute;left:0;top:0;bottom:0;}
/* full height of the row, so the diamond and its whisker are an easy target and
   the estimate resolves before the bar underneath it */
.mit-est{position:absolute;top:0;bottom:0;cursor:help;}
.mit-ci{position:absolute;left:0;right:0;top:50%;height:2px;margin-top:-1px;background:var(--ink);}
.mit-cap{position:absolute;top:5px;bottom:5px;width:2px;background:var(--ink);}
.mit-cap-l{left:0;}
.mit-cap-r{right:0;}
.mit-est.r3 .mit-cap-l{display:none;}
.mit-dot{position:absolute;top:50%;left:0;width:11px;height:11px;margin:-5.5px 0 0 -5.5px;background:var(--card);border:1.5px solid var(--ink);transform:rotate(45deg);}
/* At the end of its bar, not in a column: the eye reads the length and the number
   together instead of tracking across to a right margin. It overflows into the
   grid's third column, which is there as its gutter. */
.mit-val{position:absolute;top:50%;transform:translateY(-50%);margin-left:9px;font-size:13px;font-weight:700;color:var(--ink);font-variant-numeric:tabular-nums;white-space:nowrap;}
.mit-key{display:flex;flex-wrap:wrap;gap:20px;margin-top:14px;font-size:12px;color:var(--body);}
.mit-key>span{display:flex;align-items:center;gap:8px;}
.mit-key-bar{width:14px;height:10px;flex:none;}
.mit-key-bar+.mit-key-bar{margin-left:-7px;}
.mit-key>span>.mit-key-bar:last-of-type{margin-right:3px;}
.mit-key-dot{width:11px;height:11px;background:var(--card);border:1.5px solid var(--ink);transform:rotate(45deg);flex:none;margin:0 3px;}
.mit-domain-code{font-size:13px;font-weight:700;color:var(--ink);font-variant-numeric:tabular-nums;}
.mit-domain-name{font-size:13px;font-weight:700;text-transform:uppercase;letter-spacing:0.04em;color:var(--ink);border-bottom:1px dotted #8a8a88;}
.mit-tip{position:absolute;left:8px;top:calc(100% - 2px);z-index:60;max-width:min(320px,78vw);background:var(--ink);color:#fff;font-weight:400;font-size:12px;line-height:1.45;padding:8px 11px;border-radius:var(--r-ctl);box-shadow:var(--shadow-pop);opacity:0;visibility:hidden;transform:translateY(-4px);transition:opacity 0.13s ease,transform 0.13s ease;pointer-events:none;}
.mit-tip b{display:block;font-weight:700;font-size:10.5px;letter-spacing:0.05em;text-transform:uppercase;color:var(--red-pale);margin-bottom:5px;}
/* The definition opens on the name, not anywhere on the row. It used to open on
   any hover, so reading a bar or a diamond raised a dark panel across the row
   below and over the figure being read. Split from the focus rule so keyboard
   access survives a browser without :has(). */
.mit-domain-head:has(.mit-domain-name:hover) .mit-tip,
.mit-cat:not(.open):has(.mit-cat-name:hover) .mit-tip{opacity:1;visibility:visible;transform:none;}
.mit-cat-btn:focus-visible~.mit-tip{opacity:1;visibility:visible;transform:none;}
.mit-cat{position:relative;border-bottom:1px solid var(--line);}
.mit-cat-btn{width:100%;background:none;border:0;text-align:left;font-family:inherit;color:inherit;cursor:pointer;display:grid;grid-template-columns:250px 1fr 40px;align-items:center;gap:16px;padding:12px;transition:background 0.12s;}
.mit-cat-btn:hover{background:rgba(163,32,53,0.05);}
.mit-cat-btn:focus-visible{outline:2px solid var(--red);outline-offset:-2px;border-radius:var(--r-ctl);}
.mit-cat-btn[disabled],.mit-cat-btn[aria-disabled="true"]{cursor:default;opacity:0.55;}
.mit-cat-btn[disabled]:hover,.mit-cat-btn[aria-disabled="true"]:hover{background:none;}
/* an unticked row opens nothing, but it still carries a definition, so it keeps its opacity */
.cp-mit-chart .mit-cat-btn[aria-disabled="true"]{opacity:1;}
.cp-mit-chart .mit-cat-btn[aria-disabled="true"] .mit-cat-code,
.cp-mit-chart .mit-cat-btn[aria-disabled="true"] .mit-cat-name{color:#6E6E6B;}
.mit-cat-label{display:flex;align-items:baseline;gap:8px;min-width:0;}
/* The code belongs to the name: same size, same ink. It was smaller and grey,
   which read as metadata about the row rather than part of what the row is. */
.mit-cat-code{font-size:14px;font-weight:600;color:var(--ink);font-variant-numeric:tabular-nums;flex:none;}
.mit-cat-name{font-size:14px;font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.mit-cat-name .defn{border-bottom:1px dotted #bcbcbc;}
.mit-chev{display:inline-block;margin-left:7px;color:var(--red);transition:transform 0.15s;font-size:11px;}
.mit-cat.open>.mit-cat-btn .mit-chev{transform:rotate(90deg);}
.mit-bar{height:9px;background:var(--empty);border-radius:var(--r-ctl);overflow:hidden;}
.mit-bar>i{display:block;height:100%;background:var(--d5);border-radius:var(--r-ctl);}
.mit-cat.na{background:var(--empty);}
.mit-cat.na .mit-cat-btn{opacity:1;}
.mit-cat.na .mit-cat-code,.mit-cat.na .mit-cat-name{color:#9A9A97;}
.mit-cat.na .mit-cat-name .defn{border-bottom-color:#c9c9c6;}
.mit-cat-note{font-size:12px;color:var(--body);font-style:normal;line-height:1.4;align-self:center;}
.mit-domain{margin-bottom:0;}
.mit-chart>.mit-domain+.mit-domain{margin-top:20px;}
.mit-panel{display:none;padding:2px 6px 20px;}
.mit-cat.open .mit-panel{display:block;}
.mit-banner{display:flex;align-items:center;gap:11px;padding:9px 14px;margin:4px -6px 14px;background:var(--gap-tint);border-left:3px solid #E0954A;color:var(--gap-deep);font-size:13px;font-weight:500;line-height:1.45;border-radius:0 var(--r-ctl) var(--r-ctl) 0;}
.mit-banner-lead{font-size:13px;font-weight:700;}
.mit-banner-ico{font-size:15.5px;line-height:1;flex:none;font-weight:700;color:inherit;}
.mit-co{border-top:1px solid #f0f0f0;}
.mit-co:first-child{border-top:0;}
.mit-co-btn{width:100%;background:none;border:0;text-align:left;font-family:inherit;color:inherit;cursor:pointer;display:flex;align-items:center;gap:14px;padding:9px 8px;border-radius:var(--r-ctl);}
.mit-co-label{display:flex;align-items:center;gap:10px;min-width:0;}
.mit-co-btn:hover{background:rgba(163,32,53,0.05);}
.mit-co-btn:focus-visible{outline:2px solid var(--red);outline-offset:-2px;}
.mit-co-name{font-weight:600;font-size:13px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.mit-co-meta{font-size:12px;color:var(--muted);}
.mit-quotes{display:none;padding:4px 8px 14px 32px;}
.mit-co.open .mit-quotes{display:block;}
/* The company row is a toggle plus its own arrow out to the company, so neither swallows the other.
   The .mit-leaf rules that used to sit here went with the L3 level on 2026-08-16. */
.mit-co-h{display:flex;align-items:center;gap:2px;}
.mit-co-h .mit-co-btn{flex:1;min-width:0;width:auto;}
.mit-co-open{flex:none;background:none;border:0;cursor:pointer;font-family:inherit;font-size:15.5px;line-height:1;color:var(--muted);padding:7px 9px;border-radius:var(--r-ctl);}
.mit-co-open:hover{background:rgba(163,32,53,0.05);color:var(--red);}
.mit-co-open:focus-visible{outline:2px solid var(--red);outline-offset:-2px;}
.mit-q{border-left:2px solid var(--line);padding:6px 0 6px 14px;margin:9px 0;}
.mit-q-text{font-size:13px;color:var(--body);line-height:1.55;}
.mit-q-tags{margin-top:5px;display:flex;gap:6px;flex-wrap:wrap;}
.mit-tag{font-size:10.5px;font-weight:600;letter-spacing:0.03em;text-transform:uppercase;color:var(--muted);border:1px solid var(--line);border-radius:var(--r-pill);padding:1px 8px;}
.mit-tag.flag{color:var(--red);border-color:var(--red-pale);}
.mit-muted-line{font-size:13px;color:var(--muted);padding:10px 2px;}
@media (max-width:640px){.mit-cat-btn{grid-template-columns:1fr;gap:8px;}.mit-bar{display:none;}.mit-cat-name{white-space:normal;}.mit-co-btn{flex-wrap:wrap;gap:6px;}.mit-dcard-btn{flex-direction:column;align-items:flex-start;gap:8px;}}
/* narrow Home bands: the tall Explore card becomes a full-width row after the tiles (after the base .hx-all rule, so it wins) */
@media (max-width:1000px){.hx-grid .hx-all{grid-column:1/-1;grid-row:auto;flex-direction:row;align-items:center;min-height:0;}}
