.practice-shell{--ink:#1a1a1a;--muted:#6b6b6b;--line:#d8d8d8;--hover:#f2f2f2;--blue:#1e4fd8;--blue-dark:#163ba8;--yellow:#ffd54a;--danger:#c0392b;--success:#0a7a5a;color:var(--ink);background:#fff;flex-direction:column;min-height:100vh;font-family:Instrument Sans,system-ui,-apple-system,Segoe UI,sans-serif;display:flex}.practice-topbar{border-bottom:1px dashed var(--line);grid-template-columns:1fr auto 1fr;align-items:center;gap:16px;padding:14px 24px;display:grid;position:relative}.practice-topbar:before,.practice-topbar:after{content:"";background:repeating-linear-gradient(90deg, var(--yellow) 0 22px, #79b7ff 22px 44px, var(--ink) 44px 66px);opacity:.25;height:2px;position:absolute;left:0;right:0}.practice-topbar:before{top:0}.practice-topbar:after{bottom:-2px}.topbar-left h1{margin:0 0 2px;font-size:18px;font-weight:700}.topbar-directions{color:var(--ink);cursor:pointer;background:0 0;border:none;align-items:center;gap:4px;padding:0;font-size:13px;font-weight:500;display:inline-flex}.topbar-directions:after{content:"▾";font-size:11px}.topbar-timer{flex-direction:column;align-items:center;gap:6px;display:flex}.timer-value{font-variant-numeric:tabular-nums;letter-spacing:.5px;font-size:22px;font-weight:700}.timer-value.warning{color:#d97706}.timer-value.danger{color:var(--danger)}.timer-hide{border:1px solid var(--ink);cursor:pointer;background:#fff;border-radius:999px;padding:4px 14px;font-size:12px;font-weight:500}.topbar-right{justify-content:flex-end;align-items:center;gap:20px;font-size:12px;display:flex}.topbar-tool{color:var(--ink);cursor:pointer;background:0 0;border:none;flex-direction:column;align-items:center;gap:2px;padding:4px;font-size:12px;font-weight:500;display:inline-flex}.topbar-tool svg{width:18px;height:18px}.practice-body{flex:1;grid-template-columns:1fr 1fr;min-height:0;display:grid}.panel{padding:32px 40px;position:relative;overflow-y:auto}.panel+.panel{border-left:1px solid var(--line)}.panel-toggle{border:1px solid var(--line);cursor:pointer;width:28px;height:28px;color:var(--ink);background:#fff;border-radius:6px;justify-content:center;align-items:center;display:flex;position:absolute;top:12px}.panel.passage .panel-toggle{right:12px}.panel.question .panel-toggle{left:12px}.passage-text{color:var(--ink);white-space:pre-wrap;max-width:640px;font-size:16px;line-height:1.7}.q-header{border-bottom:1px solid var(--line);align-items:center;gap:12px;margin-bottom:20px;padding-bottom:10px;display:flex}.q-number{background:var(--ink);color:#fff;border-radius:4px;justify-content:center;align-items:center;min-width:30px;height:30px;padding:0 8px;font-size:14px;font-weight:700;display:inline-flex}.q-mark{cursor:pointer;color:var(--ink);background:0 0;border:none;align-items:center;gap:6px;font-size:13px;font-weight:500;display:inline-flex}.q-mark svg{width:14px;height:16px}.q-mark.is-marked{color:var(--danger)}.q-mark.is-marked svg{fill:var(--danger)}.q-abc{border:1px solid var(--ink);cursor:pointer;background:#fff;border-radius:4px;margin-left:auto;padding:4px 10px;font-size:13px;font-weight:700;position:relative}.q-abc[aria-pressed=true]{background:var(--ink);color:#fff}.q-prompt{color:var(--ink);margin:0 0 20px;font-size:15px;line-height:1.6}.choices{flex-direction:column;gap:12px;display:flex}.choice{border:1.5px solid var(--line);cursor:pointer;background:#fff;border-radius:8px;align-items:center;gap:14px;padding:12px 16px;font-size:15px;line-height:1.5;transition:border-color .15s,background .15s;display:flex;position:relative}.choice:hover:not(.eliminated){border-color:var(--ink);background:var(--hover)}.choice input[type=radio]{opacity:0;pointer-events:none;position:absolute}.choice-letter{border:1.5px solid var(--ink);background:#fff;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:28px;height:28px;font-size:14px;font-weight:700;display:inline-flex}.choice.is-selected{border-color:var(--blue);background:#1e4fd80d}.choice.is-selected .choice-letter{background:var(--blue);color:#fff;border-color:var(--blue)}.choice-text{flex:1}.choice-eliminate{color:var(--muted);cursor:pointer;background:0 0;border:none;border-radius:4px;padding:4px 8px;font-size:13px;display:none}.crossout-mode .choice-eliminate{display:inline-block}.choice.eliminated{opacity:.55;text-decoration:line-through;-webkit-text-decoration-color:var(--ink);text-decoration-color:var(--ink)}.practice-bottombar{border-top:1px dashed var(--line);background:#fff;grid-template-columns:1fr auto 1fr;align-items:center;gap:16px;padding:12px 24px;display:grid;position:relative}.practice-bottombar:before,.practice-bottombar:after{content:"";background:repeating-linear-gradient(90deg, var(--yellow) 0 22px, #79b7ff 22px 44px, var(--ink) 44px 66px);opacity:.25;height:2px;position:absolute;left:0;right:0}.practice-bottombar:before{top:-2px}.practice-bottombar:after{bottom:0}.student-name{color:var(--muted);font-size:13px}.q-jump{background:var(--ink);color:#fff;cursor:pointer;border:none;border-radius:999px;align-items:center;gap:8px;padding:8px 18px;font-size:14px;font-weight:600;display:inline-flex}.q-jump:after{content:"⌃";font-size:12px}.q-jump[aria-expanded=true]:after{content:"⌄"}.nav-buttons{justify-content:flex-end;gap:10px;display:flex}.btn-nav{background:var(--blue);color:#fff;cursor:pointer;border:none;border-radius:999px;padding:10px 26px;font-size:14px;font-weight:700}.btn-nav:hover{background:var(--blue-dark)}.btn-nav.btn-back{color:var(--blue);border:1.5px solid var(--blue);background:#fff}.btn-nav.btn-back:hover{background:#1e4fd80d}.btn-nav[disabled]{opacity:.4;cursor:not-allowed}.q-grid-overlay{border-top:1px solid var(--line);z-index:20;background:#fff;max-height:60vh;padding:24px 32px;transition:transform .25s;position:fixed;bottom:0;left:0;right:0;overflow-y:auto;transform:translateY(100%);box-shadow:0 -12px 40px #00000026}.q-grid-overlay[data-open=true]{transform:translateY(0)}.q-grid-title{margin:0 0 12px;font-size:16px;font-weight:700}.q-legend{color:var(--muted);flex-wrap:wrap;gap:20px;margin-bottom:16px;font-size:12px;display:flex}.q-legend span{align-items:center;gap:6px;display:inline-flex}.q-legend .swatch{border:1.5px solid var(--ink);background:#fff;border-radius:3px;width:14px;height:14px;display:inline-block}.q-legend .swatch.answered{background:var(--ink)}.q-legend .swatch.marked{border-color:var(--danger);background:#fff}.q-legend .swatch.current{background:var(--blue);border-color:var(--blue)}.q-grid{grid-template-columns:repeat(auto-fill,minmax(50px,1fr));gap:10px;max-width:900px;display:grid}.q-grid-item{aspect-ratio:1;border:1.5px dashed var(--ink);cursor:pointer;color:var(--ink);background:#fff;border-radius:6px;justify-content:center;align-items:center;font-size:13px;font-weight:700;display:flex;position:relative}.q-grid-item.answered{background:var(--ink);color:#fff;border-style:solid}.q-grid-item.current{outline:2px solid var(--blue);outline-offset:2px}.q-grid-item.marked:after{content:"";background:var(--danger);border-radius:50%;width:8px;height:8px;position:absolute;top:2px;right:2px}.q-grid-close{cursor:pointer;color:var(--muted);background:0 0;border:none;font-size:22px;position:absolute;top:12px;right:12px}.practice-results{border:1px solid var(--line);background:#fff;border-radius:16px;max-width:720px;margin:40px auto;padding:32px}.practice-results h1{margin:0 0 8px;font-size:28px}.practice-results .lead{color:var(--muted);margin:0 0 24px}.result-score{align-items:baseline;gap:8px;margin-bottom:8px;font-size:48px;font-weight:700;display:flex}.result-score small{color:var(--muted);font-size:20px;font-weight:500}.result-stats{grid-template-columns:repeat(3,1fr);gap:16px;margin:24px 0;display:grid}.stat-card{border:1px solid var(--line);text-align:center;border-radius:12px;padding:16px}.stat-card .num{font-size:24px;font-weight:700;display:block}.stat-card .lbl{color:var(--muted);text-transform:uppercase;letter-spacing:.5px;font-size:12px}.review-list{border-top:1px solid var(--line);margin-top:24px;padding-top:16px}.review-item{border-bottom:1px solid var(--line);grid-template-columns:auto 1fr auto;align-items:center;gap:12px;padding:12px 0;font-size:14px;display:grid}.review-item .badge{border-radius:999px;padding:3px 10px;font-size:12px;font-weight:600}.review-item .badge.correct{color:var(--success);background:#0a7a5a1f}.review-item .badge.wrong{color:var(--danger);background:#c0392b1f}.review-item .badge.skipped{color:var(--muted);background:#6b6b6b26}.review-item .q-id{color:var(--muted);font-family:JetBrains Mono,monospace;font-size:12px}.loading,.error-panel{text-align:center;color:var(--muted);padding:60px 24px}.error-panel{color:var(--danger)}.practice-hub{max-width:1000px;margin:40px auto;padding:0 24px}.skill-card{border:1px solid var(--line);color:var(--ink);background:#fff;border-radius:14px;margin-bottom:16px;padding:20px 24px;text-decoration:none;transition:border-color .15s,transform .15s,box-shadow .15s;display:block}.skill-card:hover{border-color:var(--ink);transform:translateY(-2px);box-shadow:0 6px 18px #0000000f}.skill-card h3{margin:0 0 6px;font-size:20px}.skill-card p{color:var(--muted);margin:0;font-size:14px}.skill-card .meta{color:var(--muted);gap:16px;margin-top:12px;font-size:13px;display:flex}.skill-card .meta strong{color:var(--ink)}.skill-card.locked{opacity:.55;pointer-events:none}.skill-card.locked:after{content:"Coming soon";float:right;background:var(--hover);color:var(--muted);border-radius:999px;padding:3px 10px;font-size:12px}.dsat-sections{grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:20px;margin:32px 0;display:grid}.section-card{border:1px solid var(--line);color:var(--ink);background:linear-gradient(135deg,#1e4fd80d,#ffd54a0f);border-radius:18px;padding:28px;text-decoration:none;transition:transform .18s,box-shadow .18s;display:block}.section-card:hover{transform:translateY(-3px);box-shadow:0 12px 30px #00000014}.section-card .eyebrow{text-transform:uppercase;letter-spacing:.08em;color:var(--muted);margin-bottom:8px;font-size:12px;display:block}.section-card h3{margin:0 0 8px;font-family:Instrument Serif,serif;font-size:24px}.section-card p{color:var(--muted);margin:0 0 16px;font-size:14px}.section-card .cta{color:var(--blue);font-size:14px;font-weight:700}.section-card .cta:after{content:" →"}@media (width<=900px){.practice-body{grid-template-columns:1fr}.panel+.panel{border-left:none;border-top:1px solid var(--line)}.practice-topbar{text-align:center;grid-template-columns:1fr;gap:8px}.topbar-right{justify-content:center}.practice-bottombar{grid-template-columns:1fr;gap:10px}.nav-buttons{justify-content:center}}
