/* Workspace overrides: readable records and controls from phone to desktop. */
.workspace-page { font-size: 14px; overflow-wrap: break-word; }
.workspace-page .workspace-container,
.workspace-page .page-main,
.workspace-page .surface,
.workspace-page .cell-value { min-width: 0; }
.workspace-page .subtle,
.workspace-page .page-heading p,
.workspace-page .surface-heading p,
.workspace-page .metric-card p,
.workspace-page .activity-text p,
.workspace-page .chart-foot,
.workspace-page .field-note,
.workspace-page .review-note,
.workspace-page .inline-note { font-size: 12px; line-height: 1.7; }
.workspace-page .eyebrow,
.workspace-page .nav-label,
.workspace-page .workspace-brand small,
.workspace-page .sidebar-footer,
.workspace-page .hero-tag,
.workspace-page .performance-legend { font-size: 11px; }
.workspace-page .nav-link { font-size: 13px; min-height: 46px; }
.workspace-page .workspace-note strong,
.workspace-page .workspace-note p { font-size: 12px; }
.workspace-page .metric-heading h3,
.workspace-page .action-tile strong,
.workspace-page .activity-text strong,
.workspace-page .performance-name strong { font-size: 13px; }
.workspace-page .action-tile small,
.workspace-page .activity-text time,
.workspace-page .performance-name small,
.workspace-page .performance-amount small,
.workspace-page .workspace-footer { font-size: 11px; }
.workspace-page .performance-amount { font-size: 13px; }
.workspace-page .button { font-size: 13px; min-height: 44px; }
.workspace-page .icon-button,
.workspace-page .topbar-signout { min-width: 44px; min-height: 44px; }
.workspace-page .page-heading-actions .button {
    width: auto; min-height: 44px; padding: 10px 15px; font-size: 13px;
    white-space: normal; text-align: center;
}
.workspace-page .text-link { font-size: 12px; min-height: 44px; }
.workspace-page .count-pill,
.workspace-page .status { font-size: 11px; }
.workspace-page table { font-size: 13px; }
.workspace-page th { font-size: 11px; }
.workspace-page .cell-sub { font-size: 11px; }
.workspace-page .cell-main,
.workspace-page .cell-sub,
.workspace-page .cell-value { overflow-wrap: anywhere; }
.workspace-page .table-pagination { font-size: 12px; }
.workspace-page .notice,
.workspace-page .empty-state p,
.workspace-page .table-no-results { font-size: 12px; }
.workspace-page .notice p { font-size: 12px; }
.workspace-page .empty-state h3 { font-size: 14px; }
.workspace-page .table-pagination .icon-button { width: 44px; height: 44px; }
.workspace-page .table-tools .subtle { font-size: 11px; }
.workspace-page .table-search input { min-height: 44px; font-size: 14px; }
.workspace-page .report-filter input { min-height: 44px; font-size: 13px; }
.workspace-page .report-filter .button { min-height: 44px; font-size: 12px; }
.workspace-page .table-scroll { overscroll-behavior-inline: contain; }
.workspace-page .dialog-header p,
.workspace-page form label,
.workspace-page form label small { font-size: 13px; }
.workspace-page input,
.workspace-page select,
.workspace-page textarea { min-height: 44px; }
.workspace-page dialog {
    width: min(620px, calc(100vw - 32px));
    max-height: calc(100vh - 32px);
    max-height: calc(100dvh - 32px);
    overflow-y: auto;
    overscroll-behavior: contain;
}
.workspace-page .dialog-header { gap: 12px; }
.workspace-page .dialog-header > div { min-width: 0; }
.workspace-page .dialog-header h2 { overflow-wrap: anywhere; }
.workspace-page .dialog-header .icon-button { width: 44px; height: 44px; flex-shrink: 0; }
.workspace-page .dialog-footer .button { font-size: 13px; white-space: normal; }
.workspace-page .review-summary dd { overflow-wrap: anywhere; }
.workspace-page .sidebar-close { display: none; }

@media (min-width: 981px) {
    .workspace-sidebar { visibility: visible; transform: none; }
    .sidebar-scrim { display: none !important; }
}

@media (max-width: 1100px) {
    .workspace-page .metrics { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .workspace-page .dashboard-grid { grid-template-columns: minmax(0, 1fr); }
    .workspace-page .topbar-right { gap: 10px; }
    .workspace-page .workspace-time { display: none; }
    .workspace-page .report-context { align-items: start; flex-direction: column; }
    .workspace-page .report-filter { width: 100%; }
}

@media (min-width: 641px) and (max-width: 1100px) {
    .workspace-page .table-scroll { overflow-x: auto; max-width: 100%; }
    .workspace-page table { min-width: 680px; }
    .workspace-page .page-heading { align-items: start; }
    .workspace-page .page-heading-actions { max-width: 45%; flex-shrink: 0; }
    .workspace-page .report-filter label { min-width: 130px; flex: 1 1 130px; }
    .workspace-page .report-filter input,
    .workspace-page .report-filter input[name=user_id],
    .workspace-page .report-filter input[name=agency_id] { width: 100%; max-width: none; }
}

@media (max-width: 980px) {
    .workspace-page .workspace-container { margin-left: 0; }
    .workspace-page .workspace-sidebar {
        inset: 0 auto 0 0; width: min(320px, calc(100vw - 40px));
        height: 100vh; height: 100dvh;
        padding: max(24px, env(safe-area-inset-top)) 18px max(20px, env(safe-area-inset-bottom));
        z-index: 80; transform: translateX(-110%); visibility: hidden;
        transition: transform .2s ease, visibility .2s;
        box-shadow: 14px 0 42px #07152524; overscroll-behavior: contain;
    }
    .workspace-page .workspace-sidebar.open { transform: translateX(0); visibility: visible; }
    .workspace-page .workspace-brand { padding-right: 44px; }
    .workspace-page .sidebar-close {
        position: absolute; right: 16px; top: max(22px, env(safe-area-inset-top));
        display: inline-flex; color: #d9e9f4; background: #173047; border-color: #28465f;
    }
    .workspace-page .sidebar-scrim.visible {
        display: block; position: fixed; inset: 0; z-index: 75; margin: 0;
        border: 0; padding: 0; width: 100%; height: 100vh; height: 100dvh;
        background: #07152599; cursor: pointer; touch-action: none;
    }
    .workspace-page .sidebar-scrim:focus-visible { outline: 3px solid #72f5e7; outline-offset: -5px; }
    .workspace-page .mobile-menu { display: inline-flex; flex-shrink: 0; }
    .workspace-page .workspace-topbar { padding: 12px 22px; height: auto; min-height: 76px; gap: 14px; }
    .workspace-page .topbar-path { min-width: 0; flex: 1; font-size: 12px; }
    .workspace-page .topbar-path strong { overflow-wrap: anywhere; }
    .workspace-page .topbar-path > span { display: none; }
    .workspace-page .topbar-path > .icon { display: none; }
    .workspace-page .profile-chip strong { max-width: 140px; font-size: 12px; }
    .workspace-page .profile-chip small { font-size: 11px; }
    .workspace-page .page-main { padding: 25px 22px 22px; }
    .workspace-page .workspace-footer { padding: 0 22px max(24px, env(safe-area-inset-bottom)); }
    .workspace-page .quick-actions { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .workspace-page .action-tile { min-height: 78px; padding: 15px; }
    .workspace-page .action-tile small { display: block; }
    .workspace-page .action-tile .action-arrow { display: none; }
}

@media (max-width: 640px) {
    .workspace-page { font-size: 14px; }
    .workspace-page .workspace-topbar { padding: 10px 14px; gap: 10px; }
    .workspace-page .profile-chip { gap: 0; }
    .workspace-page .profile-chip > span:not(.avatar) { display: none; }
    .workspace-page .topbar-right { gap: 6px; }
    .workspace-page .page-main { padding: 22px 14px 18px; }
    .workspace-page .page-heading { align-items: stretch; flex-direction: column; gap: 15px; margin-bottom: 20px; }
    .workspace-page h1 { font-size: clamp(25px, 7vw, 32px); }
    .workspace-page .page-heading .eyebrow { font-size: 11px; }
    .workspace-page .page-heading-actions { width: 100%; }
    .workspace-page .page-heading-actions .button { min-height: 46px; font-size: 14px; padding: 12px 16px; }
    .workspace-page .workspace-hero { padding: 22px 20px; gap: 14px; }
    .workspace-page .workspace-hero h2 { font-size: 22px; }
    .workspace-page .workspace-hero p { font-size: 13px; }
    .workspace-page .hero-logo { width: 60px; height: 60px; border-radius: 18px; }
    .workspace-page .metrics { gap: 10px; }
    .workspace-page .metric-card { padding: 16px 14px; }
    .workspace-page .metric-heading { align-items: start; margin-bottom: 10px; }
    .workspace-page .metric-heading h3 { font-size: 12px; }
    .workspace-page .metric-number { font-size: clamp(23px, 6.5vw, 30px); overflow-wrap: anywhere; }
    .workspace-page .metric-card p { font-size: 11px; }
    .workspace-page .metric-icon { width: 30px; height: 30px; }
    .workspace-page .quick-actions { gap: 10px; }
    .workspace-page .action-tile { min-height: 88px; padding: 14px 12px; gap: 10px; align-items: start; }
    .workspace-page .action-tile strong { font-size: 12px; }
    .workspace-page .action-tile small { font-size: 11px; }
    .workspace-page .surface-heading { padding: 19px 18px 16px; gap: 10px; align-items: start; }
    .workspace-page .surface-heading h2 { font-size: 16px; }
    .workspace-page .surface-heading p { font-size: 12px; }
    .workspace-page .table-tools { padding: 0 18px 16px; flex-wrap: wrap; }
    .workspace-page .table-search { max-width: none; flex: 1 1 100%; }
    .workspace-page input,
    .workspace-page select,
    .workspace-page textarea,
    .workspace-page .table-search input,
    .workspace-page .report-filter input { font-size: 16px; min-height: 46px; }
    .workspace-page .report-filter { gap: 10px; }
    .workspace-page .report-filter label { flex: 1 1 100%; width: 100%; }
    .workspace-page .report-filter .filter-label { display: block; font-size: 12px; margin-bottom: 4px; }
    .workspace-page .report-filter input,
    .workspace-page .report-filter input[name=user_id],
    .workspace-page .report-filter input[name=agency_id] { width: 100%; max-width: none; }
    .workspace-page .report-filter .button { min-height: 44px; font-size: 13px; }
    .workspace-page [data-card-table] .table-scroll { overflow: visible; padding: 0 14px; }
    .workspace-page [data-card-table] table,
    .workspace-page [data-card-table] tbody { display: block; width: 100%; min-width: 0; }
    .workspace-page [data-card-table] thead {
        position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px;
        overflow: hidden; clip: rect(0, 0, 0, 0); clip-path: inset(50%); white-space: nowrap;
    }
    .workspace-page [data-card-table] tr[data-record-row] {
        display: block; margin: 0 0 14px; padding: 5px 14px;
        border: 1px solid var(--border); border-radius: 13px; background: #fff;
    }
    .workspace-page [data-card-table] td {
        display: grid; grid-template-columns: minmax(78px, .8fr) minmax(0, 1.2fr);
        align-items: start; gap: 12px; width: 100%; min-width: 0; max-width: none; padding: 12px 0;
        text-align: left; white-space: normal; font-size: 13px;
        border-bottom: 1px solid #edf1f6;
    }
    .workspace-page [data-card-table] tr td:last-child { border-bottom: 0; }
    .workspace-page [data-card-table] .mobile-cell-label { display: block; font-size: 12px; color: #64788e; line-height: 1.65; }
    .workspace-page [data-card-table] .cell-main { font-size: 13px; }
    .workspace-page [data-card-table] .cell-sub { font-size: 11px; }
    .workspace-page [data-card-table] .numeric { text-align: left; }
    .workspace-page [data-card-table] .status { white-space: normal; max-width: 100%; }
    .workspace-page [data-card-table] progress { width: 100%; max-width: 180px; }
    .workspace-page .table-pagination { padding: 13px 18px; gap: 12px; }
    .workspace-page .table-pagination > span { min-width: 0; overflow-wrap: anywhere; }
    .workspace-page .table-pagination > div { flex-shrink: 0; }
    .workspace-page .performance { padding: 0 18px 18px; }
    .workspace-page .performance-row { grid-template-columns: minmax(75px, 1fr) minmax(0, 1.1fr) minmax(62px, .8fr); gap: 9px; }
    .workspace-page .performance-name strong { font-size: 12px; max-width: none; }
    .workspace-page .performance-amount { font-size: 12px; overflow-wrap: anywhere; }
    .workspace-page .performance-name small,
    .workspace-page .performance-amount small { font-size: 10px; }
    .workspace-page .activity-list { padding: 0 18px 8px; }
    .workspace-page .chart-foot { padding: 13px 18px; }
    .workspace-page .preview-banner { flex-wrap: wrap; align-items: start; }
    .workspace-page .preview-banner p { font-size: 12px; }
    .workspace-page .preview-banner > a { display: inline-flex; font-size: 12px; min-height: 44px; align-items: center; margin-left: 0; }
    .workspace-page .workspace-footer { padding: 0 14px max(24px, env(safe-area-inset-bottom)); flex-wrap: wrap; }
    .workspace-page dialog {
        width: calc(100vw - 20px); max-width: none; margin: auto; border-radius: 18px;
        max-height: calc(100vh - 20px); max-height: calc(100dvh - 20px - env(safe-area-inset-top) - env(safe-area-inset-bottom));
    }
    .workspace-page .dialog-header { padding: 18px 16px; }
    .workspace-page .dialog-header h2 { font-size: 18px; }
    .workspace-page .dialog-header p { font-size: 12px; }
    .workspace-page .form-body { padding: 18px 16px; }
    .workspace-page .form-grid { grid-template-columns: 1fr; gap: 0; }
    .workspace-page .dialog-footer { padding: 14px 16px max(14px, env(safe-area-inset-bottom)); gap: 10px; flex-wrap: wrap; }
    .workspace-page .dialog-footer .button { flex: 1 1 120px; min-height: 46px; font-size: 13px; }
    .workspace-page .review-summary { grid-template-columns: minmax(0, 1fr); }
    .workspace-page .review-summary dd { margin-left: 0; }
    .workspace-page .gift-editor-row { grid-template-columns: 58px minmax(0, 1fr); gap: 10px; }
    .workspace-page .gift-editor-row > label:nth-child(3) { grid-column: 1; }
    .workspace-page .gift-editor-row > [data-remove-gift] { grid-column: 2; justify-self: end; align-self: end; }
    .workspace-page .gift-editor-id { grid-column: 1 / -1; }
    .workspace-page .rewards-overview { padding: 2px 18px 22px; flex-wrap: wrap; gap: 16px; }
    .workspace-page .reward-box-symbol { width: 76px; height: 76px; }
    .workspace-page .rewards-overview h2 { font-size: 28px; }
    .workspace-page .rewards-overview p { font-size: 13px; }
}

@media (prefers-reduced-motion: reduce) {
    .workspace-page .workspace-sidebar { transition: none; }
}
