/* hq-owner.css: structure for the owner layer (briefing, health, alerts, goals, phone summary).
   Shared bones only. Each kit's hq-owner-kit.css dresses it in that business's own materials. */
:root{--ho-r:20px;--ho-r-sm:12px;--ho-rail:4px;--ho-ease:cubic-bezier(.2,.8,.2,1)}
.hq-body .hq-btn.sm svg{width:16px;height:16px}
/* ---------- briefing (top of the hero) ---------- */
.hq-hero .hq-wrap.ho-brief-wrap{display:block;padding-top:1rem;padding-bottom:0}
@media(min-width:56em){.hq-hero .hq-wrap.ho-brief-wrap{padding-top:1.75rem;padding-bottom:0}}
.ho-brief{position:relative;background:var(--ho-brief-bg,var(--hq-surface));color:var(--ho-brief-ink,var(--hq-ink));border:var(--ho-brief-border,1px solid var(--hq-line));border-radius:var(--ho-r);padding:1rem 1rem 1.1rem;box-shadow:var(--ho-brief-shadow,0 14px 40px -28px var(--hq-shadow));overflow:hidden;isolation:isolate}
@media(min-width:48em){.ho-brief{padding:1.25rem 1.5rem 1.35rem}}
.ho-brief-in{display:grid;gap:.85rem}
@media(min-width:64em){.ho-brief-in{grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"top top" "body acts";column-gap:2rem;align-items:end}.ho-brief-top{grid-area:top}.ho-brief-body{grid-area:body}.ho-brief-acts{grid-area:acts;flex-direction:column;align-items:stretch}}
.ho-brief-top{display:flex;flex-wrap:wrap;gap:.5rem;align-items:center;justify-content:space-between}
.ho-brief-kicker{font-family:var(--hq-f-mono);font-size:.75rem;letter-spacing:.08em;text-transform:uppercase;font-weight:600;color:var(--ho-kicker,var(--hq-muted))}
.ho-brief-body{display:grid;grid-template-columns:3.25rem minmax(0,1fr);gap:.85rem;align-items:start}
@media(min-width:48em){.ho-brief-body{grid-template-columns:4.5rem minmax(0,1fr);gap:1.1rem}}
.ho-brief-av{display:grid;place-items:center;width:100%;aspect-ratio:1;border-radius:var(--ho-av-r,50%);background:var(--ho-av-bg,var(--hq-surface-2));overflow:hidden}
.ho-brief-av svg{width:86%;height:auto;display:block}
.ho-brief-av .hq-mono-av{font-family:var(--hq-f-display);font-size:1.6rem}
.hq-body .ho-brief-greet{font-family:var(--hq-f-display);font-weight:var(--hq-display-weight,600);letter-spacing:var(--hq-display-track,0);font-size:clamp(1.3rem,4.2vw,1.85rem);line-height:1.1;margin:0}
.hq-body .ho-brief-p{margin-top:.4rem;font-size:1rem;line-height:1.55;max-width:72ch}
.hq-body .ho-brief-list{list-style:none;margin:.55rem 0 0;padding:0;display:grid;gap:.4rem;max-width:74ch}
.hq-body .ho-brief-list li{display:grid;grid-template-columns:1.5rem minmax(0,1fr);gap:.55rem;align-items:start;font-size:.975rem;line-height:1.5;margin:0}
.ho-bi{display:grid;place-items:center;width:1.5rem;height:1.5rem;border-radius:var(--ho-bi-r,50%);background:var(--ho-bi-bg,var(--hq-surface-2));color:var(--hq-ink);margin-top:.05rem}
.ho-bi svg{width:.95rem;height:.95rem;display:block}
.ho-brief-list li[data-k="needs"] .ho-bi{background:var(--ho-bi-needs-bg,var(--hq-accent));color:var(--ho-bi-needs-ink,var(--hq-on-accent))}
.ho-brief-list li[data-k="needs"]>span:last-child{font-weight:600}
.hq-body .ho-brief-sign{margin-top:.55rem;font-family:var(--ho-sign-font,var(--hq-f-mono));font-size:var(--ho-sign-size,.75rem);color:var(--hq-muted);letter-spacing:.02em}
.ho-brief-acts{display:flex;flex-wrap:wrap;gap:.5rem}
@media(max-width:29.99em){.ho-brief-acts .hq-btn{flex:1 1 100%}}
.ho-brief .ho-skel{grid-column:1/-1}
/* ---------- the pulse section ---------- */
.ho-grid{display:grid;gap:1rem;grid-template-columns:minmax(0,1fr)}
@media(min-width:56em){
  .ho-grid{grid-template-columns:repeat(12,minmax(0,1fr));gap:1.25rem;align-items:start}
  .ho-grid[data-layout=a]{grid-template-areas:"al al al al al al al he he he he he" "go go go go go go go go go go go go"}
  .ho-grid[data-layout=b]{grid-template-areas:"he he he he he al al al al al al al" "go go go go go go go go go go go go"}
  .ho-grid[data-layout=c]{grid-template-areas:"go go go go go go go go go go go go" "al al al al al al al he he he he he"}
  .ho-grid[data-layout=d]{grid-template-areas:"al al al al al al go go go go go go" "he he he he he he he he he he he he"}
  .ho-grid[data-layout=e]{grid-template-areas:"go go go go go go go go go go go go" "he he he he he al al al al al al al"}
  .ho-alerts{grid-area:al}.ho-health{grid-area:he}.ho-goals{grid-area:go}
}
@media(max-width:55.99em){
  .ho-grid[data-layout=b] .ho-health{order:-1}
  .ho-grid[data-layout=c] .ho-goals,.ho-grid[data-layout=e] .ho-goals{order:-1}
}
.ho-card{border-radius:var(--ho-r)}
.ho-card-h{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem .6rem;margin-bottom:1rem}
.ho-card-h h3{font-size:1.3rem;margin-right:auto}
.ho-card-h .ho-card-sub{flex-basis:100%;order:3;color:var(--hq-muted);font-size:.875rem;margin:0}
.ho-count{display:inline-grid;place-items:center;min-width:1.75rem;height:1.75rem;padding:0 .45rem;border-radius:999px;background:var(--hq-accent);color:var(--hq-on-accent);font-family:var(--hq-f-mono);font-weight:700;font-size:.8125rem}
.ho-count[data-zero]{background:var(--hq-ok-bg);color:var(--hq-ok-ink)}
.hq-body .ho-sub{font-size:1.0625rem;margin:1.5rem 0 .75rem}
.hq-body .ho-fine{font-size:.8125rem;color:var(--hq-muted);margin-top:.75rem}
/* ---------- alerts ---------- */
.ho-alert-list{display:grid;gap:.65rem}
.ho-alert{position:relative;display:grid;gap:.55rem;padding:.9rem .95rem .9rem calc(.95rem + var(--ho-rail));border-radius:var(--ho-r-sm);background:var(--ho-alert-bg,var(--hq-bg));border:1px solid var(--hq-line);overflow:hidden}
.ho-alert::before{content:"";position:absolute;left:0;top:0;bottom:0;width:var(--ho-rail);background:var(--ho-sev-c)}
.ho-alert[data-sev="3"]{--ho-sev-c:var(--hq-no);--ho-sev-t:var(--hq-no-ink-on-surface)}
.ho-alert[data-sev="2"]{--ho-sev-c:var(--hq-watch);--ho-sev-t:var(--hq-watch-ink-on-surface)}
.ho-alert[data-sev="1"]{--ho-sev-c:var(--hq-line-strong);--ho-sev-t:var(--hq-muted)}
.ho-sev{display:inline-flex;align-items:center;gap:.35rem;font-family:var(--hq-f-mono);font-size:.6875rem;font-weight:700;letter-spacing:.07em;text-transform:uppercase;color:var(--ho-sev-t);justify-self:start}
.ho-sev svg{width:14px;height:14px;flex:none;--ho-sev-ink:var(--hq-surface)}
.ho-alert h4{font-family:var(--hq-f-text);font-size:1rem;font-weight:700;letter-spacing:0;line-height:1.3}
.hq-body .ho-alert p{font-size:.875rem;color:var(--hq-muted);margin-top:.2rem;line-height:1.5}
.ho-alert-acts{display:flex;flex-wrap:wrap;gap:.45rem;align-items:center}
.ho-alert-acts .hq-btn{min-height:44px}
.ho-x{margin-left:auto;display:inline-grid;place-items:center;width:44px;height:44px;border-radius:50%;border:1px solid var(--hq-line-strong);background:transparent;color:var(--hq-muted);cursor:pointer;transition:background-color .15s,color .15s}
.ho-x:hover{background:var(--hq-surface-2);color:var(--hq-ink)}
.ho-x svg{width:16px;height:16px}
.ho-clear{display:grid;justify-items:center;text-align:center;gap:.35rem;padding:1.5rem 1rem;border:1px dashed var(--hq-line-strong);border-radius:var(--ho-r-sm)}
.ho-clear:focus{outline:none}.ho-clear:focus-visible{outline:3px solid var(--hq-focus)}
.ho-clear-art{width:7rem;display:block}.ho-clear-art svg{width:100%;height:auto;display:block}
.ho-clear b{font-family:var(--hq-f-display);font-weight:var(--hq-display-weight,600);font-size:1.4rem}
.hq-body .ho-clear p{color:var(--hq-muted);max-width:34ch}
.ho-hidden-row{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:.5rem;margin-top:.75rem;font-size:.875rem;color:var(--hq-muted)}
/* ---------- health ---------- */
.ho-score-row{display:flex;flex-wrap:wrap;align-items:baseline;gap:.2rem .6rem}
.ho-big{font-family:var(--hq-f-display);font-weight:var(--hq-display-weight,600);font-size:clamp(3rem,10vw,4.25rem);line-height:.9;font-variant-numeric:tabular-nums;color:var(--ho-big-c,var(--hq-ink))}
.ho-of{font-family:var(--hq-f-mono);color:var(--hq-muted);font-size:.9375rem;margin-right:.4rem}
.ho-trend{display:inline-flex;align-items:center;gap:.25rem;font-family:var(--hq-f-mono);font-size:.75rem;font-weight:700;padding:.15rem .5rem;border-radius:999px;white-space:nowrap;vertical-align:middle}
.ho-trend svg{width:12px;height:12px}
.ho-trend[data-dir=up]{background:var(--hq-ok-bg);color:var(--hq-ok-ink)}
.ho-trend[data-dir=down]{background:var(--hq-no-bg);color:var(--hq-no-ink)}
.ho-trend[data-dir=flat]{background:var(--hq-surface-2);color:var(--hq-ink)}
.hq-body .ho-pillars{display:grid;gap:.9rem;margin:1.25rem 0 0;padding:0}
.ho-pl-top{display:flex;align-items:baseline;gap:.5rem}
.ho-pl-n{font-weight:700;margin-right:auto}
.ho-pl-w{font-family:var(--hq-f-mono);font-size:.6875rem;color:var(--hq-muted);text-transform:uppercase;letter-spacing:.05em}
.ho-pl-top b{font-family:var(--hq-f-mono);font-size:1rem;min-width:2.2rem;text-align:right;font-variant-numeric:tabular-nums}
.ho-bar{display:block;height:var(--ho-bar-h,8px);border-radius:999px;background:var(--hq-surface-2);margin:.4rem 0 .35rem;overflow:hidden}
.ho-bar i{display:block;height:100%;width:var(--w,0%);border-radius:inherit;background:var(--ho-tone);transform-origin:left;transition:width .9s var(--ho-ease)}
.ho-pillars li[data-tone=ok],.ho-k[data-tone=ok],.ho-ring-fg[data-tone=ok]{--ho-tone:var(--hq-ok)}
.ho-pillars li[data-tone=watch],.ho-k[data-tone=watch],.ho-ring-fg[data-tone=watch]{--ho-tone:var(--hq-watch)}
.ho-pillars li[data-tone=no],.ho-k[data-tone=no],.ho-ring-fg[data-tone=no]{--ho-tone:var(--hq-no)}
.hq-legend i.ho-k{background:var(--ho-tone)}
.hq-ring .ho-ring-bg{stroke:var(--hq-surface-2);stroke-linecap:butt}
.hq-ring .ho-ring-fg{stroke:var(--ho-tone);stroke-linecap:butt;transition:stroke-dasharray 1.1s var(--ho-ease)}
.hq-body .ho-pillars p{font-size:.8125rem;color:var(--hq-muted);line-height:1.5}
.ho-pl-parts{display:block;margin-top:.15rem;font-family:var(--hq-f-mono);font-size:.71875rem}
.ho-gains{display:grid;gap:.6rem}
.ho-gains li{display:grid;grid-template-columns:3.4rem minmax(0,1fr);gap:.75rem;align-items:start;padding:.75rem;border-radius:var(--ho-r-sm);background:var(--hq-bg);border:1px solid var(--hq-line)}
.ho-pts{display:grid;place-items:center;align-content:center;aspect-ratio:1;border-radius:var(--ho-pts-r,12px);background:var(--ho-pts-bg,var(--hq-accent));color:var(--ho-pts-ink,var(--hq-on-accent));font-family:var(--hq-f-display);font-weight:var(--hq-display-weight,600);line-height:1}
.ho-pts span{font-size:1.2rem}.ho-pts small{font-family:var(--hq-f-mono);font-size:.625rem;letter-spacing:.06em;text-transform:uppercase;margin-top:.1rem}
.ho-gain-t{font-weight:700;display:block;line-height:1.3}
.hq-body .ho-gains p{font-size:.8125rem;color:var(--hq-muted);margin:.2rem 0 .5rem;line-height:1.5}
.ho-method{margin-top:1rem;border-top:1px solid var(--hq-line);padding-top:.5rem}
.ho-method summary{cursor:pointer;min-height:44px;display:flex;align-items:center;font-weight:600;font-size:.9375rem}
.hq-body .ho-method p{font-size:.8125rem;color:var(--hq-muted);line-height:1.6;padding-bottom:.25rem}
.ho-empty{padding:1rem;border:1px dashed var(--hq-line-strong);border-radius:var(--ho-r-sm);display:grid;gap:.4rem;justify-items:start}
.hq-body .ho-empty p{color:var(--hq-muted);font-size:.875rem}
/* ---------- goals ---------- */
.ho-goal-list{display:grid;gap:1rem}
@media(min-width:48em){.ho-grid[data-layout] .ho-goals .ho-goal-list{grid-template-columns:repeat(auto-fit,minmax(min(100%,18rem),1fr))}}
.ho-goal{display:grid;gap:.5rem;align-content:start;padding:1rem;border-radius:var(--ho-r-sm);background:var(--ho-goal-bg,var(--hq-bg));border:1px solid var(--hq-line);min-width:0}
.ho-goal-top{display:flex;gap:.5rem;align-items:flex-start;justify-content:space-between}
.ho-goal h4{font-family:var(--hq-f-text);font-size:1rem;font-weight:700;letter-spacing:0;line-height:1.3;overflow-wrap:anywhere}
.ho-pace{flex:none;font-family:var(--hq-f-mono);font-size:.6875rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;padding:.2rem .5rem;border-radius:999px;white-space:nowrap}
.ho-pace[data-state=ahead],.ho-pace[data-state=done]{background:var(--hq-ok-bg);color:var(--hq-ok-ink)}
.ho-pace[data-state=on]{background:var(--hq-surface-2);color:var(--hq-ink);box-shadow:inset 0 0 0 1px var(--hq-line-strong)}
.ho-pace[data-state=behind]{background:var(--hq-no-bg);color:var(--hq-no-ink)}
.ho-track{margin:.25rem -.25rem 0}
.ho-track svg{display:block;width:100%;height:auto;overflow:visible}
.ho-track .ho-fill{transform-box:fill-box;transform-origin:left center;animation:ho-grow 1.1s var(--ho-ease) both}
.ho-track .ho-mk{animation:ho-fade .5s .7s both}
.ho-track .ho-arc{animation:ho-draw 1.2s var(--ho-ease) both}
.ho-track .ho-card-in{animation:ho-fade .45s .2s both}
@keyframes ho-draw{from{stroke-dashoffset:1}to{stroke-dashoffset:0}}
@keyframes ho-grow{from{transform:scaleX(0)}to{transform:none}}
@keyframes ho-fade{from{opacity:0}to{opacity:1}}
.hq-body .ho-goal-n{font-size:.9375rem}
.ho-goal-n b{font-family:var(--hq-f-display);font-weight:var(--hq-display-weight,600);font-size:1.35rem}
.ho-goal-n span{color:var(--hq-muted);font-size:.8125rem}
.hq-body .ho-goal-proj{font-size:.8125rem;color:var(--hq-muted);line-height:1.5}
.ho-goal-note{display:block;margin-top:.2rem;font-size:.75rem}
.ho-goal>.hq-btn{justify-self:start;min-height:44px}
.ho-goal-form{display:grid;gap:.75rem;margin-top:.25rem;padding-top:.85rem;border-top:1px dashed var(--hq-line-strong)}
.ho-field{display:grid;gap:.3rem;min-width:0}
.ho-field label{font-size:.8125rem;font-weight:600}
.ho-field input,.ho-field select{font:inherit;font-size:1rem;min-height:44px;width:100%;padding:.5rem .7rem;border-radius:10px;border:1px solid var(--hq-line-strong);background:var(--hq-surface);color:var(--hq-ink);min-width:0}
.ho-field input[aria-invalid=true]{border-color:var(--hq-no);box-shadow:0 0 0 2px var(--hq-no-bg)}
.ho-ferr{font-size:.75rem;color:var(--hq-no-ink-on-surface);min-height:0}
.ho-ferr:empty{display:none}
.ho-field-row{display:grid;gap:.75rem;grid-template-columns:repeat(auto-fit,minmax(min(100%,9rem),1fr))}
.ho-form-acts{display:flex;flex-wrap:wrap;gap:.45rem}
.ho-form-acts .hq-btn{min-height:44px}
.hq-btn.ho-danger{border-color:var(--hq-no);color:var(--hq-no-ink-on-surface)!important}
.ho-goals-foot{display:flex;flex-wrap:wrap;gap:.5rem;align-items:center;margin-top:1rem}
.ho-goals-foot .hq-btn{min-height:44px}
/* ---------- states ---------- */
.ho-skel{display:grid;gap:.6rem;padding:.25rem 0}
.ho-skel-line{display:block;height:.9rem;border-radius:6px;background:linear-gradient(90deg,var(--hq-surface-2),var(--hq-line),var(--hq-surface-2));background-size:200% 100%;animation:ho-shim 1.2s linear infinite}
.ho-skel-line:nth-child(2n){width:82%}.ho-skel-line:nth-child(3n){width:64%}
@keyframes ho-shim{from{background-position:200% 0}to{background-position:-200% 0}}
.ho-err{padding:1rem;border:1px dashed var(--hq-no);border-radius:var(--ho-r-sm);display:grid;gap:.4rem;justify-items:start}
.hq-body .ho-err p{color:var(--hq-muted);font-size:.875rem}
/* ---------- phone summary sheet ---------- */
.ho-sheet{border:0;padding:0;background:var(--hq-surface);color:var(--hq-ink);border-radius:var(--ho-r);width:min(28rem,calc(100vw - 2rem));max-height:calc(100dvh - 2rem);overflow:auto;box-shadow:0 30px 80px -20px rgba(0,0,0,.5)}
.ho-sheet::backdrop{background:rgba(10,10,12,.55)}
.ho-sheet-in{display:grid;gap:.85rem;padding:1.1rem 1.1rem 1.25rem}
.ho-sheet-top{display:flex;align-items:flex-start;gap:.75rem}
.ho-sheet-top h2{font-size:1.35rem;margin-right:auto}
.hq-body .ho-sheet-top p{font-size:.8125rem;color:var(--hq-muted);margin-top:.25rem}
.ho-sheet-fig{margin:0 auto;width:min(100%,calc((100dvh - 17rem) * 9 / 16),17rem);aspect-ratio:9/16;border-radius:16px;overflow:hidden;background:var(--hq-surface-2);position:relative;box-shadow:0 0 0 1px var(--hq-line)}
.ho-sheet-fig img{display:block;width:100%;height:100%;object-fit:cover}
.ho-sheet[data-state=loading] .ho-sheet-fig::after{content:"";position:absolute;inset:0;background:linear-gradient(100deg,transparent 30%,var(--hq-line) 50%,transparent 70%);background-size:200% 100%;animation:ho-shim 1.1s linear infinite}
.ho-sheet:not([data-state=ready]) .ho-sheet-fig img{visibility:hidden}
.hq-body .ho-sheet-status{font-size:.875rem;color:var(--hq-muted);text-align:center;min-height:1.3em}
.ho-sheet[data-state=error] .ho-sheet-status{color:var(--hq-no-ink-on-surface)}
.ho-sheet-acts{display:grid;gap:.5rem;grid-template-columns:repeat(auto-fit,minmax(min(100%,9rem),1fr))}
.ho-sheet-acts .hq-btn[aria-disabled=true]{opacity:.5;pointer-events:none}
.ho-sheet:not([data-state=error]) #ho-sheet-retry{display:none}
@media(max-width:47.99em){
  .ho-sheet{width:100%;max-width:100%;margin:auto 0 0;border-radius:var(--ho-r) var(--ho-r) 0 0;max-height:94dvh;padding-bottom:env(safe-area-inset-bottom)}
  .ho-sheet[open]{animation:ho-up .32s var(--ho-ease)}
  .ho-sheet-in::before{content:"";justify-self:center;width:2.5rem;height:4px;border-radius:2px;background:var(--hq-line-strong);margin-bottom:-.25rem}
}
@keyframes ho-up{from{transform:translateY(40px);opacity:0}to{transform:none;opacity:1}}
/* ---------- motion off ---------- */
html[data-motion=off] .ho-track .ho-arc,html[data-motion=off] .ho-track .ho-card-in,html.ho-still .ho-track *,html.ho-still .ho-skel-line,html[data-motion=off] .ho-track .ho-fill,html[data-motion=off] .ho-track .ho-mk,html[data-motion=off] .ho-skel-line,html[data-motion=off] .ho-sheet[open],html[data-motion=off] .ho-sheet-fig::after{animation:none!important}
html[data-motion=off] .ho-bar i,html[data-motion=off] .hq-ring .ho-ring-fg{transition:none!important}
@media(prefers-reduced-motion:reduce){.ho-track .ho-arc,.ho-track .ho-card-in,.ho-track .ho-fill,.ho-track .ho-mk,.ho-skel-line,.ho-sheet[open],.ho-sheet-fig::after{animation:none!important}.ho-bar i,.hq-ring .ho-ring-fg{transition:none!important}}
@media print{.ho-brief-acts,.ho-alert-acts,.ho-goal>.hq-btn,.ho-goals-foot,.ho-sheet{display:none!important}}
