/* Sonus Student — additions over app.css (same tokens, same Jane look). */

.brand-sub { font-weight: 300; color: var(--muted); margin-left: .25rem; }
.student-canvas { max-width: 1180px; margin: 0 auto; width: 100%; }
.student-foot { margin: 2rem 0 .5rem; text-align: center; }

.login-card-wide { max-width: 26rem; }

.page-head { display: flex; align-items: flex-end; justify-content: space-between;
             gap: 1rem; flex-wrap: wrap; margin-bottom: 1rem; }
.new-case { display: flex; align-items: center; gap: .5rem; flex-wrap: wrap; }
.new-case select { min-width: 10rem; }

.practice-grid { display: grid; grid-template-columns: 22rem 1fr; gap: 1rem; align-items: start; }
@media (max-width: 860px) { .practice-grid { grid-template-columns: 1fr; } }

.practice-inputs h2, .answer-grid .card h2 { margin-top: 0; }
.factor-table { display: flex; flex-direction: column; gap: .4rem; }
.factor-line { display: grid; grid-template-columns: 6rem 4.2rem 1fr 3.5rem; align-items: center; gap: .4rem; }
.factor-line .factor-name { color: var(--muted); font-size: .92rem; }
.factor-line .unit { color: var(--muted); font-size: var(--fs-caption); }
.factor-line input[type="number"] { width: 100%; min-width: 0; }
.factor-line select { width: 100%; }
.factor-line-pair { grid-template-columns: 6rem 1fr 1fr 3.5rem; }

.practice-check { margin-top: 1rem; padding-top: .8rem; border-top: 1px solid var(--border); }
.practice-check h3 { margin: 0 0 .25rem; font-size: 1rem; font-weight: 500; }
.form-footer { display: flex; gap: .5rem; flex-wrap: wrap; margin-top: .9rem; }

.answer-head { display: flex; align-items: center; gap: .8rem; flex-wrap: wrap; margin: 0 0 .8rem; }
.answer-subtype { font-size: 1.15rem; }
.answer-cfac { display: inline-flex; align-items: center; gap: .4rem; padding: .2rem .6rem;
               border-radius: var(--radius-pill); background: var(--accent-tint); color: var(--text);
               font-weight: 600; }
.answer-cfac-key { color: var(--muted); font-weight: 400; font-size: var(--fs-small); }
.answer-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem; }
.answer-grid .card.vectors { grid-column: 1 / -1; }
@media (max-width: 1100px) { .answer-grid { grid-template-columns: 1fr; } }

.verdict { padding: .6rem .9rem; border-radius: var(--radius); margin-bottom: .8rem;
           border: 1px solid var(--border); }
.verdict-ok { background: var(--success-tint); border-color: var(--success); }
.verdict-miss { background: var(--warning-tint); border-color: var(--warning); }

.fig-row { display: flex; gap: 1rem; flex-wrap: wrap; align-items: flex-start; }
.fig-row .fig { flex: 1 1 12rem; min-width: 0; max-width: 22rem; }
.fig-row svg { width: 100%; height: auto; }

.vec-tables { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem; }
.vec-tables h3 { margin: 0 0 .4rem; font-size: .95rem; font-weight: 500; color: var(--muted); }
@media (max-width: 700px) { .vec-tables { grid-template-columns: 1fr; } }

.empty-state h2 { margin-top: 0; }
