.ctg-hero { padding:62px 0 54px; border-bottom:1px solid var(--line); }
.ctg-hero-grid { display:grid; grid-template-columns:1fr auto; gap:48px; align-items:center; }
.ctg-mark { width:132px; height:132px; border-radius:32px; display:grid; place-items:center; color:white; background:linear-gradient(135deg,var(--teal),var(--nhs-blue)); box-shadow:var(--shadow); transform:rotate(2deg); }
.ctg-mark svg { width:66px; height:66px; }
.ctg-status { display:inline-flex; align-items:center; gap:9px; padding:8px 13px; border:1px solid #bfe8e5; background:#effdfb; color:#065f61; border-radius:999px; font-weight:800; font-size:.88rem; margin-top:12px; }
.ctg-status.data-error { border-color:#f2c5c5; background:#fff4f4; color:#8a2525; }
.ctg-status .status-dot { width:8px; height:8px; background:var(--teal); border-radius:50%; box-shadow:0 0 0 4px rgba(0,124,131,.12); }
.ctg-section { padding-top:42px; }
.ctg-search-card { position:relative; z-index:5; background:#fff; border:1px solid var(--line); border-radius:20px; padding:25px; box-shadow:var(--shadow); margin-top:-72px; }
.ctg-controls { display:grid; grid-template-columns:230px 260px minmax(0,1fr); gap:20px; align-items:start; }
.ctg-field label,.ctg-label { display:block; font-family:Montserrat,Arial,sans-serif; font-weight:800; font-size:.86rem; color:var(--navy-2); margin:0 0 8px; }
.ctg-field select,.ctg-field input { width:100%; height:52px; box-sizing:border-box; border:1px solid #b9cad9; border-radius:11px; background:#fff; color:var(--ink); font:600 1rem "Open Sans",Arial,sans-serif; outline:none; transition:border-color .15s,box-shadow .15s; }
.ctg-field select { padding:0 42px 0 14px; }
.ctg-field input { padding:0 48px 0 46px; }
.ctg-field select:focus,.ctg-field input:focus { border-color:var(--teal); box-shadow:0 0 0 4px rgba(0,124,131,.11); }
.ctg-type-options { display:grid; grid-template-columns:1fr 1fr; gap:8px; }
.ctg-type { height:52px; border:1px solid #b9cad9; border-radius:11px; background:#fff; color:var(--navy-2); font-family:Montserrat,Arial,sans-serif; font-size:.86rem; font-weight:800; cursor:pointer; transition:.15s; }
.ctg-type:hover { border-color:var(--teal); color:var(--teal); }
.ctg-type.active { border-color:var(--teal); background:#effdfb; color:#066867; box-shadow:0 0 0 3px rgba(0,124,131,.08); }
.ctg-search-field { position:relative; }
.ctg-search-wrap { position:relative; }
.ctg-search-wrap > svg { position:absolute; left:15px; top:50%; transform:translateY(-50%); width:21px; color:var(--teal); pointer-events:none; }
.ctg-clear { position:absolute; right:9px; top:50%; transform:translateY(-50%); width:34px; height:34px; display:grid; place-items:center; border:0; border-radius:50%; background:transparent; color:var(--muted); cursor:pointer; }
.ctg-clear:hover { background:var(--soft); color:var(--navy); }
.ctg-results { position:absolute; left:0; right:0; top:calc(100% + 7px); max-height:390px; overflow:auto; background:#fff; border:1px solid var(--line); border-radius:13px; box-shadow:0 20px 42px rgba(3,27,53,.18); z-index:20; }
.ctg-result-item { width:100%; border:0; border-bottom:1px solid var(--line); background:#fff; padding:13px 16px; text-align:left; cursor:pointer; display:grid; grid-template-columns:95px 1fr; gap:12px; align-items:start; color:var(--ink); }
.ctg-result-item:last-child { border-bottom:0; }
.ctg-result-item:hover,.ctg-result-item.active { background:#f1faf9; }
.ctg-result-code { font-family:Montserrat,Arial,sans-serif; color:var(--teal); font-weight:900; }
.ctg-result-desc { line-height:1.4; font-size:.94rem; }
.ctg-empty-search { padding:16px; color:var(--muted); }
.ctg-help { margin-top:13px; color:var(--muted); font-size:.87rem; }
.ctg-message { text-align:center; max-width:630px; margin:72px auto 35px; color:var(--muted); }
.ctg-message h2 { margin-bottom:.45rem; }
.ctg-message-icon { width:72px; height:72px; margin:0 auto 18px; border-radius:50%; display:grid; place-items:center; background:#effdfb; color:var(--teal); }
.ctg-message-icon svg { width:34px; height:34px; }
.ctg-output { margin-top:38px; }
.ctg-result-header { padding:30px; border-top:4px solid var(--teal); }
.ctg-result-top { display:flex; justify-content:space-between; align-items:flex-start; gap:24px; }
.ctg-result-kicker { font-size:.8rem; font-weight:900; letter-spacing:.08em; text-transform:uppercase; color:var(--muted); margin-bottom:8px; }
.ctg-code-line { display:flex; align-items:center; flex-wrap:wrap; gap:10px; margin-bottom:10px; }
.ctg-code { font-family:Montserrat,Arial,sans-serif; font-size:2rem; font-weight:900; color:var(--nhs-blue); letter-spacing:-.03em; }
.ctg-pill { display:inline-flex; align-items:center; border-radius:999px; font-weight:900; font-size:.75rem; padding:5px 9px; background:#effdfb; color:#066867; border:1px solid #bfe8e5; }
.ctg-result-header h2 { font-size:clamp(1.4rem,3vw,2.05rem); margin:0; max-width:900px; }
.ctg-release-line { margin-top:12px; color:var(--muted); font-size:.9rem; }
.ctg-section-block { margin-top:42px; }
.ctg-heading { display:flex; justify-content:space-between; align-items:end; gap:20px; margin-bottom:16px; }
.ctg-heading .eyebrow { margin-bottom:5px; font-size:.78rem; }
.ctg-heading h2 { margin:0; font-size:1.65rem; }
.ctg-count { color:var(--muted); font-weight:800; font-size:.9rem; }
.ctg-mapping-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:18px; }
.ctg-map-card { background:#fff; border:1px solid var(--line); border-radius:17px; padding:22px; box-shadow:0 10px 28px rgba(6,40,77,.07); }
.ctg-map-head { display:flex; justify-content:space-between; align-items:flex-start; gap:14px; }
.ctg-map-card h3 { margin:.1rem 0 .35rem; color:var(--navy-2); font-size:1.55rem; }
.ctg-map-card h3 span { color:var(--teal); }
.ctg-map-desc { color:var(--muted); margin:0; line-height:1.5; }
.ctg-flag { white-space:nowrap; display:inline-flex; padding:5px 9px; border-radius:999px; background:#f5f8fb; border:1px solid var(--line); color:var(--navy); font-size:.76rem; font-weight:900; }
.ctg-type-label { display:inline-flex; margin-bottom:14px; color:var(--teal); font-size:.78rem; font-weight:900; letter-spacing:.04em; text-transform:uppercase; }
.ctg-splits { margin-top:18px; padding-top:17px; border-top:1px solid var(--line); }
.ctg-splits h4 { font-family:Montserrat,Arial,sans-serif; color:var(--navy-2); margin:0 0 10px; font-size:.92rem; }
.ctg-split-list { display:flex; flex-wrap:wrap; gap:8px; }
.ctg-split-link { display:inline-flex; align-items:center; gap:6px; padding:7px 10px; border:1px solid #cfe0ef; border-radius:10px; background:#f8fbfe; color:var(--nhs-blue); font-family:Montserrat,Arial,sans-serif; font-size:.82rem; font-weight:900; text-decoration:none; }
.ctg-split-link:hover { border-color:var(--teal); background:#effdfb; color:var(--teal); }
.ctg-split-link svg { width:14px; height:14px; }
.ctg-split-flag { color:var(--muted); font-family:"Open Sans",Arial,sans-serif; font-size:.72rem; font-weight:700; }
.ctg-no-splits { color:var(--muted); font-size:.88rem; margin:0; }
.ctg-warning { margin-top:30px; display:flex; gap:13px; align-items:flex-start; padding:18px 20px; border:1px solid #d6e3ee; border-radius:14px; background:#f8fbfe; color:var(--muted); font-size:.9rem; line-height:1.55; }
.ctg-warning svg { flex:0 0 auto; width:20px; color:var(--nhs-blue); margin-top:1px; }
.ctg-source { margin-top:30px; padding:22px; display:flex; gap:14px; align-items:flex-start; }
.ctg-source-icon { width:42px; height:42px; border-radius:12px; background:#effdfb; color:var(--teal); display:grid; place-items:center; flex:0 0 auto; }
.ctg-source h3 { margin:0 0 4px; font-size:1rem; }
.ctg-source p { margin:0; color:var(--muted); font-size:.9rem; }
.ctg-actions { display:flex; gap:9px; flex-wrap:wrap; }
.ctg-actions .btn svg { width:17px; }
@media (max-width:900px) {
  .ctg-controls { grid-template-columns:1fr 1fr; }
  .ctg-search-field { grid-column:1 / -1; }
  .ctg-mapping-grid { grid-template-columns:1fr; }
  .ctg-mark { display:none; }
}
@media (max-width:620px) {
  .ctg-controls { grid-template-columns:1fr; }
  .ctg-search-field { grid-column:auto; }
  .ctg-search-card { padding:18px; margin-top:-54px; }
  .ctg-result-top { display:block; }
  .ctg-actions { margin-top:18px; }
  .ctg-code { font-size:1.65rem; }
}
