/* v4.3.0 RC: layout, canonical visuals and training UX. */
.canonical-diagram-visual,.exercise-authoritative-visual{width:100%;min-width:0}.canonical-diagram-visual svg,.exercise-authoritative-visual svg{display:block;width:100%;height:auto;aspect-ratio:2/1;object-fit:contain}.library-card-image,.demo-exercise-visual,.assignment-thumb{overflow:hidden}.library-card-image:has(.canonical-diagram-visual),.demo-exercise-visual:has(.canonical-diagram-visual){height:auto;aspect-ratio:2/1;padding:0;background:#071017}.library-card-image .canonical-diagram-visual,.demo-exercise-visual .canonical-diagram-visual{height:100%}.library-card-image svg,.demo-exercise-visual svg{width:100%;height:100%;display:block}.exercise-authoritative-visual{margin:12px 0;max-width:760px}.exercise-authoritative-visual:empty{display:none}
.result-choice-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(52px,1fr));gap:9px}.result-choice{min-height:52px;border:1px solid #a9bfd2;border-radius:12px;background:#fff;color:#153654;font-size:20px;font-weight:900;cursor:pointer}.result-choice:hover,.result-choice.selected{background:#1598dd;color:#fff;border-color:#0879b7;box-shadow:0 5px 16px #1598dd33}.result-stepper{display:grid;grid-template-columns:58px minmax(100px,180px) 58px;gap:9px;align-items:center}.result-stepper input{text-align:center;font-size:25px;font-weight:900}.result-step{height:52px;border:0;border-radius:12px;background:#1598dd;color:#fff;font-size:28px;font-weight:900;cursor:pointer}
.session-kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin:16px 0}.session-kpis>div{padding:14px;border:1px solid var(--line);border-radius:14px;background:#f7fbff;display:flex;flex-direction:column}.session-kpis b{font-size:21px;color:#123763}.session-kpis span{font-size:11px;color:var(--muted);text-transform:uppercase;font-weight:800}.session-table{display:grid;gap:6px}.session-table>div{display:grid;grid-template-columns:1.1fr 1.5fr 1.1fr .8fr .7fr .7fr;gap:9px;padding:10px;border-bottom:1px solid var(--line);align-items:center;font-size:12px}
#diagramBuilderModal .premium-builder-shell{grid-template-columns:clamp(112px,8vw,138px) minmax(0,1fr) clamp(185px,14vw,220px)!important;height:calc(100vh - 118px);min-height:0!important;overflow:hidden;align-items:stretch}
#diagramBuilderModal .premium-builder-left,#diagramBuilderModal .premium-builder-right{padding:8px!important;min-width:0;overflow:auto}
#diagramBuilderModal .premium-ball-grid{gap:5px;grid-template-columns:repeat(4,minmax(24px,1fr))}
#diagramBuilderModal .premium-ball-choice{width:28px;height:28px;font-size:11px}
#diagramBuilderModal .premium-hint{font-size:10px;line-height:1.35;margin-top:8px}
#diagramBuilderModal .premium-stage{display:flex!important;flex-direction:column;align-items:stretch!important;justify-content:flex-start!important;min-width:0;min-height:0;padding:4px 6px 0!important;overflow:hidden}
#diagramBuilderModal .premium-table-wrap{flex:1 1 auto;min-height:0;width:100%;padding:0!important;display:grid;place-items:center;background:transparent;border:0;box-shadow:none;overflow:hidden}
#diagramBuilderModal .premium-table-wrap svg{display:block;flex:none;aspect-ratio:auto!important;margin:auto}
#diagramBuilderModal .builder-position-bar{position:static!important;flex:0 0 auto;order:2;width:100%;max-width:none!important;margin:4px 0 0!important;padding:5px 7px!important;min-height:38px;overflow-x:auto}
.result-confirm-overlay{position:fixed;inset:0;z-index:100000;background:#06101bb8;display:grid;place-items:center;padding:18px}.result-confirm-dialog{width:min(430px,100%);background:#fff;border:1px solid #bdd0df;border-radius:18px;padding:22px;box-shadow:0 24px 70px #001a3580;color:#163654}.result-confirm-dialog h3{margin:0 0 12px}.result-confirm-value{font-size:34px;font-weight:900;color:#0d86c9;padding:12px 0}.result-confirm-dialog .actions{justify-content:flex-end}.student-session-time{margin-top:24px;padding-top:18px;border-top:1px solid var(--line)}.session-history-table{width:100%;border-collapse:collapse;font-size:12px}.session-history-table th,.session-history-table td{padding:9px;border-bottom:1px solid var(--line);text-align:left;white-space:nowrap}.table-scroll{overflow:auto}
@media(max-width:900px){.session-kpis{grid-template-columns:1fr 1fr}.session-table>div{grid-template-columns:1fr 1fr}.result-choice-grid{grid-template-columns:repeat(4,1fr)}}
