/* Unit 2 page-level widgets (topics 2.1-2.5): live free body diagrams and small control rows. */
.u2-row { display: grid; grid-template-columns: 1fr; gap: 1rem; align-items: start; margin-top: 1rem; }
@media (min-width: 900px) { .u2-row { grid-template-columns: 1fr 1fr; } }
.u2-fbd-fig { margin: 0; padding: .75rem; border: 1px solid var(--line, rgba(128,128,128,.35)); border-radius: 12px; background: var(--panel, transparent); }
.u2-fbd-fig figcaption { font-weight: 700; margin-bottom: .25rem; }
.u2-fbd-fig svg { width: 100%; max-width: 340px; height: auto; display: block; margin: 0 auto; }
.u2-fbd-body { fill: var(--muted, #868e96); fill-opacity: .35; stroke: currentColor; stroke-width: 1.5; }
.u2-fbd-label { font: 700 16px system-ui, sans-serif; }
.u2-fbd-blabel { font: 700 13px system-ui, sans-serif; fill: currentColor; }
.u2-fbd-list { font-size: .9rem; margin: .4rem 0 0; overflow-wrap: anywhere; }
.u2-ctrl { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.4fr) 5.5rem; gap: .5rem; align-items: center; margin: .4rem 0; }
.u2-ctrl label { font-weight: 600; }
.u2-ctrl input[type="range"] { width: 100%; min-height: 44px; }
.u2-ctrl input[type="number"] { width: 100%; min-height: 44px; font-size: 1rem; padding: 0 .4rem; box-sizing: border-box; }
@media (max-width: 520px) { .u2-ctrl { grid-template-columns: minmax(0, 1fr) 5.5rem; } .u2-ctrl input[type="range"] { grid-column: 1 / -1; grid-row: 2; } }
.u2-widget { border: 1px solid var(--line, rgba(128,128,128,.35)); border-radius: 12px; padding: .9rem; margin-top: 1rem; }
.u2-widget canvas { width: 100%; height: 170px; display: block; }
.u2-out { font-weight: 700; font-size: 1.05rem; }
.u2-seg { display: flex; flex-wrap: wrap; gap: .5rem; margin: .5rem 0; }
.u2-seg button { min-height: 44px; padding: 0 .9rem; border-radius: 22px; border: 1px solid currentColor; background: transparent; color: inherit; font: inherit; cursor: pointer; }
.u2-seg button[aria-pressed="true"] { background: var(--f, #7048e8); color: #fff; border-color: transparent; }
.unit-topics { list-style: none; padding: 0; display: grid; gap: .75rem; }
.unit-topics li { border: 1px solid var(--line, rgba(128,128,128,.35)); border-radius: 12px; padding: .75rem 1rem; }
.unit-topics a { font-weight: 700; }

/* inline trap callouts (TRAPS_FRQ_SPEC) */
.callout.trap { background: var(--warnbg); border-left: 5px solid var(--warn); }
