:root{--ink:#27313d;--muted:#637083;--line:#dfe8f2;--paper:#fff;--wash:#f6f9fc;--blue:#004d99;--blue-dark:#013765;--yellow:#ffdd00;--green:#1b8f5a;--aqua:#1688bd;--danger:#b42318;--shadow:0 18px 55px rgba(1,55,101,.12)}
*{box-sizing:border-box}html{font-family:Inter,ui-sans-serif,system-ui,-apple-system,"Segoe UI",sans-serif;color:var(--ink);background:var(--wash)}body{margin:0;min-height:100vh;background:radial-gradient(circle at 5% 0,rgba(0,77,153,.1),transparent 27rem),var(--wash)}body::before{content:"";position:fixed;inset:0 0 auto;height:4px;background:linear-gradient(90deg,var(--blue) 0 72%,var(--yellow) 72% 100%);z-index:30}
a{color:inherit}.topbar{height:82px;display:flex;align-items:center;justify-content:space-between;padding:0 max(24px,calc((100vw - 1240px)/2));background:rgba(255,255,255,.96);border-bottom:1px solid var(--line);box-shadow:0 3px 16px rgba(1,55,101,.05);backdrop-filter:blur(16px);position:sticky;top:4px;z-index:10}.topbar nav,.topbar form{display:flex;align-items:center;gap:16px}.brand{display:flex;align-items:center;gap:16px;text-decoration:none;font-weight:800;letter-spacing:.02em}.brand-logo{display:block;width:118px;height:58px;object-fit:contain}.brand-division{padding-left:15px;border-left:1px solid var(--line)}.brand-division strong,.brand-division small{display:block}.brand-division strong{font-size:12px;text-transform:uppercase;letter-spacing:.09em;color:var(--blue-dark)}.brand-division small{font-size:11px;color:var(--muted);margin-top:3px}.shell{max-width:1240px;margin:auto;padding:42px 24px 80px}.hero{display:flex;align-items:center;justify-content:space-between;gap:30px;padding:30px 0 20px}.hero h1{font-size:clamp(34px,5vw,58px);max-width:720px;line-height:1.02;letter-spacing:-.045em;margin:8px 0 14px}.hero p{color:var(--muted);font-size:18px}.hero-brand{display:grid;place-items:center;align-content:center;width:180px;height:150px;border-radius:34px;background:linear-gradient(145deg,var(--blue-dark),var(--blue));color:#fff;box-shadow:0 18px 44px rgba(0,77,153,.2);transform:rotate(2deg)}.hero-brand span{font-size:42px;font-weight:900;letter-spacing:-.08em}.hero-brand small{letter-spacing:.28em;color:var(--yellow);font-weight:900}.eyebrow{text-transform:uppercase;letter-spacing:.16em;font-size:12px;font-weight:800;color:var(--blue)}
.module-section{margin-top:38px}.module-section h2{font-size:14px;text-transform:uppercase;letter-spacing:.1em;color:var(--muted)}.card-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(270px,1fr));gap:14px}.module-card{display:flex;align-items:center;gap:14px;padding:20px;background:var(--paper);border:1px solid var(--line);border-radius:18px;text-decoration:none;box-shadow:0 5px 20px rgba(17,39,63,.03);transition:.2s}.module-card:hover{transform:translateY(-2px);border-color:#9bcce6;box-shadow:var(--shadow)}.module-icon{display:grid;place-items:center;width:48px;height:48px;border-radius:14px;background:#eaf6fb;color:var(--blue-dark);font-weight:900}.module-card strong,.module-card small{display:block}.module-card small{color:var(--muted);margin-top:4px}.arrow{margin-left:auto;color:var(--blue);font-size:20px}
.login-shell{display:grid;place-items:center;min-height:100vh;max-width:none;padding:48px 24px;background:linear-gradient(120deg,rgba(0,77,153,.06),transparent 55%)}.login-layout{display:grid;grid-template-columns:minmax(340px,480px) minmax(360px,460px);width:min(940px,100%);min-height:610px;background:#fff;border:1px solid var(--line);border-radius:30px;overflow:hidden;box-shadow:0 28px 80px rgba(1,55,101,.17)}.login-brand-panel{display:flex;flex-direction:column;justify-content:space-between;padding:46px;background:linear-gradient(155deg,var(--blue-dark),var(--blue));color:#fff;position:relative;overflow:hidden}.login-brand-panel::after{content:"";position:absolute;width:270px;height:270px;border:55px solid rgba(255,221,0,.13);border-radius:50%;right:-130px;bottom:-110px}.login-logo{width:230px;height:135px;object-fit:contain;background:#fff;border-radius:22px;padding:14px;position:relative;z-index:1}.login-brand-panel h2{max-width:360px;font-size:38px;line-height:1.05;letter-spacing:-.04em;margin:8px 0 15px}.login-brand-panel p{max-width:350px;color:#d9eaf8;line-height:1.6}.eyebrow-light{color:var(--yellow)!important}.login-card{display:flex;flex-direction:column;justify-content:center;padding:48px;background:var(--paper)}.login-card h1{font-size:38px;letter-spacing:-.035em;margin:8px 0}.login-foot{font-size:11px;color:var(--muted);margin:34px 0 0;text-align:center;text-transform:uppercase;letter-spacing:.1em}.muted{color:var(--muted)}.stack{display:grid;gap:18px;margin-top:30px}label{display:grid;gap:7px;font-size:14px;font-weight:700}input,select,textarea{width:100%;border:1px solid #bcc9d6;border-radius:11px;padding:11px 13px;background:#fff;color:var(--ink);font:inherit}input:focus,select:focus,textarea:focus{outline:3px solid rgba(0,77,153,.14);border-color:var(--blue)}
.button{display:inline-flex;align-items:center;justify-content:center;border:0;border-radius:11px;padding:11px 16px;font:inherit;font-weight:750;text-decoration:none;cursor:pointer}.button-primary{background:var(--blue);color:white;box-shadow:0 6px 16px rgba(0,77,153,.14)}.button-primary:hover{background:var(--blue-dark)}.button-quiet{background:#edf2f6;color:var(--ink)}.notice{padding:13px 16px;border-radius:11px;margin-bottom:18px;border-left:4px solid currentColor}.notice-error{background:#fee4e2;color:var(--danger)}.notice-success{background:#dcfae6;color:#067647}.notice-warning{background:#fef0c7;color:#93370d}
.page-head{display:flex;justify-content:space-between;align-items:end;gap:20px;margin-bottom:24px}.page-head h1{font-size:36px;margin:4px 0}.toolbar{display:flex;gap:10px;align-items:end}.panel{background:#fff;border:1px solid var(--line);border-radius:18px;overflow:hidden;box-shadow:0 6px 22px rgba(17,39,63,.04)}.table-wrap{overflow:auto}table{width:100%;border-collapse:collapse}th,td{text-align:left;padding:14px 16px;border-bottom:1px solid var(--line);white-space:nowrap}th{font-size:12px;text-transform:uppercase;letter-spacing:.07em;color:var(--muted);background:#f9fbfc}td a{color:var(--blue);font-weight:700;text-decoration:none}.badge{display:inline-block;padding:4px 8px;border-radius:999px;background:#eaf6fb;font-size:12px}.badge-off{background:#edf0f2;color:var(--muted)}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.span-2{grid-column:span 2}.form-panel{padding:26px}.checkbox{display:flex;align-items:center;gap:10px}.checkbox input{width:auto}.actions{display:flex;justify-content:flex-end;gap:10px;margin-top:26px}.pagination{display:flex;justify-content:space-between;padding:16px}.empty{padding:44px;text-align:center;color:var(--muted)}.user-name{color:var(--muted)}
@media(max-width:760px){.topbar{padding:0 16px}.brand-logo{width:95px}.brand-division{display:none}.user-name{display:none}.shell{padding:24px 16px 60px}.hero-brand{display:none}.login-shell{padding:20px 14px}.login-layout{grid-template-columns:1fr;min-height:0}.login-brand-panel{padding:24px;min-height:190px}.login-logo{width:155px;height:88px}.login-brand-panel h2{font-size:25px;margin-bottom:0}.login-brand-panel p:last-child{display:none}.login-card{padding:32px 26px}.form-grid{grid-template-columns:1fr}.span-2{grid-column:auto}.page-head{align-items:stretch;flex-direction:column}.toolbar{flex-wrap:wrap}}
.person-cell{display:flex;align-items:center;gap:11px}.avatar{width:38px;height:38px;border-radius:50%;object-fit:cover;display:grid;place-items:center}.avatar-fallback{background:linear-gradient(145deg,var(--blue),var(--aqua));color:#fff;font-weight:850}.link-button{border:0;background:none;padding:0;color:var(--blue);font:inherit;font-weight:700;cursor:pointer}.profile-dialog{width:min(920px,calc(100vw - 32px));max-height:88vh;border:0;border-radius:24px;padding:28px;box-shadow:0 30px 90px rgba(10,30,50,.25)}.profile-dialog::backdrop{background:rgba(11,29,48,.58);backdrop-filter:blur(3px)}.dialog-head{display:flex;justify-content:space-between;gap:20px;align-items:flex-start;border-bottom:1px solid var(--line);padding-bottom:20px}.dialog-head h2{margin:4px 0 8px}.dialog-close{border:0;background:#edf2f6;width:40px;height:40px;border-radius:50%;font-size:25px;cursor:pointer}.profile-photo{width:92px;height:92px;border-radius:22px;object-fit:cover;display:grid;place-items:center;font-size:32px}.profile-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:26px;margin-top:20px}.profile-grid h3,.form-section-title{font-size:14px;text-transform:uppercase;letter-spacing:.08em;color:var(--blue-dark)}dl{display:grid;grid-template-columns:minmax(90px,.8fr) 1.4fr;gap:9px 12px;margin:0}dt{color:var(--muted);font-size:13px}dd{margin:0;font-weight:650;overflow-wrap:anywhere}.employee-profile-head{display:flex;align-items:center;gap:30px;padding-bottom:24px;border-bottom:1px solid var(--line)}.photo-editor{width:190px;display:grid;gap:8px}.photo-editor img,.avatar-large{width:150px;height:150px;border-radius:28px;object-fit:cover;display:grid;place-items:center;font-size:45px}.photo-editor label{font-size:12px}.photo-editor input{padding:7px;font-size:11px}.photo-editor small{color:var(--muted)}.form-section-title{margin:30px 0 16px;padding-bottom:9px;border-bottom:1px solid var(--line)}.security-note{display:flex;gap:10px;align-items:flex-start;padding:15px;margin-top:24px;border-radius:12px;background:#eef8f7;color:#175c54}.security-note span{color:#426d68}
.employee-metrics{grid-template-columns:repeat(4,1fr)}.employee-metrics .metric-card span{color:var(--muted);font-size:12px}.employee-filters{display:grid;grid-template-columns:repeat(4,minmax(150px,1fr));gap:14px;align-items:end;margin-bottom:20px}.employee-search{grid-column:span 2}.employee-filter-actions{display:flex;gap:8px;grid-column:1/-1;justify-content:flex-end}.employee-table table{min-width:1540px}.employee-table td:first-child{min-width:270px}.numeric-cell{text-align:right;font-variant-numeric:tabular-nums;font-weight:700}.employee-table .avatar{flex:0 0 38px}
@media(max-width:800px){.profile-grid{grid-template-columns:1fr}.employee-profile-head{align-items:flex-start;flex-direction:column}.profile-dialog{padding:20px}.profile-photo{width:70px;height:70px}}
@media(max-width:1050px){.employee-filters{grid-template-columns:repeat(3,1fr)}.employee-search{grid-column:span 2}.employee-metrics{grid-template-columns:repeat(2,1fr)}}
@media(max-width:620px){.employee-filters,.employee-metrics{grid-template-columns:1fr}.employee-search{grid-column:auto}.employee-filter-actions{justify-content:stretch}.employee-filter-actions .button{flex:1}}
.contract-metrics{grid-template-columns:repeat(6,1fr)}.metric-alert strong{color:var(--danger)}.contract-filters{display:grid;grid-template-columns:2fr repeat(3,1fr);gap:14px;margin-bottom:20px}.contract-search{grid-column:span 2}.contract-filter-actions{display:flex;justify-content:flex-end;align-items:end;gap:9px;grid-column:span 2}.contract-table table{min-width:1550px}.contract-table td:first-child{white-space:normal;min-width:300px}.contract-table td small,.advance-table td small{display:block;color:var(--muted);margin-top:5px}.cell-detail{display:block;font-weight:750;margin-top:5px}.status-pill,.document-state{display:inline-block;padding:5px 9px;border-radius:999px;font-size:11px;font-weight:850}.status-pill.vigente,.status-pill.pagado,.document-state.ready{background:#dcfae6;color:#067647}.status-pill.por_iniciar,.status-pill.en_proceso,.status-pill.activo{background:#eaf6fb;color:var(--blue-dark)}.status-pill.vencido,.status-pill.cancelado,.document-state.missing{background:#fee4e2;color:var(--danger)}.status-pill.suspendido,.status-pill.rechazado{background:#fef0c7;color:#93370d}.contract-summary-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-bottom:20px}.summary-card{display:grid;gap:8px;padding:20px}.summary-card>small{color:var(--muted);text-transform:uppercase;font-weight:800;letter-spacing:.07em}.summary-card>strong{font-size:22px;color:var(--blue-dark)}.summary-card p{margin:0;color:var(--muted)}.detail-panel{padding:24px;margin-bottom:20px}.detail-panel h2{margin:0 0 20px;color:var(--blue-dark)}.block-summary-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:12px}.block-summary-grid article,.static-choice{display:grid;gap:6px;padding:15px;border:1px solid var(--line);border-radius:12px;background:#f9fbfc}.block-summary-grid span,.block-summary-grid small,.static-choice small{color:var(--muted)}
.location-editor{margin-top:26px;padding-top:20px;border-top:1px solid var(--line)}.location-editor h2{margin:0 0 5px;font-size:18px}.location-editor p{margin:0}.client-location-map{height:420px;margin-top:16px;border:1px solid var(--line);border-radius:15px;background:#eef4f8}.location-status{padding:10px 2px;color:var(--muted);font-size:13px}.advance-metrics{grid-template-columns:repeat(4,1fr)}.advance-filters{display:grid;grid-template-columns:2fr 1fr auto;gap:14px;align-items:end;margin-bottom:18px}.advance-filters .actions{margin:0}.create-advance{margin-bottom:18px}.create-advance summary{padding:18px 22px;font-weight:800;color:var(--blue);cursor:pointer}.advance-table table{min-width:1450px}.progress-track{width:130px;height:9px;overflow:hidden;background:#e5ebf1;border-radius:999px}.progress-track span{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,var(--aqua),var(--green))}
@media(max-width:1050px){.contract-metrics{grid-template-columns:repeat(3,1fr)}.contract-filters{grid-template-columns:repeat(2,1fr)}.contract-search{grid-column:span 2}.contract-summary-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:650px){.contract-metrics,.advance-metrics,.contract-summary-grid,.contract-filters,.advance-filters{grid-template-columns:1fr}.contract-search,.contract-filter-actions{grid-column:auto}.contract-filter-actions{justify-content:stretch}.client-location-map{height:330px}}
.schedule-block{border:1px solid var(--line,#d6e0e8);border-radius:16px;padding:1rem;margin:1rem 0;background:#f8fbfd}.schedule-block legend{font-weight:800;padding:0 .45rem}.day-picker,.employee-choice-grid{display:flex;flex-wrap:wrap;gap:.65rem;margin:.8rem 0}.employee-choice-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr))}.employee-choice-grid .checkbox{align-items:flex-start;border:1px solid #d6e0e8;border-radius:12px;padding:.8rem}.employee-choice-grid small{display:block;color:#64748b;margin-top:.2rem}
.block-employees{display:block;margin:.9rem 0}.block-employees select{min-height:9rem}.block-employees small{display:block;color:var(--muted);margin-top:.35rem}
.day-picker-tools{display:flex;flex-wrap:wrap;gap:1rem;margin:-.25rem 0 .75rem}
.operations-split{display:grid;grid-template-columns:minmax(280px,360px) 1fr;gap:20px;align-items:start}.compact-list{margin-top:20px}.absence-item{display:grid;gap:4px;text-decoration:none;padding:13px;border:1px solid var(--line);border-radius:12px;margin-top:9px}.absence-item span,.absence-item small,.suggestion small{color:var(--muted)}.absence-item.selected{border-color:var(--blue);background:#eef6fd}.section-line,.suggestion{display:flex;align-items:center;justify-content:space-between;gap:18px}.suggestions{margin-top:20px}.suggestion{padding:14px 0;border-bottom:1px solid var(--line)}.suggestion div{display:grid;gap:3px}.suggestion p{margin:3px 0;color:#9a3412;font-size:13px}.suggestion-off{opacity:.72}.empty-state{padding:70px 30px;text-align:center}.inline-form{display:inline}.link-button{border:0;background:none;color:var(--blue);font:inherit;font-weight:700;cursor:pointer;padding:0}@media(max-width:900px){.operations-split{grid-template-columns:1fr}}
.supervision-filters{margin-bottom:20px;flex-wrap:wrap}.metric-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin-bottom:20px}.metric-card{display:grid;gap:7px;padding:20px;background:#fff;border:1px solid var(--line);border-radius:16px;box-shadow:0 5px 20px rgba(1,55,101,.05)}.metric-card small{color:var(--muted);text-transform:uppercase;letter-spacing:.08em;font-weight:750}.metric-card strong{font-size:25px;color:var(--blue-dark)}.trend-panel{margin-bottom:20px}.trend-bars{height:160px;display:flex;align-items:end;gap:7px;overflow-x:auto;padding-top:12px}.trend-column{display:grid;grid-template-rows:1fr auto;align-items:end;min-width:30px;height:120px;text-align:center}.trend-column span{display:block;min-height:2px;background:linear-gradient(var(--blue),var(--aqua));border-radius:5px 5px 0 0}.trend-column small{font-size:9px;color:var(--muted);transform:rotate(-45deg);margin-top:8px}.conditional-fields{padding:16px;border:1px solid var(--line);border-radius:14px;background:#f7fbff}.signature-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px}.signature-box{padding:18px;border:1px solid var(--line);border-radius:16px;background:#f9fbfc}.signature-box canvas{display:block;width:100%;height:180px;background:#fff;border:2px dashed #bac9d7;border-radius:10px;touch-action:none;margin:12px 0}.audit-matrix textarea{min-width:280px}.audit-matrix small{display:block;color:var(--muted);margin-top:4px}.detail-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin-bottom:20px}.wrap-cell{white-space:normal;min-width:280px}.score{display:inline-grid;place-items:center;min-width:35px;padding:5px 8px;border-radius:8px;background:#eaf6fb;font-weight:800}@media(max-width:800px){.metric-grid,.signature-grid,.detail-grid{grid-template-columns:1fr}}
.route-controls{display:grid;grid-template-columns:2fr .7fr 1.2fr 1.5fr auto;gap:14px;align-items:end;margin-bottom:14px}.route-control-actions{display:flex;gap:8px;flex-wrap:wrap}.route-origin{padding:11px 15px;background:#eaf6fb;border-radius:11px;color:var(--blue-dark);font-weight:700}.route-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin:20px 0}.route-stats article{display:grid;gap:4px;padding:18px;background:#fff;border:1px solid var(--line);border-radius:15px}.route-stats strong{font-size:28px;color:var(--blue-dark)}.route-stats span{font-size:12px;text-transform:uppercase;letter-spacing:.07em;color:var(--muted);font-weight:750}.route-map-panel{padding:22px;margin-bottom:18px}.route-map-panel h2,.route-section h2{margin:0 0 5px}.route-map{display:block;width:100%;height:460px;margin-top:16px;border:1px solid var(--line);border-radius:15px;background:#eef4f8;overflow:hidden}.route-map-empty{display:grid;place-items:center;color:var(--muted);font-weight:700}.route-map-legend{display:flex;flex-wrap:wrap;gap:18px;margin-top:13px;color:var(--muted);font-size:13px}.route-map-legend span{display:flex;align-items:center;gap:6px}.map-dot{width:10px;height:10px;border-radius:50%;display:inline-block}.map-dot.never{background:#6b21a8}.map-dot.critical{background:#b42318}.map-dot.warning{background:#d97706}.map-dot.ok{background:var(--green)}.route-downloads{display:flex;justify-content:flex-end;gap:10px;margin:18px 0}.route-section{margin-bottom:18px}.route-section>.section-line{padding:20px 22px 12px}.route-section td small{display:block;color:var(--muted);margin-top:4px}.route-status{display:inline-block;padding:5px 9px;border-radius:999px;font-size:11px;font-weight:800}.route-status.never{background:#f3e8ff;color:#6b21a8}.route-status.critical{background:#fee4e2;color:#b42318}.route-status.warning{background:#fef0c7;color:#93370d}.route-status.ok{background:#dcfae6;color:#067647}.leaflet-popup-content p{margin:6px 0}.leaflet-popup-content a{color:var(--blue);font-weight:800}@media(max-width:1050px){.route-controls{grid-template-columns:repeat(2,1fr)}.route-control-actions{grid-column:span 2}.route-stats{grid-template-columns:repeat(2,1fr)}}@media(max-width:620px){.route-controls,.route-stats{grid-template-columns:1fr}.route-control-actions{grid-column:auto}.route-map{height:330px}.route-downloads{flex-direction:column}}
.query-controls{display:grid;grid-template-columns:1.4fr 1.4fr .8fr 1.1fr auto;gap:14px;align-items:end}.query-rule{margin:14px 0}.query-metrics{grid-template-columns:repeat(4,1fr);margin-top:20px}.view-tabs{display:flex;align-items:center;gap:8px;margin:20px 0;flex-wrap:wrap}.view-tabs a{padding:9px 14px;border-radius:10px;background:#edf2f6;text-decoration:none;font-weight:750}.view-tabs a.active{background:var(--blue);color:#fff}.view-tabs .button{margin-left:auto}.calendar-month{overflow:auto}.calendar-week{display:grid;grid-template-columns:repeat(7,minmax(150px,1fr));min-width:1050px}.calendar-head{background:var(--blue-dark);color:#fff}.calendar-head div{padding:11px;font-size:12px;font-weight:800;text-transform:uppercase}.calendar-day{min-height:145px;padding:9px;border-right:1px solid var(--line);border-bottom:1px solid var(--line)}.calendar-day.outside{background:#f3f5f7;opacity:.55}.calendar-date{display:grid;place-items:center;width:27px;height:27px;margin-left:auto;border-radius:50%;text-decoration:none;font-weight:800;color:var(--blue)}.calendar-event{display:grid;gap:2px;margin-top:6px;padding:7px;border-radius:8px;background:#e6f2fb;border-left:3px solid var(--blue);font-size:11px;overflow:hidden}.calendar-event.availability{background:#e8f7ef;border-color:var(--green)}.calendar-event span,.calendar-event small{white-space:normal}.calendar-event small{color:var(--muted)}.calendar-period{display:grid;grid-template-columns:repeat(7,minmax(150px,1fr));gap:10px;overflow:auto}.calendar-period-day{min-height:310px;padding:13px}.calendar-period-day header{display:grid;gap:2px;padding-bottom:10px;border-bottom:1px solid var(--line)}.calendar-period-day header span{font-size:12px;color:var(--muted)}.calendar-single-day{grid-template-columns:minmax(300px,700px);justify-content:center}.empty-compact{color:var(--muted);font-size:13px;text-align:center;margin-top:35px}@media(max-width:1000px){.query-controls{grid-template-columns:repeat(2,1fr)}.query-metrics{grid-template-columns:repeat(2,1fr)}}@media(max-width:620px){.query-controls,.query-metrics{grid-template-columns:1fr}.view-tabs .button{margin-left:0}.calendar-period{grid-template-columns:repeat(7,260px)}}
.calendar-day-head,.calendar-period-day header{display:flex;align-items:center;justify-content:space-between;gap:8px}.calendar-date{margin-left:auto}.calendar-add{display:grid;place-items:center;width:27px;height:27px;border:1px solid #bad2e7;border-radius:50%;background:#fff;color:var(--blue);font-size:20px;font-weight:800;cursor:pointer}.calendar-add:hover{color:#fff;background:var(--blue)}.calendar-event.assignment[draggable=true]{cursor:grab;transition:transform .14s,box-shadow .14s,opacity .14s}.calendar-event.assignment[draggable=true]:hover,.calendar-event.assignment[draggable=true]:focus{outline:0;transform:translateY(-1px);box-shadow:0 7px 18px rgba(1,55,101,.16)}.calendar-event.dragging{opacity:.38;cursor:grabbing}.calendar-day.drag-target,.calendar-period-day.drag-target{background:#e8f7ef;box-shadow:inset 0 0 0 2px var(--green)}.calendar-edit-hint{color:var(--blue)!important;font-weight:800}.schedule-action-status{position:sticky;top:96px;z-index:9;padding:12px 16px;margin:0 0 14px;border-radius:11px;font-weight:750}.schedule-action-status.success{background:#dcfae6;color:#067647}.schedule-action-status.error{background:#fee4e2;color:var(--danger)}.schedule-editor{width:min(760px,calc(100vw - 32px))}.schedule-editor .form-panel{padding:24px 0 0}.schedule-delete{margin-right:auto;background:#fee4e2;color:var(--danger)}
.calendar-period-day header>div{display:grid;gap:2px}
.calendar-day.copy-target,.calendar-period-day.copy-target{background:#eaf6fb;box-shadow:inset 0 0 0 2px var(--blue)}

/* La edición horaria se limita a Día/Semana; Mes conserva sus tarjetas originales. */
.calendar-timeline{grid-template-columns:48px repeat(7,minmax(190px,1fr));gap:4px;min-width:1440px;align-items:start}
.calendar-timeline.calendar-single-day{grid-template-columns:48px minmax(300px,700px);min-width:0;justify-content:center}
.calendar-timeline .calendar-period-day{padding:0;overflow:hidden}
.calendar-timeline .calendar-period-day header{min-height:65px;padding:8px 10px;margin:0}
.calendar-time-axis{position:relative;height:785px;font-size:10px;color:var(--muted);font-weight:700}
.calendar-time-axis span{position:absolute;right:4px;transform:translateY(57px)}
.calendar-time-track{position:relative;min-height:720px;background:repeating-linear-gradient(to bottom,#fff 0,#fff 29px,#d9e6f2 29px,#d9e6f2 30px)}
.calendar-time-track.enhanced .timeline-event{position:absolute;box-sizing:border-box;margin:0;min-height:18px;z-index:1;overflow:hidden;padding:9px 20px 8px 6px;touch-action:none}
.calendar-time-track.enhanced .timeline-event:hover,.calendar-time-track.enhanced .timeline-event:focus{z-index:4}
.calendar-time-track.enhanced .timeline-event strong{font-size:11px;white-space:nowrap}
.calendar-time-track.enhanced .timeline-event span,.calendar-time-track.enhanced .timeline-event small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.timeline-event.time-changing{z-index:8!important;opacity:.82;box-shadow:0 0 0 2px var(--blue),0 10px 22px rgba(1,55,101,.22)}
.time-handle{position:absolute;z-index:2;border:0;cursor:ns-resize;background:transparent;color:var(--blue);padding:0}
.time-handle-top,.time-handle-bottom{left:0;right:0;height:8px;width:100%}
.time-handle-top{top:0;border-top:3px solid transparent}.time-handle-bottom{bottom:0;border-bottom:3px solid transparent}
.timeline-event:hover .time-handle-top,.timeline-event:focus-within .time-handle-top{border-top-color:var(--blue)}
.timeline-event:hover .time-handle-bottom,.timeline-event:focus-within .time-handle-bottom{border-bottom-color:var(--blue)}
.time-handle-move{right:2px;top:50%;width:18px;height:22px;margin-top:-11px;border-radius:5px;background:#fff;box-shadow:0 1px 5px rgba(0,0,0,.2);font-size:17px;font-weight:800;line-height:20px}
@media(max-width:900px){.calendar-timeline:not(.calendar-single-day){overflow:auto}.calendar-timeline.calendar-single-day{grid-template-columns:42px minmax(260px,1fr)}}

/* Comprobantes de dotación: lectura clara en escritorio y firma cómoda en móvil. */
.equipment-metrics{grid-template-columns:repeat(4,1fr);margin-top:16px}
.equipment-filters{display:grid;grid-template-columns:1.4fr 1.6fr .8fr auto auto;gap:12px;align-items:end;margin-bottom:18px}
.equipment-item-row{display:grid;grid-template-columns:2fr .7fr .7fr .8fr 1.6fr auto;gap:10px;align-items:end;padding:15px;margin:12px 0;border:1px solid var(--line);border-radius:14px;background:#f8fbff}
.equipment-item-row label{min-width:0}.equipment-item-row input,.equipment-item-row select{width:100%}
.equipment-form .form-section-title{margin-top:28px}.equipment-detail-list{display:grid;grid-template-columns:minmax(130px,220px) 1fr;gap:12px 18px}.equipment-detail-list dt{font-weight:800;color:var(--blue-dark)}.equipment-detail-list dd{margin:0;overflow-wrap:anywhere}
.equipment-signatures{display:grid;grid-template-columns:1fr 1fr;gap:18px}.equipment-signatures figure{margin:0;padding:16px;border:1px solid var(--line);border-radius:12px;background:#f8fbff}.equipment-signatures img{display:block;width:100%;height:160px;object-fit:contain;background:white;border:1px solid var(--line)}.equipment-signatures figcaption{margin-top:10px;font-weight:750;color:var(--blue-dark)}
@media(max-width:1100px){.equipment-filters{grid-template-columns:1fr 1fr}.equipment-item-row{grid-template-columns:1fr 1fr 1fr}.equipment-signatures{grid-template-columns:1fr}}
@media(max-width:620px){.equipment-metrics,.equipment-filters,.equipment-item-row{grid-template-columns:1fr}.equipment-detail-list{grid-template-columns:1fr;gap:2px}.equipment-detail-list dd{margin-bottom:12px}}
.button-danger-soft{background:#fff1f0;color:var(--danger);border:1px solid #f4b8b3}.button-danger-soft:hover{background:#fee4e2}.bulk-delete-summary{padding:14px 16px;margin-top:18px;border-radius:11px;background:#eef4f8;color:var(--blue-dark);font-weight:750}.bulk-delete-summary.warning{background:#fef0c7;color:#93370d}.bulk-delete-summary.success{background:#dcfae6;color:#067647}.bulk-delete-summary.error{background:#fee4e2;color:var(--danger)}
.report-controls{display:grid;grid-template-columns:1.2fr 1.6fr 1fr 1fr auto;gap:14px;align-items:end}.report-tabs{margin-top:0}.report-metrics{margin-top:20px}.latest-report{padding:25px;margin-bottom:20px}.latest-report h2{margin:5px 0 18px}.report-latest-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:18px}.report-latest-grid div{display:grid;gap:5px;padding:13px;background:#f6f9fc;border-radius:11px}.report-latest-grid small{color:var(--muted);text-transform:uppercase;font-size:10px;font-weight:800}.date-state{display:inline-block;font-weight:800}.date-state.recent{color:var(--green)}.date-state.stale{color:var(--danger)}.report-chart-list{display:grid;gap:18px}.report-chart{padding:22px}.report-chart h2{margin:0 0 4px}.report-chart svg{display:block;width:100%;height:auto;max-height:370px;margin-top:15px;background:#fbfdff;border:1px solid var(--line);border-radius:12px}.report-chart svg line{stroke:#b9c8d6;stroke-width:1}.report-chart svg polyline{fill:none;stroke:var(--blue);stroke-width:4;stroke-linecap:round;stroke-linejoin:round}.report-chart svg circle{fill:var(--aqua);stroke:#fff;stroke-width:2}.report-chart svg text{font-size:11px;fill:var(--muted)}.report-chart svg .chart-value{text-anchor:middle;fill:var(--blue-dark);font-weight:800}.chart-dates{display:flex;justify-content:space-between;gap:8px;overflow:auto;color:var(--muted);font-size:10px;margin-top:6px}.quality-bands{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin:14px 0}.quality-bands div{background:#f6f9fc;border:1px solid var(--line);border-radius:10px;padding:11px;display:grid;grid-template-columns:1fr auto;gap:5px}.quality-bands span{font-size:12px;color:var(--muted)}.quality-bands i{grid-column:1/-1;display:block;height:7px;background:var(--blue);border-radius:6px}.quality-bands div:nth-child(2) i{background:#dba300}.quality-bands div:nth-child(3) i{background:#b92525}@media(max-width:900px){.report-controls{grid-template-columns:repeat(2,1fr)}.report-latest-grid{grid-template-columns:repeat(2,1fr)}}@media(max-width:560px){.report-controls,.report-latest-grid,.quality-bands{grid-template-columns:1fr}}
@media print{body::before,.topbar,.button,.toolbar{display:none!important}.shell{max-width:none;padding:10px}.panel,.metric-card{box-shadow:none}.trend-panel{break-inside:avoid}}
.operation-popup-title{display:block;font-size:15px;color:var(--blue-dark);margin-bottom:3px}.operation-popup-staff{display:grid;gap:8px;max-height:290px;overflow-y:auto;margin:12px 0}.operation-popup-staff article{display:grid;grid-template-columns:48px 1fr;gap:10px;align-items:center;padding:9px;border:1px solid var(--line);border-radius:11px;background:#f9fbfc}.operation-popup-staff article>div{display:grid;gap:3px}.operation-popup-staff small{display:block;color:var(--muted);white-space:normal}.operation-popup-staff .operation-status{justify-self:start;margin-top:3px}.operation-popup-photo{width:48px;height:48px;border-radius:12px;object-fit:cover;display:grid;place-items:center;color:#fff;font-weight:850}.operation-reconcile-link{margin-top:5px;font-weight:800;color:#6b21a8}.map-dot.sin_programacion{background:#6b21a8}.operation-status.sin_programacion{background:#f3e8ff;color:#6b21a8}.operation-status.sin_homologar{background:#ffe4e6;color:#9f1239}.leaflet-popup-content{min-width:300px}
.operation-filters{display:grid;grid-template-columns:repeat(4,minmax(150px,1fr));gap:14px;align-items:end;margin-bottom:18px}.operation-search{grid-column:span 2}.operation-filter-actions{display:flex;justify-content:flex-end;gap:8px;grid-column:span 2}.operation-metrics{display:grid;grid-template-columns:repeat(8,1fr);gap:10px;margin-bottom:18px}.operation-metrics article{display:grid;gap:5px;padding:16px;background:#fff;border:1px solid var(--line);border-radius:14px}.operation-metrics strong{font-size:26px;color:var(--blue-dark)}.operation-metrics span{font-size:10px;color:var(--muted);font-weight:800;text-transform:uppercase;letter-spacing:.06em}.operation-metrics .metric-danger{border-top:4px solid #b42318}.operation-metrics .metric-warn{border-top:4px solid #d97706}.operation-map-panel{padding:22px;margin-bottom:18px}.operation-map{height:460px;margin-top:16px;border:1px solid var(--line);border-radius:15px;background:#eef4f8}.operation-legend{display:flex;flex-wrap:wrap;gap:16px;margin-top:12px;font-size:12px;color:var(--muted)}.operation-legend span{display:flex;align-items:center;gap:6px}.map-dot.sin_ingreso{background:#b42318}.map-dot.sin_salida{background:#d97706}.map-dot.tarde{background:#eab308}.map-dot.en_turno{background:#1688bd}.map-dot.completo{background:#1b8f5a}.map-dot.programado{background:#667085}.operation-table{margin-bottom:18px}.operation-table>.section-line,.operation-exceptions>.section-line{padding:20px 22px}.operation-table table{min-width:1450px}.operation-table td small{display:block;color:var(--muted);margin-top:5px}.operation-status,.source-pill{display:inline-block;padding:5px 9px;border-radius:999px;font-size:11px;font-weight:850}.operation-status.sin_ingreso{background:#fee4e2;color:#b42318}.operation-status.sin_salida{background:#fef0c7;color:#93370d}.operation-status.tarde{background:#fef9c3;color:#854d0e}.operation-status.en_turno{background:#eaf6fb;color:var(--blue-dark)}.operation-status.programado{background:#edf0f2;color:#475467}.operation-status.completo{background:#dcfae6;color:#067647}.source-pill{background:#e8eefb;color:#253b80}.evidence-list{display:grid;gap:10px;margin-top:20px}.evidence-list article{display:flex;align-items:center;gap:14px;padding:14px;border:1px solid var(--line);border-radius:13px}.evidence-list article div{display:grid;gap:5px;flex:1}.evidence-list small{color:var(--muted)}.operation-exceptions{margin-bottom:18px;border-left:5px solid #d97706}.alias-guide{padding:20px;margin-bottom:18px;border-left:5px solid var(--blue)}.alias-guide p{margin:6px 0 0;color:var(--muted)}.alias-section{margin-bottom:18px}.alias-section>.section-line{padding:20px 22px}.alias-list{display:grid}.alias-row{display:grid;grid-template-columns:minmax(260px,1.2fr) minmax(320px,1fr) auto;gap:16px;align-items:end;padding:16px 22px;border-top:1px solid var(--line)}.alias-row>div{display:grid;gap:5px}.alias-row small{color:var(--muted)}.text-danger{color:#b42318!important}@media(max-width:1200px){.operation-metrics{grid-template-columns:repeat(4,1fr)}}@media(max-width:850px){.operation-filters{grid-template-columns:repeat(2,1fr)}.operation-search,.operation-filter-actions{grid-column:span 2}.alias-row{grid-template-columns:1fr}.operation-map{height:360px}}@media(max-width:560px){.operation-filters,.operation-metrics{grid-template-columns:1fr}.operation-search,.operation-filter-actions{grid-column:auto}.operation-filter-actions{justify-content:stretch}.evidence-list article{align-items:flex-start;flex-direction:column}}
.calendar-event.leave{background:#f2ebff;border-color:#7c3aed;color:#36176b}.calendar-event.leave-vacation{background:#e9f7ed;border-color:#16804a;color:#14532d}.calendar-event.leave-incapacity{background:#fff0eb;border-color:#d04421;color:#7c2d12}.calendar-event.leave-permission{background:#f2ebff;border-color:#7c3aed;color:#36176b}.calendar-event.leave a{font-weight:800;color:inherit}.leave-filters{display:flex;gap:14px;align-items:end;flex-wrap:wrap}.leave-filters label{min-width:220px}.leave-message{padding:12px 0;border-bottom:1px solid var(--line)}.leave-balance-form{margin-top:16px}
.contract-metrics{grid-template-columns:repeat(3,minmax(0,1fr))}.contract-kpi{min-width:0;align-content:start;text-decoration:none}.contract-kpi strong{font-size:clamp(21px,2vw,30px);line-height:1.18;overflow-wrap:anywhere;font-variant-numeric:tabular-nums}.contract-kpi span{font-size:12px;line-height:1.4;color:var(--muted)}a.contract-kpi:hover,a.contract-kpi:focus-visible{border-color:var(--blue);box-shadow:0 9px 24px rgba(1,55,101,.12)}a.contract-kpi:focus-visible{outline:3px solid #8fc9f3;outline-offset:2px}.contract-kpi-attention{border-top:4px solid #d97706}.contract-kpi-attention strong{color:#9a3412}.contract-metric-note{margin:-7px 0 20px;color:var(--muted);font-size:12px}.contract-results-heading{display:flex;justify-content:space-between;gap:14px;align-items:baseline;margin:22px 0 10px}.contract-results-heading strong{color:var(--blue-dark)}.contract-results-heading span{font-size:12px;color:var(--muted)}@media(max-width:1050px){.contract-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:650px){.contract-metrics{grid-template-columns:1fr}.contract-results-heading{display:grid}}
.assessment-metrics{grid-template-columns:repeat(auto-fit,minmax(150px,1fr))}
.assessment-filters{display:flex;flex-wrap:wrap;align-items:end;gap:12px}
.assessment-filters label{min-width:180px;flex:1}
.assessment-invite{max-width:900px}
.assessment-profile{display:grid;gap:17px;margin:20px 0}
.assessment-domain>div{display:flex;justify-content:space-between;gap:12px;margin-bottom:5px}
.assessment-domain meter{width:100%;height:18px}
.assessment-tags{display:flex;gap:8px;flex-wrap:wrap}
.assessment-answer{border-top:1px solid #dbe5f0;padding:15px 0}
.assessment-answer summary{cursor:pointer;font-weight:650}
.assessment-answer blockquote{margin:12px 0;padding:15px;border-left:4px solid #0b5aa4;background:#f2f7fc;white-space:pre-wrap}
.assessment-review{margin:20px 0 4px;padding:18px;border-radius:12px;background:#f6f9fd}
.assessment-rubric{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:12px;margin:15px 0}
.search-select{display:grid;gap:7px}.search-select label{font-weight:750}.search-select input[type=search]{width:100%}.search-select small{color:var(--muted)}.supervision-signoff{padding:4px 0}.signoff-grid{display:grid;grid-template-columns:2fr 1fr 1fr;gap:12px}.signoff-grid>div{display:grid;gap:7px;align-content:start;padding:19px;border:1px solid #cfdeed;border-radius:14px;background:#f6faff}.signoff-grid small{color:var(--muted);text-transform:uppercase;font-weight:800;letter-spacing:.06em}.signoff-grid strong{font-size:23px;color:var(--blue-dark);overflow-wrap:anywhere}.signoff-grid span{font-size:13px;color:var(--muted)}.signoff-findings{margin-top:12px;padding:17px 19px;border-left:4px solid #d59600;background:#fff9e6;border-radius:10px}.signoff-findings p{margin:6px 0 0}.signoff-confirm{margin-top:16px;font-weight:700}@media(max-width:800px){.signoff-grid{grid-template-columns:1fr}}

/* Facturación Alegra */
.shell-wide{max-width:1480px}.billing-metrics{grid-template-columns:repeat(6,minmax(150px,1fr))}.billing-toolbar{display:flex;justify-content:space-between;gap:16px;align-items:end;margin-bottom:18px}.billing-toolbar .inline-form{display:flex;gap:12px;align-items:end}.billing-client-list{display:grid;gap:16px}.billing-client{padding:0;overflow:hidden}.billing-client-head{display:grid;grid-template-columns:minmax(260px,1.6fr) minmax(210px,1fr) auto;gap:18px;align-items:center;padding:20px 22px;background:#f8fbff;border-bottom:1px solid var(--line)}.billing-client-head h2{margin:0 0 5px}.billing-client-head p{margin:0}.billing-state{display:grid;gap:6px}.billing-state span{font-size:12px;color:var(--muted)}.billing-body{display:grid;grid-template-columns:minmax(0,1.7fr) minmax(280px,.8fr);gap:22px;padding:22px}.billing-fields{grid-template-columns:repeat(3,minmax(150px,1fr))}.billing-fields .span-2{grid-column:span 2}.billing-last{border-left:1px solid var(--line);padding-left:20px}.billing-last h3{margin-top:0}.billing-last ol{margin:0;padding-left:20px}.billing-last li{margin-bottom:12px}.billing-last small{display:block;color:var(--muted)}.billing-actions{display:flex;gap:9px;flex-wrap:wrap;margin-top:14px}.billing-batch{position:sticky;bottom:12px;display:flex;gap:12px;align-items:center;margin-top:18px;padding:15px 18px;background:#fff;border:1px solid var(--line);border-radius:14px;box-shadow:0 12px 32px rgba(1,55,101,.15);z-index:3}.billing-batch strong{margin-right:auto}.billing-contact-option{display:grid;grid-template-columns:1.3fr .7fr auto;gap:12px;align-items:center;padding:12px 0;border-bottom:1px solid var(--line)}.billing-suggestions{display:flex;gap:7px;flex-wrap:wrap}.billing-chart{overflow-x:auto}.billing-chart svg{min-width:700px;width:100%;height:auto}.billing-chart line{stroke:#c6d3df}.billing-chart polyline{fill:none;stroke:var(--blue);stroke-width:4;stroke-linecap:round;stroke-linejoin:round}.billing-chart circle{fill:var(--aqua);stroke:#fff;stroke-width:2}.billing-chart text{font-size:10px;fill:var(--muted)}.billing-history table{min-width:950px}.billing-rule{padding:14px 16px;background:#eef7ff;border-left:4px solid var(--blue);border-radius:9px;color:var(--blue-dark)}
@media(max-width:1100px){.billing-metrics{grid-template-columns:repeat(3,1fr)}.billing-body{grid-template-columns:1fr}.billing-last{border-left:0;border-top:1px solid var(--line);padding:18px 0 0}.billing-fields{grid-template-columns:repeat(2,1fr)}}
@media(max-width:680px){.billing-metrics,.billing-fields{grid-template-columns:1fr}.billing-fields .span-2{grid-column:auto}.billing-toolbar,.billing-toolbar .inline-form,.billing-batch{align-items:stretch;flex-direction:column}.billing-client-head,.billing-contact-option{grid-template-columns:1fr}.billing-batch{position:static}.shell-wide{padding-left:12px;padding-right:12px}}
.billing-client-card{padding:0;overflow:hidden}.billing-client-head{grid-template-columns:auto minmax(260px,1.6fr) minmax(210px,1fr)}.billing-check input{width:auto}.billing-statuses{display:flex;gap:7px;flex-wrap:wrap;justify-content:flex-end}.billing-card-grid{display:grid;grid-template-columns:minmax(280px,.75fr) minmax(0,1.7fr);gap:22px;padding:22px}.invoice-mini-list{display:grid;gap:8px}.invoice-mini-list>div{display:grid;grid-template-columns:1fr auto auto;gap:10px;align-items:center;padding:10px 0;border-bottom:1px solid var(--line)}.invoice-mini-list small{display:block;color:var(--muted)}.billing-result{padding:18px 22px;border-top:1px solid var(--line);background:#fbfdff}.billing-result dl{display:flex;gap:24px;flex-wrap:wrap;margin:0}.billing-result dl>div{display:grid;gap:3px}.billing-result dt{font-size:11px;text-transform:uppercase;color:var(--muted);font-weight:800}.billing-result dd{margin:0;font-weight:800}.billing-batch-bar{display:flex;justify-content:space-between;gap:18px;align-items:center;margin-top:18px;padding:18px 22px}.billing-batch-bar p{margin:4px 0 0}.compact-form{min-width:360px}.compact-form select{width:100%}.compact-form small{display:block;color:var(--muted)}
@media(max-width:900px){.billing-card-grid{grid-template-columns:1fr}.billing-client-head{grid-template-columns:auto 1fr}.billing-statuses{grid-column:2}.billing-batch-bar{align-items:stretch;flex-direction:column}}@media(max-width:580px){.billing-client-head{grid-template-columns:1fr}.billing-statuses{grid-column:auto;justify-content:flex-start}.compact-form{min-width:260px}}
.billing-snapshot{display:flex;justify-content:space-between;gap:20px;align-items:center;padding:15px 18px;margin-bottom:18px;border-left:5px solid #1688bd}.billing-snapshot>div{display:flex;align-items:center;gap:12px}.billing-snapshot div div{display:grid;gap:3px}.billing-snapshot small,.billing-snapshot p{color:var(--muted)}.billing-snapshot p{margin:0}.billing-snapshot-dot{width:12px;height:12px;background:#1b8f5a;border-radius:50%;box-shadow:0 0 0 5px #dcfae6}.billing-list-controls{display:flex;align-items:end;gap:12px;padding:16px 18px;margin:18px 0;flex-wrap:wrap}.billing-list-controls label{min-width:210px}.billing-list-controls .billing-grow{flex:1}.billing-bulk-compact{display:grid;grid-template-columns:minmax(260px,1fr) auto auto auto;gap:14px;align-items:end;padding:16px 18px;margin-bottom:18px}.billing-bulk-compact>div:first-child{display:grid;gap:4px}.billing-bulk-compact small{color:var(--muted)}.billing-bulk-compact .actions{margin:0;grid-column:1/-1}.billing-compact-table table{min-width:1180px}.billing-compact-table th,.billing-compact-table td{padding:11px 12px;vertical-align:middle}.billing-compact-table td{white-space:normal}.billing-compact-table td:first-child,.billing-compact-table th:first-child{width:38px}.billing-client-cell{min-width:250px}.billing-compact-table td small{display:block;color:var(--muted);margin-top:3px}.billing-row-actions{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.billing-row-actions form{margin:0}.button-link{border:0;padding:0;background:none;color:var(--blue);font:inherit;font-weight:800;cursor:pointer}.billing-month-state{display:inline-block;padding:5px 9px;border-radius:999px;font-size:11px;font-weight:850;text-transform:capitalize;background:#edf0f2;color:#475467}.state-emitida,.state-facturada{background:#dcfae6;color:#067647}.state-borrador,.state-prepared{background:#eaf6fb;color:#075985}.state-revisar_contacto,.state-omitted{background:#fef0c7;color:#93370d}.state-paused{background:#f2f4f7;color:#344054}.billing-dialog{width:min(900px,calc(100vw - 30px));max-height:90vh;border:0;border-radius:18px;padding:0;box-shadow:0 24px 80px rgba(0,35,67,.28)}.billing-dialog::backdrop{background:rgba(12,31,50,.55)}.billing-dialog .dialog-heading{padding:24px 26px 0}.billing-dialog .dialog-heading h2{margin:4px 0}.billing-dialog .dialog-heading p:last-child{color:var(--muted)}.billing-dialog .dialog-close{position:absolute;right:17px;top:13px}.billing-dialog .dialog-close button{border:0;background:none;font-size:30px;cursor:pointer}.dialog-actions{display:flex;justify-content:flex-end;gap:10px;flex-wrap:wrap;margin-top:22px}.billing-link-metrics{grid-template-columns:repeat(4,1fr)}.billing-empty-sync{padding:28px;display:flex;justify-content:space-between;align-items:center;gap:22px}.billing-empty-sync>div{display:flex;gap:16px;align-items:center}.billing-empty-sync h2,.billing-empty-sync p{margin:0 0 5px}.billing-empty-icon{display:grid;place-items:center;width:44px;height:44px;border-radius:50%;background:#fef0c7;color:#93370d;font-size:24px;font-weight:900}.billing-link-toolbar{display:flex;justify-content:space-between;align-items:end;gap:20px;padding:18px;margin-bottom:16px}.billing-link-toolbar label{min-width:330px}.billing-link-toolbar p{max-width:620px;color:var(--muted);margin:0}.billing-link-list{display:grid;gap:12px}.billing-link-card{display:grid;grid-template-columns:minmax(300px,1.2fr) minmax(230px,.8fr) minmax(380px,1.35fr);gap:20px;align-items:center;padding:18px 20px}.billing-link-client{display:grid;grid-template-columns:34px 1fr;gap:12px;align-items:start;min-width:0}.billing-link-index{display:grid;place-items:center;width:32px;height:32px;border-radius:9px;background:#eaf6fb;color:var(--blue-dark);font-weight:850}.billing-link-client small,.billing-link-current small,.billing-suggestion-block>small{display:block;color:var(--muted);font-weight:800;text-transform:uppercase;font-size:10px;letter-spacing:.06em}.billing-link-client h2{margin:4px 0;font-size:17px;overflow-wrap:anywhere}.billing-link-client p{margin:0;color:var(--muted)}.billing-link-current{display:grid;gap:5px;min-width:0}.billing-link-current strong,.billing-link-current span{overflow-wrap:anywhere}.billing-link-form{display:grid;grid-template-columns:1fr 1fr auto;gap:9px;align-items:end}.billing-link-form .billing-suggestion-block{grid-column:1/-1}.billing-link-form>small{color:var(--muted)}.billing-link-form .button{grid-column:3;grid-row:2/span 2}.billing-suggestion{border:1px solid #bcd2e6;background:#f7fbff;border-radius:999px;padding:6px 10px;color:var(--blue-dark);cursor:pointer;text-align:left}.billing-suggestion span{color:var(--muted);font-size:11px}.billing-page-head h1{overflow-wrap:anywhere}
@media(max-width:1100px){.billing-bulk-compact{grid-template-columns:1fr 1fr}.billing-link-card{grid-template-columns:1fr 1fr}.billing-link-form{grid-column:1/-1}.billing-link-metrics{grid-template-columns:repeat(2,1fr)}}@media(max-width:720px){.billing-snapshot,.billing-list-controls,.billing-empty-sync,.billing-link-toolbar{align-items:stretch;flex-direction:column}.billing-bulk-compact,.billing-link-card,.billing-link-form{grid-template-columns:1fr}.billing-link-form .billing-suggestion-block,.billing-link-form .button{grid-column:auto;grid-row:auto}.billing-link-metrics{grid-template-columns:1fr}.billing-link-toolbar label{min-width:0}}
.billing-dialog-host,.billing-dialog-host td{height:0!important;padding:0!important;border:0!important;background:transparent!important}
.billing-link-compact-toolbar{display:flex;align-items:end;gap:14px;padding:14px 16px;margin-bottom:14px}.billing-link-compact-toolbar .billing-grow{flex:1}.billing-link-compact-toolbar label:first-child{min-width:320px}.billing-link-compact-toolbar label:nth-child(2){min-width:190px}.billing-link-compact-toolbar>div{padding:0 6px 10px;white-space:nowrap;color:var(--muted)}.billing-link-table table{width:100%;min-width:1050px;table-layout:fixed}.billing-link-table th,.billing-link-table td{padding:10px 12px;vertical-align:middle;white-space:normal}.billing-link-table th:first-child{width:44px}.billing-link-table th:nth-child(2){width:29%}.billing-link-table th:nth-child(3){width:23%}.billing-link-table th:nth-child(4){width:25%}.billing-link-table th:last-child{width:210px}.billing-link-table td strong,.billing-link-table td small{display:block;overflow-wrap:anywhere}.billing-link-table td small{margin-top:3px;color:var(--muted)}.billing-link-name strong{font-size:14px}.billing-link-actions{display:flex;justify-content:flex-end;gap:7px;align-items:center;flex-wrap:wrap}.billing-link-actions form{margin:0}.button-small{padding:8px 11px!important;min-height:34px;font-size:12px}.billing-link-dialog select[size]{min-height:230px}.billing-link-dialog .form-panel{display:grid;gap:14px}.billing-link-dialog .form-panel label{display:grid;gap:6px}
@media(max-width:720px){.billing-link-compact-toolbar{align-items:stretch;flex-direction:column}.billing-link-compact-toolbar label:first-child,.billing-link-compact-toolbar label:nth-child(2){min-width:0}.billing-link-compact-toolbar>div{padding:0}}
.billing-history-evidence{padding:18px 20px;margin-bottom:18px}.billing-history-evidence h2{margin:0 0 4px}.billing-history-evidence table{min-width:720px}.billing-history-evidence th,.billing-history-evidence td{padding:9px 11px}.badge-ok{background:#dcfae6;color:#067647}.badge-warn{background:#fef0c7;color:#93370d}.billing-friendly-profile{display:grid;gap:20px}.billing-friendly-profile label small{display:block;color:var(--muted);font-weight:500;margin-top:4px}.billing-profile-details{border:1px solid var(--line);border-radius:12px;padding:14px 16px}.billing-profile-details summary{font-weight:800;cursor:pointer}.billing-profile-details[open] summary{margin-bottom:14px}.billing-profile-details label{display:grid;gap:6px;margin-top:12px}.text-warning{color:#93370d!important;font-weight:750}

/* Rentabilidad gerencial */
.profit-command{display:grid;grid-template-columns:minmax(320px,1.1fr) minmax(420px,1fr);gap:30px;padding:26px 30px;margin-bottom:16px;background:linear-gradient(125deg,#042e54,#075b91);color:#fff;border:0}.profit-command-main{display:grid;align-content:center}.profit-command-main>span{font-size:12px;text-transform:uppercase;letter-spacing:.1em;font-weight:850;color:#bde2f7}.profit-command-main strong{font-size:64px;line-height:1;margin:9px 0}.profit-command-main p{margin:0;color:#d8ebf7;max-width:650px}.profit-command .negative,.profit-percent.negative{color:#ffb4aa}.profit-command-ledger{display:grid;grid-template-columns:1fr 1fr;margin:0;border:1px solid rgba(255,255,255,.22);border-radius:15px;overflow:hidden}.profit-command-ledger div{padding:17px;border-right:1px solid rgba(255,255,255,.15);border-bottom:1px solid rgba(255,255,255,.15)}.profit-command-ledger dt{font-size:11px;text-transform:uppercase;color:#bde2f7;font-weight:800}.profit-command-ledger dd{font-size:21px;font-weight:850;margin:5px 0 0}.profit-command-ledger .attention{background:rgba(255,195,64,.15)}.profit-toolbar{display:flex;align-items:end;justify-content:space-between;gap:18px;padding:14px 18px;margin-bottom:16px}.profit-toolbar .inline-form{display:flex;align-items:end;gap:10px}.profit-snapshot{display:flex;align-items:center;gap:10px}.profit-snapshot>span{width:10px;height:10px;border-radius:50%;background:#1b8f5a;box-shadow:0 0 0 5px #dcfae6}.profit-snapshot>div{display:grid}.profit-snapshot small{color:var(--muted)}.profit-visual-grid{display:grid;grid-template-columns:minmax(0,1.65fr) minmax(330px,.75fr);gap:16px;margin-bottom:16px}.profit-scatter,.profit-review-queue{padding:0;overflow:hidden}.profit-scatter .section-line,.profit-review-queue .section-line,.profit-rules>.section-line{padding:18px 22px}.profit-scatter svg{display:block;width:100%;padding:4px 18px 12px}.profit-scatter line{stroke:#c8d5e2;stroke-width:1}.profit-scatter .profit-zero{stroke:#d97706;stroke-dasharray:5 5}.profit-scatter text{font-size:11px;fill:#667085}.profit-scatter circle{stroke:#fff;stroke-width:3;opacity:.9}.profit-scatter circle.healthy{fill:#1688bd}.profit-scatter circle.review{fill:#d97706}.profit-review-queue .section-line>strong{font-size:34px;color:#9a3412}.profit-review-list{display:grid;max-height:300px;overflow:auto}.profit-review-list a{display:grid;grid-template-columns:30px 1fr auto;gap:11px;align-items:center;padding:12px 18px;border-top:1px solid var(--line);text-decoration:none;color:inherit}.profit-review-list a>span{display:grid;place-items:center;width:28px;height:28px;border-radius:8px;background:#fef0c7;color:#93370d;font-weight:850}.profit-review-list small,.profit-ranking td small{display:block;color:var(--muted);margin-top:4px}.profit-review-list b{font-size:12px;color:var(--blue)}.profit-table-controls{display:flex;gap:14px;align-items:end;padding:14px 18px;margin-bottom:12px}.profit-table-controls label:first-child{flex:1}.profit-table-controls label:last-child{min-width:230px}.profit-ranking{margin-bottom:16px}.profit-ranking table{min-width:1100px}.profit-ranking th,.profit-ranking td{padding:13px 14px;vertical-align:middle}.profit-ranking td:first-child{min-width:260px}.profit-percent{font-size:20px;color:#067647}.profit-percent.negative{color:#b42318}.profit-bar{width:120px;height:6px;border-radius:999px;background:#edf1f5;overflow:hidden;margin-top:6px}.profit-bar span{display:block;height:100%;background:#1b8f5a;border-radius:inherit}.profit-status{display:inline-block;padding:5px 9px;border-radius:999px;font-size:11px;font-weight:850}.profit-status.warning{background:#fef0c7;color:#93370d}.profit-status.healthy{background:#dcfae6;color:#067647}.profit-row-actions{display:flex;gap:12px;margin-top:7px}.profit-row-actions form{margin:0}.profit-rules{padding:0;overflow:hidden}.profit-rules table{min-width:950px}.profit-dialog .form-panel{padding:20px 26px 26px}.profit-dialog .form-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.profit-dialog fieldset{border:1px solid var(--line);border-radius:12px;padding:12px 15px;margin:14px 0}.profit-dialog legend{font-weight:800;padding:0 6px}.profit-dialog .weekday-row{display:flex;gap:15px;flex-wrap:wrap}.profit-dialog .weekday-row label{display:flex;align-items:center;gap:5px}.profit-dialog label[hidden],.profit-dialog fieldset[hidden]{display:none}.profit-dialog label>small{color:var(--muted);font-weight:500}.profit-dialog textarea{width:100%}
@media(max-width:1000px){.profit-command,.profit-visual-grid{grid-template-columns:1fr}.profit-command-main strong{font-size:52px}.profit-toolbar{align-items:stretch;flex-direction:column}}@media(max-width:650px){.profit-command{padding:22px 18px}.profit-command-ledger,.profit-dialog .form-grid{grid-template-columns:1fr}.profit-command-ledger div{border-right:0}.profit-table-controls{align-items:stretch;flex-direction:column}.profit-table-controls label:last-child{min-width:0}}
.profit-snapshot-manager{display:grid;grid-template-columns:minmax(300px,1fr) auto;gap:24px;align-items:end;padding:20px 22px;margin-bottom:14px;border-left:5px solid #1688bd}.profit-snapshot-manager h2,.profit-snapshot-manager p{margin:3px 0}.profit-snapshot-manager p:last-child{color:var(--muted)}.profit-sync-range{display:grid;grid-template-columns:auto auto auto;gap:10px;align-items:end}.profit-sync-progress{grid-column:1/-1;display:grid;grid-template-columns:150px 1fr;gap:10px;align-items:center;color:var(--muted);font-size:12px}.profit-sync-progress[hidden]{display:none}.profit-sync-progress progress{width:100%}.profit-period{display:flex;justify-content:space-between;align-items:end;padding:14px 18px;margin-bottom:16px}.profit-period .inline-form{display:flex;align-items:end;gap:10px}.profit-period p{margin:0;color:var(--muted);font-size:13px}.profit-employee-command{display:grid;grid-template-columns:1.2fr 1fr;gap:26px;padding:24px 28px;margin-bottom:16px;background:#063a66;color:#fff}.profit-employee-command>div{display:grid}.profit-employee-command>div>span,.profit-employee-command dt{font-size:11px;text-transform:uppercase;letter-spacing:.08em;font-weight:850;color:#bde2f7}.profit-employee-command>div>strong{font-size:42px;margin:5px 0}.profit-employee-command p{margin:0;color:#d8ebf7}.profit-employee-command dl{display:grid;grid-template-columns:repeat(3,1fr);margin:0;border:1px solid rgba(255,255,255,.2);border-radius:13px;overflow:hidden}.profit-employee-command dl>div{padding:15px;border-right:1px solid rgba(255,255,255,.15)}.profit-employee-command dl .attention{background:rgba(255,195,64,.16)}.profit-employee-command dd{margin:6px 0 0;font-size:20px;font-weight:850}.profit-employee-table table{min-width:1250px}.profit-destination{display:block;font-weight:750;margin-bottom:5px}.profit-destination small{display:inline!important;font-weight:500}
@media(max-width:950px){.profit-snapshot-manager,.profit-employee-command{grid-template-columns:1fr}.profit-sync-range{grid-template-columns:1fr 1fr}.profit-sync-range .button{grid-column:1/-1}.profit-period{align-items:stretch;flex-direction:column;gap:10px}}@media(max-width:600px){.profit-sync-range,.profit-employee-command dl{grid-template-columns:1fr}.profit-sync-range .button{grid-column:auto}.profit-period .inline-form{align-items:stretch;flex-direction:column}}

/* CMS del sitio público */
.site-page-head{margin-bottom:18px}.site-command{display:grid;grid-template-columns:minmax(300px,1.25fr) 1fr;gap:28px;padding:25px 28px;margin-bottom:15px;background:linear-gradient(125deg,#04345e,#0873a8);color:#fff;border:0}.site-command>div{display:grid;align-content:center}.site-command>div>span,.site-command dt{font-size:11px;text-transform:uppercase;letter-spacing:.09em;font-weight:850;color:#bde2f7}.site-command>div>strong{font-size:31px;margin:6px 0}.site-command p{margin:0;color:#d8ebf7}.site-command dl{display:grid;grid-template-columns:repeat(3,1fr);margin:0;border:1px solid rgba(255,255,255,.2);border-radius:14px;overflow:hidden}.site-command dl div{display:grid;align-content:center;padding:17px;border-right:1px solid rgba(255,255,255,.16)}.site-command dd{font-size:24px;color:#fff}.site-shortcuts{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin-bottom:15px}.site-shortcuts a{display:grid;gap:5px;padding:18px 20px;text-decoration:none;transition:.2s}.site-shortcuts a:hover{border-color:#81bddd;transform:translateY(-2px)}.site-shortcuts span{color:var(--muted);font-size:13px}.site-section-manager{padding:0;margin-bottom:15px}.section-line{display:flex;justify-content:space-between;gap:18px;align-items:center}.site-section-manager>.section-line{padding:20px 22px;border-bottom:1px solid var(--line)}.section-line h2,.section-line p{margin:0}.section-line p{color:var(--muted);margin-top:4px}.site-section-list{display:grid}.site-section-list article{display:grid;grid-template-columns:36px minmax(260px,1fr) 90px 100px auto;gap:14px;align-items:center;padding:13px 20px;border-bottom:1px solid var(--line)}.site-section-list article:last-child{border-bottom:0}.site-section-list article>div{display:grid;gap:3px}.site-section-list small{color:var(--muted)}.site-order{display:grid;place-items:center;width:30px;height:30px;border-radius:9px;background:#eaf6fb;color:var(--blue-dark);font-weight:850}.site-order-input{font-size:10px;text-transform:uppercase;color:var(--muted)}.site-order-input input{padding:7px 8px}.site-switch{display:flex;align-items:center;gap:7px}.site-switch input{width:auto}.site-publish{display:grid;grid-template-columns:1fr minmax(360px,.85fr);gap:30px;align-items:end;padding:22px 25px}.site-publish h2,.site-publish p{margin:4px 0}.site-publish p{color:var(--muted)}.site-publish form{display:grid;grid-template-columns:1fr auto;gap:10px;align-items:end}.site-publish form label{grid-column:1/-1}
.site-editor-grid{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(330px,.75fr);gap:16px}.span-all{grid-column:1/-1}.site-editor-grid h2{margin-top:0}.site-items-field{margin-top:22px}.site-items-field small{color:var(--muted)}.site-media-picker{align-self:start}.site-media-picker .section-line{margin-bottom:16px}.site-media-picker a{color:var(--blue);font-weight:750}.site-media-options{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px;max-height:620px;overflow:auto}.site-media-options label{display:grid;grid-template-columns:auto 58px 1fr;gap:8px;align-items:center;padding:8px;border:1px solid var(--line);border-radius:10px;font-size:11px}.site-media-options input{width:auto}.site-media-options img,.site-video-tile{width:58px;height:44px;border-radius:6px;object-fit:cover}.site-video-tile{display:grid;place-items:center;background:#063a66;color:#fff;font-size:9px}.site-upload{display:grid;grid-template-columns:1fr 1.4fr auto;gap:12px;align-items:end;padding:18px 20px;margin-bottom:18px}.site-upload>small{grid-column:1/-1;color:var(--muted)}.site-media-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:14px}.site-media-grid article{overflow:hidden}.site-media-grid article>img,.site-media-grid article>video{display:block;width:100%;height:170px;object-fit:cover;background:#0a2c4b}.site-media-grid article>div{display:grid;gap:7px;padding:14px}.site-media-grid small{color:var(--muted)}.site-media-grid .badge{justify-self:start}.site-media-grid form{margin-top:4px}.site-client-form{margin-bottom:16px}.site-client-form h2{margin-top:0}.site-logo-list{display:grid;gap:10px}.site-logo-list article{display:grid;grid-template-columns:110px minmax(260px,1fr) auto auto;gap:18px;align-items:center;padding:14px 18px}.site-logo-list img{width:100px;height:66px;object-fit:contain}.site-logo-list article>div{display:grid;gap:5px}.site-logo-list small{color:var(--muted)}.site-logo-actions{display:flex!important;align-items:center;justify-content:flex-end;gap:12px}.site-logo-actions form{margin:0}
.site-preview-frame{overflow:hidden;border:1px solid var(--line);border-radius:24px;background:#fff;box-shadow:var(--shadow)}.site-preview-section{display:grid;grid-template-columns:minmax(300px,1fr) minmax(280px,.8fr);gap:34px;align-items:center;padding:54px 7%;border-bottom:1px solid var(--line)}.site-preview-section:nth-child(even){background:#f5f9fc}.site-preview-copy h2{font-size:clamp(28px,4vw,46px);margin:6px 0 14px;color:var(--blue-dark)}.site-preview-copy>p:not(.eyebrow){color:var(--muted);font-size:17px;line-height:1.6}.site-preview-items{display:grid;grid-template-columns:repeat(2,1fr);gap:10px;margin-top:20px}.site-preview-items article{display:grid;gap:5px;padding:14px;border:1px solid var(--line);border-radius:12px;background:#fff}.site-preview-items span{color:var(--muted);font-size:13px}.site-preview-media{display:grid;grid-template-columns:repeat(2,1fr);gap:8px}.site-preview-media img,.site-preview-media video{width:100%;height:190px;object-fit:cover;border-radius:15px}.site-preview-media>*:only-child{grid-column:1/-1;height:330px}.site-preview-logos{grid-column:1/-1;display:grid;grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:12px}.site-preview-logos figure{margin:0;padding:13px;text-align:center;border:1px solid var(--line);border-radius:12px;background:#fff}.site-preview-logos img{width:100%;height:70px;object-fit:contain}.site-preview-logos figcaption{font-size:11px;color:var(--muted);margin-top:6px}
@media(max-width:900px){.site-command,.site-publish,.site-editor-grid,.site-preview-section{grid-template-columns:1fr}.site-shortcuts{grid-template-columns:1fr}.site-section-list article{grid-template-columns:34px 1fr auto}.site-order-input{grid-column:2}.site-switch{grid-column:3;grid-row:1}.site-section-list article>.button{grid-column:3}.site-upload{grid-template-columns:1fr}.site-upload>small{grid-column:auto}.site-logo-list article{grid-template-columns:90px 1fr}.site-logo-list .status-pill,.site-logo-list form{grid-column:2}.site-preview-media>*:only-child{height:240px}}@media(max-width:580px){.site-command dl{grid-template-columns:1fr}.site-command dl div{border-right:0;border-bottom:1px solid rgba(255,255,255,.15)}.site-section-list article{grid-template-columns:30px 1fr}.site-order-input,.site-switch,.site-section-list article>.button{grid-column:2}.site-media-options,.site-preview-items{grid-template-columns:1fr}.site-publish form{grid-template-columns:1fr}.site-publish form label{grid-column:auto}}

/* Reconocimiento semanal de marcaciones */
.attendance-rank-head{margin-bottom:18px}.attendance-weekbar{display:grid;grid-template-columns:auto minmax(260px,1fr) auto auto;gap:16px;align-items:end;padding:15px 18px;margin-bottom:14px}.attendance-weekbar>div{display:grid;gap:3px}.attendance-weekbar>div>span,.attendance-score-intro>span{font-size:11px;text-transform:uppercase;letter-spacing:.1em;font-weight:850;color:var(--aqua)}.attendance-weekbar>div>strong{font-size:20px;color:var(--blue-dark)}.attendance-weekbar small{color:var(--muted)}.attendance-weekbar form{display:flex;align-items:end;gap:9px}.attendance-scoreboard{display:grid;grid-template-columns:minmax(280px,.75fr) minmax(580px,1.5fr);background:linear-gradient(125deg,#042f55,#076ba2);color:#fff;border-radius:20px;overflow:hidden;margin-bottom:20px;box-shadow:0 14px 35px rgba(3,56,96,.2)}.attendance-score-intro{display:grid;align-content:center;padding:24px 30px}.attendance-score-intro>span{color:#bde2f7}.attendance-score-intro>strong{font-size:54px;line-height:1;margin:8px 0}.attendance-score-intro p{margin:0;color:#d7ebf7}.attendance-scoreboard dl{display:grid;grid-template-columns:repeat(4,1fr);margin:0;border-left:1px solid rgba(255,255,255,.17)}.attendance-scoreboard dl>div{display:grid;align-content:center;padding:19px;border-right:1px solid rgba(255,255,255,.14)}.attendance-scoreboard dt{color:#bde2f7;text-transform:uppercase;font-size:10px;font-weight:850}.attendance-scoreboard dd{margin:6px 0 2px;font-size:27px;font-weight:900}.attendance-scoreboard small{color:#d7ebf7}.attendance-scoreboard .attention{background:rgba(255,196,48,.14)}
.attendance-podium{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;align-items:end;margin:10px 0 22px;padding:34px 4% 0;background:radial-gradient(circle at 50% 110%,rgba(255,221,0,.16),transparent 48%),linear-gradient(#f8fbfe,#eef5fb);border:1px solid var(--line);border-radius:24px}.attendance-podium-card{position:relative;display:grid;justify-items:center;text-align:center;padding:48px 18px 22px;background:#fff;border:1px solid var(--line);border-radius:22px 22px 0 0;box-shadow:0 10px 25px rgba(1,55,101,.08)}.attendance-podium-card.rank-1{min-height:330px;border-top:5px solid #e3ad16;box-shadow:0 18px 40px rgba(164,115,0,.16)}.attendance-podium-card.rank-2{min-height:290px;border-top:5px solid #9da8b4}.attendance-podium-card.rank-3{min-height:270px;border-top:5px solid #ae7442}.attendance-podium-card>img,.attendance-avatar{width:92px;height:92px;border-radius:50%;object-fit:cover;border:5px solid #e7eef5;box-shadow:0 8px 20px rgba(1,55,101,.13)}.attendance-podium-card.rank-1>img,.attendance-podium-card.rank-1>.attendance-avatar{width:112px;height:112px;border-color:#fff1b8}.attendance-avatar{display:grid;place-items:center;background:linear-gradient(145deg,var(--blue),var(--aqua));color:#fff;font-size:35px;font-weight:900}.attendance-medal{position:absolute;top:-24px;display:grid;place-items:center;width:48px;height:48px;border-radius:50%;background:#1e5f91;color:#fff;border:5px solid #edf5fb;font-weight:900;font-size:18px}.rank-1 .attendance-medal{width:58px;height:58px;top:-30px;background:linear-gradient(145deg,#f5cf52,#c68900);font-size:27px}.rank-2 .attendance-medal{background:linear-gradient(145deg,#c7ced6,#7c8793)}.rank-3 .attendance-medal{background:linear-gradient(145deg,#ce9563,#8e5528)}.attendance-podium-card>p{margin:13px 0 3px;color:var(--muted);font-size:11px;text-transform:uppercase;font-weight:850}.attendance-podium-card h2{margin:0;font-size:19px;color:var(--blue-dark)}.attendance-podium-card>small{color:var(--muted);margin-top:5px}.attendance-podium-card>strong{font-size:32px;color:var(--green);margin:13px 0}.attendance-podium-card>strong span{font-size:12px}.attendance-podium-card>div:last-child{display:flex;gap:7px;flex-wrap:wrap;justify-content:center}.attendance-podium-card>div:last-child span{padding:5px 8px;background:#eef6fb;border-radius:999px;color:var(--blue-dark);font-size:10px;font-weight:750}
.attendance-ranking-table{padding:0;overflow:hidden;margin-bottom:16px}.attendance-ranking-table>.section-line{padding:18px 22px;border-bottom:1px solid var(--line)}.attendance-rule{padding:8px 12px;border-radius:999px;background:#dcfae6;color:#067647;font-size:12px;font-weight:850}.attendance-ranking-table table{min-width:1050px}.attendance-ranking-table th,.attendance-ranking-table td{padding:12px 14px;vertical-align:middle}.attendance-ranking-table td small{display:block;color:var(--muted);margin-top:3px}.attendance-position{display:grid;place-items:center;width:32px;height:32px;border-radius:50%;background:#edf2f6;font-weight:900}.attendance-position.rank-1{background:#fff1b8;color:#805700}.attendance-position.rank-2{background:#e9edf1;color:#475467}.attendance-position.rank-3{background:#ffe3cf;color:#8e4b20}.attendance-points{font-size:20px;color:var(--green)}.attendance-progress{display:inline-block;vertical-align:middle;width:80px;height:7px;border-radius:99px;background:#e8edf2;overflow:hidden;margin-right:7px}.attendance-progress span{display:block;height:100%;background:linear-gradient(90deg,var(--aqua),var(--green))}.attendance-method{display:grid;grid-template-columns:1fr 1fr;gap:12px}.attendance-method>div{padding:17px 19px;border-left:4px solid var(--aqua);border-radius:12px;background:#eef7fc}.attendance-method p{margin:5px 0 0;color:var(--muted)}.attendance-method .attention{border-color:#d97706;background:#fff7df}
.attendance-incomplete{background:#fffaf2}.attendance-penalty{color:#b42318}.attendance-score-intro p b{color:#ffd6d2}
.attendance-rebuilt{color:#075f93!important;font-weight:850}.attendance-ranking-table tr:has(.attendance-rebuilt){box-shadow:inset 3px 0 #1c91c0}
@media(max-width:1000px){.attendance-scoreboard{grid-template-columns:1fr}.attendance-scoreboard dl{border-left:0;border-top:1px solid rgba(255,255,255,.17)}.attendance-podium{padding-left:14px;padding-right:14px}.attendance-weekbar{grid-template-columns:auto 1fr auto}.attendance-weekbar form{grid-column:1/-1;grid-row:2;justify-self:center}}@media(max-width:720px){.attendance-scoreboard dl{grid-template-columns:repeat(2,1fr)}.attendance-podium{grid-template-columns:1fr;align-items:stretch;padding-top:42px}.attendance-podium-card,.attendance-podium-card.rank-1,.attendance-podium-card.rank-2,.attendance-podium-card.rank-3{min-height:0;border-radius:20px;margin-bottom:30px}.attendance-podium-card.rank-1{order:-1}.attendance-method{grid-template-columns:1fr}.attendance-weekbar{grid-template-columns:auto 1fr auto}.attendance-weekbar form{align-items:stretch;flex-direction:column;width:100%}.attendance-rank-head .toolbar{align-items:stretch;flex-direction:column}}

/* Reconocimiento semanal: lienzo HTML preparado para A4 horizontal y PDF del navegador. */
.recognition-body{margin:0;background:#e9f0f6;color:#0b2e4f;font-family:Inter,Arial,sans-serif}.recognition-actions{position:sticky;top:0;z-index:20;display:flex;justify-content:center;gap:10px;padding:12px;background:rgba(255,255,255,.94);box-shadow:0 4px 18px rgba(5,45,79,.12);backdrop-filter:blur(12px)}.recognition-document{display:grid;gap:28px;padding:28px}.recognition-sheet{position:relative;box-sizing:border-box;width:min(297mm,100%);min-height:210mm;margin:auto;padding:16mm 18mm 13mm;overflow:hidden;background:#fff;box-shadow:0 20px 60px rgba(5,45,79,.16);page-break-after:always}.recognition-sheet:last-child{page-break-after:auto}.recognition-sheet footer{position:absolute;left:18mm;right:18mm;bottom:9mm;display:flex;justify-content:space-between;padding-top:3mm;border-top:1px solid #d7e1ea;color:#617589;font-size:9px;font-weight:700;letter-spacing:.06em;text-transform:uppercase}.recognition-ribbon{position:absolute;top:15mm;right:-29mm;transform:rotate(38deg);width:120mm;padding:3mm 0;text-align:center;background:#f5c842;color:#073763;font-size:9px;font-weight:900;letter-spacing:.12em;box-shadow:0 4px 18px rgba(88,70,0,.12)}.recognition-brand{display:flex;align-items:center;gap:4mm}.recognition-brand img{width:31mm;height:17mm;object-fit:contain}.recognition-brand>div{display:grid;padding-left:4mm;border-left:1px solid #d8e2eb}.recognition-brand span{font-size:11px;font-weight:900;letter-spacing:.11em}.recognition-brand small{margin-top:1mm;color:#6d7e8d;font-size:9px}.recognition-heading{width:64%;margin:6mm auto 2mm;text-align:center}.recognition-heading>p:first-child,.recognition-honor-head p{margin:0;color:#0b76b7;font-size:10px;font-weight:900;letter-spacing:.24em}.recognition-heading h1{margin:2mm 0;font-family:Georgia,'Times New Roman',serif;font-size:29px;line-height:1.02;color:#073763}.recognition-heading-line{width:24mm;height:1mm;margin:3mm auto;background:linear-gradient(90deg,#0d7fb8,#f5c842)}.recognition-lead{margin:0;color:#51677a;font-size:10px;line-height:1.45}.recognition-podium{display:grid;grid-template-columns:1fr 1.12fr 1fr;align-items:end;gap:5mm;width:88%;margin:6mm auto 0}.recognition-winner{position:relative;display:grid;justify-items:center;min-height:72mm;padding:6mm 4mm 4mm;border:1px solid #dde7ef;border-radius:6mm 6mm 2mm 2mm;background:linear-gradient(180deg,#f9fbfd,#fff);text-align:center}.recognition-winner-1{min-height:84mm;border-color:#efd06a;background:linear-gradient(180deg,#fff7d8,#fff);box-shadow:0 9px 26px rgba(181,135,0,.16)}.recognition-winner-2{border-color:#cbd5df;background:linear-gradient(180deg,#eef2f6,#fff)}.recognition-winner-3{border-color:#deb899;background:linear-gradient(180deg,#fff0e5,#fff)}.recognition-place{position:absolute;top:3mm;left:4mm;color:#607485;font-size:7px;font-weight:900;letter-spacing:.12em}.recognition-place span{display:block}.recognition-photo-wrap{position:relative;display:grid;place-items:center;width:27mm;height:27mm;margin-top:4mm;border:1.5mm solid #b6c3cd;border-radius:50%;overflow:visible;background:#0d72aa;color:#fff;font-size:22px;font-weight:900}.recognition-winner-1 .recognition-photo-wrap{width:32mm;height:32mm;border-color:#f1c84b}.recognition-winner-3 .recognition-photo-wrap{border-color:#c78655}.recognition-photo-wrap img{width:100%;height:100%;object-fit:cover;border-radius:50%}.recognition-photo-wrap b{position:absolute;right:-2mm;bottom:-1mm;display:grid;place-items:center;width:9mm;height:9mm;border-radius:50%;background:#073763;color:#fff;font-size:13px;box-shadow:0 2px 8px rgba(3,40,70,.22)}.recognition-winner-1 .recognition-photo-wrap b{background:#d49b16}.recognition-winner h2{margin:3mm 0 1mm;font-size:14px;line-height:1.1}.recognition-winner p{margin:0;color:#728391;font-size:8px}.recognition-score{display:flex;align-items:baseline;gap:1mm;margin-top:2.5mm;color:#07865d}.recognition-score strong{font-size:21px}.recognition-score span{text-transform:uppercase;font-size:7px;font-weight:900;letter-spacing:.1em}.recognition-winner small{margin-top:1mm;color:#5c7183;font-size:8px}.recognition-cover blockquote{margin:5mm auto 0;text-align:center;color:#36566f;font-family:Georgia,'Times New Roman',serif;font-size:12px;font-style:italic}.recognition-honor{padding-top:14mm}.recognition-honor-head{display:flex;justify-content:space-between;align-items:center}.recognition-honor-head h2{margin:1.5mm 0 0;font-family:Georgia,'Times New Roman',serif;font-size:22px}.recognition-honor-head img{width:28mm;height:15mm;object-fit:contain}.recognition-metrics{display:grid;grid-template-columns:repeat(4,1fr);gap:3mm;margin:6mm 0}.recognition-metrics>div{display:grid;padding:3.5mm 4mm;border-left:1.2mm solid #0c79b3;border-radius:2mm;background:#f0f6fa}.recognition-metrics span,.recognition-list-item>div>span{color:#698092;font-size:7px;font-weight:850;letter-spacing:.08em;text-transform:uppercase}.recognition-metrics strong{margin-top:1mm;font-size:18px}.recognition-metrics .penalty{border-color:#d75a4a;background:#fff4f2}.recognition-metrics .penalty strong{color:#b42318}.recognition-list{display:grid;grid-template-columns:1fr 1fr;gap:2.2mm 4mm}.recognition-list-item{display:grid;grid-template-columns:10mm 11mm minmax(42mm,1fr) 15mm 17mm 22mm;gap:2mm;align-items:center;min-height:14mm;padding:2mm 3mm;border:1px solid #dbe5ed;border-radius:3mm;background:#fff}.recognition-list-item.rank-1{border-color:#edcc5d;background:#fff9e6}.recognition-list-item.rank-2{border-color:#c8d2dc;background:#f5f7f9}.recognition-list-item.rank-3{border-color:#dfb08d;background:#fff6ef}.recognition-list-rank{display:grid;place-items:center;width:8mm;height:8mm;border-radius:50%;background:#e8f0f5;font-size:11px;font-weight:900}.recognition-list-item img,.recognition-list-avatar{display:grid;place-items:center;width:10mm;height:10mm;border-radius:50%;object-fit:cover;background:#0e71aa;color:#fff;font-weight:900}.recognition-list-person{display:grid;min-width:0}.recognition-list-person strong{overflow:hidden;font-size:9px;line-height:1.1;text-overflow:ellipsis;white-space:nowrap}.recognition-list-person small{margin-top:.5mm;overflow:hidden;color:#758795;font-size:7px;text-overflow:ellipsis;white-space:nowrap}.recognition-list-item>div:not(.recognition-list-person){display:grid}.recognition-list-item>div>strong{margin-top:.5mm;font-size:10px}.recognition-list-status.has-penalty strong{color:#b42318}.recognition-rule{display:flex;gap:4mm;margin-top:4mm;padding:3mm 4mm;border-radius:2mm;background:#eaf5fb;color:#49687e;font-size:8px}.recognition-rule strong{color:#075f93}.recognition-body .status-success{padding:1mm 2mm}.recognition-cover{background:radial-gradient(circle at 8% 8%,#eaf7fc 0,transparent 22%),radial-gradient(circle at 92% 84%,#fff5cf 0,transparent 24%),#fff}
.recognition-list-status.is-rebuilt strong{color:#0875a8}
.recognition-honor-head small{display:block;margin-top:1mm;color:#687f91;font-size:8px}.recognition-list.is-extended{gap:1.5mm 3mm}.recognition-list.is-extended .recognition-list-item{min-height:12mm;padding:1.5mm 2.5mm}.recognition-list.is-extended .recognition-list-person strong{font-size:8.5px}

/* Adelantos de nómina: captura trazable y registro compacto. */
.advance-head{margin-bottom:18px}.create-advance{margin:0 0 18px;overflow:hidden}.create-advance summary{display:grid;gap:3px;padding:18px 22px;list-style:none;background:linear-gradient(90deg,#f7fbfe,#fff);cursor:pointer}.create-advance summary::-webkit-details-marker{display:none}.create-advance summary span{color:var(--blue-dark);font-size:17px;font-weight:850}.create-advance summary small{color:var(--muted);font-weight:500}.create-advance[open] summary{border-bottom:1px solid var(--line)}.advance-create-form{padding:20px 22px}.advance-create-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:15px}.advance-create-grid label{display:grid;align-content:start;gap:7px}.advance-create-grid label>small{color:var(--muted);font-size:11px}.advance-create-grid .span-2{grid-column:span 2}.advance-form-footer{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-top:18px;padding-top:16px;border-top:1px solid var(--line)}.advance-form-footer p{max-width:680px;margin:0;color:var(--muted)}.advance-register{padding:0;overflow:hidden}.advance-register>.section-line{padding:18px 22px;border-bottom:1px solid var(--line)}.advance-register table{width:100%;min-width:1040px;table-layout:auto}.advance-register th,.advance-register td{padding:13px 12px;vertical-align:middle}.advance-register th:first-child,.advance-register td:first-child{min-width:230px}.advance-register td small{display:block;margin-top:5px;color:var(--muted);line-height:1.35}.advance-actions{display:grid;gap:6px}.advance-actions a{font-weight:800;white-space:nowrap}.advance-detail-context{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:0;margin-bottom:20px;padding:0;overflow:hidden}.advance-detail-context>div{display:grid;gap:6px;min-height:82px;padding:17px 19px;border-right:1px solid var(--line);border-bottom:1px solid var(--line)}.advance-detail-context>div:nth-child(4n){border-right:0}.advance-detail-context>div.span-2{grid-column:span 2}.advance-detail-context span{color:var(--muted);font-size:11px;font-weight:800;letter-spacing:.06em;text-transform:uppercase}.advance-detail-context strong{color:var(--blue-dark);line-height:1.4}.advance-register .progress-track{width:100%;min-width:95px}
@media(max-width:900px){.advance-create-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.advance-detail-context{grid-template-columns:repeat(2,minmax(0,1fr))}.advance-detail-context>div:nth-child(4n){border-right:1px solid var(--line)}.advance-detail-context>div:nth-child(2n){border-right:0}}
@media(max-width:650px){.advance-create-grid,.advance-detail-context{grid-template-columns:1fr}.advance-create-grid .span-2,.advance-detail-context>div.span-2{grid-column:auto}.advance-form-footer{align-items:stretch;flex-direction:column}.advance-detail-context>div{border-right:0!important}}
@media(max-width:900px){.recognition-document{padding:12px}.recognition-sheet{min-width:1050px;transform-origin:top left}.recognition-body{overflow-x:auto}.recognition-actions{justify-content:flex-start;min-width:1050px}}
@media print{@page{size:A4 landscape;margin:0}.recognition-actions{display:none!important}.recognition-body{background:#fff;-webkit-print-color-adjust:exact;print-color-adjust:exact}.recognition-document{display:block;padding:0}.recognition-sheet{width:297mm;height:210mm;min-height:210mm;margin:0;box-shadow:none;break-after:page;page-break-after:always}.recognition-sheet:last-child{break-after:auto;page-break-after:auto}}

/* Adelantos de nómina: lote de descuentos por quincena. */
.advance-batch-dialog{width:min(1080px,calc(100vw - 32px));max-height:calc(100vh - 32px);padding:28px;border:0;border-radius:20px;box-shadow:0 24px 70px rgba(5,48,82,.28)}.advance-batch-dialog::backdrop{background:rgba(5,32,55,.55);backdrop-filter:blur(3px)}.advance-batch-dialog .dialog-heading{padding-right:52px}.advance-batch-dialog .dialog-heading h2{margin:4px 0 7px;font-size:28px}.advance-batch-dialog .dialog-heading p:last-child{margin:0;color:var(--muted)}.advance-batch-dialog>.dialog-close{position:absolute;top:22px;right:22px;display:grid;place-items:center;width:38px;height:38px;padding:0;border:0;border-radius:50%;background:#edf3f7;color:var(--blue-dark);font-size:25px;line-height:1;cursor:pointer}.advance-batch-date{display:flex;align-items:end;gap:12px;margin:22px 0 14px;padding:15px 17px;border:1px solid var(--line);border-radius:14px;background:#f7fafc}.advance-batch-date label{display:grid;gap:6px;font-weight:800}.advance-batch-date input{min-width:190px}.advance-batch-form{margin-top:14px}.advance-batch-toolbar{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:13px 16px;border-radius:12px 12px 0 0;background:var(--blue-dark);color:#fff}.advance-batch-toolbar label{display:flex;align-items:center;gap:8px;font-weight:800}.advance-batch-toolbar input,.advance-batch-table input{width:18px;height:18px;accent-color:var(--aqua)}.advance-batch-table{max-height:48vh;border:1px solid var(--line);border-top:0;border-radius:0 0 12px 12px}.advance-batch-table table{width:100%;min-width:820px}.advance-batch-table thead{position:sticky;top:0;z-index:1;background:#eef4f8}.advance-batch-table th,.advance-batch-table td{padding:13px 12px;vertical-align:middle}.advance-batch-table td small{display:block;margin-top:4px;color:var(--muted)}.advance-batch-table tbody tr:has(input:checked){background:#f6fcfa}.advance-batch-dialog .dialog-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:18px}.advance-batch-dialog .notice{margin:12px 0}
@media(max-width:650px){.advance-batch-dialog{width:calc(100vw - 16px);padding:20px 14px}.advance-batch-date,.advance-batch-toolbar,.advance-batch-dialog .dialog-actions{align-items:stretch;flex-direction:column}.advance-batch-date input{min-width:0}.advance-batch-dialog .dialog-actions .button{width:100%}}
/* Personal del cálculo de rentabilidad */
.profit-staff-dialog { width: min(900px, 94vw); max-height: 88vh; overflow: auto; }
.profit-staff-person { border-bottom: 1px solid #dce5ee; padding: 16px 0; }
.profit-staff-person h3 { margin-bottom: 6px; }
.profit-staff-person summary { cursor: pointer; color: #0054a6; font-weight: 600; padding: 8px 0; }
.profit-shift-form { display: flex; flex-wrap: wrap; gap: 12px; align-items: end; padding: 12px 0; border-top: 1px solid #e5edf5; }
.profit-shift-form > strong { flex: 1 1 150px; }
.profit-shift-form label { flex: 0 1 120px; }
.profit-shift-form .profit-repeat { flex: 1 1 100%; display: flex; gap: 8px; align-items: center; }
.profit-repeat input { width: auto; }

.calendar-event.leave-rest{background:#fff0c2;border-color:#b77900;color:#754c00}

.billing-hours-input{width:90px;min-width:75px}.billing-compact-table [data-billing-edit-status]{color:#93370d;font-weight:600}

.profit-months{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:8px;grid-column:1/-1;width:100%}.profit-months .panel{margin:0;padding:12px}.profit-months span{display:block;font-size:.8rem;margin-top:6px}.profit-months [data-state="completed"]{border-left:4px solid #248452}.profit-months [data-state="error"]{border-left:4px solid #b45309}.profit-months [data-state="future"]{opacity:.6}
.profit-snapshot-manager .profit-sync-range{grid-column:1/-1;grid-template-columns:1fr}.profit-sync-range>button{justify-self:start}.profit-snapshot-manager>.inline-form{display:flex;gap:10px;align-items:end}
