.messaging-shell { padding: 26px; color: #f4f7fb; }
.messaging-heading { display: flex; align-items: end; justify-content: space-between; gap: 24px; padding-bottom: 18px; border-bottom: 1px solid #31506b; }
.messaging-heading span { color: #f2c900; font-weight: 800; letter-spacing: .12em; }
.messaging-heading h1 { margin: 6px 0; font-size: clamp(2rem, 4vw, 3.4rem); }
.messaging-heading p { margin: 0; color: #a9bfd4; }
.messaging-heading button, .messaging-compose button, .messaging-message button { border: 1px solid #e5bd00; border-radius: 12px; padding: 11px 18px; background: #f2c900; color: #07111d; font-weight: 900; cursor: pointer; }
.messaging-layout { display: grid; grid-template-columns: minmax(280px, 360px) minmax(0, 1fr); gap: 22px; margin-top: 22px; }
.messaging-compose, .messaging-conversation { border: 1px solid #2d4b65; border-radius: 18px; background: linear-gradient(145deg, #10243a, #0b1a2b); box-shadow: 0 18px 44px rgba(0,0,0,.22); }
.messaging-compose { align-self: start; padding: 22px; }
.messaging-compose h2 { margin: 0 0 18px; }
.messaging-compose label { display: grid; gap: 8px; margin: 0 0 16px; color: #c6d7e7; font-weight: 700; }
.messaging-compose select, .messaging-compose textarea { width: 100%; border: 1px solid #41617d; border-radius: 11px; background: #071522; color: #fff; padding: 12px; font: inherit; }
.messaging-compose textarea { resize: vertical; min-height: 120px; }
.messaging-compose__footer { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.messaging-compose__footer small { color: #7896b1; }
.messaging-conversation { min-height: 480px; padding: 18px; }
.messaging-feed { display: grid; gap: 14px; max-height: calc(100vh - 280px); min-height: 440px; overflow-y: auto; padding: 3px; }
.messaging-message { width: min(76%, 760px); border: 1px solid #31516d; border-radius: 16px 16px 16px 4px; background: #132a43; padding: 15px 17px; }
.messaging-message.is-outbound { justify-self: end; border-color: rgba(229,189,0,.5); border-radius: 16px 16px 4px 16px; background: #26301e; }
.messaging-message.is-transit { justify-self: center; border-color: #53718b; border-radius: 16px; background: #17283a; }
.messaging-message.is-unread { border-color: #f2c900; box-shadow: 0 0 0 1px rgba(242,201,0,.28), 0 0 22px rgba(242,201,0,.12); }
.messaging-message header, .messaging-message footer { display: flex; align-items: center; justify-content: space-between; gap: 14px; }
.messaging-message__route { display: flex; align-items: center; gap: 14px; flex-wrap: wrap; }
.messaging-message__route > div { display: grid; gap: 2px; }
.messaging-message__route > b { color: #7f9bb5; font-size: 1.1rem; }
.messaging-message__route strong { color: #f4f7fb; }
.messaging-message header span { color: #6fe2bd; font-size: .72rem; font-weight: 900; letter-spacing: .09em; }
.messaging-message.is-outbound header span { color: #f2c900; }
.messaging-message.is-transit header span { color: #9fc1dc; }
.messaging-message header small, .messaging-message time, .messaging-message__state { color: #8faac2; font-size: .8rem; }
.messaging-message p { white-space: pre-wrap; overflow-wrap: anywhere; margin: 13px 0; font-size: 1.02rem; line-height: 1.5; }
.messaging-message button { padding: 8px 12px; font-size: .75rem; }
.messaging-empty { display: grid; place-items: center; min-height: 380px; color: #7f9bb5; text-align: center; }
.messaging-feedback { min-height: 24px; margin: 14px 0 0; color: #9fb7cb; }
.messaging-feedback[data-kind="success"] { color: #59ddb2; }
.messaging-feedback[data-kind="warning"] { color: #f2c900; }
.messaging-feedback[data-kind="error"] { color: #ff8181; }
.emergency-center { margin-top: 20px; border: 1px solid #89313d; border-radius: 18px; padding: 18px; background: linear-gradient(145deg, rgba(89,17,29,.72), rgba(13,28,43,.96)); box-shadow: 0 18px 44px rgba(0,0,0,.25); }
.emergency-center[hidden] { display: none; }
.emergency-center > header { display: flex; align-items: center; justify-content: space-between; margin-bottom: 14px; }
.emergency-center > header span { color: #ff7b87; font-size: .74rem; font-weight: 900; letter-spacing: .14em; }
.emergency-center > header h2 { margin: 4px 0 0; }
.emergency-center__grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 310px), 1fr)); gap: 14px; }
.sos-shell .emergency-center { min-height: 430px; }
.sos-empty { grid-column: 1 / -1; display: grid; place-items: center; align-content: center; min-height: 300px; padding: 32px; color: #8faac2; text-align: center; }
.sos-empty strong { color: #f4f7fb; font-size: 1.2rem; }
.sos-empty p { margin: 8px 0 0; }
.emergency-case { border: 1px solid #aa3d4d; border-radius: 14px; padding: 16px; background: #101f2e; }
.emergency-case--resolved, .emergency-case--cancelled { border-color: #385268; opacity: .78; }
.emergency-case > header { display: flex; align-items: start; justify-content: space-between; gap: 12px; }
.emergency-case > header span { border-radius: 999px; padding: 5px 8px; background: #b5192f; color: #fff; font-size: .68rem; font-weight: 900; white-space: nowrap; }
.emergency-case--acknowledged > header span { background: #e5bd00; color: #07111d; }
.emergency-case--resolved > header span { background: #16885f; }
.emergency-case--cancelled > header span { background: #526b80; }
.emergency-case p { margin: 12px 0; color: #dce9f5; }
.emergency-case dl { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px 14px; margin: 0 0 14px; }
.emergency-case dl div { min-width: 0; }
.emergency-case dt { color: #7896b1; font-size: .72rem; text-transform: uppercase; }
.emergency-case dd { margin: 3px 0 0; overflow-wrap: anywhere; font-weight: 700; }
.emergency-case footer { display: flex; align-items: end; justify-content: flex-end; gap: 10px; flex-wrap: wrap; }
.emergency-case footer label { display: grid; gap: 4px; margin-right: auto; color: #8faac2; font-size: .72rem; font-weight: 800; text-transform: uppercase; }
.emergency-case footer select { min-width: 190px; border: 1px solid #41617d; border-radius: 9px; padding: 9px; background: #071522; color: #fff; font: inherit; }
.emergency-case footer button { border: 1px solid #e5bd00; border-radius: 10px; padding: 10px 14px; background: #f2c900; color: #07111d; font-weight: 900; cursor: pointer; }
.emergency-case footer button:disabled { opacity: .55; cursor: wait; }
.emergency-case footer small { color: #9bb2c7; }
.emergency-responders { margin: 2px 0 14px; padding: 12px; border: 1px solid #29485f; border-radius: 11px; background: rgba(4,17,28,.52); }
.emergency-responders h3 { margin: 0 0 9px; color: #66d4f5; font-size: .72rem; letter-spacing: .12em; }
.emergency-responders__empty { margin: 0 !important; color: #8faac2 !important; font-size: .78rem; }
.emergency-responders__list { display: grid; gap: 7px; }
.emergency-responder { display: flex; align-items: center; justify-content: space-between; gap: 10px; padding: 8px 10px; border-radius: 9px; background: #0a1a28; }
.emergency-responder > div:first-child { display: grid; gap: 3px; min-width: 0; }
.emergency-responder strong { font-size: .82rem; }
.emergency-responder span { color: #f2c900; font-size: .66rem; font-weight: 900; white-space: nowrap; }
.emergency-responder--responding span { color: #60cdf5; }
.emergency-responder--on_scene span { color: #42d99a; }
.emergency-responder--withdrawn span { color: #ff7884; }
.emergency-responders__assign { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 8px; margin-top: 10px; }
.emergency-responders__assign select { min-width: 0; border: 1px solid #41617d; border-radius: 9px; padding: 9px; background: #071522; color: #fff; font: inherit; }
.emergency-responders__assign button { border: 1px solid #e5bd00; border-radius: 9px; padding: 9px 11px; background: transparent; color: #f2c900; font-size: .72rem; font-weight: 900; cursor: pointer; }
.emergency-responders__assign button:disabled { opacity: .55; cursor: wait; }
.emergency-responder__status { display: grid; grid-template-columns: minmax(150px, 1fr) auto; gap: 7px; }
.emergency-responder__status select { min-width: 0; border: 1px solid #41617d; border-radius: 8px; padding: 7px 8px; background: #071522; color: #fff; font: inherit; font-size: .72rem; font-weight: 800; }
.emergency-responder__status button { border: 1px solid #55dba2; border-radius: 8px; padding: 7px 9px; background: transparent; color: #55dba2; font-size: .68rem; font-weight: 900; cursor: pointer; }
.emergency-responder__status button:disabled { opacity: .55; cursor: wait; }
.scc-menu-item--messaging,
.scc-menu-item--sos,
.scc-menu-item--medevac { display: flex; align-items: center; gap: 10px; }
.messaging-unread-badge,
.sos-active-badge,
.medevac-unread-badge { display: inline-grid; place-items: center; min-width: 22px; height: 22px; margin-left: auto; padding: 0 6px; border-radius: 999px; background: #e84141; color: #fff; font-size: .75rem; font-weight: 900; box-shadow: 0 0 14px rgba(232,65,65,.55); }
.messaging-unread-badge[hidden],
.sos-active-badge[hidden],
.medevac-unread-badge[hidden] { display: none; }
.soc-emergency-alert { width: min(620px, calc(100vw - 28px)); padding: 0; overflow: hidden; border: 2px solid #ff4e4e; border-radius: 22px; background: #0b1826; color: #fff; box-shadow: 0 24px 90px rgba(0,0,0,.72), 0 0 42px rgba(255,50,50,.38); }
.soc-emergency-alert::backdrop { background: rgba(2,8,15,.82); backdrop-filter: blur(5px); }
.soc-emergency-alert[open] { display: grid; grid-template-columns: 112px minmax(0, 1fr); }
.soc-emergency-alert__signal { display: grid; place-items: center; background: linear-gradient(180deg, #f04b4b, #a80718); color: #fff; font-size: 5rem; font-weight: 1000; animation: soc-emergency-pulse 1s ease-in-out infinite alternate; }
.soc-emergency-alert__content { padding: 28px; }
.soc-emergency-alert__content > span { color: #ff7373; font-size: .78rem; font-weight: 900; letter-spacing: .15em; }
.soc-emergency-alert h2 { margin: 5px 0 10px; font-size: clamp(1.8rem, 5vw, 2.8rem); }
.soc-emergency-alert p { margin: 0 0 18px; color: #dce9f5; font-size: 1.05rem; }
.soc-emergency-alert dl { display: grid; gap: 10px; margin: 0 0 20px; }
.soc-emergency-alert dl > div { display: grid; grid-template-columns: 155px 1fr; gap: 12px; padding: 10px 0; border-top: 1px solid #29445c; }
.soc-emergency-alert dt { color: #8faac2; }
.soc-emergency-alert dd { margin: 0; font-weight: 800; }
.soc-emergency-alert button { width: 100%; border: 0; border-radius: 12px; padding: 14px 18px; background: #f2c900; color: #07111d; font-weight: 1000; cursor: pointer; }
.soc-emergency-alert button:disabled { opacity: .55; cursor: wait; }
.soc-emergency-alert small { display: block; margin-top: 10px; color: #9bb2c7; text-align: center; }
@keyframes soc-emergency-pulse { from { filter: brightness(.78); } to { filter: brightness(1.28); } }
@media (max-width: 900px) {
    .messaging-shell { padding: 18px; }
    .messaging-heading { align-items: start; }
    .messaging-layout { grid-template-columns: 1fr; }
    .messaging-message { width: 92%; }
    .messaging-feed { max-height: none; }
    .emergency-case dl { grid-template-columns: 1fr; }
    .emergency-responders__assign { grid-template-columns: 1fr; }
    .emergency-responder { align-items: stretch; flex-direction: column; }
    .emergency-responder__status { grid-template-columns: minmax(0, 1fr) auto; }
    .soc-emergency-alert[open] { grid-template-columns: 1fr; }
    .soc-emergency-alert__signal { min-height: 72px; font-size: 3rem; }
    .soc-emergency-alert dl > div { grid-template-columns: 1fr; gap: 3px; }
}
