/* _content/SalesTaxMap/Components/Layout/MainLayout.razor.rz.scp.css */
/* Small and out of the way -- the map fills the viewport, so this floats over
   the bottom-right corner rather than taking a strip of layout. */
.signout[b-kxecsm547w] {
    position: fixed;
    right: .5rem;
    bottom: .5rem;
    z-index: 900;
    margin: 0;
}

.signout button[b-kxecsm547w] {
    padding: .25rem .6rem;
    border: 1px solid #c3c7ce;
    border-radius: 4px;
    background: rgb(255 255 255 / 88%);
    color: #444;
    font-size: .75rem;
    cursor: pointer;
}

.signout button:hover[b-kxecsm547w] {
    background: #fff;
    color: #000;
}
/* _content/SalesTaxMap/Components/Pages/Login.razor.rz.scp.css */
.login-shell[b-kbdak7fj7l] {
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 100vh;
    background: #f4f5f7;
}

.login-card[b-kbdak7fj7l] {
    width: min(360px, calc(100vw - 2rem));
    padding: 2rem;
    border: 1px solid #d8dbe0;
    border-radius: 8px;
    background: #fff;
    box-shadow: 0 2px 10px rgb(0 0 0 / 8%);
}

.login-card h1[b-kbdak7fj7l] {
    margin: 0 0 .25rem;
    font-size: 1.35rem;
}

.hint[b-kbdak7fj7l] {
    margin: 0 0 1.25rem;
    color: #5c6470;
    font-size: .9rem;
}

.error[b-kbdak7fj7l] {
    margin: 0 0 1rem;
    padding: .5rem .65rem;
    border-radius: 4px;
    background: #fdeaea;
    color: #922;
    font-size: .875rem;
}

.login-card label[b-kbdak7fj7l] {
    display: block;
    margin-bottom: .35rem;
    font-size: .875rem;
    font-weight: 600;
}

.login-card input[type="password"][b-kbdak7fj7l] {
    width: 100%;
    padding: .5rem .6rem;
    border: 1px solid #c3c7ce;
    border-radius: 4px;
    font-size: 1rem;
}

.login-card button[b-kbdak7fj7l] {
    width: 100%;
    margin-top: 1.25rem;
    padding: .55rem;
    border: 0;
    border-radius: 4px;
    background: #1d64c4;
    color: #fff;
    font-size: 1rem;
    cursor: pointer;
}

.login-card button:hover[b-kbdak7fj7l] { background: #17529f; }
/* _content/SalesTaxMap/Components/Pages/Map.razor.rz.scp.css */
.stm-layout[b-tjhrsccog2] {
    display: grid;
    grid-template-columns: 320px 1fr;
    grid-template-areas: "side map";
    height: calc(100vh - 0px);
    width: 100%;
    overflow: hidden;
}

.stm-layout:has(.stm-detail)[b-tjhrsccog2] {
    grid-template-columns: 320px 1fr 320px;
    grid-template-areas: "side map detail";
}

.stm-sidebar[b-tjhrsccog2] { grid-area: side; }
.stm-map-pane[b-tjhrsccog2] { grid-area: map; }
.stm-detail[b-tjhrsccog2] { grid-area: detail; }

.stm-sidebar[b-tjhrsccog2] {
    background: #1f2937;
    color: #f3f4f6;
    padding: 18px 16px;
    overflow-y: auto;
    border-right: 1px solid #111827;
}

.stm-title[b-tjhrsccog2] {
    margin: 0 0 4px;
    font-size: 1.3rem;
    font-weight: 600;
}

.stm-subtitle[b-tjhrsccog2] {
    margin: 0 0 16px;
    font-size: 0.85rem;
    color: #9ca3af;
}

.stm-filter-section[b-tjhrsccog2] {
    border-top: 1px solid #374151;
    padding: 12px 0;
}

.stm-filter-section h2[b-tjhrsccog2] {
    font-size: 0.78rem;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    color: #9ca3af;
    margin: 0 0 8px;
}

.stm-checkbox[b-tjhrsccog2] {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 4px 0;
    cursor: pointer;
    font-size: 0.9rem;
    user-select: none;
}

.stm-checkbox input[b-tjhrsccog2] { accent-color: #38bdf8; }

.stm-empty[b-tjhrsccog2] {
    font-size: 0.82rem;
    color: #9ca3af;
    font-style: italic;
    padding: 4px 0;
}

.stm-swatch[b-tjhrsccog2] {
    display: inline-block;
    width: 14px;
    height: 14px;
    border-radius: 3px;
    border: 1px solid rgba(255,255,255,0.2);
}

.stm-state-grid[b-tjhrsccog2] {
    display: grid;
    grid-template-columns: repeat(6, 1fr);
    gap: 4px;
}

.stm-state-chip[b-tjhrsccog2] {
    background: #374151;
    color: #f3f4f6;
    border: 1px solid #4b5563;
    padding: 3px 0;
    font-size: 0.72rem;
    border-radius: 3px;
    cursor: pointer;
    text-align: center;
}

.stm-state-chip:hover[b-tjhrsccog2] { background: #4b5563; }
.stm-state-chip.active[b-tjhrsccog2] { background: #2563eb; border-color: #1d4ed8; color: #fff; }

.stm-link[b-tjhrsccog2] {
    background: transparent;
    border: none;
    color: #93c5fd;
    cursor: pointer;
    font-size: 0.75rem;
    padding: 4px 0 0;
}

.stm-text[b-tjhrsccog2] {
    width: 100%;
    background: #111827;
    color: #f3f4f6;
    border: 1px solid #4b5563;
    border-radius: 4px;
    padding: 6px 8px;
    font-size: 0.9rem;
}

.stm-status[b-tjhrsccog2] {
    margin-top: 14px;
    padding-top: 12px;
    border-top: 1px solid #374151;
    font-size: 0.82rem;
    color: #9ca3af;
}

.stm-msg[b-tjhrsccog2] {
    margin-top: 6px;
    color: #fca5a5;
}

.stm-map-pane[b-tjhrsccog2] { position: relative; }

.stm-map[b-tjhrsccog2] {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
}

[b-tjhrsccog2] .stm-popup .label {
    font-weight: 600;
    margin-bottom: 4px;
}

[b-tjhrsccog2] .stm-popup table {
    border-collapse: collapse;
    font-size: 0.85rem;
}

[b-tjhrsccog2] .stm-popup td {
    padding: 1px 6px 1px 0;
}

[b-tjhrsccog2] .stm-popup td.rate {
    font-variant-numeric: tabular-nums;
    text-align: right;
}

[b-tjhrsccog2] .stm-popup .total {
    font-weight: 600;
    border-top: 1px solid #ddd;
    padding-top: 4px;
}

/* ============ Validation section ============ */
.stm-validation .stm-validation-meta[b-tjhrsccog2] {
    margin: 8px 0;
    font-size: 0.82rem;
    color: #d1d5db;
}

.stm-validation-list[b-tjhrsccog2] {
    list-style: none;
    margin: 6px 0;
    padding: 0;
    font-size: 0.8rem;
}

.stm-validation-list li[b-tjhrsccog2] {
    display: flex;
    align-items: center;
    gap: 6px;
    padding: 2px 0;
}

.stm-subhead[b-tjhrsccog2] {
    font-size: 0.75rem;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    color: #9ca3af;
    margin: 8px 0 4px;
}

.stm-boundary-tolerance[b-tjhrsccog2] {
    margin-top: 10px;
}

.stm-range[b-tjhrsccog2] {
    width: 100%;
    accent-color: #38bdf8;
    cursor: pointer;
}

.stm-boundary-tolerance-value[b-tjhrsccog2] {
    font-size: 0.8rem;
    color: #d1d5db;
    margin-top: 4px;
}

.stm-btn[b-tjhrsccog2] {
    background: #2563eb;
    color: #fff;
    border: none;
    border-radius: 4px;
    padding: 6px 10px;
    font-size: 0.82rem;
    cursor: pointer;
    margin-top: 4px;
}

.stm-btn:hover:not([disabled])[b-tjhrsccog2] { background: #1d4ed8; }
.stm-btn[disabled][b-tjhrsccog2] { opacity: 0.6; cursor: progress; }

/* Running recompute: pulsing accent so the spinner-less button still feels alive. */
.stm-btn-busy[b-tjhrsccog2] {
    background: #f59e0b;
    color: #1f2937;
    animation: stm-pulse-b-tjhrsccog2 1.4s ease-in-out infinite;
}
.stm-btn-busy[disabled][b-tjhrsccog2] { opacity: 0.9; }
.stm-btn-sub[b-tjhrsccog2] { font-weight: normal; opacity: 0.85; }
@keyframes stm-pulse-b-tjhrsccog2 {
    0%, 100% { box-shadow: 0 0 0 0 rgba(245, 158, 11, 0.6); }
    50%      { box-shadow: 0 0 0 8px rgba(245, 158, 11, 0); }
}

/* Z4 staging validation button + status (docs/MODEL.md §15) */
.stm-staging-btn[b-tjhrsccog2] {
    margin-top: 6px;
    width: 100%;
}
.stm-staging-status[b-tjhrsccog2] {
    margin-top: 6px;
    padding: 6px 8px;
    background: #1e293b;
    border-left: 3px solid #60a5fa;
    color: #cbd5e1;
    font-size: 0.78rem;
    border-radius: 3px;
    word-break: break-all;
}

/* Download-link block that appears after a staging run finishes. Prominent
   green button so users notice the report is ready. */
.stm-staging-download[b-tjhrsccog2] {
    margin-top: 8px;
}
.stm-staging-download-link[b-tjhrsccog2] {
    display: block;
    width: 100%;
    text-align: center;
    background: #059669;
    color: #f0fdf4;
    border: 1px solid #047857;
    padding: 8px 10px;
    border-radius: 3px;
    text-decoration: none;
    font-weight: 600;
    font-size: 0.85rem;
    word-break: break-all;
}
.stm-staging-download-link:hover[b-tjhrsccog2] {
    background: #047857;
    color: #ecfdf5;
}
.stm-staging-download-meta[b-tjhrsccog2] {
    margin-top: 4px;
    color: #9ca3af;
    font-size: 0.72rem;
    text-align: center;
}

.stm-validation-running[b-tjhrsccog2] {
    margin-top: 6px;
    padding: 6px 8px;
    background: #fef3c7;
    border-left: 3px solid #f59e0b;
    color: #78350f;
    font-size: 0.78rem;
    border-radius: 3px;
    line-height: 1.35;
}

/* Lower-key style when the running recompute is for a different state than the
   one the user is currently viewing -- still informative but not as loud. */
.stm-validation-other[b-tjhrsccog2] {
    background: #e0e7ff;
    border-left-color: #6366f1;
    color: #312e81;
}

/* ============ Right-side detail panel ============ */
.stm-detail[b-tjhrsccog2] {
    background: #1f2937;
    color: #f3f4f6;
    border-left: 1px solid #111827;
    padding: 14px 16px;
    overflow-y: auto;
    font-size: 0.88rem;
}

.stm-detail-head[b-tjhrsccog2] {
    display: flex;
    align-items: center;
    gap: 8px;
    border-bottom: 1px solid #374151;
    padding-bottom: 8px;
    margin-bottom: 8px;
}

.stm-detail-title[b-tjhrsccog2] {
    font-weight: 600;
    font-size: 0.95rem;
    flex: 1;
}

.stm-detail-close[b-tjhrsccog2] {
    background: transparent;
    color: #9ca3af;
    border: none;
    font-size: 1.4rem;
    cursor: pointer;
    line-height: 1;
}

.stm-detail-sub[b-tjhrsccog2] {
    color: #9ca3af;
    font-size: 0.8rem;
    margin-bottom: 12px;
}

.stm-detail-block[b-tjhrsccog2] {
    background: #111827;
    border: 1px solid #374151;
    border-radius: 4px;
    padding: 8px 10px;
    margin-bottom: 10px;
}

.stm-detail-head-row[b-tjhrsccog2] {
    font-size: 0.72rem;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    color: #9ca3af;
    margin-bottom: 4px;
}

.stm-diff[b-tjhrsccog2] {
    color: #fca5a5;
    background: #7f1d1d;
    padding: 0 4px;
    border-radius: 3px;
}

.stm-detail-fips[b-tjhrsccog2] {
    font-size: 0.78rem;
    color: #9ca3af;
    margin-left: 6px;
}

.stm-empty-inline[b-tjhrsccog2] {
    color: #9ca3af;
    font-style: italic;
}

.stm-detail-mono[b-tjhrsccog2] {
    font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
    font-size: 0.82rem;
    color: #d1d5db;
    margin-bottom: 2px;
}

.stm-detail-faint[b-tjhrsccog2] {
    color: #9ca3af;
    font-size: 0.78rem;
    margin-top: 4px;
}

/* Nearest-OSM-feature callout in the geocode block: normal gray when the
   distance is <= 500m, warning-amber when farther out (low confidence). */
.stm-detail-lowconf[b-tjhrsccog2] {
    color: #f59e0b;
}

/* Mirror-source badge above the Recompute button: confirms the local
   TaxRates.Z4 has been refreshed before Recompute validates against it. */
.stm-mirror-badge[b-tjhrsccog2] {
    margin: 4px 0 6px 0;
    padding: 4px 8px;
    border-radius: 3px;
    font-size: 0.78rem;
    line-height: 1.3;
    border: 1px solid transparent;
}

.stm-mirror-badge strong[b-tjhrsccog2] { font-weight: 600; }

.stm-mirror-info[b-tjhrsccog2] {
    color: #9ca3af;
    background: rgba(75, 85, 99, 0.15);
    border-color: rgba(75, 85, 99, 0.4);
}

.stm-mirror-unknown[b-tjhrsccog2] {
    color: #9ca3af;
    background: rgba(75, 85, 99, 0.08);
    border-color: rgba(75, 85, 99, 0.2);
    font-style: italic;
}

/* Polygon metadata key:value pairs (CDTFA rate/county/city/start_date, TX TAID, etc.) */
.stm-detail-meta[b-tjhrsccog2] {
    margin-top: 6px;
    padding: 6px 8px;
    background: #111827;
    border-radius: 3px;
    font-size: 0.78rem;
    line-height: 1.5;
}
.stm-detail-meta-key[b-tjhrsccog2] {
    display: inline-block;
    min-width: 96px;
    color: #9ca3af;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    font-size: 0.7rem;
}
.stm-detail-meta-val[b-tjhrsccog2] {
    color: #e5e7eb;
    font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
}
.stm-detail-source-link[b-tjhrsccog2] {
    color: #93c5fd;
    text-decoration: underline;
    word-break: break-all;
}
.stm-detail-source-link:hover[b-tjhrsccog2] { color: #60a5fa; }

.stm-btn-secondary[b-tjhrsccog2] {
    background: #4b5563;
    margin-left: 6px;
}
.stm-btn-secondary:hover:not([disabled])[b-tjhrsccog2] { background: #374151; }

.stm-severity[b-tjhrsccog2] {
    display: inline-block;
    padding: 2px 6px;
    font-size: 0.72rem;
    font-weight: 600;
    border-radius: 3px;
    text-transform: uppercase;
}

.stm-severity-high[b-tjhrsccog2]   { background: #dc2626; color: #fff; }
.stm-severity-medium[b-tjhrsccog2] { background: #f97316; color: #fff; }
.stm-severity-low[b-tjhrsccog2]    { background: #eab308; color: #111; }

/* Reassurance framing under the headline findings count -- tells the user
   how the absolute number relates to total ZIP+4s in the state, plus the
   inverse "X% match" so a 3% finding rate reads as "97% clean". */
.stm-findings-pct[b-tjhrsccog2] {
    margin-top: 2px;
    font-size: 0.78rem;
    color: #d1d5db;
    line-height: 1.4;
}
.stm-findings-pct strong[b-tjhrsccog2] { color: #fbbf24; font-variant-numeric: tabular-nums; }
.stm-findings-clean[b-tjhrsccog2] { color: #6ee7b7; font-weight: 600; font-variant-numeric: tabular-nums; }
.stm-findings-denom[b-tjhrsccog2] { margin-top: 4px; color: #9ca3af; font-style: italic; font-size: 0.74rem; }
.stm-findings-pct > div[b-tjhrsccog2] { padding: 2px 0; }

/* ============ Rate-data refresh ============ */
.stm-rate-refresh[b-tjhrsccog2] {
    margin-top: 10px;
    padding-top: 10px;
    border-top: 1px dashed #374151;
}

.stm-rate-refresh-meta[b-tjhrsccog2] {
    font-size: 0.78rem;
    color: #d1d5db;
    margin-bottom: 6px;
    line-height: 1.4;
}

.stm-rate-refresh-source[b-tjhrsccog2] {
    color: #9ca3af;
    margin-top: 2px;
}

.stm-rate-refresh-source a[b-tjhrsccog2] {
    color: #93c5fd;
    text-decoration: underline;
}
.stm-rate-refresh-source a:hover[b-tjhrsccog2] { color: #60a5fa; }

.stm-rate-refresh-log[b-tjhrsccog2] {
    margin-top: 8px;
    padding: 6px 8px;
    background: #111827;
    border: 1px solid #374151;
    border-radius: 4px;
    font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
    font-size: 0.75rem;
    color: #d1d5db;
    line-height: 1.5;
    max-height: 180px;
    overflow-y: auto;
}

.stm-rate-refresh-error[b-tjhrsccog2] { color: #fca5a5; }

/* Wrapper that gives the log box a relative anchor for the close button. */
.stm-rate-refresh-log-wrapper[b-tjhrsccog2] {
    position: relative;
    margin-top: 8px;
}
.stm-rate-refresh-log-wrapper .stm-rate-refresh-log[b-tjhrsccog2] {
    margin-top: 0;
}

/* Small "x" in the upper-right corner of the log box, only visible after the
   refresh finishes (the markup omits it while running so the user can't
   dismiss a still-streaming session by mistake). */
.stm-rate-refresh-log-close[b-tjhrsccog2] {
    position: absolute;
    top: 2px;
    right: 4px;
    z-index: 1;
    width: 20px;
    height: 20px;
    padding: 0;
    border: none;
    border-radius: 3px;
    background: rgba(255, 255, 255, 0.08);
    color: #d1d5db;
    font-size: 1.1rem;
    line-height: 1;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
}
.stm-rate-refresh-log-close:hover[b-tjhrsccog2] {
    background: rgba(255, 255, 255, 0.18);
    color: #ffffff;
}

/* ============ Chatbot (floating bottom-left widget, LinkedIn-style) ============ */
.stm-chat-widget[b-tjhrsccog2] {
    position: fixed;
    bottom: 0;
    /* Anchored just to the right of the 320px sidebar so it doesn't cover the
       sidebar's scrollbar. */
    left: 328px;
    width: 340px;
    z-index: 9000;
    background: #1f2937;
    color: #f3f4f6;
    border: 1px solid #111827;
    border-bottom: none;
    border-top-left-radius: 8px;
    border-top-right-radius: 8px;
    box-shadow: 0 -4px 16px rgba(0,0,0,0.35);
    display: flex;
    flex-direction: column;
    overflow: hidden;
}

.stm-chat-widget.collapsed[b-tjhrsccog2] { height: 38px; }
/* LinkedIn-style: fills most of the viewport height, leaving a small gap at
   the top so the page header / map controls remain visible. */
.stm-chat-widget.expanded[b-tjhrsccog2]  { height: calc(100vh - 48px); }

.stm-chat-widget-header[b-tjhrsccog2] {
    flex: 0 0 38px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 0 12px;
    background: #2563eb;
    color: #fff;
    border: none;
    cursor: pointer;
    font-size: 0.92rem;
    font-weight: 600;
    text-align: left;
}
.stm-chat-widget-header:hover[b-tjhrsccog2] { background: #1d4ed8; }

.stm-chat-widget-title[b-tjhrsccog2] {
    display: flex;
    align-items: center;
    gap: 8px;
}
.stm-chat-widget-icon[b-tjhrsccog2] { font-size: 1.05rem; }
.stm-chat-widget-chevron[b-tjhrsccog2] { font-size: 0.85rem; opacity: 0.85; }

.stm-chat-widget-body[b-tjhrsccog2] {
    flex: 1 1 auto;
    display: flex;
    flex-direction: column;
    padding: 10px;
    gap: 6px;
    min-height: 0;
}

.stm-chat-transcript[b-tjhrsccog2] {
    flex: 1 1 auto;
    overflow-y: auto;
    background: #111827;
    border: 1px solid #374151;
    border-radius: 4px;
    padding: 8px 10px;
    display: flex;
    flex-direction: column;
    gap: 6px;
    min-height: 0;
}

.stm-chat-empty[b-tjhrsccog2] {
    font-size: 0.82rem;
    color: #9ca3af;
    font-style: italic;
    padding: 6px 2px;
}

.stm-chat-msg-user[b-tjhrsccog2],
.stm-chat-msg-assistant[b-tjhrsccog2] {
    font-size: 0.86rem;
    line-height: 1.45;
    padding: 6px 10px;
    border-radius: 8px;
    max-width: 92%;
    white-space: pre-wrap;
    word-wrap: break-word;
}

.stm-chat-msg-user[b-tjhrsccog2] {
    align-self: flex-end;
    background: #1d4ed8;
    color: #f0f9ff;
    border-bottom-right-radius: 2px;
}

.stm-chat-msg-assistant[b-tjhrsccog2] {
    align-self: flex-start;
    background: #374151;
    color: #f3f4f6;
    border-bottom-left-radius: 2px;
}

.stm-chat-streaming[b-tjhrsccog2] {
    display: inline-block;
    color: #9ca3af;
    animation: stm-pulse-b-tjhrsccog2 1.4s ease-in-out infinite;
}

.stm-chat-context-hint[b-tjhrsccog2] {
    font-size: 0.72rem;
    color: #93c5fd;
    font-style: italic;
}

.stm-chat-input[b-tjhrsccog2] {
    width: 100%;
    min-height: 96px;
    background: #111827;
    color: #f3f4f6;
    border: 1px solid #4b5563;
    border-radius: 4px;
    padding: 6px 8px;
    font-size: 0.88rem;
    font-family: inherit;
    line-height: 1.4;
    resize: vertical;
    box-sizing: border-box;
}
.stm-chat-input:disabled[b-tjhrsccog2] { opacity: 0.6; }

.stm-chat-actions[b-tjhrsccog2] {
    display: flex;
    gap: 6px;
    align-items: center;
    flex-wrap: wrap;
}


/* Voice / mic button ------------------------------------------------------ */
.stm-mic-btn[b-tjhrsccog2] {
    background: #374151;
    border-color: #4b5563;
}
.stm-mic-btn:disabled[b-tjhrsccog2] { opacity: 0.5; cursor: not-allowed; }

.stm-mic-listening[b-tjhrsccog2] {
    background: #065f46;
    border-color: #10b981;
    box-shadow: 0 0 0 0 rgba(16, 185, 129, 0.7);
    animation: stm-mic-pulse-b-tjhrsccog2 1.8s ease-out infinite;
}
.stm-mic-captured[b-tjhrsccog2] {
    background: #1e3a8a;
    border-color: #60a5fa;
    animation: stm-mic-pulse-blue-b-tjhrsccog2 0.8s ease-out infinite;
}
.stm-mic-submitting[b-tjhrsccog2] {
    background: #4338ca;
    border-color: #818cf8;
}
.stm-mic-denied[b-tjhrsccog2],
.stm-mic-error[b-tjhrsccog2] {
    background: #7f1d1d;
    border-color: #f87171;
}
.stm-mic-unsupported[b-tjhrsccog2] {
    background: #1f2937;
    color: #6b7280;
    border-color: #374151;
}

@keyframes stm-mic-pulse-b-tjhrsccog2 {
    0%   { box-shadow: 0 0 0 0 rgba(16, 185, 129, 0.6); }
    70%  { box-shadow: 0 0 0 8px rgba(16, 185, 129, 0); }
    100% { box-shadow: 0 0 0 0 rgba(16, 185, 129, 0); }
}
@keyframes stm-mic-pulse-blue-b-tjhrsccog2 {
    0%   { box-shadow: 0 0 0 0 rgba(96, 165, 250, 0.7); }
    70%  { box-shadow: 0 0 0 10px rgba(96, 165, 250, 0); }
    100% { box-shadow: 0 0 0 0 rgba(96, 165, 250, 0); }
}

.stm-chat-voice-hint[b-tjhrsccog2] {
    margin-top: 4px;
    font-size: 0.72rem;
    font-style: italic;
    color: #9ca3af;
}
.stm-voice-listening[b-tjhrsccog2] { color: #6ee7b7; }
.stm-voice-captured[b-tjhrsccog2]  { color: #93c5fd; }
.stm-voice-submitting[b-tjhrsccog2] { color: #c7d2fe; }
.stm-voice-denied[b-tjhrsccog2],
.stm-voice-error[b-tjhrsccog2]     { color: #fca5a5; font-style: normal; }
.stm-voice-unsupported[b-tjhrsccog2] { color: #9ca3af; }
