/* Interactive tools (billable hours, legal deadline). Scoped to .bhc; uses the site palette tokens from main.css. */
.bhc{--bhc-error:#9B1C1C;--bhc-success:#176B45;--bhc-line:#d8dce2;width:min(1120px,calc(100vw - 2rem));margin:2rem calc(50% - min(560px,50vw - 1rem));background:var(--paper);border:1px solid color-mix(in srgb,var(--secondary) 55%,white);border-radius:1rem;padding:clamp(1rem,3vw,2rem);font-family:var(--body)}
.prose .bhc h2.bhc-title{margin:0 0 .25rem;font-size:1.6rem}
.prose .bhc p{font-size:1rem}
.bhc-privacy{margin:0 0 1rem;color:var(--bhc-success);font-weight:500}
.bhc-noscript{background:#fff;border-left:4px solid var(--accent);padding:.75rem 1rem}
.bhc-tabs{display:flex;gap:.4rem;overflow-x:auto;padding-bottom:.25rem;margin-bottom:1rem}
.bhc button{font:500 .95rem/1.2 var(--body);min-height:44px;padding:.55rem .95rem;border-radius:.55rem;border:1px solid color-mix(in srgb,var(--ink) 30%,white);background:#fff;color:var(--ink);cursor:pointer}
.bhc button:hover{border-color:var(--ink);background:color-mix(in srgb,var(--paper) 50%,white)}
.bhc button:active{transform:translateY(1px)}
.bhc button:disabled{opacity:.45;cursor:not-allowed}
.bhc :focus-visible{outline:3px solid var(--accent);outline-offset:2px}
.bhc [role="tab"]{white-space:nowrap}
.bhc [role="tab"][aria-selected="true"]{background:var(--ink);color:#fff;border-color:var(--ink)}
.bhc [role="tab"][aria-selected="true"]::before,.bhc [aria-pressed="true"]::before{content:"\2713\00a0"}
.bhc [aria-pressed="true"]{background:var(--accent);color:#fff;border-color:var(--accent)}
.bhc .bhc-primary{background:var(--ink);color:#fff;border-color:var(--ink)}
.bhc .bhc-primary:hover{background:#163a5c}
.bhc-panel{display:grid;grid-template-columns:1fr;gap:1.25rem}
.bhc-panel[hidden]{display:none}
.bhc-form,.bhc-result{background:#fff;border-radius:.8rem;padding:clamp(1rem,2.5vw,1.5rem);border:1px solid var(--bhc-line)}
.bhc fieldset{border:0;padding:0;margin:0 0 1rem;display:flex;flex-wrap:wrap;gap:.45rem}
.bhc legend,.bhc label{font-weight:500;color:var(--ink);font-size:.95rem}
.bhc legend{margin-bottom:.4rem;width:100%}
.bhc-seg label,.bhc-check{display:inline-flex;align-items:center;gap:.4rem;min-height:44px;padding:0 .8rem;border:1px solid var(--bhc-line);border-radius:.55rem;cursor:pointer;background:#fff}
.bhc-seg label:has(input:checked){border-color:var(--ink);box-shadow:inset 0 0 0 1px var(--ink)}
.bhc-field{margin-bottom:.9rem;flex:1 1 12rem}
.bhc-field>label{display:block;margin-bottom:.3rem}
.bhc input:not([type=radio]):not([type=checkbox]),.bhc select{width:100%;min-height:44px;font:400 1rem var(--body);padding:.5rem .7rem;border:1px solid #9aa3af;border-radius:.5rem;background:#fff;color:var(--charcoal)}
.bhc input[aria-invalid="true"]{border-color:var(--bhc-error);box-shadow:inset 0 0 0 1px var(--bhc-error)}
.bhc-step{display:flex;gap:.35rem}
.bhc-step button{min-width:44px;padding:0;font-size:1.2rem}
.bhc-row{display:flex;flex-wrap:wrap;gap:0 1rem;align-items:flex-start}
.bhc-group[hidden],.bhc-field[hidden]{display:none}
.bhc-err{color:var(--bhc-error);font-size:.88rem!important;margin:.3rem 0 0;font-weight:500}
.bhc-err:not(:empty)::before{content:"Error: "}
.bhc-note,.bhc-hint{font-size:.88rem!important;color:#596273;margin:.4rem 0 0}
.bhc-actions{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:.5rem}
.bhc-result{min-height:18rem}
.prose .bhc-result h3{margin:0 0 .75rem;font-size:1.25rem}
.bhc-figures{margin:0;display:grid;gap:.75rem}
.bhc-figures div{border-bottom:1px solid #eef0f3;padding-bottom:.6rem}
.bhc-figures dt{font-size:.85rem;color:#596273;font-weight:500}
.bhc-figures dd{margin:0;font-size:1.3rem;font-weight:600;color:var(--ink);font-variant-numeric:tabular-nums}
.bhc-figures dd.bhc-def{font-size:.85rem;font-weight:400;color:#596273}
.bhc-formula{font-size:.9rem!important;background:color-mix(in srgb,var(--paper) 60%,white);border-left:3px solid var(--secondary);padding:.6rem .8rem;margin-top:1rem}
.bhc-empty{color:#596273}
.bhc-progress{height:.8rem;background:#eef0f3;border-radius:1rem;overflow:hidden;margin-top:1rem;border:1px solid var(--bhc-line)}
.bhc-progress span{display:block;height:100%;background:var(--secondary)}
.bhc-flow{display:flex;flex-wrap:wrap;gap:.5rem;list-style:none;padding:0;margin:0 0 1rem}
.bhc-flow li{background:var(--ink);color:#fff;border-radius:.5rem;padding:.4rem .7rem;font-size:.9rem!important;font-variant-numeric:tabular-nums}
.bhc-flow li+li::before{content:"\2192\00a0"}
.bhc-share{border-top:1px solid #eef0f3;padding-top:.75rem;margin-top:1rem}
.bhc-undo{display:flex;align-items:center;gap:.6rem;background:#fff;border:1px solid var(--secondary);border-radius:.6rem;padding:.4rem .8rem;margin:0}
.bhc-live{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}
.bhc-table-wrap{background:#fff;border-radius:.8rem;border:1px solid var(--bhc-line);overflow:hidden}
.prose .bhc-table{margin:0;font-variant-numeric:tabular-nums}
.bhc-table tbody tr{cursor:pointer}
.bhc-table tbody tr:hover,.bhc-table tbody tr:focus-visible{background:color-mix(in srgb,var(--secondary) 18%,white)}
.bhc-table th,.bhc-table td{padding:.45rem .7rem}
@media(min-width:768px){.bhc-panel{grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr);align-items:start}.bhc-result{position:sticky;top:96px}.bhc-panel--wide{grid-template-columns:1fr}.bhc-chart-controls{display:flex;flex-wrap:wrap;gap:0 1rem}.bhc-chart-controls fieldset,.bhc-chart-controls .bhc-actions{width:100%}.bhc-cols{display:none}}
@media(max-width:767px){.bhc-table [data-c="ten"],.bhc-table [data-c="fifteen"],.bhc-table [data-c="custom"],.bhc-table [data-c="six"]{display:none}.bhc-table[data-col="six"] [data-c="six"],.bhc-table[data-col="ten"] [data-c="ten"],.bhc-table[data-col="fifteen"] [data-c="fifteen"],.bhc-table[data-col="custom"] [data-c="custom"]{display:table-cell}}
@media(prefers-reduced-motion:reduce){.bhc *{transition:none!important}.bhc button:active{transform:none}}
@media print{
  .site-header,.site-footer,.skip-link,.breadcrumb,.byline{display:none!important}
  body[data-bhc-print] main>article>:not(.bhc){display:none!important}
  body[data-bhc-print] .bhc{border:0;padding:0;background:#fff;width:auto;margin:0}
  body[data-bhc-print] .bhc-tabs,body[data-bhc-print] .bhc-actions,body[data-bhc-print] .bhc-undo,body[data-bhc-print] .bhc-hint,body[data-bhc-print] .bhc-step button,body[data-bhc-print] .bhc-chips,body[data-bhc-print] .bhc-cols{display:none!important}
  body[data-bhc-print="time"] .bhc-panel:not([data-tool="time"]),body[data-bhc-print="target"] .bhc-panel:not([data-tool="target"]),body[data-bhc-print="metrics"] .bhc-panel:not([data-tool="metrics"]),body[data-bhc-print="chart"] .bhc-panel:not([data-tool="chart"]){display:none!important}
  .bhc-panel{display:block!important}.bhc-form,.bhc-result{border:1px solid #000;margin-bottom:1rem;position:static}
  .bhc-table [data-c]{display:table-cell!important}.bhc-progress span{background:#000}
  .bhc *{color:#000!important}.bhc-flow li{background:#fff;border:1px solid #000}
}
.bhc-print-stamp{display:none}@media print{.bhc-print-stamp{display:block}}
@media(max-width:767px){.bhc-tabs{display:grid;grid-template-columns:1fr 1fr;overflow:visible}.bhc [role="tab"]{white-space:normal;text-align:center}}
/* Legal deadline calculator */
.bhc-version{font-size:.88rem!important;color:#596273;margin:-.5rem 0 1rem}
.ldc .bhc-panel{margin-top:.5rem}
.bhc-checks{display:grid!important;gap:.4rem}
.bhc-checks .bhc-check{align-items:flex-start;padding:.55rem .8rem;line-height:1.35}
.bhc-checks input{margin-top:.2rem}
.bhc-add{white-space:nowrap}
.ldc-chips{list-style:none;padding:0;margin:.5rem 0 0;display:flex;flex-wrap:wrap;gap:.4rem}
.ldc-chips button{min-height:36px;padding:.3rem .7rem;font-variant-numeric:tabular-nums}
.ldc-answer{display:grid;gap:.15rem;margin:0 0 1rem;padding:.9rem 1rem;background:var(--ink);color:#fff;border-radius:.6rem}
.ldc-label{font-size:.8rem;text-transform:uppercase;letter-spacing:.1em;color:var(--secondary)}
.ldc-answer strong{font-family:var(--display);font-size:clamp(1.35rem,1.1rem + 1vw,1.75rem);font-weight:500;line-height:1.2}
.ldc-assume{margin:.25rem 0 0;padding-left:1.1rem}
.prose .ldc-assume li{font-size:.92rem}
.ldc-steps{margin-top:1.25rem;background:#fff;border:1px solid var(--bhc-line);border-radius:.8rem;padding:.75rem 1rem}
.ldc-steps summary{cursor:pointer;font-weight:500;color:var(--ink);min-height:44px;display:flex;align-items:center}
.ldc-table{margin-top:.75rem}
.ldc-table tbody tr{cursor:default}
.ldc-table tr.ldc-final td{font-weight:600;background:color-mix(in srgb,var(--secondary) 22%,white)}
@media print{body[data-bhc-print="deadline"] .ldc-steps{border:0;padding:0}}
@media(max-width:767px){.ldc-table{table-layout:fixed;width:100%;font-size:.85rem}.ldc-table th:nth-child(2),.ldc-table td:nth-child(2){width:4.5rem}.ldc-table td,.ldc-table th{padding:.4rem .45rem;overflow-wrap:anywhere}}
.bhc-step input{min-width:0;flex:1 1 9rem}.ldc .bhc-step{flex-wrap:wrap}
.bhc-step .bhc-add{padding:0 .9rem;font-size:.95rem}
/* Law firm KPI calculator */
.kpi-cards{display:grid;gap:.75rem}
.kpi-card{border:1px solid #eef0f3;border-radius:.6rem;padding:.75rem .9rem}
.prose .kpi-card h4{margin:0;font-family:var(--body);font-size:.92rem;font-weight:500;color:#596273}
.prose .bhc .kpi-value{margin:.15rem 0 .2rem;font-size:1.35rem;font-weight:600;color:var(--ink);font-variant-numeric:tabular-nums}
.prose .bhc .kpi-na{font-size:1rem;color:#596273}
.kpi-card details summary{cursor:pointer;font-size:.88rem;color:var(--ink);min-height:32px;display:flex;align-items:center}
@media print{body[data-bhc-print="kpi"] .kpi-card details{display:block}body[data-bhc-print="kpi"] .kpi-card details>*{display:block}}
/* ---------- Icons, header, and interaction polish (Tabler icons, inlined sprite) ---------- */
.ti{width:1.15em;height:1.15em;flex:none;vertical-align:-.2em}
.bhc button,.bhc summary{display:inline-flex;align-items:center;gap:.45rem;transition:background-color .15s ease,border-color .15s ease,box-shadow .15s ease,transform .12s ease}
.bhc button:hover:not(:disabled){box-shadow:0 2px 8px rgb(15 42 68 / 12%)}
.bhc [role="tab"][aria-selected="true"]::before,.bhc [aria-pressed="true"]::before{content:none}
.bhc [role="tab"] .ti{opacity:.85}
.bhc [role="tab"][aria-selected="true"]{box-shadow:inset 0 -3px 0 var(--secondary)}
.bhc [aria-pressed="true"] .ti{display:none}
.bhc [aria-pressed="true"]::after{content:"\2713";font-weight:700}
.bhc-head{display:flex;gap:.9rem;align-items:center;margin-bottom:1rem}
.bhc-badge{display:grid;place-items:center;width:3.25rem;height:3.25rem;border-radius:.9rem;background:var(--ink);color:var(--secondary);flex:none}
.bhc-badge .ti{width:1.75rem;height:1.75rem}
.bhc-head .bhc-privacy{display:flex;align-items:center;gap:.4rem;margin:.1rem 0 0}
.prose .bhc-result h3{display:flex;align-items:center;gap:.45rem}
.prose .bhc-result h3 .ti{color:var(--accent)}
.bhc-out{animation:none}
.bhc-out.is-updated{animation:bhcIn .18s ease-out}
@keyframes bhcIn{from{opacity:.4;transform:translateY(4px)}to{opacity:1;transform:none}}
.bhc-toast{position:fixed;left:50%;bottom:1.25rem;transform:translate(-50%,1rem);opacity:0;pointer-events:none;background:var(--ink);color:#fff;border-radius:999px;padding:.6rem 1.1rem;display:flex;gap:.5rem;align-items:center;font:500 .95rem var(--body);box-shadow:0 8px 24px rgb(15 42 68 / 25%);transition:opacity .18s ease,transform .18s ease;z-index:30}
.bhc-toast.is-on{opacity:1;transform:translate(-50%,0)}
.bhc-toast .ti{color:var(--secondary)}
/* Stat tiles */
.bhc-tiles{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(9.5rem,100%),1fr));gap:.6rem;margin:0 0 .75rem}
.bhc-tile{border:1px solid #eef0f3;border-radius:.7rem;padding:.65rem .75rem;background:#fff}
.bhc-tile-top{display:flex;align-items:center;gap:.4rem;font-size:.8rem;color:#596273;font-weight:500}
.bhc-tile-top .ti{color:var(--accent)}
.bhc-tile-value{display:block;margin-top:.2rem;font-size:1.15rem;font-weight:600;color:var(--ink);font-variant-numeric:tabular-nums;line-height:1.25}
.bhc-tile-note{display:block;margin-top:.15rem;font-size:.8rem;color:#596273}
.ldc-answer{grid-template-columns:auto 1fr;column-gap:.85rem;align-items:center}
.ldc-answer .ti{grid-row:span 2;width:2.1rem;height:2.1rem;color:var(--secondary)}
/* Bars and meters */
.viz{margin:.25rem 0 1rem}
.viz-cap{display:flex;align-items:center;gap:.4rem;font-size:.85rem;font-weight:500;color:var(--ink);margin:0 0 .45rem}
.viz-row{display:grid;grid-template-columns:7.5rem 1fr auto;gap:.6rem;align-items:center;margin:.35rem 0;font-size:.85rem}
.viz-track{height:.75rem;background:#eef0f3;border-radius:999px;overflow:hidden}
.viz-fill{display:block;height:100%;border-radius:999px;background:var(--ink);transition:width .25s ease}
.viz-fill.is-accent{background:var(--accent)}.viz-fill.is-gold{background:var(--secondary)}
.viz-num{font-variant-numeric:tabular-nums;font-weight:600;color:var(--ink)}
.viz-ticks{position:relative;height:1.1rem}
.ring{display:flex;gap:1rem;align-items:center;margin:.25rem 0 1rem}
.ring svg{width:6.5rem;height:6.5rem;flex:none}
.ring-bg{stroke:#eef0f3}.ring-fg{stroke:var(--secondary);transition:stroke-dashoffset .3s ease}
.ring-text{font:600 1.1rem var(--body);fill:var(--ink)}
.ring-label{font-size:.9rem;color:#596273}
/* Deadline calendar */
.ldc-cal{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(14rem,100%),1fr));gap:1rem;margin:.5rem 0 1rem}
.ldc-month h4{margin:0 0 .4rem;font:600 .95rem var(--body);color:var(--ink)}
.ldc-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:3px;font-variant-numeric:tabular-nums}
.ldc-grid span{aspect-ratio:1;display:grid;place-items:center;font-size:.78rem;border-radius:.35rem;color:#9aa3af}
.ldc-grid .dow{aspect-ratio:auto;font-size:.68rem;font-weight:600;color:#596273}
.ldc-grid .in{color:var(--charcoal);background:#fff;border:1px solid #eef0f3}
.ldc-grid .counted{background:color-mix(in srgb,var(--ink) 12%,white);color:var(--ink);border-color:transparent}
.ldc-grid .skipped{background:repeating-linear-gradient(45deg,#f3f4f6,#f3f4f6 3px,#e5e7eb 3px,#e5e7eb 6px);color:#6b7280}
.ldc-grid .start{outline:2px solid var(--secondary);outline-offset:-2px;font-weight:700}
.ldc-grid .deadline{background:var(--accent);color:#fff;font-weight:700}
.ldc-legend{display:flex;flex-wrap:wrap;gap:.75rem;font-size:.8rem;color:#596273;margin:.25rem 0 0;padding:0;list-style:none}
.ldc-legend li{display:flex;align-items:center;gap:.35rem}
.ldc-legend i{width:.9rem;height:.9rem;border-radius:.25rem;display:inline-block}
/* Hub cards */
.tool-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(15rem,100%),1fr));gap:1rem;margin:2rem calc(50% - min(560px,50vw - 1rem));width:min(1120px,calc(100vw - 2rem))}
.prose .tool-card{display:grid;gap:.35rem;align-content:start;padding:1.25rem;border:1px solid color-mix(in srgb,var(--secondary) 45%,white);border-radius:1rem;background:#fff;color:var(--charcoal);text-decoration:none;transition:transform .15s ease,box-shadow .15s ease,border-color .15s ease}
.prose .tool-card:hover,.prose .tool-card:focus-visible{transform:translateY(-3px);box-shadow:0 10px 28px rgb(15 42 68 / 12%);border-color:var(--secondary)}
.prose .tool-card:focus-visible{outline:3px solid var(--accent);outline-offset:2px}
.tool-card-icon{display:grid;place-items:center;width:3rem;height:3rem;border-radius:.8rem;background:var(--ink);color:var(--secondary);margin-bottom:.4rem}
.tool-card-icon .ti{width:1.6rem;height:1.6rem}
.tool-card-cat{font-size:.75rem;text-transform:uppercase;letter-spacing:.1em;font-weight:600;color:var(--accent)}
.tool-card-name{font-family:var(--display);font-size:1.3rem;line-height:1.2;color:var(--ink)}
.tool-card-desc{font-size:.95rem;color:#596273}
.tool-card-go{display:flex;align-items:center;gap:.35rem;margin-top:.4rem;font-weight:600;font-size:.92rem;color:var(--ink)}
.tool-card:hover .tool-card-go .ti{transform:translateX(3px)}
.tool-card-go .ti{transition:transform .15s ease}
@media(prefers-reduced-motion:reduce){.bhc-out.is-updated{animation:none}.prose .tool-card,.bhc-toast,.viz-fill,.ring-fg{transition:none}.prose .tool-card:hover{transform:none}}
@media print{.bhc-toast,.icon-sprite{display:none}.ldc-grid .deadline{background:#000!important;color:#fff!important}}
.prose .bhc .kpi-card h4{display:flex;align-items:center;gap:.4rem}
.kpi-card h4 .ti{color:var(--accent)}
.kpi-card .viz-track{height:.5rem;margin:.1rem 0 .4rem}
.kpi-cards{grid-template-columns:repeat(auto-fit,minmax(min(13rem,100%),1fr))}
@media(max-width:480px){.viz-row{grid-template-columns:5.5rem 1fr auto;gap:.4rem;font-size:.8rem}}
@media(max-width:767px){.bhc-tabs>[role="tab"]{min-width:0;justify-content:center;padding:.5rem .55rem;font-size:.88rem}}
