/* app.css */
@import 'tokens.css';
@import 'layout.css';
@import 'components.css';
@import 'utilities.css';
@import 'responsive.css';
@import 'v2-theme.css';
@import 'help.css';
@import 'ux.css';

/* Utility classes for specific pages */
.text-danger { color: var(--color-danger); }
.text-success { color: var(--color-success); }
.text-warning { color: var(--color-warning); }
.text-muted { color: var(--color-text-muted); }
.font-bold { font-weight: 700; }
.font-semibold { font-weight: 600; }

.w-100 { width: 100%; }
.text-center { text-align: center; }
/* G-06e: long emails/phones wrap inside cards instead of overflowing at 390px. */
.text-break { overflow-wrap: anywhere; word-break: break-word; }
.guest-list article { min-width: 0; overflow-wrap: anywhere; }
.text-right { text-align: right; }

.gap-2 { gap: var(--space-2); }

/* Phase K operational pages: responsive layout and contained wide data. */
html,
body {
    max-width: 100%;
    overflow-x: hidden;
}

/* Phase R5 — house profitability */
.profitability-filters { margin-bottom: var(--space-4); }
.profitability-summary {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: var(--space-4);
    margin: var(--space-4) 0;
}
.profitability-rule-note { margin-bottom: var(--space-4); }
.profitability-section { margin-bottom: var(--space-4); }
.profitability-breakdowns {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: var(--space-5);
}
.profitability-breakdowns dl,
.house-profitability-summary { margin: 0; }
.profitability-breakdowns dl > div,
.house-profitability-summary > div {
    display: flex;
    justify-content: space-between;
    gap: var(--space-3);
    padding: var(--space-2) 0;
    border-bottom: 1px solid var(--color-border);
}
.profitability-breakdowns dd,
.house-profitability-summary dd { margin: 0; font-weight: 700; text-align: right; }
.house-profitability-summary > div:last-child { border-bottom: 0; font-size: var(--text-lg); }
.ownership-gap { border-color: #f0b429; }
.owner-profitability-filter {
    display: grid;
    grid-template-columns: minmax(180px, 1fr) repeat(2, minmax(150px, .7fr)) auto;
    gap: var(--space-3);
    align-items: end;
}

@media (max-width: 640px) {
    .profitability-summary,
    .profitability-breakdowns { grid-template-columns: 1fr; }
    .owner-profitability-filter { grid-template-columns: 1fr; }
    .owner-profitability-filter .btn { width: 100%; }
}

/* Phase R2: compact temporal occupancy presentation. */
.person-stay-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0.75rem;
}

.person-stay-item {
    border: 1px solid var(--color-border);
    border-radius: var(--radius-md);
    padding: 1rem;
    background: var(--color-surface, #fff);
}

.person-stay-item > div:first-child {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.75rem;
}

.person-stay-item p {
    margin: 0.55rem 0 0.15rem;
}

.house-stay-group + .house-stay-group {
    padding-top: 1rem;
    border-top: 1px solid var(--color-border);
}

/* Phase S: detail-page tabs (house/person) with a visible active tab. */
.tabs {
    display: flex;
    gap: 0.25rem;
    margin-bottom: var(--space-4, 1rem);
    border-bottom: 1px solid var(--color-border);
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
}

.tabs .tab-item {
    flex: 0 0 auto;
    padding: 0.75rem 1rem;
    min-height: 44px;
    border-bottom: 2px solid transparent;
    margin-bottom: -1px;
    color: var(--color-text-muted);
    font-weight: 600;
    text-decoration: none;
    white-space: nowrap;
}

.tabs .tab-item:hover {
    color: var(--color-primary);
}

.tabs .tab-item.active {
    color: var(--color-primary);
    border-bottom-color: var(--color-primary);
}

/* Phase S: room card bed rows - 44px targets that wrap on narrow screens. */
.room-bed-row {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 0.5rem 0.75rem;
    background: var(--color-surface-hover);
    border-radius: var(--radius-sm);
    border: 1px solid var(--color-border-light);
}

.room-bed-label {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    min-width: 0;
}

.room-bed-actions {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.75rem;
}

.room-bed-actions form {
    margin: 0;
    display: flex;
    align-items: center;
    gap: 0.5rem;
}

.room-bed-actions .form-control {
    width: 7rem;
    min-height: 44px;
    font-size: 0.8125rem;
}

.room-bed-action {
    min-height: 44px;
    min-width: 44px;
}

.person-stays .ux-action-menu > summary {
    width: auto;
    height: auto;
    display: inline-flex;
    padding: 0.5rem 0.75rem;
    border-color: transparent;
    background: var(--color-primary);
    color: #fff;
    font-size: var(--text-sm);
    line-height: 1.25;
}

@media (max-width: 600px) {
    .person-stay-grid {
        grid-template-columns: minmax(0, 1fr);
    }

    .person-stays > .flex-between {
        align-items: stretch !important;
        flex-direction: column;
    }

    .person-stays .ux-action-menu,
    .person-stays .ux-action-menu > summary {
        width: 100%;
    }

    /* The stay table scrolls inside .table-responsive: keep "Spazio" (unit and
       booking-managed note) visible on phones. */
}

.operational-header,
.operational-filters,
.operational-kpis,
.operational-tabs,
.operational-form-grid,
.operational-detail-grid,
.operational-action-grid,
.split-panels,
.planning-board,
.report-grid,
.report-section,
.deadline-calendar,
.table-responsive {
    min-width: 0;
    max-width: 100%;
}

.container {
    min-width: 0;
}

.operational-header > *,
.operational-filters > *,
.operational-form-grid > *,
.operational-detail-grid > *,
.operational-action-grid > *,
.split-panels > *,
.report-grid > *,
.deadline-calendar > * {
    min-width: 0;
}

.operational-kpis {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(min(100%, 10rem), 1fr));
    gap: var(--space-3);
    margin-bottom: var(--space-5);
}

.kpi-card {
    display: grid;
    gap: var(--space-1);
    min-width: 0;
    padding: var(--space-4);
    background: var(--color-surface);
    border: 1px solid var(--color-border);
    border-radius: var(--radius-lg);
}

.kpi-card > span,
.kpi-card > strong,
.operational-detail-grid strong,
.planning-event-body > *,
.document-list span,
.detail-notes {
    overflow-wrap: anywhere;
}

.operational-detail-grid > div {
    display: grid;
    gap: .2rem;
}

.operational-filters {
    display: flex;
    flex-wrap: wrap;
    align-items: flex-end;
    gap: var(--space-3);
    margin-bottom: var(--space-5);
}

.operational-filters > label {
    display: grid;
    flex: 1 1 10rem;
    gap: var(--space-1);
    min-width: 0;
}

.operational-form-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: var(--space-4);
}

.operational-form-grid > label {
    display: grid;
    gap: var(--space-1);
    min-width: 0;
}

.operational-filters input:not([type='checkbox']):not([type='radio']),
.operational-filters select,
.operational-filters textarea,
.operational-form-grid input:not([type='checkbox']):not([type='radio']),
.operational-form-grid select,
.operational-form-grid textarea,
.inline-action-form input:not([type='checkbox']):not([type='radio']) {
    width: 100%;
    min-width: 0;
    max-width: 100%;
}

.operational-form-grid .span-2,
.operational-detail-grid .span-2,
.operational-action-grid .span-2 {
    grid-column: 1 / -1;
}

.check-row {
    display: flex !important;
    align-items: center;
    gap: var(--space-2);
}

.check-row input {
    flex: 0 0 auto;
    width: auto;
}

.operational-tabs {
    display: flex;
    gap: var(--space-2);
    margin-bottom: var(--space-5);
    overflow-x: auto;
    overscroll-behavior-inline: contain;
    -webkit-overflow-scrolling: touch;
}

.operational-tabs > a {
    flex: 0 0 auto;
}

.operational-section-heading,
.planning-legend,
.sticky-form-actions,
.inline-action-form,
.document-list > li {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: var(--space-3);
    min-width: 0;
}

.operational-section-heading {
    justify-content: space-between;
    margin-bottom: var(--space-4);
}

.sticky-form-actions {
    position: sticky;
    bottom: 0;
    z-index: 10;
    justify-content: flex-end;
    margin-top: var(--space-4);
    padding: var(--space-3);
    background: var(--color-surface);
    border: 1px solid var(--color-border);
    border-radius: var(--radius-lg);
}

.inline-action-form > input:not([type='hidden']) {
    flex: 1 1 9rem;
}

.document-list {
    display: grid;
    gap: var(--space-2);
    list-style: none;
}

.document-list > li > span {
    flex: 1 1 12rem;
    min-width: 0;
}

.split-panels,
.operational-action-grid,
.operational-detail-grid,
.report-grid,
.deadline-calendar {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: var(--space-4);
}

.deadline-day,
.deadline-card,
.deadline-card > strong,
.deadline-card > span {
    min-width: 0;
}

.deadline-card {
    display: grid;
    grid-template-columns: max-content minmax(0, 1fr);
    align-items: start;
    gap: var(--space-1) var(--space-3);
    max-width: 100%;
}

.deadline-card > span {
    grid-column: 2;
}

.deadline-card > strong,
.deadline-card > span {
    overflow-wrap: anywhere;
}

/* Priority accent on calendar cards (class emitted as priority-<value>). */
.deadline-card.priority-high,
.deadline-card.priority-urgent { border-left: 4px solid var(--color-warning); padding-left: var(--space-2); }
.deadline-card.priority-urgent { border-left-color: var(--color-danger); }

.planning-board {
    display: grid;
    gap: var(--space-3);
}

.planning-event {
    display: grid;
    grid-template-columns: minmax(10rem, 0.8fr) minmax(0, 1fr) auto;
    align-items: center;
    gap: var(--space-3);
    min-width: 0;
    padding: var(--space-3);
    border: 1px solid var(--color-border);
    border-left: 0.3rem solid var(--planning-color, var(--color-primary));
    border-radius: var(--radius-md);
    background: var(--color-surface);
}

.planning-legend-item {
    display: inline-flex;
    align-items: center;
    gap: var(--space-1);
}

.planning-dot {
    width: 0.75rem;
    height: 0.75rem;
    flex: 0 0 0.75rem;
    border: 1px solid rgb(15 23 42 / 35%);
    border-radius: 50%;
    background: var(--planning-color, var(--color-primary));
}

.planning-booking { --planning-color: #4f46e5; }
.planning-occupancy { --planning-color: #047857; }
.planning-contract_reserved { --planning-color: #7c3aed; }
.planning-check_in { --planning-color: #0369a1; }
.planning-check_out { --planning-color: #7c3aed; }
.planning-maintenance { --planning-color: #b45309; }
.planning-cleaning { --planning-color: #0f766e; }
.planning-owner_block { --planning-color: #9f1239; }
.planning-technical_block { --planning-color: #475569; }
.planning-deadline { --planning-color: #b91c1c; }

.planning-availability-summary { margin-bottom: 1rem; }
.planning-availability-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(15rem, 1fr));
    gap: .75rem;
    margin-top: .75rem;
}
.planning-availability-item {
    display: grid;
    gap: .4rem;
    padding: .85rem;
    border: 1px solid var(--color-border);
    border-left: .3rem solid var(--availability-color, var(--color-border));
    border-radius: .6rem;
    background: var(--color-surface);
}
.planning-availability-item > div { display:flex;align-items:center;justify-content:space-between;gap:.5rem; }
.planning-availability-item .btn { justify-self:start; }
.planning-state-available { --availability-color:#047857; }
.planning-state-booked { --availability-color:#4f46e5; }
.planning-state-contract_reserved { --availability-color:#7c3aed; }
.planning-state-occupied { --availability-color:#047857; }
.planning-state-blocked { --availability-color:#b45309; }
.planning-state-outside_market { --availability-color:#475569; }
.planning-state-configuration_required { --availability-color:#b91c1c; }
.planning-commercial-tags { display:flex;gap:.35rem;flex-wrap:wrap; }

.planning-event-time {
    display: flex;
    flex-wrap: wrap;
    gap: var(--space-2);
}

.planning-event-body {
    display: grid;
    min-width: 0;
}

.planning-event-actions {
    display: flex;
    flex-wrap: wrap;
    justify-content: flex-end;
    gap: var(--space-2);
}

.planning-group-heading {
    margin: var(--space-3) 0 0;
    padding: var(--space-2) var(--space-3);
    border-left: 0.25rem solid var(--color-primary);
    background: var(--color-surface-subtle, var(--color-surface));
}

.table-responsive {
    width: 100%;
    overflow-x: auto;
    overscroll-behavior-inline: contain;
    -webkit-overflow-scrolling: touch;
}

.table-responsive > .table {
    min-width: 36rem;
}

/* Keep the wide deposit ledger inside its own mobile scroll surface. */
.deposit-table-responsive {
    contain: inline-size;
}

/* Row action forms (charge quick payment, deposit movements) live inside the
   scrolling .table-responsive wrapper. The shared floating menu engine renders
   their panels with fixed viewport coordinates, so the wrapper cannot clip
   them; only their width is set here. */
.payment-row-actions-table .ux-action-menu__panel {
    width: min(24rem, calc(100vw - 16px));
    min-width: 0;
}

.table-responsive > .operational-table {
    min-width: 60rem;
}

.table-responsive > .allocation-table {
    min-width: 48rem;
}

.table-responsive > .operational-table th,
.table-responsive > .operational-table td,
.table-responsive > .allocation-table th,
.table-responsive > .allocation-table td,
.report-grid .table th,
.report-grid .table td,
.report-section > .card .table th,
.report-section > .card .table td {
    white-space: nowrap;
}

/* Report cards stay fixed; only their explicit table wrappers may scroll. */
.report-grid > .card,
.report-section > .card {
    min-width: 0;
    max-width: 100%;
    overflow-x: visible;
}

.report-table-responsive > .table {
    min-width: 32rem;
}

@media (min-width: 769px) {
    .table-responsive > .operational-table {
        width: 100%;
        min-width: 0;
    }

    .table-responsive > .operational-table th,
    .table-responsive > .operational-table td {
        white-space: normal;
        overflow-wrap: anywhere;
    }

    .table-responsive > .operational-table .actions-cell,
    .table-responsive > .operational-table .actions-cell .btn {
        white-space: nowrap;
    }
}

@supports (overflow: clip) {
    html,
    body {
        overflow-x: clip;
    }
}

@media (max-width: 768px) {
    .operational-header,
    .operational-section-heading {
        align-items: stretch;
    }

    .operational-header .page-actions {
        flex-wrap: wrap;
        overflow-x: visible;
    }

    .operational-tabs {
        flex-wrap: wrap;
        overflow-x: visible;
    }

    .operational-form-grid,
    .operational-detail-grid,
    .operational-action-grid,
    .split-panels,
    .report-grid,
    .deadline-calendar {
        grid-template-columns: minmax(0, 1fr);
    }

    .operational-form-grid .span-2,
    .operational-detail-grid .span-2,
    .operational-action-grid .span-2 {
        grid-column: 1;
    }

    .operational-filters > label {
        flex-basis: 100%;
    }

    .planning-event {
        grid-template-columns: minmax(0, 1fr);
        align-items: start;
    }

    .planning-event > .btn,
    .planning-event > .inline-action-form {
        justify-self: start;
    }

    .document-list > li {
        align-items: flex-start;
    }
}

/* Payments V3.2: polished, bounded rich expense overview. */
.expense-entry-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: .85rem;
    margin: 1rem 0 1.35rem;
}

.expense-entry-card {
    display: flex;
    flex-direction: column;
    gap: .4rem;
    min-height: 132px;
    padding: 1rem 1.05rem;
    border: 1px solid var(--color-border);
    border-radius: 14px;
    background: var(--color-surface);
    color: inherit;
    text-decoration: none;
    transition: border-color .18s ease, box-shadow .18s ease, transform .18s ease;
}

.expense-entry-card:hover,
.expense-entry-card:focus-visible {
    border-color: var(--color-primary);
    box-shadow: 0 8px 20px rgb(15 23 42 / 7%);
    transform: translateY(-1px);
}

.expense-entry-card strong { font-size: 1rem; }

.expense-entry-card > span:not(.expense-entry-card__icon) {
    color: var(--text-muted);
    font-size: .88rem;
    line-height: 1.4;
}

.expense-entry-card em {
    margin-top: auto;
    color: var(--color-primary);
    font-size: .87rem;
    font-style: normal;
    font-weight: 700;
}

.expense-entry-card__icon {
    color: var(--color-primary);
    font-size: 1.2rem;
    font-weight: 800;
}

.expense-home {
    margin-top: 1.25rem;
}

.expense-home__heading {
    margin-bottom: .75rem;
}

.expense-home__toolbar {
    margin-bottom: 1rem;
}

.expense-home__search {
    min-width: min(24rem, 100%);
}

.expense-home__custom-period {
    display: flex;
    align-items: end;
    gap: .65rem;
}

.expense-home__custom-period[hidden] {
    display: none;
}

.expense-attention {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    margin: 1rem 0;
}

.expense-attention span {
    display: grid;
    gap: .2rem;
}

.expense-attention small {
    color: var(--text-muted);
}

.expense-house-groups,
.expense-rich-list {
    display: grid;
    gap: .85rem;
}

.expense-house-group {
    min-width: 0;
}

.expense-house-group__header {
    display: grid;
    gap: .25rem;
    padding: .9rem 1rem;
    border: 1px solid var(--color-border);
    border-radius: 12px;
    background: color-mix(in srgb, var(--color-surface) 88%, var(--color-primary) 12%);
}

.expense-house-group__header h3,
.expense-house-group__header p {
    margin: 0;
}

.expense-house-group__header p,
.expense-house-group__summary {
    color: var(--text-muted);
}

.expense-house-group__header h3 {
    color: var(--text-main);
    font-size: 1.08rem;
    letter-spacing: -.01em;
}

.expense-house-group__header p {
    font-size: .9rem;
    font-weight: 600;
}

.expense-house-group__summary {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 1rem;
    margin-bottom: .75rem;
    padding: .75rem 1rem;
    border: 1px solid var(--color-border);
    border-radius: 12px;
    background: var(--color-surface);
}

.expense-house-group__summary > strong {
    color: var(--text-main);
    font-size: 1rem;
}

.expense-house-group__summary > span {
    font-size: .9rem;
    font-weight: 600;
}

.expense-rich-row {
    display: grid;
    grid-template-columns: 8rem minmax(14rem, 1.35fr) minmax(13rem, 1fr) minmax(9rem, auto);
    grid-template-areas:
        "date identity meta right"
        "date competence meta right";
    align-items: center;
    column-gap: 1.25rem;
    row-gap: .25rem;
    min-width: 0;
    padding: 1rem;
    border: 1px solid var(--color-border);
    border-radius: 14px;
    background: var(--color-surface);
}

.expense-rich-row--attention {
    border-left: 4px solid var(--warning, #d97706);
}

.expense-rich-row__date,
.expense-rich-row__identity {
    display: grid;
    gap: .3rem;
    min-width: 0;
}

.expense-rich-row__date { grid-area: date; }
.expense-rich-row__identity { grid-area: identity; }

.expense-rich-row__identity span,
.expense-rich-row__identity small {
    overflow-wrap: anywhere;
}

.expense-rich-row__identity small {
    color: var(--text-muted);
}

.expense-rich-row__category-warning {
    width: fit-content;
}

.expense-rich-row__meta {
    grid-area: meta;
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: .25rem .45rem;
    min-width: 0;
    color: var(--text-muted);
    font-size: .8rem;
    line-height: 1.4;
}

.expense-rich-row__meta > * + *::before {
    content: '·';
    margin-right: .45rem;
    color: var(--text-muted);
}

.expense-rich-row__meta a {
    color: inherit;
    text-decoration: none;
}

.expense-rich-row__competence {
    grid-area: competence;
    color: var(--text-muted);
    overflow-wrap: anywhere;
}

.expense-rich-row__right {
    grid-area: right;
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: .75rem;
    min-width: 0;
}

.expense-rich-row__amount {
    text-align: right;
    white-space: nowrap;
    font-size: 1.05rem;
}

.expense-rich-row__actions {
    justify-self: end;
}

.expense-rich-row__actions .ux-action-menu__panel {
    min-width: 13rem;
}

.expense-pagination {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 1rem;
    margin-top: 1rem;
}

.expense-pagination > div {
    display: flex;
    gap: .5rem;
}

.expense-home__empty {
    display: grid;
    justify-items: center;
    gap: .75rem;
}

/* Payments V4: independent lifecycle, payment, allocation, and source states. */
.expense-house-group__header p small {
    display: block;
    margin-top: .2rem;
    font-weight: 500;
}

.expense-work-chips,
.expense-active-filters,
.expense-state-strip {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: .45rem;
}

.expense-work-chips { margin: .85rem 0; }

.expense-work-chip,
.expense-active-filters a,
.expense-state-chip,
.expense-source-label {
    display: inline-flex;
    align-items: center;
    min-height: 28px;
    padding: .25rem .6rem;
    border: 1px solid var(--color-border);
    border-radius: 999px;
    background: var(--color-surface);
    color: var(--text-muted);
    font-size: .78rem;
    font-weight: 650;
    line-height: 1.2;
    text-decoration: none;
}

.expense-work-chip:hover,
.expense-work-chip.is-active,
.expense-active-filters a:hover {
    border-color: var(--color-primary);
    color: var(--color-primary);
}

.expense-work-chip.is-active {
    background: color-mix(in srgb, var(--color-surface) 88%, var(--color-primary) 12%);
}

.expense-active-filters { margin: -.2rem 0 .9rem; }
.expense-active-filters__clear { border-style: dashed !important; }

.expense-state-strip { margin-top: .65rem; }
.expense-state-strip .badge { min-height: 28px; display: inline-flex; align-items: center; }
.expense-state-dimension { display: grid; gap: .2rem; }
.expense-state-dimension > small { color: var(--text-muted); font-size: .68rem; font-weight: 700; text-transform: uppercase; letter-spacing: .04em; }
.expense-state-chip { background: var(--color-surface); }
.expense-source-label { border-color: transparent; background: color-mix(in srgb, var(--color-surface) 90%, #64748b 10%); font-weight: 550; }

.expense-rich-row__meta .expense-state-chip,
.expense-rich-row__meta .expense-source-label {
    min-height: 24px;
    padding: .15rem .45rem;
    font-size: .74rem;
}

.expense-rich-row__meta > .expense-state-chip::before,
.expense-rich-row__meta > .expense-source-label::before { content: none; margin: 0; }

/* Export trigger: same box as "Filtri" and "Applica" (.btn).
   - No place-items here: as a shorthand declared after align-items it reset
     align-items to normal (stretch), so the label filled the button and its
     text sat at the top.
   - Block-level flex, not inline-flex: an inline summary sits on the line box
     of <details> (baseline + line-height), which made the menu 4px taller and
     pushed the button 2px below its neighbours.
   - The label is the only in-flow child, centred by the flex box with
     symmetric padding; the chevron is absolute inside the right padding, so it
     never moves the label's optical centre. */
.expense-export-menu > summary {
    position: relative;
    box-sizing: border-box;
    width: auto;
    min-width: 8.25rem;
    height: var(--ux-control-height, 44px);
    min-height: var(--ux-control-height, 44px);
    display: flex;
    align-items: center;
    justify-content: center;
    padding-block: 0;
    padding-inline: 2.25rem;
    border-radius: var(--ux-radius, 10px);
    font-size: var(--text-sm);
    line-height: 1.2;
    text-align: center;
    white-space: nowrap;
    list-style: none;
    cursor: pointer;
}
.expense-export-menu > summary::marker { content: ""; }
.expense-export-menu > summary::-webkit-details-marker { display: none; }
.expense-export-menu__label { display: block; line-height: 1.2; white-space: nowrap; }
.expense-export-menu__chevron {
    position: absolute;
    top: 50%;
    right: .9rem;
    display: block;
    width: .5rem;
    height: .3125rem;
    transform: translateY(-50%);
    pointer-events: none;
}
.expense-export-menu__chevron svg { display: block; width: 100%; height: 100%; fill: currentColor; }

.expense-impact-grid {
    display: grid;
    grid-template-columns: repeat(4,minmax(0,1fr));
    gap: .65rem;
    margin: .85rem 0;
}
.expense-impact-grid > span {
    display: grid;
    gap: .1rem;
    padding: .75rem;
    border: 1px solid var(--color-border);
    border-radius: 12px;
    color: var(--text-muted);
}
.expense-impact-grid strong { color: var(--text-main); font-size: 1.1rem; }
.expense-deleted-banner { display: grid; gap: .3rem; margin-bottom: 1rem; }
.expense-delete-preview > strong { display: block; margin-bottom: 1rem; font-size: 1.1rem; }
.expense-delete-preview ul { margin: .35rem 0 1rem; padding-left: 1.2rem; }
.expense-paid-delete-impact { display: grid; grid-template-columns: max-content minmax(0,1fr); gap: 1rem; align-items: center; margin: 1rem 0; line-height: 1.5; }
.expense-paid-delete-impact p { margin: 0; }
.expense-delete-form .expense-delete-submit:disabled {
    border-color: var(--color-border);
    background: var(--color-surface-hover);
    color: var(--color-text-muted);
    box-shadow: none;
    cursor: not-allowed;
    opacity: 1;
}
.expense-delete-form .expense-delete-submit:not(:disabled) {
    border-color: var(--color-danger);
    background: var(--color-danger);
    color: #fff;
    cursor: pointer;
    opacity: 1;
}
.expense-delete-form .expense-delete-submit:not(:disabled):hover { background: #dc2626; border-color: #dc2626; box-shadow: var(--shadow-sm); }
.expense-delete-form .expense-delete-submit:not(:disabled):focus-visible { outline: 3px solid rgb(220 38 38 / .28); outline-offset: 2px; }
.expense-correction-final { display: grid; gap: 1rem; margin-bottom: 1rem; }
.expense-change-list { overflow: hidden; border: 1px solid var(--color-border); border-radius: var(--radius-lg); }
.expense-change-row {
    display: grid;
    grid-template-columns: minmax(8rem,.7fr) minmax(0,1fr) auto minmax(0,1fr);
    gap: .75rem;
    align-items: center;
    padding: .8rem 1rem;
    background: var(--color-surface);
}
.expense-change-row + .expense-change-row { border-top: 1px solid var(--color-border); }
.expense-change-row > strong { color: var(--color-text-main); }
.expense-change-before,.expense-change-after { display: grid; gap: .15rem; min-width: 0; overflow-wrap: anywhere; }
.expense-change-before { color: var(--color-text-muted); text-decoration: line-through; text-decoration-color: #cbd5e1; }
.expense-change-after { color: var(--color-text-main); font-weight: 650; }
.expense-change-before small,.expense-change-after small,.expense-correction-impact small { color: var(--color-text-muted); font-weight: 600; text-decoration: none; text-transform: uppercase; letter-spacing: .04em; }
.expense-change-arrow { color: var(--color-primary); font-size: 1.1rem; font-weight: 800; }
.expense-correction-impact { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: .75rem; }
.expense-correction-impact > div { display: grid; gap: .25rem; padding: 1rem; border: 1px solid var(--color-border); border-radius: var(--radius-lg); background: #f8fafc; }
.expense-correction-impact strong { font-size: 1.05rem; color: var(--color-text-main); }
.expense-correction-impact span { color: var(--color-text-muted); }
.expense-action-danger { color: var(--danger, #b91c1c) !important; }
.expense-rich-row__actions hr { width: 100%; margin: .25rem 0; border: 0; border-top: 1px solid var(--color-border); }

.quick-split-options {
    display: grid;
    grid-template-columns: repeat(2,minmax(0,1fr));
    gap: .75rem;
}

.choice-card {
    display: grid;
    grid-template-columns: auto minmax(0,1fr);
    gap: .25rem .65rem;
    padding: 1rem;
    border: 1px solid var(--color-border);
    border-radius: 14px;
    background: var(--color-surface);
}
.choice-card span { grid-column: 2; color: var(--text-muted); font-size: .86rem; }
.occupant-list { display: grid; gap: .5rem; margin-top: .8rem; }
.occupant-row { display: flex; gap: .7rem; padding: .7rem .8rem; border: 1px solid var(--color-border); border-radius: 12px; }
.occupant-row > span { display: grid; gap: .1rem; }
.occupant-row small { color: var(--text-muted); }

@media (max-width: 1100px) {
    .expense-rich-row {
        grid-template-columns: 7.25rem minmax(11rem, 1.15fr) minmax(10rem, 1fr) minmax(8rem, auto);
        gap: .75rem;
    }
}

@media (max-width: 767px) {
    .expense-impact-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
    .expense-home__toolbar,
    .expense-home__toolbar .ux-toolbar__primary,
    .expense-home__toolbar .ux-toolbar__actions {
        align-items: stretch;
    }

    .expense-home__search {
        min-width: 0;
        width: 100%;
    }

    .expense-entry-grid {
        grid-template-columns: minmax(0, 1fr);
    }

    .expense-entry-card {
        min-height: 0;
    }

    .expense-home__custom-period {
        display: grid;
        grid-template-columns: repeat(2, minmax(0, 1fr));
        width: 100%;
    }

    .expense-attention,
    .expense-pagination {
        align-items: stretch;
        flex-direction: column;
    }

    .expense-rich-row {
        grid-template-columns: minmax(0, 1fr) auto;
        grid-template-areas:
            "date right"
            "identity identity"
            "meta meta"
            "competence competence";
        align-items: start;
        gap: .65rem .75rem;
        padding: .9rem;
    }

    .expense-rich-row__date {
        gap: .35rem;
    }

    .expense-rich-row__identity > strong {
        font-size: 1rem;
    }

    .expense-rich-row__right {
        align-items: flex-start;
        gap: .5rem;
    }

    .expense-rich-row__amount {
        text-align: right;
        font-size: 1.2rem;
    }

    .expense-rich-row__meta {
        gap: .15rem .35rem;
        font-size: .78rem;
    }

    .expense-rich-row__meta > * + *::before {
        margin-right: .35rem;
    }

    .expense-rich-row__competence {
        font-size: .78rem;
    }

    .expense-house-group__summary {
        align-items: flex-start;
        flex-direction: column;
        gap: .2rem;
    }

    .expense-pagination > div,
    .expense-pagination .btn {
        width: 100%;
    }

    .expense-work-chips { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); }
    .expense-work-chip { justify-content: center; }
    .expense-export-menu, .expense-export-menu > summary { width: 100%; }
    .quick-split-options { grid-template-columns: 1fr; }
}

@media (max-width: 600px) {
    .expense-paid-delete-impact { grid-template-columns: 1fr; gap: .35rem; }
    .expense-change-row { grid-template-columns: 1fr auto 1fr; gap: .45rem; padding: .75rem; }
    .expense-change-row > strong { grid-column: 1 / -1; }
    .expense-correction-impact { grid-template-columns: 1fr; }

    .operational-kpis.ux-kpis-primary {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: .55rem;
    }

    .operational-kpis.ux-kpis-primary .kpi-card {
        min-height: 82px;
        padding: .75rem .7rem;
    }

    .operational-kpis.ux-kpis-primary .kpi-card > span {
        font-size: .76rem;
        line-height: 1.25;
    }

    .operational-kpis.ux-kpis-primary .kpi-card > strong {
        font-size: 1.12rem;
    }
}

/* Payments V5.1: monetary safety, allocation audit and responsive receipts. */
.payment-card-list { display: none; }
.operational-kpis > .card { display: grid; align-content: start; gap: .45rem; }
.operational-kpis > .card > span { display: block; color: var(--color-text-muted); font-size: .86rem; }
.operational-kpis > .card > strong { display: block; font-size: 1.2rem; line-height: 1.2; }
.payment-status-filters { flex-wrap: wrap; overflow: visible; }
.payment-status-filters a { flex: 0 0 auto; }
.payment-detail-kpis { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.payment-detail-kpis .card { display: grid; align-content: start; gap: .45rem; min-height: 7rem; }
.payment-detail-kpis .card > span { color: var(--color-text-muted); font-size: .86rem; }
.payment-detail-kpis .card > strong { font-size: clamp(1.15rem, 2vw, 1.55rem); line-height: 1.2; }
.payment-definition-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0; margin: 0; border: 1px solid var(--color-border); border-radius: var(--radius-lg); overflow: hidden; }
.payment-definition-grid > div { display: grid; grid-template-columns: minmax(7rem, .55fr) minmax(0, 1fr); gap: .75rem; padding: .85rem 1rem; border-bottom: 1px solid var(--color-border); }
.payment-definition-grid > div:nth-child(odd):not(.span-2) { border-right: 1px solid var(--color-border); }
.payment-definition-grid > .span-2 { grid-column: 1 / -1; }
.payment-definition-grid dt { color: var(--color-text-muted); font-size: .84rem; font-weight: 600; }
.payment-definition-grid dd { margin: 0; overflow-wrap: anywhere; }
.payment-allocation-summary { margin-bottom: 0; }
.revision-history { display: grid; gap: .9rem; }
.revision-card { display: grid; gap: .65rem; }
.revision-card h3, .revision-card p { margin: 0; }
.revision-card header p { color: var(--color-text-muted); font-size: .84rem; }
.revision-diff { display: grid; gap: 0; margin: 0; padding: 0; list-style: none; border: 1px solid var(--color-border); border-radius: var(--radius-md); overflow: hidden; }
.revision-diff li, .revision-total { display: flex; justify-content: space-between; gap: 1rem; padding: .65rem .75rem; }
.revision-diff li + li { border-top: 1px solid var(--color-border); }
.revision-diff .is-changed { background: color-mix(in srgb, var(--color-primary) 7%, var(--color-surface)); }
.revision-diff strong, .revision-total strong { text-align: right; }
.revision-total { border-top: 1px solid var(--color-border); }
.revision-more .ux-disclosure { color: var(--color-primary); font-weight: 600; }
.field-error { display: block; min-height: 1.1em; margin-top: .25rem; color: var(--color-danger); font-size: .78rem; }
[data-allocation-amount][aria-invalid='true'] { border-color: var(--color-danger); }
.allocation-comparison .document-list li { align-items: center; justify-content: space-between; gap: 1rem; }
.tenant-ledger-payments td.text-right, .tenant-ledger-charges td.text-right { white-space: nowrap; }
.tenant-ledger-payments { font-size: .88rem; }

@media (max-width: 767px) {
    .payments-desktop-list { display: none; }
    .payment-card-list { display: grid; gap: .75rem; }
    .payment-card { display: grid; gap: .38rem; padding: 1rem; }
    .payment-card h3, .payment-card p { margin: 0; }
    .payment-card__top { display: flex; align-items: baseline; justify-content: space-between; gap: 1rem; }
    .payment-card__top strong { font-size: 1.1rem; text-align: right; }
    .payment-card__state { margin-top: .4rem !important; }
    .payment-card__meta { color: var(--color-text-muted); font-size: .86rem; }
    .payment-card .btn { justify-self: start; margin-top: .35rem; }
    .payment-status-filters.ux-tabs { display: flex !important; width: 100%; flex-wrap: wrap; gap: .4rem; overflow: visible; }
    .payment-status-filters.ux-tabs a { padding: .45rem .65rem; white-space: normal; font-size: .78rem; }
    .payment-detail-kpis { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .6rem; }
    .payment-detail-kpis .card { min-height: 5.7rem; padding: .8rem; }
    .payment-definition-grid { grid-template-columns: minmax(0, 1fr); }
    .payment-definition-grid > div, .payment-definition-grid > div:nth-child(odd):not(.span-2) { grid-template-columns: minmax(0, 1fr); gap: .15rem; border-right: 0; }
    .payment-definition-grid > .span-2 { grid-column: 1; }
    .allocation-targets { overflow: visible; }
    .allocation-targets table, .allocation-targets tbody, .allocation-targets tr, .allocation-targets td { display: block; width: 100%; }
    .allocation-targets thead { display: none; }
    .allocation-targets tr { padding: .8rem; border: 1px solid var(--color-border); border-radius: var(--radius-md); }
    .allocation-targets tr + tr { margin-top: .65rem; }
    .allocation-targets td { padding: .25rem 0; border: 0; }
    .allocation-targets input { width: 100%; }
    .table-responsive.allocation-targets > .table { min-width: 0; }
    .revision-diff li, .revision-total { align-items: flex-start; flex-direction: column; gap: .25rem; }
    .revision-diff strong, .revision-total strong { text-align: left; }
}

/* Phase S G-06c: financial archive detail and forms. Column templates live in
   classes (an inline template beat the responsive rule) and collapse on phones. */
.grid-cards.financial-record-layout { grid-template-columns: minmax(0, 2fr) minmax(0, 1fr); align-items: start; }
.financial-record-column { display: flex; flex-direction: column; gap: var(--space-4); min-width: 0; }
.grid-cards.financial-record-pair { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--space-4); margin-bottom: var(--space-4); }
.grid-cards.financial-record-pair--last { margin-bottom: var(--space-6); }
.financial-record-layout > *, .financial-record-pair > * { min-width: 0; }
.financial-record-layout .font-semibold, .financial-record-layout p { overflow-wrap: anywhere; }
@media (max-width: 1024px) {
    .grid-cards.financial-record-layout { grid-template-columns: minmax(0, 1fr); }
}
@media (max-width: 480px) {
    .grid-cards.financial-record-pair { grid-template-columns: minmax(0, 1fr); }
}
/* Phase S G-06h: on phones every report section tab stays visible. */
@media (max-width: 600px) {
    .ux-tabs.report-tabs { flex-wrap: wrap; overflow: visible; }
}

/* Program T / T5: requests are operational records, not report cards. */
.request-kpis { margin-bottom: var(--space-4); }
.request-kpi-alert { border-color: var(--color-danger); background: color-mix(in srgb, var(--color-danger) 5%, var(--color-surface)); }
.request-filter { margin-bottom: var(--space-4); padding: var(--space-4); }
.request-detail-grid { display: grid; grid-template-columns: minmax(0, 2fr) minmax(17rem, .8fr); gap: var(--space-5); align-items: start; margin-top: var(--space-5); }
.request-detail-grid > * { min-width: 0; }
.request-detail-grid > div, .request-detail-grid > aside { display: grid; gap: var(--space-4); }
.request-party { display: grid; gap: .25rem; padding: .75rem 0; overflow-wrap: anywhere; }
.request-party + .request-party { border-top: 1px solid var(--color-border); }
.request-party + form { margin-top: var(--space-3); }
.request-candidate-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 15rem), 1fr)); gap: var(--space-3); margin-top: var(--space-4); }
.request-candidate { min-width: 0; padding: var(--space-4); border: 1px solid var(--color-border); border-radius: var(--radius-md); overflow-wrap: anywhere; }
.request-candidate h3 { margin: 0 0 .5rem; }
.request-timeline { margin-top: var(--space-4); }
.dashboard-request-widget { margin: 0 0 var(--space-5); }
.dashboard-request-widget .section-header { margin: 0 0 var(--space-3); }
.dashboard-request-metrics { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--space-3); }
.dashboard-request-metrics > div { display: flex; align-items: baseline; gap: .45rem; min-width: 0; padding: .8rem; border-radius: var(--radius-md); background: var(--color-bg-subtle, #f8fafc); }
.dashboard-request-metrics strong { font-size: 1.35rem; }
.dashboard-request-metrics span { color: var(--color-text-muted); overflow-wrap: anywhere; }
.dashboard-request-metrics .is-overdue { background: color-mix(in srgb, var(--color-danger) 8%, var(--color-surface)); color: var(--color-danger); }
@media (max-width: 800px) {
    .request-detail-grid { grid-template-columns: minmax(0, 1fr); }
}
@media (max-width: 600px) {
    .dashboard-request-widget .section-header { align-items: stretch; flex-direction: column; }
    .dashboard-request-widget .page-actions, .dashboard-request-widget .page-actions .btn { width: 100%; }
    .dashboard-request-metrics { grid-template-columns: minmax(0, 1fr); }
    .request-kpis { grid-template-columns: repeat(3, minmax(0, 1fr)); }
    .request-kpis .ov-card { padding: .7rem .45rem; min-width: 0; }
    .request-kpis .ov-label { overflow-wrap: anywhere; }
}

/* S-051 controlled self-assignment: distinct but compact. */
.self-assignment-callout { display: flex; align-items: center; justify-content: space-between; gap: 0.75rem; flex-wrap: wrap; margin-top: 0.75rem; padding: 0.75rem 1rem; border: 1px dashed var(--color-border, #cbd5e1); border-left: 4px solid var(--color-primary, #2563eb); border-radius: 8px; background: var(--color-info-bg, #eff6ff); }
.self-assignment-callout > div { display: flex; flex-direction: column; gap: 0.15rem; min-width: 0; flex: 1 1 220px; }
.self-assignment-callout span { font-size: 0.85rem; color: var(--text-muted, #64748b); }
.self-assignment-confirm { max-width: 640px; padding: 1.25rem; border: 1px solid var(--color-border, #e2e8f0); border-left: 4px solid var(--color-primary, #2563eb); border-radius: 10px; background: var(--color-surface, #fff); }
.self-assignment-confirm__lead { margin: 0 0 1rem; font-weight: 700; font-size: 1.05rem; }
.self-assignment-confirm__facts { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 220px), 1fr)); gap: 0.75rem; margin: 0 0 1rem; }
.self-assignment-confirm__facts > div { min-width: 0; padding: 0.75rem; border-radius: 8px; background: var(--color-info-bg, #eff6ff); overflow-wrap: anywhere; }
.self-assignment-confirm__facts dt { font-size: 0.75rem; text-transform: uppercase; letter-spacing: 0.04em; color: var(--text-muted, #64748b); }
.self-assignment-confirm__facts dd { margin: 0.25rem 0 0; }
.self-assignment-confirm__effects { margin: 0 0 1rem; padding-left: 1.1rem; color: var(--text-muted, #475569); font-size: 0.9rem; }
.self-assignment-confirm__effects li + li { margin-top: 0.35rem; }
.self-assignment-confirm__ack { display: flex; align-items: flex-start; gap: 0.6rem; margin: 0.5rem 0 1rem; font-weight: 600; cursor: pointer; }
.self-assignment-confirm__ack input { width: 1.15rem; height: 1.15rem; margin-top: 0.15rem; flex: none; }
.self-assignment-confirm__actions { display: flex; flex-wrap: wrap; gap: 0.5rem; }
.self-assignment-confirm__actions .btn { min-height: 44px; }
.t1-master-form,.t1-page-stack{display:grid;gap:var(--space-5)}
.t1-form-section{margin:0}
.t1-form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-4)}
.t1-form-grid-3{grid-template-columns:repeat(3,minmax(0,1fr))}
.t1-span-2{grid-column:span 2}.t1-span-all{grid-column:1/-1}
.t1-action-bar{display:flex;gap:var(--space-3);align-items:center;flex-wrap:wrap}
.t1-dialog{width:min(46rem,calc(100% - 2rem));max-height:calc(100vh - 2rem);margin:auto;padding:var(--space-5);overflow:auto;border:1px solid var(--color-border);border-radius:var(--radius-lg);background:var(--color-surface);box-shadow:var(--shadow-lg)}
.t1-dialog::backdrop{background:rgba(15,23,42,.45)}
.t1-dialog form,.t1-metadata-form{display:grid;gap:var(--space-3)}
.house-macro-tabs{
    width:fit-content;
    margin:0 0 var(--space-5);
    overflow-y:hidden;
    border-color:rgb(79 70 229 / 18%);
    background:linear-gradient(135deg,#f8fafc 0%,#eef2ff 100%);
    box-shadow:0 8px 24px rgb(15 23 42 / 7%);
}
.house-macro-tabs button{
    gap:.55rem;
    min-height:48px;
    padding-inline:1.2rem;
    font-size:.94rem;
}
.house-macro-tabs__icon{
    width:1.15rem;
    height:1.15rem;
    flex:0 0 auto;
    fill:none;
    stroke:currentColor;
    stroke-linecap:round;
    stroke-linejoin:round;
    stroke-width:1.8;
}
.house-master-grid>.card{min-width:0}
.t1-detail-list{display:grid;margin:0}
.t1-detail-list>div{
    display:grid;
    grid-template-columns:minmax(7.5rem,.9fr) minmax(0,1.1fr);
    gap:var(--space-3);
    align-items:start;
    padding:.7rem 0;
    border-bottom:1px solid var(--color-border-light);
}
.t1-detail-list>div:first-child{padding-top:0}
.t1-detail-list>div:last-child{padding-bottom:0;border-bottom:0}
.t1-detail-list dt{color:var(--color-text-muted);font-size:.84rem;font-weight:600;line-height:1.4}
.t1-detail-list dd{min-width:0;margin:0;font-weight:650;line-height:1.4;text-align:right;overflow-wrap:anywhere}
@media (max-width:768px){
    .house-macro-tabs{
        display:grid;
        grid-template-columns:repeat(2,minmax(0,1fr));
        width:100%;
        overflow:visible;
    }
    .house-macro-tabs button{
        min-width:0;
        padding-inline:var(--space-2);
        white-space:normal;
        line-height:1.2;
        text-align:center;
    }
}
.t1-macro-tabs{display:flex;gap:var(--space-5);overflow-x:auto;border-bottom:1px solid var(--color-border);margin-bottom:var(--space-5)}
.t1-macro-tabs a{display:inline-flex;align-items:center;min-height:44px;padding:.65rem .2rem;border-bottom:3px solid transparent;text-decoration:none;color:var(--color-text-muted);white-space:nowrap}
.t1-macro-tabs a[aria-selected="true"]{color:var(--color-primary);border-bottom-color:var(--color-primary);font-weight:700}
.t1-detail-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-5)}
.t1-detail-grid>.t1-wide{grid-column:1/-1}
.t1-kv{display:grid;grid-template-columns:minmax(9rem,.7fr) 1fr;gap:.45rem 1rem;margin:0}.t1-kv dt{color:var(--color-text-muted)}.t1-kv dd{margin:0}
.t1-document-list{display:grid;gap:.75rem;list-style:none;padding:0;margin:0}.t1-document-item{border:1px solid var(--color-border);border-radius:var(--radius-md);padding:var(--space-3);display:flex;justify-content:space-between;gap:var(--space-3);align-items:flex-start;flex-wrap:wrap}
.t1-room-table{width:100%;border-collapse:collapse}.t1-room-table th,.t1-room-table td{padding:.75rem;border-bottom:1px solid var(--color-border);text-align:left;vertical-align:top}
@media(max-width:640px){.t1-form-grid,.t1-form-grid-3,.t1-detail-grid{grid-template-columns:1fr}.t1-span-2,.t1-span-all,.t1-detail-grid>.t1-wide{grid-column:auto}.t1-action-bar{position:sticky;bottom:0;z-index:10;background:var(--color-surface);padding:.75rem;border-top:1px solid var(--color-border)}.t1-room-table thead{display:none}.t1-room-table,.t1-room-table tbody,.t1-room-table tr,.t1-room-table td{display:block}.t1-room-table tr{border:1px solid var(--color-border);border-radius:var(--radius-md);margin-bottom:.75rem;padding:.5rem}.t1-room-table td{border:0;padding:.35rem}.t1-kv{grid-template-columns:1fr}.t1-kv dd{margin-bottom:.5rem}}
