/* Shared production behavior and accessibility. Page styles preserve the approved design. */
:root { --nav-height: 84px; }
html { scroll-padding-top: calc(var(--nav-height) + 20px); }
[hidden] { display: none !important; }
.skip-link { position: fixed; z-index: 100; left: 16px; top: -100px; padding: 12px 20px; background: #1a3a5c; color: white; border-radius: 8px; font: 600 16px system-ui; }
.skip-link:focus { top: 12px; }
main:focus { outline: none; }
.da .btn { max-width: 100%; white-space: normal; text-align: center; padding-top: 12px; padding-bottom: 12px; }
.da .nav-links .btn { white-space: nowrap; }
.da .proto a { color: #1a3a5c; }
.da .form .options { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
.da .form .opt { position: relative; display: flex; flex-direction: column; justify-content: center; gap: 4px; padding: 14px; border: 1.5px solid #d2d9e2; border-radius: 12px; cursor: pointer; min-height: 90px; }
.da .opt input { position: absolute; width: 1px; height: 1px; opacity: 0; }
.da .opt span { font-size: 13.5px; line-height: 1.4; color: #586577; }
.da .opt.on { background: #e6edf5; border-color: #1a3a5c; }
.da .opt:focus-within { outline: 3px solid #1a3a5c; outline-offset: 3px; }
.da .email-note { font-size: 14px; line-height: 1.5; color: #475467; margin: 14px 0 20px; }
.da .draft-status { margin-top: 20px; padding: 14px; border-radius: 12px; background: #e6edf5; color: #142334; font-size: 15px; }
.da .form fieldset { min-width: 0; }
.da .chip input:focus-visible { outline: none; }
.da .ph { overflow-wrap: anywhere; max-width: 100%; }
.da .mails a, .da .foot a { overflow-wrap: anywhere; }
.da .flow-controls { display: contents; }
.healiospace-visual { display: flex; flex-direction: column; align-items: flex-start; gap: 24px; padding: 32px; background: #e3eef5; }
.healiospace-brand { width: 24%; min-width: 88px; max-width: 132px; padding: 8px; background: #fff; border-radius: 20px; box-shadow: 0 24px 40px -24px rgba(18,96,154,.6); }
.healiospace-brand img { display: block; width: 100%; height: auto; }
.healiospace-browser { width: 100%; margin-top: auto; }
.healiospace-dashboard { display: block; width: 100%; height: auto; }
.dispatch-phone { aspect-ratio: 9 / 19.5; }
.dispatch-phone img { display: block; width: 100%; height: 100%; object-fit: cover; object-position: center top; }
.healiospace-frame { aspect-ratio: auto; padding: 24px; background: #e3eef5; }
.coding-troop-logo { line-height: 0; background: #fff; border-radius: 16px; overflow: hidden; }
.coding-troop-logo img { display: block; width: 100%; height: auto; }
.da .coding-troop-tagline { font: 700 clamp(23px,2.3vw,30px)/1.16 'Bricolage Grotesque',sans-serif; letter-spacing: -.02em; margin-top: 24px; }
.coding-troop { align-items: start; }
.coding-troop-aside { position: sticky; top: 104px; }
.coding-troop-facts { border-color: #3b5d84; }
.coding-troop-facts dt { color: #b9cadc; }
.coding-troop-facts dd { color: #dce5ef; }
.coding-troop .tlink { color: #eef2f6; }
.workflow-stage { width: 100%; height: 560px; box-sizing: border-box; background: #fff; border-radius: 26px; padding: 24px; color: #142334; display: flex; flex-direction: column; gap: 14px; box-shadow: 0 40px 80px -40px rgba(5,15,28,.6); overflow: hidden; }
.workflow-heading { display: flex; align-items: center; justify-content: space-between; gap: 12px; font-size: 13px; color: #586577; }
.workflow-heading strong { color: #1a3a5c; font-weight: 600; }
.da .workflow-scenario { font-size: 13.5px; line-height: 1.4; color: #475467; }
.da .workflow-tabs { display: grid; grid-template-columns: repeat(5,minmax(0,1fr)); gap: 6px; list-style: none; padding: 0; }
.workflow-tabs li { min-width: 0; }
.workflow-tabs button { display: flex; flex-direction: column; gap: 8px; width: 100%; min-height: 44px; border: 0; padding: 6px 0 0; background: transparent; font: 500 12.5px 'Instrument Sans',sans-serif; color: #5f6c7d; cursor: pointer; text-align: left; }
.workflow-bar { height: 4px; width: 100%; border-radius: 2px; background: #d6dde5; }
.workflow-tabs button[data-state="done"] .workflow-bar, .workflow-tabs button[aria-selected="true"] .workflow-bar { background: #1a3a5c; }
.workflow-tabs button[aria-selected="true"] { font-weight: 700; color: #142334; }
.workflow-main { flex: 1; min-height: 0; display: grid; grid-template-columns: minmax(0,5fr) minmax(0,7fr); gap: 16px; }
.workflow-ticket { border-radius: 16px; padding: 16px; background: #f2f5f8; overflow: hidden; }
.da .workflow-ticket p { font-size: 13px; line-height: 1.4; color: #475467; }
.da .workflow-ticket h3 { font: 700 20px/1.15 'Bricolage Grotesque',sans-serif; letter-spacing: -.02em; margin: 4px 0; }
.da .workflow-ticket ul { list-style: none; padding: 0; display: grid; gap: 3px; margin-top: 12px; }
.workflow-ticket li { display: grid; grid-template-columns: 20px minmax(0,1fr); gap: 7px; font-size: 13px; line-height: 1.35; padding: 6px 4px; border-radius: 8px; color: #5f6c7d; }
.workflow-ticket li[data-state="current"] { background: #fff; box-shadow: 0 0 0 1px #d6dde5; font-weight: 600; color: #142334; }
.workflow-ticket li > span:first-child { width: 20px; height: 20px; border-radius: 50%; border: 1.5px solid #b5c0cc; display: grid; place-items: center; font-size: 11px; }
.workflow-ticket li[data-state="done"] > span:first-child { background: #1a3a5c; color: white; border-color: #1a3a5c; }
.workflow-panels { position: relative; min-height: 0; border: 1px solid #d6dde5; border-radius: 14px; background: #fff; overflow: hidden; }
.workflow-pane { position: absolute; inset: 0; padding: 16px; overflow-y: auto; overscroll-behavior: contain; }
.da .workflow-now { display: none; }
@media (max-width:900px) {
  :root { --nav-height: 68px; }
  .healiospace-visual { padding: 20px; gap: 20px; }
  .healiospace-frame { padding: 16px; }
  .coding-troop-aside { position: static; }
  .da .form .options { grid-template-columns: minmax(0,1fr); }
  .workflow-stage { height: 470px; border-radius: 20px; padding: 14px; gap: 10px; }
  .workflow-scenario, .workflow-ticket { display: none; }
  .workflow-main { display: flex; flex-direction: column; gap: 10px; }
  .workflow-panels { flex: 1; }
  .workflow-pane { padding: 14px; }
  .workflow-tabs button { font-size: 11.5px; }
  .da .workflow-now { display: block; margin: 0; padding: 9px 10px; background: #f2f5f8; border-radius: 10px; font-size: 13px; line-height: 1.35; font-weight: 600; }
}
@media (max-width:900px) and (max-height:779px) {
  .wf-stage { position: relative; top: auto; }
  .wf.is-live .wf-step { min-height: auto; opacity: 1; }
}
@media (max-width:360px) {
  .nav-in { gap: 8px; }
  .nav-logo img { width: 125px; }
  .nav-links { gap: 8px; }
  .nav-links .btn { padding-left: 10px; padding-right: 10px; font-size: 14px; }
  .menu-btn { width: 42px; height: 42px; }
}
@media (prefers-reduced-motion:reduce) {
  *, *::before, *::after { animation: none !important; transition: none !important; scroll-behavior: auto !important; }
}
.form-honeypot { position: absolute !important; left: -10000px !important; width: 1px; height: 1px; overflow: hidden; }
.bot-check { margin: 22px 0 12px; max-width: 100%; }
.bot-retry { margin: 0 0 12px; padding: 9px 14px; border: 1px solid #b8c6d6; border-radius: 8px; background: #fff; color: #203957; font: inherit; font-size: 14px; cursor: pointer; }
.bot-retry:focus-visible { outline: 3px solid #203957; outline-offset: 3px; }
.form-data-note { margin: 12px 0 20px; font-size: 13px; line-height: 1.5; color: #586577; }
.waitlist-consent { margin-top: 22px; }
.consent { display: flex; align-items: flex-start; gap: 10px; font-size: 14px; line-height: 1.5; cursor: pointer; }
.consent input { flex: 0 0 18px; width: 18px; height: 18px; margin-top: 2px; accent-color: #1a3a5c; }
.wl .consent input { appearance: auto; position: static; opacity: 1; }
.draft-status[data-error="true"] { border: 1px solid #9b293d; color: #7b2332; background: #fff4f5; }
.btn:disabled { cursor: default; opacity: .65; }
.waitlist-page { min-height: 100vh; padding: 40px 24px; max-width: 780px; margin: auto; }
.waitlist-card { margin: 42px 0 24px; padding: 32px; background: #fff; border: 1px solid #d6dde5; border-radius: 24px; }
.waitlist-card h1 { font-size: clamp(32px, 6vw, 52px); margin-bottom: 20px; }
.waitlist-card p { margin: 20px 0; line-height: 1.6; }
.waitlist-legal { font-size: 13px; color: #586577; }
@media (max-width: 500px) { .waitlist-card { padding: 22px; } }
