:root{--bg:#f6f7f9;--panel:#fff;--text:#1d2330;--muted:#5d6677;--border:#dde1e8;--accent:#2c5fa8;--pale:#e8f0fb;--control:#2c5fa8;--exp:#c46b32;--error:#b2182b}
*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);font:14px/1.5 system-ui,-apple-system,"Segoe UI",Roboto,sans-serif}a{color:var(--accent);text-underline-offset:3px}button,input,select{font:inherit}button,a,input,summary{touch-action:manipulation}button{cursor:pointer}button:disabled{opacity:.5;cursor:default}[hidden]{display:none!important}:focus-visible{outline:3px solid #6595d6;outline-offset:3px}input:focus-visible{outline-offset:1px}.skip-link{position:fixed;top:-70px;left:12px;background:#fff;padding:10px;z-index:20}.skip-link:focus{top:8px}
.topbar{display:flex;align-items:stretch;gap:30px;padding:0 28px;background:#1d2330;color:#fff}.brand{display:flex;align-items:center;gap:12px;color:#fff;text-decoration:none;font-size:20px;font-weight:700;letter-spacing:-.5px}.brand span{font-size:11px;letter-spacing:0;font-weight:400;color:#aeb9cc;border-left:1px solid #475061;padding-left:12px}.topbar nav{display:flex;gap:4px;align-items:flex-end;padding-top:12px}.topbar nav a{padding:12px 17px 13px;border-radius:6px 6px 0 0;color:#c9d1e0;text-decoration:none;white-space:nowrap;font-size:13px}.topbar nav a:hover{background:#2b3343;color:#fff}.topbar nav a[aria-current]{background:var(--bg);color:var(--text);font-weight:600}.intro{display:flex;align-items:center;justify-content:space-between;gap:24px;max-width:1600px;margin:auto;padding:30px 28px 24px}.eyebrow{font-size:10px;font-weight:700;letter-spacing:.12em;color:var(--muted);margin:0 0 7px}h1{font-size:25px;letter-spacing:-.65px;line-height:1.25;margin:0 0 8px}h2{font-size:15px;margin:0 0 13px;letter-spacing:-.15px}h3{font-size:11px;font-weight:650;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);margin:18px 0 8px}p{margin:8px 0}.sub{color:var(--muted);margin:0;font-size:13px;max-width:790px}main{max-width:1600px;margin:auto;padding:0 28px 24px}.workspace{display:grid;grid-template-columns:350px minmax(0,1fr);gap:20px;align-items:start}.controls,.panel{background:var(--panel);border:1px solid var(--border);border-radius:8px}.controls{padding:0 18px 6px}.control-section{padding:17px 0;border-bottom:1px solid var(--border)}.control-section:last-child{border:0}.section-heading{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:12px}.section-heading h2{margin:0}.group-dot{display:inline-block;width:8px;height:8px;border-radius:50%;background:var(--control);margin-right:8px}.group-dot.exp{background:var(--exp)}.field{display:flex;justify-content:space-between;align-items:center;gap:8px;margin:8px 0}.field label,.field-label{font-size:12px;color:#424c5d}.field input[type=number]{width:91px;text-align:right;padding:5px 7px;border:1px solid var(--border);border-radius:5px;background:white;color:var(--text);font-variant-numeric:tabular-nums}.field input[aria-invalid=true]{border-color:var(--error);background:#fff6f7}.range{display:flex;align-items:center;gap:5px}.range input[type=number]{width:64px}.range span{color:var(--muted);font-size:11px}.hint{font-size:11px;line-height:1.5;color:var(--muted);margin:6px 0}.group-note{border-left:2px solid var(--border);padding-left:9px;margin-top:11px}.beta-params{margin-top:11px;padding-top:9px;border-top:1px solid #edf0f4}.beta-params summary{color:var(--accent);cursor:pointer;font-size:11px}.shape-fields{display:flex;gap:15px}.shape-fields .field{flex:1}.shape-fields input[type=number]{width:85px}.help-label{cursor:help;text-decoration:underline dotted #9ba6b8;text-underline-offset:3px}.radio-list{display:grid;gap:6px;margin:12px 0 0}.radio-list label{display:flex;align-items:center;gap:8px;cursor:pointer;font-size:12px}.radio-list input{margin:0;accent-color:var(--accent);width:14px;height:14px}.test-params{padding:8px 10px;margin-top:12px;background:var(--bg);border-radius:5px}.test-params .radio-list{display:flex;gap:18px;margin:0 0 8px}.button{border:1px solid var(--border);background:#fff;border-radius:5px;padding:6px 10px;font-size:11px;color:var(--text)}.button:hover:enabled{background:#eef2f8;border-color:#b6c5dc}.reset{font-size:11px;color:var(--accent);border:0;background:transparent;padding:0}.results-column{display:grid;gap:16px;min-width:0}.panel{padding:20px}.panel-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:10px}.panel-head h2{margin:0 0 3px}.panel-head p{margin:0}.chart{width:100%;height:255px}.chart-panel{padding-bottom:9px}.chart-note{margin:0 0 3px}.plot-legend{display:flex;gap:18px;color:var(--muted);font-size:11px}.legend-line{display:inline-block;width:19px;border-top:2px solid var(--control);vertical-align:middle;margin-right:5px}.legend-line.exp{border-color:var(--exp)}.status-box{border:1px solid #e7c2c7;color:#852338;background:#fff6f7;padding:12px 15px;border-radius:6px;font-size:12px}.warning{background:#fff9ed;border-color:#ead8ac;color:#75521c}.result-meta{display:flex;justify-content:space-between;align-items:center;gap:12px;margin:15px 0 12px;color:var(--muted);font-size:11px}.legend-chip{display:inline-block;width:12px;height:12px;background:var(--pale);border:1px solid #acc5e8;vertical-align:-2px;margin-right:5px}.table-scroll{overflow:auto;max-height:600px;border:1px solid var(--border);border-radius:5px}.result-table{border-collapse:separate;border-spacing:0;width:100%;font-variant-numeric:tabular-nums;font-size:12px}.result-table caption{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}.result-table th,.result-table td{padding:11px 10px;min-width:58px;text-align:center;border-right:1px solid #e5e9ef;border-bottom:1px solid #e5e9ef;white-space:nowrap}.result-table th{font-weight:600;background:#f6f7f9;color:#4f5b6f}.result-table thead th{position:sticky;top:0;z-index:2}.result-table th:first-child{position:sticky;left:0;z-index:1;text-align:left;min-width:108px}.result-table thead th:first-child{z-index:3}.result-table tr:last-child>*{border-bottom:0}.result-table tr>*:last-child{border-right:0}.result-table td.meets{background:var(--pale);color:#214f8e;font-weight:650}.result-table td:hover{box-shadow:inset 0 0 0 2px #8daed9}.table-axes{font-size:11px;color:var(--muted);margin:0 0 7px}.result-summary{margin-top:14px;font-size:12px;color:#42516a;background:#f5f8fc;border-radius:5px;padding:10px 12px}.result-summary:empty{display:none}.footnote{color:var(--muted);font-size:11px;margin:12px 0 0}.method-note{padding:16px 20px}.method-note summary{font-size:12px;font-weight:600;cursor:pointer}.method-note p{color:var(--muted);font-size:12px}.guide{max-width:1100px;margin:0 auto;display:grid;gap:18px}.guide p,.guide li{font-size:13px;line-height:1.7}.guide li{margin-bottom:8px}.guide ol{padding-left:20px;margin-bottom:0}.guide-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px}.reference-table{width:100%;border-collapse:collapse;font-size:12px}.reference-table caption{text-align:left;font-size:11px;color:var(--muted);margin-bottom:6px}.reference-table td,.reference-table th{border-bottom:1px solid var(--border);text-align:left;padding:5px 0}.reference-table td:last-child,.reference-table th:last-child{text-align:right}footer{max-width:1600px;margin:auto;display:flex;justify-content:space-between;gap:16px;padding:0 28px 24px;font-size:11px;color:var(--muted)}.footer-divider{margin:0 8px;color:#b6bfcd}.empty{padding:22px 0;color:var(--muted);font-size:13px}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}
@media(min-width:1500px){.workspace{grid-template-columns:370px minmax(0,1fr)}}
@media(max-width:1050px){.brand span{display:none}.topbar{gap:18px;padding:0 20px}.intro,main{padding-left:20px;padding-right:20px}.workspace{grid-template-columns:315px minmax(0,1fr);gap:16px}.panel{padding:16px}.topbar nav a{padding-left:12px;padding-right:12px}.result-meta{align-items:flex-start;flex-direction:column;gap:5px}h1{font-size:23px}}
@media(max-width:760px){.topbar{padding:12px 16px 0;gap:12px;flex-wrap:wrap}.brand{font-size:20px}.topbar nav{order:1;width:100%;padding-top:0}.topbar nav a{padding:10px 13px;font-size:12px}.intro{padding:22px 16px 18px}h1{font-size:23px;max-width:350px}.sub{font-size:12px}main{padding:0 16px 22px}.workspace{grid-template-columns:minmax(0,1fr)}.controls{padding:0 16px}.field label,.field-label,.radio-list label{font-size:13px}.field input[type=number]{font-size:16px;width:105px}.range input[type=number]{width:75px}.shape-fields input[type=number]{width:100px}.control-section{padding:16px 0}.guide-grid{grid-template-columns:1fr}.result-table th,.result-table td{padding:10px 9px}.button{padding:8px 11px}footer{padding:0 16px 20px;flex-direction:column;gap:5px}.chart{height:240px}.panel-head{gap:8px}.reset{padding:5px 0}.result-meta{font-size:11px}.table-scroll{max-height:430px}}
.results-column{grid-template-columns:minmax(0,1fr)}.panel{min-width:0}.chart{overflow:hidden}
.intro > :first-child { flex: 1; min-width: 0; }
.site-resources {
  flex: 0 0 290px;
  padding-left: 20px;
  border-left: 1px solid var(--border);
  text-align: right;
}
.site-resources nav { display: flex; justify-content: flex-end; flex-wrap: wrap; gap: 8px 18px; }
.site-resources a { font-size: 12px; text-decoration: none; white-space: nowrap; }
.site-resources a:hover { text-decoration: underline; }
.site-resources a span { margin-left: 4px; }
.site-resources p { margin: 8px 0 0; color: var(--muted); font-size: 11px; line-height: 1.5; }
@media(max-width:900px) {
  .intro { flex-wrap: wrap; gap: 14px; }
  .intro > :first-child { flex-basis: 100%; }
  .site-resources { flex-basis: 100%; padding: 12px 0 0; border-left: 0; border-top: 1px solid var(--border); text-align: left; }
  .site-resources nav { justify-content: flex-start; }
}
.result-tooltip {
  position: fixed;
  z-index: 20;
  width: min(290px, calc(100vw - 24px));
  padding: 14px 16px;
  border: 1px solid var(--border);
  border-radius: 10px;
  background: var(--panel);
  color: var(--text);
  box-shadow: 0 6px 24px rgba(29, 35, 48, .16);
  font-size: 12px;
  line-height: 1.5;
}
.tooltip-heading { margin: 0 0 10px; font-weight: 650; font-size: 13px; }
.result-tooltip dl { margin: 0; }
.result-tooltip dl > div { display: flex; justify-content: space-between; gap: 14px; margin: 6px 0; }
.result-tooltip dt { color: var(--muted); }
.result-tooltip dd { margin: 0; font-weight: 600; font-variant-numeric: tabular-nums; }
.tooltip-status { margin: 12px 0 0; padding-top: 10px; border-top: 1px solid var(--border); color: var(--muted); font-size: 11px; }
.tooltip-status.meets { color: var(--accent); font-weight: 600; }
.tooltip-status span { display: block; margin-top: 2px; color: var(--muted); font-weight: 400; }
@media(max-width:760px){.topbar nav a{flex:1;min-width:0;text-align:center;padding-left:6px;padding-right:6px;white-space:normal}.shape-fields{flex-wrap:wrap}}
@media print{.topbar,.intro,.controls,footer,.button,.method-note{display:none}.workspace{display:block}main{padding:0}.panel{break-inside:avoid}.table-scroll{max-height:none;overflow:visible}.result-table th{position:static!important}.chart-panel{display:none}}
