:root {
  --tjf-navy: #071a2b;
  --tjf-teal: #19b6b2;
  --tjf-teal-strong: #119894;
}

/* Keep TJF identity visible without changing the underlying client behaviour. */
.mx_AuthPage,
.mx_AuthBody {
  background-color: var(--tjf-navy);
}

.mx_AuthHeaderLogo img {
  max-width: min(280px, 68vw);
  max-height: 84px;
}

/* The deployment is fixed to NamChat's server; do not surface engine details. */
.mx_ServerPicker {
  display: none;
}

.mx_AccessibleButton_kind_primary,
.mx_AccessibleButton_kind_primary_outline {
  --cpd-color-bg-action-primary-rest: var(--tjf-teal);
  --cpd-color-bg-action-primary-hovered: var(--tjf-teal-strong);
}

.tjf-status-space-item svg {
  width: 24px;
  height: 24px;
}

@media (max-width: 767px) {
  .mx_AuthPage {
    align-items: stretch;
    min-height: 100dvh;
  }

  .mx_AuthPage::before {
    content: "";
    position: fixed;
    z-index: 10000;
    top: max(18px, env(safe-area-inset-top));
    left: 20px;
    width: 190px;
    height: 52px;
    background: url("/branding/logo.svg") no-repeat left center / contain;
    pointer-events: none;
  }

  .mx_AuthPage_modal,
  .mx_AuthPage_modalContent,
  .mx_AuthBody {
    width: 100%;
    max-width: none;
    margin: 0;
    border-radius: 0;
  }

  .mx_AuthPage_modalContent {
    flex: 1 1 100%;
    min-width: 0;
  }

  .mx_AuthBody {
    min-height: 100dvh;
    flex: 1 1 100%;
    box-sizing: border-box;
    min-width: 0;
    width: 100%;
    max-width: none;
    padding: max(92px, calc(env(safe-area-inset-top) + 76px)) 20px max(24px, env(safe-area-inset-bottom));
  }

  .mx_AuthHeader {
    display: none;
  }

  .mx_LeftPanel,
  .mx_RoomView {
    min-height: 100dvh;
  }

  .mx_MessageComposer_wrapper {
    padding-bottom: env(safe-area-inset-bottom);
  }

  .mx_Dialog {
    width: 100%;
    min-width: 0;
    max-width: 100%;
    max-height: 100%;
    padding: 24px 16px;
  }

  /* Keep every modal inside the visual viewport, including verification. */
  .mx_Dialog_wrapper {
    box-sizing: border-box;
    align-items: center;
    padding:
      max(12px, env(safe-area-inset-top))
      max(12px, env(safe-area-inset-right))
      max(12px, env(safe-area-inset-bottom))
      max(12px, env(safe-area-inset-left));
  }

  .mx_Dialog_border {
    width: 100%;
    min-width: 0;
    max-width: 100%;
    max-height: 100%;
  }

  .mx_Dialog_content {
    min-width: 0;
    margin: 12px 0 24px;
    overflow-wrap: anywhere;
  }

  .mx_Dialog .mx_VerificationPanel_QRPhase_startOptions {
    flex-direction: column;
    align-items: stretch;
  }

  .mx_Dialog .mx_VerificationPanel_QRPhase_startOptions > .mx_VerificationPanel_QRPhase_betweenText {
    width: auto;
    min-height: 40px;
  }

  .mx_Dialog .mx_VerificationPanel_QRPhase_startOptions .mx_VerificationPanel_QRPhase_startOption {
    box-sizing: border-box;
    width: 100%;
    max-width: none;
    padding: 16px;
  }

  .mx_Dialog .mx_VerificationPanel_QRPhase_startOptions .mx_VerificationPanel_QRPhase_startOption canvas,
  .mx_Dialog .mx_VerificationPanel_QRPhase_startOptions .mx_VerificationPanel_QRPhase_startOption .mx_VerificationPanel_QRPhase_noQR {
    width: min(220px, 100%) !important;
    height: auto !important;
    aspect-ratio: 1;
  }

  /* Incoming verification requests are toasts, not dialogs. */
  .mx_ToastContainer {
    position: fixed;
    top: max(8px, env(safe-area-inset-top));
    right: max(8px, env(safe-area-inset-right));
    left: max(8px, env(safe-area-inset-left));
    width: auto;
    max-width: none;
  }

  .mx_ToastContainer .mx_Toast_toast {
    box-sizing: border-box;
    width: 100%;
    min-width: 0;
    max-width: 100%;
    padding: 16px;
  }

  .mx_ToastContainer .mx_Toast_title,
  .mx_ToastContainer .mx_Toast_title h2,
  .mx_ToastContainer .mx_Toast_body {
    min-width: 0;
    overflow-wrap: anywhere;
  }

  .mx_ToastContainer .mx_Toast_buttons {
    flex-wrap: wrap;
    row-gap: 8px;
  }

  .mx_ToastContainer .mx_Toast_buttons .mx_AccessibleButton {
    flex: 1 1 132px;
    min-width: 0;
  }
}

@media (min-width: 768px) and (max-width: 1180px) {
  .mx_LeftPanel {
    max-width: 320px;
  }

  .mx_RightPanel {
    max-width: 360px;
  }
}

@media (prefers-reduced-motion: reduce) {
  .tjf-startup-bar::after {
    animation-duration: 2.4s;
  }
}
/* NamChat uses one fixed backend; do not expose the engine hostname in authentication UI. */
.mx_ServerPicker {
  display: none !important;
}





/* =========================================================
   TJF SOURCE MOBILE CSS V1
   React now controls mobile pane selection.
   ========================================================= */

@media (max-width: 767px) {

    .mx_TjfMobileList,
    .mx_TjfMobileRoom {
        position: relative;

        display: flex;
        flex: 1 1 auto;

        width: 100%;
        max-width: 100%;
        min-width: 0;

        height: 100%;
        min-height: 0;

        overflow: hidden;
    }

    .mx_TjfMobileList .mx_LeftPanel_outerWrapper {
        display: flex;

        width: 100%;
        max-width: none;
        min-width: 0;

        height: 100%;
    }

    .mx_TjfMobileList .mx_LeftPanel_wrapper,
    .mx_TjfMobileList .mx_LeftPanel_wrapper--user,
    .mx_TjfMobileList .mx_LeftPanel,
    .mx_TjfMobileList .mx_LeftPanel_roomListContainer,
    .mx_TjfMobileList .mx_RoomListPanel {
        width: 100%;
        max-width: 100%;
        min-width: 0;
    }

    .mx_TjfMobileRoom .mx_RoomView_wrapper,
    .mx_TjfMobileRoom .mx_RoomView {
        width: 100%;
        max-width: 100%;
        min-width: 0;

        height: 100%;
        min-height: 0;
    }

    .mx_TjfMobileChatsButton {
        position: absolute;

        top: max(8px, env(safe-area-inset-top));
        left: max(6px, env(safe-area-inset-left));

        z-index: 1000;

        height: 40px;

        padding: 0 10px;

        border: 0;
        border-radius: 9px;

        background: rgba(7, 26, 43, .94);
        color: #fff;

        font: inherit;
        font-size: 14px;
        font-weight: 700;

        cursor: pointer;
    }

    .mx_TjfMobileRoom .mx_RoomHeader {
        padding-left: 78px;
    }

    .mx_TjfMobileRoom .mx_MessageComposer_wrapper {
        padding-bottom:
            max(6px, env(safe-area-inset-bottom));
    }
}

/* TJF REGISTRATION ASSIST V1 START */

.mx_TjfRegistrationAssist {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 8px 12px;
    margin: -2px 0 14px;
}

.mx_TjfRegistrationAssistButton {
    min-height: 40px;
    padding: 8px 12px;
    border: 1px solid currentColor;
    border-radius: 8px;
    background: transparent;
    color: inherit;
    font: inherit;
    font-weight: 600;
    cursor: pointer;
}

.mx_TjfRegistrationAssistButton:disabled {
    opacity: 0.6;
    cursor: wait;
}

.mx_TjfRegistrationAssistMessage {
    flex: 1 1 190px;
    font-size: 13px;
    line-height: 1.4;
    opacity: 0.82;
}

@media (max-width: 767px) {
    .mx_TjfRegistrationAssist {
        align-items: stretch;
        flex-direction: column;
        margin-bottom: 16px;
    }

    .mx_TjfRegistrationAssistButton {
        min-height: 44px;
        width: 100%;
        font-size: 15px;
    }

    .mx_TjfRegistrationAssistMessage {
        flex: none;
        font-size: 14px;
    }
}

/* TJF REGISTRATION ASSIST V1 END */

/* TJF MOBILE HEADER V2 START */

@media (max-width: 767px) {

    /*
     * Main mobile room remains a vertical layout.
     */
    .mx_TjfMobileRoom {
        display: flex !important;
        flex-direction: column !important;
        width: 100% !important;
        height: 100% !important;
        min-width: 0 !important;
        min-height: 0 !important;
        overflow: hidden !important;
    }

    /*
     * TJF mobile navigation row:
     * Chats on left, profile/avatar on right.
     */
    .mx_TjfMobileNavBar {
        display: flex !important;
        align-items: center !important;
        justify-content: space-between !important;
        flex: 0 0 auto !important;
        width: 100% !important;
        min-height: 56px !important;
        padding: 6px 10px !important;
        box-sizing: border-box !important;
        position: relative !important;
        z-index: 30 !important;
    }

    .mx_TjfMobileChatsButton {
        position: relative !important;
        width: auto !important;
        min-width: 92px !important;
        min-height: 44px !important;
        margin: 0 !important;
        padding: 8px 12px !important;
        flex: 0 0 auto !important;
        font-size: 16px !important;
        line-height: 20px !important;
    }


    /*
     * Restore Element's own UserMenu/profile.
     *
     * SpacePanel is reused only as the host for UserMenu.
     * All the normal desktop space controls are hidden here.
     */
    .mx_TjfMobileProfile {
        display: flex !important;
        align-items: center !important;
        justify-content: center !important;
        flex: 0 0 48px !important;
        width: 48px !important;
        height: 48px !important;
        overflow: visible !important;
        position: relative !important;
        z-index: 40 !important;
    }

    .mx_TjfMobileProfile .mx_SpacePanel {
        display: flex !important;
        align-items: center !important;
        justify-content: center !important;

        position: relative !important;

        width: 48px !important;
        min-width: 48px !important;
        max-width: 48px !important;

        height: 48px !important;
        min-height: 48px !important;

        padding: 0 !important;
        margin: 0 !important;

        border: 0 !important;
        background: transparent !important;
        overflow: visible !important;
    }

    /*
     * Inside this special mobile SpacePanel,
     * keep only the native Element UserMenu.
     */
    .mx_TjfMobileProfile .mx_SpacePanel > :not(.mx_UserMenu) {
        display: none !important;
    }

    .mx_TjfMobileProfile .mx_UserMenu {
        display: flex !important;
        align-items: center !important;
        justify-content: center !important;

        width: 44px !important;
        min-width: 44px !important;
        max-width: 44px !important;

        height: 44px !important;
        min-height: 44px !important;

        margin: 0 !important;
        padding: 0 !important;

        overflow: visible !important;
    }


    /*
     * STATUS ROOM:
     *
     * Hide only the word "Status".
     * Its public/globe icon remains visible.
     */
    .mx_TjfMobileRoom .mx_TjfStatusRoomName {
        display: none !important;
    }

    /*
     * Do not allow the remaining Status heading/globe
     * to consume unnecessary horizontal space.
     */
    .mx_TjfMobileRoom
    .mx_RoomHeader_heading:has(.mx_TjfStatusRoomName) {
        width: auto !important;
        min-width: 22px !important;
        flex: 0 0 auto !important;
    }


    /*
     * Room itself fills remaining height below TJF nav.
     */
    .mx_TjfMobileRoom > .mx_RoomView_wrapper {
        display: flex !important;
        flex: 1 1 auto !important;
        width: 100% !important;
        min-width: 0 !important;
        min-height: 0 !important;
        overflow: hidden !important;
    }
}

/* TJF MOBILE HEADER V2 END */

/* TJF VERIFICATION BRANDING V1 START */

.mx_TjfSelfVerification {
    display: flex;
    flex-direction: column;
    gap: 14px;
}

.mx_TjfSelfVerification_title {
    margin: 0;
    font-size: 18px;
    font-weight: 650;
}

.mx_TjfSelfVerification_note,
.mx_TjfVerificationWaiting {
    line-height: 1.5;
}

.mx_TjfSelfVerification_note {
    font-size: 13px;
    opacity: 0.78;
}

.mx_TjfAuthFooter {
    display: flex !important;
    flex-direction: column !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 4px !important;
    text-align: center !important;
    padding: 14px 16px 18px !important;
}

.mx_TjfAuthFooter_brand {
    font-size: 14px;
    line-height: 1.4;
}

.mx_TjfAuthFooter_brand strong {
    font-weight: 700;
}

.mx_TjfAuthFooter_copyright {
    font-size: 12px;
    line-height: 1.4;
    opacity: 0.78;
}

.mx_TjfAuthFooter_links {
    margin-top: 3px;
    font-size: 12px;
}

@media (max-width: 767px) {
    .mx_TjfSelfVerification_title {
        font-size: 17px;
    }

    .mx_TjfSelfVerification button {
        min-height: 44px;
        font-size: 15px;
    }

    .mx_TjfAuthFooter {
        padding: 12px 14px 16px !important;
    }
}

/* TJF VERIFICATION BRANDING V1 END */

/* TJF MOBILE ROOM TITLE V2 START */

@media (max-width: 767px) {

    /*
     * IMPORTANT:
     * RoomHeader_infoWrapper is the room TITLE button.
     * Do not size it like the icon buttons.
     */
    .mx_TjfMobileRoom
    .mx_RoomHeader
    .mx_RoomHeader_infoWrapper {
        display: flex !important;
        flex: 1 1 auto !important;

        width: auto !important;
        min-width: 0 !important;
        max-width: none !important;

        height: auto !important;
        min-height: 40px !important;

        padding-left: 0 !important;
        padding-right: 0 !important;

        overflow: hidden !important;
    }

    .mx_TjfMobileRoom
    .mx_RoomHeader
    .mx_RoomHeader_info {
        display: flex !important;
        flex: 1 1 auto !important;
        min-width: 0 !important;
        overflow: hidden !important;
    }

    .mx_TjfMobileRoom
    .mx_RoomHeader
    .mx_RoomHeader_heading {
        display: flex !important;
        align-items: center !important;
        gap: 4px !important;

        flex: 1 1 auto !important;
        min-width: 0 !important;

        white-space: nowrap !important;
        overflow: hidden !important;
    }

    /*
     * Normal chat names stay on ONE line.
     */
    .mx_TjfMobileRoom
    .mx_RoomHeader
    .mx_RoomHeader_truncated:not(.mx_TjfStatusRoomName) {
        display: block !important;

        min-width: 0 !important;
        max-width: 100% !important;

        white-space: nowrap !important;
        overflow: hidden !important;
        text-overflow: ellipsis !important;

        word-break: normal !important;
        overflow-wrap: normal !important;
    }

    /*
     * Keep Status behaviour:
     * hide the word Status while retaining the globe.
     */
    .mx_TjfMobileRoom
    .mx_TjfStatusRoomName {
        display: none !important;
    }
}


/*
 * Extra compact sizing for narrow phones.
 */
@media (max-width: 360px) {

    .mx_TjfMobileRoom .mx_RoomHeader {
        gap: 6px !important;
    }

    /*
     * Only actual ACTION buttons are compact.
     * Never shrink the room title button.
     */
    .mx_TjfMobileRoom
    .mx_RoomHeader
    button:not(.mx_RoomHeader_infoWrapper) {
        flex: 0 0 34px !important;

        width: 34px !important;
        min-width: 34px !important;
        max-width: 34px !important;

        height: 36px !important;
        min-height: 36px !important;

        padding: 5px !important;
    }

    .mx_TjfMobileRoom
    .mx_RoomHeader
    button:not(.mx_RoomHeader_infoWrapper) svg {
        width: 22px !important;
        height: 22px !important;
    }

    .mx_TjfMobileRoom
    .mx_RoomHeader_heading {
        font-size: 17px !important;
    }
}

/* TJF MOBILE ROOM TITLE V2 END */

/* TJF VERIFICATION GUIDANCE V1 START */

.mx_TjfVerificationGuidance {
    width: 100%;
}

.mx_TjfVerificationGuidance_intro {
    margin: 0 0 12px;
    line-height: 1.5;
}

.mx_TjfVerificationGuidance_box,
.mx_TjfEmojiInstructions {
    box-sizing: border-box;
    width: 100%;
    margin: 10px 0;
    padding: 14px 16px;
    border: 1px solid currentColor;
    border-radius: 10px;
}

.mx_TjfVerificationGuidance_box > strong,
.mx_TjfEmojiInstructions > strong {
    display: block;
    margin-bottom: 8px;
    font-size: 15px;
}

.mx_TjfVerificationGuidance ol,
.mx_TjfEmojiInstructions ol {
    margin: 8px 0 10px;
    padding-left: 22px;
}

.mx_TjfVerificationGuidance li,
.mx_TjfEmojiInstructions li {
    margin: 6px 0;
    line-height: 1.45;
}

.mx_TjfVerificationGuidance_warning,
.mx_TjfVerificationWarning {
    font-weight: 650;
    line-height: 1.45;
}

.mx_TjfVerificationGuidance_fallback {
    margin-bottom: 0;
    line-height: 1.45;
}

.mx_TjfSelfVerification {
    width: 100%;
}

@media (max-width: 767px) {
    .mx_TjfVerificationGuidance_box,
    .mx_TjfEmojiInstructions {
        padding: 12px 14px;
        border-radius: 9px;
    }

    .mx_TjfVerificationGuidance li,
    .mx_TjfEmojiInstructions li {
        font-size: 14px;
    }

    .mx_TjfSelfVerification button {
        width: 100%;
        min-height: 44px;
    }
}

/* TJF VERIFICATION GUIDANCE V1 END */

/* ==================================================
   TJF SESSION LOADING V1 START
   ================================================== */

.mx_TjfSessionLoading {
    box-sizing: border-box;
    width: 100%;
    min-height: 100%;
    display: flex !important;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 14px;
    text-align: center;
    padding: 32px 20px;
}

.mx_TjfSessionLoading_logo {
    width: 72px;
    height: 72px;
    object-fit: contain;
    margin-bottom: 6px;
}

.mx_TjfSessionLoading_brand {
    font-size: 26px;
    line-height: 1.2;
    font-weight: 700;
}

.mx_TjfSessionLoading_message {
    font-size: 15px;
    line-height: 1.5;
    opacity: 0.78;
    margin-bottom: 6px;
}

.mx_TjfSessionLoading .mx_Spinner {
    margin-top: 4px;
}

.mx_TjfSessionLoading_logout {
    margin-top: 10px;
    opacity: 0.72;
}

@media (max-width: 600px) {
    .mx_TjfSessionLoading_logo {
        width: 62px;
        height: 62px;
    }

    .mx_TjfSessionLoading_brand {
        font-size: 23px;
    }

    .mx_TjfSessionLoading_message {
        font-size: 14px;
    }
}

/* ==================================================
   TJF SESSION LOADING V1 END
   ================================================== */



/* TJF MOBILE ROOM DIALOGS V1: fit room creation and topic editing on phones. */
@media (max-width: 767px) {
    .mx_Dialog .mx_CreateRoomDialog.mx_Dialog_fixedWidth,
    .mx_Dialog .mx_RoomSettingsDialog {
        box-sizing: border-box;
        width: 100%;
        min-width: 0;
        max-width: 100%;
    }

    .mx_Dialog .mx_CreateRoomDialog p {
        margin-right: 0;
    }

    .mx_Dialog .mx_CreateRoomDialog .mx_Dialog_buttons {
        display: flex;
        flex-wrap: wrap;
        gap: 8px;
    }

    .mx_Dialog .mx_CreateRoomDialog .mx_Dialog_buttons > button {
        flex: 1 1 120px;
        min-height: 44px;
        margin: 0;
        white-space: normal;
    }

    .mx_Dialog .mx_RoomSettingsDialog {
        height: auto;
    }

    .mx_Dialog .mx_RoomSettingsDialog .mx_Dialog_title {
        margin: 0;
        padding-right: 32px;
        white-space: normal;
        overflow-wrap: anywhere;
    }

    /* Let the outer dialog scroll; remove the desktop fixed sidebar. */
    .mx_Dialog .mx_RoomSettingsDialog .mx_TabbedView.mx_TabbedView_tabsOnLeft {
        position: static;
        padding: 0;
        margin-top: 16px;
        min-width: 0;
    }

    .mx_Dialog .mx_RoomSettingsDialog .mx_TabbedView .mx_TabbedView_tabLabels {
        position: static;
        display: flex;
        flex-wrap: wrap;
        gap: 4px;
        width: 100%;
        max-width: 100%;
        margin: 0 0 16px;
    }

    .mx_Dialog .mx_RoomSettingsDialog .mx_TabbedView .mx_TabbedView_tabLabel {
        flex: 0 0 auto;
        min-width: 44px;
        min-height: 44px;
    }

    .mx_Dialog .mx_RoomSettingsDialog .mx_TabbedView .mx_TabbedView_tabPanel {
        margin-left: 0;
        min-width: 0;
        width: 100%;
    }

    .mx_Dialog .mx_RoomSettingsDialog .mx_TabbedView .mx_TabbedView_tabPanelContent {
        min-width: 0;
        overflow: visible;
    }

    .mx_Dialog .mx_RoomSettingsDialog .mx_TabbedView .mx_SettingsTab {
        min-width: 0;
        width: 100%;
        padding: 0 0 24px;
        overflow-wrap: anywhere;
    }

    .mx_Dialog .mx_RoomSettingsDialog .mx_RoomProfileSettings .mx_RoomProfileSettings_profile {
        flex-direction: column;
        gap: 16px;
    }

    .mx_Dialog .mx_RoomSettingsDialog .mx_RoomProfileSettings .mx_RoomProfileSettings_profile_controls {
        min-width: 0;
        width: 100%;
        margin-inline-end: 0;
    }

    .mx_Dialog .mx_RoomSettingsDialog .mx_RoomProfileSettings_buttons {
        flex-wrap: wrap;
    }

    .mx_Dialog .mx_RoomSettingsDialog .mx_RoomProfileSettings_buttons > .mx_AccessibleButton {
        flex: 1 1 100px;
        min-height: 44px;
        box-sizing: border-box;
    }

    .mx_Dialog .mx_CreateRoomDialog .mx_Field input,
    .mx_Dialog .mx_RoomSettingsDialog .mx_Field input,
    .mx_Dialog .mx_RoomSettingsDialog .mx_Field textarea {
        box-sizing: border-box;
        max-width: 100%;
        font-size: 16px;
    }

    .mx_Dialog .mx_RoomSettingsDialog .mx_SettingsTab_subsectionText,
    .mx_Dialog .mx_RoomSettingsDialog .mx_SettingsTab_section > p,
    .mx_Dialog .mx_RoomSettingsDialog .mx_SettingsTab_section .mx_SettingsFlag {
        margin-inline-end: 0;
    }
}


/* TJF COLOUR THEMES V1: native theme picker with palette previews. */
.mx_Dialog .mx_ThemeChoicePanel_ThemeSelectors {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
    width: 100%;
}
.mx_Dialog .mx_ThemeChoicePanel_ThemeSelectors .mx_ThemeChoicePanel_themeSelector {
    position: relative;
    min-width: 0;
    min-height: 76px;
    padding: 30px 12px 12px;
    border-radius: 12px;
    overflow: hidden;
}
.mx_Dialog .mx_ThemeChoicePanel_themeSelector:focus-within {
    outline: 2px solid var(--cpd-color-border-interactive-primary);
    outline-offset: 3px;
}
.mx_Dialog .mx_ThemeChoicePanel_ThemeSelectors .mx_ThemeChoicePanel_themeSelector:has(input[value="custom-Ocean"]) { background: #102838; border-color: #426578; }
.mx_Dialog .mx_ThemeChoicePanel_ThemeSelectors .mx_ThemeChoicePanel_themeSelector:has(input[value="custom-Ocean"]) .mx_ThemeChoicePanel_themeSelector_Label { color: #edf7ff; }
.mx_Dialog .mx_ThemeChoicePanel_ThemeSelectors .mx_ThemeChoicePanel_themeSelector:has(input[value="custom-Ocean"])::before { content: ""; position: absolute; top: 0; left: 0; right: 0; height: 16px; background: linear-gradient(90deg,#0b1f2d 0 25%,#173548 25% 55%,#70dfd5 55% 100%); }
.mx_Dialog .mx_ThemeChoicePanel_ThemeSelectors .mx_ThemeChoicePanel_themeSelector:has(input[value="custom-Ocean"]):has(input:checked) { border-color: #70dfd5; box-shadow: inset 0 0 0 1px #70dfd5; }
.mx_Dialog .mx_ThemeChoicePanel_ThemeSelectors .mx_ThemeChoicePanel_themeSelector:has(input[value="custom-Forest"]) { background: #142e27; border-color: #466b59; }
.mx_Dialog .mx_ThemeChoicePanel_ThemeSelectors .mx_ThemeChoicePanel_themeSelector:has(input[value="custom-Forest"]) .mx_ThemeChoicePanel_themeSelector_Label { color: #f0faf3; }
.mx_Dialog .mx_ThemeChoicePanel_ThemeSelectors .mx_ThemeChoicePanel_themeSelector:has(input[value="custom-Forest"])::before { content: ""; position: absolute; top: 0; left: 0; right: 0; height: 16px; background: linear-gradient(90deg,#10231e 0 25%,#1d3b32 25% 55%,#8ae0b1 55% 100%); }
.mx_Dialog .mx_ThemeChoicePanel_ThemeSelectors .mx_ThemeChoicePanel_themeSelector:has(input[value="custom-Forest"]):has(input:checked) { border-color: #8ae0b1; box-shadow: inset 0 0 0 1px #8ae0b1; }
.mx_Dialog .mx_ThemeChoicePanel_ThemeSelectors .mx_ThemeChoicePanel_themeSelector:has(input[value="custom-Amethyst"]) { background: #29213e; border-color: #72608c; }
.mx_Dialog .mx_ThemeChoicePanel_ThemeSelectors .mx_ThemeChoicePanel_themeSelector:has(input[value="custom-Amethyst"]) .mx_ThemeChoicePanel_themeSelector_Label { color: #f7f1ff; }
.mx_Dialog .mx_ThemeChoicePanel_ThemeSelectors .mx_ThemeChoicePanel_themeSelector:has(input[value="custom-Amethyst"])::before { content: ""; position: absolute; top: 0; left: 0; right: 0; height: 16px; background: linear-gradient(90deg,#20192f 0 25%,#352b4d 25% 55%,#d2b5ff 55% 100%); }
.mx_Dialog .mx_ThemeChoicePanel_ThemeSelectors .mx_ThemeChoicePanel_themeSelector:has(input[value="custom-Amethyst"]):has(input:checked) { border-color: #d2b5ff; box-shadow: inset 0 0 0 1px #d2b5ff; }
.mx_Dialog .mx_ThemeChoicePanel_ThemeSelectors .mx_ThemeChoicePanel_themeSelector:has(input[value="custom-Sand"]) { background: #faf5eb; border-color: #baaa91; }
.mx_Dialog .mx_ThemeChoicePanel_ThemeSelectors .mx_ThemeChoicePanel_themeSelector:has(input[value="custom-Sand"]) .mx_ThemeChoicePanel_themeSelector_Label { color: #332b21; }
.mx_Dialog .mx_ThemeChoicePanel_ThemeSelectors .mx_ThemeChoicePanel_themeSelector:has(input[value="custom-Sand"])::before { content: ""; position: absolute; top: 0; left: 0; right: 0; height: 16px; background: linear-gradient(90deg,#e4d4ba 0 25%,#f0e6d6 25% 55%,#805423 55% 100%); }
.mx_Dialog .mx_ThemeChoicePanel_ThemeSelectors .mx_ThemeChoicePanel_themeSelector:has(input[value="custom-Sand"]):has(input:checked) { border-color: #805423; box-shadow: inset 0 0 0 1px #805423; }
.mx_Dialog .mx_ThemeChoicePanel_ThemeSelectors .mx_ThemeChoicePanel_themeSelector:has(input[value="custom-Rose"]) { background: #fff3f5; border-color: #bc93a2; }
.mx_Dialog .mx_ThemeChoicePanel_ThemeSelectors .mx_ThemeChoicePanel_themeSelector:has(input[value="custom-Rose"]) .mx_ThemeChoicePanel_themeSelector_Label { color: #422933; }
.mx_Dialog .mx_ThemeChoicePanel_ThemeSelectors .mx_ThemeChoicePanel_themeSelector:has(input[value="custom-Rose"])::before { content: ""; position: absolute; top: 0; left: 0; right: 0; height: 16px; background: linear-gradient(90deg,#ebccd6 0 25%,#f5e2e8 25% 55%,#923f64 55% 100%); }
.mx_Dialog .mx_ThemeChoicePanel_ThemeSelectors .mx_ThemeChoicePanel_themeSelector:has(input[value="custom-Rose"]):has(input:checked) { border-color: #923f64; box-shadow: inset 0 0 0 1px #923f64; }
.mx_Dialog .mx_ThemeChoicePanel_ThemeSelectors .mx_ThemeChoicePanel_themeSelector:has(input[value="custom-Sky"]) { background: #f0f7ff; border-color: #91b1c9; }
.mx_Dialog .mx_ThemeChoicePanel_ThemeSelectors .mx_ThemeChoicePanel_themeSelector:has(input[value="custom-Sky"]) .mx_ThemeChoicePanel_themeSelector_Label { color: #203747; }
.mx_Dialog .mx_ThemeChoicePanel_ThemeSelectors .mx_ThemeChoicePanel_themeSelector:has(input[value="custom-Sky"])::before { content: ""; position: absolute; top: 0; left: 0; right: 0; height: 16px; background: linear-gradient(90deg,#c8dff1 0 25%,#dfedf9 25% 55%,#17688b 55% 100%); }
.mx_Dialog .mx_ThemeChoicePanel_ThemeSelectors .mx_ThemeChoicePanel_themeSelector:has(input[value="custom-Sky"]):has(input:checked) { border-color: #17688b; box-shadow: inset 0 0 0 1px #17688b; }

@media (max-width: 767px) {
    .mx_Dialog .mx_UserSettingsDialog {
        width: 100%; min-width: 0; max-width: 100%; height: auto;
    }
    .mx_Dialog .mx_UserSettingsDialog .mx_TabbedView.mx_TabbedView_tabsOnLeft {
        position: static; padding: 0; margin-top: 16px; min-width: 0;
    }
    .mx_Dialog .mx_UserSettingsDialog .mx_TabbedView .mx_TabbedView_tabLabels {
        position: static; display: flex; flex-wrap: wrap; gap: 4px;
        width: 100%; max-width: 100%; margin: 0 0 16px;
    }
    .mx_Dialog .mx_UserSettingsDialog .mx_TabbedView .mx_TabbedView_tabLabel {
        flex: 0 0 auto; min-width: 44px; min-height: 44px;
    }
    .mx_Dialog .mx_UserSettingsDialog .mx_TabbedView .mx_TabbedView_tabPanel {
        margin-left: 0; min-width: 0; width: 100%;
    }
    .mx_Dialog .mx_UserSettingsDialog .mx_TabbedView .mx_TabbedView_tabPanelContent {
        min-width: 0; overflow: visible;
    }
    .mx_Dialog .mx_UserSettingsDialog .mx_TabbedView .mx_SettingsTab {
        min-width: 0; width: 100%; padding: 0 0 24px; overflow-wrap: anywhere;
    }
    .mx_Dialog .mx_UserSettingsDialog .mx_ThemeChoicePanel_ThemeSelectors {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 10px !important;
    }
}

/* NamChat: keep device confirmation usable on phones. */
@media (max-width: 767px) {
  .mx_AuthPage .mx_CompleteSecurityBody,
  .mx_AuthPage .mx_CompleteSecurity_body,
  .mx_AuthPage .mx_SetupEncryptionBody,
  .mx_AuthPage .mx_EncryptionCard_header,
  .mx_AuthPage .mx_EncryptionCard_emphasisedContent,
  .mx_AuthPage .mx_TjfVerificationGuidance,
  .mx_AuthPage .mx_TjfVerificationGuidance_box,
  .mx_AuthPage .mx_EncryptionCard_buttons {
    box-sizing: border-box;
    width: 100% !important;
    min-width: 0 !important;
    max-width: 100%;
    overflow-wrap: anywhere;
  }
  .mx_AuthPage .mx_EncryptionCard_buttons .mx_AccessibleButton {
    box-sizing: border-box;
    max-width: 100%;
    min-width: 0;
    min-height: 44px;
    white-space: normal;
    height: auto;
  }
}

@media(max-width: 480px) {
.mx_Dialog .mx_UserSettingsDialog .mx_ThemeChoicePanel_ThemeSelectors { grid-template-columns: minmax(0,1fr); }
.mx_Dialog .mx_ThemeChoicePanel_themeSelector_Label { word-break: normal; overflow-wrap: normal; }
}
