/* OTE Radar — utility / spreadsheet style. One accent (blue-black), IBM Plex, no cards.
   SPACING MOCKUP: same fonts/colors/structure as site/static/style.css; only padding, margins, line-height and max-width changed.
   --gx is the inner side gutter (was a hard-coded 20px / 14px on mobile). */
:root{--ink:#14171c;--mut:#5b6270;--line:#e3e5e8;--head:#f4f5f6;--zebra:#fafbfb;--acc:#0f2a44;--hi:#fff6d6;--neg:#9b2c1f;--gx:28px;--maxw:1160px}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:#fff;color:var(--ink);font:14px/1.55 'IBM Plex Sans',system-ui,-apple-system,'Segoe UI',sans-serif}
/* centered page column with outer margins */
body>header.top,body>main,body>.signrow,body>.foot{max-width:var(--maxw);margin-left:auto;margin-right:auto}
@media (min-width:1240px){body{padding:0 32px}}
a{color:var(--acc)}a:hover{text-decoration-thickness:2px}
table,.num,.tabs b,.kv b{font-variant-numeric:tabular-nums}
.mono{font-family:'IBM Plex Mono',ui-monospace,monospace}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.mut,.muted{color:var(--mut)}.small{font-size:12.5px}
.n{color:var(--mut);font-size:11.5px;font-weight:400}

/* header */
.top{display:flex;align-items:baseline;gap:12px 24px;padding:20px var(--gx) 18px;border-bottom:1px solid var(--line);flex-wrap:wrap}
.top .logo{font-weight:700;font-size:17px;color:var(--acc);text-decoration:none;letter-spacing:-.01em}
.top nav a{color:var(--ink);text-decoration:none;margin-right:20px;font-size:13px}
.top nav a.on{color:var(--acc);font-weight:600;text-decoration:underline;text-underline-offset:4px}
.top .upd{margin-left:auto;font-size:13px;color:var(--mut)}.top .upd b{color:var(--ink);font-weight:600}

/* page heading + lead line */
.lead{padding:22px var(--gx);border-bottom:1px solid var(--line);font-size:15px;line-height:1.6;margin:0}
.lead b{color:var(--acc)}
.ph{padding:32px var(--gx) 24px;border-bottom:1px solid var(--line)}
.ph h1{font-size:22px;line-height:1.25;margin:0 0 10px;font-weight:600;letter-spacing:-.01em}
.ph p{margin:8px 0 0;max-width:820px;font-size:14.5px;line-height:1.6}
.crumbs{font-size:12.5px;color:var(--mut);margin-bottom:12px}.crumbs a{color:var(--mut)}

/* role tabs */
.tabs{display:grid;grid-template-columns:repeat(5,1fr);border-bottom:1px solid var(--line)}
.tabs.t4{grid-template-columns:repeat(4,1fr)}
.tab{appearance:none;background:#fff;border:0;border-right:1px solid var(--line);border-bottom:3px solid transparent;padding:16px 20px 14px;text-align:left;cursor:pointer;color:var(--ink);font:inherit;
  display:grid;grid-template-columns:auto 1fr;column-gap:10px;row-gap:4px;align-items:baseline;text-decoration:none}
.tab:last-child{border-right:0}
.tab span{font:600 13px 'IBM Plex Mono',monospace;color:var(--mut)}.tab b{font-size:21px;font-weight:600}
.tab i{grid-column:1/-1;font-style:normal;color:var(--mut);font-size:12px;line-height:1.4}
.tab[aria-selected=true],.tab.on{border-bottom-color:var(--acc)}.tab[aria-selected=true] span,.tab.on span{color:var(--acc)}
.tab:focus-visible,th[data-sort]:focus-visible{outline:2px solid var(--acc);outline-offset:-2px}

/* sticky filter bar */
.filters{position:sticky;top:0;z-index:2;background:#fff;border-bottom:1px solid var(--ink);padding:14px var(--gx);display:flex;gap:10px 14px;align-items:center;flex-wrap:wrap;font-size:13px}
.filters label{color:var(--mut)}
.filters select,.filters input[type=search]{font:13px 'IBM Plex Sans',sans-serif;border:1px solid #c9cdd3;padding:6px 10px;border-radius:2px;background:#fff;color:var(--ink)}
.filters .count{margin-left:auto;color:var(--mut)}
.filters .chk{display:inline-flex;gap:6px;align-items:center;color:var(--ink)}

/* layout */
.layout{display:grid;grid-template-columns:minmax(0,1fr) 380px}
.layout>section,.layout>.main{border-right:1px solid var(--line);min-width:0;padding-bottom:16px}
.layout>aside{min-width:0;padding-bottom:16px}
.cols2{display:grid;grid-template-columns:1fr 1fr}.cols2>div{min-width:0}.cols2>div+div{border-left:1px solid var(--line)}
.cols3{display:grid;grid-template-columns:repeat(3,1fr)}.cols3>div{min-width:0}.cols3>div+div{border-left:1px solid var(--line)}
h2{font:600 12px 'IBM Plex Sans',sans-serif;line-height:1.5;text-transform:uppercase;letter-spacing:.05em;color:var(--mut);margin:0;padding:36px var(--gx) 12px}
h2 em{font-style:normal;color:var(--ink);text-transform:none;letter-spacing:0;font-size:13px;font-weight:400;margin-left:4px}
h2 a{text-transform:none;letter-spacing:0;font-weight:400;font-size:13px;margin-left:8px}
p.n,.note{color:var(--mut);font-size:12px;line-height:1.55;margin:12px var(--gx) 20px}
aside p,.txt{margin:12px var(--gx);font-size:13.5px;line-height:1.6}
.rule{border-top:1px solid var(--line)}

/* tables */
.tw{overflow-x:auto}
table{border-collapse:collapse;width:100%;font-size:13px;line-height:1.5}
th{background:var(--head);font-weight:600;text-align:right;padding:10px 12px;border-top:1px solid var(--line);border-bottom:1px solid var(--line);white-space:nowrap;font-size:12px}
td{text-align:right;padding:11px 12px;border-bottom:1px solid var(--line);white-space:nowrap}
th.l,td.l{text-align:left}
td.wrap{white-space:normal}
table td:first-child,table th:first-child{padding-left:var(--gx)}
table td:last-child,table th:last-child{padding-right:var(--gx)}
tbody tr:nth-child(even) td{background-color:var(--zebra)}
td.rank{color:var(--mut);width:28px}
td.co{font-weight:500;text-align:left}td.co a{color:var(--ink);text-decoration:none}td.co a:hover{text-decoration:underline}
td.em,.em{color:var(--acc);font-weight:600}
.bf{color:var(--mut);font-weight:400}
td.low,tbody tr:nth-child(even) td.low{background:var(--hi)}
th[data-sort]{cursor:pointer;user-select:none}
th[data-sort]::after{content:" ↕";color:#a5abb4;font-weight:400}
th[aria-sort=ascending]::after{content:" ↑";color:var(--acc)}
th[aria-sort=descending]::after{content:" ↓";color:var(--acc)}
tr.grp td{border-top:1px solid #c9cdd3}
td .tag{font-size:11.5px;color:var(--mut);margin-left:6px}
td.pay span{display:inline-block;margin-right:10px}td.pay small{color:var(--mut);font-size:11.5px}
td.pay .ote{color:var(--acc);font-weight:600}
.more-row{padding:16px var(--gx);border-bottom:1px solid var(--line)}
button.plain{font:600 13px 'IBM Plex Sans',sans-serif;background:#fff;color:var(--acc);border:1px solid var(--acc);padding:7px 14px;border-radius:2px;cursor:pointer}

/* key-value strip (company/role pages) */
.kv{display:flex;flex-wrap:wrap;border-bottom:1px solid var(--line)}
.kv div{padding:16px var(--gx);border-right:1px solid var(--line)}
.kv b{display:block;font-size:19px;font-weight:600;margin-bottom:2px}.kv span{font-size:12px;color:var(--mut)}

/* charts (inline SVG) */
.chart{display:block;width:100%;height:auto;max-width:560px;margin:8px 0 4px;padding:0 var(--gx)}
.chart .grid{stroke:#e3e5e8}.chart .tick{font-size:11px;fill:#5b6270}.chart .lab{font-size:12px;fill:#14171c}
.chart .val{font-size:12px;fill:#14171c;font-weight:600}.chart .muted{fill:#5b6270;font-weight:400}
.legend{display:flex;flex-wrap:wrap;gap:6px 18px;font-size:12px;color:var(--mut);margin:8px var(--gx) 14px}
.legend i{display:inline-block;width:10px;height:10px;margin-right:5px;vertical-align:-1px}

/* prose (methodology etc.) */
.prose{max-width:760px;padding:8px var(--gx) 32px}
.prose h2{padding:36px 0 8px;border-bottom:1px solid var(--line);margin-bottom:12px}
.prose p,.prose li{font-size:14.5px;line-height:1.65}.prose p{margin:0 0 14px}.prose ul{padding-left:20px}.prose li{margin:6px 0}

/* signup */
.sign{margin:32px var(--gx);border-top:1px solid var(--ink);padding-top:16px;max-width:640px}
.sign form{display:flex;gap:8px;margin-top:12px}
.sign input{flex:1;min-width:0;font:13px 'IBM Plex Sans',sans-serif;border:1px solid #c9cdd3;padding:8px 10px;border-radius:2px}
.sign button{font:600 13px 'IBM Plex Sans',sans-serif;background:var(--acc);color:#fff;border:0;padding:8px 16px;border-radius:2px;cursor:pointer}
.sign .form-note{margin:10px 0 0;font-size:12.5px}
.signrow{border-top:1px solid var(--line);margin-top:16px}

/* footer */
.foot{border-top:1px solid var(--ink);margin-top:48px;padding:32px var(--gx) 56px;color:var(--mut);font-size:12px;line-height:1.6;display:grid;grid-template-columns:repeat(4,1fr);gap:32px}
.foot p{margin:0 0 10px}.foot b{color:var(--ink)}.foot a{color:var(--mut)}

@media (max-width:980px){.layout{grid-template-columns:minmax(0,1fr)}.layout>section,.layout>.main{border-right:0}.cols3{grid-template-columns:1fr}.cols3>div+div{border-left:0;border-top:1px solid var(--line)}}
@media (max-width:820px){
  :root{--gx:16px}
  .top{padding:14px var(--gx);gap:8px 18px}
  .top nav{order:3;width:100%}.top .upd{margin-left:0;width:100%;order:2}
  .top nav a{margin-right:16px;display:inline-block;padding:4px 0}
  .tabs,.tabs.t4{grid-template-columns:repeat(2,1fr)}.tab{padding:12px var(--gx)}.tab b{font-size:18px}
  .filters{padding:10px var(--gx);gap:8px}.filters .count{display:none}
  .cols2{grid-template-columns:1fr}.cols2>div+div{border-left:0;border-top:1px solid var(--line)}
  .hm{display:none}
  td,th{padding:9px 10px}
  .lead{padding:16px var(--gx)}.ph{padding:22px var(--gx) 18px}h2{padding:28px var(--gx) 10px}
  .kv div{padding:12px var(--gx)}
  .foot{grid-template-columns:1fr;gap:16px;margin-top:32px;padding:24px var(--gx) 40px}
  .sign{margin:24px var(--gx)}
  td.wrap{min-width:180px}
}
/* controls that only work with JS stay hidden without it */
html:not(.js) .filters,html:not(.js) [data-more]{display:none}
html:not(.js) th[data-sort]::after{content:none}
html:not(.js) .tab{cursor:default}
.js table.sortable tbody tr td{background-color:#fff}
.js table.sortable tbody tr.z td{background-color:var(--zebra)}
.js table.sortable tbody tr td.low{background-color:var(--hi)}
#roles td.wrap a{color:var(--ink);text-decoration:none}#roles td.wrap a:hover{text-decoration:underline}
aside .chart{max-width:100%}
@media (max-width:820px){
  .tabs:not(.t4) .tab:first-child:nth-last-child(odd){grid-column:1/-1}
  .filters label:not(.chk){position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
  .filters select,.filters input[type=search]{flex:1 1 40%;min-width:0}
  .tab i{font-size:11.5px}
}

/* ship fix: keep the taller rows but stop new horizontal scrolling in narrow columns (sidebar, 2/3-col blocks, mid-width, mobile) */
aside th,aside td,.cols2 th,.cols2 td,.cols3 th,.cols3 td{padding-left:8px;padding-right:8px}
aside table td:first-child,aside table th:first-child,.cols2 table td:first-child,.cols2 table th:first-child,.cols3 table td:first-child,.cols3 table th:first-child{padding-left:var(--gx)}
aside table td:last-child,aside table th:last-child,.cols2 table td:last-child,.cols2 table th:last-child,.cols3 table td:last-child,.cols3 table th:last-child{padding-right:var(--gx)}
@media (max-width:1279px){:root{--gx:20px}td,th{padding-left:8px;padding-right:8px}}
/* wide 7-column pay tables (pay.html .tw.tight): narrower column gaps so they fit the main column at 1280 */
@media (min-width:821px){.tw.tight th,.tw.tight td{padding-left:8px;padding-right:8px}.tw.tight table td:first-child,.tw.tight table th:first-child{padding-left:var(--gx)}.tw.tight table td:last-child,.tw.tight table th:last-child{padding-right:var(--gx)}}
@media (max-width:820px){
  td,th,aside td,aside th{padding:9px 6px}
  table td:first-child,table th:first-child,aside table td:first-child,aside table th:first-child,.cols2 table td:first-child,.cols2 table th:first-child,.cols3 table td:first-child,.cols3 table th:first-child{padding-left:14px}
  table td:last-child,table th:last-child,aside table td:last-child,aside table th:last-child,.cols2 table td:last-child,.cols2 table th:last-child,.cols3 table td:last-child,.cols3 table th:last-child{padding-right:14px}
}

/* ---------------------------------------------------------------- Open Roles board (v2) */
.tabs.t6{grid-template-columns:repeat(6,minmax(0,1fr))}
.tab[aria-pressed=true]{border-bottom-color:var(--acc)}.tab[aria-pressed=true] span{color:var(--acc)}
table.jobs td{vertical-align:top}
table.jobs td.t{text-align:left;white-space:normal;min-width:220px;font-weight:500}
table.jobs td.t a{color:var(--ink)}
table.jobs td.c,table.jobs td.lo,table.jobs td.w,table.jobs td.p{text-align:left}
table.jobs td.c a{color:var(--ink);text-decoration:none}table.jobs td.c a:hover{text-decoration:underline}
table.jobs td.lo{white-space:normal;max-width:240px;color:var(--mut)}
table.jobs td.p .ote{color:var(--acc);font-weight:600}table.jobs td.p small{color:var(--mut);font-size:11.5px}
table.jobs td.a{color:var(--mut)}
table.jobs tr.none td{text-align:left;white-space:normal;padding-top:24px;padding-bottom:24px}
tbody tr:nth-child(even) td{background-color:var(--zebra)}
.thb{all:unset;cursor:pointer;font-weight:600}
.thb::after{content:" ↕";color:#a5abb4;font-weight:400}
.thb[aria-sort=descending]::after{content:" ↓";color:var(--acc)}.thb[aria-sort=ascending]::after{content:" ↑";color:var(--acc)}
.jmore{display:flex;gap:14px;align-items:center;flex-wrap:wrap}
@media (max-width:1100px){.tabs.t6{grid-template-columns:repeat(3,minmax(0,1fr))}.tabs.t6 .tab{border-bottom:1px solid var(--line)}
  .tabs.t6 .tab[aria-pressed=true]{border-bottom:3px solid var(--acc)}}
@media (max-width:820px){
  .tabs.t6{grid-template-columns:repeat(3,minmax(0,1fr))}.tabs.t6 .tab:first-child:nth-last-child(odd){grid-column:auto}
  .tabs.t6 .tab{padding:10px 12px}.tabs.t6 .tab b{font-size:16px}.tabs.t6 .tab i{display:none}
  /* job rows become stacked cards */
  table.jobs thead{display:none}
  table.jobs,table.jobs tbody{display:block}
  table.jobs tr{display:grid;grid-template-columns:1fr auto;column-gap:12px;padding:12px var(--gx);border-bottom:1px solid var(--line)}
  table.jobs td,table.jobs td:first-child,table.jobs td:last-child{display:block;padding:0;border:0;white-space:normal;min-width:0;max-width:none;text-align:left;background:none!important}
  table.jobs tbody tr:nth-child(even){background:var(--zebra)}
  table.jobs td.t{grid-column:1/-1;font-size:14px;margin-bottom:4px}
  table.jobs td.c{grid-column:1;font-size:13px}
  table.jobs td.a{grid-column:2;grid-row:2;text-align:right;font-size:12px}
  table.jobs td.lo,table.jobs td.w{font-size:12.5px}
  table.jobs td.lo{grid-column:1;grid-row:3}table.jobs td.w{grid-column:2;grid-row:3;text-align:right;color:var(--mut);white-space:nowrap}
  table.jobs td.p{grid-column:1/-1;margin-top:4px}
  table.jobs tr.none{display:block}
}

/* filter bar: one row of dropdown buttons (Open Roles) */
.jbar{position:relative;display:flex;align-items:center;gap:10px;flex-wrap:wrap;padding:14px var(--gx);border-bottom:1px solid var(--line);font-size:13px}
.jq{position:relative;flex:1 20 250px;max-width:280px;min-width:150px}
.jq .ic{position:absolute;left:10px;top:50%;transform:translateY(-50%);color:var(--mut)}
.jq input{width:100%;height:36px;font:13px 'IBM Plex Sans',sans-serif;border:1px solid #c9cdd3;border-radius:6px;padding:6px 10px 6px 32px;color:var(--ink);background:#fff}
.jq input:focus,.fp-add input:focus{outline:2px solid var(--acc);outline-offset:-1px;border-color:var(--acc)}
.jbtns{display:flex;gap:8px;flex-wrap:wrap;align-items:center;flex:0 1 auto;min-width:0}
@media (min-width:821px){.jbar{flex-wrap:nowrap}}
@media (min-width:1101px){.jbtns{flex-shrink:0}}
.fbw{position:relative}
.ic{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:1.3;stroke-linecap:round;stroke-linejoin:round;flex:none}
.fb{display:inline-flex;align-items:center;gap:6px;height:36px;padding:0 9px 0 10px;font:13.5px 'IBM Plex Sans',sans-serif;color:var(--ink);
  background:#fff;border:1px solid #d5d8dd;border-radius:6px;cursor:pointer;white-space:nowrap}
.fb:hover{border-color:#a9aeb6}
.fb:focus-visible{outline:2px solid var(--acc);outline-offset:1px}
.fb .chev{width:14px;height:14px;fill:none;stroke:var(--mut);stroke-width:1.4;stroke-linecap:round;stroke-linejoin:round;margin-left:2px;transition:transform .12s}
.fb[aria-expanded=true] .chev{transform:rotate(180deg)}
.fb[aria-expanded=true]{border-color:var(--acc)}
.fb.on{border-color:var(--acc);color:var(--acc);box-shadow:inset 0 0 0 1px var(--acc)}
.fb.on .fc{font-weight:600}
.fp{position:absolute;z-index:20;top:calc(100% + 6px);left:0;min-width:250px;max-width:340px;background:#fff;border:1px solid #c9cdd3;
  border-radius:6px;box-shadow:0 6px 18px rgba(20,23,28,.10);font-size:13.5px}
.fp-loc{width:320px}
.fp-list{max-height:330px;overflow-y:auto;padding:6px 0}
.fp .opt{display:flex;align-items:baseline;gap:9px;padding:6px 14px;cursor:pointer;line-height:1.35}
.fp .opt:hover{background:var(--zebra)}
.fp .opt input{margin:0;accent-color:var(--acc);flex:none;transform:translateY(1px)}
.fp .opt small{margin-left:auto;color:var(--mut);font-size:11.5px;padding-left:8px;text-align:right}
.fp .opt.off{color:#9aa0a8;cursor:default}.fp .opt.off:hover{background:none}
.fp-grp{padding:10px 14px 4px;font:600 11px 'IBM Plex Sans',sans-serif;text-transform:uppercase;letter-spacing:.05em;color:var(--mut)}
.fp-add{display:flex;gap:6px;padding:10px 10px 6px;border-bottom:1px solid var(--line)}
.fp-add input{flex:1;min-width:0;height:32px;font:13px 'IBM Plex Sans',sans-serif;border:1px solid #c9cdd3;border-radius:4px;padding:4px 8px}
.fp-places .opt{font-weight:500}
.fp .opt .sub{display:block;color:var(--mut);font-size:11.5px;margin-top:1px}
.fp .soon{margin:0;padding:12px 14px 2px;font-weight:600;color:var(--mut)}
.fp-foot{display:flex;justify-content:space-between;align-items:center;padding:8px 10px 8px 14px;border-top:1px solid var(--line)}
.lnk{all:unset;cursor:pointer;color:var(--acc);font-size:13px;text-decoration:underline;text-underline-offset:3px}
.lnk:focus-visible{outline:2px solid var(--acc);outline-offset:2px}
.jhead{display:flex;align-items:center;gap:16px;padding:10px var(--gx);font-size:13.5px}
.jhead .jcount{color:var(--mut)}.jhead .jcount b{color:var(--ink)}
.jsort{margin-left:auto;display:inline-flex;align-items:center;gap:8px;color:var(--mut);font-size:13px}
.jsort select{font:13px 'IBM Plex Sans',sans-serif;border:1px solid #d5d8dd;border-radius:6px;padding:4px 8px;height:30px;background:#fff;color:var(--ink)}
@media (max-width:820px){
  .jbar{display:block;padding:12px 0 10px}
  .jq{display:block;margin:0 var(--gx) 10px;min-width:0;max-width:none}
  .jhead .jsort{margin-left:auto}
  .jbtns{flex-wrap:nowrap;overflow-x:auto;padding:2px var(--gx) 4px;scrollbar-width:none;-webkit-overflow-scrolling:touch}
  .jbtns::-webkit-scrollbar{display:none}
  .fbw{position:static}
  .fp,.fp-loc{left:var(--gx);right:var(--gx);top:calc(100% - 4px);width:auto;min-width:0;max-width:none;margin-top:6px}
  .fp-list{max-height:min(46vh,360px)}
  .jhead{gap:12px;flex-wrap:wrap}
}
.fp [hidden],.fp[hidden]{display:none!important}
.lnk[hidden]{display:none}
/* Industry / Size filters (company metadata) */
.fp .opt.zero{color:#9aa0a8}
.fp .opt.zero small{color:#b4b9c0}
.fp-note{margin:0;padding:6px 14px 8px;font-size:11.5px;color:var(--mut);border-top:1px solid var(--line)}
.fp-ind{min-width:290px}
.cmeta{margin:-4px 0 10px;font-size:13.5px;color:var(--mut)}
.cmeta a{color:var(--mut);text-decoration:underline;text-decoration-color:#c9cdd3;text-underline-offset:3px}
.cmeta a:hover{color:var(--acc)}
/* ---- company logos (data/logos -> /static/logos, 96px WebP on white; letter tile when none) */
.clg,.lg{display:inline-block;flex:none;background:#fff;border:1px solid var(--line);box-sizing:border-box;object-fit:cover}
.lt{display:inline-flex;align-items:center;justify-content:center;background:#eef2f6;border-color:#dfe5ec;color:var(--acc);font-weight:600;line-height:1}
table.jobs td.c a{display:inline-flex;align-items:center;gap:8px;margin:-3px 0;vertical-align:top}
.clg{width:24px;height:24px;border-radius:6px}.clg.lt{font-size:11px}
/* ---- stacked list layout (build.py --layout list) */
.jlist{list-style:none;margin:0;padding:0;border-top:1px solid var(--line)}
.jr{display:flex;align-items:center;gap:14px;padding:14px var(--gx);border-bottom:1px solid var(--line)}
.jr:hover{background:var(--zebra)}
.lg{width:44px;height:44px;border-radius:10px}.lg.lt{font-size:18px}
.jb{min-width:0;flex:1}
.jt{display:block;font-weight:600;font-size:15.5px;line-height:1.35;color:var(--ink);text-decoration:none}
.jt:hover{text-decoration:underline;text-underline-offset:3px}
.jm{display:flex;flex-wrap:wrap;align-items:center;column-gap:15px;row-gap:3px;margin-top:3px;overflow:hidden;font-size:13px;color:var(--mut);line-height:1.6}
.jm>*{position:relative}
.jm>*+*::before{content:"·";position:absolute;left:-10px;top:50%;transform:translateY(-52%);color:#8a919b;font-weight:600}
.jm .jc{color:var(--mut);text-decoration:none}.jm .jc:hover{color:var(--acc);text-decoration:underline}
.jm .pill{background:#eef1f4;color:var(--ink);font-size:12px;font-weight:500;padding:0 9px;border-radius:5px;line-height:1.75}
.jm .jl{white-space:nowrap}
.jm .jp b{font-weight:600;color:var(--ink)}.jm .jp b.ote{color:var(--acc)}.jm .jp small{font-size:11.5px;color:var(--mut)}
.jlist .none{padding:28px var(--gx);color:var(--mut)}
@media (max-width:640px){
  .jr{align-items:flex-start;gap:12px;padding:13px var(--gx)}
  .lg{width:40px;height:40px;border-radius:9px;margin-top:2px}
  .jt{font-size:15px}
  .jm{font-size:12.5px}
}
/* ---- logos in company tables + company page header (same files / letter tile as the Open Roles list) */
.tlg,.plg{display:inline-block;flex:none;background:#fff;border:1px solid var(--line);box-sizing:border-box;object-fit:cover}
.tlg{width:22px;height:22px;border-radius:6px}.tlg.lt{font-size:10.5px}
.plg{width:52px;height:52px;border-radius:12px}.plg.lt{font-size:21px}
td.co a.cl{display:inline-flex;align-items:center;gap:8px;margin:-3px 0;vertical-align:middle}
td.co a.cl:hover{text-decoration:none}td.co a.cl:hover span{text-decoration:underline}
.chd{display:flex;align-items:center;gap:16px;margin:0 0 10px}
.chd .chd-t{min-width:0}.chd h1{margin:0}.chd .cmeta{margin:4px 0 0}
@media (max-width:640px){
  .tlg{width:20px;height:20px;border-radius:5px}
  td.co a.cl{gap:7px}
  .chd{gap:12px;align-items:flex-start}.plg{width:44px;height:44px;border-radius:10px;margin-top:2px}
}
/* ---------------------------------------------------------------- v6 polish: New tags, steady filter bar, smoother dropdowns
   Motion stays under 180ms, transform/opacity only, and is off under prefers-reduced-motion. */
/* "New" = first listed in today's update (build.py first_seen) */
.nw{display:inline-block;margin-left:6px;padding:0 5px;border-radius:4px;background:#eef2f6;color:var(--acc);font-size:11px;font-weight:600;line-height:1.65;vertical-align:2px;letter-spacing:.01em}
table.jobs td.t .nw{margin-left:4px}
/* "N new since your last visit" (toggles ?new=1) */
.jnew{all:unset;cursor:pointer;color:var(--acc);font-size:13.5px;white-space:nowrap}
.jnew b{font-weight:600;font-variant-numeric:tabular-nums}
.jnew:hover,.jnew u{text-decoration:underline;text-underline-offset:3px}
.jnew:focus-visible{outline:2px solid var(--acc);outline-offset:2px}
.jnew[hidden]{display:none}
/* steady result count: digits don't change the width of what follows */
.jhead .jcount{min-width:10em;font-variant-numeric:tabular-nums}
/* steady filter buttons: the count shares one grid cell with a hidden template (data-r), so ticking options never resizes the button */
.fb .fc{display:inline-grid;font-variant-numeric:tabular-nums}
.fb .fc>span,.fb .fc::after{grid-area:1/1}
.fb .fc::after{content:attr(data-r);visibility:hidden;font-weight:600}
.fb .chev{margin-left:auto}
/* role tabs: one 3px indicator that slides to the picked tab */
.tabs[data-jtabs]{position:relative}
.tabs[data-jtabs]::after{content:"";position:absolute;left:0;top:0;width:var(--iw,0);height:3px;background:var(--acc);transform:translate(var(--ix,0),var(--iy,0));opacity:0;pointer-events:none}
.tabs.slid::after{opacity:1}
.tabs.slid .tab[aria-pressed=true]{border-bottom-color:transparent}
@media (max-width:1100px){
  .tabs.t6 .tab[aria-pressed=true]{border-bottom:1px solid var(--line);box-shadow:inset 0 -3px 0 var(--acc)}   /* no 2px height jump */
  .tabs.t6.slid .tab[aria-pressed=true]{box-shadow:none}
}
/* dropdown panels + gliding option highlight */
.fp-list{position:relative}
.fp-list .opt{position:relative;z-index:1}
.fp-list .opt:hover{background:transparent}
.fp-hl{position:absolute;left:4px;right:4px;top:0;height:0;border-radius:4px;background:var(--head);opacity:0;pointer-events:none}
.fp-list.hl .fp-hl{opacity:1}
.fp.out{opacity:0;pointer-events:none}
.fp.now{animation:none;opacity:1;transform:none}   /* phones/touch: instant, always fully visible while open */
@media (pointer:coarse),(max-width:820px){.fp{animation:none!important;transition:none!important}}
@keyframes fp-in{from{opacity:0;transform:translateY(-4px)}}
@media (prefers-reduced-motion:no-preference){
  .tabs.slid:not(.noanim)::after{transition:transform .16s cubic-bezier(.2,.7,.2,1),width .16s cubic-bezier(.2,.7,.2,1)}
  .fbw.open>.fp:not(.now){animation:fp-in .14s cubic-bezier(.2,.7,.2,1)}
  .fp.out{transition:opacity .09s linear}
  .fp-hl{transition:transform .12s cubic-bezier(.2,.7,.2,1),height .12s cubic-bezier(.2,.7,.2,1),opacity .1s linear}
  .fp-hl.snap{transition:none}
}
/* v7 SEO pages */
.sign button:disabled{opacity:.55;cursor:default}.sign input:disabled{background:#f6f7f8}
.tab.st{cursor:default}
.browse{margin-top:8px}.browse .txt{line-height:1.9}
.faq{margin:0}.faq dt{font-weight:600;font-size:14px;margin-top:14px}.faq dd{margin:4px 0 0;font-size:14px;line-height:1.55;color:var(--ink)}
