.report-fold-controls { display:flex; flex-wrap:wrap; justify-content:flex-end; gap:8px; margin:0 auto 16px; max-width:1100px; }
.report-section { margin:0 auto 24px; max-width:1100px; background:#fff; border:1px solid #d9e3dc; box-shadow:0 8px 28px #143c3210; }
.report-section > summary { cursor:pointer; color:#182e28; font-family:inherit; list-style:none; }
.report-section > summary::-webkit-details-marker { display:none; }
.report-section > summary::marker { content:''; }
.report-section > summary:focus-visible { outline:2px solid #397963; outline-offset:3px; }
.report-major > summary { padding:30px 30px 0; }
.report-major:not([open]) > summary { padding-bottom:10px; }
.report-major > .report-content { padding:0 30px 24px; }
.report-icon { width:22px; height:22px; flex:0 0 auto; fill:none; stroke:currentColor; stroke-width:1.7; stroke-linecap:round; stroke-linejoin:round; vertical-align:middle; }
.report-heading-end { display:flex; align-items:flex-start; gap:16px; }
.report-heading-end > .report-icon { margin-top:7px; color:#64776c; }
.report-major[open] > summary .report-heading-end > .report-icon,.report-detail[open] > summary > .report-icon { transform:rotate(180deg); }
.report-detail { border:0; border-top:1px solid #d9e3dc; box-shadow:none; margin:0; }
.report-detail:last-of-type { border-bottom:1px solid #d9e3dc; }
.report-detail > summary { display:flex; align-items:center; justify-content:space-between; gap:16px; padding:18px 0; font-size:14px; font-weight:700; color:#244e40; }
.report-detail-title { display:flex; align-items:center; gap:10px; }
.report-detail-title > span:first-child { min-width:18px; }
.report-detail .report-icon { width:20px; height:20px; }
.report-detail-content { padding:0 0 20px; }
.report-detail-content h4 { font-size:13px; margin:24px 0 8px; }
.report-print-month { display:none; }
.attendance-controls { display:flex; justify-content:space-between; align-items:center; flex-wrap:wrap; gap:12px; margin:0 0 12px; }
.employee-segments,.attendance-view-controls { display:flex; padding:3px; border:1px solid #d9e3dc; border-radius:7px; background:#f6f8f6; max-width:100%; overflow-x:auto; gap:3px; }
.employee-segments button,.attendance-view-controls button { background:transparent; border:0; border-radius:4px; box-shadow:none; padding:8px 16px; font-size:13px; white-space:nowrap; flex-shrink:0; }
.employee-segments [aria-selected=true],.attendance-view-controls [aria-pressed=true] { background:#244e40; color:white; }
.attendance-view-controls button { padding:8px 12px; gap:6px; }
.attendance-view-controls .report-icon { width:17px; height:17px; }
.attendance-legend { color:#64776c; font-size:11px; line-height:1.6; margin:0 0 14px; }
.attendance-employee { max-width:720px; margin:0 auto 22px; }
.attendance-employee h3 { display:flex; justify-content:space-between; gap:12px; }
.attendance-employee h3 small { font-weight:400; font-size:12px; }
.report-content [hidden] { display:none!important; }
.report-empty { padding:16px 0; font-size:13px; color:#64776c; }
.attendance-calendar { margin:16px 0; break-inside:avoid; }
.calendar-grid { display:grid; grid-template-columns:repeat(7,minmax(0,1fr)); gap:4px; }
.calendar-weekday { text-align:center; font-size:12px; color:#64776c; }
.calendar-day { background:#f6f8f6; border:1px solid #e1e8e2; border-radius:5px; padding:7px; min-height:52px; }
.calendar-day span { display:block; font-size:10px; color:#64776c; }
.calendar-day strong { display:block; font-size:14px; text-align:center; }
.calendar-day.attendance-present { background:#edf8ef; color:#237749; border-color:#b7d5bd; }
.calendar-total { text-align:right; font-weight:700; font-size:12px; }
.report-toolbar { display:flex; gap:12px; align-items:center; margin-bottom:18px; flex-wrap:wrap; }
.report-toolbar p { flex:1; margin:0; color:var(--muted); font-size:13px; }
.report-sheet { background:#fff; color:#182e28; max-width:1100px; margin:0 auto 24px; padding:30px; border:1px solid #d9e3dc; box-shadow:0 8px 28px #143c3210; }
.report-heading { display:flex; justify-content:space-between; gap:24px; border-bottom:2px solid #244e40; padding-bottom:16px; margin-bottom:20px; }
.report-heading-copy { min-width:0; }
.report-brand { font-size:18px; letter-spacing:.08em; font-weight:800; color:#244e40; }
.report-brand span { font-size:9px; letter-spacing:.12em; color:#829288; margin-left:12px; }
.report-heading h2 { display:flex; align-items:center; gap:10px; font-size:24px; margin:12px 0 5px; }
.report-heading p { margin:0; font-size:11px; color:#64776c; }
.report-month { font-size:26px; font-variant-numeric:tabular-nums; white-space:nowrap; }
.report-kpis { display:grid; grid-template-columns:repeat(3,1fr); gap:18px; margin-bottom:20px; }
.report-kpis>div { padding:18px; background:#f2f6f3; border-top:3px solid #4a7762; }
.report-kpis span { font-size:12px; color:#64776c; }
.report-kpis strong { display:block; font-size:29px; margin-top:10px; letter-spacing:-.025em; font-variant-numeric:tabular-nums; }
.report-kpis .loss { color:#a13831; }
.report-columns { display:grid; grid-template-columns:1fr 1fr; gap:34px; }
.report-content h3 { font-size:14px; margin:14px 0 8px; color:#244e40; }
.report-content > .report-overview-title { margin-top:0; }
.report-content > .report-table-wrap { margin-bottom:24px; }
.report-detail-content > .report-notes:first-child { margin-top:0; }
.report-balance { display:flex; justify-content:space-between; gap:12px; border-bottom:1px solid #e6ece7; padding:9px 0; font-size:12px; }
.report-balance strong { font-variant-numeric:tabular-nums; }
.report-balance.total { font-weight:800; border-color:#8aa595; }
.report-stats { display:grid; grid-template-columns:repeat(5,1fr); gap:12px; margin:24px 0 16px; padding:16px 0; border-top:1px solid #d9e3dc; border-bottom:1px solid #d9e3dc; }
.report-stats>div { color:#64776c; font-size:11px; }
.report-stats strong { display:block; font-size:17px; color:#182e28; margin:7px 0; }
.report-stats small { display:block; font-size:10px; overflow-wrap:anywhere; }
.report-notes { color:#64776c; font-size:11px; line-height:1.6; margin-top:16px; }
.report-notes p { margin:5px 0; }
.report-warning { color:#925b0e; }
.report-table-wrap { overflow:auto; }
.report-table { width:100%; border-collapse:collapse; table-layout:auto; }
.report-table th,.report-table td { white-space:normal; overflow-wrap:anywhere; padding:7px 8px; font-size:11px; vertical-align:top; border-bottom:1px solid #e5ece7; text-align:right; font-variant-numeric:tabular-nums; }
.report-table th { background:#edf3ef; color:#244e40; font-size:10px; font-weight:700; }
.report-table th:first-child,.report-table td:first-child { text-align:left; white-space:nowrap; }
.report-table tbody tr:nth-child(even) { background:#fafcfb; }
.report-table tfoot td { font-weight:800; border-top:2px solid #8aa595; }
.report-table.attendance-matrix td,.report-table.attendance-matrix th { padding:4px 8px; }
.report-footer { border-top:1px solid #d9e3dc; padding-top:12px; margin-top:24px; display:flex; justify-content:space-between; gap:16px; color:#75877c; font-size:10px; }
.payroll-preview { padding:20px; margin:16px 0; }
.payroll-preview .table-wrap { margin:14px 0; }
button:disabled { cursor:not-allowed; opacity:.5; }
@media(max-width:620px) {
  .report-major > summary { padding:16px 16px 0; }.report-major > .report-content { padding:0 16px 16px; }
  .report-heading { gap:12px; flex-wrap:wrap; }.report-heading-copy { flex:1 1 190px; }.report-heading-end { gap:10px; margin-left:auto; }
  .report-heading-end > .report-icon { margin-top:2px; }.report-detail > summary { gap:8px; }.report-detail-title { gap:7px; }
  .report-heading h2 .report-icon { width:20px; height:20px; }
  .attendance-controls { align-items:flex-start; }.employee-segments { width:100%; }.employee-segments button { flex:1 0 auto; }
  .calendar-day { padding:4px 2px; min-height:48px; }.calendar-day strong { font-size:12px; }.attendance-matrix { min-width:0!important; }
  .report-sheet { padding:16px; }.report-kpis { grid-template-columns:1fr; gap:8px; }.report-kpis strong { font-size:24px; }
  .report-columns { grid-template-columns:1fr; gap:12px; }.report-stats { grid-template-columns:repeat(2,1fr); }
  .report-table { min-width:760px; }.report-brand span { display:block; margin:4px 0; }.report-heading h2 { font-size:20px; }.report-month { font-size:19px; }
}
@page { size:A4 landscape; margin:10mm; }
@media print {
  .report-fold-controls,.attendance-controls,.report-heading-end > .report-icon,.report-detail > summary > .report-icon { display:none!important; }
  .report-major > summary { padding:0!important; break-after:avoid; }
  .report-detail > summary { padding:10px 0; break-after:avoid; }
  .report-print-month { display:block; margin-left:auto; color:#64776c; font-size:12px; }
  html,#app-view,main { background:#fff!important; }
  .report-section { border:0; border-radius:0; margin:0; max-width:none; box-shadow:none; }
  .report-section::details-content { display:block; content-visibility:visible; }
  .report-major { break-before:page; }.report-major:first-of-type { break-before:auto; }
  .report-detail { break-before:page; }.report-detail:last-of-type { border:0; }
  .report-major > .report-content { padding:0; }
  .report-detail-content { padding:0; }
  .calendar-day { min-height:30px; padding:3px; }
  .attendance-employee { max-width:800px; break-inside:auto; }
  .attendance-employee ~ .attendance-employee { break-before:page; }
  body { background:#fff!important; }.sidebar,.topbar,.report-toolbar,#login-view { display:none!important; }
  #app-view { display:block!important; } main { padding:0!important; } main>section:not(#month-end-view) { display:none!important; }
  #month-end-view { display:block!important; } #month-end-status { display:none; }
  .report-sheet { border:0; box-shadow:none; max-width:none; width:100%; margin:0; padding:0; }
  .report-heading { margin-bottom:14px; padding-bottom:12px; }.report-heading h2 { font-size:22px; }
  .report-kpis { margin-bottom:14px; }.report-kpis>div { padding:12px; }.report-kpis strong { font-size:25px; }
  .report-stats { margin:14px 0 10px; padding:10px 0; }.report-balance { padding:7px 0; }
  .report-footer { margin-top:18px; padding-top:10px; break-inside:avoid; }
  .report-table-wrap { overflow:visible; }.report-table { min-width:0; }
  .report-table th,.report-table td { padding:2px 7px; font-size:10px; line-height:1.2; }
  .report-table.attendance-matrix td,.report-table.attendance-matrix th { padding:1px 7px; line-height:1.2; }
  thead { display:table-header-group; } tr { break-inside:avoid; } h3 { break-after:avoid; }
  .report-section { print-color-adjust:exact; -webkit-print-color-adjust:exact; }
}
