#planModal .dialog{width:min(1100px,96vw)}#planModal .dialogHead{position:sticky;top:-20px;background:var(--panel,#fff);z-index:2;padding:8px 0}#planRemainder{padding:12px;border:1px solid var(--line,#bacbdc);border-radius:10px;margin:12px 0;background:var(--secondary,#edf3fa)}#planRemainder h3{margin:0 0 8px;font-size:15px}#planRemainderSummary{font-size:13px;line-height:1.6}#planRemainder .row{grid-template-columns:repeat(auto-fit,minmax(190px,1fr))}#planSaleFields[hidden]{display:none!important}#planSaleFields{margin-top:10px}#planSaleFields textarea{min-height:55px}#newAbono611{margin-top:8px}.planCalendarControls{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.planCalendarControls select{width:110px}.planCalendarLegend{display:flex;gap:8px;flex-wrap:wrap;margin:10px 0;font-size:11px}.planCalendarLegend span{padding:5px 7px;border-radius:6px}.planLegalAvailable{background:#d9efe2;color:#15532c}.planLegalRestricted{background:#f8dfe1;color:#822632}.planLegalConflict{background:#f6d4d9;color:#8d1e2a;border:2px dashed #a63140}.planLegalWarning{background:#fff0c7;color:#715111}#planCalendar68{display:grid!important;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;overflow:visible!important;scroll-snap-type:none}#planCalendar68[data-months="2"]{grid-template-columns:repeat(2,minmax(0,1fr))}#planCalendar68 .agendaMonth68{width:auto;flex:none;padding:7px;border:1px solid var(--line);border-radius:9px}#planCalendar68 h4{font-size:13px;margin:4px 0 8px}#planCalendar68 .agendaDate68{min-height:31px;height:34px;font-size:12px;padding:2px;position:relative}#planCalendar68 .agendaDate68:disabled{cursor:not-allowed;opacity:1}#planCalendar68 .agendaDate68 .planDaySymbol{font-size:8px;position:absolute;right:2px;bottom:1px}#planCalendar68 .agendaDate68.selected68{outline:3px solid var(--focus,#408dd1);outline-offset:0}#planCalendar68 .agendaDate68.range68{box-shadow:inset 0 -4px #397fc4}#planCalendar68 .calendarWeekday{font-size:9px}#planCalendarHint68{font-size:12px;line-height:1.5}#planSaveProgress{font-size:12px;white-space:pre-wrap}#planSaveProgress:empty{display:none}#planSaveProgress{border-left:3px solid #c08523;padding:8px;margin-top:8px}@media(max-width:760px){#planCalendar68{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:460px){#planCalendar68,#planCalendar68[data-months="2"]{grid-template-columns:1fr}#planModal .dialog{padding:12px;width:96vw}#planCalendar68 .agendaDate68{height:36px}#planRemainder .row{grid-template-columns:1fr}}
#planCalendar68 .agendaDate68.planLegalAvailable{background:#d9efe2;color:#15532c}#planCalendar68 .agendaDate68.planLegalRestricted{background:#f8dfe1;color:#822632}#planCalendar68 .agendaDate68.planLegalConflict{background:#f6d4d9;color:#8d1e2a;border:2px dashed #a63140}#planCalendar68 .agendaDate68.planLegalWarning{background:#fff0c7;color:#715111}

.vacationRequestStatus{display:inline-flex;padding:4px 9px;border-radius:12px;font-size:12px;font-weight:700}.request-approved{background:#d5f0df;color:#12542b}.request-rejected,.request-cancelled{background:#f9dce0;color:#84212e}.request-pending{background:#ffedbf;color:#6c4c08}
#reviewVacationModal .dialog{width:min(1180px,96vw)}.reviewCalendarPanel{margin:12px 0}.reviewCalendarGrid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.reviewCalendarGrid[data-months="2"]{grid-template-columns:repeat(2,minmax(0,1fr))}.reviewCalendarMonth{min-width:0}.reviewCalendarMonth h4{margin:8px 0;font-size:13px}.reviewCalendarDay{min-width:0;min-height:55px;padding:3px;border:1px solid var(--line,#607891);border-radius:5px;font-size:11px}.reviewCalendarDay.requestedDay{outline:1px dashed currentColor;outline-offset:-3px}.reviewLeave{border-left:4px solid var(--dept-color);border-radius:3px;padding:2px;margin:3px 0;overflow-wrap:anywhere;font-size:10px}.reviewLeave.requestedLeave{border:1px dashed currentColor;border-left:4px solid var(--dept-color);font-weight:700}.reviewLeave small{display:block}#reviewDepartmentLegend{border:1px solid var(--line);border-radius:8px;display:flex;gap:8px;flex-wrap:wrap;margin-top:10px}#reviewDepartmentLegend label{display:flex;gap:5px;align-items:center;font-size:12px}#reviewDepartmentLegend input{width:auto;min-width:16px}.reviewCalendarPanel .calendarNavigation h3{font-size:15px}#reviewCalendarSummary{font-size:12px;line-height:1.5}
@media(max-width:700px){.reviewCalendarGrid,.reviewCalendarGrid[data-months="2"]{grid-template-columns:1fr}.reviewCalendarDay{min-height:48px}#reviewVacationModal .dialog{width:100%}}

/* A decisão fica visível enquanto a agenda é rolada. */
#reviewVacationModal .dialog{display:flex;flex-direction:column;height:min(900px,92dvh);max-height:92dvh;overflow:hidden}
#reviewVacationModal .dialogHead{flex:none}
#reviewVacationForm{display:flex;flex-direction:column;min-height:0;flex:1}
#reviewVacationForm>.reviewCalendarPanel{overflow:auto;min-height:90px;flex:1;padding:0 4px 8px 0;overscroll-behavior:contain}
#reviewVacationForm>label,#reviewVacationForm>textarea,#reviewVacationForm>.decisionActions,#reviewVacationSummary{flex:none}
#reviewVacationNote{height:58px;min-height:58px;max-height:90px;margin-bottom:10px}
#reviewVacationForm .decisionActions{margin-top:0}
@media(max-width:700px){#reviewVacationModal .dialog{height:calc(100dvh - 20px);max-height:calc(100dvh - 20px)}#reviewVacationModal h2{font-size:19px}#reviewVacationSummary{font-size:12px;margin:4px 0}#reviewVacationForm .decisionActions{grid-template-columns:1fr 1fr}#reviewVacationNote{height:44px;min-height:44px}}
/* Os diálogos ficam acima da barra de conta e do menu móvel. */
.modal{z-index:100}
#reviewVacationForm>.decisionActions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
@media(max-width:700px){.reviewCalendarPanel h3{font-size:16px;margin:8px 0}.reviewCalendarPanel .note{font-size:11px;line-height:1.35;margin:6px 0}.reviewCalendarPanel .calendarNavigation{margin:6px 0}.reviewCalendarPanel #reviewDepartmentLegend{padding:5px}.reviewCalendarPanel #reviewCalendarSummary{font-size:11px;margin:6px 0}#reviewVacationForm>.decisionActions .btn{padding:8px 5px;font-size:12px}}

/* Calendário do RH: controles e legenda compartilhando o quadro dos meses. */
#calendar .calendarCompactHeading{margin:0 0 12px}
#calendar .calendarCompactHeading h1{font-size:25px;line-height:1.2;margin:0 0 5px}
#calendar .calendarCompactHeading p{font-size:12px;color:var(--muted);margin:0;line-height:1.4}
#calendar .calendarFrameHeader{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:12px 20px;align-items:start;margin-bottom:12px}
#calendar .departmentLegend68{margin:0;gap:4px}
#calendar .calendarDepartmentFilter612{gap:6px}
#calendar .calendarDepartmentFilter612 legend{margin-bottom:6px}
#calendar .calendarDepartmentChoice612{padding:7px 9px;min-height:36px;gap:6px}
#calendar .calendarDepartmentFilter612 small{margin:3px 0}
#calendar .calendarStatusLegend612{margin:6px 0 0;line-height:1.5}
#calendar .calendarFrameControls{display:flex;flex-direction:column;gap:8px;min-width:0;width:300px;max-width:100%}
#calendar .calendarMonthNav610{width:100%;gap:8px}
#calendar .calendarDisplayControls{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
#calendar .calendarDisplayControls label{margin:0;font-size:11px}
#calendar #calMonths{width:58px;padding:7px}
#calendar #calToday{padding:8px 10px;white-space:nowrap}
@media(max-width:1000px){#calendar .calendarFrameHeader{grid-template-columns:minmax(0,1fr)}#calendar .calendarFrameControls{width:100%;flex-direction:row;flex-wrap:wrap;align-items:center}#calendar .calendarMonthNav610{width:min(300px,100%)}#calendar .calendarDisplayControls{flex:1}}
@media(max-width:600px){#calendar .calendarCompactHeading h1{font-size:23px}#calendar .calendarFrame{padding:12px}#calendar .calendarFrameControls{gap:8px}#calendar .calendarDisplayControls{flex:none;width:100%}#calendar .calendarFrameHeader{gap:10px}#calendar .calendarDepartmentChoice612{min-height:44px;padding:8px;font-size:11px}#calendar .calendarMonthNav610{width:100%}}

/* Programação compacta: números visíveis antes dos campos. */
#planModal .dialog{padding:16px}
#planModal .planCompactHead{display:flex;align-items:start;gap:12px;top:-16px;padding:6px 0 10px}
#planModal .planCompactHead h2{font-size:19px;margin:8px 0;flex-shrink:0}
.planTopMetrics{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;flex:1;min-width:0}
.planTopMetrics>div{border:1px solid var(--line);border-radius:8px;background:var(--secondary);padding:7px 10px;min-width:0}
.planTopMetrics>div.planMetricAvailable{border:2px solid var(--focus);background:var(--secondary)}
.planTopMetrics span,.planTopMetrics small{display:block;font-size:10px;line-height:1.25}
.planTopMetrics strong{font-size:25px;line-height:1.2;display:block;margin:2px 0}
#planModal .planDaysSummary{display:block;font-size:10px;padding:0;background:transparent;line-height:1.25;font-weight:400}
.planCompactFields{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:8px;align-items:end}
.planCompactFields>div{min-width:0}.planFieldEmployee,.planFieldCycle{grid-column:span 5}.planFieldStatus,.planFieldSaleAction{grid-column:span 2}.planFieldStart,.planFieldEnd{grid-column:span 3}.planFieldChoice{grid-column:span 4}
#planModal .planCompactFields label{margin:3px 0 4px}
#planModal .planCompactFields input,#planModal .planCompactFields select{padding:7px;min-height:35px;font-size:13px}
#planModal #newAbono611{margin:0;width:100%;min-height:35px;padding:8px 5px;font-size:11px}
#planModal #planBalanceHint{margin:7px 0;font-size:11px;line-height:1.4}
#planModal #planRemainder{margin:8px 0;padding:8px 10px}
#planModal #planRemainder h3{font-size:12px;display:inline;margin:0 7px 0 0}
#planModal #planRemainderSummary{font-size:11px;line-height:1.4;margin:0;display:inline}
#planModal .planCompactSale{display:grid;grid-template-columns:150px 170px minmax(0,1fr);gap:8px;align-items:start;margin-top:8px}
#planModal .planCompactSale label{margin:3px 0 4px}
#planModal .planCompactSale textarea{height:38px;min-height:38px}
#planModal #planSaleFields .check,#planModal #planSaleHint{font-size:11px;line-height:1.4;margin:6px 0}
#planModal #planMsg:empty,#planModal #planSaveProgress:empty{display:none}
#planModal #planSave{margin:4px 0 8px}
#planModal>.dialog>.card{padding:10px}
#planModal>.dialog>.card h3{font-size:15px;margin:5px 0}
#planModal>.dialog>.card>.note{margin:6px 0;line-height:1.4}
@media(max-width:800px){#planModal .planCompactHead{flex-wrap:wrap}#planModal .planCompactHead h2{flex:1}#planModal .planCompactHead>.x{order:1}#planModal .planTopMetrics{order:2;flex-basis:100%}.planFieldEmployee,.planFieldCycle{grid-column:span 6}.planFieldStatus,.planFieldStart,.planFieldEnd{grid-column:span 4}.planFieldChoice{grid-column:span 8}.planFieldSaleAction{grid-column:span 4}}
@media(max-width:500px){#planModal .dialog{padding:12px}#planModal .planCompactHead{top:-12px}.planTopMetrics{gap:5px}.planTopMetrics>div{padding:6px}.planTopMetrics span,.planTopMetrics small{font-size:9px}.planTopMetrics strong{font-size:23px}.planFieldEmployee,.planFieldCycle,.planFieldChoice{grid-column:span 12}.planFieldStart,.planFieldEnd,.planFieldStatus,.planFieldSaleAction{grid-column:span 6}#planModal .planCompactFields input,#planModal .planCompactFields select,#planModal #newAbono611{min-height:44px;font-size:14px}#planModal .planCompactSale{grid-template-columns:repeat(2,minmax(0,1fr))}#planModal .planCompactSale>div:last-child{grid-column:1/-1}#planModal .planCompactSale input{font-size:16px;min-height:44px}#planModal .planCompactSale textarea{height:50px}}

/* Etiquetas reutilizam o quadrado de cor da legenda de departamentos. */
.departmentTableTag{display:inline-flex;align-items:center;gap:5px;border:1px solid var(--line);border-radius:8px;padding:5px 7px;background:var(--field);color:var(--ink);font-size:10px;font-weight:700;max-width:100%;min-width:0;vertical-align:middle}
.departmentTableTag .departmentColor68{width:12px;height:12px;margin:0;flex:0 0 12px;border-radius:3px}
.departmentTableTag>span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
#employees table.employeeCompactTable{table-layout:fixed;min-width:1120px;font-size:11px}
#employees .employeeCompactTable th,#employees .employeeCompactTable td{padding:8px 6px}
#employees .employeeCompactTable th{font-size:9px}
#employees .employeeSingleLineName{font-size:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block;max-width:100%;width:100%;text-align:left;line-height:1.4}
#employees .employeeActionRow{display:inline-flex;flex-wrap:nowrap;align-items:center;gap:4px;white-space:nowrap;max-width:100%}
#employees .employeeActionRow>.miniBtn{flex:0 0 auto;white-space:nowrap;margin:0!important;padding:5px 6px;font-size:9.5px;min-height:27px}
#employees .employeeActions{white-space:nowrap}
@media(max-width:600px){#employees table.employeeCompactTable.mobileCards{min-width:0!important;table-layout:auto}#employees .employeeCompactTable td{padding:6px 0}#employees .employeeActionRow{display:flex;gap:4px}#employees .employeeActionRow>.miniBtn{font-size:10px;padding:8px 6px;min-height:44px}#employees .employeeSingleLineName{font-size:13px;white-space:nowrap!important}#employees .departmentTableTag{font-size:11px;padding:7px}}
@media(max-width:600px){#employees .employeeCompactTable.mobileCards>colgroup{display:none}}
