.sel-explorer { flex: 0 0 auto; padding: .45rem 1rem; text-align: right; }
.pulse-launcher { display: inline-flex; gap: .5rem; align-items: center; border: 1px solid #d4defa; background: #f1f5ff; color: #3e5698; border-radius: 24px; padding: .5rem .9rem; font-weight: 600; cursor: pointer; }
.pulse-dialog { box-sizing: border-box; width: min(660px, calc(100vw - 28px)); max-height: calc(100dvh - 32px); margin: auto; padding: 26px; border: 1px solid #e1e7f3; border-radius: 26px; background: #fff; color: #29344b; text-align: left; box-shadow: 0 24px 100px #192e5738; overflow: auto; }
.pulse-dialog::backdrop { background: #18284465; backdrop-filter: blur(5px); transition: background .42s, backdrop-filter .42s; }
.pulse-dialog.is-closing::backdrop { background: transparent; backdrop-filter: blur(0); }
.pulse-dialog.is-closing { pointer-events: none; overflow: hidden; }
.pulse-heading { display: flex; align-items: center; gap: 12px; }
.pulse-mark { display: grid; place-items: center; background: linear-gradient(135deg,#edf2ff,#f0eaff); color: #7062c1; width: 48px; height: 48px; border-radius: 16px; font-size: 30px; }
.pulse-eyebrow { color: #7d879c; font-size: 10px; text-transform: uppercase; letter-spacing: .14em; }
.pulse-dialog h2 { font-size: 24px; margin: 3px 0 0; letter-spacing: -.5px; }
.pulse-x { margin-left: auto; background: #f3f5fa; border: 0; border-radius: 50%; width: 32px; height: 32px; color: #65738b; font-size: 23px; cursor: pointer; }
.pulse-intro { color: #718099; font-size: 13px; line-height: 1.6; margin: 14px 0 20px; }
.pulse-diagnostics { margin-bottom: 16px; }
.pulse-diagnostics-label { font-size: 12px; color: #53647f; margin: 0 0 8px; }
.pulse-diagnostic-list { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; max-height: 184px; overflow-y: auto; padding: 3px; }
.pulse-diagnostic { position: relative; display: flex; flex-direction: column; align-items: flex-start; gap: 7px; min-width: 0; padding: 12px 28px 12px 12px; border: 1px solid #dce3ef; border-radius: 13px; background: #fafbfe; color: #36445f; text-align: left; font: inherit; cursor: pointer; }
.pulse-diagnostic strong { font-size: 12px; line-height: 1.4; overflow-wrap: anywhere; }
.pulse-diagnostic:hover { background: #f0f4ff; border-color: #99ade1; }
.pulse-diagnostic.selected { border-color: #657fc3; background: #eef2ff; box-shadow: inset 0 0 0 1px #657fc3; }
.pulse-diagnostic-state { display: flex; align-items: center; gap: 5px; font-size: 10px; color: #6e7889; }
.pulse-diagnostic-state i { width: 6px; height: 6px; border-radius: 50%; background: #9ba4b4; }
.pulse-diagnostic-state.active { color: #267662; }
.pulse-diagnostic-state.active i { background: #3d9b83; }
.pulse-diagnostic-check { position: absolute; top: 12px; right: 10px; color: #6179b5; font-size: 13px; }
.pulse-status { padding: 3px 8px; border-radius: 8px; background: #ffffffa0; color: #315a93; }
.pulse-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.pulse-card { --accent: #5083cf; --wash: #f0f6ff; padding: 16px; border-radius: 18px; background: var(--wash); min-width: 0; position: relative; display: flex; flex-direction: column; align-items: flex-start; overflow-wrap: anywhere; }
.pulse-purple { --accent: #8a6cc9; --wash: #f5f1fc; }
.pulse-amber { --accent: #bd853b; --wash: #fff7eb; }
.pulse-green { --accent: #3a9786; --wash: #edf8f3; }
.pulse-label { font-size: 11px; text-transform: uppercase; letter-spacing: .06em; color: var(--accent); font-weight: 700; }
.pulse-blue .pulse-label { color: #315a93; }
.pulse-purple .pulse-label { color: #7451ad; }
.pulse-amber .pulse-label { color: #8b5c24; }
.pulse-green .pulse-label { color: #246b5d; }
.pulse-metric { font-size: 38px; font-weight: 700; line-height: 1.2; margin: 10px 0; }
.pulse-metric span { font-size: 13px; color: #65728c; font-weight: 400; }
.pulse-dots, .pulse-level { display: flex; gap: 4px; margin: 4px 0; }
.pulse-dots i { width: 8px; height: 8px; border-radius: 50%; background: #dce4f0; }
.pulse-level { width: 100%; }
.pulse-level i { height: 6px; flex: 1; border-radius: 3px; background: #0000000c; }
.pulse-dots .on, .pulse-level .on { background: var(--accent); }
.pulse-card h3 { font-size: 16px; line-height: 1.3; margin: 8px 0 4px; }
.pulse-card p { font-size: 12px; line-height: 1.5; margin: 5px 0; }
.pulse-card small { font-size: 10px; line-height: 1.45; color: #65738b; }
.pulse-participation { display: flex; align-items: center; gap: 12px; margin: 8px 0; }
.pulse-participation p { margin: 2px 0; }
.pulse-ring { --fill: 0%; display: grid; place-items: center; width: 65px; height: 65px; border-radius: 50%; background: conic-gradient(var(--accent) var(--fill),#e5def0 0); position: relative; }
.pulse-ring::before { content: ''; position: absolute; inset: 6px; border-radius: 50%; background: var(--wash); }
.pulse-ring strong { position: relative; font-size: 17px; }
.pulse-ask { padding: 8px 0 0; margin-top: auto; min-height: 32px; max-width: 100%; border: 0; background: none; color: #3f526f; font-size: 11px; line-height: 1.35; text-align: left; font-weight: 600; cursor: pointer; }
.pulse-blue .pulse-indicator-trigger { margin-top: 8px; }
@media (pointer: coarse) { .pulse-ask { min-height: 44px; } }
.pulse-quiet { font-size: 28px; color: var(--accent); margin-top: 14px; }
.pulse-source { color: #7b8798; font-size: 10px; line-height: 1.4; margin: 12px 0 0; }
.pulse-dialog footer { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-top: 20px; padding-top: 16px; border-top: 1px solid #edf0f5; }
.pulse-preference { display: flex; align-items: center; gap: 6px; color: #6d7890; font-size: 11px; cursor: pointer; }
.pulse-preference input { accent-color: #627ac3; }
.pulse-done { border: 0; border-radius: 12px; background: #536eaf; color: white; padding: 11px 17px; font-weight: 600; font-size: 12px; cursor: pointer; white-space: nowrap; }
.pulse-return { color: #8993a5; text-align: right; font-size: 10px; margin: 10px 0 0; }
.pulse-dialog button:disabled { opacity: .45; cursor: default; }
.pulse-dialog button:focus-visible, .pulse-dialog input:focus-visible, .pulse-launcher:focus-visible { outline: 2px solid #537dd1; outline-offset: 3px; }
.pulse-loading, .pulse-error { padding: 20px 0; font-size: 13px; }
@media (max-width: 480px) { .pulse-dialog { padding: 18px; border-radius: 20px; } .pulse-card { padding: 12px; } .pulse-grid { gap: 8px; } .pulse-participation { gap: 8px; } .pulse-ring { width: 52px; height: 52px; } .pulse-preference { max-width: 170px; } .pulse-dialog h2 { font-size: 22px; } }
@media (max-width: 340px) { .pulse-grid { grid-template-columns: 1fr; } }
@media (prefers-reduced-motion: reduce) { .pulse-dialog::backdrop { transition: none; } }
.pulse-dialog { height: min(880px, calc(100dvh - 32px)); }
.pulse-grid { grid-template-rows: repeat(2, 190px); }
.pulse-card { overflow: auto; }
.pulse-status-line { height: 32px; font-size: 12px; color: #65738b; overflow: auto; }
.pulse-source { height: 28px; overflow: auto; }
.pulse-skeleton { width: 100%; display: grid; gap: 14px; margin-top: 22px; }
.pulse-skeleton i { display: block; height: 16px; border-radius: 7px; background: linear-gradient(90deg,#00000008,#ffffffa0,#00000008); background-size: 200% 100%; animation: pulse-shimmer 1.4s ease-in-out infinite; }
.pulse-skeleton i:nth-child(2) { width: 70%; height: 36px; }.pulse-skeleton i:nth-child(3) { width: 85%; }
@keyframes pulse-shimmer { from { background-position: 200% 0; } to { background-position: -200% 0; } }
@media (prefers-reduced-motion: reduce) { .pulse-skeleton i { animation: none; } }
@media (max-width: 480px) { .pulse-grid { grid-template-rows: repeat(2, 225px); grid-auto-rows: 225px; } }
.pulse-card .pulse-valid { margin: 0 0 4px; color: #634793; font-size: 11px; }
.pulse-diagnostic-counts { font-size: 10px; line-height: 1.5; color: #58677d; }
.pulse-diagnostic-list { max-height: 240px; }
.pulse-refresh { margin-left: auto; background: #f3f5fa; border: 0; border-radius: 50%; width: 32px; height: 32px; color: #52678c; font-size: 21px; cursor: pointer; }
.pulse-heading .pulse-x { margin-left: 0; }
.pulse-indicator-trigger { display: flex; align-items: center; gap: 9px; margin-top: auto; padding: 10px 12px; border: 1px solid #d6e2f5; border-radius: 12px; background: #ffffffba; color: #315a93; font: inherit; font-size: 12px; text-align: left; cursor: pointer; }
.pulse-indicator-trigger strong { display: grid; place-items: center; min-width: 24px; height: 24px; border-radius: 8px; background: #e9f0ff; }
.pulse-indicator-trigger:hover { background: white; border-color: #8ca9dc; }
.pulse-indicator-popup { box-sizing: border-box; position: fixed; inset: auto; margin: 0; width: min(360px, calc(100vw - 32px)); max-height: min(440px, calc(100dvh - 32px)); padding: 20px; border: 1px solid #dce5f4; border-radius: 20px; background: #fff; color: #29344b; box-shadow: 0 16px 48px #233a6733; overflow: auto; text-align: left; }
.pulse-indicator-heading { display: flex; align-items: flex-start; gap: 14px; }
.pulse-indicator-heading .pulse-x { flex: 0 0 32px; }
.pulse-indicator-heading h3 { font-size: 17px; line-height: 1.4; margin: 7px 0 0; }
.pulse-indicator-popup .pulse-indicator-hint { font-size: 12px; color: #718099; margin: 14px 0 10px; }
.pulse-indicators { list-style: none; padding: 0; margin: 0; width: 100%; display: flex; flex-direction: column; gap: 8px; }
.pulse-indicator { box-sizing: border-box; display: flex; align-items: center; justify-content: space-between; gap: 12px; width: 100%; min-height: 48px; padding: 12px 14px; border: 1px solid #e1e8f4; border-radius: 12px; background: #f7f9fe; color: #315a93; font: inherit; font-size: 13px; line-height: 1.5; text-align: left; overflow-wrap: anywhere; cursor: pointer; }
.pulse-indicator:hover:not(:disabled) { background: #edf3ff; border-color: #8ca9dc; }
.pulse-indicators li { flex: 0 0 auto; }
.pulse-indicator-trigger > span:first-child { min-width: 0; flex: 1; }
.pulse-indicator-trigger strong { flex-shrink: 0; }
@media (max-width: 480px) {
  .pulse-blue > .pulse-label { font-size: 9px; }
  .pulse-blue > h3 { font-size: 14px; }
  .pulse-blue > .pulse-status { padding: 2px 6px; margin: 2px 0; }
  .pulse-blue > .pulse-indicator-trigger { box-sizing: border-box; width: 100%; min-height: 44px; padding: 6px; gap: 5px; font-size: 10px; }
  .pulse-blue > .pulse-ask { flex-shrink: 0; min-height: 44px; }
}
