/* ═══ Generador de trabajos mensuales (v198) ═══ */
.gen-modal { max-width: 1060px; padding: 0; display: flex; flex-direction: column; max-height: 90vh; overflow: hidden; }
.gen-head { display: flex; justify-content: space-between; align-items: flex-start; gap: 12px; padding: 1.25rem 1.5rem 1rem; border-bottom: 1px solid var(--border); }
.gen-sub { font-size: 12px; color: var(--text-3); }
.gen-toolbar { display: flex; gap: 12px; align-items: flex-end; flex-wrap: wrap; padding: .9rem 1.5rem; background: var(--surface-2); border-bottom: 1px solid var(--border); }
.gen-toolbar .form-group { flex: 1; min-width: 150px; }
.gen-feriados { margin-left: auto; font-size: 12px; color: var(--text-2); padding-bottom: 9px; }
.gen-feriados span { font-weight: 600; color: #b45309; }
.gen-body { padding: 0 1.5rem; overflow: auto; flex: 1; }
.gen-table { width: 100%; border-collapse: collapse; font-size: 13px; }
.gen-table thead th { position: sticky; top: 0; z-index: 1; text-align: left; font-size: 11px; font-weight: 600; color: var(--text-2);
  text-transform: uppercase; letter-spacing: .4px; padding: 10px 8px; background: var(--surface); border-bottom: 1px solid var(--border); }
.gen-table td { padding: 8px; border-bottom: 1px solid var(--border); color: var(--text); vertical-align: top; }
.gen-table td .form-input { padding: 5px 8px; font-size: 12.5px; }
.gen-table tbody tr:hover td { background: var(--surface-2); }
.gen-table tr.gen-off td { opacity: .45; }
.gen-table tr.gen-hecho td { color: var(--text-3); background: transparent; }
.gen-table tr.gen-hecho td:first-child { color: #16a34a; }
.gen-frec { display: inline-block; font-size: 10.5px; padding: 1px 7px; border-radius: 999px; background: var(--accent-bg); color: var(--accent-text); margin-left: 4px; }
.gen-fecha { display: flex; align-items: center; gap: 6px; }
.gen-dow { font-size: 11px; font-weight: 600; color: var(--text-2); width: 26px; }
.gen-nota { font-size: 11px; color: var(--text-3); margin-top: 3px; }
.gen-warn { color: #b45309 !important; }
.gen-empty { text-align: center; padding: 2.5rem 1rem; color: var(--text-2); font-size: 13px; }
.gen-empty i { font-size: 30px; color: var(--text-3); display: block; margin-bottom: 6px; }
.gen-empty small { color: var(--text-3); display: block; margin-top: 4px; }
.gen-foot { display: flex; justify-content: space-between; align-items: center; gap: 10px; padding: .9rem 1.5rem; border-top: 1px solid var(--border); background: var(--surface); }
.gen-hint { font-size: 12.5px; color: var(--text-2); }
html.dark .gen-warn, html.dark .gen-feriados span { color: #fbbf24 !important; }
@media (max-width: 760px) {
  .gen-table th:nth-child(4), .gen-table td:nth-child(4) { display: none; }
}

.gen-sinctr { min-width: 220px; }
.gen-check { display: flex; align-items: center; gap: 6px; font-size: 12.5px; color: var(--text); cursor: pointer; padding: 9px 0 6px; user-select: none; }
.gen-check.off { color: var(--text-3); cursor: default; }
.gen-check input { accent-color: var(--accent); }
.gen-frec.gen-sin { background: var(--surface-2); color: var(--text-2); border: 1px dashed var(--border-md); }
.gen-fecha-in { width: 112px !important; cursor: pointer; }

/* v222: selector de mes */
.gen-mes { position: relative; display: flex; align-items: center; gap: 4px; }
.gen-mes-btn { flex: 1; text-align: center; cursor: pointer; font-weight: 600; min-width: 150px; white-space: nowrap; height: 36px; padding: 0 8px; }
.gen-mes-flecha { width: 30px; height: 36px; flex-shrink: 0; border: 1px solid var(--border-md); border-radius: var(--radius-sm);
  background: var(--surface); color: var(--text-2); cursor: pointer; display: flex; align-items: center; justify-content: center; font-size: 15px; }
.gen-mes-flecha:hover { background: var(--surface-2); color: var(--text); }
.gen-mes-pop { display: none; position: absolute; top: calc(100% + 6px); left: 0; z-index: 30; width: 240px; padding: 10px;
  background: var(--surface); border: 1px solid var(--border-md); border-radius: var(--radius-md); box-shadow: var(--shadow-md); }
.gen-mes-pop.open { display: block; }
.gen-pop-head { display: flex; align-items: center; justify-content: space-between; margin-bottom: 8px; }
.gen-pop-head span { font-weight: 700; font-size: 14px; color: var(--text); }
.gen-pop-head button { width: 28px; height: 28px; border: none; background: none; border-radius: 6px; cursor: pointer; color: var(--text-2); font-size: 15px; }
.gen-pop-head button:hover { background: var(--surface-2); color: var(--text); }
.gen-pop-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 4px; }
.gen-pop-grid button { padding: 8px 0; border: 1px solid transparent; border-radius: 6px; background: none; cursor: pointer; font-size: 13px; color: var(--text); }
.gen-pop-grid button:hover { background: var(--surface-2); }
.gen-pop-grid button.hoy { border-color: var(--border-md); }
.gen-pop-grid button.sel { background: var(--accent); color: #fff; font-weight: 600; }
.gen-pop-foot { text-align: right; margin-top: 8px; }
.gen-pop-foot button { border: none; background: none; color: var(--accent); cursor: pointer; font-size: 12.5px; font-weight: 600; }

.gen-mes-btn { text-align: left; padding: 0 34px 0 12px; }
.gen-mes-ico { position: absolute; right: 11px; top: 50%; transform: translateY(-50%); color: var(--text-3); font-size: 16px; pointer-events: none; }
.gen-ult-op { font-size: 11px; color: var(--text-3); margin-top: 2px; white-space: nowrap; }
.gen-fer-alerta { font-size: 11px; color: #b45309; font-weight: 600; margin-top: 2px; display: flex; gap: 4px; align-items: center; }
html.dark .gen-fer-alerta { color: #fbbf24; }
.gen-ult-fecha { white-space: nowrap; }
.gen-table tr.gen-off .form-input:disabled { cursor: not-allowed; }
