/* Compact contact chat and native, local service tools. */
#chat-launcher{
  position:fixed;
  right:max(16px,env(safe-area-inset-right,0px));
  bottom:calc(85px + var(--safe-bottom,env(safe-area-inset-bottom,0px)));
  z-index:110;
  display:grid;
  place-items:center;
  width:54px;
  height:54px;
  padding:14px;
  border:0;
  border-radius:50%;
  background:var(--turquoise,#00abbd);
  color:var(--navy,#002d3e);
  box-shadow:0 6px 22px #002d3e24;
  cursor:pointer;
}
#chat-launcher svg{width:26px;height:26px}
#chat-launcher:hover{background:var(--navy,#002d3e);color:var(--white,#fff)}
#chat-launcher[aria-expanded=true]{box-shadow:inset 0 0 0 2px var(--navy,#002d3e)}
#chat-launcher:focus-visible{outline:3px solid var(--navy,#002d3e);outline-offset:4px}

#chat-panel.chat-panel{
  position:fixed;
  right:max(16px,env(safe-area-inset-right,0px));
  bottom:calc(90px + var(--safe-bottom,env(safe-area-inset-bottom,0px)));
  z-index:120;
  display:grid;
  grid-template-rows:auto minmax(0,1fr);
  width:min(340px,calc(100% - 32px));
  max-height:min(520px,calc(100dvh - 110px - var(--safe-bottom,env(safe-area-inset-bottom,0px))));
  overflow:hidden;
  border:1px solid var(--line,#002d3e30);
  border-radius:14px;
  background:var(--white,#fff);
  color:var(--navy,#002d3e);
  box-shadow:0 12px 40px #002d3e30;
}
#chat-panel[hidden]{display:none!important}
#chat-panel .chat-header{
  display:flex;
  align-items:center;
  gap:10px;
  min-height:66px;
  padding:10px 12px;
  background:var(--navy,#002d3e);
  color:var(--white,#fff);
}
#chat-panel .chat-header>div:not(.chat-avatar){flex:1;min-width:0}
#chat-panel .chat-header :is(h2,h3,strong){margin:0;color:var(--white,#fff);font:600 .875rem/1.4 var(--body,Inter,sans-serif);letter-spacing:0;overflow-wrap:anywhere}
#chat-panel .chat-header :is(p,small){display:block;margin:3px 0 0;color:color-mix(in srgb,var(--white,#fff) 82%,var(--navy,#002d3e));font-size:.6875rem;line-height:1.5}
#chat-panel .chat-avatar{display:block;flex:0 0 40px;width:40px;height:40px;overflow:hidden;border-radius:50%;background:var(--white,#fff)}
#chat-panel .chat-avatar img{display:block;width:100%;height:100%;object-fit:cover;object-position:50% 25%}
#chat-panel img.chat-avatar{object-fit:cover;object-position:50% 25%}
#chat-panel .chat-close{display:grid;place-items:center;flex:0 0 44px;width:44px;height:44px;padding:0;border:0;border-radius:5px;background:transparent;color:var(--white,#fff);font:400 1.75rem/1 var(--body,Inter,sans-serif);cursor:pointer}
#chat-panel .chat-close:hover{background:color-mix(in srgb,var(--white,#fff) 12%,var(--navy,#002d3e))}
#chat-panel .chat-close:focus-visible{outline:2px solid var(--white,#fff);outline-offset:1px}
#chat-panel .chat-body{min-height:0;overflow-y:auto;overscroll-behavior:contain;padding:16px;scrollbar-width:thin;scrollbar-color:var(--turquoise,#00abbd) var(--white,#fff)}
#chat-panel .chat-body>p{margin:0 0 12px;color:var(--navy,#002d3e);font-size:.875rem;line-height:1.6}
#chat-panel .chat-form{display:grid;gap:12px;min-width:0}
#chat-panel .field{gap:5px;margin:0;min-width:0}
#chat-panel .field label{font-size:.75rem;line-height:1.5}
#chat-panel .field :is(input,select,textarea){min-height:44px;padding:8px 10px;font-size:16px;line-height:1.5}
#chat-panel .field textarea{height:64px;min-height:64px;max-height:140px;resize:vertical}
#chat-panel .field-row{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin:0}
#chat-panel .chat-form>div:has(>.field){display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
#chat-panel .chat-form .btn{width:100%;min-height:44px;padding:10px 12px;font-size:.8125rem}
#chat-panel .chat-form :is(.form-note,.small){margin:0;color:var(--muted,#002d3e);font-size:.6875rem;line-height:1.65}
#chat-panel .form-note a{color:var(--teal,#002d3e);text-decoration:underline}
#chat-panel .form-status:not(:empty){margin:0;padding:10px 12px;font-size:.75rem;line-height:1.65}
#chat-panel .error{font-size:.75rem}
body.chat-open .mobile-cta{display:none}

/* Native radio controls remain visible and keyboard-operable. */
.coverage-options{display:grid;grid-template-columns:minmax(0,1fr);gap:12px;margin:24px 0}
fieldset.coverage-options{min-width:0;padding:0;border:0}
.coverage-options legend{margin-bottom:14px;padding:0;color:var(--navy,#002d3e);font-size:.8125rem;line-height:1.6}
.coverage-option{display:grid;grid-template-columns:18px minmax(0,1fr);align-items:start;gap:10px;padding:16px;border:1px solid var(--line,#002d3e30);border-radius:10px;background:var(--white,#fff);color:var(--navy,#002d3e);font-size:.875rem;line-height:1.6;cursor:pointer}
.coverage-option input[type=radio]{display:block;grid-column:1;grid-row:1/span 2;width:18px;height:18px;min-height:18px;margin:4px 0 0;padding:0;accent-color:var(--navy,#002d3e);cursor:pointer}
.coverage-option :is(span,div){min-width:0}
.coverage-option>:is(strong,span,small){grid-column:2}
.coverage-option>span{color:var(--muted,#002d3e);font-size:.75rem;line-height:1.65}
.coverage-option strong{display:block;font-size:.875rem;font-weight:600;line-height:1.5}
.coverage-option small{display:block;margin-top:4px;color:var(--muted,#002d3e);font-size:.75rem;line-height:1.65}
.coverage-option:has(input:checked){padding:15px;border:2px solid var(--navy,#002d3e);background:var(--soft,#fff)}
.coverage-option:focus-within{outline:2px solid var(--navy,#002d3e);outline-offset:3px}
.coverage-result{margin:20px 0;padding:18px;border-left:3px solid var(--turquoise,#00abbd);border-radius:0 10px 10px 0;background:var(--soft,#fff);color:var(--navy,#002d3e)}
.coverage-result :is(h2,h3){font-size:1.25rem;line-height:1.3}
.coverage-result p{font-size:.875rem;line-height:1.75}
.coverage-result p:last-child{margin-bottom:0}
.coverage-result output{display:block;color:var(--navy,#002d3e);font-weight:600}
.meter-row{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:8px 16px;min-width:0;margin:16px 0;color:var(--navy,#002d3e);font-size:.8125rem;line-height:1.5}
.meter-row :is(strong,output){font-size:.875rem;font-weight:600;text-align:right}
.meter-row .meter{grid-column:1/-1}
.meter{height:10px;min-width:0;overflow:hidden;border-radius:3px;background:color-mix(in srgb,var(--navy,#002d3e) 12%,var(--white,#fff))}
.meter-fill{display:block;width:var(--meter-value,0%);max-width:100%;height:100%;border-radius:inherit;background:var(--turquoise,#00abbd);transition:width .2s}
.meter-fill--gap{background:var(--navy,#002d3e)}
.tool-results{display:grid;grid-template-columns:minmax(0,1fr);gap:16px;margin-top:24px}
.tool-results>*{min-width:0}
.tool-results>div{padding:18px;border:1px solid var(--line,#002d3e30);border-radius:10px;background:var(--white,#fff)}
.tool-results :is(h3,h4){font-size:1.125rem;line-height:1.35}
.tool-results p{font-size:.8125rem;line-height:1.75}
.tool-results output{display:block;margin:6px 0;color:var(--navy,#002d3e);font:500 1.75rem/1.25 var(--heading,Outfit,sans-serif);letter-spacing:-.025em;overflow-wrap:anywhere}

@media(min-width:700px){
  .coverage-options{grid-template-columns:repeat(3,minmax(0,1fr))}
  .tool-results{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(min-width:900px){
  #chat-launcher{bottom:24px;right:max(24px,env(safe-area-inset-right,0px))}
  #chat-panel.chat-panel{bottom:92px;right:max(24px,env(safe-area-inset-right,0px))}
}
@media(max-width:899px){
  body.chat-open #chat-launcher{visibility:hidden;pointer-events:none}
}
@media(max-width:359px){
  #chat-panel .field-row,#chat-panel .chat-form>div:has(>.field){grid-template-columns:minmax(0,1fr)}
}
@media(prefers-reduced-motion:reduce){
  .meter-fill{transition:none}
}
@media print{
  #chat-launcher,#chat-panel{display:none!important}
  .coverage-options,.coverage-result,.tool-results{break-inside:avoid}
}
.source-note{padding-block:0 32px}
