.practice-welcome { display:flex; justify-content:space-between; align-items:center; gap:24px; margin:30px 0 24px; }
body:has(.practice-welcome) .main-content { background:#f4f7f8 !important; }
body:has(.practice-welcome) .main-content::before { display:none !important; }
body:has(.practice-welcome) .main-content-inner { max-width:1400px; margin:0 auto; }
.practice-kicker { color:#087c86; font-size:.73rem; font-weight:800; letter-spacing:.12em; }
.practice-welcome h1 { color:#16334c; font-size:clamp(1.5rem,2.6vw,2rem); margin:8px 0; line-height:1.25; }
.practice-welcome p { color:#526576; margin:0; }
.practice-welcome > a { flex-shrink:0; }
.practice-overview { display:grid; grid-template-columns:minmax(0,1.4fr) minmax(300px,1fr); gap:20px; }
.practice-overview .student-primary-card { display:flex; flex-direction:column; align-items:flex-start; justify-content:center; padding:30px; background:linear-gradient(120deg,#15384f,#0c5964); box-shadow:none; }
.practice-overview .student-primary-card h2 { margin:12px 0; font-size:clamp(1.35rem,2vw,1.8rem); line-height:1.3; }
.practice-overview .student-primary-card p { line-height:1.6; max-width:56ch; }
.practice-overview .student-primary-card .btn { min-height:44px; white-space:normal; }
.practice-overview .student-secondary-link { margin:16px 0 0; }
.practice-tags { display:flex; flex-wrap:wrap; gap:6px; margin:0 0 18px; }
.practice-tags span { border:1px solid #ffffff40; border-radius:5px; padding:4px 8px; font-size:.72rem; }
.practice-save-note { margin-top:12px; color:#c5e6e9; }
.weekly-practice { border:1px solid #dce6ea; border-radius:16px; padding:24px; background:#fff; }
.weekly-heading { display:flex; justify-content:space-between; align-items:center; flex-wrap:wrap; gap:8px; }
.weekly-heading h2 { margin:0; font-size:1.05rem; color:#16334c; }
.weekly-heading > span { color:#566777; background:#f0f4f6; padding:4px 8px; border-radius:4px; font-size:.7rem; }
.weekly-count { margin:18px 0 8px; color:#5b6c78; }
.weekly-count strong { color:#16334c; font-size:2rem; }
.weekly-practice progress { width:100%; height:8px; border:0; border-radius:6px; overflow:hidden; background:#e8f0f2; accent-color:#0f8583; }
.weekly-practice progress::-webkit-progress-bar { background:#e8f0f2; }
.weekly-practice progress::-webkit-progress-value { background:#0f8583; border-radius:6px; }
.weekly-practice progress::-moz-progress-bar { background:#0f8583; }
.practice-week { display:grid; grid-template-columns:repeat(7,minmax(0,1fr)); gap:6px; margin:16px 0; }
.practice-day { display:flex; flex-direction:column; gap:6px; align-items:center; color:#627481; font-size:.7rem; }
.practice-day b { display:grid; place-items:center; width:30px; height:30px; border-radius:50%; background:#f1f5f7; font-size:.8rem; }
.practice-day.done b { background:#d9f1ec; color:#11604d; }
.practice-day.today b { outline:2px solid #0f8583; outline-offset:2px; }
.weekly-message { font-size:.86rem; color:#455c6a; line-height:1.5; }
.practice-calendar { color:#086c78; font-weight:700; font-size:.82rem; display:inline-block; padding:8px 0; }
.calendar-hint { display:block; color:#647580; font-size:.73rem; line-height:1.5; }
.practice-reminders { display:flex; flex-wrap:wrap; align-items:center; gap:8px 12px; margin:14px 0 0; padding-top:12px; border-top:1px solid #e6edf0; font-size:.8rem; color:#455c6a; line-height:1.5; }
.practice-reminders span { flex:1 1 200px; }
.practice-reminders button { background:none; border:1px solid #0f8583; color:#086c78; border-radius:6px; padding:6px 10px; font-weight:700; font-size:.78rem; cursor:pointer; }
.practice-reminders button:hover { background:#e6f4f3; }
.practice-totals { display:flex; flex-wrap:wrap; gap:12px 30px; padding:20px 0; color:#526576; font-size:.84rem; }
.practice-totals strong { color:#16334c; font-size:1.1rem; margin-right:4px; }
.recent-practice-row .practice-result { display:inline-block; font-size:.75rem; padding:6px 9px; border-radius:5px; white-space:nowrap; }
.practice-result.passed { color:#166047; background:#e7f5ed; }
.recent-practice-row .practice-result.review { color:#855308; background:#fff4d9; }
.practice-overview :focus-visible, .practice-welcome :focus-visible { outline:3px solid #d89b22; outline-offset:4px; }
@media(max-width:1050px) { .practice-overview { grid-template-columns:1fr; } .practice-welcome { align-items:flex-start; flex-direction:column; gap:14px; } }
@media(max-width:480px) { body:has(.practice-welcome) .main-content-inner { padding:12px 4px 24px; } .practice-overview .student-primary-card, .weekly-practice { padding:20px; } .practice-welcome { margin-top:20px; } .recent-practice-row strong { white-space:normal; line-height:1.4; } }
