/* Phase 3C-1 visual refinement #3: restore the approved 3x2 dashboard matrix and final desktop proportions. */
@media (min-width:1281px){
  body.predictionLabPage .plDashboard{display:grid;grid-template-columns:minmax(0,1.03fr) minmax(0,.95fr) minmax(0,1fr);grid-template-rows:auto auto auto auto;gap:10px;align-items:stretch}
  body.predictionLabPage .plColumn{display:contents!important}
  body.predictionLabPage .plBuild{grid-column:1;grid-row:1}
  body.predictionLabPage .plFingerprint{grid-column:2;grid-row:1}
  body.predictionLabPage .plLocked{grid-column:3;grid-row:1}
  body.predictionLabPage .plDebrief{grid-column:1;grid-row:2}
  body.predictionLabPage .plControl{grid-column:2;grid-row:2}
  body.predictionLabPage .plBattles{grid-column:3;grid-row:2}
  body.predictionLabPage .plAchievements{grid-column:1/-1;grid-row:3}
  body.predictionLabPage .plInstrumentStrip{grid-column:1/-1;grid-row:4}
  body.predictionLabPage .plBuild,body.predictionLabPage .plFingerprint,body.predictionLabPage .plLocked,body.predictionLabPage .plDebrief,body.predictionLabPage .plControl,body.predictionLabPage .plBattles{height:100%;min-height:0}

  /* Build: dense, readable, and proportioned to the approved top row. */
  body.predictionLabPage .plBuild{padding:11px 12px}
  body.predictionLabPage .plBuild .plSectionTitle{margin-bottom:6px;align-items:center}
  body.predictionLabPage .plBuild .plSectionTitle>div{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap}
  body.predictionLabPage .plBuild .plSectionTitle h2{margin:0;font-size:1.13rem}
  body.predictionLabPage .plBuild .plSectionTitle p{font-size:.65rem;margin:0}
  body.predictionLabPage .plBuild .plDrawBar{padding:6px 8px;margin-bottom:6px;gap:7px;grid-template-columns:minmax(175px,1.15fr) auto auto;min-height:48px}
  body.predictionLabPage .plBuild .plDrawBar>div:first-child{flex-direction:row;align-items:center;gap:7px;min-width:0}
  body.predictionLabPage .plBuild .plGameToggle{flex:0 0 auto;padding:2px}
  body.predictionLabPage .plBuild .plGameToggle button{padding:4px 7px;font-size:.61rem}
  body.predictionLabPage .plBuild #pl-next-draw{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:.58rem}
  body.predictionLabPage .plBuild .plCountdown{gap:1px 4px;white-space:nowrap}
  body.predictionLabPage .plBuild .plCountdown b{font-size:.95rem}
  body.predictionLabPage .plBuild .plCountdown small{font-size:.44rem}
  body.predictionLabPage .plBuild .plLockTime strong{font-size:.65rem;white-space:nowrap}
  body.predictionLabPage .plBuild .plLockTime small{font-size:.5rem}
  body.predictionLabPage .plBuild .plTabs{margin-bottom:6px;gap:4px}
  body.predictionLabPage .plBuild .plTabs button{padding:5px 6px;font-size:.63rem}
  body.predictionLabPage .plBuild .plComposer{grid-template-columns:minmax(0,1fr) 118px}
  body.predictionLabPage .plBuild .plComposerMain,body.predictionLabPage .plBuild .plComposerBonus{padding:8px 9px}
  body.predictionLabPage .plBuild .plLabel{font-size:.61rem;margin-bottom:4px}
  body.predictionLabPage .plBuild .plBalls--composer{min-height:39px;gap:5px}
  body.predictionLabPage .plBuild .plBall{width:34px;height:34px;flex-basis:34px;font-size:.75rem}
  body.predictionLabPage .plBuild .plPin{width:13px;height:13px;font-size:7px}
  body.predictionLabPage .plBuild .plComposer small{display:block;font-size:.54rem;line-height:1.22;margin-top:4px}
  body.predictionLabPage .plBuild .plComplete{margin:6px 0 3px;gap:6px;align-items:center}
  body.predictionLabPage .plBuild .plComplete .plLabel{margin-bottom:1px}
  body.predictionLabPage .plBuild .plComplete small{font-size:.54rem;white-space:nowrap}
  body.predictionLabPage .plBuild .plCompleteActions{gap:5px}
  body.predictionLabPage .plBuild .plCompleteActions .plButton{padding:5px 7px;font-size:.6rem;white-space:nowrap}
  body.predictionLabPage .plBuild .plStrategyPrompt{font-size:.53rem;margin:2px 0 4px}
  body.predictionLabPage .plBuild .plStrategies{grid-template-columns:repeat(4,minmax(0,1fr));gap:4px}
  body.predictionLabPage .plBuild .plStrategies button{min-height:52px;padding:5px 6px}
  body.predictionLabPage .plBuild .plStrategies button:nth-child(5),body.predictionLabPage .plBuild .plStrategies button:nth-child(6){grid-column:span 2}
  body.predictionLabPage .plBuild .plStrategies button>span{line-height:1}
  body.predictionLabPage .plBuild .plStrategies button>span svg{width:15px;height:15px}
  body.predictionLabPage .plBuild .plStrategies button>b{font-size:.57rem;margin-top:2px;line-height:1.05}
  body.predictionLabPage .plBuild .plStrategies button>small{font-size:.45rem;margin-top:1px;line-height:1.08}
  body.predictionLabPage .plBuild .plBuildFooter{margin-top:5px;gap:5px}
  body.predictionLabPage .plBuild .plCurrentSet,body.predictionLabPage .plBuild .plControlToggle{padding:6px 7px;min-height:48px}
  body.predictionLabPage .plBuild .plCurrentSet .plBall{width:29px;height:29px;flex-basis:29px;font-size:.65rem}
  body.predictionLabPage .plBuild .plCurrentSet .plBalls{gap:4px;flex-wrap:nowrap}
  body.predictionLabPage .plBuild .plControlToggle b{font-size:.62rem}
  body.predictionLabPage .plBuild .plControlToggle small{font-size:.49rem;line-height:1.15}
  body.predictionLabPage .plBuild .plControlToggle i{width:34px;height:18px}
  body.predictionLabPage .plBuild .plControlToggle i:after{width:12px;height:12px}
  body.predictionLabPage .plBuild .plControlToggle input:checked+i:after{left:19px}
  body.predictionLabPage .plBuild .plSubmitRow{margin-top:5px;gap:5px}
  body.predictionLabPage .plBuild .plSubmitRow .plButton{padding:6px 9px;font-size:.62rem}
  body.predictionLabPage .plBuild .plSubmitRow small{font-size:.49rem;line-height:1.15;max-width:160px}

  /* Remove refinement-2 stretching; each grid row now owns equal panel height. */
  body.predictionLabPage .plDebrief,body.predictionLabPage .plControl,body.predictionLabPage .plBattles{display:block}
  body.predictionLabPage .plControl .plProgress{margin-top:0}
  body.predictionLabPage .plDebrief .plDebriefBottom{margin-top:0}
  body.predictionLabPage .plBattles .plBattleChart{margin-top:8px}
  body.predictionLabPage .plControl .plVersus{margin-top:0}
  body.predictionLabPage .plControl .plExperimentSummary{margin:7px 0}
  body.predictionLabPage .plControl .plProgress{padding:7px 8px}
  body.predictionLabPage .plControl .plProgressTop{gap:6px}
  body.predictionLabPage .plControl .plProgressMedal{width:32px;height:32px}
  body.predictionLabPage .plControl .plProgressTrack{margin:5px 0 0 39px;height:7px}
  body.predictionLabPage .plControl .plXpSources{margin-top:6px}
  body.predictionLabPage .plControl .plXpSources div{padding:6px 3px}
  body.predictionLabPage .plControl .plCenterNote{margin-top:6px!important}
  body.predictionLabPage .plBattles .plBattleTop>div{padding:7px}
  body.predictionLabPage .plBattles .plBattleChart{grid-template-columns:minmax(0,1fr) 132px;gap:7px}
  body.predictionLabPage .plBattles .plChartPlaceholder{min-height:145px}
  body.predictionLabPage .plBattles .plEmptyChart{min-height:118px}
  body.predictionLabPage .plBattles .plBattleChart aside{padding:7px}
  body.predictionLabPage .plBattles .plBattleChart aside p{margin:5px 0}
  body.predictionLabPage .plDebrief .plRewardStrip{margin:6px 0;gap:5px}
  body.predictionLabPage .plDebrief .plRewardStrip article{padding:6px 7px}
  body.predictionLabPage .plDebrief .plDebriefBottom{gap:5px}
  body.predictionLabPage .plDebrief .plDebriefBottom>div{padding:7px}

  /* Top-row panels fill the matrix without artificial internal voids. */
  body.predictionLabPage .plFingerprint,body.predictionLabPage .plLocked{display:flex;flex-direction:column}
  body.predictionLabPage .plFingerprint .plInsight{margin-top:auto}
  body.predictionLabPage .plLocked .plLockedGrid{flex:1;align-items:stretch}
  body.predictionLabPage .plLocked .plLockedGrid aside,body.predictionLabPage .plLocked .plSealed{height:100%}
}

/* Gauge cluster: clean instrument face, visible value, and needle beneath the readout. */
body.predictionLabPage .plGauge{isolation:isolate;background:conic-gradient(from 225deg,#2dcc7b 0 20%,#e3b336 20% 35%,#e16a4f 35% 47%,transparent 47% 100%);border:1px solid rgba(64,102,129,.35);box-shadow:inset 0 0 18px rgba(0,0,0,.24),0 0 0 1px rgba(74,118,146,.08)}
body.predictionLabPage .plGauge:before{inset:10px;background:radial-gradient(circle at 50% 42%,#0d2334 0,#081624 65%,#07131f 100%);border-color:#2b4d66;box-shadow:inset 0 0 18px rgba(0,0,0,.35)}
body.predictionLabPage .plGauge:after{z-index:1;height:31%;width:2px;bottom:49%;background:#d9ebf5;box-shadow:0 0 5px rgba(120,210,255,.28)}
body.predictionLabPage .plGauge>i{position:absolute;z-index:2;left:50%;top:48%;width:7px;height:7px;border-radius:50%;transform:translate(-50%,-50%);background:#dceaf3;border:2px solid #315a73;box-shadow:0 0 7px rgba(114,206,255,.2)}
body.predictionLabPage .plGauge strong{z-index:4;top:27%;font-size:1.28rem;line-height:1;color:#f5f8fb}
body.predictionLabPage .plGauge span{z-index:4;top:57%;font-size:.51rem;line-height:1.02;text-transform:uppercase}
body.predictionLabPage .plGauge small{z-index:4;top:72%;font-size:.47rem;line-height:1;color:#56d99a}
body.predictionLabPage .plGauge--hero strong{top:25%;font-size:2rem}
body.predictionLabPage .plGauge--hero span{top:58%;font-size:.56rem}
body.predictionLabPage .plGauge--hero small{top:72%;font-size:.52rem}
body.predictionLabPage .plGauge.isEmpty:after,body.predictionLabPage .plGauge.isEmpty>i{opacity:.22}
body.predictionLabPage .plGauge.isEmpty strong{color:#71889a}

/* Locked badge silhouettes stay aspirational even before unlock. */
body.predictionLabPage .plAchievementGrid article{opacity:.9;border-color:#274860;background:linear-gradient(180deg,#0b1d2d,#081725)}
body.predictionLabPage .plAchievementGrid article>span{filter:saturate(.82);box-shadow:inset 0 0 0 1px rgba(255,255,255,.06),0 4px 14px rgba(0,0,0,.16)}
body.predictionLabPage .plAchievementGrid article:nth-child(1)>span{background:linear-gradient(135deg,#58367c,#2a274d);color:#b990e8}
body.predictionLabPage .plAchievementGrid article:nth-child(2)>span{background:linear-gradient(135deg,#6c5523,#302d27);color:#dec169}
body.predictionLabPage .plAchievementGrid article:nth-child(3)>span{background:linear-gradient(135deg,#355f35,#1d342d);color:#84cf87}
body.predictionLabPage .plAchievementGrid article:nth-child(4)>span{background:linear-gradient(135deg,#795321,#352d23);color:#e4ad54}
body.predictionLabPage .plAchievementGrid article:nth-child(5)>span{background:linear-gradient(135deg,#62451f,#2c2b27);color:#d8a34b}
body.predictionLabPage .plAchievementGrid article:nth-child(6)>span{background:linear-gradient(135deg,#29596f,#1a3040);color:#72bed9}
body.predictionLabPage .plAchievementGrid article:nth-child(7)>span{background:linear-gradient(135deg,#6b4b1f,#332d25);color:#ddae58}
body.predictionLabPage .plAchievementGrid article b{color:#d2dde5}
body.predictionLabPage .plAchievementGrid article small{color:#8298a8}

@media(max-width:1280px){
  body.predictionLabPage .plColumn{display:flex!important}
  body.predictionLabPage .plBuild .plSectionTitle>div{display:block}
  body.predictionLabPage .plGauge>i{top:48%}
}
