html {
    font-size: 14px;
    perspective: 1400px;
}

@view-transition {
    navigation: auto;
}

html, body {
    overflow: hidden !important;
}

@media (min-width: 768px) {
    html {
        font-size: 16px;
    }
}

.btn:focus,
.btn:active:focus,
.btn-link.nav-link:focus,
.form-control:focus,
.form-check-input:focus {
    box-shadow: 0 0 0 0.1rem white, 0 0 0 0.25rem #258cfb;
}

html {
    position: relative;
    min-height: 100%;
}

body {
    margin-bottom: 60px;
    font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif;
}

.form-floating > .form-control-plaintext::placeholder,
.form-floating > .form-control::placeholder {
    color: var(--bs-secondary-color);
    text-align: end;
}

.form-floating > .form-control-plaintext:focus::placeholder,
.form-floating > .form-control:focus::placeholder {
    text-align: start;
}

.main-panel {
    max-height: 100%;
    height: 100%;
    display: flex !important;
    flex-direction: column;
    overflow: hidden;
}

.sidebar,
.main-panel,
.sidebar-wrapper,
.navbar-cmp-fixed .navbar {
    transition-property: top, bottom, width;
    transition-duration: 0.2s, 0.2s, 0.35s;
    transition-timing-function: linear, linear, ease;
    -webkit-overflow-scrolling: touch;
}

.main-panel {
    background: rgba(203, 203, 210, 0.15);
    position: relative;
    /* z-index: 2; */
    float: right;
    width: calc(100% - 350px);
    min-height: 100%;
    overflow: auto;
}

.prominent-label-text {
    margin: 0;
    font-size: 14px;
    color: #555;
    font-weight: 500;
}

.ps {
    overflow: hidden !important;
    overflow-anchor: none;
    -ms-overflow-style: none;
    touch-action: auto;
    -ms-touch-action: auto;
}

.btn-group-vertical > .btn-group:after,
.btn-group-vertical > .btn-group:before,
.btn-toolbar:after,
.btn-toolbar:before,
.clearfix:after,
.clearfix:before,
.container-fluid:after,
.container-fluid:before,
.container:after,
.container:before,
.dl-horizontal dd:after,
.dl-horizontal dd:before,
.form-horizontal .form-group:after,
.form-horizontal .form-group:before,
.modal-footer:after,
.modal-footer:before,
.modal-header:after,
.modal-header:before,
.nav:after,
.nav:before,
.navbar-collapse:after,
.navbar-collapse:before,
.navbar-header:after,
.navbar-header:before,
.navbar:after,
.navbar:before,
.pager:after,
.pager:before,
.panel-body:after,
.panel-body:before,
.row:after,
.row:before {
    display: table;
    content: " ";
}

.container-fluid {
    padding: 20px 15px;
    margin-right: auto;
    margin-left: auto;
}

.card.item {
    display: flex;
    align-items: center;
    padding: 10px;
    margin-bottom: 10px;
    flex-direction: row;
}

.item__image {
    width: 40px;
    height: 40px;
    margin-right: 10px;
    max-width: 100%;
    vertical-align: middle;
}

.item__desc {
    flex-grow: 1;
    font-size: 14px;
    margin-bottom: 0;
    max-width: 870px;
}

.hidden {
    display: none !important;
}

.card.item.failed {
    border: 2px solid red;
}

.navbar .container-fluid {
    padding-top: 0;
}

.card .content.table-responsive {
    padding-top: 0;
    margin-top: -20px;
}

/* Upload */
#pending-file-uploads-container {
    display: flex;
    gap: 10px;
    flex-direction: column;
}

.hidden-element {
    display: none !important;
}

#upload-pending-files-entries {
    overflow: hidden;
}

.dragover {
    border: 2px dashed cornflowerblue !important;
    transform: scale(0.99) !important;
}

/*.uploading-files-overlay {*/
/*    position: absolute;*/
/*    width: 100%;*/
/*    height: 100%;*/
/*    z-index: 1;*/
/*    background: linear-gradient(135deg, #4a90e2 0%, #007bff 100%);*/
/*    backdrop-filter: blur(2px);*/
/*    display: flex;*/
/*    justify-content: center;*/
/*    align-items: center;*/
/*}*/

.uploading-files-overlay-inner {
    position: relative;
    width: 100%;
    height: 100%;
}

.uploading-files-overlay p {
    color: white;
    font-size: 40px;
    position: absolute;
    left: 0;
    right: 0;
    top: 0;
    bottom: 0;
    display: flex;
    justify-content: center;
    align-items: center;
}

.uploading-files-overlay-inner {
    width: 100%;
    height: 100%;
}

.badge-text {
    box-shadow: 1px 1px 1px rgba(0, 0, 0, 0.3);
    background-color: rgb(30, 30, 30);
    padding: 2px 8px 2px 8px;
    border-radius: 4px;
    color: white;
}

.uploaded-file-time-ago-badge {
    display: inline-block;
    background-color: rgba(30, 30, 30, 0.85);
    box-shadow: 0 0 4px rgba(0, 0, 0, 0.4);
    padding: 4px 10px;
    border-radius: 16px;
    font-family: "Segoe UI", Arial, sans-serif;
    font-size: 0.6rem;
    font-weight: 600;
    color: #fff;
    letter-spacing: 0.5px;
    margin-left: 15px;
    transition: transform 0.2s ease, box-shadow 0.2s ease;
}

/* Sidebar */

.dashboard-icon img {
    filter: brightness(0) invert(1); /* makes black SVG white */
}

/*Pending upload begin*/

/*.pending-upload-name {*/
/*    font-size: 0.8125rem;*/
/*    font-weight: 500;*/
/*    color: #334155;*/
/*    white-space: nowrap;*/
/*    overflow: hidden;*/
/*    text-overflow: ellipsis;*/
/*    width: fit-content;*/
/*    max-width: 800px;*/
/*}*/

.pending-upload-preview-icon {
    flex-shrink: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 24px;
    height: 24px;
    border-radius: 50%;
    transition: all 0.15s ease;
    margin-left: -4px;
    position: relative;
}

.pending-upload-preview-icon:hover i {
    color: #475569 !important;
}

.pending-upload-preview-ring {
    position: absolute;
    inset: -2px;
    border-radius: 50%;
    pointer-events: none;
}

.pending-upload-preview-ring circle {
    fill: none;
    stroke: #64748b;
    stroke-width: 2;
    stroke-dasharray: 82;
    stroke-dashoffset: 82;
    stroke-linecap: round;
    transform: rotate(-90deg);
    transform-origin: center;
}

.pending-upload-preview-icon.charging .pending-upload-preview-ring circle {
    animation: preview-ring-fill 0.4s ease forwards;
}

@keyframes preview-ring-fill {
    to { stroke-dashoffset: 0; }
}

.pending-upload-name {
    font-size: 0.8125rem;
    font-weight: 500;
    color: #334155;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    flex: 0 1 auto;
    min-width: 0;
}

.pending-upload-spacer {
    flex: 1 1 auto;
}

.pending-upload-file-remove-button {
    border: none;
    outline: none;
    background: #eee;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 16px;
    transition: background .2s;
    min-width: 30px;
    min-height: 30px;
    cursor: pointer;
}

.pending-upload-file-remove-button svg {
    transition: color 0.2s;
}

.pending-upload-file-remove-button:hover {
    background: rgb(0, 0, 0, 0.2)
}

.pending-upload-file-remove-button:hover svg {
    color: red;
}

.pending-upload-file-hash {
    font-family: monospace;
    background-color: rgb(50, 50, 50);
    color: white;
    padding: 2px 4px 2px 4px;
    border-radius: 10px;
    font-style: italic;
    font-size: 14px;
}

#pending-file-uploads-loading-message {
    color: gray;
}

.upload-pending-destination-group {
    margin-bottom: 16px;
}

.upload-pending-destination-group:last-child {
    margin-bottom: 0;
}

.upload-pending-destination-header {
    margin: 0;
    padding: 6px 0;
    font-size: 14px;
    font-weight: 600;
    color: #555;
    display: flex;
    align-items: center;
    gap: 8px;
    position: relative;
    z-index: 2;
}

.upload-pending-destination-badge {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 5px 14px;
    border-radius: 6px;
    font-size: 13px;
    font-weight: 600;
    color: white;
}

.upload-pending-destination-badge i {
    color: white;
}

.upload-pending-destination-badge.doctors-inbox {
    background: linear-gradient(135deg, #00a0a0 0%, #008080 100%);
    border: 1.5px solid #006666;
}

.upload-pending-destination-badge.patients-file {
    background: linear-gradient(135deg, #00a0a0 0%, #008080 100%);
    border: 1.5px solid #006666;
}

/* ── Tree connector lines ─────────────────────────────────── */

/*
 * Layout:
 *   margin-left  = indent the whole tree from the badge
 *   padding-left = reserve space for the trunk + branches
 *
 * The trunk is drawn at the left edge of the padding box (left:0).
 * Children sit at the content edge, which is padding-left px
 * to the right of the trunk.  Their ::before branches span
 * backwards (left: -padding-left; width: padding-left) so the
 * branch starts exactly at the trunk.
 */
.upload-pending-destination-children {
    --tree-branch-width: 30px;         /* horizontal gap trunk→card   */
    --tree-color: #cbd5e1;
    --tree-thickness: 2px;

    position: relative;
    margin-left: 8px;                  /* small indent from the badge */
    padding-left: var(--tree-branch-width);
    padding-top: 4px;
}

/* Vertical trunk — height set by JS to stop at the last child's center */
.upload-pending-destination-children::before {
    content: '';
    position: absolute;
    left: 0;
    top: 0;
    height: var(--tree-trunk-height, 100%);
    border-left: var(--tree-thickness) solid var(--tree-color);
    pointer-events: none;
}

/* Every direct child needs a positioning context */
.upload-pending-destination-children > * {
    position: relative;
}

/* ── Horizontal branches (non-last children) ─────────────── */
.upload-pending-destination-children > .upload-pending-files-entry::before,
.upload-pending-destination-children > .upload-pending-zip-header::before {
    content: '';
    position: absolute;
    left: calc(-1 * var(--tree-branch-width));
    top: 50%;
    width: var(--tree-branch-width);
    height: 0;
    border-top: var(--tree-thickness) solid var(--tree-color);
    pointer-events: none;
}

/* Zip group: the ::before on .upload-pending-zip-group connects to the
   main trunk. We use a CSS var set by JS for exact zip-header midpoint. */
.upload-pending-destination-children > .upload-pending-zip-group::before {
    content: '';
    position: absolute;
    left: calc(-1 * var(--tree-branch-width));
    top: var(--zip-header-mid, 12px);
    width: var(--tree-branch-width);
    height: 0;
    border-top: var(--tree-thickness) solid var(--tree-color);
    pointer-events: none;
}

/* ── Last child: L-shaped curve ──────────────────────────── */
.upload-pending-destination-children > .upload-pending-files-entry:last-child::before,
.upload-pending-destination-children > .upload-pending-zip-header:last-child::before {
    border-top: none;
    top: 0;
    height: calc(50% - var(--tree-thickness));
    width: var(--tree-branch-width);
    left: calc(-1 * var(--tree-branch-width));
    border-left: var(--tree-thickness) solid var(--tree-color);
    border-bottom: var(--tree-thickness) solid var(--tree-color);
    border-bottom-left-radius: 14px;
}

/* Zip group as last child: L-curve stops at zip header midpoint */
.upload-pending-destination-children > .upload-pending-zip-group:last-child::before {
    border-top: none;
    top: 0;
    height: var(--zip-header-mid, 12px);
    width: var(--tree-branch-width);
    left: calc(-1 * var(--tree-branch-width));
    border-left: var(--tree-thickness) solid var(--tree-color);
    border-bottom: var(--tree-thickness) solid var(--tree-color);
    border-bottom-left-radius: 14px;
}

/* ── Reset margins so padding-left is the only indent ──── */
.upload-pending-destination-children > .upload-pending-files-entry {
    margin-left: 0 !important;
}

.upload-pending-destination-children > .upload-pending-zip-header {
    margin-left: 0;
}

/* ── Zip sub-tree (nested inside destination tree) ──────── */

/* The zip header draws a vertical connector downward via ::after
   to bridge into the zip-children sub-trunk seamlessly */
.upload-pending-zip-group > .upload-pending-zip-header {
    position: relative;
    margin-left: 0;
}

.upload-pending-zip-group > .upload-pending-zip-header::after {
    content: '';
    position: absolute;
    /* Align with where the zip-children trunk will be:
       zip-children margin-left (12px) from the zip-header's left edge */
    left: 12px;
    top: 50%;
    bottom: -2px;  /* extend into the zip-children padding-top */
    border-left: var(--tree-thickness, 2px) solid var(--tree-color, #cbd5e1);
    pointer-events: none;
}

.upload-pending-zip-children {
    --tree-branch-width: 24px;

    position: relative;
    margin-left: 12px;
    padding-left: var(--tree-branch-width);
    padding-top: 2px;
}

/* Vertical sub-trunk */
.upload-pending-zip-children::before {
    content: '';
    position: absolute;
    left: 0;
    top: 0;
    height: var(--tree-trunk-height, 100%);
    border-left: var(--tree-thickness, 2px) solid var(--tree-color, #cbd5e1);
    pointer-events: none;
}

.upload-pending-zip-children > * {
    position: relative;
}

/* Horizontal branches for zip children */
.upload-pending-zip-children > .upload-pending-files-entry::before {
    content: '';
    position: absolute;
    left: calc(-1 * var(--tree-branch-width));
    top: 50%;
    width: var(--tree-branch-width);
    height: 0;
    border-top: var(--tree-thickness, 2px) solid var(--tree-color, #cbd5e1);
    pointer-events: none;
}

/* Last child in zip: L-curve */
.upload-pending-zip-children > :last-child::before {
    border-top: none;
    top: 0;
    height: calc(50% - var(--tree-thickness, 2px));
    width: var(--tree-branch-width);
    left: calc(-1 * var(--tree-branch-width));
    border-left: var(--tree-thickness, 2px) solid var(--tree-color, #cbd5e1);
    border-bottom: var(--tree-thickness, 2px) solid var(--tree-color, #cbd5e1);
    border-bottom-left-radius: 12px;
}

/* Reset margins for entries inside zip sub-tree */
.upload-pending-zip-children > .upload-pending-files-entry {
    margin-left: 0 !important;
}

.upload-pending-zip-header {
    margin-left: 20px;
    margin-bottom: 6px;
    margin-top: 14px;
    display: flex;
    align-items: center;
    gap: 0.5rem;
    font-size: 0.8rem;
    font-weight: 600;
    color: #64748b;
    padding-left: 0.75rem;
}

.upload-pending-zip-header:first-child {
    margin-top: 0;
}

.upload-pending-files-entry--from-zip {
    margin-left: 44px !important;
}

.upload-pending-files-entry {
    margin-bottom: 10px !important;
    margin-left: 20px;
    background: white;
    border-radius: 50px;
    padding: 0.625rem 0.75rem 0.625rem 1.25rem;

    opacity: 1;

    box-shadow: inset 0 0 0 2px #5eead4,
    0 2px 8px rgba(0, 0, 0, 0.04),
    0 4px 16px rgba(0, 0, 0, 0.04);

    transition: all 0.2s ease, opacity 0.3s ease-in-out, transform 0.2s;
}

.upload-pending-files-entry-header {
    display: flex;
    align-items: center;
    gap: 0.875rem;
}

/* Move-to-destination button — visible on hover */
.pending-upload-move-btn {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    font-size: 0.6875rem;
    font-weight: 600;
    padding: 0.3rem 0.6rem;
    border-radius: 50px;
    white-space: nowrap;
    cursor: pointer;
    background: #f1f5f9;
    color: #475569;
    border: 1px solid #cbd5e1;
    opacity: 0;
    pointer-events: none;
    transition: opacity 0.15s ease, background 0.15s ease;
    flex-shrink: 0;
}

.pending-upload-move-btn i {
    font-size: 9px;
}

.upload-pending-files-entry:hover .pending-upload-move-btn {
    opacity: 1;
    pointer-events: auto;
}

.pending-upload-move-btn:hover {
    background: #e2e8f0;
    border-color: #94a3b8;
}

.upload-pending-files-entry-footer {
}

.status-pill {
    display: flex;
    align-items: center;
    gap: 0.375rem;
    font-size: 0.6875rem;
    font-weight: 600;
    padding: 0.5rem 1rem;
    border-radius: 50px;
    white-space: nowrap;
    min-width: 110px;
    justify-content: center;
}

.file-action-pill {
    display: flex;
    align-items: center;
    gap: 0.375rem;
    font-size: 0.6875rem;
    font-weight: 600;
    padding: 0.5rem 1rem;
    border-radius: 50px;
    white-space: nowrap;
    margin: 0;
    border: solid 2px rgba(0, 0, 0, 0.2);
    box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1);
    cursor: pointer;
    transition: border 0.2s, background-color 0.2s;
}

.file-action-pill:hover {
    border: solid 2px cornflowerblue;
    background-color: rgba(0, 0, 0, 0.1);
}

.pending-upload-actions-container {
    display: flex;
    gap: 5px;
}

.status-pill svg {
    width: 12px;
    height: 12px;
}

.status-pill--error {
    background: linear-gradient(135deg, #ef4444 0%, #dc2626 100%);
    color: white;
}

.status-pill--loading {
    background: linear-gradient(135deg, #5eead4 0%, #2dd4bf 100%);
    color: white;
}

.status-pill--loading svg {
    animation: loadingPillSpin 1s linear infinite;
}

@keyframes loadingPillSpin {
    from {
        transform: rotate(0deg);
    }
    to {
        transform: rotate(360deg);
    }
}

.pending-file-uploads-header {
    font-size: 25px;
    font-weight: 600;
    letter-spacing: 1.5px;
    text-transform: uppercase;
    color: #6B7280;
    margin-bottom: 0;
}

.status-pill--warning {
    background: linear-gradient(135deg, #fbbf24 0%, #f59e0b 100%);
    color: #78350f;
}

.status-pill--ready {
    background: linear-gradient(135deg, #10b981 0%, #059669 100%);
    color: white;
}

.pending-upload-file-size {
    font-size: 0.6875rem;
    color: #94a3b8;
    flex-shrink: 0;
}

.pending-upload-restored-badge {
    font-size: 0.6875rem;
    color: #94a3b8;
    flex-shrink: 0;
}

.pending-file-uploads-container-header {
    display: flex;
    gap: 10px;
    align-items: center;
}

.transition-opacity {
    opacity: 0;
    transition: opacity 0.6s;
}

/*.pending-upload-file-error-message {*/
/*    width: 100%;*/
/*    font-size: 13px;*/
/*    color: gray;*/
/*}*/
.pending-upload-file-error-message {
    font-size: 13px;
    color: gray;
    flex: 0 1 auto;
}

.recently-uploaded-file {
    display: flex;
    gap: 10px;
}

.upload-pending-files-entry-success {
}

.upload-pending-files-entry-error {
}

.upload-pending-files-entry-locked {
    box-shadow: inset 0 0 0 2px #f59e0b,
        0 2px 8px rgba(0, 0, 0, 0.04),
        0 4px 16px rgba(0, 0, 0, 0.04);
}

.status-pill--locked {
    background: linear-gradient(135deg, #f59e0b 0%, #d97706 100%);
    color: white;
}

.file-action-pill--unlock {
    border-color: #f59e0b;
    color: #92400e;
}

.file-action-pill--unlock:hover {
    border-color: #d97706;
    background-color: #fffbeb;
}

#upload-pending-files-btn {
    width: fit-content;
    white-space: nowrap;
    margin-left: auto;
}

/* Upload End */

/* Audit Log */
td i {
    margin-right: 5px;
}

td.icons {
    width: 8%;
}

/*! tailwindcss v4.1.11 | MIT License | https://tailwindcss.com */
@layer properties;

.static {
    position: static;
}

.block {
    display: block;
}

.flex {
    display: flex;
}

.hidden {
    display: none;
}

.h-1\/6 {
    height: calc(1 / 6 * 100%);
}

.h-5\/6 {
    height: calc(5 / 6 * 100%);
}

.h-full {
    height: 100%;
}

.h-screen {
    height: 100vh;
}

.min-h-screen {
    min-height: 100vh;
}

.w-2\/12 {
    width: calc(2 / 12 * 100%);
}

.w-4\/12 {
    width: calc(4 / 12 * 100%);
}

.w-5\/12 {
    width: calc(5 / 12 * 100%);
}

.w-6\/12 {
    width: calc(6 / 12 * 100%);
}

.w-7\/12 {
    width: calc(7 / 12 * 100%);
}

.w-8\/12 {
    width: calc(8 / 12 * 100%);
}

.w-10\/12 {
    width: calc(10 / 12 * 100%);
}

.w-full {
    width: 100%;
}

.w-0 {
    width: 0rem;
}

.w-1 {
    width: 0.25rem;
}

.w-2 {
    width: 0.5rem;
}

.w-3 {
    width: 0.75rem;
}

.w-4 {
    width: 1rem;
}

.w-5 {
    width: 1.25rem;
}

.w-6 {
    width: 1.5rem;
}

.w-7 {
    width: 1.75rem;
}

.w-8 {
    width: 2rem;
}

.w-9 {
    width: 2.25rem;
}

.w-10 {
    width: 2.5rem;
}

.w-11 {
    width: 2.75rem;
}

.w-12 {
    width: 3rem;
}

.w-14 {
    width: 3.5rem;
}

.w-16 {
    width: 4rem;
}

.w-20 {
    width: 5rem;
}

.w-24 {
    width: 6rem;
}

.w-28 {
    width: 7rem;
}

.w-32 {
    width: 8rem;
}

.w-36 {
    width: 9rem;
}

.w-40 {
    width: 10rem;
}

.w-44 {
    width: 11rem;
}

.w-48 {
    width: 12rem;
}

.w-52 {
    width: 13rem;
}

.w-56 {
    width: 14rem;
}

.w-60 {
    width: 15rem;
}

.w-64 {
    width: 16rem;
}

.w-72 {
    width: 18rem;
}

.w-80 {
    width: 20rem;
}

.w-96 {
    width: 24rem;
}

.flex-none {
    flex: none;
}

.cursor-default {
    cursor: default;
}

.cursor-pointer {
    cursor: pointer;
}

.flex-row {
    flex-direction: row;
}

.flex-nowrap {
    flex-wrap: nowrap;
}

.content-center {
    align-content: center;
}

.items-center {
    align-items: center;
}

.justify-center {
    justify-content: center;
}

.overflow-hidden {
    overflow: hidden;
}

.rounded-full {
    border-radius: calc(infinity * 1px);
}

.border {
    border-style: var(--tw-border-style);
    border-width: 1px;
}

.border-2 {
    border-style: var(--tw-border-style);
    border-width: 2px;
}

.border-b {
    border-bottom-style: var(--tw-border-style);
    border-bottom-width: 1px;
}

.bg-\[\#7BA792\] {
    background-color: #7BA792;
}

.bg-\[\#C4746B\] {
    background-color: #C4746B;
}

.bg-gradient-to-r {
    --tw-gradient-position: to right in oklab;
    background-image: linear-gradient(var(--tw-gradient-stops));
}

.bg-gradient-to-tr {
    --tw-gradient-position: to top right in oklab;
    background-image: linear-gradient(var(--tw-gradient-stops));
}

.py-\[3px\] {
    padding-block: 3px;
}

.text-center {
    text-align: center;
}

.text-left {
    text-align: left;
}

.leading-none {
    --tw-leading: 1;
    line-height: 1;
}

.transition {
    transition-property: color, background-color, border-color, outline-color, text-decoration-color, fill, stroke, --tw-gradient-from, --tw-gradient-via, --tw-gradient-to, opacity, box-shadow, transform, translate, scale, rotate, filter, -webkit-backdrop-filter, backdrop-filter, display, visibility, content-visibility, overlay, pointer-events;
    transition-timing-function: var(--tw-ease, ease);
    transition-duration: var(--tw-duration, 0s);
}

.outline-none {
    --tw-outline-style: none;
    outline-style: none;
}

.select-none {
    -webkit-user-select: none;
    user-select: none;
}

.hover\:bg-gradient-to-br {
    &:hover {
        @media (hover: hover) {
            --tw-gradient-position: to bottom right in oklab;
            background-image: linear-gradient(var(--tw-gradient-stops));
        }
    }

}

.focus\:ring-0 {
    &:focus {
        --tw-ring-shadow: var(--tw-ring-inset,) 0 0 0 calc(0px + var(--tw-ring-offset-width)) var(--tw-ring-color, currentcolor);
        box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);
    }

}

.focus\:ring-2 {
    &:focus {
        --tw-ring-shadow: var(--tw-ring-inset,) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color, currentcolor);
        box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);
    }

}

.focus\:ring-4 {
    &:focus {
        --tw-ring-shadow: var(--tw-ring-inset,) 0 0 0 calc(4px + var(--tw-ring-offset-width)) var(--tw-ring-color, currentcolor);
        box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);
    }

}

.focus\:outline-none {
    &:focus {
        --tw-outline-style: none;
        outline-style: none;
    }

}

@property --tw-border-style {
    syntax: "*";
    inherits: false;
    initial-value: solid;
}

@property --tw-leading {
    syntax: "*";
    inherits: false;
}

@property --tw-shadow {
    syntax: "*";
    inherits: false;
    initial-value: 0 0 #0000;
}

@property --tw-shadow-color {
    syntax: "*";
    inherits: false;
}

@property --tw-shadow-alpha {
    syntax: "<percentage>";
    inherits: false;
    initial-value: 100%;
}

@property --tw-inset-shadow {
    syntax: "*";
    inherits: false;
    initial-value: 0 0 #0000;
}

@property --tw-inset-shadow-color {
    syntax: "*";
    inherits: false;
}

@property --tw-inset-shadow-alpha {
    syntax: "<percentage>";
    inherits: false;
    initial-value: 100%;
}

@property --tw-ring-color {
    syntax: "*";
    inherits: false;
}

@property --tw-ring-shadow {
    syntax: "*";
    inherits: false;
    initial-value: 0 0 #0000;
}

@property --tw-inset-ring-color {
    syntax: "*";
    inherits: false;
}

@property --tw-inset-ring-shadow {
    syntax: "*";
    inherits: false;
    initial-value: 0 0 #0000;
}

@property --tw-ring-inset {
    syntax: "*";
    inherits: false;
}

@property --tw-ring-offset-width {
    syntax: "<length>";
    inherits: false;
    initial-value: 0px;
}

@property --tw-ring-offset-color {
    syntax: "*";
    inherits: false;
    initial-value: #fff;
}

@property --tw-ring-offset-shadow {
    syntax: "*";
    inherits: false;
    initial-value: 0 0 #0000;
}

@layer properties {
    @supports ((-webkit-hyphens: none) and (not (margin-trim: inline))) or ((-moz-orient: inline) and (not (color:rgb(from red r g b)))) {
        *, ::before, ::after, ::backdrop {
            --tw-border-style: solid;
            --tw-leading: initial;
            --tw-shadow: 0 0 #0000;
            --tw-shadow-color: initial;
            --tw-shadow-alpha: 100%;
            --tw-inset-shadow: 0 0 #0000;
            --tw-inset-shadow-color: initial;
            --tw-inset-shadow-alpha: 100%;
            --tw-ring-color: initial;
            --tw-ring-shadow: 0 0 #0000;
            --tw-inset-ring-color: initial;
            --tw-inset-ring-shadow: 0 0 #0000;
            --tw-ring-inset: initial;
            --tw-ring-offset-width: 0px;
            --tw-ring-offset-color: #fff;
            --tw-ring-offset-shadow: 0 0 #0000;
        }
    }
}

/*Start Manual review*/

#view-manual-item-pdf-preview {
    width: 100%;
    height: 100%;
}

#manual_list_loading {
    width: 100%;
    height: 100%;
    min-height: 300px;
    position: relative;
}

/*End Manual review*/

.btn-actions {
    background-color: #fff;
    color: #008080;
    border-width: 2px;
    border-color: #008080;
}

.btn-actions:hover {
    background-color: #008080;
    color: #fff;
    border-width: 2px;
    border-color: #008080;
}

#clearBtn {
    margin-bottom: 12px;
}

.searching-spinner {
    display: flex;
    align-items: center;
    gap: 8px;
    font-size: 16px;
    color: #555;
    font-weight: 500;
    user-select: none;
}

.searching-spinner i {
    font-size: 20px;
    animation: search-pulse 0.9s infinite ease-in-out;
}

@keyframes search-pulse {
    0% {
        transform: translateX(0) rotate(0deg);
        opacity: 0.6;
    }
    50% {
        transform: translateX(5px) rotate(10deg);
        opacity: 1;
    }
    100% {
        transform: translateX(0) rotate(0deg);
        opacity: 0.6;
    }
}

.manual-review-count-badge {
    align-items: center;
    padding: 1px 5px;
    font-size: 13px;
    font-weight: 600;
    color: #fff;
    height: fit-content;
    background: #d92b2b;
    border-radius: 9px;
    border: 1px solid rgba(0, 0, 0, 0.1);
}

.modal-window-overlay {
    position: fixed;
    inset: 0;
    background: rgba(0, 0, 0, 0.6);
    /*Blur removed because it can have a detrimental performance effetc...*/
    /*backdrop-filter: blur(1px);*/
    opacity: 0;
    pointer-events: none;
    transition: opacity .35s ease;
    z-index: 9999;
}

.modal-window-overlay.modal-window-active {
    opacity: 1;
    pointer-events: auto;
}

.modal-window-container {
    position: absolute;
    top: 50%;
    left: 50%;
    width: min(90%, 450px);
    background: #fff;
    border-radius: 10px;
    transform: translate(-50%, -60%) scale(0.9);
    opacity: 0;
    transition: all .35s ease;
    box-shadow: 0 20px 45px rgba(0, 0, 0, 0.2);
}

.modal-window-container-fit-viewport {
    width: 95vw !important;
}

.modal-window-container-fit-content {
    width: fit-content !important;
}

.modal-window-overlay.modal-window-active .modal-window-container {
    opacity: 1;
    transform: translate(-50%, -50%) scale(1);
}

.modal-window-close {
    width: 30px;
    height: 30px;
    cursor: pointer;
    position: absolute;
    right: 8px;
    top: 8px;
    border: none;
    outline: none;
    background: #eee;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 16px;
    transition: background .2s;
}

.modal-window-close:hover {
    background: #ddd;
}

.modal-window-content {
    padding: 50px 25px 25px;
    font-size: 15px;
    color: #333;
    max-height: 100vh;
    overflow: auto;
}


.modal-window-header {
    padding: 16px 20px;
    border-bottom: 1px solid #eee;
    text-align: center;
}

.modal-window-title {
    padding: 0 30px; /* even on both sides to keep text truly centered with the close button */
}

.modal-window-title {
    font-size: 1.75rem;
    /*font-size: 16px;*/
    font-weight: 600;
    color: #111;
    margin: 0;
    flex: 1;
    padding-right: 30px; /* keep text clear of close button */
}

.modal-window-header {
    padding: 18px 20px;
    border-bottom: none;
    text-align: left;
    background: linear-gradient(135deg, #008B8B, #005f5f);
    border-radius: 10px 10px 0 0;
}

.modal-window-title {
    font-size: 1.25rem;
    font-weight: 600;
    color: #fff;
    margin: 0;
    flex: 1;
    padding-right: 30px;
}

.modal-window-icon {
    font-size: 18px;
    color: rgba(255, 255, 255, 0.75);
}

.modal-window-header-title-row {
    display: flex;
    align-items: center;
    gap: 10px;
}

/* When header is present, restyle the close button for white-on-teal */
.modal-window-header ~ .modal-window-close,
.modal-window-container:has(.modal-window-header) > .modal-window-close {
    background: rgba(255, 255, 255, 0.15);
    color: rgba(255, 255, 255, 0.85);
}

.modal-window-container:has(.modal-window-header) > .modal-window-close:hover {
    background: rgba(255, 255, 255, 0.25);
    color: #fff;
}

/* close button moves into the header row */
.modal-window-close {
    position: absolute;
    right: 12px;
    top: 12px;
}

/* reduce top padding since header now provides spacing */
.modal-window-content {
    padding: 20px 25px 25px;
}

/* ── Settings Modal two-column layout ── */
.settings-modal-grid {
    display: flex;
    gap: 24px;
    align-items: stretch;
}

.settings-modal-grid .settings-modal-left {
    flex: 1 1 320px;
    min-width: 0;
}

.settings-modal-grid .settings-modal-right {
    flex: 1 1 360px;
    min-width: 0;
    border-left: 1px solid #e0e0e0;
    padding-left: 24px;
}

.settings-modal-grid .settings-modal-right h3 {
    margin-top: 0;
    color: #008080;
}

.settings-modal-grid .settings-modal-right .settings-modal-page-empty {
    color: #888;
    font-style: italic;
}

.settings-modal-page-section {
    margin-bottom: 20px;
}

.settings-modal-page-section:last-child {
    margin-bottom: 0;
}

.settings-modal-page-label {
    margin: 0 0 8px;
    font-weight: 500;
    color: #333;
}

.settings-modal-page-body .toggle-button-option-container {
    display: inline-flex;
}

/* ── Manage Folder Whitelist Modal ── */

.manage-folder-whitelist {
    min-width: 360px;
}

.manage-folder-whitelist-description {
    margin: 0 0 16px;
    color: #aaa;
    font-size: 13px;
    line-height: 1.4;
}

.manage-folder-whitelist-list {
    display: flex;
    flex-direction: column;
    gap: 6px;
    margin-bottom: 16px;
}

.manage-folder-whitelist-empty {
    color: #666;
    font-style: italic;
    margin: 0;
}

.manage-folder-whitelist-row {
    display: flex;
    flex-direction: column;
    padding: 10px 12px;
    background: rgba(255, 255, 255, 0.05);
    border-radius: 6px;
}

.manage-folder-whitelist-row-top {
    display: flex;
    align-items: center;
    gap: 10px;
}

.manage-folder-whitelist-row-top > i {
    color: #f0c040;
    flex-shrink: 0;
}

.manage-folder-whitelist-name {
    flex: 1;
    font-weight: 500;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.manage-folder-whitelist-actions {
    display: flex;
    gap: 4px;
    flex-shrink: 0;
}

.manage-folder-whitelist-action-btn {
    background: none;
    border: none;
    color: #aaa;
    cursor: pointer;
    padding: 4px 6px;
    border-radius: 4px;
    font-size: 13px;
}

.manage-folder-whitelist-action-btn:hover {
    background: rgba(255, 255, 255, 0.1);
    color: #ddd;
}

.manage-folder-whitelist-remove-btn {
    background: none;
    border: none;
    color: #e06060;
    cursor: pointer;
    padding: 4px 6px;
    border-radius: 4px;
    font-size: 14px;
}

.manage-folder-whitelist-remove-btn:hover {
    background: rgba(224, 96, 96, 0.15);
}

.manage-folder-whitelist-comment-row {
    display: flex;
    align-items: center;
    gap: 6px;
    margin-top: 4px;
    padding-left: 24px;
}

.manage-folder-whitelist-comment-text {
    font-size: 12px;
    color: #aaa;
    flex: 1;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.manage-folder-whitelist-comment-empty {
    color: #666;
    font-style: italic;
}

.manage-folder-whitelist-comment-input {
    flex: 1;
    background: rgba(255, 255, 255, 0.08);
    border: 1px solid rgba(255, 255, 255, 0.2);
    border-radius: 4px;
    color: inherit;
    font-size: 12px;
    padding: 3px 8px;
    outline: none;
}

.manage-folder-whitelist-comment-input:focus {
    border-color: #1a7f7f;
}

.manage-folder-whitelist-contents {
    display: flex;
    flex-direction: column;
    gap: 2px;
    margin-top: 8px;
    padding: 8px;
    background: rgba(0, 0, 0, 0.15);
    border-radius: 4px;
    max-height: 200px;
    overflow-y: auto;
    font-size: 12px;
    color: #aaa;
}

.manage-folder-whitelist-contents-item {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 2px 4px;
}

.manage-folder-whitelist-contents-item > i.fa-folder {
    color: #f0c040;
}

.manage-folder-whitelist-contents-item > i.fa-file {
    color: #888;
}


/*Blurs the element and makes it inactive temporarily*/
.element-blur-active {
    pointer-events: none !important;
    filter: blur(3px);
}

.progress-bar-container {
    display: flex;
    justify-content: center;
    align-items: center;
    flex-grow: 1;
}

.progress-bar {
    position: relative;
    width: 300px;
    display: flex;
    height: 20px;
    padding: 13px;
    border-radius: 3px;
    border: 1px solid gray;
    background-color: rgb(60, 60, 60);
}

.progress-bar-text {
    text-align: center;
    margin: 0;
    z-index: 1;
    color: white;
}

.progress-bar-fill {
    background-color: cornflowerblue;
    position: absolute;
    left: 0;
    top: 0;
    bottom: 0;
    right: 100%;
    transition: right 0.3s ease-in-out;
}

.progress-bar-fill-indeterminate {
    position: absolute;
    left: 0;
    top: 0;
    bottom: 0;
    width: 0%;
    background-color: cornflowerblue;
    animation: progress-indeterminate 2s infinite cubic-bezier(0.65, 0.05, 0.36, 1);
}

@keyframes progress-indeterminate {
    0% {
        left: -35%;
        width: 35%;
    }
    100% {
        left: 100%;
        width: 90%;
    }
}

.rotating-text {
    display: inline-block;
    transform-origin: center;
    transition: transform 0.45s cubic-bezier(.32, 0, .18, 1);
    font-size: 16px;
    /*padding: 16px 32px;*/
    color: white;
    /*background: rgba(255,255,255,0.05);*/
    border-radius: 12px;
    /*backdrop-filter: blur(6px);*/
    /*border: 1px solid rgba(255,255,255,0.08);*/
    min-width: 280px;
    text-align: center;
    user-select: none;
    margin: 0 !important;
}

.shimmer-loading {
    background: linear-gradient(
            110deg,
            #eceff1 8%,
            #f5f7fa 18%,
            #ffffff 33%,
            #f5f7fa 48%,
            #eceff1 58%
    );
    background-size: 200% 100%;
    animation: shimmer 2s ease-in-out infinite;
}

@keyframes shimmer {
    0% {
        background-position: -200% 0;
    }
    100% {
        background-position: 200% 0;
    }
}

.uploaded-file-card-status {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 10px 16px;
    border-radius: 8px;
    font-size: 14px;
    font-weight: 500;
}

.uploaded-file-card-status-success {
    background: #e8f5e9;
    color: #2e7d32;
}

.uploaded-file-card-status-review {
    background: #ffebee;
    color: #c62828;
}

.uploaded-file-card-icon {
    width: 18px;
    height: 18px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
}

.uploaded-file-card-status-success .uploaded-file-card-icon {
    background: #4caf50;
}

.uploaded-file-card-status-review .uploaded-file-card-icon {
    background: #ef5350;
}

.uploaded-file-card-status-awaiting {
    color: white;
    background-color: teal;
}

.uploaded-file-card-icon svg {
    width: 10px;
    height: 10px;
    stroke: white;
    stroke-width: 2;
    fill: none;
}

.uploaded-file-completed-success {
    background-color: #7ccf7c;
}

.upload-pending-files-entry-warning {
    /*background-color: #ffe08a !important;*/
}

.uploaded-file-completed-error {
    background-color: #cf7c7c;
}

.uploaded-file-completed-awaiting-review {
    background-color: turquoise;
}

/*Overrides for datatables TODO might need to be very last */

/*.dt-paging-button {*/
/*    background-color: #2e2e2e !important;*/
/*    border: 1px solid #444 !important;*/
/*    color: white !important;*/
/*}*/
/*.dt-paging-button {*/
/*    !*color: white !important;*!*/
/*}*/

/*.dt-paging-button.current {*/
/*    color: white !important;*/
/*    background-color: rgb(27, 121, 141) !important;*/
/*}*/

/*div.dt-container .dt-paging {*/
/*    color: white !important;*/
/*}*/

.wrapped-table-for-loading {
    position: relative;
    margin: 16px;
}

.wrapped-table-for-loading .default-loading-div {
    z-index: 100;
}

.user-validation-error-badge {
    position: absolute;
    top: 100%;
    left: 0;
    right: 0;
    margin-top: 2px;
    font-size: 12px;
    color: red;
    line-height: 1.2;
    overflow-wrap: anywhere;
    pointer-events: none;
    z-index: 1;
}

.change-password-modal-content {
    display: flex;
    flex-direction: column;
    gap: 10px;
}

.change-password-modal-content p, i {
    user-select: none;
    margin: 0;
}

.change-password-modal-recommendation {
    font-size: 12px;
}

.help-topic-icon {
    border: solid 5px transparent;
    transition: border .2s, color .2s;
    border-radius: 100%;
    cursor: pointer;
}

.help-topic-icon:hover {
    border: solid 5px cornflowerblue;
    color: black;
}

/*The root content for each help topic file (root div)*/
.help-topic-container {
    max-height: 600px;
    overflow: auto;
}

.help-topic-container p {
    margin: 0;
}

.help-topic-download-link {
    font-style: italic;
    text-decoration: underline;
    color: cornflowerblue;
    cursor: pointer;
}

.help-topic-download-link:hover {

}

.help-topic-highlighted-image {
    box-shadow: 0 0 7px cornflowerblue;
    border-radius: 7px;
    margin: 6px;
    cursor: pointer;
    transition: transform .2s, margin-left 0.2s;
    transition-delay: 0s;
}

.help-topic-note-text {
    background-color: rgba(0, 0, 0, 0.05);
    border-radius: 6px;
    padding: 3px 5px 3px 5px;
    box-shadow: 0 0 3px rgba(0, 0, 0, 0.5);
    width: fit-content;
    margin: 10px !important;
}

.help-topic-note-text span {
    color: darkslategray;
    font-style: italic;
    font-size: 13px;
}

.help-topic-highlighted-image-larger {
}

.help-topic-highlighted-image:hover {
    transform: scale(1.2);
    margin-left: 50px;
    transition-delay: 0.5s;
}

.help-topic-highlighted-image-larger:hover {
    transform: scale(1.4);
    margin-left: 150px;
    transition-delay: 0.5s;
}

.help-topic-highlighted-image-smaller:hover {
    transform: scale(1.1);
    margin-left: 50px;
    transition-delay: 0.5s;
}

.help-topic-info-container {
    background-color: rgb(230, 230, 230);
    padding: 10px;
    border-radius: 11px;
}

/*Beginning of adding from email*/

.import-from-email-table-container {
    max-height: 500px;
    overflow-y: auto;
    margin-top: 20px;
    border: 1px solid #ddd;
}

.import-from-email-table {
    width: 100%;
    border-collapse: collapse;
}

.import-from-email-table th,
.import-from-email-table td {
    padding: 10px;
    text-align: left;
    border-bottom: 1px solid #ddd;
}

.import-from-email-table th {
    background-color: #f5f5f5;
    font-weight: bold;
    position: sticky;
    top: 0;
    z-index: 1;
}

.import-from-email-table tr:hover {
    background-color: #f9f9f9;
}

.import-from-email-table ul {
    margin: 0;
    padding-left: 20px;
}

.import-from-email-results {
    margin-top: 20px;
}

.import-from-email-error {
    color: red;
}

.import-from-email-loading {
    color: #666;
    font-style: italic;
}

.import-from-email-load-more {
    margin-top: 10px;
}


/*
    General Settings Modal start
*/
.general-settings-modal {
    margin: 0 auto;
    display: flex;
    flex-direction: column;
}

.general-settings-modal h2 {
    margin: 0 0 20px 0;
    font-size: 24px;
    font-weight: 600;
    color: #1a1a1a;
}

.general-settings-modal h3 {
    margin: 0 0 8px 0;
    font-size: 18px;
    font-weight: 600;
    color: #2c2c2c;
}

.general-settings-modal p {
    margin: 0 0 20px 0;
    font-size: 14px;
    color: #666;
    line-height: 1.5;
}

.general-settings-modal__categories-container {
    background: #f8f9fa;
    border: 1px solid #e0e0e0;
    border-radius: 6px;
    padding: 12px;
    margin-bottom: 16px;
    max-height: 300px;
    overflow-y: auto;
}

.general-settings-modal__category-item {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    align-items: center;
    padding: 10px 12px;
    background: white;
    border: 1px solid #e0e0e0;
    border-radius: 4px;
    margin-bottom: 8px;
    transition: background-color 0.2s;
}

.general-settings-modal__callout {
    display: flex;
    align-items: flex-start;
    gap: 10px;
    padding: 10px 12px;
    margin: 10px 0 14px;
    border-radius: 6px;
    background-color: #fff8e1;
    border: 1px solid #f4c66a;
    color: #7a4f01;
    line-height: 1.4;
}

.general-settings-modal__callout--warning {
    background-color: #fff8e1;
    border-color: #f4c66a;
    color: #7a4f01;
}

.general-settings-modal__callout-icon {
    flex-shrink: 0;
    margin-top: 2px;
    color: #c47f00;
    font-size: 1.1em;
}

.general-settings-modal__callout-body {
    flex: 1;
    min-width: 0;
}

.general-settings-modal__category-length-warning {
    display: flex;
    align-items: center;
    gap: 6px;
    flex-basis: 100%;
    margin-top: 8px;
    padding: 6px 10px;
    border-radius: 4px;
    background-color: #fff8e1;
    border: 1px solid #f4c66a;
    color: #7a4f01;
    font-size: 0.85em;
    line-height: 1.3;
}

.general-settings-modal__category-length-warning--add {
    margin-top: -6px;
    margin-bottom: 14px;
}

.general-settings-modal__category-length-warning--error {
    background-color: #fee2e2;
    border-color: #fca5a5;
    color: #991b1b;
}

.general-settings-modal__category-item:last-child {
    margin-bottom: 0;
}

.general-settings-modal__category-item:hover {
    background-color: #f5f5f5;
}

.general-settings-modal__category-name {
    font-size: 14px;
    color: #333;
    flex: 1;
}


.general-settings-modal-content {
    max-height: 600px;
    overflow: auto;
    padding: 15px;
}

.general-settings-modal__add-section {
    display: flex;
    gap: 8px;
    margin-bottom: 14px;
}

.general-settings-modal__edit-btn {
    font-size: 12px;
    padding : 5px 8px;    
}

.general-settings-modal__remove-btn {
    font-size: 12px;
    padding : 5px 8px;
}

.general-settings-modal__new-category-input {
    flex: 1;
    padding: 10px 12px;
    border: 1px solid #ccc;
    border-radius: 4px;
    font-size: 14px;
    transition: border-color 0.2s;
}

.general-settings-modal__new-category-input:focus {
    outline: none;
    border-color: #007bff;
    box-shadow: 0 0 0 3px rgba(0, 123, 255, 0.1);
}

.general-settings-modal__add-btn {
    background: #28a745;
    color: white;
    border: none;
    padding: 10px 20px;
    border-radius: 4px;
    font-size: 14px;
    font-weight: 500;
    cursor: pointer;
    transition: background-color 0.2s;
    white-space: nowrap;
}

.general-settings-modal__add-btn:hover {
    background: #218838;
}

.general-settings-modal-loading-text {
    display: flex;
    flex-direction: column;
    align-items: center;
}

.general-settings-modal__actions {
    display: flex;
    gap: 12px;
    justify-content: flex-end;
    border-top: 1px solid #e0e0e0;
    padding: 10px;
    background-color: rgba(0, 0, 0, 0.1);
}

/*Custom control - toggle start*/
.toggle-checkbox {
    position: relative;
    display: inline-block;
    width: 50px;
    height: 26px;
}

.toggle-checkbox input {
    opacity: 0;
    width: 0;
    height: 0;
}

.toggle-checkbox-slider {
    position: absolute;
    cursor: pointer;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background-color: #ccc;
    transition: 0.3s;
    border-radius: 26px;
}

.toggle-checkbox-slider:before {
    position: absolute;
    content: "";
    height: 20px;
    width: 20px;
    left: 3px;
    bottom: 3px;
    background-color: white;
    transition: 0.3s;
    border-radius: 50%;
    box-shadow: 0 2px 4px rgba(0, 0, 0, 0.2);
}

.custom-aqua-checkbox {
    appearance: none;
    width: 50px;
    height: 26px;
    background-color: #ccc;
    border-radius: 13px;
    position: relative;
    cursor: pointer;
    transition: background-color 0.3s;
}

.custom-aqua-checkbox::before {
    content: "";
    position: absolute;
    height: 20px;
    width: 20px;
    left: 3px;
    top: 3px;
    background-color: white;
    border-radius: 50%;
    transition: transform 0.3s;
    box-shadow: 0 2px 4px rgba(0, 0, 0, 0.2);
}

.custom-aqua-checkbox:checked {
    background-color: #008080;
}

.custom-aqua-checkbox:checked::before {
    transform: translateX(24px);
}

.custom-aqua-checkbox:hover {
    background-color: #b0b0b0;
}

.custom-aqua-checkbox:hover:checked {
    background-color: #009090;
}

.custom-aqua-checkbox:focus {
    outline: none;
    box-shadow: 0 0 0 3px rgba(0, 160, 160, 0.2);
}

.custom-aqua-checkbox:disabled {
    opacity: 0.5;
    cursor: not-allowed;
}

.toggle-checkbox input:checked + .toggle-checkbox-slider {
    background-color: #008080;
}

.toggle-checkbox:hover input:checked + .toggle-checkbox-slider {
    background-color: #009090;
}

.toggle-checkbox input:checked + .toggle-checkbox-slider:before {
    transform: translateX(24px);
}

.toggle-checkbox input:focus + .toggle-checkbox-slider {
    box-shadow: 0 0 0 3px rgba(0, 160, 160, 0.2);
}

.toggle-checkbox:hover .toggle-checkbox-slider {
    background-color: #b0b0b0;
}

.toggle-checkbox input:disabled + .toggle-checkbox-slider {
    opacity: 0.5;
    cursor: not-allowed;
}


/*Toggle buttons start*/

.toggle-button-container {
    display: flex;
    align-items: center;
    gap: 8px;
}

.toggle-button-option-container {
    display: flex;
    gap: 0;
    border-radius: 6px;
    overflow: hidden;
    border: 1px solid #ddd;
}

.toggle-button-option {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 8px 14px;
    cursor: pointer;
    background: #f8f8f8;
    border: none;
    transition: all 0.2s ease;
    border-right: 1px solid #ddd;
}


.toggle-button-option .fa-solid {
    font-size: 18px;
}

.toggle-button-option:last-child {
    border-right: none;
}

.toggle-button-option p {
    margin: 0;
    font-size: 13px;
    color: #666;
    white-space: nowrap;
    user-select: none;
}

.toggle-button-option i {
    font-size: 14px;
    color: #888;
}

.toggle-button-option:hover {
    background: #f0f0f0;
}

.toggle-button-option.active {
    background: linear-gradient(135deg, #00a0a0 0%, #008080 100%);
}

.toggle-button-option.active p {
    color: white;
}

.toggle-button-option.active i {
    color: white;
}

/*
Indeterminate loading progress bar
*/

.dd-indeterminate-loading-bar {
    width: 100%;
    max-width: 600px;
    margin: 20px 0;
    font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;
    box-sizing: border-box;
}

.dd-indeterminate-loading-bar-text {
    color: #444;
    font-size: 14px;
    font-weight: 600;
    margin-bottom: 8px;
    letter-spacing: 0.5px;
    animation: dd-indeterminate-loading-bar-text-pulse 1.5s infinite ease-in-out;
}

.dd-indeterminate-loading-bar-track {
    width: 100%;
    height: 6px;
    background-color: #E0E0E0;
    border-radius: 4px;
    overflow: hidden;
    position: relative;
}

.dd-indeterminate-loading-bar-fill {
    height: 100%;
    border-radius: 4px;
    position: absolute;
    width: 30%;
    background: linear-gradient(90deg, #00898A 0%, #26A69A 50%, #00898A 100%);
    animation: dd-indeterminate-loading-bar-slide 1.5s infinite ease-in-out;
}

@keyframes dd-indeterminate-loading-bar-slide {
    0% {
        left: -40%;
        width: 30%;
    }
    50% {
        width: 60%;
    }
    100% {
        left: 100%;
        width: 30%;
    }
}

@keyframes dd-indeterminate-loading-bar-text-pulse {
    0%, 100% {
        opacity: 1;
    }
    50% {
        opacity: 0.6;
    }
}

.main-interface-dropdown-menu {
    position: absolute !important;
    top: 100% !important;
    right: 0 !important;
    left: auto !important;
    z-index: 9999 !important;
    float: none !important;
    margin: 10px 0 0 0 !important;
    min-width: 260px !important;
    padding: 8px !important;
    box-sizing: border-box !important;
    background-color: #ffffff !important;
    border: 1px solid rgba(0, 0, 0, 0.04) !important;
    border-radius: 12px !important;
    box-shadow: 0 10px 40px -5px rgba(0, 0, 0, 0.15) !important;
    list-style: none !important;
    opacity: 0 !important;
    transform-origin: top right !important;
    animation: dropdownPop 0.3s cubic-bezier(0.16, 1, 0.3, 1) forwards !important;
    display: block;
}

.main-interface-dropdown-menu li {
    list-style: none !important;
    margin: 0 !important;
    padding: 0 !important;
    border: none !important;
    background: none !important;
}

.main-interface-dropdown-menu li a {
    display: flex !important;
    align-items: center !important;
    width: auto !important;
    padding: 12px 16px !important;
    margin-bottom: 2px !important;
    border-radius: 8px !important;
    color: #555555 !important;
    text-decoration: none !important;
    font-family: 'Segoe UI', sans-serif !important;
    font-size: 14px !important;
    font-weight: 600 !important;
    background-color: transparent !important;
    border: none !important;
    -webkit-font-smoothing: antialiased !important;
    -moz-osx-font-smoothing: grayscale !important;
    backface-visibility: hidden !important;
    transform: translateZ(0) !important;
    will-change: transform !important;
    transition: all 0.2s cubic-bezier(0.25, 0.8, 0.25, 1) !important;
}

.main-interface-dropdown-menu li a:hover {
    background-color: #e0f2f1 !important;
    color: #00796b !important;
    transform: translateX(5px) translateZ(0) !important;
    box-shadow: none !important;
}

.main-interface-dropdown-menu li a i {
    display: inline-block !important;
    width: 24px !important;
    margin-right: 12px !important;
    font-size: 16px !important;
    color: #a0aec0 !important;
    text-align: center !important;
    vertical-align: middle !important;
    -webkit-font-smoothing: antialiased !important;
    -moz-osx-font-smoothing: grayscale !important;
    backface-visibility: hidden !important;
    transform: translateZ(0) !important;
    will-change: transform, color !important;
    transition: transform 0.2s cubic-bezier(0.25, 0.8, 0.25, 1), color 0.2s ease !important;
}

.main-interface-dropdown-menu li a:hover {
    background-color: #e0f2f1 !important;
    color: #00796b !important;
    transform: translateX(5px) !important;
    box-shadow: none !important;
}

.main-interface-dropdown-menu li a:hover i {
    color: #009688 !important;
    transform: scale(1.1) translateZ(0) !important;
}

.main-interface-dropdown-menu .divider {
    height: 1px !important;
    margin: 8px 12px !important;
    padding: 0 !important;
    background-color: #edf2f7 !important;
    border: none !important;
    overflow: hidden !important;
}

.main-interface-dropdown-menu li:last-child a:hover {
    background-color: #fff5f5 !important;
    color: #c53030 !important;
}

.main-interface-dropdown-menu li:last-child a:hover i {
    color: #fc8181 !important;
}

@keyframes dropdownPop {
    0% {
        opacity: 0;
        transform: scale(0.95) translateY(-10px);
    }
    100% {
        opacity: 1;
        transform: scale(1) translateY(0);
    }
}

.file-size-badge {
    display: inline-block;
    font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;
    font-size: 11px;
    font-weight: 600;
    color: #455a64;
    background-color: #eceff1;
    padding: 2px 8px;
    border-radius: 12px;
    margin-top: 4px;
    border: 1px solid #cfd8dc;
    letter-spacing: 0.3px;
    white-space: nowrap;
}

.max-file-size-upload-text {
    font-size: 14px;
    color: gray;
}

/*.aka-container {*/
/*    background-color: rgb(0,0,0,0.2);*/
/*    border: solid 1px gray;*/
/*    border-radius: 3px;*/
/*    margin-bottom: 0 !important;*/
/*    padding: 0 6px 0 6px !important;*/
/*    height: 100%;*/
.aka-container {
    display: inline-block;
    margin: 0 0 0 5px;
    padding: 2px 8px;
    border-radius: 999px;

    background-color: rgba(0, 150, 150, 0.14);
    border: 1px solid rgba(0, 150, 150, 0.35);

    color: rgb(0, 95, 95);
    font-size: 11px;
    font-weight: 600;
    line-height: 1.4;
    white-space: nowrap;
}

/*}*/


.aka-container-aka-text {
    font-size: 12px;
    color: gray;
}

.practitioner_list_item {
    padding: 0 !important;
    margin: 0 !important;
    display: flex;
    align-items: center;
}

.aka-container-aka-name {
    font-size: 14px;
}

.dd-accordion {
    background: #ffffff;
    border: 1px solid #e0e0e0;
    border-radius: 5px;
    box-shadow: 0 1px 2px rgba(0, 0, 0, 0.05);
    font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;
    overflow: hidden;
}

.dd-accordion-header {
    width: 100%;
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 12px 15px;
    background: #fff;
    border: none;
    cursor: pointer;
    outline: none;
    font-size: 15px;
    font-weight: 600;
    color: #333;
    border-bottom: 1px solid transparent;
    transition: background-color 0.2s;
}

.dd-accordion-header:hover {
    background-color: #f5f5f5;
}

.dd-accordion-header.active {
    background-color: #e0f2f1;
    border-bottom: 1px solid #e0e0e0;
}

.dd-accordion-title {
    display: flex;
    align-items: center;
    gap: 10px;
}

.dd-accordion-icon {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 24px;
    height: 24px;
    background-color: #00897B;
    border-radius: 4px;
    color: white;
}

.dd-accordion-chevron {
    transition: transform 0.3s ease;
    color: #888;
}

.dd-accordion-header.active .dd-accordion-chevron {
    transform: rotate(180deg);
    color: #00897B;
}

.dd-accordion-body {
    display: grid;
    grid-template-rows: 0fr;
    transition: grid-template-rows 0.3s ease-out;
}

.dd-accordion-body.open {
    grid-template-rows: 1fr;
}

.dd-accordion-inner {
    overflow: hidden;
}

.dd-accordion-content {
    padding: 15px;
}

.dd-accordion-textarea {
    width: 100%;
    min-height: 100px;
    padding: 10px;
    box-sizing: border-box;
    border: 1px solid #ccc;
    border-radius: 4px;
    background-color: #fcfcfc;
    font-family: inherit;
    font-size: 14px;
    resize: vertical;
    transition: border 0.2s, box-shadow 0.2s;
}

.dd-accordion-textarea:focus {
    outline: none;
    border-color: #00897B;
    background-color: #fff;
    box-shadow: 0 0 0 3px rgba(0, 137, 123, 0.1);
}

/*Add to demerger css*/

.pdf-demerger-layout-button {

}

.pdf-demerger-layout-button:hover {
    /*Do a tooltip*/
}

.eye {
    width: 20px;
    height: 20px;
    position: relative;
    display: flex;
    align-items: center;
    justify-content: center;
    margin-left: 4px;
}

.eye svg {
    width: 100%;
    height: 100%;
    fill: #888;
    overflow: visible;
}

.eye-outer {
    transition: transform 0.1s ease;
    transform-origin: center;
}

.eye.blink .eye-outer {
    transform: scaleY(0.1);
}

.pupil-dot {
    transition: transform 0.08s ease-out;
}

.eye.blink .pupil-dot {
    opacity: 0;
}

@keyframes fadeUpFast {
    from {
        opacity: 0;
        transform: translateY(6px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

.fade-up-fast {
    animation: fadeUpFast 220ms ease-out both;
    will-change: transform, opacity;
}

.additional-app-container {
    padding: 10px;
    border-radius: 10px;
    background-color: rgba(0, 0, 0, 0.07);
    margin-bottom: 10px;
}

.additional-app-container img {
    max-width: 40px;
    object-fit: contain;
}


.additional-app-container h3 {
    font-size: 22px;
}

.additional-app-container p {
    margin-bottom: 0 !important;
}

.additional-app-button-container {
    display: flex;
    gap: 10px;
    margin-top: 10px;
}

.additional-app-button-container > div {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    padding: 10px 18px;
    border-radius: 10px;
    background: #ffffff;
    color: #2b2b2b;
    font-size: 14px;
    font-weight: 600;
    border: 1px solid #e3e6ea;
    cursor: pointer;
    user-select: none;
    box-shadow: 0 1px 2px rgba(0, 0, 0, 0.06),
    0 4px 12px rgba(0, 0, 0, 0.04);
    transition: transform 0.12s ease,
    box-shadow 0.12s ease,
    border-color 0.12s ease,
    background 0.12s ease;
}

.additional-app-button-container > div i {
    font-size: 14px;
    opacity: 0.8;
}

.additional-app-button-container > div:hover {
    transform: translateY(-1px);
    border-color: #cfd6dd;
    box-shadow: 0 2px 6px rgba(0, 0, 0, 0.10),
    0 8px 18px rgba(0, 0, 0, 0.08);
    background: #ffffff;
}

.additional-app-button-container > div:active {
    transform: translateY(0);
    box-shadow: 0 1px 2px rgba(0, 0, 0, 0.12) inset,
    0 1px 3px rgba(0, 0, 0, 0.08);
}

.additional-app-button-container > div:focus-visible {
    outline: 2px solid #4c9ffe;
    outline-offset: 2px;
}


.general-settings-window-scan-folder-container {
    padding: 10px;
    border-radius: 10px;
    border: solid 1px rgba(0, 0, 0, 0.2);
    box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1);
    background-color: rgba(0, 0, 0, 0.03);
}

.white-input {
    width: 100%;
    padding: 6px 10px;
    font-size: 15px;
    font-family: 'Inter', 'Segoe UI', sans-serif;
    color: #1a1a2e;
    background: #ffffff;
    border: 1.5px solid #e0e0e6;
    border-radius: 12px;
    outline: none;
    transition: all 0.3s cubic-bezier(0.25, 0.46, 0.45, 0.94);
    box-shadow: 0 1px 3px rgba(0, 0, 0, 0.04);
    box-sizing: border-box;
}

.white-input:hover {
    border-color: #c0c0cc;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.06);
}

.white-input:focus {
    border-color: #7c7cf0;
    box-shadow: 0 0 0 3.5px rgba(124, 124, 240, 0.12),
    0 2px 10px rgba(124, 124, 240, 0.08);
}

.white-input::placeholder {
    color: #b0b0be;
    font-weight: 400;
}

.white-input:disabled {
    background: #f8f8fa;
    border-color: #ececf0;
    color: #a0a0ae;
    cursor: not-allowed;
}

.white-input.error {
    border-color: #f06060;
    box-shadow: 0 0 0 3.5px rgba(240, 96, 96, 0.1);
}

.white-input.success {
    border-color: #4ecb71;
    box-shadow: 0 0 0 3.5px rgba(78, 203, 113, 0.1);
}

.apply-text-ellipsis {
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.loading-spinner-circle {
    display: inline-block;
    /*width: 24px;*/
    /*height: 24px;*/
    width: 16px;
    height: 16px;
    border: 3px solid rgba(255, 255, 255, 0.25);
    border-top-color: rgba(255, 255, 255, 0.95);
    border-radius: 50%;

    animation: loading-spinner-circle-rotate 0.8s linear infinite;
}

.loading-spinner-circle-aqua {
    display: inline-block;
    width: 18px;
    height: 18px;
    border-radius: 50%;
    border: 3px solid rgba(0, 255, 255, 0.25);
    border-top-color: #00f7ff;
    animation: loading-spinner-circle-rotate 0.75s linear infinite;
    will-change: transform;
}

.adding-organization-text {
    display: flex;
    gap: 10px;
    align-items: center;
    background-color: rgba(0, 0, 0, 0.1);
    padding: 4px 8px 4px 8px;
    border-radius: 4px;

    --progress: 0;

    border-bottom: 3px solid transparent;

    border-image: linear-gradient(
            to right,
            cornflowerblue 0%,
            cornflowerblue var(--progress),
            transparent var(--progress),
            transparent 100%
    ) 1;
}

@keyframes loading-spinner-circle-rotate {
    to {
        transform: rotate(360deg);
    }
}

/*Service status indicators*/

.service-status-indicator {
    position: absolute;
    top: 12px;
    left: 50%;
    transform: translateX(-50%);
    z-index: 1000;
    opacity: 0.5;
    cursor: pointer;
    transition: opacity 0.2s ease;
    display: flex;
    align-items: center;
}

.service-status-indicator:hover {
    opacity: 1;
}

.service-status-indicator .status-icon-wrapper {
    position: relative;
    display: flex;
    align-items: center;
}

.service-status-indicator .status-icon {
    width: 32px;
    height: 32px;
}

.service-status-indicator .status-warning-icon {
    position: absolute;
    bottom: -3px;
    right: -7px;
    font-size: 14px;
    color: #f59e0b;
    background: #fff;
    border-radius: 50%;
    padding: 1px;
}

.service-status-indicator .status-warning-icon.status-major {
    color: #ef4444;
}

.service-status-indicator .status-tooltip {
    display: none;
    position: absolute;
    top: calc(100% + 10px);
    left: 50%;
    transform: translateX(-50%);
    background: #1f2937;
    color: #f3f4f6;
    padding: 10px 14px;
    border-radius: 6px;
    font-size: 13px;
    line-height: 1.5;
    white-space: nowrap;
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.25);
}

.service-status-indicator .status-tooltip::before {
    content: '';
    position: absolute;
    bottom: 100%;
    left: 50%;
    transform: translateX(-50%);
    border: 6px solid transparent;
    border-bottom-color: #1f2937;
}

.service-status-indicator:hover .status-tooltip {
    display: block;
}

.service-status-indicator .tooltip-title {
    font-weight: 600;
    margin-bottom: 3px;
}

.service-status-indicator .tooltip-status {
    color: #f59e0b;
    font-size: 11px;
    text-transform: uppercase;
    letter-spacing: 0.5px;
}

.service-status-indicator .tooltip-status.status-major {
    color: #ef4444;
}

.service-status-indicator .tooltip-hint {
    margin-top: 6px;
    color: #9ca3af;
    font-size: 11px;
    font-style: italic;
}

.service-status-indicator .tooltip-header {
    font-weight: 700;
    font-size: 13px;
    color: #fbbf24;
    margin-bottom: 6px;
}

.service-status-indicator .tooltip-header i {
    margin-right: 5px;
}

.service-status-indicator .tooltip-incident {
    font-size: 12px;
    color: #e5e7eb;
    margin-bottom: 6px;
}

.service-status-indicator .tooltip-time {
    font-size: 11px;
    color: #9ca3af;
    margin-bottom: 8px;
}

.service-status-indicator .tooltip-time i {
    margin-right: 4px;
    font-size: 10px;
}

.clean-number-input {
    width: 100%;
    padding: 10px 14px;
    font-size: 15px;
    font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;
    color: #2c3e50;
    background-color: #fff;
    border: 2px solid #d5dbe1;
    border-radius: 6px;
    outline: none;
    transition: border-color 0.25s ease, box-shadow 0.25s ease;
}

.clean-number-input:focus {
    border-color: #17a2b8;
    box-shadow: 0 0 0 3px rgba(23, 162, 184, 0.2);
}

.clean-number-input:hover:not(:focus) {
    border-color: #a0c4cc;
}

/* Style the spinner buttons */
.clean-number-input::-webkit-inner-spin-button,
.clean-number-input::-webkit-outer-spin-button {
    -webkit-appearance: inner-spin-button;
    opacity: 1;
    height: 36px;
    cursor: pointer;
}

.clean-number-input:disabled {
    background-color: #f0f3f5;
    color: #95a5a6;
    border-color: #e0e4e8;
    cursor: not-allowed;
}

.clean-number-input::placeholder {
    color: #aab2bd;
    font-style: italic;
}

#navbar-settings-wrapper {
    position: relative;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 8px;
    margin-right: 5px;
    border-radius: 50%;
    cursor: pointer;
    background-color: transparent;
    transition: background-color 0.3s ease;
}

#navbar-settings-wrapper:hover {
    background-color: rgba(0, 0, 0, 0.2);
}

#navbar-settings-wrapper:active {
    background-color: rgba(0, 0, 0, 0.3);
}

/* Icon */
#navbar-settings-cog {
    font-size: 28px;
    color: white;
    transition: transform 0.6s cubic-bezier(0.34, 1.56, 0.64, 1),
    filter 0.3s ease;
    filter: drop-shadow(0 0 0px transparent);
}

#navbar-settings-wrapper:hover #navbar-settings-cog {
    transform: rotate(90deg);
    filter: drop-shadow(0 0 12px rgba(255, 255, 255, 0.6));
}

#navbar-settings-wrapper:active #navbar-settings-cog {
    transform: rotate(90deg) scale(0.85);
}

/* Tooltip */
#navbar-settings-wrapper::after {
    content: 'Settings';
    position: absolute;
    bottom: -36px;
    right: 0;
    transform: translateY(4px);
    background-color: rgba(0, 0, 0, 0.75);
    color: white;
    font-size: 12px;
    font-family: sans-serif;
    padding: 4px 10px;
    border-radius: 6px;
    white-space: nowrap;
    pointer-events: none;
    opacity: 0;
    transition: opacity 0.15s ease,
    transform 0.15s ease;
}

#navbar-settings-wrapper:hover::after {
    opacity: 1;
    transform: translateY(0);
    transition: opacity 0.2s ease 0.5s,
    transform 0.2s ease 0.5s;
}

#manage-whitelist-button {
    color: cornflowerblue;
    font-weight: 500;
    font-size: 12px;
    cursor: pointer;
    background-color: transparent;
    transition: background-color 0.2s ease;
    padding: 2px 4px 2px 4px;
    border-radius: 3px;
}

#manage-whitelist-button:hover {
    background-color: rgba(0, 0, 0, 0.1);
}

.toolbar-divider {
    width: 2px;
    height: 28px;
    background-color: #d1d5db;
    margin: 0 12px;
    flex-shrink: 0;
}


/*Connection to the server has been lost*/
.connection-overlay {
    position: fixed;
    inset: 0;
    background: rgba(0, 0, 0, 0.35);
    backdrop-filter: blur(2px);
    -webkit-backdrop-filter: blur(2px);
    display: flex;
    align-items: center;
    justify-content: center;
    z-index: 9999;
    opacity: 0;
    pointer-events: none;
    transition: opacity 0.2s ease;
}

.connection-overlay.is-visible {
    opacity: 1;
    pointer-events: auto;
}

.connection-overlay__card {
    background: #fff;
    border-radius: 8px;
    padding: 20px 28px;
    box-shadow: 0 10px 30px rgba(0, 0, 0, 0.2);
    display: flex;
    align-items: center;
    gap: 14px;
    font-family: system-ui, -apple-system, "Segoe UI", sans-serif;
    color: #222;
    max-width: 90vw;
}

.connection-overlay__spinner {
    width: 20px;
    height: 20px;
    border: 2px solid #ddd;
    border-top-color: #0078d4;
    border-radius: 50%;
    animation: connection-overlay-spin 0.8s linear infinite;
    flex-shrink: 0;
}

.connection-overlay__text {
    font-size: 14px;
    line-height: 1.4;
}

.connection-overlay__title {
    font-weight: 600;
    margin: 0 0 2px;
}

.connection-overlay__detail {
    margin: 0;
    color: #666;
    font-size: 13px;
}

/* Variant: lost (no spinner, red accent) */
.connection-overlay.is-lost .connection-overlay__spinner {
    display: none;
}

.connection-overlay.is-lost .connection-overlay__card {
    border-left: 4px solid #d13438;
}

@keyframes connection-overlay-spin {
    to { transform: rotate(360deg); }
}