/* Phase 1 / Revision 03 — production readiness polish */
:root {
    --r3-panel-height: 420px;
    --r3-gap: clamp(14px, 1.8vw, 24px);
}

/* Dashboard balance and internal activity scrolling */
.revision03-control-grid,
.revision03-user-grid,
.revision03-support-grid {
    display: grid;
    gap: var(--r3-gap);
    grid-template-columns: repeat(12, minmax(0, 1fr));
}

.revision03-control-grid > *,
.revision03-user-grid > * { grid-column: span 4; }

.revision03-support-grid > * { grid-column: span 3; }

.revision03-control-card,
.revision03-user-card,
.revision03-support-card {
    align-content: start;
    background: var(--surface, var(--home-surface, #fff));
    border: 1px solid color-mix(in srgb, currentColor 13%, transparent);
    border-radius: var(--s11-radius-card, 16px);
    box-shadow: var(--s11-shadow-sm, 0 6px 18px rgba(15, 23, 42, .06));
    color: inherit;
    display: grid;
    gap: 9px;
    min-height: 168px;
    padding: 18px;
    text-decoration: none;
}

.revision03-support-card:is(:hover, :focus-visible),
.revision03-user-card:is(:hover, :focus-visible) {
    border-color: color-mix(in srgb, #f59e0b 58%, currentColor 13%);
    color: inherit;
    transform: translateY(-2px);
}

.revision03-card-icon {
    align-items: center;
    background: color-mix(in srgb, #f59e0b 15%, transparent);
    border-radius: 11px;
    color: #9a6100;
    display: inline-flex;
    height: 42px;
    justify-content: center;
    width: 42px;
}

.revision03-card-icon svg { height: 21px; width: 21px; }

.revision03-control-card h2,
.revision03-user-card h2,
.revision03-support-card h2 {
    font-size: 1.04rem;
    margin: 0;
}

.revision03-control-card p,
.revision03-user-card p,
.revision03-support-card p {
    color: var(--home-muted, #64748b);
    font-size: .88rem;
    line-height: 1.55;
    margin: 0;
}

.revision03-control-card .status-pill { justify-self: start; margin-top: auto; }

.admin-table-card[data-admin-table="activity"] .admin-table-scroll,
.revision03-fixed-feed,
.notification-list[data-revision03-notification-list] {
    max-height: var(--r3-panel-height);
    overflow: auto;
    overscroll-behavior: contain;
    scrollbar-gutter: stable;
}

.admin-table-card[data-admin-table="activity"] .admin-table-scroll:focus-visible,
.revision03-fixed-feed:focus-visible,
.notification-list[data-revision03-notification-list]:focus-visible {
    outline: 3px solid #f59e0b;
    outline-offset: 3px;
}

.dashboard-grid,
.admin-analytics-grid {
    align-items: stretch;
}

.admin-chart-wrap,
.dashboard-chart-wrap,
.s5-chart-wrap,
.rent-chart-wrap {
    max-width: 100%;
    min-height: 280px;
    overflow: clip;
    position: relative;
}

.admin-chart-wrap canvas,
.dashboard-chart-wrap canvas,
.s5-chart-wrap canvas,
.rent-chart-wrap canvas {
    display: block;
    max-height: 390px !important;
    max-width: 100% !important;
}

/* Support and notifications */
.revision03-support-intro {
    align-items: start;
    display: flex;
    gap: 12px;
    justify-content: space-between;
}

.revision03-ticket-note {
    background: color-mix(in srgb, #0f766e 8%, transparent);
    border: 1px solid color-mix(in srgb, #0f766e 26%, transparent);
    border-radius: 12px;
    color: inherit;
    padding: 12px 14px;
}

.revision03-notification-tools,
.revision03-ticket-tools {
    align-items: end;
    display: grid;
    gap: 10px;
    grid-template-columns: minmax(220px, 1fr) minmax(160px, .35fr) auto;
    margin-bottom: 14px;
}

.revision03-notification-tools label,
.revision03-ticket-tools label {
    display: grid;
    gap: 6px;
    font-weight: 750;
}

.revision03-notification-tools input,
.revision03-notification-tools select,
.revision03-ticket-tools input,
.revision03-ticket-tools select {
    min-height: 44px;
}

.notification-item[hidden] { display: none !important; }

.revision03-result-status {
    color: var(--home-muted, #64748b);
    font-size: .84rem;
    min-height: 1.35em;
}

/* Tables retain their semantics while becoming bounded workspaces. */
.table-responsive,
.admin-table-scroll,
.beta-checklist-table-wrap,
.presentation-table-wrap {
    max-height: min(62vh, 620px);
    overscroll-behavior: contain;
}

:is(.table, .admin-data-table, .beta-checklist-table, .presentation-table-wrap table) thead th {
    background: var(--surface, var(--home-surface, #fff));
    position: sticky;
    top: 0;
    z-index: 2;
}

th[data-revision03-resizable="true"] {
    min-width: 84px;
    overflow: hidden;
    resize: horizontal;
}

.revision03-column-menu {
    border: 1px solid color-mix(in srgb, currentColor 13%, transparent);
    border-radius: 12px;
    margin: 0 0 10px;
    padding: 8px 10px;
}

.revision03-column-menu summary { cursor: pointer; font-weight: 800; }
.revision03-column-options { display: flex; flex-wrap: wrap; gap: 8px 14px; padding-top: 10px; }
.revision03-column-options label { align-items: center; display: inline-flex; gap: 7px; font-size: .84rem; }

/* Valuation and print containment */
.s5-chart-card,
.rent-result-card,
.valuation-result-band,
.s8-report-section {
    break-inside: avoid;
    min-width: 0;
}

[dir="rtl"] :is(.s5-chart-card, .rent-result-card, .valuation-result-band, .s8-report-section, .chart-legend, .heatmap-legend) {
    text-align: start;
}

[dir="rtl"] canvas { direction: ltr; }

.chart-legend,
.heatmap-legend,
.market-series-legend {
    align-items: center;
    display: flex;
    flex-wrap: wrap;
    gap: 8px 14px;
    max-width: 100%;
    overflow-wrap: anywhere;
}

/* Property actions remain balanced at all widths. */
.s4-header-actions,
.s4-contact-actions,
.s4-contact-presets,
.s4-action-bar {
    gap: 8px;
}

.s4-header-actions > *,
.s4-contact-actions > *,
.s4-contact-presets > * {
    min-height: 44px;
}

@media (max-width: 1100px) {
    .revision03-control-grid > *,
    .revision03-user-grid > * { grid-column: span 6; }
    .revision03-support-grid > * { grid-column: span 6; }
}

@media (max-width: 760px) {
    :root { --r3-panel-height: 360px; }

    .revision03-control-grid > *,
    .revision03-user-grid > *,
    .revision03-support-grid > * { grid-column: 1 / -1; }

    .revision03-notification-tools,
    .revision03-ticket-tools { grid-template-columns: 1fr; }

    .revision03-support-intro { display: grid; }

    .admin-chart-wrap,
    .dashboard-chart-wrap,
    .s5-chart-wrap,
    .rent-chart-wrap { min-height: 240px; }
}

@media (prefers-reduced-motion: reduce) {
    .revision03-support-card,
    .revision03-user-card { transition: none !important; }
}

@media (forced-colors: active) {
    .revision03-control-card,
    .revision03-user-card,
    .revision03-support-card,
    .revision03-ticket-note,
    .revision03-column-menu { border: 1px solid CanvasText; }
}

@media print {
    .revision03-notification-tools,
    .revision03-ticket-tools,
    .revision03-column-menu { display: none !important; }

    .admin-table-card[data-admin-table="activity"] .admin-table-scroll,
    .revision03-fixed-feed,
    .notification-list[data-revision03-notification-list],
    .table-responsive,
    .admin-table-scroll {
        max-height: none !important;
        overflow: visible !important;
    }

    .admin-chart-wrap canvas,
    .dashboard-chart-wrap canvas,
    .s5-chart-wrap canvas,
    .rent-chart-wrap canvas { max-height: 245mm !important; }
}


/* Keep the favorite action visually distinct from the property image link. */
.property-card__utility-row {
    align-items: center;
    display: flex;
    justify-content: flex-end;
    min-height: 44px;
    margin: -4px 0 4px;
}
.property-card__utility-row .property-card__favorite {
    inset: auto !important;
    margin: 0;
    position: static !important;
}
[dir="rtl"] .property-card__utility-row { justify-content: flex-start; }
