/* Qredax - FTX Payout Tracker.
   Собрано scripts/payout_css.py из styles.css и estimator.css
   трекера. Руками не править: правки затрутся следующей сборкой.
   Шрифты и лайм берутся из переменных сайта. */
.qxp{
  --qxp-bg:#0a0a0a;
  --qxp-bg-raise:#131313;
  --qxp-bg-sink:#060606;
  --qxp-line:rgba(255,255,255,0.08);
  --qxp-line-soft:rgba(255,255,255,0.04);
  --qxp-text:#ffffff;
  --qxp-text-2:rgba(255,255,255,0.78);
  --qxp-text-3:rgba(255,255,255,0.55);
  --qxp-accent:#c8ff00;
  --qxp-accent-dim:rgba(200,255,0,.12);
  --qxp-accent-line:rgba(200,255,0,.40);
  --qxp-teal:#8FD3C8;
  --qxp-land:#191919;
  --qxp-land-line:#2f2f2f;
  --qxp-muted:#242424;
  --qxp-muted-line:#3b3b3b;
  --qxp-mono:ui-monospace,SFMono-Regular,"SF Mono",Menlo,Consolas,"Liberation Mono",monospace;
  --qxp-sans:var(--font-body);
  --qxp-display:var(--font-display);
  --qxp-track-display:-.01em;
  --qxp-radius-sm:8px;
  --qxp-radius-md:12px;
  --qxp-radius-pill:100px;
  --qxp-wrap:1200px;
  --qxp-gutter:var(--gutter);
  --qxp-header-h:0px;
}
/* --- то, что раньше стояло на голых тегах, теперь внутри .qxp --- */
.qxp{
  color:var(--qxp-text);
  font-family:var(--qxp-sans);font-size:15px;line-height:1.55;
  font-variant-numeric:tabular-nums;
}
.qxp h1,.qxp h2,.qxp h3,.qxp h4{
  margin:0;font-family:var(--qxp-display);font-weight:700;
  letter-spacing:var(--qxp-track-display);
}
.qxp p{margin:0;}
.qxp ul,.qxp ol{margin:0;padding:0;list-style:none;}
.qxp a{color:inherit;}
.qxp button{font:inherit;color:inherit;}
.qxp img{max-width:100%;display:block;}



















.qxp .wrap{width:100%;max-width:var(--qxp-wrap);margin:0 auto;padding:0 var(--qxp-gutter);}
.qxp .visually-hidden{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap;}
.qxp .nav{display:flex;gap:4px;margin-left:auto;overflow-x:auto;scrollbar-width:none;}
.qxp .nav::-webkit-scrollbar{display:none;}
.qxp .nav__link{
  text-decoration:none;color:var(--qxp-text-2);font-family:var(--qxp-mono);font-size:10px;
  letter-spacing:.14em;text-transform:uppercase;padding:8px 10px;white-space:nowrap;
  border-bottom:1px solid transparent;transition:color .15s,border-color .15s;
}
.qxp .nav__link:hover{color:var(--qxp-text);}
.qxp .nav__link.is-active{color:var(--qxp-accent);border-bottom-color:var(--qxp-accent);}

.qxp .eyebrow{font-family:var(--qxp-mono);font-size:10px;letter-spacing:.22em;text-transform:uppercase;color:var(--qxp-text-3);}
.qxp .hero{padding:110px 0 0;}
.qxp .hero__title{
  margin-top:34px;font-size:clamp(46px,8.4vw,104px);line-height:.94;letter-spacing:var(--qxp-track-display);
  font-weight:800;max-width:15ch;
}
.qxp .hero__lead{margin-top:34px;font-size:clamp(17px,2vw,23px);line-height:1.4;max-width:34ch;color:var(--qxp-text-2);}
.qxp .hero__kicker{
  margin-top:26px;font-family:var(--qxp-mono);font-size:10px;letter-spacing:.18em;
  text-transform:uppercase;color:var(--qxp-accent);
}
.qxp .hero__disclaimer{margin-top:34px;color:var(--qxp-text-3);font-size:12px;line-height:1.7;max-width:78ch;}

.qxp .figures{
  margin-top:84px;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));
  border-top:1px solid var(--qxp-line);
}
.qxp .figure{padding:30px 26px 26px 0;position:relative;display:flex;flex-direction:column;}
.qxp .figure + .figure{padding-left:26px;border-left:1px solid var(--qxp-line);}
.qxp .figure__value{font-size:clamp(44px,5.6vw,72px);line-height:.92;font-weight:800;letter-spacing:-.05em;}
.qxp .figure__label{
  margin-top:16px;font-family:var(--qxp-mono);font-size:10px;letter-spacing:.16em;
  text-transform:uppercase;color:var(--qxp-text);
}
.qxp .figure__sub{margin-top:10px;color:var(--qxp-text-2);font-size:12.5px;line-height:1.45;}
.qxp .figure__foot{margin-top:auto;padding-top:20px;display:flex;align-items:center;gap:10px;flex-wrap:wrap;}
.qxp .figure__asof{font-family:var(--qxp-mono);font-size:9px;letter-spacing:.1em;color:var(--qxp-text-3);text-transform:uppercase;}
.qxp .figure__badge{
  margin-top:12px;font-family:var(--qxp-mono);font-size:9px;letter-spacing:.12em;text-transform:uppercase;
  color:var(--qxp-text-3);border:0;border-left:1px solid var(--qxp-line);padding:0 0 0 10px;
  background:transparent;cursor:help;align-self:flex-start;text-align:left;line-height:1.5;
}
.qxp .figure__badge:hover{color:var(--qxp-text-2);}
.qxp .badge-explain{
  position:absolute;z-index:20;left:0;right:26px;top:100%;background:#17191C;
  border:1px solid var(--qxp-line);padding:14px 16px;font-size:12.5px;line-height:1.6;color:var(--qxp-text-2);
}

.qxp .section{padding:110px 0;border-top:1px solid var(--qxp-line);scroll-margin-top:calc(var(--qxp-header-h) + 26px);}
.qxp .section--access{padding-bottom:80px;}
.qxp .sec-head{max-width:74ch;}
.qxp .sec-title{scroll-margin-top:calc(var(--qxp-header-h) + 26px);margin-top:20px;font-size:clamp(30px,4.4vw,54px);line-height:1.02;letter-spacing:var(--qxp-track-display);}
.qxp .sec-title--xl{font-size:clamp(38px,6.6vw,86px);}
.qxp .sec-head--wide{max-width:none;}
.qxp .sec-lead{margin-top:20px;color:var(--qxp-text-2);font-size:clamp(15px,1.5vw,19px);max-width:56ch;line-height:1.5;}
.qxp .minor-title{font-family:var(--qxp-mono);font-size:11px;letter-spacing:.18em;text-transform:uppercase;color:var(--qxp-text-2);font-weight:500;}
.qxp .fineprint{margin-top:22px;color:var(--qxp-text-3);font-size:12px;line-height:1.7;max-width:92ch;}
.qxp .caveat-line{
  margin-top:24px;color:var(--qxp-text-2);font-size:14px;line-height:1.6;max-width:80ch;
  border-left:2px solid var(--qxp-accent);padding-left:18px;
}

.qxp .access-stats{
  margin-top:38px;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));
  gap:0;border-top:1px solid var(--qxp-line);
}
.qxp .stat{padding:22px 26px 20px 0;}
.qxp .stat + .stat{padding-left:26px;border-left:1px solid var(--qxp-line);}
.qxp .stat__value{font-size:clamp(32px,3.6vw,48px);line-height:.95;font-weight:800;letter-spacing:-.05em;}
.qxp .stat--accent .stat__value{color:var(--qxp-accent);}
.qxp .stat__label{margin-top:12px;font-family:var(--qxp-mono);font-size:9.5px;letter-spacing:.15em;text-transform:uppercase;}
.qxp .stat__hint{margin-top:10px;color:var(--qxp-text-2);font-size:12.5px;line-height:1.5;}
.qxp .access-explain{
  margin-top:22px;color:var(--qxp-text-2);font-size:14px;line-height:1.65;max-width:86ch;
  border-left:2px solid var(--qxp-line);padding-left:18px;
}
.qxp .drawer-asof{
  margin-top:14px;font-family:var(--qxp-mono);font-size:9.5px;letter-spacing:.08em;
  color:var(--qxp-text-3);text-transform:uppercase;
}

.qxp .map-toolbar{margin-top:34px;display:flex;gap:16px;align-items:center;flex-wrap:wrap;}
.qxp .filters{display:flex;gap:0;overflow-x:auto;scrollbar-width:none;border:1px solid var(--qxp-line);}
.qxp .filters::-webkit-scrollbar{display:none;}
.qxp .chip{
  font-family:var(--qxp-mono);font-size:10px;letter-spacing:.14em;text-transform:uppercase;
  background:transparent;border:0;border-right:1px solid var(--qxp-line);color:var(--qxp-text-2);
  padding:11px 16px;cursor:pointer;transition:color .15s,background .15s;white-space:nowrap;
}
.qxp .filters .chip:last-child{border-right:0;}
.qxp .chip:hover{color:var(--qxp-text);background:var(--qxp-bg-raise);}
.qxp .chip.is-active{color:#000;background:var(--qxp-accent);font-weight:700;}
.qxp .toggle{
  font-family:var(--qxp-mono);font-size:10px;letter-spacing:.13em;text-transform:uppercase;
  background:transparent;border:1px solid var(--qxp-line);color:var(--qxp-text-2);padding:10px 14px;
  cursor:pointer;display:flex;align-items:center;gap:9px;transition:color .15s,border-color .15s;
}
.qxp .toggle::before{content:"";width:12px;height:12px;flex:0 0 12px;border:1px solid currentColor;background:transparent;}
.qxp .toggle__short{display:none;}
.qxp .toggle[aria-pressed="true"]{color:var(--qxp-text);border-color:#4A4D53;}
.qxp .toggle[aria-pressed="true"]::before{
  background-image:repeating-linear-gradient(45deg,rgba(201,203,196,.7) 0 1px,transparent 1px 4px);
}
.qxp .map-search{position:relative;flex:0 0 260px;max-width:100%;margin-left:auto;}
.qxp .map-search input,.qxp .source-controls input{
  width:100%;background:transparent;border:0;border-bottom:1px solid var(--qxp-line);color:var(--qxp-text);
  padding:11px 2px;font-size:14px;font-family:var(--qxp-sans);
}
.qxp .map-search input::placeholder,.qxp .source-controls input::placeholder{color:var(--qxp-text-3);}
.qxp .map-search input:focus,.qxp .source-controls input:focus{outline:none;border-bottom-color:var(--qxp-accent);}
.qxp .suggest{
  position:absolute;z-index:30;top:calc(100% + 6px);left:0;right:0;background:#0a0a0a;
  border:1px solid var(--qxp-line);max-height:280px;overflow-y:auto;
}
.qxp .suggest li{padding:11px 14px;font-size:13.5px;cursor:pointer;display:flex;justify-content:space-between;gap:12px;}
.qxp .suggest li:hover,.qxp .suggest li[aria-selected="true"]{background:var(--qxp-bg-raise);color:var(--qxp-accent);}
.qxp .suggest__state{font-family:var(--qxp-mono);font-size:9px;letter-spacing:.12em;color:var(--qxp-text-3);text-transform:uppercase;white-space:nowrap;}

.qxp .map-band{margin-top:30px;background:var(--qxp-bg-sink);border-top:1px solid var(--qxp-line);border-bottom:1px solid var(--qxp-line);}
.qxp .map-band__inner{
  max-width:1640px;padding-top:34px;padding-bottom:34px;display:grid;
  grid-template-columns:minmax(0,1fr) 240px;gap:44px;align-items:start;
}
.qxp .map-holder{position:relative;}
.qxp .world{display:block;width:100%;height:auto;touch-action:pan-y;}
.qxp .world:focus-visible{outline:2px solid var(--qxp-accent);outline-offset:2px;}

.qxp .map-land .land{fill:var(--qxp-land);stroke:none;}
.qxp .map-land .land--untracked{fill:#141618;}

.qxp .field{pointer-events:none;}
.qxp .field--available{fill:url(#halftone-dots);}
.qxp .field--unavailable{fill:#4E5157;fill-opacity:.5;}
.qxp .field--unknown{fill:#2A2D31;fill-opacity:.6;}
.qxp .field--roster{fill:url(#roster-hatch);}

.qxp #halftone-dots circle{fill:#c8ff00;fill-opacity:.8;}
.qxp #roster-hatch line{stroke:#C9CBC4;stroke-opacity:.34;}

.qxp .country{
  fill:transparent;pointer-events:all;vector-effect:non-scaling-stroke;
  stroke:var(--qxp-land-line);stroke-width:.6px;stroke-linejoin:round;
  transition:stroke .12s,stroke-width .12s;
}
.qxp .country--untracked{stroke:#232629;stroke-width:.5px;pointer-events:all;cursor:default;}
.qxp .country--available{stroke:rgba(200,255,0,.34);cursor:pointer;}
.qxp .country--unavailable{stroke:#5C6066;cursor:pointer;}
.qxp .country--unknown{stroke:var(--qxp-land-line);stroke-dasharray:2 2;cursor:pointer;}
.qxp .country:not(.country--untracked):hover{stroke:var(--qxp-text);stroke-width:1.4px;}
.qxp .country.is-selected,.qxp .country.is-focused{stroke:var(--qxp-accent);stroke-width:1.8px;}
.qxp .map-graticule{fill:none;stroke:#17191C;stroke-width:.35;pointer-events:none;}

.qxp .marker{pointer-events:none;}
.qxp .marker.is-hidden{display:none;}
.qxp .marker__halo{fill:var(--qxp-bg-sink);fill-opacity:.88;stroke:none;}
.qxp .marker__ring{fill:none;stroke:var(--qxp-text-2);stroke-width:.8px;vector-effect:non-scaling-stroke;}
.qxp .marker__core{fill:none;}
.qxp .marker--available .marker__ring{stroke:var(--qxp-accent);}
.qxp .marker--available .marker__core{fill:var(--qxp-accent);}
.qxp .marker--unavailable .marker__core{fill:none;}
.qxp .marker--unavailable .marker__ring{stroke:#9A9DA2;}

.qxp .marker--unknown .marker__ring{stroke:var(--qxp-text-3);stroke-dasharray:2 2;}
.qxp .marker--unknown .marker__core{fill:none;}
.qxp .marker.is-selected .marker__ring{stroke:var(--qxp-accent);stroke-width:1.8px;}
.qxp .marker__hit{fill:transparent;pointer-events:all;cursor:pointer;}
.qxp .map-locator{pointer-events:none;}
.qxp .map-locator[hidden]{display:none;}
.qxp .locator-ring{fill:none;stroke:var(--qxp-accent);stroke-width:1.2px;vector-effect:non-scaling-stroke;}

.qxp .map-tooltip{
  position:absolute;pointer-events:none;background:#0a0a0a;border:1px solid var(--qxp-line);
  padding:10px 13px;font-size:12.5px;max-width:260px;z-index:12;
}
.qxp .map-tooltip__name{font-weight:600;}
.qxp .map-tooltip__state{display:block;margin-top:5px;font-family:var(--qxp-mono);font-size:9px;letter-spacing:.12em;text-transform:uppercase;color:var(--qxp-text-2);}
.qxp .map-tooltip__roster{display:block;margin-top:5px;font-family:var(--qxp-mono);font-size:9px;letter-spacing:.12em;text-transform:uppercase;color:#E8E9E3;}

.qxp .legend{display:flex;flex-direction:column;gap:20px;}
.qxp .legend__item{display:flex;gap:13px;align-items:flex-start;}
.qxp .legend__swatch{width:26px;height:16px;flex:0 0 26px;margin-top:2px;border:1px solid var(--qxp-land-line);}
.qxp .legend__swatch--available{background:var(--qxp-accent);opacity:.62;border-color:var(--qxp-accent-line);}
.qxp .legend__swatch--unavailable{background:#8B8E93;opacity:.62;border-color:var(--qxp-muted-line);}
.qxp .legend__swatch--unknown{background:transparent;border-style:dashed;}
.qxp .legend__swatch--roster{background-image:repeating-linear-gradient(45deg,rgba(201,203,196,.55) 0 1px,transparent 1px 5px);border-color:#4A4D53;}
.qxp .legend__label{font-size:13px;line-height:1.35;font-weight:600;}
.qxp .legend__count{display:block;margin-top:6px;font-family:var(--qxp-mono);font-size:10px;letter-spacing:.06em;color:var(--qxp-text-3);font-weight:400;line-height:1.55;}
.qxp .legend__foot{margin-top:6px;border-top:1px solid var(--qxp-line);padding-top:18px;font-family:var(--qxp-mono);font-size:9.5px;letter-spacing:.06em;line-height:1.7;color:var(--qxp-text-3);}
.qxp .legend__foot .src-btn{margin-top:10px;}

.qxp .rounds{margin-top:56px;display:grid;grid-template-columns:repeat(5,minmax(0,1fr));border-top:1px solid var(--qxp-line);}
.qxp .round{padding:28px 22px 26px 0;position:relative;}
.qxp .round + .round{padding-left:22px;border-left:1px solid var(--qxp-line);}
.qxp .round::before{content:"";position:absolute;top:-1px;left:0;width:38px;height:2px;background:var(--qxp-accent);}
.qxp .round__index{display:block;font-family:var(--qxp-mono);font-size:9px;letter-spacing:.16em;text-transform:uppercase;color:var(--qxp-text-3);}
.qxp .round__date{display:block;margin-top:16px;font-family:var(--qxp-mono);font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--qxp-accent);}
.qxp .round__amount{display:block;margin-top:12px;font-size:clamp(24px,2.9vw,38px);font-weight:800;letter-spacing:-.045em;line-height:1;}
.qxp .round__note{margin-top:12px;font-size:11.5px;color:var(--qxp-text-3);line-height:1.55;min-height:3em;}
.qxp .round__foot{margin-top:16px;display:flex;gap:6px;flex-wrap:wrap;}

.qxp .class-block{margin-top:80px;}
.qxp .class-layout{margin-top:26px;display:grid;grid-template-columns:minmax(0,340px) minmax(0,1fr);gap:26px;align-items:start;min-width:0;}
.qxp .bars{display:flex;flex-direction:column;gap:16px;position:relative;padding-top:22px;min-width:0;}
.qxp .bars__ref{position:absolute;top:0;bottom:0;width:1px;background:#43454B;z-index:3;}
.qxp .bars__ref-label{position:absolute;top:0;left:7px;font-family:var(--qxp-mono);font-size:9px;color:var(--qxp-text-3);}
.qxp .bar-row{display:flex;align-items:center;gap:12px;position:relative;z-index:2;}
.qxp .bar-row__label{width:26px;flex:0 0 26px;font-family:var(--qxp-mono);font-size:11px;color:var(--qxp-text-2);}
.qxp .bar-row__track{flex:1 1 auto;height:16px;background:#17191C;}
.qxp .bar-row__fill{height:100%;}
.qxp .bar-row__value{width:48px;flex:0 0 48px;text-align:right;font-family:var(--qxp-mono);font-size:12px;}
.qxp .table-card{border-top:1px solid var(--qxp-line);min-width:0;}
.qxp .table-scroll{overflow-x:auto;-webkit-overflow-scrolling:touch;}
.qxp .data-table{width:100%;border-collapse:collapse;min-width:812px;table-layout:fixed;}
.qxp .data-table col.c1{width:92px;}.qxp .data-table col.c3{width:132px;}.qxp .data-table col.c4{width:128px;}
.qxp .data-table col.c5{width:118px;}.qxp .data-table col.c6{width:152px;}
.qxp .data-table thead th{
  text-align:left;font-family:var(--qxp-mono);font-weight:500;font-size:9px;letter-spacing:.15em;
  text-transform:uppercase;color:var(--qxp-text-3);padding:16px 16px 14px 0;border-bottom:1px solid var(--qxp-line);white-space:nowrap;
}
.qxp .data-table tbody tr{border-bottom:1px solid var(--qxp-line-soft);}
.qxp .data-table tbody tr:hover{background:var(--qxp-bg-raise);}
.qxp .data-table td,.qxp .data-table tbody th{padding:16px 16px 16px 0;font-size:14px;vertical-align:middle;text-align:left;font-weight:400;}
.qxp .data-table .num{text-align:right;font-family:var(--qxp-mono);font-size:13px;padding-right:24px;}
.qxp .data-table .num--strong{color:var(--qxp-accent);font-weight:600;}
.qxp .cell-class{font-weight:600;white-space:nowrap;}
.qxp .cell-desc{color:var(--qxp-text-2);}
.qxp .scroll-hint{display:none;padding:14px 0;font-family:var(--qxp-mono);font-size:9.5px;letter-spacing:.12em;text-transform:uppercase;color:var(--qxp-text-3);}

.qxp .section--annotation{background:var(--qxp-bg-sink);}
.qxp .annotation{display:grid;grid-template-columns:minmax(0,.95fr) minmax(0,1.05fr);gap:60px;align-items:start;}
.qxp .annotation__mark{
  font-size:clamp(34px,5.2vw,68px);line-height:1;letter-spacing:-.05em;font-weight:800;
  color:var(--qxp-accent);
}
.qxp .annotation__body .sec-title{margin-top:0;font-size:clamp(22px,2.4vw,30px);}
.qxp .explainer__body{margin-top:22px;font-size:17px;line-height:1.62;color:var(--qxp-text);max-width:60ch;}
.qxp .explainer__foot{margin-top:26px;display:flex;gap:8px;flex-wrap:wrap;align-items:center;}
.qxp .explainer__aside{margin-top:26px;color:var(--qxp-text-2);font-size:13px;line-height:1.7;border-top:1px solid var(--qxp-line);padding-top:20px;max-width:62ch;}

.qxp .ledger{margin-top:52px;display:grid;grid-template-columns:minmax(0,1.7fr) minmax(0,1fr);gap:0;border-top:1px solid var(--qxp-line);}
.qxp .ledger__col{padding:32px 34px 10px 0;}
.qxp .ledger__col--pursued{padding-left:34px;border-left:1px solid var(--qxp-line);}
.qxp .rec--pursued{border-top-color:var(--qxp-text-2);}
.qxp .rec-grid{margin-top:26px;display:grid;gap:26px;}
.qxp .ledger__col:not(.ledger__col--pursued) .rec-grid{grid-template-columns:repeat(auto-fit,minmax(250px,1fr));}
.qxp .rec{border-top:1px solid var(--qxp-line-soft);padding-top:22px;display:flex;flex-direction:column;}
.qxp .rec__name{font-size:22px;letter-spacing:-.03em;}
.qxp .rec__type{display:block;margin-top:8px;font-family:var(--qxp-mono);font-size:9px;letter-spacing:.14em;text-transform:uppercase;color:var(--qxp-text-3);}
.qxp .rec__figures{margin-top:22px;display:flex;flex-wrap:wrap;gap:20px;}
.qxp .rfig{flex:1 1 130px;}
.qxp .rfig__label{display:block;font-family:var(--qxp-mono);font-size:9px;letter-spacing:.12em;text-transform:uppercase;color:var(--qxp-text-3);}
.qxp .rfig__value{display:block;margin-top:9px;font-size:28px;font-weight:800;letter-spacing:-.04em;}
.qxp .rfig--primary .rfig__value{color:var(--qxp-accent);}
.qxp .rec__context{margin-top:20px;color:var(--qxp-text-2);font-size:13.5px;line-height:1.65;}
.qxp .rec__caveat{margin-top:14px;color:var(--qxp-text-3);font-size:12px;line-height:1.65;}
.qxp .rec__foot{margin-top:20px;padding-bottom:6px;display:flex;justify-content:space-between;gap:12px;align-items:center;flex-wrap:wrap;}
.qxp .rec__asof{font-family:var(--qxp-mono);font-size:9px;letter-spacing:.1em;text-transform:uppercase;color:var(--qxp-text-3);}
.qxp .rec--pursued .rfig__value{color:var(--qxp-text);}
.qxp .rec--pursued .rfig{border-left:2px solid var(--qxp-text-2);padding-left:14px;}
.qxp .rec--pursued .rec__type{color:var(--qxp-accent);}
.qxp .not-recovered{
  margin-top:22px;font-family:var(--qxp-mono);font-size:clamp(16px,2vw,24px);letter-spacing:.16em;
  text-transform:uppercase;color:var(--qxp-text);border-top:2px solid var(--qxp-text);
  border-bottom:1px solid var(--qxp-line);padding:16px 0;font-weight:700;
}
.qxp .not-recovered small{
  display:block;margin-top:10px;font-size:9.5px;letter-spacing:.12em;color:var(--qxp-text-2);
  font-weight:400;line-height:1.6;
}

.qxp .docket{margin-top:52px;border-top:1px solid var(--qxp-line);}
.qxp .change{display:grid;grid-template-columns:170px minmax(0,1fr) auto;gap:34px;padding:30px 0;border-bottom:1px solid var(--qxp-line-soft);align-items:start;}
.qxp .change__date{font-family:var(--qxp-mono);font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:var(--qxp-accent);}
.qxp .change__headline{font-size:19px;font-weight:600;letter-spacing:-.02em;}
.qxp .change__text{margin-top:10px;color:var(--qxp-text-2);font-size:13.5px;line-height:1.65;max-width:72ch;}
.qxp .change__delta{margin-top:12px;font-family:var(--qxp-mono);font-size:10.5px;color:var(--qxp-text-3);}
.qxp .change__actions{display:flex;gap:6px;flex-wrap:wrap;justify-content:flex-end;}

.qxp .section--method{background:var(--qxp-bg-sink);}
.qxp .principles{margin-top:44px;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:34px;border-top:1px solid var(--qxp-line);padding-top:34px;}
.qxp .principle__key{font-family:var(--qxp-mono);font-size:10px;letter-spacing:.2em;color:var(--qxp-accent);}
.qxp .principle__text{margin-top:14px;color:var(--qxp-text-2);font-size:14px;line-height:1.7;}

.qxp .source-controls{margin-top:44px;display:flex;gap:20px;align-items:center;flex-wrap:wrap;}
.qxp .source-controls input{flex:0 0 260px;}
.qxp .chips{display:flex;gap:0;flex-wrap:wrap;border:1px solid var(--qxp-line);}
.qxp .chips .chip{border-right:1px solid var(--qxp-line);padding:9px 13px;}
.qxp .chips .chip:last-child{border-right:0;}
.qxp .source-count{margin-left:auto;font-family:var(--qxp-mono);font-size:10px;letter-spacing:.1em;color:var(--qxp-text-3);text-transform:uppercase;}
.qxp .source-list{margin-top:34px;border-top:1px solid var(--qxp-line);}
.qxp .source-item{
  display:grid;grid-template-columns:132px minmax(0,1fr) 190px;gap:30px;
  padding:26px 0;border-bottom:1px solid var(--qxp-line-soft);align-items:start;
}
.qxp .source-item:hover{background:var(--qxp-bg-raise);}
.qxp .source-item__status{font-family:var(--qxp-mono);font-size:9.5px;letter-spacing:.13em;text-transform:uppercase;}
.qxp .source-item__status--primary{color:var(--qxp-accent);}
.qxp .source-item__status--secondary{color:var(--qxp-teal);}
.qxp .source-item__status--historical{color:var(--qxp-text-2);}
.qxp .source-item__status--active{color:var(--qxp-text);}
.qxp .source-item__status--unverified{color:#E08A5D;}
.qxp .source-item__kind{display:block;margin-top:8px;color:var(--qxp-text-3);}
.qxp .source-item__title{font-size:16px;font-weight:600;letter-spacing:-.015em;line-height:1.35;}
.qxp .source-item__meta{margin-top:10px;font-family:var(--qxp-mono);font-size:9.5px;letter-spacing:.06em;color:var(--qxp-text-3);display:flex;gap:16px;flex-wrap:wrap;}
.qxp .source-item__supports{margin-top:12px;color:var(--qxp-text-2);font-size:13px;line-height:1.6;max-width:74ch;}
.qxp .source-item__actions{display:flex;flex-direction:column;gap:8px;align-items:flex-end;}
.qxp .source-item__url{font-family:var(--qxp-mono);font-size:9px;color:var(--qxp-text-3);word-break:break-all;text-align:right;}
.qxp .empty{color:var(--qxp-text-2);font-size:14px;padding:30px 0;}

.qxp .copy-btn,.qxp .btn{
  font-family:var(--qxp-mono);font-size:9.5px;letter-spacing:.13em;text-transform:uppercase;
  background:transparent;border:1px solid var(--qxp-line);color:var(--qxp-text-2);padding:7px 11px;
  cursor:pointer;transition:color .15s,border-color .15s;white-space:nowrap;text-decoration:none;
  display:inline-block;
}
.qxp .copy-btn:hover,.qxp .btn:hover{color:var(--qxp-accent);border-color:var(--qxp-accent-line);}

.qxp .src-btn{
  font-family:var(--qxp-mono);font-size:9.5px;letter-spacing:.12em;text-transform:uppercase;
  background:transparent;border:0;padding:0;color:var(--qxp-text-2);cursor:pointer;
  border-bottom:1px solid var(--qxp-line);transition:color .15s,border-color .15s;
  white-space:nowrap;display:inline-block;
}
.qxp .src-btn + .src-btn{margin-left:14px;}
.qxp .src-btn:hover{color:var(--qxp-accent);border-bottom-color:var(--qxp-accent-line);}
.qxp .src-none{font-family:var(--qxp-mono);font-size:9.5px;letter-spacing:.1em;text-transform:uppercase;color:var(--qxp-text-3);}
.qxp .row-actions{display:inline-flex;gap:6px;align-items:center;flex-wrap:wrap;}

.qxp .overlay{position:fixed;inset:0;z-index:50;background:rgba(10,10,10,.78);opacity:0;transition:opacity .18s;}
.qxp .overlay[hidden]{display:none;}
body.drawer-open .qxp .overlay:not([hidden]){opacity:1;}
.qxp .drawer{
  position:fixed;z-index:60;top:0;right:0;bottom:0;width:min(470px,100%);
  background:var(--qxp-bg);border-left:1px solid var(--qxp-line);padding:30px 30px 48px;
  overflow-y:auto;transform:translateX(100%);transition:transform .2s;display:flex;flex-direction:column;
}
.qxp .drawer[hidden]{display:none;}
body.drawer-open .qxp .drawer:not([hidden]){transform:translateX(0);}
.qxp .drawer__head{display:flex;justify-content:space-between;gap:18px;align-items:flex-start;}
.qxp .drawer__eyebrow{font-family:var(--qxp-mono);font-size:9px;letter-spacing:.16em;text-transform:uppercase;color:var(--qxp-accent);display:flex;gap:10px;align-items:center;flex-wrap:wrap;}
.qxp .drawer__close{background:transparent;border:1px solid var(--qxp-line);width:34px;height:34px;font-size:20px;line-height:1;cursor:pointer;color:var(--qxp-text-2);flex:0 0 auto;}
.qxp .drawer__close:hover{color:var(--qxp-accent);border-color:var(--qxp-accent-line);}
.qxp .drawer__title{margin-top:18px;font-size:clamp(26px,4vw,36px);line-height:1.08;letter-spacing:-.04em;}
.qxp .drawer__actions{margin-top:22px;display:flex;gap:8px;flex-wrap:wrap;}

.qxp .drawer-summary{
  margin-top:18px;display:flex;gap:26px;align-items:baseline;flex-wrap:wrap;
  border-top:1px solid var(--qxp-line);padding-top:16px;
}
.qxp .drawer-summary__item{display:flex;flex-direction:column;gap:6px;}
.qxp .drawer-summary__value{font-size:26px;font-weight:800;letter-spacing:-.04em;line-height:1;}
.qxp .drawer-summary__value--muted{color:var(--qxp-text-2);}
.qxp .drawer-summary__label{font-family:var(--qxp-mono);font-size:8.5px;letter-spacing:.16em;text-transform:uppercase;color:var(--qxp-text-3);}
.qxp .prov-list{margin-top:16px;}
.qxp .prov{display:flex;justify-content:space-between;align-items:center;gap:16px;padding:10px 0;border-bottom:1px solid var(--qxp-line-soft);}
.qxp .prov__name{font-size:14.5px;font-weight:600;}
.qxp .prov__state{font-family:var(--qxp-mono);font-size:9.5px;letter-spacing:.13em;text-transform:uppercase;}
.qxp .prov__state--available{color:var(--qxp-accent);}
.qxp .prov__state--unavailable{color:var(--qxp-text-2);}
.qxp .prov__state--unknown{color:var(--qxp-text-3);}
.qxp .flag-row{display:none;}
.qxp .flag-row__label{font-family:var(--qxp-mono);font-size:9px;letter-spacing:.16em;text-transform:uppercase;color:var(--qxp-text-3);}
.qxp .flag-row__value{font-family:var(--qxp-mono);font-size:15px;letter-spacing:.14em;text-transform:uppercase;font-weight:700;}
.qxp .flag-row__value--yes{color:#E8E9E3;}
.qxp .flag-row__value--no{color:var(--qxp-text-2);}
.qxp .block{margin-top:20px;border-top:1px solid var(--qxp-line);padding-top:16px;}
.qxp .block__title{font-family:var(--qxp-mono);font-size:9px;letter-spacing:.16em;text-transform:uppercase;color:var(--qxp-text-3);}
.qxp .block__body{margin-top:10px;color:var(--qxp-text-2);font-size:13px;line-height:1.65;}
.qxp .block__body p + p{margin-top:12px;}
.qxp .fields{margin:26px 0 0;display:flex;flex-direction:column;}
.qxp .field{padding:16px 0;border-bottom:1px solid var(--qxp-line-soft);}
.qxp .field__key{font-family:var(--qxp-mono);font-size:9px;letter-spacing:.15em;text-transform:uppercase;color:var(--qxp-text-3);}
.qxp .field__val{margin:9px 0 0;color:var(--qxp-text-2);font-size:13.5px;line-height:1.65;overflow-wrap:anywhere;}
.qxp .btn{padding:13px 18px;text-align:center;}
.qxp .btn--primary{margin-top:24px;background:var(--qxp-accent);color:#000;border-color:var(--qxp-accent);font-weight:700;}
.qxp .btn--primary:hover{background:#a8d900;color:#000;}
.qxp .btn.is-disabled{background:transparent;color:var(--qxp-text-3);border-color:var(--qxp-line);pointer-events:none;}
.qxp .warn{margin-top:14px;font-size:12.5px;color:var(--qxp-text);line-height:1.6;border-left:2px solid var(--qxp-accent);padding-left:12px;}

.qxp .toast{
  position:fixed;z-index:80;left:50%;bottom:34px;transform:translate(-50%,14px);
  background:var(--qxp-accent);color:#000;font-weight:700;font-family:var(--qxp-mono);font-size:10px;
  letter-spacing:.14em;text-transform:uppercase;padding:13px 22px;opacity:0;pointer-events:none;
  transition:opacity .16s,transform .16s;
}
.qxp .toast.is-visible{opacity:1;transform:translate(-50%,0);}

@media (max-width:1200px){
  .qxp{--qxp-gutter:32px;}
  .qxp .map-band__inner{grid-template-columns:1fr;}
  .qxp .legend{flex-direction:row;flex-wrap:wrap;gap:26px;}
  .qxp .legend__item{flex:1 1 240px;}
  .qxp .legend__foot{flex:1 1 100%;margin-top:0;}
  .qxp .annotation{grid-template-columns:1fr;gap:28px;}
}
@media (max-width:1024px){
  .qxp .figures{grid-template-columns:repeat(2,minmax(0,1fr));}
  .qxp .figure:nth-child(odd){padding-left:0;border-left:0;}
  .qxp .figure:nth-child(n+3){border-top:1px solid var(--qxp-line);}
  .qxp .rounds{grid-template-columns:repeat(3,minmax(0,1fr));}
  .qxp .round:nth-child(3n+1){padding-left:0;border-left:0;}
  .qxp .round:nth-child(n+4){border-top:1px solid var(--qxp-line);}
  .qxp .class-layout{grid-template-columns:minmax(0,1fr);}
  .qxp .ledger{grid-template-columns:1fr;}
  .qxp .ledger__col--pursued{padding-left:0;border-left:0;border-top:1px solid var(--qxp-line);padding-top:32px;}
  .qxp .source-item{grid-template-columns:120px minmax(0,1fr);}
  .qxp .source-item__actions{grid-column:2;flex-direction:row;align-items:center;justify-content:flex-start;}
  .qxp .source-item__url{text-align:left;}
}
.qxp .desktop-only{display:inline-block;}

@media (max-width:900px){
  .qxp{--qxp-header-h:96px;}
  .qxp .nav{order:4;width:100%;margin:0 calc(var(--qxp-gutter) * -1);padding:0 var(--qxp-gutter);}
  .qxp .section{padding:80px 0;}
  .qxp .hero{padding-top:76px;}
  .qxp .figures{margin-top:60px;}
  .qxp .access-stats{grid-template-columns:1fr;}
  .qxp .stat{padding:24px 0;border-top:1px solid var(--qxp-line-soft);}
  .qxp .stat:first-child{border-top:0;}
  .qxp .stat + .stat{padding-left:0;border-left:0;}
  .qxp .principles{grid-template-columns:1fr;gap:26px;}
  .qxp .change{grid-template-columns:1fr;gap:12px;}
  .qxp .change__actions{justify-content:flex-start;}
  .qxp .scroll-hint{display:block;}
}
@media (max-width:640px){
  .qxp{--qxp-gutter:18px;--qxp-header-h:92px;}
  
  .qxp .desktop-only{display:none;}
  .qxp .nav{order:2;width:100%;margin:0 calc(var(--qxp-gutter) * -1);padding:0 var(--qxp-gutter) 2px;}
  .qxp .nav__link{padding:7px 9px;font-size:9.5px;}
  
  .qxp .sec-lead{margin-top:14px;}
  .qxp .sec-title{margin-top:14px;}
  .qxp .map-toolbar{margin-top:20px;gap:10px;}
  .qxp .map-band{margin-top:20px;}
  .qxp .toggle__long{display:none;}
  .qxp .toggle__short{display:inline;}
  .qxp .map-search{flex:1 1 55%;min-width:0;margin-left:0;}
  .qxp #rosterToggle{flex:0 0 auto;}
  .qxp .filters{flex:1 1 100%;order:-1;}
  .qxp .access-stats{grid-template-columns:repeat(3,minmax(0,1fr));margin-top:26px;}
  .qxp .stat{padding:18px 10px 16px 0;}
  .qxp .stat + .stat{padding-left:12px;}
  .qxp .stat__value{font-size:30px;}
  .qxp .stat__label{margin-top:8px;font-size:8px;letter-spacing:.1em;line-height:1.4;}
  .qxp .stat__hint{display:none;}
  .qxp .access-explain{margin-top:20px;font-size:13px;}
  .qxp .hero{padding-top:52px;}
  .qxp .hero__title{font-size:clamp(38px,11vw,54px);}
  .qxp .section{padding:64px 0;}
  .qxp .figures{grid-template-columns:repeat(2,minmax(0,1fr));margin-top:36px;}
  .qxp .figure{padding:22px 14px 20px 0;border-top:1px solid var(--qxp-line-soft);}
  .qxp .figure:nth-child(-n+2){border-top:0;}
  .qxp .figure:nth-child(odd){padding-left:0;border-left:0;}
  .qxp .figure:nth-child(even){padding-left:14px;border-left:1px solid var(--qxp-line);}
  .qxp .figure__value{font-size:40px;}
  .qxp .figure__label{margin-top:12px;font-size:9px;letter-spacing:.12em;}
  .qxp .figure__sub{font-size:11.5px;}
  .qxp .figure__foot{padding-top:14px;}
  .qxp .hero{padding-top:44px;}
  .qxp .hero__title{margin-top:22px;}
  .qxp .hero__lead{margin-top:22px;font-size:17px;}
  .qxp .hero__kicker{margin-top:18px;}
  .qxp .hero__disclaimer{margin-top:26px;}
  .qxp .rounds{grid-template-columns:1fr;}
  .qxp .round{padding:24px 0;border-left:0!important;padding-left:0!important;border-top:1px solid var(--qxp-line-soft);}
  .qxp .round:first-child{border-top:0;}
  .qxp .round__note{min-height:0;}
  .qxp .map-search{margin-left:0;flex:1 1 100%;}
  .qxp .map-band__inner{padding-top:18px;padding-bottom:18px;}
  .qxp .legend{flex-direction:column;gap:18px;}
  .qxp .source-item{grid-template-columns:1fr;gap:12px;}
  .qxp .source-item__actions{grid-column:1;}
  .qxp .source-controls input{flex:1 1 100%;}
  .qxp .source-count{margin-left:0;}
  .qxp .drawer{
    top:auto;left:0;right:0;bottom:0;width:100%;max-height:88vh;border-left:0;
    border-top:1px solid var(--qxp-line);transform:translateY(100%);padding:24px 18px 40px;
  }
  body.drawer-open .qxp .drawer:not([hidden]){transform:translateY(0);}
  .qxp .toast{bottom:20px;}
}
@media (prefers-reduced-motion: reduce){
  .qxp *,.qxp *::before,.qxp *::after{animation-duration:.001ms!important;transition-duration:.001ms!important;}
}

.qxp .section--estimator{border-top:1px solid var(--qxp-line);}

.qxp .est{
  --qxp-est-field-bg:#16181B;          
  --qxp-est-field-bg-focus:#191B1F;
  --qxp-est-field-line:rgba(255,255,255,.14);

  display:grid;grid-template-columns:minmax(0,392px) minmax(0,1fr);
  margin-top:30px;
  border:1px dashed var(--qxp-line);
  border-radius:var(--qxp-radius-md);
  background:var(--qxp-bg);            
  overflow:hidden;                 
}
.qxp .est__panel{padding:28px;border-right:1px dashed var(--qxp-line);}
.qxp .est__result{
  padding:28px;background:var(--qxp-bg-raise);
  display:flex;flex-direction:column;justify-content:center;   
}

.qxp .est__field + .est__field{margin-top:28px;}
.qxp .est__label{
  display:block;font-family:var(--qxp-mono);font-size:9.5px;letter-spacing:.15em;
  text-transform:uppercase;color:var(--qxp-text-3);margin-bottom:10px;
}

.qxp .est__input-wrap{
  display:flex;align-items:center;gap:4px;
  background:var(--qxp-est-field-bg);
  border:1px solid var(--qxp-est-field-line);
  border-radius:var(--qxp-radius-md);
  padding:0 16px;
  transition:border-color .15s ease,background-color .15s ease;
}
.qxp .est__input-wrap:focus-within{
  border-color:var(--qxp-accent);      
  background:var(--qxp-est-field-bg-focus);
}
.qxp .est__prefix{
  font-size:24px;font-weight:700;line-height:1;color:var(--qxp-text-3);flex:0 0 auto;
  transition:color .15s ease;
}
.qxp .est__input-wrap:focus-within .est__prefix{color:var(--qxp-text-2);}
.qxp .est__input{
  flex:1 1 auto;min-width:0;
  background:none;border:0;outline:none;
  
  font-family:var(--qxp-sans);font-size:24px;font-weight:700;letter-spacing:-.02em;
  color:var(--qxp-text);font-variant-numeric:tabular-nums;
  padding:14px 4px;
}
.qxp .est__input::placeholder{color:var(--qxp-text-3);font-weight:500;}
.qxp .est__hint{margin-top:10px;font-size:12px;line-height:1.6;color:var(--qxp-text-3);}
.qxp .est__hint .src-btn{vertical-align:baseline;}

.qxp .est__classes{display:flex;flex-wrap:wrap;gap:7px;}
.qxp .est__class{
  appearance:none;cursor:pointer;
  background:transparent;
  border:1px solid var(--qxp-line);
  border-radius:var(--qxp-radius-pill);
  color:var(--qxp-text-2);
  font-family:var(--qxp-display);font-weight:600;font-size:13px;letter-spacing:0;
  padding:9px 16px;white-space:nowrap;
  transition:color .15s ease,border-color .15s ease,background-color .15s ease;
}
.qxp .est__class:hover{color:var(--qxp-text);border-color:var(--qxp-line-soft);background:var(--qxp-bg-raise);}
.qxp .est__class:focus-visible{outline:2px solid var(--qxp-accent);outline-offset:3px;}
.qxp .est__class[aria-checked="true"],.qxp .est__class.is-selected{
  background:var(--qxp-accent);
  border-color:var(--qxp-accent);
  color:#000;                   
  font-weight:700;
}
.qxp .est__class[aria-checked="true"]:hover,.qxp .est__class.is-selected:hover{background:#a8d900;color:#000;}

.qxp .est__empty{
  font-family:var(--qxp-mono);font-size:11px;letter-spacing:.12em;text-transform:uppercase;
  color:var(--qxp-text-3);padding:44px 0;text-align:center;
}

.qxp .est__figures[hidden],.qxp .est__bar[hidden],.qxp .est__closed[hidden],.qxp .est__empty[hidden]{display:none;}
.qxp .est__figures{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:26px;}
.qxp .est__figure-value{
  font-family:var(--qxp-sans);            
  font-size:clamp(28px,3vw,36px);font-weight:800;letter-spacing:-.04em;line-height:1.02;
  font-variant-numeric:tabular-nums;
}
.qxp .est__figure--accent .est__figure-value{color:var(--qxp-accent);}

.qxp .est__figure-value.is-empty{color:var(--qxp-text-3);font-size:24px;}
.qxp .est__figure-label{
  margin-top:9px;font-family:var(--qxp-mono);font-size:9.5px;letter-spacing:.14em;
  text-transform:uppercase;color:var(--qxp-text-3);
}
.qxp .est__figure-sub{margin-top:7px;font-size:12px;line-height:1.55;color:var(--qxp-text-2);}

.qxp .est__bar{margin-top:28px;}
.qxp .est__bar-track{
  position:relative;height:8px;border-radius:0;
  background:var(--qxp-bg-sink);border:1px solid var(--qxp-line-soft);
}
.qxp .est__bar-fill{
  position:absolute;left:0;top:0;bottom:0;border-radius:0;
  background:var(--qxp-text-2);transition:width .25s ease;
}
.qxp .est__bar-mark{
  position:absolute;top:-5px;bottom:-5px;width:1px;background:var(--qxp-accent-line);
}
.qxp .est__bar-mark-label{
  position:absolute;top:-20px;left:50%;transform:translateX(-50%);
  font-family:var(--qxp-mono);font-size:9px;letter-spacing:.12em;color:var(--qxp-text-3);
  white-space:nowrap;
}
.qxp .est__bar-legend{
  display:flex;justify-content:space-between;margin-top:11px;
  font-family:var(--qxp-mono);font-size:9.5px;letter-spacing:.1em;color:var(--qxp-text-3);
}

.qxp .est__closed{
  margin-top:22px;padding-left:14px;border-left:2px solid var(--qxp-accent-line);
  font-size:13px;line-height:1.65;color:var(--qxp-text-2);
}

.qxp .est__conditions,.qxp .est__next{margin-top:42px;}
.qxp .est__cond-list{margin-top:16px;display:grid;gap:11px;max-width:92ch;}
.qxp .est__cond-list li{
  position:relative;padding-left:20px;font-size:14px;line-height:1.65;color:var(--qxp-text-2);
}
.qxp .est__cond-list li::before{
  content:"";position:absolute;left:0;top:.7em;width:8px;height:1px;background:var(--qxp-text-3);
}

.qxp .est__next-body{margin-top:16px;font-size:14px;line-height:1.7;color:var(--qxp-text-2);max-width:92ch;}
.qxp .est__next-conclusion{
  margin-top:16px;padding-left:14px;border-left:2px solid var(--qxp-accent-line);
  font-size:14px;line-height:1.7;color:var(--qxp-text);max-width:88ch;
}
.qxp .est__next-sources{
  margin-top:14px;font-family:var(--qxp-mono);font-size:9.5px;letter-spacing:.12em;
  text-transform:uppercase;color:var(--qxp-text-3);
}
.qxp .est__next-sources a{color:var(--qxp-text-2);text-underline-offset:3px;}
.qxp .est__next-sources a:hover{color:var(--qxp-text);}
.qxp .est__next-sources[hidden]{display:none;}

.qxp .est__disclaimer{margin-top:36px;max-width:92ch;}

@media (max-width:900px){
  .qxp .est{grid-template-columns:minmax(0,1fr);}
  .qxp .est__panel{border-right:0;border-bottom:1px dashed var(--qxp-line);}
}
@media (max-width:720px){
  .qxp .est{margin-top:24px;}
  .qxp .est__panel,.qxp .est__result{padding:22px 20px;}
  .qxp .est__figures{grid-template-columns:minmax(0,1fr);gap:22px;}
  .qxp .est__input{font-size:20px;padding:13px 4px;}   
  .qxp .est__prefix{font-size:20px;}
  .qxp .est__class{padding:9px 14px;}
  .qxp .est__conditions,.qxp .est__next{margin-top:34px;}
}

@media (prefers-reduced-motion:reduce){
  .qxp .est__input-wrap,.qxp .est__class,.qxp .est__bar-fill{transition:none;}
}

/* --- посадка в обвязку сайта --- */
/* Шапка сайта #qxNav висит фиксированно, высотой около 60px, и главная
   страница компенсирует её правилом main{padding-top:80px} в своей
   разметке. Оно достаётся трекеру вместе с каркасом, поэтому у героя
   свой отступ сверху меньше исходного. --qxp-header-h считает всё,
   что перекрывает верх страницы: шапку сайта плюс полосу разделов. */
.qxp{--qxp-header-h:102px;}
.qxp .hero{padding:40px 0 0;}
@media (max-width:900px){.qxp{--qxp-header-h:100px;}.qxp .hero{padding-top:28px;}}
@media (max-width:640px){.qxp{--qxp-header-h:96px;}.qxp .hero{padding-top:20px;}}

/* --- шкала заголовков под Unbounded --- */
/* Исходная шкала считалась под Syne. Unbounded шире по посадке
   примерно на десятую часть, и заголовок в 104px переставал держать
   строку. Значения уменьшены, максимум по ширине снят с 15ch. */
/* Заголовок был от трекера: вес 700 и трекинг -.01em - самое свободное
   начертание на сайте. Витрина и калькулятор держат 800 и -.02em,
   приводим к ним. Трекинг ставим на самом заголовке, а не в переменной
   --qxp-track-display: она же держит заголовки секций, а их вид никто
   менять не просил. Отступ сверху остаётся наш, от сокращения страницы. */
.qxp .hero__title{
  font-size:clamp(34px,6.2vw,72px);line-height:1.02;max-width:18ch;
  font-weight:800;letter-spacing:-.02em;
}
.qxp .sec-title{font-size:clamp(26px,3.4vw,44px);line-height:1.06;}
.qxp .sec-title--xl{font-size:clamp(30px,4.2vw,56px);}
.qxp .minor-title{letter-spacing:0;}

/* --- полоса разделов --- */
/* У трекера навигация по разделам жила в собственной шапке. Шапка ушла,
   а страница длинная: полоса остаётся отдельной строкой под шапкой
   сайта. Классы .nav и .nav__link - те же, что были, стили от них
   унаследованы; новое только позиционирование. */
.qxp .subnav{
  position:sticky;top:59px;z-index:30;
  background:rgba(10,10,10,.86);
  -webkit-backdrop-filter:blur(14px) saturate(140%);
  backdrop-filter:blur(14px) saturate(140%);
  border-bottom:1px solid var(--qxp-line);
}
.qxp .subnav__inner{display:flex;align-items:center;gap:16px;min-height:42px;}
.qxp .subnav .nav{margin-left:0;}
.qxp .subnav__stamp{
  margin-left:auto;flex:0 0 auto;
  font-family:var(--qxp-mono);font-size:9px;letter-spacing:.14em;
  text-transform:uppercase;color:var(--qxp-text-3);white-space:nowrap;
}
@media (max-width:900px){
  .qxp .subnav__inner{gap:10px;}
  .qxp .subnav__stamp{display:none;}
}

/* --- слои --- */
/* У трекера ящики стояли на 50, 60 и 80 - выше всего, что было на его
   собственной странице. На сайте выше них шапка #qxNav с z-index:100:
   открытый ящик юрисдикции уезжал под неё вместе со своим крестиком,
   и закрыть его щелчком было нельзя. Ящики поднимаются над шапкой, но
   остаются под формой заявки (9999) и виджетом чата (9998). */
.qxp .overlay{z-index:900;}
.qxp .drawer{z-index:910;}
.qxp .toast{z-index:920;color:#000;}

/* --- заявка --- */
/* Страница исследовательская, но лежит на сайте выкупа, и человеку,
   который досмотрел до конца, нужен выход к заявке. Форма - общая,
   та же модалка, что у кнопки в шапке; здесь только вход в неё,
   собранный на переменных трекера, без своих цветов и шрифтов. */
.qxp .cta{
  margin:0 0 96px;padding:56px var(--qxp-gutter) 60px;
  border:1px solid var(--qxp-line);border-radius:var(--qxp-radius-md);
  background:var(--qxp-bg-raise);
}
.qxp .cta__title{font-size:clamp(24px,2.8vw,36px);line-height:1.08;max-width:20ch;}
.qxp .cta__body{margin-top:18px;max-width:62ch;color:var(--qxp-text-2);font-size:16px;line-height:1.65;}
.qxp .cta__btn{
  display:inline-block;margin-top:28px;padding:14px 26px;
  border:0;border-radius:var(--qxp-radius-pill);cursor:pointer;
  background:var(--qxp-accent);color:#000;text-decoration:none;
  font-family:var(--qxp-sans);font-weight:600;font-size:14.5px;
  transition:background .15s ease,transform .15s ease;
}
.qxp .cta__btn:hover{background:#a8d900;transform:translateY(-1px);text-decoration:none;}
.qxp .cta__note{
  margin-top:22px;padding-top:20px;border-top:1px solid var(--qxp-line-soft);
  color:var(--qxp-text-3);font-size:12.5px;line-height:1.7;max-width:80ch;
}
@media (max-width:640px){.qxp .cta{padding:36px 20px 40px;}}

/* --- карта: акцент на отсутствии доступа --- */
/* Было наоборот: лаймом заливались 189 юрисдикций, где провайдер есть,
   то есть ярким помечалась норма, а то, ради чего человек пришёл -
   где доступа НЕТ, - оставалось тихим серым. Меняем местами.

   Контраст к фону карты #191919 (порог WCAG для нетекстовой графики 3:1):
     нет провайдера  #c8ff00            14,87:1
     провайдер есть  белый 34%           3,11:1
     в реестре       белый 55%           6,09:1
     вне списков     #232629             1,43:1  - подложка, не состояние

   Между «нет провайдера» и «есть» - 2,50:1. Одним цветом больше не
   вытянуть, не делая карту пёстрой, поэтому различие несёт второй
   признак: точки, штриховка, пусто. Дальтоник читает фактуру. */
.qxp .field--unavailable{fill:#c8ff00;fill-opacity:.10;}
.qxp .field--available{fill:#4E5157;fill-opacity:.28;}
.qxp #roster-hatch line{stroke:#ffffff;stroke-opacity:.55;}

.qxp .country--unavailable{stroke:#c8ff00;stroke-width:.8px;}
.qxp .country--available{stroke:rgba(255,255,255,.34);}

/* Точки-указатели за мелкие страны меняются местами так же. */
.qxp .marker--unavailable .marker__ring{stroke:var(--qxp-accent);}
.qxp .marker--unavailable .marker__core{fill:var(--qxp-accent);}
.qxp .marker--available .marker__ring{stroke:rgba(255,255,255,.55);}
.qxp .marker--available .marker__core{fill:none;}

/* Плашки легенды - за состояниями. Легенда - ключ к карте, и три
   состояния обязаны различаться в ней так же, как на полотне.
   Исходные плашки этого не давали: у «провайдер доступен» стоял
   opacity:.5 поверх тёмно-серого, и на фоне легенды #060606 плашка
   выходила #2a2c2f - контраст 1,44:1, то есть почти пустое место.
   У плашки реестра заливки не было вовсе, только штриховка на 20%
   площади, и она читалась призраком.

   Здесь плашка не образец пикселей с карты, а её знак: на полотне
   состояние живёт на светлой подложке #191919 и в размер страны,
   в легенде - на почти чёрном #060606 и в 34x20 px. Поэтому серый
   поднят, а штриховка стала плотнее; композиция та же, что на карте
   (поле плюс контур, штриховка поверх), сила подогнана под фон.

   Контраст к фону легенды #060606, порог для нетекстовой графики 3:1:
     нет провайдера     #c8ff00                17,14:1
     провайдер доступен #666a70                 3,73:1
     в реестре FTX      штриховка, в среднем    3,79:1
   Между «нет провайдера» и «доступен» - 4,60:1, плюс разная фактура. */
.qxp .legend__swatch--unavailable{background:var(--qxp-accent);opacity:1;border-color:var(--qxp-accent-line);}
.qxp .legend__swatch--available{background:#666a70;opacity:1;border-color:rgba(255,255,255,.42);}
.qxp .legend__swatch--roster{
  opacity:1;background-color:rgba(255,255,255,.08);
  background-image:repeating-linear-gradient(45deg,rgba(255,255,255,.62) 0 1.2px,transparent 1.2px 3px);
  border-color:#5a5d63;
}
/* Четвёртое состояние в данных не встречается и в легенду не попадает,
   но если появится - пусть будет видно, а не так же бледно, как было. */
.qxp .legend__swatch--unknown{opacity:1;border-color:rgba(255,255,255,.42);}

/* На узком экране легенда возвращается в колонку, но flex-basis 240px
   из правила для строки (max-width:1200px) остаётся в силе, а в колонке
   базовая величина - это ВЫСОТА. Каждый пункт растягивало до 240px при
   содержимом в 80-95, и легенда занимала на телефоне 875px вместо ~330:
   две трети - пустота между плашками. Возвращаем высоту по содержимому. */
@media (max-width:640px){
  .qxp .legend__item{flex:0 1 auto;}
}

/* Таблица классов без столбца даты. Пол в 812px держал прокрутку вбок
   на всех настольных ширинах: таблице достаётся 722px из 1088, рядом
   стоит диаграмма. Столбец «по состоянию на» повторял одну и ту же
   дату пять раз и стоил 132px - снят, пол опущен на столько же.

   На телефоне 354px шесть столбцов не помещались и пять не помещаются:
   там прокрутка внутри таблицы остаётся, о ней говорит подсказка. */
.qxp .data-table{min-width:680px;}

/* Диаграмма и таблица стоят в два столбца, и таблице достаётся то, что
   осталось. От 1150px этого хватает, ниже - нет: при 1100 остаётся 670
   при нужных 680, при 1025 всего 595. Раскладка и так становится
   одноколоночной, только с 1024 - переносим порог туда, где он нужен.
   Место у диаграммы при этом не отбирается: на широком экране она
   стоит как стояла, а на узком они просто идут друг под другом. */
@media (max-width:1149px){
  .qxp .class-layout{grid-template-columns:minmax(0,1fr);}
}
.qxp .table-asof{
  margin-top:14px;font-family:var(--qxp-mono);font-size:9.5px;
  letter-spacing:.1em;text-transform:uppercase;color:var(--qxp-text-3);
}

/* Подпись «100%» у линии висит по ходу чтения: в левостороннем письме
   справа от линии, в арабском - слева. В таблице трекера это был
   физический left, и в арабском подпись оставалась не с той стороны. */
.qxp .bars__ref-label{left:auto;inset-inline-start:7px;}

/* Подсветка карточки источника во всю ширину полосы. Карточка лежит
   в .wrap, а у него боковые поля в размер колодца страницы - и фон
   при наведении обрывался за 56px до края, обнимая только текст.
   Выпускаем карточку в поля отрицательным отступом и возвращаем его
   же внутренним: содержимое остаётся на прежней линии, а фон и
   разделитель доходят до края полосы.

   Адрес из карточки убран - его показывает панель по кнопке, - и
   правило под него больше не нужно. */
.qxp .source-item{
  margin-left:calc(-1 * var(--qxp-gutter));
  margin-right:calc(-1 * var(--qxp-gutter));
  padding-left:var(--qxp-gutter);
  padding-right:var(--qxp-gutter);
}

/* Кегль значения метрики под длину строки. Слот рассчитан на короткий
   знак - «5», «45», «>$10B»: 1-5 знаков при 72px. Перевод строку
   удлиняет, и в арабском «أكثر من 10 مليارات دولار» - 24 знака -
   значение вставало в четыре строки, а ряд плиток рос с 243px до 442.
   Метку ставит скрипт, здесь только ступени. */
.qxp .figure__value--sm{font-size:clamp(30px,3.6vw,46px);line-height:1.0;}
.qxp .figure__value--xs{font-size:clamp(22px,2.4vw,30px);line-height:1.15;letter-spacing:-.03em;}

/* Табличные цифры сняты с полотна страницы. У трекера
   font-variant-numeric:tabular-nums стояло на body, то есть на всём
   подряд, и при переносе уехало на .qxp. В сплошном тексте это ошибка:
   табличная единица занимает ту же ширину, что восьмёрка, и «Chapter 11»
   читается как «Chapter 1 1» - два числа вместо одного. Замерено: «11»
   и «88» одной ширины, 26 px.

   Табличные цифры нужны там, где числа стоят столбиком и должны
   совпадать разрядами, - в таблице классов и в подписях диаграммы.
   Оценщик держит своё правило, ему тоже нужны. Остальному тексту -
   пропорциональные, как на всём сайте. */
.qxp{font-variant-numeric:normal;}
.qxp .data-table,
.qxp .bars{font-variant-numeric:tabular-nums;}

/* Пояснение под плашкой метрики. Стиль .badge-explain достался от
   трекера и был написан под плитку: left:0;right:26px. Коробку теперь
   держит .figures, весь ряд, - поэтому правый край по ряду, а ширина
   ограничена строкой чтения, а не шириной блока. Фон и рамка - местные,
   у трекера здесь был свой тёмно-синий #17191C.

   cursor:help намекал на подсказку по наведению, которой не будет:
   на телефоне наведения нет, а пояснение в 331 знак наведением и не
   читают. Раскрытие по щелчку - значит и курсор указывающий. */
.qxp .figures{position:relative;}
.qxp .figure__badge{cursor:pointer;}
.qxp .figure__badge[aria-expanded="true"]{
  color:var(--qxp-accent);border-left-color:var(--qxp-accent-line);
}
.qxp .badge-explain{
  right:0;max-width:74ch;
  background:var(--qxp-bg-raise);border-color:var(--qxp-line-soft);
}
@media (max-width:640px){
  .qxp .badge-explain{padding:12px 14px;font-size:12px;line-height:1.65;}
  /* На телефоне колонка плитки 148-163 px, и подпись с кнопкой источника
     не встают в строку ни при какой длине, которую мы вправе поставить:
     «на 31 июля 2026» просит 165. Хуже другое - у нечётных плиток нет
     бокового отступа, поле у них на 15 px шире, и подпись влезала через
     одну: 30, 54, 30, 54. Разнобой хуже переноса, поэтому ставим
     столбиком во всех четырёх - высоты сходятся. */
  .qxp .figure__foot{flex-direction:column;align-items:flex-start;gap:6px;}
}

/* 4. Увеличение карты. Кнопки поверх полотна, в углу; сброс появляется,
   только когда карта приближена. touch-action:none обязателен - иначе
   браузер съедает щипок под свою прокрутку. */
.qxp .map-holder .world{touch-action:none;}
.qxp .map-zoom{
  position:absolute;right:14px;bottom:14px;z-index:10;
  display:flex;flex-direction:column;gap:6px;
}
.qxp .map-zoom__btn{
  width:34px;height:34px;display:flex;align-items:center;justify-content:center;
  background:rgba(10,10,10,.82);border:1px solid var(--qxp-line);
  color:var(--qxp-text-2);font-size:17px;line-height:1;cursor:pointer;
  -webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);
  transition:border-color .15s ease,color .15s ease;
}
.qxp .map-zoom__btn:hover{border-color:var(--qxp-accent-line);color:var(--qxp-text);}
.qxp .map-zoom__btn--reset{font-size:15px;}
.qxp .map-zoom__btn[hidden]{display:none;}

/* Точки-указатели: владелец просил заметнее. Кольцо толще и ярче, ядро
   крупнее, вокруг тёмный ореол - чтобы точка читалась и на лаймовой
   заливке, и на сером фоне. */
.qxp .marker__halo{fill-opacity:.94;}
.qxp .marker__ring{stroke-width:1.3px;}
.qxp .marker--unavailable .marker__ring{stroke:var(--qxp-accent);stroke-width:1.5px;}
.qxp .marker--available .marker__ring{stroke:rgba(255,255,255,.7);}

/* --- карта на телефоне --- */
/* Была 354×137 на экране 390: весь мир полосой в полтора интерлиньяжа,
   Германия 8×9 пикселей. Карта рисуется вдвое шире полосы и
   прокручивается вбок: высота удваивается, страны тоже, пропорции целы.
   Прокрутка живёт внутри блока - у страницы боковой прокрутки нет.
   touch-action снимается, иначе палец не потянет карту вбок. */
@media (max-width:640px){
  /* Двойная ширина с прокруткой вбок больше не нужна: её заменил зум -
     щипок и кнопки. Высоту держим прежнюю, 270px вместо 137. */
  .qxp .map-holder{min-height:270px;}
  .qxp .map-holder .world{min-height:270px;}
  .qxp .map-skeleton{min-height:270px;}
  .qxp .map-zoom{right:10px;bottom:10px;}
  .qxp .map-zoom__btn{width:40px;height:40px;}
}

/* --- заглушка карты --- */
/* Карта и матрица юрисдикций грузятся отдельно и позже, поэтому у места
   под карту есть собственная высота: без неё страница прыгала бы вниз
   в момент отрисовки. */
.qxp .map-holder[data-state="idle"],
.qxp .map-holder[data-state="loading"]{min-height:clamp(280px,42vw,560px);}
.qxp .map-skeleton{
  display:flex;align-items:center;justify-content:center;
  min-height:clamp(280px,42vw,560px);
  border:1px dashed var(--qxp-line);border-radius:var(--qxp-radius-md);
  font-family:var(--qxp-mono);font-size:10px;letter-spacing:.16em;
  text-transform:uppercase;color:var(--qxp-text-3);
}
.qxp .map-holder[data-state="ready"] .map-skeleton{display:none;}

/* --- правки по разбору живой страницы --- */

/* 1. Полосы разделов больше нет; отметка о свежести переехала в шапку. */
.qxp .hero__stamp{
  margin-top:14px;font-family:var(--qxp-mono);font-size:9.5px;letter-spacing:.14em;
  text-transform:uppercase;color:var(--qxp-text-3);
}

/* 2. Легенда карты читалась мельче самой карты и терялась под ней.
   Кегль и отступы подняты до уровня равноправного элемента: подпись
   состояния - как минорный заголовок, пояснение - как обычный мелкий
   текст, а не как сноска. */
.qxp .legend{gap:22px;}
.qxp .legend__item{gap:14px;}
.qxp .legend__swatch{width:34px;height:20px;flex:0 0 34px;margin-top:3px;}
.qxp .legend__label{font-size:15px;font-weight:600;}
.qxp .legend__count{margin-top:6px;font-size:12.5px;line-height:1.6;}
.qxp .legend__foot{margin-top:24px;font-size:11px;}

/* 3. Оговорка под счётчиками шире блока со счётчиками над ней -
   приводим к той же ширине. Счётчики живут в .access-stats, у него
   ширина полосы; ограничение по ширине текста снимаем. */
.qxp .caveat-line{max-width:none;}

/* 6. Карточки раундов были разной высоты, и кнопки висели на разных
   уровнях. Карточка становится колонкой, примечание тянется, подвал
   прижимается к низу - тогда кнопки в ряду стоят на одной линии. */
.qxp .round{display:flex;flex-direction:column;}
.qxp .round__note{flex:1 1 auto;min-height:0;}
.qxp .round__foot{margin-top:auto;padding-top:16px;}

/* 7. Заголовки столбцов таблицы наезжали друг на друга: nowrap при
   узких колонках. Разрешаем перенос и разводим колонки по ширине. */
.qxp .data-table thead th{white-space:normal;line-height:1.35;padding-right:14px;vertical-align:bottom;}
.qxp .data-table col.c1{width:88px;}
.qxp .data-table col.c3{width:104px;}
.qxp .data-table col.c4{width:118px;}
.qxp .data-table col.c5{width:132px;}
.qxp .data-table col.c6{width:104px;}
/* Кнопка источника встаёт в общий поток строки, а не отдельным блоком. */
.qxp .data-table .row-actions{display:inline;}

/* 8. Блок про выплаты выше 100%: одна колонка вместо двух, надпись -
   меткой над заголовком. */
.qxp .annotation{grid-template-columns:1fr;gap:0;}
.qxp .annotation__mark{
  font-size:13px;font-family:var(--qxp-mono);letter-spacing:.12em;
  text-transform:uppercase;color:var(--qxp-accent);margin-bottom:14px;
}
.qxp .explainer__body{max-width:68ch;}
.qxp .explainer__foot{align-items:baseline;}
.qxp .explainer__foot-label{
  font-family:var(--qxp-mono);font-size:9.5px;letter-spacing:.16em;
  text-transform:uppercase;color:var(--qxp-text-3);margin-right:2px;
}

/* 9. Список источников свёрнут: показываются три последних, остальные
   под кнопкой. При поиске и фильтре разворачивается сам. */
.qxp .source-list.is-collapsed .source-item:nth-child(n+4){display:none;}
.qxp .source-more{
  margin-top:22px;display:inline-flex;align-items:center;gap:8px;
  background:transparent;border:1px solid var(--qxp-line);
  border-radius:var(--qxp-radius-pill);padding:11px 20px;cursor:pointer;
  font-family:var(--qxp-mono);font-size:10px;letter-spacing:.14em;
  text-transform:uppercase;color:var(--qxp-text-2);
  transition:border-color .15s ease,color .15s ease;
}
.qxp .source-more:hover{border-color:var(--qxp-accent-line);color:var(--qxp-text);}
.qxp .source-more[hidden]{display:none;}

/* 10. Блок заявки приводится к виду призывных блоков сайта: там он по
   центру, скруглён на 16px, текст ограничен 440px, кнопка - таблетка
   .btn-primary. Значения взяты с блока в статьях. */
.qxp .cta{
  border-radius:16px;padding:2.5rem 2rem;text-align:center;
}
.qxp .cta__title{font-size:1.4rem;line-height:1.25;max-width:none;margin:0 auto;letter-spacing:-.01em;}
.qxp .cta__body{
  margin:.6rem auto 0;max-width:440px;font-size:.95rem;line-height:1.6;
}
.qxp .cta__btn{
  margin-top:1.5rem;padding:13.6px 32px;font-size:15px;font-weight:700;
  border-radius:var(--qxp-radius-pill);
}
.qxp .cta__note{margin:22px auto 0;max-width:56ch;}
@media (max-width:640px){.qxp .cta{padding:2rem 1.25rem;}}
