/* Lab Bench · Lab 2 (projectile video analysis). Builds on lab-bench.css. */
.pj-workspace{display:grid;grid-template-columns:250px minmax(0,1fr) 380px;gap:18px;align-items:start}
.pj-fields{padding:16px 20px 0}
.pj-select{display:flex;flex-direction:column;gap:6px;font-size:calc(14px * var(--ts, 1));font-weight:550;margin-bottom:6px}
.pj-stick{border:1px solid var(--line);border-radius:7px;padding:10px 12px;margin:12px 0 0;display:flex;flex-direction:column;gap:6px}
.pj-stick legend{font-weight:650;font-size:calc(14px * var(--ts, 1));padding:0 4px}
.pj-stick label{display:flex;gap:8px;align-items:flex-start;font-size:calc(14px * var(--ts, 1));cursor:pointer}
.pj-stick input{accent-color:var(--teal);margin-top:4px}
.pj-fire-row{padding:14px 20px 4px}
#fire-msg{margin:4px 20px 18px}
.lb-good-text{color:#246b43}.lb-bad-text{color:#9a4a1b}

.pj-tools{display:flex;flex-wrap:wrap;gap:6px;padding:12px 16px 0}
.pj-tools button[aria-pressed=true]{background:var(--teal);color:#fff;border-color:var(--teal)}
.pj-tool-help{margin:10px 16px;padding:9px 12px;background:#f4f7f1;border-left:3px solid var(--teal);border-radius:4px;font-size:calc(14px * var(--ts, 1));color:var(--ink);min-height:calc(3 * 1.5em + 18px);box-sizing:border-box}
.pj-frame-wrap{position:relative;margin:0 16px}
.pj-frame{display:block;width:100%;height:auto;background:#d9dfd5;border-radius:6px;cursor:crosshair;touch-action:none}
.pj-frame:focus-visible{outline:3px solid #ba622e;outline-offset:3px}
.pj-loupe{position:absolute;top:8px;left:8px;width:120px;height:120px;border-radius:50%;border:3px solid #fff;box-shadow:0 2px 10px #0004;background:#d9dfd5;pointer-events:none}
.pj-loupe:empty{display:none}
.pj-frame-nav{display:flex;flex-wrap:wrap;align-items:center;gap:8px;padding:12px 16px 4px}
.pj-frame-nav button{padding:7px 12px}
.pj-frame-label{font-variant-numeric:tabular-nums;font-size:calc(14px * var(--ts, 1));min-width:200px;text-align:center}
.pj-video>.help{margin:4px 16px 16px}

.pj-ball{fill:#7d8a93;stroke:#3b464d;stroke-width:1}
.pj-mark{stroke:#c24c2a;stroke-width:1.6;fill:none}
.pj-mark-here{stroke:#e8590c;stroke-width:2.4}
.pj-cal{stroke:#2f6db5;stroke-width:2;stroke-dasharray:5 3}
.pj-cal-end{fill:none;stroke:#2f6db5;stroke-width:2}
.pj-cal-label{font-size:15px;font-weight:700;fill:#2f6db5;paint-order:stroke;stroke:#fff;stroke-width:4px}
.pj-axes{stroke:#7851a9;stroke-width:2;fill:none}.pj-axes-tip{fill:#7851a9}
.pj-axes-label{font-size:16px;font-style:italic;font-weight:700;fill:#7851a9;paint-order:stroke;stroke:#fff;stroke-width:4px}
.pj-cross path{stroke:#111;stroke-width:1.4;fill:none}
.pj-loupe-cross{stroke:#e8590c;stroke-width:0.35;fill:none}
.pj-stamp{font:600 15px Consolas,monospace;fill:#fff;paint-order:stroke;stroke:#0009;stroke-width:3px}
.pj-rec{font:700 16px Consolas,monospace;fill:#d62828;paint-order:stroke;stroke:#fffa;stroke-width:3px}

.pj-table-wrap{max-height:420px}
.pj-data .lb-table td{font-variant-numeric:tabular-nums}
.pj-hand-in{width:76px;padding:4px 6px;border:1px solid #bfcfc4;border-radius:5px;font:inherit}
.pj-hand{margin:10px 16px;padding:10px 12px;border:1px solid var(--line);border-radius:7px;background:#fbfcf8}
.pj-hand p{margin-bottom:8px;color:var(--ink);font-size:calc(14px * var(--ts, 1))}

.pj-graphs{margin-top:20px}
.pj-graph-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px 24px;padding:12px 16px 4px}
.pj-graph svg{display:block;width:100%;height:auto}
.pj-fit-row{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-top:6px}
.pj-fit-row label{display:flex;align-items:center;gap:6px;font-size:calc(14px * var(--ts, 1))}
.pj-coef{margin-top:8px;font-size:calc(14px * var(--ts, 1));color:var(--ink);line-height:1.6;font-variant-numeric:tabular-nums;min-height:20px}
.pj-launches tr.pj-current td{background:#f0f6ef}
.pj-launches th,.pj-launches td{text-align:left}
.pj-my-g{width:90px;padding:4px 6px;border:1px solid #bfcfc4;border-radius:5px;font:inherit}

/* Narrower screens: the video gets the full width (the ball is small, so it needs the room). */
@media(max-width:1200px){.pj-workspace{grid-template-columns:minmax(0,1fr)}
  .pj-fields{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:4px 24px}
  .pj-fields>.help,.pj-stick,#stick-fixed{grid-column:1/-1}}
@media(max-width:900px){.pj-graph-grid{grid-template-columns:1fr}}
@media(max-width:760px){.pj-workspace{grid-template-columns:1fr}.pj-loupe{width:90px;height:90px}.pj-frame-label{min-width:0;flex-basis:100%}}
.pj-vel{margin-top:20px}
.pj-vel .pj-vel-wrap{max-height:none;padding:0 4px}
.pj-vel .pj-hand{max-width:900px}
.pj-vel #vel-table td,.pj-vel #vel-table th{text-align:right}
.pj-mark-out{stroke:#8a8f94;stroke-dasharray:2 2}
.pj-go{padding:2px 8px;min-width:2.6em;font-variant-numeric:tabular-nums}
#data-table td:last-child,#data-table th:last-child{text-align:center}
.pj-use{width:18px;height:18px;accent-color:var(--teal);cursor:pointer}
#data-table tr.pj-out td{color:#6b7177;text-decoration:line-through;background:#f3f3f1}
#data-table tr.pj-out td:first-child,#data-table tr.pj-out td:last-child{text-decoration:none}
#data-table tr.pj-out-note td{color:#5c4a1e;background:#f8f2e2;font-size:calc(13px * var(--ts, 1));text-align:left;padding-top:3px}
#data-table tr.pj-out-ask td{background:#fbf5ea;text-align:left}
#out-form{display:flex;flex-direction:column;gap:6px;padding:4px 0}
#out-form label{font-weight:650;font-size:calc(14px * var(--ts, 1))}
#out-reason{padding:5px 8px;border:1px solid #bfcfc4;border-radius:5px;font:inherit;width:100%;box-sizing:border-box}
