/* Escala semanal: composição local sobre os componentes e tokens de app.css.
   A grade muda para um dia por vez no mobile; cada colaborador mantém seu saldo semanal. */
#escala-app { display: grid; gap: var(--space-4); min-width: 0; }
#escala-app [hidden]:not(.modal-backdrop) { display: none !important; }
#escala-app .escala-header { display: flex; justify-content: space-between; align-items: center; gap: var(--space-4); margin-bottom: 0; }
#escala-app .escala-header .eyebrow { display: block; margin-bottom: var(--space-2); }
#escala-app .escala-context { display: grid; gap: var(--space-2); min-width: 0; }
#escala-app .escala-context-switch { display: flex; flex-wrap: wrap; gap: var(--space-2); }
#escala-app .escala-context-switch > button { min-height: var(--control-sm); }
#escala-app .escala-context-switch > [aria-pressed="true"] { color: var(--conclusion-ink); background: var(--conclusion-bg); }
#escala-app #escala-context-status.is-warning { color: color-mix(in srgb, var(--warning) 74%, var(--ink)); }
#escala-app .escala-section { display: grid; gap: var(--space-4); min-width: 0; }
#escala-app .escala-section-title { margin: 0 0 var(--space-1); font-size: var(--font-size-lg); font-weight: 600; }
#escala-app .business-tabs { padding-inline: 0; }
#escala-app .business-tabs button { display: inline-flex; align-items: center; justify-content: center; gap: var(--space-2); }
#escala-app .escala-toolbar, #escala-app .escala-row, #escala-app .escala-row-actions,
#escala-app .escala-team-actions { display: flex; flex-wrap: wrap; align-items: center; gap: var(--space-2); }
#escala-app .escala-toolbar, #escala-app .escala-between { justify-content: space-between; }
#escala-app .escala-toolbar { gap: var(--space-3); }
#escala-app .escala-toolbar-actions { display: flex; flex-wrap: wrap; gap: var(--space-2); }
#escala-app .escala-toolbar-actions > button { flex: 1; white-space: nowrap; }
#escala-app .escala-week-control { display: flex; align-items: end; gap: var(--space-2); min-width: 0; }
#escala-app .escala-week-control > .icon-button { padding: 0; width: var(--control-md); height: var(--control-md); flex: 0 0 var(--control-md); font-size: var(--font-size-xl); }
#escala-app .escala-previous-icon { transform: rotate(180deg); }
#escala-app .escala-week-field { width: 8rem; min-width: 0; gap: var(--space-1); }
#escala-app .escala-week-field .field-label { color: var(--muted); font-size: var(--font-size-xs); font-weight: 500; }
#escala-app .escala-week-field input { min-height: var(--control-md); padding-inline: var(--space-2); font-size: var(--font-size-md); text-align: center; font-variant-numeric: tabular-nums; }
#escala-app .escala-meta { margin: 0; color: var(--muted); font-size: var(--font-size-sm); font-weight: 400; line-height: 1.45; overflow-wrap: anywhere; }
#escala-app .escala-stack { display: grid; gap: var(--space-3); min-width: 0; }
#escala-app .escala-badge { display: inline-flex; gap: var(--space-1); align-items: center; padding: var(--space-1) var(--space-2); border-radius: var(--radius-sm); background: var(--surface-muted); color: var(--muted); font-size: var(--font-size-xs); font-weight: 500; line-height: 1.25; }
#escala-app .escala-badge.is-new { color: var(--accent-text); background: color-mix(in srgb, var(--accent-2) 10%, var(--surface)); }
#escala-app .escala-badge.is-warning { color: color-mix(in srgb, var(--warning) 74%, var(--ink)); background: color-mix(in srgb, var(--warning) 10%, var(--surface)); }
#escala-app .escala-badge.is-success { color: var(--success); background: color-mix(in srgb, var(--success) 10%, var(--surface)); }
#escala-app .escala-metrics { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: var(--space-3); min-width: 0; }
#escala-app .escala-summary { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--space-3); min-width: 0; }
#escala-app .escala-stat, #escala-app .escala-metric { min-width: 0; padding: var(--space-3) var(--space-4); border: var(--border-width) solid var(--line); border-radius: var(--radius-md); background: var(--surface); }
#escala-app .escala-stat-label, #escala-app .escala-metric > span, #escala-app .escala-stat > span { display: block; color: var(--muted); font-size: var(--font-size-sm); }
#escala-app .escala-stat-value, #escala-app .escala-metric > strong, #escala-app .escala-stat > strong { display: block; margin-top: var(--space-1); font-size: var(--font-size-xl); font-weight: 600; font-variant-numeric: tabular-nums; overflow-wrap: anywhere; }
#escala-app .escala-stat > small, #escala-app .escala-metric > small { display: block; margin-top: var(--space-1); color: var(--muted); font-size: var(--font-size-xs); }
#escala-app .escala-schedule { overflow: hidden; }
#escala-app .escala-desktop-view { min-width: 0; overflow-x: auto; }
#escala-app .escala-table { width: 100%; table-layout: fixed; border-collapse: collapse; font-size: var(--font-size-xs); }
#escala-app .escala-table :is(th, td) { padding: var(--space-2) var(--space-1); text-align: center; vertical-align: middle; border-bottom: var(--border-width) solid var(--line); }
#escala-app .escala-table th:first-child { width: 16%; padding-left: var(--space-3); text-align: left; }
#escala-app .escala-table thead th { background: var(--surface-muted); color: var(--muted); font-weight: 500; }
#escala-app .escala-table thead th :is(span, small) { display: block; font-weight: 400; }
#escala-app .escala-table tbody th { font-weight: 500; }
#escala-app .escala-table tbody tr:last-child :is(th, td) { border-bottom: 0; }
#escala-app .escala-person-cell, #escala-app .escala-person-info { min-width: 0; overflow-wrap: anywhere; }
#escala-app .escala-person-name, #escala-app .escala-person-cell > strong { display: block; font-weight: 600; overflow-wrap: anywhere; }
#escala-app .escala-person-cell > small { display: block; color: var(--muted); font-size: var(--font-size-xs); font-weight: 400; }
#escala-app .escala-person-info > .escala-meta { display: block; }
#escala-app .escala-person-info > .escala-badge { margin-top: var(--space-1); }
#escala-app .escala-week-balance { display: grid; justify-items: start; gap: var(--space-1); margin-block: var(--space-1); min-width: 0; font-variant-numeric: tabular-nums; }
#escala-app .escala-week-balance > .escala-meta { font-size: var(--font-size-xs); }
#escala-app .escala-week-balance > .escala-badge { max-width: 100%; box-sizing: border-box; overflow-wrap: anywhere; }
#escala-app .escala-day-cell { display: grid; grid-template-columns: minmax(0, 1fr); gap: var(--space-1); min-width: 0; }
#escala-app .escala-edit-shift { width: 100%; min-width: 0; min-height: var(--control-sm); padding: var(--space-1); font-size: var(--font-size-xs); }
#escala-app .escala-shift { display: grid; align-content: center; justify-items: center; gap: var(--space-1); position: relative; width: 100%; min-height: 3.375rem; padding: var(--space-2) var(--space-1); border: var(--border-width) solid transparent; border-radius: var(--radius-sm); background: color-mix(in srgb, var(--accent-2) 9%, var(--surface)); color: var(--ink); font-size: var(--font-size-xs); font-variant-numeric: tabular-nums; line-height: 1.3; cursor: pointer; transition: border-color var(--motion-fast) ease, background-color var(--motion-fast) ease; }
#escala-app .escala-shift:hover { border-color: var(--accent-2); background: color-mix(in srgb, var(--accent-2) 15%, var(--surface)); }
#escala-app .escala-shift > strong { font-size: inherit; font-weight: 500; }
#escala-app .escala-shift > small { font-size: var(--font-size-xs); color: var(--muted); }
#escala-app .escala-shift:is(.is-off, [data-status="off"]) { background: var(--surface-muted); color: var(--muted); }
#escala-app .escala-shift:is(.is-unavailable, [data-status="unavailable"], [data-status="away"]) { background: color-mix(in srgb, var(--warning) 9%, var(--surface)); }
#escala-app .escala-shift.has-mismatch { border-color: color-mix(in srgb, var(--warning) 65%, var(--line)); }
#escala-app .escala-shift.is-fixed::after { content: ""; position: absolute; top: var(--space-1); right: var(--space-1); width: .25rem; height: .25rem; border-radius: var(--radius-pill); background: var(--accent-text); }
#escala-app .escala-mobile-view { display: none; }
#escala-app .escala-pagination { display: none; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: var(--space-2); padding: var(--space-3); border-top: var(--border-width) solid var(--line); font-size: var(--font-size-sm); color: var(--muted); }
#escala-app .escala-pagination:empty { display: none; }
#escala-app .escala-disclosure { min-width: 0; }
#escala-app .escala-disclosure > summary { display: flex; justify-content: space-between; align-items: center; gap: var(--space-3); min-height: var(--control-md); cursor: pointer; list-style: none; font-size: var(--font-size-md); font-weight: 500; }
#escala-app .escala-disclosure > summary::-webkit-details-marker { display: none; }
#escala-app .escala-disclosure > summary::after { content: "+"; color: var(--muted); font-size: var(--font-size-lg); flex: 0 0 auto; margin-left: auto; }
#escala-app .escala-disclosure[open] > summary::after { content: "−"; }
#escala-app .escala-disclosure-body, #escala-app .escala-disclosure[open] > .escala-stack { margin-top: var(--space-3); }
#escala-app .escala-coverage { padding: var(--space-2) var(--space-3); border-top: var(--border-width) solid var(--line); }
#escala-app .escala-coverage-row { display: flex; align-items: start; justify-content: space-between; flex-wrap: wrap; gap: var(--space-2); padding-block: var(--space-2); border-bottom: var(--border-width) solid var(--line); font-size: var(--font-size-sm); font-variant-numeric: tabular-nums; }
#escala-app .escala-coverage-row:last-child { border-bottom: 0; }
#escala-app .escala-issue, #escala-app .escala-gap { margin: 0; color: color-mix(in srgb, var(--warning) 74%, var(--ink)); font-size: var(--font-size-sm); overflow-wrap: anywhere; }
#escala-app .escala-notice { padding: var(--space-3); border-radius: var(--radius-md); background: color-mix(in srgb, var(--accent-2) 9%, var(--surface)); color: var(--ink); font-size: var(--font-size-sm); line-height: 1.5; overflow-wrap: anywhere; }
#escala-app .escala-notice.is-warning { background: color-mix(in srgb, var(--warning) 10%, var(--surface)); }
#escala-app .escala-notice.is-danger { color: var(--danger); background: color-mix(in srgb, var(--danger) 9%, var(--surface)); }
#escala-app .escala-notice.is-success { color: var(--success); background: color-mix(in srgb, var(--success) 9%, var(--surface)); }
#escala-app .escala-empty { padding: var(--space-5); font-size: var(--font-size-md); line-height: 1.5; }
#escala-app .escala-empty:not(.list-empty) { color: var(--muted); }
#escala-app .escala-empty.list-empty { border: 0; border-radius: 0; }
#escala-app .escala-empty h3, #escala-app .escala-empty p { margin: 0; }
#escala-app .escala-team-row, #escala-app .escala-team-card { display: flex; align-items: center; justify-content: space-between; gap: var(--space-4); padding: var(--space-4); border-bottom: var(--border-width) solid var(--line); min-width: 0; }
#escala-app .escala-team-row:last-child, #escala-app .escala-team-card:last-child { border-bottom: 0; }
#escala-app .escala-team-row h3, #escala-app .escala-team-card h3 { margin: 0 0 var(--space-1); font-size: var(--font-size-md); font-weight: 600; overflow-wrap: anywhere; }
#escala-app .escala-team-row > :first-child, #escala-app .escala-team-card > :first-child { min-width: 0; }
#escala-app .escala-team-row > :nth-child(2) { display: grid; gap: var(--space-1); margin-left: auto; font-variant-numeric: tabular-nums; }
#escala-app .escala-team-row > .escala-row-actions { flex-shrink: 0; }
#escala-app .escala-team-actions { justify-content: end; flex: 0 0 auto; }
#escala-app .escala-team-actions button { min-height: var(--control-sm); }
#escala-app .escala-money-row { display: flex; justify-content: space-between; flex-wrap: wrap; gap: var(--space-2) var(--space-4); font-size: var(--font-size-md); }
#escala-app .escala-money-row > strong { font-weight: 600; font-variant-numeric: tabular-nums; }
#escala-app .escala-cost-metrics { margin-block: var(--space-1); }
#escala-app .escala-comparison-person { min-width: 0; }
#escala-app .escala-comparison-person > summary { display: flex; align-items: center; flex-wrap: wrap; gap: var(--space-2); min-height: var(--control-md); overflow-wrap: anywhere; }
#escala-app .escala-comparison-person > summary::before { content: "+"; color: var(--muted); flex: 0 0 auto; }
#escala-app .escala-comparison-person[open] > summary::before { content: "−"; }
#escala-app .escala-comparison-person > summary::-webkit-details-marker { display: none; }
#escala-app .escala-comparison-pair { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--space-3); min-width: 0; padding: 0 var(--space-4) var(--space-4); }
#escala-app .escala-comparison-pair > * { min-width: 0; padding: var(--space-3); border: var(--border-width) solid var(--line); border-radius: var(--radius-md); background: var(--surface); }
#escala-app .escala-comparison-pair h3 { margin: 0 0 var(--space-2); font-size: var(--font-size-md); font-weight: 600; }
#escala-app .escala-comparison-day { display: grid; grid-template-columns: minmax(0, .7fr) minmax(0, 1fr); gap: var(--space-1) var(--space-2); padding-block: var(--space-2); border-bottom: var(--border-width) solid var(--line); font-size: var(--font-size-sm); font-variant-numeric: tabular-nums; overflow-wrap: anywhere; }
#escala-app .escala-comparison-day:last-child { border-bottom: 0; }
#escala-app .escala-comparison-day > strong { font-weight: 500; }
#escala-app .escala-comparison-day > small { grid-column: 1 / -1; color: var(--muted); font-size: var(--font-size-xs); }
#escala-app .escala-comparison-day.is-changed { background: color-mix(in srgb, var(--accent-2) 8%, var(--surface)); }
#escala-app .escala-comparison-person .escala-meta { overflow-wrap: anywhere; }
#escala-app .escala-check, #escala-app .escala-inline-checks label { display: flex; align-items: center; gap: var(--space-2); min-height: var(--control-md); font-size: var(--font-size-md); font-weight: 400; }
#escala-app .escala-check input, #escala-app .escala-inline-checks input:is([type="checkbox"], [type="radio"]) { width: var(--icon-md); min-height: var(--icon-md); height: var(--icon-md); padding: 0; flex: 0 0 var(--icon-md); accent-color: var(--accent-2); }
#escala-app .escala-inline-checks { display: flex; flex-wrap: wrap; gap: var(--space-2) var(--space-4); }
#escala-app .escala-load-table { width: 100%; border-collapse: collapse; font-size: var(--font-size-sm); }
#escala-app .escala-load-table :is(th, td) { text-align: left; vertical-align: middle; padding: var(--space-2); border-bottom: var(--border-width) solid var(--line); }
#escala-app .escala-load-table th { color: var(--muted); font-weight: 500; }
#escala-app .escala-load-table input { min-width: 0; max-width: 7rem; min-height: var(--control-md); font-variant-numeric: tabular-nums; }
#escala-app .escala-form-wide { grid-column: 1 / -1; }
#escala-app .escala-day-fields { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); gap: var(--space-2); min-width: 0; }
#escala-app .escala-preview-change { display: grid; gap: var(--space-2); padding: var(--space-3); border-bottom: var(--border-width) solid var(--line); font-size: var(--font-size-sm); overflow-wrap: anywhere; }
#escala-app .escala-preview-change > small { color: var(--muted); font-size: var(--font-size-xs); }
#escala-app .escala-preview-change:last-child { border-bottom: 0; }
#escala-app .escala-footer { display: flex; align-items: start; justify-content: space-between; flex-wrap: wrap; gap: var(--space-3); padding-top: var(--space-2); }
#escala-app .escala-footer > .escala-meta { padding-top: var(--space-3); }
#escala-app .escala-output { margin-left: auto; }
#escala-app .escala-output > summary { color: var(--accent-text); }
#escala-app .escala-output-actions { display: flex; flex-wrap: wrap; justify-content: end; gap: var(--space-2); margin-top: var(--space-2); }
#escala-app .escala-output-actions > button { min-height: var(--control-sm); }
#escala-editor .escala-editor-panel { width: min(44rem, 100%); min-height: 0; }
#escala-editor .auth-modal__header { margin-bottom: var(--space-4); padding-right: var(--control-md); }
#escala-editor .auth-modal__header h2 { font-size: var(--font-size-xl); font-weight: 600; overflow-wrap: anywhere; }
#escala-editor label { min-width: 0; font-size: var(--font-size-md); }
#escala-editor input, #escala-editor select { min-width: 0; min-height: var(--control-md); }
#escala-editor .disclosure-item > :is(.form-grid, .escala-check, .escala-inline-checks, .escala-day-fields) { margin: 0 var(--space-4) var(--space-4); }
#escala-editor .escala-day-fields { grid-template-columns: minmax(8rem, 1.25fr) repeat(2, minmax(0, 1fr)); align-items: end; padding-bottom: var(--space-3); border-bottom: var(--border-width) solid var(--line); }
#escala-editor .escala-day-fields:last-child { border-bottom: 0; }
#escala-editor .escala-day-fields .escala-check { min-height: var(--control-lg); }
#escala-editor fieldset { min-width: 0; margin: 0 0 var(--space-4); padding: var(--space-4); border: var(--border-width) solid var(--line); border-radius: var(--radius-md); }
#escala-editor legend { padding-inline: var(--space-2); font-size: var(--font-size-md); font-weight: 600; }
#escala-editor .escala-stack > p { margin-block: 0; line-height: 1.5; }
#escala-editor .form-actions { padding-top: var(--space-3); border-top: var(--border-width) solid var(--line); }
#escala-app #escala-cost-details .disclosure-item > .escala-money-row { margin: 0 var(--space-4) var(--space-3); }
#escala-app #escala-cost-details .disclosure-item > button { margin: 0 var(--space-4) var(--space-4); }
#escala-app :is(.escala-day-button, .escala-shift, .escala-disclosure > summary):focus-visible { outline: 2px solid var(--accent-2); outline-offset: 2px; }

@media (max-width: 68.75rem) {
    #escala-app .escala-team-row, #escala-app .escala-team-card { flex-wrap: wrap; }
    #escala-app .escala-table th:first-child { width: 17%; }
    #escala-app .escala-table :is(th, td) { padding-inline: .125rem; }
    #escala-app .escala-table th:first-child { padding-left: var(--space-2); }
    #escala-app .escala-toolbar-actions { align-self: end; }
    #escala-app .form-grid--three { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 47.5rem) {
    #escala-app { gap: var(--space-3); }
    #escala-app .escala-header { align-items: start; flex-direction: column; gap: var(--space-2); }
    #escala-app .escala-header > .escala-badge { display: none; }
    #escala-app .escala-context-switch { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); width: 100%; }
    #escala-app .escala-context-switch > button { min-width: 0; min-height: var(--control-md); padding-inline: var(--space-2); font-size: var(--font-size-sm); }
    #escala-app .business-tabs { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); min-width: 0; }
    #escala-app .business-tabs button { min-width: 0; padding-inline: var(--space-2); }
    #escala-app .escala-toolbar { display: grid; grid-template-columns: minmax(0, 1fr); }
    #escala-app .escala-toolbar-actions { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); }
    #escala-app .escala-toolbar-actions > button { min-width: 0; padding: var(--space-1) var(--space-2); font-size: var(--font-size-sm); white-space: normal; }
    #escala-app .escala-week-control { justify-content: center; gap: var(--space-1); }
    #escala-app .escala-week-field { flex: 1 1 auto; max-width: 10rem; }
    #escala-app .escala-today { padding-inline: var(--space-2); font-size: var(--font-size-sm); }
    #escala-app .escala-desktop-view { display: none; }
    #escala-app .escala-mobile-view { display: block; }
    #escala-app .escala-metrics { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--space-2); }
    #escala-app .escala-summary { grid-template-columns: minmax(0, 1fr); gap: var(--space-2); }
    #escala-app .escala-metric, #escala-app .escala-stat { padding: var(--space-2); }
    #escala-app .escala-metric > span, #escala-app .escala-stat > span, #escala-app .escala-stat-label { font-size: var(--font-size-xs); }
    #escala-app .escala-metric > strong, #escala-app .escala-stat > strong, #escala-app .escala-stat-value { font-size: var(--font-size-lg); }
    #escala-app .escala-day-nav { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); gap: var(--space-1); padding: var(--space-2); }
    #escala-app .escala-day-button { display: grid; justify-items: center; align-content: center; gap: var(--space-1); min-width: 0; min-height: var(--control-lg); padding: var(--space-1) 0; border: var(--border-width) solid var(--line); border-radius: var(--radius-sm); background: var(--surface); color: var(--muted); font-size: var(--font-size-xs); cursor: pointer; }
    #escala-app .escala-day-button[aria-pressed="true"] { border-color: var(--accent-2); background: color-mix(in srgb, var(--accent-2) 10%, var(--surface)); color: var(--accent-text); }
    #escala-app .escala-day-label { margin: 0; padding: var(--space-2) var(--space-3); color: var(--muted); font-size: var(--font-size-sm); border-bottom: var(--border-width) solid var(--line); }
    #escala-app .escala-day-label:empty { display: none; }
    #escala-app .escala-day-list { padding-inline: var(--space-3); }
    #escala-app .escala-person-day { display: grid; grid-template-columns: minmax(0, 1fr) minmax(6.5rem, auto); align-items: center; gap: var(--space-2); padding-block: var(--space-3); border-bottom: var(--border-width) solid var(--line); }
    #escala-app .escala-person-day:last-child { border-bottom: 0; }
    #escala-app .escala-person-day .escala-shift { min-height: var(--control-lg); }
    #escala-app .escala-edit-shift { min-height: var(--control-md); }
    #escala-app .escala-person-name { font-size: var(--font-size-md); }
    #escala-app .escala-person-day .escala-meta { font-size: var(--font-size-xs); }
    #escala-app .escala-pagination { display: flex; padding: var(--space-2); }
    #escala-app .escala-pagination button { padding-inline: var(--space-2); }
    #escala-app .escala-coverage > summary { flex-wrap: wrap; gap: var(--space-1); font-size: var(--font-size-sm); }
    #escala-app .escala-row-actions { display: grid; grid-template-columns: minmax(0, 1fr); }
    #escala-app .escala-team-row, #escala-app .escala-team-card { display: grid; grid-template-columns: minmax(0, 1fr); gap: var(--space-3); padding: var(--space-3); }
    #escala-app .escala-team-row > :nth-child(2) { margin-left: 0; }
    #escala-app .escala-team-row > .escala-row-actions { display: flex; }
    #escala-app .escala-team-row > .escala-row-actions > button { flex: 1; }
    #escala-app .escala-team-actions { justify-content: start; }
    #escala-app .escala-team-actions button { flex: 1; }
    #escala-app .escala-cost-metrics { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    #escala-app .escala-cost-metrics .escala-metric, #escala-app .escala-cost-metrics .escala-stat { padding: var(--space-2); }
    #escala-app .escala-cost-metrics :is(.escala-metric, .escala-stat) > strong { font-size: var(--font-size-lg); overflow-wrap: anywhere; }
    #escala-app .escala-comparison-pair { grid-template-columns: minmax(0, 1fr); padding-inline: var(--space-3); }
    #escala-app .escala-comparison-pair > * { padding: var(--space-2); }
    #escala-app .escala-comparison-person > summary { padding-inline: var(--space-3); font-size: var(--font-size-sm); }
    #escala-app .form-grid, #escala-app .form-grid--three { grid-template-columns: minmax(0, 1fr); }
    #escala-app .escala-load-table :is(th, td) { padding: var(--space-2) var(--space-1); }
    #escala-app .escala-load-table input { padding-inline: var(--space-2); }
    #escala-app .escala-day-fields { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    #escala-app .escala-footer { display: grid; grid-template-columns: minmax(0, 1fr); }
    #escala-app .escala-output { margin-left: 0; }
    #escala-app .escala-output-actions { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); }
    #escala-app .escala-output-actions > button { min-height: var(--control-md); padding: var(--space-2); font-size: var(--font-size-sm); }
    #escala-editor .escala-editor-panel { padding: var(--space-4); }
    #escala-editor .auth-modal__header { padding-right: var(--control-sm); }
    #escala-editor .form-actions > button { flex: 1; }
    #escala-editor input, #escala-editor select { font-size: var(--font-size-base); }
    #escala-editor .disclosure-item > :is(.form-grid, .escala-check, .escala-inline-checks, .escala-day-fields) { margin-inline: var(--space-3); }
    #escala-editor .escala-day-fields { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    #escala-editor .escala-day-fields > .escala-check { grid-column: 1 / -1; min-height: var(--control-sm); }
    #escala-editor fieldset { padding: var(--space-3); }
}

@media (prefers-reduced-motion: reduce) {
    #escala-app .escala-shift { transition: none; }
}

@media print {
    /* A impressão usa a semana inteira e o resumo financeiro, independentemente da aba. */
    body:has(#escala-app) :is(.sidebar, .topbar, .mobile-bar, .mobile-topbar, .sidebar-backdrop, .modal-backdrop, [data-calculator-next-step]) { display: none !important; }
    /* Cores de papel do navegador mantêm a impressão legível também nos temas escuros. */
    body.app-shell:has(#escala-app), body:has(#escala-app) { display: block; color-scheme: light; --ink: CanvasText; --muted: CanvasText; --bg: Canvas; --surface: Canvas; --surface-muted: Canvas; --line: GrayText; color: var(--ink); background: var(--surface); }
    body:has(#escala-app) .app-main, body:has(#escala-app) .content { margin: 0; padding: 0; width: 100%; max-width: none; }
    #escala-app { gap: var(--space-3); color: var(--ink); }
    #escala-app :is(.escala-tabs-wrap, .escala-toolbar, .escala-footer, .escala-pagination, .escala-mobile-view, .escala-coverage, .escala-row-actions, .escala-edit-shift, .escala-context-switch, .escala-context > .escala-check) { display: none !important; }
    #escala-app #escala-panel-equipe { display: none !important; }
    #escala-app #escala-panel-escala, #escala-app #escala-panel-custos { display: grid !important; }
    #escala-app #escala-panel-escala > .escala-row > .escala-meta:last-child { display: none; }
    #escala-app #escala-panel-custos::before { content: "Antes e depois · horários e salário bruto"; font-size: var(--font-size-lg); font-weight: 600; }
    #escala-app #escala-panel-custos:has(#escala-full-cost:checked)::before { content: "Antes e depois · horários e custo com encargos e benefícios"; }
    #escala-app[data-comparison="false"] #escala-panel-custos::before { content: "Custos da escala · salário bruto"; }
    #escala-app[data-comparison="false"] #escala-panel-custos:has(#escala-full-cost:checked)::before { content: "Custos da escala · encargos e benefícios"; }
    #escala-app #escala-panel-custos > .panel:not(.escala-comparison-disclosure) { display: none; }
    #escala-app .escala-comparison-disclosure, #escala-app .escala-comparison-person { display: block; }
    #escala-app .escala-comparison-disclosure::details-content, #escala-app .escala-comparison-person::details-content { display: block; content-visibility: visible; height: auto; }
    #escala-app .escala-comparison-disclosure > summary::after, #escala-app .escala-comparison-person > summary::before { display: none; }
    #escala-app .escala-comparison-pair { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    #escala-app .escala-comparison-person, #escala-app .escala-comparison-day { break-inside: avoid; }
    #escala-app .escala-desktop-view { display: block; overflow: visible; }
    #escala-app .escala-table { width: 100%; table-layout: fixed; }
    #escala-app .escala-table tr, #escala-app .escala-metric, #escala-app .escala-stat { break-inside: avoid; }
    #escala-app .escala-shift { background: transparent; border-color: var(--line); }
    #escala-app .escala-metrics { grid-template-columns: repeat(4, minmax(0, 1fr)); }
    #escala-app .escala-schedule { overflow: visible; }
}
