/* FEATURE v12.35 · Market · Top 100 operators — the public pages (artboard MarketTop100). Colours only from tokens.css (synced from
   app/tokens.css by tools/sync_css.py), Inter, sentence case, tabular numbers, no caps, no mono. Motion: only the duration tokens. */
*,*::before,*::after{box-sizing:border-box}
[hidden]{display:none!important}
.warn-i{color:var(--neg);vertical-align:-2px}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--background);color:var(--foreground);font:15px/1.5 Inter,system-ui,sans-serif;font-feature-settings:'cv11','ss01';-webkit-font-smoothing:antialiased}
a{color:inherit}
:focus-visible{outline:2px solid var(--ring);outline-offset:2px;border-radius:8px}
.sr{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.skip{position:absolute;left:16px;top:-48px;z-index:20;background:var(--foreground);color:var(--background);padding:8px 14px;border-radius:999px;text-decoration:none;transition:top var(--dur-1) var(--ease-out)}
.skip:focus{top:12px}
.wrap{max-width:1280px;margin:0 auto;padding:0 24px}
.num{font-variant-numeric:tabular-nums}
.muted{color:var(--muted-foreground)}

/* header */
.pub{position:sticky;top:0;z-index:10;background:var(--background);border-bottom:1px solid var(--border)}
.pub .wrap{height:64px;display:flex;align-items:center;gap:20px}
.logo{width:32px;height:32px;border-radius:9px;background:var(--foreground);color:var(--background);display:grid;place-items:center;font-size:11px;font-weight:700;text-decoration:none;flex:none}
.pub nav{display:flex;gap:4px;font-size:14px;min-width:0;overflow-x:auto;scrollbar-width:none}
.pub nav::-webkit-scrollbar{display:none}
.pub nav a{height:36px;padding:0 12px;border-radius:999px;display:inline-flex;align-items:center;color:var(--muted-foreground);text-decoration:none;white-space:nowrap;transition:color var(--dur-1) var(--ease-out),background-color var(--dur-1) var(--ease-out)}
.pub nav a:hover{color:var(--foreground)}
.pub nav a[aria-current=page]{background:var(--muted);color:var(--foreground)}
.pub .sp{flex:1}
.age{height:24px;padding:0 8px;border-radius:999px;border:1px solid var(--border);font-size:12px;font-weight:600;display:inline-flex;align-items:center;color:var(--muted-foreground);flex:none}
.btn{height:36px;padding:0 16px;border-radius:999px;border:0;font:500 14px Inter,system-ui,sans-serif;display:inline-flex;align-items:center;gap:8px;cursor:pointer;text-decoration:none;white-space:nowrap;transition:background-color var(--dur-1) var(--ease-out),color var(--dur-1) var(--ease-out)}
.btn.pri{background:var(--primary);color:var(--primary-foreground)}
.btn.sec{background:var(--muted);color:var(--foreground)}
.btn.ghost{background:transparent;color:var(--foreground)}
.btn.ghost:hover,.btn.sec:hover{background:color-mix(in oklch,var(--foreground) 12%,transparent)}
.btn.sm{height:32px;padding:0 12px;font-size:13px}
.btn svg{width:15px;height:15px;flex:none}

/* page */
main{padding:28px 0 40px}
.crumb{font-size:12.5px;color:var(--muted-foreground);margin:0 0 10px}
.crumb a{text-decoration:none}.crumb a:hover{text-decoration:underline}
h1{font-size:clamp(26px,4vw,36px);font-weight:600;letter-spacing:-.025em;line-height:1.12;margin:0;text-wrap:balance}
h2{font-size:15px;font-weight:600;margin:0}
.lede{color:var(--muted-foreground);max-width:68ch;margin:10px 0 0;text-wrap:pretty}
.hero{display:flex;gap:20px;align-items:flex-end;justify-content:space-between;flex-wrap:wrap;margin-bottom:20px}
.upd{display:inline-flex;align-items:center;gap:6px;height:28px;padding:0 12px;border-radius:999px;background:color-mix(in oklch,var(--pos) 14%,transparent);color:var(--pos);font-size:12.5px;font-weight:500;white-space:nowrap}
.upd i{width:6px;height:6px;border-radius:50%;background:currentColor}
.upd.old{background:color-mix(in oklch,var(--warn) 14%,transparent);color:var(--warn)}

/* tools */
.tools{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin:0 0 12px}
.srch{height:36px;width:280px;max-width:100%;border-radius:999px;background:var(--input);display:flex;align-items:center;gap:8px;padding:0 14px;color:var(--muted-foreground)}
.srch input{flex:1;min-width:0;height:100%;background:transparent;border:0;color:var(--foreground);font:14px Inter,system-ui,sans-serif;outline:none}
.srch input::placeholder{color:var(--muted-foreground)}
.srch:focus-within{outline:2px solid var(--ring);outline-offset:2px}
.chip{height:32px;padding:0 12px;border-radius:999px;background:var(--muted);border:0;color:var(--foreground);font:13px Inter,system-ui,sans-serif;display:inline-flex;align-items:center;gap:6px;cursor:pointer;white-space:nowrap}
.chip[aria-pressed=true]{background:var(--foreground);color:var(--background)}
.chip select{background:transparent;border:0;color:inherit;font:inherit;cursor:pointer;outline:none;max-width:150px}
.chip select option{background:var(--card);color:var(--foreground)}
.tools .sp{flex:1}
.legend{display:flex;gap:14px;flex-wrap:wrap;font-size:12px;color:var(--muted-foreground);margin:0 0 6px;align-items:center}
.legend span{display:inline-flex;gap:6px;align-items:center}
.legend i{width:10px;height:10px;border-radius:3px;display:inline-block}
.c-scale{background:var(--series-1)}.c-reach{background:var(--series-2)}.c-trust{background:var(--series-4)}.c-product{background:var(--series-3)}.c-transparency{background:var(--chart-1)}
.f-scale{fill:var(--series-1)}.f-reach{fill:var(--series-2)}.f-trust{fill:var(--series-4)}.f-product{fill:var(--series-3)}.f-transparency{fill:var(--chart-1)}
.t-pos{color:var(--pos)}.t-neg{color:var(--neg)}

/* the ranking */
.rank-list{list-style:none;margin:0;padding:0}
.rr{display:grid;grid-template-columns:44px 44px minmax(200px,1.4fr) 160px 140px minmax(150px,1fr) 190px 20px;gap:14px;align-items:center;min-height:64px;border-top:1px solid var(--border);font-size:14px;text-decoration:none;color:inherit;padding:8px 0}
a.rr{border-radius:0;transition:background-color var(--dur-1) var(--ease-out)}
a.rr:hover{background:color-mix(in oklch,var(--foreground) 4%,transparent)}
.rr.hd{min-height:34px;font-size:12px;color:var(--muted-foreground);border-top:0;padding:0}
.rr .r{text-align:right;font-variant-numeric:tabular-nums}
.rank{font-size:18px;font-weight:600;font-variant-numeric:tabular-nums}
.mv{display:inline-flex;align-items:center;gap:2px;font-size:12px;font-weight:600;font-variant-numeric:tabular-nums;color:var(--muted-foreground)}
.mv.up{color:var(--pos)}.mv.down{color:var(--neg)}
.mv svg{width:11px;height:11px}
.op{display:flex;align-items:center;gap:12px;min-width:0}
.av{width:36px;height:36px;border-radius:11px;display:grid;place-items:center;font-weight:700;font-size:13px;flex:none;color:var(--background)}
.av.a1{background:var(--series-1)}.av.a2{background:var(--series-2)}.av.a3{background:var(--series-3)}.av.a4{background:var(--series-4)}.av.a5{background:var(--chart-1)}
.op>span:last-child{min-width:0}
.op b{font-weight:600;display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.op small{font-size:12px;color:var(--muted-foreground);display:block}
.sc{display:flex;flex-direction:column;gap:5px}
.sc .v{font-size:16px;font-weight:600;font-variant-numeric:tabular-nums}
.stk{display:flex;height:6px;border-radius:999px;overflow:hidden;gap:2px;background:color-mix(in oklch,var(--foreground) 6%,transparent);max-width:120px}
.stk span{display:block;height:100%}
.rev small{display:block;font-size:11.5px;color:var(--muted-foreground)}
.est{font-size:11px;font-weight:600;color:var(--warn);background:color-mix(in oklch,var(--warn) 14%,transparent);border-radius:6px;padding:1px 6px;white-space:nowrap}
.lcs{display:flex;gap:4px;flex-wrap:wrap}
.lcs span{height:20px;padding:0 6px;border-radius:6px;font-size:10.5px;font-weight:600;display:inline-grid;place-items:center;background:color-mix(in oklch,var(--foreground) 8%,transparent)}
.ment{display:flex;align-items:center;gap:8px;justify-content:flex-end;font-variant-numeric:tabular-nums}
.spark{width:56px;height:20px;flex:none}
.spark polyline{fill:none;stroke:var(--chart-1);stroke-width:1.5}
.sent{display:flex;height:6px;width:48px;border-radius:999px;overflow:hidden;gap:1px;flex:none;background:color-mix(in oklch,var(--foreground) 6%,transparent)}
.sent .p{background:var(--pos)}.sent .u{background:var(--chart-3)}.sent .n{background:var(--neg)}
.chev{width:16px;height:16px;color:var(--muted-foreground)}
.foot-list{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap;margin-top:12px;font-size:13px;color:var(--muted-foreground)}
.pager{display:flex;gap:6px;flex-wrap:wrap}
.empty{padding:28px 0;color:var(--muted-foreground);border-top:1px solid var(--border)}

/* cards and profile */
.grid2{display:grid;grid-template-columns:1fr 1fr;gap:20px;align-items:start}
.box{background:var(--card);border-radius:26px;padding:24px;display:flex;flex-direction:column;gap:14px;min-width:0}
.ph{display:flex;gap:16px;align-items:center;justify-content:space-between;flex-wrap:wrap;margin-bottom:20px}
.ph .op .av{width:56px;height:56px;border-radius:16px;font-size:18px}
.ph h1{font-size:clamp(24px,3.4vw,30px)}
.big{font-size:44px;font-weight:600;letter-spacing:-.03em;font-variant-numeric:tabular-nums;line-height:1}
.idx{text-align:right}
.idx .lbl{font-size:12.5px;color:var(--muted-foreground)}
.kv{display:grid;grid-template-columns:170px 1fr;gap:8px 14px;font-size:14px;margin:0}
.kv dt{color:var(--muted-foreground)}
.kv dd{margin:0;min-width:0}
.src{display:inline-flex;align-items:center;gap:3px;font-size:12px;color:var(--muted-foreground);text-decoration:underline;text-underline-offset:3px;text-decoration-color:color-mix(in oklch,var(--foreground) 20%,transparent);margin-left:4px}
.src svg{width:11px;height:11px}
.edited{font-size:11.5px;color:var(--muted-foreground);margin-left:6px}
.comp{display:flex;flex-direction:column;gap:10px;margin:0;padding:0;list-style:none}
.crow{display:grid;grid-template-columns:12px 140px 1fr 44px 44px;gap:10px;align-items:center;font-size:14px}
.crow i{width:10px;height:10px;border-radius:3px}
.crow .tr{height:8px;border-radius:999px;background:color-mix(in oklch,var(--foreground) 8%,transparent);position:relative;overflow:hidden}
.crow .tr b{position:absolute;left:0;top:0;bottom:0;border-radius:999px}
.crow .r{text-align:right;font-variant-numeric:tabular-nums}
.note{font-size:13px;color:var(--muted-foreground);margin:0}
.chart{width:100%;height:auto;display:block;overflow:visible}
.chart text{font:11px Inter,system-ui,sans-serif;fill:var(--muted-foreground)}
.chart .grid{stroke:color-mix(in oklch,var(--foreground) 8%,transparent)}
.chart .line{fill:none;stroke:var(--series-2);stroke-width:2}
.chart .pill rect{fill:var(--foreground)}.chart .pill text{fill:var(--background);font-weight:600}
.chart .dot{fill:var(--series-2)}
.chart rect.bar{transition:opacity var(--dur-1) var(--ease-out)}
.chart rect.bar:hover{opacity:.8}
.cta{display:flex;gap:16px;align-items:center;justify-content:space-between;flex-wrap:wrap;background:var(--card);border-radius:26px;padding:20px 24px;margin-top:20px}
.cta b{display:block}
.log{list-style:none;margin:0;padding:0;font-size:13.5px}
.log li{padding:8px 0;border-top:1px solid var(--border)}
.reply{background:color-mix(in oklch,var(--foreground) 5%,transparent);border-radius:16px;padding:14px 16px;font-size:14px}
.sources{columns:2;column-gap:24px;font-size:13.5px;padding-left:18px}
.sources li{break-inside:avoid;margin-bottom:6px}
.sources a{text-decoration:underline;text-underline-offset:3px;text-decoration-color:color-mix(in oklch,var(--foreground) 25%,transparent)}
.prose{max-width:72ch}
.prose h2{font-size:18px;margin:28px 0 8px}
.prose p,.prose li{color:color-mix(in oklch,var(--foreground) 88%,transparent)}
.tbl{width:100%;border-collapse:collapse;font-size:14px}
.tbl th,.tbl td{text-align:left;padding:10px 8px;border-top:1px solid var(--border);vertical-align:top}
.tbl th{font-weight:500;color:var(--muted-foreground);font-size:12.5px;border-top:0}
.tbl td.r,.tbl th.r{text-align:right;font-variant-numeric:tabular-nums}

/* the correction form */
.form{display:flex;flex-direction:column;gap:12px;max-width:560px}
.form label{font-size:13px;color:var(--muted-foreground);display:flex;flex-direction:column;gap:6px}
.form input,.form select,.form textarea{background:var(--input);border:0;border-radius:16px;color:var(--foreground);font:14px Inter,system-ui,sans-serif;padding:10px 14px}
.form input,.form select{height:40px;border-radius:999px}
.form textarea{min-height:96px;resize:vertical}
.form .err{color:var(--neg);font-size:13px;margin:0}
.form .ok{color:var(--pos);font-size:13px;margin:0}
dialog.cdlg{background:var(--card);color:var(--foreground);border:0;border-radius:26px;padding:24px;max-width:600px;width:calc(100% - 32px)}
dialog.cdlg::backdrop{background:var(--scrim,color-mix(in oklch,var(--background) 70%,transparent))}

/* footer */
.rg{display:flex;gap:16px;align-items:center;justify-content:space-between;flex-wrap:wrap;border-top:1px solid var(--border);padding:20px 0;font-size:12.5px;color:var(--muted-foreground)}
.rg .t{display:flex;gap:12px;align-items:center;max-width:820px}
.rg b{width:32px;height:32px;border-radius:50%;border:1.5px solid var(--muted-foreground);display:grid;place-items:center;font-size:11px;color:var(--foreground);flex:none}
.rg nav{display:flex;gap:14px;flex-wrap:wrap}
.rg nav a{text-decoration:none}.rg nav a:hover{text-decoration:underline}

/* movers */
.mvgrid{display:grid;grid-template-columns:1fr 1fr;gap:20px}
.seg{display:inline-flex;background:var(--muted);border-radius:999px;padding:3px;gap:2px}
.seg a{height:30px;padding:0 12px;border-radius:999px;display:inline-flex;align-items:center;font-size:13px;text-decoration:none;color:var(--muted-foreground)}
.seg a[aria-current=page]{background:var(--background);color:var(--foreground)}

/* a laptop */
@media (max-width:1180px){
  .rr{grid-template-columns:40px 40px minmax(180px,1.4fr) 150px 130px 170px 20px}
  .rr .lic{display:none}
}
/* a tablet and a phone: the ranking becomes cards, the profile one column */
@media (max-width:820px){
  .wrap{padding:0 16px}
  .pub .wrap{gap:12px}
  .pub .age{display:none}
  .grid2,.mvgrid{grid-template-columns:1fr}
  .rr.hd{display:none}
  .rr{grid-template-columns:36px 1fr auto;grid-template-areas:'rank op sc' 'mv rev ment';gap:6px 12px;min-height:44px;padding:12px 0}
  .rr .c-rank{grid-area:rank}.rr .c-mv{grid-area:mv}.rr .c-op{grid-area:op}.rr .c-sc{grid-area:sc}.rr .c-rev{grid-area:rev;text-align:left}
  .rr .c-ment{grid-area:ment}.rr .lic,.rr .c-chev{display:none}
  .stk{width:80px}
  .kv{grid-template-columns:1fr;gap:2px 0}.kv dd{margin-bottom:8px}
  .crow{grid-template-columns:12px 110px 1fr 40px 36px}
  .sources{columns:1}
  .chart text{font-size:20px}
  .chart .pill text{font-size:18px}
  .srch{width:100%}
  .big{font-size:36px}
  .ph{align-items:flex-start}.idx{text-align:left}
}
@media (pointer:coarse){ .chip,.btn.sm{min-height:44px} .pub nav a{min-height:44px} }
