/* ============================================
   Medmio - HCPCS Level II Code Lookup
   Scoped styles for /hcpcs-codes/ hub + category guide pages.
   Uses global tokens from styles.css (no hardcoded brand colors).
   Teal accent (denial tool = blue, ICD-10 = green, HCPCS = teal).
   ============================================ */
:root { --hc-deep: #178f85; }

/* ---- Hero ---- */
.hc-hero {
  padding: calc(var(--nav-h) + 48px) 0 40px;
  background:
    radial-gradient(900px 480px at 85% -10%, rgba(29,167,155,.10), transparent 60%),
    radial-gradient(640px 380px at -5% 110%, rgba(47,133,230,.05), transparent 60%),
    var(--white);
  border-bottom: 1px solid var(--border);
}
.hc-hero__inner { max-width: 960px; margin: 0 auto; text-align: center; }
.hc-hero__eyebrow {
  display: inline-flex; align-items: center; gap: 7px;
  font-size: .74rem; font-weight: 700; letter-spacing: .12em; text-transform: uppercase;
  color: var(--hc-deep); background: var(--teal-soft);
  padding: 5px 12px; border-radius: 999px; margin-bottom: 18px;
  border: 1px solid rgba(29,167,155,.2);
}
.hc-hero__eyebrow svg { width: 13px; height: 13px; }
.hc-hero h1 { font-size: clamp(2rem, 4vw, 3rem); letter-spacing: -.03em; line-height: 1.08; margin: 0 0 16px; }
.hc-hero__lead { font-size: 1.12rem; color: var(--gray); line-height: 1.6; max-width: 720px; margin: 0 auto 14px; }
.hc-hero__meta-line { font-size: .82rem; color: var(--gray-soft); margin-top: 18px; }
.hc-hero__meta-line strong { color: var(--ink-soft); font-weight: 600; }

/* ---- Search tool ---- */
.hc-tool { max-width: 760px; margin: 22px auto 0; text-align: left; }
.hc-search { position: relative; }
.hc-search__field { position: relative; display: flex; align-items: center; }
.hc-search__field > svg { position: absolute; left: 16px; width: 18px; height: 18px; color: var(--gray-soft); pointer-events: none; }
.hc-search__input {
  width: 100%; font: inherit; font-size: 1.02rem; color: var(--ink);
  padding: 15px 16px 15px 46px; border: 1.5px solid var(--border-strong);
  border-radius: var(--radius); background: var(--white); transition: border-color .15s, box-shadow .15s;
}
.hc-search__input:focus { outline: none; border-color: var(--teal); box-shadow: 0 0 0 3px rgba(29,167,155,.14); }
.hc-search__input::placeholder { color: var(--gray-soft); }

/* ---- Category facet chips ---- */
.hc-facet { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 12px; }
.hc-facet__chip {
  font: inherit; font-weight: 600; font-size: .82rem; padding: 6px 13px; border-radius: 999px;
  border: 1px solid var(--border); background: var(--white); color: var(--ink-soft); cursor: pointer;
  transition: all .15s;
}
.hc-facet__chip:hover { border-color: var(--teal); color: var(--hc-deep); }
.hc-facet__chip.is-active { background: var(--teal); border-color: var(--teal); color: #fff; box-shadow: var(--shadow-sm); }

/* ---- Results ---- */
.hc-results { margin-top: 14px; display: flex; flex-direction: column; gap: 8px; }
.hc-result {
  display: flex; align-items: center; gap: 14px;
  padding: 12px 14px; border: 1px solid var(--border); border-radius: var(--radius-sm);
  background: var(--white); transition: border-color .15s, box-shadow .15s;
}
.hc-result:hover { border-color: var(--border-strong); box-shadow: var(--shadow-sm); }
.hc-result__code {
  display: inline-flex; align-items: center; justify-content: center;
  font-family: ui-monospace, "SF Mono", Menlo, Consolas, monospace;
  font-weight: 800; font-size: .86rem; letter-spacing: .01em;
  padding: 6px 11px; border-radius: 7px; white-space: nowrap; flex-shrink: 0; min-width: 64px;
  background: var(--teal-soft); color: var(--hc-deep); border: 1px solid rgba(29,167,155,.22);
}
.hc-result__body { min-width: 0; flex: 1; }
.hc-result__desc { display: block; font-size: .92rem; font-weight: 500; color: var(--ink); line-height: 1.4; }
.hc-result__tag { display: flex; font-size: .72rem; font-weight: 700; letter-spacing: .04em; text-transform: uppercase; color: var(--gray-soft); margin-top: 5px; align-items: center; gap: 6px; }
.hc-result__copy {
  font: inherit; font-size: .76rem; font-weight: 600; color: var(--gray);
  background: var(--white); border: 1px solid var(--border); border-radius: var(--radius-sm);
  padding: 6px 10px; cursor: pointer; display: inline-flex; align-items: center; gap: 6px; flex-shrink: 0;
  transition: all .15s;
}
.hc-result__copy svg { width: 13px; height: 13px; }
.hc-result__copy:hover { border-color: var(--teal); color: var(--hc-deep); }
.hc-result__copy.is-copied { background: var(--teal); color: var(--white); border-color: var(--teal); }

.hc-loading, .hc-empty {
  padding: 22px 16px; text-align: center; color: var(--gray); font-size: .9rem;
  border: 1px dashed var(--border-strong); border-radius: var(--radius-sm);
  display: flex; align-items: center; justify-content: center; gap: 10px;
}
.hc-empty strong { color: var(--ink-soft); }
.hc-spinner { width: 16px; height: 16px; border: 2px solid var(--border-strong); border-top-color: var(--teal); border-radius: 50%; animation: hc-spin .7s linear infinite; }
@keyframes hc-spin { to { transform: rotate(360deg); } }
.hc-results__more { font-size: .8rem; color: var(--gray-soft); text-align: center; padding: 8px 0 2px; }

/* ---- Cluster-guide hint (appears when a query matches a guide topic) ---- */
.hc-hint {
  display: flex; align-items: center; gap: 12px; margin-top: 12px;
  padding: 12px 16px; border-radius: var(--radius);
  background: linear-gradient(135deg, var(--teal-soft), var(--blue-soft));
  border: 1px solid rgba(29,167,155,.22); color: var(--ink-soft); font-size: .9rem; line-height: 1.5;
}
.hc-hint svg { width: 18px; height: 18px; color: var(--hc-deep); flex-shrink: 0; }
.hc-hint a { font-weight: 700; color: var(--hc-deep); text-decoration: underline; text-underline-offset: 2px; }

/* ---- Default state (popular searches before typing) ---- */
.hc-default { margin-top: 16px; display: flex; flex-direction: column; gap: 12px; }
.hc-default__row { display: flex; align-items: center; gap: 8px 10px; flex-wrap: wrap; }
.hc-default__label { font-size: .72rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: var(--gray-soft); min-width: 58px; }
.hc-pill { font: inherit; display: inline-flex; align-items: center; font-weight: 600; font-size: .84rem; padding: 6px 12px; border-radius: 999px; border: 1px solid var(--border); background: var(--white); color: var(--ink-soft); cursor: pointer; transition: all .15s; }
.hc-pill:hover { border-color: var(--teal); color: var(--hc-deep); box-shadow: var(--shadow-sm); }

/* ---- CodeSight strip ---- */
.hc-strip { background: linear-gradient(135deg, var(--teal-soft), var(--blue-soft)); border-top: 1px solid var(--border); border-bottom: 1px solid var(--border); }
.hc-strip__inner { display: flex; align-items: center; gap: 24px; flex-wrap: wrap; padding: 26px 0; }
.hc-strip__text { flex: 1; min-width: 280px; }
.hc-strip__text h2 { font-size: clamp(1.2rem, 2.4vw, 1.55rem); letter-spacing: -.02em; margin: 0 0 5px; }
.hc-strip__text p { font-size: .96rem; color: var(--ink-soft); margin: 0; }
.hc-strip__actions { display: flex; gap: 10px; flex-wrap: wrap; }

/* ---- Section scaffolding ---- */
.hc-section { padding: 56px 0; }
.hc-section--alt { background: var(--gray-bg); border-top: 1px solid var(--border); border-bottom: 1px solid var(--border); }
.hc-prose { max-width: 760px; margin: 0 auto; }
.hc-prose p { font-size: .98rem; color: var(--gray); line-height: 1.7; margin: 0 auto 14px; }
.hc-prose p strong { color: var(--ink-soft); font-weight: 600; }
.hc-prose a { color: var(--hc-deep); text-decoration: underline; text-underline-offset: 2px; }

/* ---- Guides grid (links to category guide pages) ---- */
.hc-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); gap: 16px; }
.hc-card {
  display: flex; flex-direction: column; gap: 8px; padding: 18px;
  border: 1px solid var(--border); border-radius: var(--radius); background: var(--white);
  transition: border-color .18s, transform .18s, box-shadow .18s; color: inherit;
}
.hc-card:hover { border-color: var(--border-strong); transform: translateY(-2px); box-shadow: var(--shadow-md); }
.hc-card__title { font-size: .98rem; font-weight: 700; color: var(--ink); line-height: 1.3; display: flex; align-items: center; gap: 9px; }
.hc-card__title .hc-card__fam { font-family: ui-monospace, Menlo, Consolas, monospace; font-size: .76rem; font-weight: 700; color: var(--hc-deep); background: var(--teal-soft); padding: 2px 7px; border-radius: 5px; }
.hc-card__def { font-size: .86rem; color: var(--gray); line-height: 1.55; }

/* ---- "How to read a HCPCS code" - visual anatomy diagram ---- */
.hc-anatomy { max-width: 720px; margin: 0 auto; }
.hc-anatomy__code { display: flex; align-items: flex-start; justify-content: center; gap: 8px; margin-bottom: 30px; flex-wrap: wrap; }
.hc-seg { display: flex; flex-direction: column; align-items: center; gap: 11px; }
.hc-seg__chars { font-family: ui-monospace, Menlo, Consolas, monospace; font-weight: 800; font-size: clamp(1.7rem, 5vw, 2.5rem); line-height: 1; padding: 14px 16px; border-radius: 12px; }
.hc-seg__label { font-size: .7rem; font-weight: 700; text-transform: uppercase; letter-spacing: .07em; }
.hc-seg--cat .hc-seg__chars { background: var(--teal-soft); color: var(--hc-deep); border: 2px solid rgba(29,167,155,.32); }
.hc-seg--cat .hc-seg__label { color: var(--hc-deep); }
.hc-seg--detail .hc-seg__chars { background: var(--blue-soft); color: var(--blue-deep); border: 2px solid rgba(47,133,230,.3); }
.hc-seg--detail .hc-seg__label { color: var(--blue-deep); }
.hc-anatomy__legend { display: flex; flex-direction: column; gap: 13px; max-width: 600px; margin: 0 auto 20px; }
.hc-anatomy__legend > div { font-size: .92rem; color: var(--gray); line-height: 1.55; padding-left: 22px; position: relative; }
.hc-anatomy__legend strong { color: var(--ink); font-weight: 700; }
.hc-anatomy__legend code, .hc-anatomy__note code { font-family: ui-monospace, Menlo, Consolas, monospace; font-size: .85rem; background: var(--gray-bg); padding: 2px 6px; border-radius: 5px; color: var(--ink-soft); }
.hc-dot { position: absolute; left: 0; top: 6px; width: 11px; height: 11px; border-radius: 3px; }
.hc-dot--cat { background: var(--teal); }
.hc-dot--detail { background: var(--blue); }
.hc-anatomy__note { font-size: .9rem; color: var(--gray); line-height: 1.65; max-width: 600px; margin: 0 auto; padding-top: 16px; border-top: 1px solid var(--border); }
.hc-anatomy__note strong { color: var(--ink); font-weight: 600; }

/* ---- Source / disclaimer meta ---- */
.hc-meta { font-size: .78rem; color: var(--gray-soft); line-height: 1.6; margin-top: 28px; padding-top: 18px; border-top: 1px solid var(--border); }
.hc-meta a { color: var(--gray); text-decoration: underline; text-underline-offset: 2px; }

/* ============================================
   Category guide pages
   ============================================ */
.hc-guide { padding-top: calc(var(--nav-h) + 12px); padding-bottom: 56px; }
.hc-breadcrumb { font-size: .82rem; color: var(--gray); padding: 14px 0 0; display: flex; align-items: center; gap: 7px; flex-wrap: wrap; }
.hc-breadcrumb a { color: var(--gray); transition: color .15s; }
.hc-breadcrumb a:hover { color: var(--hc-deep); }
.hc-breadcrumb svg { width: 12px; height: 12px; color: var(--gray-soft); }
.hc-breadcrumb [aria-current] { color: var(--ink-soft); font-weight: 600; }
.hc-guidehead { padding: 18px 0 6px; max-width: 820px; }
.hc-guidehead h1 { font-size: clamp(1.8rem, 3.4vw, 2.5rem); letter-spacing: -.02em; line-height: 1.1; margin: 0 0 14px; }
.hc-guidehead__lead { font-size: 1.12rem; line-height: 1.65; color: var(--ink-soft); margin: 0; }

.hc-guide__layout { display: grid; grid-template-columns: 1fr 290px; gap: 44px; align-items: start; padding: 26px 0 0; }
.hc-guide__main { min-width: 0; max-width: 760px; }
.hc-guide__aside { position: sticky; top: calc(var(--nav-h) + 16px); display: flex; flex-direction: column; gap: 16px; }
@media (max-width: 900px) { .hc-guide__layout { grid-template-columns: 1fr; gap: 28px; } .hc-guide__aside { position: static; } }

.hc-block { margin-bottom: 34px; }
.hc-block h2 { font-size: 1.3rem; font-weight: 700; color: var(--ink); margin: 0 0 14px; letter-spacing: -.01em; }
.hc-block h3 { font-size: 1rem; font-weight: 700; color: var(--ink); margin: 20px 0 8px; }
.hc-block p { font-size: .98rem; color: var(--gray); line-height: 1.7; margin: 0 0 12px; }
.hc-block p strong { color: var(--ink-soft); font-weight: 600; }
.hc-block a { color: var(--hc-deep); text-decoration: underline; text-underline-offset: 2px; }
.hc-block code, .hc-table code { font-family: ui-monospace, Menlo, Consolas, monospace; font-size: .85em; background: var(--gray-bg); padding: 2px 6px; border-radius: 5px; color: var(--hc-deep); font-weight: 600; }

/* code table */
.hc-table { width: 100%; border-collapse: collapse; border: 1px solid var(--border); border-radius: var(--radius); overflow: hidden; margin: 6px 0 14px; font-size: .92rem; }
.hc-table th { text-align: left; font-size: .7rem; text-transform: uppercase; letter-spacing: .06em; color: var(--gray-soft); background: var(--gray-bg); padding: 10px 14px; border-bottom: 1px solid var(--border); }
.hc-table td { padding: 10px 14px; border-bottom: 1px solid var(--border); color: var(--ink-soft); line-height: 1.45; vertical-align: top; }
.hc-table tr:last-child td { border-bottom: none; }
.hc-table td:first-child { font-family: ui-monospace, Menlo, Consolas, monospace; font-weight: 700; color: var(--hc-deep); white-space: nowrap; }

/* checklist + mistakes */
.hc-checklist { list-style: none; padding: 0; margin: 0 0 12px; display: flex; flex-direction: column; gap: 10px; }
.hc-checklist li { position: relative; padding-left: 28px; font-size: .96rem; color: var(--ink-soft); line-height: 1.6; }
.hc-checklist li svg { position: absolute; left: 0; top: 3px; width: 17px; height: 17px; color: var(--teal); }
.hc-mistakes { list-style: none; padding: 0; margin: 0 0 12px; display: flex; flex-direction: column; gap: 14px; }
.hc-mistakes li { position: relative; padding-left: 26px; font-size: .96rem; color: var(--gray); line-height: 1.6; }
.hc-mistakes li::before { content: ''; position: absolute; left: 5px; top: 8px; width: 8px; height: 8px; border-radius: 2px; background: var(--orange); }
.hc-mistakes strong { color: var(--ink); display: block; margin-bottom: 1px; font-weight: 600; }

/* callouts */
.hc-callout { border-radius: var(--radius); padding: 15px 18px; font-size: .94rem; line-height: 1.6; display: flex; gap: 12px; margin: 4px 0 16px; }
.hc-callout svg { width: 18px; height: 18px; flex-shrink: 0; margin-top: 2px; }
.hc-callout strong { color: var(--ink); }
.hc-callout--tip { background: var(--teal-soft); border: 1px solid rgba(29,167,155,.22); color: var(--ink-soft); }
.hc-callout--tip svg { color: var(--hc-deep); }
.hc-callout--warn { background: rgba(237,118,38,.07); border: 1px solid rgba(237,118,38,.2); color: var(--ink-soft); }
.hc-callout--warn svg { color: var(--orange); }

/* worked example */
.hc-worked { border: 1px solid var(--border); border-radius: var(--radius); overflow: hidden; background: var(--white); margin: 6px 0 14px; }
.hc-worked__scenario { padding: 14px 16px; background: var(--gray-bg); border-bottom: 1px solid var(--border); font-size: .94rem; color: var(--ink-soft); line-height: 1.6; }
.hc-worked__scenario strong { color: var(--ink); }
.hc-worked__codes { padding: 13px 16px; display: flex; flex-wrap: wrap; align-items: center; gap: 8px; border-bottom: 1px solid var(--border); }
.hc-worked__label { font-size: .68rem; font-weight: 700; letter-spacing: .07em; text-transform: uppercase; color: var(--gray-soft); margin-right: 4px; }
.hc-worked__codes code { font-family: ui-monospace, Menlo, Consolas, monospace; font-weight: 700; font-size: .85rem; background: var(--teal-soft); color: var(--hc-deep); padding: 4px 10px; border-radius: 6px; }
.hc-worked__why { padding: 14px 16px; font-size: .9rem; color: var(--gray); line-height: 1.65; margin: 0; }
.hc-worked__why strong { color: var(--ink); font-weight: 600; }
.hc-worked__why code { font-family: ui-monospace, Menlo, Consolas, monospace; font-size: .85em; background: var(--gray-bg); padding: 1px 5px; border-radius: 4px; color: var(--hc-deep); }

/* aside */
.hc-aside__card { border: 1px solid var(--border); border-radius: var(--radius); padding: 18px; background: var(--white); }
.hc-aside__card h3 { font-size: .74rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: var(--gray-soft); margin: 0 0 12px; }
.hc-aside__card p { font-size: .9rem; color: var(--gray); line-height: 1.55; margin: 0 0 14px; }
.hc-aside__card--cta { background: linear-gradient(135deg, var(--ink), var(--ink-soft)); color: #fff; border: none; }
.hc-aside__card--cta h3 { color: var(--teal); }
.hc-aside__card--cta p { color: rgba(255,255,255,.85); }
.hc-rellinks { display: flex; flex-direction: column; gap: 10px; }
.hc-rellink { display: flex; align-items: center; gap: 9px; font-size: .9rem; font-weight: 600; color: var(--ink-soft); transition: color .15s; }
.hc-rellink:hover { color: var(--hc-deep); }
.hc-rellink svg { width: 15px; height: 15px; color: var(--teal); flex-shrink: 0; }

/* ---- Responsive ---- */
@media (max-width: 600px) {
  .hc-result { flex-wrap: wrap; gap: 10px; }
  .hc-result__copy { margin-left: auto; }
  .hc-section { padding: 44px 0; }
  /* wide tables scroll within their own box instead of widening the page */
  .hc-table { display: block; overflow-x: auto; -webkit-overflow-scrolling: touch; font-size: .86rem; }
  .hc-table th, .hc-table td { padding: 8px 10px; }
  /* tap targets >= 40px on touch */
  .hc-result__copy, .hc-facet__chip, .hc-pill { min-height: 40px; }
}
