/* Practice directory. Deliberately scoped for future integration. */
body.ieltscat-navy.is-catalog { height:auto; min-height:100%; }
.catalog-shell { width:min(1220px,100%); min-height:100dvh; margin:0 auto; padding:22px 30px 0; color:var(--ink); }
.catalog-masthead { display:flex; align-items:center; justify-content:space-between; gap:24px; min-height:64px; padding:0 25px; background:#fff; border:1px solid var(--line); border-top:3px solid var(--navy); border-radius:12px; }
.catalog-masthead .brand-wordmark { padding:0; }
.catalog-subjects { display:flex; align-items:center; gap:28px; align-self:stretch; }
.catalog-subjects a { display:flex; align-items:center; position:relative; color:var(--muted); font-size:14px; font-weight:550; }
.catalog-subjects a[aria-current] { color:var(--navy); }
.catalog-subjects a[aria-current]::after { content:''; position:absolute; height:2px; background:var(--navy); bottom:0; left:0; right:0; }
.catalog-main { padding-top:28px; }
.catalog-intro { background:#fff; border:1px solid var(--line); border-radius:12px; padding:27px 30px 0; }
.catalog-eyebrow { margin:0 0 7px; font-size:11px; font-weight:600; letter-spacing:1.6px; color:var(--muted); }
.catalog-intro h1 { font-size:29px; line-height:1.25; font-weight:600; letter-spacing:-.4px; margin:0; }
.catalog-description { color:var(--muted); font-size:14px; margin:10px 0 0; }
.catalog-views { display:flex; align-items:center; gap:30px; margin-top:24px; overflow-x:auto; }
.catalog-views a { position:relative; display:block; flex:none; color:var(--muted); font-size:14px; line-height:1.5; padding:0 0 15px; }
.catalog-views a[aria-current] { color:var(--navy); font-weight:600; }
.catalog-views a[aria-current]::after { content:''; position:absolute; left:0; right:0; bottom:0; height:2px; background:var(--navy); }
.catalog-filters { margin:18px 0; background:#fff; border:1px solid var(--line); border-radius:10px; padding:17px 21px; }
.catalog-chips { display:flex; flex-wrap:wrap; gap:5px 6px; }
.catalog-chips+.catalog-chips { border-top:1px solid #e9edf6; margin-top:12px; padding-top:12px; }
.catalog-chip { display:inline-flex; align-items:center; min-height:35px; padding:6px 11px; border-radius:6px; color:var(--muted); font-size:13px; white-space:nowrap; }
.catalog-chip[aria-current] { color:var(--navy); background:#edf1fb; font-weight:600; }
.catalog-search { display:flex; align-items:center; gap:8px; margin-top:13px; padding-top:13px; border-top:1px solid #e9edf6; }
.catalog-search input { background:#fafbfe; border:1px solid #ccd6e9; border-radius:6px; padding:8px 11px; min-width:0; width:320px; color:var(--ink); font-size:13px; line-height:1.5; }
.catalog-search input::placeholder { color:#737f99; }
.catalog-search button { min-height:37px; background:#fff; border:1px solid #ccd6e9; border-radius:6px; color:var(--primary-ink); padding:7px 17px; font-size:13px; }
.catalog-clear { color:var(--muted); font-size:12px; padding:8px; }
.catalog-results { padding:7px 0 28px; }
.catalog-book { margin:0 0 27px; }
.catalog-book>h2 { margin:0 0 13px; color:var(--navy); font-size:18px; font-weight:600; }
.catalog-tests { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:14px; }
.catalog-test { position:relative; display:flex; flex-direction:column; justify-content:center; min-height:110px; padding:20px 22px 24px; border:1px solid var(--line); border-radius:9px; background:#fff; overflow:hidden; }
.catalog-test[aria-current] { border-color:#8197c4; background:#f7f9ff; }
.catalog-test-title { font-size:22px; font-weight:600; letter-spacing:-.3px; color:var(--navy); }
.catalog-test-meta { font-size:12px; color:var(--muted); margin-top:6px; }
.catalog-test-progress { height:3px; background:#e8edf7; position:absolute; bottom:0; left:0; right:0; }
.catalog-test-progress>span { display:block; height:100%; background:#526eae; }
.catalog-back { display:inline-block; color:var(--primary-ink); font-size:13px; margin:-8px 0 15px; padding:5px 0; }
.catalog-list { overflow:hidden; background:#fff; border:1px solid var(--line); border-radius:10px; margin-bottom:25px; }
.catalog-list-heading { display:flex; align-items:center; justify-content:space-between; gap:15px; padding:19px 24px; border-bottom:1px solid #e5eaf5; background:#fafbfe; }
.catalog-list-heading h2 { color:var(--navy); font-size:17px; font-weight:600; margin:0; }
.catalog-count { color:var(--muted); font-size:12px; white-space:nowrap; }
.catalog-row { display:grid; grid-template-columns:minmax(0,1fr) 75px auto; align-items:center; gap:22px; padding:20px 24px; border-bottom:1px solid #e7ebf4; }
.catalog-row:last-child { border-bottom:0; }
.catalog-row-copy { min-width:0; }
.catalog-row-meta { color:var(--muted); font-size:12px; line-height:1.5; margin:0 0 4px; }
.catalog-row-title { font-size:17px; line-height:1.4; font-weight:550; letter-spacing:-.1px; color:var(--navy); overflow-wrap:anywhere; }
.catalog-row-tags { margin:6px 0 0; font-size:11px; color:#737e97; line-height:1.5; }
.catalog-row-progress { display:flex; flex-direction:column; gap:3px; color:var(--muted); font-size:11px; white-space:nowrap; text-align:center; }
.catalog-state.is-checked { color:#31664a; }
.catalog-score { color:var(--navy); font-size:15px; font-variant-numeric:tabular-nums; }
.catalog-row-actions { display:flex; align-items:center; justify-content:flex-end; gap:14px; flex-wrap:wrap; max-width:300px; }
.catalog-start { display:inline-flex; align-items:center; justify-content:center; min-height:36px; font-size:12px; font-weight:550; color:#fff; background:var(--navy); border:1px solid var(--navy); border-radius:6px; padding:7px 13px; white-space:nowrap; }
.catalog-action { color:var(--primary-ink); font-size:12px; white-space:nowrap; padding:7px 0; }
.catalog-teaching { color:var(--muted); }
.catalog-empty { margin:0; color:var(--muted); padding:40px 25px; text-align:center; font-size:14px; }
.catalog-footer { display:flex; justify-content:space-between; gap:20px; padding:10px 0 22px; color:var(--muted); font-size:10px; line-height:1.6; }
@media(hover:hover) and (pointer:fine) {
  .catalog-chip:hover { background:#f3f6fc; color:var(--navy); }
  .catalog-test:hover { border-color:#afbfdf; background:#fafbfe; }
  .catalog-start:hover { background:#2a407b; }
  .catalog-row-title:hover,.catalog-action:hover,.catalog-back:hover { text-decoration:underline; text-underline-offset:3px; }
}
@media(max-width:900px) {
  .catalog-shell { padding:16px 20px 0; }
  .catalog-row { grid-template-columns:minmax(0,1fr) auto; gap:12px 20px; }
  .catalog-row-progress { grid-column:2; grid-row:1; align-self:start; padding-top:3px; }
  .catalog-row-actions { grid-column:1/-1; justify-content:flex-start; max-width:none; gap:20px; }
  .catalog-tests { gap:10px; }
  .catalog-test { padding-left:15px; padding-right:15px; }
}
@media(max-width:600px) {
  .catalog-shell { padding:10px 12px 0; }
  .catalog-masthead { min-height:61px; padding:0 14px; gap:12px; }
  .catalog-masthead .brand-wordmark { font-size:22px; }
  .catalog-subjects { gap:15px; }
  .catalog-subjects a { font-size:12px; white-space:nowrap; }
  .catalog-main { padding-top:16px; }
  .catalog-intro { padding:22px 18px 0; }
  .catalog-intro h1 { font-size:26px; }
  .catalog-description { font-size:12px; line-height:1.8; margin-top:9px; }
  .catalog-views { gap:22px; margin-top:19px; }
  .catalog-views a { font-size:12px; padding-bottom:12px; }
  .catalog-filters { padding:12px; margin:13px 0; }
  .catalog-chips { gap:4px 3px; }
  .catalog-chip { padding:6px 9px; font-size:12px; min-height:37px; }
  .catalog-search input { width:100%; min-height:39px; }
  .catalog-search button { padding-left:13px; padding-right:13px; min-height:39px; }
  .catalog-search .catalog-clear { padding-left:2px; padding-right:2px; flex:none; }
  .catalog-results { padding-top:5px; padding-bottom:12px; }
  .catalog-book { margin-bottom:23px; }
  .catalog-book>h2 { font-size:17px; }
  .catalog-tests { grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; }
  .catalog-test { min-height:99px; padding:16px 14px 19px; }
  .catalog-test-title { font-size:21px; }
  .catalog-test-meta { font-size:11px; }
  .catalog-list-heading { padding:16px; gap:10px; }
  .catalog-list-heading h2 { font-size:16px; }
  .catalog-count { font-size:11px; }
  .catalog-row { padding:17px 16px; gap:11px; }
  .catalog-row-title { font-size:16px; }
  .catalog-row-meta { font-size:11px; }
  .catalog-row-actions { gap:15px; }
  .catalog-start { min-height:39px; }
  .catalog-action { padding-top:10px; padding-bottom:10px; }
  .catalog-footer { flex-direction:column; gap:3px; font-size:9px; }
}
@media print { .catalog-masthead,.catalog-filters,.catalog-row-actions,.catalog-views { display:none; } .catalog-shell { width:100%; padding:0; } .catalog-row,.catalog-test { break-inside:avoid; } }
