.gp-practice { margin: 2rem 0; padding: clamp(16px, 3vw, 28px); border: 1px solid #cbdbea; border-left: 4px solid #2563a6; border-radius: 12px; background: #f5f9fd; color: #24364b; }
.gp-practice .gp-kicker { margin: 0 0 8px; color: #365c81; font-size: .85rem; font-weight: 600; }
.gp-practice h2 { margin-top: 0; font-size: 1.35rem; }
.gp-practice .gp-note { margin: 14px 0 0; font-size: .85rem; color: #52647a; }
.gp-practice fieldset, .gp-match-row { min-width: 0; margin: 18px 0; padding: 16px; background: #fff; border: 1px solid #d5e0eb; border-radius: 8px; }
.gp-practice legend { float: none; width: auto; padding: 0 4px; font-size: 1rem; font-weight: 600; }
.gp-practice .gp-option { display: flex; gap: 10px; align-items: flex-start; margin: 8px 0; padding: 10px; border: 1px solid #d5e0eb; border-radius: 6px; cursor: pointer; }
.gp-practice input[type=radio] { flex-shrink: 0; margin-top: 5px; accent-color: #2563a6; }
.gp-practice .gp-option:has(input:checked) { border-color: #2563a6; background: #edf5ff; }
.gp-practice button { padding: 10px 16px; min-height: 44px; border: 1px solid #2563a6; border-radius: 7px; background: #2563a6; color: white; font: inherit; cursor: pointer; }
.gp-practice .gp-secondary { background: #fff; color: #234f80; }
.gp-practice button:hover, .gp-practice button[aria-expanded=true] { background: #e4effb; color: #173e68; }
.gp-practice :is(button,input,select,a):focus-visible { outline: 3px solid #b26a12; outline-offset: 3px; }
.gp-directions { display: grid; gap: 10px; }
.gp-practice .gp-direction { text-align: left; }
.gp-track { margin-top: 14px; padding: 18px; background: white; border: 1px solid #cbdbea; border-radius: 8px; }
.gp-practice [hidden] { display: none !important; }
.gp-match-row label { display: block; margin-bottom: 8px; font-weight: 600; }
.gp-match-row select { display: block; width: 100%; min-width: 0; min-height: 44px; padding: 8px; color: #24364b; background: #fff; border: 1px solid #91a7bf; border-radius: 5px; font: inherit; }
.gp-actions { display: flex; flex-wrap: wrap; gap: 10px; }
.gp-feedback:empty, .gp-summary:empty { display: none; }
.gp-practice .gp-feedback { margin: 10px 0 4px; font-weight: 600; }
.gp-practice [data-result=correct] .gp-feedback { color: #196546; }
.gp-practice [data-result=retry] .gp-feedback { color: #8b470d; }
.gp-practice .gp-explanation { margin: 4px 0; line-height: 1.7; }
.gp-summary { margin-top: 14px; font-weight: 600; }
@media (max-width: 600px) { .gp-practice fieldset, .gp-match-row { padding: 10px; } }
