.calendar-year{display:inline-block;padding:12px 21px;border-radius:12px;background:#e2ecf6;border:1px solid #c8d9e9;font-size:1.75rem;letter-spacing:-1px;font-weight:700;color:#173e68}.calendar-notice{display:flex;flex-wrap:wrap;gap:8px 16px;padding:14px 18px;background:#fff0e1;border-radius:9px;color:#805026;font-size:.85rem;line-height:1.6;margin-bottom:22px}.calendar-legend{display:flex;flex-wrap:wrap;gap:20px 30px;padding:20px 22px;background:white;border:1px solid #e0e7ef;border-radius:12px;margin-bottom:15px}.calendar-legend>div{display:flex;gap:10px;align-items:center;font-size:.9rem}.calendar-legend small{font-size:.75rem;color:#738496;margin-top:3px}.calendar-key{display:grid;place-items:center;width:34px;height:34px;border-radius:8px;font-size:.8rem;font-weight:700;border:1px solid transparent}.calendar-help{font-size:.85rem;margin-bottom:22px}.calendar-year-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}.calendar-month{background:white;border:1px solid #dce5ee;border-radius:13px;padding:19px 16px}.calendar-month-heading{display:flex;justify-content:space-between;align-items:center;margin-bottom:18px}.calendar-month-heading h2{font-size:1.08rem;margin:0;color:#173e68}.calendar-month-heading>span{font-size:.75rem;color:#8a9bad}.calendar-weekdays,.calendar-days{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:5px}.calendar-weekdays{text-align:center;font-size:.75rem;font-weight:600;color:#74889a;margin-bottom:8px}.calendar-day{min-width:0;width:100%;height:40px;border:1px solid transparent;border-radius:7px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1px;padding:2px;font-size:.9rem;font-weight:650;line-height:1.15}.calendar-day small{font-size:.75rem;line-height:1;font-weight:600}.calendar-day:hover{filter:brightness(.94);box-shadow:0 2px 5px #173e6818}.calendar-day:focus-visible{outline:3px solid #173e68;outline-offset:2px;position:relative;z-index:1}.calendar-blank{height:40px}.cal-work{background:#d5efdf;color:#205d3b;border-color:#b6dfc5}.cal-holiday{background:#f9d9db;color:#982d39;border-color:#f0b5bb}.cal-vacation{background:#fff0a7;color:#775d0a;border-color:#ecd46f}.cal-cover{background:#e9ddfa;color:#673993;border-color:#d4baef}.cal-rest{background:#edf1f5;color:#647688;border-color:#dfe6ed}.calendar-today{outline:2px solid #173e68;outline-offset:1px}.calendar-detail-badge{display:inline-block;font-size:.95rem;padding:10px 15px;border-radius:8px;border-width:1px;border-style:solid;font-weight:600}@media(min-width:1550px){.calendar-day,.calendar-blank{height:44px}}@media(max-width:1200px){.calendar-year-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:760px){.calendar-year-grid{grid-template-columns:1fr}.calendar-month{padding:20px}.calendar-day,.calendar-blank{height:44px}.calendar-day{font-size:1rem}.calendar-day small{font-size:.75rem}.calendar-legend{gap:16px 20px;padding:17px}.calendar-legend>div{min-width:120px}.calendar-notice{font-size:.8rem}.calendar-year{font-size:1.4rem;padding:8px 16px}.calendar-weekdays{font-size:.8rem}}
.cal-sick{background:#ffe1cd;color:#854019;border-color:#eab996}.cal-personal{background:#d4e9ff;color:#235683;border-color:#a8ccea}.cal-union{background:#c9f0ee;color:#205f5b;border-color:#9cd6d1}
.cal-unset{background:#fff;color:#718396;border-color:#dce5ee}#worker-calendar .filters{align-items:end}#worker-calendar .filters label{flex:1;min-width:160px}#worker-calendar .filters input,#worker-calendar .filters select{width:100%;margin-bottom:0}#calendar-day-form{margin-top:20px}.calendar-weekday-picker{border:0;margin:18px 0;padding:0;min-width:0}.calendar-weekday-picker legend{font-weight:700;margin-bottom:5px}.calendar-weekday-picker .form-note{margin:0 0 10px}.calendar-weekday-options{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:7px}.calendar-weekday-options label{display:flex;align-items:center;justify-content:center;gap:6px;min-width:0;margin:0;padding:10px 6px;border:1px solid #c8d9e9;border-radius:9px;background:#f7fafc;color:#173e68;font-size:.82rem;font-weight:650;cursor:pointer}.calendar-weekday-options label:has(input:checked){border-color:#173e68;background:#e2ecf6}.calendar-weekday-options input{width:16px;height:16px;margin:0;accent-color:#173e68}@media(max-width:760px){.calendar-weekday-options{grid-template-columns:repeat(4,minmax(0,1fr))}.calendar-weekday-options label{min-height:42px;font-size:.9rem}}
.calendar-day,.calendar-blank{height:58px}.calendar-day .calendar-time{font-size:.65rem;line-height:1.2;margin-top:2px}.calendar-shift-detail{margin:16px 0;font-weight:600;color:#173e68}#calendar-shift-fields p{font-size:.8rem}#calendar-shift-fields[hidden]{display:none}@media(max-width:760px){.calendar-day,.calendar-blank{height:62px}}




.calendar-rest-warning{background:#fff1e8;color:#78310b;border:1px solid #df9c74;border-radius:10px;padding:12px;margin:12px 0}.calendar-rest-warning ul{margin:8px 0;padding-left:20px}.calendar-rest-conflict{outline:2px dashed #902b13;outline-offset:-3px}
.person-management-actions{min-width:280px}.person-management-actions button{margin:4px 8px 4px 0}




.calendar-day,.calendar-blank{height:78px}.calendar-job{font-weight:700;font-size:.65rem;line-height:1.2}.employment-periods{max-height:230px;overflow:auto}.employment-periods p{padding:8px 0;border-bottom:1px solid #e4e9ef}




.calendar-day,.calendar-blank{height:94px}.calendar-task{max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:.62rem;font-weight:600}




.cal-official_work{background:#ccebd7;color:#164f31;border-color:#9dccac}.calendar-day.calendar-official-holiday{box-shadow:inset 0 0 0 2px #c62828}.calendar-day.calendar-official-holiday:hover{box-shadow:inset 0 0 0 2px #c62828,0 2px 5px #173e6818}.calendar-official-holiday-key{background:#fff;border:2px solid #c62828;box-shadow:inset 0 0 0 1px #fff}.calendar-official-holiday-note{border-left:4px solid #c62828;background:#fff4f4;padding:10px 12px;border-radius:7px;color:#7f2020}
.cal-sick_work{background:#ffe1cd;color:#854019;border-color:#eab996}.cal-sick_personal{background:#f8dce8;color:#8d2d55;border-color:#e8b7ca}.calendar-day .calendar-status,.calendar-day .calendar-time,.calendar-day .calendar-assignment{max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.calendar-day .calendar-status{font-size:.75rem;line-height:1;font-weight:600}.calendar-day .calendar-time{font-size:.68rem;line-height:1.2;margin-top:2px}.calendar-day .calendar-assignment{font-size:.65rem;line-height:1.2;font-weight:650}@media (min-width:761px) and (max-width:1650px){.calendar-year-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (min-width:761px) and (max-width:1050px){.calendar-year-grid{grid-template-columns:1fr}}




#employment-task-section{padding-top:2px}.employment-task-preview{margin:18px 0;padding:16px;border:1px solid #c8d9e9;border-radius:10px;background:#f7fafc}.employment-task-preview h4{margin-bottom:10px}.employment-task-preview .employment-periods{margin:14px 0}.employment-task-preview[hidden]{display:none}.employment-task-clear,.calendar-task-clear{margin-top:16px;padding:14px 15px;border:1px solid #efc38f;border-radius:10px;background:#fff7ee}.employment-task-clear .form-note,.calendar-task-clear .form-note{margin:4px 0 12px}.employment-task-clear h4,.calendar-task-clear h4{margin:0;color:#6b451e}.employment-task-clear .danger,.calendar-task-clear .danger{border-color:#b9473b;background:#fff5f3;color:#8f2f27}.calendar-task-clear [role=status]{display:block;min-height:1.25em;margin:9px 0 0;color:#6b451e}
#detailDialog{overflow:auto}.employment-editor{display:grid;gap:14px}.employment-panel{border:1px solid #c8d9e9;border-radius:11px;background:#fff;overflow:hidden}.employment-panel>summary{display:flex;justify-content:space-between;align-items:center;gap:16px;padding:15px 17px;color:#173e68;cursor:pointer;list-style:none}.employment-panel>summary::-webkit-details-marker{display:none}.employment-panel>summary strong{display:block;font-size:.98rem}.employment-panel>summary small{display:block;margin-top:3px;color:#70849a;font-weight:500}.employment-panel[open]>summary{background:#eef5fb;border-bottom:1px solid #d7e3ee}.employment-panel>summary:focus-visible{outline:3px solid #de8434;outline-offset:-3px}.employment-panel-body{padding:17px}.employment-panel-body>p:last-child{margin-bottom:0}.employment-period-summary,.employment-task-period{margin:0;color:#335c85;font-size:.87rem;font-weight:600;line-height:1.5}.employment-actions{display:grid;grid-template-columns:1.25fr 1.25fr 1fr 1fr;gap:9px;position:sticky;bottom:0;padding:13px;background:#fff;border:1px solid #d5e0eb;border-radius:11px;box-shadow:0 -4px 14px #173e6810;z-index:2}.employment-actions button{width:100%}@media(max-width:760px){.employment-panel>summary{padding:14px}.employment-panel-body{padding:14px}.employment-actions{grid-template-columns:1fr 1fr}.employment-actions .primary{grid-column:span 2}}




/* Wide employment editor shared by administration and the worker calendar. */
dialog:has(.employment-editor){width:min(1380px,calc(100vw - 32px));max-width:1380px;max-height:94vh;padding:22px}.employment-editor{grid-template-columns:minmax(0,1.45fr) minmax(320px,1fr);align-items:start}.employment-editor.employment-configuration-only,.employment-editor.employment-contract-only-editor,.employment-editor.employment-task-only-editor{grid-template-columns:minmax(0,1fr)}.employment-editor>h2{grid-column:1/-1;margin:0}.employment-editor #employment-period-panel{grid-column:1;grid-row:2}.employment-editor #employment-planning-panel{grid-column:1;grid-row:3}.employment-editor #employment-task-panel{grid-column:2;grid-row:2/span 2}.employment-editor .employment-actions{grid-column:1/-1}.employment-editor .employment-panel-body{min-width:0}.employment-editor .employment-task-clear{display:flex;flex-wrap:wrap;align-items:center;gap:9px}.employment-editor .employment-task-clear h4,.employment-editor .employment-task-clear p{flex-basis:100%;margin:0}.employment-editor .employment-task-clear button{flex:1 1 190px}.employment-editor .calendar-weekday-options{grid-template-columns:repeat(4,minmax(0,1fr))}@media(max-width:900px){dialog:has(.employment-editor){width:calc(100vw - 24px);padding:14px}.employment-editor{grid-template-columns:1fr}.employment-editor #employment-period-panel,.employment-editor #employment-planning-panel,.employment-editor #employment-task-panel{grid-column:1;grid-row:auto}.employment-editor .calendar-weekday-options{grid-template-columns:repeat(4,minmax(0,1fr))}}
/* Task and history share the right column; history follows the task panel. */
.employment-editor>h2{grid-column:1 / -1!important;display:block!important;width:100%!important;min-width:0!important;}
.employment-editor.employment-configuration-only #employment-period-panel,.employment-editor.employment-configuration-only #employment-planning-panel,.employment-editor.employment-configuration-only #employment-task-panel{grid-column:1!important;grid-row:auto!important;}
.employment-editor .employment-side{grid-column:2;grid-row:2;display:grid;align-content:start;gap:14px;min-width:0}.employment-editor .employment-side #employment-task-panel,.employment-editor .employment-side #employment-planning-panel{grid-column:auto;grid-row:auto}.employment-help-button{flex:0 0 auto;width:28px;height:28px;min-width:28px;padding:0;border:1px solid #9bb6d0;border-radius:50%;background:#fff;color:#173e68;font-size:17px;line-height:1;cursor:pointer}.employment-help{padding:10px 14px;margin:0 0 14px;border-radius:9px;background:#fff1e4;color:#284563}.employment-help p{margin:4px 0 8px}.employment-help p:last-child{margin-bottom:4px}.employment-weekly{margin:16px 0;padding:12px;border:1px solid #d0deeb;border-radius:9px;background:#f7fbff}.employment-weekly-heading{display:flex;align-items:center;justify-content:space-between;gap:12px}.employment-weekly-heading span{display:flex;gap:6px}.employment-weekly-heading button{width:32px;min-width:32px;height:32px;padding:0}.employment-weekly-days{display:grid;gap:4px}.employment-weekly-days>div{display:flex;justify-content:space-between;gap:12px;padding:4px 0;border-top:1px solid #e4edf4}.employment-weekly-days strong{font-weight:600}@media(max-width:900px){.employment-editor .employment-side{grid-column:1;grid-row:auto}}
.calendar-day-hours{margin:16px 0;padding:16px;border:1px solid #cbddeb;border-radius:10px;background:#f7fbff}.calendar-day-hours h3{margin:0 0 6px}.calendar-day-hours .form-grid{margin:10px 0}.calendar-day-hours button{margin-top:8px}.employment-balance-start{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin:16px 0 6px;font-weight:650}.employment-balance-start input{min-width:170px}.employment-balance-list{display:grid;gap:4px;max-height:240px;overflow:auto}.employment-balance-list>div{display:flex;justify-content:space-between;gap:14px;padding:6px 0;border-top:1px solid #e4edf4}.employment-balance-list strong{font-weight:600;text-align:right}@media(max-width:620px){.employment-balance-list>div{display:block}.employment-balance-list strong{display:block;text-align:left}}
/* Llegenda operativa de l’Excel */
.cal-work,.cal-official_work,.cal-cover,.cal-compensated_work{background:#f5fff9;color:#174d3b;border-color:#80bca6}.cal-holiday{background:#e9edf1;color:#394956;border-color:#bfc8d0}.cal-vacation{background:#bde9fa;color:#075277;border-color:#68bedb}.cal-sick,.cal-sick_work,.cal-sick_personal{background:#d6edc6;color:#365727;border-color:#a8ce91}.cal-personal{background:#65d2d4;color:#003f47;border-color:#249da3}.cal-union{background:#617282;color:#fff;border-color:#405565}.cal-justified_leave{background:#a8e8bb;color:#16542d;border-color:#65c183}.cal-sanction{background:#ffb0b0;color:#870e19;border-color:#e77878}.cal-unexcused_absence{background:#fff3a4;color:#644e00;border-color:#e5d26c}.cal-pending_verification{background:#f5c4ee;color:#713665;border-color:#df8ed4}.calendar-task-pending{box-shadow:inset 0 0 0 3px #f8e535}.calendar-day.calendar-national-holiday{outline:2px solid #d92525;outline-offset:-2px}.calendar-day.calendar-sunday>span:first-child{color:#c91818;font-weight:800}.calendar-national-holiday-key{color:#c91818;background:#fff}.calendar-sunday-key{color:#c91818;background:#fff}.calendar-task-pending-key{background:#f8e535;border-color:#ddc906}




.calendar-day.calendar-official-holiday:not(.calendar-national-holiday){box-shadow:inset 0 0 0 2px #d58a26}.calendar-day.calendar-official-holiday:not(.calendar-national-holiday):hover{box-shadow:inset 0 0 0 2px #d58a26,0 2px 5px #173e6818}
.calendar-day.calendar-national-holiday>span:first-child{color:#c91818;font-weight:800}
.calendar-day.calendar-contract-period{border:2px solid #7650a8;background-clip:padding-box}.calendar-day.calendar-contract-period:hover{filter:brightness(.94);box-shadow:0 2px 5px #173e6818}.calendar-contract{display:inline-flex;align-items:center;justify-content:center;min-width:18px;padding:1px 4px;border-radius:999px;background:#7650a8;color:#fff;font-size:.56rem;line-height:1.1;font-weight:800;letter-spacing:.02em}.calendar-contract-period-key{background:#fff;color:#7650a8;border:2px solid #7650a8}
.calendar-day.calendar-contract-forecast-period{border:2px dashed #287894;background-clip:padding-box}.calendar-day.calendar-contract-forecast-period:hover{filter:brightness(.94);box-shadow:0 2px 5px #173e6818}.calendar-contract-forecast{display:inline-flex;align-items:center;justify-content:center;max-width:100%;padding:1px 4px;border-radius:999px;background:#e0f3f7;color:#135166;font-size:.53rem;line-height:1.1;font-weight:800;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.calendar-contract-forecast-key{background:#fff;color:#135166;border:2px dashed #287894}.calendar-contract-forecast-note{border-left:4px dashed #287894;background:#effafd;padding:10px 12px;border-radius:7px;color:#135166}.calendar-union-hours{max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:.54rem!important;line-height:1.15!important;font-weight:800!important}.calendar-union-partial{box-shadow:inset 0 -4px 0 #d6bd47}.calendar-union-partial-note{border-left:4px solid #405565;background:#eef2f5;padding:10px 12px;border-radius:7px;color:#263a4c}
.employment-save-notice{width:min(460px,calc(100vw - 32px));max-width:460px;border:1px solid #c8d9e9;border-radius:14px;padding:24px;box-shadow:0 18px 55px #173e6833;color:#173e68}.employment-save-notice::backdrop{background:#173e6870}.employment-save-notice h3{margin:0 0 12px}.employment-save-notice p{line-height:1.55;white-space:pre-line}.employment-save-notice button{margin-top:8px}.employment-actions:has(#employment-preview-task[hidden]){grid-template-columns:1.5fr 1fr 1fr}.employment-actions #employment-preview-task[hidden]{display:none}
.employment-leave-manager{margin-top:16px;padding:14px;border:1px solid #cadce9;border-radius:10px;background:#f8fbfe}.employment-leave-manager h3{margin:0 0 7px}.employment-leave-manager h4{margin:18px 0 6px}.employment-leave-manager .form-grid{align-items:end}.employment-leave-manager .form-grid button{margin-bottom:16px}.employment-leave-summary{display:grid;gap:5px;margin:12px 0;color:#284563;font-size:.88rem}.employment-leave-summary strong{color:#173e68}
.employment-editor #employment-period-panel{grid-row:2/span 2}.employment-editor #employment-task-panel{grid-column:2;grid-row:2/span 2}.employment-configuration-panel .employment-planning-inline{margin-top:18px;border:0;border-top:1px solid #d7e3ee;border-radius:0;background:transparent}.employment-configuration-panel .employment-planning-inline>summary{display:none}.employment-configuration-panel .employment-planning-inline>.employment-panel-body{padding:17px 0 0}.employment-config-subheading{margin:0 0 14px;color:#173e68;font-size:1rem}.employment-configuration-actions{margin-top:18px;padding-top:16px;border-top:1px solid #d7e3ee}.employment-configuration-actions .primary{width:100%}.employment-configuration-actions .form-note{margin:8px 0 0}.employment-task-panel.employment-panel-locked{border-color:#d7e0e8;background:#fbfcfd}.employment-task-panel.employment-panel-locked>summary{background:#f3f6f8;color:#62788c}.employment-task-panel.employment-panel-locked .employment-panel-body{opacity:.58}.employment-task-locked{margin:0 0 16px;padding:12px 14px;border:1px solid #e8bf85;border-radius:9px;background:#fff7ee;color:#6b451e;line-height:1.45}.employment-actions{grid-template-columns:1fr 1fr}.employment-actions .secondary{grid-column:auto}@media(max-width:900px){.employment-editor #employment-period-panel,.employment-editor #employment-task-panel{grid-column:1;grid-row:auto}.employment-configuration-panel .employment-planning-inline>.employment-panel-body{padding-top:14px}}
