.gravity-lab,.lab-entry,.lab-set-panel{
  --lab-bg:#0a1425;--lab-ink:#eff7ff;--lab-soft:#bacce1;--lab-line:#2c4663;--lab-cyan:#83eff7;--lab-gold:#f4cf8a;
  color:var(--lab-ink);border:1px solid var(--lab-line);border-radius:18px;
  background:radial-gradient(ellipse at 84% 0%,#142e4e 0%,transparent 58%),var(--lab-bg);
  padding:clamp(16px,3.5vw,28px);min-width:0;
}
.gravity-lab h2,.lab-entry h2,.lab-set-panel h3{color:var(--lab-ink);margin:0 0 16px;letter-spacing:-.02em}
.gravity-lab h2{font-size:clamp(1.17rem,3vw,1.5rem);line-height:1.35}
.lab-entry,.lab-set-panel{margin:18px 0}
.lab-entry{display:flex;align-items:center;justify-content:space-between;gap:16px}
.lab-entry h2,.lab-set-panel h3{margin:5px 0;font-size:1.25rem}
.lab-entry p,.lab-set-panel p,.gravity-lab p,.gravity-lab small{color:var(--lab-soft);line-height:1.55}
.lab-entry p,.lab-set-panel p{margin:0}
.lab-kicker,.lab-sort-top{display:flex;justify-content:space-between;align-items:center;gap:10px;flex-wrap:wrap;color:var(--lab-cyan);font-size:.8rem;font-weight:700}
.lab-kicker span:last-child strong{color:var(--lab-gold)}
.lab-rounds{padding:0;display:grid;grid-auto-flow:column;grid-auto-columns:minmax(0,1fr);gap:5px;margin:14px 0 18px;list-style:none;max-width:420px}
.lab-rounds li{border-top:2px solid var(--lab-line);color:var(--lab-soft);font-size:.75rem;padding-top:4px}
.lab-rounds li.is-current{border-color:var(--lab-cyan);color:var(--lab-cyan);font-weight:700}
.lab-rounds li.is-past{border-color:var(--lab-gold)}
.lab-button{
  appearance:none;display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:44px;min-width:0;
  padding:9px 13px;border:1px solid var(--lab-line);border-radius:10px;color:var(--lab-ink);background:#102139;
  font:inherit;font-size:.88rem;font-weight:640;line-height:1.35;cursor:pointer;
}
.lab-button:not(:disabled):hover,.lab-button[aria-pressed="true"]{border-color:var(--lab-cyan);background:#17314d}
.lab-button[aria-pressed="true"]{color:var(--lab-cyan)}
.lab-button:focus-visible{outline:2px solid var(--lab-cyan);outline-offset:3px}
.lab-button:disabled{opacity:.65;cursor:default}
.lab-button.lab-primary{background:var(--lab-cyan);color:#091827;border-color:var(--lab-cyan)}
.lab-button.lab-primary:not(:disabled):hover{background:#bcfbff;color:#091827}
.lab-button.is-match,.lab-button.is-picked{border-color:var(--lab-cyan);color:var(--lab-cyan)}
.lab-button.is-miss{border-color:#ffbd9c;color:#ffcfb7}
.lab-actions,.lab-tiles{display:flex;flex-wrap:wrap;gap:8px;margin-top:14px}
.lab-actions:empty{display:none}
.lab-word-slots{display:flex;flex-wrap:wrap;gap:4px;margin:0 0 8px}
.lab-word-slots span{min-width:clamp(21px,5vw,32px);text-align:center;padding:6px 2px;border-bottom:2px solid var(--lab-cyan);color:var(--lab-cyan);font-weight:750}
.lab-tile{min-width:44px;font-size:1.03rem}
.lab-hint{margin-top:13px;font-size:.88rem;color:var(--lab-gold)}
.lab-hint summary{cursor:pointer}
.lab-status{font-size:.9rem;margin:10px 0}
.lab-status strong{color:var(--lab-cyan)}
.lab-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:6px;width:min(100%,328px)}
.lab-cell{aspect-ratio:1.25;position:relative}
.lab-cell:disabled,.lab-pair:disabled{opacity:1}
.lab-cell svg{width:24px;height:24px}
.lab-cell.is-star{color:var(--lab-gold)}
.lab-cell strong{color:var(--lab-cyan)}
.lab-pairs{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:7px}
.lab-pair{min-height:110px;flex-direction:column;padding:7px;overflow-wrap:anywhere}
.lab-pair span{font-size:1.25rem;color:var(--lab-cyan)}
.lab-pair small{font-size:.69rem}
.lab-pair.is-open{background:#163052}
.lab-sequence-slots{list-style:none;padding:0;display:grid;gap:5px}
.lab-sequence-slots li{display:flex;gap:10px;padding:8px 10px;min-height:42px;border:1px solid var(--lab-line);border-radius:8px;color:var(--lab-soft)}
.lab-sequence-slots b{color:var(--lab-gold)}
.lab-sequence{display:grid;gap:6px}
.lab-step{justify-content:flex-start;text-align:left}
.lab-sort-card{font-size:1.12rem;font-weight:650;padding:15px 0}
.lab-sort-options{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.lab-timer{width:100%;height:8px;accent-color:var(--lab-gold);margin-top:10px}
@media(max-width:580px){.lab-entry{align-items:flex-start;flex-direction:column}.lab-pairs{grid-template-columns:repeat(2,minmax(0,1fr))}.lab-pair{min-height:84px}}
@media(max-width:350px){.lab-sort-options{grid-template-columns:1fr}.lab-grid{gap:4px}}
