/* http://meyerweb.com/eric/tools/css/reset/
   v2.0 | 20110126
   License: none (public domain)
*/

html,
body,
div,
span,
applet,
object,
iframe,
h1,
h2,
h3,
h4,
h5,
h6,
p,
blockquote,
pre,
a,
abbr,
acronym,
address,
big,
cite,
code,
del,
dfn,
em,
img,
ins,
kbd,
q,
s,
samp,
small,
strike,
strong,
sub,
sup,
tt,
var,
b,
u,
i,
center,
dl,
dt,
dd,
ol,
ul,
li,
fieldset,
form,
label,
legend,
table,
caption,
tbody,
tfoot,
thead,
tr,
th,
td,
article,
aside,
canvas,
details,
embed,
figure,
figcaption,
footer,
header,
hgroup,
menu,
nav,
output,
ruby,
section,
summary,
time,
mark,
audio,
video {
    margin: 0;
    padding: 0;
    border: 0;
    font-size: 100%;
    font: inherit;
    vertical-align: baseline;
}

/* HTML5 display-role reset for older browsers */
article,
aside,
details,
figcaption,
figure,
footer,
header,
hgroup,
menu,
nav,
section {
    display: block;
}

:root {
    --success-color: #4caf50;
    --failure-color: #f44336;
    --warning-color: #FFDE00;
    --transition-time: 300ms;

    --webview-area-inset-top: var(--safe-area-inset-top, env(safe-area-inset-top, 0px));
    --webview-area-inset-right: var(--safe-area-inset-right, env(safe-area-inset-right, 0px));
    --webview-area-inset-bottom: var(--safe-area-inset-bottom, env(safe-area-inset-bottom, 0px));
    --webview-area-inset-left: var(--safe-area-inset-left, env(safe-area-inset-left, 0px));
}

html,
body {
    width: 100%;
    height: 100%;
    margin: 0;
    padding: 0;
    overflow: hidden;
    overscroll-behavior: none;
    position: fixed;
    line-height: 1;
    font-family: 'Open Sans', Verdana;
    font-size: 16px;
    background: var(--primary-bg-color);
    color: var(--primary-font-color);
    -webkit-text-size-adjust: 100%;
    text-size-adjust: 100%;
}

ol,
ul {
    list-style: none;
}

blockquote,
q {
    quotes: none;
}

blockquote:before,
blockquote:after,
q:before,
q:after {
    content: '';
    content: none;
}

table {
    border-collapse: collapse;
    border-spacing: 0;
}

* {
    scrollbar-width: thin;
    scrollbar-color: var(--primary-font-color) var(--primary-bg-color);
    overscroll-behavior: none !important;
    transition-duration: var(--transition-time);
    user-select: none;
    -webkit-user-select: none;
    -webkit-tap-highlight-color: transparent;
}

*::-webkit-scrollbar {
    width: 6px;
}

*::-webkit-scrollbar-track {
    background: var(--primary-bg-color);
    border-radius: 1px;
}

*::-webkit-scrollbar-thumb {
    background: var(--primary-heading-color);
    border-radius: 1px;
}

*::-webkit-scrollbar-button {
    display: none;
}

a {
    color: var(--primary-font-color);
    text-decoration: none;
    font-weight: bold;
    outline: none;
    cursor: pointer;
}

.relative-container {
    position: relative;
    width: 100%;
    height: 100%;
}

.pulse {
    animation: pulse 2.5s ease-in-out infinite;
    transform-origin: center;
    display: inline-block;
}

@keyframes pulse {
    0% {
        opacity: 1;
        transform: scale(1);
    }

    50% {
        opacity: 0.4;
        transform: scale(0.95);
    }

    100% {
        opacity: 1;
        transform: scale(1);
    }
}

#topbar {
    position: absolute;
    top: 0;
    left: 0;
    width: calc(100% - 20px);
    height: 80px;
    border-bottom: 1px solid var(--tertiary-bg-color);
    display: none;
    justify-content: space-between;
    flex-direction: row;
    flex-wrap: nowrap;
    z-index: 100;
    align-items: center;
    padding: 12px;
    padding-top: var(--webview-area-inset-top);
    padding-bottom: 0;
    background-color: var(--primary-bg-color);
}

#topbar .icon {
    font-size: 42px;
}

#topbar #logo {
    height: 48px;
    margin-right: 16px;
    order: 1;
}

#telemedic-status {
    flex-basis: 100%;
    order: -1;
    text-align: center;
    padding-bottom: 8px;
    font-size: 15px;
    pointer-events: none;
    line-height: 1.4;
    color: var(--warning-color);
    display: none;
}

#topbar #app-messages-icon {
    margin-right: 12px;
    order: 3;
    display: none;
}

#topbar #app-messages-icon .icon {
        font-size: 28px;
        color: var(--primary-font-color);
    }

#topbar #settings-btn {
    cursor: pointer;
    order: 5;
}

#topbar #settings-btn i {
        font-size: 32px;
    }

#topbar #call-sign-display {
    margin-left: auto;
    margin-right: 8px;
    text-align: right;
    font-size: 18px;
    opacity: 0.6;
    order: 4;
}

#topbar #call-sign-display span {
        display: block;
        font-size: 12px;
    }

#topbar #call-sign-display span i {
            font-size: 16px;
            color: var(--primary-font-color);
            margin-right: 4px;
        }

#alarm-btns {
    position: fixed;
    bottom: 0;
    left: 0;
    right: 0;
    display: flex;
    flex-direction: row;
    flex-wrap: wrap;
    justify-content: space-between;
    align-items: center;
    z-index: 1000;
    gap: 12px;
    padding: 16px;
    padding-bottom: calc(16px + var(--webview-area-inset-bottom));
    background: var(--primary-bg-color);
    border-top: 1px solid var(--tertiary-bg-color);
}

#alarm-btns div:not(#telemedic-status) {
        width: 60px;
        height: 60px;
        border-radius: 12px;
        background: var(--secondary-button-bg-color);
        text-align: center;
        line-height: 60px;
        box-shadow: 0px 2px 10px rgba(0, 0, 0, 0.15);
        display: none;
    }

#alarm-btns div:not(#telemedic-status) .icon {
            color: var(--primary-button-font-color);
            font-size: 28px;
        }

#new-call-btn,
#new-nf-call-btn,
#new-na-call-btn,
#new-prim-call-btn {
    background: var(--primary-button-bg-color) !important;
    color: var(--primary-button-font-color) !important;
    flex-grow: 1;
}

#new-call-btn .icon, #new-nf-call-btn .icon, #new-na-call-btn .icon, #new-prim-call-btn .icon {
        margin-right: 4px;
    }

#new-nf-call-btn {
    background: var(--failure-color) !important;
}

#new-na-call-btn {
    background: #7b2cbf !important;
}

#alarm-btns.nidalite-protocol-actions #new-call-btn,
#alarm-btns.nidalite-protocol-actions #new-nf-call-btn,
#alarm-btns.nidalite-protocol-actions #new-na-call-btn,
#alarm-btns.nidalite-protocol-actions #new-prim-call-btn {
    width: auto;
    min-width: 0;
    flex: 1 1 0;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 4px;
    font-size: 14px;
    line-height: 1.1;
}

#alarm-btns.nidalite-protocol-actions #new-call-btn .icon, #alarm-btns.nidalite-protocol-actions #new-nf-call-btn .icon, #alarm-btns.nidalite-protocol-actions #new-na-call-btn .icon, #alarm-btns.nidalite-protocol-actions #new-prim-call-btn .icon {
        margin-right: 0;
        font-size: 20px;
        line-height: 1;
    }

#alarm-btns.nida-remote-enabled {
    flex-direction: row;
    flex-wrap: nowrap;
    justify-content: flex-start;
}

#alarm-btns.nida-remote-enabled #new-call-btn {
    order: 2;
    flex: 0 0 60px;
    width: 60px;
    background: var(--secondary-button-bg-color) !important;
}

.new-call-dialog-patient-fields,
.new-call-dialog-optional-fields {
    display: flex;
    flex-direction: row;
    flex-wrap: nowrap;
    justify-content: space-between;
    align-items: center;
    gap: 12px;
}

.new-call-dialog-patient-fields input {
    width: 80px !important;
    flex-grow: 1;
}

.new-call-dialog-optional-fields birthdate-input,
.new-call-dialog-optional-fields select {
    width: 50% !important;
    flex-grow: 1;
    height: 46px;
    /* Standardized to 46px */
}

#new-call-gender {
    padding-top: 0;
    padding-bottom: 0;
}

birthdate-input {
    width: calc(100% - 8px);
    height: 46px;
    display: inline-block;
}

.birthdate-input-container {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 4px;
    background: var(--secondary-bg-color);
    border: 1px solid var(--tertiary-bg-color);
    border-radius: 12px;
    height: 100%;
    padding: 0 12px;
    box-sizing: border-box;
    transition: border-color 0.3s ease;
}

.birthdate-input-container:focus-within {
    border-color: var(--primary-button-bg-color);
}

.birthdate-input-container input {
    border: none !important;
    background: transparent !important;
    padding: 0 !important;
    text-align: center !important;
    font-size: 16px !important;
    color: var(--primary-font-color) !important;
    width: 28px !important;
    height: 32px !important;
    appearance: none;
    -moz-appearance: textfield;
}

.birthdate-input-container:focus-within {
    border-color: var(--primary-font-color);
}

.birthdate-input-container input#year {
    width: 45px !important;
}

.birthdate-input-container .separator {
    color: var(--primary-font-color);
    opacity: 0.4;
    font-weight: bold;
    font-size: 18px;
    width: 12px;
    text-align: center;
}

.birthdate-input-container input::-webkit-outer-spin-button,
.birthdate-input-container input::-webkit-inner-spin-button {
    -webkit-appearance: none;
    margin: 0;
}

birthdate-input.disabled .birthdate-input-container {
    opacity: 0.3;
    pointer-events: none;
}

#alarm-btns #nida-remote-btn {
    background: var(--failure-color) !important;
    flex: 1 1 auto;
    min-width: 0;
}

#alarm-btns #nida-remote-btn .icon {
        margin-right: 4px;
    }

#alarm-btns.nida-remote-enabled #nida-remote-btn {
    order: 1;
    width: auto;
}

#alarm-btns.nida-remote-native-enabled #health-insurance-card-btn {
    order: 0;
    flex: 0 0 60px;
    width: 60px;
}


#overview {
    position: absolute;
    top: calc(82px + var(--webview-area-inset-top));
    left: 0;
    width: 100%;
    height: calc(100% - 82px - var(--webview-area-inset-top));
    border-bottom: 1px solid var(--tertiary-bg-color);
    overflow-y: auto;
    overscroll-behavior: contain;
    display: none;
    background-color: var(--secondary-bg-color);
    padding-bottom: 180px;
    box-sizing: border-box;
}

#app {
    position: relative;
    top: var(--webview-area-inset-top);
    left: 0;
    width: 100%;
    height: calc(100% - var(--webview-area-inset-top) - var(--webview-area-inset-bottom));
    display: none;
}

.icon {
    font-size: 28px;
    color: var(--primary-font-color);
    vertical-align: middle;
    text-align: center;
}

.size32 {
    width: 32px;
}

.size48 {
    width: 48px;
}

.no-data {
    margin: 10px;
    margin-top: 40px;
    text-align: center;
}

.no-data .icon {
    font-size: 42px;
}

#delegations-view {
    position: absolute;
    top: 54px;
    left: 0;
    width: calc(100% - 20px);
    padding: 10px;
    height: calc(100% - 147px);
    overflow-y: auto;
    overscroll-behavior: contain;
    background: var(--secondary-bg-color);
}

#delegations-view .delegation-item {
    background: var(--primary-bg-color);
    margin: 16px 8px 16px 8px;
    border-radius: 12px;
    border: 1px solid var(--tertiary-bg-color);
    color: var(--primary-font-color);
    box-shadow: 0px 2px 10px rgba(0, 0, 0, 0.15);
}

#delegations-view .delegation-undo-btn {
    font-size: 12px;
    background: var(--tertiary-bg-color);
    padding: 8px 12px 8px 12px;
    width: auto;
    height: auto;
    border-radius: 24px;
    border: 1px solid var(--tertiary-bg-color);
    color: var(--primary-font-color);
    white-space: nowrap;
    display: inline-block;
    margin-left: calc(100% - 12px);
    transform: translateX(-100%);
    margin-bottom: 4px;
}

#delegations-view .delegation-undo-btn i {
        margin-right: 4px;
    }

#delegations-view .delegation-item .delegation-category {
    position: absolute;
    top: 16px;
    left: 16px;
    font-size: 18px;
    font-weight: bold;
}

#delegations-view .delegation-item .delegation-category .icon {
    width: 26px;
    margin-right: 4px;
}

#delegations-view .delegation-item .delegation-status {
    position: absolute;
    top: 14px;
    right: 14px;
    font-size: 14px;
    background: var(--tertiary-bg-color);
    padding: 4px 8px 4px 8px;
    border-radius: 24px;
    font-weight: bold;
}

#delegations-view .delegation-item .delegation-status.delegation-status-accepted {
    background: var(--success-color);
    color: var(--primary-bg-color);
}

#delegations-view .delegation-item .delegation-status.delegation-status-rejected {
    background: var(--failure-color);
    color: var(--primary-bg-color);
}

#delegations-view .delegation-item .delegation-content {
    padding: 52px 0 10px 0;
}

#delegations-view .delegation-item .delegation-content .delegation-content-item {
    display: inline-block;
    margin: 12px 20px 12px 20px;
}

#delegations-view .delegation-item .delegation-content .delegation-content-item .delegation-content-item-header {
    font-size: 12px;
    margin-bottom: 4px;
    opacity: 0.6;
}

#delegations-view .delegation-item .delegation-content .delegation-content-item.delegation-content-item-additional {
    display: block;
    background: var(--secondary-bg-color);
    margin: 10px 12px -16px 12px;
    padding: 12px 16px 12px 16px;
    border-radius: 12px;
}

#delegations-view .delegation-item .delegation-content .delegation-content-item .delegation-content-item-content {
    font-size: 16px;
}

#delegations-view .delegation-item .delegation-content .delegation-btn {
    margin: 10px 16px 8px 16px;
    background: transparent;
    padding: 8px 16px 8px 16px;
    font-size: 14px;
    font-weight: bold;
    border-radius: 12px;
    border: 0;
}

#delegations-view .delegation-item .delegation-content .delegation-btn .icon {
    margin-right: 12px;
    width: 20px;
}

#delegations-view .delegation-item .delegation-content .delegation-reject-btn {
    color: var(--primary-bg-color);
    background: var(--failure-color);
    float: left;
    width: auto;
}

#delegations-view .delegation-item .delegation-content .delegation-reject-btn .icon {
    color: var(--primary-bg-color);
}

#delegations-view .delegation-item .delegation-content .delegation-accept-btn {
    color: var(--primary-bg-color);
    background: var(--success-color);
    float: right;
    width: auto;
}

#delegations-view .delegation-item .delegation-content .delegation-accept-btn .icon {
    color: var(--primary-bg-color);
}

/* Hold to confirm effect */
.hold-to-confirm {
    position: relative;
    overflow: hidden;
    transition: transform 0.3s cubic-bezier(0.34, 1.56, 0.64, 1), box-shadow 0.3s ease !important;
    isolation: isolate;
    user-select: none;
    -webkit-user-select: none;
    -webkit-touch-callout: none;
    touch-action: none;
}

.hold-to-confirm::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: rgba(0, 0, 0, 0.15);
    transform: scaleX(0);
    transform-origin: left;
    transition: transform var(--hold-duration, 1s) linear;
    z-index: -1;
    pointer-events: none;
}

.hold-to-confirm.holding {
    transform: scale(1.1) !important;
    box-shadow: 0 8px 20px rgba(0, 0, 0, 0.3) !important;
}

.hold-to-confirm.holding::before {
    transform: scaleX(1);
}

.hold-to-confirm.confirmed {
    transform: scale(0.95) !important;
    transition: transform 0.1s ease !important;
}


.float-cancel {
    clear: both;
}


.heading {
    font-weight: bold;
    font-size: 18px;
}


#videochat-view {
    position: absolute;
    top: 0;
    right: 0;
    width: 50%;
    height: 200px;
    border-bottom: 1px solid var(--primary-heading-color);
    border-left: 1px solid var(--primary-heading-color);
}

#videochat-view #videochat-heading {
    position: absolute;
    top: 10px;
    left: 10px;
}


#videochat-view #videochat-participants-count {
    text-align: center;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-direction: column;
    gap: 5px;
    font-weight: bold;
    font-size: 18px;
}


#videochat-view #videochat-participants-count .fa-fw {
        color: var(--primary-font-color);
    }


#videochat-view #expand-videoframe-btn {
    position: absolute;
    bottom: 80px;
    left: 10px;
}

#videochat-view #videoframe {
    width: 240px;
    height: 180px;
    position: absolute;
    top: 10px;
    right: 10px;
}

#videochat-view #videoframe i {
        position: absolute;
        top: 50%;
        left: 50%;
        transform: translate(-50%, -50%);
        font-size: 36px;
        color: var(--primary-font-color);
    }

#videochat-view #videoframe.jitsi-loaded i {
            display: none;
        }

#chat-view {
    position: absolute;
    top: 100px;
    left: 0;
    width: 50%;
    height: calc(100% - 70px);
    overflow: hidden;
    overscroll-behavior: contain;
    display: flex;
    flex-direction: column;
}

#chat-view #chat-content-view {
    flex: 1;
    overflow-y: auto;
    display: flex;
    flex-direction: column;
}

chat-message {
    display: flex;
    flex-direction: column;
    width: 100%;
}

#chat-view .chat-message {
    max-width: calc(100% - 80px);
    margin: 8px;
    overflow: visible;
    border-radius: 12px;
    box-shadow: 0px 4px 12px rgba(0, 0, 0, 0.15);
    position: relative;
    padding: 0 8px;
    display: block;
}

#chat-view .chat-message .relative-container {
    height: auto;
}

#chat-view .chat-message audio {
    max-width: 100%;
    border-radius: 12px;
}

#chat-view .chat-message img {
    max-width: 100%;
    height: 120px;
    border-radius: 12px;
}

#chat-view .chat-message video {
    max-width: 100%;
    height: 300px;
    border-radius: 12px;
}

#chat-view .chat-message-telemedic {
    background: var(--tertiary-bg-color);
    border: 1px solid var(--primary-bg-color);
    align-self: flex-start;
}

#chat-view .chat-message-rescueteam {
    background: var(--primary-bg-color);
    border: 1px solid var(--tertiary-bg-color);
    align-self: flex-end;
}

#chat-view .chat-message .chat-message-content {
    padding: 16px 16px 28px 16px;
    line-height: 22px;
}

#chat-view .chat-message .chat-message-content a {
    color: inherit;
    overflow-wrap: anywhere;
    text-decoration: underline;
}

#chat-view .chat-message .chat-message-sent {
    position: absolute;
    bottom: 12px;
    right: 12px;
    font-size: 12px;
}

#pictures-view {
    display: none;
}

#protocol-view {
    display: none;
}


#loading-block {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: rgba(0, 0, 0, 0.4);
    backdrop-filter: blur(12px);
    -webkit-backdrop-filter: blur(12px);
    z-index: 999999998;
}

#loading-spinner {
    position: fixed;
    top: 50%;
    left: 50%;
    font-size: 42px;
    transform: translate(-50%, -50%);
    z-index: 999999999;
}

.external-dialog-iframe {
    border: none;
    width: 100% !important;
    height: 100% !important;
}

.fullscreen-content-viewer {
    position: fixed;
    inset: 0;
    z-index: 100002;
    display: flex;
    flex-direction: column;
    width: 100%;
    height: 100%;
    overflow: hidden;
    background: var(--primary-bg-color);
}

.fullscreen-content-viewer-toolbar {
    box-sizing: border-box;
    display: flex;
    flex: 0 0 auto;
    min-height: calc(54px + var(--webview-area-inset-top));
    padding: var(--webview-area-inset-top) 8px 0;
    align-items: center;
    justify-content: flex-start;
    border-bottom: 1px solid #222;
    background: #000;
    box-shadow: 0 2px 10px rgba(0, 0, 0, 0.18);
}

.fullscreen-content-viewer-close {
    width: auto;
    min-width: 88px;
    height: 40px;
    margin: 0;
    padding: 0 10px;
    border: 0;
    border-radius: 9px;
    background: transparent;
    box-shadow: none;
    outline: none;
    color: #f5f5f5;
    font: inherit;
    font-size: 15px;
    font-weight: 400;
    text-align: left;
}

.fullscreen-content-viewer-close:active {
    background: #222;
}

.fullscreen-content-viewer .external-dialog-iframe {
    min-height: 0;
    flex: 1 1 auto;
}

.nidalite-map-viewer {
    position: fixed;
    inset: 0;
    z-index: 100002;
    display: flex;
    flex-direction: column;
    width: 100%;
    height: 100%;
    overflow: hidden;
    color: var(--primary-font-color);
    background: var(--primary-bg-color);
}

.nidalite-map-toolbar {
    box-sizing: border-box;
    display: grid;
    flex: 0 0 auto;
    grid-template-columns: minmax(88px, 1fr) auto minmax(88px, 1fr);
    min-height: calc(54px + var(--webview-area-inset-top));
    padding: var(--webview-area-inset-top) 8px 0;
    align-items: center;
    border-bottom: 1px solid #222;
    background: #000;
    box-shadow: 0 2px 10px rgba(0, 0, 0, 0.18);
}

.nidalite-map-close {
    width: fit-content;
    min-width: 88px;
    height: 40px;
    margin: 0;
    padding: 0 10px;
    border: 0;
    border-radius: 9px;
    background: transparent;
    box-shadow: none;
    outline: none;
    color: #f5f5f5;
    font: inherit;
    font-size: 15px;
    font-weight: 400;
    text-align: left;
}

.nidalite-map-close:active {
    background: #222;
}

.nidalite-map-title {
    grid-column: 2;
    color: #f5f5f5;
    font-size: 16px;
}

.nidalite-map-frame {
    width: 100%;
    min-height: 0;
    flex: 1 1 auto;
    border: 0;
    background: var(--secondary-bg-color);
}

.nidalite-map-summary {
    box-sizing: border-box;
    flex: 0 0 252px;
    height: 252px;
    padding:
        12px
        calc(16px + var(--webview-area-inset-right))
        calc(16px + var(--webview-area-inset-bottom))
        calc(16px + var(--webview-area-inset-left));
    border-top: 1px solid var(--tertiary-bg-color);
    background: var(--primary-bg-color);
}

.nidalite-map-total {
    box-sizing: border-box;
    display: grid;
    grid-template-columns: 42px minmax(0, 1fr) auto;
    min-height: 68px;
    padding: 11px 14px 11px 11px;
    align-items: center;
    gap: 11px;
    border: 1px solid rgba(81, 143, 255, 0.34);
    border-radius: 16px;
    background:
        linear-gradient(135deg, rgba(48, 114, 232, 0.23), rgba(48, 174, 196, 0.1)),
        var(--secondary-bg-color);
    box-shadow: 0 7px 22px rgba(0, 0, 0, 0.14);
}

.nidalite-map-total-icon {
    display: grid;
    width: 42px;
    height: 42px;
    place-items: center;
    border-radius: 13px;
    color: #fff;
    background: linear-gradient(145deg, #397be9, #2254b8);
    box-shadow: 0 5px 12px rgba(25, 74, 164, 0.3);
    font-size: 21px;
    font-weight: 700;
}

.nidalite-map-total h2 {
    margin: 0;
    font-size: 16px;
}

.nidalite-map-total-status {
    margin: 4px 0 0;
    color: var(--secondary-font-color);
    font-size: 13px;
}

.nidalite-map-total-metrics {
    text-align: right;
    white-space: nowrap;
}

.nidalite-map-total-metrics strong,
.nidalite-map-total-metrics span {
    display: block;
}

.nidalite-map-total-metrics strong {
    font-size: 20px;
    line-height: 1.1;
}

.nidalite-map-total-metrics span {
    margin-top: 4px;
    color: var(--secondary-font-color);
    font-size: 13px;
}

.nidalite-map-route-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 10px;
    margin-top: 10px;
}

.nidalite-map-route-card {
    box-sizing: border-box;
    min-width: 0;
    height: 142px;
    padding: 12px 14px;
    border: 1px solid var(--tertiary-bg-color);
    border-radius: 14px;
    background: var(--secondary-bg-color);
    box-shadow: 0 4px 14px rgba(0, 0, 0, 0.08);
}

.nidalite-map-route-card h3 {
    min-height: 36px;
    margin: 0 0 7px;
    font-size: 14px;
    line-height: 1.3;
}

.nidalite-map-route-status {
    margin: 16px 0 0;
    color: var(--secondary-font-color);
    font-size: 14px;
}

.nidalite-map-route-metrics > div {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 8px;
    padding: 6px 0;
    border-top: 1px solid var(--tertiary-bg-color);
}

.nidalite-map-route-metrics span {
    min-width: 0;
    color: var(--secondary-font-color);
    font-size: 12px;
}

.nidalite-map-route-metrics strong {
    flex: 0 0 auto;
    font-size: 14px;
    white-space: nowrap;
}

@media (max-height: 620px) {
    .nidalite-map-summary {
        flex-basis: 224px;
        height: 224px;
        padding-top: 8px;
    }

    .nidalite-map-total {
        min-height: 58px;
        padding-top: 7px;
        padding-bottom: 7px;
    }

    .nidalite-map-route-card {
        height: 132px;
        padding: 9px 12px;
    }

    .nidalite-map-route-card h3 {
        min-height: 34px;
        margin-bottom: 5px;
    }
}

@keyframes spin {
    100% {
        -webkit-transform: rotate(360deg);
        transform: rotate(360deg);
    }
}

.bubble {
    display: inline-block;
    width: 12px;
    height: 12px;
    border-radius: 50%;
    margin-right: 4px;
    margin-left: 4px;
    vertical-align: middle;
    position: relative;
    isolation: isolate;
}

.bubble.success {
    background: var(--primary-button-bg-color);
}

.bubble.success::after {
    content: '';
    position: absolute;
    top: 50%;
    left: 50%;
    width: 20px;
    height: 20px;
    background: var(--primary-button-bg-color);
    border-radius: 50%;
    z-index: -1;
    transform: translate(-50%, -50%);
    animation: status-icon-pulse 2s infinite ease-out;
    pointer-events: none;
    opacity: 0;
    filter: blur(4px);
}

.bubble.error {
    background: var(--primary-font-color);
    opacity: 0.6;
}

#update-found-content-block {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: rgba(0, 0, 0, 0.4);
    backdrop-filter: blur(8px);
    -webkit-backdrop-filter: blur(8px);
    z-index: 1000009;
    display: none;
    opacity: 0;
    transition: opacity 0.3s ease;
}

#update-found-content-block.active {
    display: block;
    opacity: 1;
}

#update-found-dialog {
    position: fixed;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    width: 90%;
    max-width: 450px;
    background: var(--primary-bg-color);
    border-radius: 24px;
    box-shadow: 0 20px 40px rgba(0, 0, 0, 0.4);
    text-align: center;
    padding: 30px 24px;
    box-sizing: border-box;
    z-index: 1000010;
    display: none;
}

#update-found-dialog.active {
    display: block;
    animation: dialogPopIn 0.4s cubic-bezier(0.175, 0.885, 0.32, 1.275);
}

#update-found-dialog button {
    width: 100%;
    padding: 16px;
    height: auto;
    border-radius: 12px;
    border: 0;
    background: var(--primary-button-bg-color);
    color: #FFFFFF;
    outline: 0;
    font-size: 16px;
    font-weight: bold;
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);
    margin-top: 20px;
}


#menu {
    position: absolute;
    top: var(--webview-area-inset-top);
    left: -100%;
    height: calc(100% - var(--webview-area-inset-top));
    width: calc(100% - 100px);
    background: var(--primary-bg-color);
    z-index: 100001;
    text-align: left;
    padding: 20px;
    padding-top: calc(var(--webview-area-inset-top) + 20px);
    padding-bottom: calc(var(--webview-area-inset-bottom) + 20px);
    box-sizing: border-box;
    display: flex;
    flex-direction: column;
    overflow: hidden;
    box-shadow: rgba(0, 0, 0, 0.15) 2.4px 2.4px 3.2px;
}

#menu .relative-container {
    display: flex;
    flex-direction: column;
    flex: 1 1 auto;
    min-height: 0;
    box-sizing: border-box;
}

html.platform-android #menu {
    height: calc(100% - var(--webview-area-inset-top) - var(--webview-area-inset-bottom));
    padding-top: 20px;
    padding-bottom: 20px;
}

html.platform-ios #menu {
    padding-top: 20px;
}

#menu .menu-scroll-area {
    flex: 1 1 auto;
    min-height: 0;
    overflow-y: auto;
    -webkit-overflow-scrolling: touch;
    padding-bottom: 20px;
}

#menu #menu-info {
    display: flex;
    justify-content: space-between;
    align-items: flex-end;
    flex: 0 0 auto;
    font-size: 13px;
    margin-top: 20px;
    padding-top: 16px;
    border-top: 1px solid color-mix(in srgb, var(--text-color), transparent 82%);
    background: var(--primary-bg-color);
}

#menu #telemedic-workstation-usage {
    white-space: nowrap;
}

#menu h3 {
    text-align: left;
    font-size: 24px;
    margin-bottom: 28px;
}

#menu a {
    display: inline-block;
    font-size: 16px;
    margin-bottom: 14px;
    font-weight: normal;
    vertical-align: middle;
}

#menu i {
    font-size: 28px;
    vertical-align: middle;
    margin-right: 12px;
    color: var(--secondary-button-bg-color);
}

#menu-close-btn {
    display: none;
    position: absolute;
    top: calc(22px + var(--webview-area-inset-top));
    right: 8px;
    z-index: 1000002;
    font-size: 32px;
    pointer-events: none;
    color: var(--primary-font-color);
}


#diagnosis-content-block {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: rgba(0, 0, 0, 0.4);
    backdrop-filter: blur(8px);
    -webkit-backdrop-filter: blur(8px);
    z-index: 100002;
    animation: contentBlockFadeIn 0.3s ease forwards;
}

#diagnosis-content-block i {
    position: absolute;
    top: calc(20px + var(--webview-area-inset-top));
    right: 20px;
    font-size: 28px;
    color: #FFFFFF;
    text-shadow: 0 0 10px rgba(0, 0, 0, 0.5);
    z-index: 100003;
}

#diagnosis-dialog {
    position: absolute;
    top: calc(60px + var(--webview-area-inset-top));
    left: 50%;
    height: calc(100% - 140px - var(--webview-area-inset-top) - var(--webview-area-inset-bottom));
    width: calc(100% - 80px);
    max-width: 500px;
    transform: translate(-50%);
    background: var(--primary-bg-color);
    padding: 20px;
    overflow-y: auto;
    overscroll-behavior: contain;
    overflow-x: hidden;
    z-index: 100003;
    border: 1px solid var(--tertiary-bg-color);
    box-shadow: 0px 2px 10px rgba(0, 0, 0, 0.15);
    border-radius: 24px;
}

#diagnosis-dialog button {
    background: var(--secondary-bg-color) !important;
    color: var(--secondary-font-color) !important;
}

input-select {
    display: block;
    width: 100%;
}

.input-select-control {
    display: flex;
    width: 100%;
    height: 46px;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    padding: 0 12px;
    box-sizing: border-box;
    border: 1px solid var(--tertiary-bg-color);
    border-radius: 12px;
    background: var(--secondary-bg-color);
    color: var(--primary-font-color);
    font: inherit;
    font-size: 16px;
    line-height: 1.3;
    text-align: left;
    cursor: pointer;
}

.input-select-control span {
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.input-select-control.empty span {
    opacity: 0.7;
}

.input-select-control:focus {
    border-color: var(--primary-font-color);
    outline: 0;
}

.input-select-control:disabled {
    cursor: default;
    opacity: 0.5;
}

.input-select-backdrop {
    position: fixed;
    inset: 0;
    z-index: 100002;
    background: rgba(0, 0, 0, 0.4);
    backdrop-filter: blur(8px);
    -webkit-backdrop-filter: blur(8px);
    animation: contentBlockFadeIn 0.3s ease forwards;
}

.input-select-backdrop i {
    position: absolute;
    top: calc(20px + var(--webview-area-inset-top));
    right: 20px;
    z-index: 100003;
    color: #fff;
    font-size: 28px;
    text-shadow: 0 0 10px rgba(0, 0, 0, 0.5);
}

.input-select-dialog {
    position: fixed;
    top: calc(60px + var(--webview-area-inset-top));
    left: 50%;
    display: flex;
    width: calc(100% - 80px);
    max-width: 500px;
    height: calc(100% - 140px - var(--webview-area-inset-top) - var(--webview-area-inset-bottom));
    padding: 20px;
    box-sizing: border-box;
    flex-direction: column;
    transform: translateX(-50%);
    border: 1px solid var(--tertiary-bg-color);
    border-radius: 24px;
    background: var(--primary-bg-color);
    box-shadow: 0 2px 10px rgba(0, 0, 0, 0.15);
    z-index: 100003;
}

.input-select-search {
    width: 100%;
    height: 46px;
    padding: 0 14px;
    box-sizing: border-box;
    flex: 0 0 auto;
    border: 1px solid var(--tertiary-bg-color);
    border-radius: 12px;
    background: var(--secondary-bg-color);
    color: var(--primary-font-color);
    font-size: 16px;
}

.input-select-results {
    display: flex;
    min-height: 0;
    margin-top: 20px;
    flex: 1 1 auto;
    flex-direction: column;
    gap: 8px;
    overflow-y: auto;
    overscroll-behavior: contain;
}

.input-select-option {
    display: flex;
    width: 100%;
    height: auto;
    min-height: 58px;
    padding: 14px 16px;
    box-sizing: border-box;
    flex: 0 0 auto;
    flex-direction: column;
    gap: 4px;
    border: 0;
    border-radius: 15px;
    background: var(--secondary-bg-color);
    color: var(--secondary-font-color);
    font-size: 16px;
    line-height: 1.2;
    text-align: left;
    cursor: pointer;
}

.input-select-dialog-compact .input-select-results {
    gap: 6px;
}

.input-select-dialog-compact .input-select-option {
    min-height: 44px;
    padding: 10px 14px;
    border-radius: 12px;
}

.input-select-group {
    padding: 10px 6px 2px;
    color: var(--primary-font-color);
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 0.06em;
    opacity: 0.62;
    text-transform: uppercase;
}

.input-select-group:first-child {
    padding-top: 0;
}

.input-select-option strong,
.input-select-option small {
    display: block;
    width: 100%;
    overflow-wrap: anywhere;
}

.input-select-option strong {
    line-height: 1.25;
}

.input-select-option small {
    font-size: 12px;
    line-height: 1.15;
    opacity: 0.65;
}

.input-select-custom {
    margin-top: 20px;
    flex: 0 0 auto;
    text-align: center;
}

.input-select-custom button {
    width: 100%;
    min-height: 56px;
    height: auto;
    border-radius: 28px;
}

.nidalite-diagnosis-further {
    display: grid;
    width: 100%;
    min-width: 0;
    box-sizing: border-box;
    gap: 12px;
}

.nidalite-diagnosis-add,
.nidalite-diagnosis-list {
    width: 100%;
    min-width: 0;
    box-sizing: border-box;
}

.nidalite-diagnosis-list {
    display: grid;
    gap: 8px;
}

.nidalite-diagnosis-item {
    display: flex;
    min-height: 48px;
    padding: 9px 10px 9px 14px;
    box-sizing: border-box;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    border: 1px solid var(--tertiary-bg-color);
    border-radius: 13px;
    background: var(--secondary-bg-color);
}

.nidalite-diagnosis-item span,
.nidalite-diagnosis-item strong,
.nidalite-diagnosis-item small {
    display: block;
    min-width: 0;
}

.nidalite-diagnosis-item strong {
    color: var(--primary-font-color);
    font-size: 14px;
}

.nidalite-diagnosis-item small {
    margin-top: 3px;
    color: var(--primary-font-color);
    font-size: 11px;
    opacity: 0.62;
}

.nidalite-diagnosis-remove {
    display: inline-flex;
    width: 34px;
    min-width: 34px;
    height: 34px;
    min-height: 34px;
    padding: 0;
    align-items: center;
    justify-content: center;
    border: 0;
    border-radius: 11px;
    background: color-mix(in srgb, var(--danger-color, #c73f4b) 14%, transparent);
    color: var(--danger-color, #c73f4b);
}


@keyframes contentBlockFadeIn {
    from {
        opacity: 0;
    }

    to {
        opacity: 1;
    }
}

#content-block {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: rgba(0, 0, 0, 0.4);
    backdrop-filter: blur(8px);
    -webkit-backdrop-filter: blur(8px);
    z-index: 100000;
    animation: contentBlockFadeIn 0.3s ease forwards;
}

#content-block i {
    position: absolute;
    top: calc(20px + var(--webview-area-inset-top));
    right: 20px;
    font-size: 28px;
    color: transparent !important;
    text-shadow: 0 0 10px rgba(0, 0, 0, 0.5);
    z-index: 100001;
}

.image-lightbox {
    position: fixed;
    inset: 0;
    z-index: 100020;
    box-sizing: border-box;
    padding:
        calc(24px + var(--webview-area-inset-top))
        calc(24px + var(--webview-area-inset-right))
        calc(24px + var(--webview-area-inset-bottom))
        calc(24px + var(--webview-area-inset-left));
    background: rgba(0, 0, 0, 0.88);
    backdrop-filter: blur(10px);
    -webkit-backdrop-filter: blur(10px);
}

.image-lightbox>i {
    position: absolute;
    top: calc(18px + var(--webview-area-inset-top));
    right: calc(18px + var(--webview-area-inset-right));
    z-index: 1;
    color: #f5f5f5;
    font-size: 30px;
    text-shadow: 0 2px 12px rgba(0, 0, 0, 0.75);
    pointer-events: none;
}

.image-lightbox>img {
    width: auto;
    height: auto;
}

.nidafollow-overlay {
    position: fixed;
    inset: 0;
    z-index: 100030;
    background: rgba(0, 0, 0, 0.72);
    backdrop-filter: blur(8px);
    -webkit-backdrop-filter: blur(8px);
}

.nidafollow-dialog {
    position: fixed;
    top: 50%;
    left: 50%;
    z-index: 100031;
    display: flex;
    width: min(560px, calc(100% - 32px - var(--webview-area-inset-left) - var(--webview-area-inset-right)));
    max-height: calc(90dvh - var(--webview-area-inset-top) - var(--webview-area-inset-bottom));
    flex-direction: column;
    overflow: hidden;
    color: var(--primary-font-color);
    background: var(--primary-bg-color);
    border: 1px solid var(--tertiary-bg-color);
    border-radius: 26px;
    box-shadow: 0 28px 80px rgba(0, 0, 0, 0.55);
    transform: translate(-50%, -50%);
    animation: nidalitePictureDialogIn 0.28s cubic-bezier(0.175, 0.885, 0.32, 1.1);
}

.nidafollow-dialog-header {
    display: grid;
    grid-template-columns: 48px minmax(0, 1fr) 44px;
    flex: 0 0 auto;
    align-items: center;
    gap: 14px;
    padding: 20px;
    border-bottom: 1px solid var(--tertiary-bg-color);
}

.nidafollow-dialog-header>div:nth-child(2) {
    min-width: 0;
    text-align: left;
}

.nidafollow-dialog-header h3,
.nidafollow-dialog-header p {
    margin: 0;
}

.nidafollow-dialog-header h3 {
    margin-bottom: 4px;
    color: var(--primary-font-color);
    font-size: 19px;
    line-height: 1.15;
    text-align: left;
}

.nidafollow-dialog-header p {
    color: color-mix(in srgb, var(--primary-font-color) 78%, transparent);
    font-size: 13px;
    line-height: 1.25;
    text-align: left;
}

.nidafollow-dialog-icon {
    display: grid;
    width: 48px;
    height: 48px;
    flex: 0 0 48px;
    place-items: center;
    color: var(--secondary-button-font-color);
    background: var(--secondary-button-bg-color);
    border-radius: 15px;
    font-size: 21px;
}

.nidafollow-dialog-close {
    appearance: none;
    display: grid;
    width: 44px;
    height: 44px;
    padding: 0;
    place-items: center;
    color: var(--primary-font-color);
    background: var(--secondary-bg-color);
    border: 1px solid var(--tertiary-bg-color);
    border-radius: 50%;
    box-shadow: none;
    line-height: 1;
}

.nidafollow-dialog-body {
    display: flex;
    min-height: 0;
    flex-direction: column;
    gap: 16px;
    overflow-y: auto;
    padding: 20px;
    overscroll-behavior: contain;
}

.nidafollow-destination-card {
    display: flex;
    align-items: center;
    gap: 14px;
    padding: 16px;
    background: var(--secondary-bg-color);
    border: 1px solid var(--tertiary-bg-color);
    border-radius: 17px;
}

.nidafollow-destination-card>i {
    color: var(--secondary-button-bg-color);
    font-size: 25px;
}

.nidafollow-destination-card>div {
    display: flex;
    min-width: 0;
    flex-direction: column;
    gap: 3px;
}

.nidafollow-destination-card small,
.nidafollow-destination-card span {
    color: color-mix(in srgb, var(--primary-font-color) 72%, transparent);
}

.nidafollow-destination-card small {
    font-size: 11px;
    font-weight: 750;
    letter-spacing: 0.04em;
    text-transform: uppercase;
}

.nidafollow-destination-card strong {
    color: var(--primary-font-color);
    font-size: 16px;
    line-height: 1.25;
}

.nidafollow-destination-card strong,
.nidafollow-destination-card span {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.nidafollow-dialog-intro {
    margin: 2px 0;
    color: color-mix(in srgb, var(--primary-font-color) 88%, transparent);
    line-height: 1.5;
}

.nidafollow-anonymous-option {
    display: grid;
    grid-template-columns: 24px minmax(0, 1fr);
    align-items: start;
    gap: 12px;
    padding: 14px;
    color: var(--primary-font-color);
    background: var(--secondary-bg-color);
    border: 1px solid var(--tertiary-bg-color);
    border-radius: 14px;
    cursor: pointer;
}

.nidafollow-anonymous-option input {
    width: 20px;
    height: 20px;
    margin: 2px 0 0;
    accent-color: var(--primary-button-bg-color);
}

.nidafollow-anonymous-option span,
.nidafollow-anonymous-option strong,
.nidafollow-anonymous-option small {
    display: block;
}

.nidafollow-anonymous-option strong {
    margin-bottom: 4px;
    font-size: 14px;
}

.nidafollow-anonymous-option small {
    color: color-mix(in srgb, var(--primary-font-color) 70%, transparent);
    font-size: 12px;
    line-height: 1.4;
}

.nidafollow-primary-button {
    display: flex;
    width: 100%;
    min-height: 50px;
    align-items: center;
    justify-content: center;
    margin: 0;
    color: var(--primary-button-font-color) !important;
    background: var(--primary-button-bg-color) !important;
    border: 1px solid var(--primary-button-bg-color) !important;
    border-radius: 14px;
    box-shadow: 0 8px 20px color-mix(in srgb, var(--primary-button-bg-color) 24%, transparent);
    font-weight: 750;
}

.nidafollow-primary-button:disabled {
    color: var(--primary-button-font-color) !important;
    background: var(--primary-button-bg-color) !important;
    opacity: 0.62;
}

.nidafollow-dialog button i {
    margin-right: 8px;
}

.nidafollow-dialog button.nidafollow-dialog-close i {
    display: block;
    margin: 0;
    font-size: 20px;
    line-height: 1;
    transform: none;
}

.nidafollow-sms-status {
    margin: 0;
    color: var(--error-color, #e34b40);
    font-size: 13px;
    line-height: 1.45;
    text-align: center;
}

.nidafollow-dialog-error {
    margin: 0;
    padding: 12px 14px;
    color: #ff6b61;
    background: rgba(227, 75, 64, 0.12);
    border: 1px solid rgba(227, 75, 64, 0.3);
    border-radius: 13px;
    font-size: 13px;
    line-height: 1.45;
    text-align: left;
}

.nidafollow-state {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 9px;
    padding: 11px 14px;
    color: var(--secondary-button-bg-color);
    background: color-mix(in srgb, var(--secondary-button-bg-color) 15%, transparent);
    border-radius: 14px;
    font-weight: 750;
}

.nidafollow-state-reached {
    color: #55ba71;
    background: rgba(42, 151, 74, 0.16);
}

.nidafollow-state-expired {
    color: var(--error-color, #e34b40);
    background: rgba(227, 75, 64, 0.14);
}

.nidafollow-privacy-note {
    display: flex;
    align-items: center;
    gap: 9px;
    margin: -4px 0 0;
    padding: 11px 13px;
    color: color-mix(in srgb, var(--primary-font-color) 78%, transparent);
    background: var(--secondary-bg-color);
    border-radius: 12px;
    font-size: 12px;
    line-height: 1.4;
}

.nidafollow-privacy-note i {
    flex: 0 0 auto;
    margin: 0;
    color: var(--primary-button-bg-color);
    font-size: 16px;
}

.nidafollow-qr-shell {
    width: fit-content;
    max-width: 100%;
    margin: 0 auto;
    background: #fff;
    border-radius: 20px;
    box-shadow: 0 4px 20px rgba(0, 0, 0, 0.2);
}

.nidafollow-qr {
    display: flex;
    max-width: 100%;
    justify-content: center;
}

.nidafollow-qr svg,
.nidafollow-qr canvas {
    display: block;
    max-width: 100%;
    width: auto !important;
    height: auto !important;
}

.nidafollow-sms {
    display: flex;
    flex-direction: column;
    gap: 11px;
    padding-top: 4px;
}

.nidafollow-sms h4 {
    margin: 0;
    font-size: 15px;
}

.nidafollow-sms-fields {
    display: grid;
    grid-template-columns: 92px minmax(0, 1fr);
    gap: 10px;
}

.nidafollow-sms-fields select,
.nidafollow-sms-fields input {
    width: 100%;
    min-width: 0;
    margin: 0;
}

.nidafollow-sms-status.success {
    color: #55ba71;
}

.nidafollow-sms-status.error {
    color: var(--error-color, #e34b40);
}

.nidafollow-delete-button {
    display: flex;
    width: 100%;
    min-height: 50px;
    align-items: center;
    justify-content: center;
    margin: 4px 0 0;
    color: #ff6b61;
    background: rgba(227, 75, 64, 0.1);
    border: 1px solid rgba(227, 75, 64, 0.28);
    border-radius: 14px;
    box-shadow: none;
    font-weight: 700;
}

.nidafollow-delete-button:disabled {
    opacity: 0.55;
}

@media (max-width: 560px) {
    .nidafollow-dialog {
        top: 50%;
        bottom: auto;
        width: calc(100% - 20px - var(--webview-area-inset-left) - var(--webview-area-inset-right));
        max-height: calc(100dvh - 20px - var(--webview-area-inset-top) - var(--webview-area-inset-bottom));
        border-radius: 22px;
        transform: translate(-50%, -50%);
    }

    .nidafollow-dialog-header {
        grid-template-columns: 44px minmax(0, 1fr) 42px;
        gap: 12px;
        padding: 15px 16px;
    }

    .nidafollow-dialog-icon {
        width: 44px;
        height: 44px;
        flex-basis: 44px;
        border-radius: 13px;
    }

    .nidafollow-dialog-close {
        width: 42px;
        height: 42px;
    }

    .nidafollow-dialog-body {
        padding: 16px;
    }
}

#dialog {
    position: fixed;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    width: 90%;
    max-width: 800px;
    max-height: calc(85vh - var(--webview-area-inset-top) - var(--webview-area-inset-bottom));
    background: var(--primary-bg-color);
    border-radius: 24px;
    box-shadow: 0 20px 40px rgba(0, 0, 0, 0.4);
    display: flex;
    flex-direction: column;
    padding: 30px 20px;
    box-sizing: border-box;
    z-index: 100002;
    overflow-y: auto;
    overflow-x: hidden;
    border: 1px solid var(--tertiary-bg-color);
    animation: dialogPopIn 0.4s cubic-bezier(0.175, 0.885, 0.32, 1.275);
}

@keyframes dialogPopIn {
    from {
        opacity: 0;
        transform: translate(-50%, -40%) scale(0.9);
    }

    to {
        opacity: 1;
        transform: translate(-50%, -50%) scale(1);
    }
}

#dialog img {
    max-width: 80%;
    margin-left: 10%;
}

#dialog iframe {
    border: none;
    width: calc(100% - 20px);
    height: calc(100% - 130px - var(--webview-area-inset-top) - var(--webview-area-inset-bottom));
}

#dialog select {
    width: 100%;
}

.dialog-full {
    width: calc(100% - 12px) !important;
    height: calc(100% - 80px) !important;
    padding: 0 !important;
}

h3 {
    font-size: 18px;
    font-weight: bold;
    text-align: center;
    margin-bottom: 24px;
}

#dialog h3 {
    color: var(--secondary-button-bg-color);
}

#dialog h3 i {
        margin-right: 4px;
    }

h4 {
    font-size: 16px;
    font-weight: bold;
    text-align: center;
    margin-bottom: 18px;
    opacity: 0.6;
}

h5 {
    font-size: 14px;
    font-weight: bold;
    text-align: left;
    margin-bottom: 10px;
    opacity: 0.8;
}

input {
    width: 100%;
    height: 46px;
    padding: 0 16px;
    box-sizing: border-box;
    border: 1px solid var(--tertiary-bg-color);
    border-radius: 12px;
    background: var(--secondary-bg-color);
    color: var(--primary-font-color);
    outline: 0;
    font-size: 16px;
    user-select: text;
    -webkit-user-select: text;
}

input:focus {
    border-color: var(--primary-font-color) !important;
}

input:disabled {
    opacity: 0.3;
}

input:-webkit-autofill,
input:-webkit-autofill:hover,
input:-webkit-autofill:focus {
    -webkit-text-fill-color: var(--primary-font-color);
    -webkit-box-shadow: 0 0 0px 1000px var(--secondary-bg-color) inset;
    box-shadow: 0 0 0px 1000px var(--secondary-bg-color) inset;
    caret-color: var(--primary-font-color);
    border: 1px solid var(--tertiary-bg-color);
    font-size: 16px !important;
    font-family: inherit !important;
}

textarea {
    width: 100%;
    height: 280px;
    padding: 16px;
    box-sizing: border-box;
    border: 1px solid var(--tertiary-bg-color);
    border-radius: 12px;
    background: var(--secondary-bg-color);
    color: var(--primary-font-color);
    outline: 0;
    font-size: 16px;
    user-select: text;
    -webkit-user-select: text;
    overscroll-behavior: auto;
    scrollbar-width: none;
    -ms-overflow-style: none;
}

textarea:focus {
    border-color: var(--primary-font-color) !important;
}

textarea::-webkit-scrollbar {
    display: none;
}

textarea:disabled {
    opacity: 0.5;
}

select {
    width: 100%;
    height: 46px;
    padding: 0 16px;
    padding-right: 40px;
    box-sizing: border-box;
    border: 1px solid var(--tertiary-bg-color);
    border-radius: 12px;
    background: var(--secondary-bg-color);
    color: var(--primary-font-color);
    outline: 0;
    font-size: 16px;
    appearance: none !important;
    -webkit-appearance: none !important;
    -moz-appearance: none !important;
    background-image: url("data:image/svg+xml;charset=UTF-8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2224%22%20height%3D%2224%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22rgba(255,255,255,0.7)%22%20stroke-width%3D%222%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpolyline%20points%3D%226%209%2012%2015%2018%209%22%3E%3C%2Fpolyline%3E%3C%2Fsvg%3E") !important;
    background-repeat: no-repeat !important;
    background-position: right 20px center !important;
    background-size: 16px !important;
}

select:focus {
    border-color: var(--primary-font-color) !important;
}

select:disabled {
    opacity: 0.5;
}

#dialog button {
    width: 100%;
    padding: 20px;
    height: 56px;
    border: 1px solid var(--secondary-bg-color);
    background: var(--secondary-bg-color);
    color: var(--primary-font-color);
    outline: 0;
    border-radius: 12px;
    font-size: 16px;
    font-weight: bold;
    box-shadow: 0px 2px 10px rgba(0, 0, 0, 0.15);
}

.primary-btn {
    width: 100%;
    padding: 20px;
    height: 56px;
    border: var(--primary-button-bg-color);
    background: var(--primary-button-bg-color) !important;
    color: var(--primary-button-font-color) !important;
    outline: 0;
    font-size: 16px;
    font-weight: bold;
    box-shadow: 0px 2px 10px rgba(0, 0, 0, 0.15);
    vertical-align: middle;
}

.primary-btn .icon {
    margin-right: 8px;
    color: var(--primary-button-font-color);
    vertical-align: middle;
}

.secondary-btn {
    width: 100%;
    padding: 20px;
    height: 56px;
    border: var(--secondary-button-bg-color);
    background: var(--secondary-button-bg-color) !important;
    color: var(--secondary-button-font-color) !important;
    outline: 0;
    font-size: 16px;
    font-weight: bold;
    box-shadow: 0px 2px 10px rgba(0, 0, 0, 0.15);
    vertical-align: middle;
}

.secondary-btn .icon {
    margin-right: 8px;
    color: var(--primary-button-font-color);
    vertical-align: middle;
}

#dialog button.secondary-btn {
    width: 100%;
    padding: 20px;
    height: 56px;
    border: var(--primary-button-bg-color);
    background: var(--primary-button-font-color);
    color: var(--primary-button-bg-color);
    outline: 0;
    font-size: 16px;
    font-weight: bold;
    box-shadow: 0px 2px 10px rgba(0, 0, 0, 0.15);
    margin-bottom: 20px;
}

#dialog #login-country-code {
    width: 90px;
}

.login-phone-fields {
    display: flex;
    flex-direction: row;
    align-items: center;
    gap: 12px;
}

.login-phone-fields select {
    width: 100px !important;
    flex-shrink: 0;
}

.login-phone-fields input {
    flex-grow: 1;
}

.login-guest-egk {
    padding-top: 4px;
}

#dialog .login-guest-egk button {
    width: 100%;
    height: 54px;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
    margin: 0;
    border: 1px solid var(--tertiary-bg-color);
    background: var(--secondary-bg-color);
    color: var(--primary-font-color);
    box-shadow: none;
}

#dialog .login-guest-egk button i {
    color: currentColor;
    font-size: 19px;
}

#dialog.guest-egk-result-dialog {
    max-width: 560px;
}

.guest-egk-result-rows {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 10px;
    margin-bottom: 24px;
}

.guest-egk-result-row {
    min-width: 0;
    padding: 14px 16px;
    border-radius: 12px;
    background: var(--secondary-bg-color);
    border: 1px solid var(--tertiary-bg-color);
}

.guest-egk-result-row strong,
.guest-egk-result-label {
    display: block;
    overflow-wrap: anywhere;
}

.guest-egk-result-label {
    margin-bottom: 6px;
    color: var(--secondary-font-folor);
    font-size: 12px;
}

@media (max-width: 520px) {
    .guest-egk-result-rows {
        grid-template-columns: 1fr;
    }
}

#dialog #login-code {
    display: block;
    width: 100%;
    min-width: 100%;
    max-width: 100%;
    height: 46px;
    min-height: 46px;
    box-sizing: border-box;
    padding: 0 16px;
    border: 1px solid var(--tertiary-bg-color);
    border-radius: 12px;
    background: var(--secondary-bg-color);
    color: var(--primary-font-color);
    font-size: 16px !important;
    font-family: inherit;
    line-height: normal;
    appearance: none;
    -webkit-appearance: none;
    transform: none;
}

#dialog #login-code:-webkit-autofill,
#dialog #login-code:-webkit-autofill:hover,
#dialog #login-code:-webkit-autofill:focus {
    -webkit-text-fill-color: var(--primary-font-color);
    -webkit-box-shadow: 0 0 0px 1000px var(--secondary-bg-color) inset;
    box-shadow: 0 0 0px 1000px var(--secondary-bg-color) inset;
    font-size: 16px !important;
    font-family: inherit !important;
}

#dialog #login-code-cancel-btn {
    font-weight: bold;
    text-align: center;
}

#dialog .item {
    background: var(--primary-bg-color);
    color: var(--primary-font-color);
    padding: 20px;
    margin: 0;
    text-align: center;
    border-radius: 12px;
}

#dialog .item-with-space {
    background: var(--secondary-bg-color);
    color: var(--primary-font-color);
    padding: 20px;
    margin-bottom: 12px;
    text-align: center;
    border-radius: 12px;
}

#dialog .icon-btn {
    margin: 32px;
    border: 2px solid var(--primary-font-color);
    font-size: 18px;
    font-weight: bold;
    padding: 24px;
    text-align: center;
}

#dialog .icon-btn i {
    display: inline-block;
    margin-bottom: 20px;
    font-size: 60px;
    color: var(--primary-font-color);
}

#dialog #video-container {
    margin-left: 50%;
    margin-bottom: 80px;
    transform: translateX(-50%);
    width: 100%;
    max-width: 360px;
    aspect-ratio: 16 / 9;
    height: auto;
}

#dialog #video-preview {
    background: var(--tertiary-bg-color);
    width: 100%;
    height: 100%;
    margin-bottom: 20px;
}

#dialog #video-preview i {
    height: 60px;
    margin-top: 72px;
}

#dialog #invite-phonenumber-field {
    display: block;
    margin: -12px 20px 20px 20px;
    padding: 12px;
    border: 1px solid var(--primary-font-color);
    font-size: 16px;
    text-align: center;
    width: 240px;
    color: var(--primary-font-color);
    background: var(--secondary-bg-color);
    outline: none;
}

#dialog #invite-phonenumber-btn {
    display: block;
    font-size: 15px;
}

#record-note-display .icon {
    font-size: 36px;
}

#startBtn {
    position: absolute;
    bottom: 72px;
    right: 8px;
    width: 60px;
    height: 60px;
    display: none;
}

#stopBtn {
    position: absolute;
    bottom: 72px;
    right: 8px;
    width: 60px;
    height: 60px;
    display: none;
}

#recording-status {
    position: absolute;
    top: 80px;
    left: 20px;
    display: none;
}

@keyframes heartbeat {
    0% {
        transform: scale(1.25);
    }

    20% {
        transform: scale(1);
    }

    40% {
        transform: scale(1.25);
    }

    60% {
        transform: scale(1);
    }

    80% {
        transform: scale(1.25);
    }

    100% {
        transform: scale(1.25);
    }
}

#dialog video {
    width: 100%;
    height: 100%;
}


.breathing {
    animation: breathing 5s ease-out infinite normal;
}

@keyframes breathing {
    0% {
        -webkit-transform: scale(0.9);
        -ms-transform: scale(0.9);
        transform: scale(0.9);
    }

    25% {
        -webkit-transform: scale(1);
        -ms-transform: scale(1);
        transform: scale(1);
    }

    60% {
        -webkit-transform: scale(0.9);
        -ms-transform: scale(0.9);
        transform: scale(0.9);
    }

    100% {
        -webkit-transform: scale(0.9);
        -ms-transform: scale(0.9);
        transform: scale(0.9);
    }
}



.overview-tile {
    display: block;
    margin: 20px;
    background: var(--primary-bg-color);
    width: calc(100% - 48px);
    height: 150px;
    border-radius: 12px;
    border: 1px solid var(--tertiary-bg-color);
    box-shadow: 0px 2px 10px rgba(0, 0, 0, 0.15);
}

.overview-tile-disabled {
    opacity: 0.55;
    filter: grayscale(0.35);
    cursor: default;
}

.overview-tile .pending-upload-label {
    position: absolute;
    top: 64px;
    left: 24px;
    right: 24px;
    color: var(--secondary-button-bg-color);
    font-size: 14px;
    font-weight: 600;
    line-height: 1.5;
}

.overview-tile .pending-upload-label i {
    margin-right: 6px;
}

.control-center-mission-tile {
    height: 84px;
}

.tabbed-dialog {
    align-items: center;
    justify-content: flex-start !important;
}

.dialog-tabs {
    display: flex;
    width: 100%;
    background: var(--secondary-bg-color);
    border-radius: 16px;
    padding: 4px;
    margin-bottom: 20px;
    gap: 4px;
}

.dialog-tab-btn {
    flex: 1;
    padding: 12px 8px;
    text-align: center;
    border-radius: 12px;
    cursor: pointer;
    font-size: 13px;
    font-weight: 600;
    color: var(--secondary-font-color);
    transition: all 0.2s ease;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 6px;
}

.dialog-tab-btn i {
    font-size: 18px;
}

.dialog-tab-btn.active {
    background: var(--primary-bg-color);
    color: var(--secondary-button-bg-color);
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1);
}

.dialog-tab-btn:hover:not(.active) {
    background: rgba(255, 255, 255, 0.05);
    color: var(--primary-font-color);
}

.tab-content {
    width: 100%;
    animation: fadeIn 0.3s ease;
    padding: 10px 5px;
}

.tab-content h3 {
    text-align: center;
    color: var(--primary-button-bg-color);
    font-size: 16px;
    font-weight: 600;
    margin-bottom: 20px;
    opacity: 0.9;
}

.tab-content .input-group {
    display: flex;
    gap: 10px;
    margin-bottom: 20px;
}

.tab-content .input-group input {
    flex: 1;
    width: auto;
}

.tab-content select#login-country-code {
    width: 100px;
    flex-shrink: 0;
}

.tab-content button {
    width: 100%;
    margin: 0;
    padding: 16px;
    font-weight: 600;
}

.tab-content #invite-user-code {
    display: flex;
    justify-content: center;
    border-radius: 20px;
    margin: 10px auto;
    width: fit-content;
    max-width: 100%;
    box-shadow: 0 4px 20px rgba(0, 0, 0, 0.2);
}

.tab-content #invite-user-code canvas,
.tab-content #invite-user-code svg {
    max-width: 100%;
    height: auto !important;
}

@keyframes fadeIn {
    from {
        opacity: 0;
        transform: translateY(10px);
    }

    to {
        opacity: 1;
        transform: translateY(0);
    }
}

.overview-tile .mission-started {
    position: absolute;
    top: 114px;
    left: 24px;
    font-size: 16px;
    font-weight: normal;
    color: var(--secondary-font-color);
    vertical-align: middle;
    opacity: 0.6;
}

.overview-tile .mission-started i {
        margin-right: 6px;
    }

.overview-tile .patient-name {
    position: absolute;
    top: 24px;
    left: 24px;
    font-weight: bold;
    font-size: 20px;
    width: calc(100% - 128px);
    color: var(--primary-font-color);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.overview-tile-control-center {
    border-left: 6px solid var(--primary-font-color);
}

.overview-tile-normal {
    border-left: 6px solid var(--success-color);
}

.overview-tile-urgent {
    border-left: 6px solid var(--warning-color);
}

.overview-tile-immediately {
    border-left: 6px solid var(--failure-color);
}

.overview-tile-nidalite,
.overview-tile-nidalite-ktp {
    border-left-color: var(--primary-button-bg-color);
}

#dialog .vitals-image-analysis-btn {
    display: flex;
    width: auto;
    min-height: 36px;
    align-items: center;
    justify-content: center;
    gap: 7px;
    margin: 0 auto 2px;
    padding: 6px 10px;
    color: var(--secondary-font-color);
    background: transparent;
    border: 0;
    box-shadow: none;
    font-size: 13px;
    font-weight: 600;
    opacity: 0.78;
}

#dialog #add-vitals-dialog-btn {
    margin-bottom: 8px;
}

input.vital-input-invalid {
    border-color: var(--failure-color) !important;
    box-shadow: 0 0 0 1px var(--failure-color);
}

#dialog .vitals-image-analysis-btn:active,
#dialog .vitals-image-analysis-btn:focus-visible {
    color: var(--primary-font-color);
    opacity: 1;
}

#dialog .vitals-image-analysis-btn.loading i {
    animation: fa-spin 1s infinite linear;
}

#dialog .vitals-image-analysis-btn:disabled {
    opacity: 0.6;
}

#dialog .vitals-image-analysis-status {
    min-height: 18px;
    margin: 0 4px;
    color: var(--secondary-font-color);
    font-size: 13px;
}

#dialog .vitals-image-analysis-status.success {
    color: var(--success-color);
}

#dialog .vitals-image-analysis-status.error {
    color: var(--failure-color);
}

.overview-tile-nidalite-nf {
    border-left-color: var(--failure-color);
}

.overview-tile-nidalite-na {
    border-left-color: #7b2cbf;
}

.overview-tile-nidalite .nidalite-protocol-type-badge {
    position: absolute;
    top: 62px;
    left: 24px;
    padding: 5px 9px;
    color: var(--primary-button-font-color);
    background: var(--primary-button-bg-color);
    border-radius: 8px;
    font-size: 12px;
    font-weight: 800;
    letter-spacing: .04em;
}

.overview-tile-nidalite .nidalite-protocol-type-badge.nidalite-protocol-type-nf {
    background: var(--failure-color);
}

.overview-tile-nidalite .nidalite-protocol-type-badge.nidalite-protocol-type-na {
    background: #7b2cbf;
}

.overview-tile-nidalite .nidalite-protocol-type-badge.selection-required {
    color: var(--primary-font-color);
    background: var(--secondary-bg-color);
    border: 1px solid var(--primary-button-bg-color);
}

.overview-tile .patient-age-gender {
    margin-left: 12px;
    font-size: 16px;
    font-weight: normal;
    opacity: 0.6;
    color: var(--secondary-font-color);
}

.overview-tile .patient-diagnosis {
    position: absolute;
    top: 64px;
    left: 24px;
    font-size: 16px;
    font-weight: bold;
    width: calc(100% - 156px);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    line-height: 1.5;
    padding: 2px 0;
    opacity: 0.6;
}

.overview-tile .patient-diagnosis i {

        margin-right: 6px;
    }

.overview-tile .status-display {
    position: absolute;
    top: 26px;
    right: 16px;
    text-align: right;
    isolation: isolate;
}

.status-active {
    color: var(--primary-button-bg-color);
}

.status-wait {
    color: #ff9800;
}

i.status-active,
i.status-wait {
    position: relative;
    display: inline-flex !important;
    align-items: center;
    justify-content: center;
    vertical-align: middle;
    margin-right: 4px;
    isolation: isolate;
}

i.status-active::after,
i.status-wait::after {
    content: '';
    position: absolute;
    top: 50%;
    left: 50%;
    width: 28px;
    height: 28px;
    background: currentColor;
    border-radius: 50%;
    z-index: -1;
    transform: translate(-50%, -50%);
    animation: status-icon-pulse 2s infinite ease-out;
    pointer-events: none;
    opacity: 0;
    filter: blur(5px);
}

@keyframes status-icon-pulse {
    0% {
        transform: translate(-50%, -50%) scale(0.6);
        opacity: 0.8;
    }

    70% {
        transform: translate(-50%, -50%) scale(1.8);
        opacity: 0;
    }

    100% {
        transform: translate(-50%, -50%) scale(0.6);
        opacity: 0;
    }
}

.status-inactive {
    color: var(--primary-font-color);
}

.overview-tile .recall-icon {
    position: absolute;
    bottom: 8px;
    right: 8px;
    padding: 12px;
    font-size: 12px;
    background: var(--secondary-button-bg-color);
    color: var(--secondary-button-font-color);
    border-radius: 12px;
    line-height: 12px;
}

.overview-tile .nida-icon .icon {
    color: var(--failure-color);
}

.half-col {
    width: calc(50% - 20px);
    margin: 10px;
    display: inline-block;
}


#mobilenav-view {
    display: none;
}

#protocol-nav-view {
    display: none;
}


.badge {
    position: absolute;
    left: calc(50% + 16px);
    top: 6px;
    transform: translateX(-50%);
    opacity: 0;
    background: var(--tertiary-bg-color);
    color: var(--primary-button-font-color);
    padding: 6px;
    border-radius: 50%;
    width: 12px;
    height: 12px;
    font-size: 12px;
    font-weight: bold;
    text-align: center;
    line-height: 12px;
}

.error-badge {
    background: var(--failure-color);
}


.error {
    color: var(--failure-color) !important;
}

.success {
    color: var(--success-color) !important;
}

.warning {
    color: var(--warning-color) !important;
}

#chat-input-send-btn {
    display: block;
}


.scan-region-highlight {
    border-radius: 30px;
    outline: rgba(0, 0, 0, .25) solid 50vmax;
}

.scan-region-highlight-svg {
    display: none;
}

.code-outline-highlight {
    stroke: rgba(255, 255, 255, .5) !important;
    stroke-width: 15 !important;
    stroke-dasharray: none !important;
}


#isa-waiving {
    position: fixed;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    z-index: 99999999999999;
}


#backup-phone-dialog,
#maintenance-mode-dialog {
    position: fixed;
    top: 0;
    left: 0;
    height: 100vh;
    width: 100vw;
    background: var(--primary-bg-color);
    /* Perfectly solid theme background */
    display: none;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    padding: 24px 24px 10vh 24px;
    /* Increased bottom padding to push content up */
    box-sizing: border-box;
    z-index: 2000000;
    color: var(--primary-font-color);
    text-align: center;
    opacity: 1;
    animation: dialogOverlayFadeIn 0.3s ease-out forwards;
}

@keyframes dialogOverlayFadeIn {
    from {
        opacity: 0;
    }

    to {
        opacity: 1;
    }
}

#backup-phone-dialog>*,
#maintenance-mode-dialog>* {
    max-width: 400px;
    margin-bottom: 24px;
}

#backup-phone-dialog h3,
#maintenance-mode-dialog h3 {
    font-size: 28px;
    font-weight: 800;
    margin-bottom: 16px;
    line-height: 1.2;
    color: var(--primary-font-color);
    letter-spacing: -0.5px;
}

.dialog-icon {
    font-size: 64px;
    margin-bottom: 8px;
    color: var(--primary-font-color);
    opacity: 0.3;
}

#backup-phone-dialog p,
#maintenance-mode-dialog p,
#backup-phone-dialog,
#maintenance-mode-dialog {
    font-size: 16px;
    line-height: 1.6;
    opacity: 0.9;
    font-weight: 400;
}

#backup-phone-dialog button,
#maintenance-mode-dialog button {
    position: relative;
    border: none;
    background: linear-gradient(135deg, #3b82f6 0%, #2563eb 100%);
    color: white;
    height: auto;
    width: 100%;
    max-width: 320px;
    padding: 32px 24px;
    font-size: 20px;
    font-weight: 600;
    border-radius: 28px;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 16px;
    cursor: pointer;
    box-shadow: 0 12px 30px rgba(37, 99, 235, 0.4),
        inset 0 1px 1px rgba(255, 255, 255, 0.3);
    transition: all 0.3s cubic-bezier(0.34, 1.56, 0.64, 1);
    margin: 20px auto 0 auto;
}

#backup-phone-dialog button:active,
#maintenance-mode-dialog button:active {
    transform: scale(0.95);
    box-shadow: 0 5px 15px rgba(37, 99, 235, 0.3);
}

#backup-phone-dialog button i,
#maintenance-mode-dialog button i {
    font-size: 40px;
    background: rgba(255, 255, 255, 0.15);
    width: 80px;
    height: 80px;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 50%;
    margin-bottom: 4px;
    box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.1);
}

#backup-phone-dialog button br,
#maintenance-mode-dialog button br {
    display: none;
}





#map-view {
    height: 100%;
    width: 100%;
    z-index: -1;
    opacity: 0;
    position: fixed;
    top: 0;
    left: 0;
    display: block;
    transition-duration: 0ms;
}


button .tablet-mode-btn {
    border: 2px solid var(--secondary-button-bg-color);
    background: var(--primary-bg-color);
    width: 48px;
    height: 48px;
    text-align: center;
}


button .tablet-mode-btn .icon {
        font-size: 22px;
        color: var(--primary-font-color);
        vertical-align: middle;
        text-align: center;
    }

#streaming-popup {
    position: fixed;
    top: calc(62px + var(--webview-area-inset-top));
    right: 8px;
    width: 320px;
    background: var(--primary-bg-color);
    border: 1px solid var(--tertiary-bg-color);
    border-radius: 20px;
    box-shadow: 0 10px 30px rgba(0, 0, 0, 0.3);
    z-index: 100005;
    padding: 20px;
    display: flex;
    flex-direction: column;
    gap: 15px;
    max-height: calc(100dvh - calc(78px + var(--webview-area-inset-top) + var(--webview-area-inset-bottom)));
    box-sizing: border-box;
    overflow-y: auto;
    transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
    transform: translateY(-20px);
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
}

#streaming-popup.active {
    transform: translateY(0);
    opacity: 1;
    visibility: visible;
    pointer-events: all;
}

#streaming-popup h3,
#streaming-popup h5 {
    margin: 0;
}

#streaming-popup h3 {
    font-size: 1.1rem;
    text-align: left;
    color: var(--primary-font-color);
    display: flex;
    justify-content: space-between;
    align-items: center;
}

#streaming-popup h3 .close-popup-btn {
    cursor: pointer;
    font-size: 1.2rem;
    opacity: 0.7;
    transition: opacity 0.2s;
}

#streaming-popup h3 .close-popup-btn:hover {
    opacity: 1;
}

#streaming-popup .popup-content {
    display: flex;
    flex-direction: column;
    gap: 12px;
    min-height: 0;
}

#live-streaming-container {
    display: flex;
    flex-direction: column;
    gap: 15px;
}

#streaming-popup video#localStream {
    width: 100%;
    aspect-ratio: 16/9;
    background: #000;
    border-radius: 12px;
    object-fit: cover;
    transform: scale(-1, 1);
    display: none;
}

#streaming-popup select {
    width: 100%;
    padding: 10px;
    border-radius: 12px;
    background: var(--secondary-bg-color);
    border: 1px solid var(--tertiary-bg-color);
    color: var(--primary-font-color);
}

#streaming-popup #toggle-streaming-btn {
    width: 100%;
    padding: 12px;
    border-radius: 12px;
    border: none;
    font-weight: 600;
    font-size: 0.95rem;
    cursor: pointer;
    transition: all 0.2s;
}

#streaming-popup #toggle-streaming-btn:not(.streaming) {
    background: var(--secondary-button-bg-color);
    color: var(--secondary-button-font-color);
}

#streaming-popup #toggle-streaming-btn.streaming {
    background: var(--failure-color);
    color: var(--secondary-button-font-color);
}

#streaming-popup #live-streaming-unavailable-warning {
    color: var(--failure-color);
    text-align: center;
    font-size: 0.9rem;
    padding: 10px;
}


#tablet-mode-main-btn {
    position: absolute;
    top: 20px;
    left: 10px;
}

#tablet-mode-map-btn {
    position: absolute;
    top: 20px;
    left: 82px;
}

#tablet-mode-map-close-btn {
    position: absolute;
    top: 10px;
    right: 10px;
    display: none;
    z-index: 1000013;
    color: #191919;
    font-size: 36px;
}

#tablet-mode-close-mission-btn {
    position: absolute;
    top: 20px;
    left: calc(50% - 72px);
}


.tablet-mode-btn {
    display: none;
}

#record-video-btn {
    bottom: -48px;
}

#change-record-camera-btn {
    bottom: -48px;
}

#mobilenav-view {
    display: flex;
    flex-direction: row;
    position: absolute;
    bottom: 0;
    left: 0;
    width: 100%;
    height: 72px;
    z-index: 9998;
    border-top: 1px solid var(--tertiary-bg-color);
    background: var(--primary-bg-color);
}

#mobilenav-view .item {
    position: relative;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    height: 50px;
    text-align: center;
    padding-top: 12px;
    flex-grow: 1;
    font-size: 10px;
    gap: 8px;
    width: 0;
}

#mobilenav-view .item:after {
    content: '';
    display: block;
    position: relative;
    width: 20%;
    border: 1px solid var(--primary-bg-color);
    margin-top: -2px;
}

#mobilenav-view .item-active {
    display: flex;
    position: relative;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    height: 50px;
    text-align: center;
    padding-top: 12px;
    flex-grow: 1;
    font-size: 10px;
    gap: 8px;
    width: 0;
}

#mobilenav-view .item-active:after {
    content: '';
    display: block;
    position: relative;
    width: 30%;
    border: 1px solid var(--primary-font-color);
    margin-top: -2px;
}

#mobilenav-view .item .icon {
    vertical-align: middle;
    font-size: 22px;
    color: var(--primary-font-color);
    display: flex;
    justify-content: center;
    align-items: center;
    text-align: center;
}

#mobilenav-view .item-active .icon {
    vertical-align: middle;
    font-size: 22px;
    color: var(--primary-font-color);
    display: flex;
    justify-content: center;
    align-items: center;
    text-align: center;
}


#protocol-view {
    display: block;
    position: absolute;
    top: 53px;
    right: 0;
    width: calc(100% - 80px);
    padding: 20px;
    padding-top: 0;
    padding-left: 118px;
    padding-right: 10px;
    height: calc(100% - 146px);
    overflow-y: auto;
    overscroll-behavior: contain;
    border-left: 0px;
    background: var(--secondary-bg-color);
}

.protocol-category {
    background: var(--primary-bg-color);
    padding: 16px;
    margin: 16px 12px;
    border-radius: 12px;
}

.protocol-category h3 {
        border-bottom: 1px solid var(--tertiary-bg-color);
        padding-bottom: 12px;
    }

.protocol-category h5 {
        margin-top: 8px;
    }

.protocol-category input,
    .protocol-category select {
        border: 1px solid var(--tertiary-bg-color);
        color: var(--primary-font-color);
        background: var(--secondary-bg-color);
        border-radius: 12px;
        padding: 0 12px;
        height: 46px;
        box-sizing: border-box;
        display: block;
        width: 100%;
    }

.protocol-category birthdate-input {
        height: 46px;
        box-sizing: border-box;
        display: block;
        width: calc(100% - 8px);
    }

.protocol-category textarea {
        border: 1px solid var(--tertiary-bg-color);
        color: var(--primary-font-color);
        background: var(--secondary-bg-color);
        border-radius: 12px;
        padding: 12px;
        width: 100%;
        box-sizing: border-box;
    }

.protocol-category textarea:disabled {
        opacity: 0.4;
    }

.protocol-category .protocol-button {
        margin: 12px 0;
        width: 100%;
        height: 52px;
        background: linear-gradient(135deg, var(--secondary-button-bg-color) 0%, color-mix(in srgb, var(--secondary-button-bg-color), black 15%) 100%);
        color: var(--primary-button-font-color);
        border: 1px solid rgba(255, 255, 255, 0.1);
        border-radius: 16px;
        font-size: 15px;
        font-weight: 600;
        display: flex;
        align-items: center;
        justify-content: center;
        gap: 12px;
        box-shadow: 0 8px 16px rgba(0, 0, 0, 0.2),
            inset 0 1px 1px rgba(255, 255, 255, 0.2);
        cursor: pointer;
        transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
        text-shadow: 0 1px 2px rgba(0, 0, 0, 0.2);
        -webkit-tap-highlight-color: transparent;
    }

.protocol-category .protocol-button:active {
        transform: scale(0.97);
        box-shadow: 0 4px 8px rgba(0, 0, 0, 0.2);
        filter: brightness(0.9);
    }

.protocol-category .protocol-button:disabled {
        cursor: default;
        opacity: 0.4;
        filter: grayscale(0.35);
        box-shadow: none;
    }

.protocol-category .protocol-button:disabled:active {
        transform: none;
        filter: grayscale(0.35);
    }

.protocol-category .protocol-button i {
        font-size: 20px;
        opacity: 0.9;
        filter: drop-shadow(0 1px 1px rgba(0, 0, 0, 0.2));
    }

.protocol-category .double-button-container {
        display: flex;
        gap: 0;
        margin: 12px 0;
        height: 52px;
        border-radius: 16px;
        overflow: hidden;
        background: linear-gradient(135deg, var(--secondary-button-bg-color) 0%, color-mix(in srgb, var(--secondary-button-bg-color), black 15%) 100%);
        box-shadow: 0 8px 16px rgba(0, 0, 0, 0.2),
            inset 0 1px 1px rgba(255, 255, 255, 0.2);
        border: 1px solid rgba(255, 255, 255, 0.1);
    }

.protocol-category .double-button-container .protocol-button {
        margin: 0;
        flex: 1;
        height: 100%;
        border-radius: 0;
        background: rgba(255, 255, 255, 0);
        box-shadow: none;
        border: none;
        position: relative;
    }

.protocol-category .double-button-container .protocol-button:not(:last-child) {
        border-right: 1px solid rgba(0, 0, 0, 0.15);
    }

.protocol-category .double-button-container .protocol-button:active {
        background: rgba(0, 0, 0, 0.1);
        transform: none;
        box-shadow: inset 0 4px 8px rgba(0, 0, 0, 0.1);
    }

html.platform-ios .protocol-category input[type="date"],
html.platform-ios .protocol-category input[type="datetime-local"] {
    min-width: 0;
    max-width: 100%;
}

.protocol-switch-field {
    min-height: 56px;
    padding: 0 14px;
    border: 1px solid var(--tertiary-bg-color);
    border-radius: 12px;
    background: var(--secondary-bg-color);
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 20px;
    box-sizing: border-box;
    cursor: pointer;
}

.protocol-switch-label {
    font-size: 15px;
    font-weight: 600;
    line-height: 1.3;
}

.protocol-switch-control {
    position: relative;
    width: 52px;
    height: 30px;
    flex: 0 0 52px;
}

.protocol-category .protocol-switch-input {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: 0;
    opacity: 0;
    pointer-events: none;
}

.protocol-switch-track {
    position: absolute;
    inset: 0;
    border-radius: 999px;
    background: var(--tertiary-bg-color);
    box-shadow: inset 0 1px 3px rgba(0, 0, 0, 0.25);
    transition: background-color 180ms ease, box-shadow 180ms ease;
}

.protocol-switch-thumb {
    position: absolute;
    top: 3px;
    left: 3px;
    width: 24px;
    height: 24px;
    border-radius: 50%;
    background: #fff;
    box-shadow: 0 2px 5px rgba(0, 0, 0, 0.3);
    transition: transform 180ms ease;
}

.protocol-switch-input:checked+.protocol-switch-track {
    background: var(--secondary-button-bg-color);
    box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.12);
}

.protocol-switch-input:checked+.protocol-switch-track .protocol-switch-thumb {
    transform: translateX(22px);
}

.protocol-switch-field:has(.protocol-switch-input:focus-visible) {
    border-color: var(--primary-font-color);
    box-shadow: 0 0 0 2px color-mix(in srgb, var(--primary-font-color), transparent 75%);
}

.protocol-switch-field:has(.protocol-switch-input:disabled) {
    cursor: default;
    opacity: 0.5;
}

.protocol-field[data-protocol-field-type="inline-switch-companion"] {
    display: none;
}

.protocol-input-with-inline-switch {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    align-items: center;
    gap: 12px;
}

.protocol-input-with-inline-switch > input[type="text"] {
    min-width: 0;
}

.protocol-inline-switch {
    min-width: max-content;
    display: flex;
    align-items: center;
    gap: 8px;
    cursor: pointer;
}

.protocol-inline-switch h5 {
    margin: 0;
    font-size: 13px;
    font-weight: 600;
}

.protocol-inline-switch .protocol-switch-control {
    width: 40px;
    height: 22px;
    flex-basis: 40px;
}

.protocol-inline-switch .protocol-switch-thumb {
    width: 16px;
    height: 16px;
}

.protocol-inline-switch .protocol-switch-input:checked + .protocol-switch-track .protocol-switch-thumb {
    transform: translateX(18px);
}

.protocol-inline-switch:has(.protocol-switch-input:disabled) {
    cursor: default;
    opacity: 0.5;
}

.protocol-choice-group {
    min-width: 0;
    margin: 8px 0 18px;
    padding: 0;
    border: 0;
}

.protocol-choice-group legend {
    width: 100%;
    margin: 0 0 10px;
    padding: 0;
    color: var(--primary-font-color);
    font-size: 15px;
    font-weight: 650;
}

.protocol-choice-options {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(min(220px, 100%), 1fr));
    gap: 10px;
}

.protocol-choice-option {
    min-width: 0;
    padding: 12px 14px;
    border: 1px solid var(--tertiary-bg-color);
    border-radius: 12px;
    background: var(--secondary-bg-color);
    box-sizing: border-box;
    transition: border-color 160ms ease, background-color 160ms ease, box-shadow 160ms ease;
}

#app.nidalite-mission [data-protocol-field-path="diviMind7.Rekapillarisierungszeit"] .protocol-choice-options {
    grid-template-columns: repeat(auto-fit, minmax(min(145px, 100%), 1fr));
}

.protocol-choice-option.physiological {
    border-color: color-mix(in srgb, var(--success-color), var(--tertiary-bg-color) 72%);
    background: color-mix(in srgb, var(--success-color), var(--secondary-bg-color) 91%);
}

.protocol-choice-option.selected {
    border-color: var(--secondary-button-bg-color);
    background: color-mix(in srgb, var(--secondary-button-bg-color), transparent 90%);
    box-shadow: 0 0 0 1px color-mix(in srgb, var(--secondary-button-bg-color), transparent 68%);
}

.protocol-choice-option.physiological.selected {
    border-color: var(--success-color);
    background: color-mix(in srgb, var(--success-color), var(--secondary-bg-color) 84%);
    box-shadow: 0 0 0 1px color-mix(in srgb, var(--success-color), transparent 68%);
}

.protocol-choice-option label {
    display: flex;
    min-width: 0;
    min-height: 26px;
    align-items: center;
    gap: 10px;
    font-size: 14px;
    font-weight: 550;
    line-height: 1.3;
    cursor: pointer;
}

.protocol-choice-option label > span {
    min-width: 0;
    overflow-wrap: anywhere;
}

.protocol-category .protocol-choice-input {
    width: 21px;
    height: 21px;
    min-width: 21px;
    margin: 0;
    padding: 0;
    display: block;
    accent-color: var(--secondary-button-bg-color);
    cursor: pointer;
}

.protocol-category .protocol-choice-detail {
    width: 100%;
    height: 40px;
    margin-top: 10px;
    font-size: 14px;
}

.protocol-category .protocol-choice-detail:disabled {
    opacity: 0.42;
}

.protocol-choice-option:has(.protocol-choice-input:disabled) {
    opacity: 0.58;
}

.protocol-fields-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    column-gap: 16px;
}

.protocol-field {
    grid-column: 1 / -1;
    min-width: 0;
}

.protocol-field-half {
    grid-column: auto;
}

.protocol-field[hidden] {
    display: none !important;
}

#protocol-view #vitals-table {
    width: calc(100% - 20px);
    height: auto;
    padding: 10px;
    overflow-x: auto;
    overscroll-behavior-x: contain !important;
    overscroll-behavior-y: auto !important;
    touch-action: pan-x pan-y;
}

#protocol-view #vitals-table table {
    table-layout: auto;
}

#protocol-view #vitals-table table tr:first-child td {
    vertical-align: middle;
    font-weight: bold;
}

#protocol-view #vitals-table table tr td {
    text-align: center;
    padding: 10px;
    width: fit-content;
}

#protocol-view h3 {
    scroll-margin-top: 30px;
}

#protocol-view .files-item {
    display: flex;
    padding: 12px;
    flex-direction: row;
    align-items: center;
}

#protocol-view .files-item .icon {
        margin-right: 8px;
    }

#protocol-quick-actions-content-block {
    display: none;
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: rgba(0, 0, 0, 0.4);
    backdrop-filter: blur(8px);
    -webkit-backdrop-filter: blur(8px);
    z-index: 99998;
    opacity: 0;
    transition: opacity 0.3s ease;
}

#protocol-quick-actions {
    display: flex;
    align-items: center;
    justify-content: center;
    position: fixed;
    bottom: calc(16px + var(--webview-area-inset-bottom));
    left: 50%;
    transform: translateX(-50%);
    width: 64px;
    height: 64px;
    border-radius: 32px;
    background: var(--quick-action-button-color, var(--primary-button-bg-color));
    color: var(--primary-button-font-color);
    box-shadow: 0 4px 20px rgba(0, 0, 0, 0.3), inset 0 1px 1px rgba(255, 255, 255, 0.2);
    z-index: 99999;
    cursor: pointer;
    transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
    -webkit-touch-callout: none;
    user-select: none;
}

#protocol-quick-actions.status-active {
    --quick-action-button-color: var(--primary-button-bg-color);
}

#protocol-quick-actions.status-wait {
    --quick-action-button-color: #ff9800;
}

#protocol-quick-actions.status-inactive,
#protocol-quick-actions.status-closed {
    --quick-action-button-color: var(--tertiary-bg-color);
}

#protocol-quick-actions:active {
    transform: translateX(-50%) scale(0.9);
}

#protocol-quick-actions::after {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: var(--quick-action-button-color, var(--primary-button-bg-color));
    border-radius: 50%;
    z-index: -1;
    animation: quick-action-pulse 2s infinite ease-out;
    pointer-events: none;
}

#protocol-quick-actions.status-inactive::after,
#protocol-quick-actions.status-closed::after,
#protocol-quick-actions.holding::after,
#protocol-quick-actions.open::after {
    animation: none;
    opacity: 0;
}

@keyframes quick-action-pulse {
    0% {
        transform: scale(1);
        opacity: 0.6;
        filter: blur(2px);
    }

    70% {
        transform: scale(1.4);
        opacity: 0;
        filter: blur(8px);
    }

    100% {
        transform: scale(1);
        opacity: 0;
    }
}

#protocol-quick-actions-space {
    position: fixed;
    bottom: calc(96px + var(--webview-area-inset-bottom));
    left: 0;
    width: 100%;
    padding: 0 20px;
    max-height: calc(100vh - 112px - var(--webview-area-inset-top) - var(--webview-area-inset-bottom));
    max-height: calc(100dvh - 112px - var(--webview-area-inset-top) - var(--webview-area-inset-bottom));
    overflow-y: auto;
    overscroll-behavior-y: contain;
    box-sizing: border-box;
    text-align: center;
    display: none;
    flex-direction: column-reverse;
    gap: 12px;
    z-index: 99999;
    pointer-events: none;
}

#protocol-quick-actions-space.active {
    display: flex;
    pointer-events: all;
}

#protocol-quick-actions-space button {
    flex-shrink: 0;
    width: 280px;
    margin: 0 auto;
    border: 1px solid var(--tertiary-bg-color);
    background: var(--secondary-bg-color);
    backdrop-filter: blur(10px);
    color: var(--primary-font-color);
    text-align: left;
    padding: 14px 20px;
    border-radius: 16px;
    display: flex;
    align-items: center;
    box-shadow: 0 8px 16px rgba(0, 0, 0, 0.2);
    font-weight: 500;
    font-size: 15px;
    opacity: 0;
    transform: translateY(20px);
    transition: all 0.4s cubic-bezier(0.16, 1, 0.3, 1);
}

#protocol-quick-actions-space.active button {
    opacity: 1;
    transform: translateY(0);
}

/* Staggered animation - start from bottom (closest to FAB) */
#protocol-quick-actions-space.active button:nth-child(1) {
    transition-delay: 0s;
}

#protocol-quick-actions-space.active button:nth-child(2) {
    transition-delay: 0.05s;
}

#protocol-quick-actions-space.active button:nth-child(3) {
    transition-delay: 0.1s;
}

#protocol-quick-actions-space.active button:nth-child(4) {
    transition-delay: 0.15s;
}

#protocol-quick-actions-space.active button:nth-child(5) {
    transition-delay: 0.2s;
}

#protocol-quick-actions-space.active button:nth-child(6) {
    transition-delay: 0.25s;
}

#protocol-quick-actions-space.active button:nth-child(7) {
    transition-delay: 0.3s;
}

#protocol-quick-actions-space.active button:nth-child(8) {
    transition-delay: 0.35s;
}

#protocol-quick-actions-space button i {
    font-size: 20px;
    margin-right: 16px;
    width: 24px;
    text-align: center;
    flex-shrink: 0;
    color: currentColor;
}

#protocol-quick-actions-space button#do-mission-close-btn {
    background: rgba(220, 38, 38, 0.9);
    border-color: rgba(255, 255, 255, 0.1);
}

#protocol-quick-actions i {
    font-size: 28px;
    transition: transform 0.3s ease;
}

#protocol-quick-actions.open i {
    transform: rotate(90deg);
}

#protocol-nav-view {
    display: flex;
    position: absolute;
    left: 0;
    top: 55px;
    height: calc(100% - 128px);
    width: 64px;
    flex-direction: column;
    border-right: 1px solid var(--tertiary-bg-color);
    background: var(--primary-bg-color);
}

#protocol-nav-view div {
    text-align: center;
    transition-duration: 0ms;
    display: flex;
    justify-content: center;
    align-items: center;
    width: 52px;
    height: 52px;
    margin: 4px;
    border-radius: 26px;
    opacity: 0.5;
}

#protocol-nav-view div.active {
    color: var(--primary-font-color);
    transition-duration: 0ms;
    background: var(--tertiary-bg-color);
    text-align: center;
    transition-duration: 0ms;
    display: flex;
    justify-content: center;
    align-items: center;
    margin: 5px;
    opacity: 1;
}

#protocol-nav-view div i {
    font-size: 20px;
    margin-top: 0px;
}

#protocol-view .scrolling-space {
    width: 100px;
    height: 75vh;
}


#assistant-view {
    display: block;
    position: absolute;
    top: 0;
    right: 0;
    width: 100%;
    height: calc(100% - 68px);
    overflow-y: hidden;
    border-left: 0px;
    background: var(--primary-bg-color);
}

#map-view {
    display: block;
    position: absolute;
    top: 0;
    right: 0;
    width: 100%;
    height: calc(100% - 73px);
    overflow-y: hidden;
    border-left: 0px;
    background: var(--secondary-bg-color);
}

#chat-view {
    position: absolute;
    top: 54px;
    left: 0;
    width: 100%;
    height: calc(100% - 128px);
    overflow: hidden;
    overscroll-behavior: contain;
    background: var(--secondary-bg-color);
    display: grid;
    grid-template-rows: 1fr auto;
}

#chat-content-view {
    padding: 10px;
    padding-bottom: 20px;
}

#chat-input-view {
    position: relative;
    width: 100%;
    height: 84px;
    margin-bottom: 8px;
    background: var(--secondary-bg-color);
}

#chat-input-view textarea {
    position: absolute;
    left: 10px;
    bottom: 10px;
    width: calc(100% - 94px);
    height: 64px;
    border-radius: 12px;
    padding: 8px 12px;
    padding-left: 54px;
    text-align: left;
    line-height: 44px;
    font-size: 16px;
    outline: none;
    resize: none;
    white-space: nowrap;
    overflow-y: hidden;
    background: var(--primary-bg-color);
    box-sizing: border-box;
}

.chat-input-textarea-active {
    height: 82px !important;
    line-height: 20px !important;
    text-align: left !important;
    white-space: normal !important;
    overflow-y: auto !important;
}

#chat-input-view #chat-input-send-btn {
    position: absolute;
    bottom: 10px;
    right: 10px;
    height: 64px;
    width: 64px;
    border-radius: 12px;
    background: var(--secondary-button-bg-color);
    border-color: var(--secondary-button-bg-color);
}

#chat-input-view #chat-input-send-btn i {
        font-size: 20px;
        margin-top: 0px;
    }

#chat-input-view #chat-input-phrases-btn {
    position: absolute;
    bottom: 10px;
    left: 10px;
    height: 64px;
    width: 52px;
    border-radius: 12px;
    border: 0;
    background: transparent;
}

#chat-input-view #chat-input-phrases-btn i {
        font-size: 20px;
        margin-top: 0px;
        vertical-align: middle;
    }

#chat-input-view #chat-input-media-btn {
    position: absolute;
    bottom: 10px;
    left: auto;
    right: 10px;
    height: 64px;
    width: 64px;
    border-radius: 12px;
    background: var(--secondary-button-bg-color);
    border-color: var(--secondary-button-bg-color);
}

#chat-input-view #chat-input-media-btn i {
        font-size: 20px;
        margin-top: 0px;
    }


#chat-input-view #chat-input-media-space {
    position: absolute;
    right: 15px;
    bottom: 82px;
    flex-direction: column;
    gap: 6px;
}


#chat-input-view #chat-input-media-space button {
        border: none;
        background: var(--secondary-button-bg-color);
        color: var(--secondary-button-font-color);
        width: auto;
        border-radius: 50%;
        width: 56px;
        height: 56px;
    }


#mission-topbar {
    display: flex;
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 54px;
    padding-right: max(4px, var(--webview-area-inset-right));
    padding-left: max(4px, var(--webview-area-inset-left));
    box-sizing: border-box;
    background: var(--primary-bg-color);
    border-bottom: 1px solid var(--tertiary-bg-color);
    z-index: 9999;
}


#mission-topbar i {
        font-size: 22px;
    }

#mission-topbar .mission-topbar-back-btn {
    display: flex;
    justify-content: center;
    align-items: center;
    width: 44px;
    flex: 0 0 44px;
    cursor: pointer;
}

#mission-topbar .mission-topbar-back-btn i {
        margin-left: 0;
    }

.corpuls-action-icon {
    position: relative;
    display: inline-flex;
    width: 24px;
    flex: 0 0 24px;
    align-items: center;
    justify-content: center;
    margin-right: 16px;
}

#protocol-quick-actions-space button .corpuls-action-icon i {
    width: 24px;
    margin-right: 0;
}

.corpuls-alarm-badge {
    position: absolute;
    top: 5px;
    right: 4px;
    display: flex;
    min-width: 18px;
    height: 18px;
    align-items: center;
    justify-content: center;
    padding: 0 5px;
    box-sizing: border-box;
    color: #fff;
    background: var(--failure-color, #d33);
    border: 2px solid var(--primary-bg-color);
    border-radius: 10px;
    font-size: 10px;
    font-weight: 700;
    line-height: 1;
}

.corpuls-action-icon .corpuls-alarm-badge {
    top: -10px;
    right: -10px;
}

.corpuls-connection-indicator {
    position: absolute;
    right: 12px;
    bottom: 10px;
    width: 11px;
    height: 11px;
    box-sizing: border-box;
    background: #8b949e;
    border: 2px solid var(--primary-bg-color);
    border-radius: 50%;
}

.corpuls-connection-indicator.connected {
    background: var(--success-color, #25865c);
}

.corpuls-action-icon .corpuls-connection-indicator {
    right: -4px;
    bottom: -4px;
}

.corpuls-alarm-badge.empty {
    display: none;
}

#mission-topbar .mission-topbar-back-btn.embedded-placeholder {
    visibility: hidden;
    pointer-events: none;
    cursor: default;
}

#mission-topbar .mission-topbar-patient-name {
    display: flex;
    height: 100%;
    min-width: 0;
    flex: 1 1 0;
    justify-content: center;
    align-items: center;
    margin: 0 4px;
    overflow: hidden;
    font-size: 18px;
    font-weight: bold;
    white-space: nowrap;
}

#mission-topbar .mission-topbar-patient-name-text {
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

#mission-topbar .mission-topbar-patient-age-gender {
    flex-shrink: 0;
    margin-left: 8px;
    font-size: 14px;
    opacity: 0.6;
}

#mission-topbar .mission-topbar-recall-btn {
    display: none;
    justify-content: center;
    align-items: center;
    width: 44px;
    flex: 0 0 44px;
    font-size: 18px;
    cursor: pointer;
    color: var(--secondary-button-bg-color);
}

#mission-topbar .mission-topbar-map,
#mission-topbar .mission-topbar-corpuls,
#mission-topbar .mission-topbar-picture {
    position: relative;
    display: flex;
    width: 44px;
    height: 54px;
    flex: 0 0 44px;
    align-items: center;
    justify-content: center;
    padding: 0;
    color: var(--primary-font-color);
    background: transparent;
    border: 0;
    border-radius: 0;
    box-shadow: none;
    cursor: pointer;
}

#mission-topbar .mission-topbar-picture-count {
    position: absolute;
    top: 7px;
    right: 5px;
    display: flex;
    min-width: 17px;
    height: 17px;
    align-items: center;
    justify-content: center;
    padding: 0 4px;
    box-sizing: border-box;
    color: var(--primary-button-font-color);
    background: var(--primary-button-bg-color);
    border: 2px solid var(--primary-bg-color);
    border-radius: 10px;
    font-size: 10px;
    font-weight: bold;
    line-height: 1;
}

#mission-topbar .mission-topbar-picture-count.empty {
    display: none;
}

#mission-topbar .mission-topbar-map:active,
#mission-topbar .mission-topbar-corpuls:active,
#mission-topbar .mission-topbar-picture:active {
    background: var(--secondary-bg-color);
}

#mission-topbar .mission-topbar-trailing-controls {
    display: flex;
    flex-shrink: 0;
    height: 100%;
    align-items: center;
    gap: 4px;
    margin-left: auto;
}

#mission-topbar .mission-topbar-trailing-controls > .mission-topbar-map,
#mission-topbar .mission-topbar-trailing-controls > .mission-topbar-corpuls,
#mission-topbar .mission-topbar-trailing-controls > .mission-topbar-picture,
#mission-topbar .mission-topbar-trailing-controls > .mission-topbar-voice,
#mission-topbar .mission-topbar-trailing-controls > .mission-topbar-streaming {
    width: 44px;
    flex-basis: 44px;
}

#mission-topbar .mission-topbar-map:disabled {
    opacity: 0.45;
    cursor: wait;
}

#mission-topbar .mission-topbar-voice {
    display: flex;
    width: 44px;
    height: 54px;
    flex: 0 0 44px;
    align-items: center;
    justify-content: center;
    padding: 0;
    color: var(--primary-font-color);
    background: transparent;
    border: 0;
    border-radius: 0;
    box-shadow: none;
    cursor: pointer;
}

#mission-topbar .mission-topbar-voice:active {
    background: var(--secondary-bg-color);
}

#mission-topbar .mission-topbar-streaming {
    display: flex;
    justify-content: center;
    align-items: center;
    width: 44px;
    flex: 0 0 44px;
    font-size: 18px;
    cursor: pointer;
}

@keyframes breathe {
    0% {
        transform: scale(1);
        opacity: 0.8;
    }

    50% {
        transform: scale(1.2);
        opacity: 1;
    }

    100% {
        transform: scale(1);
        opacity: 0.8;
    }
}

#mission-topbar .mission-topbar-streaming.active i {
    color: var(--failure-color);
    animation: breathe 2s infinite ease-in-out;
}


#videochat-view {
    position: absolute;
    top: 54px;
    right: 0;
    width: 100%;
    height: calc(100% - 127px);
    border: 0px;
    background: var(--secondary-bg-color);
    box-sizing: border-box;
}

#videochat-container {
    position: relative;
    width: 100%;
    height: 100%;
}

#videochat-view * {
    box-sizing: border-box;
}

#videochat-view #videochat-heading {
    display: none;
}

#videochat-blocker {
    position: absolute;
    inset: 0;
    z-index: 2;
    background: transparent;
    cursor: pointer;
}

#videochat-blocker.hidden {
    display: none;
}

#videochat-controls {
    display: flex;
    position: absolute;
    bottom: 24px;
    left: 50%;
    transform: translateX(-50%);
    height: 64px;
    background: rgba(13, 17, 23, 0.65);
    border: 1px solid #21262D;
    backdrop-filter: blur(12px);
    -webkit-backdrop-filter: blur(12px);
    border-radius: 32px;
    box-shadow: 0 4px 16px rgba(0, 0, 0, 0.35);
    align-items: center;
    padding: 0 12px;
    transition: opacity 0.5s ease, transform 0.5s ease;
    z-index: 3;
}

#videochat-controls.hidden {
    opacity: 0;
    pointer-events: none;
    transform: translateX(-50%) translateY(20px);
}

#videochat-container #videochat-participants-count {
    height: 100%;
    text-align: center;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-direction: column;
    gap: 2px;
    font-weight: bold;
    font-size: 14px;
    border-right: 1px solid #21262D;
    width: 52px;
    padding-top: 4px;
    color: #F1F5F9;
}

#videochat-container #videochat-participants-count .fa-fw {
        color: #F1F5F9;
    }

#videochat-container #toggle-microphone-btn {
    border: 0;
    background: transparent;
    width: 56px;
    height: 100%;
}

#videochat-container #toggle-microphone-btn .icon {
        color: #F1F5F9 !important;
    }

#videochat-container #toggle-microphone-btn .icon-error {
        color: var(--failure-color) !important;
    }

#videochat-container #toggle-microphone-btn i {
        font-size: 22px;
    }

#videochat-container #toggle-camera-btn,
#videochat-container #toggle-camera-mirror-btn {
    border: 0;
    background: transparent;
    width: 56px;
    height: 100%;
}

#videochat-container #toggle-camera-btn .icon, #videochat-container #toggle-camera-mirror-btn .icon {
        color: #F1F5F9 !important;
    }

#videochat-container #toggle-camera-btn .icon-error, #videochat-container #toggle-camera-mirror-btn .icon-error {
        color: var(--failure-color) !important;
    }

#videochat-container #toggle-camera-btn i, #videochat-container #toggle-camera-mirror-btn i {
        font-size: 22px;
    }

#videochat-container #expand-videoframe-btn {
    display: none;
}

#videochat-container #switch-camera-btn {
    border: 0;
    background: transparent;
    width: 56px;
    height: 100%;
}

#videochat-container #switch-camera-btn .icon {
        color: #F1F5F9 !important;
    }

#videochat-container #switch-camera-btn .icon-error {
        color: var(--failure-color) !important;
    }

#videochat-container #switch-camera-btn i {
        font-size: 22px;
    }

#videochat-container #invite-user-btn {
    border: 0;
    background: transparent;
    width: 56px;
    height: 100%;
}

#videochat-container #invite-user-btn .icon {
        color: #F1F5F9 !important;
    }

#videochat-container #invite-user-btn i {
        font-size: 22px;
    }

#videochat-container #videoframe {
    position: absolute;
    width: 100%;
    height: 100%;
    top: 0;
    right: 0;
    z-index: 1;
}

#videochat-container #videoframe i {
        position: absolute;
        top: 50%;
        left: 50%;
        transform: translate(-50%, -50%);
        font-size: 36px;
        color: var(--primary-font-color);
    }

#videochat-container #videoframe.jitsi-loaded i {
            display: none;
        }

#videochat-container #videoframe iframe {
    position: absolute;
    inset: 0;
    display: block;
    width: 100% !important;
    height: 100% !important;
    border: 0;
}


button {
    border: 2px solid var(--secondary-button-bg-color);
    background: var(--primary-bg-color);
    width: 50px;
    height: 50px;
    text-align: center;
}

.icon {
    font-size: 22px;
    color: var(--primary-font-color);
    vertical-align: middle;
    text-align: center;
}

@media (orientation: landscape) {
    #app {
        --mission-landscape-rail-width: calc(96px + var(--webview-area-inset-right));
        --mission-landscape-nav-padding: 4px;
        --mission-landscape-nav-bottom-padding: calc(var(--mission-landscape-nav-padding) + var(--webview-area-inset-bottom) + 10px);
        --mission-landscape-nav-slot: 52px;
        --mission-landscape-quick-action-size: 58px;
        --mission-landscape-quick-action-nudge: 0px;
        --mission-landscape-nav-inner-height: calc(100dvh - 54px - var(--mission-landscape-nav-padding) - var(--mission-landscape-nav-bottom-padding));
        --mission-landscape-nav-cell: calc(var(--mission-landscape-nav-inner-height) / 5);
        --mission-landscape-quick-action-top: calc(54px + var(--mission-landscape-nav-padding) + (var(--mission-landscape-nav-cell) * 2) + ((var(--mission-landscape-nav-cell) - var(--mission-landscape-quick-action-size)) / 2) + var(--mission-landscape-quick-action-nudge));
    }

    #streaming-popup {
        top: 64px;
        right: calc(var(--mission-landscape-rail-width) + 12px);
        max-width: min(360px, calc(100% - var(--mission-landscape-rail-width) - 32px));
        max-height: calc(100dvh - 80px);
    }

    .overview-tile {
        margin: 16px;
        width: calc(100% - 40px);
        height: 124px;
    }

    .overview-tile .patient-name {
        top: 14px;
        left: 18px;
        width: calc(100% - 116px);
        font-size: 18px;
    }

    .overview-tile .patient-age-gender {
        margin-left: 8px;
        font-size: 14px;
    }

    .overview-tile .patient-diagnosis {
        top: 50%;
        left: 18px;
        width: calc(100% - 136px);
        font-size: 14px;
        transform: translateY(-50%);
    }

    .overview-tile .mission-started {
        top: auto;
        bottom: 14px;
        left: 18px;
        font-size: 14px;
    }

    .overview-tile .status-display {
        top: 20px;
        right: 14px;
        font-size: 14px;
    }

    #mobilenav-view {
        flex-direction: column;
        justify-content: flex-start;
        gap: 0;
        top: 54px;
        right: 0;
        bottom: 0;
        left: auto;
        width: var(--mission-landscape-rail-width);
        height: auto;
        padding: var(--mission-landscape-nav-padding) calc(6px + var(--webview-area-inset-right)) var(--mission-landscape-nav-bottom-padding) 6px;
        box-sizing: border-box;
        overflow-x: hidden;
        overflow-y: hidden;
        border-top: 0;
        border-right: 0px solid transparent;
        border-left: 1px solid var(--tertiary-bg-color);
        background:
            linear-gradient(180deg, color-mix(in srgb, var(--primary-bg-color), transparent 8%) 0%, var(--primary-bg-color) 100%);
    }


    #nothing-nav-item {
        min-height: 0;
        pointer-events: none;
    }

    #nothing-nav-item .badge,
    #nothing-nav-item::after {
        display: none !important;
    }

    #mobilenav-view .item,
    #mobilenav-view .item-active {
        min-height: 0;
        width: 100%;
        height: 0;
        padding: 8px 12px 8px 6px;
        box-sizing: border-box;
        flex: 1 1 0;
        gap: 6px;
        border-radius: 0;
        overflow: hidden;
        justify-content: center;
    }

    #mobilenav-view .item {
        opacity: 1;
    }

    #mobilenav-view .item-active {
        background: transparent;
        box-shadow: none;
    }

    #mobilenav-view .item::after,
    #mobilenav-view .item-active::after {
        position: absolute;
        right: 0;
        top: 50%;

        width: 3px;
        height: 28px;
        margin-top: 0;
        border: 0;
        border-radius: 4px 0 0 4px;
        background: transparent;
        transform: translateY(-50%);
    }

    #mobilenav-view .item-active::after {
        width: 4px;
        background: var(--primary-font-color);
    }

    #mobilenav-view .item .icon,
    #mobilenav-view .item-active .icon {
        font-size: 22px;
    }

    .badge {
        top: 12px;
        right: calc(50% - 28px);
        left: auto;
        transform: none;
    }

    #mission-topbar {
        padding: 0 max(4px, var(--webview-area-inset-right)) 0 max(4px, var(--webview-area-inset-left));
        box-sizing: border-box;
        gap: 4px;
    }

    #mission-topbar .mission-topbar-back-btn,
    #mission-topbar .mission-topbar-recall-btn,
    #mission-topbar .mission-topbar-map,
    #mission-topbar .mission-topbar-corpuls,
    #mission-topbar .mission-topbar-picture,
    #mission-topbar .mission-topbar-voice,
    #mission-topbar .mission-topbar-streaming {
        width: 44px;
        flex-basis: 44px;
        flex-shrink: 0;
        justify-content: center;
    }

    #mission-topbar .mission-topbar-back-btn i {
        margin-left: 0;
    }

    #mission-topbar .mission-topbar-patient-name {
        min-width: 0;
        flex: 1 1 0;
        justify-content: center;
        padding: 0;
    }

    #mission-topbar .mission-topbar-patient-age-gender {
        white-space: nowrap;
    }

    #mission-topbar .mission-topbar-trailing-controls {
        gap: 4px;
    }

    #mission-topbar .mission-topbar-trailing-controls > .mission-topbar-map,
    #mission-topbar .mission-topbar-trailing-controls > .mission-topbar-corpuls,
    #mission-topbar .mission-topbar-trailing-controls > .mission-topbar-picture,
    #mission-topbar .mission-topbar-trailing-controls > .mission-topbar-voice,
    #mission-topbar .mission-topbar-trailing-controls > .mission-topbar-streaming {
        width: 44px;
        flex-basis: 44px;
    }

    #assistant-view,
    #map-view,
    #chat-view,
    #delegations-view,
    #protocol-view,
    #videochat-view {
        top: 54px;
        left: 0;
        right: var(--mission-landscape-rail-width);
        width: auto;
        height: calc(100% - 54px);
    }

    #assistant-view,
    #map-view {
        overflow: hidden;
    }

    #videochat-view {
        background:
            radial-gradient(circle at 20% 20%, rgba(255, 255, 255, 0.04), transparent 24%),
            #050505;
    }

    #videochat-container {
        overflow: hidden;
    }

    #videochat-blocker,
    #videochat-container #videoframe {
        inset: 0;
        width: auto;
        height: auto;
        border-radius: 0;
    }

    #videochat-container #videoframe {
        overflow: hidden;
        background: #000;
    }

    #videochat-controls {
        left: 50%;
        right: auto;
        bottom: 20px;
        transform: translateX(-50%);
        height: 64px;
        padding: 0 12px;
        border-radius: 999px;
        background: rgba(13, 17, 23, 0.78);
        box-shadow: 0 18px 36px rgba(0, 0, 0, 0.28);
    }

    #videochat-controls.hidden {
        transform: translateX(-50%) translateY(110%);
    }

    #videochat-container #videochat-participants-count {
        width: 72px;
        font-size: 15px;
    }

    #videochat-container #toggle-microphone-btn,
    #videochat-container #toggle-camera-btn,
    #videochat-container #toggle-camera-mirror-btn,
    #videochat-container #switch-camera-btn,
    #videochat-container #invite-user-btn {
        width: 72px;
    }

    #chat-view {
        padding: 0 24px 20px;
        box-sizing: border-box;
    }

    #chat-content-view,
    #chat-input-view {
        width: 100%;
        max-width: 980px;
        margin: 0 auto;
    }

    #chat-content-view {
        padding: 22px 0 14px;
    }

    #chat-view .chat-message {
        max-width: min(60%, 620px);
        margin: 6px;
    }

    #chat-view .chat-message .chat-message-content {
        padding: 12px 14px 24px;
        line-height: 20px;
    }

    #chat-view .chat-message .chat-message-sent {
        bottom: 10px;
        right: 10px;
        font-size: 11px;
    }

    #chat-input-view {
        height: 74px;
        margin-bottom: 0;
    }

    #chat-input-view textarea {
        left: 0;
        bottom: 0;
        width: calc(100% - 78px);
        padding-right: 16px;
    }

    #chat-input-view #chat-input-send-btn,
    #chat-input-view #chat-input-media-btn {
        bottom: 0;
        right: 0;
    }

    #chat-input-view #chat-input-phrases-btn {
        bottom: 0;
        left: 0;
    }

    #chat-input-view #chat-input-media-space {
        right: 0;
        bottom: 74px;
        width: 120px;
        gap: 8px;
    }

    #chat-input-view #chat-input-media-space[style*="display: flex"] {
        display: grid !important;
        grid-template-columns: repeat(2, 56px);
        grid-template-rows: repeat(2, 56px);
        justify-content: end;
    }

    #chat-input-view #chat-input-media-space button {
        width: 56px;
        height: 56px;
    }

    #delegations-view {
        padding: 14px 20px 20px;
        box-sizing: border-box;
    }

    #delegations-view .no-data {
        margin-top: 20vh;
    }

    #delegations-view .delegation-item {
        max-width: 1040px;
        margin: 10px auto 14px;
    }

    #delegations-view .delegation-item .delegation-category {
        top: 13px;
        left: 14px;
        font-size: 16px;
    }

    #delegations-view .delegation-item .delegation-category .icon {
        width: 22px;
    }

    #delegations-view .delegation-item .delegation-status {
        top: 12px;
        right: 12px;
        font-size: 13px;
        padding: 4px 10px;
        white-space: nowrap;
        min-width: 56px;
        text-align: center;
        box-sizing: border-box;
    }

    #delegations-view .delegation-item .delegation-content {
        padding: 44px 0 8px;
    }

    #delegations-view .delegation-item .delegation-content .delegation-content-item {
        margin: 10px 16px;
    }

    #delegations-view .delegation-item .delegation-content .delegation-content-item .delegation-content-item-header {
        font-size: 11px;
    }

    #delegations-view .delegation-item .delegation-content .delegation-content-item .delegation-content-item-content {
        font-size: 15px;
        line-height: 1.25;
    }

    #delegations-view .delegation-item .delegation-content .delegation-content-item.delegation-content-item-additional {
        margin: 8px 12px -12px;
        padding: 10px 14px;
    }

    #delegations-view .delegation-item .delegation-content .delegation-btn {
        margin: 8px 14px 6px;
        padding: 8px 14px;
        font-size: 13px;
    }

    #delegations-view .delegation-item .delegation-content .delegation-btn .icon {
        margin-right: 10px;
        width: 18px;
    }

    #protocol-view {
        padding: 24px 28px 24px 84px;
        box-sizing: border-box;
    }

    .protocol-category {
        max-width: 1040px;
        margin: 0 auto 18px;
    }

    #protocol-view h3 {
        scroll-margin-top: 100px;
    }

    #protocol-view .scrolling-space {
        height: 30vh;
    }

    #protocol-nav-view {
        top: 54px;
        left: 0;
        width: 64px;
        height: calc(100% - 54px);
    }

    #protocol-nav-view div {
        width: 52px;
        height: 52px;
        margin: 4px;
        border-radius: 26px;
    }

    #protocol-nav-view div.active {
        width: 52px;
        height: 52px;
        margin: 5px;
        border-radius: 26px;
    }

    #protocol-quick-actions {
        width: var(--mission-landscape-quick-action-size);
        height: var(--mission-landscape-quick-action-size);
        border-radius: calc(var(--mission-landscape-quick-action-size) / 2);
        left: auto;
        top: var(--mission-landscape-quick-action-top);
        right: calc((var(--mission-landscape-rail-width) - var(--mission-landscape-quick-action-size)) / 2);
        bottom: auto;
        transform: none;
        z-index: 100000;
    }

    #protocol-quick-actions:active {
        transform: scale(0.9);
    }

    #protocol-quick-actions-space {
        left: auto;
        right: calc(var(--mission-landscape-rail-width) + var(--mission-landscape-quick-action-size) + 20px);
        top: calc(var(--mission-landscape-quick-action-top) - 64px);
        bottom: auto;
        width: min(440px, calc(100vw - var(--mission-landscape-rail-width) - var(--mission-landscape-quick-action-size) - 56px));
        padding: 0;
        align-items: flex-end;
        display: none;
        flex-direction: row;
        justify-content: flex-end;
        flex-wrap: wrap;
        gap: 12px;
        max-height: calc(100vh - var(--mission-landscape-quick-action-top) + 48px - var(--webview-area-inset-bottom));
        max-height: calc(100dvh - var(--mission-landscape-quick-action-top) + 48px - var(--webview-area-inset-bottom));
        overflow-y: auto;
        scrollbar-width: none;
    }

    #protocol-quick-actions-space::-webkit-scrollbar {
        display: none;
    }


    #protocol-quick-actions-space button {
        width: calc((100% - 12px) / 2);
        min-width: 0;
        margin: 0;
    }
}

#app.nidalite-mission #protocol-view {
    right: 0;
    height: calc(100% - 53px);
    padding-bottom: calc(96px + var(--webview-area-inset-bottom));
}

#app.nidalite-mission #protocol-nav-view {
    height: calc(100% - 55px + var(--webview-area-inset-bottom));
    padding-bottom: var(--webview-area-inset-bottom);
    box-sizing: border-box;
}

html.platform-android #app.nidalite-mission #protocol-nav-view {
    height: calc(100% - 55px);
}

#app.nidalite-mission #mission-topbar .mission-topbar-back-btn {
    width: 44px;
    flex-basis: 44px;
    justify-content: center;
}

#app.nidalite-mission #mission-topbar .mission-topbar-back-btn i {
    margin-left: 0;
}

#app.nidalite-mission #mission-topbar .mission-topbar-patient-name {
    min-width: 0;
    flex: 1 1 0;
    justify-content: center;
    overflow: hidden;
    white-space: nowrap;
    text-overflow: ellipsis;
}

#app.nidalite-mission #protocol-quick-actions {
    left: auto;
    right: calc(20px + var(--webview-area-inset-right));
    top: auto;
    bottom: calc(20px + var(--webview-area-inset-bottom));
    transform: none;
}

#app.nidalite-mission #protocol-quick-actions:active {
    transform: scale(0.9);
}

#app.nidalite-mission #protocol-quick-actions-space {
    left: auto;
    right: calc(20px + var(--webview-area-inset-right));
    top: auto;
    bottom: calc(96px + var(--webview-area-inset-bottom));
    width: min(320px, calc(100vw - 40px - var(--webview-area-inset-right)));
    max-height: calc(100vh - 112px - var(--webview-area-inset-top) - var(--webview-area-inset-bottom));
    max-height: calc(100dvh - 112px - var(--webview-area-inset-top) - var(--webview-area-inset-bottom));
    padding: 0;
    align-items: flex-end;
}

#app.nidalite-mission #protocol-quick-actions-space button {
    width: 100%;
    margin: 0;
}

.nidalite-picture-dialog {
    position: fixed;
    top: 50%;
    left: 50%;
    z-index: 100002;
    display: flex;
    width: min(760px, calc(100% - 32px - var(--webview-area-inset-left) - var(--webview-area-inset-right)));
    max-height: calc(85vh - var(--webview-area-inset-top) - var(--webview-area-inset-bottom));
    flex-direction: column;
    box-sizing: border-box;
    overflow: hidden;
    color: var(--primary-font-color);
    background: var(--primary-bg-color);
    border: 1px solid var(--tertiary-bg-color);
    border-radius: 24px;
    box-shadow: 0 20px 40px rgba(0, 0, 0, 0.4);
    transform: translate(-50%, -50%);
    animation: nidalitePictureDialogIn 0.3s cubic-bezier(0.175, 0.885, 0.32, 1.1);
}

@keyframes nidalitePictureDialogIn {
    from {
        opacity: 0;
        transform: translate(-50%, -46%) scale(0.96);
    }

    to {
        opacity: 1;
        transform: translate(-50%, -50%) scale(1);
    }
}

.nidalite-picture-dialog-header {
    display: flex;
    flex: 0 0 auto;
    align-items: center;
    gap: 14px;
    padding: 20px;
    border-bottom: 1px solid var(--tertiary-bg-color);
}

.nidalite-picture-dialog-icon {
    display: flex;
    width: 48px;
    height: 48px;
    flex: 0 0 48px;
    align-items: center;
    justify-content: center;
    color: var(--secondary-button-bg-color);
    background: var(--secondary-bg-color);
    border-radius: 14px;
    font-size: 22px;
}

.nidalite-picture-dialog-title {
    min-width: 0;
    flex: 1;
}

.nidalite-picture-dialog-header h3 {
    margin: 0 0 4px;
    text-align: left;
    color: var(--primary-font-color);
    font-size: 18px;
}

.nidalite-picture-dialog-header p {
    margin: 0;
    color: var(--secondary-font-color);
    font-size: 14px;
    line-height: 1.4;
}

.nidalite-picture-dialog-close {
    display: flex;
    flex: 0 0 auto;
    width: 44px;
    height: 44px;
    align-items: center;
    justify-content: center;
    padding: 0;
    color: var(--primary-font-color);
    background: var(--secondary-bg-color);
    border: 1px solid var(--tertiary-bg-color);
    border-radius: 14px;
    box-shadow: none;
    font-size: 20px;
}

#app.nidalite-mission #mission-topbar .mission-topbar-protocol-type {
    flex-shrink: 0;
    margin-right: 9px;
    padding: 3px 7px;
    color: var(--primary-button-font-color);
    background: var(--primary-button-bg-color);
    border-radius: 7px;
    font-size: 11px;
    line-height: 1.2;
    letter-spacing: .04em;
}

#app.nidalite-mission #mission-topbar .mission-topbar-protocol-type-nf {
    background: var(--failure-color);
}

#app.nidalite-mission #mission-topbar .mission-topbar-protocol-type-na {
    background: #7b2cbf;
}

#app.nidalite-mission .nidalite-nf-section-heading {
    display: flex;
    width: 100%;
    margin: 22px 0 6px;
    align-items: center;
    gap: 10px;
    color: var(--primary-font-color);
    font-size: 18px;
}

#app.nidalite-mission .nidalite-nf-section-heading::before,
#app.nidalite-mission .nidalite-nf-section-heading::after {
    height: 1px;
    flex: 1;
    content: '';
    background: var(--tertiary-bg-color);
}

#app.nidalite-mission .nidalite-nf-section-heading i,
#app.nidalite-mission .nidalite-nf-section-heading > span {
    display: flex;
    width: 22px;
    height: 22px;
    align-items: center;
    justify-content: center;
    font-size: 17px;
    font-weight: 400;
}

#app.nidalite-mission .nidalite-nf-section-heading.level-2 {
    justify-content: flex-start;
    margin-top: 20px;
    margin-bottom: 0;
    font-size: 15px;
}

#app.nidalite-mission .nidalite-nf-section-heading.level-2::before {
    display: none;
}

#app.nidalite-mission .nidalite-nf-section-heading.level-2 > span {
    width: 18px;
    height: 18px;
    font-size: 14px;
}

#app.nidalite-mission .nidalite-nf-calculated-field {
    display: flex;
    min-height: 49px;
    padding: 0 14px;
    align-items: center;
    color: var(--secondary-font-color);
    background: color-mix(in srgb, var(--secondary-bg-color) 78%, transparent);
    border: 1px solid var(--tertiary-bg-color);
    border-radius: 10px;
    box-sizing: border-box;
}

#app.nidalite-mission .nidalite-nf-anamnesis-category textarea {
    height: 104px;
    min-height: 86px;
    resize: vertical;
}

#app.nidalite-mission [data-protocol-field-path="nfAnamnesis.emergencyNarrative"] textarea {
    height: 280px;
}

#app.nidalite-mission [data-protocol-field-path="diagnosis.freeText"] textarea {
    height: 104px;
    min-height: 86px;
    resize: vertical;
}

#app.nidalite-mission .nidalite-nf-anamnesis-category .protocol-choice-options {
    grid-template-columns: repeat(auto-fit, minmax(min(145px, 100%), 1fr));
}

#app.nidalite-mission .nidalite-nf-anamnesis-category .protocol-fields-grid {
    row-gap: 8px;
}

#app.nidalite-mission .nidalite-nf-anamnesis-category .protocol-choice-group {
    margin-top: 8px;
    margin-bottom: 0;
}

#app.nidalite-mission .nidalite-nf-anamnesis-category .protocol-field:has(> .nidalite-nf-section-heading) + .protocol-field > .protocol-choice-group {
    margin-top: 0;
}

#app.nidalite-mission .nidalite-nf-anamnesis-category .protocol-field:has(> .nidalite-nf-section-heading) + .protocol-field > h5:first-child {
    margin-top: 0;
}

#app.nidalite-mission .nidalite-medication-grid {
    min-width: 0;
    margin: 8px 0 0;
    padding: 0;
    border: 0;
}

#app.nidalite-mission .nidalite-medication-grid legend {
    margin-bottom: 10px;
    font-size: 14px;
    font-weight: 700;
    opacity: .8;
}

#app.nidalite-mission .nidalite-medication-rows {
    display: grid;
    gap: 10px;
}

#app.nidalite-mission .nidalite-medication-row {
    display: grid;
    grid-template-columns: minmax(160px, 1fr) repeat(4, minmax(58px, 72px)) 42px;
    gap: 8px;
    padding: 12px;
    align-items: end;
    background: color-mix(in srgb, var(--secondary-bg-color) 82%, transparent);
    border: 1px solid var(--tertiary-bg-color);
    border-radius: 12px;
}

#app.nidalite-mission .nidalite-medication-name,
#app.nidalite-mission .nidalite-medication-dose {
    display: grid;
    min-width: 0;
    gap: 6px;
}

#app.nidalite-mission .nidalite-medication-name > span,
#app.nidalite-mission .nidalite-medication-dose > span {
    overflow: hidden;
    color: var(--secondary-font-color);
    font-size: 11px;
    line-height: 1.2;
    text-overflow: ellipsis;
    white-space: nowrap;
}

#app.nidalite-mission .protocol-category .nidalite-medication-row input,
#app.nidalite-mission .protocol-category .nidalite-medication-row select {
    height: 42px;
    min-width: 0;
    padding: 0 9px;
}

#app.nidalite-mission .nidalite-medication-remove {
    width: 42px;
    height: 42px;
    padding: 0;
    color: var(--secondary-font-color);
    background: transparent;
    border: 1px solid var(--tertiary-bg-color);
    border-radius: 10px;
    box-shadow: none;
}

#app.nidalite-mission .nidalite-medication-add {
    width: auto;
    min-height: 42px;
    margin-top: 10px;
    padding: 0 16px;
    color: var(--primary-font-color);
    background: var(--secondary-bg-color);
    border: 1px solid var(--tertiary-bg-color);
    border-radius: 10px;
    box-shadow: none;
    font-weight: 600;
}

#app.nidalite-mission .nidalite-medication-add i {
    margin-right: 6px;
}

@media (max-width: 600px) {
    #app.nidalite-mission .nidalite-medication-row {
        grid-template-columns: repeat(4, minmax(0, 1fr)) 42px;
    }

    #app.nidalite-mission .nidalite-medication-name {
        grid-column: 1 / -1;
    }
}

.nidalite-picture-capture-btn {
    flex: 0 0 auto;
    width: auto;
    margin: 18px 20px;
    border-radius: 12px;
}

.nidalite-picture-capture-btn i {
    margin-right: 8px;
}

.nidalite-picture-gallery {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 14px;
    min-height: 0;
    overflow-y: auto;
    padding: 0 20px 20px;
    overscroll-behavior: contain;
}

.nidalite-picture-empty {
    grid-column: 1 / -1;
    display: flex;
    min-height: 210px;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 14px;
    padding: 24px;
    box-sizing: border-box;
    color: var(--secondary-font-color);
    background: var(--secondary-bg-color);
    border: 1px solid var(--tertiary-bg-color);
    border-radius: 16px;
}

.nidalite-picture-empty i {
    color: var(--secondary-button-bg-color);
    font-size: 36px;
}

.nidalite-picture-card {
    position: relative;
    display: flex;
    min-width: 0;
    min-height: 0;
    flex-direction: column;
    overflow: hidden;
    background: var(--secondary-bg-color);
    border: 1px solid var(--tertiary-bg-color);
    border-radius: 16px;
}

.nidalite-picture-card>img {
    display: block;
    width: 100%;
    height: auto;
    min-height: 0;
    aspect-ratio: 4 / 3;
    margin: 0;
    object-fit: cover;
    cursor: zoom-in;
    background: var(--tertiary-bg-color);
}

.nidalite-picture-card>img:focus-visible {
    outline: 3px solid var(--secondary-button-bg-color);
    outline-offset: -3px;
}

.nidalite-picture-card.preview-unavailable>img {
    display: none;
}

.nidalite-picture-details {
    display: flex;
    min-width: 0;
    flex-direction: column;
    justify-content: center;
    gap: 8px;
    padding: 12px;
}

.nidalite-picture-details small {
    overflow: hidden;
    color: var(--secondary-font-color);
    font-size: 12px;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.nidalite-picture-details input {
    width: 100%;
    height: 40px;
    min-height: 40px;
    margin: 0;
    padding: 8px 10px;
    box-sizing: border-box;
    font-size: 14px;
}

.nidalite-picture-delete-btn {
    position: absolute;
    top: 10px;
    right: 10px;
    width: 40px;
    height: 40px;
    padding: 0;
    color: var(--failure-color);
    background: var(--primary-bg-color);
    border: 1px solid var(--tertiary-bg-color);
    border-radius: 12px;
    box-shadow: none;
}

@media (max-width: 620px) {
    .nidalite-picture-dialog {
        width: calc(100% - 20px - var(--webview-area-inset-left) - var(--webview-area-inset-right));
        max-height: calc(100% - 20px - var(--webview-area-inset-top) - var(--webview-area-inset-bottom));
    }

    .nidalite-picture-dialog-header {
        padding: 16px;
    }

    .nidalite-picture-dialog-icon {
        display: none;
    }

    .nidalite-picture-capture-btn {
        margin: 14px 16px;
    }

    .nidalite-picture-gallery {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 10px;
        padding: 0 16px 16px;
    }

    .nidalite-picture-card {
        display: flex;
    }

    .nidalite-picture-card>img {
        height: auto;
        min-height: 0;
        aspect-ratio: 4 / 3;
    }

    .nidalite-picture-details {
        padding: 10px;
    }
}

@media (max-width: 370px) {
    .nidalite-picture-gallery {
        grid-template-columns: 1fr;
    }
}

.nidalite-signature-overlay {
    position: fixed;
    inset: 0;
    z-index: 100004;
    background: rgba(0, 0, 0, 0.72);
    backdrop-filter: blur(12px);
    -webkit-backdrop-filter: blur(12px);
    animation: contentBlockFadeIn 0.2s ease forwards;
}

.nidalite-signature-dialog {
    position: fixed;
    inset: calc(10px + var(--webview-area-inset-top)) calc(10px + var(--webview-area-inset-right)) calc(10px + var(--webview-area-inset-bottom)) calc(10px + var(--webview-area-inset-left));
    z-index: 100005;
    display: grid;
    grid-template-rows: auto minmax(0, 1fr) auto;
    overflow: hidden;
    color: var(--primary-font-color);
    background: var(--primary-bg-color);
    border: 1px solid var(--tertiary-bg-color);
    border-radius: 24px;
    box-shadow: 0 24px 60px rgba(0, 0, 0, 0.5);
    animation: nidaliteSignatureDialogIn 0.25s cubic-bezier(0.175, 0.885, 0.32, 1.05);
}

@keyframes nidaliteSignatureDialogIn {
    from {
        opacity: 0;
        transform: scale(0.98);
    }

    to {
        opacity: 1;
        transform: scale(1);
    }
}

.nidalite-signature-header {
    display: flex;
    align-items: center;
    gap: 14px;
    padding: 14px 18px;
    border-bottom: 1px solid var(--tertiary-bg-color);
}

.nidalite-signature-heading-icon {
    display: flex;
    width: 46px;
    height: 46px;
    flex: 0 0 46px;
    align-items: center;
    justify-content: center;
    color: var(--secondary-button-bg-color);
    background: var(--secondary-bg-color);
    border-radius: 14px;
    font-size: 22px;
}

.nidalite-signature-heading {
    min-width: 0;
    flex: 1;
}

.nidalite-signature-heading h3 {
    margin: 0 0 3px;
    color: var(--primary-font-color);
    text-align: left;
    font-size: 18px;
}

.nidalite-signature-heading p {
    margin: 0;
    color: var(--secondary-font-color);
    font-size: 14px;
}

.nidalite-signature-cancel-btn {
    width: 44px;
    height: 44px;
    flex: 0 0 44px;
    padding: 0;
    color: var(--primary-font-color);
    background: var(--secondary-bg-color);
    border: 1px solid var(--tertiary-bg-color);
    border-radius: 50%;
    box-shadow: none;
}

.nidalite-signature-canvas-panel {
    position: relative;
    min-height: 0;
    margin: 14px 18px;
    overflow: hidden;
    background: #ffffff;
    border: 2px dashed #9ba5ab;
    border-radius: 16px;
    transition: border-color 0.2s ease;
}

.nidalite-signature-canvas-panel.has-signature {
    border-color: var(--secondary-button-bg-color);
    border-style: solid;
}

.nidalite-signature-canvas-panel>span {
    position: absolute;
    top: 16px;
    left: 18px;
    z-index: 1;
    color: #8b959b;
    font-size: 14px;
    font-weight: bold;
    pointer-events: none;
    transition: opacity 0.2s ease;
}

.nidalite-signature-canvas-panel.has-signature>span {
    opacity: 0;
}

.nidalite-signature-canvas-panel::after {
    position: absolute;
    right: 5%;
    bottom: 22%;
    left: 5%;
    height: 1px;
    background: #c5cbd0;
    content: '';
    pointer-events: none;
}

.nidalite-signature-canvas-panel canvas {
    position: relative;
    z-index: 2;
    display: block;
    width: 100%;
    height: 100%;
    cursor: crosshair;
    touch-action: none;
}

.nidalite-signature-actions {
    display: grid;
    grid-template-columns: minmax(170px, 0.75fr) minmax(230px, 1fr) minmax(250px, 1.15fr);
    gap: 12px;
    padding: 0 18px 16px;
}

.nidalite-signature-actions button {
    width: 100%;
    height: 54px;
    padding: 0 18px;
    border-radius: 12px;
    font-size: 15px;
    font-weight: bold;
}

.nidalite-signature-actions button i {
    margin-right: 7px;
}

.nidalite-signature-clear-btn,
.nidalite-signature-skip-btn {
    color: var(--primary-font-color);
    background: var(--secondary-bg-color);
    border: 1px solid var(--tertiary-bg-color);
    box-shadow: none;
}

.nidalite-signature-skip-btn {
    color: var(--failure-color);
}

.nidalite-signature-submit-btn:disabled {
    opacity: 0.35;
}

@media (orientation: portrait) {
    .nidalite-signature-dialog {
        inset: calc(8px + var(--webview-area-inset-top)) calc(8px + var(--webview-area-inset-right)) calc(8px + var(--webview-area-inset-bottom)) calc(8px + var(--webview-area-inset-left));
    }

    .nidalite-signature-actions {
        grid-template-columns: 1fr 1fr;
    }

    .nidalite-signature-submit-btn {
        grid-column: 1 / -1;
    }
}

@media (max-height: 520px) {
    .nidalite-signature-header {
        padding-top: 10px;
        padding-bottom: 10px;
    }

    .nidalite-signature-heading-icon {
        display: none;
    }

    .nidalite-signature-canvas-panel {
        margin-top: 10px;
        margin-bottom: 10px;
    }

    .nidalite-signature-actions {
        padding-bottom: 10px;
    }
}

/* NIDA Assistant Dialog & Waveform */
#dialog.nida-assistant {
    display: flex;
    flex-direction: column;
    align-items: center;
    padding: 48px;
    gap: 40px;
    background: rgba(18, 18, 18, 0.9) !important;
    backdrop-filter: blur(30px);
    -webkit-backdrop-filter: blur(30px);
    border: 1px solid rgba(255, 255, 255, 0.12);
    box-shadow: 0 40px 80px rgba(0, 0, 0, 0.7);
    width: auto;
    min-width: 400px;
    max-width: 90%;
    max-height: 90vh;
    border-radius: 48px;
    color: white;
    z-index: 100002;
    overflow-y: auto;
    transition: all 0.5s cubic-bezier(0.16, 1, 0.3, 1);
}

#nida-assistant-container {
    display: flex;
    flex-direction: column;
    align-items: center;
    width: 100%;
    gap: 40px;
}


#nida-transcription {
    font-size: 20px;
    line-height: 1.6;
    text-align: center;
    width: 100%;
    min-height: 60px;
    color: rgba(255, 255, 255, 0.98);
    font-weight: 500;
}

#nida-transcription .partial {
    color: rgba(255, 255, 255, 0.4);
}

#nida-assistant-close-btn {
    background: rgba(255, 255, 255, 0.1);
    border: none;
    color: white;
    padding: 12px 24px;
    border-radius: 20px;
    font-size: 14px;
    font-weight: 600;
    cursor: pointer;
    transition: all 0.2s ease;
}

#nida-assistant-close-btn:active {
    transform: scale(0.95);
    background: rgba(255, 255, 255, 0.2);
}

.nida-status {
    font-size: 12px;
    color: rgba(255, 255, 255, 0.5);
    display: flex;
    align-items: center;
}

.nida-status-dot {
    width: 8px;
    height: 8px;
    background: var(--primary-button-bg-color);
    border-radius: 50%;
    box-shadow: 0 0 12px var(--primary-button-bg-color);
    margin-right: 8px;
    display: inline-block;
    transition: all 0.3s ease;
}

.nida-status-dot.listening {
    animation: nida-pulse 1.5s infinite alternate;
}

@keyframes nida-pulse {
    0% {
        transform: scale(1);
        opacity: 0.8;
        box-shadow: 0 0 4px var(--primary-button-bg-color);
    }

    100% {
        transform: scale(1.4);
        opacity: 1;
        box-shadow: 0 0 15px var(--primary-button-bg-color);
    }
}

.assistant-response {
    background: rgba(255, 255, 255, 0.05);
    padding: 24px 32px;
    border-radius: 24px;
    margin-top: 24px;
    border-left: 5px solid var(--primary-button-bg-color);
    font-size: 18px;
    line-height: 1.6;
    text-align: left;
    width: 100%;
    box-sizing: border-box;
}

.assistant-action-confirm {
    font-size: 12px;
    color: #2ecc71;
    margin-top: 8px;
    display: flex;
    align-items: center;
    gap: 6px;
    animation: fadeIn 0.3s ease;
}

.nidalens-overlay {
    position: fixed;
    z-index: 100009;
    inset: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: max(14px, var(--webview-area-inset-top)) max(14px, var(--webview-area-inset-right)) max(14px, var(--webview-area-inset-bottom)) max(14px, var(--webview-area-inset-left));
    box-sizing: border-box;
    background: rgba(7, 11, 18, 0.78);
    backdrop-filter: blur(16px);
}

.nidalens-dialog {
    display: flex;
    width: min(940px, 100%);
    max-height: min(880px, 100%);
    flex-direction: column;
    overflow: hidden;
    color: var(--primary-font-color);
    background: var(--primary-bg-color);
    border: 1px solid var(--tertiary-bg-color);
    border-radius: 28px;
    box-shadow: 0 30px 90px rgba(0, 0, 0, 0.42);
}

.nidalens-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 18px;
    padding: 20px 23px;
    border-bottom: 1px solid var(--tertiary-bg-color);
}

.nidalens-brand {
    display: flex;
    min-width: 0;
    align-items: center;
    gap: 14px;
}

.nidalens-brand>span,
.nidalens-review-icon {
    display: flex;
    width: 48px;
    height: 48px;
    flex: 0 0 48px;
    align-items: center;
    justify-content: center;
    color: var(--primary-button-font-color);
    background: linear-gradient(145deg, var(--primary-button-bg-color), color-mix(in srgb, var(--primary-button-bg-color) 55%, #796cff));
    border-radius: 16px;
    box-shadow: 0 10px 26px color-mix(in srgb, var(--primary-button-bg-color) 20%, transparent);
    font-size: 22px;
}

.nidalens-brand h2,
.nidalens-brand p,
.nidalens-intro h3,
.nidalens-intro p,
.nidalens-section-heading h3,
.nidalens-section-heading p,
.nidalens-message p,
.nidalens-processing h3,
.nidalens-processing p {
    margin: 0;
}

.nidalens-brand h2 {
    font-size: 22px;
    letter-spacing: 0.01em;
}

.nidalens-brand p {
    margin-top: 3px;
    color: var(--secondary-font-color);
    font-size: 13px;
}

.nidalens-close,
.nidalens-back {
    display: flex;
    width: 44px;
    height: 44px;
    flex: 0 0 44px;
    align-items: center;
    justify-content: center;
    padding: 0;
    color: var(--primary-font-color);
    background: var(--secondary-bg-color);
    border: 1px solid var(--tertiary-bg-color);
    border-radius: 14px;
    box-shadow: none;
    font-size: 20px;
}

.nidalens-content {
    display: flex;
    min-height: 0;
    flex: 1;
    flex-direction: column;
    overflow: auto;
    overflow-x: hidden;
    overscroll-behavior: contain;
    scrollbar-gutter: stable;
}

.nidalens-intro {
    padding: 34px 30px 18px;
    text-align: center;
}

.nidalens-intro>span {
    color: var(--primary-button-bg-color);
    font-size: 11px;
    font-weight: 800;
    letter-spacing: 0.12em;
    text-transform: uppercase;
}

.nidalens-intro h3 {
    margin-top: 7px;
    font-size: 26px;
}

.nidalens-intro p {
    margin-top: 8px;
    color: var(--secondary-font-color);
    line-height: 1.45;
}

.nidalens-features {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
    gap: 14px;
    align-items: stretch;
    padding: 18px 30px 34px;
}

.nidalens-features.has-interview {
    grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
}

.nidalens-features>button {
    display: flex;
    width: 100%;
    height: auto;
    min-width: 0;
    min-height: 220px;
    flex-direction: column;
    align-items: flex-start;
    padding: 20px;
    color: var(--primary-font-color);
    background: var(--secondary-bg-color);
    border: 1px solid var(--tertiary-bg-color);
    border-radius: 22px;
    box-shadow: none;
    text-align: left;
    transition: transform 150ms ease, border-color 150ms ease, background 150ms ease;
}

.nidalens-features>button:active {
    transform: scale(0.98);
}

.nidalens-features>button:hover {
    background: color-mix(in srgb, var(--primary-button-bg-color) 6%, var(--secondary-bg-color));
    border-color: color-mix(in srgb, var(--primary-button-bg-color) 34%, var(--tertiary-bg-color));
}

.nidalens-feature-icon {
    display: flex;
    width: 54px;
    height: 54px;
    align-items: center;
    justify-content: center;
    margin-bottom: 30px;
    color: var(--primary-button-bg-color);
    background: color-mix(in srgb, var(--primary-button-bg-color) 12%, var(--primary-bg-color));
    border-radius: 17px;
    font-size: 23px;
}

.nidalens-features>button>span:nth-child(2) {
    display: flex;
    min-width: 0;
    flex: 1;
    flex-direction: column;
}

.nidalens-features strong {
    font-size: 18px;
}

.nidalens-features small {
    margin-top: 8px;
    color: var(--secondary-font-color);
    font-size: 13px;
    line-height: 1.45;
}

.nidalens-features>button>i {
    align-self: flex-end;
    margin-left: auto;
    color: var(--secondary-font-color);
}

.nidalens-feature-icon.sop {
    color: #18a983;
    background: color-mix(in srgb, #18a983 13%, var(--primary-bg-color));
}

.nidalens-sop-chat {
    position: fixed;
    z-index: 100001;
    inset: 0;
    display: grid;
    grid-template-rows: auto minmax(0, 1fr) auto;
    box-sizing: border-box;
    color: var(--primary-font-color);
    background: var(--primary-bg-color);
}

.nidalens-sop-header {
    display: grid;
    grid-template-columns: auto auto minmax(0, 1fr) auto;
    align-items: center;
    gap: 13px;
    padding: max(13px, var(--webview-area-inset-top)) max(18px, var(--webview-area-inset-right)) 13px max(18px, var(--webview-area-inset-left));
    border-bottom: 1px solid var(--tertiary-bg-color);
    background: color-mix(in srgb, var(--primary-bg-color) 94%, transparent);
}

.nidalens-sop-header h2,
.nidalens-sop-header p,
.nidalens-sop-empty h3,
.nidalens-sop-empty p,
.nidalens-sop-bubble p {
    margin: 0;
}

.nidalens-sop-header h2 {
    font-size: 19px;
}

.nidalens-sop-header p {
    margin-top: 2px;
    color: var(--secondary-font-color);
    font-size: 12px;
}

.nidalens-sop-close,
.nidalens-sop-new,
.nidalens-sop-send {
    display: flex;
    width: 44px;
    height: 44px;
    align-items: center;
    justify-content: center;
    padding: 0;
    color: var(--primary-font-color);
    background: var(--secondary-bg-color);
    border: 1px solid var(--tertiary-bg-color);
    border-radius: 14px;
    box-shadow: none;
}

.nidalens-sop-icon {
    display: flex;
    width: 44px;
    height: 44px;
    align-items: center;
    justify-content: center;
    color: white;
    background: linear-gradient(145deg, #18a983, #087d92);
    border-radius: 14px;
    font-size: 19px;
}

.nidalens-sop-new {
    width: auto;
    gap: 7px;
    padding: 0 14px;
}

.nidalens-sop-messages {
    min-height: 0;
    overflow-y: auto;
    overscroll-behavior: contain;
    padding: 28px max(20px, calc((100vw - 880px) / 2)) 36px;
}

.nidalens-sop-empty {
    display: flex;
    min-height: 100%;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    box-sizing: border-box;
    padding: 36px 20px;
    color: var(--secondary-font-color);
    text-align: center;
}

.nidalens-sop-empty>span {
    display: flex;
    width: 68px;
    height: 68px;
    align-items: center;
    justify-content: center;
    margin-bottom: 18px;
    color: #18a983;
    background: color-mix(in srgb, #18a983 12%, var(--secondary-bg-color));
    border-radius: 22px;
    font-size: 29px;
}

.nidalens-sop-empty h3 {
    color: var(--primary-font-color);
    font-size: 22px;
}

.nidalens-sop-empty p {
    max-width: 540px;
    margin-top: 8px;
    line-height: 1.5;
}

.nidalens-sop-message {
    --nidalens-answer-accent: color-mix(in srgb, var(--primary-font-color) 24%, transparent);
    display: flex;
    width: 100%;
    flex-direction: column;
    align-items: flex-start;
    margin: 0 auto 22px;
}

.nidalens-sop-message.user {
    align-items: flex-end;
}

.nidalens-sop-bubble {
    max-width: min(720px, 88%);
    padding: 14px 17px;
    background: var(--secondary-bg-color);
    border: 1px solid var(--tertiary-bg-color);
    border-radius: 7px 19px 19px 19px;
    line-height: 1.52;
    white-space: pre-wrap;
    overflow-wrap: anywhere;
}

.nidalens-sop-message.assistant.tone-sop {
    --nidalens-answer-accent: #18a983;
}

.nidalens-sop-message.assistant.tone-medical-knowledge {
    --nidalens-answer-accent: #d8aa16;
}

.nidalens-sop-message.assistant.tone-model-knowledge {
    --nidalens-answer-accent: #df5d65;
}

.nidalens-sop-message.assistant .nidalens-sop-bubble {
    padding: 0;
    background: transparent;
    border: 0;
    border-radius: 0;
    box-shadow: none;
    white-space: normal;
}

.nidalens-sop-answer {
    display: flex;
    flex-direction: column;
    gap: 14px;
    text-align: left;
}

.nidalens-sop-answer-section {
    display: flex;
    flex-direction: column;
    gap: 7px;
}

.nidalens-sop-answer h3 {
    margin: 0 4px;
    padding: 0;
    color: var(--primary-font-color);
    border: 0;
    font-size: 14px;
    font-weight: 760;
    letter-spacing: 0.015em;
    line-height: 1.35;
}

.nidalens-sop-answer-card {
    display: flex;
    flex-direction: column;
    gap: 8px;
    padding: 14px 16px;
    background: color-mix(in srgb, var(--nidalens-answer-accent) 7%, var(--secondary-bg-color));
    border: 1px solid color-mix(in srgb, var(--nidalens-answer-accent) 27%, var(--tertiary-bg-color));
    border-radius: 16px;
    box-shadow: 0 5px 18px color-mix(in srgb, #000 7%, transparent);
    white-space: pre-wrap;
}

.nidalens-sop-answer-card.lead {
    border-left: 3px solid var(--nidalens-answer-accent);
    font-weight: 620;
}

.nidalens-sop-answer-section.summary .nidalens-sop-answer-card {
    background: color-mix(in srgb, var(--nidalens-answer-accent) 11%, var(--secondary-bg-color));
    border-color: color-mix(in srgb, var(--nidalens-answer-accent) 38%, var(--tertiary-bg-color));
}

.nidalens-sop-answer p,
.nidalens-sop-answer ul {
    margin: 0;
}

.nidalens-sop-answer ul {
    display: flex;
    flex-direction: column;
    gap: 7px;
    padding-left: 22px;
    list-style: disc outside;
}

.nidalens-sop-answer li {
    display: list-item;
    padding-left: 2px;
}

.nidalens-sop-answer li::marker {
    color: var(--nidalens-answer-accent);
    font-size: 0.9em;
}

.nidalens-sop-answer strong {
    color: var(--primary-font-color);
    font-weight: 750;
}

.nidalens-sop-answer em {
    color: var(--secondary-font-color);
    font-style: italic;
    font-weight: 550;
}

.nidalens-sop-answer u {
    color: var(--primary-font-color);
    text-decoration-color: var(--nidalens-answer-accent);
    text-decoration-thickness: 2px;
    text-underline-offset: 3px;
}

.nidalens-sop-answer-step {
    padding: 2px 0 2px 12px;
    border-left: 2px solid var(--nidalens-answer-accent);
    font-variant-numeric: tabular-nums;
}

.nidalens-sop-message.user .nidalens-sop-bubble {
    color: var(--primary-button-font-color);
    background: var(--primary-button-bg-color);
    border-color: transparent;
    border-radius: 19px 7px 19px 19px;
}

.nidalens-sop-message.error .nidalens-sop-bubble {
    padding: 14px 17px;
    color: var(--failure-color);
    background: var(--secondary-bg-color);
    border: 1px solid color-mix(in srgb, var(--failure-color) 35%, var(--tertiary-bg-color));
    border-radius: 7px 19px 19px 19px;
}

.nidalens-sop-stream-cursor {
    display: inline-block;
    width: 7px;
    height: 16px;
    margin-left: 4px;
    vertical-align: -2px;
    background: currentColor;
    animation: nidalens-sop-blink 0.8s steps(1) infinite;
}

@keyframes nidalens-sop-blink {
    50% { opacity: 0; }
}

.nidalens-sop-sources {
    display: flex;
    width: min(720px, 88%);
    flex-direction: column;
    gap: 5px;
    margin-top: 7px;
}

.nidalens-sop-provenance {
    display: flex;
    width: min(720px, 88%);
    flex-wrap: wrap;
    gap: 6px;
    margin-top: 7px;
}

.nidalens-sop-provenance-label {
    padding: 4px 9px;
    color: #087d65;
    background: color-mix(in srgb, #18a983 12%, var(--secondary-bg-color));
    border: 1px solid color-mix(in srgb, #18a983 30%, var(--tertiary-bg-color));
    border-radius: 999px;
    font-size: 11px;
    font-weight: 750;
}

.nidalens-sop-provenance-label.medical-knowledge {
    color: color-mix(in srgb, #d8aa16 70%, var(--primary-font-color));
    background: color-mix(in srgb, #d8aa16 12%, var(--secondary-bg-color));
    border-color: color-mix(in srgb, #d8aa16 32%, var(--tertiary-bg-color));
}

.nidalens-sop-provenance-label.general-medical-knowledge {
    color: color-mix(in srgb, #d8aa16 70%, var(--primary-font-color));
    background: color-mix(in srgb, #d8aa16 12%, var(--secondary-bg-color));
    border-color: color-mix(in srgb, #d8aa16 32%, var(--tertiary-bg-color));
}

.nidalens-sop-provenance-label.model-knowledge,
.nidalens-sop-provenance-label.gpt-oss {
    color: color-mix(in srgb, #df5d65 78%, var(--primary-font-color));
    background: color-mix(in srgb, #df5d65 12%, var(--secondary-bg-color));
    border-color: color-mix(in srgb, #df5d65 32%, var(--tertiary-bg-color));
}

.nidalens-sop-sources>strong {
    color: var(--secondary-font-color);
    font-size: 11px;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.nidalens-sop-source-list {
    display: flex;
    gap: 7px;
    overflow-x: auto;
    padding: 0 0 4px;
    overscroll-behavior-x: contain;
    scrollbar-width: thin;
    scroll-snap-type: x proximity;
}

.nidalens-sop-source {
    --nidalens-source-accent: #18a983;
    display: grid;
    width: min(260px, 72vw);
    height: auto;
    min-height: 48px;
    flex: 0 0 min(260px, 72vw);
    grid-template-columns: auto minmax(0, 1fr) auto;
    align-items: center;
    gap: 8px;
    padding: 7px 9px;
    color: var(--primary-font-color);
    background: color-mix(in srgb, var(--nidalens-source-accent) 7%, var(--secondary-bg-color));
    border: 1px solid color-mix(in srgb, var(--nidalens-source-accent) 28%, var(--tertiary-bg-color));
    border-radius: 11px;
    box-shadow: none;
    scroll-snap-align: start;
    text-align: left;
}

.nidalens-sop-source>i:first-child {
    color: var(--nidalens-source-accent);
    font-size: 17px;
}

.nidalens-sop-source.medical-knowledge,
.nidalens-sop-source.general-medical-knowledge {
    --nidalens-source-accent: #d8aa16;
}

.nidalens-sop-source>span {
    display: flex;
    min-width: 0;
    flex-direction: column;
}

.nidalens-sop-source b,
.nidalens-sop-source small {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.nidalens-sop-source small {
    margin-top: 1px;
    color: var(--secondary-font-color);
    font-size: 10px;
}

.nidalens-sop-composer {
    padding: 12px max(20px, calc((100vw - 880px) / 2)) max(12px, var(--webview-area-inset-bottom));
    border-top: 1px solid var(--tertiary-bg-color);
    background: var(--primary-bg-color);
}

.nidalens-sop-input-wrap {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    align-items: end;
    gap: 8px;
    padding: 7px;
    background: var(--secondary-bg-color);
    border: 1px solid var(--tertiary-bg-color);
    border-radius: 18px;
}

.nidalens-sop-input-wrap textarea {
    width: 100%;
    min-height: 44px;
    max-height: 132px;
    resize: none;
    box-sizing: border-box;
    padding: 11px 9px;
    color: var(--primary-font-color);
    background: transparent;
    border: 0;
    outline: 0;
    font: inherit;
    line-height: 1.45;
}

.nidalens-sop-send {
    color: var(--primary-button-font-color);
    background: var(--primary-button-bg-color);
    border-color: transparent;
}

.nidalens-sop-composer>small {
    display: block;
    margin-top: 7px;
    color: var(--secondary-font-color);
    font-size: 10px;
    text-align: center;
}

.nidalens-section-heading {
    display: flex;
    align-items: center;
    gap: 14px;
    padding: 22px 24px 15px;
}

.nidalens-section-heading h3 {
    font-size: 21px;
}

.nidalens-section-heading p {
    margin-top: 4px;
    color: var(--secondary-font-color);
    font-size: 13px;
    line-height: 1.4;
}

.nidalens-source-actions {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 10px;
    padding: 8px 24px 20px;
}

.nidalens-source-actions button {
    display: flex;
    width: 100%;
    height: auto;
    min-width: 0;
    min-height: 84px;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 9px;
    padding: 12px;
    color: var(--primary-font-color);
    background: var(--secondary-bg-color);
    border: 1px solid var(--tertiary-bg-color);
    border-radius: 16px;
    box-shadow: none;
    font-size: 13px;
    line-height: 1.25;
    text-align: center;
    white-space: normal;
}

.nidalens-source-actions button span {
    overflow-wrap: anywhere;
}

.nidalens-source-actions button i {
    color: var(--primary-button-bg-color);
    font-size: 22px;
}

.nidalens-source-summary {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 12px 24px;
    border-top: 1px solid var(--tertiary-bg-color);
}

.nidalens-source-summary span {
    padding: 5px 9px;
    color: var(--primary-button-bg-color);
    background: color-mix(in srgb, var(--primary-button-bg-color) 12%, transparent);
    border-radius: 9px;
    font-size: 12px;
    font-weight: 700;
}

.nidalens-source-list {
    display: grid;
    gap: 11px;
    padding: 0 24px 22px;
}

.nidalens-source-card {
    display: grid;
    grid-template-columns: 28px 120px minmax(0, 1fr);
    gap: 13px;
    align-items: center;
    padding: 12px;
    background: var(--secondary-bg-color);
    border: 1px solid var(--tertiary-bg-color);
    border-radius: 17px;
}

.nidalens-source-card.excluded {
    opacity: 0.52;
}

.nidalens-source-selector input {
    width: 22px;
    height: 22px;
    accent-color: var(--primary-button-bg-color);
}

.nidalens-source-preview {
    position: relative;
    display: flex;
    height: 88px;
    align-items: center;
    justify-content: center;
    overflow: hidden;
    background: #090b0e;
    border-radius: 11px;
}

.nidalens-source-preview img {
    width: 100%;
    height: 100%;
    object-fit: contain;
    transition: transform 160ms ease;
}

.nidalens-source-preview span {
    position: absolute;
    right: 5px;
    bottom: 5px;
    left: 5px;
    padding: 4px 6px;
    color: #fff;
    background: rgba(159, 92, 0, 0.88);
    border-radius: 6px;
    font-size: 9px;
    text-align: center;
}

.nidalens-source-details {
    display: flex;
    min-width: 0;
    flex-direction: column;
}

.nidalens-source-details strong {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.nidalens-source-details small {
    margin-top: 4px;
    color: var(--secondary-font-color);
}

.nidalens-source-controls {
    display: flex;
    gap: 7px;
    margin-top: 10px;
}

.nidalens-source-controls button {
    display: flex;
    width: 36px;
    height: 34px;
    align-items: center;
    justify-content: center;
    padding: 0;
    color: var(--primary-font-color);
    background: var(--primary-bg-color);
    border: 1px solid var(--tertiary-bg-color);
    border-radius: 9px;
    box-shadow: none;
}

.nidalens-source-controls button.danger {
    color: var(--failure-color);
}

.nidalens-empty {
    display: flex;
    min-height: 150px;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 10px;
    color: var(--secondary-font-color);
    border: 1px dashed var(--tertiary-bg-color);
    border-radius: 18px;
}

.nidalens-empty i {
    font-size: 28px;
}

.nidalens-existing-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(150px, 1fr));
    gap: 12px;
    padding: 8px 24px 24px;
}

.nidalens-existing-card {
    position: relative;
    display: flex;
    min-width: 0;
    flex-direction: column;
    overflow: hidden;
    background: var(--secondary-bg-color);
    border: 1px solid var(--tertiary-bg-color);
    border-radius: 15px;
}

.nidalens-existing-card input {
    position: absolute;
    z-index: 1;
    top: 9px;
    left: 9px;
    width: 23px;
    height: 23px;
    accent-color: var(--primary-button-bg-color);
}

.nidalens-existing-card img {
    width: 100%;
    height: 125px;
    object-fit: cover;
    background: #090b0e;
}

.nidalens-existing-card span {
    overflow: hidden;
    padding: 9px 10px;
    font-size: 12px;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.nidalens-transfer-previews,
.nidalens-review-images {
    display: flex;
    gap: 10px;
    padding: 8px 24px 18px;
    overflow-x: auto;
    overscroll-behavior-x: contain;
}

.nidalens-transfer-previews figure,
.nidalens-review-images figure {
    position: relative;
    flex: 0 0 150px;
    margin: 0;
    overflow: hidden;
    background: #090b0e;
    border: 1px solid var(--tertiary-bg-color);
    border-radius: 13px;
}

.nidalens-transfer-previews img,
.nidalens-review-images img {
    display: block;
    width: 100%;
    height: 120px;
    object-fit: contain;
}

.nidalens-transfer-previews figcaption {
    overflow: hidden;
    padding: 7px 9px;
    color: var(--primary-font-color);
    background: var(--secondary-bg-color);
    font-size: 11px;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.nidalens-review-images figure {
    flex-basis: 82px;
}

.nidalens-review-images img {
    height: 68px;
}

.nidalens-review-images span {
    position: absolute;
    top: 5px;
    left: 5px;
    display: flex;
    width: 20px;
    height: 20px;
    align-items: center;
    justify-content: center;
    color: var(--primary-button-font-color);
    background: var(--primary-button-bg-color);
    border-radius: 7px;
    font-size: 10px;
    font-weight: 800;
}

.nidalens-disclosure {
    display: flex;
    gap: 13px;
    margin: 0 24px 22px;
    padding: 16px;
    color: var(--primary-font-color);
    background: color-mix(in srgb, var(--primary-button-bg-color) 9%, var(--secondary-bg-color));
    border: 1px solid color-mix(in srgb, var(--primary-button-bg-color) 28%, var(--tertiary-bg-color));
    border-radius: 16px;
}

.nidalens-disclosure>i {
    color: var(--primary-button-bg-color);
    font-size: 23px;
}

.nidalens-disclosure p {
    margin: 5px 0 0;
    color: var(--secondary-font-color);
    font-size: 13px;
    line-height: 1.45;
}

.nidalens-video-stage {
    position: relative;
    min-height: 380px;
    margin: 4px 24px 15px;
    overflow: hidden;
    background: #050607;
    border-radius: 20px;
}

.nidalens-video-stage video {
    width: 100%;
    height: 100%;
    min-height: 380px;
    object-fit: cover;
}

.nidalens-video-countdown {
    position: absolute;
    top: 14px;
    right: 14px;
    padding: 8px 11px;
    color: white;
    background: rgba(0, 0, 0, 0.65);
    border-radius: 10px;
    font-weight: 800;
}

.nidalens-video-progress {
    position: absolute;
    right: 14px;
    bottom: 14px;
    left: 14px;
    height: 5px;
    overflow: hidden;
    background: rgba(255, 255, 255, 0.25);
    border-radius: 6px;
}

.nidalens-video-progress span {
    display: block;
    width: 0;
    height: 100%;
    background: var(--primary-button-bg-color);
}

.nidalens-video-note {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 9px;
    padding: 0 24px 12px;
    color: var(--secondary-font-color);
    font-size: 12px;
}

.nidalens-processing,
.nidalens-message {
    display: flex;
    min-height: 420px;
    flex: 1;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    padding: 35px;
    box-sizing: border-box;
    text-align: center;
}

.nidalens-processing>span,
.nidalens-message>i {
    display: flex;
    width: 68px;
    height: 68px;
    align-items: center;
    justify-content: center;
    margin-bottom: 20px;
    color: var(--primary-button-bg-color);
    background: color-mix(in srgb, var(--primary-button-bg-color) 11%, var(--secondary-bg-color));
    border-radius: 22px;
    font-size: 28px;
}

.nidalens-message.error>i {
    color: var(--failure-color);
    background: color-mix(in srgb, var(--failure-color) 10%, var(--secondary-bg-color));
}

.nidalens-processing h3 {
    font-size: 23px;
}

.nidalens-processing p,
.nidalens-message p {
    max-width: 540px;
    margin-top: 8px;
    color: var(--secondary-font-color);
    line-height: 1.5;
}

.nidalens-processing>div {
    width: min(330px, 80%);
    height: 5px;
    margin-top: 27px;
    overflow: hidden;
    background: var(--tertiary-bg-color);
    border-radius: 6px;
}

.nidalens-processing>div i {
    display: block;
    width: 42%;
    height: 100%;
    background: var(--primary-button-bg-color);
    border-radius: inherit;
    animation: nidalite-voice-progress 1.25s ease-in-out infinite alternate;
}

.nidalens-ocr-text {
    margin: 5px 24px 16px;
    padding: 13px 15px;
    background: var(--secondary-bg-color);
    border: 1px solid var(--tertiary-bg-color);
    border-radius: 14px;
}

.nidalens-ocr-text summary {
    color: var(--primary-button-bg-color);
    cursor: pointer;
    font-weight: 700;
}

.nidalens-ocr-text pre {
    max-height: 220px;
    overflow: auto;
    color: var(--primary-font-color);
    font: 13px/1.5 inherit;
    white-space: pre-wrap;
}

.nidalens-proposals {
    padding-top: 2px;
}

.nidalens-stream-arrival {
    animation: nidalens-stream-arrival 260ms ease-out both;
}

@keyframes nidalens-stream-arrival {
    from {
        opacity: 0;
        transform: translateY(8px) scale(.99);
    }
    to {
        opacity: 1;
        transform: translateY(0) scale(1);
    }
}

@media (prefers-reduced-motion: reduce) {
    .nidalens-stream-arrival {
        animation: none;
    }
}

.nidalens-evidence {
    margin: 0 0 11px;
    padding: 9px 10px;
    color: var(--secondary-font-color);
    background: var(--primary-bg-color);
    border-radius: 9px;
    font-size: 12px;
    line-height: 1.4;
}

.nidalens-actions {
    display: flex;
    width: 100%;
    justify-content: flex-end;
    gap: 10px;
    padding: 18px 24px;
    box-sizing: border-box;
}

.nidalens-actions.sticky {
    position: sticky;
    z-index: 2;
    bottom: 0;
    margin-top: auto;
    background: color-mix(in srgb, var(--primary-bg-color) 92%, transparent);
    border-top: 1px solid var(--tertiary-bg-color);
    backdrop-filter: blur(13px);
}

.nidalens-actions button {
    width: auto;
    height: auto;
    max-width: 100%;
    min-height: 46px;
    padding: 11px 18px;
    border: 0;
    border-radius: 13px;
    font: inherit;
    font-weight: 700;
}

.nidalens-actions button.primary {
    color: var(--primary-button-font-color);
    background: var(--primary-button-bg-color);
}

.nidalens-actions button.secondary {
    color: var(--primary-font-color);
    background: var(--secondary-bg-color);
    border: 1px solid var(--tertiary-bg-color);
}

.nidalens-actions button.danger {
    color: white;
    background: var(--failure-color);
}

.nidalens-actions button:disabled {
    opacity: 0.45;
}

@media (max-width: 700px) {
    .nidalens-sop-header {
        grid-template-columns: auto minmax(0, 1fr) auto;
        gap: 10px;
        padding-right: max(12px, var(--webview-area-inset-right));
        padding-left: max(12px, var(--webview-area-inset-left));
    }

    .nidalens-sop-icon,
    .nidalens-sop-header p,
    .nidalens-sop-new span {
        display: none;
    }

    .nidalens-sop-new {
        width: 44px;
        padding: 0;
    }

    .nidalens-sop-messages {
        padding: 20px 13px 28px;
    }

    .nidalens-sop-bubble,
    .nidalens-sop-provenance,
    .nidalens-sop-sources {
        max-width: 92%;
        width: auto;
    }

    .nidalens-sop-provenance,
    .nidalens-sop-sources {
        width: min(92%, 720px);
    }

    .nidalens-sop-composer {
        padding: 9px max(10px, var(--webview-area-inset-right)) max(9px, var(--webview-area-inset-bottom)) max(10px, var(--webview-area-inset-left));
    }

    .nidalens-overlay {
        align-items: stretch;
        padding: var(--webview-area-inset-top) var(--webview-area-inset-right) var(--webview-area-inset-bottom) var(--webview-area-inset-left);
        background: var(--primary-bg-color);
    }

    .nidalens-dialog {
        width: 100%;
        max-height: 100%;
        border: 0;
        border-radius: 0;
    }

    .nidalens-header {
        padding: 13px 15px;
    }

    .nidalens-brand>span {
        width: 42px;
        height: 42px;
        flex-basis: 42px;
        border-radius: 14px;
    }

    .nidalens-brand p {
        display: none;
    }

    .nidalens-intro {
        padding: 27px 18px 13px;
    }

    .nidalens-features {
        grid-template-columns: 1fr;
        padding: 14px 16px 28px;
    }

    .nidalens-features.has-interview {
        grid-template-columns: 1fr;
    }

    .nidalens-features>button {
        width: 100%;
        height: auto;
        min-height: 92px;
        flex-direction: row;
        align-items: center;
        gap: 13px;
        padding: 16px;
    }

    .nidalens-features>button>span:nth-child(2) {
        width: auto;
        min-width: 0;
    }

    .nidalens-features strong,
    .nidalens-features small {
        overflow-wrap: anywhere;
    }

    .nidalens-feature-icon {
        width: 48px;
        height: 48px;
        flex: 0 0 48px;
        margin: 0;
        border-radius: 15px;
    }

    .nidalens-features>button>i {
        align-self: center;
        flex: 0 0 auto;
        margin-left: auto;
    }

    .nidalens-section-heading {
        padding: 16px 15px 13px;
    }

    .nidalens-source-actions {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        padding: 4px 15px 17px;
    }

    .nidalens-source-summary {
        padding-right: 15px;
        padding-left: 15px;
    }

    .nidalens-source-list {
        padding-right: 15px;
        padding-left: 15px;
    }

    .nidalens-source-card {
        grid-template-columns: 25px 92px minmax(0, 1fr);
        gap: 9px;
        padding: 9px;
    }

    .nidalens-source-preview {
        height: 76px;
    }

    .nidalens-existing-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        padding: 5px 15px 20px;
    }

    .nidalens-transfer-previews,
    .nidalens-review-images {
        padding-right: 15px;
        padding-left: 15px;
    }

    .nidalens-disclosure {
        margin-right: 15px;
        margin-left: 15px;
    }

    .nidalens-video-stage {
        min-height: 330px;
        margin-right: 15px;
        margin-left: 15px;
    }

    .nidalens-video-stage video {
        min-height: 330px;
    }

    .nidalens-ocr-text {
        margin-right: 15px;
        margin-left: 15px;
    }

    .nidalens-proposals {
        padding-right: 15px;
        padding-left: 15px;
    }

    .nidalens-actions {
        padding: 13px 15px calc(13px + var(--webview-area-inset-bottom));
    }

    .nidalens-actions button {
        width: 0;
        flex: 1 1 0;
    }
}

@media (prefers-reduced-motion: reduce) {
    .nidalens-features>button,
    .nidalens-source-preview img,
    .nidalens-processing>span i {
        animation: none !important;
        transition: none !important;
    }
}

/* NIDAlite protocol navigation */
#app.nidalite-mission #protocol-nav-view.nidalite-protocol-nav {
    display: flex;
    position: absolute;
    z-index: 20;
    top: 55px;
    left: 0;
    width: 64px;
    height: calc(100% - 55px + var(--webview-area-inset-bottom));
    padding: 6px 4px calc(10px + var(--webview-area-inset-bottom));
    overflow-x: hidden;
    overflow-y: auto;
    flex-direction: column;
    box-sizing: border-box;
    border-right: 1px solid var(--tertiary-bg-color);
    background: var(--primary-bg-color);
    scrollbar-width: none;
}

#app.nidalite-mission #protocol-nav-view.nidalite-protocol-nav::-webkit-scrollbar {
    display: none;
}

#app.nidalite-mission #protocol-nav-view .nidalite-protocol-nav-group,
#app.nidalite-mission #protocol-nav-view .nidalite-protocol-nav-children {
    display: flex;
    width: 100%;
    height: auto;
    min-height: 0;
    margin: 0;
    flex: 0 0 auto;
    flex-direction: column;
    align-items: stretch;
    box-sizing: border-box;
    border-radius: 0;
    opacity: 1;
}

#app.nidalite-mission #protocol-nav-view .nidalite-protocol-nav-children {
    display: none;
    padding-left: 6px;
    border-left: 1px solid var(--tertiary-bg-color);
}

#app.nidalite-mission #protocol-nav-view .nidalite-protocol-nav-group.expanded .nidalite-protocol-nav-children {
    display: flex;
}

#app.nidalite-mission #protocol-nav-view .nidalite-protocol-nav-item {
    display: flex;
    width: 52px;
    min-width: 52px;
    height: 48px;
    min-height: 48px;
    margin: 2px 0;
    padding: 0;
    align-items: center;
    justify-content: center;
    flex: 0 0 auto;
    gap: 12px;
    border: 1px solid transparent;
    border-radius: 10px;
    background: transparent;
    color: var(--primary-font-color);
    opacity: 0.62;
    box-sizing: border-box;
    box-shadow: none;
    font: inherit;
    text-align: left;
    position: relative;
}

#app.nidalite-mission #protocol-nav-view .nidalite-protocol-required-count {
    display: inline-flex;
    position: absolute;
    top: 2px;
    right: 2px;
    min-width: 17px;
    height: 17px;
    padding: 0 4px;
    align-items: center;
    justify-content: center;
    border: 0;
    border-radius: 999px;
    background: var(--failure-color);
    color: #fff;
    box-sizing: border-box;
    font-size: 9px;
    font-weight: 800;
    line-height: 1;
}

#app.nidalite-mission #protocol-nav-view .nidalite-protocol-required-count[hidden] {
    display: none;
}

#app.nidalite-mission #protocol-nav-view .nidalite-protocol-nav-child {
    width: 44px;
    min-width: 44px;
    height: 44px;
    min-height: 44px;
}

#app.nidalite-mission #protocol-nav-view .nidalite-protocol-nav-item i {
    width: 22px;
    margin: 0;
    flex: 0 0 22px;
    font-size: 19px;
    line-height: 1;
    text-align: center;
}

#app.nidalite-mission #protocol-nav-view .nidalite-protocol-nav-marker {
    display: inline-flex;
    width: 22px;
    min-width: 22px;
    height: 22px;
    align-items: center;
    justify-content: center;
    font-size: 15px;
    font-weight: 700;
    line-height: 1;
}

#app.nidalite-mission .nidalite-numbered-icon {
    position: relative;
    display: inline-flex;
    width: 22px;
    min-width: 22px;
    height: 22px;
    align-items: center;
    justify-content: center;
}

#app.nidalite-mission .nidalite-numbered-icon > i {
    width: auto;
    min-width: 0;
    margin: 0;
    flex: none;
}

#app.nidalite-mission .nidalite-numbered-icon > small {
    position: absolute;
    right: -4px;
    bottom: -4px;
    display: flex;
    width: 13px;
    height: 13px;
    align-items: center;
    justify-content: center;
    border: 1px solid currentColor;
    border-radius: 50%;
    background: var(--primary-bg-color);
    color: inherit;
    font-size: 8px;
    font-weight: 800;
    line-height: 1;
}

#app.nidalite-mission #protocol-nav-view .nidalite-protocol-nav-item.current .nidalite-numbered-icon > small {
    background: var(--primary-button-bg-color);
}

#app.nidalite-mission .protocol-category > h3 .nidalite-numbered-icon {
    margin-right: 6px;
    vertical-align: middle;
}

#app.nidalite-mission .nidalite-validation-hint {
    display: flex;
    margin: 7px 0 0;
    align-items: flex-start;
    gap: 7px;
    font-size: 12px;
    font-weight: 600;
    line-height: 1.35;
}

#app.nidalite-mission .nidalite-validation-indicator {
    display: inline-flex;
    width: 13px;
    min-width: 13px;
    margin-left: 7px;
    align-items: center;
    justify-content: center;
    color: var(--failure-color);
    font-size: 13px;
    vertical-align: middle;
}

#app.nidalite-mission .nidalite-validation-indicator.is-resolved {
    visibility: hidden;
}

.nidalite-validation-dialog-overlay {
    display: flex;
    position: fixed;
    z-index: 100020;
    inset: 0;
    padding: var(--webview-area-inset-top) var(--webview-area-inset-right) var(--webview-area-inset-bottom) var(--webview-area-inset-left);
    align-items: stretch;
    justify-content: stretch;
    box-sizing: border-box;
    background: rgba(7, 11, 18, 0.78);
    backdrop-filter: blur(16px);
}

.nidalite-validation-dialog {
    display: flex;
    width: 100%;
    height: 100%;
    max-width: none;
    max-height: none;
    flex-direction: column;
    overflow: hidden;
    border: 0;
    border-radius: 0;
    background: var(--primary-bg-color);
    color: var(--primary-font-color);
    box-shadow: 0 24px 70px rgba(0, 0, 0, 0.38);
}

.nidalite-validation-dialog-header {
    display: grid;
    padding: 20px;
    align-items: start;
    gap: 14px;
    border-bottom: 1px solid var(--tertiary-bg-color);
    grid-template-columns: auto minmax(0, 1fr) auto;
}

.nidalite-validation-dialog-header h3,
.nidalite-validation-dialog-header p {
    margin: 0;
}

.nidalite-validation-dialog-header p {
    margin-top: 5px;
    color: var(--secondary-font-color);
    font-size: 13px;
    line-height: 1.4;
}

.nidalite-validation-dialog-icon {
    display: grid;
    width: 42px;
    height: 42px;
    place-items: center;
    border-radius: 12px;
    background: color-mix(in srgb, var(--warning-color) 14%, transparent);
    color: var(--warning-color);
    font-size: 20px;
}

button.nidalite-validation-dialog-icon {
    margin: 0;
    padding: 0;
    border: 0;
    cursor: pointer;
}

.nidalite-validation-dialog-icon.error {
    background: color-mix(in srgb, var(--failure-color) 14%, transparent);
    color: var(--failure-color);
}

.nidalite-validation-dialog-icon.success {
    background: color-mix(in srgb, var(--success-color, #2ecc71) 14%, transparent);
    color: var(--success-color, #2ecc71);
}

.nidalite-validation-dialog-close {
    width: 42px;
    min-width: 42px;
    height: 42px;
    min-height: 42px;
    margin: 0;
    padding: 0;
    border: 0;
    border-radius: 11px;
    background: var(--secondary-bg-color);
    color: var(--primary-font-color);
}

.nidalite-validation-dialog-list {
    display: grid;
    min-height: 0;
    padding: 24px;
    overflow-y: auto;
    align-content: start;
    flex: 1;
    gap: 14px;
    grid-template-columns: repeat(auto-fit, minmax(min(100%, 320px), 1fr));
}

.nidalite-validation-dialog-field {
    display: flex;
    min-width: 0;
    padding: 18px;
    flex-direction: column;
    gap: 14px;
    border: 1px solid var(--tertiary-bg-color);
    border-radius: 16px;
    background: var(--secondary-bg-color);
    box-sizing: border-box;
}

.nidalite-validation-dialog-field-heading {
    display: grid;
    align-items: start;
    gap: 10px;
    grid-template-columns: auto minmax(0, 1fr);
}

.nidalite-validation-dialog-field-heading > i {
    margin-top: 2px;
    color: var(--failure-color);
}

.nidalite-validation-dialog-field.is-complete .nidalite-validation-dialog-field-heading > i {
    color: var(--success-color, #2ecc71);
}

.nidalite-validation-dialog-field-heading div {
    display: flex;
    min-width: 0;
    flex-direction: column;
    gap: 3px;
}

.nidalite-validation-dialog-field-heading strong {
    font-size: 16px;
}

.nidalite-validation-dialog-field-heading small {
    color: var(--secondary-font-color);
    line-height: 1.35;
}

.nidalite-validation-dialog-control {
    width: 100%;
    min-height: 48px;
    box-sizing: border-box;
}

.nidalite-validation-dialog-complete {
    display: flex;
    min-height: 240px;
    align-items: center;
    justify-content: center;
    gap: 12px;
    color: var(--success-color, #2ecc71);
    grid-column: 1 / -1;
    font-size: 18px;
}

.nidalite-validation-dialog-issue {
    display: grid;
    width: 100%;
    min-height: 52px;
    height: auto;
    margin: 0;
    padding: 12px 14px;
    align-items: center;
    gap: 11px;
    border: 1px solid var(--tertiary-bg-color);
    border-radius: 11px;
    background: var(--secondary-bg-color);
    color: var(--primary-font-color);
    grid-template-columns: auto minmax(0, 1fr) auto;
    text-align: left;
}

.nidalite-validation-dialog-issue.error > i:first-child {
    color: var(--failure-color);
}

.nidalite-validation-dialog-issue.warning > i:first-child {
    color: var(--warning-color);
}

.nidalite-validation-dialog-actions {
    display: flex;
    padding: 16px 20px 20px;
    justify-content: flex-end;
    gap: 10px;
    border-top: 1px solid var(--tertiary-bg-color);
}

.nidalite-validation-dialog-actions button {
    width: auto;
    min-height: 46px;
    height: auto;
    margin: 0;
    padding: 10px 16px;
}

.nidalite-validation-dialog-continue:disabled {
    cursor: not-allowed;
    opacity: 0.38;
    filter: saturate(0.35);
}

@media (max-width: 520px) {
    .nidalite-validation-dialog-header {
        padding: 16px;
    }

    .nidalite-validation-dialog-list {
        padding: 16px;
        grid-template-columns: 1fr;
    }

    .nidalite-validation-dialog-actions {
        padding: 14px 16px 16px;
        flex-direction: column-reverse;
    }

    .nidalite-validation-dialog-actions button {
        width: 100%;
    }
}

#app.nidalite-mission .nidalite-legacy-finding {
    display: flex;
    min-height: 46px;
    padding: 10px 14px;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    border: 1px solid var(--tertiary-bg-color);
    border-radius: 10px;
    background: color-mix(in srgb, var(--secondary-bg-color), transparent 12%);
    color: color-mix(in srgb, var(--primary-font-color), transparent 18%);
    box-sizing: border-box;
}

#app.nidalite-mission .nidalite-legacy-finding strong {
    flex: 0 0 auto;
    font-size: 13px;
}

#app.nidalite-mission .nidalite-legacy-finding span {
    min-width: 0;
    text-align: right;
    overflow-wrap: anywhere;
}

#app.nidalite-mission .nidalite-gcs-total {
    font-size: 20px;
    font-weight: 750;
    text-align: center;
}

#app.nidalite-mission #protocol-nav-view .nidalite-protocol-nav-label {
    position: absolute;
    width: 1px;
    height: 1px;
    margin: -1px;
    padding: 0;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border: 0;
}

#app.nidalite-mission #protocol-nav-view .nidalite-protocol-nav-item.active {
    opacity: 1;
}

#app.nidalite-mission #protocol-nav-view .nidalite-protocol-nav-item.current {
    border-color: color-mix(in srgb, var(--primary-button-bg-color) 80%, white 20%);
    background: var(--primary-button-bg-color);
    color: var(--primary-button-font-color);
    opacity: 1;
}

#app.nidalite-mission #protocol-view {
    left: 64px;
    right: 0;
    width: auto;
    padding-right: 12px;
    padding-left: 12px;
    box-sizing: border-box;
}

#app.nidalite-mission .protocol-fields-grid {
    grid-template-columns: repeat(auto-fit, minmax(min(100%, 260px), 1fr));
    gap: 0 16px;
}

#app.nidalite-mission .protocol-field-fluid {
    grid-column: auto;
}

#app.nidalite-mission .protocol-field-full {
    grid-column: 1 / -1;
}

#app.nidalite-mission .protocol-switch-field-stacked {
    height: 46px;
    min-height: 46px;
    padding: 0 14px 0 16px;
}

#app.nidalite-mission .protocol-switch-field-stacked .protocol-switch-control {
    width: 44px;
    height: 26px;
    flex-basis: 44px;
}

#app.nidalite-mission .protocol-switch-field-stacked .protocol-switch-thumb {
    width: 20px;
    height: 20px;
}

#app.nidalite-mission .protocol-switch-field-stacked .protocol-switch-input:checked + .protocol-switch-track .protocol-switch-thumb {
    transform: translateX(18px);
}

#app.nidalite-mission .protocol-switch-state {
    color: color-mix(in srgb, var(--primary-font-color), transparent 28%);
    font-size: 15px;
    font-weight: 500;
}

#app.nidalite-mission .protocol-switch-state-on {
    display: none;
}

#app.nidalite-mission .protocol-switch-field-stacked:has(.protocol-switch-input:checked) .protocol-switch-state-off {
    display: none;
}

#app.nidalite-mission .protocol-switch-field-stacked:has(.protocol-switch-input:checked) .protocol-switch-state-on {
    display: inline;
}

@media (min-width: 768px) and (min-height: 600px) {
    #app.nidalite-mission #protocol-nav-view.nidalite-protocol-nav {
        width: 248px;
        padding: 10px 10px calc(14px + var(--webview-area-inset-bottom));
    }

    #app.nidalite-mission #protocol-nav-view .nidalite-protocol-nav-group {
        width: 100%;
    }

    #app.nidalite-mission #protocol-nav-view .nidalite-protocol-nav-children {
        width: calc(100% - 14px);
        margin-left: 14px;
        padding: 2px 0 4px 6px;
    }

    #app.nidalite-mission #protocol-nav-view .nidalite-protocol-nav-item,
    #app.nidalite-mission #protocol-nav-view .nidalite-protocol-nav-child {
        width: 100%;
        min-width: 0;
        height: 46px;
        min-height: 46px;
        margin: 2px 0;
        padding: 0 12px;
        justify-content: flex-start;
    }

    #app.nidalite-mission #protocol-nav-view .nidalite-protocol-nav-parent {
        font-weight: 650;
    }

    #app.nidalite-mission #protocol-nav-view .nidalite-protocol-nav-child {
        min-height: 42px;
        height: 42px;
        font-weight: 500;
    }

    #app.nidalite-mission #protocol-nav-view .nidalite-protocol-nav-label {
        position: static;
        width: auto;
        height: auto;
        margin: 0;
        overflow: visible;
        clip: auto;
        white-space: nowrap;
    }

    #app.nidalite-mission #protocol-view {
        left: 248px;
        right: 0;
        width: auto;
        padding: 24px 28px;
    }
}

html.platform-android #app.nidalite-mission #protocol-nav-view.nidalite-protocol-nav {
    height: calc(100% - 55px);
    padding-bottom: 10px;
}

/* NIDAlite measures are deliberately isolated from the telemedic measure UI. */
#app.nidalite-mission .nidalite-measures-empty {
    margin: 0;
    padding: 14px 16px;
    opacity: 0.65;
}

#app.nidalite-mission .nidalite-measures-list {
    display: grid;
    gap: 8px;
}

#app.nidalite-mission .nidalite-measure-entry {
    display: grid;
    width: 100%;
    height: auto;
    min-height: 92px;
    align-items: start;
    padding: 14px;
    border: 1px solid var(--tertiary-bg-color);
    border-radius: 12px;
    background: var(--secondary-bg-color);
    color: var(--primary-font-color);
    column-gap: 14px;
    grid-template-columns: 54px minmax(0, 1fr);
    box-sizing: border-box;
    text-align: left;
}

#app.nidalite-mission .nidalite-measure-entry-time {
    display: grid;
    width: 54px;
    min-height: 54px;
    place-items: center;
    border: 1px solid var(--tertiary-bg-color);
    border-radius: 12px;
    background: var(--primary-bg-color);
    font-weight: 700;
    text-align: center;
}

#app.nidalite-mission .nidalite-measure-entry-content {
    display: flex;
    min-width: 0;
    flex-direction: column;
    gap: 5px;
}

#app.nidalite-mission .nidalite-measure-entry-category {
    display: block;
    min-width: 0;
    color: var(--primary-heading-color);
    font-size: 12px;
    font-weight: 700;
    line-height: 1.25;
    text-transform: uppercase;
}

#app.nidalite-mission .nidalite-measure-entry-measure {
    font-size: 17px;
    line-height: 1.25;
}

#app.nidalite-mission .nidalite-measure-entry-details {
    display: grid;
    min-width: 0;
    gap: 6px 12px;
    margin-top: 5px;
    grid-template-columns: repeat(auto-fit, minmax(120px, 1fr));
}

#app.nidalite-mission .nidalite-measure-entry-details > span {
    display: flex;
    min-width: 0;
    flex-direction: column;
    gap: 2px;
}

#app.nidalite-mission .nidalite-measure-entry-details small {
    opacity: 0.6;
    font-size: 10px;
}

#app.nidalite-mission .nidalite-measure-entry-details b {
    overflow-wrap: anywhere;
    font-size: 13px;
    font-weight: 600;
}

#app.nidalite-mission .nidalite-measure-entry-draft {
    border-color: color-mix(in srgb, var(--warning-color) 48%, var(--tertiary-bg-color));
}

#app.nidalite-mission .nidalite-measure-draft-status {
    display: flex;
    align-items: center;
    gap: 6px;
    margin-top: 3px;
    color: var(--warning-color);
    font-size: 12px;
    font-weight: 700;
}

#app.nidalite-mission .nidalite-medications-empty {
    margin: 0;
    padding: 14px 16px;
    opacity: 0.65;
}

#app.nidalite-mission .nidalite-medications-list {
    display: grid;
    gap: 8px;
}

#app.nidalite-mission .nidalite-medication-entry {
    display: grid;
    width: 100%;
    height: auto;
    min-height: 92px;
    align-items: start;
    padding: 14px;
    border: 1px solid var(--tertiary-bg-color);
    border-radius: 12px;
    background: var(--secondary-bg-color);
    color: var(--primary-font-color);
    column-gap: 14px;
    grid-template-columns: 54px minmax(0, 1fr);
    box-sizing: border-box;
    text-align: left;
}

#app.nidalite-mission .nidalite-medication-entry-time {
    display: grid;
    width: 54px;
    min-height: 54px;
    place-items: center;
    border: 1px solid var(--tertiary-bg-color);
    border-radius: 12px;
    background: var(--primary-bg-color);
    font-weight: 700;
}

#app.nidalite-mission .nidalite-medication-entry-content {
    display: flex;
    min-width: 0;
    flex-direction: column;
    gap: 10px;
}

#app.nidalite-mission .nidalite-medication-entry-content > strong {
    overflow-wrap: anywhere;
    font-size: 17px;
}

#app.nidalite-mission .nidalite-medication-entry-content > strong small {
    font-size: 14px;
    font-weight: 500;
    opacity: 0.75;
}

#app.nidalite-mission .nidalite-medication-entry-details {
    display: grid;
    gap: 6px 12px;
    grid-template-columns: repeat(auto-fit, minmax(120px, 1fr));
}

#app.nidalite-mission .nidalite-medication-entry-details > span {
    display: flex;
    min-width: 0;
    flex-direction: column;
    gap: 2px;
}

#app.nidalite-mission .nidalite-medication-entry-details small {
    opacity: 0.6;
    font-size: 10px;
}

#app.nidalite-mission .nidalite-medication-entry-details b {
    overflow-wrap: anywhere;
    font-size: 13px;
    font-weight: 600;
}

#dialog.nidalite-medication-dialog {
    width: min(680px, calc(100vw - 32px));
    height: auto;
    max-height: calc(100vh - 48px - var(--webview-area-inset-top) - var(--webview-area-inset-bottom));
}

#dialog.nidalite-medication-dialog .nidalite-medication-form {
    display: grid;
    padding: 20px 24px 24px;
    box-sizing: border-box;
    gap: 14px;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    overflow-y: auto;
}

#dialog.nidalite-medication-dialog .nidalite-medication-form label {
    display: flex;
    min-width: 0;
    flex-direction: column;
    gap: 7px;
    font-size: 13px;
    font-weight: 700;
}

#dialog.nidalite-medication-dialog .nidalite-medication-form label:nth-child(-n + 2),
#dialog.nidalite-medication-dialog .nidalite-medication-actions {
    grid-column: 1 / -1;
}

#dialog.nidalite-medication-dialog .nidalite-medication-form input,
#dialog.nidalite-medication-dialog .nidalite-medication-form select {
    width: 100%;
    height: 48px;
    padding: 0 14px;
    border: 1px solid var(--tertiary-bg-color);
    border-radius: 12px;
    box-sizing: border-box;
    background: var(--secondary-bg-color);
    color: var(--primary-font-color);
    font: inherit;
}

#dialog.nidalite-medication-dialog .nidalite-medication-actions {
    display: flex;
    gap: 10px;
    justify-content: flex-end;
    margin-top: 6px;
}

body.nidalite-medication-dialog-open .input-select-backdrop {
    z-index: 100010;
}

body.nidalite-medication-dialog-open .input-select-dialog {
    z-index: 100011;
}

@media (max-width: 560px) {
    #dialog.nidalite-medication-dialog .nidalite-medication-form {
        padding: 16px;
        grid-template-columns: 1fr;
    }

    #dialog.nidalite-medication-dialog .nidalite-medication-form label,
    #dialog.nidalite-medication-dialog .nidalite-medication-actions {
        grid-column: 1;
    }

    #dialog.nidalite-medication-dialog .nidalite-medication-actions {
        flex-direction: column;
    }
}

#content-block.nidalite-measures-backdrop {
    position: fixed;
    z-index: 100009;
    inset: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    width: auto;
    height: auto;
    padding: max(14px, var(--webview-area-inset-top)) max(14px, var(--webview-area-inset-right)) max(14px, var(--webview-area-inset-bottom)) max(14px, var(--webview-area-inset-left));
    box-sizing: border-box;
    background: rgba(7, 11, 18, 0.78);
    backdrop-filter: blur(16px);
}

#content-block.nidalite-measures-backdrop .nidalite-measures-dialog i {
    position: static;
    color: inherit !important;
    text-shadow: none;
    font-size: inherit;
}

#content-block.nidalite-protocol-type-backdrop {
    display: flex;
    position: fixed;
    inset: 0;
    z-index: 10000;
    align-items: center;
    justify-content: center;
    width: auto;
    height: auto;
    padding: max(14px, var(--webview-area-inset-top)) max(14px, var(--webview-area-inset-right)) max(14px, var(--webview-area-inset-bottom)) max(14px, var(--webview-area-inset-left));
    box-sizing: border-box;
    background: rgba(7, 11, 18, 0.78);
    backdrop-filter: blur(16px);
}

#dialog.nidalite-protocol-type-dialog {
    display: flex;
    position: relative;
    top: auto;
    left: auto;
    width: min(720px, 100%);
    height: min(720px, 100%);
    padding: 0;
    flex-direction: column;
    overflow: hidden;
    color: var(--primary-font-color);
    background: var(--primary-bg-color);
    border: 1px solid var(--tertiary-bg-color);
    border-radius: 28px;
    box-shadow: 0 30px 90px rgba(0, 0, 0, 0.42);
    box-sizing: border-box;
    transform: none;
    animation: none;
}

#dialog.nidalite-protocol-type-dialog i {
    position: static;
    color: inherit !important;
    text-shadow: none;
}

#dialog.nidalite-protocol-type-dialog > header {
    display: flex;
    min-height: 88px;
    align-items: center;
    justify-content: space-between;
    gap: 18px;
    padding: 18px 23px;
    border-bottom: 1px solid var(--tertiary-bg-color);
    box-sizing: border-box;
}

#dialog.nidalite-protocol-type-dialog .nidalite-protocol-type-brand {
    display: flex;
    min-width: 0;
    align-items: center;
    gap: 14px;
}

#dialog.nidalite-protocol-type-dialog .nidalite-protocol-type-brand > span,
#dialog.nidalite-protocol-type-dialog .nidalite-protocol-type-close {
    display: flex;
    width: 48px;
    height: 48px;
    flex: 0 0 48px;
    align-items: center;
    justify-content: center;
    border-radius: 16px;
    box-sizing: border-box;
}

#dialog.nidalite-protocol-type-dialog .nidalite-protocol-type-brand > span {
    color: var(--primary-button-font-color);
    background: var(--primary-button-bg-color);
    font-size: 22px;
}

#dialog.nidalite-protocol-type-dialog h2,
#dialog.nidalite-protocol-type-dialog p {
    margin: 0;
}

#dialog.nidalite-protocol-type-dialog h2 {
    font-size: 22px;
}

#dialog.nidalite-protocol-type-dialog p {
    margin-top: 3px;
    color: var(--secondary-font-color);
    font-size: 13px;
}

#dialog.nidalite-protocol-type-dialog .nidalite-protocol-type-close {
    padding: 0;
    color: var(--primary-font-color);
    background: var(--secondary-bg-color);
    border: 1px solid var(--tertiary-bg-color);
    font-size: 21px;
}

#dialog.nidalite-protocol-type-dialog > main {
    display: flex;
    min-height: 0;
    padding: 46px;
    flex: 1;
    flex-direction: column;
    justify-content: center;
    box-sizing: border-box;
}

#dialog.nidalite-protocol-type-dialog .nidalite-protocol-type-intro {
    margin-bottom: 28px;
    text-align: center;
}

#dialog.nidalite-protocol-type-dialog .nidalite-protocol-type-intro span {
    color: var(--primary-button-bg-color);
    font-size: 11px;
    font-weight: 700;
    letter-spacing: .14em;
}

#dialog.nidalite-protocol-type-dialog .nidalite-protocol-type-intro h3 {
    margin: 7px 0 0;
    font-size: 27px;
}

#dialog.nidalite-protocol-type-dialog .nidalite-protocol-type-options {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 16px;
}

#dialog.nidalite-protocol-type-dialog .nidalite-protocol-type-options button {
    --nidalite-protocol-type-color: var(--primary-button-bg-color);
    display: grid;
    min-height: 150px;
    padding: 22px;
    grid-template-columns: 58px minmax(0, 1fr) 18px;
    align-items: center;
    gap: 16px;
    color: var(--primary-font-color);
    text-align: left;
    background: color-mix(in srgb, var(--nidalite-protocol-type-color) 5%, var(--secondary-bg-color));
    border: 1px solid color-mix(in srgb, var(--nidalite-protocol-type-color) 30%, var(--tertiary-bg-color));
    border-radius: 18px;
    box-sizing: border-box;
}

#dialog.nidalite-protocol-type-dialog .nidalite-protocol-type-options button[data-protocol-type="NF"] {
    --nidalite-protocol-type-color: var(--failure-color);
}

#dialog.nidalite-protocol-type-dialog .nidalite-protocol-type-options button:active,
#dialog.nidalite-protocol-type-dialog .nidalite-protocol-type-options button:focus-visible {
    border-color: var(--nidalite-protocol-type-color);
    outline: 2px solid color-mix(in srgb, var(--nidalite-protocol-type-color) 35%, transparent);
}

#dialog.nidalite-protocol-type-dialog .nidalite-protocol-type-code {
    display: flex;
    width: 58px;
    height: 58px;
    align-items: center;
    justify-content: center;
    color: var(--primary-button-font-color);
    background: var(--nidalite-protocol-type-color);
    border-radius: 16px;
    font-size: 18px;
    font-weight: 800;
}

#dialog.nidalite-protocol-type-dialog .nidalite-protocol-type-copy {
    display: flex;
    min-width: 0;
    flex-direction: column;
    gap: 5px;
}

#dialog.nidalite-protocol-type-dialog .nidalite-protocol-type-copy strong {
    font-size: 17px;
}

#dialog.nidalite-protocol-type-dialog .nidalite-protocol-type-copy small {
    color: var(--secondary-font-color);
    font-size: 12px;
    line-height: 1.35;
}

@media (max-width: 620px) {
    #dialog.nidalite-protocol-type-dialog {
        width: 100%;
        height: 100%;
        max-width: none;
        max-height: none;
        border-radius: 0;
    }

    #dialog.nidalite-protocol-type-dialog > main {
        padding: 26px 16px;
        justify-content: flex-start;
    }

    #dialog.nidalite-protocol-type-dialog .nidalite-protocol-type-options {
        grid-template-columns: 1fr;
    }

    #dialog.nidalite-protocol-type-dialog .nidalite-protocol-type-options button {
        min-height: 128px;
    }
}

#dialog.nidalite-measures-dialog {
    display: flex;
    position: relative;
    top: auto;
    left: auto;
    width: min(940px, 100%);
    max-width: 940px;
    height: min(880px, 100%);
    max-height: min(880px, 100%);
    flex-direction: column;
    padding: 0;
    overflow: hidden;
    color: var(--primary-font-color);
    background: var(--primary-bg-color);
    border: 1px solid var(--tertiary-bg-color);
    border-radius: 28px;
    box-shadow: 0 30px 90px rgba(0, 0, 0, 0.42);
    box-sizing: border-box;
    transform: none;
    animation: none;
}

#dialog.nidalite-measures-dialog.nidalite-measures-step-view {
    overflow: hidden;
}

#dialog.nidalite-measures-dialog .nidalite-measures-shell-header {
    display: flex;
    min-height: 88px;
    align-items: center;
    justify-content: space-between;
    gap: 18px;
    padding: 18px 23px;
    border-bottom: 1px solid var(--tertiary-bg-color);
    box-sizing: border-box;
}

#dialog.nidalite-measures-dialog .nidalite-measures-brand {
    display: flex;
    min-width: 0;
    align-items: center;
    gap: 14px;
}

#dialog.nidalite-measures-dialog .nidalite-measures-brand > span {
    display: flex;
    width: 48px;
    height: 48px;
    flex: 0 0 48px;
    align-items: center;
    justify-content: center;
    color: var(--primary-button-font-color);
    background: linear-gradient(145deg, var(--primary-button-bg-color), color-mix(in srgb, var(--primary-button-bg-color) 55%, #796cff));
    border-radius: 16px;
    box-shadow: 0 10px 26px color-mix(in srgb, var(--primary-button-bg-color) 20%, transparent);
    font-size: 22px;
}

#dialog.nidalite-measures-dialog .nidalite-measures-brand h2,
#dialog.nidalite-measures-dialog .nidalite-measures-brand p {
    margin: 0;
}

#dialog.nidalite-measures-dialog .nidalite-measures-brand h2 {
    font-size: 22px;
    letter-spacing: 0.01em;
}

#dialog.nidalite-measures-dialog .nidalite-measures-brand p {
    margin-top: 3px;
    color: var(--secondary-font-color);
    font-size: 13px;
}

#dialog.nidalite-measures-dialog .nidalite-measures-content {
    display: flex;
    min-height: 0;
    flex: 1;
    flex-direction: column;
    overflow: hidden;
}

#dialog.nidalite-measures-dialog .nidalite-measures-wizard-header {
    display: grid;
    min-height: 92px;
    align-items: center;
    gap: 10px;
    padding: 15px 24px 8px;
    box-sizing: border-box;
    grid-template-columns: 48px 1fr 48px;
}

#dialog.nidalite-measures-dialog .nidalite-measures-wizard-header h3 {
    margin: 5px 0 0;
    color: var(--primary-font-color);
    font-size: 25px;
    text-align: center;
}

#dialog.nidalite-measures-dialog .nidalite-measures-wizard-header > div > span {
    display: block;
    color: var(--primary-button-bg-color);
    font-size: 10px;
    font-weight: 800;
    letter-spacing: 0.12em;
    text-align: center;
    text-transform: uppercase;
}

#dialog.nidalite-measures-dialog .nidalite-measures-category-tabs {
    display: grid;
    gap: 5px;
    padding: 4px 24px 8px;
    grid-template-columns: repeat(7, minmax(0, 1fr));
}

#dialog.nidalite-measures-dialog .nidalite-measures-category-tabs button {
    position: relative;
    display: flex;
    min-width: 0;
    min-height: 44px;
    align-items: center;
    justify-content: center;
    padding: 5px 2px;
    color: var(--secondary-font-color);
    background: var(--secondary-bg-color);
    border: 1px solid var(--tertiary-bg-color);
    border-radius: 10px;
    box-shadow: none;
    font-size: 12px;
    font-weight: 750;
    line-height: 1;
}

#dialog.nidalite-measures-dialog .nidalite-measures-category-tabs button.active {
    color: var(--primary-font-color);
    background: color-mix(in srgb, var(--primary-button-bg-color) 12%, var(--secondary-bg-color));
    border-color: var(--primary-button-bg-color);
}

#dialog.nidalite-measures-dialog .nidalite-measures-category-tabs button:focus-visible {
    outline: 2px solid color-mix(in srgb, var(--primary-button-bg-color) 45%, transparent);
    outline-offset: 1px;
}

#dialog.nidalite-measures-dialog .nidalite-measures-category-tabs b {
    position: absolute;
    top: 2px;
    right: 2px;
    display: grid;
    min-width: 17px;
    height: 17px;
    place-items: center;
    padding: 0 4px;
    color: var(--primary-button-font-color);
    background: var(--primary-button-bg-color);
    border-radius: 7px;
    box-sizing: border-box;
    font-size: 9px;
}

#dialog.nidalite-measures-dialog .nidalite-measures-category-tabs b[hidden] {
    display: none;
}

#dialog.nidalite-measures-dialog .nidalite-measures-detail-header {
    min-height: 112px;
}

#dialog.nidalite-measures-dialog .nidalite-measures-detail-header h3 {
    margin: 0;
    font-size: clamp(27px, 4vh, 36px);
    line-height: 1.05;
}

#dialog.nidalite-measures-dialog .nidalite-measures-detail-context {
    display: flex;
    margin-top: 9px;
    align-items: center;
    justify-content: center;
    gap: 10px;
    color: var(--secondary-font-color);
    font-size: 13px;
}

#dialog.nidalite-measures-dialog .nidalite-measures-detail-context strong {
    color: var(--primary-button-bg-color);
    font-weight: 750;
}

#dialog.nidalite-measures-dialog .nidalite-measures-detail-context span {
    display: inline-flex;
    padding: 3px 7px;
    color: var(--secondary-font-color);
    background: var(--secondary-bg-color);
    border-radius: 7px;
    font-size: 11px;
    font-weight: 750;
    letter-spacing: 0;
    text-transform: none;
}

#dialog.nidalite-measures-dialog .nidalite-measures-back,
#dialog.nidalite-measures-dialog .nidalite-measures-cancel {
    display: grid;
    width: 48px;
    height: 48px;
    place-items: center;
    padding: 0;
    border-radius: 12px;
    line-height: 1;
    box-shadow: none;
}

#dialog.nidalite-measures-dialog .nidalite-measures-back i,
#dialog.nidalite-measures-dialog .nidalite-measures-cancel i {
    display: block;
    width: 1em;
    line-height: 1;
    text-align: center;
}

#dialog.nidalite-measures-dialog .nidalite-measures-options {
    display: grid;
    min-height: 0;
    flex: 1;
    gap: 9px;
    padding: 10px 24px 24px;
    grid-template-columns: minmax(0, 1fr);
    grid-template-rows: repeat(var(--nidalite-rows-1, 1), minmax(0, 1fr));
    overflow: hidden;
}

#dialog.nidalite-measures-dialog .nidalite-measures-options-regular {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    grid-template-rows: repeat(var(--nidalite-rows-2, 1), minmax(0, 1fr));
}

#dialog.nidalite-measures-dialog .nidalite-measures-options-dense {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    grid-template-rows: repeat(var(--nidalite-rows-3, 1), minmax(0, 1fr));
}

#dialog.nidalite-measures-dialog .nidalite-measures-option {
    display: flex;
    min-width: 0;
    height: auto;
    min-height: 0;
    align-items: center;
    justify-content: center;
    padding: clamp(7px, 1.7vh, 14px) 10px;
    border: 2px solid var(--tertiary-bg-color);
    border-radius: 12px;
    background: var(--secondary-bg-color);
    color: var(--primary-font-color);
    font-size: clamp(15px, 2.2vh, 18px);
    font-weight: 650;
    line-height: 1.12;
    hyphens: none;
    overflow-wrap: normal;
    word-break: normal;
    text-align: center;
}

#dialog.nidalite-measures-dialog .nidalite-measures-option-long-word {
    font-size: 14px;
    letter-spacing: -0.015em;
}

#dialog.nidalite-measures-dialog .nidalite-measures-options-dense .nidalite-measures-option {
    padding: 4px 7px;
    font-size: clamp(11px, 1.7vh, 15px);
    line-height: 1.05;
}

#dialog.nidalite-measures-dialog .nidalite-measures-text-entry {
    align-content: center;
    grid-template-columns: minmax(0, 1fr);
    grid-template-rows: auto auto;
    overflow: visible;
}

#dialog.nidalite-measures-dialog .nidalite-measures-option.selected {
    border-color: var(--primary-button-bg-color);
}

#dialog.nidalite-measures-dialog .nidalite-measures-basket-item {
    position: relative;
    min-width: 0;
    min-height: 0;
}

#dialog.nidalite-measures-dialog .nidalite-measures-basket-add {
    width: 100%;
    height: 100%;
}

#dialog.nidalite-measures-dialog .nidalite-measures-basket-item.selected .nidalite-measures-basket-add {
    border-color: var(--primary-button-bg-color);
    background: color-mix(in srgb, var(--primary-button-bg-color) 10%, var(--secondary-bg-color));
}

#dialog.nidalite-measures-dialog .nidalite-measures-count {
    position: absolute;
    top: 7px;
    right: 7px;
    display: grid;
    min-width: 25px;
    height: 25px;
    place-items: center;
    padding: 0 6px;
    color: var(--primary-button-font-color);
    background: var(--primary-button-bg-color);
    border-radius: 9px;
    box-sizing: border-box;
    font-size: 13px;
    font-weight: 800;
}

#dialog.nidalite-measures-dialog .nidalite-measures-basket-minus {
    position: absolute;
    z-index: 1;
    top: 7px;
    left: 7px;
    display: grid;
    width: 28px;
    height: 28px;
    min-height: 0;
    place-items: center;
    padding: 0;
    color: var(--primary-font-color);
    background: var(--primary-bg-color);
    border: 1px solid var(--tertiary-bg-color);
    border-radius: 9px;
    box-shadow: none;
}

#dialog.nidalite-measures-dialog .nidalite-measures-basket-minus[hidden],
#dialog.nidalite-measures-dialog .nidalite-measures-count[hidden] {
    display: none;
}

#dialog.nidalite-measures-dialog .nidalite-measures-basket-actions {
    display: grid;
    gap: 9px;
    padding: 0 24px 24px;
    grid-template-columns: 92px minmax(0, 1fr);
}

#dialog.nidalite-measures-dialog .nidalite-measures-basket-actions button {
    display: flex;
    width: 100%;
    min-height: 54px;
    align-items: center;
    justify-content: center;
    gap: 8px;
}

#dialog.nidalite-measures-dialog .nidalite-measures-basket-actions .nidalite-measures-basket-later {
    flex-direction: column;
    gap: 4px;
    padding: 6px;
    color: var(--primary-font-color);
    background: var(--secondary-bg-color);
    border: 1px solid var(--tertiary-bg-color);
    font-size: 11px;
    line-height: 1;
}

#dialog.nidalite-measures-dialog .nidalite-measures-basket-later i {
    font-size: 16px;
}

#dialog.nidalite-measures-dialog .nidalite-measures-review {
    display: grid;
    min-height: 0;
    flex: 1;
    gap: 10px;
    padding: 10px 24px 12px;
    overflow: auto;
    align-content: start;
    overscroll-behavior: contain;
}

#dialog.nidalite-measures-dialog .nidalite-measures-review-step,
#dialog.nidalite-measures-dialog .nidalite-measures-review label {
    display: grid;
    min-height: 48px;
    align-items: center;
    gap: 18px;
    padding: 10px 12px;
    border-radius: 10px;
    background: var(--secondary-bg-color);
    grid-template-columns: minmax(96px, 0.8fr) minmax(0, 1.8fr);
}

#dialog.nidalite-measures-dialog .nidalite-measures-review-step {
    width: 100%;
    height: auto;
    min-height: 48px;
    border: 0;
    color: var(--primary-font-color);
    cursor: pointer;
    text-align: left;
}

#dialog.nidalite-measures-dialog .nidalite-measures-review-step:active {
    filter: brightness(0.9);
}

#dialog.nidalite-measures-dialog .nidalite-measures-review span {
    opacity: 0.65;
    overflow-wrap: anywhere;
}

#dialog.nidalite-measures-dialog .nidalite-measures-review strong {
    min-width: 0;
    overflow-wrap: anywhere;
    text-align: right;
}

#dialog.nidalite-measures-dialog .nidalite-measures-review input {
    width: 100%;
    min-width: 0;
    box-sizing: border-box;
}

#dialog.nidalite-measures-dialog .nidalite-measures-review-actions {
    display: flex;
    gap: 10px;
    padding: 0 24px 24px;
    flex: 0 0 auto;
    flex-wrap: wrap;
}

#dialog.nidalite-measures-dialog .nidalite-measures-review-actions button {
    display: inline-flex;
    min-height: 54px;
    align-items: center;
    justify-content: center;
    gap: 8px;
    flex: 1 1 220px;
}

#dialog.nidalite-measures-dialog .nidalite-measures-review-actions button i {
    display: block;
    width: 1em;
    line-height: 1;
    text-align: center;
}

#dialog.nidalite-measures-dialog .nidalite-measures-batch-review {
    display: flex;
    min-height: 0;
    flex: 1 1 auto;
    flex-direction: column;
    align-items: stretch;
    gap: 9px;
    padding: 10px 24px 12px;
    overflow: auto;
    overscroll-behavior: contain;
}

#dialog.nidalite-measures-dialog .nidalite-measures-batch-review-item {
    display: flex;
    width: 100%;
    height: auto;
    min-height: 66px;
    flex: 0 0 auto;
    align-items: flex-start;
    justify-content: space-between;
    gap: 12px;
    padding: 11px 14px;
    color: var(--primary-font-color);
    background: var(--secondary-bg-color);
    border: 1px solid var(--tertiary-bg-color);
    border-radius: 12px;
    box-sizing: border-box;
    text-align: left;
}

#dialog.nidalite-measures-dialog .nidalite-measures-batch-review-item.incomplete {
    border-color: color-mix(in srgb, var(--warning-color) 48%, var(--tertiary-bg-color));
}

#dialog.nidalite-measures-dialog .nidalite-measures-batch-review-item > span {
    display: flex;
    width: 100%;
    min-width: 0;
    flex-direction: column;
    gap: 5px;
}

#dialog.nidalite-measures-dialog .nidalite-measures-batch-status {
    color: var(--secondary-font-color);
    font-size: 12px;
}

#dialog.nidalite-measures-dialog .nidalite-measures-batch-category {
    color: var(--primary-button-bg-color);
    font-size: 11px;
    font-weight: 700;
}

#dialog.nidalite-measures-dialog .nidalite-measures-batch-review-item.incomplete .nidalite-measures-batch-status {
    color: var(--warning-color);
}

#dialog.nidalite-measures-dialog .nidalite-measures-batch-review-item > i {
    margin-top: 5px;
}

#dialog.nidalite-measures-dialog .nidalite-measures-batch-details {
    display: grid;
    width: 100%;
    min-width: 0;
    gap: 7px 14px;
    margin-top: 6px;
    padding-top: 9px;
    border-top: 1px solid var(--tertiary-bg-color);
    grid-template-columns: repeat(auto-fit, minmax(105px, 1fr));
}

#dialog.nidalite-measures-dialog .nidalite-measures-batch-details > span {
    display: flex;
    min-width: 0;
    flex-direction: column;
    gap: 2px;
}

#dialog.nidalite-measures-dialog .nidalite-measures-batch-details small {
    color: var(--secondary-font-color);
    font-size: 10px;
}

#dialog.nidalite-measures-dialog .nidalite-measures-batch-details b {
    overflow-wrap: anywhere;
    font-size: 13px;
    font-weight: 650;
}

#dialog.nidalite-measures-dialog .nidalite-measures-batch-time {
    display: grid;
    min-width: 260px;
    align-items: center;
    gap: 10px;
    flex: 2 1 360px;
    grid-template-columns: auto minmax(0, 1fr);
}

@media (max-width: 700px) {
    #content-block.nidalite-measures-backdrop {
        align-items: stretch;
        padding: var(--webview-area-inset-top) var(--webview-area-inset-right) var(--webview-area-inset-bottom) var(--webview-area-inset-left);
        background: var(--primary-bg-color);
    }

    #dialog.nidalite-measures-dialog {
        width: 100%;
        height: 100%;
        max-height: none;
        border: 0;
        border-radius: 0;
    }

    #dialog.nidalite-measures-dialog .nidalite-measures-shell-header {
        min-height: 70px;
        padding: 13px 15px;
    }

    #dialog.nidalite-measures-dialog .nidalite-measures-brand > span {
        width: 42px;
        height: 42px;
        flex-basis: 42px;
        border-radius: 14px;
    }

    #dialog.nidalite-measures-dialog .nidalite-measures-brand p {
        display: none;
    }

    #dialog.nidalite-measures-dialog .nidalite-measures-wizard-header {
        min-height: 86px;
        padding: 13px 16px 6px;
    }

    #dialog.nidalite-measures-dialog .nidalite-measures-wizard-header h3 {
        font-size: 22px;
    }

    #dialog.nidalite-measures-dialog .nidalite-measures-category-tabs {
        gap: 3px;
        padding: 3px 16px 6px;
    }

    #dialog.nidalite-measures-dialog .nidalite-measures-category-tabs button {
        min-height: 44px;
        border-radius: 9px;
        font-size: clamp(9px, 2.7vw, 11px);
    }

    #dialog.nidalite-measures-dialog .nidalite-measures-detail-header {
        min-height: 104px;
    }

    #dialog.nidalite-measures-dialog .nidalite-measures-detail-header h3 {
        font-size: clamp(25px, 7vw, 32px);
    }

    #dialog.nidalite-measures-dialog .nidalite-measures-options {
        gap: 7px;
        padding: 8px 16px 16px;
    }

    #dialog.nidalite-measures-dialog .nidalite-measures-options-regular .nidalite-measures-option {
        padding-right: 7px;
        padding-left: 7px;
        font-size: clamp(13px, 2vh, 16px);
    }

    #dialog.nidalite-measures-dialog .nidalite-measures-options-regular .nidalite-measures-option.nidalite-measures-option-long-word {
        font-size: clamp(9px, 3vw, 13px);
    }

    #dialog.nidalite-measures-dialog .nidalite-measures-options-regular,
    #dialog.nidalite-measures-dialog .nidalite-measures-options-dense {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        grid-template-rows: repeat(var(--nidalite-rows-2, 1), minmax(0, 1fr));
    }

    #dialog.nidalite-measures-dialog .nidalite-measures-options-dense .nidalite-measures-option {
        font-size: clamp(10px, 1.65vh, 14px);
    }

    #dialog.nidalite-measures-dialog .nidalite-measures-options-dense .nidalite-measures-option.nidalite-measures-option-long-word {
        font-size: clamp(8px, 2.5vw, 10px);
    }

    #dialog.nidalite-measures-dialog .nidalite-measures-text-entry {
        grid-template-columns: minmax(0, 1fr);
        grid-template-rows: auto auto;
    }

    #dialog.nidalite-measures-dialog .nidalite-measures-review {
        padding: 8px 16px 10px;
    }

    #dialog.nidalite-measures-dialog .nidalite-measures-review-actions {
        padding: 0 16px 16px;
    }

    #dialog.nidalite-measures-dialog .nidalite-measures-basket-actions {
        padding: 0 16px 16px;
    }

    #dialog.nidalite-measures-dialog .nidalite-measures-batch-review {
        padding: 8px 16px 10px;
    }
}

@media (max-height: 560px) and (orientation: landscape) {
    #dialog.nidalite-measures-dialog .nidalite-measures-shell-header {
        min-height: 54px;
        padding: 6px 15px;
    }

    #dialog.nidalite-measures-dialog .nidalite-measures-brand > span {
        width: 36px;
        height: 36px;
        flex-basis: 36px;
        border-radius: 12px;
        font-size: 18px;
    }

    #dialog.nidalite-measures-dialog .nidalite-measures-brand h2 {
        font-size: 18px;
    }

    #dialog.nidalite-measures-dialog .nidalite-measures-wizard-header {
        min-height: 58px;
        padding: 4px 16px;
    }

    #dialog.nidalite-measures-dialog .nidalite-measures-wizard-header h3 {
        margin-top: 2px;
        font-size: 18px;
    }

    #dialog.nidalite-measures-dialog .nidalite-measures-category-tabs {
        gap: 3px;
        padding: 2px 16px 4px;
    }

    #dialog.nidalite-measures-dialog .nidalite-measures-category-tabs button {
        height: 44px;
        min-height: 44px;
        font-size: 10px;
    }

    #dialog.nidalite-measures-dialog .nidalite-measures-detail-header {
        min-height: 72px;
    }

    #dialog.nidalite-measures-dialog .nidalite-measures-detail-header h3 {
        font-size: 23px;
    }

    #dialog.nidalite-measures-dialog .nidalite-measures-detail-context {
        margin-top: 4px;
        font-size: 11px;
    }

    #dialog.nidalite-measures-dialog .nidalite-measures-options {
        gap: 5px;
        padding: 4px 16px 8px;
        overflow: auto;
    }

    #dialog.nidalite-measures-dialog .nidalite-measures-options-sparse {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        grid-template-rows: repeat(var(--nidalite-rows-2, 1), minmax(44px, 1fr));
    }

    #dialog.nidalite-measures-dialog .nidalite-measures-options-regular {
        grid-template-columns: repeat(3, minmax(0, 1fr));
        grid-template-rows: repeat(var(--nidalite-rows-3, 1), minmax(44px, 1fr));
    }

    #dialog.nidalite-measures-dialog .nidalite-measures-options-dense {
        grid-template-columns: repeat(4, minmax(0, 1fr));
        grid-template-rows: repeat(var(--nidalite-rows-4, 1), minmax(44px, 1fr));
    }

    #dialog.nidalite-measures-dialog .nidalite-measures-basket-actions {
        padding: 0 16px 8px;
    }

    #dialog.nidalite-measures-dialog .nidalite-measures-text-entry {
        grid-template-columns: minmax(0, 1fr);
        grid-template-rows: auto auto;
    }
}

.nidalite-voice-overlay {
    position: fixed;
    z-index: 100008;
    inset: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: max(18px, var(--webview-area-inset-top)) max(18px, var(--webview-area-inset-right)) max(18px, var(--webview-area-inset-bottom)) max(18px, var(--webview-area-inset-left));
    box-sizing: border-box;
    background: rgba(9, 15, 25, 0.72);
    backdrop-filter: blur(14px);
}

.nidalite-voice-dialog {
    display: flex;
    width: min(900px, 100%);
    max-height: min(820px, 100%);
    flex-direction: column;
    overflow: hidden;
    color: var(--primary-font-color);
    background: var(--primary-bg-color);
    border: 1px solid var(--tertiary-bg-color);
    border-radius: 28px;
    box-shadow: 0 28px 80px rgba(0, 0, 0, 0.35);
}

.nidalite-voice-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 20px;
    padding: 22px 24px;
    border-bottom: 1px solid var(--tertiary-bg-color);
}

.nidalite-voice-title-wrap {
    display: flex;
    min-width: 0;
    align-items: center;
    gap: 15px;
}

.nidalite-voice-title-icon,
.nidalite-voice-processing-icon {
    display: flex;
    width: 46px;
    height: 46px;
    flex: 0 0 46px;
    align-items: center;
    justify-content: center;
    color: var(--primary-button-font-color);
    background: var(--primary-button-bg-color);
    border-radius: 15px;
    font-size: 21px;
}

.nidalite-voice-header h2,
.nidalite-voice-header p,
.nidalite-voice-recording h3,
.nidalite-voice-recording p,
.nidalite-voice-processing h3,
.nidalite-voice-processing p,
.nidalite-voice-review-heading h3,
.nidalite-voice-review-heading p {
    margin: 0;
}

.nidalite-voice-header h2 {
    font-size: 20px;
    line-height: 1.2;
}

.nidalite-voice-header p {
    margin-top: 4px;
    color: var(--secondary-font-color);
    font-size: 13px;
}

.nidalite-voice-close {
    display: flex;
    width: 44px;
    height: 44px;
    flex: 0 0 44px;
    align-items: center;
    justify-content: center;
    padding: 0;
    color: var(--primary-font-color);
    background: var(--secondary-bg-color);
    border: 0;
    border-radius: 14px;
    font-size: 21px;
}

.nidalite-voice-content {
    display: flex;
    min-height: 0;
    flex: 1;
    flex-direction: column;
    overflow: auto;
    overflow-x: hidden;
    scrollbar-gutter: stable;
    overscroll-behavior: contain;
}

.nidalite-voice-recording,
.nidalite-voice-processing,
.nidalite-voice-message {
    display: flex;
    min-height: 360px;
    flex: 1;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    padding: 38px;
    box-sizing: border-box;
    text-align: center;
}

.nidalite-voice-mic {
    position: relative;
    display: flex;
    width: 118px;
    height: 118px;
    align-items: center;
    justify-content: center;
    margin-bottom: 28px;
    color: white;
    background: linear-gradient(145deg, var(--primary-button-bg-color), #6b5bff);
    border-radius: 50%;
    box-shadow: 0 18px 45px color-mix(in srgb, var(--primary-button-bg-color) 34%, transparent);
    font-size: 40px;
}

.nidalite-voice-mic span {
    position: absolute;
    z-index: -1;
    inset: -13px;
    border: 2px solid color-mix(in srgb, var(--primary-button-bg-color) 42%, transparent);
    border-radius: inherit;
    animation: nidalite-voice-pulse 1.6s ease-out infinite;
}

.nidalite-voice-mic.preparing {
    color: var(--primary-button-bg-color);
    background: var(--secondary-bg-color);
    box-shadow: none;
}

.nidalite-voice-mic.preparing span {
    inset: -8px;
    border: 3px solid var(--tertiary-bg-color);
    border-top-color: var(--primary-button-bg-color);
    animation: nidalite-voice-starting 900ms linear infinite;
}

.nidalite-voice-mic.ready {
    animation: nidalite-voice-ready 260ms ease-out both;
}

.nidalite-voice-recording h3,
.nidalite-voice-processing h3 {
    font-size: 24px;
}

.nidalite-voice-recording-help,
.nidalite-voice-processing p {
    max-width: 580px;
    margin-top: 9px !important;
    color: var(--secondary-font-color);
    line-height: 1.5;
}

.nidalite-voice-transcript {
    width: min(650px, 100%);
    margin-top: 28px;
    padding: 16px 18px;
    box-sizing: border-box;
    background: var(--secondary-bg-color);
    border: 1px solid var(--tertiary-bg-color);
    border-radius: 16px;
    text-align: left;
}

.nidalite-voice-transcript>span {
    color: var(--secondary-font-color);
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.nidalite-voice-transcript p {
    min-height: 23px;
    margin: 7px 0 0;
    line-height: 1.5;
    white-space: pre-wrap;
}

.nidalite-voice-transcript.live {
    min-height: 118px;
    background: linear-gradient(145deg, var(--secondary-bg-color), color-mix(in srgb, var(--primary-button-bg-color) 7%, var(--secondary-bg-color)));
    border-color: color-mix(in srgb, var(--primary-button-bg-color) 28%, var(--tertiary-bg-color));
}

.nidalite-voice-live-text {
    display: flex;
    height: 112px;
    min-height: 112px;
    flex-wrap: wrap;
    align-content: flex-start;
    gap: 6px;
    overflow-y: auto;
    scrollbar-gutter: stable;
    overscroll-behavior: contain;
    font-size: 19px;
}

.nidalite-voice-live-placeholder {
    color: var(--secondary-font-color);
    font-size: 15px;
    opacity: 0.68;
}

.nidalite-voice-live-word {
    display: inline-block;
    padding: 4px 7px;
    background: color-mix(in srgb, var(--primary-button-bg-color) 10%, transparent);
    border-radius: 8px;
    line-height: 1.25;
    opacity: 1;
}

.nidalite-voice-live-word.confirmed {
    opacity: 1;
}

.nidalite-voice-live-word.latest {
    background: color-mix(in srgb, var(--primary-button-bg-color) 22%, transparent);
    opacity: 1;
}

.nidalite-voice-transcript.review {
    width: auto;
    margin: 22px 24px 0;
}

.nidalite-voice-processing>i,
.nidalite-voice-message>i {
    margin-bottom: 20px;
    color: var(--primary-button-bg-color);
    font-size: 42px;
}

.nidalite-voice-processing-icon {
    margin-bottom: 22px;
}

.nidalite-voice-progress {
    width: min(340px, 80%);
    height: 5px;
    margin-top: 28px;
    overflow: hidden;
    background: var(--tertiary-bg-color);
    border-radius: 8px;
}

.nidalite-voice-progress span {
    display: block;
    width: 42%;
    height: 100%;
    background: var(--primary-button-bg-color);
    border-radius: inherit;
    animation: nidalite-voice-progress 1.25s ease-in-out infinite alternate;
}

.nidalite-voice-message p {
    max-width: 520px;
    margin: 0;
    font-size: 18px;
    line-height: 1.5;
}

.nidalite-voice-message-error>i {
    color: var(--failure-color);
}

.nidalite-voice-review-heading {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 24px 24px 13px;
}

.nidalite-voice-review-heading h3 {
    font-size: 20px;
}

.nidalite-voice-review-heading p {
    margin-top: 4px;
    color: var(--secondary-font-color);
    font-size: 13px;
}

.nidalite-voice-review-heading>span {
    min-width: 34px;
    padding: 7px 9px;
    color: var(--primary-button-font-color);
    background: var(--primary-button-bg-color);
    border-radius: 12px;
    box-sizing: border-box;
    font-size: 13px;
    font-weight: 700;
    text-align: center;
}

.nidalite-voice-proposals {
    display: grid;
    gap: 12px;
    padding: 0 24px 24px;
}

.nidalite-voice-proposal {
    display: grid;
    grid-template-columns: 34px minmax(0, 1fr);
    gap: 12px;
    padding: 17px;
    background: var(--secondary-bg-color);
    border: 1px solid var(--tertiary-bg-color);
    border-radius: 18px;
    transition: opacity 160ms ease, transform 160ms ease;
}

.nidalite-voice-proposal.excluded {
    opacity: 0.5;
}

.nidalite-voice-proposal-selector {
    position: relative;
    display: block;
    width: 26px;
    height: 26px;
    margin-top: 2px;
}

.nidalite-voice-proposal-selector input {
    position: absolute;
    opacity: 0;
}

.nidalite-voice-proposal-selector span {
    display: flex;
    width: 26px;
    height: 26px;
    align-items: center;
    justify-content: center;
    background: var(--primary-bg-color);
    border: 2px solid var(--tertiary-bg-color);
    border-radius: 9px;
    box-sizing: border-box;
}

.nidalite-voice-proposal-selector input:checked+span {
    background: var(--primary-button-bg-color);
    border-color: var(--primary-button-bg-color);
}

.nidalite-voice-proposal-selector input:checked+span::after {
    content: '\2713';
    color: var(--primary-button-font-color);
    font-size: 15px;
    font-weight: 800;
}

.nidalite-voice-proposal-body {
    min-width: 0;
}

.nidalite-voice-proposal-meta {
    display: flex;
    align-items: baseline;
    gap: 9px;
    margin-bottom: 6px;
}

.nidalite-voice-proposal-meta span {
    padding: 3px 7px;
    color: var(--primary-button-bg-color);
    background: color-mix(in srgb, var(--primary-button-bg-color) 12%, transparent);
    border-radius: 7px;
    font-size: 10px;
    font-weight: 700;
    letter-spacing: 0.05em;
    text-transform: uppercase;
}

.nidalite-voice-current-value {
    margin: 0 0 11px;
    overflow: hidden;
    color: var(--secondary-font-color);
    font-size: 12px;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.nidalite-voice-proposed-value,
.nidalite-voice-switch {
    width: 100%;
    min-height: 46px;
    box-sizing: border-box;
}

.nidalite-voice-proposed-value {
    padding: 10px 12px;
    color: var(--primary-font-color);
    background: var(--primary-bg-color);
    border: 1px solid var(--tertiary-bg-color);
    border-radius: 11px;
    font: inherit;
}

textarea.nidalite-voice-proposed-value {
    min-height: 90px;
    resize: vertical;
}

.nidalite-voice-choice-editor {
    display: grid;
    gap: 8px;
    padding: 8px;
}

.nidalite-voice-choice-option {
    display: grid;
    gap: 8px;
    padding: 9px 10px;
    border: 1px solid transparent;
    border-radius: 9px;
}

.nidalite-voice-choice-option.selected {
    background: color-mix(in srgb, var(--primary-button-bg-color) 10%, transparent);
    border-color: color-mix(in srgb, var(--primary-button-bg-color) 30%, transparent);
}

.nidalite-voice-choice-option label {
    display: flex;
    align-items: center;
    gap: 10px;
    min-height: 26px;
    cursor: pointer;
}

.nidalite-voice-choice-input {
    flex: 0 0 auto;
    width: 21px;
    height: 21px;
    accent-color: var(--primary-button-bg-color);
}

.nidalite-voice-choice-detail {
    width: 100%;
    min-height: 40px;
    padding: 8px 10px;
    color: var(--primary-font-color);
    background: var(--secondary-bg-color);
    border: 1px solid var(--tertiary-bg-color);
    border-radius: 8px;
    box-sizing: border-box;
    font: inherit;
}

.nidalite-voice-choice-detail:disabled {
    display: none;
}

.nidalite-voice-switch {
    display: flex;
    align-items: center;
    gap: 11px;
    padding: 0 12px;
    background: var(--primary-bg-color);
    border: 1px solid var(--tertiary-bg-color);
    border-radius: 11px;
    font-weight: 600;
}

.nidalite-voice-switch input {
    width: 22px;
    height: 22px;
    accent-color: var(--primary-button-bg-color);
}

.nidalite-voice-unassigned {
    margin: 0 24px 24px;
    padding: 15px 17px;
    background: color-mix(in srgb, var(--warning-color, #f5a623) 12%, var(--secondary-bg-color));
    border: 1px solid color-mix(in srgb, var(--warning-color, #f5a623) 40%, transparent);
    border-radius: 14px;
}

.nidalite-voice-unassigned p {
    margin: 6px 0 0;
    color: var(--secondary-font-color);
    line-height: 1.45;
}

.nidalite-voice-actions {
    display: flex;
    justify-content: flex-end;
    gap: 10px;
    padding: 16px 24px 22px;
    border-top: 1px solid var(--tertiary-bg-color);
}

.nidalite-voice-actions.sticky {
    position: sticky;
    z-index: 2;
    bottom: 0;
    background: var(--primary-bg-color);
}

.nidalite-voice-actions button {
    width: auto;
    min-height: 48px;
    padding: 0 18px;
    border: 0;
    border-radius: 13px;
    font-size: 14px;
    font-weight: 700;
    white-space: nowrap;
}

.nidalite-voice-actions button.primary {
    color: var(--primary-button-font-color);
    background: var(--primary-button-bg-color);
}

.nidalite-voice-actions button.secondary {
    color: var(--primary-font-color);
    background: var(--secondary-bg-color);
}

.nidalite-voice-actions button.danger {
    color: white;
    background: var(--failure-color);
}

.nidalite-voice-actions button:disabled {
    opacity: 0.55;
}

@keyframes nidalite-voice-pulse {
    from {
        transform: scale(0.94);
        opacity: 0.9;
    }

    to {
        transform: scale(1.18);
        opacity: 0;
    }
}

@keyframes nidalite-voice-starting {
    to {
        transform: rotate(360deg);
    }
}

@keyframes nidalite-voice-ready {
    from {
        transform: scale(0.9);
    }

    to {
        transform: scale(1);
    }
}

@keyframes nidalite-voice-progress {
    from {
        transform: translateX(-20%);
    }

    to {
        transform: translateX(155%);
    }
}

@keyframes nidalite-voice-word-in {
    from {
        opacity: 0;
        transform: translateY(5px) scale(0.94);
    }

    to {
        transform: translateY(0) scale(1);
    }
}

@media (max-width: 700px) {
    .nidalite-voice-overlay {
        padding: var(--webview-area-inset-top) var(--webview-area-inset-right) var(--webview-area-inset-bottom) var(--webview-area-inset-left);
    }

    .nidalite-voice-dialog {
        width: 100%;
        height: 100%;
        max-height: none;
        border: 0;
        border-radius: 0;
    }

    .nidalite-voice-header {
        padding: 15px 16px;
    }

    .nidalite-voice-title-icon {
        display: none;
    }

    .nidalite-voice-header h2 {
        font-size: 18px;
    }

    .nidalite-voice-header p {
        display: none;
    }

    .nidalite-voice-recording,
    .nidalite-voice-processing,
    .nidalite-voice-message {
        min-height: 300px;
        padding: 26px 20px;
    }

    .nidalite-voice-transcript.review,
    .nidalite-voice-unassigned {
        margin-right: 16px;
        margin-left: 16px;
    }

    .nidalite-voice-review-heading {
        padding-right: 16px;
        padding-left: 16px;
    }

    .nidalite-voice-proposals {
        padding-right: 16px;
        padding-left: 16px;
    }

    .nidalite-voice-actions {
        flex-wrap: wrap;
        padding: 12px 16px max(14px, var(--webview-area-inset-bottom));
    }

    .nidalite-voice-actions button {
        flex: 1 1 auto;
    }

    .nidalite-voice-actions .nidalite-voice-confirm {
        flex-basis: 100%;
        order: -1;
    }

    .nidalite-voice-actions .nidalite-voice-analysis-retry {
        flex-basis: 100%;
        order: -1;
    }
}

.nidai-structured-text {
    width: calc(100% - 48px);
    min-height: 280px;
    margin: 0 24px 20px;
    padding: 16px;
    box-sizing: border-box;
    color: var(--primary-font-color);
    background: var(--secondary-bg-color);
    border: 1px solid var(--tertiary-bg-color);
    border-radius: 14px;
    font: inherit;
    line-height: 1.5;
    resize: vertical;
}

.nidai-structured-text:focus {
    border-color: var(--primary-button-bg-color);
    outline: 2px solid color-mix(in srgb, var(--primary-button-bg-color) 25%, transparent);
}

.nidalens-send-status {
    min-height: 20px;
    margin: -8px 24px 12px;
    color: var(--error-color, #b3261e);
    font-size: 13px;
}

@media (prefers-reduced-motion: reduce) {

    .nidalite-voice-mic span,
    .nidalite-voice-mic,
    .nidalite-voice-progress span,
    .nidalite-voice-live-word {
        animation: none;
    }
}

.nidalite-voice-dialog.nidalite-interview-dialog {
    width: 100%;
    height: 100%;
    max-height: none;
    border: 0;
    border-radius: 0;
    box-shadow: none;
}

.nidalite-voice-overlay.nidalite-interview-overlay {
    padding: 0;
    background: var(--primary-bg-color);
    backdrop-filter: none;
}

.nidalite-interview-dialog .nidalite-voice-header {
    padding-top: max(22px, var(--webview-area-inset-top));
    padding-right: max(24px, var(--webview-area-inset-right));
    padding-left: max(24px, var(--webview-area-inset-left));
}

.nidalite-interview-intro {
    padding: 34px 28px 18px;
    text-align: center;
}

.nidalite-interview-intro>span,
.nidalite-interview-heading>div>span {
    color: var(--primary-button-bg-color);
    font-size: 11px;
    font-weight: 800;
    letter-spacing: 0.12em;
    text-transform: uppercase;
}

.nidalite-interview-intro h3,
.nidalite-interview-intro p,
.nidalite-interview-heading h3,
.nidalite-interview-heading p {
    margin: 0;
}

.nidalite-interview-intro h3 {
    margin-top: 7px;
    font-size: 25px;
}

.nidalite-interview-intro p,
.nidalite-interview-heading p {
    margin-top: 6px;
    color: var(--secondary-font-color);
    line-height: 1.4;
}

.nidalite-interview-types {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 14px;
    padding: 18px 28px 32px;
}

.nidalite-interview-type {
    display: grid;
    width: 100%;
    height: auto;
    min-height: 150px;
    grid-template-columns: 54px minmax(0, 1fr) auto auto;
    gap: 14px;
    align-items: center;
    padding: 20px;
    color: var(--primary-font-color);
    background: var(--secondary-bg-color);
    border: 1px solid var(--tertiary-bg-color);
    border-radius: 20px;
    box-shadow: none;
    text-align: left;
}

.nidalite-interview-type:hover {
    background: color-mix(in srgb, var(--primary-button-bg-color) 6%, var(--secondary-bg-color));
    border-color: color-mix(in srgb, var(--primary-button-bg-color) 34%, var(--tertiary-bg-color));
}

.nidalite-interview-type-icon {
    display: flex;
    width: 54px;
    height: 54px;
    align-items: center;
    justify-content: center;
    color: var(--primary-button-bg-color);
    background: color-mix(in srgb, var(--primary-button-bg-color) 12%, var(--primary-bg-color));
    border-radius: 17px;
    font-size: 23px;
}

.nidalite-interview-type>span:nth-child(2) {
    display: flex;
    min-width: 0;
    flex-direction: column;
}

.nidalite-interview-type strong {
    font-size: 21px;
}

.nidalite-interview-type small {
    margin-top: 6px;
    color: var(--secondary-font-color);
    line-height: 1.4;
}

.nidalite-interview-count {
    min-width: 42px;
    padding: 8px 9px;
    color: var(--primary-button-bg-color);
    background: color-mix(in srgb, var(--primary-button-bg-color) 12%, transparent);
    border-radius: 11px;
    box-sizing: border-box;
    font-weight: 800;
    text-align: center;
}

.nidalite-interview-heading {
    display: flex;
    align-items: center;
    gap: 15px;
    padding: 20px 24px 10px;
}

.nidalite-interview-heading h3 {
    margin-top: 3px;
    font-size: 22px;
}

.nidalite-interview-back {
    display: flex;
    width: 44px;
    height: 44px;
    flex: 0 0 44px;
    align-items: center;
    justify-content: center;
    padding: 0;
    color: var(--primary-font-color);
    background: var(--secondary-bg-color);
    border: 1px solid var(--tertiary-bg-color);
    border-radius: 14px;
}

.nidalite-interview-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 12px;
    padding: 12px 24px 24px;
}

.nidalite-interview-card {
    display: grid;
    min-width: 0;
    grid-template-columns: 46px minmax(0, 1fr);
    gap: 13px;
    padding: 16px;
    background: var(--secondary-bg-color);
    border: 1px solid var(--tertiary-bg-color);
    border-radius: 18px;
}

.nidalite-interview-card.covered {
    border-color: color-mix(in srgb, var(--success-color, #37bf79) 48%, var(--tertiary-bg-color));
}

.nidalite-interview-card.partial {
    border-color: color-mix(in srgb, var(--warning-color, #f5a623) 52%, var(--tertiary-bg-color));
}

.nidalite-interview-letter {
    display: flex;
    width: 46px;
    height: 46px;
    align-items: center;
    justify-content: center;
    color: var(--primary-button-bg-color);
    background: color-mix(in srgb, var(--primary-button-bg-color) 12%, var(--primary-bg-color));
    border-radius: 14px;
    font-size: 20px;
    font-weight: 850;
}

.nidalite-interview-card.covered .nidalite-interview-letter {
    color: white;
    background: var(--success-color, #37bf79);
}

.nidalite-interview-card.partial .nidalite-interview-letter {
    color: #19130a;
    background: var(--warning-color, #f5a623);
}

.nidalite-interview-card-heading {
    display: flex;
    min-width: 0;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
}

.nidalite-interview-card-heading strong {
    overflow: hidden;
    font-size: 16px;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.nidalite-interview-status {
    flex: 0 0 auto;
    color: var(--secondary-font-color);
    font-size: 11px;
    font-weight: 750;
}

.nidalite-interview-card.covered .nidalite-interview-status {
    color: var(--success-color, #37bf79);
}

.nidalite-interview-card.partial .nidalite-interview-status {
    color: var(--warning-color, #f5a623);
}

.nidalite-interview-card p {
    margin: 8px 0 0;
    color: var(--primary-font-color);
    line-height: 1.4;
}

.nidalite-interview-card small {
    display: block;
    margin-top: 8px;
    overflow: hidden;
    color: var(--secondary-font-color);
    text-overflow: ellipsis;
    white-space: nowrap;
}

.nidalite-interview-grid.compact {
    padding-top: 0;
}

.nidalite-interview-grid.compact .nidalite-interview-card {
    padding: 12px;
}

.nidalite-interview-grid.compact .nidalite-interview-letter {
    width: 38px;
    height: 38px;
    font-size: 16px;
}

.nidalite-interview-review-heading {
    padding: 5px 24px 10px;
    color: var(--secondary-font-color);
    font-size: 12px;
    font-weight: 800;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.nidalite-interview-review-fields {
    grid-template-columns: repeat(auto-fit, minmax(min(390px, 100%), 1fr));
    align-items: start;
}

.nidalite-interview-review-fields .nidalite-interview-proposal-group {
    grid-column: 1 / -1;
}

.nidalite-interview-medication-add {
    grid-column: 1 / -1;
    justify-self: start;
    min-height: 44px;
    padding: 0 17px;
    color: var(--primary-font-color);
    background: var(--secondary-bg-color);
    border: 1px solid var(--tertiary-bg-color);
    border-radius: 11px;
    font-size: 14px;
    font-weight: 700;
}

.nidalite-interview-medication-add i {
    margin-right: 7px;
}

.nidalite-interview-review-fields .nidalite-interview-available-field.excluded {
    opacity: 1;
    border-style: dashed;
}

.nidalite-interview-review-fields .nidalite-interview-available-field.excluded .nidalite-voice-proposal-selector {
    opacity: 0.6;
}

.nidalite-interview-proposal-group {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 7px 2px 0;
}

.nidalite-interview-proposal-group span {
    display: flex;
    width: 28px;
    height: 28px;
    align-items: center;
    justify-content: center;
    color: var(--primary-button-font-color);
    background: var(--primary-button-bg-color);
    border-radius: 9px;
    font-weight: 800;
}

.nidalite-interview-heading.recording {
    position: sticky;
    z-index: 2;
    top: 0;
    padding-bottom: 14px;
    background: var(--primary-bg-color);
    border-bottom: 1px solid var(--tertiary-bg-color);
}

.nidalite-voice-content.nidai-sinnhaft-recording {
    overflow: hidden;
}

.nidai-sinnhaft-question-scroll {
    min-height: 0;
    flex: 1;
    overflow-y: auto;
    scrollbar-gutter: stable;
    overscroll-behavior: contain;
}

.nidalite-interview-heading.recording .nidalite-voice-mic {
    width: 50px;
    height: 50px;
    flex: 0 0 50px;
    margin: 0;
    font-size: 20px;
}

.nidalite-interview-recorder {
    position: sticky;
    z-index: 3;
    bottom: 0;
    margin-top: auto;
    background: var(--primary-bg-color);
    border-top: 1px solid var(--tertiary-bg-color);
}

.nidai-sinnhaft-recording .nidalite-interview-recorder {
    position: static;
    flex: 0 0 auto;
    margin-top: 0;
}

.nidai-sinnhaft-recording .nidalite-voice-actions {
    padding-bottom: max(22px, var(--webview-area-inset-bottom));
}

.nidalite-interview-recorder .nidalite-voice-transcript {
    width: auto;
    margin: 14px 24px 0;
}

.nidalite-interview-recorder .nidalite-voice-transcript.live {
    min-height: 74px;
}

.nidalite-interview-recorder .nidalite-voice-live-text {
    height: 58px;
    min-height: 58px;
    font-size: 15px;
}

@media (max-width: 700px) {
    .nidalite-interview-dialog .nidalite-voice-header {
        padding-top: max(15px, var(--webview-area-inset-top));
        padding-right: max(16px, var(--webview-area-inset-right));
        padding-left: max(16px, var(--webview-area-inset-left));
    }

    .nidalite-interview-intro {
        padding: 27px 18px 12px;
    }

    .nidalite-interview-types,
    .nidalite-interview-grid {
        grid-template-columns: 1fr;
        padding-right: 16px;
        padding-left: 16px;
    }

    .nidalite-interview-type {
        min-height: 112px;
        padding: 16px;
    }

    .nidalite-interview-heading {
        padding-right: 16px;
        padding-left: 16px;
    }

    .nidalite-interview-card {
        grid-template-columns: 42px minmax(0, 1fr);
        padding: 14px;
    }

    .nidalite-interview-letter {
        width: 42px;
        height: 42px;
    }

    .nidalite-interview-card-heading {
        align-items: flex-start;
        flex-direction: column;
        gap: 3px;
    }

    .nidalite-interview-card-heading strong {
        white-space: normal;
    }

    .nidalite-interview-recorder .nidalite-voice-transcript {
        margin-right: 16px;
        margin-left: 16px;
    }
}

.nidalite-voice-medication-editor {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 8px;
}

.nidalite-voice-medication-editor label {
    display: grid;
    min-width: 0;
    gap: 5px;
}

.nidalite-voice-medication-editor label.wide {
    grid-column: 1 / -1;
}

.nidalite-voice-medication-editor label > span {
    color: var(--secondary-font-color);
    font-size: 11px;
}

.nidalite-voice-medication-editor input,
.nidalite-voice-medication-editor select {
    width: 100%;
    min-width: 0;
    height: 42px;
    padding: 0 9px;
    color: var(--primary-font-color);
    background: var(--secondary-bg-color);
    border: 1px solid var(--tertiary-bg-color);
    border-radius: 9px;
    box-sizing: border-box;
}

#dialog.call-sign-selection-dialog {
    max-width: 520px;
}

.call-sign-selection-state {
    display: flex;
    flex-direction: column;
    gap: 12px;
}

.call-sign-selection-status {
    display: flex;
    min-height: 150px;
    align-items: center;
    justify-content: center;
    flex-direction: column;
    gap: 16px;
    text-align: center;
    line-height: 1.4;
}

.call-sign-selection-status > i {
    color: var(--secondary-button-bg-color);
    font-size: 34px;
}

.call-sign-selection-status small {
    max-width: 340px;
    opacity: 0.65;
    line-height: 1.5;
}

.call-sign-selection-status .call-sign-selection-error-code {
    font-family: monospace;
    font-size: 12px;
    opacity: 0.5;
}

.call-sign-selection-status button {
    margin-top: 8px;
}

#dialog.edition-mismatch-dialog {
    max-width: 520px;
    align-items: center;
    text-align: center;
    gap: 16px;
}

.edition-mismatch-dialog .edition-mismatch-icon {
    color: #ef4444;
    font-size: 42px;
}

.edition-mismatch-dialog h3 {
    margin: 0;
}

.edition-mismatch-dialog p {
    max-width: 400px;
    margin: 0 0 4px;
    line-height: 1.5;
}

#dialog.edition-mismatch-dialog button {
    margin: 8px 0 0;
}

.edition-mismatch-dialog button i {
    margin-right: 10px;
}

/* NIDAlite Bluetooth protocol transfer */
.nidalite-transfer-overlay {
    position: fixed;
    z-index: 100010;
    inset: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: max(20px, var(--webview-area-inset-top)) max(20px, var(--webview-area-inset-right)) max(20px, var(--webview-area-inset-bottom)) max(20px, var(--webview-area-inset-left));
    background: color-mix(in srgb, #000 82%, transparent);
    backdrop-filter: blur(12px);
}

.nidalite-transfer-dialog {
    display: flex;
    width: min(760px, 100%);
    max-height: min(880px, 100%);
    overflow: hidden;
    flex-direction: column;
    border: 1px solid var(--tertiary-bg-color);
    border-radius: 24px;
    background: var(--primary-bg-color);
    color: var(--primary-font-color);
    box-shadow: 0 30px 90px rgb(0 0 0 / 45%);
}

.nidalite-transfer-header {
    display: flex;
    min-height: 78px;
    align-items: center;
    justify-content: space-between;
    gap: 18px;
    padding: 14px 18px 14px 22px;
    border-bottom: 1px solid var(--tertiary-bg-color);
}

.nidalite-transfer-heading {
    display: flex;
    min-width: 0;
    align-items: center;
    gap: 14px;
}

.nidalite-transfer-icon,
.nidalite-transfer-status-icon,
.nidalite-transfer-device-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex: 0 0 auto;
    background: color-mix(in srgb, var(--primary-button-bg-color) 18%, var(--secondary-bg-color));
    color: var(--primary-button-bg-color);
}

.nidalite-transfer-icon {
    width: 44px;
    height: 44px;
    border-radius: 14px;
    font-size: 19px;
}

.nidalite-transfer-heading h2,
.nidalite-transfer-heading p,
.nidalite-transfer-section-heading h3,
.nidalite-transfer-section-heading p,
.nidalite-transfer-state h3,
.nidalite-transfer-state p {
    margin: 0;
}

.nidalite-transfer-heading h2 {
    font-size: 19px;
    line-height: 1.25;
}

.nidalite-transfer-heading p {
    margin-top: 2px;
    opacity: 0.62;
    font-size: 12px;
}

.nidalite-transfer-close {
    display: inline-flex;
    width: 44px;
    height: 44px;
    align-items: center;
    justify-content: center;
    flex: 0 0 auto;
    margin: 0;
    padding: 0;
    border: 1px solid var(--tertiary-bg-color);
    border-radius: 14px;
    background: var(--secondary-bg-color);
    color: var(--primary-font-color);
    font-size: 20px;
}

.nidalite-transfer-content {
    min-height: 0;
    overflow: auto;
    overscroll-behavior: contain;
}

.nidalite-transfer-discovery,
.nidalite-transfer-preparation,
.nidalite-transfer-review {
    padding: 26px;
}

.nidalite-transfer-section-heading {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 20px;
    margin-bottom: 20px;
}

.nidalite-transfer-section-heading h3,
.nidalite-transfer-state h3 {
    font-size: 24px;
    line-height: 1.2;
}

.nidalite-transfer-section-heading p:not(.nidalite-transfer-eyebrow) {
    max-width: 520px;
    margin-top: 7px;
    opacity: 0.68;
    line-height: 1.45;
}

.nidalite-transfer-eyebrow {
    margin: 0 0 6px !important;
    color: var(--primary-button-bg-color);
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 0.12em;
    text-transform: uppercase;
}

.nidalite-transfer-scanning {
    display: inline-flex;
    width: 46px;
    height: 46px;
    align-items: center;
    justify-content: center;
    flex: 0 0 auto;
    border-radius: 50%;
    background: color-mix(in srgb, var(--primary-button-bg-color) 16%, var(--secondary-bg-color));
    color: var(--primary-button-bg-color);
    font-size: 20px;
    animation: nidalite-transfer-radar 1.8s ease-in-out infinite;
}

.nidalite-transfer-device-list {
    display: grid;
    gap: 10px;
}

.nidalite-transfer-device {
    display: grid;
    width: 100%;
    min-height: 72px;
    grid-template-columns: auto minmax(0, 1fr) auto auto;
    align-items: center;
    gap: 13px;
    margin: 0;
    padding: 12px 16px 12px 12px;
    border: 1px solid var(--tertiary-bg-color);
    border-radius: 17px;
    background: var(--secondary-bg-color);
    color: var(--primary-font-color);
    text-align: left;
}

.nidalite-transfer-device:active {
    transform: scale(0.99);
}

.nidalite-transfer-device-icon {
    width: 46px;
    height: 46px;
    border-radius: 13px;
}

.nidalite-transfer-device-copy,
.nidalite-transfer-signal {
    display: flex;
    min-width: 0;
    flex-direction: column;
    gap: 3px;
}

.nidalite-transfer-device-copy strong {
    overflow: hidden;
    font-size: 16px;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.nidalite-transfer-device-copy small,
.nidalite-transfer-signal small {
    opacity: 0.58;
    font-size: 11px;
}

.nidalite-transfer-signal {
    align-items: flex-end;
    color: var(--primary-button-bg-color);
}

.nidalite-transfer-no-devices,
.nidalite-transfer-empty {
    display: flex;
    min-height: 150px;
    align-items: center;
    justify-content: center;
    flex-direction: column;
    gap: 8px;
    color: var(--primary-font-color);
    text-align: center;
}

.nidalite-transfer-no-devices.hidden {
    display: none;
}

.nidalite-transfer-no-devices > i,
.nidalite-transfer-empty > i {
    margin-bottom: 6px;
    color: var(--primary-button-bg-color);
    font-size: 30px;
}

.nidalite-transfer-no-devices span,
.nidalite-transfer-empty span {
    max-width: 340px;
    opacity: 0.58;
    font-size: 12px;
    line-height: 1.4;
}

.nidalite-transfer-offer {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 18px;
    margin-top: 24px;
    padding: 18px;
    border: 1px solid color-mix(in srgb, var(--primary-button-bg-color) 42%, var(--tertiary-bg-color));
    border-radius: 18px;
    background: color-mix(in srgb, var(--primary-button-bg-color) 8%, var(--secondary-bg-color));
}

.nidalite-transfer-offer > div {
    display: flex;
    min-width: 0;
    flex-direction: column;
    gap: 4px;
}

.nidalite-transfer-offer span {
    opacity: 0.65;
    font-size: 12px;
    line-height: 1.4;
}

.nidalite-transfer-offer button,
.nidalite-transfer-actions button,
.nidalite-transfer-selection-tools button,
.nidalite-transfer-success > button,
.nidalite-transfer-waiting > button {
    width: auto;
    min-height: 44px;
    margin: 0;
    padding: 10px 16px;
    border-radius: 13px;
}

.nidalite-transfer-size {
    display: flex;
    min-width: 140px;
    align-items: flex-end;
    flex-direction: column;
    gap: 4px;
    padding: 11px 13px;
    border: 1px solid var(--tertiary-bg-color);
    border-radius: 13px;
    background: var(--secondary-bg-color);
}

.nidalite-transfer-size strong {
    font-size: 13px;
}

.nidalite-transfer-size span {
    opacity: 0.66;
    font-size: 11px;
}

.nidalite-transfer-size.over-limit {
    border-color: #ef4444;
    color: #ef4444;
}

.nidalite-transfer-selection-tools {
    display: flex;
    gap: 8px;
    margin-bottom: 14px;
}

.nidalite-transfer-selection-tools button {
    min-height: 36px;
    padding: 7px 12px;
    font-size: 12px;
}

.nidalite-transfer-picture-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 12px;
}

.nidalite-transfer-picture {
    position: relative;
    display: block;
    width: 100%;
    min-height: 0;
    overflow: hidden;
    aspect-ratio: 4 / 3;
    margin: 0;
    padding: 0;
    border: 2px solid transparent;
    border-radius: 16px;
    background: var(--secondary-bg-color);
    color: #fff;
}

.nidalite-transfer-picture img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.nidalite-transfer-picture::after {
    position: absolute;
    inset: 35% 0 0;
    content: "";
    background: linear-gradient(transparent, rgb(0 0 0 / 86%));
    pointer-events: none;
}

.nidalite-transfer-picture.selected {
    border-color: var(--primary-button-bg-color);
    box-shadow: 0 0 0 2px color-mix(in srgb, var(--primary-button-bg-color) 30%, transparent);
}

.nidalite-transfer-picture.unavailable {
    opacity: 0.35;
    filter: grayscale(0.7);
}

.nidalite-transfer-picture-check {
    position: absolute;
    z-index: 2;
    top: 9px;
    right: 9px;
    display: inline-flex;
    width: 30px;
    height: 30px;
    align-items: center;
    justify-content: center;
    border: 1px solid rgb(255 255 255 / 45%);
    border-radius: 10px;
    background: rgb(0 0 0 / 70%);
}

.nidalite-transfer-picture.selected .nidalite-transfer-picture-check {
    border-color: var(--primary-button-bg-color);
    background: var(--primary-button-bg-color);
}

.nidalite-transfer-picture-meta {
    position: absolute;
    z-index: 2;
    right: 10px;
    bottom: 9px;
    left: 10px;
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 6px;
    text-align: left;
}

.nidalite-transfer-picture-meta strong {
    overflow: hidden;
    font-size: 11px;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.nidalite-transfer-picture-meta small {
    flex: 0 0 auto;
    opacity: 0.8;
    font-size: 9px;
}

.nidalite-transfer-limit-hint,
.nidalite-transfer-attachment-note {
    display: flex;
    align-items: center;
    gap: 10px;
    margin-top: 16px;
    padding: 12px 14px;
    border-radius: 13px;
    background: var(--secondary-bg-color);
    opacity: 0.75;
    font-size: 11px;
    line-height: 1.4;
}

.nidalite-transfer-actions {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 10px;
    margin-top: 22px;
}

.nidalite-transfer-state {
    display: flex;
    min-height: 440px;
    align-items: center;
    justify-content: center;
    flex-direction: column;
    gap: 14px;
    padding: 36px;
    text-align: center;
}

.nidalite-transfer-state > p:not(.nidalite-transfer-eyebrow) {
    max-width: 520px;
    opacity: 0.68;
    line-height: 1.5;
}

.nidalite-transfer-status-icon {
    width: 72px;
    height: 72px;
    margin-bottom: 8px;
    border-radius: 24px;
    font-size: 30px;
}

.nidalite-transfer-pin {
    padding: 12px 22px;
    border: 1px solid color-mix(in srgb, var(--primary-button-bg-color) 55%, var(--tertiary-bg-color));
    border-radius: 17px;
    background: color-mix(in srgb, var(--primary-button-bg-color) 10%, var(--secondary-bg-color));
    color: var(--primary-font-color);
    font-family: ui-monospace, SFMono-Regular, Menlo, monospace;
    font-size: clamp(34px, 8vw, 54px);
    font-weight: 700;
    letter-spacing: 0.12em;
}

.nidalite-transfer-countdown {
    opacity: 0.55;
    font-size: 12px;
}

.nidalite-transfer-pulse {
    width: 9px;
    height: 9px;
    margin: 8px 0;
    border-radius: 50%;
    background: var(--primary-button-bg-color);
    box-shadow: 0 0 0 0 color-mix(in srgb, var(--primary-button-bg-color) 50%, transparent);
    animation: nidalite-transfer-pulse 1.5s infinite;
}

.nidalite-transfer-progress {
    width: min(420px, 90%);
    height: 8px;
    overflow: hidden;
    margin-top: 12px;
    border-radius: 999px;
    background: var(--tertiary-bg-color);
}

.nidalite-transfer-progress span {
    display: block;
    width: 0;
    height: 100%;
    border-radius: inherit;
    background: var(--primary-button-bg-color);
    transition: width 160ms linear;
}

.nidalite-transfer-progress-detail {
    opacity: 0.62;
    font-size: 11px;
}

.nidalite-transfer-error > i {
    color: #ef4444;
    font-size: 44px;
}

.nidalite-transfer-success .nidalite-transfer-status-icon {
    color: #22c55e;
}

.nidalite-transfer-review-list {
    display: grid;
    gap: 9px;
}

.nidalite-transfer-review-list h4 {
    margin: 16px 0 3px;
    color: var(--primary-button-bg-color);
    font-size: 12px;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.nidalite-transfer-review-card {
    position: relative;
    display: grid;
    min-height: 66px;
    grid-template-columns: auto minmax(0, 1fr) auto;
    align-items: center;
    gap: 12px;
    padding: 12px 14px;
    border: 1px solid var(--tertiary-bg-color);
    border-radius: 15px;
    background: var(--secondary-bg-color);
}

.nidalite-transfer-review-card.conflict {
    border-color: color-mix(in srgb, #f59e0b 55%, var(--tertiary-bg-color));
}

.nidalite-transfer-review-card > input {
    position: absolute;
    opacity: 0;
    pointer-events: none;
}

.nidalite-transfer-review-check {
    display: inline-flex;
    width: 30px;
    height: 30px;
    align-items: center;
    justify-content: center;
    border: 1px solid var(--tertiary-bg-color);
    border-radius: 9px;
    color: transparent;
}

.nidalite-transfer-review-card:has(input:checked) .nidalite-transfer-review-check {
    border-color: var(--primary-button-bg-color);
    background: var(--primary-button-bg-color);
    color: var(--primary-button-font-color);
}

.nidalite-transfer-review-copy {
    display: flex;
    min-width: 0;
    flex-direction: column;
    gap: 3px;
}

.nidalite-transfer-review-copy strong {
    font-size: 13px;
}

.nidalite-transfer-review-copy small {
    overflow: hidden;
    opacity: 0.55;
    font-size: 10px;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.nidalite-transfer-review-copy > span {
    line-height: 1.35;
}

.nidalite-transfer-review-card em {
    padding: 4px 7px;
    border-radius: 999px;
    background: color-mix(in srgb, #f59e0b 16%, transparent);
    color: #f59e0b;
    font-size: 9px;
    font-style: normal;
    font-weight: 700;
    text-transform: uppercase;
}

@keyframes nidalite-transfer-pulse {
    70% {
        box-shadow: 0 0 0 15px transparent;
    }

    100% {
        box-shadow: 0 0 0 0 transparent;
    }
}

@keyframes nidalite-transfer-radar {
    50% {
        transform: rotate(20deg) scale(1.06);
    }
}

@media (max-width: 700px) {
    .nidalite-transfer-overlay {
        padding: var(--webview-area-inset-top) var(--webview-area-inset-right) var(--webview-area-inset-bottom) var(--webview-area-inset-left);
        background: var(--primary-bg-color);
        backdrop-filter: none;
    }

    .nidalite-transfer-dialog {
        width: 100%;
        height: 100%;
        max-height: none;
        border: 0;
        border-radius: 0;
        box-shadow: none;
    }

    .nidalite-transfer-header {
        min-height: 66px;
        padding: 10px 12px 10px 16px;
    }

    .nidalite-transfer-heading p,
    .nidalite-transfer-icon {
        display: none;
    }

    .nidalite-transfer-discovery,
    .nidalite-transfer-preparation,
    .nidalite-transfer-review {
        padding: 20px 16px max(18px, var(--webview-area-inset-bottom));
    }

    .nidalite-transfer-section-heading {
        flex-direction: column;
        gap: 14px;
    }

    .nidalite-transfer-section-heading h3,
    .nidalite-transfer-state h3 {
        font-size: 21px;
    }

    .nidalite-transfer-size {
        width: 100%;
        align-items: center;
        justify-content: space-between;
        flex-direction: row;
        box-sizing: border-box;
    }

    .nidalite-transfer-offer {
        align-items: stretch;
        flex-direction: column;
    }

    .nidalite-transfer-offer button {
        width: 100%;
    }

    .nidalite-transfer-picture-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 9px;
    }

    .nidalite-transfer-actions.sticky {
        position: sticky;
        z-index: 5;
        bottom: calc(-1 * max(18px, var(--webview-area-inset-bottom)));
        margin: 20px -16px calc(-1 * max(18px, var(--webview-area-inset-bottom)));
        padding: 12px 16px max(14px, var(--webview-area-inset-bottom));
        border-top: 1px solid var(--tertiary-bg-color);
        background: color-mix(in srgb, var(--primary-bg-color) 94%, transparent);
        backdrop-filter: blur(16px);
    }

    .nidalite-transfer-actions.sticky button {
        flex: 1;
    }

    .nidalite-transfer-state {
        min-height: calc(100dvh - 90px - var(--webview-area-inset-top) - var(--webview-area-inset-bottom));
        padding: 24px 18px;
        box-sizing: border-box;
    }

    .nidalite-transfer-pin-state .nidalite-transfer-actions {
        width: 100%;
        flex-direction: column-reverse;
    }

    .nidalite-transfer-pin-state .nidalite-transfer-actions button {
        width: 100%;
    }
}

@media (prefers-reduced-motion: reduce) {
    .nidalite-transfer-scanning,
    .nidalite-transfer-pulse {
        animation: none;
    }

    .nidalite-transfer-progress span {
        transition: none;
    }
}
#app.nidalite-mission .corpuls-empty-state,
#app.nidalite-mission .corpuls-section-meta {
    display: flex;
    align-items: center;
    gap: 10px;
    color: var(--text-color-light);
    font-size: 13px;
}

#app.nidalite-mission .corpuls-empty-state {
    min-height: 74px;
    padding: 14px 16px;
    border: 1px dashed color-mix(in srgb, var(--text-color-light) 35%, transparent);
    border-radius: 14px;
    flex-wrap: wrap;
}

#app.nidalite-mission .corpuls-empty-state i { font-size: 23px; }
#app.nidalite-mission .corpuls-empty-state small { width: 100%; padding-left: 33px; }

#app.nidalite-mission #corpuls-resting-ecgs .corpuls-empty-state {
    gap: 8px;
    flex-wrap: nowrap;
}

#app.nidalite-mission #corpuls-resting-ecgs .corpuls-empty-state span {
    min-width: 0;
    white-space: nowrap;
}

.corpuls-alarm-list,
.corpuls-ecg-list {
    display: grid;
    gap: 9px;
    width: 100%;
}

.corpuls-section-meta {
    padding: 0 4px 5px;
}

.corpuls-alarm,
.corpuls-ecg-item {
    display: flex;
    align-items: center;
    gap: 12px;
    min-height: 62px;
    padding: 10px 12px;
    background: var(--card-background, rgba(127, 127, 127, 0.08));
    border: 1px solid rgba(127, 127, 127, 0.18);
    border-radius: 14px;
}

.corpuls-alarm-marker {
    display: grid;
    place-items: center;
    width: 38px;
    height: 38px;
    flex: 0 0 38px;
    border-radius: 50%;
    background: rgba(127, 127, 127, 0.13);
}

.corpuls-alarm.priority-high .corpuls-alarm-marker { color: #fff; background: var(--failure-color, #d33); }
.corpuls-alarm.priority-medium .corpuls-alarm-marker { color: #5b4100; background: #ffd166; }
.corpuls-alarm.state-ended { opacity: 0.64; }
.corpuls-alarm > div { display: grid; gap: 2px; }
.corpuls-alarm span, .corpuls-alarm small { color: var(--text-color-light); font-size: 12px; }

.corpuls-ecg-open {
    display: flex;
    align-items: center;
    gap: 12px;
    min-width: 0;
    flex: 1;
    padding: 0;
    text-align: left;
    background: transparent;
    border: 0;
    color: inherit;
}

.corpuls-ecg-open > i { color: var(--failure-color, #d33); font-size: 27px; }
.corpuls-ecg-open span { display: grid; min-width: 0; gap: 2px; }
.corpuls-ecg-open small { color: var(--text-color-light); }
.corpuls-ecg-status { display: inline-flex; align-items: center; gap: 5px; font-size: 11px; color: var(--text-color-light); }
.corpuls-ecg-status.uploaded { color: var(--success-color, #25865c); }
.corpuls-dialog-backdrop {
    position: fixed;
    inset: 0;
    z-index: 10050;
    display: grid;
    place-items: center;
    padding: max(18px, env(safe-area-inset-top)) 18px max(18px, env(safe-area-inset-bottom));
    background: rgba(4, 12, 20, 0.62);
    backdrop-filter: blur(8px);
    opacity: 0;
    transition: opacity 180ms ease;
}

.corpuls-dialog-backdrop.visible { opacity: 1; }

.corpuls-dialog {
    width: min(620px, 100%);
    max-height: min(820px, 92vh);
    overflow: hidden;
    background: var(--background-color, #fff);
    color: var(--text-color, #17212b);
    border-radius: 24px;
    box-shadow: 0 24px 70px rgba(0, 0, 0, 0.32);
    transform: translateY(12px) scale(0.98);
    transition: transform 180ms ease;
}

.corpuls-dialog-backdrop.visible .corpuls-dialog { transform: none; }
.corpuls-dialog > header { display: flex; align-items: center; justify-content: space-between; padding: 18px 20px; border-bottom: 1px solid rgba(127, 127, 127, 0.16); }
.corpuls-dialog > header > div { display: flex; align-items: center; gap: 11px; }
.corpuls-dialog h2 { margin: 0; font-size: 20px; }
.corpuls-dialog-icon { display: grid; place-items: center; width: 38px; height: 38px; border-radius: 12px; color: #fff; background: var(--main-color); }
.corpuls-dialog-close { width: 40px; height: 40px; padding: 0; border-radius: 50%; background: rgba(127, 127, 127, 0.12); color: inherit; }
.corpuls-dialog-content { max-height: calc(min(820px, 92vh) - 77px); overflow: auto; padding: 20px; }

.corpuls-scan-status,
.corpuls-connection-card,
.corpuls-error {
    display: flex;
    align-items: center;
    gap: 13px;
    padding: 15px;
    border-radius: 15px;
    background: color-mix(in srgb, var(--main-color) 9%, transparent);
}

.corpuls-scan-status > div,
.corpuls-connection-card > div,
.corpuls-error { display: grid; gap: 3px; }
.corpuls-scan-status span:last-child,
.corpuls-connection-card span,
.corpuls-error span { color: var(--text-color-light); font-size: 13px; }
.corpuls-connection-card > i { color: var(--success-color, #25865c); font-size: 28px; }
.corpuls-error { color: var(--failure-color, #d33); }

.corpuls-spinner {
    width: 26px;
    height: 26px;
    flex: 0 0 26px;
    border: 3px solid rgba(127, 127, 127, 0.22);
    border-top-color: var(--main-color);
    border-radius: 50%;
    animation: corpuls-spin 0.85s linear infinite;
}

@keyframes corpuls-spin { to { transform: rotate(360deg); } }

.corpuls-device-list { display: grid; gap: 9px; margin: 15px 0; }
.corpuls-device { display: grid; grid-template-columns: 38px minmax(0, 1fr) auto; align-items: center; gap: 12px; width: 100%; min-height: 64px; height: auto; padding: 12px; background: rgba(127, 127, 127, 0.07); color: inherit; border: 1px solid rgba(127, 127, 127, 0.16); border-radius: 14px; text-align: left; box-sizing: border-box; }
.corpuls-device.selected { border-color: var(--main-color); background: color-mix(in srgb, var(--main-color) 12%, transparent); box-shadow: 0 0 0 2px color-mix(in srgb, var(--main-color) 18%, transparent); opacity: 1; }
.corpuls-device:disabled:not(.selected) { opacity: 0.42; }
.corpuls-device-details { display: grid; min-width: 0; gap: 4px; }
.corpuls-device-details > strong { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.corpuls-device small { display: flex; align-items: center; flex-wrap: wrap; gap: 4px 7px; min-width: 0; color: var(--text-color-light); font-weight: 400; line-height: 1.25; }
.ecg-provider-badge { display: inline-flex; align-items: center; padding: 2px 6px; border-radius: 999px; background: color-mix(in srgb, var(--main-color) 13%, transparent); color: var(--main-color); font-size: 10px; letter-spacing: .04em; }
.ecg-device-status { min-width: 0; overflow-wrap: anywhere; }
.corpuls-device-signal { display: grid; place-items: center; width: 38px; height: 38px; border-radius: 50%; color: var(--main-color); background: color-mix(in srgb, var(--main-color) 12%, transparent); }
.corpuls-device-connecting { width: 20px; height: 20px; flex-basis: 20px; border-width: 2px; }
.corpuls-connection-success { display: grid; place-items: center; width: 32px; height: 32px; flex: 0 0 32px; color: var(--success-color, #25865c); font-size: 28px; }
.corpuls-pairing-note, .corpuls-safety-note { display: flex; gap: 9px; color: var(--text-color-light); font-size: 12px; line-height: 1.45; }
.corpuls-setting { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin: 15px 0; }
.corpuls-setting select { width: auto; min-width: 110px; }
.corpuls-dialog-actions { display: grid; gap: 9px; margin-top: 18px; }
.corpuls-dialog-actions button { width: 100%; }
.corpuls-dialog-actions .danger { color: var(--failure-color, #d33); background: color-mix(in srgb, var(--failure-color, #d33) 9%, transparent); }

#dialog.nidalite-corpuls-dialog {
    width: min(720px, 100%);
    max-width: 720px;
    height: min(780px, 100%);
    max-height: min(780px, 100%);
}

#dialog.nidalite-corpuls-dialog .corpuls-dialog-content {
    display: block;
    padding: 24px;
    overflow-y: auto;
    box-sizing: border-box;
}

#dialog.nidalite-corpuls-dialog .corpuls-device {
    display: grid;
    height: auto;
    min-height: 64px;
    padding: 12px;
    color: var(--primary-font-color);
    background: var(--secondary-bg-color);
    border-color: var(--tertiary-bg-color);
}

#dialog.nidalite-corpuls-dialog .corpuls-device:active,
#dialog.nidalite-corpuls-dialog .corpuls-device:focus-visible {
    border-color: var(--primary-button-bg-color);
    outline: 2px solid color-mix(in srgb, var(--primary-button-bg-color) 30%, transparent);
}

#dialog.nidalite-corpuls-dialog .corpuls-device small,
#dialog.nidalite-corpuls-dialog .corpuls-pairing-note,
#dialog.nidalite-corpuls-dialog .corpuls-safety-note {
    color: var(--secondary-font-color);
}

#dialog.nidalite-corpuls-dialog .corpuls-dialog-alarms {
    margin-top: 24px;
    padding-top: 20px;
    border-top: 1px solid var(--tertiary-bg-color);
}

#dialog.nidalite-corpuls-dialog .corpuls-dialog-alarms h3 {
    display: flex;
    align-items: center;
    gap: 9px;
    margin: 0 0 12px;
    color: var(--primary-font-color);
    font-size: 16px;
}

.corpuls-patient-review { display: grid; gap: 8px; margin: 14px 0; }
.corpuls-patient-review label { display: grid; grid-template-columns: auto 1fr auto; align-items: center; gap: 11px; padding: 11px; border: 1px solid rgba(127, 127, 127, 0.16); border-radius: 13px; }
.corpuls-patient-review label.conflict { border-color: rgba(220, 145, 20, 0.55); }
.corpuls-patient-review label.match { opacity: 0.62; }
.corpuls-patient-review label > span { display: grid; gap: 2px; }
.corpuls-patient-review small { color: var(--text-color-light); }
.corpuls-patient-review em { font-size: 11px; font-style: normal; color: var(--text-color-light); }
.corpuls-source-only { margin: 12px 0 18px; }
.corpuls-source-only div { display: flex; justify-content: space-between; gap: 15px; padding: 8px 0; border-bottom: 1px solid rgba(127, 127, 127, 0.12); font-size: 13px; }

@media (max-width: 600px) {
    .corpuls-dialog-backdrop { align-items: end; padding: 0; }
    .corpuls-dialog { width: 100%; max-height: 92vh; border-radius: 24px 24px 0 0; }
    .corpuls-ecg-status { display: none; }
}

birthdate-input,
.new-call-dialog-optional-fields birthdate-input,
.protocol-category birthdate-input {
    height: 46px;
}

.birthdate-input-container {
    position: relative;
    height: 46px;
}

birthdate-input.invalid .birthdate-input-container {
    border-color: var(--failure-color);
}

.birthdate-validation-message {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border: 0;
}

.triple-button-container .protocol-button {
    min-width: 0;
    padding: 0 8px;
    gap: 8px;
}
.egk-photo-dialog { width: min(640px, 100%); }
.egk-photo-preview { width: 100%; max-height: 240px; object-fit: contain; border-radius: 12px; }
.egk-photo-fields { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; }
.egk-photo-fields label { display: flex; flex-direction: column; gap: 6px; min-width: 0; }
.egk-photo-fields input { box-sizing: border-box; width: 100%; min-width: 0; }
.egk-photo-dialog [hidden] { display: none !important; }
@media (max-width: 480px) { .egk-photo-fields { grid-template-columns: 1fr; } }

/* The short eGK flow uses a compact modal even on phones. */
.egk-photo-overlay {
    align-items: center;
    padding: max(16px, var(--webview-area-inset-top, 0px)) max(16px, var(--webview-area-inset-right, 0px)) max(16px, var(--webview-area-inset-bottom, 0px)) max(16px, var(--webview-area-inset-left, 0px));
    background: rgba(7, 11, 18, 0.78);
}
.egk-photo-dialog {
    width: min(600px, 100%);
    max-height: 100%;
    height: auto;
    border: 1px solid var(--tertiary-bg-color);
    border-radius: 24px;
}
.egk-photo-dialog .nidalens-header { padding: 20px; gap: 12px; }
.egk-photo-dialog .nidalens-brand { gap: 12px; }
.egk-photo-dialog .nidalens-brand h2 { font-size: 20px; }
.egk-photo-dialog .nidalens-content { flex: 0 1 auto; padding: 24px; gap: 20px; scrollbar-gutter: auto; }
.egk-photo-dialog .nidalens-content p { margin: 0; color: var(--secondary-font-color); line-height: 1.5; font-size: 14px; }
.egk-photo-dialog .nidalens-actions { padding: 0; gap: 12px; }
.egk-photo-dialog .nidalens-actions button { width: auto; flex: 1 1 auto; box-sizing: border-box; white-space: nowrap; display: flex; justify-content: center; align-items: center; gap: 9px; min-height: 48px; }
.egk-photo-dialog .egk-photo-status:empty { display: none; }
.egk-photo-review { display: flex; flex-direction: column; gap: 20px; }
.egk-photo-fields label { font-size: 13px; color: var(--secondary-font-color); }
.egk-photo-fields input { margin: 0; padding: 12px; border: 1px solid var(--tertiary-bg-color); border-radius: 12px; background: var(--secondary-bg-color); color: var(--primary-font-color); font: inherit; font-size: 16px; }
@media (max-width: 480px) {
    .egk-photo-dialog .nidalens-header { padding: 16px; }
    .egk-photo-dialog .nidalens-content { padding: 20px; }
    .egk-photo-dialog .nidalens-brand h2 { font-size: 18px; }
    .egk-photo-dialog .nidalens-actions { flex-direction: column; }
    .egk-photo-dialog .nidalens-actions button { width: 100%; flex: 0 0 auto; }
}
/* Hamilton acquisition uses the existing medical-device dialog shell. */
.hamilton-dialog { width: min(960px, calc(100vw - 24px)); max-height: calc(100dvh - 32px); }
.hamilton-dialog .nidalite-measures-shell-header h2 { margin: 0; }
.hamilton-dialog .nidalite-measures-shell-header p { margin: 4px 0 0; overflow-wrap: anywhere; }
#dialog.hamilton-dialog > .hamilton-content { display: flex; flex-direction: column; gap: 16px; padding: 18px; min-height: 0; overflow-y: auto; overflow-x: hidden; -webkit-overflow-scrolling: touch; }
#dialog.hamilton-dialog > .hamilton-content > * { flex-shrink: 0; }
#dialog.hamilton-dialog > .nidalite-measures-shell-header { flex-shrink: 0; }
.hamilton-content section h3 { margin: 0 0 10px; }
.hamilton-note { margin: 0; font-size: .88rem; opacity: .8; }
.hamilton-content button { padding: 10px 14px; border-radius: 8px; border: 1px solid #8886; cursor: pointer; font: inherit; color: inherit; background: #8881; }
.hamilton-content button:disabled { opacity: .5; cursor: default; }
.hamilton-actions, .hamilton-pages { display: flex; gap: 10px; flex-wrap: wrap; align-items: center; }
.hamilton-status { display: flex; flex-direction: column; gap: 6px; overflow-wrap: anywhere; }
.hamilton-status { padding: 12px; border-radius: 8px; background: #258cba18; }
.hamilton-status p { margin: 4px 0; }
.hamilton-error, .hamilton-warning { color: #b95215; }
.hamilton-error { padding: 12px; background: #dc782818; border: 1px solid #dc782860; border-radius: 8px; overflow-wrap: anywhere; }
.hamilton-devices { display: flex; flex-direction: column; gap: 8px; max-height: min(320px, 40dvh); overflow-y: auto; -webkit-overflow-scrolling: touch; }
.hamilton-devices > button { flex-shrink: 0; }
.hamilton-discovery-note, .hamilton-device-empty { font-size: .88rem; }
.hamilton-devices button { text-align: left; overflow-wrap: anywhere; }
.hamilton-association { display: flex; flex-direction: column; gap: 12px; padding: 14px; border: 1px solid #8885; border-radius: 10px; }
.hamilton-association label { display: flex; flex-direction: column; gap: 6px; }
.hamilton-association input:not([type="checkbox"]) { box-sizing: border-box; width: 100%; min-width: 0; padding: 10px; border: 1px solid #8888; border-radius: 6px; font: inherit; background: transparent; color: inherit; }
.hamilton-content .hamilton-confirm { display: flex; flex-direction: row; align-items: center; gap: 8px; min-height: 44px; }
#dialog.hamilton-dialog input[type="checkbox"] { appearance: auto; width: 18px; height: 18px; min-width: 18px; min-height: 18px; max-width: 18px; max-height: 18px; flex: 0 0 18px; margin: 0; padding: 0; transform: none; }
.hamilton-values { display: grid; grid-template-columns: repeat(auto-fit, minmax(170px, 1fr)); gap: 10px; }
.hamilton-value { display: flex; flex-direction: column; gap: 5px; padding: 12px; border: 1px solid #8884; border-radius: 10px; }
.hamilton-value strong { font-size: 1.3rem; font-variant-numeric: tabular-nums; }
.hamilton-value strong small { font-size: .75rem; font-weight: normal; }
.hamilton-value.stale { border-color: #cd8628; background: #cd86280a; }
.hamilton-value > small { opacity: .8; font-size: .75rem; }
.hamilton-history { overflow-x: auto; margin-bottom: 10px; }
.hamilton-history table { width: 100%; border-collapse: collapse; font-size: .85rem; }
.hamilton-history td, .hamilton-history th { padding: 8px; border-bottom: 1px solid #8883; text-align: left; }
.hamilton-history td:first-child { white-space: nowrap; }
.hamilton-content [hidden] { display: none !important; }
@media (max-width: 480px) { #dialog.hamilton-dialog > .hamilton-content { padding: 12px; } .hamilton-values { grid-template-columns: repeat(2, minmax(0, 1fr)); } }

/* Keep measured values and read-only control settings visually distinct. */
.hamilton-value-groups { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 2fr); gap: 20px; }
.hamilton-value-groups > section { min-width: 0; padding: 14px; border: 1px solid #8884; border-radius: 12px; }
.hamilton-value-groups .hamilton-note { margin-bottom: 12px; }
.hamilton-value-groups .hamilton-values { margin-bottom: 12px; }
.hamilton-dialog .nidalite-measures-brand > div { min-width: 0; overflow-wrap: anywhere; }
.hamilton-mode .hamilton-value { background: #258cba18; }
@media (max-width: 700px) { .hamilton-value-groups { grid-template-columns: minmax(0, 1fr); } }

.hamilton-camera video { display: block; width: 100%; max-height: 40dvh; object-fit: contain; background: #111; }

.hamilton-qr-status { display: flex; align-items: center; gap: 12px; padding: 14px; border-radius: 10px; background: #258cba18; overflow-wrap: anywhere; }
.hamilton-spinner { display: inline-block; flex: 0 0 22px; width: 22px; height: 22px; border: 3px solid #8885; border-top-color: currentColor; border-radius: 50%; animation: hamilton-spin .8s linear infinite; }
@keyframes hamilton-spin { to { transform: rotate(360deg); } }
@media (prefers-reduced-motion: reduce) { .hamilton-spinner { animation-duration: 2s; } }

/* Let nested lists and the horizontal history table pass vertical gestures to the dialog. */
#dialog.hamilton-dialog .hamilton-content * { overscroll-behavior-y: auto !important; touch-action: pan-x pan-y; }
#dialog.hamilton-dialog > .hamilton-content { overscroll-behavior-y: contain !important; touch-action: pan-x pan-y; }

.hamilton-settings { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.hamilton-measurements { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.hamilton-composite > .hamilton-value { border: 0; padding: 6px 0; border-radius: 0; }
@media (max-width: 480px) { .hamilton-settings { grid-template-columns: repeat(2, minmax(0, 1fr)); } }

/* Compact Hamilton overview: keep units and ages readable on phones. */
#dialog.hamilton-dialog > .hamilton-content { gap: 10px; padding: 12px; }
.hamilton-value-groups { grid-template-columns: minmax(0, 3fr) minmax(0, 2fr); gap: 10px; }
.hamilton-value-groups > section { padding: 8px; }
.hamilton-value-groups .hamilton-note { margin-bottom: 6px; font-size: .75rem; }
.hamilton-value-groups .hamilton-values { gap: 6px; margin-bottom: 6px; }
.hamilton-value { gap: 3px; padding: 8px; border-radius: 7px; min-width: 0; overflow-wrap: anywhere; }
.hamilton-value > span { font-size: .8rem; }
.hamilton-value strong { font-size: 1.15rem; }
.hamilton-value > small { font-size: .7rem; }
.hamilton-composite > .hamilton-value { padding: 3px 0; gap: 2px; }
.hamilton-content section h3 { font-size: 1rem; margin-bottom: 6px; }
@media (max-width: 700px) { .hamilton-value-groups { grid-template-columns: minmax(0, 1fr); } }
@media (min-width: 360px) and (max-width: 480px) { .hamilton-settings { grid-template-columns: repeat(3, minmax(0, 1fr)); } }

/* Match the app's themed surfaces and rounded controls while retaining a dense overview. */
#dialog.hamilton-dialog .hamilton-status {
    background: color-mix(in srgb, var(--primary-button-bg-color) 12%, var(--primary-bg-color));
    border: 1px solid color-mix(in srgb, var(--primary-button-bg-color) 24%, var(--tertiary-bg-color));
    border-radius: 14px; padding: 12px 14px; gap: 4px;
}
.hamilton-updated { color: var(--secondary-font-color); font-size: .8rem; font-variant-numeric: tabular-nums; }
.hamilton-value-groups > section { border: 0; padding: 0; }
.hamilton-value-groups section h3 { color: var(--secondary-font-color); font-weight: 600; font-size: .85rem; padding: 4px 2px; }
.hamilton-value {
    background: var(--secondary-bg-color, var(--primary-bg-color));
    border: 1px solid var(--tertiary-bg-color); border-radius: 12px; padding: 9px;
}
.hamilton-value > span, .hamilton-value > small { color: var(--secondary-font-color); opacity: 1; }
.hamilton-value strong { font-weight: 650; line-height: 1.25; letter-spacing: -.02em; }
.hamilton-value strong small { color: var(--secondary-font-color); letter-spacing: 0; }
.hamilton-mode .hamilton-value {
    display: grid; grid-template-columns: 1fr auto; align-items: center; gap: 4px 12px;
    background: var(--secondary-bg-color, var(--primary-bg-color));
    border-inline-start: 3px solid var(--primary-button-bg-color);
}
.hamilton-mode .hamilton-value > strong { grid-column: 2; grid-row: 1 / span 2; }
.hamilton-mode .hamilton-value > small { grid-column: 1; }
.hamilton-composite > .hamilton-value { background: transparent; }
.hamilton-value.stale { border-color: #cd8628; background: color-mix(in srgb, #cd8628 7%, var(--primary-bg-color)); }
.hamilton-content button {
    border-color: var(--tertiary-bg-color); background: var(--secondary-bg-color, var(--primary-bg-color));
    border-radius: 12px; min-height: 40px; padding: 9px 12px; font-size: .85rem; font-weight: 500;
}
.hamilton-actions [data-action="qr"] { color: var(--primary-button-font-color); background: var(--primary-button-bg-color); border-color: transparent; }
.hamilton-content button:focus-visible { outline: 2px solid var(--primary-button-bg-color); outline-offset: 2px; }
.hamilton-history { border: 1px solid var(--tertiary-bg-color); border-radius: 12px; }
.hamilton-history table { font-size: .78rem; font-variant-numeric: tabular-nums; }
.hamilton-history th { color: var(--secondary-font-color); font-weight: 600; background: var(--secondary-bg-color, var(--primary-bg-color)); }
.hamilton-history td, .hamilton-history th { padding: 8px 10px; border-color: var(--tertiary-bg-color); }
.hamilton-history tbody tr:last-child td { border-bottom: 0; }
.hamilton-history tbody tr:nth-child(even) { background: color-mix(in srgb, var(--secondary-bg-color, var(--primary-bg-color)) 50%, var(--primary-bg-color)); }
.hamilton-pages { justify-content: space-between; font-size: .8rem; color: var(--secondary-font-color); }

.hamilton-baseline-note { display: block; white-space: normal; font-size: .7rem; color: var(--secondary-font-color); margin-top: 3px; }

#new-prim-call-btn { background: #00796b !important; }
.overview-tile-nidalite-prim { border-left-color: #00796b; }
.overview-tile-nidalite .nidalite-protocol-type-badge.nidalite-protocol-type-prim,
#app.nidalite-mission #mission-topbar .mission-topbar-protocol-type-prim { background: #00796b; }
#dialog.nidalite-protocol-type-dialog .nidalite-protocol-type-options button[data-protocol-type="PRIM"] { --nidalite-protocol-type-color: #00796b; }
