:root{font-family:Inter,system-ui,-apple-system,Segoe UI,sans-serif;color:#172033;background:#f4f7fb}*{box-sizing:border-box}body{margin:0;min-width:320px}button,input,select,textarea{font:inherit}button{cursor:pointer;border:0;border-radius:10px;padding:10px 14px;font-weight:700;background:#e8eef5;color:#1f4e78}button.primary,.primary{background:#1f4e78;color:#fff}.success{background:#26865f;color:#fff}.danger{background:#b42318;color:#fff}.ghost{background:rgba(255,255,255,.16);color:#fff}header{position:sticky;top:0;z-index:10;background:#1f4e78;color:#fff;padding:12px 18px;display:flex;justify-content:space-between;align-items:center}.brand{display:flex;align-items:center;gap:10px;font-size:1.1rem;font-weight:800}.brand img{width:38px;height:38px}.brand.dark{color:#1f4e78}.header-actions{display:flex;align-items:center;gap:10px}.shell{max-width:1280px;margin:auto;padding:18px}.center{min-height:60vh;display:grid;place-items:center;padding:20px}nav{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:18px}nav button.active{background:#1f4e78;color:#fff}h1{margin-top:0}.card{background:#fff;border:1px solid #dbe4ee;border-radius:16px;padding:18px;box-shadow:0 3px 12px rgba(31,78,120,.06)}.login-wrap{min-height:100vh;display:grid;place-items:center;padding:16px}.login-card{width:min(430px,100%)}label{display:grid;gap:6px;margin:12px 0;font-weight:650}input,select,textarea{width:100%;border:1px solid #b9c7d6;border-radius:10px;padding:11px;background:#fff;color:#172033}.two{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-bottom:16px}.stat span{color:#667085}.stat strong{display:block;font-size:1.8rem;margin-top:6px}.alert{border-radius:10px;padding:11px 12px;margin:12px 0}.alert.error{background:#fee4e2;color:#912018}.alert.ok{background:#dcfae6;color:#176b45}.muted{color:#667085}.title-row{display:flex;justify-content:space-between;align-items:center;gap:12px}.title-row select{width:auto}.months{display:grid;grid-template-columns:repeat(auto-fit,minmax(285px,1fr));gap:14px}.month h3{text-align:center;text-transform:capitalize;margin:0 0 10px}.week-head,.day-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:4px}.week-head b{text-align:center;color:#667085;font-size:.8rem}.day{min-height:58px;border:1px solid #e1e7ef;border-radius:8px;padding:4px;overflow:hidden}.day.weekend{background:#f2f4f7}.day.today{outline:2px solid #1f4e78}.day>span{font-size:.78rem;font-weight:800}.day small{display:block;color:#fff;border-radius:4px;padding:2px 4px;margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:.65rem}.legend{display:flex;flex-wrap:wrap;gap:12px;margin:16px 0}.legend span{display:flex;align-items:center;gap:6px}.legend i,.person i{display:inline-block;width:14px;height:14px;border-radius:4px}.form-card{max-width:720px}.summary{margin:12px 0;padding:10px;background:#f2f6fa;border-radius:10px}.request-row{display:flex;justify-content:space-between;align-items:center;gap:12px;border-top:1px solid #e4eaf1;padding:12px 0}.request-row:first-child{border-top:0}.actions{display:flex;gap:8px}.status{border-radius:999px;padding:5px 9px;font-size:.82rem}.status.Pendiente{background:#fef0c7;color:#7a2e0e}.status.Aprobada,.status.Registrada{background:#dcfae6;color:#176b45}.status.Rechazada,.status.Cancelada{background:#fee4e2;color:#912018}.admin-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.check{display:flex;align-items:center;gap:9px}.check input{width:auto}.person{display:flex;align-items:center;gap:10px;padding:9px 0;border-top:1px solid #e4eaf1}.person:first-of-type{border-top:0}.person span{display:grid}.person small{color:#667085}@media(max-width:760px){header{padding:10px}.header-actions span{display:none}.shell{padding:10px}.stats{grid-template-columns:repeat(2,1fr)}.two,.admin-grid{grid-template-columns:1fr}.request-row{align-items:flex-start;flex-direction:column}.day{min-height:48px}.day small{font-size:.58rem}.months{grid-template-columns:1fr}}

/* VacaPro v0.2 */
.brand small{font-size:.68rem;font-weight:600;opacity:.8;margin-left:2px}
.password-wrap{display:flex;align-items:stretch;gap:8px}
.password-wrap input{flex:1;min-width:0;caret-color:#172033;font-family:Arial,sans-serif;letter-spacing:.03em}
.password-toggle{flex:0 0 auto;padding:8px 12px;background:#eef3f8;color:#1f4e78}
.full{width:100%;margin-top:8px}
.version{text-align:center;color:#98a2b3;font-size:.78rem;margin:18px 0 0}
.welcome{display:flex;justify-content:space-between;gap:18px;align-items:center;margin-bottom:16px}
.welcome h1{margin:2px 0 4px}
.eyebrow{margin:0;text-transform:capitalize;color:#667085;font-size:.9rem}
.shift-pill{background:#1f4e78;color:#fff;border-radius:999px;padding:10px 16px;font-weight:800;white-space:nowrap}
.quick-actions{display:flex;gap:10px;flex-wrap:wrap;margin:0 0 16px}
.quick-actions button{padding:12px 18px}
.home-grid{display:grid;grid-template-columns:1.3fr .7fr;gap:14px;margin-bottom:14px}
.info-list{display:grid;gap:0}
.info-list>div{display:flex;justify-content:space-between;gap:12px;padding:11px 0;border-top:1px solid #e4eaf1}
.info-list>div:first-child{border-top:0}
.info-list span{color:#667085}
@media(max-width:760px){
  .welcome{align-items:flex-start}
  .shift-pill{font-size:.85rem;padding:8px 11px}
  .home-grid{grid-template-columns:1fr}
  .quick-actions{display:grid;grid-template-columns:1fr}
  .quick-actions button{width:100%}
}

/* VacaPro v0.3 — calendario */
.calendar-tools{margin:0 0 14px}
.calendar-key{display:flex;gap:14px;flex-wrap:wrap;align-items:center;margin-bottom:6px}
.calendar-key span{display:flex;align-items:center;gap:6px;font-size:.9rem}
.dot{width:11px;height:11px;border-radius:50%;display:inline-block}
.dot.approved{background:#1f4e78}
.dot.pending{background:#1f4e78;opacity:.42}
.weekend-box{width:14px;height:14px;border-radius:4px;background:#f2f4f7;border:1px solid #dbe4ee}
.day{appearance:none;text-align:left;background:#fff;color:#172033;font-weight:400;padding:5px;transition:.12s ease;border:1px solid #e1e7ef}
.day:hover{border-color:#1f4e78;box-shadow:0 0 0 1px #1f4e78;transform:translateY(-1px)}
.day.empty{border:0;background:transparent;box-shadow:none;pointer-events:none}
.day-number{font-size:.78rem;font-weight:800;display:inline-flex;align-items:center;justify-content:center;min-width:22px;height:22px}
.day.today .day-number{background:#1f4e78;color:#fff;border-radius:999px}
.day.holiday{background:#fff8ed}
.holiday-mark{font-size:.52rem;color:#b54708;float:right;margin-top:3px}
.day-people{display:grid;gap:2px;margin-top:3px}
.day small.vac{display:block;background:var(--person);color:#fff;border-radius:5px;padding:2px 4px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:.62rem}
.day small.vac.pending{opacity:.48;border:1px dashed rgba(255,255,255,.9)}
.legend-title{margin-top:18px}
.legend-title h2{font-size:1rem;margin-bottom:8px}
.legend span small{color:#667085}
.day-detail{margin-bottom:16px;border-color:#a9bfd4}
.detail-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:12px}
.detail-head h2{margin:2px 0 0;text-transform:capitalize}
.ghost-dark{background:#edf2f7;color:#1f4e78}
.shift-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.shift-card{border:1px solid #dbe4ee;border-radius:12px;padding:13px;background:#f9fbfd}
.shift-card-title{display:flex;justify-content:space-between;align-items:center;gap:8px;margin-bottom:8px}
.shift-card-title>b{font-size:.78rem;border-radius:999px;padding:4px 8px}
.available{background:#dcfae6;color:#176b45}
.occupied{background:#fee4e2;color:#912018}
.shift-person{display:flex;gap:9px;align-items:center;border-top:1px solid #e4eaf1;padding:8px 0}
.shift-person:first-of-type{border-top:0}
.shift-person i{width:12px;height:30px;border-radius:4px}
.shift-person div{display:grid}
.shift-person small{color:#667085}
.free-shift{padding:10px 0;color:#176b45;font-weight:700}
@media(max-width:760px){
  .shift-grid{grid-template-columns:1fr}
  .month{padding:10px}
  .day{min-height:54px;padding:3px}
  .day small.vac{font-size:.54rem}
  .holiday-mark{display:none}
}

/* VacaPro v0.4 — solicitud inteligente */
.request-layout{display:grid;grid-template-columns:minmax(0,1fr) minmax(320px,.9fr);gap:14px;margin-bottom:14px}
.request-preview{align-self:start;position:sticky;top:78px}
.preview-head{display:flex;justify-content:space-between;gap:12px;align-items:center;margin-bottom:12px}
.preview-head h2{margin:0}
.validation{padding:9px 11px;border-radius:9px;font-size:.88rem;font-weight:700}
.validation.good{background:#dcfae6;color:#176b45}
.validation.bad{background:#fee4e2;color:#912018}
.preview-stats{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin:10px 0}
.preview-stats>div{background:#f5f8fb;border:1px solid #e1e7ef;border-radius:10px;padding:10px;display:grid;gap:3px}
.preview-stats span{color:#667085;font-size:.78rem}
.preview-stats b{font-size:1.2rem}
.preview-stats b.negative{color:#b42318}
.turn-summary{display:flex;gap:10px;flex-wrap:wrap;margin:10px 0}
.turn-summary span{background:#f5f8fb;border-radius:999px;padding:6px 10px;font-size:.86rem}
.conflict-box{border:1px solid #f7b4ae;background:#fff6f5;border-radius:10px;padding:11px;margin-top:10px}
.conflict-box h3{margin:0 0 7px;color:#912018;font-size:.95rem}
.conflict-box>div{display:grid;grid-template-columns:auto 1fr;column-gap:7px;padding:6px 0;border-top:1px solid #f4d7d4;font-size:.86rem}
.conflict-box>div:first-of-type{border-top:0}
.conflict-box small{grid-column:1/-1;color:#667085;padding-top:2px}
.preview-note{font-size:.78rem;margin-bottom:0}
#send:disabled{opacity:.45;cursor:not-allowed}
@media(max-width:860px){
  .request-layout{grid-template-columns:1fr}
  .request-preview{position:static}
}

/* VacaPro v0.5 — panel jefe y modo pruebas */
.boss-stats{margin-bottom:14px}
.boss-toolbar{display:grid;grid-template-columns:180px minmax(180px,1fr) auto;gap:10px;align-items:end;margin-bottom:14px}
.boss-toolbar label{margin:0}
.boss-request{display:flex;justify-content:space-between;gap:16px;border-top:1px solid #e4eaf1;padding:14px 0}
.boss-request:first-child{border-top:0}
.boss-request-main{min-width:0}
.person-line{display:flex;align-items:center;gap:8px;margin-bottom:5px}
.person-line i{width:10px;height:24px;border-radius:4px}
.person-line span{font-size:.78rem;color:#667085}
.boss-request-dates{font-size:.92rem}
.request-comment{margin:6px 0 0;color:#667085;font-style:italic}
.boss-request-side{display:flex;flex-direction:column;align-items:flex-end;gap:9px;white-space:nowrap}
.admin-danger{border-color:#f2b8b5}
.admin-danger h2{color:#912018}
.reset-summary{display:flex;justify-content:space-between;align-items:center;background:#fff6f5;border-radius:10px;padding:10px 12px;margin:12px 0}
.reset-summary b{font-size:1.35rem;color:#912018}
.small-note{font-size:.8rem}
.production-steps{display:grid;gap:10px}
.production-steps>div{display:flex;align-items:center;gap:10px}
.production-steps b{width:28px;height:28px;border-radius:50%;background:#1f4e78;color:#fff;display:inline-flex;align-items:center;justify-content:center;flex:0 0 auto}
button:disabled{opacity:.45;cursor:not-allowed}
@media(max-width:760px){
  .boss-toolbar{grid-template-columns:1fr}
  .boss-request{display:grid}
  .boss-request-side{align-items:flex-start}
}

/* VacaPro v0.6 — gestión de personal */
.staff-stats{margin-bottom:14px}
.staff-toolbar{display:grid;grid-template-columns:minmax(220px,1fr) 210px;gap:10px;margin-bottom:12px}
.staff-card{display:grid;grid-template-columns:minmax(0,1fr) auto auto;align-items:center;gap:16px;padding:13px 0;border-top:1px solid #e4eaf1}
.staff-card:first-child{border-top:0}
.staff-card.inactive{opacity:.55}
.staff-main{display:flex;align-items:center;gap:11px;min-width:0}
.staff-main h3{margin:0;font-size:1rem}
.staff-main p{margin:3px 0 0;color:#667085;font-size:.82rem}
.staff-color{width:14px;height:40px;border-radius:5px;flex:0 0 auto}
.staff-meta{display:flex;align-items:center;gap:12px}
.staff-meta>span:first-child{display:grid;text-align:center}
.staff-meta>span:first-child b{font-size:1.1rem}
.staff-meta small{font-size:.7rem;color:#667085}
.badge-on,.badge-off{font-size:.75rem;font-weight:800;border-radius:999px;padding:5px 8px}
.badge-on{background:#dcfae6;color:#176b45}
.badge-off{background:#f2f4f7;color:#667085}
.staff-help{border-style:dashed}
.modal-backdrop{position:fixed;inset:0;background:rgba(15,23,42,.52);display:grid;place-items:center;padding:18px;z-index:999}
.modal-card{width:min(620px,100%);max-height:92vh;overflow:auto;background:#fff;border-radius:16px;padding:20px;box-shadow:0 24px 80px rgba(0,0,0,.24)}
.role-box{border:1px solid #dbe4ee;border-radius:12px;padding:10px 12px;margin:12px 0}
.role-box legend{padding:0 6px;font-weight:800}
.role-box .check{margin:7px 0}
@media(max-width:760px){
  .staff-toolbar{grid-template-columns:1fr}
  .staff-card{grid-template-columns:1fr auto}
  .staff-meta{grid-column:1/2;justify-content:flex-start;padding-left:25px}
  .staff-edit{grid-column:2;grid-row:1/3}
}

/* VacaPro v0.7 — turnos configurables */
.shift-admin-list,.group-admin-list{display:grid;gap:0}
.shift-admin-card{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:12px;align-items:center;padding:12px 0;border-top:1px solid #e4eaf1}
.shift-admin-card:first-child{border-top:0}
.shift-admin-card h3{margin:0}
.shift-admin-card p{margin:3px 0 0;color:#667085;font-size:.84rem}
.shift-admin-icon{font-size:1.5rem;width:42px;height:42px;display:grid;place-items:center;background:#f2f6fa;border-radius:10px}
.group-admin-card{display:grid;grid-template-columns:minmax(0,1fr) 130px;gap:12px;align-items:center;padding:10px 0;border-top:1px solid #e4eaf1}
.group-admin-card:first-child{border-top:0}
.group-admin-card>div{display:flex;gap:10px;align-items:center}
.group-admin-card>div>b{width:30px;height:30px;border-radius:50%;display:grid;place-items:center;background:#1f4e78;color:#fff}
.group-admin-card label{margin:0}
.rotation-preview{display:flex;gap:10px;flex-wrap:wrap}
.rotation-preview>div{min-width:140px;background:#f5f8fb;border:1px solid #e1e7ef;border-radius:10px;padding:10px;display:grid;gap:3px}
.rotation-preview span{font-size:.78rem;color:#667085}
.rotation-preview b{font-size:1rem}
.shift-grid{grid-template-columns:repeat(auto-fit,minmax(220px,1fr))}
@media(max-width:760px){
 .shift-admin-card{grid-template-columns:auto 1fr}
 .shift-admin-card button{grid-column:2}
 .group-admin-card{grid-template-columns:1fr 110px}
}

/* VacaPro v0.8 — personalización de empresa */
:root{--brand-primary:#1f4e78;--brand-accent:#26865f}
header,button.primary,.primary,nav button.active,.shift-pill,.production-steps b,.group-admin-card>div>b,.day.today .day-number{background:var(--brand-primary)!important}
button{color:var(--brand-primary)}
.brand.dark{color:var(--brand-primary)}
.success{background:var(--brand-accent)!important}
.day.today{outline-color:var(--brand-primary)}
.brand img{object-fit:contain;border-radius:8px}
.brand-copy{display:grid;line-height:1.05}
.brand-copy>b{font-size:1rem}
.brand-copy .company-caption{font-size:.68rem;font-weight:500;opacity:.82;margin-top:3px}
.brand .app-version{font-size:.62rem;margin-left:2px;opacity:.72}
.login-company{margin:-2px 0 14px 48px;color:#667085;font-size:.86rem;font-weight:700}
.branding-layout{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(300px,.9fr);gap:14px;align-items:start}
.branding-preview-card{position:sticky;top:78px}
.section-gap{margin-top:24px}
.brand-logo-actions{display:flex;gap:8px;flex-wrap:wrap;margin:8px 0}
.branding-preview{border:1px solid #dbe4ee;border-radius:14px;overflow:hidden;background:#f4f7fb;min-height:360px}
.preview-topbar{display:flex;align-items:center;gap:10px;background:var(--brand-primary);color:white;padding:12px}
.preview-topbar img{width:42px;height:42px;object-fit:contain;background:white;border-radius:8px;padding:2px}
.preview-topbar>div{display:grid}
.preview-topbar small{opacity:.82;margin-top:2px}
.preview-login{width:min(280px,calc(100% - 28px));margin:42px auto;background:white;border:1px solid #dbe4ee;border-radius:14px;padding:18px}
.preview-login h3{margin:0 0 4px}
.preview-login p{margin:0 0 16px;color:#667085;font-size:.82rem}
.fake-input{height:38px;border:1px solid #b9c7d6;border-radius:9px;margin:9px 0;background:#fff}
.preview-login button{background:var(--brand-primary);color:white;margin-top:4px}
.branding-current{display:grid;grid-template-columns:1fr auto;gap:8px;padding-top:14px}
.branding-current span{color:#667085}
@media(max-width:860px){
 .branding-layout{grid-template-columns:1fr}
 .branding-preview-card{position:static}
 .login-company{margin-left:0}
}

/* VacaPro v0.9 — altas seguras y contraseñas temporales */
.staff-actions{display:flex;gap:7px;flex-wrap:wrap;justify-content:flex-end}
.staff-email{display:block;color:#667085;margin-top:3px;font-size:.74rem}
.temp-result{text-align:center}
.success-icon{width:58px;height:58px;margin:0 auto 12px;border-radius:50%;display:grid;place-items:center;background:#dcfae6;color:#176b45;font-size:2rem;font-weight:900}
.credential-box{display:grid;grid-template-columns:auto minmax(0,1fr);gap:8px 14px;text-align:left;background:#f5f8fb;border:1px solid #dbe4ee;border-radius:12px;padding:14px;margin:16px 0}
.credential-box span{color:#667085;font-size:.8rem}
.credential-box b,.credential-box code{overflow-wrap:anywhere}
.credential-box code{font-size:1rem;font-weight:800;background:#fff;border:1px solid #dbe4ee;border-radius:6px;padding:5px 7px}
.result-actions{display:flex;gap:8px;justify-content:center;flex-wrap:wrap}
@media(max-width:760px){
 .staff-actions{grid-column:2;grid-row:1/3;display:grid;align-content:center}
 .credential-box{grid-template-columns:1fr}
}

/* VacaPro v0.10 — multiempresa / propietario */
.company-switch{max-width:210px;background:rgba(255,255,255,.14);border:1px solid rgba(255,255,255,.35);color:#fff;padding:8px 30px 8px 10px}
.company-switch option{color:#111827;background:#fff}
.company-chip{font-size:.78rem;font-weight:800;background:rgba(255,255,255,.13);border:1px solid rgba(255,255,255,.22);padding:7px 10px;border-radius:999px}
.owner-badge{background:#111827;color:white;font-size:.72rem;font-weight:900;letter-spacing:.08em;border-radius:999px;padding:9px 12px}
.company-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:14px}
.company-card{display:grid;gap:14px}
.company-suspended{opacity:.72}
.company-card-head{display:flex;justify-content:space-between;gap:12px;align-items:flex-start}
.company-card-head h2{margin:5px 0 2px}
.company-card-head p{margin:0;color:#667085}
.company-status{display:inline-block;font-size:.67rem;font-weight:900;text-transform:uppercase;padding:4px 7px;border-radius:999px}
.company-status.active{background:#dcfae6;color:#176b45}
.company-status.suspended{background:#fee4e2;color:#b42318}
.current-company-mark{font-size:.66rem;font-weight:900;letter-spacing:.06em;background:#e8eef8;color:#173c69;border-radius:999px;padding:6px 8px}
.company-data{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}
.company-data>div{background:#f7f9fc;border-radius:10px;padding:9px;display:grid;gap:3px}
.company-data span{font-size:.7rem;color:#667085}
.company-data b{font-size:.86rem;overflow-wrap:anywhere}
.company-actions{display:flex;gap:7px;flex-wrap:wrap}
.wrap-text{overflow-wrap:anywhere;max-width:250px;text-align:right}
@media(max-width:760px){
 .header-actions .company-switch{order:3;width:100%;max-width:none}
 .company-data{grid-template-columns:1fr}
 .company-actions{display:grid;grid-template-columns:1fr 1fr}
}

/* VacaPro v0.11 — permisos, ausencias y justificantes */
.boss-tabs{display:flex;gap:8px;margin:14px 0 10px;flex-wrap:wrap}
.boss-tabs button{background:#fff;border:1px solid #d7e0ea}
.boss-tabs button.active{background:var(--brand-primary);color:#fff;border-color:var(--brand-primary)}
.boss-tabs b{display:inline-grid;place-items:center;min-width:22px;height:22px;padding:0 6px;margin-left:5px;border-radius:999px;background:rgba(0,0,0,.08);font-size:.75rem}
.permission-preview-icon{font-size:2.2rem;margin:10px 0 2px}
.absence-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:14px;padding:14px 0;border-bottom:1px solid #e5eaf0;align-items:center}
.absence-row:last-child{border-bottom:0}
.absence-title{display:flex;align-items:center;gap:7px;flex-wrap:wrap;margin-bottom:5px}
.absence-actions{display:flex;gap:7px;flex-wrap:wrap;justify-content:flex-end}
.attachment-button{margin-top:8px;width:max-content}
.permission-type-list{display:grid;gap:10px}
.permission-type-card{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:12px;align-items:center;border:1px solid #e0e7ef;border-radius:12px;padding:13px}
.permission-type-card.inactive{opacity:.58}
.permission-type-icon{width:48px;height:48px;border-radius:12px;background:#f2f5f9;display:grid;place-items:center;font-size:1.6rem}
.permission-type-main h3{margin:0 0 3px}
.permission-type-main p{margin:0;color:#667085;font-size:.82rem}
.permission-tags{display:flex;gap:6px;flex-wrap:wrap;margin-top:8px}
.permission-tags span{background:#edf3f9;border-radius:999px;padding:4px 7px;font-size:.68rem;font-weight:700;color:#44546a}
.permission-tags .tag-off{background:#fee4e2;color:#b42318}
.type-check{align-self:end;padding-bottom:9px}
.absence-boss-card .request-comment{margin-bottom:5px}
@media(max-width:720px){
 .absence-row{grid-template-columns:1fr}
 .absence-actions{justify-content:flex-start}
 .permission-type-card{grid-template-columns:auto 1fr}
 .permission-type-card>button{grid-column:1/-1}
}

/* VacaPro v0.12 — horas extra + borrado seguro de empresa */
.overtime-big{font-size:2.6rem;font-weight:900;letter-spacing:-.04em;margin:16px 0}
.mini-totals{display:flex;gap:10px;flex-wrap:wrap;border-top:1px solid #e5eaf0;margin-top:12px;padding-top:10px;font-size:.78rem;color:#667085}
.history-total,.boss-overtime-total{background:#f3f6fa;border:1px solid #dbe4ee;border-radius:10px;padding:10px 12px;margin-bottom:10px}
.title-row.compact{margin-bottom:10px}
.danger-soft{background:#fff3f2!important;color:#b42318!important;border-color:#fecdca!important}
.company-unavailable{text-align:center}
.unavailable-icon{font-size:2.8rem;margin:12px 0 8px}
.overtime-boss-card .boss-request-dates{font-size:.95rem}


/* VacaPro v0.13 — horas extra por tipo + fichaje geolocalizado */
.overtime-kind{display:inline-flex;align-items:center;padding:3px 8px;border-radius:999px;font-size:.72rem;font-weight:800;background:#eef2f6;color:#344054}
.overtime-kind.weekend{background:#fff4e5;color:#9a4b00}
.history-total,.boss-overtime-total{display:flex;gap:14px;flex-wrap:wrap;align-items:center}
.rate-box{border:1px solid #e4e7ec;border-radius:12px;padding:12px;margin:8px 0 14px;background:#fafbfc}
.clock-hero{display:flex;justify-content:space-between;gap:20px;align-items:center;padding:22px;border-radius:18px;background:#f3f6fa;border:1px solid #dbe4ee;margin-bottom:14px}
.clock-hero>div:first-child{display:flex;flex-direction:column;gap:4px}.clock-hero strong{font-size:1.6rem}.clock-hero small{color:#667085}
.clock-hero.working{background:#ecfdf3;border-color:#abefc6}.clock-hero.break{background:#fffaeb;border-color:#fedf89}
.clock-time{text-align:right}.clock-time span{display:block;font-size:.75rem;color:#667085}.clock-time b{font-size:1.5rem}
.clock-actions{display:flex;gap:10px;flex-wrap:wrap;align-items:center}.clock-button{min-height:52px;font-size:1rem;font-weight:800;flex:1;min-width:180px}
.clock-location-info{flex-basis:100%;display:flex;gap:8px 16px;flex-wrap:wrap;padding-top:10px;border-top:1px solid #e4e7ec;font-size:.8rem;color:#475467}
.clock-progress{flex-basis:100%;padding:10px;background:#f3f6fa;border-radius:10px;font-weight:700}
.clock-timeline{display:flex;flex-direction:column;gap:0}.clock-event{position:relative;display:flex;gap:12px;padding:8px 0 8px 4px}.clock-event:not(:last-child):before{content:"";position:absolute;left:9px;top:23px;bottom:-8px;width:2px;background:#d0d5dd}.clock-dot{width:12px;height:12px;border-radius:50%;background:var(--brand-primary);margin-top:4px;z-index:1}.clock-event div{display:flex;flex-direction:column}.clock-event small{color:#667085}
.clock-admin-grid{grid-template-columns:minmax(300px,.8fr) minmax(360px,1.2fr)}
.workplace-row{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:10px 0;border-bottom:1px solid #eaecf0}.workplace-row:last-child{border-bottom:0}.workplace-row>div{display:flex;flex-direction:column;gap:3px}.workplace-row small{color:#667085}.workplace-row.inactive{opacity:.55}
.clock-worker-list{display:grid;gap:10px}.clock-worker{border:1px solid #e4e7ec;border-radius:12px;overflow:hidden}.clock-worker summary{cursor:pointer;display:flex;justify-content:space-between;gap:12px;padding:12px 14px;background:#fafbfc}.clock-worker summary span:first-child{display:flex;align-items:center;gap:8px}.clock-worker summary i{width:12px;height:12px;border-radius:50%;display:inline-block}.clock-worker-body{padding:14px;display:grid;gap:10px}.center-checks{border:1px solid #e4e7ec;border-radius:10px;padding:10px}.center-checks legend{padding:0 6px;font-weight:800}.inline-check{align-self:end;margin-bottom:9px}.clock-review-row .boss-request-side{min-width:120px}
@media(max-width:760px){.clock-hero{align-items:flex-start;flex-direction:column}.clock-time{text-align:left}.clock-admin-grid{grid-template-columns:1fr}.clock-worker summary{flex-direction:column}.clock-actions{flex-direction:column;align-items:stretch}.clock-button{width:100%}}

/* VacaPro v0.14 — panel del jefe + informes ligeros */
.boss-dashboard-grid{align-items:start}
.team-line{display:flex;justify-content:space-between;gap:14px;align-items:center;padding:10px 0;border-bottom:1px solid #edf1f5}
.team-line:last-child{border-bottom:0}.team-line small{color:#667085;text-align:right}
.boss-attention .attention-line{width:100%;display:flex;justify-content:space-between;gap:12px;align-items:center;text-align:left;background:#fff;border:0;border-bottom:1px solid #edf1f5;border-radius:0;padding:11px 0;color:inherit}
.boss-attention .attention-line:last-child{border-bottom:0}.attention-line small{color:#667085}
.report-filters{display:grid;grid-template-columns:repeat(3,minmax(150px,1fr)) auto;gap:12px;align-items:end;margin-bottom:14px}.report-filters label{margin:0}.report-filters button{margin-bottom:0}
.report-grid{display:grid;grid-template-columns:minmax(0,2fr) minmax(260px,1fr);gap:14px}.report-table-wrap{overflow:auto}.report-table{width:100%;border-collapse:collapse;font-size:.88rem}.report-table th,.report-table td{padding:10px 8px;border-bottom:1px solid #e8edf2;text-align:left;white-space:nowrap}.report-table th{font-size:.75rem;text-transform:uppercase;letter-spacing:.04em;color:#667085;background:#f8fafc}.report-table td:first-child{font-weight:700}.report-stats{margin-bottom:14px}
@media(max-width:820px){.report-filters{grid-template-columns:1fr 1fr}.report-filters label:nth-child(3),.report-filters button{grid-column:1/-1}.report-grid{grid-template-columns:1fr}.boss-attention .attention-line,.team-line{align-items:flex-start;flex-direction:column;gap:3px}.team-line small,.attention-line small{text-align:left}}

/* VacaPro v0.15 — usuarios de prueba + RRHH ligero */
.test-login-note{margin-top:-8px;margin-bottom:12px}
.test-user-switch{padding:12px;border:1px solid #d7e0ea;border-radius:12px;background:#f7f9fc;margin-bottom:14px}
.test-user-label{font-weight:700;color:#344054}
.company-options-box{margin:14px 0}
.company-options-box .small-note{margin:8px 0 0}
.credential-box small{font-size:.78rem;word-break:break-all;color:#475467}


/* VacaPro v0.16 — festivos, edición de vacaciones y PWA por empresa */
.holiday-box{width:14px;height:14px;border-radius:4px;background:#fff1e6;border:1px solid #f2a15f}
.day.holiday{background:#fff4eb;border-color:#f2a15f}
.day.holiday.weekend{background:linear-gradient(135deg,#f2f4f7 0 52%,#fff4eb 52% 100%)}
.holiday-mark{float:right;display:inline-grid!important;place-items:center;width:18px;height:18px;border-radius:50%;background:#b54708;color:#fff!important;font-size:.62rem!important;margin-top:1px}
.holiday-detail,.weekend-detail{margin:0 0 12px;padding:9px 11px;border-radius:10px;font-size:.88rem}
.holiday-detail{background:#fff4eb;color:#7a2e0e;border:1px solid #f5c38f}.weekend-detail{background:#f2f4f7;color:#475467}
.holiday-admin-grid{display:grid;grid-template-columns:minmax(0,1.45fr) minmax(280px,.55fr);gap:14px;align-items:start}
.holiday-list{display:grid}.holiday-row{display:flex;justify-content:space-between;gap:14px;align-items:center;padding:11px 0;border-bottom:1px solid #eaecf0}.holiday-row:last-child{border-bottom:0}.holiday-row>div:first-child{display:grid;gap:2px}.holiday-row span{font-size:.9rem}.holiday-row small{color:#667085}.holiday-actions{display:flex;gap:7px;flex-wrap:wrap}
.request-row-actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.install-app{margin-top:10px;border:1px solid #cbd5e1;background:#fff;color:var(--brand-primary)}
@media(max-width:760px){.holiday-admin-grid{grid-template-columns:1fr}.holiday-row{align-items:flex-start;flex-direction:column}.holiday-actions{width:100%}.holiday-actions button{flex:1}.header-actions #install-app{order:2}.holiday-mark{width:16px;height:16px;font-size:.55rem!important}}

/* VacaPro v0.17 — consulta de turno, informes ampliados y cálculo anual */
.shift-lookup-card{display:grid;gap:8px}.shift-lookup-card h2{margin-bottom:0}.shift-lookup-row{display:grid;grid-template-columns:minmax(180px,1fr) minmax(180px,.8fr);gap:12px;align-items:end}.shift-lookup-row label{margin:0}.shift-lookup-result{min-height:46px;border:1px solid #d7e0ea;border-radius:10px;padding:9px 12px;background:#f8fafc;display:flex;align-items:center;justify-content:space-between;gap:12px}.shift-lookup-result span{color:#667085;font-size:.82rem}.shift-lookup-result strong{font-size:1.08rem;color:var(--brand-primary)}
.report-options{margin-bottom:14px}.report-option-list{display:flex;gap:16px;flex-wrap:wrap;margin-top:8px}.report-option-list .check{margin:0}.report-summary-card,.report-detail-card{margin-bottom:14px}.report-mini-summary{margin:10px 0 14px}.report-summary-card .report-table td:not(:first-child){text-align:center}.report-summary-card .report-table th:not(:first-child){text-align:center}
.vacation-calc-card{align-self:start}.vacation-calc-preview{margin:12px 0}.calc-formula{display:grid;gap:7px;border:1px solid #e4e7ec;background:#f8fafc;border-radius:12px;padding:12px}.calc-formula>div{display:flex;justify-content:space-between;gap:14px;align-items:center;padding-bottom:6px;border-bottom:1px solid #eaecf0}.calc-formula>div:last-child{border-bottom:0;padding-bottom:0}.calc-formula span{color:#667085}.calc-result{margin-top:3px;padding-top:5px}.calc-result strong{font-size:1.35rem;color:var(--brand-primary)}
@media(max-width:760px){.shift-lookup-row{grid-template-columns:1fr}.report-option-list{display:grid;grid-template-columns:1fr 1fr;gap:8px}.calc-formula>div{align-items:flex-start}.report-summary-card .title-row.compact,.report-detail-card .title-row.compact{align-items:flex-start;flex-direction:column}.report-summary-card .title-row.compact button,.report-detail-card .title-row.compact button{width:100%}}

/* VacaPro v0.18 — cierre funcional y pulido visual */
button{transition:transform .12s ease,box-shadow .12s ease,opacity .12s ease}
button:not(:disabled):hover{transform:translateY(-1px);box-shadow:0 3px 9px rgba(31,78,120,.12)}
button:disabled{cursor:not-allowed;opacity:.55}
.permission-key{display:inline-grid;place-items:center;width:20px;height:20px;border-radius:6px;background:#344054;color:#fff;font-size:.72rem}
.day small.permission-pill{display:flex;align-items:center;gap:3px;background:#f8fafc;color:#344054;border:1px solid #d7e0ea;border-left:3px solid var(--person);font-weight:700}
.day small.permission-pill b{display:inline-grid;place-items:center;min-width:15px;height:15px;border-radius:4px;background:var(--person);color:#fff;font-size:.58rem}
.detail-permissions{margin-top:14px;padding-top:12px;border-top:1px solid #e4eaf1}.detail-permissions h3{margin:0 0 7px;font-size:.95rem}
.company-data>div:last-child b{line-height:1.3}
#fixed-vacation-fields,#agreement-vacation-fields{margin-top:8px}
#no-shift-settings{margin-top:8px}
.branding-current span,.company-data span{letter-spacing:.01em}
@media(max-width:760px){.day small.permission-pill{font-size:.52rem}.day small.permission-pill b{min-width:13px;height:13px;font-size:.5rem}}

/* VacaPro v1.0 — mejora visual de cabecera (solo estilos) */
header{
  border-bottom:2px solid rgba(255,255,255,.72);
  box-shadow:0 2px 0 rgba(23,32,51,.08);
}
header .brand{
  gap:11px;
}
header .brand img{
  width:42px;
  height:42px;
}
header .brand-copy>b{
  font-size:1.08rem;
  font-weight:900;
  line-height:1.05;
  letter-spacing:.01em;
}
header .brand-copy .company-caption{
  font-size:.76rem;
  font-weight:700;
  opacity:.96;
  line-height:1.15;
  margin-top:4px;
}
header .brand .app-version{
  font-size:.68rem;
  font-weight:800;
  opacity:.9;
}
header .header-actions{
  font-size:.94rem;
  font-weight:700;
}

@media(max-width:760px){
  header{
    padding:10px 12px 11px;
    border-bottom-width:2px;
  }
  header .brand{
    gap:9px;
    min-width:0;
  }
  header .brand img{
    width:40px;
    height:40px;
    flex:0 0 40px;
  }
  header .brand-copy>b{
    font-size:1.12rem;
    line-height:1;
  }
  header .brand-copy .company-caption{
    font-size:.76rem;
    line-height:1.1;
    margin-top:4px;
  }
  header .brand .app-version{
    font-size:.68rem;
  }
  header .header-actions{
    gap:8px;
    font-size:.92rem;
  }
  header .company-switch{
    font-size:.9rem;
    font-weight:700;
  }
  header .header-actions button{
    font-size:.9rem;
    font-weight:800;
  }
}

/* VacaPro v1.0 — ajuste móvil de cabecera en dos líneas */
@media(max-width:760px){
  header{
    display:grid;
    grid-template-columns:minmax(0,1fr);
    gap:10px;
    align-items:start;
  }

  header .brand{
    width:100%;
    display:grid;
    grid-template-columns:auto minmax(0,1fr) auto;
    align-items:center;
    column-gap:9px;
  }

  header .brand img{
    grid-column:1;
    grid-row:1 / span 2;
  }

  header .brand-copy{
    grid-column:2;
    min-width:0;
  }

  header .brand .app-version{
    grid-column:3;
    grid-row:1 / span 2;
    align-self:center;
    margin-left:6px;
    white-space:nowrap;
  }

  header .header-actions{
    width:100%;
    display:grid;
    grid-template-columns:minmax(0,1fr) auto auto;
    align-items:center;
    gap:8px;
  }

  header .header-actions .company-switch{
    order:initial;
    width:100%;
    max-width:none;
    min-width:0;
  }

  header .header-actions span{
    display:inline!important;
    white-space:nowrap;
    overflow:hidden;
    text-overflow:ellipsis;
    max-width:115px;
  }

  header .header-actions button{
    white-space:nowrap;
    padding:9px 11px;
  }
}



/* Calendario mensual de turnos */
.shift-month-nav{display:flex;align-items:center;gap:8px;flex-shrink:0}
.shift-month-nav strong{min-width:140px;text-align:center;text-transform:capitalize;font-size:16px;white-space:nowrap}
.shift-month-nav button{padding:8px 12px;min-width:36px}
.shift-calendar-card{padding:16px;overflow:hidden}
.shift-week-head,.shift-month-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:6px}
.shift-week-head{margin-bottom:8px;text-align:center}
.shift-week-head b{font-size:12px;min-width:0}
.shift-month-grid .shift-month-day{display:flex;flex-direction:column;align-items:flex-start;justify-content:flex-start;gap:5px;width:100%;min-width:0;min-height:94px;padding:8px;border-radius:10px;text-align:left;overflow:hidden;color:var(--text,#172033);border:1px solid rgba(100,116,139,.18);background:var(--bg,#f5f7fb)}
.shift-day-number{display:block;font-size:17px;font-weight:800;line-height:1.2}
.shift-day-name{display:block;width:100%;font-size:11px;line-height:1.25;font-weight:650;overflow-wrap:anywhere}
.shift-month-day small{font-size:10px;line-height:1.25;color:var(--muted,#64748b);overflow-wrap:anywhere}
.shift-month-day.outside{opacity:.45}
.shift-month-day.today{border:2px solid var(--primary,#1f4e78);background:rgba(31,78,120,.07)}
@media(max-width:600px){
 .title-row:has(.shift-month-nav){flex-direction:column;align-items:flex-start;gap:10px}
 .shift-month-nav{width:100%;justify-content:space-between}
 .shift-month-nav strong{min-width:0;font-size:16px}
 .shift-calendar-card{padding:10px}
 .shift-week-head,.shift-month-grid{gap:3px}
 .shift-week-head b{font-size:11px}
 .shift-month-grid .shift-month-day{min-height:82px;padding:5px 3px;gap:4px;border-radius:7px}
 .shift-day-number{font-size:15px}
 .shift-day-name{font-size:10px}
 .shift-month-day small{font-size:9px}
}

.admin-hub-section{margin:24px 0}
.admin-hub-section h2{font-size:18px;margin:0 0 10px}
.admin-hub-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:12px}
.admin-hub-link{position:relative;display:flex;flex-direction:column;gap:6px;text-align:left;min-height:100px;padding:18px 40px 18px 18px;background:#fff;color:#172033;border:1px solid #dce3ec;border-radius:14px}
.admin-hub-link strong{font-size:17px;color:var(--primary,#1f4e78)}
.admin-hub-link span{font-size:14px;font-weight:400;line-height:1.4;color:#64748b}
.admin-hub-link>b{position:absolute;right:16px;top:50%;transform:translateY(-50%);font-size:24px}
@media(max-width:600px){.admin-hub-grid{grid-template-columns:1fr}.admin-hub-link{min-height:88px;padding:16px 38px 16px 16px}}

/* Controles de fichaje adaptados al ancho disponible */
#app,.shell,#content{min-width:0;width:100%}
.shell>*{min-width:0}
.v2-clock-menu{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:18px}
.table-scroll{width:100%;max-width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}
.table-scroll table{width:100%;border-collapse:collapse;font-size:.88rem}
.table-scroll th,.table-scroll td{padding:11px 12px;text-align:left;border-bottom:1px solid #e5eaf0;white-space:nowrap}
.table-scroll th{background:#f8fafc;font-size:.78rem;color:#475467}
.period{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
#content>.card{margin-bottom:14px}
@media(max-width:600px){
 .title-row:has(#v2-admin-date){flex-direction:column;align-items:stretch}
 #v2-admin-date{min-width:0;max-width:100%;width:100%}
 .v2-clock-menu{gap:6px}
 .v2-clock-menu button{padding:10px 12px}
 .period{grid-template-columns:1fr}
 .table-scroll th,.table-scroll td{padding:10px}
 .actions{flex-wrap:wrap}
}

/* Calendario de control: cuadrícula independiente de otros calendarios */
#v2c-grid .calendar{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:6px;width:100%;min-width:0;margin:16px 0}
#v2c-grid .dow{display:block;min-height:0;padding:6px 0;text-align:center;font-size:.8rem;font-weight:700;color:#667085}
#v2c-grid .day{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;width:100%;min-width:0;min-height:64px;padding:8px 3px;background:#f8fafc;color:#172033;border:1px solid #dbe4ee;border-radius:10px;font-size:1rem}
#v2c-grid .day.empty{visibility:hidden}
#v2c-grid .dot{display:block;width:12px;height:12px;flex:none;border-radius:50%;padding:0;margin:0}
#v2c-grid .dot.green{background:#26865f}
#v2c-grid .dot.red{background:#d92d20}
#v2c-grid .dot.gray{background:#cbd5e1}
@media(max-width:600px){
 .title-row:has(#v2c-month){flex-direction:column;align-items:stretch;gap:8px}
 #v2c-month{width:100%;min-width:0;max-width:100%}
 #v2c-grid .calendar{gap:4px}
 #v2c-grid .day{min-height:56px;font-size:.9rem}
}

/* Vacaciones en Mis turnos: conserva la planificación original. */
.shift-month-grid .shift-month-day.vacation-approved{background:#fff1f2;border-color:#e11d48}
.shift-month-grid .shift-month-day.vacation-pending{background:#fffbeb;border-color:#d97706}
.shift-vacation-label{display:block;font-size:11px;line-height:1.25;font-weight:750;color:#9f1239;overflow-wrap:anywhere}
.vacation-pending .shift-vacation-label{color:#92400e}

/* Shared document presentation for all printable reports. */
.vp-report-sheet{box-sizing:border-box;width:210mm;max-width:100%;margin:24px auto;padding:17mm 15mm;background:#fff;color:#20252b;border:1px solid #e2e5e8;border-radius:0;box-shadow:0 3px 18px #19232c0c;font:13px/1.45 Arial,Helvetica,sans-serif}
.vp-report-sheet *{box-sizing:border-box}
.vp-report-sheet .vp-report-header{position:static;display:flex;align-items:center;justify-content:flex-start;gap:16px;background:#fff;color:#20252b;padding:0 0 18px;border-bottom:2px solid #303841}
.vp-report-logo{width:56px;height:56px;object-fit:contain}
.vp-report-company{font-size:14px;font-weight:700;margin:0 0 6px;color:#464e58}
.vp-report-sheet h1{font-size:25px;line-height:1.15;letter-spacing:-.4px;margin:0;font-weight:700;color:#161a1f}
.vp-report-meta{display:grid;grid-template-columns:1.25fr 1fr 1fr;gap:14px;margin:18px 0 25px;padding-bottom:16px;border-bottom:1px solid #dce0e4}
.vp-report-meta div{min-width:0}.vp-report-meta dt{font-size:10px;text-transform:uppercase;letter-spacing:.7px;color:#616a74;margin-bottom:5px}.vp-report-meta dd{margin:0;font-size:12px;overflow-wrap:anywhere}
.vp-report-sheet .card{border:0;border-radius:0;box-shadow:none;padding:0;margin:22px 0;background:#fff}
.vp-report-sheet h2{font-size:16px;margin:22px 0 12px;color:#222930}.vp-report-sheet h3{font-size:13px;margin:18px 0 10px}
.vp-report-sheet .title-row{align-items:flex-start;gap:8px;flex-wrap:wrap}
.vp-report-sheet .title-row p{margin:0 0 10px}.vp-report-sheet .muted{color:#59616b}
.vp-report-sheet .table-scroll,.vp-report-sheet .table-wrap,.vp-report-sheet .report-table-wrap{width:100%;overflow:visible}
.vp-report-sheet table,.vp-report-sheet .report-table{width:100%;border-collapse:collapse;table-layout:auto;font-size:10.5px;line-height:1.4}
.vp-report-sheet th,.vp-report-sheet td,.vp-report-sheet .report-table th,.vp-report-sheet .report-table td{white-space:normal;overflow-wrap:anywhere;padding:9px 6px;border-bottom:1px solid #dce0e4;text-align:left;vertical-align:top}
.vp-report-sheet th,.vp-report-sheet .report-table th{background:#f1f3f5;color:#303841;text-transform:none;letter-spacing:0;font-size:10px;font-weight:700;border-top:1px solid #c6ccd2;border-bottom:1px solid #c6ccd2}
.vp-report-sheet tbody tr:nth-child(even){background:#fafbfc}
.vp-report-sheet .stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin:0 0 22px}
.vp-report-sheet .stat{border:1px solid #dce0e4;padding:10px;border-radius:0;background:#fff;box-shadow:none}.vp-report-sheet .stat span{font-size:10px;color:#59616b}.vp-report-sheet .stat strong{font-size:18px;margin-top:5px;color:#222930}
.vp-report-sheet .info-list>div{padding:8px 0;font-size:11px}
.vp-report-sheet .status{display:inline;padding:0;border-radius:0;background:transparent!important;color:#303841!important;font-size:inherit;font-weight:400}
.vp-report-sheet .validation{padding:10px 12px;border:1px solid #dce0e4;border-left:3px solid #79838e;border-radius:0;background:#f8f9fa;color:#303841;font-size:11px}
.vp-report-sheet .small-note{font-size:10px;line-height:1.5}
.vp-report-sheet .vp-report-footer{display:flex;justify-content:space-between;gap:12px;border-top:1px solid #c6ccd2;padding-top:10px;margin-top:28px;font-size:9px;color:#616a74}
#vp-print-root{display:none}
@media(max-width:700px){.vp-report-sheet{padding:22px 14px;margin:16px auto}.vp-report-meta{grid-template-columns:1fr;gap:10px}.vp-report-sheet .table-scroll,.vp-report-sheet .table-wrap,.vp-report-sheet .report-table-wrap{overflow-x:auto}.vp-report-sheet table{min-width:540px}.vp-report-sheet .stats{grid-template-columns:repeat(2,minmax(0,1fr))}}
@page{size:A4 portrait;margin:14mm}
@media print{
 html:has(body.vp-print-report),body.vp-print-report{background:#fff!important;min-width:0!important;margin:0!important;padding:0!important}
 body.vp-print-report>:not(#vp-print-root){display:none!important}
 body.vp-print-report>#vp-print-root{display:block!important;margin:0!important;padding:0!important}
 #vp-print-root .vp-report-sheet{width:100%!important;max-width:none!important;padding:0!important;margin:0!important;border:0!important;box-shadow:none!important;font-size:10pt}
 #vp-print-root .vp-report-header{position:static!important;background:#fff!important;color:#20252b!important}
 #vp-print-root .vp-report-meta{display:grid!important;grid-template-columns:1.25fr 1fr 1fr!important}
 #vp-print-root .vp-report-sheet table{min-width:0!important;width:100%!important;font-size:8pt!important}
 #vp-print-root .vp-report-sheet th,#vp-print-root .vp-report-sheet td{font-size:8pt!important;padding:6px 4px!important}
 #vp-print-root .table-scroll,#vp-print-root .table-wrap,#vp-print-root .report-table-wrap{overflow:visible!important}
 #vp-print-root .vp-report-sheet .stats{grid-template-columns:repeat(3,minmax(0,1fr))!important}
 #vp-print-root thead{display:table-header-group}
 #vp-print-root tr{break-inside:avoid;page-break-inside:avoid}
 #vp-print-root h1,#vp-print-root h2,#vp-print-root h3,#vp-print-root .vp-report-header{break-after:avoid;page-break-after:avoid}
 #vp-print-root .vp-report-header,#vp-print-root .vp-report-meta,#vp-print-root .stat,#vp-print-root .vp-report-footer{break-inside:avoid}
 #vp-print-root button,#vp-print-root input,#vp-print-root select,#vp-print-root textarea{display:none!important}
 #vp-print-root .vp-report-footer{position:static!important}
}

.vp-report-sheet .stats>.stat{margin:0}.vp-report-sheet th,.vp-report-sheet .report-table th{overflow-wrap:normal;word-break:normal}
@page{@bottom-right{content:"Página " counter(page) " de " counter(pages);font:8pt Arial,sans-serif;color:#616a74}}
