/* css/components.css */

.title-block h1 { margin: 0; font-size: 28px; letter-spacing: -0.04em; }
.demo-badge { display: inline-flex; align-items: center; min-height: 25px; margin-left: 9px; padding: 4px 9px; border: 1px solid #cbd8ff; border-radius: 999px; background: var(--blue-soft); color: var(--blue); font-size: 11px; font-weight: 950; letter-spacing: .02em; vertical-align: middle; }
.title-block p { margin: 8px 0 0; color: var(--muted); font-size: 15px; line-height: 1.55; }

.date-card { background: rgba(255, 255, 255, 0.82); border: 1px solid rgba(229, 234, 242, 0.95); box-shadow: var(--shadow); border-radius: var(--radius-lg); padding: 14px 18px; min-width: 210px; text-align: right; }
.date-card .label { color: var(--muted); font-size: 13px; margin-bottom: 4px; }
.date-card .value { font-weight: 800; font-size: 20px; }

.summary-card { background: var(--panel); border: 1px solid var(--line); border-radius: var(--radius-lg); padding: 18px; box-shadow: 0 10px 30px rgba(23, 32, 51, 0.05); text-align: left; width: 100%; min-height: 112px; }
button.summary-card { cursor: pointer; transition: transform .16s ease, box-shadow .16s ease, border-color .16s ease; }
button.summary-card:hover, button.summary-card:focus-visible { transform: translateY(-2px); box-shadow: 0 16px 34px rgba(23, 32, 51, 0.10); outline: none; }
.summary-card .caption { margin-top: 10px; color: var(--muted); font-size: 12px; font-weight: 800; }
.summary-card .label { font-size: 13px; color: var(--muted); font-weight: 700; }
.summary-card .value { margin-top: 8px; font-size: 34px; line-height: 1; font-weight: 900; letter-spacing: -0.04em; }

.summary-card.total { border-color: #d9e2ff; background: linear-gradient(145deg, #ffffff, #f3f7ff); }
.summary-card.risk { border-color: var(--risk-line); background: linear-gradient(145deg, #ffffff, var(--risk-soft)); }
.summary-card.warn { border-color: var(--warn-line); background: linear-gradient(145deg, #ffffff, var(--warn-soft)); }
.summary-card.normal { border-color: var(--normal-line); background: linear-gradient(145deg, #ffffff, var(--normal-soft)); }
.summary-card.unknown { border-color: var(--unknown-line); background: linear-gradient(145deg, #ffffff, var(--unknown-soft)); }

.summary-card.total .value { color: var(--blue); }
.summary-card.risk .value { color: var(--risk); }
.summary-card.warn .value { color: var(--warn); }
.summary-card.normal .value { color: var(--normal); }
.summary-card.unknown .value { color: var(--unknown); }

.alert-center-title { display: flex; justify-content: space-between; align-items: center; gap: 14px; margin: 20px 0 12px; }
.alert-center-title h2 { margin: 0; font-size: 21px; letter-spacing: -0.035em; }

.modal-backdrop { position: fixed; inset: 0; display: none; align-items: center; justify-content: center; padding: 24px; background: rgba(15, 23, 42, 0.32); backdrop-filter: blur(6px); z-index: 100; }
.modal-backdrop.open { display: flex; }

@keyframes modalIn { from { opacity: 0; transform: translateY(8px) scale(.98); } to { opacity: 1; transform: translateY(0) scale(1); } }

.alert-modal { width: min(760px, 94vw); max-height: 82vh; overflow: auto; background: #fff; border-radius: 30px; border: 0; box-shadow: 0 30px 80px rgba(15, 23, 42, 0.28); padding: 24px; animation: modalIn .16s ease-out; }
#statusModal[data-alert-status="risk"] { --alert-accent: #c9465b; --alert-shell: #f7dde1; --alert-heading: #84283a; --alert-shadow: rgba(201, 70, 91, .17); }
#statusModal[data-alert-status="warn"] { --alert-accent: #a1650b; --alert-shell: #f8e8c9; --alert-heading: #694409; --alert-shadow: rgba(161, 101, 11, .16); }
#statusModal[data-alert-status="normal"] { --alert-accent: #3f8354; --alert-shell: #ddede0; --alert-heading: #28583a; --alert-shadow: rgba(63, 131, 84, .16); }
#statusModal[data-alert-status="unknown"] { --alert-accent: #667384; --alert-shell: #e7eaee; --alert-heading: #3f4a58; --alert-shadow: rgba(63, 74, 88, .14); }
#statusModal[data-alert-status="total"] { --alert-accent: #4d6fc7; --alert-shell: #dce7fa; --alert-heading: #2c4587; --alert-shadow: rgba(77, 111, 199, .16); }

#statusModal[data-alert-status] .alert-modal { background: linear-gradient(145deg, rgba(255, 255, 255, .34), rgba(255, 255, 255, 0) 52%), var(--alert-shell); border: 0; box-shadow: 0 28px 70px rgba(15, 23, 42, .24), 0 10px 28px var(--alert-shadow), inset 0 1px 0 rgba(255, 255, 255, .64); }
#statusModal[data-alert-status] .modal-head { padding-bottom: 0; border-bottom: 0; }
#statusModal[data-alert-status] .modal-head h3 { color: var(--alert-heading); }
#statusModal[data-alert-status] .modal-head p { color: var(--alert-heading); opacity: .68; }

.status-modal-heading { display: flex; align-items: center; gap: 11px; min-width: 0; }
.modal-status-icon { width: 42px; height: 42px; display: inline-grid; place-items: center; flex: 0 0 42px; border-radius: 15px; background: var(--alert-accent); color: #fff; box-shadow: 0 7px 16px var(--alert-shadow); font-size: 16px; line-height: 1; font-weight: 950; }

#statusModal[data-alert-status] .modal-close { border: 0; background: rgba(255, 255, 255, .58); color: var(--alert-heading); box-shadow: 0 5px 14px rgba(15, 23, 42, .08); transition: transform .16s ease, background .16s ease, box-shadow .16s ease; }
#statusModal[data-alert-status] .modal-close:hover { transform: translateY(-1px); background: rgba(255, 255, 255, .86); box-shadow: 0 8px 18px rgba(15, 23, 42, .11); }
#statusModal[data-alert-status] .modal-close:focus-visible { outline: 3px solid var(--alert-accent); outline-offset: 2px; }

.alert-modal-summary { display: grid; grid-template-columns: 92px 1fr; gap: 16px; align-items: center; border: 0; border-radius: 24px; padding: 16px; background: rgba(255, 255, 255, .58); box-shadow: 0 7px 18px rgba(15, 23, 42, .07), inset 0 1px 0 rgba(255, 255, 255, .74); margin-bottom: 16px; }
#statusModal[data-alert-status] .alert-modal-summary { background: rgba(255, 255, 255, .58); border: 0; }
.alert-count-badge { width: 78px; min-height: 78px; border-radius: 22px; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 3px; color: var(--alert-heading); background: rgba(255, 255, 255, .54); border: 0; box-shadow: inset 0 1px 0 rgba(255, 255, 255, .72); }
.alert-count-icon { width: 24px; height: 24px; display: inline-grid; place-items: center; border-radius: 9px; background: var(--alert-accent); color: #fff; box-shadow: 0 4px 10px var(--alert-shadow); font-size: 11px; line-height: 1; font-weight: 950; }
.alert-count-value { color: var(--alert-heading); font-size: 31px; line-height: .9; font-weight: 950; letter-spacing: -0.06em; font-variant-numeric: tabular-nums; }
.alert-modal-summary h4 { margin: 0; color: var(--alert-heading); font-size: 18px; letter-spacing: -0.035em; }
.alert-modal-summary p { margin: 7px 0 0; color: #465160; font-size: 14px; line-height: 1.5; font-weight: 700; }

.alert-item-list { display: grid; gap: 10px; }
.alert-item { --item-surface: #e7eaee; --item-accent: #667384; --item-ink: #3f4a58; --item-shadow: rgba(63, 74, 88, .12); display: grid; grid-template-columns: 1fr auto; gap: 14px; align-items: center; position: relative; isolation: isolate; overflow: hidden; border: 0; border-radius: 22px; padding: 15px 16px; background: rgba(255, 255, 255, .66); box-shadow: 0 7px 18px rgba(15, 23, 42, .07), 0 2px 8px var(--item-shadow), inset 0 1px 0 rgba(255, 255, 255, .76); }
.alert-item::after { content: ""; position: absolute; z-index: 0; right: -30px; bottom: -34px; width: 92px; height: 92px; border-radius: 50%; background: var(--item-accent); opacity: .06; pointer-events: none; }
.alert-item > * { position: relative; z-index: 1; }
.alert-item.risk { --item-surface: #f7dde1; --item-accent: #c9465b; --item-ink: #84283a; --item-shadow: rgba(201, 70, 91, .13); }
.alert-item.warn { --item-surface: #f8e8c9; --item-accent: #a1650b; --item-ink: #694409; --item-shadow: rgba(161, 101, 11, .12); }
.alert-item.normal { --item-surface: #ddede0; --item-accent: #3f8354; --item-ink: #28583a; --item-shadow: rgba(63, 131, 84, .12); }
.alert-item.unknown { --item-surface: #e7eaee; --item-accent: #667384; --item-ink: #3f4a58; --item-shadow: rgba(63, 74, 88, .12); }

.alert-state-label { display: inline-flex; align-items: center; gap: 5px; width: fit-content; min-height: 23px; padding: 3px 9px 3px 4px; border-radius: 999px; background: var(--item-surface); color: var(--item-ink); font-size: 11px; font-weight: 900; }
.alert-state-icon { width: 17px; height: 17px; display: inline-grid; place-items: center; border-radius: 7px; background: var(--item-accent); color: #fff; font-size: 9px; line-height: 1; font-weight: 950; }
.alert-item h4 { margin: 8px 0 0; color: var(--item-ink); font-size: 16px; letter-spacing: -0.03em; }
.alert-item p { margin: 6px 0 0; color: #465160; font-size: 13px; line-height: 1.45; font-weight: 700; }
.alert-item .alert-action { height: 38px; padding: 0 14px; border-radius: 999px; background: var(--item-accent); border: 0; color: #fff; box-shadow: 0 6px 14px var(--item-shadow); font-weight: 900; white-space: nowrap; transition: transform .16s ease, box-shadow .16s ease; }
.alert-item .alert-action:hover { transform: translateY(-1px); box-shadow: 0 9px 18px var(--item-shadow); }
.alert-item .alert-action:focus-visible { outline: 3px solid var(--item-accent); outline-offset: 2px; }

#statusModal .empty-state { border: 0; background: rgba(255, 255, 255, .58); box-shadow: 0 7px 18px rgba(15, 23, 42, .07); }

.main-panel { background: rgba(255, 255, 255, 0.88); border: 1px solid var(--line); box-shadow: var(--shadow); border-radius: var(--radius-xl); padding: 22px; }
.panel-header { display: flex; justify-content: space-between; align-items: center; gap: 18px; margin-bottom: 18px; }
.panel-header h2 { margin: 0; font-size: 22px; letter-spacing: -0.035em; }
.panel-header p { margin: 6px 0 0; color: var(--muted); font-size: 14px; }

.controls { display: flex; gap: 10px; flex-wrap: wrap; justify-content: flex-end; }
.search-box, .filter-select { height: 44px; border: 1px solid var(--line); background: #fff; border-radius: 999px; padding: 0 16px; outline: none; color: var(--text); min-width: 210px; }
.filter-select { min-width: 140px; }

.senior-node { position: relative; overflow: hidden; min-height: 132px; padding: 16px; border-radius: var(--radius-lg); border: 1px solid var(--line); box-shadow: 0 10px 25px rgba(23, 32, 51, 0.06); background: #fff; text-align: left; transition: transform 0.16s ease, box-shadow 0.16s ease, border-color 0.16s ease; }
.senior-node:hover { transform: translateY(-3px); box-shadow: 0 18px 35px rgba(23, 32, 51, 0.11); }
.senior-node::before { content: ""; position: absolute; inset: 0; opacity: 0.12; pointer-events: none; }
.senior-node.risk { border-color: var(--risk-line); }
.senior-node.warn { border-color: var(--warn-line); }
.senior-node.normal { border-color: var(--normal-line); }
.senior-node.unknown { border-color: var(--unknown-line); }
.senior-node.risk::before { background: var(--risk); opacity: 0.16; }
.senior-node.warn::before { background: var(--warn); opacity: 0.15; }
.senior-node.normal::before { background: var(--normal); opacity: 0.16; }
.senior-node.unknown::before { background: var(--unknown); opacity: 0.12; }

.node-top { position: relative; display: flex; justify-content: space-between; gap: 10px; align-items: flex-start; }
.node-name { font-size: 19px; font-weight: 900; letter-spacing: -0.04em; margin-bottom: 6px; }
.node-meta { font-size: 13px; color: var(--muted); line-height: 1.45; }

.status-pill { flex: 0 0 auto; display: inline-flex; align-items: center; justify-content: center; min-width: 58px; height: 30px; padding: 0 10px; border-radius: 999px; color: #fff; font-size: 13px; font-weight: 900; }
.status-pill.risk { background: var(--risk); }
.status-pill.warn { background: var(--warn); }
.status-pill.normal { background: var(--normal); }
.status-pill.unknown { background: var(--unknown); }

.node-bottom { position: relative; margin-top: 18px; display: flex; justify-content: space-between; align-items: center; gap: 10px; }
.mini-indicators { display: flex; gap: 6px; }
.mini-dot { width: 10px; height: 10px; border-radius: 50%; background: var(--unknown); }
.mini-dot.risk { background: var(--risk); }
.mini-dot.warn { background: var(--warn); }
.mini-dot.normal { background: var(--normal); }
.mini-dot.unknown { background: var(--unknown); }
.open-hint { font-size: 12px; color: var(--muted); font-weight: 700; }

.event-alert-list { display: grid; gap: 10px; margin-bottom: 18px; }
.event-card { display: flex; justify-content: space-between; gap: 16px; align-items: center; background: linear-gradient(135deg, #fff4f5, #ffffff); border: 1px solid var(--risk-line); border-left: 7px solid var(--risk); border-radius: var(--radius-lg); padding: 16px 18px; box-shadow: 0 10px 25px rgba(231, 79, 95, 0.10); }
.event-card h3 { margin: 0; font-size: 16px; letter-spacing: -0.02em; }
.event-card p { margin: 6px 0 0; color: var(--muted); font-size: 14px; }
.event-card button, .primary-btn, .ghost-btn, .danger-btn { height: 42px; padding: 0 16px; border-radius: 999px; font-weight: 900; white-space: nowrap; }
.event-card button, .danger-btn { background: var(--risk); color: #fff; }
.primary-btn { background: var(--blue); color: #fff; }
.ghost-btn { background: #fff; border: 1px solid var(--line); color: var(--text); }

.sensor-panel { display: grid; grid-template-columns: minmax(180px, .8fr) minmax(280px, 1.2fr) auto; gap: 14px; align-items: center; margin: 0 0 18px; padding: 16px 18px; background: rgba(255, 255, 255, 0.90); border: 1px solid var(--line); border-radius: var(--radius-lg); box-shadow: 0 10px 30px rgba(23, 32, 51, 0.06); }
.sensor-copy strong { display: block; font-size: 16px; font-weight: 900; letter-spacing: -0.02em; }
.sensor-copy span, .sensor-status-line, .sensor-live-item span { color: var(--muted); font-size: 12px; font-weight: 800; }
.sensor-live-grid { display: grid; grid-template-columns: repeat(4, minmax(90px, 1fr)); gap: 10px; }
.sensor-live-item { min-height: 62px; padding: 10px 12px; border: 1px solid var(--line); border-radius: var(--radius-md); background: #fff; }
.sensor-live-item b { display: block; margin-top: 5px; font-size: 18px; line-height: 1.15; font-weight: 900; }
.sensor-actions { display: flex; gap: 8px; flex-wrap: wrap; justify-content: flex-end; }
.sensor-actions button { height: 38px; padding: 0 13px; font-size: 13px; }
.sensor-status-line { grid-column: 1 / -1; padding-top: 2px; }
.empty-state { padding: 45px 20px; text-align: center; color: var(--muted); background: #fff; border: 1px dashed var(--line); border-radius: var(--radius-lg); }

.detail-topbar { display: flex; justify-content: space-between; gap: 20px; align-items: flex-start; margin-bottom: 18px; }
.person-title { display: flex; align-items: center; gap: 14px; }
.avatar { width: 58px; height: 58px; border-radius: 22px; display: grid; place-items: center; color: #fff; font-size: 24px; font-weight: 900; box-shadow: 0 12px 24px rgba(23, 32, 51, 0.13); }
.avatar.risk { background: var(--risk); }
.avatar.warn { background: var(--warn); }
.avatar.normal { background: var(--normal); }
.avatar.unknown { background: var(--unknown); }
.person-title h1 { margin: 0; font-size: 28px; letter-spacing: -0.04em; }
.person-title p { margin: 6px 0 0; color: var(--muted); font-size: 14px; }
.detail-actions { display: flex; gap: 10px; flex-wrap: wrap; justify-content: flex-end; }
.detail-topbar-with-back { justify-content: flex-start; align-items: center; }
.detail-back-button { position: relative; width: 46px; height: 46px; flex: 0 0 46px; border: 0; border-radius: 16px; background: rgba(255, 255, 255, .92); box-shadow: 0 9px 24px rgba(23, 32, 51, .09); color: var(--text); }
.detail-back-button::before { content: ""; position: absolute; top: 50%; left: 50%; width: 10px; height: 10px; border-bottom: 2.5px solid currentColor; border-left: 2.5px solid currentColor; transform: translate(-36%, -50%) rotate(45deg); }
.detail-back-button:hover { background: #fff; }
.detail-back-button:focus-visible { outline: 3px solid rgba(71, 118, 230, .36); outline-offset: 2px; }

.detail-action-area { margin-top: 18px; margin-bottom: 18px; padding: 20px; border: 0; border-radius: var(--radius-xl); background: rgba(255, 255, 255, .92); box-shadow: 0 14px 34px rgba(23, 32, 51, .07); }
.detail-action-heading { display: flex; align-items: flex-end; justify-content: space-between; gap: 12px; margin-bottom: 14px; }
.detail-action-heading h2 { margin: 0; font-size: 20px; letter-spacing: -.035em; }
.detail-action-heading p { margin: 0; color: var(--muted); font-size: 12px; font-weight: 750; }
.detail-actions-bottom { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); margin-bottom: 14px; }
.detail-actions-bottom button { min-height: 46px; }
.detail-action-area .detail-launchpad { margin-bottom: 0; }

.detail-sensor-disclosure { margin-bottom: 18px; overflow: hidden; border: 1px solid var(--line); border-radius: var(--radius-lg); background: rgba(255, 255, 255, 0.9); box-shadow: 0 10px 30px rgba(23, 32, 51, 0.06); }
.detail-sensor-disclosure > summary { display: flex; align-items: center; justify-content: space-between; gap: 14px; min-height: 52px; padding: 0 18px; cursor: pointer; color: var(--text); font-weight: 900; list-style: none; }
.detail-sensor-disclosure > summary::-webkit-details-marker { display: none; }
.detail-sensor-disclosure > summary::after { content: "+"; display: grid; place-items: center; width: 28px; height: 28px; flex: 0 0 auto; border-radius: 10px; background: var(--blue-soft); color: var(--blue); font-size: 18px; line-height: 1; }
.detail-sensor-disclosure[open] > summary::after { content: "−"; }
.detail-sensor-disclosure .summary-copy { display: flex; align-items: center; gap: 10px; min-width: 0; }
.detail-sensor-disclosure .summary-copy span { color: var(--muted); font-size: 12px; font-weight: 800; }
.detail-sensor-disclosure .sensor-panel { margin: 0; border: 0; border-top: 1px solid var(--line); border-radius: 0; box-shadow: none; }

.detail-launchpad { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 12px; margin-bottom: 18px; }
.detail-launch-button { display: grid; grid-template-columns: 38px minmax(0, 1fr); gap: 11px; align-items: center; min-height: 74px; padding: 12px 14px; border: 1px solid var(--line); border-radius: var(--radius-lg); background: rgba(255, 255, 255, 0.92); box-shadow: 0 10px 24px rgba(23, 32, 51, 0.05); color: var(--text); text-align: left; transition: transform .16s ease, box-shadow .16s ease, border-color .16s ease; }
.detail-launch-button:hover, .detail-launch-button:focus-visible { transform: translateY(-2px); border-color: #cbd8ff; box-shadow: 0 15px 30px rgba(23, 32, 51, 0.1); outline: none; }
.detail-launch-button.primary { border-color: #cbd8ff; background: linear-gradient(145deg, #fff, var(--blue-soft)); }
.detail-launch-icon { display: grid; place-items: center; width: 38px; height: 38px; border-radius: 13px; background: var(--blue-soft); color: var(--blue); font-size: 17px; font-weight: 950; }
.detail-launch-button.primary .detail-launch-icon { background: var(--blue); color: #fff; }
.detail-launch-copy strong, .detail-launch-copy span { display: block; }
.detail-launch-copy strong { font-size: 14px; font-weight: 950; }
.detail-launch-copy span { margin-top: 4px; overflow: hidden; color: var(--muted); font-size: 11px; font-weight: 750; text-overflow: ellipsis; white-space: nowrap; }

.emergency-banner { display: none; background: linear-gradient(135deg, #fff0f2, #ffffff); border: 1px solid var(--risk-line); border-left: 8px solid var(--risk); border-radius: var(--radius-xl); padding: 20px; box-shadow: 0 16px 35px rgba(231, 79, 95, 0.13); margin-bottom: 18px; }
.emergency-banner.show { display: block; }
.emergency-banner .banner-head { display: flex; justify-content: space-between; gap: 14px; align-items: flex-start; }
.emergency-banner h2 { margin: 0; font-size: 21px; color: #b92939; letter-spacing: -0.035em; }
.emergency-banner p { margin: 8px 0 0; color: #6c3038; line-height: 1.55; }

.section-card { background: rgba(255, 255, 255, 0.90); border: 1px solid var(--line); border-radius: var(--radius-xl); box-shadow: var(--shadow); padding: 22px; }
.section-title { display: flex; justify-content: space-between; align-items: center; gap: 10px; margin-bottom: 16px; }
.section-title h2 { margin: 0; font-size: 21px; letter-spacing: -0.035em; }
.section-title span { color: var(--muted); font-size: 13px; font-weight: 700; }

.health-card { min-height: 134px; border-radius: var(--radius-lg); padding: 17px; border: 1px solid var(--line); background: #fff; position: relative; overflow: hidden; display: flex; flex-direction: column; align-items: flex-start; justify-content: flex-start; gap: 0; appearance: none; font: inherit; text-align: left; }
.health-card::after { content: ""; position: absolute; right: -34px; top: -34px; width: 90px; height: 90px; border-radius: 50%; opacity: 0.13; }
.health-card.risk { border-color: var(--risk-line); background: linear-gradient(145deg, #fff, var(--risk-soft)); }
.health-card.warn { border-color: var(--warn-line); background: linear-gradient(145deg, #fff, var(--warn-soft)); }
.health-card.normal { border-color: var(--normal-line); background: linear-gradient(145deg, #fff, var(--normal-soft)); }
.health-card.unknown { border-color: var(--unknown-line); background: linear-gradient(145deg, #fff, var(--unknown-soft)); }
.health-card.risk::after { background: var(--risk); }
.health-card.warn::after { background: var(--warn); }
.health-card.normal::after { background: var(--normal); }
.health-card.unknown::after { background: var(--unknown); }
.health-icon { width: 42px; height: 42px; border-radius: 15px; display: grid; place-items: center; color: #fff; font-size: 22px; margin-bottom: 13px; }
.health-card.risk .health-icon { background: var(--risk); }
.health-card.warn .health-icon { background: var(--warn); }
.health-card.normal .health-icon { background: var(--normal); }
.health-card.unknown .health-icon { background: var(--unknown); }
.health-card .card-label { color: var(--muted); font-weight: 800; font-size: 13px; }
.health-card .card-status { margin-top: 5px; font-size: 24px; font-weight: 900; letter-spacing: -0.04em; }
.health-card.risk .card-status { color: var(--risk); }
.health-card.warn .card-status { color: var(--warn); }
.health-card.normal .card-status { color: var(--normal); }
.health-card.unknown .card-status { color: var(--unknown); }
.health-card .card-desc { margin-top: 8px; color: var(--muted); font-size: 13px; line-height: 1.45; }
.health-card.clickable { width: 100%; cursor: pointer; transition: transform .18s ease, box-shadow .18s ease, border-color .18s ease; }
.health-card.clickable:hover { transform: translateY(-2px); box-shadow: 0 14px 28px rgba(23, 32, 51, 0.10); }
.health-card.clickable:focus-visible { outline: 3px solid rgba(71, 118, 230, 0.24); outline-offset: 3px; }

.modal-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 16px; margin-bottom: 18px; }
.modal-head > div { min-width: 0; }
.modal-head h3 { margin: 0; font-size: 22px; line-height: 1.28; letter-spacing: -0.04em; overflow-wrap: anywhere; word-break: keep-all; }
.modal-head p { margin: 6px 0 0; color: var(--muted); font-size: 13px; font-weight: 700; line-height: 1.5; overflow-wrap: anywhere; word-break: keep-all; }
.modal-close { flex: 0 0 auto; width: 38px; height: 38px; border-radius: 14px; border: 1px solid var(--line); background: #f8fafc; color: var(--muted); font-size: 22px; line-height: 1; cursor: pointer; }

.vital-graph-modal { width: min(960px, 94vw); max-height: 88vh; overflow: auto; background: #fff; border-radius: 24px; border: 0; box-shadow: 0 30px 80px rgba(15, 23, 42, 0.28); padding: 24px; animation: modalIn .16s ease-out; }
.vital-tab-row { display: inline-flex; gap: 6px; padding: 5px; border: 1px solid var(--line); border-radius: 999px; background: #f7f9fd; margin-bottom: 16px; }
.vital-control-row { display: flex; align-items: center; justify-content: space-between; gap: 12px; flex-wrap: wrap; margin-bottom: 16px; }
.vital-control-row .vital-tab-row { margin-bottom: 0; }
.vital-sample-select { display: inline-flex; align-items: center; gap: 8px; color: var(--muted); font-size: 13px; font-weight: 900; }
.vital-sample-select select { height: 36px; border: 1px solid var(--line); border-radius: 999px; background: #fff; color: var(--text); font: inherit; padding: 0 34px 0 12px; cursor: pointer; }
.vital-tab-row button { height: 34px; border: 0; border-radius: 999px; padding: 0 14px; background: transparent; color: var(--muted); font-weight: 900; cursor: pointer; }
.vital-tab-row button.active { background: var(--blue); color: #fff; box-shadow: 0 8px 18px rgba(71, 118, 230, 0.20); }
.vital-stat-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 10px; margin-top: 16px; }
.vital-stat-card { border: 0; border-radius: var(--radius-lg); background: #f4f7fb; padding: 13px; min-width: 0; }
.vital-stat-card span { display: block; color: var(--muted); font-size: 12px; font-weight: 800; margin-bottom: 6px; }
.vital-stat-card strong { display: block; color: var(--text); font-size: 22px; line-height: 1.2; font-weight: 900; }
.vital-stat-card small { display: block; margin-top: 5px; color: var(--muted); font-weight: 700; line-height: 1.35; }
.vital-graph-panel { border: 0; border-radius: 24px; background: #f4f7fb; padding: 10px; overflow: hidden; }
.vital-graph-svg { display: block; width: 100%; height: auto; min-height: 0; }
.vital-graph-footer { display: flex; justify-content: space-between; gap: 12px; flex-wrap: wrap; color: var(--muted); font-size: 12px; font-weight: 800; margin-top: 8px; }
.vital-graph-summary { margin-top: 14px; padding: 12px 14px; border-radius: var(--radius-lg); border: 0; color: var(--text); background: #f8fbff; font-size: 14px; font-weight: 800; line-height: 1.55; }
.vital-legend { display: flex; gap: 12px; flex-wrap: wrap; align-items: center; margin-top: 12px; color: var(--muted); font-size: 12px; font-weight: 800; }
.vital-legend span { display: inline-flex; align-items: center; gap: 6px; }
.legend-line { width: 22px; height: 3px; border-radius: 999px; background: var(--blue); }
.legend-line.baseline { background: #8d98a8; }
.legend-range { width: 22px; height: 10px; border-radius: 4px; background: rgba(103, 184, 106, 0.16); border: 1px solid rgba(103, 184, 106, 0.24); }

.pattern-motion-modal { width: min(940px, 94vw); max-height: 88vh; overflow: auto; background: #fff; border-radius: 24px; border: 0; box-shadow: 0 30px 80px rgba(15, 23, 42, 0.28); padding: 24px; animation: modalIn .16s ease-out; }
.pattern-motion-body { display: grid; gap: 14px; }
.pattern-motion-stats { display: grid; grid-template-columns: repeat(4, 1fr); gap: 10px; }
.pattern-motion-stat { border: 0; border-radius: var(--radius-lg); background: #f4f7fb; padding: 13px; min-width: 0; }
.pattern-motion-stat span { display: block; color: var(--muted); font-size: 12px; font-weight: 800; margin-bottom: 6px; }
.pattern-motion-stat strong { display: block; color: var(--text); font-size: 20px; line-height: 1.22; font-weight: 900; }
.pattern-motion-stage { border: 0; border-radius: 24px; background: #f4f7fb; padding: 10px; overflow: hidden; }
.pattern-motion-canvas { position: relative; }
.pattern-motion-empty { position: absolute; inset: 0; display: grid; place-content: center; gap: 5px; padding: 24px; color: #3f4b5f; text-align: center; pointer-events: none; }
.pattern-motion-empty strong { font-size: 15px; font-weight: 900; }
.pattern-motion-empty span { color: var(--muted); font-size: 11px; font-weight: 800; line-height: 1.45; }
.pattern-motion-svg { display: block; width: 100%; height: auto; min-height: 0; }
.pattern-history-path { fill: none; stroke: #64748b; stroke-width: 3.5; stroke-linecap: round; stroke-linejoin: round; opacity: .76; }
.pattern-history-point { fill: #94a3b8; stroke: #fff; stroke-width: 1.5; }
.pattern-start-point { fill: #fff; stroke: #475569; stroke-width: 3; }
.pattern-position-label { fill: #475569; font-size: 12px; font-weight: 900; paint-order: stroke; stroke: #fff; stroke-width: 4px; stroke-linejoin: round; }
.pattern-live-position { fill: #2563eb; stroke: #fff; stroke-width: 3; filter: drop-shadow(0 4px 9px rgba(37, 99, 235, .32)); transition: cx .2s ease, cy .2s ease; }
.pattern-live-ring { fill: rgba(37, 99, 235, .09); stroke: rgba(37, 99, 235, .5); stroke-width: 2; transition: cx .2s ease, cy .2s ease; }
@media (prefers-reduced-motion: reduce) { .pattern-live-position, .pattern-live-ring { transition: none; } }
.pattern-motion-summary { padding: 12px 14px; border-radius: var(--radius-lg); border: 0; color: var(--text); background: #f8fbff; font-size: 14px; font-weight: 800; line-height: 1.55; }
.pattern-motion-foot { display: flex; justify-content: space-between; gap: 12px; flex-wrap: wrap; color: var(--muted); font-size: 12px; font-weight: 800; margin-top: 8px; }
.pattern-motion-actions { display: flex; justify-content: flex-end; gap: 8px; flex-wrap: wrap; }

.daily-range-toolbar { display: flex; align-items: center; justify-content: space-between; gap: 12px; flex-wrap: wrap; margin-bottom: 16px; }
.daily-date-field { display: inline-flex; align-items: center; gap: 8px; color: var(--muted); font-size: 13px; font-weight: 900; }
.daily-date-field input { height: 38px; border: 1px solid var(--line); border-radius: 999px; background: #fff; color: var(--text); font: inherit; padding: 0 12px; }
.daily-range-source { color: var(--muted); font-size: 13px; font-weight: 900; }
.daily-range-panel { min-width: 0; border: 1px solid var(--line); border-radius: var(--radius-lg); background: #fff; padding: 16px; }
.daily-range-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; margin-bottom: 10px; }
.daily-range-head h3 { margin: 0; color: var(--text); font-size: 17px; }
.daily-range-head span { color: var(--muted); font-size: 12px; font-weight: 900; text-align: right; }
.daily-range-svg { display: block; width: 100%; height: auto; min-height: 230px; }
.daily-range-foot { display: flex; justify-content: space-between; gap: 12px; flex-wrap: wrap; color: var(--muted); font-size: 12px; font-weight: 800; margin-top: 8px; }

.detail-summary-combo { display: grid; grid-template-columns: 300px 1fr; gap: 16px; align-items: stretch; margin-bottom: 18px; }
.plainness-card { border: 1px solid #d9e2ff; border-radius: var(--radius-lg); background: linear-gradient(145deg, #ffffff, #f4f7ff); padding: 20px; display: flex; flex-direction: column; justify-content: space-between; min-height: 300px; box-shadow: 0 14px 30px rgba(23, 32, 51, 0.05); }
.plainness-card .plainness-label { color: var(--muted); font-size: 13px; font-weight: 800; margin-bottom: 6px; }
.plainness-card h3 { margin: 0; font-size: 21px; letter-spacing: -0.04em; }
.plainness-gauge { width: 178px; height: 178px; border-radius: 50%; margin: 18px auto 14px; display: grid; place-items: center; background: conic-gradient(var(--gauge-color) var(--gauge-angle), #edf1f8 0deg); position: relative; box-shadow: inset 0 0 0 1px rgba(229, 234, 242, 0.8); cursor: pointer; transition: transform .18s ease, box-shadow .18s ease; border: 0; }
.plainness-gauge::before { content: ""; position: absolute; width: 128px; height: 128px; border-radius: 50%; background: #fff; box-shadow: inset 0 0 0 1px rgba(229, 234, 242, 0.9); }
.plainness-score { position: relative; z-index: 1; text-align: center; }
.plainness-score strong { display: block; font-size: 44px; line-height: 1; letter-spacing: -0.05em; }
.plainness-score span { display: block; margin-top: 5px; color: var(--muted); font-size: 13px; font-weight: 800; }
.plainness-card.risk .plainness-score strong { color: var(--risk); }
.plainness-card.warn .plainness-score strong { color: var(--warn); }
.plainness-card.normal .plainness-score strong { color: var(--normal); }
.plainness-card.unknown .plainness-score strong { color: var(--unknown); }
.plainness-gauge:hover, .plainness-gauge:focus-visible { transform: translateY(-2px); box-shadow: 0 16px 36px rgba(23, 32, 51, 0.12), inset 0 0 0 1px rgba(229, 234, 242, 0.8); outline: none; }
.gauge-hint { text-align: center; color: var(--muted); font-size: 12px; font-weight: 800; margin-top: -3px; }

.detail-workspace-modal { display: grid; grid-template-rows: auto auto minmax(0, 1fr); width: min(1180px, 96vw); height: min(900px, 92vh); overflow: hidden; border: 1px solid var(--line); border-radius: 28px; background: #f6f8fc; box-shadow: 0 30px 80px rgba(15, 23, 42, 0.28); animation: modalIn .16s ease-out; }
.detail-workspace-modal .modal-head { margin: 0; padding: 20px 24px 16px; border-bottom: 1px solid var(--line); background: #fff; }
.detail-workspace-tabs { display: flex; gap: 8px; overflow-x: auto; padding: 12px 24px; border-bottom: 1px solid var(--line); background: rgba(255, 255, 255, 0.86); scrollbar-width: thin; }
.detail-workspace-tab { min-height: 38px; padding: 0 14px; flex: 0 0 auto; border: 1px solid var(--line); border-radius: 999px; background: #fff; color: var(--muted); font-size: 13px; font-weight: 900; }
.detail-workspace-tab[aria-selected="true"] { border-color: var(--blue); background: var(--blue); color: #fff; }
.detail-workspace-body { min-height: 0; overflow: auto; padding: 20px 24px 28px; overscroll-behavior: contain; }
.detail-workspace-panel[hidden] { display: none !important; }
.detail-workspace-panel > .section-card:last-child, .detail-workspace-panel > .detail-layout:last-child { margin-bottom: 0 !important; }
.detail-workspace-panel .section-card { box-shadow: 0 10px 26px rgba(23, 32, 51, 0.055); }
.detail-workspace-panel .detail-layout { grid-template-columns: 1fr; }
.detail-workspace-panel .detail-report-card .report-box { min-height: 360px; }
.detail-workspace-intro { margin: 0 0 14px; color: var(--muted); font-size: 13px; font-weight: 750; line-height: 1.55; }

.plainness-modal { width: min(480px, 92vw); background: #fff; border-radius: 26px; border: 1px solid var(--line); box-shadow: 0 30px 80px rgba(15, 23, 42, 0.28); padding: 24px; animation: modalIn .16s ease-out; }
.modal-score-row { display: grid; grid-template-columns: 110px 1fr; gap: 16px; align-items: center; margin-bottom: 16px; }
.modal-mini-gauge { width: 110px; height: 110px; border-radius: 50%; display: grid; place-items: center; background: conic-gradient(var(--gauge-color) var(--gauge-angle), #edf1f8 0deg); position: relative; }
.modal-mini-gauge::before { content: ""; position: absolute; width: 78px; height: 78px; border-radius: 50%; background: #fff; box-shadow: inset 0 0 0 1px rgba(229, 234, 242, 0.9); }
.modal-mini-gauge strong { position: relative; z-index: 1; font-size: 30px; letter-spacing: -0.05em; }
.modal-label { font-size: 20px; font-weight: 900; letter-spacing: -0.04em; margin-bottom: 8px; }
.modal-desc { color: var(--muted); font-size: 14px; line-height: 1.55; font-weight: 700; }
.modal-reason-list { display: grid; gap: 10px; margin-top: 16px; }
.modal-reason { border-radius: 16px; background: #f8fafc; border: 1px solid var(--line); padding: 12px 14px; display: flex; justify-content: space-between; gap: 12px; font-size: 13px; color: var(--muted); font-weight: 800; }
.modal-reason b { color: var(--text); white-space: nowrap; }

.detail-summary-combo .health-card-grid { margin-bottom: 0; height: 100%; }

.pattern-wrap { background: #fff; border: 1px solid var(--line); border-radius: var(--radius-lg); padding: 18px; }
.pattern-axis { display: grid; grid-template-columns: repeat(24, 1fr); gap: 3px; height: 70px; align-items: end; margin-bottom: 8px; }
.pattern-hour { border-radius: 6px 6px 3px 3px; min-height: 14px; background: #d9deea; position: relative; }
.pattern-hour.sleep { background: #7e74dc; }
.pattern-hour.active { background: #67b86a; }
.pattern-hour.out { background: #4776e6; }
.pattern-hour.rest { background: #b8c1d7; }
.pattern-hour.inactive { background: #e74f5f; }
.pattern-hour.caution { background: #f4a62a; }
.time-labels { display: grid; grid-template-columns: repeat(7, 1fr); font-size: 12px; color: var(--muted); }
.legend { display: flex; gap: 12px; flex-wrap: wrap; margin-top: 16px; color: var(--muted); font-size: 13px; }
.legend-item { display: inline-flex; align-items: center; gap: 6px; }
.legend-swatch { width: 10px; height: 10px; border-radius: 50%; }

.info-list { display: grid; gap: 10px; }
.info-row { display: flex; justify-content: space-between; gap: 14px; padding: 13px 0; border-bottom: 1px solid var(--line); }
.info-row:last-child { border-bottom: 0; }
.info-row .key { color: var(--muted); font-weight: 700; font-size: 14px; }
.info-row .val { font-weight: 900; text-align: right; }

.report-box { min-height: 260px; width: 100%; resize: vertical; border: 1px solid var(--line); border-radius: var(--radius-lg); padding: 15px; outline: none; color: var(--text); background: #fff; line-height: 1.6; }
.care-input-box { min-height: 168px; width: 100%; resize: vertical; border: 1px solid var(--line); border-radius: var(--radius-lg); padding: 14px; outline: none; color: var(--text); background: #fff; line-height: 1.6; }
.care-toolbar { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 12px; align-items: center; }
.care-status-line { color: var(--muted); font-size: 13px; font-weight: 700; margin-top: 10px; }
.counseling-record-box { border: 1px solid var(--line); border-radius: var(--radius-lg); padding: 14px; background: #f8fbff; }
.counseling-record-head { display: flex; align-items: center; justify-content: space-between; gap: 12px; flex-wrap: wrap; }
.counseling-record-title { display: inline-flex; align-items: center; gap: 8px; font-weight: 900; color: var(--text); }
.record-dot { width: 10px; height: 10px; border-radius: 50%; background: var(--unknown); box-shadow: 0 0 0 4px rgba(141, 152, 168, 0.14); }
.record-dot.active { background: var(--risk); box-shadow: 0 0 0 4px rgba(231, 79, 95, 0.16); }
.counseling-audio-row { display: flex; gap: 10px; align-items: center; flex-wrap: wrap; margin-top: 12px; }
.counseling-audio-row audio { flex: 1 1 260px; min-width: 220px; height: 38px; }
.counseling-summary-box { min-height: 154px; }
.care-brief-list, .care-question-list, .care-keyword-list, .care-urgency-list { display: grid; gap: 10px; margin: 0; padding: 0; list-style: none; }
.care-brief-item, .care-question-item, .care-urgency-item { display: grid; gap: 4px; padding: 11px 0; border-bottom: 1px solid var(--line); }
.care-brief-item:last-child, .care-question-item:last-child, .care-urgency-item:last-child { border-bottom: 0; }
.care-brief-title, .care-question-item b, .care-urgency-item b { color: var(--text); font-size: 14px; font-weight: 900; }
.care-brief-desc, .care-question-item span, .care-urgency-item span { color: var(--muted); font-size: 13px; line-height: 1.5; }
.care-draft-table { display: grid; gap: 0; border: 1px solid var(--line); border-radius: var(--radius-lg); overflow: hidden; background: #fff; }
.care-draft-row { display: grid; grid-template-columns: 116px 1fr; min-height: 46px; border-bottom: 1px solid var(--line); }
.care-draft-row:last-child { border-bottom: 0; }
.care-draft-key { padding: 12px; color: var(--muted); background: #f7f9fd; font-weight: 900; font-size: 13px; border-right: 1px solid var(--line); }
.care-draft-val { padding: 12px; color: var(--text); font-weight: 800; line-height: 1.5; }
.care-empty-text { color: var(--muted); font-weight: 700; }
.care-subsection { margin-top: 18px; }
.care-subsection h3 { margin: 0 0 10px; font-size: 16px; letter-spacing: -0.02em; }
.care-keyword-list { display: flex; flex-wrap: wrap; }
.care-keyword-chip, .care-urgency-badge { display: inline-flex; align-items: center; width: fit-content; min-height: 28px; padding: 5px 9px; border-radius: 999px; border: 1px solid var(--line); background: #fff; color: var(--muted); font-size: 12px; font-weight: 900; }
.care-urgency-badge.risk, .care-keyword-chip.risk { color: var(--risk); border-color: var(--risk-line); background: var(--risk-soft); }
.care-urgency-badge.warn, .care-keyword-chip.warn { color: var(--warn); border-color: var(--warn-line); background: var(--warn-soft); }
.care-urgency-badge.normal, .care-keyword-chip.normal { color: var(--normal); border-color: var(--normal-line); background: var(--normal-soft); }
.care-report-box { min-height: 190px; width: 100%; resize: vertical; border: 1px solid var(--line); border-radius: var(--radius-lg); padding: 14px; outline: none; color: var(--text); background: #fff; line-height: 1.6; }
.care-column-divider { display: grid; gap: 18px; }

.care-feature-stack { display: grid; gap: 14px; min-width: 0; }
.care-feature-card, .care-column-divider > div { min-width: 0; border: 1px solid var(--line); border-radius: var(--radius-lg); background: linear-gradient(180deg, #ffffff, #f8fbff); padding: 16px; box-shadow: 0 10px 24px rgba(23, 32, 51, 0.045); }
.care-feature-card h3 { display: flex; align-items: center; gap: 8px; margin: 0 0 12px; color: var(--text); font-size: 16px; font-weight: 900; letter-spacing: 0; }
.care-feature-card .care-toolbar:first-child, .care-column-divider > div .care-toolbar:first-child { margin-top: 0; }
.care-feature-stack .care-subsection { margin-top: 0; }

.care-workspace { display: grid; gap: 14px; margin: 0 0 18px; }
.care-workspace-header { display: flex; align-items: flex-start; justify-content: space-between; gap: 14px; padding: 2px 2px 0; }
.care-workspace-eyebrow, .report-workspace-eyebrow { display: block; margin-bottom: 5px; color: var(--blue); font-size: 12px; font-weight: 950; letter-spacing: .04em; }
.care-workspace-header h2, .report-workspace-header h2 { margin: 0; color: var(--text); font-size: 23px; letter-spacing: -.04em; }
.care-workspace-header p, .report-workspace-header p { max-width: 640px; margin: 7px 0 0; color: var(--muted); font-size: 14px; line-height: 1.55; }

.care-person-state { display: inline-flex; align-items: center; min-height: 34px; padding: 7px 11px; border-radius: 999px; background: var(--unknown-soft); color: #4d5868; font-size: 12px; font-weight: 900; white-space: nowrap; }
.care-person-state.risk { background: var(--risk-soft); color: #a42338; }
.care-person-state.warn { background: var(--warn-soft); color: #815000; }
.care-person-state.normal { background: var(--normal-soft); color: #2b7139; }

.care-record-surface, .care-editor-surface, .care-result-surface, .care-disclosure, .report-document { border: 0; background: #fff; box-shadow: 0 12px 30px rgba(23, 32, 51, .065); }
.care-record-surface, .care-editor-surface, .care-result-surface { border-radius: 24px; padding: 18px; }
.care-record-overview, .care-step-heading, .care-signal-heading { display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; }
.care-step-heading { justify-content: flex-start; }
.care-step-number { display: inline-grid; place-items: center; flex: 0 0 30px; width: 30px; height: 30px; border-radius: 10px; background: var(--blue-soft); color: #315ec4; font-size: 13px; font-weight: 950; }
.care-step-copy h3, .care-signal-heading h4 { margin: 0; color: var(--text); font-size: 17px; letter-spacing: -.025em; }
.care-step-copy p, .care-signal-heading p { margin: 4px 0 0; color: var(--muted); font-size: 13px; line-height: 1.45; }
.care-record-status { display: inline-flex; align-items: center; gap: 8px; max-width: 52%; min-height: 34px; padding: 7px 10px; border-radius: 12px; background: #f3f6fb; color: #4d5868; font-size: 12px; font-weight: 850; line-height: 1.35; }
.care-command-actions { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 10px; margin-top: 16px; }
.care-command-actions button, .care-editor-actions button, .report-action-bar button { min-height: 46px; height: auto; }
.care-command-actions button[hidden] { display: none; }
.care-command-primary { width: 100%; border-radius: 14px; }
.care-record-more, .report-guidance { margin-top: 12px; border-radius: 16px; background: #f4f6fa; }
.care-record-more > summary, .report-guidance > summary { display: flex; align-items: center; justify-content: space-between; min-height: 48px; padding: 0 14px; list-style: none; color: #4d5868; font-size: 13px; font-weight: 900; cursor: pointer; }
.care-record-more > summary::-webkit-details-marker, .report-guidance > summary::-webkit-details-marker, .care-disclosure > summary::-webkit-details-marker { display: none; }
.care-record-more > summary::after, .report-guidance > summary::after, .care-disclosure > summary::after { content: "+"; color: var(--muted); font-size: 20px; font-weight: 500; }
.care-record-more[open] > summary::after, .report-guidance[open] > summary::after, .care-disclosure[open] > summary::after { content: "−"; }
.care-record-more > summary:focus-visible, .report-guidance > summary:focus-visible, .care-disclosure > summary:focus-visible { outline: 3px solid rgba(71, 118, 230, .32); outline-offset: -3px; }
.care-record-more-body { padding: 0 14px 14px; }
.care-workflow-grid { display: grid; grid-template-columns: minmax(0, 1.35fr) minmax(260px, .65fr); gap: 14px; align-items: start; }
.care-workflow-primary, .care-support-disclosures { display: grid; gap: 14px; min-width: 0; }
.care-editor-label, .care-summary-label { display: block; margin-top: 14px; color: var(--text); font-size: 13px; font-weight: 900; }
.care-input-box.care-transcript-editor, .care-report-box.care-summary-readout, .care-report-box.care-guardian-readout { border: 0; background: #f5f7fb; box-shadow: inset 0 0 0 1px transparent; }
.care-input-box.care-transcript-editor { min-height: 230px; margin-top: 8px; border-radius: 18px; font-size: 15px; }
.care-report-box.care-summary-readout { min-height: 170px; margin-top: 8px; resize: none; border-radius: 18px; font-size: 14px; }
.care-report-box.care-guardian-readout { min-height: 210px; border-radius: 16px; font-size: 14px; }
.care-input-box.care-transcript-editor:focus-visible, .report-document-editor:focus-visible { outline: 3px solid rgba(71, 118, 230, .28); outline-offset: 1px; box-shadow: inset 0 0 0 1px #8aa8ef; }
.care-editor-actions { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 10px; margin-top: 12px; }
.care-editor-actions .primary-btn { border-radius: 14px; }
.care-signal-panel { margin-top: 14px; padding: 14px; border-radius: 18px; background: #f7f9fc; }
.care-signal-heading { align-items: center; }
.care-signal-heading h4 { font-size: 15px; }
.care-signal-panel .care-urgency-list { margin-top: 8px; }
.care-signal-panel .care-keyword-list { margin-top: 10px; }
.care-disclosure { overflow: hidden; border-radius: 20px; }
.care-disclosure > summary { display: flex; align-items: center; justify-content: space-between; gap: 12px; min-height: 54px; padding: 0 16px; list-style: none; color: var(--text); font-size: 14px; font-weight: 900; cursor: pointer; }
.care-disclosure-summary-copy { display: grid; gap: 2px; }
.care-disclosure-summary-copy small { color: var(--muted); font-size: 12px; font-weight: 700; }
.care-disclosure-body { padding: 0 16px 16px; }
.care-disclosure .care-draft-table { border: 0; border-radius: 16px; background: #f7f9fc; }
.care-disclosure .care-draft-row { border-color: #e8edf5; }
.care-disclosure .care-draft-key { background: transparent; }

.report-workspace { display: grid; gap: 14px; width: min(100%, 840px); min-height: 100%; margin: 0 auto; }
.report-workspace-header { display: flex; align-items: flex-start; justify-content: space-between; gap: 14px; padding: 2px 2px 0; }
.report-review-status { display: inline-flex; align-items: center; min-height: 34px; padding: 7px 11px; border-radius: 999px; background: var(--blue-soft); color: #315ec4; font-size: 12px; font-weight: 950; white-space: nowrap; }
.report-review-status[data-state="dirty"] { background: var(--warn-soft); color: #815000; }
.report-review-status[data-state="reviewed"] { background: var(--normal-soft); color: #2b7139; }
.report-document { overflow: hidden; border-radius: 24px; }
.report-document-meta { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 14px 18px; background: #f5f7fb; color: var(--muted); font-size: 12px; font-weight: 800; }
.report-document-meta strong { color: var(--text); }
.report-box.report-document-editor { display: block; min-height: 520px; padding: 22px; resize: none; overflow: hidden; border: 0; border-radius: 0; background: #fff; font-size: 15px; line-height: 1.72; box-shadow: none; }
.report-document-footer { display: flex; align-items: center; justify-content: space-between; gap: 10px; padding: 11px 18px 14px; color: var(--muted); font-size: 12px; font-weight: 750; }
.report-guidance { margin-top: 0; }
.report-guidance-body { padding: 0 16px 15px; color: var(--muted); font-size: 13px; line-height: 1.55; }
.report-guidance-body ul { margin: 0; padding-left: 18px; }
.report-action-bar { position: sticky; bottom: -12px; z-index: 3; display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 10px; padding: 10px; border-radius: 20px; background: rgba(255, 255, 255, .94); box-shadow: 0 16px 36px rgba(23, 32, 51, .14); backdrop-filter: blur(14px); }
.report-action-bar .primary-btn { border-radius: 14px; }
.report-secondary-actions { display: flex; gap: 8px; }
.report-secondary-actions .ghost-btn { min-width: 86px; border-radius: 14px; }

.ai-stage-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 14px; margin-top: 18px; }
.ai-stage-card { min-width: 0; border: 1px solid var(--line); border-radius: var(--radius-lg); background: linear-gradient(180deg, #ffffff, #f8fbff); padding: 16px; box-shadow: 0 10px 24px rgba(23, 32, 51, 0.045); }
.ai-stage-card.risk { border-color: var(--risk-line); background: linear-gradient(180deg, #ffffff, var(--risk-soft)); }
.ai-stage-card.warn { border-color: var(--warn-line); background: linear-gradient(180deg, #ffffff, var(--warn-soft)); }
.ai-stage-card.normal { border-color: var(--normal-line); background: linear-gradient(180deg, #ffffff, var(--normal-soft)); }
.ai-stage-card.unknown { border-color: var(--unknown-line); background: linear-gradient(180deg, #ffffff, var(--unknown-soft)); }
.ai-stage-top { display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; margin-bottom: 12px; }
.ai-stage-kicker { color: var(--muted); font-size: 12px; font-weight: 900; letter-spacing: 0; }
.ai-stage-title { margin-top: 4px; font-size: 17px; font-weight: 900; color: var(--text); }
.ai-stage-score { flex: 0 0 auto; min-width: 72px; text-align: center; border-radius: 999px; padding: 7px 10px; color: #fff; font-size: 16px; font-weight: 900; line-height: 1.12; background: var(--blue); }
.ai-stage-score span { display: block; font-size: 10px; font-weight: 900; opacity: 0.92; }
.ai-stage-score strong { display: block; font-size: 18px; letter-spacing: 0; }
.ai-stage-card.risk .ai-stage-score { background: var(--risk); }
.ai-stage-card.warn .ai-stage-score { background: var(--warn); }
.ai-stage-card.normal .ai-stage-score { background: var(--normal); }
.ai-stage-card.unknown .ai-stage-score { background: var(--unknown); }
.ai-stage-meta { color: var(--muted); font-size: 13px; font-weight: 800; line-height: 1.45; margin-bottom: 10px; }
.ai-stage-list { display: grid; gap: 7px; margin: 0; padding: 0; list-style: none; }
.ai-stage-list li { display: flex; gap: 7px; align-items: flex-start; color: var(--text); font-size: 13px; line-height: 1.45; font-weight: 750; }
.ai-stage-list li::before { content: ""; flex: 0 0 7px; width: 7px; height: 7px; border-radius: 999px; margin-top: 6px; background: var(--blue); }
.ai-stage-card.risk .ai-stage-list li::before { background: var(--risk); }
.ai-stage-card.warn .ai-stage-list li::before { background: var(--warn); }
.ai-stage-card.normal .ai-stage-list li::before { background: var(--normal); }
.ai-stage-card.unknown .ai-stage-list li::before { background: var(--unknown); }

.voice-modal { width: min(560px, 94vw); max-height: 86vh; overflow: auto; background: #fff; border-radius: 26px; border: 1px solid var(--line); box-shadow: 0 30px 80px rgba(15, 23, 42, 0.28); padding: 24px; animation: modalIn .16s ease-out; }
.voice-device-row { display: grid; grid-template-columns: 1fr auto; gap: 10px; margin: 16px 0; }
.voice-device-row select { height: 42px; min-width: 0; border: 1px solid var(--line); border-radius: 999px; padding: 0 14px; color: var(--text); background: #fff; outline: none; }
.voice-listen-box { border: 1px solid var(--line); border-radius: var(--radius-lg); padding: 16px; background: #f8fafc; }
.voice-status-line { color: var(--muted); font-size: 13px; font-weight: 800; line-height: 1.45; }
.voice-meter { height: 10px; margin: 12px 0; overflow: hidden; border-radius: 999px; background: #e8edf5; }
.voice-meter-fill { display: block; width: 0%; height: 100%; border-radius: inherit; background: linear-gradient(90deg, var(--normal), var(--blue)); transition: width .08s linear; }
.voice-transcript { min-height: 72px; padding: 12px; border: 1px dashed var(--line); border-radius: var(--radius-md); background: #fff; color: var(--text); line-height: 1.55; font-size: 14px; white-space: pre-wrap; }
.voice-response-result { margin-top: 12px; padding: 11px 12px; border-radius: var(--radius-md); border: 1px solid var(--line); background: #fff; color: var(--muted); font-size: 13px; font-weight: 800; line-height: 1.45; }
.voice-response-result.normal { color: var(--normal); border-color: var(--normal-line); background: var(--normal-soft); }
.voice-response-result.warn { color: var(--warn); border-color: var(--warn-line); background: var(--warn-soft); }
.voice-response-result.risk { color: var(--risk); border-color: var(--risk-line); background: var(--risk-soft); }
.voice-playback-row { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; margin-top: 12px; }
.voice-playback-row audio { flex: 1 1 260px; min-width: 220px; height: 36px; }
.voice-playback-hint { color: var(--muted); font-size: 12px; font-weight: 800; }
.inline-audio-btn { height: 34px; padding: 0 12px; border-radius: 999px; border: 1px solid var(--line); background: #fff; color: var(--text); font-weight: 900; white-space: nowrap; }
.voice-modal-actions { display: flex; justify-content: flex-end; gap: 10px; flex-wrap: wrap; margin-top: 16px; }
.toast { position: fixed; left: 50%; bottom: 28px; transform: translateX(-50%) translateY(20px); opacity: 0; pointer-events: none; background: #172033; color: #fff; padding: 12px 18px; border-radius: 999px; box-shadow: 0 18px 36px rgba(23, 32, 51, 0.20); transition: 0.22s ease; z-index: 200; font-weight: 800; font-size: 14px; }
.toast.show { opacity: 1; transform: translateX(-50%) translateY(0); }

/* =========================================================
   센서 연결 도우미 
   ========================================================= */
.connection-assistant { position: fixed; top: 50%; left: clamp(16px, 2.4vw, 36px); z-index: 40; width: min(328px, calc(100vw - 32px)); max-height: calc(100svh - 32px); overflow: hidden; color: #f8fafc; background: radial-gradient(circle at 100% 0%, rgba(88, 123, 255, .25), transparent 42%), rgba(15, 23, 42, .9); border-radius: 28px; box-shadow: 0 26px 70px rgba(0, 0, 0, .34), 0 8px 24px rgba(0, 0, 0, .22); backdrop-filter: blur(24px) saturate(145%); -webkit-backdrop-filter: blur(24px) saturate(145%); transform: translateY(-50%); transition: width .24s ease, border-radius .24s ease, box-shadow .24s ease; }
.connection-assistant button, .connection-assistant a { font: inherit; }
.connect-assistant-toggle { position: absolute; top: 14px; right: 14px; z-index: 2; display: grid; width: 38px; height: 38px; padding: 0; place-items: center; color: #eef2ff; background: rgba(255, 255, 255, .1); border: 0; border-radius: 13px; cursor: pointer; transition: background .18s ease, transform .18s ease; }
.connect-assistant-toggle:hover { background: rgba(255, 255, 255, .17); }
.connect-assistant-toggle:active { transform: scale(.95); }
.connect-assistant-toggle:focus-visible { outline: 3px solid rgba(165, 180, 252, .88); outline-offset: 2px; }
.connect-assistant-toggle svg { width: 20px; height: 20px; }
.connect-assistant-body { max-height: calc(100svh - 32px); padding: 24px; overflow-y: auto; overscroll-behavior: contain; scrollbar-width: thin; }
.connect-eyebrow { display: flex; align-items: center; gap: 8px; margin: 0 46px 7px 0; color: #aebcff; font-size: 11px; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; }
.connect-eyebrow::before { content: ""; width: 7px; height: 7px; border-radius: 50%; background: #8da2ff; box-shadow: 0 0 0 5px rgba(141, 162, 255, .13); }
.connect-assistant-title { margin: 0; font-size: 23px; line-height: 1.2; letter-spacing: -.035em; }
.connect-assistant-copy { margin: 8px 0 20px; color: rgba(226, 232, 240, .72); font-size: 12px; line-height: 1.55; }
.connect-overview { display: grid; grid-template-columns: 46px 1fr; gap: 13px; align-items: center; margin-bottom: 14px; padding: 14px; background: rgba(255, 255, 255, .085); border-radius: 19px; }
.connect-state-orb { position: relative; display: grid; width: 46px; height: 46px; place-items: center; color: #dbe4ff; background: rgba(129, 150, 255, .2); border-radius: 16px; transition: color .2s ease, background .2s ease; }
.connect-state-orb::after { content: ""; width: 12px; height: 12px; border-radius: 50%; background: currentColor; box-shadow: 0 0 0 6px color-mix(in srgb, currentColor 15%, transparent); }
.connection-assistant[data-state="ready"] .connect-state-orb { color: #62dfa1; background: rgba(43, 179, 112, .16); }
.connection-assistant[data-state="waiting"] .connect-state-orb { color: #f6c453; background: rgba(246, 196, 83, .15); }
.connection-assistant[data-state="error"] .connect-state-orb { color: #ff8492; background: rgba(255, 86, 108, .15); }
.connect-overview strong { display: block; margin-bottom: 3px; font-size: 14px; }
.connect-overview span { display: block; color: rgba(226, 232, 240, .7); font-size: 11px; line-height: 1.4; }
.connect-service-list { display: grid; gap: 7px; margin-bottom: 14px; }
.connect-service-row { display: grid; grid-template-columns: 9px 1fr auto; gap: 9px; align-items: center; min-height: 34px; padding: 7px 11px; color: rgba(241, 245, 249, .88); background: rgba(255, 255, 255, .055); border-radius: 12px; font-size: 11px; }
.connect-service-dot { width: 8px; height: 8px; border-radius: 50%; background: #64748b; box-shadow: 0 0 0 4px rgba(100, 116, 139, .12); }
.connect-service-row[data-level="ok"] .connect-service-dot { background: #55d793; box-shadow: 0 0 0 4px rgba(85, 215, 147, .12); }
.connect-service-row[data-level="wait"] .connect-service-dot { background: #f3be4b; box-shadow: 0 0 0 4px rgba(243, 190, 75, .12); }
.connect-service-row[data-level="error"] .connect-service-dot { background: #ff7587; box-shadow: 0 0 0 4px rgba(255, 117, 135, .12); }
.connect-service-value { color: rgba(226, 232, 240, .64); font-variant-numeric: tabular-nums; }
.connect-address-card { margin-bottom: 12px; padding: 15px; color: #172033; background: linear-gradient(145deg, #f8faff, #e9efff); border-radius: 19px; box-shadow: 0 10px 28px rgba(2, 8, 23, .18); }
.connect-address-label { display: flex; justify-content: space-between; gap: 8px; margin-bottom: 8px; color: #60708b; font-size: 10px; font-weight: 800; }
.connect-address-value { display: flex; align-items: center; justify-content: space-between; gap: 10px; }
.connect-address-value code { min-width: 0; overflow-wrap: anywhere; color: #213a78; font-family: "SFMono-Regular", Consolas, monospace; font-size: 17px; font-weight: 800; letter-spacing: -.03em; }
.connect-copy-btn { flex: 0 0 auto; min-width: 48px; min-height: 34px; padding: 0 10px; color: #f8faff; background: #345cc7; border: 0; border-radius: 11px; font-size: 10px; font-weight: 800; cursor: pointer; }
.connect-network-name { margin: 8px 0 0; color: #71809a; font-size: 10px; }
.connect-quick-actions { display: grid; grid-template-columns: 1fr auto; gap: 8px; margin-bottom: 12px; }
.connect-action-btn, .connect-setup-link { display: inline-flex; min-height: 38px; align-items: center; justify-content: center; padding: 0 13px; color: #eef2ff; background: rgba(255, 255, 255, .1); border: 0; border-radius: 12px; font-size: 11px; font-weight: 800; text-decoration: none; cursor: pointer; }
.connect-action-btn:hover, .connect-setup-link:hover { background: rgba(255, 255, 255, .17); }
.connect-help { padding: 13px 14px; color: rgba(241, 245, 249, .86); background: rgba(255, 255, 255, .055); border-radius: 16px; }
.connect-help summary { display: flex; min-height: 28px; align-items: center; justify-content: space-between; gap: 10px; list-style: none; font-size: 11px; font-weight: 800; cursor: pointer; }
.connect-help summary::-webkit-details-marker { display: none; }
.connect-help summary::after { content: "+"; color: #afbdff; font-size: 17px; font-weight: 500; }
.connect-help[open] summary::after { content: "−"; }
.connect-steps { display: grid; gap: 9px; margin: 10px 0 0; padding: 0; list-style: none; counter-reset: connect-step; }
.connect-steps li { position: relative; min-height: 24px; padding: 3px 0 3px 31px; color: rgba(226, 232, 240, .7); font-size: 10px; line-height: 1.45; counter-increment: connect-step; }
.connect-steps li::before { content: counter(connect-step); position: absolute; top: 0; left: 0; display: grid; width: 23px; height: 23px; place-items: center; color: #cbd5ff; background: rgba(129, 150, 255, .16); border-radius: 8px; font-size: 9px; font-weight: 900; }
.connect-tip { margin: 11px 0 0; padding: 10px 11px; color: #d9e1ff; background: rgba(82, 110, 216, .14); border-radius: 12px; font-size: 9px; line-height: 1.5; }
.connect-announcement { min-height: 16px; margin: 9px 0 0; color: #b8c4e6; font-size: 9px; text-align: center; }

@media (min-width: 1181px) { .connect-assistant-toggle { display: none; } }
@media (max-width: 1180px) {
  .connection-assistant { top: 14px; left: 14px; width: 56px; max-height: calc(100svh - 28px); border-radius: 18px; transform: none; }
  .connection-assistant .connect-assistant-body { display: none; }
  .connection-assistant .connect-assistant-toggle { top: 9px; right: 9px; }
  .connection-assistant.is-open { width: min(328px, calc(100vw - 28px)); border-radius: 26px; box-shadow: 0 26px 80px rgba(0, 0, 0, .48); }
  .connection-assistant.is-open .connect-assistant-body { display: block; }
}
@media (max-width: 460px) {
  .connection-assistant.is-open { width: calc(100vw - 20px); }
  .connection-assistant { top: 10px; left: 10px; }
  .connect-assistant-body { padding: 21px; }
}

/* =========================================================
   easy_03 확정 피드백 파트 (알림, 대상 선택, 응급 그룹)
   ========================================================= */
.section-heading-actions { display: flex; align-items: center; gap: 10px; }
.section-link-button, .alert-card-action { display: inline-flex; align-items: center; justify-content: center; border: 1px solid #cbd8ff; color: #3159c5; background: #f3f6ff; font-weight: 850; text-decoration: none; }
.section-link-button { min-height: 46px; padding: 0 20px; border-radius: 14px; font-size: 14px; }
.alert-card-action { min-height: 38px; padding: 0 14px; border-radius: 12px; font-size: 12px; }
.section-link-button:hover, .alert-card-action:hover { background: #e8efff; }

.alert-page-topbar { display: flex; align-items: center; gap: 13px; margin-bottom: 18px; }
.alert-page-back { position: relative; width: 42px; height: 42px; flex: 0 0 42px; border-radius: 14px; color: var(--text); background: #fff; box-shadow: 0 9px 24px rgba(23, 32, 51, .08); }
.alert-page-back::before { content: ""; position: absolute; top: 50%; left: 50%; width: 9px; height: 9px; border-bottom: 2.5px solid currentColor; border-left: 2.5px solid currentColor; transform: translate(-35%, -50%) rotate(45deg); }
.alert-page-title h1 { margin: 0; font-size: 25px; letter-spacing: -.04em; }
.alert-page-title p { margin: 4px 0 0; color: var(--muted); font-size: 12px; line-height: 1.45; }

.alert-overview-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 11px; margin-bottom: 14px; }
.alert-overview-card { display: grid; gap: 9px; min-height: 110px; padding: 15px; text-align: left; border: 1px solid var(--line); border-radius: 20px; background: rgba(255, 255, 255, .94); box-shadow: 0 12px 28px rgba(23, 32, 51, .06); }
.alert-overview-card.active { border-color: #9eb4ff; box-shadow: 0 14px 32px rgba(71, 118, 230, .14); }
.alert-overview-card.request.active { border-color: #8ed6c0; box-shadow: 0 14px 32px rgba(38, 166, 126, .13); }
.alert-overview-card .label { color: var(--muted); font-size: 11px; font-weight: 850; }
.alert-overview-card .count { font-size: 28px; font-weight: 950; line-height: 1; letter-spacing: -.04em; }
.alert-overview-card .hint { color: var(--muted); font-size: 10px; font-weight: 750; line-height: 1.35; }

.alert-category-tabs { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 5px; margin-bottom: 12px; padding: 5px; border: 1px solid var(--line); border-radius: 16px; background: #eef2f8; }
.alert-category-button { min-height: 40px; border-radius: 12px; color: var(--muted); background: transparent; font-size: 12px; font-weight: 850; }
.alert-category-button.active { color: var(--text); background: #fff; box-shadow: 0 6px 16px rgba(23, 32, 51, .08); }

.alert-page-list { display: grid; gap: 10px; }
.alert-page-card { position: relative; display: grid; gap: 11px; padding: 15px 15px 14px 18px; overflow: hidden; border: 1px solid var(--line); border-radius: 19px; background: rgba(255, 255, 255, .96); box-shadow: 0 10px 25px rgba(23, 32, 51, .055); }
.alert-page-card::before { content: ""; position: absolute; inset: 0 auto 0 0; width: 5px; background: var(--unknown); }
.alert-page-card.risk::before { background: var(--risk); }
.alert-page-card.warn::before { background: var(--warn); }
.alert-page-card.unknown::before { background: var(--unknown); }
.alert-page-card.request::before { background: #2fa77e; }

.alert-card-meta { display: flex; align-items: center; justify-content: space-between; gap: 10px; color: var(--muted); font-size: 10px; font-weight: 800; }
.alert-kind-badge { display: inline-flex; min-height: 24px; align-items: center; padding: 0 9px; border-radius: 999px; color: #2755bd; background: var(--blue-soft); font-size: 10px; font-weight: 900; }
.alert-kind-badge.request { color: #147454; background: #e8f8f1; }
.alert-page-card h3 { margin: 0; font-size: 15px; letter-spacing: -.025em; }
.alert-page-card p { margin: 5px 0 0; color: var(--muted); font-size: 11px; line-height: 1.55; }
.alert-card-actions { display: flex; justify-content: flex-end; gap: 7px; }
.alert-card-action.primary { color: #fff; border-color: #4776e6; background: #4776e6; }
.alert-card-action.request-primary { color: #fff; border-color: #278e6d; background: #278e6d; }
.alert-page-empty { padding: 30px 18px; border: 1px dashed #cfd7e5; border-radius: 20px; color: var(--muted); background: rgba(255, 255, 255, .7); font-size: 12px; font-weight: 750; text-align: center; }

.senior-selector-modal { display: flex; flex-direction: column; width: min(560px, calc(100% - 28px)); max-height: min(680px, calc(100% - 34px)); overflow: hidden; border-radius: 24px; background: #fff; box-shadow: 0 28px 80px rgba(23, 32, 51, .24); }
.senior-selector-modal > .modal-head { flex: 0 0 auto; margin: 0; padding: 22px 22px 16px; }
.senior-selector-modal .senior-selector-intro { margin: 6px 0 0; color: var(--muted); font-size: 12px; line-height: 1.5; }
.senior-selector-list { display: grid; gap: 8px; min-height: 0; max-height: 430px; padding: 0 18px 18px; overflow-y: auto; }
.senior-selector-item { display: grid; grid-template-columns: auto 1fr auto; gap: 11px; align-items: center; width: 100%; min-height: 58px; padding: 10px 12px; border: 1px solid var(--line); border-radius: 16px; color: var(--text); background: #fff; text-align: left; }
.senior-selector-item:hover, .senior-selector-item:focus-visible { border-color: #a9bcf8; background: #f7f9ff; outline: none; }
.senior-selector-avatar { display: grid; width: 34px; height: 34px; place-items: center; border-radius: 12px; color: #fff; background: var(--blue); font-size: 12px; font-weight: 900; }
.senior-selector-copy strong { display: block; font-size: 13px; }
.senior-selector-copy span { display: block; margin-top: 2px; color: var(--muted); font-size: 10px; }
.senior-selector-go { color: var(--blue); font-size: 11px; font-weight: 900; }

.emergency-action-group { margin-bottom: 14px; padding: 14px; border: 1px solid var(--risk-line); border-radius: 18px; background: linear-gradient(145deg, #fff8f9, var(--risk-soft)); }
.emergency-action-heading { display: flex; align-items: flex-start; justify-content: space-between; gap: 10px; margin-bottom: 11px; }
.emergency-action-heading strong { display: block; color: #b62e40; font-size: 14px; }
.emergency-action-heading span { display: block; margin-top: 3px; color: #8e5360; font-size: 10px; line-height: 1.4; }
.emergency-group-badge { flex: 0 0 auto; margin-top: 0 !important; padding: 4px 8px; border-radius: 999px; color: #b62e40 !important; background: #fff; font-size: 9px !important; font-weight: 900; }
.emergency-action-group .detail-actions-bottom { grid-template-columns: repeat(2, minmax(0, 1fr)); margin-bottom: 0; gap: 8px; }
.detail-action-area.is-highlighted { animation: emergency-focus-pulse 1.25s ease 1; }

@keyframes emergency-focus-pulse {
  0%, 100% { box-shadow: 0 14px 34px rgba(23, 32, 51, .07); }
  45% { box-shadow: 0 0 0 5px rgba(231, 79, 95, .18), 0 18px 40px rgba(231, 79, 95, .14); }
}