/* RF-08.3 compatibility prefix: shared/feature rules from app.css retain
   their original order before previously extracted component owners.
   Legacy building-context hooks remain here because their later layout.css
   overrides are part of the accepted shell cascade. */
/* Product tour: a single dim layer, local opaque spotlight and top-layer card. */
.tour-backdrop {
    position: fixed;
    inset: 0;
    background: rgba(15, 23, 42, 0.42);
    z-index: 1200;
    cursor: pointer;
}



.tour-step { position: relative; }


.tour-step--active {
    z-index: 1201;
    border-radius: 10px;
    overflow: visible;
    background-color: var(--mud-palette-surface, #fff);
    box-shadow: 0 0 0 3px rgba(255, 255, 255, 0.95), 0 8px 24px rgba(15, 23, 42, 0.16);
}


.mud-table .tour-step, .lgrid .tour-step { display: inline-block; }


.mud-table td:has(.tour-step--active .building-tour-actions-target) {
    position: relative;
    z-index: 1201;
}


.ledger-workspace .lgrid .lgrid__cell:has(> .tour-step--active) { filter: none; }



/* Manual popover escapes ancestor clipping without moving Blazor-owned DOM.
   Fixed centered defaults remain usable while measured placement initializes. */
.tour-callout {
    position: fixed;
    inset: auto;
    top: var(--tour-y, 30vh);
    left: var(--tour-x, calc(50vw - 170px));
    margin: 0;
    z-index: 1300;
    width: var(--tour-width, min(340px, calc(100vw - 32px)));
    max-height: var(--tour-max-height, calc(100dvh - 32px));
    box-sizing: border-box;
    border: 1px solid var(--mud-palette-lines-default, #e5e7eb);
    border-top: 4px solid var(--mud-palette-primary, #417456);
    border-radius: 18px;
    background: var(--mud-palette-surface, #fff);
    color: var(--mud-palette-text-primary, #1f2933);
    box-shadow: 0 18px 54px rgba(15, 23, 42, 0.22);
    padding: 16px 20px 20px;
    display: flex;
    flex-direction: column;
    gap: 12px;
    overflow: visible;
}


.tour-callout[popover]:not(:popover-open) { display: none; }


.tour-callout::backdrop { background: transparent; pointer-events: none; }


.tour-callout::before {
    content: '';
    position: absolute;
    width: 12px;
    height: 12px;
    background: var(--mud-palette-surface, #fff);
    transform: rotate(45deg);
    border: 1px solid var(--mud-palette-lines-default, #e5e7eb);
    z-index: -1;
}


.tour-callout[data-placement="bottom"]::before { top: -8px; left: calc(var(--tour-arrow-x) - 6px); border-right: 0; border-bottom: 0; }


.tour-callout[data-placement="top"]::before { bottom: -7px; left: calc(var(--tour-arrow-x) - 6px); border-left: 0; border-top: 0; }


.tour-callout[data-placement="right"]::before { left: -7px; top: calc(var(--tour-arrow-y) - 6px); border-right: 0; border-top: 0; }


.tour-callout[data-placement="left"]::before { right: -7px; top: calc(var(--tour-arrow-y) - 6px); border-left: 0; border-bottom: 0; }


.tour-callout:not([data-placement])::before, .tour-callout[data-placement="inside"]::before { display: none; }


.tour-callout__header { display: flex; align-items: center; justify-content: space-between; flex-shrink: 0; gap: 12px; }


.tour-callout__counter {
    font-size: 0.8rem;
    font-weight: 700;
    color: var(--mud-palette-primary, #417456);
    border-radius: 999px;
    background: var(--mud-palette-primary-hover, #edf3ee);
    padding: 6px 12px;
    font-variant-numeric: tabular-nums;
}


.tour-callout__close {
    background: transparent;
    border: none;
    border-radius: 50%;
    width: 44px;
    height: 44px;
    flex-shrink: 0;
    font-size: 1.5rem;
    line-height: 1;
    color: var(--mud-palette-text-secondary, #555);
    cursor: pointer;
}


.tour-callout__close:hover { background: var(--mud-palette-action-default-hover, rgba(0,0,0,.05)); }


.tour-callout__progress { height: 4px; background: var(--mud-palette-lines-default, #e5e7eb); border-radius: 4px; overflow: hidden; flex-shrink: 0; }


.tour-callout__progress span { display: block; height: 100%; background: var(--mud-palette-primary, #417456); border-radius: inherit; }


.tour-callout__title { margin: 0; font-size: 1.05rem; font-weight: 700; line-height: 1.4; flex-shrink: 0; }


.tour-callout__body { margin: 0; font-size: .9rem; line-height: 1.65; color: var(--mud-palette-text-secondary, #555); min-height: 0; overflow-y: auto; overflow-wrap: anywhere; }


.tour-callout__footer { display: flex; align-items: center; gap: 12px; padding-top: 8px; border-top: 1px solid var(--mud-palette-lines-default, #e5e7eb); flex-shrink: 0; }


.tour-callout__spacer { flex: 1; }


.tour-btn { border: 1px solid transparent; border-radius: 10px; min-height: 44px; padding: 9px 18px; font-size: .85rem; font-weight: 700; cursor: pointer; }


.tour-btn--primary { background: var(--mud-palette-primary, #417456); color: var(--mud-palette-primary-text, #fff); }


.tour-btn--primary:hover { background: var(--mud-palette-primary-darken, #315840); }


.tour-btn--ghost { background: transparent; color: var(--mud-palette-text-primary, #1f2933); border-color: var(--mud-palette-lines-default, #e5e7eb); }


.tour-btn--ghost:hover { background: var(--mud-palette-action-default-hover, rgba(0,0,0,.05)); }


.tour-btn:focus-visible, .tour-callout__close:focus-visible { outline: 3px solid var(--mud-palette-primary, #417456); outline-offset: 3px; }



/* End product tour */


@keyframes tx-flash {
    0%   { background-color: rgba(134, 239, 172, 0.35); }
    70%  { background-color: rgba(134, 239, 172, 0.35); }
    100% { background-color: transparent; }
}



@keyframes urbanis-loading-pulse {
    0% {
        transform: scale(0.92);
        opacity: 0.55;
    }
    100% {
        transform: scale(1.08);
        opacity: 1;
    }
}



.page-stack {
    gap: 1.25rem;
}



.page-grid {
    min-height: calc(100vh - 12rem);
    align-items: center;
}



.page-card {
    padding: 1.5rem;
    border: 1px solid rgba(23, 59, 50, 0.08);
    border-radius: 24px;
    background: rgba(255, 253, 249, 0.9);
}



.access-result-detail-section {
    padding: 0.75rem;
    border-radius: 10px;
    background: var(--mud-palette-background-gray);
}



.access-result-detail-section > .mud-typography-overline:first-child {
    display: block;
    margin-bottom: 0.35rem;
}



.access-result-manage-action {
    width: 100%;
}



.hero-card {
    max-width: 48rem;
}



.hero-copy {
    max-width: 36rem;
}



.auth-card,
.profile-card {
    max-width: 32rem;
}



.state-card {
    max-width: 34rem;
    margin: 0 auto;
    text-align: center;
}



.urbanis-dashboard {
    --urbanis-dashboard-border: rgba(23, 59, 50, 0.08);
}



.urbanis-dashboard-hero {
    width: 100%;
    background: linear-gradient(135deg, #f5f1e8 0%, #e6efe9 100%);
    border-color: var(--urbanis-dashboard-border);
}



.urbanis-dashboard-hero__copy {
    max-width: 44rem;
}



.urbanis-dashboard-section {
    display: grid;
    gap: 0.85rem;
}



.urbanis-dashboard-section__header {
    display: inline-flex;
    align-items: center;
    gap: 0.55rem;
    min-height: 2.25rem;
    color: #173b32;
}



.urbanis-dashboard-card {
    height: 100%;
    min-height: 13rem;
    border-color: var(--urbanis-dashboard-border);
}



.urbanis-dashboard-card .mud-button-root {
    align-self: flex-start;
    min-width: 6.5rem;
}



.urbanis-dashboard-card--primary {
    background: linear-gradient(180deg, rgba(232, 244, 253, 0.78), rgba(255, 253, 249, 0.96));
}



.urbanis-dashboard-card--warm {
    background: linear-gradient(180deg, rgba(255, 247, 237, 0.88), rgba(255, 253, 249, 0.96));
}



.urbanis-dashboard-card--success {
    background: linear-gradient(180deg, rgba(240, 253, 244, 0.84), rgba(255, 253, 249, 0.96));
}



.urbanis-dashboard-card--teal {
    background: linear-gradient(180deg, rgba(236, 253, 245, 0.76), rgba(255, 253, 249, 0.96));
}



.urbanis-dashboard-card--annual {
    background: linear-gradient(180deg, rgba(254, 242, 242, 0.76), rgba(255, 253, 249, 0.96));
}



.urbanis-dashboard-card--resident {
    background: linear-gradient(180deg, rgba(250, 245, 255, 0.82), rgba(255, 253, 249, 0.96));
}



.urbanis-dashboard-card--info {
    background: linear-gradient(180deg, rgba(240, 249, 255, 0.84), rgba(255, 253, 249, 0.96));
}



.urbanis-dashboard-card--neutral {
    background: linear-gradient(180deg, rgba(248, 250, 252, 0.88), rgba(255, 253, 249, 0.96));
}



.demo-card {
    max-width: 24rem;
}



.weather-table {
    border-radius: 24px;
    overflow: hidden;
    background: rgba(255, 253, 249, 0.9);
}



.urbanis-building-context-group {
    display: inline-flex;
    align-items: center;
    gap: 0.25rem;
    min-width: 0;
    max-width: 100%;
}



.urbanis-building-context-menu {
    min-width: 0;
}



.urbanis-building-context-popover {
    width: clamp(14rem, 32vw, 360px) !important;
    max-width: calc(100vw - 1rem) !important;
}



.urbanis-building-context-popover .mud-list {
    box-sizing: border-box !important;
    width: 100% !important;
    min-width: 0 !important;
}



.urbanis-building-context-option {
    box-sizing: border-box !important;
    display: flex;
    align-items: stretch;
    gap: 0.25rem;
    width: 100% !important;
    min-width: 0 !important;
}



.urbanis-building-context-option--selected {
    background: rgba(var(--mud-palette-primary-rgb), 0.08);
}



.urbanis-building-option-select.mud-list-item,
.urbanis-building-option-select .mud-list-item-clickable,
.urbanis-building-option-select .mud-list-item-text,
.urbanis-building-option-select .mud-list-item-text > * {
    box-sizing: border-box !important;
    width: 100% !important;
    min-width: 0 !important;
}



.urbanis-building-option-select.mud-list-item {
    flex: 1 1 auto;
    border-radius: 0;
}



/* Building rows own their checkmark column; the Create building icon must not indent them. */
.urbanis-building-context-popover:not(.phone-building-menu) .urbanis-building-option-select .mud-menu-item-text {
    margin-inline-start: 0 !important;
}



.urbanis-building-option {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    width: 100%;
    min-width: 0;
}



.urbanis-building-option__copy {
    flex: 1 1 auto;
    min-width: 0;
}



.urbanis-building-option__actions {
    display: inline-flex;
    align-items: center;
    gap: 0.125rem;
    flex: 0 0 auto;
    padding-right: 0.25rem;
}



.urbanis-building-option__action.mud-icon-button {
    width: 1.875rem;
    height: 1.875rem;
    padding: 0.25rem;
}



@media (max-width: 959.98px) {
    .urbanis-building-context-popover {
        width: min(64vw, 17rem) !important;
    }
}



@media (max-width: 420px) {
    .urbanis-building-context-popover {
        width: min(74vw, 17rem) !important;
    }
}



.mud-snackbar-container .mud-snackbar {
    border-radius: 12px;
}



@media (max-width: 767.98px) {
    .mud-snackbar-location-top-right,
    .mud-snackbar-location-top-center {
        top: calc(3.75rem + env(safe-area-inset-top)) !important;
        right: auto !important;
        left: 50% !important;
        width: calc(100vw - 1.5rem);
        max-width: 34rem;
        transform: translateX(-50%);
        align-items: stretch;
    }

    .mud-snackbar-location-top-right .mud-snackbar,
    .mud-snackbar-location-top-center .mud-snackbar {
        width: 100%;
        max-width: none;
        margin-inline: 0;
    }
}



.status-bar-safe-area {
    display: none;
}



@supports (-webkit-touch-callout: none) {
    .status-bar-safe-area {
        display: flex;
        position: sticky;
        top: 0;
        height: env(safe-area-inset-top);
        background-color: #fffdf9;
        width: 100%;
        z-index: 1;
    }

    .mud-drawer,
    .urbanis-brand {
        padding-left: env(safe-area-inset-left);
    }
}





.urbanis-active-edit-surface {
    background: rgba(245, 158, 11, 0.09);
    box-shadow: inset 3px 0 0 var(--mud-palette-primary);
}



.urbanis-loading-shell {
    display: flex;
    align-items: center;
    justify-content: center;
}



.urbanis-loading-shell--context {
    flex: 1;
    min-height: 8rem;
    width: 100%;
}



.urbanis-loading-shell--fullscreen {
    min-height: 100vh;
    width: 100%;
    padding: 2rem;
    background:
        radial-gradient(circle at top, rgba(27, 77, 62, 0.08), transparent 42%),
        linear-gradient(180deg, rgba(245, 241, 232, 0.75) 0%, rgba(255, 253, 249, 1) 100%);
}



.urbanis-loading-indicator {
    position: relative;
    display: inline-flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 0.75rem;
    text-align: center;
}



.urbanis-loading-shell--fullscreen .urbanis-loading-indicator {
    min-width: min(22rem, 100%);
    padding: 2rem 2.25rem;
    border: 1px solid rgba(23, 59, 50, 0.08);
    border-radius: 28px;
    background: rgba(255, 253, 249, 0.92);
    box-shadow: 0 24px 48px rgba(23, 59, 50, 0.1);
}



.urbanis-loading-shell--context .urbanis-loading-indicator {
    padding: 1rem 1.25rem;
}



.urbanis-loading-indicator__halo {
    position: absolute;
    width: 4.25rem;
    height: 4.25rem;
    border-radius: 999px;
    background: radial-gradient(circle, rgba(27, 77, 62, 0.16) 0%, rgba(245, 158, 11, 0.12) 42%, transparent 72%);
    animation: urbanis-loading-pulse 1.4s ease-in-out infinite alternate;
}



.urbanis-loading-shell--context .urbanis-loading-indicator__halo {
    width: 3rem;
    height: 3rem;
}



.urbanis-loading-indicator__spinner {
    position: relative;
    z-index: 1;
}



.urbanis-loading-indicator__label {
    position: relative;
    z-index: 1;
    color: #4b5563;
    font-weight: 600;
}



.urbanis-relation-card {
    border: 1px solid rgba(0, 0, 0, 0.06);
}



.urbanis-relation-card--active {
    border-color: var(--mud-palette-primary);
    background: rgba(25, 118, 210, 0.06);
}



@media (max-width: 767.98px) {
    .page-card {
        padding: 1rem;
        border-radius: 16px;
    }
}



.urbanis-mobile-page-header {
    gap: 0.25rem;
}



.urbanis-mobile-page-header .mud-typography-h4 {
    font-size: 1.45rem;
    line-height: 1.2;
}



.urbanis-mobile-filter-row {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
    gap: 0.75rem;
    align-items: end;
}



.urbanis-mobile-filter-row > * {
    min-width: 0;
}



.urbanis-mobile-filter-row .mud-input-control {
    margin-top: 0;
    min-width: 0;
}



.urbanis-building-selector-header {
    min-width: 0;
}



.urbanis-building-count-chip {
    flex-shrink: 0;
}



@media (max-width: 380px) {
    .urbanis-building-selector-header .mud-typography-h6 {
        font-size: 1rem;
    }
}



.urbanis-mobile-action-bar {
    position: sticky;
    top: 0;
    z-index: 2;
    margin-inline: -1rem;
    padding: 0.75rem 1rem;
    background: rgba(255, 253, 249, 0.96);
    backdrop-filter: blur(8px);
    border-bottom: 1px solid rgba(23, 59, 50, 0.08);
}



.urbanis-mobile-snap-row {
    display: flex;
    gap: 0.6rem;
    overflow-x: auto;
    scroll-snap-type: x mandatory;
    scroll-behavior: smooth;
    -webkit-overflow-scrolling: touch;
    padding: 0.1rem 17vw 0.25rem 0;
    scrollbar-width: none;
}



.urbanis-mobile-snap-row::-webkit-scrollbar {
    display: none;
}



.urbanis-mobile-snap-card {
    flex: 0 0 clamp(12.5rem, 66vw, 15.75rem);
    min-width: 0;
    scroll-snap-align: center;
    border: 1px solid rgba(23, 59, 50, 0.10);
    border-radius: 16px;
    background: rgba(255, 253, 249, 0.94);
}



.urbanis-mobile-snap-card:first-child {
    scroll-snap-align: start;
}



.urbanis-mobile-snap-card.pa-3 {
    padding: 0.7rem !important;
}



.urbanis-mobile-snap-card .mud-typography-subtitle2,
.urbanis-mobile-snap-card .mud-typography-caption {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}



.urbanis-mobile-snap-card--selected {
    border-color: var(--mud-palette-primary);
    background: color-mix(in srgb, var(--mud-palette-primary) 11%, white);
    box-shadow: inset 0 0 0 1px var(--mud-palette-primary);
}



.urbanis-mobile-segmented {
    display: flex;
    gap: 0.35rem;
    overflow-x: auto;
    padding: 0.25rem;
    border: 1px solid rgba(23, 59, 50, 0.10);
    border-radius: 999px;
    background: rgba(23, 59, 50, 0.04);
    scrollbar-width: none;
}



.urbanis-mobile-segmented::-webkit-scrollbar {
    display: none;
}



.urbanis-mobile-segment {
    min-height: 40px;
    padding: 0.45rem 0.85rem;
    border: 0;
    border-radius: 999px;
    background: transparent;
    color: #374151;
    white-space: nowrap;
    font: inherit;
    font-size: 0.875rem;
    font-weight: 600;
}



.urbanis-mobile-segment--active {
    background: #fffdf9;
    color: var(--mud-palette-primary);
    box-shadow: 0 1px 4px rgba(23, 59, 50, 0.12);
}



.urbanis-mobile-card-list {
    display: grid;
    gap: 0.75rem;
}



.urbanis-mobile-record-card {
    width: 100%;
    min-width: 0;
    box-sizing: border-box;
    overflow: hidden;
    padding: 1rem;
    border: 1px solid rgba(23, 59, 50, 0.10);
    border-radius: 16px;
    background: rgba(255, 253, 249, 0.94);
}



.urbanis-mobile-record-card > .mud-stack {
    min-width: 0;
}



.urbanis-mobile-record-card--active {
    border-color: var(--mud-palette-primary);
    box-shadow: inset 3px 0 0 var(--mud-palette-primary);
}



.spendings-mobile-expense-card__header {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 0.75rem;
    min-width: 0;
}



.spendings-mobile-expense-card__identity {
    flex: 1 1 auto;
    min-width: 0;
}



.spendings-mobile-expense-card__title,
.spendings-mobile-expense-card__meta {
    overflow-wrap: anywhere;
}



.spendings-mobile-expense-card__meta {
    color: var(--mud-palette-text-secondary);
}



.spendings-mobile-expense-card__header-actions {
    display: flex;
    flex: 0 0 auto;
    align-items: center;
    gap: 0.15rem;
    min-width: 0;
}



.spendings-mobile-expense-card__amount {
    color: var(--mud-palette-primary);
    font-weight: 700;
    white-space: nowrap;
}



.spendings-mobile-expense-card__scope {
    display: flex;
    flex-wrap: wrap;
    gap: 0.45rem;
    min-width: 0;
}



.spendings-mobile-expense-card__scope .mud-chip {
    max-width: 100%;
    height: auto;
    min-height: 2rem;
}



.spendings-mobile-expense-card__scope .mud-chip-content {
    padding-block: 0.3rem;
    overflow-wrap: anywhere;
    white-space: normal;
}



.spendings-mobile-expense-card__description {
    display: flex;
    align-items: flex-start;
    gap: 0.55rem;
    min-width: 0;
    padding: 0.7rem 0.75rem;
    border-left: 3px solid color-mix(in srgb, var(--mud-palette-primary) 55%, transparent);
    border-radius: 0 10px 10px 0;
    background: color-mix(in srgb, var(--mud-palette-primary) 5%, transparent);
    color: var(--mud-palette-text-secondary);
}



.spendings-mobile-expense-card__description .mud-typography {
    min-width: 0;
    overflow-wrap: anywhere;
}



.urbanis-mobile-kpi-row {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 0.5rem;
}



.urbanis-mobile-kpi {
    padding: 0.75rem;
    border: 1px solid rgba(23, 59, 50, 0.08);
    border-radius: 12px;
    background: rgba(255, 255, 255, 0.72);
}



.urbanis-mobile-month-strip,
.urbanis-mobile-chip-strip {
    display: flex;
    gap: 0.5rem;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: none;
}



.urbanis-mobile-month-strip {
    min-width: 0;
    max-width: 100%;
    box-sizing: border-box;
    scroll-snap-type: x mandatory;
}



.urbanis-mobile-month-strip--five {
    width: 100%;
    max-width: 19.25rem;
}



.urbanis-mobile-month-strip--twelve {
    width: 100%;
    max-width: 100%;
    padding-block: 0.05rem;
}



.urbanis-mobile-month-strip::-webkit-scrollbar,
.urbanis-mobile-chip-strip::-webkit-scrollbar {
    display: none;
}



.urbanis-mobile-month-chip-wrap {
    position: relative;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex: 0 0 3.45rem;
    scroll-snap-align: center;
    padding-block: 0.5rem;
}



.urbanis-mobile-month-chip {
    position: relative;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 3.15rem;
    min-height: 28px;
    border: 1px solid rgba(23, 59, 50, 0.18);
    border-radius: 999px;
    background: var(--mud-palette-surface);
    color: var(--mud-palette-text-primary);
    font-size: 0.75rem;
    font-weight: 600;
    line-height: 1;
}



.urbanis-mobile-month-chip--paid {
    border-color: color-mix(in srgb, var(--mud-palette-success) 62%, transparent);
    color: var(--mud-palette-success);
}



.urbanis-mobile-month-chip--partial {
    border-color: color-mix(in srgb, var(--mud-palette-warning) 66%, transparent);
    color: var(--mud-palette-warning);
}



.urbanis-mobile-month-chip--unpaid {
    border-color: color-mix(in srgb, var(--mud-palette-error) 62%, transparent);
    color: var(--mud-palette-error);
}



.urbanis-mobile-month-chip--empty {
    opacity: 0.35;
}



.urbanis-mobile-month-chip__label {
    display: inline-flex;
    align-items: center;
    justify-content: center;
}



.urbanis-mobile-show-more {
    padding-top: 0.25rem;
}



.urbanis-mobile-record-primary-action {
    margin-top: 0.25rem;
    min-height: 44px;
}



.urbanis-mobile-row-actions {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0.5rem;
}



.urbanis-mobile-row-actions .mud-button-root {
    min-width: 0;
    min-height: 44px;
}



.urbanis-mobile-row-action--wide {
    grid-column: 1 / -1;
}



.urbanis-mobile-current-marker {
    position: absolute;
    left: 50%;
    width: 0;
    height: 0;
    transform: translateX(-50%);
    border-left: 5px solid transparent;
    border-right: 5px solid transparent;
}



.urbanis-mobile-current-marker--top {
    top: 0;
    border-top: 6px solid var(--urbanis-mobile-month-status-color, var(--mud-palette-primary));
}



.urbanis-mobile-current-marker--bottom {
    bottom: 0;
    border-bottom: 6px solid var(--urbanis-mobile-month-status-color, var(--mud-palette-primary));
}



.urbanis-mobile-month-button,
.urbanis-mobile-chip-button {
    min-height: 44px;
    min-width: 64px;
    padding: 0.45rem 0.75rem;
    border: 1px solid rgba(23, 59, 50, 0.10);
    border-radius: 999px;
    background: #fffdf9;
    color: #374151;
    font: inherit;
    font-size: 0.85rem;
    font-weight: 600;
    white-space: nowrap;
}



.urbanis-mobile-month-button--active,
.urbanis-mobile-chip-button--active {
    border-color: var(--mud-palette-primary);
    background: color-mix(in srgb, var(--mud-palette-primary) 13%, white);
    color: var(--mud-palette-primary);
}



.urbanis-mobile-grid-two {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0.5rem;
}



@media (max-width: 767.98px) {
    .urbanis-main {
        padding: 0;
    }

    .urbanis-content {
        min-height: calc(100vh - 3.5rem);
        padding: 0.75rem 0.75rem calc(4.5rem + env(safe-area-inset-bottom));
        border: 0;
        border-radius: 0;
        box-shadow: none;
        background: rgba(255, 253, 249, 0.9);
    }

    .mud-container.urbanis-content-shell {
        max-width: 100%;
        padding-left: 0;
        padding-right: 0;
    }
}



.annual-reports-hero {
    position: relative;
    overflow: hidden;
    background:
        radial-gradient(circle at top left, rgba(27, 94, 32, 0.16), transparent 28%),
        radial-gradient(circle at bottom right, rgba(2, 136, 209, 0.18), transparent 32%),
        linear-gradient(135deg, #f7efe1 0%, #fcfaf5 42%, #eef7f5 100%);
}



.annual-reports-orbit {
    position: relative;
    min-height: 220px;
    display: flex;
    align-items: center;
    justify-content: center;
}



.annual-reports-orbit__ring {
    position: absolute;
    border-radius: 999px;
    border: 1px dashed rgba(23, 59, 50, 0.18);
}



.annual-reports-orbit__ring--outer {
    width: 220px;
    height: 220px;
}



.annual-reports-orbit__ring--inner {
    width: 140px;
    height: 140px;
    border-style: solid;
    border-color: rgba(23, 59, 50, 0.08);
    background: radial-gradient(circle, rgba(255, 255, 255, 0.95), rgba(246, 250, 249, 0.75));
}



.annual-reports-orbit__card {
    position: absolute;
    min-width: 110px;
    padding: 0.75rem 0.9rem;
    border-radius: 18px;
    border: 1px solid rgba(23, 59, 50, 0.08);
    box-shadow: 0 18px 40px rgba(23, 59, 50, 0.08);
    backdrop-filter: blur(12px);
    background: rgba(255, 255, 255, 0.9);
    display: flex;
    flex-direction: column;
    gap: 0.2rem;
}



.annual-reports-orbit__card span {
    font-size: 0.78rem;
    color: #4b5563;
}



.annual-reports-orbit__card strong {
    font-size: 0.95rem;
    color: #173b32;
}



.annual-reports-orbit__card--income {
    top: 10px;
    left: 34px;
    background: rgba(240, 253, 244, 0.92);
}



.annual-reports-orbit__card--expense {
    right: 26px;
    top: 74px;
    background: rgba(255, 247, 237, 0.94);
}



.annual-reports-orbit__card--balance {
    bottom: 16px;
    left: 68px;
    background: rgba(239, 246, 255, 0.94);
}



.annual-reports-filter-card {
    background: linear-gradient(180deg, rgba(255, 255, 255, 0.98) 0%, rgba(247, 250, 248, 0.94) 100%);
}



.annual-reports-filter-hint {
    color: #6b7280;
}



.annual-report-context-card {
    background:
        linear-gradient(135deg, rgba(15, 118, 110, 0.09), rgba(14, 165, 233, 0.08)),
        rgba(255, 255, 255, 0.92);
}



.annual-report-export-card {
    padding: 1rem 1.1rem;
    border-radius: 20px;
    background: rgba(255, 255, 255, 0.72);
    border: 1px solid rgba(23, 59, 50, 0.08);
}



.annual-report-metric {
    height: 100%;
    color: #173b32;
    border: 1px solid rgba(33, 150, 243, 0.18);
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.55);
}



.annual-report-metric .mud-icon-root {
    opacity: 0.85;
}



.annual-report-metric--collections {
    background: linear-gradient(180deg, rgba(232,245,233,0.98) 0%, rgba(248,252,248,1) 100%);
    border-color: rgba(76,175,80,0.22);
}



.annual-report-metric--expenses {
    background: linear-gradient(180deg, rgba(255,235,238,0.98) 0%, rgba(255,249,249,1) 100%);
    border-color: rgba(244,67,54,0.22);
}



.annual-report-metric--balance {
    background: linear-gradient(180deg, rgba(232,244,253,0.98) 0%, rgba(248,251,255,1) 100%);
    border-color: rgba(33,150,243,0.18);
}



.annual-report-insight {
    height: 100%;
    background: linear-gradient(180deg, rgba(255, 255, 255, 0.98), rgba(248, 250, 252, 0.92));
}



.annual-report-timeline-card {
    background:
        radial-gradient(circle at top right, rgba(255, 183, 77, 0.16), transparent 24%),
        linear-gradient(180deg, rgba(255, 255, 255, 0.98), rgba(245, 247, 250, 0.94));
}



.annual-report-month-grid {
    display: grid;
    grid-template-columns: repeat(12, minmax(120px, 1fr));
    gap: 0.75rem;
    overflow-x: auto;
    padding-bottom: 0.25rem;
}



.annual-report-month-card {
    min-height: 132px;
    border-radius: 20px;
    padding: 0.95rem;
    border: 1px solid rgba(23, 59, 50, 0.08);
    display: flex;
    flex-direction: column;
    gap: 0.22rem;
    box-shadow: 0 12px 24px rgba(23, 59, 50, 0.05);
}



.annual-report-month-card strong {
    font-size: 1rem;
    color: #173b32;
}



.annual-report-month-card span {
    font-size: 0.78rem;
    color: #475569;
}



.annual-report-month-card__label {
    font-weight: 700;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    color: #173b32;
}



.annual-report-month-card--positive {
    background: linear-gradient(180deg, rgba(236, 253, 245, 1), rgba(220, 252, 231, 0.82));
}



.annual-report-month-card--negative {
    background: linear-gradient(180deg, rgba(254, 242, 242, 1), rgba(254, 205, 211, 0.78));
}



.annual-report-month-card--neutral {
    background: linear-gradient(180deg, rgba(248, 250, 252, 1), rgba(226, 232, 240, 0.75));
}



.annual-report-section-card {
    overflow: hidden;
}



.annual-report-section-card--collections {
    background: linear-gradient(180deg, rgba(248, 255, 251, 0.98), rgba(255, 255, 255, 0.96));
}



.annual-report-section-card--expenses {
    background: linear-gradient(180deg, rgba(255, 251, 245, 0.98), rgba(255, 255, 255, 0.96));
}



.annual-report-section-card--balance {
    background: linear-gradient(180deg, rgba(245, 250, 255, 0.98), rgba(255, 255, 255, 0.96));
}



.annual-report-table {
    border-radius: 22px;
    overflow: hidden;
    background: rgba(255, 255, 255, 0.92);
}



.annual-report-table .mud-table-container {
    border-radius: 18px;
}



.annual-report-table table thead th {
    background: linear-gradient(180deg, #dcefe7 0%, #cfe6dd 100%);
    color: #173b32;
    font-size: 0.78rem;
    letter-spacing: 0.04em;
    text-transform: uppercase;
}



.annual-report-table table tbody td {
    vertical-align: top;
}



.annual-report-table table tbody tr:hover td {
    background-color: rgba(23, 59, 50, 0.035);
}



.annual-report-table--balance table thead th {
    background: linear-gradient(180deg, #d9ebfa 0%, #c9e0f4 100%);
}



.reporting-rollup-panels {
    border-radius: var(--mud-default-borderradius);
}



.reporting-rollup-panel {
    border: 1px solid rgba(23, 59, 50, 0.08);
    box-shadow: none;
}



.reporting-rollup-panel.page-card {
    padding: 0;
}



.reporting-rollup-panel .mud-expand-panel-header {
    min-height: 42px;
    padding: 0.55rem 0.85rem;
}



.reporting-rollup-panel .mud-expand-panel-content {
    padding: 0 0.85rem 0.85rem;
}



.unit-section-surface {
    padding: 0;
    border: 1px solid var(--mud-palette-divider);
    overflow: visible;
}



.unit-section-toolbar {
    display: flex;
    align-items: stretch;
    min-height: 58px;
    border-bottom: 1px solid var(--mud-palette-divider);
    background: var(--mud-palette-surface);
}



.unit-section-toolbar__tabs {
    display: flex;
    flex: 1;
    min-width: 0;
    overflow-x: auto;
    scrollbar-width: none;
}



.unit-section-toolbar__tabs::-webkit-scrollbar {
    display: none;
}



.unit-section-tab {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 2px;
    padding: 10px 20px;
    border: 0;
    border-bottom: 2px solid transparent;
    margin-bottom: -1px;
    background: transparent;
    color: var(--mud-palette-text-secondary);
    cursor: pointer;
    white-space: nowrap;
    transition: background-color 0.15s ease, border-color 0.15s ease, color 0.15s ease;
}



.unit-section-tab:hover,
.unit-section-tab:focus-visible {
    background: var(--mud-palette-action-default-hover);
    color: var(--mud-palette-primary);
    outline: none;
}



.unit-section-tab--active {
    color: var(--mud-palette-primary);
    border-bottom-color: var(--mud-palette-primary);
}



.unit-section-tab__label {
    font-size: 0.875rem;
    font-weight: 600;
    line-height: 1.2;
}



.unit-section-tab__meta {
    font-size: 0.6875rem;
    line-height: 1.2;
    opacity: 0.68;
}



.reporting-section-surface {
    padding: 0;
    overflow: hidden;
}



.reporting-section-toolbar {
    border-bottom: 1px solid rgba(23, 59, 50, 0.08);
}



.monthly-unit-split {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1rem;
}



.monthly-unit-list-tabs {
    display: none;
}



.monthly-unit-list-tab {
    display: inline-flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.5rem;
    min-width: 0;
    padding: 0.58rem 0.72rem;
    border: 1px solid var(--mud-palette-divider);
    border-radius: var(--mud-default-borderradius);
    background: var(--mud-palette-surface);
    color: var(--mud-palette-text-secondary);
    font-weight: 600;
}



.monthly-unit-list-tab span:first-child {
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}



.monthly-unit-list-tab span:last-child {
    flex: 0 0 auto;
    font-size: 0.75rem;
    opacity: 0.72;
}



.monthly-unit-list-tab--active {
    border-color: var(--mud-palette-primary);
    background: color-mix(in srgb, var(--mud-palette-primary) 9%, var(--mud-palette-surface));
    color: var(--mud-palette-primary);
}



.monthly-unit-panel {
    min-width: 0;
    padding: 1rem;
    border: 1px solid rgba(23, 59, 50, 0.08);
    border-radius: var(--mud-default-borderradius);
    background: rgba(255, 255, 255, 0.94);
}



.monthly-unit-panel--attention {
    background: linear-gradient(180deg, rgba(255, 251, 235, 0.9), rgba(255, 255, 255, 0.96));
}



.monthly-unit-panel--paid {
    background: linear-gradient(180deg, rgba(240, 253, 244, 0.9), rgba(255, 255, 255, 0.96));
}



.statement-summary .mud-table {
    background: transparent;
}



.statement-context-card,
.statement-detail-card,
.statement-metric {
    padding: 0.9rem;
    border: 1px solid rgba(23, 59, 50, 0.08);
    border-radius: var(--mud-default-borderradius);
    background: rgba(255, 255, 255, 0.96);
}



.statement-metric-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 0.75rem;
}



.statement-metric--remaining {
    background: linear-gradient(180deg, rgba(255, 251, 235, 0.9), rgba(255, 255, 255, 0.96));
}



.annual-report-context-card--simple {
    background: linear-gradient(180deg, rgba(255, 255, 255, 0.98), rgba(247, 250, 248, 0.94));
}



.annual-report-metric--ending {
    background: linear-gradient(180deg, rgba(232,244,253,0.98) 0%, rgba(248,251,255,1) 100%);
    border-color: rgba(33,150,243,0.18);
}



.annual-report-grid-card {
    min-width: 0;
    overflow: visible;
}



.annual-report-unified-grid {
    width: 100%;
    min-width: 0;
    max-width: 100%;
    overflow: auto;
    max-height: none;
    -webkit-overflow-scrolling: touch;
    overscroll-behavior: contain;
    background: #fff;
    border: 1px solid rgba(23, 59, 50, 0.08);
    border-radius: var(--mud-default-borderradius);
}



.annual-report-unified-table {
    width: 100%;
    min-width: 1160px;
    border-collapse: separate;
    border-spacing: 0;
    background: rgba(255, 255, 255, 0.96);
}



.annual-report-unified-table th,
.annual-report-unified-table td {
    padding: 0.72rem 0.8rem;
    border-bottom: 1px solid var(--mud-palette-divider);
    text-align: right;
    vertical-align: middle;
    white-space: nowrap;
}



.annual-report-unified-table thead th {
    position: sticky;
    top: 0;
    z-index: 1;
    background: var(--mud-palette-surface);
    color: var(--mud-palette-text-primary);
    font-size: 0.78rem;
    font-weight: 700;
}



.annual-report-unified-table thead .annual-report-unified-table__label {
    z-index: 4;
    background: var(--mud-palette-surface);
}



.annual-report-unified-table__month {
    position: relative;
    text-align: center !important;
}



.annual-report-unified-table__month--current {
    color: var(--mud-palette-primary) !important;
    border-bottom-color: var(--mud-palette-primary) !important;
}



.annual-report-unified-table__month--current::after {
    content: '';
    position: absolute;
    bottom: 0;
    left: 0;
    right: 0;
    height: 2px;
    background: var(--mud-palette-primary);
}



.annual-report-unified-table__label {
    position: sticky;
    left: 0;
    z-index: 2;
    min-width: 220px;
    width: 220px;
    max-width: 220px;
    text-align: left !important;
    background: inherit;
    white-space: normal !important;
    overflow-wrap: anywhere;
}



.annual-report-group-row td {
    text-align: right;
    color: var(--mud-palette-text-primary);
    font-size: 0.86rem;
    border-bottom: 1px solid var(--mud-palette-divider);
    background: color-mix(in srgb, var(--mud-palette-surface) 94%, var(--mud-palette-primary) 6%);
}



.annual-report-group-row .annual-report-unified-table__label {
    padding: 0;
    z-index: 3;
}



.annual-report-unified-table__label:has(.tour-step--active) {
    z-index: 1201;
    overflow: visible;
}



.annual-report-unified-table .tour-step--active {
    box-shadow:
        0 0 0 4px rgba(255, 255, 255, 0.9),
        0 10px 28px rgba(15, 23, 42, 0.18);
}



.annual-report-group-row__content {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    min-height: 44px;
    padding: 0.65rem 0.9rem 0.65rem 1rem;
    border-left: 4px solid var(--mud-palette-primary);
    background: transparent;
}



.annual-report-group-row__title {
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
    min-width: 0;
}



.annual-report-group-row__title strong {
    min-width: 0;
    overflow-wrap: anywhere;
}



.annual-report-group-row__meta {
    color: var(--mud-palette-text-secondary);
    font-size: 0.78rem;
}



.annual-report-group-row--expenses .annual-report-group-row__content {
    border-left-color: var(--mud-palette-warning);
}



.annual-report-group-row--balance .annual-report-group-row__content {
    position: relative;
    border-left-color: var(--mud-palette-info);
    padding-right: 0.1rem;
}



.annual-report-group-row--balance .annual-report-group-row__title {
    flex-shrink: 0;
}



.annual-report-group-row--balance .annual-report-group-row__title strong {
    white-space: nowrap;
}



.annual-report-group-row--balance .annual-report-group-row__meta {
    position: absolute;
    right: 0.75rem;
    width: 6rem;
}



.annual-report-data-row {
    background: rgba(255, 255, 255, 0.96);
}



.annual-report-data-row .annual-report-unified-table__label {
    background: #fff;
    vertical-align: top;
}



.annual-report-total-row td {
    border-top: 2px solid color-mix(in srgb, var(--mud-palette-divider) 72%, transparent);
    background: color-mix(in srgb, var(--mud-palette-surface) 92%, var(--mud-palette-primary) 8%);
}



.annual-report-total-row--expenses td {
    background: color-mix(in srgb, var(--mud-palette-surface) 92%, var(--mud-palette-warning) 8%);
}



.annual-report-amount-cell {
    color: #374151;
}



.annual-report-amount-cell--positive.annual-report-amount-cell--collections {
    background: rgba(76, 175, 80, 0.045);
}



.annual-report-amount-cell--positive.annual-report-amount-cell--expenses {
    background: rgba(255, 193, 7, 0.05);
}



.annual-report-amount-cell--positive.annual-report-amount-cell--balance {
    background: rgba(33, 150, 243, 0.045);
}



.annual-report-amount-cell--negative {
    background: rgba(244, 67, 54, 0.055);
    color: #9f1239;
}



@media (max-width: 959.98px) {
    .annual-report-grid-card {
        min-width: 0;
        overflow: hidden;
    }

    .statement-metric-grid {
        grid-template-columns: 1fr;
    }

    .monthly-unit-list-tabs {
        display: grid;
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 0.5rem;
        margin-bottom: 0.75rem;
    }

    .monthly-unit-split {
        display: block;
    }

    .monthly-unit-split--show-attention .monthly-unit-panel--paid,
    .monthly-unit-split--show-paid .monthly-unit-panel--attention {
        display: none;
    }

    .monthly-unit-panel {
        padding: 0.75rem;
    }
}



@media (max-width: 599.98px) {
    .annual-report-metric {
        padding: 0.82rem;
    }

    .annual-report-metric .mud-typography-h5 {
        font-size: 1rem;
        line-height: 1.25;
        overflow-wrap: anywhere;
    }

    .annual-report-unified-table {
        min-width: 930px;
    }

    .annual-report-unified-grid {
        max-height: calc(100vh - 18rem);
        min-height: 320px;
    }

    .annual-report-unified-table {
        width: max-content;
    }

    .annual-report-unified-table th,
    .annual-report-unified-table td {
        padding: 0.55rem 0.42rem;
        font-size: 0.78rem;
    }

    .annual-report-unified-table__label {
        min-width: 132px;
        width: 132px;
        max-width: 132px;
    }

    .annual-report-group-row__content {
        align-items: flex-start;
        flex-direction: column;
        gap: 0.18rem;
        min-height: 52px;
        padding: 0.5rem 0.55rem 0.5rem 0.65rem;
    }

    .annual-report-group-row__meta {
        font-size: 0.7rem;
    }

    .annual-report-group-row--balance .annual-report-group-row__content {
        padding: 0.5rem 0.55rem 0.5rem 0.65rem;
    }

    .annual-report-group-row--balance .annual-report-group-row__meta {
        position: static;
        align-self: flex-end;
        width: auto;
        text-align: right;
    }
}



@media (max-width: 959.98px) {
    .annual-reports-orbit {
        min-height: 180px;
        margin-top: 0.5rem;
    }

    .annual-reports-orbit__ring--outer {
        width: 180px;
        height: 180px;
    }

    .annual-reports-orbit__ring--inner {
        width: 116px;
        height: 116px;
    }

    .annual-reports-orbit__card {
        min-width: 94px;
        padding: 0.65rem 0.75rem;
    }

    .annual-reports-orbit__card--income {
        left: 10px;
    }

    .annual-reports-orbit__card--expense {
        right: 8px;
    }

    .annual-reports-orbit__card--balance {
        left: 38px;
    }
}



/* Mobile login screen (Urbanis.Mobile) */

.urbanis-login-mobile {
    position: fixed;
    inset: 0;
    z-index: 2000;
    display: flex;
    flex-direction: column;
    height: 100dvh;
    background: #1B4D3E;
    color: #1F2933;
}



.urbanis-login-mobile__header {
    position: relative;
    flex: 0 0 auto;
    padding: calc(26px + var(--urbanis-status-bar-top, env(safe-area-inset-top, 0px))) 26px 40px;
    background: linear-gradient(165deg, #1B4D3E 0%, #153E33 55%, #0F342C 100%);
    overflow: hidden;
}



.urbanis-login-mobile__header::before {
    content: "";
    position: absolute;
    inset: 0;
    pointer-events: none;
    background: radial-gradient(circle at 82% 8%, rgba(217, 122, 43, 0.34), transparent 46%);
}



.urbanis-login-mobile__brand {
    position: relative;
    display: flex;
    align-items: center;
    gap: 12px;
}



.urbanis-login-mobile__lang {
    margin-left: auto;
}



.urbanis-login-mobile__lang-button {
    border-radius: 999px;
    padding-inline: 0.5rem;
    min-width: auto;
    color: #F5F1E8 !important;
}



.urbanis-login-mobile__lang-button:hover {
    background: rgba(245, 241, 232, 0.10);
}



.urbanis-login-mobile__lang-popover {
    z-index: 2100 !important;
}



.urbanis-login-mobile__brand-icon {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 26px;
    height: 26px;
    flex: 0 0 auto;
    overflow: hidden;
}



.urbanis-login-mobile__brand-icon img {
    /* The launcher master includes 23% transparent safe padding on each side. */
    width: 48px;
    height: 48px;
    max-width: none;
    flex: 0 0 auto;
}



.urbanis-login-mobile__wordmark {
    font-size: 26px;
    font-weight: 700;
    color: #F5F1E8;
    letter-spacing: 0.02em;
}



.urbanis-login-mobile__sheet {
    flex: 1 1 auto;
    display: flex;
    flex-direction: column;
    margin-top: -32px;
    padding: 32px 26px 20px;
    border-radius: 28px 28px 0 0;
    background: #FFFDF9;
    box-shadow: 0 -8px 32px rgba(15, 52, 44, 0.14);
    overflow-y: auto;
}



.urbanis-login-mobile__form {
    display: flex;
    flex-direction: column;
    flex: 1 1 auto;
    gap: 18px;
    min-height: min-content;
}



.urbanis-login-mobile__task-form {
    display: flex;
    flex-direction: column;
    gap: 18px;
}



.urbanis-login-mobile__state-icon {
    color: #1B4D3E !important;
    font-size: 40px !important;
    margin-bottom: 16px;
}



.urbanis-login-mobile__loading {
    text-align: center;
}



.urbanis-login-mobile__details {
    display: grid;
    gap: 14px;
    margin: 0;
    padding: 18px;
    background: rgba(23, 59, 50, 0.04);
    border: 1px solid rgba(23, 59, 50, 0.10);
    border-radius: 16px;
}



.urbanis-login-mobile__details dt {
    font-size: 12.5px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    color: #52606D;
}



.urbanis-login-mobile__details dd {
    margin: 4px 0 0;
    overflow-wrap: anywhere;
}



.urbanis-login-mobile__input-row:focus-within {
    border-color: #1B4D3E;
    box-shadow: 0 0 0 2px rgba(27, 77, 62, 0.15);
}



.urbanis-login-mobile__input-row--error {
    border-color: #B45309;
}



.urbanis-login-mobile__input[readonly] {
    color: #52606D;
}



.urbanis-login-mobile__input:disabled {
    opacity: 0.7;
}



.urbanis-login-mobile a:focus-visible,
.urbanis-login-mobile button:focus-visible {
    outline: 2px solid #1B4D3E;
    outline-offset: 4px;
}



a.urbanis-login-mobile__submit {
    text-decoration: none;
}



.urbanis-login-mobile__form--centered {
    justify-content: center;
}



.urbanis-login-mobile__heading {
    margin-top: 14px;
}



.urbanis-login-mobile__title {
    margin: 0;
    font-size: 27px;
    font-weight: 700;
    letter-spacing: -0.02em;
    color: #173B32;
}



.urbanis-login-mobile__subtext {
    margin: 6px 0 0;
    font-size: 14.5px;
    line-height: 1.5;
    color: #52606D;
}



.urbanis-login-mobile__alert {
    display: flex;
    gap: 12px;
    padding: 14px 15px;
    border-radius: 16px;
    background: rgba(245, 158, 11, 0.11);
    border: 1px solid rgba(194, 120, 3, 0.26);
}



.urbanis-login-mobile__alert-icon {
    margin-top: 1px;
    color: #C27803 !important;
    font-size: 20px !important;
}



.urbanis-login-mobile__alert-text {
    display: flex;
    flex-direction: column;
    gap: 3px;
}



.urbanis-login-mobile__alert-title {
    font-size: 14px;
    font-weight: 700;
    color: #8A5A05;
}



.urbanis-login-mobile__alert-body {
    font-size: 13px;
    line-height: 1.45;
    color: #6B5326;
}



.urbanis-login-mobile__fields {
    display: flex;
    flex-direction: column;
    gap: 14px;
}



.urbanis-login-mobile__field {
    display: flex;
    flex-direction: column;
    gap: 7px;
}



.urbanis-login-mobile__label {
    font-size: 12.5px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    color: #52606D;
}



.urbanis-login-mobile__input-row {
    display: flex;
    align-items: center;
    gap: 10px;
    height: 54px;
    padding: 0 15px;
    border-radius: 16px;
    background: rgba(23, 59, 50, 0.04);
    border: 1px solid rgba(23, 59, 50, 0.10);
}



.urbanis-login-mobile__input-row--password {
    padding: 0 6px 0 15px;
}



.urbanis-login-mobile__input-icon {
    flex: 0 0 20px;
    width: 20px;
    height: 20px;
    color: #6B7280 !important;
    font-size: 20px !important;
}



.urbanis-login-mobile__input {
    min-width: 0;
    flex: 1 1 auto;
    min-width: 0;
    height: 100%;
    border: none;
    outline: none;
    background: transparent;
    font-size: 16px;
    color: #1F2933;
}



.urbanis-login-mobile__input::placeholder {
    color: #9CA3AF;
}



.urbanis-login-mobile__reveal {
    display: flex;
    align-items: center;
    justify-content: center;
    flex: 0 0 auto;
    width: 44px;
    height: 44px;
    border: none;
    border-radius: 12px;
    background: transparent;
    color: #6B7280;
    cursor: pointer;
    transition: background 160ms ease;
}



.urbanis-login-mobile__reveal:hover {
    background: rgba(23, 59, 50, 0.06);
}



.urbanis-login-mobile__actions {
    display: flex;
    flex-direction: column;
    gap: 14px;
    margin-top: 2px;
}



.urbanis-login-mobile__submit {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    min-height: 54px;
    width: 100%;
    border: none;
    border-radius: 16px;
    background: #1B4D3E;
    color: #F5F1E8;
    font-size: 16px;
    font-weight: 700;
    box-shadow: 0 12px 24px rgba(23, 59, 50, 0.22);
    cursor: pointer;
    transition: background 160ms ease, transform 160ms ease;
}



.urbanis-login-mobile__submit:hover:not(:disabled) {
    background: #154032;
}



.urbanis-login-mobile__submit:active:not(:disabled) {
    transform: translateY(1px);
}



.urbanis-login-mobile__submit:disabled {
    cursor: not-allowed;
    opacity: 0.85;
}



.urbanis-login-mobile__submit-spinner {
    color: #F5F1E8 !important;
}



.urbanis-login-mobile__forgot {
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 44px;
    font-size: 14.5px;
    font-weight: 600;
    color: #1B4D3E !important;
    text-decoration: none !important;
}



.urbanis-login-mobile__footer {
    margin: auto 0 0;
    padding-top: 14px;
    border-top: 1px solid rgba(23, 59, 50, 0.08);
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 8px;
}



.urbanis-login-mobile__footer-note {
    margin: 0;
    text-align: center;
    font-size: 12.5px;
    line-height: 1.45;
    color: #6B7280;
}



.urbanis-login-mobile__footer-link {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 6px 12px;
    border-radius: 999px;
    background: rgba(23, 59, 50, 0.05);
    font-size: 12.5px;
    font-weight: 600;
    color: #1B4D3E !important;
    text-decoration: none !important;
    transition: background 160ms ease;
}



.urbanis-login-mobile__footer-link:hover {
    background: rgba(23, 59, 50, 0.09);
}



.urbanis-login-mobile__footer-link-icon {
    font-size: 15px !important;
    color: #1B4D3E !important;
}



@media (prefers-color-scheme: dark) {
    .urbanis-login-mobile {
        background: #123830;
        color: #F5F1E8;
    }

    .urbanis-login-mobile__header {
        background: linear-gradient(165deg, #123830 0%, #0F332C 55%, #0B2721 100%);
    }

    .urbanis-login-mobile__header::before {
        background: radial-gradient(circle at 82% 8%, rgba(217, 122, 43, 0.26), transparent 46%);
    }

    .urbanis-login-mobile__sheet {
        background: #143A31;
        box-shadow: 0 -8px 32px rgba(0, 0, 0, 0.28);
    }

    .urbanis-login-mobile__state-icon {
        color: #E7A468 !important;
    }

    .urbanis-login-mobile__details {
        background: rgba(245, 241, 232, 0.05);
        border-color: rgba(245, 241, 232, 0.12);
    }

    .urbanis-login-mobile__details dt,
    .urbanis-login-mobile__input[readonly] {
        color: rgba(245, 241, 232, 0.7);
    }

    .urbanis-login-mobile__input-row:focus-within,
    .urbanis-login-mobile__input-row--error {
        border-color: #E7A468;
    }

    .urbanis-login-mobile a:focus-visible,
    .urbanis-login-mobile button:focus-visible {
        outline-color: #E7A468;
    }

    .urbanis-login-mobile__title {
        color: #F5F1E8;
    }

    .urbanis-login-mobile__subtext {
        color: rgba(245, 241, 232, 0.62);
    }

    .urbanis-login-mobile__alert {
        background: rgba(217, 122, 43, 0.14);
        border-color: rgba(217, 122, 43, 0.32);
    }

    .urbanis-login-mobile__alert-icon {
        color: #E7A468 !important;
    }

    .urbanis-login-mobile__alert-title {
        color: #F0C99E;
    }

    .urbanis-login-mobile__alert-body {
        color: rgba(245, 241, 232, 0.72);
    }

    .urbanis-login-mobile__label {
        color: rgba(245, 241, 232, 0.58);
    }

    .urbanis-login-mobile__input-row {
        background: rgba(245, 241, 232, 0.05);
        border-color: rgba(245, 241, 232, 0.12);
    }

    .urbanis-login-mobile__input-icon {
        color: rgba(245, 241, 232, 0.5) !important;
    }

    .urbanis-login-mobile__input {
        color: #F5F1E8;
    }

    .urbanis-login-mobile__input::placeholder {
        color: rgba(245, 241, 232, 0.42);
    }

    .urbanis-login-mobile__reveal {
        color: rgba(245, 241, 232, 0.7);
    }

    .urbanis-login-mobile__reveal:hover {
        background: rgba(245, 241, 232, 0.07);
    }

    .urbanis-login-mobile__submit {
        background: #D97A2B;
        color: #1A1207;
        box-shadow: 0 12px 24px rgba(0, 0, 0, 0.3);
    }

    .urbanis-login-mobile__submit:hover:not(:disabled) {
        background: #C56D24;
    }

    .urbanis-login-mobile__submit-spinner {
        color: #1A1207 !important;
    }

    .urbanis-login-mobile__forgot {
        color: #E7A468 !important;
    }

    .urbanis-login-mobile__footer {
        border-top-color: rgba(245, 241, 232, 0.10);
    }

    .urbanis-login-mobile__footer-note {
        color: rgba(245, 241, 232, 0.5);
    }

    .urbanis-login-mobile__footer-link {
        background: rgba(245, 241, 232, 0.08);
        color: #E7A468 !important;
    }

    .urbanis-login-mobile__footer-link:hover {
        background: rgba(245, 241, 232, 0.13);
    }

    .urbanis-login-mobile__footer-link-icon {
        color: #E7A468 !important;
    }
}





/* Building-level payment selection, shared by web and MAUI. */
.building-payment-fab:disabled { opacity: .5; cursor: default; }


.building-payment-fab:focus-visible { outline: 3px solid var(--mud-palette-secondary); outline-offset: 3px; }


.urbanis-drawer.building-payment-picker { background: var(--mud-palette-surface); color: var(--mud-palette-text-primary); box-shadow: var(--mud-elevation-16); }


.building-payment-picker__header { flex-shrink: 0; color: white; background: linear-gradient(135deg,var(--mud-palette-primary),#1d4f91); }


.building-payment-picker__row { border-bottom: 1px solid var(--mud-palette-divider); padding-bottom: 8px; }


.building-payment-picker__details { padding-left: 44px; overflow-wrap: anywhere; }


.building-payment-picker__selection { display: flex; flex-wrap: wrap; align-items: center; min-height: 40px; max-height: 120px; overflow: auto; }


.building-payment-picker__actions { display: flex; justify-content: space-between; gap: 12px; }


.phone-surface.building-payment-picker { height: min(85dvh, 900px); }


.phone-surface.building-payment-picker .building-payment-picker__actions { display: grid; grid-template-columns: minmax(0, 2fr) minmax(0, 1fr); width: 100%; }


.building-payment-amounts { width: 100%; }

/* Shared application components. Migrated desktop drawer rules from app.css. */
.urbanis-drawer-backdrop {
    position: fixed;
    inset: 0;
    z-index: var(--urbanis-drawer-backdrop-layer);
    background: var(--urbanis-surface-backdrop);
}

.urbanis-drawer {
    --urbanis-drawer-width: var(--urbanis-drawer-default-width);
    position: fixed;
    top: 0;
    right: 0;
    width: min(100vw, var(--urbanis-drawer-width));
    height: 100vh;
    z-index: var(--urbanis-drawer-layer);
    border-radius: 0;
    display: flex;
    flex-direction: column;
    overflow: hidden;
}

.urbanis-drawer--narrow {
    --urbanis-drawer-width: var(--urbanis-drawer-narrow-width);
}

.urbanis-drawer--compact {
    --urbanis-drawer-width: var(--urbanis-drawer-compact-width);
}

.urbanis-drawer__layout {
    flex: 1 1 auto;
    min-height: 0;
    height: 100%;
    display: flex;
    flex-direction: column;
}

.urbanis-drawer__context {
    flex: 1 1 auto;
    min-height: 0;
    overflow: auto;
    border-bottom: 1px solid var(--urbanis-surface-divider);
    background: var(--urbanis-surface-context);
}

.urbanis-drawer__form {
    flex-shrink: 0;
    overflow: auto;
    border-top: 1px solid var(--urbanis-surface-divider);
}

.urbanis-drawer__form--fill {
    flex: 1 1 auto;
    min-height: 0;
}

.urbanis-drawer__footer {
    flex-shrink: 0;
    border-top: 1px solid var(--urbanis-surface-footer-divider);
}

@media (max-width: 767.98px) {
    .urbanis-drawer {
        width: 100vw;
        height: 100%;
        max-height: 100%;
        overflow: hidden;
        overscroll-behavior: none;
        padding-bottom: env(safe-area-inset-bottom);
    }

    .urbanis-drawer__context,
    .urbanis-drawer__form {
        overscroll-behavior: contain;
        -webkit-overflow-scrolling: touch;
    }

    .urbanis-drawer__footer .mud-stack-row {
        flex-direction: column;
        align-items: stretch;
    }

    .urbanis-drawer__footer .urbanis-drawer__footer-row--inline {
        flex-direction: row;
        align-items: center;
    }

    .urbanis-drawer__footer .mud-button-root,
    .urbanis-drawer .urbanis-mobile-full-width-action {
        width: 100%;
        min-height: var(--urbanis-surface-touch-min);
    }

    .urbanis-drawer__footer .urbanis-drawer__footer-row--inline .mud-button-root {
        width: auto;
        min-width: 0;
        flex: 1 1 0;
    }

}

/* Shared desktop header treatment; fixed sizing is opt-in to preserve existing forms. */
.urbanis-drawer__header {
    background: var(--urbanis-surface-header-background);
    color: var(--urbanis-surface-on-header);
}

.urbanis-drawer__header--fixed {
    flex-shrink: 0;
}

/* Shared Report Export options; feature variants use the same control and general styles. */
:is(.report-export-drawer, .report-export-sheet-host) .report-export-drawer__options {
    display: flex;
    flex-direction: column;
    gap: var(--urbanis-surface-content-gap);
}

/* Shared surface regions. Wrappers supply placement, theme, modality and insets. */
.urbanis-surface-header {
    display: flex;
    align-items: center;
    gap: var(--urbanis-surface-action-gap);
    flex: 0 0 auto;
    padding: var(--urbanis-surface-region-space);
}

.urbanis-surface-header__titles {
    flex: 1;
    min-width: 0;
}

.urbanis-surface-header__title-row {
    display: flex;
    align-items: center;
    gap: var(--urbanis-surface-action-gap);
}

.urbanis-surface-header__title-row h2 {
    min-width: 0;
    margin: 0;
    font: inherit;
    font-size: 1.25rem;
    font-weight: 500;
    color: inherit;
    overflow-wrap: anywhere;
}

.urbanis-surface-header__titles p {
    margin: 0;
    font-size: .75rem;
    overflow-wrap: anywhere;
}

.urbanis-surface-header__action {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex: 0 0 auto;
    width: var(--urbanis-surface-touch-min);
    height: var(--urbanis-surface-touch-min);
    border: 0;
    border-radius: 50%;
    background: transparent;
    color: inherit;
    cursor: pointer;
}

.urbanis-surface-header__action:disabled {
    opacity: .5;
    cursor: default;
}

.urbanis-surface-header__action:focus-visible,
.urbanis-surface-context:focus-visible,
.urbanis-surface-body:focus-visible {
    outline: 2px solid currentColor;
    outline-offset: -2px;
}

.urbanis-surface-context,
.urbanis-surface-body {
    flex: 1 1 auto;
    min-height: 0;
    min-width: 0;
    overflow: auto;
    overscroll-behavior: contain;
    padding: var(--urbanis-surface-region-space);
}

.urbanis-surface-context--static {
    flex: 0 0 auto;
    overflow: visible;
}

.urbanis-surface-body--content {
    flex: 0 1 auto;
}

.urbanis-surface-body--contained {
    overflow: hidden;
}

.urbanis-surface-footer {
    flex: 0 0 auto;
    min-width: 0;
    padding: var(--urbanis-surface-region-space);
}

.urbanis-surface-actions {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: flex-end;
    gap: var(--urbanis-surface-action-gap);
}

.urbanis-surface-actions > .mud-button-root {
    min-width: 0;
    max-width: 100%;
    overflow-wrap: anywhere;
}

/* Desktop wrapper: the parent feature owns its lifetime, data and commands. */
body:has(.urbanis-desktop-surface-layer) {
    overflow: hidden;
}

.urbanis-desktop-surface-layer {
    position: fixed;
    inset: 0;
}

.urbanis-desktop-surface {
    background: var(--mud-palette-surface);
    color: var(--mud-palette-text-primary);
    box-shadow: var(--mud-elevation-6);
    outline: none;
}

.urbanis-desktop-surface .urbanis-surface-header {
    align-items: flex-start;
}

.urbanis-desktop-surface .urbanis-surface-header__title-row h2 {
    font: var(--mud-typography-h6-weight) var(--mud-typography-h6-size)/var(--mud-typography-h6-lineheight) var(--mud-typography-h6-family);
    letter-spacing: var(--mud-typography-h6-letterspacing);
}

.report-export-drawer__options .report-export-option-card{display:grid;grid-template-columns:44px minmax(0,1fr) auto;align-items:center;gap:13px;padding:16px;border:1px solid rgba(23,59,50,.12);border-radius:18px;background:#fffdf9;box-shadow:0 8px 24px rgba(23,59,50,.06)}
.report-export-drawer__options .report-export-option-card--stacked{grid-template-columns:44px minmax(0,1fr)}
.report-export-drawer__options .report-export-option-card__icon{display:grid;place-items:center;width:44px;height:44px;border-radius:14px;background:rgba(27,77,62,.1);color:#1b4d3e}.report-export-drawer__options .report-export-option-card__icon .mud-icon-root{font-size:22px}
.report-export-drawer__options .report-export-option-card__copy{min-width:0}.report-export-drawer__options .report-export-option-card__copy>strong,.report-export-drawer__options .report-export-option-card__copy>label,.report-export-drawer__options .report-export-option-card__copy>span{display:block}.report-export-drawer__options .report-export-option-card__copy>strong,.report-export-drawer__options .report-export-option-card__copy>label{color:#173b32;font-size:.9rem;font-weight:800}.report-export-drawer__options .report-export-option-card__copy>span{margin-top:4px;color:#6b7280;font-size:.75rem;line-height:1.4}
.report-export-option-card__fields { grid-column:1 / -1; min-width:0; }
.report-export-period-fields { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; }
.report-export-period-fields label { display:flex; flex-direction:column; justify-content:flex-end; gap:6px; min-width:0; }
.report-export-period-fields label > span { color:#52606d; font-size:.8rem; }
.report-export-period-fields__year { grid-column:1 / -1; }
.report-export-period-fields select { width:100%; min-width:0; height:48px; padding:8px 6px; border:1px solid rgba(23,59,50,.18); border-radius:12px; background:#fff; color:#173b32; font:inherit; font-size:.9rem; }
.report-export-period-fields select:focus-visible { outline:2px solid var(--mud-palette-primary); outline-offset:2px; }
.report-export-period-fields select:disabled { opacity:.5; }
.urbanis-switch .mud-switch-track{position:absolute;top:50%;left:12px;width:34px;height:14px;transform:translateY(-50%)}
.urbanis-switch .mud-switch-base{top:50%;transform:translateY(-50%)}
.urbanis-switch .mud-switch-base.mud-checked{transform:translate(20px,-50%)}
/* Category controls are shared by standalone and expense-inline editors. */
.category-editor__form { display:flex; flex-direction:column; gap:16px; }
.category-editor fieldset { margin:0; padding:0; border:0; min-width:0; }
.category-editor legend,.category-editor__name > span { margin-bottom:8px; color:#52606d; font-size:.8rem; }
.category-editor small { display:block; margin-top:7px; color:#6b7280; font-size:.8rem; line-height:1.45; }
.category-editor__scope { padding:4px; display:flex; gap:4px; border:1px solid rgba(23,59,50,.10); border-radius:24px; background:rgba(23,59,50,.04); }
.category-editor__scope button { flex:1; min-height:44px; padding:6px 8px; border:0; border-radius:24px; background:transparent; color:#374151; font-family:inherit; font-size:.82rem; font-weight:700; }
.category-editor__scope button.selected { background:#fffdf9; color:#1b4d3e; box-shadow:0 1px 4px rgba(23,59,50,.12); }
.category-editor__name { display:flex; flex-direction:column; }
.category-editor__name input { width:100%; min-height:46px; padding:8px 0; border:0; border-bottom:1.5px solid rgba(23,59,50,.16); background:transparent; color:#173b32; font-size:1.05rem; box-sizing:border-box; }
.category-editor__name input:focus-visible,.category-editor__scope button:focus-visible,.category-lifecycle-actions button:focus-visible { outline:2px solid var(--mud-palette-primary); outline-offset:2px; }
.category-editor__active { display:flex; justify-content:space-between; align-items:center; gap:10px; min-height:44px; }

.category-editor__overview { padding:12px; border:1px solid rgba(23,59,50,.12); border-radius:12px; }
.category-editor__status { font-weight:600; }
.category-lifecycle-actions { display:flex; flex-wrap:wrap; gap:6px; }
.category-lifecycle-actions button { padding:8px 10px; min-height:36px; border:1px solid rgba(23,59,50,.16); border-radius:8px; color:var(--mud-palette-primary); background:transparent; }
.category-lifecycle-actions button:disabled { opacity:.5; }

.category-lifecycle-actions button { display:flex; align-items:center; gap:10px; }
.category-lifecycle-actions--icon-only button { justify-content:center; }
/* Shared desktop action-icon baseline; phone presentations retain their existing sizing. */
.urbanis-action-icon { width:24px; height:24px; font-size:24px; color:inherit; }
.category-lifecycle-actions .category-lifecycle-actions__delete { color:var(--mud-palette-error); }
.mud-dialog-actions > .urbanis-confirm-actions { width:100%; }

/* RF-02.3 Monthly Reports desktop composition */
.report-page-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:24px}.report-page-export-button.mud-button-root{flex:none;min-height:44px;border-radius:12px;padding-inline:18px;font-weight:700;letter-spacing:0;text-transform:none}
.monthly-report-month-filter{width:min(100%,420px)}
@media (max-width:1100px){.report-page-heading{align-items:stretch;flex-direction:column}.report-page-export-button.mud-button-root{align-self:flex-start}}
.monthly-report-filter-card{border:1px solid rgba(0,0,0,.06);background:linear-gradient(180deg,rgba(245,241,232,.6) 0%,#fff 100%)}
.monthly-report-period-control.mud-button-root{width:100%;min-height:64px;border-color:rgba(0,0,0,.23);border-radius:var(--mud-default-borderradius);padding:8px 14px;text-transform:none;letter-spacing:normal}
.monthly-report-period-control .mud-button-label{justify-content:space-between;gap:16px;text-align:left}.monthly-report-period-control span>small,.monthly-report-period-control span>strong{display:block}.monthly-report-period-control small{font-size:.75rem;font-weight:400;color:var(--mud-palette-text-secondary)}.monthly-report-period-control strong{font-size:1rem;font-weight:400;color:var(--mud-palette-text-primary)}

/* Buildings workspace presentations (RF-03.1). */
.buildings-desktop .unit-section-surface {
    padding: 0;
    border: 1px solid var(--mud-palette-divider);
    overflow: visible;
}

.buildings-desktop .unit-section-toolbar {
    display: flex;
    align-items: stretch;
    min-height: 58px;
    border-bottom: 1px solid var(--mud-palette-divider);
    background: var(--mud-palette-surface);
}

.buildings-desktop .unit-section-toolbar__tabs {
    display: flex;
    flex: 1;
    min-width: 0;
    overflow-x: auto;
    scrollbar-width: none;
}

.buildings-desktop .unit-section-toolbar__tabs::-webkit-scrollbar {
    display: none;
}

.buildings-desktop .unit-section-toolbar__search {
    display: flex;
    align-items: center;
    flex-shrink: 0;
    width: 320px;
    padding: 7px 12px;
    border-left: 1px solid var(--mud-palette-divider);
}

.buildings-desktop .unit-section-tab {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 2px;
    padding: 10px 20px;
    border: 0;
    border-bottom: 2px solid transparent;
    margin-bottom: -1px;
    background: transparent;
    color: var(--mud-palette-text-secondary);
    cursor: pointer;
    white-space: nowrap;
    transition: background-color 0.15s ease, border-color 0.15s ease, color 0.15s ease;
}

.buildings-desktop .unit-section-tab:hover,
.buildings-desktop .unit-section-tab:focus-visible {
    background: var(--mud-palette-action-default-hover);
    color: var(--mud-palette-primary);
    outline: none;
}

.buildings-desktop .unit-section-tab--active {
    color: var(--mud-palette-primary);
    border-bottom-color: var(--mud-palette-primary);
}

.buildings-desktop .unit-section-tab__label {
    font-size: 0.875rem;
    font-weight: 600;
    line-height: 1.2;
}

.buildings-desktop .unit-section-tab__meta {
    font-size: 0.6875rem;
    line-height: 1.2;
    opacity: 0.68;
}

.buildings-desktop .unit-section-content {
    padding: 16px;
}

.buildings-desktop .urbanis-mobile-unit-section {
    width: 100%;
    min-width: 0;
}

@media (max-width: 767.98px) {
    .buildings-desktop .unit-section-content {
        padding: 0.75rem 0;
    }
}

.buildings-desktop .buildings-create { flex-shrink: 0; }
.buildings-desktop .buildings-floor-layout { display: flex; align-items: stretch; border: 1px solid var(--mud-palette-divider); border-radius: var(--mud-default-borderradius); overflow: hidden; }
.buildings-desktop .buildings-floor-rail { width: 148px; flex-shrink: 0; border-right: 1px solid var(--mud-palette-divider); }
.buildings-desktop .buildings-floor-button { border-radius: 0; justify-content: flex-start; text-transform: none; padding: 10px 14px; }
.buildings-desktop .buildings-floor-label { width: 100%; }
.buildings-desktop .buildings-floor-count { opacity: .6; }
.buildings-desktop .buildings-floor-table { flex: 1; min-width: 0; overflow-x: auto; }
.buildings-desktop .buildings-month-heading { white-space: nowrap; }
.buildings-desktop .buildings-obligations { flex-wrap: wrap; }
.buildings-desktop .buildings-month-strip { gap: 3px; flex-wrap: nowrap; }
.buildings-desktop .buildings-month-year { display: inline-flex; flex-direction: column; align-items: center; gap: 1px; padding: 0 2px; opacity: .55; }
.buildings-desktop .buildings-month-year-label { font-size: 8px; line-height: 1; white-space: nowrap; }
.buildings-desktop .buildings-month-year-line { width: 1px; height: 14px; background: rgba(0,0,0,.25); }
.buildings-desktop .buildings-month-marker { position: relative; display: inline-flex; align-items: center; }
.buildings-desktop .buildings-month-pointer { position: absolute; left: 50%; transform: translateX(-50%); width: 0; height: 0; border-left: 4px solid transparent; border-right: 4px solid transparent; }
.buildings-desktop .buildings-month-pointer--top { top: -7px; border-top: 5px solid var(--buildings-month-color); }
.buildings-desktop .buildings-month-pointer--bottom { bottom: -7px; border-bottom: 5px solid var(--buildings-month-color); }
.buildings-desktop .buildings-month-dim { opacity: .35; }

/* RF-03.2 feature controls, shared by Buildings and standalone Unit Relations. */
.buildings-parking { display:flex; flex-direction:column; gap:8px; }
.buildings-parking p { margin:0; font-size:.875rem; }
.buildings-parking-chips, .buildings-relation-actions { display:flex; flex-wrap:wrap; gap:4px; }
.buildings-muted { opacity:.7; }
.buildings-relation-heading { display:flex; align-items:center; justify-content:space-between; gap:8px; }
.buildings-relation-history .urbanis-relation-card { margin:8px 0; background:#fff; }
.buildings-relation-history .urbanis-relation-card p { margin:4px 0; font-size:.8rem; overflow-wrap:anywhere; }
.urbanis-desktop-surface .buildings-editor-actions { justify-content:flex-end; }
.urbanis-desktop-surface .buildings-editor-actions > .urbanis-surface-actions__primary { flex:0 1 auto; }
.phone-surface .buildings-editor-actions { gap:10px; }
.phone-surface .buildings-editor-actions > .urbanis-surface-actions__primary { flex:1; }
.phone-surface .buildings-editor-actions > .mud-button-root:not(.urbanis-surface-actions__primary) { flex:0 0 auto; min-height:52px; padding:0 20px; border:0; border-radius:14px; background:#fffdf9; color:#52606d; font-size:.92rem; font-weight:700; }

/* RF-03.4 payment presentation */
.payment-summary-card { height:100%; display:flex; flex-direction:column; justify-content:space-between; }
.payment-context-month { margin-top:6px; opacity:0.7; font-weight:600; }
.recorded-payment-amount { width:92px; }
.payment-month-popover { z-index:1301; }
.payment-month-count { opacity:0.55; }
.payment-parking-heading { opacity:0.6; }
.payment-confirm-context { background:rgba(0,0,0,0.03); }
.payment-confirm-scroll { max-height:340px; overflow:auto; }
.payment-confirm-card { border:1px solid rgba(0,0,0,0.08); border-radius:6px; }
.payment-confirm-description { min-width:0; }
.payment-confirm-amount { font-variant-numeric:tabular-nums; flex-shrink:0; }
.payment-confirm-unit { min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }

.urbanis-transaction-drawer .urbanis-transaction-drawer__context-header {
    position: sticky;
    top: -12px;
    z-index: 1;
    margin: -12px -16px 8px;
    padding: 12px 16px 10px;
    background: rgba(245, 241, 232, 0.96);
    backdrop-filter: blur(6px);
    border-bottom: 1px solid rgba(0, 0, 0, 0.06);
}

.urbanis-transaction-drawer .urbanis-transaction-drawer__context-header .mud-typography {
    min-width: 0;
}


.transaction-picker-backdrop {
    position: fixed;
    inset: 0;
    z-index: 1300;
}

.transaction-month-picker {
    width: min(19rem, calc(100vw - 2rem));
    padding: 0.75rem;
    display: grid;
    gap: 0.75rem;
}

.transaction-month-picker__grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 0.45rem;
}

.transaction-month-picker__month {
    position: relative;
    min-height: 56px;
    border: 1px solid rgba(23, 59, 50, 0.14);
    border-radius: 8px;
    background: rgba(255, 255, 255, 0.88);
    color: #173b32;
    font: inherit;
    font-size: 0.84rem;
    font-weight: 700;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 0.15rem;
    padding: 0.45rem 0.25rem;
}

.transaction-month-picker__label,
.transaction-month-picker__amounts {
    display: block;
    max-width: 100%;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.transaction-month-picker__amounts {
    font-size: 0.68rem;
    font-weight: 600;
    line-height: 1.1;
    opacity: 0.78;
    font-variant-numeric: tabular-nums;
}

.transaction-month-picker__month--paid {
    border-color: rgba(34, 197, 94, 0.55);
    background: rgba(34, 197, 94, 0.13);
}

.transaction-month-picker__month--partial {
    border-color: rgba(245, 158, 11, 0.6);
    background: rgba(245, 158, 11, 0.16);
}

.transaction-month-picker__month--unpaid {
    border-color: rgba(239, 68, 68, 0.5);
    background: rgba(239, 68, 68, 0.12);
}

.transaction-month-picker__month--selected {
    box-shadow: inset 0 0 0 2px var(--mud-palette-primary);
}

.transaction-month-picker__month--disabled {
    opacity: 0.45;
}

.transaction-month-picker__check {
    position: absolute;
    top: 4px;
    right: 6px;
    color: var(--mud-palette-primary);
    font-size: 0.8rem;
    line-height: 1;
}


.payment-context-row { padding:3px 0; border-bottom:1px solid rgba(0,0,0,.05); }
.payment-context-row--selected { padding:3px 0 3px 6px; background:rgba(245,158,11,.09); box-shadow:inset 3px 0 0 var(--mud-palette-primary); border-radius:2px; }
.payment-context-row--child { padding:2px 0 2px 12px; border-bottom:1px solid rgba(0,0,0,.03); border-left:2px solid rgba(0,0,0,.15); margin-left:8px; }
.payment-context-row--child.payment-context-row--selected { border-left-color:var(--mud-palette-primary); box-shadow:none; border-radius:0; }
.payment-context-row__amount { font-weight:600; }
.payment-context-row--child .payment-context-row__label { opacity:.7; }
.payment-context-row--child .payment-context-row__amount { font-weight:500; opacity:.7; }

.payment-custom-amounts { border:1px solid rgba(0,0,0,.08); border-radius:4px; padding:8px; max-height:160px; overflow-y:auto; }
.payment-month-anchor { position:relative; }

/* RF-04.2: retained expense/campaign editor arrangements. */
.spendings-editor__wrap { flex-wrap: wrap; }
.spendings-editor__grow { flex: 1; }
.spendings-editor__shares { border: 1px solid rgba(0,0,0,0.08); border-radius: 4px; background: white; }
.spendings-editor__center { text-align: center; }
.spendings-editor__right { text-align: right; }
.spendings-editor__share-width { width: 130px; }
.spendings-editor__total { font-weight: 600; border-top: 2px solid rgba(0,0,0,0.12); }
.spendings-editor__hint { color: rgba(0,0,0,0.4); }

.spendings-editor__add-category { white-space: nowrap; margin-bottom: 4px; }
/* Existing editor content supplies its accepted padding inside shared regions. */
.spendings-editor > .urbanis-surface-context,
.spendings-editor > .urbanis-surface-body,
.spendings-editor > .urbanis-surface-footer { padding: 0; }

/* RF-04.3 Ledger presentations; formerly route-isolated. */
/* â”€â”€ Custom tab bar â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€ */
.ledger-workspace .lgrid-tab-bar {
    display: flex;
    align-items: stretch;
    border-bottom: 1px solid rgba(0, 0, 0, 0.10);
    min-height: 56px;
}

.ledger-workspace .lgrid-tab-bar__tabs {
    display: flex;
    flex: 1;
    overflow-x: auto;
    align-items: stretch;
    scrollbar-width: none;
}

.ledger-workspace .lgrid-tab-bar__search {
    display: flex;
    align-items: center;
    flex-shrink: 0;
    width: 320px;
    padding: 6px 10px;
    border-left: 1px solid rgba(0, 0, 0, 0.08);
}

.ledger-workspace .lgrid-tab-bar__tabs::-webkit-scrollbar {
    display: none;
}

.ledger-workspace .lgrid-tab {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    padding: 10px 20px;
    border: none;
    background: transparent;
    cursor: pointer;
    white-space: nowrap;
    border-bottom: 2px solid transparent;
    margin-bottom: -1px;
    transition: color 0.15s ease, border-color 0.15s ease;
    color: rgba(0, 0, 0, 0.6);
    gap: 1px;
}

.ledger-workspace .lgrid-tab:hover {
    color: var(--mud-palette-primary);
    background: rgba(0, 0, 0, 0.03);
}

.ledger-workspace .lgrid-tab--active {
    color: var(--mud-palette-primary);
    border-bottom-color: var(--mud-palette-primary);
    font-weight: 600;
}

.ledger-workspace .lgrid-tab__label {
    font-size: 0.875rem;
    font-weight: inherit;
    line-height: 1.2;
}

.ledger-workspace .lgrid-tab__meta {
    font-size: 0.6875rem;
    opacity: 0.65;
    line-height: 1.2;
}


.ledger-workspace .lgrid-tab-content {
    padding: 0;
}

/* â”€â”€ Scroll wrapper â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€ */
.ledger-workspace .lgrid-wrapper {
    overflow-x: auto;
    width: 100%;
    -webkit-overflow-scrolling: touch;
}

/* â”€â”€ Table base â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€ */
.ledger-workspace .lgrid {
    border-collapse: collapse;
    width: 100%;
    min-width: 780px;
    font-size: 0.8125rem;
}

/* â”€â”€ Header row â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€ */
.ledger-workspace .lgrid__header-row th {
    padding: 8px 10px;
    text-align: center;
    font-size: 0.75rem;
    font-weight: 600;
    letter-spacing: 0.03em;
    color: #6b7280;
    border-bottom: 2px solid rgba(0, 0, 0, 0.08);
    white-space: nowrap;
    background: transparent;
}

.ledger-workspace .lgrid__unit-col {
    text-align: left !important;
    min-width: 120px;
    width: 120px;
    position: sticky;
    left: 0;
    background: #fff;
    z-index: 2;
}

.ledger-workspace .lgrid__month-col {
    min-width: 80px;
    width: 80px;
}

.ledger-workspace .lgrid__month-col--current {
    color: var(--mud-palette-primary) !important;
    border-bottom-color: var(--mud-palette-primary) !important;
}

.ledger-workspace .lgrid__total-col {
    min-width: 96px;
    width: 96px;
    border-left: 2px solid rgba(0, 0, 0, 0.08);
}

/* â”€â”€ Unit rows â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€ */
.lgrid__unit-row:hover .lgrid__unit-cell,
.lgrid__unit-row:hover .lgrid__cell,
.ledger-workspace .lgrid__unit-row:hover .lgrid__total-cell {
    background-color: rgba(245, 241, 232, 0.5);
}

.lgrid__unit-row + .lgrid__unit-row .lgrid__unit-cell,
.lgrid__unit-row + .lgrid__unit-row .lgrid__cell,
.ledger-workspace .lgrid__unit-row + .lgrid__unit-row .lgrid__total-cell {
    border-top: 1px solid rgba(0, 0, 0, 0.05);
}

/* â”€â”€ Unit label cell â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€ */
.ledger-workspace .lgrid__unit-cell {
    padding: 8px 12px;
    vertical-align: middle;
    position: sticky;
    left: 0;
    background: #fff;
    z-index: 1;
    border-right: 1px solid rgba(0, 0, 0, 0.08);
}

.ledger-workspace .lgrid__unit-code {
    display: block;
    font-weight: 600;
    color: #111827;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.ledger-workspace .lgrid__unit-type {
    display: block;
    font-size: 0.6875rem;
    color: #9ca3af;
    margin-top: 1px;
}

.ledger-workspace .lgrid__unit-relation {
    display: block;
    font-size: 0.6875rem;
    color: #6b7280;
    margin-top: 1px;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

/* â”€â”€ Data cells â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€ */
.ledger-workspace .lgrid__cell {
    padding: 6px 8px;
    text-align: center;
    vertical-align: middle;
    cursor: pointer;
    transition: filter 0.1s ease;
    min-height: 42px;
}

.ledger-workspace .lgrid__cell:hover {
    filter: brightness(0.94);
    outline: 2px solid rgba(30, 58, 138, 0.18);
    outline-offset: -2px;
}

.ledger-workspace .lgrid__cell:focus-visible {
    outline: 2px solid var(--mud-palette-primary);
    outline-offset: -2px;
}

/* â”€â”€ Status tints â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€ */
.ledger-workspace .lgrid__cell--paid {
    background: rgba(34, 197, 94, 0.10);
}

.ledger-workspace .lgrid__cell--partial {
    background: rgba(245, 158, 11, 0.12);
}

.ledger-workspace .lgrid__cell--unpaid {
    background: rgba(239, 68, 68, 0.09);
}

/* â”€â”€ Cell text â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€ */
.ledger-workspace .lgrid__cell-empty {
    color: #d1d5db;
    font-size: 0.875rem;
}

.ledger-workspace .lgrid__cell-paid {
    display: block;
    font-weight: 600;
    color: #111827;
    font-size: 0.8125rem;
    font-variant-numeric: tabular-nums;
    line-height: 1.2;
}

.ledger-workspace .lgrid__cell-due {
    display: block;
    font-size: 0.6875rem;
    color: #9ca3af;
    font-variant-numeric: tabular-nums;
    margin-top: 1px;
}

/* â”€â”€ Loading cell â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€ */
.ledger-workspace .lgrid__cell--loading {
    pointer-events: none;
    opacity: 0.6;
}

/* â”€â”€ Campaign column â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€ */
.ledger-workspace .lgrid__campaign-col {
    min-width: 96px;
    width: 96px;
    border-left: 1px dashed rgba(0, 0, 0, 0.12);
    color: #7c3aed !important;
}

.ledger-workspace .lgrid__campaign-cell {
    padding: 6px 10px;
    text-align: center;
    vertical-align: middle;
    border-left: 1px dashed rgba(0, 0, 0, 0.12);
    min-width: 96px;
}

.ledger-workspace .lgrid__campaign-cell--clickable {
    cursor: pointer;
    transition: filter 0.1s ease;
}

.ledger-workspace .lgrid__campaign-cell--clickable:hover {
    filter: brightness(0.94);
    outline: 2px solid rgba(124, 58, 237, 0.25);
    outline-offset: -2px;
}

.ledger-workspace .lgrid__campaign-cell--clickable:focus-visible {
    outline: 2px solid #7c3aed;
    outline-offset: -2px;
}

/* â”€â”€ Year total column â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€ */
.ledger-workspace .lgrid__total-cell {
    padding: 6px 10px;
    text-align: center;
    vertical-align: middle;
    border-left: 2px solid rgba(0, 0, 0, 0.08);
    min-width: 96px;
}

/* â”€â”€ Footer row â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€ */
.ledger-workspace .lgrid__footer-row .lgrid__unit-cell {
    font-weight: 700;
    font-size: 0.8125rem;
    color: #374151;
    border-top: 2px solid rgba(0, 0, 0, 0.10);
}

.ledger-workspace .lgrid__footer-cell {
    border-top: 2px solid rgba(0, 0, 0, 0.10);
    cursor: default;
}

.ledger-workspace .lgrid__footer-cell:hover {
    filter: none;
    outline: none;
}

/* â”€â”€ Current month column highlight â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€ */
.ledger-workspace .lgrid__header-row .lgrid__month-col--current {
    position: relative;
}

.ledger-workspace .lgrid__header-row .lgrid__month-col--current::after {
    content: '';
    position: absolute;
    bottom: 0;
    left: 0;
    right: 0;
    height: 2px;
    background: var(--mud-palette-primary);
}

/* â”€â”€ Mobile: tighten cells â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€ */
@media (max-width: 599.98px) {
    .ledger-workspace .lgrid-wrapper--mobile {
        max-height: calc(100vh - 18rem);
        min-height: 320px;
        overflow: auto;
        border: 1px solid rgba(0, 0, 0, 0.08);
        border-radius: 14px;
        background: #fff;
        overscroll-behavior: contain;
    }

    .ledger-workspace .lgrid--mobile {
        width: max-content;
        min-width: 1020px;
        border-collapse: separate;
        border-spacing: 0;
    }

    .ledger-workspace .lgrid--mobile .lgrid__header-row th {
        position: sticky;
        top: 0;
        z-index: 4;
        background: #fff;
        box-shadow: 0 1px 0 rgba(0, 0, 0, 0.08);
    }

    .ledger-workspace .lgrid--mobile .lgrid__unit-col {
        z-index: 7;
        background-color: #fff !important;
        background-clip: padding-box;
        box-shadow: 2px 0 0 #fff, 3px 0 0 rgba(0, 0, 0, 0.08);
    }

    .ledger-workspace .lgrid--mobile .lgrid__unit-cell {
        z-index: 5;
        background-color: #fff !important;
        background-clip: padding-box;
        box-shadow: 2px 0 0 #fff, 3px 0 0 rgba(0, 0, 0, 0.08);
    }

    .ledger-workspace .lgrid--mobile .lgrid__header-row .lgrid__unit-col {
        z-index: 8;
    }

    .ledger-workspace .lgrid--mobile .lgrid__unit-row:hover .lgrid__unit-cell {
        background-color: #faf8f1 !important;
        box-shadow: 2px 0 0 #faf8f1, 3px 0 0 rgba(0, 0, 0, 0.08);
    }

    .ledger-workspace .lgrid--mobile .lgrid__footer-row .lgrid__unit-cell {
        z-index: 5;
        background-color: #fff !important;
        box-shadow: 2px 0 0 #fff, 3px 0 0 rgba(0, 0, 0, 0.08);
    }

    .ledger-workspace .lgrid__unit-col {
        min-width: 90px;
        width: 90px;
    }

    .ledger-workspace .lgrid__month-col {
        min-width: 66px;
        width: 66px;
    }

    .ledger-workspace .lgrid__cell {
        padding: 4px 5px;
    }

    .ledger-workspace .lgrid__cell-paid {
        font-size: 0.75rem;
    }

    .ledger-workspace .lgrid__cell-due {
        font-size: 0.625rem;
    }
}

/* Shared Ledger grid: one two-axis scroller keeps header and unit identifiers visible. */
.ledger-workspace .lgrid-wrapper--mobile { overflow:auto; max-height:60dvh; min-height:0; }
.ledger-workspace .lgrid--mobile { border-collapse:separate; border-spacing:0; }
.ledger-workspace .lgrid--mobile .lgrid__header-row th { position:sticky; top:0; z-index:4; background:#fffdf9; }
.ledger-workspace .lgrid--mobile .lgrid__header-row .lgrid__unit-col { left:0; z-index:6; }
.ledger-workspace .lgrid--mobile .lgrid__unit-cell { left:0; z-index:2; background:#fffdf9; }
.ledger-workspace--landscape { height:100%; min-height:0; }
.ledger-landscape { display:flex; flex-direction:column; height:100%; min-height:0; overflow:hidden; }
.ledger-landscape__header { display:flex; align-items:center; gap:10px; padding:calc(6px + var(--urbanis-status-bar-top, env(safe-area-inset-top, 0px))) 14px 6px; background:#1b4d3e; color:white; flex-shrink:0; }
.ledger-landscape__title { min-width:0; display:flex; flex-direction:column; }
.ledger-landscape__title strong { font-size:.92rem; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.ledger-landscape__title small { font-size:.7rem; white-space:nowrap; opacity:.85; }
.ledger-landscape__year { flex:0 0 90px; color:inherit; }
.ledger-landscape__year .mud-input, .ledger-landscape__year .mud-input-adornment { color:inherit; }
.ledger-landscape__search { flex:1; min-width:130px; max-width:420px; margin-left:auto; }
.ledger-landscape__search .mud-input-root { background:white; border-radius:8px; }
.ledger-landscape__filters { display:flex; align-items:center; gap:8px; padding:6px 14px; flex-shrink:0; background:#fffdf9; }
.ledger-landscape__sections { display:flex; gap:6px; flex:1; min-width:0; overflow-x:auto; }
.ledger-landscape .lgrid-wrapper--mobile { flex:1; max-height:none; }
.ledger-landscape .lgrid--mobile { min-width:1100px; }
.buildings-view-switch { display:inline-flex; padding:4px; gap:3px; background:var(--mud-palette-surface); border:1px solid rgba(27,77,62,.2); border-radius:12px; }
.buildings-view-switch button { display:inline-flex; align-items:center; gap:7px; padding:8px 15px; border:0; border-radius:8px; background:transparent; color:var(--mud-palette-text-secondary); font:inherit; font-size:.85rem; cursor:pointer; }
.buildings-view-switch button.selected { background:var(--mud-palette-primary); color:var(--mud-palette-primary-text); }
.buildings-view-switch button:focus-visible { outline:2px solid var(--mud-palette-primary); outline-offset:2px; }
.buildings-view-switch .mud-icon-root { width:19px; height:19px; }

.collection-pager { flex-shrink:0; display:flex; align-items:center; justify-content:center; gap:4px; padding:8px; flex-wrap:wrap; }
.collection-pager span { font-size:0.875rem; white-space:nowrap; }

/* RF-05.1 Import: established step/review layout. */
.import-workspace .import-wizard-stepper {
    --wizard-surface: linear-gradient(180deg, rgba(248, 250, 252, 0.96) 0%, rgba(255, 255, 255, 0.98) 100%);
    --wizard-border: rgba(148, 163, 184, 0.22);
    --wizard-shadow: 0 20px 45px rgba(15, 23, 42, 0.08);
    --wizard-muted: rgba(71, 85, 105, 0.84);
    --wizard-accent: linear-gradient(135deg, rgba(15, 118, 110, 0.12), rgba(14, 165, 233, 0.14));
}

/* ── Wizard layout ───────────────────────────────────────── */

.import-workspace .wizard-step-shell {
    display: flex;
    flex-direction: column;
    gap: 1.25rem;
    padding-top: 10px;
}

.import-workspace .wizard-step-hero {
    padding: 1.25rem;
    border-radius: 22px;
    border: 1px solid var(--wizard-border);
    background: linear-gradient(135deg, rgba(15, 23, 42, 0.96), rgba(15, 118, 110, 0.88));
    color: #f8fafc;
    box-shadow: var(--wizard-shadow);
}

.import-workspace .wizard-step-kicker {
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
    width: fit-content;
    padding: 0.35rem 0.7rem;
    border-radius: 999px;
    background: rgba(255, 255, 255, 0.14);
    color: inherit;
    font-size: 0.78rem;
    font-weight: 700;
    letter-spacing: 0.04em;
    text-transform: uppercase;
}

.import-workspace .wizard-step-title {
    margin: 0;
    font-size: 1.4rem;
    font-weight: 700;
    line-height: 1.2;
    color: #ffffff !important;
    text-shadow: 0 1px 2px rgba(15, 23, 42, 0.24);
}

.import-workspace .wizard-step-body {
    margin: 0;
    color: inherit;
    opacity: 0.9;
    max-width: 48rem;
}

.import-workspace .wizard-step-grid {
    display: grid;
    grid-template-columns: repeat(12, minmax(0, 1fr));
    gap: 1rem;
}

.import-workspace .wizard-card {
    border: 1px solid var(--wizard-border);
    border-radius: 20px;
    padding: 1.1rem;
    background: var(--wizard-surface);
    box-shadow: var(--wizard-shadow);
}

.import-workspace .wizard-card--soft {
    background: linear-gradient(180deg, rgba(240, 249, 255, 0.92) 0%, rgba(255, 255, 255, 0.98) 100%);
}

.import-workspace .wizard-card__title {
    margin: 0;
    color: #0f172a;
    font-size: 1rem;
    font-weight: 700;
}

.import-workspace .wizard-card__text {
    margin: 0.35rem 0 0;
    color: var(--wizard-muted);
    font-size: 0.94rem;
}

.import-workspace .wizard-stat-strip {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 0.85rem;
}

.import-workspace .wizard-stat {
    padding: 0.95rem 1rem;
    border-radius: 18px;
    border: 1px solid rgba(148, 163, 184, 0.18);
    background: rgba(255, 255, 255, 0.72);
}

.import-workspace .wizard-stat__label {
    display: block;
    color: var(--wizard-muted);
    font-size: 0.78rem;
    text-transform: uppercase;
    letter-spacing: 0.04em;
}

.import-workspace .wizard-stat__value {
    display: block;
    margin-top: 0.3rem;
    color: #0f172a;
    font-size: 1.15rem;
    font-weight: 700;
}

.import-workspace .wizard-stat--error {
    border-color: rgba(245, 158, 11, 0.35);
    background: rgba(255, 247, 237, 0.82);
}

.import-workspace .wizard-stat--error .wizard-stat__value {
    color: #b45309;
}

.import-workspace .wizard-tip-list {
    display: grid;
    gap: 0.75rem;
}

.import-workspace .wizard-tip {
    padding: 0.85rem 1rem;
    border-radius: 16px;
    background: rgba(255, 255, 255, 0.72);
    border: 1px solid rgba(148, 163, 184, 0.18);
    color: #0f172a;
}

.import-workspace .wizard-step-grid > * {
    grid-column: span 12;
}

.import-workspace .wizard-step-grid .wizard-col-4 {
    grid-column: span 4;
}

.import-workspace .wizard-step-grid .wizard-col-6 {
    grid-column: span 6;
}

.import-workspace .wizard-step-grid .wizard-col-8 {
    grid-column: span 8;
}

.import-workspace .wizard-step-grid .wizard-col-12 {
    grid-column: span 12;
}

/* ── Import-specific ─────────────────────────────────────── */

.import-workspace .import-stat-strip {
    grid-template-columns: repeat(4, minmax(0, 1fr));
}

.import-workspace .import-stat-strip--five {
    grid-template-columns: repeat(5, minmax(0, 1fr));
}

.import-workspace .import-stat-strip--six {
    grid-template-columns: repeat(6, minmax(0, 1fr));
}

.import-workspace .import-drop-zone {
    position: relative;
    padding: 2.5rem 1.5rem;
    border-radius: 18px;
    border: 2px dashed rgba(148, 163, 184, 0.45);
    background: rgba(248, 250, 252, 0.7);
    cursor: pointer;
    transition: border-color 0.15s ease, background 0.15s ease;
    text-align: center;
}

.import-workspace .import-drop-zone:hover,
.import-workspace .import-drop-zone--drag {
    border-color: var(--mud-palette-primary);
    background: rgba(240, 249, 255, 0.85);
}

.import-workspace .import-file-selected {
    padding: 1rem 1.1rem;
    border-radius: 16px;
    border: 1px solid rgba(34, 197, 94, 0.3);
    background: rgba(240, 253, 244, 0.85);
}

.import-workspace .import-row--skipped td {
    opacity: 0.7;
    background: rgba(255, 247, 237, 0.6) !important;
}

/* ── Responsive ──────────────────────────────────────────── */

@media (max-width: 959.98px) {
    .import-workspace .wizard-step-grid .wizard-col-4,
    .import-workspace .wizard-step-grid .wizard-col-6,
    .import-workspace .wizard-step-grid .wizard-col-8 {
        grid-column: span 12;
    }

    .import-workspace .wizard-stat-strip,
    .import-workspace .import-stat-strip,
    .import-workspace .import-stat-strip--five,
    .import-workspace .import-stat-strip--six {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .import-workspace .wizard-step-hero {
        padding: 1rem;
        border-radius: 18px;
    }

    .import-workspace .wizard-card {
        border-radius: 16px;
        padding: 1rem;
    }
}

/* RF-05.3: Wizard styles shared across extracted steps. */
.building-wizard {
    --wizard-surface: linear-gradient(180deg, rgba(248, 250, 252, 0.96) 0%, rgba(255, 255, 255, 0.98) 100%);
    --wizard-border: rgba(148, 163, 184, 0.22);
    --wizard-shadow: 0 20px 45px rgba(15, 23, 42, 0.08);
    --wizard-muted: rgba(71, 85, 105, 0.84);
    --wizard-accent: linear-gradient(135deg, rgba(15, 118, 110, 0.12), rgba(14, 165, 233, 0.14));
}

.building-wizard .wizard-step-shell {
    display: flex;
    flex-direction: column;
    gap: 1.25rem;
    padding-top: 10px;
}

.building-wizard .wizard-step-hero {
    padding: 1.25rem;
    border-radius: 22px;
    border: 1px solid var(--wizard-border);
    background: linear-gradient(135deg, rgba(15, 23, 42, 0.96), rgba(15, 118, 110, 0.88));
    color: #f8fafc;
    box-shadow: var(--wizard-shadow);
}

.building-wizard .wizard-step-hero--light {
    background: var(--wizard-accent);
    color: #0f172a;
}

.building-wizard .wizard-step-kicker {
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
    width: fit-content;
    padding: 0.35rem 0.7rem;
    border-radius: 999px;
    background: rgba(255, 255, 255, 0.14);
    color: inherit;
    font-size: 0.78rem;
    font-weight: 700;
    letter-spacing: 0.04em;
    text-transform: uppercase;
}

.building-wizard .wizard-step-hero--light .wizard-step-kicker {
    background: rgba(255, 255, 255, 0.75);
}

.building-wizard .wizard-step-title {
    margin: 0;
    font-size: 1.4rem;
    font-weight: 700;
    line-height: 1.2;
    color: #ffffff !important;
    text-shadow: 0 1px 2px rgba(15, 23, 42, 0.24);
}

.building-wizard .wizard-step-body {
    margin: 0;
    color: inherit;
    opacity: 0.9;
    max-width: 48rem;
}

.building-wizard .wizard-step-grid {
    display: grid;
    grid-template-columns: repeat(12, minmax(0, 1fr));
    gap: 1rem;
}

.building-wizard .wizard-card {
    border: 1px solid var(--wizard-border);
    border-radius: 20px;
    padding: 1.1rem;
    background: var(--wizard-surface);
    box-shadow: var(--wizard-shadow);
}

.building-wizard .wizard-card--soft {
    background: linear-gradient(180deg, rgba(240, 249, 255, 0.92) 0%, rgba(255, 255, 255, 0.98) 100%);
}

.building-wizard .wizard-card__title {
    margin: 0;
    color: #0f172a;
    font-size: 1rem;
    font-weight: 700;
}

.building-wizard .wizard-card__text {
    margin: 0.35rem 0 0;
    color: var(--wizard-muted);
    font-size: 0.94rem;
}

.building-wizard .wizard-stat-strip {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 0.85rem;
}

.building-wizard .wizard-stat {
    padding: 0.95rem 1rem;
    border-radius: 18px;
    border: 1px solid rgba(148, 163, 184, 0.18);
    background: rgba(255, 255, 255, 0.72);
}

.building-wizard .wizard-stat__label {
    display: block;
    color: var(--wizard-muted);
    font-size: 0.78rem;
    text-transform: uppercase;
    letter-spacing: 0.04em;
}

.building-wizard .wizard-stat__value {
    display: block;
    margin-top: 0.3rem;
    color: #0f172a;
    font-size: 1.15rem;
    font-weight: 700;
}

.building-wizard .wizard-step-grid > * {
    grid-column: span 12;
}

.building-wizard .wizard-step-grid .wizard-col-4 {
    grid-column: span 4;
}

.building-wizard .wizard-step-grid .wizard-col-6 {
    grid-column: span 6;
}

.building-wizard .wizard-step-grid .wizard-col-8 {
    grid-column: span 8;
}

.building-wizard .wizard-step-grid .wizard-col-12 {
    grid-column: span 12;
}

.building-wizard .wizard-overview-surface {
    border: 1px solid var(--wizard-border);
    border-radius: 22px;
    overflow: hidden;
    box-shadow: var(--wizard-shadow);
}

.building-wizard .wizard-overview-toolbar {
    padding: 1rem 1rem 0;
}

.building-wizard .wizard-action-bar {
    position: sticky;
    bottom: 0;
    z-index: 4;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    margin: 0 -1.5rem -1.5rem;
    padding: 1rem 1.5rem calc(1rem + env(safe-area-inset-bottom));
    border-top: 1px solid rgba(23, 59, 50, 0.1);
    background: rgba(255, 253, 249, 0.96);
    backdrop-filter: blur(10px);
}

.building-wizard .wizard-action-bar__actions {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 0.75rem;
}

.building-wizard .wizard-compact-list {
    display: grid;
    gap: 0.25rem;
    border: 1px solid rgba(148, 163, 184, 0.2);
    border-radius: 16px;
    overflow: hidden;
    background: rgba(255, 255, 255, 0.72);
}

.building-wizard .wizard-entrance-list {
    display: grid;
    gap: 1rem;
}

.building-wizard .wizard-entrance-section {
    display: grid;
    gap: 0.85rem;
    padding: 0 0 1rem;
    border-bottom: 1px solid rgba(148, 163, 184, 0.22);
}

.building-wizard .wizard-entrance-section:last-child {
    padding-bottom: 0;
    border-bottom: none;
}

.building-wizard .wizard-entrance-section__header {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 0.75rem;
}

.building-wizard .wizard-entrance-section .wizard-stat-strip {
    display: none;
}

.building-wizard .wizard-compact-row {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(8rem, 12rem);
    align-items: center;
    gap: 1rem;
    padding: 0.65rem 0.85rem;
}

.building-wizard .wizard-compact-row + .wizard-compact-row {
    border-top: 1px solid rgba(148, 163, 184, 0.18);
}

.building-wizard .wizard-compact-row--three {
    grid-template-columns: minmax(0, 1fr) minmax(8rem, 11rem) minmax(8rem, 11rem);
}

.building-wizard .wizard-overview-tabs {
    min-width: 0;
}

.building-wizard .wizard-tip-list {
    display: grid;
    gap: 0.75rem;
}

.building-wizard .wizard-tip {
    padding: 0.85rem 1rem;
    border-radius: 16px;
    background: rgba(255, 255, 255, 0.72);
    border: 1px solid rgba(148, 163, 184, 0.18);
    color: #0f172a;
}

@media (max-width: 959.98px) {
    .building-wizard .wizard-step-grid .wizard-col-4,
    .building-wizard .wizard-step-grid .wizard-col-6,
    .building-wizard .wizard-step-grid .wizard-col-8 {
        grid-column: span 12;
    }

    .building-wizard .wizard-stat-strip {
        grid-template-columns: 1fr;
    }

    .building-wizard .wizard-step-hero {
        padding: 1rem;
        border-radius: 18px;
    }

    .building-wizard .wizard-card {
        border-radius: 16px;
        padding: 1rem;
    }
}

@media (max-width: 767.98px) {
    .building-wizard .building-wizard-card {
        padding-bottom: 0;
    }

    .building-wizard .wizard-action-bar {
        margin: 0 -1rem -1rem;
        padding: 0.75rem 1rem calc(0.75rem + env(safe-area-inset-bottom));
        align-items: stretch;
    }

    .building-wizard .wizard-action-bar,
    .building-wizard .wizard-action-bar__actions {
        display: grid;
        grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
    }

    .building-wizard .wizard-action-bar > .mud-button-root,
    .building-wizard .wizard-action-bar__actions .mud-button-root {
        width: 100%;
        min-height: 44px;
    }

    .building-wizard .wizard-action-bar__actions {
        gap: 0.5rem;
    }

    .building-wizard .wizard-compact-row,
    .building-wizard .wizard-compact-row--three {
        grid-template-columns: minmax(0, 1fr);
        gap: 0.45rem;
    }

    .building-wizard .wizard-entrance-section__header {
        align-items: flex-start;
        flex-direction: column;
        gap: 0.15rem;
    }

    .building-wizard .wizard-overview-mobile-tabs {
        margin: 0.75rem 1rem 0;
    }

    .building-wizard .wizard-overview-tabs .mud-tabs-toolbar {
        overflow-x: auto;
        scrollbar-width: none;
    }

    .building-wizard .wizard-overview-tabs .mud-tabs-toolbar::-webkit-scrollbar {
        display: none;
    }

    .building-wizard .wizard-overview-tabs .mud-tab {
        min-width: max-content;
        border-radius: 999px;
        margin: 0 0.25rem;
    }
}


.building-wizard .wizard-checklist-bar {
    padding: 0.9rem 1rem;
}

.building-wizard .wizard-checklist-chips {
    display: flex;
    flex-wrap: wrap;
    gap: 0.65rem;
}

.building-wizard .wizard-check-chip {
    display: inline-flex;
    align-items: center;
    padding: 0.55rem 0.85rem;
    border-radius: 999px;
    background: rgba(255, 255, 255, 0.92);
    border: 1px solid rgba(148, 163, 184, 0.22);
    color: #0f172a;
    font-size: 0.9rem;
    line-height: 1.3;
    white-space: nowrap;
}

@media (max-width: 959.98px) {
    .building-wizard .wizard-check-chip {
        white-space: normal;
    }
}

.building-wizard .duplex-panel-summary {
    opacity: 0.65;
    font-weight: 400;
    font-size: 0.875rem;
}

.building-wizard .mud-panel-expanded .duplex-panel-summary {
    display: none;
}

.building-wizard .mud-expansion-panels {
    display: flex;
    flex-direction: column;
    gap: 0.6rem;
}

.building-wizard .mud-expansion-panels .mud-expand-panel {
    border: 1px solid var(--wizard-border) !important;
    border-radius: 16px !important;
    background: var(--wizard-surface) !important;
    box-shadow: 0 2px 12px rgba(15, 23, 42, 0.06) !important;
    overflow: hidden !important;
    margin: 0 !important;
    transition: box-shadow 0.2s ease !important;
}

.building-wizard .mud-expansion-panels .mud-expand-panel:hover {
    box-shadow: 0 4px 20px rgba(15, 23, 42, 0.1) !important;
}

.building-wizard .mud-expansion-panels .mud-expand-panel.mud-panel-expanded {
    box-shadow: 0 6px 24px rgba(15, 118, 110, 0.12) !important;
    border-color: rgba(15, 118, 110, 0.28) !important;
}

.building-wizard .mud-expansion-panels .mud-expand-panel-header {
    padding: 1rem 1.1rem !important;
    font-weight: 600 !important;
    font-size: 0.95rem !important;
    color: #0f172a !important;
    min-height: unset !important;
}

.building-wizard .mud-expansion-panels .mud-panel-expanded .mud-expand-panel-header {
    background: linear-gradient(135deg, rgba(15, 118, 110, 0.07), rgba(14, 165, 233, 0.05)) !important;
    border-bottom: 1px solid rgba(15, 118, 110, 0.15) !important;
}

.building-wizard .mud-expansion-panels .mud-expand-panel-content {
    padding: 1.1rem !important;
}

.building-wizard .wizard-fields { border: 0; padding: 0; margin: 0; min-width: 0; }

/* Step actions stay above phone navigation; that region already owns safe-area padding. */
.phone-shell .building-wizard .wizard-action-bar,
.phone-shell .import-workspace .import-action-bar {
    position: sticky;
    bottom: calc(60px + var(--urbanis-content-safe-bottom, env(safe-area-inset-bottom, 0px)));
    z-index: 4;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.5rem;
    margin: 0 -1.5rem -1.5rem;
    padding: 0.75rem 1rem;
    border-top: 1px solid rgba(23, 59, 50, 0.1);
    background: rgba(255, 253, 249, 0.96);
    backdrop-filter: blur(10px);
}

.phone-shell .building-wizard .wizard-action-bar__actions,
.phone-shell .import-workspace .import-action-bar__actions {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 0.5rem;
    margin-left: auto;
}

.phone-shell .building-wizard .wizard-action-bar .mud-button-root,
.phone-shell .import-workspace .import-action-bar .mud-button-root {
    flex: 0 0 auto;
    width: auto;
    min-height: 44px;
}

@media (max-width: 767.98px) {
    .phone-shell .building-wizard .wizard-action-bar,
    .phone-shell .import-workspace .import-action-bar {
        margin: 0 -1rem -1rem;
    }
}

/* RF-06.1 resident filter, preserving desktop treatment. */
.statement-filter-card{border:1px solid rgba(0,0,0,.06);background:linear-gradient(180deg,rgba(245,241,232,.6),#fff)}

/* RF-06.1 summary card and selected-unit treatments. */
.report-summary-card--info{background:linear-gradient(180deg,rgba(232,244,253,.98),rgba(248,251,255,1));border:1px solid rgba(33,150,243,.18)}
.report-summary-card--paid{background:linear-gradient(180deg,rgba(232,245,233,.98),rgba(248,252,248,1));border:1px solid rgba(76,175,80,.22)}
.report-summary-card--unpaid{background:linear-gradient(180deg,rgba(255,235,238,.98),rgba(255,249,249,1));border:1px solid rgba(244,67,54,.22)}
.report-summary-unit--selected{background:rgba(29,79,145,.08);box-shadow:inset 3px 0 0 var(--mud-palette-primary)}

/* CustomerAccessDrawer.razor.css — retained administration presentation hooks. */
.customer-access-drawer-form { max-height:46vh; overflow:auto; }

/* CustomerAccessWorkspace.razor.css — retained administration presentation hooks. */
.customer-access-filter-card { padding: 1rem; background: linear-gradient(135deg, rgba(48,107,255,.08), rgba(35,181,165,.05)); border: 1px solid rgba(48,107,255,.12); }
.customer-access-list { padding: .5rem; overflow: hidden; }
.customer-access-grid { display:grid; grid-template-columns:minmax(180px,2fr) minmax(130px,1.2fr) .55fr .9fr .55fr .9fr auto; gap:.75rem; align-items:center; width:100%; }
.customer-access-grid--header { padding:.65rem 2.75rem .65rem 1rem; color:var(--mud-palette-text-secondary); font-size:.75rem; font-weight:600; }
.customer-access-grid--header > :nth-child(3), .customer-access-grid--header > :nth-child(4), .customer-access-grid--header > :nth-child(5), .customer-access-grid--header > :nth-child(6) { text-align:center; }
.customer-access-subscription { display:flex; align-items:center; gap:.5rem; min-width:0; }
.customer-access-status-chip { height:1.25rem; font-size:.68rem; }
.customer-access-warning-cell { display:flex; align-items:center; justify-content:center; min-width:0; }
.customer-access-mobile-metrics { display:none; }
.customer-access-mobile-panels { display:flex; flex-direction:column; gap:.75rem; }
.customer-access-mobile-card { flex-shrink:0; border:1px solid rgba(23,59,50,.08); border-radius:16px !important; overflow:hidden; background:#fffdf9; box-shadow:0 8px 22px rgba(23,59,50,.05); }
.customer-access-mobile-summary { display:grid; min-width:0; width:100%; grid-template-columns:minmax(0,1fr) auto; align-items:center; gap:8px; padding:.15rem 0; }
.customer-access-mobile-identity { display:flex; min-width:0; flex-direction:column; align-items:flex-start; text-align:left; }
.customer-access-mobile-status { display:flex; width:max-content; align-items:center; justify-content:flex-end; justify-self:end; align-self:center; }
.customer-access-mobile-stats { display:grid; grid-template-columns:repeat(3, minmax(0, 1fr)); gap:.35rem; }
.customer-access-mobile-stats > span { display:flex; flex-direction:column; padding:.5rem; border-radius:8px; background:var(--mud-palette-background-gray); min-width:0; }
.customer-access-mobile-stats strong { font-size:1rem; color:var(--mud-palette-text-primary); }
.customer-access-mobile-stats small { color:var(--mud-palette-text-secondary); font-size:.68rem; line-height:1.15; overflow-wrap:anywhere; }
.customer-access-accounts-section { padding:.75rem; border:1px solid rgba(48,107,255,.14); border-radius:10px; background:rgba(48,107,255,.035); }
.customer-access-accounts-heading { padding:.25rem .25rem .5rem; }
.customer-access-panel { border-top:1px solid var(--mud-palette-lines-default); }
.customer-access-pagination { display:flex; justify-content:flex-end; }
@media (max-width: 960px) {
    .customer-access-grid--header { display:none; }
    .customer-access-grid {
        grid-template-columns:minmax(0, 1fr) auto;
        grid-template-areas:
            "identity edit"
            "subscription edit"
            "metrics metrics"
            "warning warning";
        gap:.35rem .5rem;
        padding:.35rem 0;
    }
    .customer-access-identity { grid-area:identity; min-width:0; }
    .customer-access-subscription { grid-area:subscription; flex-wrap:wrap; gap:.25rem .5rem; }
    .customer-access-grid > :nth-child(3),
    .customer-access-grid > :nth-child(4),
    .customer-access-grid > :nth-child(5) { display:none; }
    .customer-access-warning-cell { grid-area:warning; justify-content:flex-start; }
    .customer-access-mobile-metrics {
        grid-area:metrics;
        display:flex;
        flex-wrap:wrap;
        gap:.35rem .75rem;
        color:var(--mud-palette-text-secondary);
        font-size:.75rem;
    }
    .customer-access-grid > :last-child { grid-area:edit; align-self:start; }
    .customer-access-list { padding:.25rem; }
    .customer-access-pagination { justify-content:center; }
}

@media (max-width: 600px) {
    .customer-access-filter-card { padding:.75rem; }
    .customer-access-create-action { width:100%; }
    .customer-access-mobile-stats { gap:8px; }
    .customer-access-mobile-stats > span { padding:10px 8px; border-radius:14px; background:rgba(27,77,62,.04); }
    .customer-access-mobile-stats strong { color:#173b32; font-size:1.25rem; font-weight:800; font-variant-numeric:tabular-nums; }
    .customer-access-mobile-stats small { color:#52606d; font-weight:700; }
    .customer-access-accounts-section { border:0; border-radius:14px; background:rgba(245,241,232,.6); }
}

/* CustomerStaffPanel.razor.css — retained administration presentation hooks. */
.customer-staff-panel { padding: .75rem 0 .25rem; }
.customer-staff-table { background: transparent; }
.customer-staff-pagination { display: flex; justify-content: flex-end; }
.customer-staff-mobile-card { padding:.75rem; border:1px solid var(--mud-palette-lines-default); border-radius:10px; background:var(--mud-palette-surface); }
.customer-staff-mobile-identity { min-width:0; }
.customer-staff-meta-row { display:flex; flex-wrap:wrap; align-items:center; gap:8px; }
.customer-staff-role-chip { display:inline-flex; align-items:center; gap:5px; padding:3px 9px; border-radius:999px; background:rgba(48,95,114,.10); color:#305f72; font-size:.7rem; font-weight:700; }
.customer-staff-building-chip { display:inline-flex; align-items:center; gap:5px; padding:3px 9px; border-radius:999px; background:rgba(27,77,62,.08); color:#1b4d3e; font-size:.7rem; font-weight:700; }
.customer-staff-manage-button { margin-left:auto; min-height:38px; padding:0 12px; border-radius:999px !important; background:#fffdf9 !important; color:#173b32 !important; font-size:.78rem !important; font-weight:700 !important; }
@media (max-width:600px) {
    .customer-staff-pagination { justify-content:center; }
    .customer-staff-mobile-card { padding:12px; border:1px solid rgba(23,59,50,.08); border-radius:14px; background:rgba(245,241,232,.6); }
}

/* ManagerStaffWorkspace.razor.css — retained administration presentation hooks. */
.manager-staff-workspace { min-width: 0; }
.access-admin-filter-card { padding: 1rem; background: linear-gradient(135deg, rgba(48,107,255,.08), rgba(35,181,165,.05)); border: 1px solid rgba(48,107,255,.12); }
.access-admin-list-card { padding: 1.5rem; overflow: hidden; }
.access-admin-empty-state { padding: 3rem 1rem; max-width: 34rem; margin: 0 auto; }
.access-admin-sort-button { margin: -.375rem 0; padding: .375rem 0; min-width: 0; color: inherit; font: inherit; letter-spacing: inherit; text-transform: none; }
.access-admin-pagination { display: flex; justify-content: flex-end; padding-top: 1rem; }
.access-admin-mobile-title { min-width: 0; width: 100%; }
.access-admin-mobile-identity { min-width: 0; overflow: hidden; }
.access-admin-mobile-panels { display: flex; flex-direction: column; gap: .75rem; }
.access-admin-mobile-card { border: 1px solid var(--mud-palette-lines-default); border-radius: 12px !important; overflow: hidden; }

@media (max-width: 959.98px) {
    .manager-staff-workspace { padding:0 !important; }
    .access-admin-filter-card, .access-admin-list-card { padding: 1rem; }
    .manager-staff-workspace .access-admin-list-card { padding:0; overflow:visible; border:0; background:transparent; box-shadow:none; }
    .access-admin-pagination { justify-content: center; }
}

@media (max-width: 959.98px) {
    .manager-staff-mobile-identity { display:flex; min-width:0; flex:1; flex-direction:column; }
    .manager-staff-mobile-identity strong { overflow:hidden; color:#173b32; font-size:.98rem; font-weight:700; line-height:1.25; text-overflow:ellipsis; white-space:nowrap; }
    .manager-staff-mobile-identity small { overflow:hidden; color:#52606d; font-size:.78rem; font-weight:400; line-height:1.35; text-overflow:ellipsis; white-space:nowrap; }
}

@media (max-width: 600px) {
    .access-admin-create-action { width: 100%; }
}

/* OtherUsersWorkspace.razor.css — retained administration presentation hooks. */
.other-users-filter-card { padding: 1rem; background: linear-gradient(135deg, rgba(48,107,255,.08), rgba(35,181,165,.05)); border: 1px solid rgba(48,107,255,.12); }
.other-users-pagination { display:flex; justify-content:flex-end; }
.other-users-mobile-list { display:flex; flex-direction:column; gap:.75rem; }
.other-users-mobile-card { flex-shrink:0; border:1px solid rgba(23,59,50,.08); border-radius:16px !important; overflow:hidden; background:#fffdf9; box-shadow:0 8px 22px rgba(23,59,50,.05); }
.other-users-mobile-identity { min-width:0; }
@media (max-width:600px) {
    .other-users-filter-card { padding:.75rem; }
    .other-users-pagination { justify-content:center; }
}

/* PlatformAccessAdministrationWorkspace.razor.css — retained administration presentation hooks. */
.platform-access-tabs { padding:0; overflow:hidden; }
.platform-access-tabs-shell { position:relative; }
.platform-access-tab-body { padding:1.25rem; display:flex; flex-direction:column; gap:1rem; }
@media (max-width:959.98px) {
    .platform-access-tabs { background:transparent; box-shadow:none; overflow:visible; }
    .platform-access-tab-body { padding:12px 0 0; }
}

.phone-access-segments { display:flex; gap:4px; padding:4px; border-radius:999px; background:rgba(23,59,50,.07); }
.phone-access-segment { display:flex; min-width:0; min-height:44px; flex:1; align-items:center; justify-content:center; gap:5px; padding:0 4px; border:0; border-radius:999px; background:transparent; color:#52606d; font-family:inherit; font-size:.76rem; font-weight:800; letter-spacing:-.01em; cursor:pointer; }
.phone-access-segment span { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.phone-access-segment--active { background:#fffdf9; color:#0f342c; box-shadow:0 2px 8px rgba(23,59,50,.12); }
.phone-access-segment:active { filter:brightness(.97); }
.phone-access-segment:focus-visible { outline:2px solid #1b4d3e; outline-offset:2px; }

/* ResidentAccessDrawer.razor.css — retained administration presentation hooks. */
.resident-drawer .mud-input-control { min-width: 0; }

/* ResidentAccessWorkspace.razor.css — retained administration presentation hooks. */
.resident-workspace { min-width: 0; }
.resident-workspace .mud-table-cell { vertical-align: middle; }
.resident-access-filter-card { padding:1rem; background:linear-gradient(135deg, rgba(48,107,255,.08), rgba(35,181,165,.05)); border:1px solid rgba(48,107,255,.12); }
.resident-mobile-list { display:flex; flex-direction:column; gap:.75rem; }
.resident-mobile-card { flex-shrink:0; border:1px solid rgba(23,59,50,.08); border-radius:16px !important; overflow:hidden; background:#fffdf9; box-shadow:0 8px 22px rgba(23,59,50,.05); }
.resident-mobile-identity { min-width:0; }
.resident-mobile-relation-row { display:flex; align-items:center; justify-content:space-between; gap:.75rem; padding:.35rem 0; border-top:1px solid var(--mud-palette-lines-default); }
.resident-mobile-relation-row:first-of-type { border-top:0; }
@media (max-width:600px) {
    .resident-access-filter-card { padding:.75rem; }
    .resident-workspace-create { width:100%; }
    .access-result-detail-section { padding:10px; border-radius:14px; background:rgba(245,241,232,.6); }
    .access-result-manage-action { min-height:46px; border-radius:14px; color:#173b32; font-weight:700; }
}

/* AccessAdministration.razor.css — retained administration presentation hooks. */
@media (max-width: 959.98px) {
}

/* Subscriptions.razor.css — retained administration presentation hooks. */
.subscriptions-tabs { padding: 0; overflow: hidden; }
.subscriptions-tab-body { padding: 1.25rem; display: flex; flex-direction: column; gap: 1rem; }
.subscriptions-filter-card { padding: 1rem; background: linear-gradient(135deg, rgba(48, 107, 255, .08), rgba(35, 181, 165, .05)); border: 1px solid rgba(48, 107, 255, .12); border-radius: 14px; }
.subscriptions-section-heading { margin-bottom: .25rem; }
.subscriptions-pagination { margin-top: 1rem; display: flex; justify-content: flex-end; }
.subscriptions-mobile-card { padding:1rem; border:1px solid var(--mud-palette-lines-default); border-radius:12px; background:linear-gradient(135deg, rgba(48, 107, 255, .045), transparent 58%); }
.subscriptions-mobile-card__identity { min-width:0; }
.subscriptions-mobile-card__identity .mud-typography { overflow:hidden; text-overflow:ellipsis; }
.subscriptions-mobile-facts { display:grid; grid-template-columns:repeat(2, minmax(0, 1fr)); gap:.75rem; padding:.75rem; border-radius:10px; background:var(--mud-palette-background-gray); }
@media (max-width: 600px) {
    .subscriptions-tab-body { padding:.75rem; }
    .subscriptions-filter-card { padding:.75rem; }
    .subscriptions-section-heading .mud-button-root { width:100%; }
    .subscriptions-pagination { justify-content:center; }
    .subscriptions-mobile-facts { grid-template-columns:1fr; }
}

.administration-retained-tab[hidden] { display:none!important; }
.administration-surface-session { position:fixed; inset:0; z-index:var(--urbanis-drawer-layer); }
.administration-command-recovery { flex-shrink:0; }

/* RF-06.3 Profile desktop */
.profile-permissions-field .mud-input-control {
    margin-top: 0;
}
.profile-subscriptions-card { padding: 1.25rem; }
.profile-subscription-item { padding: 1rem; border: 1px solid var(--mud-palette-lines-default); background: linear-gradient(135deg, rgba(48, 107, 255, .05), transparent); height: 100%; }
.profile-layout .mud-grid-item > .page-card { height: 100%; }

/* RF-06.4 Public Monthly Summary desktop/base compatibility. */

    /* ─────────────────────────────────────────────
       Shared base
    ───────────────────────────────────────────── */
    .fsv2-page {
        background: #F5F1E8;
        min-height: 100vh;
        font-family: var(--mud-typography-default-family, Roboto, sans-serif);
    }

    /* ─────────────────────────────────────────────
       Desktop styles
    ───────────────────────────────────────────── */
    .fsv2-header {
        position: sticky;
        top: 0;
        z-index: 100;
        background: rgba(255,253,249,0.92);
        backdrop-filter: blur(10px);
        border-bottom: 1px solid rgba(23,59,50,0.08);
    }

    .fsv2-header-inner {
        max-width: 1180px;
        margin: 0 auto;
        padding: 0.75rem 1.5rem;
        display: flex;
        align-items: center;
        justify-content: space-between;
        gap: 1rem;
    }

    .fsv2-wordmark {
        font-size: 1.1rem;
        font-weight: 700;
        color: #173B32;
        letter-spacing: 0.02em;
    }

    .fsv2-header-sub {
        font-size: 0.85rem;
        color: #52606D;
        margin: 0 0 0 0.5rem;
    }

    .fsv2-header-right {
        display: flex;
        align-items: center;
        gap: 0.75rem;
    }

    .fsv2-building-name {
        font-weight: 700;
        color: #173B32;
        font-size: 0.95rem;
    }

    .fsv2-body {
        max-width: 1180px;
        margin: 0 auto;
        padding: 1.5rem;
    }

    .fsv2-card {
        border-radius: 24px;
        border: 1px solid rgba(23,59,50,0.08);
        background: #FFFDF9;
        box-shadow: 0 24px 80px rgba(23,59,50,0.08);
        padding: 1.5rem;
    }

    .fsv2-stat-grid {
        display: grid;
        grid-template-columns: 1fr 1fr;
        gap: 0.75rem;
    }

    .fsv2-stat-tile {
        border-radius: 16px;
        padding: 1rem;
        background: rgba(255,253,249,0.94);
        border: 1px solid rgba(23,59,50,0.08);
    }

    .fsv2-label-upper {
        font-size: 0.78rem;
        font-weight: 700;
        text-transform: uppercase;
        letter-spacing: 0.04em;
        color: #52606D;
        margin-bottom: 0.25rem;
    }

    .fsv2-stat-value {
        font-size: 1.5rem;
        font-weight: 700;
        font-variant-numeric: tabular-nums;
        line-height: 1.2;
    }

    .fsv2-color-heading { color: #173B32; }
    .fsv2-color-success { color: #2F855A; }
    .fsv2-color-error   { color: #C53030; }
    .fsv2-color-amber   { color: #C27803; }

    .fsv2-divider {
        border: none;
        border-top: 1px solid rgba(23,59,50,0.08);
        margin: 1rem 0;
    }

    .fsv2-status-row {
        display: flex;
        flex-wrap: wrap;
        align-items: center;
        gap: 0.6rem;
    }

    .fsv2-badge {
        border-radius: 999px;
        padding: 2px 10px;
        font-size: 0.75rem;
        font-weight: 600;
        white-space: nowrap;
    }

    .fsv2-badge-paid    { background: rgba(34,197,94,0.12);   color: #2F855A; }
    .fsv2-badge-partial { background: rgba(245,158,11,0.15);  color: #C27803; }
    .fsv2-badge-unpaid  { background: rgba(239,68,68,0.10);   color: #C53030; }

    .fsv2-helper-text {
        font-size: 0.78rem;
        color: #52606D;
        margin-left: 0.25rem;
    }

    .fsv2-breakdown-grid {
        display: grid;
        grid-template-columns: 1.2fr 1fr 1fr 1fr;
        gap: 0;
    }

    .fsv2-breakdown-header-cell {
        font-size: 0.75rem;
        font-weight: 700;
        text-transform: uppercase;
        letter-spacing: 0.04em;
        color: #52606D;
        padding: 0 0 0.4rem 0;
        text-align: right;
    }

    .fsv2-breakdown-header-cell:first-child { text-align: left; }

    .fsv2-breakdown-row {
        display: contents;
    }

    .fsv2-breakdown-row > div {
        border-top: 1px solid rgba(23,59,50,0.08);
        padding: 0.45rem 0;
        font-size: 0.88rem;
        font-variant-numeric: tabular-nums;
        text-align: right;
    }

    .fsv2-breakdown-row > div:first-child {
        font-weight: 700;
        color: #173B32;
        text-align: left;
    }

    .fsv2-expense-list {
        max-height: 420px;
        overflow-y: auto;
        display: flex;
        flex-direction: column;
        gap: 0.55rem;
    }

    .fsv2-expense-row {
        border: 1px solid rgba(23,59,50,0.08);
        border-radius: 14px;
        padding: 0.7rem 0.85rem;
        background: #FFFDF9;
        display: flex;
        align-items: center;
        gap: 0.7rem;
        flex-wrap: wrap;
    }

    .fsv2-expense-badge {
        width: 32px;
        height: 32px;
        border-radius: 9px;
        background: rgba(27,77,62,0.12);
        color: #173B32;
        font-weight: 700;
        font-size: 0.68rem;
        letter-spacing: 0.02em;
        display: flex;
        align-items: center;
        justify-content: center;
        flex-shrink: 0;
    }

    .fsv2-expense-info {
        flex: 1;
        min-width: 160px;
        display: flex;
        flex-direction: column;
        gap: 0;
    }

    .fsv2-expense-name {
        font-size: 0.9rem;
        font-weight: 600;
        color: #173B32;
        white-space: nowrap;
        overflow: hidden;
        text-overflow: ellipsis;
    }

    .fsv2-expense-description {
        font-size: 0.75rem;
        color: #6B7280;
    }

    .fsv2-scope-tag {
        display: inline-block;
        margin-top: 0.3rem;
        background: rgba(48,95,114,0.12);
        color: #305F72;
        border-radius: 999px;
        padding: 1px 8px;
        font-size: 0.68rem;
        font-weight: 600;
        white-space: nowrap;
        align-self: flex-start;
    }

    .fsv2-expense-amount {
        font-weight: 700;
        font-variant-numeric: tabular-nums;
        font-size: 0.95rem;
        color: #173B32;
        white-space: nowrap;
        margin-left: auto;
        flex-shrink: 0;
    }

    .fsv2-entrance-card {
        border-radius: 24px;
        border: 1px solid rgba(23,59,50,0.08);
        background: #FFFDF9;
        box-shadow: 0 24px 80px rgba(23,59,50,0.08);
        padding: 1.25rem 1.5rem 1.5rem;
    }

    .fsv2-entrance-header {
        display: flex;
        align-items: center;
        justify-content: space-between;
        margin-bottom: 0.6rem;
    }

    .fsv2-entrance-title {
        font-size: 1.05rem;
        font-weight: 700;
        color: #173B32;
    }

    .fsv2-entrance-paid-count {
        font-size: 0.82rem;
        font-variant-numeric: tabular-nums;
        color: #52606D;
    }

    .fsv2-progress-bar {
        height: 6px;
        border-radius: 999px;
        background: rgba(23,59,50,0.08);
        overflow: hidden;
        display: flex;
        margin-bottom: 1rem;
    }

    .fsv2-progress-paid    { background: #2F855A; }
    .fsv2-progress-partial { background: #C27803; }
    .fsv2-progress-unpaid  { background: #C53030; }

    .fsv2-type-group {
        margin-bottom: 1rem;
    }

    .fsv2-type-label {
        font-size: 0.75rem;
        font-weight: 700;
        text-transform: uppercase;
        letter-spacing: 0.04em;
        color: #52606D;
        margin-bottom: 0.4rem;
    }

    .fsv2-chip-wrap {
        display: flex;
        flex-wrap: wrap;
        gap: 0.4rem;
    }

    .fsv2-unit-chip {
        min-width: 60px;
        min-height: 32px;
        border-radius: 8px;
        display: inline-flex;
        flex-direction: column;
        align-items: center;
        justify-content: center;
        font-size: 0.78rem;
        font-weight: 600;
        font-variant-numeric: tabular-nums;
        padding: 4px 8px;
        cursor: default;
        line-height: 1.15;
    }

    .fsv2-chip-owner {
        font-size: 0.62rem;
        font-weight: 500;
        font-variant-numeric: normal;
        opacity: 0.85;
        max-width: 96px;
        white-space: nowrap;
        overflow: hidden;
        text-overflow: ellipsis;
        margin-top: 1px;
    }

    .fsv2-chip-paid {
        background: rgba(34,197,94,0.10);
        color: #2F855A;
        border: 1px solid rgba(47,133,90,0.30);
    }

    .fsv2-chip-partial {
        background: rgba(245,158,11,0.14);
        color: #C27803;
        border: 1px solid rgba(194,120,3,0.35);
        box-shadow: 0 0 0 1px rgba(194,120,3,0.15);
    }

    .fsv2-chip-unpaid {
        background: rgba(239,68,68,0.10);
        color: #C53030;
        border: 1px solid rgba(197,48,48,0.35);
        box-shadow: 0 0 0 1px rgba(197,48,48,0.15);
    }

    .fsv2-ledger-legend {
        display: flex;
        flex-wrap: wrap;
        align-items: center;
        gap: 0.5rem;
    }

    .fsv2-note {
        border-left: 4px solid #1B4D3E;
        padding: 1rem 1.25rem;
        background: rgba(27,77,62,0.06);
        border-radius: 0 12px 12px 0;
        margin-bottom: 1.5rem;
    }

    .fsv2-note-label {
        font-size: 0.78rem;
        font-weight: 700;
        text-transform: uppercase;
        letter-spacing: 0.04em;
        color: #173B32;
        margin-bottom: 0.35rem;
    }

    .fsv2-note-body {
        font-size: 0.92rem;
        color: #1f2933;
        white-space: pre-wrap;
    }

    .fsv2-board-card {
        border-radius: 24px;
        border: 1px solid rgba(23,59,50,0.08);
        background: #FFFDF9;
        box-shadow: 0 24px 80px rgba(23,59,50,0.08);
        padding: 1rem 1.5rem;
        margin-bottom: 1.5rem;
        display: flex;
        align-items: center;
        flex-wrap: wrap;
        gap: 0.75rem;
    }

    .fsv2-board-label {
        font-size: 0.78rem;
        font-weight: 700;
        text-transform: uppercase;
        letter-spacing: 0.04em;
        color: #52606D;
        flex-shrink: 0;
        margin-right: 0.25rem;
    }

    .fsv2-board-name {
        font-size: 0.88rem;
        font-weight: 600;
        color: #173B32;
        background: rgba(23,59,50,0.06);
        border: 1px solid rgba(23,59,50,0.10);
        border-radius: 999px;
        padding: 3px 12px;
        white-space: nowrap;
    }


/* Public summary presentation rules extracted from the routed page. */
.public-summary-wordmark-row { display:flex; align-items:baseline; gap:0.1rem; flex-wrap:wrap; }
.public-summary-month-desktop { min-width:145px; }
.public-summary-month-phone { width:100%; margin-top:0.75rem; }
.public-summary-loading { display:flex; align-items:center; justify-content:center; min-height:60vh; }
.public-summary-unavailable { display:flex; flex-direction:column; align-items:center; justify-content:center; min-height:60vh; text-align:center; padding:2rem; gap:1rem; }
.public-summary-unavailable-icon { font-size:64px; opacity:0.3; }
.public-summary-overview-grid { display:grid; grid-template-columns:1fr 1fr; gap:1.5rem; margin-bottom:1.5rem; align-items:stretch; }
.public-summary-number { font-variant-numeric:tabular-nums; }
.public-summary-breakdown-title { font-size:0.88rem; font-weight:700; color:#173B32; margin-bottom:0.6rem; }
.public-summary-align-left { text-align:left; }
.public-summary-type-name { font-weight:700; color:#173B32; text-align:left; }
.public-summary-color-body { color:#1f2933; }
.public-summary-color-paid { color:#2F855A; }
.public-summary-color-partial { color:#C27803; }
.public-summary-overview-column { display:flex; flex-direction:column; gap:1.5rem; }
.public-summary-balance-row { display:flex; align-items:center; justify-content:space-between; gap:1rem; padding:1rem 1.25rem; }
.public-summary-balance-label { font-size:0.75rem; font-weight:700; text-transform:uppercase; letter-spacing:0.04em; color:#52606D; }
.public-summary-balance-since { font-size:0.75rem; color:#8A97A4; margin-top:2px; }
.public-summary-expenses-card { flex:1; background:rgba(255,253,249,0.86); }
.public-summary-expenses-heading-row { display:flex; align-items:baseline; justify-content:space-between; gap:0.5rem; margin-bottom:1rem; flex-wrap:wrap; }
.public-summary-expenses-heading { margin:0; font-size:1.15rem; font-weight:700; color:#173B32; letter-spacing:-0.02em; }
.public-summary-expenses-total { font-size:0.85rem; color:#6B7280; white-space:nowrap; }
.public-summary-heading-number { color:#173B32; font-variant-numeric:tabular-nums; }
.public-summary-empty-expenses { padding:0.5rem 0; }
.public-summary-ledger-spacing { margin-bottom:1rem; }
.public-summary-ledger-heading-row { display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:0.75rem; margin-bottom:1rem; }
.public-summary-ledger-heading { font-size:1.15rem; font-weight:700; color:#173B32; }
.public-summary-ledger-groups { display:flex; flex-direction:column; gap:1rem; }
.public-summary-accordion { cursor:pointer; }
.public-summary-status-counts { display:flex; gap:0.35rem; align-items:center; }
.public-summary-expand-desktop { font-size:1.1rem; color:#52606D; margin-left:0.25rem; }
.public-summary-progress-desktop { margin-top:0.75rem; }
.public-summary-footer { text-align:center; padding:1.5rem 0 0.5rem; }
.public-summary-footer-link { font-size:0.75rem; color:#52606D; text-decoration:none; }
.public-summary-phone-note { border-left:4px solid #1B4D3E; padding:1rem 1.25rem; background:rgba(27,77,62,0.06); border-radius:0 12px 12px 0; }
.public-summary-phone-note-label { font-size:0.78rem; font-weight:700; text-transform:uppercase; letter-spacing:0.04em; color:#173B32; margin-bottom:0.35rem; }
.public-summary-phone-note-body { font-size:0.92rem; color:#1f2933; white-space:pre-wrap; }
.public-summary-board-spacing { margin-bottom:0.5rem; }
.public-summary-board-list { display:flex; flex-wrap:wrap; gap:0.4rem; margin-top:0.5rem; }
.public-summary-color-heading { color:#173B32; }
.public-summary-color-unpaid { color:#C53030; }
.public-summary-phone-status-row { display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:0.5rem; }
.public-summary-phone-status-labels { display:flex; align-items:center; gap:0.4rem; flex-wrap:wrap; }
.public-summary-phone-number { font-weight:700; color:#173B32; font-variant-numeric:tabular-nums; }
.public-summary-phone-balance-row { display:flex; align-items:center; justify-content:space-between; gap:0.75rem; flex-wrap:wrap; }
.public-summary-phone-balance-since { font-size:0.72rem; color:#8A97A4; margin-top:2px; }
.public-summary-breakdown-rows { display:flex; flex-direction:column; gap:0.4rem; margin-top:0.5rem; }
.public-summary-breakdown-row { display:flex; align-items:center; justify-content:space-between; gap:0.5rem; }
.public-summary-breakdown-type { font-weight:700; color:#173B32; font-size:0.85rem; }
.public-summary-breakdown-numbers { display:flex; gap:0.75rem; font-size:0.78rem; font-variant-numeric:tabular-nums; flex-shrink:0; }
.public-summary-color-muted { color:#52606D; }
.public-summary-phone-expenses-heading { display:flex; align-items:baseline; justify-content:space-between; margin-bottom:0.5rem; }
.public-summary-phone-expenses-total { font-size:0.85rem; font-weight:700; color:#173B32; font-variant-numeric:tabular-nums; }
.public-summary-phone-expense-description { margin:0; font-size:0.82rem; color:#6B7280; }
.public-summary-phone-expense-category { font-weight:600; color:#173B32; font-size:0.8rem; line-height:1.25; }
.public-summary-phone-expense-scope { display:flex; flex-wrap:wrap; gap:3px; }
.public-summary-phone-ledger-groups { display:flex; flex-direction:column; gap:0.9rem; }
.public-summary-phone-ledger-heading { display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:0.4rem; }
.public-summary-phone-ledger-legend { display:flex; gap:0.4rem; }
.public-summary-phone-entrance-heading { display:flex; align-items:center; justify-content:space-between; }
.public-summary-entrance-name { font-weight:700; color:#173B32; }
.public-summary-expand-phone { font-size:1rem; color:#52606D; margin-left:0.15rem; }
.public-summary-progress-phone { margin-top:0.6rem; }
.public-summary-phone-floors { display:flex; flex-direction:column; gap:0.55rem; margin-top:0.4rem; }
.public-summary-phone-floor { border-top:1px solid rgba(23,59,50,0.08); padding-top:0.5rem; }
.public-summary-phone-floor-label { font-size:0.68rem; font-weight:700; color:#52606D; margin-bottom:0.35rem; }
.public-summary-phone-chip-wrap { display:flex; flex-wrap:wrap; gap:0.3rem; }
.public-summary-phone-type-floor { border-top:1px solid rgba(23,59,50,0.08); padding-top:0.5rem; margin-top:0.5rem; }
.public-summary-nonresidential-chip { min-width:56px; }


/* RF-06.4 publication configuration and share cards. */
.publication-config-card,
.publication-share-card {
    border: 1px solid rgba(0, 0, 0, 0.08);
}

.publication-option-row {
    max-width: 760px;
}

.publication-title-row {
    width: 100%;
}

.publication-title-row .mud-chip {
    flex-shrink: 0;
}

.publication-option-help {
    padding-left: 3rem;
}

.publication-message-editor {
    margin-left: 3rem;
    padding: 1rem;
    border: 1px solid rgba(0, 0, 0, 0.08);
    background: linear-gradient(180deg, rgba(245, 241, 232, 0.55) 0%, #fff 100%);
}

.publication-link-field {
    width: 100%;
    max-width: 760px;
}

.publication-actions,
.publication-share-actions {
    width: 100%;
    justify-content: flex-end !important;
}


.publication-owner-option { margin-left: 2.5rem; }
.publication-phone-heading { display: grid; gap: 4px; }
.publications-phone { display: grid; gap: 24px; }


.public-summary-balance-desktop { font-size: 1.5rem; font-weight: 700; font-variant-numeric: tabular-nums; white-space: nowrap; }
.public-summary-balance-phone { font-size: 1.25rem; font-weight: 700; font-variant-numeric: tabular-nums; }

/* Components/Pages/Auth/AcceptInvitation — target-local isolation-equivalent owner. */
.accept-invitation-page[data-style-owner="invitation"] {
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 100vh;
    min-height: 100dvh;
    padding: 1.5rem;
    background: linear-gradient(160deg, #1B4D3E 0%, #163F35 40%, #0F342C 100%);
}

.accept-invitation-container[data-style-owner="invitation"] {
    width: 100%;
    max-width: 28rem;
}

.accept-invitation-card[data-style-owner="invitation"] {
    border-radius: 20px !important;
    overflow: hidden;
    background: var(--mud-palette-surface) !important;
}

.accept-invitation-header[data-style-owner="invitation"] {
    background: linear-gradient(135deg, #1B4D3E 0%, #173B32 100%);
    padding: 2rem 2rem 1.75rem;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 0.35rem;
    text-align: center;
}

.accept-invitation-body[data-style-owner="invitation"] {
    padding: 1.75rem 2rem 2rem;
}

@media (max-width: 600px) {
    .accept-invitation-page[data-style-owner="invitation"] {
        padding: 0;
        align-items: stretch;
    }

    .accept-invitation-container[data-style-owner="invitation"] {
        max-width: none;
        min-height: 100vh;
        min-height: 100dvh;
        display: flex;
        flex-direction: column;
    }

    .accept-invitation-card[data-style-owner="invitation"] {
        border-radius: 0 !important;
        flex: 1;
        display: flex;
        flex-direction: column;
    }

    .accept-invitation-body[data-style-owner="invitation"] {
        flex: 1;
        padding: 1.25rem 1.5rem 1.5rem;
    }

    .accept-invitation-header[data-style-owner="invitation"] {
        padding: 1.5rem 1.5rem 1.25rem;
    }
}


/* Components/Pages/Auth/ResetPassword — target-local isolation-equivalent owner. */
.password-reset-page[data-style-owner="password-reset"] { display:flex; align-items:center; justify-content:center; min-height:100vh; min-height:100dvh; padding:1.5rem; background:linear-gradient(160deg,#1B4D3E 0%,#163F35 40%,#0F342C 100%); }
.password-reset-container[data-style-owner="password-reset"] { width:100%; max-width:28rem; }
.password-reset-card[data-style-owner="password-reset"] { border-radius:20px !important; overflow:hidden; background:var(--mud-palette-surface) !important; }
.password-reset-header[data-style-owner="password-reset"] { background:linear-gradient(135deg,#1B4D3E 0%,#173B32 100%); padding:2rem; display:flex; flex-direction:column; align-items:center; gap:.35rem; text-align:center; }
.password-reset-body[data-style-owner="password-reset"] { padding:1.75rem 2rem 2rem; }
@media (max-width:600px) { .password-reset-page[data-style-owner="password-reset"] { padding:0; align-items:stretch; } .password-reset-container[data-style-owner="password-reset"] { max-width:none; min-height:100dvh; display:flex; } .password-reset-card[data-style-owner="password-reset"] { border-radius:0 !important; flex:1; } .password-reset-body[data-style-owner="password-reset"] { padding:1.25rem 1.5rem 1.5rem; } }


/* Components/Shared/Inputs/UnitSearchBox — target-local isolation-equivalent owner. */
.unit-search-box[data-style-owner="unit-search"] {
    position: relative;
    width: min(100%, 300px);
    height: 36px;
    flex-shrink: 0;
}

.unit-search-box__field[data-style-owner="unit-search"] {
    display: flex;
    align-items: center;
    gap: 6px;
    height: 36px;
    width: 100%;
    padding: 0 8px 0 10px;
    border: 1px solid var(--mud-palette-lines-inputs);
    border-radius: var(--mud-default-borderradius);
    background: var(--mud-palette-surface);
    transition: border-color 0.15s ease, box-shadow 0.15s ease;
}

.unit-search-box__field:focus-within[data-style-owner="unit-search"] {
    border-color: var(--mud-palette-primary);
    box-shadow: 0 0 0 1px var(--mud-palette-primary);
}

.unit-search-box__search-icon[data-style-owner="unit-search"] {
    flex-shrink: 0;
    color: var(--mud-palette-text-secondary);
    opacity: 0.7;
}

.unit-search-box__native[data-style-owner="unit-search"] {
    min-width: 0;
    flex: 1;
    height: 100%;
    border: 0;
    outline: 0;
    background: transparent;
    color: var(--mud-palette-text-primary);
    font: inherit;
    font-size: 0.875rem;
}

.unit-search-box__native[data-style-owner="unit-search"]::placeholder {
    color: var(--mud-palette-text-secondary);
    opacity: 0.72;
}

.unit-search-box__native:disabled[data-style-owner="unit-search"] {
    cursor: default;
    opacity: 0.7;
}

.unit-search-box__clear[data-style-owner="unit-search"] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex: 0 0 24px;
    width: 24px;
    height: 24px;
    padding: 0;
    border: 0;
    border-radius: 50%;
    background: transparent;
    color: var(--mud-palette-text-secondary);
    cursor: pointer;
}

.unit-search-box__clear:hover[data-style-owner="unit-search"],
.unit-search-box__clear:focus-visible[data-style-owner="unit-search"] {
    background: var(--mud-palette-action-default-hover);
    outline: none;
}

.unit-search-box__suggestions[data-style-owner="unit-search"] {
    position: absolute;
    top: calc(100% + 6px);
    left: 0;
    right: 0;
    z-index: 20;
    overflow: hidden;
    text-align: left;
    background: var(--mud-palette-surface);
    border: 1px solid var(--mud-palette-divider);
    border-radius: 8px;
    box-shadow: 0 10px 24px rgba(15, 23, 42, 0.12);
}

.unit-search-box__suggestion[data-style-owner="unit-search"] {
    width: 100%;
    border: 0;
    background: var(--mud-palette-surface);
    color: var(--mud-palette-text-primary);
    display: flex;
    align-items: center;
    justify-content: flex-start;
    gap: 8px;
    min-height: 40px;
    padding: 9px 12px;
    text-align: left;
    cursor: pointer;
    font: inherit;
}

.unit-search-box__suggestion:hover[data-style-owner="unit-search"],
.unit-search-box__suggestion:focus-visible[data-style-owner="unit-search"] {
    background: var(--mud-palette-action-default-hover);
    outline: none;
}

.unit-search-box__suggestion-icon[data-style-owner="unit-search"] {
    flex-shrink: 0;
    opacity: 0.68;
}

.unit-search-box__suggestion span[data-style-owner="unit-search"] {
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.unit-search-box__count[data-style-owner="unit-search"] {
    display: block;
    margin-top: 2px;
    opacity: 0.72;
    text-align: right;
}

@media (max-width: 599.98px) {
    .unit-search-box[data-style-owner="unit-search"] {
        width: 100%;
    }

    .unit-search-box__count[data-style-owner="unit-search"] {
        text-align: left;
    }
}


/* Static presentation formerly held in Razor style attributes. Semantic hooks
   repeat once for sufficient specificity over Mud defaults; no !important is
   introduced, preserving existing Phone important overrides. */
.urbanis-access-header.urbanis-access-header { background:linear-gradient(135deg, var(--mud-palette-primary) 0%, #1d4f91 100%); color:white; flex-shrink:0; }
.urbanis-access-heading.urbanis-access-heading { color:white; }
.urbanis-access-caption.urbanis-access-caption { color:rgba(255,255,255,.75); }
.urbanis-fixed-region.urbanis-fixed-region { flex-shrink:0; }
.urbanis-fill-region.urbanis-fill-region { flex:1 }
.urbanis-access-header-chip.urbanis-access-header-chip { color:white; border-color:rgba(255,255,255,0.55); }
.urbanis-access-assignment-card.urbanis-access-assignment-card { border:1px solid rgba(0,0,0,0.1); border-radius:6px; }
.urbanis-access-assignment-preview.urbanis-access-assignment-preview { background:rgba(0,0,0,0.025); border-radius:6px; }
.urbanis-access-account-action.urbanis-access-account-action { min-height:44px; flex-shrink:0; }
.urbanis-fill-min-width.urbanis-fill-min-width { flex:1; min-width:0; }
.urbanis-muted-copy.urbanis-muted-copy { opacity:0.6; }
.urbanis-file-name.urbanis-file-name { font-weight:600; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.urbanis-file-size.urbanis-file-size { opacity:0.65; }
.urbanis-ledger-flush-panel.urbanis-ledger-flush-panel { padding:0; }
.urbanis-ledger-detail-row.urbanis-ledger-detail-row { display:flex; align-items:stretch; border-top:1px solid var(--mud-palette-divider); }
.urbanis-ledger-detail-navigation.urbanis-ledger-detail-navigation { width:148px; flex-shrink:0; border-right:1px solid var(--mud-palette-divider); }
.urbanis-ledger-detail-navigation-action.urbanis-ledger-detail-navigation-action { border-radius:0; justify-content:flex-start; text-transform:none; padding:10px 14px; }
.urbanis-full-width.urbanis-full-width { width:100%; }
.urbanis-ledger-detail-scroller.urbanis-ledger-detail-scroller { flex:1; min-width:0; overflow-x:auto; }
.urbanis-ledger-filter-panel.urbanis-ledger-filter-panel { border:1px solid rgba(0,0,0,0.06); background:linear-gradient(180deg, rgba(245,241,232,0.6) 0%, rgba(255,255,255,1) 100%); }
.urbanis-category-list-panel.urbanis-category-list-panel { border:1px solid rgba(0,0,0,0.06); }
.urbanis-category-row-indent.urbanis-category-row-indent { padding-left:20px; }
.urbanis-category-disabled-affordance.urbanis-category-disabled-affordance { opacity:0.4; user-select:none; }
.urbanis-expense-total-label.urbanis-expense-total-label { font-weight:600; text-align:right; }
.urbanis-expense-total-amount.urbanis-expense-total-amount { font-weight:600; }
.urbanis-account-secondary-copy.urbanis-account-secondary-copy { color:var(--mud-palette-text-secondary); }
.urbanis-invitation-state-icon.urbanis-invitation-state-icon { font-size:3rem; color:rgba(245,241,232,0.9); }
.urbanis-invitation-state-title.urbanis-invitation-state-title { color:#F5F1E8; font-weight:600; }
.urbanis-invitation-brand.urbanis-invitation-brand { color:#F5F1E8; font-weight:700; margin:0; }
.urbanis-invitation-welcome.urbanis-invitation-welcome { color:rgba(245,241,232,0.9); font-weight:400; }
.urbanis-invitation-subtext.urbanis-invitation-subtext { color:rgba(245,241,232,0.7); }
.urbanis-invitation-submit.urbanis-invitation-submit { border-radius:14px; font-weight:600; letter-spacing:0.5px; }
.urbanis-reset-state-icon.urbanis-reset-state-icon { font-size:3rem; color:#F5F1E8; }
.urbanis-reset-state-title.urbanis-reset-state-title { color:#F5F1E8; }
.urbanis-reset-brand.urbanis-reset-brand { color:#F5F1E8; font-weight:700; }
.urbanis-reset-heading.urbanis-reset-heading { color:rgba(245,241,232,0.9); }
.urbanis-buildings-feedback.urbanis-buildings-feedback { margin:0 0 16px; }
.urbanis-buildings-loading.urbanis-buildings-loading { margin-top:18px; }
.urbanis-buildings-empty.urbanis-buildings-empty { margin:16px 0; }
.urbanis-month-picker-layer.urbanis-month-picker-layer { position:fixed; inset:0; z-index:1300; }
.urbanis-month-picker-anchor.urbanis-month-picker-anchor { position:relative; }
.urbanis-month-picker-button.urbanis-month-picker-button { min-width:0; padding:0 4px; font-weight:500; text-transform:none; gap:4px; }
.urbanis-month-picker-icon.urbanis-month-picker-icon { font-size:16px; }
.urbanis-month-picker-popover.urbanis-month-picker-popover { z-index:1301; }

/* Finite presentation states use classes; only measured geometry/data values remain runtime. */
.urbanis-ledger-year.urbanis-ledger-year { min-width:100px; }
.urbanis-ledger-year--phone.urbanis-ledger-year--phone { min-width:0; }
.urbanis-campaign-allocation-total.urbanis-campaign-allocation-total { text-align:right; }
.urbanis-campaign-allocation-total--success.urbanis-campaign-allocation-total--success { color:var(--mud-palette-success); }
.urbanis-campaign-allocation-total--error.urbanis-campaign-allocation-total--error { color:var(--mud-palette-error); }
.urbanis-campaign-allocation-total--warning.urbanis-campaign-allocation-total--warning { color:var(--mud-palette-warning); }
.buildings-month-pointer--paid { --buildings-month-color:var(--mud-palette-success); }
.buildings-month-pointer--partial { --buildings-month-color:var(--mud-palette-warning); }
.buildings-month-pointer--unpaid { --buildings-month-color:var(--mud-palette-error); }
.buildings-month-pointer--empty { --buildings-month-color:rgba(0,0,0,0.54); }
