/* White, linked research tables. No window chrome; numbers live in a separate fixture file. */
.research-page .performance-section{position:relative;min-height:calc(var(--page-viewport,100svh) - 64px);padding-block:54px 14px;display:flex;flex-direction:column;scroll-margin-top:0}
.performance-return{position:absolute;inset:14px 0 auto;display:flex;justify-content:center}
.performance-content{width:100%;margin-block:auto}
.performance-heading{display:flex;justify-content:space-between;align-items:end;gap:24px;margin-bottom:23px}
.performance-heading .section-kicker{font-size:11px;margin-bottom:5px}
.performance-heading h2{font-size:31px;font-weight:600;letter-spacing:-.025em;line-height:1.25;color:#263c2d}
.performance-heading h2>span{color:#286447}
.performance-heading p{font-size:13px;color:#78857c;margin-top:6px}
.performance-tabs{display:flex;gap:24px;align-self:end;border-bottom:1px solid #dce5de}
.performance-tabs button{position:relative;padding:12px 0;background:none;white-space:nowrap;font:500 13px var(--display);color:#87918a;transition:color .2s}
.performance-tabs button>span{font-size:10px;margin-right:7px;opacity:.7}
.performance-tabs button:after{content:'';position:absolute;bottom:-1px;left:0;right:0;height:2px;background:#286447;transform:scaleX(0);transform-origin:left;transition:transform .3s}
.performance-tabs button[aria-selected=true]{color:#286447}.performance-tabs button[aria-selected=true]:after{transform:scaleX(1)}
.performance-controls{display:flex;align-items:center;gap:18px;min-height:48px;margin-bottom:16px}
.perf-select-label{display:flex;align-items:center;gap:9px;font:400 11px var(--display);color:#7c8a80}
.perf-select-label select{font:500 12px var(--display);color:#395e4c;border:1px solid #dce6df;border-radius:7px;background:#fff;padding:9px 28px 9px 11px;max-width:205px;cursor:pointer}
.perf-runtime-value{display:inline-flex;align-items:center;gap:8px;color:var(--text);font:500 calc(12 * var(--ui,1px))/1.4 var(--display)}
.perf-runtime-value img{display:block;width:18px;height:18px;object-fit:contain;flex-shrink:0}
.perf-context{font:400 11px var(--display);color:#8a978e;white-space:nowrap}
.perf-metrics{margin-left:auto;display:flex;padding:3px;gap:2px;border-radius:8px;background:#edf2ee}
.perf-metrics button{background:transparent;color:#7b8a80;border-radius:6px;padding:7px 12px;font:500 11px var(--display);transition:color .2s,background .2s,box-shadow .2s}
.perf-metrics button[aria-pressed=true]{background:#fff;color:#286447;box-shadow:0 1px 4px #2c4a3510}
.perf-metric-arrow{display:inline-block;margin-left:6px;color:#50836d;font-size:12px;line-height:1}
.performance-panels{display:grid;grid-template-columns:1fr 1.05fr;gap:22px}
.perf-card{min-width:0;background:#fff;border:1px solid #dfe7e1;border-radius:13px;box-shadow:0 5px 24px #26473704;height:clamp(300px,calc(var(--page-viewport,100svh) - 390px),435px);display:flex;flex-direction:column;overflow:hidden}
.perf-card-heading{display:flex;justify-content:space-between;align-items:center;padding:23px 24px 19px;gap:12px}
.perf-eyebrow{display:block;font:500 9px var(--display);letter-spacing:.12em;color:#8d9c91;margin-bottom:5px}
.perf-card-heading h3{font:500 18px/1.35 var(--display);letter-spacing:-.02em;color:#344d3d}
.perf-table-count{font:400 10px var(--display);color:#8c9b90;white-space:nowrap}
.perf-direction{display:inline-flex;flex-shrink:0;align-items:center;gap:7px;padding:6px 10px 6px 7px;border:1px solid #dce9e0;border-radius:24px;background:#f0f6f1;color:#356c52;white-space:nowrap}
.perf-direction-icon{display:grid;place-items:center;width:25px;height:25px;border-radius:50%;background:#deece2;color:#286447}
.perf-direction-icon svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round;transition:transform .35s cubic-bezier(.2,.7,.3,1)}
.perf-direction[data-direction=lower] svg{transform:rotate(180deg)}
.perf-direction[data-direction=both] svg{transform:rotate(225deg)}
.perf-direction-copy{display:flex;flex-direction:column;gap:1px;font:400 9px/1.2 var(--display)}
.perf-direction-copy strong{font-size:11px;font-weight:600}
.perf-card-heading>div{min-width:0}
.perf-table-count{border:1px solid #e4ece6;border-radius:20px;padding:5px 9px}
.perf-table-wrap{flex:1;display:flex;align-items:center;padding:0 15px;overflow-x:auto}
.perf-table{width:100%;border-collapse:separate;border-spacing:0;font:400 12px var(--display);font-variant-numeric:tabular-nums;text-align:right}
.perf-table th{font-size:10px;font-weight:400;color:#8b998f;padding:10px 10px;border-bottom:1px solid #e6ece7;white-space:nowrap}
.perf-table th:first-child{text-align:left}
.perf-table th button{display:inline-flex;gap:6px;align-items:center;justify-content:flex-end;background:none;padding:0;font:inherit;color:inherit}
.perf-table th[aria-sort] button{color:#286447}
.perf-table td{padding:15px 10px;border-bottom:1px solid #edf1ed;white-space:nowrap;color:#748279;transition:background .22s,color .22s}
.perf-table tbody th{padding:0 0 0 10px;font-size:12px;border-bottom:1px solid #edf1ed}
.perf-table tbody tr:last-child td,.perf-table tbody tr:last-child th{border-bottom:0}
.perf-table tbody th button{display:flex;align-items:center;justify-content:flex-start;gap:9px;min-height:47px;width:100%;font-size:12px;color:#536258;text-align:left}
.perf-method-dot{flex-shrink:0;width:6px;height:6px;background:#afbfb4;border-radius:50%}
.perf-table tr[data-method=macaq] .perf-method-dot{background:#286447}
.perf-table tr[data-method=macaq] th button{color:#286447;font-weight:600}
.perf-table tr[data-method=macaq] td:nth-last-child(-n+2){font-weight:600;color:#286447}
.perf-table tr.is-active>*{background:#edf5f0;color:#286447}.perf-table tr.is-active>:first-child{border-radius:6px 0 0 6px}.perf-table tr.is-active>:last-child{border-radius:0 6px 6px 0}
.perf-table tr.is-hovered:not(.is-active)>*{background:#f5f8f5}
.perf-table-bottom{display:flex;gap:8px;align-items:center;margin:12px 24px 0;padding:15px 0 18px;border-top:1px solid #edf1ed;font-size:10px;color:#8c9b90}
.perf-selection-dot{width:5px;height:5px;border-radius:50%;background:#78a38c}
.perf-plot{position:relative;min-height:155px;flex:1;margin:0 24px 14px;display:flex;flex-direction:column;justify-content:center;gap:13px}
.perf-bar{display:grid;grid-template-columns:69px minmax(0,1fr) 47px;align-items:center;gap:12px;padding:0;background:none;text-align:left;color:#8b988e;font:400 11px var(--display);font-variant-numeric:tabular-nums;transition:opacity .2s,color .2s}
.perf-bar-track{height:24px;background:repeating-linear-gradient(90deg,#f3f6f3 0 1px,transparent 1px 25%);border-left:1px solid #e5ece7;display:block}
.perf-bar-fill{display:block;height:100%;width:var(--bar-width);border-radius:0 4px 4px 0;background:#c3cfc6;transition:width .65s cubic-bezier(.2,.7,.3,1),background .25s,box-shadow .25s}
.perf-bar[data-method=macaq] .perf-bar-fill{background:linear-gradient(90deg,#286447,#75a992)}
.perf-bar.is-active,.perf-bar.is-hovered{color:#286447}.perf-bar.is-active .perf-bar-fill,.perf-bar.is-hovered .perf-bar-fill{box-shadow:0 0 0 3px #28644710}
.perf-bar-value{text-align:right}.perf-bar[data-method=macaq]{color:#286447;font-weight:600}
.perf-axis{display:flex;justify-content:space-between;margin-left:81px;margin-right:59px;font:400 9px var(--display);color:#a0aba3}
.perf-axis-guide{font-weight:500;color:#46785d}
.perf-insight{display:flex;align-items:center;gap:15px;margin:0 24px;padding:16px 0 20px;border-top:1px solid #e6ede7;min-height:89px}
.perf-insight>div{display:flex;flex-direction:column;min-width:70px}
.perf-insight>div>span{font:500 10px var(--display);color:#7e9587;margin-bottom:2px}
.perf-insight strong{font:500 32px/1 var(--display);letter-spacing:-.04em;color:#286447}
.perf-insight p{font:400 12px/1.55 var(--display);color:#74887b;max-width:155px;text-wrap:balance}
.perf-insight-detail{margin-left:auto;font:400 10px var(--display);color:#91a096;text-align:right}
.perf-footnote{display:flex;justify-content:space-between;gap:16px;padding:11px 2px 0;font:400 10px var(--display);color:#91a094}
.performance-navigation{display:flex;justify-content:center;margin-top:17px;min-height:32px;align-items:center}
.perf-scatter{position:relative;flex:1;min-height:155px;margin:8px 27px 33px 43px;border-left:1px solid #dce6df;border-bottom:1px solid #dce6df;background:radial-gradient(ellipse at bottom left,#dceee180,transparent 62%),repeating-linear-gradient(0deg,transparent 0 calc(25% - 1px),#eff3ef calc(25% - 1px) 25%),repeating-linear-gradient(90deg,transparent 0 calc(25% - 1px),#eff3ef calc(25% - 1px) 25%)}
.perf-scatter:before{content:'';position:absolute;left:-1px;bottom:-1px;width:16px;height:16px;border-left:2px solid #78a38c;border-bottom:2px solid #78a38c;border-radius:0 0 0 3px;pointer-events:none}
.perf-scatter-point{position:absolute;left:var(--point-x);bottom:var(--point-y);transform:translate(-50%,50%);background:none;min-width:22px;min-height:22px;padding:5px;z-index:1}
.perf-scatter-point i{display:block;width:9px;height:9px;background:#a7b9b0;border-radius:50%;transition:box-shadow .2s,background .2s}
.perf-scatter-point span{position:absolute;left:22px;top:0;font:400 10px var(--display);color:#8b9a90;white-space:nowrap}
.perf-scatter-point[data-method=macaq] i{background:#286447;width:11px;height:11px}
.perf-scatter-point[data-method=macaq] span{color:#286447;font-weight:600;top:15px}
.perf-scatter-point.is-active i,.perf-scatter-point.is-hovered i{box-shadow:0 0 0 5px #28644718;background:#286447}
.perf-scatter-point.is-active span{color:#286447}
.perf-scatter-point.is-right span{left:auto;right:22px}
.perf-scatter-x,.perf-scatter-y{position:absolute;font:400 9px var(--display);color:#8fa094;white-space:nowrap}
.perf-scatter-x{bottom:-34px;left:50%;transform:translateX(-50%);text-align:center;line-height:1.25}.perf-scatter-y{left:-38px;top:50%;writing-mode:vertical-rl;transform:translateY(-50%) rotate(180deg);text-align:center;line-height:1.25}
.perf-scatter-axis-hint{display:block;font-size:8px;font-weight:500;color:#46785d}
.perf-scatter-tick{position:absolute;font:400 9px var(--display);color:#a0aba3;transform:translate(-50%,0);bottom:-13px}
.perf-scatter-tick-y{left:-9px;bottom:var(--tick-y);transform:translate(-100%,50%)}
.performance-section [data-performance-reveal]{opacity:1;translate:0 0;transition:opacity .6s ease var(--entry-delay,0s),translate .8s cubic-bezier(.16,1,.3,1) var(--entry-delay,0s)}
.performance-controls{--entry-delay:.07s}.perf-table-card{--entry-delay:.13s}.perf-plot-card{--entry-delay:.23s}.perf-footnote{--entry-delay:.32s}.performance-navigation{--entry-delay:.4s}
.performance-section.is-entry-pending [data-performance-reveal]{opacity:0;translate:0 26px;transition:none}
.performance-section select:focus-visible,.performance-section button:focus-visible{outline:2px solid #528c73;outline-offset:3px}
@media(min-width:901px) and (max-height:720px){.performance-heading{margin-bottom:12px}.performance-heading p{font-size:12px}.performance-controls{margin-bottom:10px;min-height:40px}.perf-card-heading{padding:16px 20px 12px}.perf-card-heading h3{font-size:16px}.perf-table td{padding-block:12px}.perf-table tbody th button{min-height:42px}.perf-table-bottom{padding-bottom:14px}.perf-insight{padding-block:10px;min-height:70px}.perf-bar-track{height:20px}.perf-plot{gap:10px}.perf-card{height:285px}.perf-table tbody th button{min-height:35px}.perf-table td{padding-block:9px}.perf-table-bottom{margin-top:3px;padding-block:8px}.perf-plot{min-height:130px}.perf-scatter{min-height:100px}.perf-footnote{padding-top:8px}}
@media(max-width:1100px){.performance-tabs{gap:17px}.perf-context{display:none}.performance-controls{gap:12px}.perf-card-heading{padding-inline:18px}.perf-table-wrap{padding-inline:8px}.perf-table th,.perf-table td{padding-inline:7px}.perf-plot{margin-inline:18px}.perf-insight{margin-inline:18px;gap:10px}.perf-insight-detail{max-width:65px}.perf-table-count{display:none}}
@media(max-width:900px){.performance-heading{flex-wrap:wrap;gap:15px}.performance-tabs{width:100%;gap:25px}.performance-panels{grid-template-columns:1fr}.perf-card{height:350px}.performance-controls{flex-wrap:wrap;row-gap:12px;margin-block:14px 17px}.perf-metrics{margin-left:auto}.perf-card-heading h3{font-size:18px}.perf-table td{padding-block:15px}.perf-table tbody th button{min-height:47px}.perf-table-count{display:inline}.performance-content{margin-block:12px}.perf-insight-detail{max-width:none}}
@media(max-width:600px){.research-page .performance-section{min-height:calc(var(--page-viewport,100svh) - 57px)}.performance-heading h2{font-size:27px}.performance-heading p{font-size:12px}.performance-tabs{justify-content:space-between;gap:10px}.performance-tabs button{font-size:12px}.performance-tabs button>span{font-size:9px;margin-right:5px}.perf-select-label{font-size:10px;gap:6px}.perf-select-label select{font-size:11px;padding:8px 4px;max-width:158px}.perf-metrics{width:100%;margin-left:0}.perf-metrics button{flex:1}.perf-table{font-size:11px}.perf-table th{font-size:9px}.perf-table tbody th button{font-size:11px;gap:6px;min-height:39px}.perf-table td{padding-block:10px}.perf-card{height:330px}.perf-card-heading{padding:18px 15px 14px}.perf-card-heading h3{font-size:16px}.perf-table-bottom{margin-inline:17px;margin-top:8px;padding-block:12px 14px}.perf-plot{margin-inline:16px}.perf-insight{margin-inline:16px}.perf-insight strong{font-size:29px}.perf-insight p{font-size:11px}.perf-insight-detail{font-size:9px}.perf-direction{font-size:9px}.perf-footnote{font-size:9px;gap:10px}.perf-footnote>span:last-child{text-align:right}.perf-bar{grid-template-columns:61px minmax(0,1fr) 40px;gap:8px}.perf-axis{margin-left:69px;margin-right:48px}}
@media(prefers-reduced-motion:reduce){.performance-section *, .performance-section [data-performance-reveal]{transition:none!important}.performance-section.is-entry-pending [data-performance-reveal]{opacity:1;translate:none}}
/* Measured datasets use independent model, runtime and workload selections. */
.performance-controls{flex-wrap:wrap;gap:12px 16px}
.performance-controls [hidden]{display:none!important}
.perf-select-label select{max-width:240px}
.perf-table-wrap{align-items:flex-start;overflow:auto}
.perf-table{margin-block:auto}
.perf-table thead{position:sticky;top:0;background:#fff;z-index:2}
.perf-table td,.perf-bar-value{font-variant-numeric:tabular-nums}
.perf-plot[data-kind=bars]{overflow-y:auto;justify-content:center}
.perf-bar{grid-template-columns:105px minmax(0,1fr) 80px;flex-shrink:0}
.perf-bar-name small{display:block;font-size:9px;opacity:.7;margin-top:3px}
.perf-axis{margin-left:114px;margin-right:88px;flex-shrink:0}
.perf-scatter-point span{opacity:1;transition:color .2s,text-shadow .2s; text-shadow:0 1px 3px #fff,0 0 5px #fff}
.perf-scatter-point.is-active,.perf-scatter-point.is-hovered,.perf-scatter-point:focus-visible{z-index:3}
.perf-scatter-point.is-active span,.perf-scatter-point.is-hovered span,.perf-scatter-point:focus-visible span{color:#286447;font-weight:700;text-shadow:0 0 5px #fff,0 0 9px #fff,0 1px 3px #fff}
.perf-evidence{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-top:16px;font:400 11px/1.7 var(--display);color:var(--muted)}
.perf-evidence details{max-width:850px}
.perf-evidence summary{cursor:pointer;color:var(--text)}
.perf-evidence p{margin-top:10px;max-width:100ch}
.perf-evidence small{display:block;margin-top:10px;font-size:10px;overflow-wrap:anywhere}
.perf-evidence>a{white-space:nowrap;text-decoration:underline;text-underline-offset:3px}
@media(max-width:600px){.perf-evidence{flex-direction:column}.perf-bar{grid-template-columns:80px minmax(0,1fr) 70px;gap:7px}.perf-axis{margin-left:87px;margin-right:77px}.perf-select-label select{max-width:215px}.perf-metrics{overflow-x:auto}.perf-metrics button{white-space:nowrap}.perf-card-heading h3{font-size:15px}.performance-tabs{gap:18px;justify-content:flex-start}.perf-table th,.perf-table td{padding-inline:7px}.perf-insight strong{font-size:27px}}

.perf-plot[data-kind=bars]{overflow-x:hidden;min-width:0}
.perf-plot[data-kind=bars][data-many=true]{justify-content:flex-start;padding-top:8px}
.perf-bar{min-width:0;width:100%;box-sizing:border-box}
.perf-bar-name,.perf-bar-track{min-width:0}
.perf-bar-name{overflow-wrap:anywhere}
.perf-bar-value{font-size:10px;white-space:nowrap}

.performance-panels[hidden],.perf-footnote[hidden],.perf-metrics[hidden],.perf-empty[hidden]{display:none}
.perf-empty{padding:48px 28px;border:1px solid #e5e5e5;border-radius:14px;background:#fff;color:#555;text-align:center;line-height:1.6}

.perf-method-cell{display:flex;align-items:center;gap:6px;padding-right:5px}
.perf-table tbody th .perf-method-cell>button{width:auto;flex:1;min-width:0}
.perf-source-link{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;width:28px;min-height:32px;opacity:.75;border-radius:5px;transition:opacity .2s,background .2s}
.perf-source-link img{display:block}
.perf-source-link:hover{opacity:1;background:#779b5b14}
.perf-source-link:focus-visible{opacity:1;outline:2px solid var(--forest-accent,#286447);outline-offset:2px}
@media(prefers-reduced-motion:reduce){.perf-source-link{transition:none}}

/* Reserve a readable gutter for numeric quality ticks and the axis title. */
.performance-section .perf-scatter{margin-left:calc(78 * var(--ui,1px))}
.performance-section .perf-scatter-y{left:calc(-78 * var(--ui,1px))}
.performance-section .perf-scatter-tick-y{position:absolute;left:calc(-9 * var(--ui,1px));bottom:var(--tick-y);transform:translate(-100%,50%);font:400 calc(9 * var(--ui,1px))/1.2 var(--display);color:#809187;font-variant-numeric:tabular-nums;white-space:nowrap}

/* Separate dense point labels on touch screens; dots retain measured positions. */
.perf-scatter .perf-scatter-leaders{position:absolute;inset:0;width:100%;height:100%;overflow:visible;pointer-events:none;fill:none;stroke:#c7d7cc;stroke-width:1;z-index:0}
.perf-scatter-leaders path.is-active,.perf-scatter-leaders path.is-hovered{stroke:#6b967b}

/* Small touch screens scroll normally, so the chart can grow with its labels. */
@media(max-width:600px),(hover:none) and (max-height:500px){
  .performance-section .perf-table-card{height:auto;min-height:0}
  .perf-table-card .perf-table-wrap{flex:none;overflow-x:auto;scrollbar-width:thin}
  .performance-section .perf-plot-card{height:auto;min-height:360px}
  .perf-plot-card .perf-card-heading{flex-shrink:0}
  .perf-plot-card .perf-plot{flex:0 0 auto;min-height:0}
  .perf-plot-card .perf-scatter{flex:0 0 auto;height:180px;min-height:180px;margin-bottom:58px}
  .perf-plot-card .perf-insight{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px 12px;flex-shrink:0;min-height:0}
  .perf-plot-card .perf-insight>div{grid-column:1;grid-row:1;min-width:0}
  .perf-plot-card .perf-insight strong{white-space:nowrap}
  .perf-plot-card .perf-insight-detail{grid-column:2;grid-row:1;align-self:end;margin:0}
  .perf-plot-card .perf-insight>p{grid-column:1/-1;grid-row:2;max-width:none;text-wrap:pretty}
}
