/* LedgeX Research — Hollister financial emergency. Extends /insights/newport/research.css (same tokens and grammar).
   Static figures only: no script. Grammar: green = restricted / audited, burnt orange = general & water funds,
   blue = pooled or city projection, dashed = projection or recomputation. */
.hb-page { --gfc: #18282E; --rev: #1F5FA8; --exp: #B4472B; --restr: #2E6A4E; --pool: #1F5FA8; --free: #B4472B; --calc: #2E6A4E; }
.hb-fig .eyebrow { margin: 14px 0 6px; }
.hb-draft { display: inline-block; margin-bottom: 14px; padding: 4px 10px; font-size: .74rem; letter-spacing: .06em; text-transform: uppercase;
  border: 1.5px dashed var(--input); color: var(--input); background: var(--sheet); }

/* timeline categories */
.hbk-infra { color: var(--hist); } .hbk-rev { color: var(--model); } .hbk-audit { color: var(--ink); }
.hbk-gov { color: var(--ink-soft); border-style: dashed !important; } .hbk-cash { color: var(--observed); }

/* cash chart */
.hb-lab { font-size: 11.5px; font-weight: 700; fill: var(--ink); }
.hb-sub { font-size: 10px; fill: var(--ink-soft); font-family: var(--mono); }
.hb-bar { stroke-width: 0; } .hb-bar:hover, .hb-bar:focus { outline: none; stroke: var(--zoning); stroke-width: 3; }
.hb-restr { fill: var(--restr); } .hb-pool { fill: var(--sheet); stroke: var(--pool) !important; stroke-width: 2 !important; stroke-dasharray: 4 2; }
.hb-free { fill: var(--free); } .hb-neg { fill: var(--sheet); stroke: var(--free) !important; stroke-width: 2 !important; }
.hb-val { font-size: 10.5px; font-family: var(--mono); fill: var(--ink); }
.hb-zero { stroke: var(--ink); stroke-width: 1.2; }
.c-sw.hb-sw-restr { background: var(--restr); } .c-sw.hb-sw-pool { border: 2px dashed var(--pool); } .c-sw.hb-sw-free { background: var(--free); }

/* bridge */
.hb-step { stroke-width: 0; } .hb-step:hover, .hb-step:focus { outline: none; stroke: var(--zoning); stroke-width: 3; }
.hb-tot { fill: var(--ink); } .hb-op { fill: var(--restr); } .hb-debt { fill: var(--sheet); stroke: var(--input) !important; stroke-width: 2 !important; stroke-dasharray: 4 2; }
.hb-tr { fill: #8FA59C; } .hb-arpa { fill: var(--sheet); stroke: var(--model) !important; stroke-width: 2 !important; }
.hb-sep { stroke: var(--ink-soft); stroke-width: 1; stroke-dasharray: 2 3; }
.c-sw.hb-sw-tot { background: var(--ink); } .c-sw.hb-sw-op { background: var(--restr); }
.c-sw.hb-sw-debt { border: 2px dashed var(--input); } .c-sw.hb-sw-arpa { border: 2px solid var(--model); }

/* line charts */
.hb-unaud { fill: #F6F3EA; }
.hb-proj { fill: #EEF3F8; }
.hb-zone { font-size: 10px; font-family: var(--mono); fill: var(--ink-soft); letter-spacing: .04em; text-transform: uppercase; }
.hb-fb { fill: #C9D2D0; } .hb-fb-u { fill: var(--sheet); stroke: #9AA7A3; stroke-width: 1.5; stroke-dasharray: 3 2; }
.hb-fb:hover, .hb-fb:focus { outline: none; stroke: var(--zoning); stroke-width: 3; }
.hb-ln { fill: none; stroke-width: 2.5; }
.hb-ln.hb-rev { stroke: var(--rev); } .hb-ln.hb-exp { stroke: var(--exp); } .hb-ln.hb-dash { stroke-dasharray: 6 4; }
.hb-pt { fill: var(--sheet); stroke-width: 2; } .hb-pt.hb-rev { stroke: var(--rev); } .hb-pt.hb-exp { stroke: var(--exp); }
.hb-pt.hb-rev.hb-hollow { stroke-dasharray: 2 1; }
.hb-pt:hover, .hb-pt:focus, .hb-alt:hover, .hb-alt:focus { fill: var(--zoning); outline: none; }
.hb-alt { fill: var(--sheet); stroke: var(--ink); stroke-width: 1.5; }
.hb-endlbl { font-size: 11.5px; font-weight: 700; } .hb-endlbl.hb-rev { fill: var(--rev); } .hb-endlbl.hb-exp { fill: var(--exp); }
.hb-note { font-size: 10.5px; font-family: var(--mono); fill: var(--ink-soft); }
.hb-freeze { stroke: var(--exp); stroke-width: 2; stroke-dasharray: 1 3; stroke-linecap: round; }
.c-sw.hb-sw-rev { height: 3px; background: var(--rev); } .c-sw.hb-sw-exp { height: 3px; background: var(--exp); }
.c-sw.hb-sw-proj { height: 0; border-top: 3px dashed var(--rev); }
.c-sw.hb-sw-fb { background: #C9D2D0; } .c-sw.hb-sw-fbu { border: 1.5px dashed #9AA7A3; }
.c-sw.hb-sw-alt { width: 10px; height: 10px; border: 1.5px solid var(--ink); transform: rotate(45deg); margin: 0 2px; }

/* forecast */
.hb-ln.hb-pub { stroke: var(--exp); } .hb-ln.hb-calc { stroke: var(--calc); stroke-dasharray: 6 3; } .hb-ln.hb-zeroln { stroke: var(--ink-soft); stroke-width: 1.8; }
.hb-pt.hb-pub { stroke: var(--exp); } .hb-pt.hb-calc { stroke: var(--calc); } .hb-pt.hb-zeroln { stroke: var(--ink-soft); }
.hb-endlbl.hb-pub { fill: var(--exp); } .hb-endlbl.hb-calc { fill: var(--calc); } .hb-endlbl.hb-zeroln { fill: var(--ink-soft); }
.c-grid.hb-zero { stroke: var(--ink); }
.c-sw.hb-sw-pub { height: 3px; background: var(--exp); } .c-sw.hb-sw-calc { height: 0; border-top: 3px dashed var(--calc); } .c-sw.hb-sw-zero { height: 2px; background: var(--ink-soft); }

/* records table */
.hb-rec th[scope="row"] { font-weight: 700; text-align: left; vertical-align: top; min-width: 9em; }
.hb-rec td { vertical-align: top; }

/* loan flow */
.nb-page .article-body .hb-flow { list-style: none; padding: 0; margin: 0; display: grid; grid-template-columns: repeat(5, 1fr); gap: 8px; }
.hb-step { position: relative; }
li.hb-step { border: 1px solid var(--rule); background: #FBFBF9; padding: 10px 11px; display: grid; gap: 6px; align-content: start; font-size: .84rem; }
li.hb-step h4 { font-size: .95rem; font-weight: 800; }
.hb-stepn { font-size: .7rem; color: var(--ink-soft); }
li.hb-step .nb-chip { white-space: normal; }
@media (max-width: 860px) {
  .nb-page .article-body .hb-flow { grid-template-columns: 1fr; }
  li.hb-step:not(:last-child)::after { content: "↓"; position: absolute; left: 50%; bottom: -11px; transform: translateX(-50%); font-size: .8rem; color: var(--ink-soft); background: var(--sheet); padding: 0 4px; }
}
@media print { .hb-draft { border-style: solid; } .nb-data[open] summary, .nb-data summary { display: block; } }
