/* VA Handbook 5005 contents. Spacing comes from container gaps and fixed row
   heights, never from child margins, so nothing drifts or jumps while typing. */
.handbook-main{display:flex;flex-direction:column;gap:14px;--hb-row:44px;--hb-indent:22px}
.handbook-main .page-heading{margin:0}
.handbook-main .tool-info{margin:6px 0 0}
.handbook-main [hidden]{display:none!important}

.hb-tools{display:flex;align-items:center;gap:10px 12px;flex-wrap:wrap}
.hb-search{flex:1 1 320px;max-width:640px;min-width:0}
.hb-search input{display:block;width:100%;min-height:var(--hb-row);padding:9px 12px;border:1px solid var(--line-strong);border-radius:5px;background:var(--paper);color:var(--ink);font-size:15px}
.hb-search input:disabled{background:var(--canvas)}
.hb-bulk{display:flex;gap:8px}
.hb-bulk .button{min-height:var(--hb-row)}
.hb-status{margin:0;min-height:20px;font-size:13px;line-height:20px;color:var(--muted)}

.hb-tree{display:flex;flex-direction:column;gap:12px;max-width:1000px;min-width:0}
.hb-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column}
.hb-parts{gap:12px}
.hb-node{min-width:0}

/* A row: chevron, text, then the page it opens. */
.hb-row{display:grid;grid-template-columns:var(--hb-row) minmax(0,1fr) auto;align-items:start;column-gap:0;min-height:var(--hb-row);padding-right:12px}
.hb-toggle,.hb-gap{width:var(--hb-row);height:var(--hb-row);flex:none}
.hb-toggle{display:grid;place-items:center;padding:0;border:0;background:transparent;color:inherit}
.hb-toggle:disabled{cursor:default;opacity:.55}
.hb-chevron{width:7px;height:7px;border-right:2px solid currentColor;border-bottom:2px solid currentColor;transform:rotate(-45deg);transition:transform .12s}
.is-open>.hb-row .hb-chevron{transform:rotate(45deg)}
/* Every cell's first line is centered 22px down, so the chevron, the title and the
   page number share one line however far a long title wraps. */
.hb-text{display:grid;gap:2px;min-width:0;padding:12px 0}
.hb-link,.hb-name{display:flex;gap:10px;align-items:baseline;min-width:0;color:var(--ink);text-decoration:none;line-height:1.4}
.hb-link:hover .hb-title{text-decoration:underline;text-underline-offset:3px}
.hb-link .hb-title::after{content:' ↗';color:var(--muted);font-size:.85em;white-space:nowrap}
.hb-label{flex:none;font-size:12px;font-weight:600;color:var(--muted);letter-spacing:.01em}
.hb-title{min-width:0;overflow-wrap:anywhere}
.hb-hint,.hb-note{font-size:12px;line-height:1.5;color:var(--muted)}
.hb-revisions{font-size:12px;line-height:1.6;color:var(--muted)}
.hb-revisions a{color:var(--green);font-weight:600;text-underline-offset:2px}
.hb-part>.hb-row .hb-note,.hb-part>.hb-row .hb-revisions,.hb-part>.hb-row .hb-revisions a{color:var(--soft-2)}
.hb-change>.hb-row .hb-title{font-weight:600}
.hb-source-note{margin:0;padding:12px 14px;border-left:3px solid var(--alert-line);background:var(--alert);font-size:13px;line-height:1.6}
.hb-source-note a{color:var(--green);font-weight:600}
.hb-meta{padding:12px 0 0 14px;font-weight:400;font-size:12px;line-height:20px;color:var(--muted);text-align:right;white-space:nowrap;font-variant-numeric:tabular-nums}
.hb-row:hover{background:var(--soft)}
mark{background:#f6e3a2;color:inherit;border-radius:2px;padding:0 1px}

/* Indented children, joined to their parent by a guide line under the chevron. */
.hb-children{margin-left:calc(var(--hb-row) / 2 - 1px);padding-left:calc(var(--hb-indent) - var(--hb-row) / 2 + 1px);border-left:1px solid var(--line)}

/* Part: a dark band, opening onto a white panel. The opening pages are a quiet card. */
.hb-part,.hb-opening{background:var(--paper);border:1px solid var(--line);border-radius:8px;overflow:hidden}
.hb-opening>.hb-row{padding-left:6px}
.hb-opening>.hb-children{margin:0;padding:0 0 6px;border:0}
.hb-opening>.hb-children>.hb-node>.hb-row{padding-left:6px}
.hb-part>.hb-row{background:var(--green);color:#fff;min-height:52px}
.hb-part>.hb-row .hb-toggle{height:52px}
.hb-part>.hb-row .hb-meta{padding-top:16px}
.hb-part>.hb-row:hover{background:var(--ink-2)}
.hb-part>.hb-row .hb-link,.hb-part>.hb-row .hb-name{color:#fff;align-items:baseline}
.hb-part>.hb-row .hb-label{color:var(--line);font-size:11px;letter-spacing:.13em;text-transform:uppercase}
.hb-part>.hb-row .hb-title{font:500 21px/1.3 var(--serif)}
.hb-part>.hb-row .hb-link .hb-title::after{color:var(--line)}
.hb-part>.hb-row .hb-meta{color:var(--line)}
.hb-part>.hb-row .hb-toggle:focus-visible,.hb-part>.hb-row .hb-link:focus-visible{outline-color:#fff}
.hb-part>.hb-children{margin:0;padding:6px 0 8px;border:0;gap:0}
.hb-part>.hb-children>.hb-node>.hb-row{padding-left:6px}
.hb-part>.hb-children>.hb-node>.hb-children{margin-left:calc(var(--hb-row) / 2 + 5px)}

/* Chapters and appendix groups carry more weight than the paragraphs below. */
.hb-chapter>.hb-row,.hb-appendices>.hb-row,.hb-opening>.hb-row{font-weight:600}
.hb-chapter>.hb-row .hb-title,.hb-appendices>.hb-row .hb-label,.hb-opening>.hb-row .hb-label{font-size:15.5px;color:var(--ink)}
.hb-chapter>.hb-row .hb-label{color:var(--green);font-size:12px;text-transform:uppercase;letter-spacing:.08em}
.hb-section>.hb-row .hb-title{font-weight:600}
.hb-section>.hb-row .hb-label{color:var(--green)}
.hb-paragraph>.hb-row .hb-label{min-width:1.7em}
.hb-section>.hb-row .hb-label{min-width:4.6em}
.hb-appendix>.hb-row .hb-label{min-width:8.6em}
.hb-paragraph .hb-title,.hb-appendix .hb-title,.hb-leaf .hb-title{font-weight:400}
.hb-appendix>.hb-row .hb-label{color:var(--green)}
.hb-appendices>.hb-row .hb-meta,.hb-opening>.hb-row .hb-meta{color:var(--muted)}
.is-rescinded .hb-title{color:var(--muted);font-style:italic}

/* While searching: matches stand out, their ancestors recede. */
.is-context>.hb-row{color:var(--muted)}
.is-context>.hb-row .hb-title,.is-context>.hb-row .hb-label{color:var(--muted);font-weight:400}
.hb-part.is-context>.hb-row{color:#fff}
.hb-part.is-context>.hb-row .hb-title{color:#fff}
.hb-part.is-context>.hb-row .hb-label{color:var(--line)}
.is-hit>.hb-row{background:var(--soft)}
.is-hit>.hb-row .hb-title{font-weight:600}

.hb-empty{display:grid;gap:6px;padding:20px;background:var(--paper);border:1px solid var(--line);border-radius:8px;max-width:640px}
.hb-empty p{margin:0;color:var(--muted);font-size:14px;line-height:1.6}

@media(max-width:560px){
  .hb-row{grid-template-columns:var(--hb-row) minmax(0,1fr);padding-right:10px}
  .hb-meta{grid-column:2;padding:0 0 10px;text-align:left;white-space:normal}
  .hb-text{padding-bottom:2px}
  .hb-appendix>.hb-row .hb-label{min-width:0}
  .hb-part>.hb-row .hb-title{font-size:19px}
  .hb-link,.hb-name{gap:8px}
  .hb-bulk{width:100%}
  .hb-bulk .button{flex:1}
  :root{--hb-indent:16px}
}
@media print{
  .hb-tools,.hb-status,.hb-toggle,.hb-gap{display:none!important}
  .hb-list[hidden]{display:flex!important}
  .hb-part>.hb-row{background:var(--paper);color:#000;border-bottom:1px solid #000}
  .hb-part>.hb-row .hb-link,.hb-part>.hb-row .hb-label,.hb-part>.hb-row .hb-title,.hb-part>.hb-row .hb-meta{color:#000}
  .hb-link .hb-title::after{content:none}
}
@media(prefers-reduced-motion:reduce){.hb-chevron{transition:none}}
