/* /Layout/MainLayout.razor.rz.scp.css */
.app-layout[b-ah28bw99kn] {
    display: flex;
    flex-direction: column;
    min-height: 100vh;
    font-family: system-ui, -apple-system, sans-serif;
}

.main-viewport[b-ah28bw99kn] {
    flex: 1;
    display: flex;
    flex-direction: column;
    background-color: #f8f9fa;
}

.content-container[b-ah28bw99kn] {
    flex: 1;
    width: 100%;
    box-sizing: border-box;
}

/* ========== ADMIN MODE BANNER (F-14) ========== */

/* When admin mode is on, this exposes the banner height so the calendar
   (height: calc(100dvh - 62px - var(--admin-banner-h))) compresses instead of
   being pushed under the bottom nav. Must match .admin-mode-banner height. */
.app-layout.admin-active[b-ah28bw99kn] {
    --admin-banner-h: 44px;
}

/* Persistent, unmistakable strip while admin mode is on — admin actions must be
   explicit and clearly separated from the normal parental flow. Fixed height so
   the offset above is deterministic; the message ellipsizes on narrow screens. */
.admin-mode-banner[b-ah28bw99kn] {
    position: sticky;
    top: 0;
    z-index: 300;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
    height: 44px;
    padding: 0 12px;
    background: #f59e0b;
    color: #1f2937;
    font-size: 13px;
}

.admin-mode-msg[b-ah28bw99kn] {
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.admin-mode-exit[b-ah28bw99kn] {
    background: #1f2937;
    color: #ffffff;
    border: none;
    padding: 5px 14px;
    border-radius: 14px;
    font-size: 12px;
    font-weight: 700;
    cursor: pointer;
    flex-shrink: 0;
}

/* ========== FAMILY DELETION BANNER (S-11 PR2) ========== */

/* Persistent red strip while a family-deletion request is pending — every
   member must see it on every screen until they respond or the requester
   withdraws. Tapping it opens the profile page's consent panel. */
.family-deletion-banner[b-ah28bw99kn] {
    position: sticky;
    top: 0;
    z-index: 300;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
    min-height: 44px;
    padding: 6px 12px;
    background: #dc2626;
    color: #ffffff;
    font-size: 13px;
    cursor: pointer;
}

.family-deletion-msg[b-ah28bw99kn] {
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    line-height: 1.3;
}

/* ========== DEV BADGE ========== */

/* Bottom-right, above the bottom nav — out of the way of the admin banner's
   "Sair" button (top-right) and unlikely to sit over a calendar day. */
.dev-badge[b-ah28bw99kn] {
    position: fixed;
    bottom: 70px;
    right: 10px;
    z-index: 9999;
    background: #f59e0b;
    color: #1a1a1a;
    font-size: 10px;
    font-weight: 800;
    letter-spacing: 0.08em;
    padding: 3px 8px;
    border-radius: 20px;
    pointer-events: none;
    opacity: 0.9;
}

/* ========== INSTALL BANNER ========== */

.install-banner[b-ah28bw99kn] {
    position: fixed;
    bottom: 62px;
    left: 0;
    right: 0;
    max-width: 450px;
    margin: 0 auto;
    background: #1a1a2e;
    color: #ffffff;
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 12px 14px;
    z-index: 190;
    box-shadow: 0 -2px 16px rgba(0, 0, 0, 0.3);
    animation: slideUpBanner-b-ah28bw99kn 0.3s ease-out;
    border-radius: 16px 16px 0 0;
}

@media (min-width: 641px) {
    .install-banner[b-ah28bw99kn] {
        bottom: 0;
        border-radius: 0;
    }
}

@keyframes slideUpBanner-b-ah28bw99kn {
    from { transform: translateY(100%); opacity: 0; }
    to   { transform: translateY(0);    opacity: 1; }
}

.install-banner-icon[b-ah28bw99kn] {
    font-size: 26px;
    flex-shrink: 0;
    line-height: 1;
}

.install-banner-text[b-ah28bw99kn] {
    flex: 1;
    display: flex;
    flex-direction: column;
    gap: 2px;
    min-width: 0;
}

.install-banner-title[b-ah28bw99kn] {
    font-size: 13px;
    font-weight: 700;
    white-space: nowrap;
}

.install-banner-hint[b-ah28bw99kn] {
    font-size: 11px;
    opacity: 0.8;
    line-height: 1.4;
}

.install-banner-btn[b-ah28bw99kn] {
    background: #ffffff;
    color: #1a1a2e;
    border: none;
    padding: 8px 16px;
    border-radius: 20px;
    font-size: 13px;
    font-weight: 700;
    cursor: pointer;
    white-space: nowrap;
    flex-shrink: 0;
}

.install-banner-dismiss[b-ah28bw99kn] {
    background: transparent;
    color: rgba(255, 255, 255, 0.6);
    border: none;
    font-size: 16px;
    cursor: pointer;
    padding: 4px 6px;
    flex-shrink: 0;
    line-height: 1;
}

.install-banner-dismiss:hover[b-ah28bw99kn] {
    color: #ffffff;
}

.install-banner-ios .install-banner-hint strong[b-ah28bw99kn] {
    font-weight: 700;
}

.ios-share-icon[b-ah28bw99kn] {
    font-style: normal;
    font-size: 13px;
}

/* ========== ERROR BOUNDARY ========== */

.error-boundary-fallback[b-ah28bw99kn] {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    padding: 48px 24px;
    text-align: center;
    min-height: 50vh;
}

.error-boundary-icon[b-ah28bw99kn] {
    font-size: 48px;
    margin-bottom: 16px;
}

.error-boundary-fallback h2[b-ah28bw99kn] {
    margin: 0 0 8px;
    font-size: 20px;
    color: #1a1a2e;
}

.error-boundary-fallback p[b-ah28bw99kn] {
    margin: 0 0 24px;
    color: #6b7280;
    font-size: 14px;
}

.error-boundary-btn[b-ah28bw99kn] {
    background: #2563eb;
    color: #fff;
    border: none;
    padding: 10px 24px;
    border-radius: 8px;
    font-size: 14px;
    font-weight: 600;
    cursor: pointer;
}

/* ========== GLOBAL PROGRESS BAR ========== */

.global-progress[b-ah28bw99kn] {
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    height: 3px;
    z-index: 9999;
    overflow: hidden;
    background: rgba(0,0,0,.05);
}

.global-progress-bar[b-ah28bw99kn] {
    height: 100%;
    width: 40%;
    background: #2563eb;
    border-radius: 2px;
    animation: progressSlide-b-ah28bw99kn 1.2s ease-in-out infinite;
}

.global-progress-determinate[b-ah28bw99kn] {
    animation: none;
    transition: width 0.3s ease-out;
}

.global-progress-message[b-ah28bw99kn] {
    position: fixed;
    top: 5px;
    left: 50%;
    transform: translateX(-50%);
    background: #1e293b;
    color: #ffffff;
    font-size: 12px;
    font-weight: 500;
    padding: 4px 14px;
    border-radius: 12px;
    z-index: 9999;
    white-space: nowrap;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.2);
}

@keyframes progressSlide-b-ah28bw99kn {
    0% { transform: translateX(-100%); }
    50% { transform: translateX(200%); }
    100% { transform: translateX(-100%); }
}

/* ========== TOAST ========== */

.global-toast[b-ah28bw99kn] {
    position: fixed;
    bottom: 80px;
    left: 50%;
    transform: translateX(-50%);
    padding: 12px 20px;
    border-radius: 12px;
    display: flex;
    align-items: center;
    gap: 8px;
    font-size: 14px;
    font-weight: 500;
    z-index: 9998;
    box-shadow: 0 4px 16px rgba(0,0,0,.15);
    animation: toastIn-b-ah28bw99kn 0.25s ease-out;
    max-width: min(90vw, 520px);
    width: max-content;
    align-items: flex-start;
    cursor: pointer;   /* tap anywhere on it to dismiss */
}

.toast-success[b-ah28bw99kn] { background: #ecfdf5; color: #065f46; border: 1px solid #6ee7b7; }
.toast-error[b-ah28bw99kn] { background: #fef2f2; color: #991b1b; border: 1px solid #fca5a5; }
.toast-info[b-ah28bw99kn] { background: #eff6ff; color: #1e40af; border: 1px solid #93c5fd; }

.toast-icon[b-ah28bw99kn] { font-size: 16px; flex-shrink: 0; }

/* QA (July 2026): long operation summaries (e.g. bulk results with conflict
   counts) were ellipsized — the part explaining WHAT happened was the part
   cut off. Toasts now wrap; the dismiss timer scales with length instead. */
.toast-message[b-ah28bw99kn] {
    white-space: normal;
    overflow-wrap: break-word;
    line-height: 1.45;
    text-align: left;
    min-width: 0;
}

@keyframes toastIn-b-ah28bw99kn {
    from { opacity: 0; transform: translateX(-50%) translateY(10px); }
    to { opacity: 1; transform: translateX(-50%) translateY(0); }
}
/* /Layout/NavMenu.razor.rz.scp.css */
.navbar-toggler[b-ra5zbd8gtm] {
    background-color: rgba(255, 255, 255, 0.1);
}

.top-row[b-ra5zbd8gtm] {
    min-height: 3.5rem;
    background-color: rgba(0,0,0,0.4);
}

.navbar-brand[b-ra5zbd8gtm] {
    font-size: 1.1rem;
}

.bi[b-ra5zbd8gtm] {
    display: inline-block;
    position: relative;
    width: 1.25rem;
    height: 1.25rem;
    margin-right: 0.75rem;
    top: -1px;
    background-size: cover;
}

.bi-house-door-fill-nav-menu[b-ra5zbd8gtm] {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='white' class='bi bi-house-door-fill' viewBox='0 0 16 16'%3E%3Cpath d='M6.5 14.5v-3.505c0-.245.25-.495.5-.495h2c.25 0 .5.25.5.5v3.5a.5.5 0 0 0 .5.5h4a.5.5 0 0 0 .5-.5v-7a.5.5 0 0 0-.146-.354L13 5.793V2.5a.5.5 0 0 0-.5-.5h-1a.5.5 0 0 0-.5.5v1.293L8.354 1.146a.5.5 0 0 0-.708 0l-6 6A.5.5 0 0 0 1.5 7.5v7a.5.5 0 0 0 .5.5h4a.5.5 0 0 0 .5-.5Z'/%3E%3C/svg%3E");
}

.bi-plus-square-fill-nav-menu[b-ra5zbd8gtm] {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='white' class='bi bi-plus-square-fill' viewBox='0 0 16 16'%3E%3Cpath d='M2 0a2 2 0 0 0-2 2v12a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V2a2 2 0 0 0-2-2H2zm6.5 4.5v3h3a.5.5 0 0 1 0 1h-3v3a.5.5 0 0 1-1 0v-3h-3a.5.5 0 0 1 0-1h3v-3a.5.5 0 0 1 1 0z'/%3E%3C/svg%3E");
}

.bi-list-nested-nav-menu[b-ra5zbd8gtm] {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='white' class='bi bi-list-nested' viewBox='0 0 16 16'%3E%3Cpath fill-rule='evenodd' d='M4.5 11.5A.5.5 0 0 1 5 11h10a.5.5 0 0 1 0 1H5a.5.5 0 0 1-.5-.5zm-2-4A.5.5 0 0 1 3 7h10a.5.5 0 0 1 0 1H3a.5.5 0 0 1-.5-.5zm-2-4A.5.5 0 0 1 1 3h10a.5.5 0 0 1 0 1H1a.5.5 0 0 1-.5-.5z'/%3E%3C/svg%3E");
}

.nav-item[b-ra5zbd8gtm] {
    font-size: 0.9rem;
    padding-bottom: 0.5rem;
}

    .nav-item:first-of-type[b-ra5zbd8gtm] {
        padding-top: 1rem;
    }

    .nav-item:last-of-type[b-ra5zbd8gtm] {
        padding-bottom: 1rem;
    }

    .nav-item[b-ra5zbd8gtm]  a {
        color: #d7d7d7;
        border-radius: 4px;
        height: 3rem;
        display: flex;
        align-items: center;
        line-height: 3rem;
    }

.nav-item[b-ra5zbd8gtm]  a.active {
    background-color: rgba(255,255,255,0.37);
    color: white;
}

.nav-item[b-ra5zbd8gtm]  a:hover {
    background-color: rgba(255,255,255,0.1);
    color: white;
}

@media (min-width: 641px) {
    .navbar-toggler[b-ra5zbd8gtm] {
        display: none;
    }

    .collapse[b-ra5zbd8gtm] {
        /* Never collapse the sidebar for wide screens */
        display: block;
    }

    .nav-scrollable[b-ra5zbd8gtm] {
        /* Allow sidebar to scroll for tall menus */
        height: calc(100vh - 3.5rem);
        overflow-y: auto;
    }
}
/* /Pages/Components/FrozenDayPanel.razor.rz.scp.css */
.frozen-panel .frozen-panel-header[b-jt61viq0c5] {
    display: flex;
    align-items: center;
    gap: 10px;
    margin-bottom: 4px;
}

.frozen-panel-header h3[b-jt61viq0c5] {
    margin: 0;
    font-size: 17px;
    font-weight: 700;
    color: #212529;
}

.frozen-panel-icon[b-jt61viq0c5] {
    font-size: 22px;
}

.frozen-panel-date[b-jt61viq0c5] {
    margin: 0 0 16px;
    font-size: 14px;
    color: #6b7280;
}

.frozen-panel-urgent[b-jt61viq0c5] {
    background: #fff3cd;
    border: 1px solid #ffc107;
    border-radius: 8px;
    padding: 8px 12px;
    margin: 0 0 14px;
    font-size: 13px;
    font-weight: 600;
    color: #856404;
    text-align: center;
}

/* F-20: handoff already passed */
.frozen-panel-overdue[b-jt61viq0c5] {
    background: #fef2f2;
    border-color: #f87171;
    color: #b91c1c;
}

.frozen-panel-info[b-jt61viq0c5] {
    background: #f8f9fa;
    border-radius: 10px;
    padding: 12px 14px;
    margin-bottom: 16px;
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.frozen-info-row[b-jt61viq0c5] {
    display: flex;
    justify-content: space-between;
    gap: 8px;
    font-size: 14px;
}

.frozen-info-label[b-jt61viq0c5] {
    color: #6b7280;
    font-weight: 500;
    flex-shrink: 0;
}

.frozen-info-value[b-jt61viq0c5] {
    color: #212529;
    font-weight: 600;
    text-align: right;
}

.frozen-panel-reason[b-jt61viq0c5] {
    margin-bottom: 16px;
}

.frozen-panel-reason label[b-jt61viq0c5] {
    font-size: 13px;
    font-weight: 600;
    color: #495057;
    display: block;
    margin-bottom: 6px;
}

.frozen-panel-observer[b-jt61viq0c5] {
    font-size: 14px;
    color: #6b7280;
    text-align: center;
    margin: 8px 0 0;
}

.panel-actions[b-jt61viq0c5] {
    margin-top: 12px;
}

.panel-actions-buttons[b-jt61viq0c5] {
    display: flex;
    gap: 8px;
}

.panel-actions-secondary[b-jt61viq0c5] {
    display: flex;
    justify-content: center;
}
/* /Pages/Components/SudoPrompt.razor.rz.scp.css */
h3[b-093thvj7kv] {
    margin-top: 0;
    font-size: 18px;
    font-weight: 700;
    color: #212529;
}

.sudo-hint[b-093thvj7kv] {
    font-size: 13px;
    color: #6c757d;
    margin: 0 0 16px;
}

.form-group[b-093thvj7kv] {
    margin-bottom: 16px;
    text-align: left;
}

    .form-group label[b-093thvj7kv] {
        font-size: 13px;
        font-weight: 600;
        color: #495057;
        display: block;
        margin-bottom: 6px;
    }

.sudo-actions[b-093thvj7kv] {
    display: flex;
    gap: 10px;
    margin-top: 4px;
}

    .sudo-actions .btn[b-093thvj7kv] {
        flex: 1;
    }

.sudo-forgot[b-093thvj7kv] {
    font-size: 12px;
    color: #6c757d;
    margin: 14px 0 0;
}
/* /Pages/FamilyPage.razor.rz.scp.css */
/* (bottom-nav clearance now lives globally on .page-container — shared.css) */

/* App version — "about the app" footer for signed-in users */
.app-version[b-kjwf1v9jds] {
    margin: 28px 0 0;
    font-size: 11px;
    color: #adb5bd;
    text-align: center;
    letter-spacing: 0.3px;
}

/* ── Family rename (admin) ───────────────────────────────────── */

.family-name-row[b-kjwf1v9jds] {
    display: flex;
    align-items: center;
    gap: 8px;
}

.family-name-edit-btn[b-kjwf1v9jds] {
    border: none;
    background: transparent;
    font-size: 14px;
    cursor: pointer;
    padding: 2px 4px;
    opacity: 0.7;
}

.family-name-edit-btn:hover[b-kjwf1v9jds] { opacity: 1; }

.family-name-edit[b-kjwf1v9jds] {
    display: flex;
    gap: 6px;
    margin: 4px 0 20px 0;
}

.family-name-edit input[b-kjwf1v9jds] {
    flex: 1;
    min-width: 0;
}

.family-name-btn[b-kjwf1v9jds] {
    border: 1px solid #dee2e6;
    background: #f8f9fa;
    color: #495057;
    border-radius: 8px;
    font-size: 13px;
    font-weight: 600;
    padding: 8px 12px;
    cursor: pointer;
    flex-shrink: 0;
    display: flex;
    align-items: center;
    justify-content: center;
}

.family-name-btn.save[b-kjwf1v9jds] {
    border-color: #212529;
    background: #212529;
    color: #ffffff;
    min-width: 70px;
}

.family-name-btn:disabled[b-kjwf1v9jds] {
    opacity: 0.6;
    cursor: not-allowed;
}

.family-loading[b-kjwf1v9jds] {
    display: flex;
    align-items: center;
    gap: 8px;
    color: #6c757d;
    font-size: 14px;
    padding: 24px 0;
}

.family-section[b-kjwf1v9jds] {
    margin-top: 24px;
}

.section-title[b-kjwf1v9jds] {
    font-size: 14px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.4px;
    color: #6c757d;
    margin: 0 0 10px;
}

/* ── Members ─────────────────────────────────────────────────── */

.member-card[b-kjwf1v9jds] {
    display: flex;
    align-items: center;
    gap: 12px;
    background: #ffffff;
    border: 1px solid #e9ecef;
    border-radius: 14px;
    padding: 12px 14px;
    margin-bottom: 10px;
}

.member-avatar[b-kjwf1v9jds] {
    width: 40px;
    height: 40px;
    border-radius: 50%;
    background: #212529;
    color: #ffffff;
    font-size: 17px;
    font-weight: 700;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
}

.member-info[b-kjwf1v9jds] {
    flex: 1;
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: 2px;
    text-align: left;
}

.member-name[b-kjwf1v9jds] {
    font-size: 15px;
    font-weight: 600;
    color: #212529;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.member-you[b-kjwf1v9jds] {
    font-size: 12px;
    font-weight: 500;
    color: #868e96;
    margin-left: 4px;
}

.member-role[b-kjwf1v9jds] {
    font-size: 12px;
    color: #6c757d;
    display: flex;
    align-items: center;
    gap: 6px;
}

/* F-16: member cards navigate to the profile page (edits live there) */
.member-card-link[b-kjwf1v9jds] {
    cursor: pointer;
    transition: background-color 0.12s;
}

.member-card-link:hover[b-kjwf1v9jds] {
    background-color: #f8f9fa;
}

.member-chevron[b-kjwf1v9jds] {
    font-size: 22px;
    color: #adb5bd;
    margin-left: auto;
    padding-left: 8px;
}

.member-admin-badge[b-kjwf1v9jds] {
    background: #fffbeb;
    border: 1px solid #fcd34d;
    color: #92400e;
    font-size: 10px;
    font-weight: 700;
    border-radius: 10px;
    padding: 1px 7px;
    white-space: nowrap;
}

/* (F-16: the inline admin button moved to the profile page.) */

/* ── Invitation ──────────────────────────────────────────────── */

.invite-card[b-kjwf1v9jds] {
    background: #ffffff;
    border: 1px solid #e9ecef;
    border-radius: 14px;
    padding: 16px 14px;
    text-align: left;
}

.invite-card.expired[b-kjwf1v9jds] {
    border-color: #fca5a5;
}

.invite-status-row[b-kjwf1v9jds] {
    display: flex;
    align-items: center;
    gap: 8px;
    flex-wrap: wrap;
    margin-bottom: 8px;
}

.invite-status-badge[b-kjwf1v9jds] {
    background: #ecfdf5;
    border: 1px solid #6ee7b7;
    color: #047857;
    font-size: 11px;
    font-weight: 700;
    border-radius: 10px;
    padding: 2px 8px;
    white-space: nowrap;
}

.invite-status-badge.expired[b-kjwf1v9jds] {
    background: #fef2f2;
    border-color: #fca5a5;
    color: #b91c1c;
}

.invite-email[b-kjwf1v9jds] {
    font-size: 13px;
    font-weight: 600;
    color: #212529;
    overflow: hidden;
    text-overflow: ellipsis;
}

.invite-expiry[b-kjwf1v9jds] {
    font-size: 12px;
    color: #6c757d;
    margin: 0 0 10px;
}

.invite-link-row[b-kjwf1v9jds] {
    display: flex;
    gap: 6px;
    margin-bottom: 6px;
}

.invite-link-input[b-kjwf1v9jds] {
    flex: 1;
    min-width: 0;
    font-size: 12px;
    color: #495057;
    background: #f8f9fa;
    border: 1px solid #dee2e6;
    border-radius: 8px;
    padding: 8px 10px;
}

.invite-copy-btn[b-kjwf1v9jds] {
    border: 1px solid #dee2e6;
    background: #ffffff;
    border-radius: 8px;
    font-size: 15px;
    padding: 6px 10px;
    cursor: pointer;
    flex-shrink: 0;
}

.invite-hint[b-kjwf1v9jds] {
    font-size: 13px;
    color: #6c757d;
    line-height: 1.5;
    margin: 0 0 12px;
}

.invite-actions[b-kjwf1v9jds] {
    display: flex;
    gap: 8px;
    margin-top: 6px;
}

.btn-invite[b-kjwf1v9jds] {
    flex: 1;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    border: none;
    border-radius: 10px;
    background: #212529;
    color: #ffffff;
    font-size: 14px;
    font-weight: 600;
    padding: 12px;
    cursor: pointer;
}

.btn-invite:disabled[b-kjwf1v9jds] {
    background: #868e96;
    cursor: not-allowed;
}

/* The form's submit sits right below the role select — breathing room
   (the resend button inside .invite-actions gets its gap from the flex row). */
.btn-invite-send[b-kjwf1v9jds] {
    margin-top: 14px;
}

.btn-revoke[b-kjwf1v9jds] {
    border: 1px solid #fca5a5;
    background: #fff5f5;
    color: #b91c1c;
    border-radius: 10px;
    font-size: 14px;
    font-weight: 600;
    padding: 12px 14px;
    cursor: pointer;
    flex-shrink: 0;
}

.btn-revoke:disabled[b-kjwf1v9jds] {
    opacity: 0.6;
    cursor: not-allowed;
}

/* ── Admin mode (F-14 toggle; mobile home of the nav button) ─── */

.admin-card[b-kjwf1v9jds] {
    background: #ffffff;
    border: 1px solid #e9ecef;
    border-radius: 14px;
    padding: 16px 14px;
    text-align: left;
}

.admin-card.active[b-kjwf1v9jds] {
    background: #fffbeb;
    border-color: #fcd34d;
}

.admin-card-text[b-kjwf1v9jds] {
    font-size: 13px;
    color: #495057;
    line-height: 1.5;
    margin: 0 0 12px;
}

.btn-admin-toggle[b-kjwf1v9jds] {
    width: 100%;
    border: 1px solid #fcd34d;
    background: #fffbeb;
    color: #92400e;
    border-radius: 10px;
    font-size: 14px;
    font-weight: 600;
    padding: 12px;
    cursor: pointer;
}

.btn-admin-toggle.active[b-kjwf1v9jds] {
    background: #f59e0b;
    border-color: #d97706;
    color: #ffffff;
}

/* S-11: departed member — dimmed card + "Saiu" badge. */
.member-card-left[b-kjwf1v9jds] {
    opacity: 0.6;
}

.member-left-badge[b-kjwf1v9jds] {
    display: inline-block;
    margin-left: 6px;
    padding: 1px 8px;
    border-radius: 10px;
    background: #f1f3f5;
    color: #868e96;
    font-size: 11px;
    font-weight: 700;
    vertical-align: middle;
}

/* ── S-11 PR2 (QA): family-deletion panel moved here from the profile ── */

.danger-title[b-kjwf1v9jds] { color: #c92a2a; }

.danger-card[b-kjwf1v9jds] {
    border: 1px solid #ffc9c9;
    background: #fff5f5;
    border-radius: 16px;
    padding: 16px;
}

.family-hint[b-kjwf1v9jds] {
    font-size: 13px;
    color: #495057;
    line-height: 1.5;
    margin: 0 0 12px;
}

.danger-consequences[b-kjwf1v9jds] {
    margin: 0 0 14px;
    padding-left: 20px;
    font-size: 13px;
    color: #495057;
    line-height: 1.5;
}

.danger-consequences li[b-kjwf1v9jds] { margin-bottom: 6px; }

.danger-confirm-text[b-kjwf1v9jds] {
    font-size: 14px;
    font-weight: 600;
    color: #c92a2a;
    margin: 0 0 12px;
}

.consent-status[b-kjwf1v9jds] {
    margin: 0 0 14px;
    padding: 10px 12px;
    list-style: none;
    background: #ffffff;
    border: 1px solid #ffc9c9;
    border-radius: 10px;
    font-size: 13px;
    color: #495057;
    line-height: 1.6;
}

.family-actions-row[b-kjwf1v9jds] {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    margin-bottom: 12px;
}

.btn-execute-now[b-kjwf1v9jds] { margin-top: 4px; width: 100%; }

/* S-10 sudo sheet chrome (bottom-sheet pattern: chrome in the page) */
.backdrop[b-kjwf1v9jds] {
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background: rgba(0, 0, 0, 0.4);
    z-index: 99;
}

.bottom-sheet[b-kjwf1v9jds] {
    position: fixed;
    bottom: 62px;
    left: 0;
    right: 0;
    background: #ffffff;
    padding: 24px 20px;
    border-top-left-radius: 24px;
    border-top-right-radius: 24px;
    box-shadow: 0 -4px 16px rgba(0,0,0,0.15);
    z-index: 100;
    max-width: 450px;
    margin: 0 auto;
}

.sheet-handle[b-kjwf1v9jds] {
    width: 40px;
    height: 5px;
    background: #dee2e6;
    border-radius: 3px;
    margin: -12px auto 16px auto;
}
/* /Pages/Home.razor.rz.scp.css */
/* Reset e Layout Base Mobile-First */

*[b-sfztc1nyh8], *[b-sfztc1nyh8]::before, *[b-sfztc1nyh8]::after {
    box-sizing: border-box;
}

/* ========== HOME PAGE LAYOUT ========== */

.home-page[b-sfztc1nyh8] {
    display: flex;
    flex-direction: column;
    height: calc(100dvh - 62px - var(--admin-banner-h, 0px)); /* subtract bottom nav */
    overflow: hidden;
}

@media (min-width: 641px) {
    .home-page[b-sfztc1nyh8] {
        height: auto;
        max-width: 440px;
        margin: 16px auto 32px;
        overflow: visible;
    }
}

.calendar-app[b-sfztc1nyh8] {
    flex: 1;
    display: flex;
    flex-direction: column;
    width: 100%;
    max-width: 450px;
    margin: 0 auto;
    padding: 8px 12px 4px;
    font-family: system-ui, -apple-system, sans-serif;
    min-height: 0;
    overflow-x: hidden;
}

@media (min-width: 641px) {
    .calendar-app[b-sfztc1nyh8] {
        flex: none;
        max-width: none;
        min-height: 0;
        padding: 8px 0 4px;
    }

    .days-grid[b-sfztc1nyh8] {
        flex: none;
        grid-auto-rows: auto; /* height driven by aspect-ratio on cells */
    }

    .day-cell[b-sfztc1nyh8] {
        aspect-ratio: 1; /* square cells on desktop */
    }
}

.calendar-header[b-sfztc1nyh8] {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 8px;
    flex-shrink: 0;
}

    .calendar-header h2[b-sfztc1nyh8] {
        font-size: 18px;
        margin: 0;
        font-weight: 700;
        text-transform: capitalize;
    }

.btn-nav[b-sfztc1nyh8] {
    background: #f1f3f5;
    border: none;
    width: 40px;
    height: 40px;
    font-size: 18px;
    font-weight: bold;
    border-radius: 50%;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
}

.btn-wizard[b-sfztc1nyh8], .btn-select[b-sfztc1nyh8] {
    background: #eff6ff;
    border: 1px solid #bfdbfe;
    width: 36px;
    height: 36px;
    font-size: 18px;
    border-radius: 50%;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    margin-left: 8px;
    transition: background 0.15s;
}

.btn-wizard:hover[b-sfztc1nyh8], .btn-select:hover[b-sfztc1nyh8] {
    background: #dbeafe;
}

.calendar-legend[b-sfztc1nyh8] {
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 8px;
    margin-bottom: 8px;
    flex-shrink: 0;
}

.legend-badge[b-sfztc1nyh8] {
    padding: 4px 12px;
    border-radius: 20px;
    font-size: 12px;
    font-weight: 600;
    text-align: center;
    box-sizing: border-box;
}

.weekdays-grid[b-sfztc1nyh8] {
    display: grid;
    grid-template-columns: repeat(7, minmax(0, 1fr));
    gap: 4px;
    text-align: center;
    font-weight: 600;
    font-size: 11px;
    color: #adb5bd;
    margin-bottom: 4px;
    text-transform: uppercase;
    flex-shrink: 0;
}

/* Days grid: fills remaining vertical space, rows share it equally */
.days-grid[b-sfztc1nyh8] {
    display: grid;
    grid-template-columns: repeat(7, minmax(0, 1fr));
    grid-auto-rows: 1fr;
    gap: 4px;
    text-align: center;
    flex: 1;
    min-height: 0;
    touch-action: pan-y;
    user-select: none;
}

.day-cell[b-sfztc1nyh8] {
    width: 100%;
    min-width: 0;
    border: none;
    border-radius: 10px;
    background-color: #f8f9fa;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: space-between;
    padding: 4px;
    cursor: pointer;
    transition: transform 0.1s;
    -webkit-tap-highlight-color: transparent;
    -webkit-appearance: none;
    appearance: none;
    font: inherit;
    text-align: center;
    overflow: hidden;
}

    .day-cell:active[b-sfztc1nyh8] {
        transform: scale(0.92);
    }

.day-number[b-sfztc1nyh8] {
    font-weight: 600;
    font-size: 13px;
    color: #212529;
}

.parent-indicator[b-sfztc1nyh8] {
    font-size: 10px;
    font-weight: 800;
    opacity: 0.8;
}

.day-time-badge[b-sfztc1nyh8] {
    font-size: 8px;
    font-weight: 600;
    opacity: 0.75;
    line-height: 1;
    letter-spacing: 0;
}

/* ── Calendar empty state ── */
.calendar-empty-state[b-sfztc1nyh8] {
    text-align: center;
    padding: 24px 16px;
    color: #6b7280;
}
.calendar-empty-state .empty-icon[b-sfztc1nyh8] { font-size: 32px; display: block; margin-bottom: 8px; }
.calendar-empty-state .empty-title[b-sfztc1nyh8] { font-size: 14px; font-weight: 600; margin: 0 0 4px; color: #374151; }
.calendar-empty-state .empty-hint[b-sfztc1nyh8] { font-size: 13px; margin: 0; }

/* ── Read-only banner ── */
.readonly-banner[b-sfztc1nyh8] {
    background: #fef3c7;
    border: 1px solid #fde68a;
    color: #92400e;
    font-size: 13px;
    padding: 8px 12px;
    border-radius: 8px;
    margin-bottom: 16px;
    text-align: center;
}

/* F-14: admin mode editing a normally-protected day — solid amber, not a lock */
.admin-override-banner[b-sfztc1nyh8] {
    background: #f59e0b;
    border-color: #d97706;
    color: #1f2937;
    font-weight: 600;
}

/* Slot 1 — Blue */
/* S-11 QA: slot 0 — inactive/departed member (single gray identity with
   vertical hatching; the 4 color themes belong to ACTIVE members only). */
.role-0-day[b-sfztc1nyh8] {
    background: repeating-linear-gradient(90deg, #f1f3f5 0 6px, #e3e5e8 6px 12px);
    color: #6c757d;
    border: 1px solid #ced4da;
}

.role-1-day[b-sfztc1nyh8] {
    background-color: #dbeafe;
    color: #1e3a8a;
    border: 1px solid #93c5fd;
}

/* Slot 2 — Pink */
.role-2-day[b-sfztc1nyh8] {
    background-color: #ffe4e6;
    color: #881337;
    border: 1px solid #fda4af;
}

/* Slot 3 — Teal */
.role-3-day[b-sfztc1nyh8] {
    background-color: #ccfbf1;
    color: #0f766e;
    border: 1px solid #5eead4;
}

/* Slot 4 — Orange (was purple: too close to slot 1's blue in pastels;
   distinct from the swapped amber, which keeps its dashed border) */
.role-4-day[b-sfztc1nyh8] {
    background-color: #fed7aa;
    color: #7c2d12;
    border: 1px solid #ea580c;
}

.swapped[b-sfztc1nyh8] {
    background-color: #fef3c7;
    color: #92400e;
    border: 2px dashed #f59e0b;
}

.unassigned[b-sfztc1nyh8] {
    background-color: #ffffff;
    border: 1px solid #e9ecef;
}

    .unassigned .parent-indicator[b-sfztc1nyh8] {
        color: #dee2e6;
    }

.empty[b-sfztc1nyh8] {
    background-color: transparent;
    border: none;
    cursor: default;
    pointer-events: none;
}

.today[b-sfztc1nyh8] {
    border: 2px solid #212529;
}

.day-frozen[b-sfztc1nyh8] {
    opacity: 0.75;
    cursor: pointer;
}

.day-frozen-mine[b-sfztc1nyh8] {
    opacity: 1;
    border: 2px solid #f59e0b;
    box-shadow: 0 0 0 3px rgba(245, 158, 11, 0.25);
    animation: pulse-amber-b-sfztc1nyh8 1.8s ease-in-out infinite;
}

@keyframes pulse-amber-b-sfztc1nyh8 {
    0%   { box-shadow: 0 0 0 0   rgba(245, 158, 11, 0.40); }
    60%  { box-shadow: 0 0 0 5px rgba(245, 158, 11, 0.00); }
    100% { box-shadow: 0 0 0 0   rgba(245, 158, 11, 0.00); }
}

.day-frozen-badge[b-sfztc1nyh8] {
    font-size: 10px;
    line-height: 1;
    opacity: 0.55;
}

.day-frozen-badge--mine[b-sfztc1nyh8] {
    opacity: 1;
    animation: bell-shake-b-sfztc1nyh8 2s ease-in-out infinite;
}

/* F-20: the pending request's handoff has passed — red glow + faster shake
   so the approver acts before the F-24 auto-approval kicks in. */
.day-frozen-badge--overdue[b-sfztc1nyh8] {
    animation: bell-shake-b-sfztc1nyh8 1s ease-in-out infinite;
    filter: drop-shadow(0 0 3px #dc2626) drop-shadow(0 0 1px #dc2626);
}

@keyframes bell-shake-b-sfztc1nyh8 {
    0%, 80%, 100% { transform: rotate(0deg); }
    85%  { transform: rotate(-15deg); }
    90%  { transform: rotate(15deg); }
    95%  { transform: rotate(-10deg); }
}

/* Efeito de Gaveta Inferior (Bottom Sheet Modal) */
.backdrop[b-sfztc1nyh8] {
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background: rgba(0, 0, 0, 0.4);
    z-index: 99;
}

.bottom-sheet[b-sfztc1nyh8] {
    position: fixed;
    bottom: 62px;
    left: 0;
    right: 0;
    background: #ffffff;
    padding: 24px 20px;
    border-top-left-radius: 24px;
    border-top-right-radius: 24px;
    box-shadow: 0 -4px 16px rgba(0,0,0,0.15);
    z-index: 100;
    max-width: 450px;
    margin: 0 auto;
    animation: slideUp 0.25s ease-out;
    overflow-y: auto;
    max-height: 85dvh;
}

@media (min-width: 641px) {
    .bottom-sheet[b-sfztc1nyh8] {
        bottom: 0;
    }
}

.sheet-handle[b-sfztc1nyh8] {
    width: 40px;
    height: 5px;
    background: #dee2e6;
    border-radius: 3px;
    margin: -12px auto 16px auto;
}

.bottom-sheet h3[b-sfztc1nyh8] {
    margin-top: 0;
    font-size: 18px;
    font-weight: 700;
    color: #212529;
}

.form-group[b-sfztc1nyh8] {
    margin-bottom: 16px;
    text-align: left;
}

    .form-group label[b-sfztc1nyh8] {
        font-size: 13px;
        font-weight: 600;
        color: #495057;
        display: block;
        margin-bottom: 6px;
    }

.field-locked-hint[b-sfztc1nyh8] {
    display: block;
    font-size: 11px;
    color: #92400e;
    margin-top: 4px;
    line-height: 1.3;
}

.form-hint[b-sfztc1nyh8] {
    font-size: 11px;
    font-weight: 400;
    color: #868e96;
}

.time-select-row[b-sfztc1nyh8] {
    display: flex;
    align-items: center;
    gap: 6px;
}

.time-select[b-sfztc1nyh8] {
    width: auto;
    flex: 1;
    text-align: center;
}

.time-select-sep[b-sfztc1nyh8] {
    font-size: 20px;
    font-weight: 700;
    color: #495057;
    flex-shrink: 0;
}

.panel-actions[b-sfztc1nyh8] {
    display: flex;
    flex-direction: column;
    gap: 8px;
    margin-top: 8px;
}

.panel-actions-buttons[b-sfztc1nyh8] {
    display: flex;
    gap: 12px;
}

.panel-actions-secondary[b-sfztc1nyh8] {
    display: flex;
    justify-content: center;
    margin-top: 4px;
}

/* T-27: handoff time on a day without a responsibility transition */
.handoff-no-transition-hint[b-sfztc1nyh8] {
    margin-top: 8px;
    background: #fffbeb;
    border: 1px solid #fcd34d;
    border-radius: 8px;
    padding: 8px 10px;
    font-size: 12px;
    color: #92400e;
    line-height: 1.4;
}

/* T-28: the .frozen-panel* / .frozen-info-* rules that used to live here were
   a dead byte-identical copy left behind by the T-26 extraction — CSS
   isolation scopes them to Home while the elements render inside the
   FrozenDayPanel component. FrozenDayPanel.razor.css is the single source. */

/* ========== SKELETON LOADERS ========== */

.skeleton-home[b-sfztc1nyh8] {
    display: flex;
    flex-direction: column;
    height: calc(100dvh - 62px - var(--admin-banner-h, 0px));
    overflow: hidden;
    padding: 0;
}

@media (min-width: 641px) {
    .skeleton-home[b-sfztc1nyh8] {
        height: auto;
        max-width: 440px;
        margin: 16px auto 32px;
    }
}

/* Card skeleton */
.skel-card[b-sfztc1nyh8] {
    display: flex;
    flex-direction: column;
    gap: 10px;
    margin: 10px 12px 6px;
    padding: 14px 16px;
    border-radius: 16px;
    background: #dee2e6;
    flex-shrink: 0;
}

.skel-card-top[b-sfztc1nyh8] {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding-bottom: 10px;
    border-bottom: 1px solid #ced4da;
}

.skel-card-bottom[b-sfztc1nyh8] {
    display: flex;
    align-items: center;
    gap: 12px;
    min-height: 52px;
}

.skel-avatar[b-sfztc1nyh8] {
    width: 42px !important;
    height: 42px !important;
    border-radius: 50% !important;
    flex-shrink: 0;
    background: #c4c9ce !important;
}

.skel-card-lines[b-sfztc1nyh8] {
    flex: 1;
    display: flex;
    flex-direction: column;
    gap: 6px;
}

/* Calendar skeleton */
.skel-cal[b-sfztc1nyh8] {
    flex: 1;
    display: flex;
    flex-direction: column;
    padding: 8px 12px 4px;
    min-height: 0;
    gap: 8px;
}

@media (min-width: 641px) {
    .skel-cal[b-sfztc1nyh8] {
        flex: none;
    }
}

.skel-cal-header[b-sfztc1nyh8] {
    display: flex;
    justify-content: space-between;
    align-items: center;
    flex-shrink: 0;
}

.skel-btn-nav[b-sfztc1nyh8] {
    width: 40px !important;
    height: 40px !important;
    border-radius: 50% !important;
}

.skel-cal-legend[b-sfztc1nyh8] {
    display: flex;
    justify-content: center;
    gap: 8px;
    flex-shrink: 0;
}

.skel-pill[b-sfztc1nyh8] {
    height: 28px !important;
    width: 72px !important;
    border-radius: 20px !important;
}

.skel-week-row[b-sfztc1nyh8] {
    display: grid;
    grid-template-columns: repeat(7, 1fr);
    gap: 4px;
    flex-shrink: 0;
}

.skel-week-label[b-sfztc1nyh8] {
    height: 16px !important;
    border-radius: 4px !important;
}

.skel-days-grid[b-sfztc1nyh8] {
    display: grid;
    grid-template-columns: repeat(7, 1fr);
    grid-auto-rows: 1fr;
    gap: 4px;
    flex: 1;
    min-height: 0;
}

@media (min-width: 641px) {
    .skel-days-grid[b-sfztc1nyh8] {
        flex: none;
        grid-auto-rows: auto;
    }
    .skel-day-cell[b-sfztc1nyh8] {
        aspect-ratio: 1;
    }
}

.skel-day-cell[b-sfztc1nyh8] {
    width: 100%;
    min-height: 44px;
    border-radius: 10px !important;
}

/* Shared skeleton text helpers */
.skel-text-sm[b-sfztc1nyh8]  { height: 13px !important; }
.skel-text-md[b-sfztc1nyh8]  { height: 17px !important; }
.skel-text-lg[b-sfztc1nyh8]  { height: 22px !important; }

/* ========== ESTADOS DE CARREGAMENTO E ALERTAS ========== */
.loading-container[b-sfztc1nyh8] {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    height: calc(100dvh - 62px - var(--admin-banner-h, 0px));
    font-family: sans-serif;
}

.alert-danger[b-sfztc1nyh8] {
    background: #fff5f5;
    border: 1px solid #ffe3e3;
    color: #e03131;
    padding: 20px;
    border-radius: 12px;
    text-align: center;
    max-width: 350px;
}

/* ========== BULK SELECTION ========== */

/* Selected day cell — ring + tinted overlay */
.day-cell.day-selected[b-sfztc1nyh8] {
    outline: 2px solid #212529;
    outline-offset: -2px;
    position: relative;
}

/* Check mark in top-right corner */
.day-selected-mark[b-sfztc1nyh8] {
    position: absolute;
    top: 2px;
    right: 3px;
    font-size: 9px;
    font-weight: 900;
    color: #212529;
    line-height: 1;
    pointer-events: none;
}

/* ========== SELECTION ACTION BAR ========== */

/* Overlays the bottom nav (z-index 200) */
/* Single fixed 62px row: selection counts live on the buttons themselves
   (Resolver (N) / Editar (N)), so no separate count label is needed and the bar
   never grows over the calendar. Cancel is pushed to the far right. */
.selection-action-bar[b-sfztc1nyh8] {
    position: fixed;
    bottom: 0;
    left: 0;
    right: 0;
    height: 62px;
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 0 12px;
    background: #212529;
    color: #ffffff;
    z-index: 210;
    box-shadow: 0 -2px 12px rgba(0, 0, 0, 0.25);
}

.btn-bulk-edit[b-sfztc1nyh8] {
    background: #ffffff;
    color: #212529;
    border: none;
    padding: 8px 14px;
    border-radius: 20px;
    font-size: 13px;
    font-weight: 700;
    cursor: pointer;
    white-space: nowrap;
    flex-shrink: 0;
}

.btn-bulk-cancel[b-sfztc1nyh8] {
    background: transparent;
    color: #adb5bd;
    border: 1px solid #495057;
    padding: 8px 12px;
    border-radius: 20px;
    font-size: 13px;
    font-weight: 600;
    cursor: pointer;
    flex-shrink: 0;
    margin-left: auto;   /* keep the dismiss action separated on the far right */
}

.btn-bulk-cancel:hover[b-sfztc1nyh8] {
    color: #ffffff;
    border-color: #adb5bd;
}

/* Amber accent signals "workflow requests need attention" (matches frozen-day cues) */
.btn-bulk-workflow[b-sfztc1nyh8] {
    background: #ffc107;
    color: #212529;
    border: none;
    padding: 8px 14px;
    border-radius: 20px;
    font-size: 13px;
    font-weight: 700;
    cursor: pointer;
    white-space: nowrap;
    flex-shrink: 0;
}

/* Sections inside the bulk workflow sheet (F-25) */
.workflow-section[b-sfztc1nyh8] {
    padding: 14px 0;
    border-bottom: 1px solid #e9ecef;
}

.workflow-section:last-of-type[b-sfztc1nyh8] {
    border-bottom: none;
}

.workflow-section-title[b-sfztc1nyh8] {
    margin: 0 0 10px;
    font-size: 14px;
    font-weight: 600;
    color: #495057;
}

/* Solid, always-legible action buttons for the bulk workflow sheet (F-25).
   Avoids the transparent text-link look (btn-delete-day) that looked "broken"
   and vanished while disabled during the batch. Each keeps a solid fill and/or
   a border so the dimmed (disabled) state still reads clearly as a button. */
.btn-wf-approve[b-sfztc1nyh8] {
    background: #212529;
    color: #ffffff;
    border: 1px solid #212529;
}

.btn-wf-secondary[b-sfztc1nyh8] {
    background: #e9ecef;
    color: #343a40;
    border: 1px solid #ced4da;
}

.btn-wf-revert[b-sfztc1nyh8] {
    background: #ffc107;
    color: #212529;
    border: 1px solid #e0a800;
}

/* ========== BULK BOTTOM SHEET ========== */

/* Sits above the action bar (210) and normal backdrop (99) */
.bulk-sheet[b-sfztc1nyh8] {
    bottom: 62px;
    max-height: calc(100dvh - 80px);
    overflow-y: auto;
    z-index: 220;
}

@media (min-width: 641px) {
    .bulk-sheet[b-sfztc1nyh8] {
        bottom: 0;
    }
}

.bulk-field-row[b-sfztc1nyh8] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: 6px;
    gap: 8px;
}

.bulk-field-row label:first-child[b-sfztc1nyh8] {
    font-size: 13px;
    font-weight: 600;
    color: #495057;
    margin: 0;
}

/* Clear checkbox label */
.clear-checkbox[b-sfztc1nyh8] {
    display: flex;
    align-items: center;
    gap: 4px;
    font-size: 12px;
    font-weight: 500;
    color: #dc3545;
    cursor: pointer;
    white-space: nowrap;
    flex-shrink: 0;
    user-select: none;
}

.clear-checkbox input[type="checkbox"][b-sfztc1nyh8] {
    accent-color: #dc3545;
    width: 15px;
    height: 15px;
    cursor: pointer;
}

/* Unavailable state: checkbox disabled because field has a value */
.clear-checkbox-unavailable[b-sfztc1nyh8] {
    color: #adb5bd;
    cursor: not-allowed;
}

.clear-checkbox-unavailable input[type="checkbox"][b-sfztc1nyh8] {
    cursor: not-allowed;
}

/* Greyed-out group when scheduled parent not set */
.field-disabled[b-sfztc1nyh8] {
    opacity: 0.4;
    pointer-events: none;
}

/* "Delete all" button inside the scheduled-parent row */
.btn-clear-field[b-sfztc1nyh8] {
    background: #fff0f0;
    color: #dc3545;
    border: 1px solid #fca5a5;
    padding: 4px 10px;
    border-radius: 12px;
    font-size: 12px;
    font-weight: 600;
    cursor: pointer;
    white-space: nowrap;
    flex-shrink: 0;
}

.btn-clear-field:hover[b-sfztc1nyh8] {
    background: #fee2e2;
}

/* Delete-all confirmation alert inside the bulk sheet */
.bulk-delete-alert[b-sfztc1nyh8] {
    background: #fff5f5;
    border: 1px solid #fca5a5;
    border-radius: 12px;
    padding: 16px;
    margin-bottom: 12px;
}

.bulk-delete-alert p[b-sfztc1nyh8] {
    font-size: 14px;
    color: #991b1b;
    margin: 0 0 12px;
    line-height: 1.5;
}

.bulk-delete-actions[b-sfztc1nyh8] {
    display: flex;
    gap: 10px;
}

.btn-delete-confirm[b-sfztc1nyh8] {
    flex: 1;
    padding: 12px;
    border: none;
    border-radius: 8px;
    font-size: 14px;
    font-weight: 700;
    cursor: pointer;
    background: #dc3545;
    color: white;
}

/* ========== NAVIGATION GUARD DIALOG ========== */

.nav-guard-backdrop[b-sfztc1nyh8] {
    position: fixed;
    inset: 0;
    background: rgba(0, 0, 0, 0.55);
    z-index: 300;
}

.nav-guard-dialog[b-sfztc1nyh8] {
    position: fixed;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    background: #ffffff;
    border-radius: 16px;
    padding: 24px 20px;
    max-width: 320px;
    width: calc(100% - 40px);
    box-shadow: 0 8px 32px rgba(0, 0, 0, 0.22);
    z-index: 301;
    text-align: center;
}

.nav-guard-dialog p[b-sfztc1nyh8] {
    font-size: 14px;
    color: #343a40;
    margin: 0 0 8px;
    line-height: 1.5;
}

.nav-guard-actions[b-sfztc1nyh8] {
    display: flex;
    gap: 10px;
    margin-top: 16px;
}
/* /Pages/Leaving.razor.rz.scp.css */
.leaving-container[b-b05ymwepnd] {
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 80vh;
    padding: 20px;
}

.leaving-card[b-b05ymwepnd] {
    background: #fff;
    border: 1px solid #ffe3e3;
    border-radius: 20px;
    box-shadow: 0 4px 16px rgba(0, 0, 0, .05);
    padding: 32px 24px;
    max-width: 420px;
    width: 100%;
    text-align: center;
}

.leaving-icon[b-b05ymwepnd] {
    font-size: 40px;
    display: block;
    margin-bottom: 12px;
}

.leaving-card h2[b-b05ymwepnd] {
    font-size: 20px;
    font-weight: 700;
    color: #212529;
    margin: 0 0 16px;
}

.leaving-text[b-b05ymwepnd] {
    font-size: 14px;
    color: #495057;
    margin: 0 0 12px;
    line-height: 1.5;
}

.leaving-actions[b-b05ymwepnd] {
    display: flex;
    flex-direction: column;
    gap: 10px;
    margin-top: 20px;
}

.leaving-sudo[b-b05ymwepnd] {
    margin-top: 20px;
    text-align: left;
}
/* /Pages/Login.razor.rz.scp.css */
.login-container[b-s6il88vlgs] {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    min-height: 100vh;
    background-color: #f8f9fa;
    padding: 20px;
    font-family: system-ui, -apple-system, sans-serif;
}

/* App version — discreet, below the card (support & PWA deploy check) */
.app-version[b-s6il88vlgs] {
    margin-top: 14px;
    font-size: 11px;
    color: #adb5bd;
    letter-spacing: 0.3px;
}

.login-card[b-s6il88vlgs] {
    background: #ffffff;
    padding: 32px 24px;
    border-radius: 20px;
    box-shadow: 0 4px 16px rgba(0, 0, 0, 0.05);
    width: 100%;
    max-width: 400px;
    text-align: center;
}

.login-header[b-s6il88vlgs] {
    margin-bottom: 28px;
}

.app-icon[b-s6il88vlgs] {
    font-size: 40px;
    margin-bottom: 12px;
}

.login-header h2[b-s6il88vlgs] {
    font-size: 24px;
    font-weight: 700;
    color: #212529;
    margin: 0 0 6px 0;
}

.login-header p[b-s6il88vlgs] {
    font-size: 14px;
    color: #6c757d;
    margin: 0;
}

.form-group[b-s6il88vlgs] {
    margin-bottom: 20px;
    text-align: left;
}

.form-group label[b-s6il88vlgs] {
    font-size: 13px;
    font-weight: 600;
    color: #495057;
    display: block;
    margin-bottom: 6px;
}

.btn-login[b-s6il88vlgs] {
    width: 100%;
    padding: 14px;
    border: none;
    border-radius: 10px;
    font-size: 16px;
    font-weight: 600;
    background-color: #212529;
    color: #ffffff;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    transition: background-color 0.15s;
}

.btn-login:disabled[b-s6il88vlgs] {
    background-color: #868e96;
    cursor: not-allowed;
}

.forgot-link[b-s6il88vlgs] {
    display: inline-block;
    margin-top: 16px;
    font-size: 13px;
    color: #6c757d;
    text-decoration: none;
}

.forgot-link:hover[b-s6il88vlgs] { color: #212529; }

/* F-15: sign-up entry point */
.signup-cta[b-s6il88vlgs] {
    margin-top: 18px;
    padding-top: 16px;
    border-top: 1px solid #e9ecef;
    font-size: 13px;
    color: #6c757d;
}

.signup-cta a[b-s6il88vlgs] {
    color: #212529;
    font-weight: 600;
    text-decoration: none;
}

.signup-cta a:hover[b-s6il88vlgs] { text-decoration: underline; }

/* F-19: Session expiry banner */
.session-expired-banner[b-s6il88vlgs] {
    display: flex;
    align-items: center;
    gap: 10px;
    background: #fffbeb;
    border: 1px solid #f59e0b;
    border-radius: 12px;
    padding: 12px 14px;
    margin-bottom: 20px;
    text-align: left;
    animation: slideDown-b-s6il88vlgs 0.3s ease-out;
}

.session-expired-icon[b-s6il88vlgs] {
    font-size: 20px;
    flex-shrink: 0;
}

.session-expired-text[b-s6il88vlgs] {
    flex: 1;
    font-size: 13px;
    font-weight: 500;
    color: #92400e;
    line-height: 1.4;
}

.session-expired-dismiss[b-s6il88vlgs] {
    background: transparent;
    border: none;
    color: #92400e;
    font-size: 16px;
    cursor: pointer;
    padding: 2px 4px;
    opacity: 0.7;
    flex-shrink: 0;
}

.session-expired-dismiss:hover[b-s6il88vlgs] {
    opacity: 1;
}

@keyframes slideDown-b-s6il88vlgs {
    from { opacity: 0; transform: translateY(-8px); }
    to { opacity: 1; transform: translateY(0); }
}

/* /Pages/Notifications.razor.rz.scp.css */
.notif-tab-badge[b-2poz70l2ke] {
    background: #dc2626;
    color: #ffffff;
    font-size: 10px;
    font-weight: 700;
    padding: 1px 5px;
    border-radius: 10px;
    min-width: 16px;
    text-align: center;
}

.notif-loading[b-2poz70l2ke] {
    display: flex;
    align-items: center;
    gap: 10px;
    justify-content: center;
    color: #6b7280;
    padding: 32px 0;
}

.notif-empty[b-2poz70l2ke] {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 8px;
    padding: 48px 0;
    color: #9ca3af;
    text-align: center;
}

.notif-empty-icon[b-2poz70l2ke] {
    font-size: 40px;
}

.notif-empty p[b-2poz70l2ke] {
    margin: 0;
    font-size: 14px;
}

/* Swap request cards */

.swap-card[b-2poz70l2ke] {
    background: #ffffff;
    border-radius: 12px;
    box-shadow: 0 1px 4px rgba(0,0,0,0.08);
    margin-bottom: 12px;
    overflow: hidden;
}

.swap-card-header[b-2poz70l2ke] {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 12px 14px 8px;
}

.swap-card-date[b-2poz70l2ke] {
    font-size: 15px;
    font-weight: 700;
    color: #212529;
}

.swap-card-body[b-2poz70l2ke] {
    padding: 0 14px 8px;
    display: flex;
    flex-direction: column;
    gap: 6px;
}

.swap-info-row[b-2poz70l2ke] {
    display: flex;
    justify-content: space-between;
    font-size: 13px;
    gap: 8px;
}

.swap-info-label[b-2poz70l2ke] {
    color: #6b7280;
    flex-shrink: 0;
}

.swap-info-value[b-2poz70l2ke] {
    color: #212529;
    font-weight: 500;
    text-align: right;
}

.swap-rejection-reason[b-2poz70l2ke] {
    padding: 4px 14px 8px;
}

.swap-card-actions[b-2poz70l2ke] {
    display: flex;
    gap: 8px;
    padding: 8px 14px 12px;
}

.status-badge[b-2poz70l2ke] {
    font-size: 11px;
    font-weight: 700;
    padding: 3px 10px;
    border-radius: 20px;
}

.status-pending[b-2poz70l2ke]   { background: #fef3c7; color: #92400e; }
.status-approved[b-2poz70l2ke]  { background: #d1fae5; color: #065f46; }
.status-rejected[b-2poz70l2ke]  { background: #fee2e2; color: #991b1b; }
.status-cancelled[b-2poz70l2ke] { background: #f3f4f6; color: #6b7280; }
.status-revert[b-2poz70l2ke]    { background: #ede9fe; color: #5b21b6; }
.status-auto[b-2poz70l2ke]      { background: #e0e7ff; color: #3730a3; }

/* Allows the auto-approved marker to sit next to the status badge */
.status-badges[b-2poz70l2ke] {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    flex-wrap: wrap;
    justify-content: flex-end;
}

.swap-card-urgent[b-2poz70l2ke] {
    border: 1.5px solid #fbbf24;
}

/* F-20: handoff already passed */
.swap-card-overdue[b-2poz70l2ke] {
    border: 1.5px solid #f87171;
}

.swap-urgent-banner[b-2poz70l2ke] {
    background: #fff3cd;
    border: 1px solid #ffc107;
    border-radius: 8px;
    padding: 6px 12px;
    margin: 0 0 10px;
    font-size: 13px;
    font-weight: 600;
    color: #856404;
    text-align: center;
}

.swap-overdue-banner[b-2poz70l2ke] {
    background: #fef2f2;
    border-color: #f87171;
    color: #b91c1c;
}

/* F-20: frozen resolution-time tag shown on history cards */
.status-tag-urgent[b-2poz70l2ke] {
    background: #fff3cd;
    color: #856404;
}

.status-tag-overdue[b-2poz70l2ke] {
    background: #fef2f2;
    color: #b91c1c;
}

.btn-approve[b-2poz70l2ke] {
    flex: 1;
    padding: 10px;
    background: #212529;
    color: #ffffff;
    border: none;
    border-radius: 8px;
    font-size: 14px;
    font-weight: 600;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 6px;
}

.btn-reject[b-2poz70l2ke] {
    flex: 1;
    padding: 10px;
    background: #f3f4f6;
    color: #374151;
    border: none;
    border-radius: 8px;
    font-size: 14px;
    font-weight: 600;
    cursor: pointer;
}

.btn-cancel-req[b-2poz70l2ke] {
    flex: 1;
    padding: 10px;
    background: none;
    color: #dc2626;
    border: 1px solid #fca5a5;
    border-radius: 8px;
    font-size: 14px;
    font-weight: 600;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 6px;
}

.btn-approve:disabled[b-2poz70l2ke],
.btn-reject:disabled[b-2poz70l2ke],
.btn-cancel-req:disabled[b-2poz70l2ke] {
    opacity: 0.55;
    cursor: not-allowed;
}

/* Notification history items */

.notif-item[b-2poz70l2ke] {
    display: flex;
    gap: 12px;
    padding: 12px 0;
    border-bottom: 1px solid #f3f4f6;
}

.notif-item:last-child[b-2poz70l2ke] {
    border-bottom: none;
}

.notif-item-icon[b-2poz70l2ke] {
    font-size: 22px;
    flex-shrink: 0;
    width: 32px;
    text-align: center;
}

.notif-item-content[b-2poz70l2ke] {
    flex: 1;
    min-width: 0;
}

.notif-item-title[b-2poz70l2ke] {
    margin: 0 0 2px;
    font-size: 14px;
    font-weight: 600;
    color: #212529;
}

.notif-item-message[b-2poz70l2ke] {
    margin: 0 0 4px;
    font-size: 13px;
    color: #374151;
    line-height: 1.4;
}

.notif-item-time[b-2poz70l2ke] {
    font-size: 11px;
    color: #9ca3af;
}

.notif-unread .notif-item-title[b-2poz70l2ke] {
    color: #1d4ed8;
}

.notif-unread[b-2poz70l2ke] {
    background: #eff6ff;
    border-radius: 8px;
    padding: 12px 8px;
    margin-bottom: 4px;
    border-bottom: none;
}


/* /Pages/ProfilePage.razor.rz.scp.css */
/* F-16/F-17 — profile page (own + admin view of a member).
   Bottom-nav clearance comes from the global .page-container rule. */

.profile-loading[b-w38dlp7soy] {
    display: flex;
    align-items: center;
    gap: 8px;
    color: #6c757d;
    padding: 24px 0;
}

.profile-back[b-w38dlp7soy] {
    display: inline-block;
    font-size: 14px;
    font-weight: 600;
    color: #495057;
    text-decoration: none;
    margin: 12px 0 4px;
}

.profile-back:hover[b-w38dlp7soy] {
    text-decoration: underline;
}

.profile-header[b-w38dlp7soy] {
    display: flex;
    align-items: center;
    gap: 14px;
    margin-top: 12px;
}

.profile-avatar[b-w38dlp7soy] {
    width: 56px;
    height: 56px;
    border-radius: 50%;
    background: #eef2ff;
    color: #4f46e5;
    font-size: 24px;
    font-weight: 700;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
}

.profile-name[b-w38dlp7soy] {
    margin: 0;
    font-size: 20px;
    color: #1e293b;
}

.profile-you[b-w38dlp7soy] {
    font-size: 13px;
    font-weight: 400;
    color: #6c757d;
    margin-left: 6px;
}

.profile-role[b-w38dlp7soy] {
    font-size: 13px;
    color: #6c757d;
    display: flex;
    align-items: center;
    gap: 8px;
}

.profile-admin-badge[b-w38dlp7soy] {
    font-size: 11px;
    font-weight: 700;
    color: #4f46e5;
    background: #eef2ff;
    border-radius: 999px;
    padding: 2px 8px;
}

.profile-section[b-w38dlp7soy] {
    margin-top: 24px;
}

.section-title[b-w38dlp7soy] {
    font-size: 14px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.4px;
    color: #6c757d;
    margin: 0 0 10px;
}

.profile-card[b-w38dlp7soy] {
    background: #ffffff;
    border: 1px solid #e9ecef;
    border-radius: 14px;
    padding: 16px;
}

.profile-card .btn[b-w38dlp7soy] {
    margin-top: 4px;
}

.profile-hint[b-w38dlp7soy] {
    font-size: 13px;
    color: #6c757d;
    margin: 0 0 12px;
}

.profile-info-banner[b-w38dlp7soy] {
    background: #eff6ff;
    border: 1px solid #bfdbfe;
    color: #1d4ed8;
    border-radius: 10px;
    padding: 10px 12px;
    font-size: 13px;
    margin-bottom: 12px;
}

.profile-actions-row[b-w38dlp7soy] {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    margin-bottom: 12px;
}

.profile-export-btn[b-w38dlp7soy] {
    width: 100%;
}

@media (min-width: 700px) {
    .profile-export-btn[b-w38dlp7soy] {
        width: auto;
    }
}

/* ── S-10: sudo sheet chrome (same pattern as the Home sheets) ── */
.backdrop[b-w38dlp7soy] {
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background: rgba(0, 0, 0, 0.4);
    z-index: 99;
}

.bottom-sheet[b-w38dlp7soy] {
    position: fixed;
    bottom: 62px;
    left: 0;
    right: 0;
    background: #ffffff;
    padding: 24px 20px;
    border-top-left-radius: 24px;
    border-top-right-radius: 24px;
    box-shadow: 0 -4px 16px rgba(0,0,0,0.15);
    z-index: 100;
    max-width: 450px;
    margin: 0 auto;
}

.sheet-handle[b-w38dlp7soy] {
    width: 40px;
    height: 5px;
    background: #dee2e6;
    border-radius: 3px;
    margin: -12px auto 16px auto;
}

/* ── S-11: danger zone (sair da família) ── */
.danger-title[b-w38dlp7soy] {
    color: #c92a2a;
}

.danger-card[b-w38dlp7soy] {
    border: 1px solid #ffc9c9;
    background: #fff5f5;
}

.danger-confirm-text[b-w38dlp7soy] {
    font-size: 14px;
    font-weight: 600;
    color: #c92a2a;
    margin: 0 0 12px;
}

.danger-consequences[b-w38dlp7soy] {
    margin: 0 0 14px;
    padding-left: 20px;
    font-size: 13px;
    color: #495057;
    line-height: 1.5;
}

.danger-consequences li[b-w38dlp7soy] {
    margin-bottom: 6px;
}

/* S-11 PR2: who already responded to the family-deletion request */
.consent-status[b-w38dlp7soy] {
    margin: 0 0 14px;
    padding: 10px 12px;
    list-style: none;
    background: #fff5f5;
    border: 1px solid #ffc9c9;
    border-radius: 10px;
    font-size: 13px;
    color: #495057;
    line-height: 1.6;
}
/* /Pages/Register.razor.rz.scp.css */
.register-container[b-8p4p4kpg8k] {
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 100vh;
    background-color: #f8f9fa;
    padding: 20px;
    font-family: system-ui, -apple-system, sans-serif;
}

.register-card[b-8p4p4kpg8k] {
    background: #ffffff;
    padding: 32px 24px;
    border-radius: 20px;
    box-shadow: 0 4px 16px rgba(0, 0, 0, 0.05);
    width: 100%;
    max-width: 400px;
    text-align: center;
}

.register-header[b-8p4p4kpg8k] {
    margin-bottom: 28px;
}

.app-icon[b-8p4p4kpg8k] {
    font-size: 40px;
    margin-bottom: 12px;
}

.register-header h2[b-8p4p4kpg8k] {
    font-size: 24px;
    font-weight: 700;
    color: #212529;
    margin: 0 0 6px 0;
}

.register-header p[b-8p4p4kpg8k] {
    font-size: 14px;
    color: #6c757d;
    margin: 0;
    line-height: 1.5;
}

.form-group[b-8p4p4kpg8k] {
    margin-bottom: 20px;
    text-align: left;
}

.form-group label[b-8p4p4kpg8k] {
    font-size: 13px;
    font-weight: 600;
    color: #495057;
    display: block;
    margin-bottom: 6px;
}

.form-group input[readonly][b-8p4p4kpg8k] {
    background-color: #f1f3f5;
    color: #6c757d;
}

.field-hint[b-8p4p4kpg8k] {
    display: block;
    font-size: 11px;
    color: #868e96;
    margin-top: 4px;
}

/* F-15: founder picks a role with two large tap targets */
/* F-27: the catalog has 21 roles — a wrapping chip grid replaces the old
   two-button pair (holds at 344px: 2-3 chips per row, natural wrap). */
.role-options[b-8p4p4kpg8k] {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}

.role-option[b-8p4p4kpg8k] {
    padding: 9px 12px;
    border: 2px solid #dee2e6;
    border-radius: 999px;
    background: #ffffff;
    font-size: 14px;
    font-weight: 600;
    color: #495057;
    cursor: pointer;
    transition: border-color 0.15s, background-color 0.15s;
    white-space: nowrap;
}

.role-option.selected[b-8p4p4kpg8k] {
    border-color: #212529;
    background-color: #212529;
    color: #ffffff;
}

.role-option:disabled[b-8p4p4kpg8k] {
    opacity: 0.6;
    cursor: not-allowed;
}

.btn-register[b-8p4p4kpg8k] {
    width: 100%;
    padding: 14px;
    border: none;
    border-radius: 10px;
    font-size: 16px;
    font-weight: 600;
    background-color: #212529;
    color: #ffffff;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    transition: background-color 0.15s;
}

.btn-register:disabled[b-8p4p4kpg8k] {
    background-color: #868e96;
    cursor: not-allowed;
}

.back-link[b-8p4p4kpg8k] {
    display: inline-block;
    margin-top: 16px;
    font-size: 13px;
    color: #6c757d;
    text-decoration: none;
}

.back-link:hover[b-8p4p4kpg8k] { color: #212529; }

/* F-18: LGPD consent checkbox */
.consent-check[b-8p4p4kpg8k] {
    display: flex;
    align-items: flex-start;
    gap: 8px;
    margin: 8px 0 4px;
    font-size: 13px;
    color: #495057;
    line-height: 1.4;
    cursor: pointer;
}

.consent-check input[b-8p4p4kpg8k] {
    margin-top: 2px;
    flex-shrink: 0;
}

.consent-check a[b-8p4p4kpg8k] {
    color: #4f46e5;
    font-weight: 600;
}

.invite-loading[b-8p4p4kpg8k] {
    padding: 12px 0 4px;
}

.invite-loading .spinner-small.dark[b-8p4p4kpg8k] {
    border-color: #ced4da;
    border-top-color: #212529;
}

/* S-11: cross-family migration warning modal */
.migration-backdrop[b-8p4p4kpg8k] {
    position: fixed;
    inset: 0;
    background: rgba(0, 0, 0, 0.5);
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 20px;
    z-index: 1000;
}

.migration-dialog[b-8p4p4kpg8k] {
    background: #ffffff;
    border-radius: 20px;
    padding: 28px 24px;
    width: 100%;
    max-width: 400px;
    text-align: center;
    box-shadow: 0 8px 32px rgba(0, 0, 0, 0.2);
}

.migration-icon[b-8p4p4kpg8k] {
    font-size: 40px;
    margin-bottom: 8px;
}

.migration-dialog h3[b-8p4p4kpg8k] {
    font-size: 20px;
    font-weight: 700;
    color: #212529;
    margin: 0 0 12px 0;
}

.migration-dialog p[b-8p4p4kpg8k] {
    font-size: 14px;
    color: #495057;
    line-height: 1.5;
    margin: 0 0 12px 0;
    text-align: left;
}

.migration-dialog .btn-register.btn-danger[b-8p4p4kpg8k] {
    background-color: #dc2626;
    margin-top: 8px;
}

.migration-dialog .btn-register.btn-danger:disabled[b-8p4p4kpg8k] {
    background-color: #f0a0a0;
}

.btn-secondary[b-8p4p4kpg8k] {
    width: 100%;
    padding: 12px;
    margin-top: 10px;
    border: none;
    border-radius: 10px;
    font-size: 15px;
    font-weight: 600;
    background-color: #f1f3f5;
    color: #495057;
    cursor: pointer;
}

.btn-secondary:disabled[b-8p4p4kpg8k] {
    opacity: 0.6;
    cursor: not-allowed;
}
/* /Pages/ReportsAudit.razor.rz.scp.css */
.filter-card[b-nlcbu1kpap] {
    background: #ffffff;
    border: 1px solid #e9ecef;
    border-radius: 14px;
    padding: 14px;
    margin-bottom: 24px;
    box-shadow: 0 2px 6px rgba(0,0,0,0.02);
}

.filter-selectors[b-nlcbu1kpap] {
    display: flex;
    gap: 8px;
}

.form-control-filter[b-nlcbu1kpap] {
    flex: 1;
    padding: 10px;
    border: 1px solid #ced4da;
    border-radius: 8px;
    font-size: 14px;
    background-color: #f8f9fa;
}

.btn-search[b-nlcbu1kpap] {
    background: #212529;
    color: white;
    border: none;
    padding: 0 16px;
    border-radius: 8px;
    font-size: 14px;
    font-weight: 600;
    cursor: pointer;
}

.load-more-row[b-nlcbu1kpap] {
    display: flex;
    justify-content: center;
    padding: 8px 0 4px;
}

.btn-load-more[b-nlcbu1kpap] {
    display: flex;
    align-items: center;
    gap: 8px;
    background: #f1f3f5;
    color: #495057;
    border: 1px solid #dee2e6;
    padding: 10px 24px;
    border-radius: 20px;
    font-size: 13px;
    font-weight: 600;
    cursor: pointer;
    transition: background 0.15s;
}

.btn-load-more:hover:not(:disabled)[b-nlcbu1kpap] {
    background: #e9ecef;
    color: #212529;
}

.btn-load-more:disabled[b-nlcbu1kpap] {
    opacity: 0.6;
    cursor: default;
}

.timeline-container[b-nlcbu1kpap] {
    display: flex;
    flex-direction: column;
    gap: 16px;
    position: relative;
    padding-left: 12px;
}

    .timeline-container[b-nlcbu1kpap]::before {
        content: '';
        position: absolute;
        left: 29px;
        top: 10px;
        bottom: 10px;
        width: 2px;
        background: #e9ecef;
    }

.timeline-item[b-nlcbu1kpap] {
    display: flex;
    gap: 12px;
    position: relative;
}

.timeline-badge[b-nlcbu1kpap] {
    width: 36px;
    height: 36px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 16px;
    z-index: 1;
    background: white;
    box-shadow: 0 0 0 3px white;
    border: 2px solid #ced4da;
    flex-shrink: 0;
}

.badge-create[b-nlcbu1kpap] {
    border-color: #10b981;
    color: #10b981;
}

.badge-update[b-nlcbu1kpap] {
    border-color: #f59e0b;
    color: #f59e0b;
}

.badge-delete[b-nlcbu1kpap] {
    border-color: #ef4444;
    color: #ef4444;
}

.diff-list[b-nlcbu1kpap] {
    list-style: none;
    margin: 6px 0 8px 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: 4px;
}

.diff-item[b-nlcbu1kpap] {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 4px;
    font-size: 12px;
    line-height: 1.4;
}

.diff-label[b-nlcbu1kpap] {
    font-weight: 700;
    color: #495057;
    min-width: fit-content;
}

.diff-label[b-nlcbu1kpap]::after {
    content: ':';
}

.diff-old[b-nlcbu1kpap] {
    background: #fee2e2;
    color: #991b1b;
    padding: 1px 6px;
    border-radius: 4px;
    text-decoration: line-through;
    white-space: nowrap;
}

.diff-arrow[b-nlcbu1kpap] {
    color: #adb5bd;
    font-size: 11px;
    flex-shrink: 0;
}

.diff-new[b-nlcbu1kpap] {
    background: #dcfce7;
    color: #166534;
    padding: 1px 6px;
    border-radius: 4px;
    white-space: nowrap;
}

.timeline-content[b-nlcbu1kpap] {
    flex: 1;
    background: #ffffff;
    border: 1px solid #e9ecef;
    padding: 12px;
    border-radius: 12px;
}

.timeline-date[b-nlcbu1kpap] {
    font-size: 11px;
    font-weight: 700;
    color: #6c757d;
}

.timeline-desc[b-nlcbu1kpap] {
    margin: 4px 0;
    font-size: 13px;
    color: #212529;
    line-height: 1.4;
}

.timeline-timestamp[b-nlcbu1kpap] {
    font-size: 10px;
    color: #adb5bd;
    display: block;
    text-align: right;
}

.empty-logs[b-nlcbu1kpap] {
    display: none;
}

.timeline-container .empty-state[b-nlcbu1kpap] {
    background: #ffffff;
    border: 1px solid #e9ecef;
    border-radius: 14px;
    padding: 40px 24px;
}

.loading-box[b-nlcbu1kpap] {
    display: none;
}

.spinner[b-nlcbu1kpap] {
    display: none;
}

.skel-audit[b-nlcbu1kpap] {
    display: flex;
    flex-direction: column;
    gap: 12px;
    margin-top: 4px;
}

.skel-timeline-item[b-nlcbu1kpap] {
    display: flex;
    gap: 12px;
    align-items: flex-start;
}

.skel-badge[b-nlcbu1kpap] {
    width: 36px !important;
    height: 36px !important;
    border-radius: 50% !important;
    flex-shrink: 0;
}

.skel-timeline-body[b-nlcbu1kpap] {
    flex: 1;
    background: #f8f9fa;
    border-radius: 12px;
    padding: 12px;
    display: flex;
    flex-direction: column;
    gap: 7px;
}

.skel-audit-date[b-nlcbu1kpap] {
    height: 11px !important;
    width: 38% !important;
}

.skel-audit-desc[b-nlcbu1kpap] {
    height: 13px !important;
    width: 80% !important;
}

.skel-audit-ts[b-nlcbu1kpap] {
    height: 10px !important;
    width: 45% !important;
    align-self: flex-end;
}


/* /Pages/ReportsSummary.razor.rz.scp.css */
.filter-card[b-gkc2cf9j5s] {
    background: #ffffff;
    border: 1px solid #e9ecef;
    border-radius: 14px;
    padding: 14px;
    margin-bottom: 24px;
    box-shadow: 0 2px 6px rgba(0,0,0,0.02);
}

.filter-selectors[b-gkc2cf9j5s] {
    display: flex;
    gap: 8px;
}

.form-control-filter[b-gkc2cf9j5s] {
    flex: 1;
    padding: 10px;
    border: 1px solid #ced4da;
    border-radius: 8px;
    font-size: 14px;
    background-color: #f8f9fa;
}

.btn-search[b-gkc2cf9j5s] {
    background: #212529;
    color: white;
    border: none;
    padding: 0 16px;
    border-radius: 8px;
    font-size: 14px;
    font-weight: 600;
    cursor: pointer;
}

.stats-grid[b-gkc2cf9j5s] {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 12px;
    margin-bottom: 12px;
}

.stats-card[b-gkc2cf9j5s] {
    padding: 16px;
    border-radius: 14px;
    border: 1px solid transparent;
}

    .stats-card h4[b-gkc2cf9j5s] {
        margin: 0 0 10px 0;
        font-size: 15px;
        font-weight: 700;
    }

.stat-row[b-gkc2cf9j5s] {
    display: flex;
    justify-content: space-between;
    font-size: 13px;
    margin-bottom: 4px;
    color: #495057;
}

    .stat-row strong[b-gkc2cf9j5s] {
        color: #212529;
    }

    .stat-row .highlight[b-gkc2cf9j5s] {
        font-size: 15px;
        font-weight: 700;
    }

/* S-11 QA: inactive/departed member (gray, hatched). */
.role-0-card[b-gkc2cf9j5s] {
    background: repeating-linear-gradient(90deg, #f1f3f5 0 6px, #e3e5e8 6px 12px);
    border-color: #ced4da;
    color: #6c757d;
}

.role-1-card[b-gkc2cf9j5s] {
    background: #dbeafe;
    border-color: #93c5fd;
    color: #1e3a8a;
}

.role-2-card[b-gkc2cf9j5s] {
    background: #ffe4e6;
    border-color: #fda4af;
    color: #881337;
}

.role-3-card[b-gkc2cf9j5s] {
    background: #ccfbf1;
    border-color: #5eead4;
    color: #134e4a;
}

/* Orange — aligned with role-4-day (this card had drifted to yellow) */
.role-4-card[b-gkc2cf9j5s] {
    background: #fed7aa;
    border-color: #ea580c;
    color: #7c2d12;
}

.swaps-summary[b-gkc2cf9j5s] {
    background: #fef3c7;
    border: 1px solid #fde68a;
    color: #92400e;
    padding: 12px;
    border-radius: 10px;
    font-size: 13px;
    font-weight: 500;
    text-align: center;
}

.loading-box[b-gkc2cf9j5s] {
    display: none;
}

.spinner[b-gkc2cf9j5s] {
    display: none;
}

.summary-empty-state[b-gkc2cf9j5s] {
    background: #ffffff;
    border: 1px solid #e9ecef;
    border-radius: 14px;
    padding: 40px 24px;
    margin-top: 4px;
}

.skel-reports[b-gkc2cf9j5s] {
    display: flex;
    flex-direction: column;
    gap: 12px;
    margin-top: 4px;
}

.skel-stats-grid[b-gkc2cf9j5s] {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 12px;
}

.skel-stats-card[b-gkc2cf9j5s] {
    padding: 16px;
    border-radius: 14px;
    background: #f1f3f5;
    display: flex;
    flex-direction: column;
    gap: 10px;
}

.skel-total-card[b-gkc2cf9j5s] {
    grid-column: span 2;
}

.skel-rpt-title[b-gkc2cf9j5s] {
    height: 18px !important;
    width: 40% !important;
    margin-bottom: 4px;
}

.skel-stat-row[b-gkc2cf9j5s] {
    display: flex;
    justify-content: space-between;
    align-items: center;
}

.skel-rpt-label[b-gkc2cf9j5s] {
    height: 13px !important;
    width: 55% !important;
}

.skel-rpt-value[b-gkc2cf9j5s] {
    height: 16px !important;
    width: 28% !important;
}

@keyframes spin-b-gkc2cf9j5s {
    from { transform: rotate(0deg); }
    to   { transform: rotate(360deg); }
}
