:root{--blue:#276486;--dark:#17384b;--bg:#f3f6f8;--line:#dce5ea;--muted:#607582;--white:#fff;--green:#e4f6ed;--red:#ffebeb;--yellow:#fff4d9}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:#182b36;font:15px/1.45 system-ui,-apple-system,Segoe UI,Roboto,Arial,sans-serif}header{background:linear-gradient(120deg,var(--dark),var(--blue));color:#fff;padding:22px max(18px,calc((100% - 1400px)/2));}header h1{margin:0;font-size:clamp(22px,3vw,32px)}header p{margin:5px 0 0;color:#e2edf3}.wrap{max-width:1400px;margin:auto;padding:18px}.toolbar,.panel,.stat{background:white;border:1px solid var(--line);border-radius:14px;padding:16px;box-shadow:0 3px 12px #18384b08}.toolbar{display:flex;gap:9px;flex-wrap:wrap;align-items:center;margin-bottom:14px}.toolbar .grow{flex:1}button,.filebtn{border:0;border-radius:9px;background:var(--blue);color:white;padding:10px 14px;font-weight:650;cursor:pointer;font-size:14px}button.secondary,.filebtn.secondary{background:#eaf1f5;color:var(--dark);border:1px solid var(--line)}button.danger{background:#a83e3e}button:hover,.filebtn:hover{filter:brightness(.96)}input,select{font:inherit;padding:9px 10px;border:1px solid #cbd8df;border-radius:8px;background:white;color:#1a2b35;min-width:0}input[type=number]{width:100px}.stats{display:grid;grid-template-columns:repeat(4,minmax(140px,1fr));gap:12px;margin:14px 0}.stat small{color:var(--muted);display:block}.stat strong{font-size:23px;color:var(--dark)}.layout{display:grid;grid-template-columns:330px minmax(0,1fr);gap:14px}.panel h2{font-size:18px;margin:0 0 12px}.formgrid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.field{display:flex;flex-direction:column;gap:5px}.field.full{grid-column:1/-1}.field label{font-size:12px;font-weight:700;color:var(--muted)}.field input{width:100%}.employee-list{margin-top:14px;display:flex;flex-direction:column;gap:7px;max-height:380px;overflow:auto}.emp{border:1px solid var(--line);padding:10px;border-radius:9px;display:flex;justify-content:space-between;gap:8px;align-items:center;cursor:pointer}.emp.active{border-color:var(--blue);background:#edf6fa}.emp small{display:block;color:var(--muted)}.tabletop{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin-bottom:12px}.tabletop h2{margin:0;flex:1}.tablewrap{overflow:auto;border:1px solid var(--line);border-radius:10px}table{border-collapse:separate;border-spacing:0;width:100%;min-width:920px;background:#fff}th,td{padding:8px 9px;border-bottom:1px solid #e5ebef;text-align:left;white-space:nowrap;font-size:13px}th{position:sticky;top:0;background:#eaf1f5;color:#29495a;z-index:1}td input,td select{padding:6px;min-width:65px;width:100%;font-size:13px}td .hours{width:66px}tr:last-child td{border-bottom:0}.badge{display:inline-block;border-radius:20px;padding:3px 8px;font-size:11px;font-weight:700}.ok{background:var(--green);color:#17663e}.abs{background:var(--red);color:#8c3030}.vac{background:var(--yellow);color:#8a5b00}.note{font-size:12px;color:var(--muted);margin-top:10px}.paygrid{display:grid;grid-template-columns:repeat(4,minmax(110px,1fr));gap:10px;margin-top:14px}.paybox{background:#f5f8fa;border-radius:9px;padding:10px}.paybox small{display:block;color:var(--muted)}.paybox strong{font-size:17px}.hidden{display:none!important}.foot{color:var(--muted);font-size:12px;text-align:center;padding:20px}.notice{padding:10px 12px;border-radius:9px;background:#edf6fa;color:#244b60;margin-bottom:12px;font-size:13px}#toast{position:fixed;bottom:18px;left:50%;transform:translateX(-50%);background:#18384b;color:white;padding:11px 16px;border-radius:9px;display:none;z-index:10;box-shadow:0 4px 16px #0002}
@media(max-width:900px){.layout{grid-template-columns:1fr}.stats{grid-template-columns:repeat(2,minmax(0,1fr))}.employee-list{max-height:220px}.paygrid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:480px){.wrap{padding:10px}.toolbar{padding:11px}.stats{gap:8px}.stat{padding:11px}.stat strong{font-size:19px}.formgrid{grid-template-columns:1fr}.field.full{grid-column:auto}.paygrid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media print{body{background:#fff;font-size:10px}header{background:#fff!important;color:#000;padding:0 0 12px;border-bottom:2px solid #222}header p{color:#333}.wrap{max-width:none;padding:8px}.toolbar,.layout>aside,.no-print,.foot{display:none!important}.layout{display:block}.panel,.stat{box-shadow:none;border:0;padding:4px}.stats{grid-template-columns:repeat(4,1fr);margin:6px 0}.stat strong{font-size:14px}.tablewrap{overflow:visible;border:0}table{min-width:0;width:100%;font-size:8px}th,td{font-size:8px;padding:4px;white-space:normal}th{position:static}td input,td select{border:0;padding:0;background:transparent;appearance:none}#printTitle{display:block!important}.paygrid{grid-template-columns:repeat(4,1fr)}.paybox{padding:5px}}
header{display:flex;align-items:center;gap:16px;flex-wrap:wrap}header .brand{flex:1;min-width:220px}.userbar{display:flex;align-items:center;gap:10px;flex-wrap:wrap;font-size:13px;color:#e2edf3}.userbar button{background:#ffffff1f;border:1px solid #ffffff44}.syncstate{font-size:12px;padding:3px 9px;border-radius:20px;background:#ffffff1f}.syncstate.error{background:#a83e3e}
.auth{max-width:430px;margin:40px auto;padding:0 14px}.auth .panel{padding:22px}.auth h2{margin:0 0 6px;font-size:21px}.auth p.sub{margin:0 0 16px;color:var(--muted);font-size:14px}.auth form{display:flex;flex-direction:column;gap:12px}.auth .field input{width:100%}.auth button[type=submit]{width:100%;padding:12px}.auth .links{display:flex;justify-content:space-between;gap:10px;flex-wrap:wrap;margin-top:14px;font-size:13px}.linkbtn{background:none!important;border:0;color:var(--blue)!important;padding:0;font-weight:600;text-decoration:underline;cursor:pointer}.msg{padding:10px 12px;border-radius:9px;font-size:13px;margin-bottom:12px}.msg.error{background:var(--red);color:#7a2525}.msg.info{background:#edf6fa;color:#244b60}.msg.ok{background:var(--green);color:#17663e}.msg code{background:#fff8;padding:1px 4px;border-radius:4px}.loading{text-align:center;color:var(--muted);padding:60px 0}button:disabled{opacity:.55;cursor:not-allowed}
@media print{.auth,.userbar,#legacyNotice{display:none!important}}
.rolebadge{display:inline-block;background:#edf6fa;color:#244b60;border-radius:18px;padding:5px 10px;font-size:12px;font-weight:700}.subpanel{margin-top:14px;padding:14px;box-shadow:none}.subpanel h2{margin-bottom:10px}.subpanel .note{margin-bottom:0}.loss-list{display:flex;flex-direction:column;gap:7px;margin-top:12px}.lossitem{display:flex;align-items:center;gap:10px;flex-wrap:wrap;border:1px solid var(--line);padding:9px;border-radius:8px}.lossitem small{color:var(--muted)}.lossitem button{margin-left:auto;padding:6px 10px;font-size:12px}

.notification-panel{margin:0 0 14px}.notification-item{display:flex;align-items:center;justify-content:space-between;gap:12px;border-bottom:1px solid var(--line);padding:12px 4px}.notification-item:last-child{border-bottom:0}.notification-item p{margin:4px 0}.notification-item .notification-message{white-space:pre-wrap;overflow-wrap:anywhere;line-height:1.5}.notification-item small{color:var(--muted)}.notification-item.read{opacity:.72}#adminNotifications span{display:inline-block;min-width:20px;text-align:center;background:var(--blue);color:white;border-radius:99px;padding:0 5px;font-size:12px}

/* Barra organizada y adaptable para pantallas táctiles */
header{padding-left:max(16px,calc((100% - 1400px)/2));padding-right:max(16px,calc((100% - 1400px)/2));}
.userbar{max-width:100%;}
.toolbar{display:flex;flex-direction:column;align-items:stretch;gap:12px;padding:14px;margin-bottom:14px;}
.toolbar-row{display:flex;align-items:center;justify-content:space-between;gap:12px;min-width:0;}
.toolbar-group{display:flex;align-items:center;gap:8px;flex-wrap:wrap;min-width:0;}
.toolbar-caption,.month-picker label{font-weight:650;color:var(--muted);}
.company-picker select{min-width:150px;max-width:260px;}
.company-actions{justify-content:flex-end;}
.primary-actions button,.primary-actions .filebtn{white-space:nowrap;}
.month-picker{margin-left:auto;}
.toolbar button,.toolbar .filebtn{min-height:42px;display:inline-flex;align-items:center;justify-content:center;white-space:nowrap;}
#notificationCount{margin-left:3px;}
.tabletop select{min-width:160px;}
.tablewrap{-webkit-overflow-scrolling:touch;overscroll-behavior-x:contain;}
button,.filebtn,select,input{touch-action:manipulation;}
@media(max-width:900px){header{padding:18px;}.userbar{flex:1 1 100%;justify-content:flex-start;}.toolbar-row{align-items:flex-start;flex-wrap:wrap;}.company-actions{justify-content:flex-start;}.month-picker{margin-left:0;}}
@media(max-width:600px){
 body{font-size:16px;padding-bottom:env(safe-area-inset-bottom);}
 header{padding:16px max(14px,env(safe-area-inset-left));gap:12px;}
 header .brand{min-width:0;flex:1 1 100%;}
 header h1{font-size:26px;}
 .userbar{gap:7px;font-size:13px;}
 #userEmail{overflow-wrap:anywhere;max-width:100%;}
 .userbar button{min-height:42px;}
 .wrap{padding:10px max(10px,env(safe-area-inset-left));}
 .toolbar{padding:12px;gap:10px;border-radius:12px;}
 .toolbar-row{display:grid;grid-template-columns:minmax(0,1fr);gap:10px;}
 .toolbar-group{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;width:100%;}
 .company-picker{grid-template-columns:auto minmax(0,1fr);align-items:center;}
 .company-picker select{width:100%;max-width:none;min-width:0;}
 .company-picker .rolebadge{grid-column:1/-1;justify-self:start;}
 .toolbar button,.toolbar .filebtn{width:100%;min-width:0;min-height:44px;padding:9px 8px;text-align:center;white-space:normal;line-height:1.2;font-size:13px;}
 .month-picker{display:grid;grid-template-columns:auto minmax(0,1fr);align-items:center;}
 .month-picker input{width:100%;min-height:44px;}
 .stats{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;}
 .stat{min-width:0;padding:12px;}
 .stat small{font-size:12px;}
 .stat strong{font-size:19px;overflow-wrap:anywhere;}
 .layout{grid-template-columns:minmax(0,1fr);}
 .layout>.panel{min-width:0;padding:14px;}
 .tabletop{align-items:stretch;}
 .tabletop h2{flex:1 1 100%;}
 .tabletop label{align-self:center;}
 .tabletop select{flex:1;min-width:0;}
 .tabletop button{flex:1 1 100%;min-height:44px;}
 .tablewrap{max-width:100%;}
 table{min-width:760px;}
 input,select{font-size:16px;min-height:42px;}
 .formgrid{grid-template-columns:repeat(2,minmax(0,1fr));}
 .field.full{grid-column:1/-1;}
 .paygrid{grid-template-columns:repeat(2,minmax(0,1fr));}
 #toast{width:calc(100% - 24px);bottom:max(12px,env(safe-area-inset-bottom));text-align:center;}
}
/* Softer corners for information surfaces and actionable inbox notices. */
.stat,.paybox,.payroll-total-card,.performance-metric,.tools-card,.notification-item,.notes-empty{border-radius:16px}
.notification-item{align-items:flex-start;padding:13px;border:1px solid var(--line);margin:8px 0;background:var(--surface,#fff)}
.notification-item.read{opacity:.82}
.notification-copy{flex:1 1 220px;min-width:0}
.notification-actions{display:flex;flex:0 0 auto;flex-wrap:wrap;justify-content:flex-end;gap:6px}
.notification-actions button{min-height:34px;padding:7px 10px;border-radius:10px;font-size:12px}
.notification-actions button.danger{background:#a74444;border-color:#a74444;color:#fff}
html[data-theme="dark"] .notification-item{background:#1b303a;border-color:#405d69}
html[data-theme="dark"] .notification-actions button.danger{background:#9f3e43;border-color:#c96f73;color:#fff}
@media(max-width:600px){.notification-item{display:grid;grid-template-columns:minmax(0,1fr);gap:10px}.notification-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));width:100%}.notification-actions button{width:100%;min-width:0}.notification-actions button:last-child{grid-column:1/-1}}
@media(max-width:360px){.toolbar-group{grid-template-columns:minmax(0,1fr);}.company-picker{grid-template-columns:1fr;}.company-picker .rolebadge{grid-column:auto;}.formgrid{grid-template-columns:minmax(0,1fr);}.field.full{grid-column:auto;}}

/* Formularios internos: funcionan aunque el navegador bloquee prompt/confirm */
.dialog-open{overflow:hidden;}
.dialog-backdrop{position:fixed;inset:0;z-index:30;display:grid;place-items:center;padding:20px;background:#102b3bcc;}
.dialog-backdrop.hidden{display:none!important;}
.dialog-card{width:min(100%,440px);max-height:calc(100dvh - 32px);overflow:auto;padding:22px;border:1px solid var(--line);border-radius:16px;background:#fff;box-shadow:0 18px 60px #102b3b40;}
.dialog-card h2{margin:0 0 6px;font-size:21px;}
.dialog-card>p{margin:0 0 18px;color:var(--muted);font-size:14px;}
.dialog-card .field{margin:12px 0;}
.dialog-card input,.dialog-card select{width:100%;min-height:46px;}
.dialog-actions{display:flex;justify-content:flex-end;gap:9px;margin-top:20px;}
.dialog-actions button{min-width:100px;min-height:44px;}
@media(max-width:600px){.dialog-backdrop{padding:12px max(12px,env(safe-area-inset-left));}.dialog-card{padding:18px;border-radius:14px;}.dialog-actions button{flex:1;}}

/* Paleta OnBloo y ajustes finales para Windows, macOS, iOS y Android */
:root{--blue:#0b5471;--dark:#07394d;--bg:#f4f8fa;--line:#d5e2e9;--muted:#797c82;--white:#fff;--green:#e8f5ee;--red:#fff0ef;--yellow:#fff6df;--oc-sky:#85b7d6;--oc-ice:#eaf4f9;--oc-ink:#17384b;}
html{min-width:320px;scroll-behavior:smooth;-webkit-text-size-adjust:100%;text-size-adjust:100%;}
body{min-width:320px;background:var(--bg);color:#18313e;font-family:system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Arial,sans-serif;}
header{background:linear-gradient(120deg,#0b5471 0%,#0b5471 76%,#246e8b 100%);border-bottom:4px solid var(--oc-sky);}
button,.filebtn{background:var(--blue);color:#fff;transition:background-color .15s ease,box-shadow .15s ease,transform .15s ease;}
button.secondary,.filebtn.secondary{background:var(--oc-ice);border-color:#c8dce7;color:#0b5471;}
button.danger{background:#934744;color:#fff;}
button:hover,.filebtn:hover{filter:none;background:#08455d;}
button.secondary:hover,.filebtn.secondary:hover{background:#d8eaf3;}
button:focus-visible,.filebtn:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid #85b7d6;outline-offset:2px;}
input,select{border-color:#c3d3dc;color:#17384b;background:#fff;}
.panel,.stat,.toolbar{border-color:var(--line);box-shadow:0 4px 18px #0b54710b;}
.toolbar{gap:14px;}
.toolbar-group{gap:8px;}
.toolbar-caption,.month-picker label{color:#536d7a;}
.rolebadge,.notice{background:#e7f2f7;color:#0b5471;}
.stats .stat{border-top:3px solid #85b7d6;}
.tablewrap{border-color:#cbdce5;}
th{background:#e7f1f6;color:#0b5471;}
.payroll-overview{margin-top:16px;padding:18px;border-color:#c7dce7;background:#fff;}
.section-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:14px;}
.section-heading h2{margin:0 0 3px;}
.section-heading p{margin:0;color:var(--muted);font-size:13px;}
.period-pill{display:inline-flex;align-items:center;min-height:34px;padding:6px 12px;border-radius:99px;background:#e7f2f7;color:#0b5471;font-size:13px;font-weight:700;text-transform:capitalize;}
.paygrid{grid-template-columns:repeat(4,minmax(0,1fr));}
.paybox{min-width:0;border:1px solid #e1eaf0;background:#f7fafc;}
.paybox strong{color:#0b5471;overflow-wrap:anywhere;}
.paybox-total{background:#e8f3f8;border-color:#85b7d6;}
.paybox-total strong{font-size:22px;color:#0b5471;}
.payroll-admin-only.subpanel{border-color:#d5e2e9;}
.employee-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px;}
.employee-actions button{min-height:42px;}
.tablewrap{-webkit-overflow-scrolling:touch;overscroll-behavior-x:contain;}
#attendanceTable{min-width:760px;}
#attendanceTable td select.hours{min-width:85px;min-height:38px;padding:5px 8px;}
#attendanceTable td select:disabled{background:#f1f4f6;color:#797c82;opacity:1;}
.payroll-note{padding:12px 14px;border-left:4px solid #85b7d6;background:#eaf4f9;border-radius:0 9px 9px 0;}
@media(max-width:1024px){.paygrid{grid-template-columns:repeat(3,minmax(0,1fr));}}
@media(max-width:700px){.paygrid{grid-template-columns:repeat(2,minmax(0,1fr));}.section-heading{align-items:flex-start;flex-direction:column;}.layout{grid-template-columns:minmax(0,1fr);}.layout>*{min-width:0;}}
@media(max-width:480px){
 header{padding:16px max(14px,env(safe-area-inset-right)) 16px max(14px,env(safe-area-inset-left));align-items:flex-start;gap:12px;flex-wrap:wrap;}
 .userbar{width:100%;max-width:100%;flex-wrap:wrap;gap:8px;}
 .userbar>*{min-width:0;}
 .wrap{padding:10px max(10px,env(safe-area-inset-right)) 10px max(10px,env(safe-area-inset-left));}
 .toolbar-group{grid-template-columns:repeat(2,minmax(0,1fr));}
 .stats{grid-template-columns:repeat(2,minmax(0,1fr));}
 .payroll-overview{padding:14px;}
 .paygrid{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;}
 .paybox{padding:10px;}
 .paybox small{font-size:11px;line-height:1.3;}
 .paybox strong{font-size:16px;}
 .paybox-total strong{font-size:19px;}
 .employee-actions>*{flex:1 1 100%;}
 .tabletop button{width:100%;}
 .tablewrap{max-width:100%;}
 input,select{font-size:16px;}
 .tabletop select{min-width:0;width:100%;}
}
@media(max-width:360px){.toolbar-group,.paygrid,.stats{grid-template-columns:minmax(0,1fr);}.company-picker{grid-template-columns:1fr;}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{scroll-behavior:auto!important;transition:none!important;}}

/* Barra más compacta: reserva espacio para los controles de empresa y mes. */
.toolbar{gap:10px;padding:12px;}
.toolbar-row{gap:8px;}
.toolbar-group{gap:6px;}
.toolbar button,.toolbar .filebtn{min-height:36px;padding:6px 10px;font-size:13px;border-radius:8px;}
.toolbar .company-picker select{min-height:36px;padding:6px 9px;}
@media(max-width:480px){.toolbar button,.toolbar .filebtn{min-height:40px;padding:7px 8px;font-size:12px;}.toolbar-group{gap:6px;}}

/* Ajustes de viewport y área segura para Safari/iOS, Android y macOS. */
html,body{width:100%;max-width:100%;overflow-x:hidden;overflow-x:clip;overscroll-behavior-x:none;}
body{position:relative;}
body{min-height:100vh;min-height:100dvh;}
header{padding-left:max(14px,env(safe-area-inset-left));padding-right:max(14px,env(safe-area-inset-right));}
.wrap{width:100%;padding-left:max(10px,env(safe-area-inset-left));padding-right:max(10px,env(safe-area-inset-right));}
.userbar{min-width:0;}
#userEmail{overflow-wrap:anywhere;}
.layout,.layout>*{min-width:0;}
.section-heading,.tabletop,.toolbar-row,.toolbar-group,.notification-item,.lossitem,.emp{min-width:0;}
.notification-item>div,.emp>*{min-width:0;overflow-wrap:anywhere;}
.lossitem>span{min-width:0;overflow-wrap:anywhere;}
.tablewrap{display:block;width:100%;max-width:100%;overflow-x:auto;overflow-y:hidden;overscroll-behavior-x:contain;overscroll-behavior-y:auto;-webkit-overflow-scrolling:touch;touch-action:pan-x pan-y;scrollbar-width:thin;}
#attendanceTable{width:max(100%,760px);}
.table-scroll-hint{display:none;margin:0 0 8px;color:var(--muted);font-size:12px;}
.auth{width:100%;max-width:460px;padding-left:max(14px,env(safe-area-inset-left));padding-right:max(14px,env(safe-area-inset-right));}
.dialog-backdrop{padding:max(12px,env(safe-area-inset-top)) max(12px,env(safe-area-inset-right)) max(12px,env(safe-area-inset-bottom)) max(12px,env(safe-area-inset-left));}
.dialog-card{max-height:calc(100vh - 24px);max-height:calc(100dvh - max(24px,env(safe-area-inset-top)) - max(24px,env(safe-area-inset-bottom)));overscroll-behavior:contain;-webkit-overflow-scrolling:touch;}

/* Selector visual para generar informes por mes o quincena */
.report-period-card{width:min(100%,700px);padding:26px;}
.report-period-eyebrow{display:block;margin-bottom:7px;color:var(--muted);font-size:11px;font-weight:750;letter-spacing:.11em;}
.report-period-card>p{max-width:54ch;margin-bottom:20px;}
.report-period-options{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:11px;margin:0;padding:0;border:0;}
.report-period-option{position:relative;display:flex;min-height:150px;flex-direction:column;align-items:flex-start;gap:8px;padding:15px;border:1px solid #cbdce5;border-radius:12px;background:#fff;cursor:pointer;transition:border-color .16s ease,background .16s ease,box-shadow .16s ease;}
.report-period-option:hover{border-color:var(--oc-sky);background:#f8fbfd;}
.report-period-option.selected{border:2px solid var(--blue);padding:14px;background:var(--oc-ice);box-shadow:0 0 0 3px #85b7d622;}
.report-period-option:focus-within{outline:3px solid #85b7d688;outline-offset:2px;}
.report-period-option input[type=radio]{position:absolute;width:1px;height:1px;margin:0;opacity:0;}
.period-option-kicker{display:inline-flex;min-height:25px;align-items:center;padding:3px 8px;border-radius:7px;background:#eaf1f5;color:#526976;font-size:11px;font-weight:750;letter-spacing:.04em;}
.report-period-option.selected .period-option-kicker{background:var(--blue);color:#fff;}
.report-period-option strong{color:var(--dark);font-size:15px;line-height:1.25;}
.report-period-option small{color:var(--muted);font-size:12px;line-height:1.4;}
@media(max-width:600px){.report-period-card{width:100%;max-width:100%;padding:20px 17px;}.report-period-options{grid-template-columns:minmax(0,1fr);gap:8px;width:100%;}.report-period-option{width:100%;min-width:0;min-height:0;display:grid;grid-template-columns:minmax(0,104px) minmax(0,1fr);column-gap:11px;row-gap:3px;align-items:center;padding:11px 12px;}.report-period-option.selected{padding:10px 11px;}.period-option-kicker{grid-row:1/3;align-self:center;justify-self:start;box-sizing:border-box;width:100%;min-width:0;max-width:100%;justify-content:center;text-align:center;white-space:normal;overflow-wrap:anywhere;line-height:1.2;}.report-period-option strong,.report-period-option small{grid-column:2;min-width:0;overflow-wrap:anywhere;}.report-period-option strong{font-size:14px;}.report-period-option small{font-size:11px;}}
@media print{@page{size:Letter portrait;margin:0.35in}}
.report-preview-dialog{padding:12px;}
.report-preview-panel{display:flex;width:min(100%,1500px);height:calc(100vh - 24px);height:calc(100dvh - 24px);flex-direction:column;overflow:hidden;border:1px solid #cbdce5;border-radius:14px;background:#f3f6f8;box-shadow:0 18px 60px #102b3b40;}
.report-preview-topbar{display:flex;min-height:62px;align-items:center;justify-content:space-between;gap:14px;padding:9px 14px;background:#fff;border-bottom:1px solid #d5e2e9;}
.report-preview-topbar strong,.report-preview-topbar small{display:block;}
.report-preview-topbar strong{color:#17384b;font-size:14px;}
.report-preview-topbar small{margin-top:3px;color:#797c82;font-size:11px;}
.report-preview-actions{display:flex;align-items:center;justify-content:flex-end;gap:8px;}
.report-preview-actions button{min-height:38px;padding:8px 12px;white-space:nowrap;}
.report-preview-content{flex:1;min-height:0;overflow:auto;padding:24px;background:#fff;color:#17384b;font:8.5pt/1.3 Arial,sans-serif;}
.report-preview-content .cover{display:block;min-width:0;margin-bottom:10px;padding:0 0 8px;border:0;border-bottom:3px solid #85b7d6;border-radius:0;background:#fff!important;color:#17384b;}
.report-preview-content .cover .eyebrow{margin:0 0 3px;color:#797c82;font-size:8pt;font-weight:bold;letter-spacing:1.2px;text-transform:uppercase;}
.report-preview-content .cover h1{margin:0;color:#0b5471;font-size:18pt;}
.report-preview-content .cover p{margin:3px 0;color:#797c82;}
.report-preview-content h2{margin:14px 0 6px;color:#0b5471;font-size:12pt;page-break-after:avoid;}
.report-preview-content h3{margin:9px 0 4px;color:#0b5471;font-size:9.5pt;page-break-after:avoid;}
.report-preview-content .employee{page-break-before:always;}
.report-preview-content .employee h2{padding:6px 8px;border-left:4px solid #0b5471;background:#eaf4f9;}
.report-preview-content table{width:100%;min-width:0;margin:5px 0 9px;border-collapse:collapse;table-layout:fixed;}
.report-preview-content th,.report-preview-content td{padding:3px 5px;border:1px solid #cbdce5;text-align:left;vertical-align:top;white-space:normal;overflow-wrap:anywhere;font-size:8pt;}
.report-preview-content .summary-table th:nth-child(1),.report-preview-content .summary-table td:nth-child(1){width:17%;}
.report-preview-content .summary-table th:nth-child(2),.report-preview-content .summary-table td:nth-child(2){width:12%;}
.report-preview-content .summary-table th:nth-child(3),.report-preview-content .summary-table td:nth-child(3){width:14%;}
.report-preview-content .summary-table th:nth-child(4),.report-preview-content .summary-table td:nth-child(4){width:17%;}
.report-preview-content .summary-table th:nth-child(5),.report-preview-content .summary-table td:nth-child(5){width:25%;}
.report-preview-content .summary-table th:nth-child(6),.report-preview-content .summary-table td:nth-child(6){width:15%;}
.report-preview-content .summary-table-5 th:nth-child(1),.report-preview-content .summary-table-5 td:nth-child(1){width:20%;}
.report-preview-content .summary-table-5 th:nth-child(2),.report-preview-content .summary-table-5 td:nth-child(2){width:14%;}
.report-preview-content .summary-table-5 th:nth-child(3),.report-preview-content .summary-table-5 td:nth-child(3){width:17%;}
.report-preview-content .summary-table-5 th:nth-child(4),.report-preview-content .summary-table-5 td:nth-child(4){width:21%;}
.report-preview-content .summary-table-5 th:nth-child(5),.report-preview-content .summary-table-5 td:nth-child(5){width:28%;}
.report-preview-content th{background:#0b5471;color:#fff;}
.report-preview-content tbody tr:nth-child(even){background:#f4f8fa;}
.report-preview-content .pay-total{background:#e8f3f8;font-weight:bold;}
.report-preview-content .empty{text-align:center;color:#797c82;}
.report-preview-content .foot{margin-top:14px;padding-top:6px;border-top:1px solid #d5e2e9;color:#797c82;font-size:7.5pt;}
@media(max-width:600px){.report-preview-dialog{padding:0;}.report-preview-panel{width:100%;height:100vh;height:100dvh;border:0;border-radius:0;}.report-preview-topbar{align-items:flex-start;flex-direction:column;padding:10px 12px;}.report-preview-actions{width:100%;}.report-preview-actions button{flex:1;white-space:normal;font-size:12px;}.report-preview-content{padding:14px;}}
@page{size:Letter portrait;margin:0.35in;}
@media print{
  body.printing-report{overflow:visible!important;background:#fff!important;}
  body.printing-report>*:not(#reportPreviewDialog){display:none!important;}
  body.printing-report #reportPreviewDialog{position:static!important;inset:auto!important;display:block!important;width:auto!important;height:auto!important;padding:0!important;background:#fff!important;z-index:auto!important;}
  body.printing-report .report-preview-panel{display:block!important;width:auto!important;height:auto!important;max-width:none!important;overflow:visible!important;border:0!important;border-radius:0!important;box-shadow:none!important;background:#fff!important;}
  body.printing-report .report-preview-topbar{display:none!important;}
  body.printing-report .report-preview-content{display:block!important;height:auto!important;max-height:none!important;overflow:visible!important;padding:0!important;}
  body.printing-report .report-preview-content .employee{break-before:page;page-break-before:always;}
  body.printing-report .report-preview-content table{break-inside:auto;page-break-inside:auto;}
  body.printing-report .report-preview-content tr{break-inside:avoid;page-break-inside:avoid;}
}
input,select,textarea{max-width:100%;}
img,svg,canvas,video{max-width:100%;}
@media(max-width:600px){
 body{padding-bottom:max(10px,env(safe-area-inset-bottom));}
 header{padding-top:max(14px,env(safe-area-inset-top));}
 .wrap{padding-top:10px;padding-bottom:12px;}
 .table-scroll-hint{display:block;}
 .tabletop{gap:8px;}
 .stats .stat,.paybox{overflow-wrap:anywhere;}
 .auth{margin:20px auto;}
}
@media(max-width:380px){
 .wrap{padding-left:max(8px,env(safe-area-inset-left));padding-right:max(8px,env(safe-area-inset-right));}
 .layout>.panel{padding:12px;}
 .formgrid{grid-template-columns:minmax(0,1fr);}
 .field.full{grid-column:auto;}
 .paygrid,.stats{grid-template-columns:minmax(0,1fr);}
 .toolbar-group{grid-template-columns:minmax(0,1fr);}
 .company-picker{grid-template-columns:minmax(0,1fr);}
 .company-picker .rolebadge{grid-column:auto;}
}
@media(max-height:520px) and (orientation:landscape){
 header{padding-top:10px;padding-bottom:10px;}
 .dialog-backdrop{place-items:start center;overflow-y:auto;}
 .dialog-card{margin:auto 0;}
}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto;}}

/* Selector de mes compacto, manteniendo espacio para su calendario nativo. */
.month-picker{display:flex;align-items:center;gap:7px;flex:0 1 auto;min-width:0;}
.month-picker input[type="month"]{width:176px;max-width:100%;min-width:0;min-height:36px;padding:5px 8px;font-size:13px;}
@media(max-width:600px){.month-picker{display:grid;width:100%;grid-template-columns:auto minmax(0,1fr);}.month-picker input[type="month"]{width:100%;min-height:40px;font-size:15px;}}

/* En teléfonos el selector no debe estirarse para llenar toda la barra. */
@media(max-width:600px){
 .month-picker{display:flex;width:max-content;max-width:100%;justify-self:start;grid-template-columns:none;gap:6px;}
 .month-picker input[type="month"]{width:150px;max-width:calc(100vw - 82px);min-height:36px;padding:4px 6px;font-size:14px;}
}
@media(max-width:380px){.month-picker input[type="month"]{width:138px;max-width:calc(100vw - 78px);min-height:34px;padding:3px 5px;font-size:13px;}}

/* El nombre de empresa y trabajador ocupa todo el ancho antes de los filtros. */
.tabletop h2{flex:1 1 100%;width:100%;min-width:0;line-height:1.3;overflow-wrap:break-word;}

/* Acceso inclusivo, bandeja, calendario personal y notas privadas */
.password-row{display:flex;align-items:stretch;gap:7px;width:100%;}.password-row input{flex:1;min-width:0}.password-toggle{padding:7px 10px;white-space:nowrap}.personal-tools{margin:14px 0}.calendar-nav{display:flex;align-items:center;gap:8px}.calendar-nav strong{min-width:150px;text-align:center;text-transform:capitalize}.calendar-weekdays,.calendar-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:5px}.calendar-weekdays{text-align:center;color:var(--muted);font-size:12px;font-weight:700;margin:8px 0}.calendar-day{position:relative;display:flex;justify-content:center;align-items:center;min-height:42px;padding:5px;background:#fff;border:1px solid var(--line);color:var(--dark)}.calendar-day.selected{background:#0b5471;color:#fff;border-color:#0b5471}.calendar-day.today{outline:2px solid #85b7d6;outline-offset:1px}.calendar-day small{position:absolute;right:4px;top:1px;font-size:10px}.calendar-empty{min-height:42px}.reminder-form{margin-top:14px;padding:12px;background:#f3f8fb;border:1px solid var(--line);border-radius:10px}.reminder-form>strong{display:block;margin-bottom:8px;text-transform:capitalize}.reminder-form .formgrid{margin-bottom:9px}.reminder-list,.private-note-list{display:flex;flex-direction:column;gap:8px;margin-top:12px}.reminder-item,.private-note{display:flex;align-items:flex-start;gap:9px;flex-wrap:wrap;padding:10px;border:1px solid var(--line);border-radius:9px}.reminder-item>div,.private-note>div{flex:1;min-width:0}.reminder-item p,.private-note p{margin:4px 0;overflow-wrap:anywhere}.reminder-item.done{opacity:.65}.private-note small{display:block;color:var(--muted);font-size:11px}.private-note .linkbtn{padding:3px 0}.personal-tools textarea{width:100%;resize:vertical;border:1px solid #cbd8df;border-radius:8px;padding:9px;font:inherit}.personal-tools button{min-height:36px}.calendar-nav button{min-width:38px;padding:5px 10px}
@media(max-width:600px){.calendar-day,.calendar-empty{min-height:38px}.calendar-grid,.calendar-weekdays{gap:3px}.reminder-item>button,.private-note>button.danger{padding:6px 8px;font-size:12px}.calendar-nav strong{min-width:130px}.personal-tools{padding:12px}.password-toggle{font-size:13px}}


/* Calendario compacto y notas visuales */
.calendar-layout{display:grid;grid-template-columns:minmax(270px,360px) minmax(0,1fr);gap:18px;align-items:start}.calendar-main{max-width:380px}.calendar-weekdays,.calendar-grid{gap:4px}.calendar-weekdays{margin:3px 0 7px}.calendar-day,.calendar-empty{min-height:34px}.calendar-day{border-radius:8px;padding:3px;font-size:13px}.calendar-day small{font-size:9px;right:3px}.calendar-hint{font-size:11px;color:var(--muted);margin:8px 0 0}.calendar-side{min-width:0}.reminder-form{margin:0;padding:11px}.reminder-form .formgrid{gap:8px;margin-bottom:8px}.reminder-form input{padding:7px 9px}.reminder-actions{display:flex;gap:7px;flex-wrap:wrap}.reminder-actions button{padding:8px 10px;font-size:12px}.reminder-list{margin-top:8px;gap:6px;max-height:230px;overflow:auto}.reminder-item{display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:6px;padding:8px;align-items:center}.reminder-item strong{font-size:13px}.reminder-item p{font-size:12px;margin:2px 0 0}.reminder-item button{padding:6px 8px;font-size:11px}.notes-layout{display:grid;grid-template-columns:minmax(230px,310px) minmax(0,1fr);gap:14px;align-items:start}.note-composer{padding:14px;border:1px solid #d5e5ed;border-radius:13px;background:linear-gradient(145deg,#f4faff,#eaf4f8)}.note-composer-title{display:flex;gap:10px;align-items:center;margin-bottom:12px}.note-mark,.note-card-mark{display:grid;place-items:center;flex:0 0 38px;width:38px;height:38px;border-radius:12px;background:#0b5471;color:#fff;font-weight:800;font-size:16px}.note-composer-title strong,.note-composer-title small{display:block}.note-composer-title small{font-size:11px;color:var(--muted);margin-top:2px}.note-composer .formgrid{grid-template-columns:minmax(0,1fr);gap:9px}.note-composer .field.full{grid-column:auto}.note-composer textarea{background:#fff;min-height:94px}.note-composer input[type=file]{font-size:12px;background:#fff}.note-composer button{justify-self:start;padding:8px 12px}.private-note-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:10px;margin-top:0}.private-note{display:block;position:relative;min-height:130px;padding:13px;border:1px solid #dce8ee;border-radius:13px;background:#fff;box-shadow:0 3px 12px #17384b0a;overflow:hidden}.private-note:before{content:"";position:absolute;inset:0 auto 0 0;width:4px;background:#85b7d6}.private-note-head{display:flex;align-items:center;gap:9px}.note-card-mark{width:32px;height:32px;flex-basis:32px;border-radius:10px;background:#e5f1f7;color:#0b5471;font-size:13px}.private-note-heading{flex:1;min-width:0}.private-note-heading strong{display:block;overflow-wrap:anywhere}.private-note-heading small{display:block;color:var(--muted);font-size:11px;margin-top:2px}.note-delete{padding:5px 7px!important;font-size:11px!important;background:#f6f8f9!important;color:#607582!important}.private-note>p{font-size:13px;line-height:1.5;margin:12px 0 8px;overflow-wrap:anywhere;white-space:pre-wrap}.private-note .note-empty{color:#98a8b1;font-style:italic}.note-attachment{display:flex;align-items:center;gap:6px;border-top:1px solid #edf1f3;padding-top:7px;color:var(--muted);font-size:11px;min-width:0}.note-attachment .linkbtn{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:100%;text-align:left}.notes-empty{grid-column:1/-1;display:flex;flex-direction:column;gap:4px;justify-content:center;min-height:110px;padding:18px;border:1px dashed #cbdce5;border-radius:12px;color:var(--muted);font-size:13px}.notes-empty strong{color:var(--dark)}
@media(max-width:760px){.calendar-layout{grid-template-columns:minmax(0,1fr)}.calendar-main{max-width:360px;width:100%;margin:0 auto}.calendar-side{width:100%}.notes-layout{grid-template-columns:minmax(0,1fr)}.note-composer{max-width:none}.private-note-list{grid-template-columns:repeat(auto-fit,minmax(min(100%,220px),1fr))}}
@media(max-width:420px){.calendar-day,.calendar-empty{min-height:30px}.calendar-weekdays,.calendar-grid{gap:3px}.calendar-nav strong{min-width:112px}.reminder-item{grid-template-columns:minmax(0,1fr) auto}.reminder-item>[data-reminder-delete]{grid-column:2;grid-row:2}.private-note-list{grid-template-columns:minmax(0,1fr)}}

/* Panel de control compacto y coherente en escritorio, tableta y teléfono */
:root{--blue:#0b5471;--dark:#17384b;--bg:#f4f7f9;--line:#d6e2e9;--muted:#797c82}
body{color:#183442}
.panel,.stat{border-color:#d6e2e9;border-radius:14px;box-shadow:0 3px 14px #0b54710a}
.toolbar{display:flex;flex-direction:column;align-items:stretch;gap:7px;padding:10px 12px;margin-bottom:12px;border:1px solid #d1e0e8;border-radius:13px;background:linear-gradient(180deg,#fff 0%,#fbfdfe 100%);box-shadow:0 3px 14px #0b54710c}
.toolbar-row{display:flex;align-items:center;justify-content:flex-start;gap:9px;min-width:0}
.company-tools{padding-bottom:7px;border-bottom:1px solid #eaf0f3}
.toolbar-group{display:flex;align-items:center;gap:5px;min-width:0}
.company-picker{flex:0 0 auto;gap:8px}
.company-picker select{width:180px;min-width:130px;max-width:220px;min-height:35px;padding:5px 9px;font-size:13px}
.toolbar-caption,.month-picker label{font-size:13px;font-weight:700;color:#536b78}
.company-actions{flex:1 1 auto;justify-content:flex-end}
.work-tools{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:8px}
.primary-actions,.data-actions{gap:5px}
.data-actions{justify-content:flex-start}
.toolbar button,.toolbar .filebtn{min-height:34px;padding:6px 9px;border-radius:8px;font-size:12.5px;line-height:1.15;white-space:nowrap;box-shadow:none}
.toolbar button.secondary,.toolbar .filebtn.secondary{border-color:#d5e3ea;background:#edf4f7;color:#17384b}
.toolbar button.secondary:hover,.toolbar .filebtn.secondary:hover{background:#e2eef3}
.toolbar button.danger{background:#a74444;color:white}
.rolebadge{padding:5px 9px;border-radius:99px;font-size:11px;white-space:nowrap}
.month-picker{margin-left:0;gap:6px;white-space:nowrap}
.month-picker input[type="month"]{width:158px;min-height:34px;padding:4px 7px;font-size:12.5px}
button,.filebtn,input,select,textarea{transition:background-color .15s ease,border-color .15s ease,box-shadow .15s ease}
button:focus-visible,.filebtn:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid #85b7d6;outline-offset:2px}
@media(max-width:1100px){.work-tools{display:flex;flex-wrap:wrap}.data-actions{flex:1 1 100%;order:3}.month-picker{margin-left:auto}}
@media(max-width:850px){.company-tools{flex-wrap:wrap}.company-actions{flex:1 1 100%;justify-content:flex-start}.work-tools{display:flex;flex-wrap:wrap}.primary-actions{order:1}.month-picker{order:2;margin-left:auto}.data-actions{order:3;flex:1 1 100%}.toolbar button,.toolbar .filebtn{white-space:normal;text-align:center}}
@media(max-width:600px){
 .toolbar{gap:7px;padding:9px;border-radius:12px}
 .toolbar-row{display:flex;gap:7px;align-items:center}
 .company-tools{display:grid;grid-template-columns:minmax(0,1fr);padding-bottom:7px}
 .company-picker{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:7px}
 .company-picker select{width:100%;min-width:0;max-width:none}
 .company-picker .rolebadge{justify-self:end}
 .company-actions{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:5px;width:100%}
 .work-tools{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:7px}
 .primary-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:5px}
 .data-actions{display:grid;grid-column:1/-1;grid-template-columns:repeat(3,minmax(0,1fr));gap:5px}
 .toolbar button,.toolbar .filebtn{width:100%;min-width:0;min-height:40px;padding:6px 5px;font-size:12px;line-height:1.15}
 .month-picker{justify-self:end;margin:0;gap:5px}
 .month-picker input[type="month"]{width:145px;max-width:calc(100vw - 85px);min-height:36px;font-size:13px}
 .toolbar-caption,.month-picker label{font-size:12px}
 .rolebadge{font-size:10px;padding:4px 7px}
}
@media(max-width:390px){
 .company-picker{grid-template-columns:1fr auto}
 .toolbar-caption{grid-column:1/-1}
 .company-picker select{grid-column:1}
 .company-picker .rolebadge{grid-column:2;grid-row:2}
 .company-actions{grid-template-columns:repeat(2,minmax(0,1fr))}
 .data-actions{grid-template-columns:repeat(2,minmax(0,1fr))}
 .month-picker input[type="month"]{width:136px;max-width:calc(100vw - 80px)}
}

/* v205 · vista previa de informes con bloques y totales legibles */
.report-preview-content .report-table-group-title{margin:15px 0 6px;padding:0 0 5px;border-bottom:1px solid #cbdce5;color:#0b5471;font-size:10pt;line-height:1.25}
.report-preview-content .payroll-breakout{font-size:7.6pt}
.report-preview-content .payroll-breakout th,.report-preview-content .payroll-breakout td{padding:4px 5px;line-height:1.3}
.report-preview-content .pay-total td{border-top:2px solid #85b7d6;background:#e8f3f8;color:#0b5471;font-weight:800}
.report-preview-content .employee>h2{break-after:avoid-page;page-break-after:avoid}
.report-preview-content .employee h3{break-after:avoid-page;page-break-after:avoid}
@media print{.report-preview-content .payroll-breakout{font-size:7.4pt}.report-preview-content .report-table-group-title{break-after:avoid-page;page-break-after:avoid}}
@page LandscapeReport{size:Letter landscape;margin:0.35in}
.report-preview-content .attendance-matrix,.report-preview-content .fortnight-payroll-table{page:LandscapeReport;break-after:page;page-break-after:always}
.report-preview-content .attendance-matrix table{table-layout:auto;font-size:6.7pt}
.report-preview-content .attendance-matrix .summary-table.payroll-wide-summary{width:100%;min-width:0;max-width:100%;table-layout:auto;font-size:6.7pt}
.report-preview-content .fortnight-payroll-table .summary-table.payroll-wide-summary{width:100%;min-width:0;max-width:100%;table-layout:auto;font-size:7.2pt}
.report-preview-content .attendance-matrix th,.report-preview-content .attendance-matrix td{padding:2.5px 3px;text-align:center}
.report-preview-content .attendance-matrix th:nth-child(-n+3),.report-preview-content .attendance-matrix td:nth-child(-n+3){text-align:left}
.report-preview-content .attendance-matrix th:nth-last-child(-n+2),.report-preview-content .attendance-matrix td:nth-last-child(-n+2){min-width:58px;font-weight:800}
.report-preview-content .fortnight-payroll-table table{font-size:7.2pt}
.report-preview-content .fortnight-payroll-table th,.report-preview-content .fortnight-payroll-table td{padding:4px}
@media(prefers-reduced-motion:reduce){button,.filebtn,input,select,textarea{transition:none}}

/* Gráfico individual de rendimiento basado en asistencias registradas */
.performance-panel{margin:14px 0;padding:14px;border:1px solid #d5e3ea;border-radius:13px;background:linear-gradient(180deg,#fff,#fbfdfe);box-shadow:0 3px 14px #0b54710a}
.performance-heading{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:12px}
.performance-heading h2{margin:0 0 3px;font-size:17px;color:#17384b}
.performance-heading p{margin:0;color:#797c82;font-size:12px}
.performance-heading .period-pill{flex:0 0 auto}
.performance-metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin-bottom:12px}
.performance-metric{min-width:0;padding:9px 10px;border:1px solid #e0e9ee;border-top:3px solid #85b7d6;border-radius:9px;background:#f7fafc}
.performance-metric small{display:block;color:#797c82;font-size:11px;line-height:1.25}
.performance-metric strong{display:block;margin-top:4px;color:#0b5471;font-size:18px;line-height:1.2;overflow-wrap:anywhere}
.performance-chart-scroll{width:100%;max-width:100%;overflow-x:auto;overflow-y:hidden;border:1px solid #e5edf1;border-radius:9px;background:#fff;overscroll-behavior-x:contain;-webkit-overflow-scrolling:touch;scrollbar-width:thin;touch-action:pan-x pan-y}
#performanceChart{display:block;height:208px;min-width:100%;}
.performance-legend{display:flex;flex-wrap:wrap;gap:8px 16px;padding:10px 2px 0;color:#536b78;font-size:11px}
.performance-legend span{display:inline-flex;align-items:center;gap:6px}
.performance-legend i{display:inline-block;width:10px;height:10px;border-radius:3px}
.legend-plan{background:#85b7d6;opacity:.7}.legend-worked{background:#0b5471}.legend-absence{background:#b64b4b}.legend-vacation{background:#85b7d6}.legend-free{background:#797c82}
.performance-note{margin:8px 0 0;color:#797c82;font-size:11px;line-height:1.4}
.performance-empty{grid-column:1/-1;padding:10px 12px;border-radius:8px;background:#f3f7f9;color:#607582;font-size:13px}
@media(max-width:700px){.performance-panel{padding:12px}.performance-metrics{grid-template-columns:repeat(2,minmax(0,1fr));gap:7px}.performance-metric{padding:8px}.performance-heading{align-items:flex-start}.performance-heading h2{font-size:16px}.performance-legend{gap:7px 12px}}
@media(max-width:380px){.performance-heading{flex-direction:column}.performance-heading .period-pill{align-self:flex-start}.performance-metric strong{font-size:16px}}
.performance-scroll-help{display:none;margin:5px 2px 0;color:#797c82;font-size:10px}
@media(max-width:600px){.performance-scroll-help{display:block}}
.lossitem .loss-delete{margin-left:0;padding:6px 9px;font-size:11px;white-space:nowrap}
@media(max-width:600px){.lossitem .loss-delete{margin-left:auto}}
.manager-roster{margin:12px 0;padding:12px;border:1px solid #dce8ee;border-radius:11px;background:#f6fafc}
.manager-roster h3{margin:0 0 8px;color:#17384b;font-size:14px}
.manager-roster-list{display:flex;flex-direction:column;gap:7px}
.manager-account{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:9px 10px;border:1px solid #dce5ea;border-radius:9px;background:#fff}
.manager-account>div{min-width:0}
.manager-account strong,.manager-account small{display:block;overflow-wrap:anywhere}
.manager-account strong{color:#17384b;font-size:13px}
.manager-account small{margin-top:3px;color:#607582;font-size:11px}
.manager-account button{flex:0 0 auto;padding:6px 9px;font-size:11px}.manager-account>div{flex:1}.manager-account{flex-wrap:wrap}
.creator-credit{display:inline-flex;gap:4px;align-items:center;margin-left:8px}
.creator-credit a{color:#0b5471;font-weight:700}
@media(max-width:480px){.manager-account{align-items:flex-start;flex-direction:column}.manager-account button{align-self:flex-end}.creator-credit{display:flex;justify-content:center;margin:5px 0 0}}
.brand{display:flex;align-items:center;gap:0}
.brand-logo{display:block;flex:0 0 52px;width:52px;height:52px;border:1px solid #ffffff40;border-radius:13px;object-fit:cover;background:#000}
.brand-copy{min-width:0}
@media(max-width:600px){.brand-logo{flex-basis:44px;width:44px;height:44px;border-radius:11px}}




/* Modo oscuro seleccionable, con preferencia guardada en este navegador */
.theme-toggle{margin-left:auto;flex:0 0 auto;white-space:nowrap;padding:8px 11px;border:1px solid #ffffff55!important;background:#ffffff18!important;color:#fff!important}
.theme-toggle:hover{background:#ffffff2b!important}
html[data-theme="dark"]{color-scheme:dark;--blue:#4b9bc0;--dark:#d9e8ef;--bg:#101b22;--line:#2d414d;--muted:#a9bbc4;--white:#182630;--green:#173b2c;--red:#48292a;--yellow:#44391d;--oc-ice:#20343f;--oc-ink:#e3edf2}
html[data-theme="dark"] body{background:var(--bg);color:#e2ebf0}
html[data-theme="dark"] .toolbar,
html[data-theme="dark"] .panel,
html[data-theme="dark"] .stat,
html[data-theme="dark"] .dialog-card,
html[data-theme="dark"] .performance-panel,
html[data-theme="dark"] .payroll-overview{background:#182630;color:#e2ebf0;border-color:#2d414d;box-shadow:0 4px 18px #0003}
html[data-theme="dark"] input,
html[data-theme="dark"] select,
html[data-theme="dark"] textarea{background:#13212a;color:#e2ebf0;border-color:#405663}
html[data-theme="dark"] input::placeholder,
html[data-theme="dark"] textarea::placeholder{color:#93a7b2}
html[data-theme="dark"] button.secondary,
html[data-theme="dark"] .filebtn.secondary{background:#223945;color:#d9e8ef;border-color:#3a5361}
html[data-theme="dark"] button.secondary:hover,
html[data-theme="dark"] .filebtn.secondary:hover{background:#2b4856}
html[data-theme="dark"] .toolbar-caption,
html[data-theme="dark"] .month-picker label,
html[data-theme="dark"] .field label,
html[data-theme="dark"] .note,
html[data-theme="dark"] .performance-heading p,
html[data-theme="dark"] .performance-note,
html[data-theme="dark"] .performance-legend{color:#a9bbc4}
html[data-theme="dark"] .rolebadge,
html[data-theme="dark"] .notice{background:#203845;color:#d9e8ef}
html[data-theme="dark"] .emp,
html[data-theme="dark"] .manager-account,
html[data-theme="dark"] .reminder-item,
html[data-theme="dark"] .private-note{background:#13212a;color:#e2ebf0;border-color:#304651}
html[data-theme="dark"] .emp.active{background:#203b48;border-color:#4b9bc0}
html[data-theme="dark"] .emp small,
html[data-theme="dark"] .manager-account small,
html[data-theme="dark"] .private-note small{color:#a9bbc4}
html[data-theme="dark"] .manager-account strong,
html[data-theme="dark"] .manager-roster h3,
html[data-theme="dark"] .performance-heading h2,
html[data-theme="dark"] .private-note-heading strong,
html[data-theme="dark"] .notes-empty strong{color:#e2ebf0}
html[data-theme="dark"] .manager-roster,
html[data-theme="dark"] .reminder-form,
html[data-theme="dark"] .note-composer{background:#1b2b35;border-color:#344b57}
html[data-theme="dark"] .private-note .note-card-mark{background:#25404d;color:#d9e8ef}
html[data-theme="dark"] .note-delete{background:#263943!important;color:#c1d0d7!important}
html[data-theme="dark"] .notes-empty{border-color:#405663;color:#a9bbc4}
html[data-theme="dark"] .calendar-day{background:#13212a;color:#e2ebf0;border-color:#304651}
html[data-theme="dark"] .calendar-day.selected{background:#0b5471;color:#fff;border-color:#4b9bc0}
html[data-theme="dark"] .calendar-day.today{outline-color:#85b7d6}
html[data-theme="dark"] .calendar-weekdays,
html[data-theme="dark"] .calendar-hint{color:#a9bbc4}
html[data-theme="dark"] .tablewrap,
html[data-theme="dark"] table{background:#13212a;border-color:#304651}
html[data-theme="dark"] th{background:#203945;color:#d9e8ef}
html[data-theme="dark"] td{color:#dce7ec;border-color:#2c414c}
html[data-theme="dark"] td input,
html[data-theme="dark"] td select{background:#182a34;color:#e2ebf0;border-color:#405663}
html[data-theme="dark"] .paybox,
html[data-theme="dark"] .performance-metric{background:#20313b;border-color:#344b57}
html[data-theme="dark"] .performance-metric small{color:#a9bbc4}
html[data-theme="dark"] .performance-metric strong{color:#8fc7e4}
html[data-theme="dark"] .performance-chart-scroll{background:#fff}
html[data-theme="dark"] .performance-empty{background:#20343f;color:#c8d7de}
html[data-theme="dark"] .creator-credit a{color:#8fc7e4}
html[data-theme="dark"] .report-preview-panel,
html[data-theme="dark"] .report-preview-content{background:#fff;color:#183442;color-scheme:light}
html[data-theme="dark"] .report-preview-topbar{background:#fff;color:#183442}
@media(max-width:600px){.theme-toggle{padding:7px 9px;font-size:12px}}
@media print{html[data-theme="dark"] body{background:#fff!important;color:#000!important}html[data-theme="dark"] header{background:#fff!important;color:#000!important}}
.theme-toggle{width:66px;height:38px;margin-left:auto;padding:3px!important;display:inline-flex;align-items:center;justify-content:center;gap:2px;border-radius:999px!important}
.theme-toggle .theme-icon{width:27px;height:27px;display:grid;place-items:center;border-radius:50%;color:#dceaf0;transition:background-color .15s ease,color .15s ease}
.theme-toggle svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
html[data-theme="light"] .theme-toggle .theme-sun,html[data-theme="dark"] .theme-toggle .theme-moon{background:#85b7d6;color:#07394d}
@media(max-width:600px){.theme-toggle{width:62px;height:36px;padding:3px!important}.theme-toggle .theme-icon{width:25px;height:25px}}
/* Contraste y legibilidad reforzados para el tema oscuro */
html[data-theme="dark"]{color-scheme:dark;--blue:#145d7a;--dark:#edf5f8;--bg:#0d171d;--line:#435965;--muted:#c0cdd4;--white:#182832;--green:#173e2e;--red:#51292c;--yellow:#4a3d1c;--oc-ice:#2b414c;--oc-ink:#f1f6f8}
html[data-theme="dark"] body{background:#0d171d;color:#f0f5f7;font-size:16px;line-height:1.5}
html[data-theme="dark"] .toolbar,html[data-theme="dark"] .panel,html[data-theme="dark"] .stat,html[data-theme="dark"] .dialog-card,html[data-theme="dark"] .performance-panel,html[data-theme="dark"] .payroll-overview{background:#182832;color:#f0f5f7;border-color:#3b515d;box-shadow:0 5px 20px #0005}
html[data-theme="dark"] .panel h2,html[data-theme="dark"] .panel h3,html[data-theme="dark"] .tabletop h2,html[data-theme="dark"] .stat strong,html[data-theme="dark"] .performance-heading h2,html[data-theme="dark"] .manager-roster h3,html[data-theme="dark"] .manager-account strong,html[data-theme="dark"] .private-note-heading strong,html[data-theme="dark"] .notes-empty strong{color:#f2f7f9}
html[data-theme="dark"] .toolbar-caption,html[data-theme="dark"] .month-picker label,html[data-theme="dark"] .field label,html[data-theme="dark"] .note,html[data-theme="dark"] .performance-heading p,html[data-theme="dark"] .performance-note,html[data-theme="dark"] .performance-legend,html[data-theme="dark"] .calendar-weekdays,html[data-theme="dark"] .calendar-hint,html[data-theme="dark"] .manager-account small,html[data-theme="dark"] .private-note small{color:#c0cdd4}
html[data-theme="dark"] input,html[data-theme="dark"] select,html[data-theme="dark"] textarea,html[data-theme="dark"] td input,html[data-theme="dark"] td select{background:#101e25;color:#f2f7f9;border:1px solid #526b78}
html[data-theme="dark"] input::placeholder,html[data-theme="dark"] textarea::placeholder{color:#b4c2ca;opacity:1}
html[data-theme="dark"] input:focus,html[data-theme="dark"] select:focus,html[data-theme="dark"] textarea:focus{border-color:#8fd5f3;box-shadow:0 0 0 3px #55a9d033;outline:none}
html[data-theme="dark"] button,html[data-theme="dark"] .filebtn{background:#145d7a;color:#fff}
html[data-theme="dark"] button:hover,html[data-theme="dark"] .filebtn:hover{background:#1b7599}
html[data-theme="dark"] button.secondary,html[data-theme="dark"] .filebtn.secondary{background:#2b414c;color:#f0f6f8;border-color:#526b78}
html[data-theme="dark"] button.secondary:hover,html[data-theme="dark"] .filebtn.secondary:hover{background:#385462}
html[data-theme="dark"] button.danger{background:#9f3e43;color:#fff}
html[data-theme="dark"] button:focus-visible,html[data-theme="dark"] .filebtn:focus-visible,html[data-theme="dark"] input:focus-visible,html[data-theme="dark"] select:focus-visible,html[data-theme="dark"] textarea:focus-visible{outline:3px solid #f2c96d;outline-offset:2px}
html[data-theme="dark"] .rolebadge,html[data-theme="dark"] .notice{background:#203b48;color:#e5f2f7;border:1px solid #3f6272}
html[data-theme="dark"] .emp,html[data-theme="dark"] .manager-account,html[data-theme="dark"] .reminder-item,html[data-theme="dark"] .private-note{background:#12212a;color:#edf4f7;border-color:#3b515d}
html[data-theme="dark"] .emp.active{background:#1c3a48;border-color:#65b7da;box-shadow:inset 0 0 0 1px #65b7da}
html[data-theme="dark"] .manager-roster,html[data-theme="dark"] .reminder-form,html[data-theme="dark"] .note-composer{background:#1e303a;border-color:#435965}
html[data-theme="dark"] .note-composer textarea,html[data-theme="dark"] .note-composer input[type=file]{background:#101e25;color:#f2f7f9}
html[data-theme="dark"] .private-note .note-card-mark{background:#284b5c;color:#e6f4fa}
html[data-theme="dark"] .note-delete{background:#304651!important;color:#e1eaee!important}
html[data-theme="dark"] .notes-empty{border-color:#526b78;color:#c0cdd4}
html[data-theme="dark"] .calendar-day{background:#12212a;color:#edf4f7;border-color:#435965}
html[data-theme="dark"] .calendar-day.selected{background:#145d7a;color:#fff;border-color:#8fd5f3}
html[data-theme="dark"] .calendar-day.today{outline-color:#f2c96d}
html[data-theme="dark"] .tablewrap,html[data-theme="dark"] table{background:#12212a;border-color:#3b515d}
html[data-theme="dark"] th{background:#24414e;color:#f2f7f9;border-color:#526b78}
html[data-theme="dark"] td{color:#e6eef2;border-color:#354b56}
html[data-theme="dark"] tbody tr:nth-child(even){background:#192b35}
html[data-theme="dark"] .ok{background:#1c4a34;color:#b8f2ce}
html[data-theme="dark"] .abs{background:#542b30;color:#ffc5c9}
html[data-theme="dark"] .vac{background:#51411d;color:#ffe09a}
html[data-theme="dark"] .paybox,html[data-theme="dark"] .performance-metric{background:#20343f;border-color:#435965}
html[data-theme="dark"] .performance-metric small{color:#c0cdd4}
html[data-theme="dark"] .performance-metric strong,html[data-theme="dark"] .creator-credit a{color:#9bdafa}
html[data-theme="dark"] .performance-chart-scroll{background:#fff;border-color:#526b78}
html[data-theme="dark"] .performance-empty{background:#203b48;color:#e0edf2}
html[data-theme="dark"] .report-preview-panel,html[data-theme="dark"] .report-preview-content{background:#fff;color:#183442;color-scheme:light}
html[data-theme="dark"] .report-preview-topbar{background:#fff;color:#183442}
html[data-theme="dark"] .badge{font-weight:700}
@media print{html[data-theme="dark"] body{background:#fff!important;color:#000!important;font-size:10px!important;line-height:1.45!important}html[data-theme="dark"] header{background:#fff!important;color:#000!important}}
/* Refuerzo integral de texto: también alcanza etiquetas y componentes generados */
html[data-theme="dark"] body :is(h1,h2,h3,h4,p,span,label,small,strong,b,td,th,li,legend,summary,dt,dd,figcaption,caption,.tabletop,.toolbar-caption,.syncstate,.foot,.calendar-nav strong,.linkbtn){color:#f2f7f9}
html[data-theme="dark"] body :is(.field label,.note,.calendar-hint,.performance-heading p,.performance-note,.performance-legend,.performance-scroll-help,.manager-account small,.private-note small,.stat small){color:#c7d4db}
html[data-theme="dark"] body a,html[data-theme="dark"] body .linkbtn{color:#a8e3ff}
html[data-theme="dark"] body a:hover,html[data-theme="dark"] body .linkbtn:hover{color:#d4f1ff}
html[data-theme="dark"] body :is(.ok,.abs,.vac){font-weight:750;text-shadow:0 0 1px currentColor}
html[data-theme="dark"] body .ok{background:#174c32;color:#c2f7d3}
html[data-theme="dark"] body .abs{background:#5a292e;color:#ffd0d3}
html[data-theme="dark"] body .vac{background:#584719;color:#ffe7a6}
html[data-theme="dark"] body .notice,html[data-theme="dark"] body .rolebadge{color:#f2f8fb}
html[data-theme="dark"] body .toast,html[data-theme="dark"] body #toast{color:#fff}
html[data-theme="dark"] body .syncstate.error,html[data-theme="dark"] body .msg.error{background:#612d32;color:#ffd5d8}
html[data-theme="dark"] body .msg.ok{background:#1c5037;color:#d0f8dd}
html[data-theme="dark"] body ::selection{background:#2b7899;color:#fff}
/* Corrige los textos que antes quedaban claros sobre componentes de fondo pálido */
html[data-theme="dark"] body .payroll-note{background:#203b48!important;color:#f2f8fb!important;border-left-color:#85c9e8!important;border-top:1px solid #426476;border-right:1px solid #426476;border-bottom:1px solid #426476}
html[data-theme="dark"] body .payroll-note *{color:#f2f8fb!important}
html[data-theme="dark"] body .period-pill{background:#264b5b!important;color:#d8f3ff!important;border:1px solid #4d7587;box-shadow:inset 0 0 0 1px #345f72}
html[data-theme="dark"] body .rolebadge{background:#203b48!important;color:#f2f8fb!important;border-color:#426476!important}

/* OnControl v40: herramientas personales reunidas y asistencia a ancho completo */
.employee-form-layout{display:block!important;min-width:0}.employee-form-layout>.panel{width:100%;min-width:0}
.tools-hub{display:block;margin:14px 0;padding:14px;background:var(--surface,#fff);border:1px solid var(--line);border-radius:14px;box-shadow:0 3px 12px #18384b08}.tools-hub-heading{display:flex;align-items:center;justify-content:space-between;margin:0 0 10px}.tools-hub-heading h2{margin:0;font-size:18px}.tools-hub-heading p{margin:2px 0 0}.tools-hub-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:12px;align-items:stretch}.tools-card{min-width:0;padding:12px;border:1px solid var(--line);border-radius:12px;background:var(--bg,#f3f6f8)}.tools-card .tabletop{margin-bottom:8px}.tools-card .tabletop h2{font-size:16px}.tools-card .note{margin:3px 0 0}.tools-card .calendar-layout{grid-template-columns:minmax(205px, .8fr) minmax(0,1.2fr);gap:10px}.tools-card .calendar-main{max-width:none}.tools-card .calendar-day,.tools-card .calendar-empty{min-height:30px}.tools-card .calendar-side{display:flex;flex-direction:column;gap:7px}.tools-card .reminder-form{padding:9px}.tools-card .reminder-form .formgrid{grid-template-columns:1fr 1fr;gap:6px}.tools-card .reminder-form .field.full{grid-column:1/-1}.tools-card .reminder-actions{gap:6px}.tools-card .reminder-actions button{min-height:32px;padding:6px 9px}.tools-card .reminder-list{margin-top:0;max-height:150px}.tools-card .notes-layout{grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:9px}.tools-card .note-composer{padding:10px}.tools-card .note-composer-title{margin-bottom:7px}.tools-card .note-composer .formgrid{gap:6px}.tools-card .note-composer textarea{min-height:66px}.tools-card .private-note-list{max-height:295px;overflow:auto;align-content:start;grid-template-columns:repeat(auto-fit,minmax(175px,1fr));gap:7px}.tools-card .private-note{min-height:95px;padding:9px}.tools-card .private-note>p{font-size:12px;margin:7px 0}.attendance-section{display:block;width:100%;min-width:0;margin-top:14px}.attendance-section .tablewrap{max-width:100%;overscroll-behavior-x:contain}.attendance-files-cell{min-width:145px;max-width:220px;white-space:normal}.attendance-attach-button{display:inline-flex;align-items:center;gap:5px;min-height:30px;padding:5px 8px;font-size:12px}.attendance-attach-button svg{width:15px;height:15px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.attendance-files-cell small{display:block;color:var(--muted);font-size:10px;margin:2px 0}.attendance-file-link{display:block;max-width:190px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;text-align:left;font-size:11px}.attachment-limit{display:block;color:var(--muted);font-size:11px;margin:5px 2px}.attachment-privacy-note{font-size:11px;color:var(--muted);margin:4px 0 7px}
.password-row{position:relative}.password-toggle{display:grid;place-items:center;flex:0 0 40px;width:40px;height:40px;padding:0!important;border-radius:9px!important}.password-toggle .eye-icon{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.password-toggle .eye-closed{display:none}.password-toggle[aria-pressed="true"] .eye-open{display:none}.password-toggle[aria-pressed="true"] .eye-closed{display:block}
@media(max-width:980px){.tools-hub-grid{grid-template-columns:1fr}.tools-card .calendar-layout{grid-template-columns:minmax(220px,.8fr) minmax(0,1.2fr)}.tools-card .notes-layout{grid-template-columns:minmax(220px,.8fr) minmax(0,1.2fr)}}
@media(max-width:680px){.tools-hub{padding:10px}.tools-hub-grid{grid-template-columns:minmax(0,1fr)}.tools-card{padding:10px}.tools-card .calendar-layout,.tools-card .notes-layout{grid-template-columns:minmax(0,1fr)}.tools-card .calendar-main{max-width:330px}.tools-card .private-note-list{max-height:none}.attendance-section{padding:11px}.attendance-files-cell{min-width:120px}.password-toggle{flex-basis:38px;width:38px;height:38px}}
html[data-theme="dark"] .tools-hub{background:#14242d;border-color:#3e5a68}html[data-theme="dark"] .tools-card{background:#1a2e38;border-color:#405e6d}html[data-theme="dark"] .tools-card .reminder-form,html[data-theme="dark"] .tools-card .note-composer{background:#203944;border-color:#4a6877}html[data-theme="dark"] .tools-card .private-note{background:#223842;border-color:#476371}html[data-theme="dark"] .tools-card .note-card-mark{background:#315767;color:#eaf7fb}html[data-theme="dark"] .tools-card .calendar-day,html[data-theme="dark"] .tools-card .calendar-empty{background:#182b35;color:#f2f7f9;border-color:#526b78}html[data-theme="dark"] .tools-card .calendar-day.selected{background:#0b5471;color:#fff;border-color:#85b7d6}html[data-theme="dark"] .tools-card .reminder-item,html[data-theme="dark"] .tools-card .private-note{color:#f2f7f9}html[data-theme="dark"] .tools-card .note-composer textarea,html[data-theme="dark"] .tools-card .note-composer input[type=file]{background:#101e25;color:#f2f7f9;border-color:#526b78}
/* OnControl v41: mejor equilibrio visual en calendario y notas */
.tools-hub{padding:15px;background:linear-gradient(145deg,#fff,#f8fbfd);border-color:#c9dce6}.tools-hub-heading{padding:0 2px 11px;border-bottom:1px solid var(--line)}.tools-hub-heading>div{position:relative;padding-left:12px}.tools-hub-heading>div:before{content:"";position:absolute;inset:3px auto 3px 0;width:3px;border-radius:3px;background:linear-gradient(#0b5471,#85b7d6)}.tools-hub-heading h2{letter-spacing:-.02em}.tools-card{box-shadow:0 4px 14px #143c4f0a;transition:box-shadow .18s ease,border-color .18s ease}.tools-card:hover{border-color:#a8c9d9;box-shadow:0 7px 20px #143c4f12}.tools-card .tabletop{padding-bottom:8px;border-bottom:1px solid color-mix(in srgb,var(--line) 75%,transparent)}.tools-card .calendar-layout{grid-template-columns:minmax(210px,.75fr) minmax(0,1.25fr);gap:12px}.tools-card .calendar-nav strong{font-size:14px;min-width:126px}.tools-card .calendar-nav button{border-radius:11px;box-shadow:inset 0 0 0 1px #ffffff60}.tools-card .calendar-day{border-radius:10px;font-weight:650;transition:transform .14s ease,background .14s ease}.tools-card .calendar-day:hover{transform:translateY(-1px);border-color:#85b7d6}.tools-card .calendar-day.selected{box-shadow:0 3px 9px #0b547133}.tools-card .calendar-side{gap:9px}.tools-card .reminder-form{border-radius:13px;background:linear-gradient(145deg,#f3f9fc,#eaf4f8);box-shadow:inset 0 1px #fff}.tools-card .reminder-form>strong{font-size:14px}.tools-card .reminder-form input{border-radius:9px}.tools-card .reminder-actions button{border-radius:9px}.tools-card .reminder-list{padding-right:2px}.tools-card .reminder-item{border-radius:10px;background:var(--surface,#fff)}
.tools-card .notes-layout{grid-template-columns:minmax(0,.92fr) minmax(0,1.08fr);align-items:stretch;gap:10px}.tools-card .note-composer{height:100%;padding:13px;border-radius:13px;background:linear-gradient(145deg,#f4faff,#eaf4f8);box-shadow:inset 0 1px #fff}.tools-card .note-composer-title{padding-bottom:9px;border-bottom:1px solid #d8e7ee}.tools-card .note-mark{box-shadow:0 3px 8px #0b547126}.tools-card .note-composer .formgrid{grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:end;gap:9px}.tools-card .note-composer .field:first-child{grid-column:1/-1}.tools-card .note-composer .field:nth-child(2){grid-column:1/-1}.tools-card .note-composer .field:nth-child(3){grid-column:1/-1}.tools-card .note-composer .field label{font-size:11px;letter-spacing:.01em}.tools-card .note-composer input:not([type=file]),.tools-card .note-composer textarea{border-radius:10px}.tools-card .note-composer textarea{min-height:75px;line-height:1.45;font-family:inherit;resize:vertical}.tools-card .note-composer input[type=file]{width:100%;min-width:0;padding:6px;border-radius:9px;font-size:11px}.tools-card .note-composer input[type=file]::file-selector-button{border:0;border-radius:7px;background:#dcecf4;color:#16445a;font:600 11px system-ui;padding:6px 9px;margin-right:7px;cursor:pointer}.tools-card .note-composer button[type=submit]{border-radius:9px;box-shadow:0 3px 8px #0b547126}.tools-card .private-note-list{max-height:330px;align-content:stretch;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:9px}.tools-card .private-note{height:100%;border-radius:12px}.tools-card .notes-empty{min-height:100%;align-self:stretch;justify-content:center;align-items:center;text-align:center;padding:24px;border-style:dashed;background:linear-gradient(145deg,#f8fbfd,#f1f7fa);border-radius:13px}.tools-card .notes-empty strong{font-size:14px}.tools-card .notes-empty span{max-width:260px;line-height:1.5}
@media(max-width:980px){.tools-card .notes-layout{align-items:stretch}.tools-card .private-note-list{max-height:none}}
@media(max-width:680px){.tools-hub{padding:11px}.tools-hub-heading{padding-bottom:9px}.tools-card{box-shadow:none}.tools-card .calendar-layout{grid-template-columns:minmax(0,1fr)}.tools-card .calendar-side{margin-top:2px}.tools-card .notes-layout{grid-template-columns:minmax(0,1fr)}.tools-card .note-composer{height:auto}.tools-card .note-composer .formgrid{grid-template-columns:minmax(0,1fr)}.tools-card .note-composer .field:first-child,.tools-card .note-composer .field:nth-child(2),.tools-card .note-composer .field:nth-child(3){grid-column:1}.tools-card .private-note-list{grid-template-columns:minmax(0,1fr)}.tools-card .notes-empty{min-height:100px}}
html[data-theme="dark"] .tools-hub{background:linear-gradient(145deg,#14242d,#172b35);border-color:#3f6070}html[data-theme="dark"] .tools-hub-heading{border-color:#3a5664}html[data-theme="dark"] .tools-card{box-shadow:0 4px 16px #0002}html[data-theme="dark"] .tools-card:hover{border-color:#64889a;box-shadow:0 7px 20px #0003}html[data-theme="dark"] .tools-card .tabletop{border-color:#3b5968}html[data-theme="dark"] .tools-card .reminder-form{background:linear-gradient(145deg,#203944,#1b323d);box-shadow:inset 0 1px #ffffff0a}html[data-theme="dark"] .tools-card .reminder-item{background:#203640;border-color:#466270}html[data-theme="dark"] .tools-card .note-composer{background:linear-gradient(145deg,#203944,#1b323d);box-shadow:inset 0 1px #ffffff0a}html[data-theme="dark"] .tools-card .note-composer-title{border-color:#405f6e}html[data-theme="dark"] .tools-card .note-composer input[type=file]::file-selector-button{background:#355767;color:#f1f8fb}html[data-theme="dark"] .tools-card .notes-empty{background:linear-gradient(145deg,#1d343e,#1a2e38);border-color:#4b6876;color:#dbe7ec}html[data-theme="dark"] .tools-card .notes-empty strong{color:#f4f8fa}
/* OnControl v42: selector de mes visible, accesible y lejos del borde */
@media(min-width:1101px){.work-tools{grid-template-columns:auto auto minmax(0,1fr);align-items:center}.month-picker{grid-column:1;grid-row:1;margin:0;justify-self:start}.primary-actions{grid-column:2;grid-row:1}.data-actions{grid-column:1/-1;grid-row:2}}
.month-picker{display:flex;align-items:center;gap:6px;padding:3px 5px;border:1px solid #d5e3ea;border-radius:11px;background:#f5f9fb;white-space:nowrap}.month-picker label{margin-left:3px}.month-picker input[type="month"]{width:155px;min-height:38px;padding:5px 8px;border-color:#c3d8e3;background:#fff;border-radius:8px;font-size:13px;font-weight:600}.month-step{display:grid!important;place-items:center;flex:0 0 34px;width:34px!important;min-width:34px!important;height:34px;min-height:34px!important;padding:0!important;border-radius:8px!important;font-size:20px!important;line-height:1!important;color:#0b5471!important;background:#e4f0f6!important;border:1px solid #c8dce7!important}.month-step:hover{background:#d5e9f3!important;border-color:#9fc3d6!important}
@media(max-width:1100px){.work-tools{display:flex;flex-wrap:wrap}.month-picker{order:0;margin:0;justify-self:start}.primary-actions{order:1}.data-actions{order:2;flex:1 1 100%}}
@media(max-width:850px){.month-picker{order:1;margin:0}.primary-actions{order:2}.data-actions{order:3}}
@media(max-width:600px){.work-tools{display:grid;grid-template-columns:minmax(0,1fr);gap:7px}.month-picker{grid-column:1;grid-row:1;justify-self:start;width:max-content;max-width:100%;gap:5px;padding:3px 4px}.month-picker input[type="month"]{width:150px;max-width:calc(100vw - 150px);min-height:40px;font-size:14px}.month-step{flex-basis:34px;width:34px!important;min-width:34px!important;height:36px;min-height:36px!important}.primary-actions{grid-column:1;grid-row:2}.data-actions{grid-column:1;grid-row:3;flex:initial}}
@media(max-width:380px){.month-picker{gap:3px}.month-picker input[type="month"]{width:132px;max-width:calc(100vw - 144px);font-size:13px}.month-picker label{font-size:11px}.month-step{flex-basis:30px;width:30px!important;min-width:30px!important}}
html[data-theme="dark"] .month-picker{background:#1a2e38;border-color:#405e6d}html[data-theme="dark"] .month-picker input[type="month"]{background:#101e25;color:#f2f7f9;border-color:#526b78}html[data-theme="dark"] .month-step{background:#2b414c!important;color:#e7f4f9!important;border-color:#526b78!important}html[data-theme="dark"] .month-step:hover{background:#345361!important}
/* OnControl v43: agrupa acciones secundarias en menús limpios */
.company-actions,.data-actions{gap:7px}.toolbar-menu{position:relative;display:inline-flex;align-items:center}.toolbar-menu>summary{list-style:none;display:flex;align-items:center;justify-content:center;gap:10px;min-height:35px;padding:6px 11px;border:1px solid #d5e3ea;border-radius:8px;background:#edf4f7;color:#17384b;font-size:12.5px;font-weight:700;line-height:1.15;cursor:pointer;white-space:nowrap;user-select:none}.toolbar-menu>summary::-webkit-details-marker{display:none}.toolbar-menu>summary:after{content:"";width:7px;height:7px;border-right:1.7px solid currentColor;border-bottom:1.7px solid currentColor;transform:rotate(45deg) translateY(-2px);transition:transform .15s ease}.toolbar-menu[open]>summary:after{transform:rotate(225deg) translate(-1px,-1px)}.toolbar-menu>summary:hover{background:#e2eef3}.toolbar-menu>summary:focus-visible{outline:3px solid #85b7d6;outline-offset:2px}.toolbar-menu-panel{position:absolute;z-index:50;top:calc(100% + 6px);left:0;display:grid;gap:5px;min-width:205px;padding:8px;border:1px solid #cbdde6;border-radius:12px;background:#fff;box-shadow:0 12px 30px #102e3f24}.company-actions .toolbar-menu-panel{left:auto;right:0}.toolbar-menu-panel button{width:100%;min-height:36px;padding:8px 10px;text-align:left;white-space:normal!important;border-radius:8px;font-size:12.5px;line-height:1.25}.toolbar-menu-panel button.secondary{background:#f0f6f9;border-color:#d5e3ea;color:#17384b}.toolbar-menu-panel button.danger{background:#a74444;color:#fff}.data-actions{flex:0 0 auto}.data-actions .toolbar-menu>summary{min-width:96px}.company-actions .toolbar-menu>summary{min-width:142px}
@media(max-width:850px){.company-actions{display:flex!important;flex:1 1 100%;width:100%;justify-content:flex-start;flex-wrap:wrap}.data-actions{display:flex!important;flex:1 1 auto!important;flex-wrap:wrap}.toolbar-menu-panel{min-width:min(220px,calc(100vw - 28px))}}
@media(max-width:600px){.company-actions{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px}.company-actions>#addCompany{width:100%;min-height:40px}.company-actions>.toolbar-menu{width:100%}.company-actions>.toolbar-menu>summary{width:100%;min-height:40px}.company-actions .toolbar-menu-panel{left:0;right:auto;width:min(100%,250px)}.work-tools{row-gap:8px}.primary-actions{gap:6px}.data-actions{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px}.data-actions>.toolbar-menu{width:100%}.data-actions .toolbar-menu>summary{width:100%;min-height:40px}.data-actions .toolbar-menu-panel{left:0;right:auto;width:min(100%,240px)}}
html[data-theme="dark"] .toolbar-menu>summary{background:#2b414c;color:#f0f6f8;border-color:#526b78}html[data-theme="dark"] .toolbar-menu>summary:hover{background:#345361}html[data-theme="dark"] .toolbar-menu-panel{background:#1a2e38;border-color:#4b6876;box-shadow:0 14px 30px #0005}html[data-theme="dark"] .toolbar-menu-panel button.secondary{background:#2b414c;color:#f0f6f8;border-color:#526b78}html[data-theme="dark"] .toolbar-menu-panel button.secondary:hover{background:#345361}html[data-theme="dark"] .toolbar-menu-panel button.danger{background:#913e43;color:#fff}
/* OnControl v47: acciones de exportación alineadas con controles frecuentes */
@media(min-width:1101px){.work-tools{grid-template-columns:auto auto auto minmax(0,1fr);align-items:center}.month-picker{grid-column:1;grid-row:1}.primary-actions{grid-column:2;grid-row:1}.data-actions{grid-column:3;grid-row:1;justify-self:start;align-self:center;margin-left:2px}}
/* OnControl v48: identidad interactiva y panel de gerente */
.brand{gap:12px}
.brand-logo-button{display:grid!important;place-items:center;flex:0 0 58px;width:58px;height:58px;min-width:58px;min-height:58px;padding:0!important;overflow:hidden;border:0!important;border-radius:15px!important;background:transparent!important;box-shadow:none!important;cursor:pointer;transition:transform .16s ease,filter .16s ease}
.brand-logo-button:hover{transform:translateY(-1px);filter:brightness(1.08)}
.brand-logo-button:focus-visible{outline:3px solid #85b7d6;outline-offset:3px}
.brand-logo{display:block;width:58px;height:58px;object-fit:cover;border-radius:15px}
.manager-hub{display:flex;align-items:center;justify-content:space-between;gap:14px;margin:0 0 14px;padding:13px 16px;border:1px solid #c6dce7;border-left:4px solid #0b5471;border-radius:13px;background:linear-gradient(120deg,#fff,#eaf4f9);box-shadow:0 4px 16px #0b54710c}
.manager-hub-copy{display:grid;gap:3px;min-width:0}.manager-hub-copy strong{font-size:16px;color:#0b5471}.manager-hub-copy small{font-size:12px;line-height:1.45;color:#526673}.manager-hub-kicker{font-size:10px;letter-spacing:.11em;font-weight:800;color:#57819a}.manager-hub #notifyAdmin{flex:0 0 auto;min-height:36px;padding:8px 12px}
.employee-form-help{margin:-5px 0 12px;padding:9px 11px;border-radius:9px;background:#edf6fa;color:#365c70;font-size:12px;line-height:1.45}
@media(max-width:650px){.brand{gap:9px}.brand-logo-button,.brand-logo{width:46px;height:46px;min-width:46px;min-height:46px;flex-basis:46px;border-radius:12px!important}.manager-hub{align-items:flex-start;flex-direction:column;padding:12px}.manager-hub #managerNotifyShortcut{width:100%}}
html[data-theme="dark"] .manager-hub{background:linear-gradient(120deg,#172b35,#1b3440);border-color:#3d5e6e;border-left-color:#72b5d5;box-shadow:0 5px 16px #0002}
html[data-theme="dark"] .manager-hub-copy strong{color:#d9f1fb}html[data-theme="dark"] .manager-hub-copy small,html[data-theme="dark"] .manager-hub-kicker{color:#c0d4de}
html[data-theme="dark"] .employee-form-help{background:#203b48;color:#e2f0f5;border:1px solid #3c5d6d}

/* OnControl v49: móvil sin desbordes, gráfico diario legible y asistencia compacta */
.toolbar,.toolbar-row,.toolbar-group,.company-tools,.work-tools,.company-actions,.primary-actions,.data-actions{min-width:0;max-width:100%}
.toolbar button,.toolbar .filebtn,.toolbar-menu,.toolbar-menu>summary{max-width:100%;min-width:0;overflow-wrap:anywhere}
.brand-logo-button{border:0!important;outline-color:#fff!important;box-shadow:none!important;background:transparent!important}
.brand-logo{border:0!important;box-shadow:none!important;object-fit:contain;background:#fff}
.performance-mobile-chart{display:none}
@media(max-width:680px){
  .toolbar{width:100%;min-width:0;padding:10px;overflow:visible}
  .toolbar-row{width:100%;display:flex!important;flex-wrap:wrap!important;align-items:stretch;gap:7px}
  .toolbar-group{display:flex!important;flex:1 1 100%;flex-wrap:wrap;align-items:center;gap:6px}
  .company-picker{display:grid!important;grid-template-columns:auto minmax(0,1fr)!important}
  .company-picker select{width:100%;min-width:0}
  .company-actions{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr))!important}
  .primary-actions,.data-actions{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr))!important}
  .toolbar-group button,.toolbar-group .filebtn,.toolbar-menu,.toolbar-menu>summary{width:100%;max-width:100%;min-width:0;white-space:normal;text-align:center;overflow-wrap:anywhere}
  .toolbar-menu-panel{max-width:calc(100vw - 36px);overflow-wrap:anywhere}
  .month-picker{display:grid!important;grid-template-columns:auto minmax(0,1fr) auto!important;width:100%;max-width:100%;gap:5px}
  .month-picker input[type=month]{width:100%;min-width:0;max-width:100%;font-size:14px}
  .table-scroll-hint{display:none!important}
  .attendance-section .tablewrap{overflow:visible!important;touch-action:auto}
  #attendanceTable{display:block!important;width:100%!important;min-width:0!important;table-layout:auto;border:0;background:transparent}
  #attendanceTable thead{display:none!important}
  #attendanceTable tbody{display:grid;gap:8px;width:100%}
  #attendanceTable tbody tr{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0;width:100%;min-width:0;overflow:hidden;border:1px solid var(--line);border-radius:12px;background:var(--surface,#fff);box-shadow:0 2px 8px #0b54710a}
  #attendanceTable tbody td{display:flex;flex-direction:column;justify-content:center;min-width:0;padding:7px 9px;border:0;border-bottom:1px solid color-mix(in srgb,var(--line) 72%,transparent);font-size:12px;line-height:1.25;overflow-wrap:anywhere}
  #attendanceTable tbody td:nth-child(1),#attendanceTable tbody td:nth-child(2){background:color-mix(in srgb,#85b7d6 10%,transparent)}
  #attendanceTable tbody td::before{content:attr(data-label);display:block;margin-bottom:4px;color:var(--muted);font-size:10px;font-weight:750;letter-spacing:.025em}
  #attendanceTable tbody td:nth-child(5),#attendanceTable tbody td:nth-child(6){grid-column:1/-1}
  #attendanceTable tbody tr td:last-child{border-bottom:0}
  #attendanceTable td select,#attendanceTable td input{width:100%;min-width:0;max-width:100%;min-height:38px;padding:6px 8px;font-size:14px}
  #attendanceTable td input{font-size:16px}
  .attendance-files-cell{align-items:flex-start}
  .attendance-file-link{max-width:100%}
  .performance-chart-scroll,.performance-scroll-help{display:none!important}
  .performance-mobile-chart{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:6px;margin:11px 0 8px}
  .performance-day{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:3px 5px;min-width:0;min-height:60px;padding:7px 6px;border:1px solid #d8e4ea;border-radius:10px;background:#f6fafc}
  .performance-day-meta{grid-column:1/-1;display:flex;align-items:baseline;gap:4px;min-width:0;color:#536b78;line-height:1}
  .performance-day-meta b{font-size:14px;color:#17384b}.performance-day-meta span{font-size:10px;text-transform:lowercase}
  .performance-day-status{align-self:center;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#0b5471;font-size:10px;font-weight:750}
  .performance-day>strong{justify-self:end;align-self:center;color:#17384b;font-size:12px;white-space:nowrap}
  .performance-day-track{grid-column:1/-1;display:block;height:4px;overflow:hidden;border-radius:9px;background:#dce9ef}
  .performance-day-track i{display:block;height:100%;border-radius:inherit;background:#0b5471}
  .performance-day.status-ausencia{background:#fff6f5;border-color:#efd1cf}.performance-day.status-ausencia .performance-day-status{padding:2px 4px;border-radius:4px;background:#b64b4b;color:#fff}.performance-day.status-ausencia .performance-day-track i{background:#b64b4b}
  .performance-day.status-vacaciones{background:#f0f8fc;border-color:#c8e0ec}.performance-day.status-vacaciones .performance-day-status{color:#286e91}
  .performance-day.status-libre{background:#f4f5f6;border-color:#e0e2e4}.performance-day.status-libre .performance-day-status{color:#69737a}
  .performance-day.status-pendiente .performance-day-status{color:#737f85}
  .performance-heading{align-items:flex-start;gap:8px}.performance-heading h2{font-size:17px}.performance-heading p{font-size:12px;line-height:1.4}
  .performance-heading .period-pill{max-width:100%;white-space:normal}
  .tools-card .calendar-layout,.tools-card .reminder-form .formgrid{grid-template-columns:minmax(0,1fr)!important}
  .tools-card .reminder-form,.tools-card .reminder-form .field,.tools-card .reminder-form input{min-width:0;width:100%;max-width:100%}
  .tools-card .reminder-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));width:100%}
  .tools-card .reminder-actions button{width:100%;min-width:0;white-space:normal;line-height:1.2}
  .tools-card .note-composer input[type=file]{width:100%;max-width:100%;min-width:0;overflow:hidden}
}
@media(max-width:380px){
  .toolbar{padding:8px}.toolbar button,.toolbar .filebtn{font-size:12px;padding-inline:7px}
  .performance-mobile-chart{grid-template-columns:repeat(3,minmax(0,1fr));gap:6px}
  .performance-day{min-height:62px;padding:7px}
  #attendanceTable tbody td{padding:7px}
}
html[data-theme="dark"] .performance-day{background:#20343f;border-color:#456170}
html[data-theme="dark"] .performance-day-meta,html[data-theme="dark"] .performance-day-meta span{color:#c2d4dc}
html[data-theme="dark"] .performance-day-meta b,html[data-theme="dark"] .performance-day>strong{color:#f1f7f9}
html[data-theme="dark"] .performance-day-track{background:#405762}
html[data-theme="dark"] .performance-day.status-ausencia{background:#3b272b;border-color:#704247}
html[data-theme="dark"] .performance-day.status-vacaciones{background:#203946;border-color:#456b7d}
html[data-theme="dark"] .performance-day.status-libre{background:#29343a;border-color:#4a5960}
html[data-theme="dark"] #attendanceTable tbody tr{background:#182832;border-color:#405a67;box-shadow:0 2px 8px #0002}
html[data-theme="dark"] #attendanceTable tbody td{color:#e2ebf0;border-color:#304651}
html[data-theme="dark"] #attendanceTable tbody td:nth-child(1),html[data-theme="dark"] #attendanceTable tbody td:nth-child(2){background:#20343f}
html[data-theme="dark"] #attendanceTable tbody td::before{color:#b8cbd5}
.toolbar button,.toolbar .filebtn{min-width:0;max-width:100%;white-space:normal;overflow-wrap:anywhere}
@media(max-width:680px){button,.filebtn{max-width:100%;min-width:0;white-space:normal;overflow-wrap:anywhere}}

/* OnControl v50: selector de asistencia compacto y controles móviles contenidos. */
.attendance-mobile-picker{display:none}
.manager-hub-actions{display:flex;gap:8px;flex-wrap:wrap;min-width:0}
.manager-alerts{display:block;color:var(--muted);font-size:12px;line-height:1.4}
.shift-planning{margin-top:14px}
.shift-form{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:9px;align-items:end}
.shift-form .field input,.shift-form .field select{width:100%;min-width:0}
.shift-note{grid-column:span 2}
.shift-actions{display:flex;gap:7px;flex-wrap:wrap}
.shift-list{display:grid;gap:7px;margin-top:12px}
.shift-item,.audit-entry,.branch-report-card{border:1px solid var(--line);border-radius:10px;padding:10px;min-width:0}
.shift-item{display:flex;justify-content:space-between;align-items:center;gap:8px}
.shift-item>div:first-child{display:grid;gap:3px;min-width:0}.shift-item span,.shift-item small{color:var(--muted)}.shift-item>div:last-child{display:flex;gap:5px;flex-wrap:wrap}
.audit-dialog,.branch-report-dialog{width:min(900px,calc(100vw - 28px));max-height:min(86vh,900px);overflow:auto}
.audit-filter{display:grid;gap:5px;margin-bottom:12px}.audit-list,.branch-report-list{display:grid;gap:8px}
.audit-entry-head{display:flex;justify-content:space-between;gap:8px;flex-wrap:wrap}.audit-entry-head span,.audit-entry p{color:var(--muted);font-size:12px}.audit-entry p{margin:5px 0}.audit-entry pre{white-space:pre-wrap;overflow-wrap:anywhere;max-height:180px;overflow:auto;font:11px/1.4 ui-monospace,monospace;background:#f2f6f8;padding:8px;border-radius:7px}
.audit-values{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.branch-report-card h3{margin:0 0 8px}.branch-report-card>div{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}.branch-report-card span{display:grid;color:var(--muted);font-size:12px}.branch-report-card b{font-size:17px;color:var(--dark)}
.brand-logo-button{border:0!important;border-radius:0!important;background:transparent!important;box-shadow:none!important}
.brand-logo{border:0!important;outline:0!important;box-shadow:none!important;background:transparent!important;object-fit:cover;transform:scale(1.04)}
html[data-theme="dark"] .audit-entry pre{background:#14242d;color:#edf5f8}
@media(max-width:680px){
  header{align-items:flex-start;gap:8px;padding-top:12px;padding-bottom:12px}
  header .brand{width:100%;min-width:0;display:flex;align-items:center;gap:9px;padding-right:52px}
  .brand-logo-button,.brand-logo{width:42px;height:42px;min-width:42px;min-height:42px;flex-basis:42px}
  .brand-copy{min-width:0}.brand-copy h1{font-size:23px}.brand-copy p{font-size:12px}
  .theme-toggle{position:absolute;top:12px;right:12px}
  .userbar{width:100%;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:7px;font-size:12px}
  .userbar #syncState{grid-column:1}.userbar #userEmail{grid-column:2;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;align-self:center}.userbar #profileBtn,.userbar #logoutBtn{width:100%;min-width:0;padding:8px 7px;font-size:12px;white-space:normal;line-height:1.15}
  .toolbar{width:100%;min-width:0;overflow:visible;padding:10px}
  .toolbar-row{width:100%;min-width:0;display:grid!important;grid-template-columns:minmax(0,1fr);gap:7px}
  .toolbar-group{width:100%;min-width:0}
  .toolbar-group button,.toolbar-group .filebtn,.toolbar-menu,.toolbar-menu>summary{width:100%;max-width:100%;min-width:0;min-height:38px;padding:8px 7px;font-size:12px;line-height:1.15;white-space:normal;overflow-wrap:anywhere}
  .company-picker{display:grid!important;grid-template-columns:auto minmax(0,1fr)!important;align-items:center}
  .company-picker select{width:100%;min-width:0;max-width:100%}
  .company-actions,.primary-actions,.data-actions{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr))!important}
  .company-actions .toolbar-menu{grid-column:span 1}
  .month-picker{display:grid!important;grid-template-columns:auto 34px minmax(0,1fr) 34px!important;width:100%;max-width:100%;min-width:0;gap:4px;padding:4px}
  .month-picker label{grid-column:1}.month-picker .month-step[data-month-step="-1"]{grid-column:2}.month-picker input[type=month]{grid-column:3;width:100%;max-width:100%;min-width:0;padding:6px 4px;font-size:12px}.month-picker .month-step[data-month-step="1"]{grid-column:4}
  .manager-hub{align-items:stretch;flex-direction:column;gap:8px}.manager-hub-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));width:100%}.manager-hub-actions button{min-width:0;white-space:normal;line-height:1.2}
  .tabletop{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:center;gap:7px}
  .tabletop h2{grid-column:1/-1}.tabletop label[for=period]{grid-column:1;grid-row:2}.tabletop #period{grid-column:2;grid-row:2;width:100%;min-width:0}.tabletop #fillWeekdays,.tabletop #clearAttendance{width:100%;min-width:0;min-height:38px;padding:7px;font-size:12px;line-height:1.2}
  .attachment-privacy-note{display:none}.attachment-limit{font-size:11px}
  .attendance-mobile-picker{display:block;margin:6px 0 10px;padding:9px;border:1px solid var(--line);border-radius:11px;background:color-mix(in srgb,#85b7d6 9%,var(--surface,#fff))}
  .mobile-picker-head{display:flex;justify-content:space-between;align-items:center;gap:8px;margin-bottom:7px;font-size:12px}.mobile-picker-head span{color:var(--muted);text-align:right}
  .attendance-day-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:5px}
  .attendance-day-choice{display:grid;place-items:center;align-content:center;gap:2px;min-width:0;min-height:40px;padding:3px 1px;border:1px solid var(--line);border-radius:8px;background:var(--surface,#fff);color:var(--dark);font-size:12px;line-height:1.05}
  .attendance-day-choice small{font-size:8px;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--muted)}
  .attendance-day-choice.selected{background:#0b5471;border-color:#0b5471;color:#fff}.attendance-day-choice.selected small{color:#e6f4fa}
  .attendance-day-choice.status-asistencia:not(.selected){border-bottom:3px solid #2a8a62}.attendance-day-choice.status-ausencia:not(.selected){border-bottom:3px solid #b64b4b}.attendance-day-choice.status-vacaciones:not(.selected){border-bottom:3px solid #85b7d6}.attendance-day-choice.status-libre:not(.selected){border-bottom:3px solid #899197}
  #attendanceTable tbody tr{display:none!important}#attendanceTable tbody tr.mobile-active-day{display:grid!important}
  .shift-form{grid-template-columns:repeat(2,minmax(0,1fr))}.shift-note{grid-column:1/-1}.shift-actions{grid-column:1/-1}.shift-actions button{flex:1;min-width:0}
  .audit-values,.branch-report-card>div{grid-template-columns:repeat(2,minmax(0,1fr))}
  .tools-card .reminder-form .formgrid{grid-template-columns:minmax(0,1fr)!important}.tools-card .reminder-actions{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:380px){.month-picker{grid-template-columns:auto 30px minmax(0,1fr) 30px!important}.month-picker .month-step{width:30px!important;min-width:30px!important}.attendance-day-choice small{font-size:7px}.toolbar-group button,.toolbar-group .filebtn{font-size:11px;padding-inline:5px}.manager-hub-actions{grid-template-columns:minmax(0,1fr)}}

/* OnControl v51: selector de días y edición diaria por trabajador. */
.attendance-mobile-picker{display:block;margin:10px 0;padding:12px;border:1px solid var(--line);border-radius:13px;background:color-mix(in srgb,#85b7d6 9%,var(--surface,#fff))}
.attendance-weekdays{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:5px;margin:0 0 5px;text-align:center;color:var(--muted);font-size:11px;font-weight:750}
.attendance-day-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:5px}
.attendance-day-choice{display:grid;place-items:center;align-content:center;gap:2px;min-width:0;min-height:42px;padding:4px 2px;border:1px solid var(--line);border-radius:9px;background:var(--surface,#fff);color:var(--dark);font-size:13px;line-height:1.05}
.attendance-day-choice small{max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--muted);font-size:9px}.attendance-day-choice.selected{background:#0b5471;border-color:#0b5471;color:#fff}.attendance-day-choice.selected small{color:#e6f4fa}
.attendance-day-choice.status-asistencia:not(.selected){border-bottom:3px solid #2a8a62}.attendance-day-choice.status-ausencia:not(.selected){border-bottom:3px solid #b64b4b}.attendance-day-choice.status-vacaciones:not(.selected){border-bottom:3px solid #85b7d6}.attendance-day-choice.status-libre:not(.selected){border-bottom:3px solid #899197}
.attendance-day-roster{margin:10px 0 16px;padding:14px;border:1px solid var(--line);border-radius:13px;background:var(--surface,#fff)}.attendance-roster-heading{display:flex;justify-content:space-between;align-items:baseline;gap:10px;margin-bottom:10px}.attendance-roster-heading h3{margin:0;color:var(--dark);font-size:17px}.attendance-roster-heading p{margin:0;color:var(--muted);font-size:12px}.attendance-day-employee-list{display:grid;gap:7px}.attendance-roster-row{display:grid;grid-template-columns:minmax(150px,1.2fr) minmax(135px,.9fr) minmax(90px,.55fr) minmax(150px,1fr);gap:9px;align-items:end;padding:9px;border:1px solid var(--line);border-radius:10px;background:color-mix(in srgb,#85b7d6 5%,var(--surface,#fff))}.attendance-roster-person{display:grid;gap:3px;min-width:0;align-self:center}.attendance-roster-person strong{overflow-wrap:anywhere;color:var(--dark);font-size:13px}.attendance-roster-person small{color:var(--muted);font-size:11px}.attendance-roster-row label{display:grid;gap:4px;min-width:0;color:var(--muted);font-size:10px;font-weight:700}.attendance-roster-row input,.attendance-roster-row select{width:100%;min-width:0;min-height:36px;padding:6px 8px;font-size:13px}.attendance-section .tablewrap,.attendance-section .table-scroll-hint,.attendance-section .attachment-privacy-note,.attendance-section .attachment-limit{display:none!important}
html[data-theme="dark"] .attendance-roster-row{background:#20343f;border-color:#405a67}html[data-theme="dark"] .attendance-day-roster{background:#182832}
@media(max-width:680px){.attendance-mobile-picker{padding:9px}.mobile-picker-head{display:flex;justify-content:space-between;align-items:center;gap:8px;margin-bottom:7px;font-size:12px}.mobile-picker-head span{color:var(--muted);text-align:right}.attendance-day-choice{min-height:40px;font-size:12px}.attendance-day-choice small{font-size:8px}.attendance-roster-heading{display:block}.attendance-roster-heading h3{font-size:16px}.attendance-roster-heading p{margin-top:4px;line-height:1.4}.attendance-day-roster{padding:10px}.attendance-roster-row{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:8px;padding:9px}.attendance-roster-person{grid-column:1/-1;padding-bottom:6px;border-bottom:1px solid var(--line)}.attendance-roster-note{grid-column:1/-1}.attendance-roster-row label{font-size:10px}.attendance-roster-row input,.attendance-roster-row select{min-height:40px;font-size:14px}}
@media(max-width:360px){.attendance-weekdays,.attendance-day-grid{gap:3px}.attendance-day-choice{min-height:36px}.attendance-day-choice small{font-size:7px}.attendance-roster-row{gap:6px;padding:7px}}

.attendance-roster-files{grid-column:1/-1;display:flex;align-items:center;flex-wrap:wrap;gap:6px;min-width:0}.attendance-roster-files small{color:var(--muted);font-size:10px}.attendance-roster-files .attendance-file-link{max-width:100%;overflow-wrap:anywhere;font-size:11px}@media(min-width:681px){.attendance-roster-files{padding-top:2px}}

/* OnControl v52: contención de controles móviles y edición aislada por trabajador. */
.attendance-roster-heading{align-items:flex-end}.attendance-roster-heading>div{min-width:0}.attendance-roster-select-label{display:grid;gap:4px;min-width:min(230px,100%);color:var(--muted);font-size:11px;font-weight:700}.attendance-roster-select-label select{width:100%;min-width:0;max-width:100%;min-height:38px;font-size:13px}.attendance-roster-empty{padding:14px;border:1px dashed var(--line);border-radius:10px;background:color-mix(in srgb,#85b7d6 7%,var(--surface,#fff));color:var(--muted);font-size:13px}.stats .stat{min-width:0;overflow-wrap:anywhere}.stats .stat strong{font-size:clamp(16px,2vw,23px)}
@media(max-width:680px){.reminder-form,.reminder-form .field,.reminder-form input,.reminder-form button,.shift-form,.shift-form .field,.shift-form .field input,.shift-form .field select{box-sizing:border-box;min-width:0;max-width:100%}.reminder-form input{width:100%;font-size:16px}.reminder-form input[type=time]{display:block;width:100%;min-width:0;max-width:100%;padding-inline:10px}.shift-form{grid-template-columns:repeat(2,minmax(0,1fr))!important;width:100%}.shift-form .field{width:100%;min-width:0}.shift-form input[type=date],.shift-form input[type=time],.shift-form select{width:100%;min-width:0;max-width:100%;padding-inline:7px;font-size:14px}.month-picker{grid-template-columns:auto 34px minmax(0,1fr) 34px!important;min-width:0;max-width:100%;width:100%}.month-picker input[type=month]{width:100%;min-width:0;max-width:100%;box-sizing:border-box;padding-inline:4px;font-size:12px}.attendance-roster-heading{display:grid;grid-template-columns:minmax(0,1fr);gap:8px}.attendance-roster-select-label{width:100%;min-width:0}.attendance-roster-row{min-width:0}.attendance-roster-person,.attendance-roster-row label,.attendance-roster-files{min-width:0}.attendance-roster-row input,.attendance-roster-row select{box-sizing:border-box;max-width:100%}.stats .stat{min-width:0;padding:10px}.stats .stat small{font-size:11px;line-height:1.3}.stats .stat strong{font-size:clamp(14px,4vw,19px);overflow-wrap:anywhere}}
@media(max-width:420px){.shift-form{grid-template-columns:minmax(0,1fr)!important}.shift-note,.shift-actions{grid-column:1}.shift-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}.reminder-actions{grid-template-columns:minmax(0,1fr)!important}.month-picker{grid-template-columns:auto 30px minmax(0,1fr) 30px!important}.month-picker .month-step{width:30px!important;min-width:30px!important}}
html[data-theme="dark"] .attendance-roster-empty{background:#20343f;color:#d5e2e8}html[data-theme="dark"] .attendance-roster-select-label{color:#c0d4de}

/* OnControl v53: colores de estado por trabajador seleccionado. */
.attendance-day-choice{transition:background-color .15s ease,border-color .15s ease,box-shadow .15s ease}.attendance-day-choice.status-asistencia:not(.selected){background:#e8f5ee;border-color:#84c3a0;color:#145b39}.attendance-day-choice.status-asistencia:not(.selected) small{color:#24734d}.attendance-day-choice.status-ausencia:not(.selected){background:#fff0ef;border-color:#e1a2a0;color:#8f3030}.attendance-day-choice.status-ausencia:not(.selected) small{color:#a53d3d}.attendance-day-choice.status-vacaciones:not(.selected){background:#eaf4fb;border-color:#8ebbd4;color:#165b7c}.attendance-day-choice.status-vacaciones:not(.selected) small{color:#286e91}.attendance-day-choice.status-libre:not(.selected){background:#eef1f3;border-color:#aeb8be;color:#4e5d65}.attendance-day-choice.status-libre:not(.selected) small{color:#66747b}.attendance-day-choice.status-pendiente:not(.selected){background:#f3f4f5;border-color:#c8cdd1;color:#667078}.attendance-day-choice.status-pendiente:not(.selected) small{color:#778188}.attendance-day-choice.selected.status-asistencia{box-shadow:inset 0 -4px #55c28a}.attendance-day-choice.selected.status-ausencia{box-shadow:inset 0 -4px #f27a77}.attendance-day-choice.selected.status-vacaciones{box-shadow:inset 0 -4px #85c7e8}.attendance-day-choice.selected.status-libre{box-shadow:inset 0 -4px #b5c0c6}.attendance-day-choice.selected.status-pendiente{box-shadow:inset 0 -4px #b5c0c6}
html[data-theme="dark"] .attendance-day-choice.status-asistencia:not(.selected){background:#1d3c30;border-color:#397d5b;color:#c9f2d9}html[data-theme="dark"] .attendance-day-choice.status-asistencia:not(.selected) small{color:#a5dfbd}html[data-theme="dark"] .attendance-day-choice.status-ausencia:not(.selected){background:#442a2c;border-color:#85474a;color:#ffd8d6}html[data-theme="dark"] .attendance-day-choice.status-ausencia:not(.selected) small{color:#ffc2bf}html[data-theme="dark"] .attendance-day-choice.status-vacaciones:not(.selected){background:#203c4b;border-color:#46748d;color:#d5effb}html[data-theme="dark"] .attendance-day-choice.status-vacaciones:not(.selected) small{color:#b8e0f2}html[data-theme="dark"] .attendance-day-choice.status-libre:not(.selected){background:#303a40;border-color:#59676e;color:#e0e8ec}html[data-theme="dark"] .attendance-day-choice.status-libre:not(.selected) small{color:#c4d0d6}html[data-theme="dark"] .attendance-day-choice.status-pendiente:not(.selected){background:#293238;border-color:#4f5c63;color:#d4dde1}html[data-theme="dark"] .attendance-day-choice.status-pendiente:not(.selected) small{color:#bdc8ce}

/* OnControl v54: controles móviles contenidos, estados con color sólido y gráfico diario ampliado. */
@media(max-width:680px){.reminder-form,.reminder-form .formgrid,.reminder-form .field,.reminder-actions,.reminder-form input,.month-picker,.month-picker>*{min-width:0;max-width:100%;box-sizing:border-box}.reminder-form input[type=time]{display:block!important;width:100%!important;max-width:100%!important;min-width:0!important;padding:8px 7px!important;font-size:16px!important;text-align:center}.reminder-form input[type=time]::-webkit-date-and-time-value{width:100%;min-width:0;margin:0;text-align:center}.reminder-form input[type=time]::-webkit-calendar-picker-indicator{margin:0;padding:0}.month-picker{grid-template-columns:auto 30px minmax(0,1fr) 30px!important;width:100%!important;overflow:hidden;gap:3px!important;padding:4px!important}.month-picker input[type=month]{display:block;width:100%!important;max-width:100%!important;min-width:0!important;box-sizing:border-box!important;padding:6px 2px!important;font-size:12px!important}.month-picker input[type=month]::-webkit-datetime-edit{min-width:0;overflow:hidden}.month-picker input[type=month]::-webkit-calendar-picker-indicator{margin:0;padding:0}.month-picker .month-step{width:30px!important;min-width:30px!important;max-width:30px!important;padding:4px!important}.performance-chart-scroll,.performance-chart-scroll#performanceChartWrap{display:block!important;width:100%;max-width:100%;min-height:250px;overflow-x:auto!important;overflow-y:hidden!important;-webkit-overflow-scrolling:touch;touch-action:pan-x}.performance-mobile-chart{display:none!important}#performanceChart{display:block;height:250px;max-width:none!important}#performanceChartWrap svg{max-width:none!important}.performance-scroll-help{display:block!important;font-size:11px;margin:5px 0 9px}}
@media(max-width:380px){.month-picker{grid-template-columns:auto 28px minmax(0,1fr) 28px!important}.month-picker .month-step{width:28px!important;min-width:28px!important;max-width:28px!important}.reminder-form input[type=time]{padding-inline:4px!important}}
/* Día completo coloreado en escritorio y móvil, con contorno aparte para la selección. */
.attendance-day-choice.status-asistencia:not(.selected),.attendance-day-choice.selected.status-asistencia{background:#d8f0e2!important;border-color:#69ae86!important;color:#124f31!important}.attendance-day-choice.status-asistencia small{color:#216c45!important}.attendance-day-choice.status-ausencia:not(.selected),.attendance-day-choice.selected.status-ausencia{background:#f9dddd!important;border-color:#d58a88!important;color:#7d2424!important}.attendance-day-choice.status-ausencia small{color:#963636!important}.attendance-day-choice.status-vacaciones:not(.selected),.attendance-day-choice.selected.status-vacaciones{background:#d9edf8!important;border-color:#7aafca!important;color:#124f6c!important}.attendance-day-choice.status-vacaciones small{color:#246a8b!important}.attendance-day-choice.status-libre:not(.selected),.attendance-day-choice.selected.status-libre{background:#fff0b8!important;border-color:#d3b854!important;color:#66520a!important}.attendance-day-choice.status-libre small{color:#796314!important}.attendance-day-choice.status-pendiente:not(.selected),.attendance-day-choice.selected.status-pendiente{background:#e5e8ea!important;border-color:#b5bdc2!important;color:#4e5960!important}.attendance-day-choice.status-pendiente small{color:#68747a!important}.attendance-day-choice.selected{outline:2px solid #0b5471!important;outline-offset:1px;box-shadow:none!important}
html[data-theme="dark"] .attendance-day-choice.status-asistencia:not(.selected),html[data-theme="dark"] .attendance-day-choice.selected.status-asistencia{background:#27553d!important;border-color:#4e9a6d!important;color:#effff4!important}html[data-theme="dark"] .attendance-day-choice.status-asistencia small{color:#c2f1d0!important}html[data-theme="dark"] .attendance-day-choice.status-ausencia:not(.selected),html[data-theme="dark"] .attendance-day-choice.selected.status-ausencia{background:#63393b!important;border-color:#aa5c5d!important;color:#fff1f0!important}html[data-theme="dark"] .attendance-day-choice.status-ausencia small{color:#ffdcda!important}html[data-theme="dark"] .attendance-day-choice.status-vacaciones:not(.selected),html[data-theme="dark"] .attendance-day-choice.selected.status-vacaciones{background:#28536a!important;border-color:#5790ae!important;color:#effaff!important}html[data-theme="dark"] .attendance-day-choice.status-vacaciones small{color:#d0effd!important}html[data-theme="dark"] .attendance-day-choice.status-libre:not(.selected),html[data-theme="dark"] .attendance-day-choice.selected.status-libre{background:#655719!important;border-color:#a28c32!important;color:#fff9db!important}html[data-theme="dark"] .attendance-day-choice.status-libre small{color:#fff0a8!important}html[data-theme="dark"] .attendance-day-choice.status-pendiente:not(.selected),html[data-theme="dark"] .attendance-day-choice.selected.status-pendiente{background:#3a444a!important;border-color:#64727a!important;color:#f0f4f6!important}html[data-theme="dark"] .attendance-day-choice.status-pendiente small{color:#d1dce1!important}
@media(max-width:680px){.reminder-form input[type=time]{width:calc(100% - 10px)!important;max-width:calc(100% - 10px)!important;margin-right:10px}.month-picker #month{width:calc(100% - 8px)!important;max-width:calc(100% - 8px)!important;justify-self:center}}
/* OnControl v55: contraste accesible del selector de asistencia en tema oscuro. */
html[data-theme="dark"] .attendance-mobile-picker{background:#142832!important;border-color:#486675!important;color:#f3f8fa!important;box-shadow:0 5px 18px #0004}
html[data-theme="dark"] .attendance-mobile-picker .mobile-picker-head,html[data-theme="dark"] .attendance-mobile-picker .mobile-picker-head strong{color:#f4f8fa!important}
html[data-theme="dark"] .attendance-mobile-picker .mobile-picker-head span{color:#d6e4ea!important}
html[data-theme="dark"] .attendance-weekdays{color:#c6d8e0!important}
html[data-theme="dark"] .attendance-day-choice.status-asistencia:not(.selected),html[data-theme="dark"] .attendance-day-choice.selected.status-asistencia{background:#286b47!important;border-color:#72d39b!important;color:#fff!important}
html[data-theme="dark"] .attendance-day-choice.status-asistencia small{color:#edfff3!important}
html[data-theme="dark"] .attendance-day-choice.status-ausencia:not(.selected),html[data-theme="dark"] .attendance-day-choice.selected.status-ausencia{background:#963b3d!important;border-color:#ff8e8d!important;color:#fff!important}
html[data-theme="dark"] .attendance-day-choice.status-ausencia small{color:#fff0ef!important}
html[data-theme="dark"] .attendance-day-choice.status-vacaciones:not(.selected),html[data-theme="dark"] .attendance-day-choice.selected.status-vacaciones{background:#216486!important;border-color:#82d5fa!important;color:#fff!important}
html[data-theme="dark"] .attendance-day-choice.status-vacaciones small{color:#edfaff!important}
html[data-theme="dark"] .attendance-day-choice.status-libre:not(.selected),html[data-theme="dark"] .attendance-day-choice.selected.status-libre{background:#79631a!important;border-color:#f2d66e!important;color:#fff!important}
html[data-theme="dark"] .attendance-day-choice.status-libre small{color:#fff9df!important}
html[data-theme="dark"] .attendance-day-choice.status-pendiente:not(.selected),html[data-theme="dark"] .attendance-day-choice.selected.status-pendiente{background:#4b5961!important;border-color:#aebdc5!important;color:#fff!important}
html[data-theme="dark"] .attendance-day-choice.status-pendiente small{color:#edf3f6!important}
html[data-theme="dark"] .attendance-day-choice.selected{outline:3px solid #a9e6ff!important;outline-offset:1px}

/* OnControl v56: cierre de totales y planificación de turnos compacta. */
.payroll-total-summary{margin-top:16px;padding:15px;border:2px solid #4b9bc5;border-left:6px solid #0b5471;border-radius:14px;background:linear-gradient(135deg,#eef8fd,#dceef7);box-shadow:0 5px 18px #0b547114}.payroll-total-heading{margin-bottom:11px}.payroll-total-kicker{color:#397f9f;font-size:10px;font-weight:850;letter-spacing:.12em}.payroll-total-heading h3{margin:3px 0;color:#0b5471;font-size:18px}.payroll-total-heading p{margin:0;color:#526c79;font-size:12px}.payroll-total-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(165px,1fr));gap:9px}.payroll-total-card{display:grid;align-content:center;gap:5px;min-width:0;min-height:68px;padding:11px 12px;border:1px solid #9ecde2;border-radius:10px;background:#fff;color:#16445c}.payroll-total-card small{color:#527282;font-size:11px;line-height:1.3}.payroll-total-card strong{color:#0b5471;font-size:19px;overflow-wrap:anywhere}.payroll-total-grand{border:2px solid #0b5471;background:#0b5471}.payroll-total-grand small,.payroll-total-grand strong{color:#fff}.shift-planning{position:relative;overflow:hidden;border-left:5px solid #0b5471;background:linear-gradient(135deg,var(--surface,#fff),color-mix(in srgb,#85b7d6 10%,var(--surface,#fff)));padding:16px}.shift-planning>.tabletop{align-items:flex-start;border-bottom:1px solid var(--line);padding-bottom:11px}.shift-planning>.tabletop h2{color:var(--dark)}.shift-planning>.tabletop .note{margin:3px 0 0;max-width:560px;line-height:1.45}.shift-form{padding:12px;border:1px solid var(--line);border-radius:12px;background:color-mix(in srgb,#85b7d6 5%,var(--surface,#fff));grid-template-columns:repeat(4,minmax(0,1fr));gap:9px}.shift-form .field{min-width:0}.shift-form .field input,.shift-form .field select{width:100%;max-width:100%;min-width:0;box-sizing:border-box}.shift-form .shift-note{grid-column:span 2}.shift-actions{align-self:end}.shift-list{margin-top:11px}.shift-item{background:var(--surface,#fff)}
html[data-theme="dark"] .payroll-total-summary{background:linear-gradient(135deg,#183442,#1c3c4b);border-color:#4b9bc5;border-left-color:#86d8fa}html[data-theme="dark"] .payroll-total-heading h3,html[data-theme="dark"] .payroll-total-kicker{color:#d9f3ff}html[data-theme="dark"] .payroll-total-heading p{color:#c0d4de}html[data-theme="dark"] .payroll-total-card{background:#203844;border-color:#527789}html[data-theme="dark"] .payroll-total-card small{color:#c1d6e0}html[data-theme="dark"] .payroll-total-card strong{color:#e8f8ff}html[data-theme="dark"] .payroll-total-grand{background:#0b5471;border-color:#7dc8e8}html[data-theme="dark"] .shift-planning{background:linear-gradient(135deg,#172a34,#1b3440);border-color:#3c5966;border-left-color:#73bfdc}html[data-theme="dark"] .shift-form{background:#1c323d;border-color:#405d6b}html[data-theme="dark"] .shift-item{background:#1b303a}
@media(max-width:680px){.payroll-total-summary{padding:11px}.payroll-total-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:7px}.payroll-total-card{min-height:62px;padding:9px}.payroll-total-card strong{font-size:17px}.payroll-total-grand{grid-column:1/-1}.shift-planning{padding:11px}.shift-planning>.tabletop{display:block}.shift-form{grid-template-columns:repeat(2,minmax(0,1fr))!important;padding:9px;gap:8px}.shift-form>.field:first-child,.shift-form>.field:nth-child(2),.shift-form .shift-note,.shift-form .shift-actions{grid-column:1/-1}.shift-form>.field:nth-child(3),.shift-form>.field:nth-child(4){grid-column:span 1}.shift-form .field input[type=date],.shift-form .field input[type=time]{width:calc(100% - 8px);max-width:calc(100% - 8px);min-width:0;padding-inline:6px;font-size:14px}.shift-form .field select,.shift-form .field input:not([type=date]):not([type=time]){width:100%;max-width:100%;min-width:0}.shift-actions{display:flex;flex-wrap:wrap}.shift-actions button{max-width:100%;min-width:0}}
@media(max-width:380px){.payroll-total-grid{grid-template-columns:minmax(0,1fr)}.payroll-total-grand{grid-column:auto}.shift-form{grid-template-columns:minmax(0,1fr)!important}.shift-form>.field:nth-child(3),.shift-form>.field:nth-child(4){grid-column:1/-1}.shift-form .field input[type=date],.shift-form .field input[type=time]{width:calc(100% - 10px);max-width:calc(100% - 10px)}}

.payroll-total-subheading{margin:13px 0 7px;color:#276486;font-size:13px;font-weight:800}.payroll-total-subheading:first-of-type{margin-top:4px}.payroll-total-grid+.payroll-total-subheading{padding-top:11px;border-top:1px solid #a9cfdf}.payroll-total-grand{box-shadow:0 4px 12px #0b547125}.shift-form .field input[type=date],.shift-form .field input[type=time]{font-variant-numeric:tabular-nums}.shift-planning .shift-actions button{min-height:39px}
html[data-theme="dark"] .payroll-total-subheading{color:#bceaff}html[data-theme="dark"] .payroll-total-grid+.payroll-total-subheading{border-top-color:#456876}

/* OnControl v57: indicadores principales antes de planificar turnos. */
.company-summary{margin:14px 0 16px;padding:15px;border:1px solid #c9dce6;border-radius:16px;background:linear-gradient(135deg,#fff,#f1f7fa);box-shadow:0 5px 18px #0b54710a}.company-summary-heading{display:flex;justify-content:space-between;align-items:end;gap:12px;margin:0 2px 11px}.company-summary-heading>div>span{color:#57819a;font-size:10px;font-weight:850;letter-spacing:.12em}.company-summary-heading h2{margin:2px 0 0;color:#17384b;font-size:18px}.company-summary-heading p{margin:0;color:#607582;font-size:12px}.dashboard-kpis{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:9px;margin:0}.dashboard-kpis .stat{position:relative;display:flex;flex-direction:column;justify-content:center;min-width:0;min-height:102px;padding:12px 13px 11px 15px;border:1px solid #d6e3e9;border-left:4px solid #85b7d6;border-radius:12px;background:#fff;box-shadow:0 3px 10px #16394c0a}.dashboard-kpis .stat small{min-height:30px;color:#526b79;font-size:11px;font-weight:700;line-height:1.3}.dashboard-kpis .stat strong{color:#17384b;font-size:clamp(17px,1.5vw,22px);line-height:1.15;overflow-wrap:anywhere}.dashboard-kpis .stat>span{margin-top:5px;color:#71838d;font-size:10px;line-height:1.2}.dashboard-kpis .kpi-payroll{border-left-color:#4e9dc4;background:#f6fbfe}.dashboard-kpis .kpi-payroll strong{color:#0b5471}.dashboard-kpis .kpi-payroll-total{border:2px solid #0b5471;border-left-width:5px;background:#e8f5fb;box-shadow:0 4px 13px #0b547120}.company-summary .hidden{display:none!important}html[data-theme="dark"] .company-summary{border-color:#3c5b69;background:linear-gradient(135deg,#182b35,#1c3440);box-shadow:0 5px 18px #0003}html[data-theme="dark"] .company-summary-heading>div>span{color:#9fcde2}html[data-theme="dark"] .company-summary-heading h2{color:#f0f7fa}html[data-theme="dark"] .company-summary-heading p{color:#c2d1d8}html[data-theme="dark"] .dashboard-kpis .stat{background:#1c303a;border-color:#405965;border-left-color:#78b9d5}html[data-theme="dark"] .dashboard-kpis .stat small{color:#c8d7de}html[data-theme="dark"] .dashboard-kpis .stat strong{color:#f2f8fa}html[data-theme="dark"] .dashboard-kpis .stat>span{color:#b4c5cd}html[data-theme="dark"] .dashboard-kpis .kpi-payroll{background:#203945;border-left-color:#69b8dc}html[data-theme="dark"] .dashboard-kpis .kpi-payroll strong{color:#d4f1ff}html[data-theme="dark"] .dashboard-kpis .kpi-payroll-total{background:#104d66;border-color:#69b8dc}
@media(max-width:1200px){.dashboard-kpis{grid-template-columns:repeat(3,minmax(0,1fr))}}@media(max-width:680px){.company-summary{margin:10px 0 13px;padding:11px;border-radius:13px}.company-summary-heading{display:block;margin-bottom:8px}.company-summary-heading h2{font-size:16px}.company-summary-heading p{margin-top:3px;font-size:11px}.dashboard-kpis{grid-template-columns:repeat(2,minmax(0,1fr));gap:7px}.dashboard-kpis .stat{min-height:88px;padding:9px 10px 9px 12px}.dashboard-kpis .stat small{min-height:28px;font-size:10px}.dashboard-kpis .stat strong{font-size:clamp(15px,4vw,19px)}.dashboard-kpis .stat>span{font-size:9px}}
@media(max-width:360px){.dashboard-kpis{grid-template-columns:minmax(0,1fr)}.dashboard-kpis .stat{min-height:72px}}

.weekend-free-button{border-color:#d9c56d!important;background:#fff8d8!important;color:#66520a!important}.weekend-free-button:hover{background:#ffefad!important}@media(max-width:680px){.tabletop #markSaturdaysFree,.tabletop #markSundaysFree{min-width:0;max-width:100%;white-space:normal;overflow-wrap:anywhere;line-height:1.2}}html[data-theme="dark"] .weekend-free-button{background:#554719!important;border-color:#927c30!important;color:#fff2b8!important}html[data-theme="dark"] .weekend-free-button:hover{background:#6c5a1c!important}

/* OnControl v59: mensajes móviles breves y rendimiento circular en una sola tarjeta. */
@media(max-width:680px){.tools-hub-heading .note,.tools-card .tabletop .note,.shift-planning .tabletop .note,.performance-heading p,.performance-note{max-width:46ch;font-size:12px!important;line-height:1.42!important;overflow-wrap:anywhere}.tools-card .tabletop .note{margin:2px 0 0}.tools-hub-heading{gap:5px}.tools-card .tabletop{gap:5px}.performance-metrics{display:none!important}.performance-chart-scroll{display:none!important}.performance-mobile-chart{display:block!important;margin:10px 0 8px}.performance-donut-card{min-width:0;padding:12px;border:1px solid #cbdde6;border-top:4px solid #0b5471;border-radius:14px;background:linear-gradient(145deg,#fff,#f2f8fb);box-shadow:0 4px 12px #0b54710d}.performance-donut-heading{display:flex;justify-content:space-between;align-items:center;gap:8px;margin-bottom:9px}.performance-donut-heading>div{display:grid;gap:2px;min-width:0}.performance-donut-heading strong{color:#17384b;font-size:14px}.performance-donut-heading small{color:#607582;font-size:10px;text-transform:capitalize}.performance-donut-heading>span{flex:0 0 auto;padding:5px 8px;border-radius:999px;background:#e7f2f7;color:#275b73;font-size:10px;font-weight:750}.performance-donut-content{display:grid;grid-template-columns:minmax(100px,.8fr) minmax(0,1.2fr);align-items:center;gap:8px}.performance-donut{display:block;width:min(100%,145px);height:auto;justify-self:center;overflow:visible}.performance-donut text{font-family:system-ui,-apple-system,Segoe UI,Roboto,Arial,sans-serif}.donut-center-value{fill:#17384b;font-size:18px;font-weight:800}.donut-center-label{fill:#607582;font-size:7px}.performance-donut-legend{display:grid;gap:5px;min-width:0}.performance-donut-legend-row{display:grid;grid-template-columns:9px minmax(0,1fr) auto 30px;align-items:center;gap:5px;min-width:0;font-size:10px;line-height:1.2}.performance-donut-legend-row i{width:8px;height:8px;border-radius:50%;background:var(--legend-color)}.performance-donut-legend-row span{min-width:0;color:#536b78;overflow-wrap:anywhere}.performance-donut-legend-row b{color:#17384b;font-size:10px;text-align:right}.performance-donut-legend-row small{color:#71838d;font-size:9px;text-align:right}.performance-donut-footer{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;margin-top:9px;padding-top:8px;border-top:1px solid #d8e6ec}.performance-donut-footer>div{display:grid;gap:3px;min-width:0}.performance-donut-footer small{color:#607582;font-size:9px;line-height:1.2}.performance-donut-footer strong{color:#0b5471;font-size:13px;overflow-wrap:anywhere}}
@media(max-width:380px){.performance-donut-card{padding:9px}.performance-donut-content{grid-template-columns:96px minmax(0,1fr);gap:5px}.performance-donut-heading strong{font-size:13px}.performance-donut-legend-row{grid-template-columns:8px minmax(0,1fr) auto 26px;gap:4px;font-size:9px}.performance-donut-footer{gap:4px}.performance-donut-footer strong{font-size:12px}.tools-card .tabletop .note,.tools-hub-heading .note{font-size:11px!important;line-height:1.4!important}}
html[data-theme="dark"] .performance-donut-card{background:linear-gradient(145deg,#1b313b,#172b34);border-color:#426170;border-top-color:#72c9e8;box-shadow:0 4px 14px #0003}html[data-theme="dark"] .performance-donut-heading strong{color:#eff7fa}html[data-theme="dark"] .performance-donut-heading small{color:#c0d1d8}html[data-theme="dark"] .performance-donut-heading>span{background:#284b5a;color:#dff5ff}html[data-theme="dark"] .donut-center-value{fill:#f3f8fa}html[data-theme="dark"] .donut-center-label{fill:#c0d1d8}html[data-theme="dark"] .performance-donut-legend-row span{color:#d1dfe5}html[data-theme="dark"] .performance-donut-legend-row b{color:#f1f7f9}html[data-theme="dark"] .performance-donut-legend-row small{color:#b5c8d1}html[data-theme="dark"] .performance-donut-footer{border-color:#405a66}html[data-theme="dark"] .performance-donut-footer small{color:#bdcdd4}html[data-theme="dark"] .performance-donut-footer strong{color:#a9e3fa}

@media(max-width:680px){.performance-scroll-help,.performance-panel>.performance-legend{display:none!important}}

/* OnControl v60: vuelve al aspecto sencillo de los paneles anteriores. */
.company-summary{margin:14px 0;padding:0;border:0;border-radius:0;background:transparent;box-shadow:none}
.company-summary-heading{display:none!important}
.dashboard-kpis{grid-template-columns:repeat(4,minmax(140px,1fr));gap:12px;margin:14px 0}
.dashboard-kpis .stat{position:static;display:block;min-height:0;padding:16px;border:1px solid var(--line);border-radius:14px;background:#fff;box-shadow:0 3px 12px #18384b08}
.dashboard-kpis .stat small{min-height:0;color:var(--muted);font-size:13px;font-weight:400}
.dashboard-kpis .stat strong{display:block;color:var(--dark);font-size:23px;line-height:1.45}
.dashboard-kpis .stat>span{display:block;margin-top:0;color:var(--muted);font-size:12px}
.dashboard-kpis .kpi-payroll,.dashboard-kpis .kpi-payroll-total{border:1px solid var(--line);background:#fff;box-shadow:0 3px 12px #18384b08}
.dashboard-kpis .kpi-payroll strong{color:var(--dark)}
.shift-planning{position:static;overflow:visible;border:1px solid var(--line);border-left:1px solid var(--line);border-radius:14px;background:#fff;padding:14px;box-shadow:none}
.shift-planning>.tabletop{align-items:center;border-bottom:0;padding-bottom:0}
.shift-form{padding:0;border:0;border-radius:0;background:transparent}
html[data-theme="dark"] .dashboard-kpis .stat{background:#182832;border-color:#3b515d;box-shadow:0 5px 20px #0005}
html[data-theme="dark"] .dashboard-kpis .stat small,html[data-theme="dark"] .dashboard-kpis .stat>span{color:#bdcbd2}
html[data-theme="dark"] .dashboard-kpis .stat strong,html[data-theme="dark"] .dashboard-kpis .kpi-payroll strong{color:#f0f5f7}
html[data-theme="dark"] .dashboard-kpis .kpi-payroll,html[data-theme="dark"] .dashboard-kpis .kpi-payroll-total{background:#182832;border-color:#3b515d}
html[data-theme="dark"] .shift-planning{background:#182832;border-color:#3b515d}
html[data-theme="dark"] .shift-form{background:transparent;border:0}
@media(max-width:1200px){.dashboard-kpis{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:680px){.company-summary{margin:10px 0 13px;padding:0}.dashboard-kpis{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.dashboard-kpis .stat{min-height:72px;padding:11px}.dashboard-kpis .stat small{font-size:11px}.dashboard-kpis .stat strong{font-size:clamp(15px,4vw,19px)}.dashboard-kpis .stat>span{font-size:10px}.shift-planning{padding:11px}}
@media(max-width:360px){.dashboard-kpis{grid-template-columns:minmax(0,1fr)}}
/* OnControl v61: elimina la franja lateral para un solo fondo azul uniforme. */
.payroll-total-summary{border:2px solid #4b9bc5;border-left:2px solid #4b9bc5;background:#e4f3fa;box-shadow:0 4px 14px #0b54710d}
html[data-theme="dark"] .payroll-total-summary{border:2px solid #4b9bc5;border-left:2px solid #4b9bc5;background:#183442}

/* OnControl v61: planilla con fondo azul uniforme y sin franja superpuesta. */
.payroll-total-summary{border:2px solid #4b9bc5;border-left:2px solid #4b9bc5;background:#e5f3fa;box-shadow:0 4px 14px #0b54710d}
html[data-theme="dark"] .payroll-total-summary{border:2px solid #4b9bc5;background:#183442;box-shadow:0 4px 14px #0002}

/* OnControl v62: alinea el selector móvil con los días reales y realza la planilla. */
.attendance-day-empty{display:block;min-width:0;min-height:1px;pointer-events:none}
.payroll-total-summary{padding:15px;border:0;border-top:3px solid #0b78a5;border-radius:0;background:transparent;box-shadow:none}
.payroll-total-heading{margin-bottom:10px}.payroll-total-kicker{color:#0b78a5}.payroll-total-heading h3{color:#0b5471}
.payroll-total-card{border:1px solid #85b7d6;background:#eaf5fb;color:#0b5471;box-shadow:0 2px 8px #0b547110}
.payroll-total-card small{color:#315f75}.payroll-total-card strong{color:#0b5471}
.payroll-total-grand{border:2px solid #087da6;background:#087da6;box-shadow:0 4px 12px #0b547125}
.payroll-total-grand small,.payroll-total-grand strong{color:#fff}
html[data-theme="dark"] .payroll-total-summary{border:0;border-top:3px solid #59c8f1;background:transparent;box-shadow:none}
html[data-theme="dark"] .payroll-total-kicker,html[data-theme="dark"] .payroll-total-heading h3,html[data-theme="dark"] .payroll-total-heading p,html[data-theme="dark"] .payroll-total-subheading{color:#c7f0ff}
html[data-theme="dark"] .payroll-total-card{border:1px solid #5798b5;background:#203f4e;color:#f0fbff;box-shadow:0 3px 10px #0003}
html[data-theme="dark"] .payroll-total-card small{color:#c5e3ee}
html[data-theme="dark"] .payroll-total-card strong{color:#effaff}
html[data-theme="dark"] .payroll-total-grand{border:2px solid #76d8fb;background:#087da6}
html[data-theme="dark"] .payroll-total-grand small,html[data-theme="dark"] .payroll-total-grand strong{color:#fff}
html[data-theme="dark"] .payroll-total-grid+.payroll-total-subheading{border-color:#456876}
@media(max-width:680px){.payroll-total-summary{padding:12px 0}.payroll-total-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.payroll-total-card{min-height:68px}.payroll-total-grand{grid-column:1/-1}}

/* OnControl v63: resumen más ordenado y turnos con campos agrupados. */
.dashboard-kpis{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin:14px 0 17px}
.dashboard-kpis .stat{min-height:94px;padding:14px 16px;border-radius:14px}
.dashboard-kpis .stat small{min-height:0;margin-bottom:3px;font-size:12px;font-weight:650;line-height:1.3}
.dashboard-kpis .stat strong{font-size:clamp(20px,1.8vw,25px);line-height:1.2}
.dashboard-kpis .stat>span{margin-top:4px;font-size:11px}
.dashboard-kpis .kpi-payroll{border-color:#b8d8e8;background:#f0f8fc}
.dashboard-kpis .kpi-payroll strong{color:#0b5471}
.dashboard-kpis .kpi-payroll-total{border:1px solid #0b5471;background:#0b5471;box-shadow:0 4px 12px #0b547122}
.dashboard-kpis .kpi-payroll-total small,.dashboard-kpis .kpi-payroll-total strong,.dashboard-kpis .kpi-payroll-total>span{color:#fff}
.shift-planning{border:1px solid var(--line);border-top:3px solid #0b78a5;border-radius:14px;background:var(--surface,#fff);padding:16px;box-shadow:0 3px 12px #18384b08}
.shift-planning>.tabletop{align-items:flex-end;gap:12px;margin-bottom:12px;padding:0 0 10px;border-bottom:1px solid var(--line)}
.shift-planning>.tabletop h2{margin:0;color:var(--dark);font-size:18px}
.shift-planning>.tabletop .note{margin:4px 0 0;max-width:54ch;line-height:1.4}
.shift-form{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));align-items:end;gap:10px;padding:12px;border:1px solid var(--line);border-radius:12px;background:color-mix(in srgb,#85b7d6 6%,var(--surface,#fff))}
.shift-form>.field:nth-child(-n+4){grid-column:span 3}
.shift-form .shift-note{grid-column:span 9}
.shift-form .shift-actions{grid-column:span 3;display:flex;align-items:end;gap:7px}
.shift-form .shift-actions button{width:100%;min-height:42px}
.shift-form .field label{font-size:11px}
.shift-form .field input,.shift-form .field select{min-height:42px;border-radius:9px}
.shift-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:8px;margin-top:12px}
.shift-item{padding:10px 12px;border:1px solid var(--line);border-radius:10px;background:var(--surface,#fff)}
html[data-theme="dark"] .dashboard-kpis .kpi-payroll{background:#203e4b;border-color:#4f8196}
html[data-theme="dark"] .dashboard-kpis .kpi-payroll strong{color:#d9f5ff}
html[data-theme="dark"] .dashboard-kpis .kpi-payroll-total{background:#087da6;border-color:#72d8fa}
html[data-theme="dark"] .dashboard-kpis .kpi-payroll-total small,html[data-theme="dark"] .dashboard-kpis .kpi-payroll-total strong,html[data-theme="dark"] .dashboard-kpis .kpi-payroll-total>span{color:#fff}
html[data-theme="dark"] .shift-planning{background:#182832;border-color:#405965;border-top-color:#59c8f1;box-shadow:0 4px 14px #0003}
html[data-theme="dark"] .shift-form{background:#1c323d;border-color:#405d6b}
html[data-theme="dark"] .shift-form .field input,html[data-theme="dark"] .shift-form .field select{background:#10212a;color:#f0f7fa;border-color:#567482}
html[data-theme="dark"] .shift-item{background:#1c303a;border-color:#405965}
@media(max-width:1000px){.dashboard-kpis{grid-template-columns:repeat(3,minmax(0,1fr))}.shift-form>.field:nth-child(-n+4){grid-column:span 6}.shift-form .shift-note{grid-column:span 8}.shift-form .shift-actions{grid-column:span 4}}
@media(max-width:680px){.dashboard-kpis{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.dashboard-kpis .stat{min-height:82px;padding:11px}.dashboard-kpis .stat strong{font-size:clamp(17px,4.5vw,21px)}.dashboard-kpis .kpi-payroll-total{grid-column:1/-1}.shift-planning{padding:12px}.shift-planning>.tabletop{display:block;padding-bottom:8px}.shift-planning>.tabletop .note{font-size:12px}.shift-form{grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:9px;padding:10px}.shift-form>.field:nth-child(-n+4){grid-column:span 1}.shift-form>.field:first-child,.shift-form .shift-note,.shift-form .shift-actions{grid-column:1/-1}.shift-form .field input,.shift-form .field select{width:100%;max-width:100%;min-width:0}.shift-form .shift-actions{display:flex;flex-wrap:wrap}.shift-list{grid-template-columns:minmax(0,1fr)}}
@media(max-width:380px){.dashboard-kpis .stat{padding:9px}.dashboard-kpis .stat small{font-size:10px}.shift-form>.field:nth-child(-n+4){grid-column:1/-1}}

/* OnControl v64: separar visualmente planificación y ficha del trabajador. */
#shiftPlanning{margin-bottom:22px}
.employee-form-layout{margin-top:22px}
#shiftPlanning.shift-planning{background:var(--surface,#fff);box-shadow:0 3px 12px #18384b08}
#shiftPlanning .shift-form{padding:0;border:0;border-radius:0;background:transparent;box-shadow:none}
html[data-theme="dark"] #shiftPlanning.shift-planning{background:#182832}
html[data-theme="dark"] #shiftPlanning .shift-form{background:transparent;border:0;box-shadow:none}
@media(max-width:680px){#shiftPlanning{margin-bottom:16px}.employee-form-layout{margin-top:16px}}

/* OnControl v65: usa el mismo gráfico circular en escritorio y móvil. */
.performance-metrics,.performance-chart-scroll,.performance-scroll-help,.performance-panel>.performance-legend{display:none!important}
#performanceMobileChart.performance-mobile-chart{display:block!important;width:100%;margin:12px 0!important}
.performance-donut-card{width:100%;min-width:0;padding:10px 0;border:0;border-radius:0;background:transparent;box-shadow:none}
.performance-donut-heading strong{font-size:16px;color:var(--dark)}
.performance-donut-heading small{font-size:12px;color:var(--muted)}
.performance-donut-content{grid-template-columns:minmax(170px,230px) minmax(0,1fr);gap:20px}
.performance-donut{width:min(100%,220px)}
.performance-donut-legend{gap:9px}
.performance-donut-legend-row{grid-template-columns:12px minmax(0,1fr) auto 48px;gap:8px;font-size:13px}
.performance-donut-legend-row i{width:11px;height:11px}
.performance-donut-legend-row b{font-size:13px}.performance-donut-legend-row small{font-size:12px}
.performance-donut-footer{gap:12px;margin-top:14px;padding-top:12px}
.performance-donut-footer small{font-size:11px}.performance-donut-footer strong{font-size:16px}
html[data-theme="dark"] .performance-donut-card{background:transparent;border:0;box-shadow:none}
@media(max-width:680px){.performance-donut-card{padding:0}.performance-donut-content{grid-template-columns:minmax(100px,.8fr) minmax(0,1.2fr);gap:8px}.performance-donut{width:min(100%,145px)}.performance-donut-legend{gap:5px}.performance-donut-legend-row{grid-template-columns:9px minmax(0,1fr) auto 30px;gap:5px;font-size:10px}.performance-donut-legend-row i{width:8px;height:8px}.performance-donut-legend-row b{font-size:10px}.performance-donut-legend-row small{font-size:9px}.performance-donut-footer{gap:6px;margin-top:9px;padding-top:8px}.performance-donut-footer small{font-size:9px}.performance-donut-footer strong{font-size:13px}}
@media(max-width:380px){.performance-donut-content{grid-template-columns:96px minmax(0,1fr);gap:5px}}

/* OnControl v66: barras en pantallas grandes, pastel solo en móvil; mejora lectura de turnos y ayudas. */
.performance-metrics{display:grid!important;grid-template-columns:repeat(4,minmax(0,1fr));gap:9px}
.performance-chart-scroll{display:block!important;width:100%;min-height:0;overflow:hidden!important;padding:8px 4px 0;border:0;border-radius:0;background:transparent;box-shadow:none}
#performanceChart{display:block;width:100%!important;height:auto;min-height:250px;max-width:100%!important;overflow:visible}
#performanceMobileChart.performance-mobile-chart{display:none!important}
.performance-panel>.performance-legend{display:flex!important;flex-wrap:wrap;gap:12px;margin-top:10px}
.shift-planning{border:1px solid var(--line);border-top:3px solid #0b78a5;border-radius:14px;background:var(--surface,#fff);box-shadow:0 3px 12px #18384b08}
.shift-planning>.tabletop{align-items:center}
.shift-planning>.tabletop>div{min-width:0}
.shift-planning>.tabletop .note{max-width:58ch;line-height:1.45;overflow-wrap:anywhere}
#shiftPlanning .shift-form{padding:0;border:0;background:transparent;box-shadow:none}
.shift-list{grid-template-columns:repeat(auto-fit,minmax(min(100%,260px),1fr));gap:10px}
.shift-item{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 14px;border:1px solid var(--line);border-radius:12px;background:color-mix(in srgb,#85b7d6 7%,var(--surface,#fff))}
.shift-item>div:first-child{display:grid;gap:3px;min-width:0}
.shift-item strong,.shift-item span,.shift-item small{overflow-wrap:anywhere}
.shift-item span{color:var(--dark);font-size:13px}
.shift-item small{color:var(--muted);font-size:12px}
.shift-item>div:last-child{display:flex;flex:0 0 auto;flex-wrap:wrap;gap:6px}
.shift-item button{padding:7px 10px;font-size:12px}
.note,.calendar-hint,.table-scroll-hint,.attachment-privacy-note,.attachment-limit,.performance-note,.payroll-explanation p,.shift-item small{max-width:100%;white-space:normal;overflow-wrap:anywhere;word-break:normal}
html[data-theme="dark"] .shift-planning{border:1px solid #405965;border-top:3px solid #59c8f1;background:#182832;box-shadow:0 4px 14px #0003}
html[data-theme="dark"] .shift-item{background:#1c303a;border-color:#405965}
html[data-theme="dark"] .shift-item span{color:#e5f1f5}
@media(max-width:680px){
  .performance-metrics,.performance-chart-scroll,.performance-scroll-help,.performance-panel>.performance-legend{display:none!important}
  #performanceMobileChart.performance-mobile-chart{display:block!important;width:100%;margin:10px 0 8px!important}
  .shift-planning{padding:12px}
  .shift-planning>.tabletop{display:flex;align-items:flex-start;flex-direction:column;gap:4px}
  .shift-planning>.tabletop .note{font-size:12px!important;line-height:1.45!important;margin:3px 0 0}
  #shiftPlanning .shift-form{padding:0;border:0;background:transparent}
  .shift-item{align-items:flex-start;flex-direction:column}
  .shift-item>div:last-child{width:100%}
  .shift-item button{flex:1}
  .note,.calendar-hint,.table-scroll-hint,.attachment-privacy-note,.attachment-limit,.performance-note,.payroll-explanation p,.section-heading p,.tools-hub-heading .note,.tools-card .tabletop .note{font-size:12px!important;line-height:1.45!important;max-width:60ch;margin-block:5px;overflow-wrap:anywhere}
  .tools-card,.tools-hub,.panel,.subpanel,.attendance-section{min-width:0;max-width:100%}
  .tools-card .tabletop,.tools-hub-heading,.section-heading{align-items:flex-start}
}
html[data-theme="dark"] .performance-chart-scroll{background:transparent;box-shadow:none}

/* OnControl v68: fuerza contraste en el número y la etiqueta de cada día. */
.attendance-day-choice.status-asistencia strong{color:#124f31!important}
.attendance-day-choice.status-ausencia strong{color:#7d2424!important}
.attendance-day-choice.status-vacaciones strong{color:#124f6c!important}
.attendance-day-choice.status-libre strong{color:#66520a!important}
.attendance-day-choice.status-pendiente strong{color:#4e5960!important}
.attendance-day-choice.status-asistencia small{color:#216c45!important}
.attendance-day-choice.status-ausencia small{color:#963636!important}
.attendance-day-choice.status-vacaciones small{color:#246a8b!important}
.attendance-day-choice.status-libre small{color:#796314!important}
.attendance-day-choice.status-pendiente small{color:#68747a!important}
html[data-theme="dark"] .attendance-day-choice.status-asistencia strong{color:#164c2d!important}
html[data-theme="dark"] .attendance-day-choice.status-ausencia strong{color:#702b2d!important}
html[data-theme="dark"] .attendance-day-choice.status-vacaciones strong{color:#164b65!important}
html[data-theme="dark"] .attendance-day-choice.status-libre strong{color:#5b4b0c!important}
html[data-theme="dark"] .attendance-day-choice.status-pendiente strong{color:#3d505a!important}
html[data-theme="dark"] .attendance-day-choice.status-asistencia small{color:#245d39!important}
html[data-theme="dark"] .attendance-day-choice.status-ausencia small{color:#843b3d!important}
html[data-theme="dark"] .attendance-day-choice.status-vacaciones small{color:#25627e!important}
html[data-theme="dark"] .attendance-day-choice.status-libre small{color:#746017!important}
html[data-theme="dark"] .attendance-day-choice.status-pendiente small{color:#5d6f78!important}
.attendance-day-choice.status-asistencia strong,.attendance-day-choice.status-ausencia strong,.attendance-day-choice.status-vacaciones strong,.attendance-day-choice.status-libre strong,.attendance-day-choice.status-pendiente strong{font-weight:800;text-shadow:none!important}

/* OnControl v69: refuerza títulos y datos del resumen en modo oscuro. */
html[data-theme="dark"] .payroll-total-grand,
html[data-theme="dark"] .payroll-total-grand small,
html[data-theme="dark"] .payroll-total-grand strong{color:#12394a!important}
html[data-theme="dark"] .payroll-total-grand{background:#a9e4ff!important;border-color:#d2f3ff!important}
html[data-theme="dark"] .performance-heading h2,
html[data-theme="dark"] .performance-heading p,
html[data-theme="dark"] .performance-period,
html[data-theme="dark"] #performancePeriod{color:#f3faff!important}
html[data-theme="dark"] #performanceChart text{fill:#e8f5fb!important}
html[data-theme="dark"] #performanceChart text[font-size="10"],
html[data-theme="dark"] #performanceChart text[font-size="11"]{font-weight:650}
html[data-theme="dark"] .performance-chart-scroll{background:transparent!important}

/* OnControl v70: solo mostrar pastel en iPhone/iPad y Android, incluso horizontal. */
html.onc-mobile-platform #performanceMetrics,
html.onc-mobile-platform #performanceChartWrap,
html.onc-mobile-platform #performanceChart,
html.onc-mobile-platform .performance-scroll-help,
html.onc-mobile-platform .performance-panel>.performance-legend{display:none!important}
html.onc-mobile-platform #performanceMobileChart.performance-mobile-chart{display:block!important;width:100%;max-width:100%;margin:10px 0 8px!important}

/* v71: incidencias fluidas en pantallas táctiles estrechas. */
.loss-list,.lossitem,#lossList,.subpanel{min-width:0;max-width:100%;box-sizing:border-box}
.lossitem{align-items:flex-start;gap:8px 10px}
.lossitem>span,.lossitem>small{min-width:0;max-width:100%;overflow-wrap:anywhere}
.lossitem>span{flex:1 1 100%}
.lossitem>small{flex:1 1 100%}
@media(max-width:680px){
  #lossList{width:100%;overflow:hidden}
  #lossList .lossitem{display:flex;flex-wrap:wrap;width:100%;padding:10px;gap:8px;}
  #lossList .lossitem>span,#lossList .lossitem>small{flex:1 1 100%;line-height:1.45}
  #lossList .lossitem>button{flex:1 1 auto;min-width:0;max-width:100%;margin:0!important;padding:8px 10px;font-size:13px;white-space:normal;overflow-wrap:anywhere}
  .subpanel #lossDescription,.subpanel #lossAmount{min-width:0;max-width:100%;width:100%;box-sizing:border-box}
  #reportLoss{max-width:100%;white-space:normal}
}

/* v72: acción alineada con los campos de reporte de incidencias. */
#damagePanel .loss-form-grid{display:grid;grid-template-columns:minmax(0,2fr) minmax(130px,1fr) auto;align-items:end;gap:10px;width:100%;min-width:0}
#damagePanel .loss-form-grid .field{min-width:0}
#damagePanel .loss-form-grid input{width:100%;min-width:0;max-width:100%;box-sizing:border-box}
#damagePanel #reportLoss{align-self:end;max-width:100%;min-height:40px;margin:0;white-space:nowrap}
@media(max-width:680px){#damagePanel .loss-form-grid{grid-template-columns:minmax(0,1fr);gap:9px}#damagePanel #reportLoss{width:100%;white-space:normal}}

/* OnControl v67: tema oscuro con texto más claro y acentos pastel luminosos. */
html[data-theme="dark"]{
  --blue:#a8e1fa;--dark:#f2f8fc;--bg:#101b22;--line:#526d7a;--muted:#d1dee5;
  --white:#20333e;--green:#d4f4df;--red:#ffd9d7;--yellow:#fff0b8;
  --oc-ice:#294552;--oc-ink:#f4f9fc;color-scheme:dark
}
html[data-theme="dark"] body{color:#f1f7fa}
html[data-theme="dark"] .toolbar,html[data-theme="dark"] .panel,html[data-theme="dark"] .stat,
html[data-theme="dark"] .dialog-card,html[data-theme="dark"] .performance-panel,
html[data-theme="dark"] .payroll-overview{color:#f1f7fa;border-color:#526d7a}
html[data-theme="dark"] p,html[data-theme="dark"] .note,html[data-theme="dark"] small,
html[data-theme="dark"] .field label,html[data-theme="dark"] .tabletop label,
html[data-theme="dark"] .performance-heading p,html[data-theme="dark"] .performance-note,
html[data-theme="dark"] .calendar-hint,html[data-theme="dark"] .calendar-weekdays,
html[data-theme="dark"] .attachment-limit,html[data-theme="dark"] .attachment-privacy-note,
html[data-theme="dark"] .payroll-explanation p,html[data-theme="dark"] .shift-planning .note{color:#d1dee5}
html[data-theme="dark"] h1,html[data-theme="dark"] h2,html[data-theme="dark"] h3,
html[data-theme="dark"] h4,html[data-theme="dark"] strong,html[data-theme="dark"] .tabletop h2,
html[data-theme="dark"] .performance-heading h2{color:#f5faff}
html[data-theme="dark"] input,html[data-theme="dark"] select,html[data-theme="dark"] textarea,
html[data-theme="dark"] td input,html[data-theme="dark"] td select{
  background:#203640;color:#f5faff;border-color:#66818e
}
html[data-theme="dark"] input::placeholder,html[data-theme="dark"] textarea::placeholder{color:#c1d0d8;opacity:1}
html[data-theme="dark"] button:not(.theme-toggle),html[data-theme="dark"] .filebtn{
  background:#a8e1fa;color:#123a4a;border-color:#c9efff
}
html[data-theme="dark"] button:not(.theme-toggle):hover,html[data-theme="dark"] .filebtn:hover{background:#c4edff;color:#103546}
html[data-theme="dark"] button.secondary,html[data-theme="dark"] .filebtn.secondary{
  background:#c9eaff;color:#173d50;border-color:#a7d9f2
}
html[data-theme="dark"] button.secondary:hover,html[data-theme="dark"] .filebtn.secondary:hover{background:#def3ff}
html[data-theme="dark"] button.danger{background:#ffc4c2;color:#56272c;border-color:#ffaaa8}
html[data-theme="dark"] .rolebadge,html[data-theme="dark"] .notice,
html[data-theme="dark"] .reminder-form,html[data-theme="dark"] .note-composer,
html[data-theme="dark"] .manager-roster,html[data-theme="dark"] .attendance-mobile-picker,
html[data-theme="dark"] .attendance-day-roster,html[data-theme="dark"] .attendance-roster-row{
  background:#243b47;color:#f1f7fa;border-color:#617f8d
}
html[data-theme="dark"] .emp,html[data-theme="dark"] .manager-account,
html[data-theme="dark"] .reminder-item,html[data-theme="dark"] .private-note,
html[data-theme="dark"] .shift-item{background:#203640;color:#f2f8fb;border-color:#5b7785}
html[data-theme="dark"] .emp small,html[data-theme="dark"] .manager-account small,
html[data-theme="dark"] .private-note small,html[data-theme="dark"] .shift-item small{color:#d0dfe6}
html[data-theme="dark"] .paybox,html[data-theme="dark"] .performance-metric,
html[data-theme="dark"] .payroll-total-card{background:#29424f;border-color:#698594;color:#f2f8fb}
html[data-theme="dark"] .paybox small,html[data-theme="dark"] .performance-metric small,
html[data-theme="dark"] .payroll-total-card small{color:#d7e7ee}
html[data-theme="dark"] .performance-metric strong,html[data-theme="dark"] .payroll-total-card strong,
html[data-theme="dark"] .payroll-total-heading h3,html[data-theme="dark"] .payroll-total-kicker{color:#c9efff}
html[data-theme="dark"] .payroll-total-grand,html[data-theme="dark"] .dashboard-kpis .kpi-payroll-total{
  background:#9edfff;border-color:#d2f3ff;box-shadow:0 4px 14px #0003
}
html[data-theme="dark"] .payroll-total-grand small,html[data-theme="dark"] .payroll-total-grand strong,
html[data-theme="dark"] .dashboard-kpis .kpi-payroll-total small,
html[data-theme="dark"] .dashboard-kpis .kpi-payroll-total strong,
html[data-theme="dark"] .dashboard-kpis .kpi-payroll-total>span{color:#12394a}
html[data-theme="dark"] .attendance-day-choice.status-asistencia:not(.selected),
html[data-theme="dark"] .attendance-day-choice.selected.status-asistencia{background:#c9f2d7!important;border-color:#8bd4a4!important;color:#164c2d!important}
html[data-theme="dark"] .attendance-day-choice.status-asistencia small{color:#245d39!important}
html[data-theme="dark"] .attendance-day-choice.status-ausencia:not(.selected),
html[data-theme="dark"] .attendance-day-choice.selected.status-ausencia{background:#ffd4d2!important;border-color:#f2a3a1!important;color:#702b2d!important}
html[data-theme="dark"] .attendance-day-choice.status-ausencia small{color:#843b3d!important}
html[data-theme="dark"] .attendance-day-choice.status-vacaciones:not(.selected),
html[data-theme="dark"] .attendance-day-choice.selected.status-vacaciones{background:#cbeeff!important;border-color:#91d4f1!important;color:#164b65!important}
html[data-theme="dark"] .attendance-day-choice.status-vacaciones small{color:#25627e!important}
html[data-theme="dark"] .attendance-day-choice.status-libre:not(.selected),
html[data-theme="dark"] .attendance-day-choice.selected.status-libre{background:#fff0ad!important;border-color:#e4cb68!important;color:#5b4b0c!important}
html[data-theme="dark"] .attendance-day-choice.status-libre small{color:#746017!important}
html[data-theme="dark"] .attendance-day-choice.status-pendiente:not(.selected),
html[data-theme="dark"] .attendance-day-choice.selected.status-pendiente{background:#e1e9ed!important;border-color:#b8cbd4!important;color:#3d505a!important}
html[data-theme="dark"] .attendance-day-choice.status-pendiente small{color:#5d6f78!important}
html[data-theme="dark"] .attendance-day-choice.selected{outline-color:#fff!important}
html[data-theme="dark"] .weekend-free-button{background:#fff0ad!important;border-color:#e4cb68!important;color:#5b4b0c!important}
html[data-theme="dark"] .calendar-day{background:#243b47;color:#f2f8fb;border-color:#66818e}
html[data-theme="dark"] .calendar-day.selected{background:#a8e1fa;color:#123a4a;border-color:#d2f3ff}
html[data-theme="dark"] .calendar-day.today{outline-color:#ffe291}
html[data-theme="dark"] th{background:#365665;color:#f4faff;border-color:#698594}
html[data-theme="dark"] td{color:#eff6fa;border-color:#526d7a}
html[data-theme="dark"] tbody tr:nth-child(even){background:#203640}
html[data-theme="dark"] .performance-donut-heading strong,html[data-theme="dark"] .performance-donut-legend-row b,
html[data-theme="dark"] .performance-donut-footer strong{color:#f5fbff}
html[data-theme="dark"] .performance-donut-heading small,html[data-theme="dark"] .performance-donut-legend-row span,
html[data-theme="dark"] .performance-donut-legend-row small,html[data-theme="dark"] .performance-donut-footer small{color:#d1dee5}
html[data-theme="dark"] .performance-donut-footer{border-color:#66818e}
html[data-theme="dark"] .donut-center-value{fill:#f5fbff}html[data-theme="dark"] .donut-center-label{fill:#d1dee5}

/* v75: el donut es el bloque de rendimiento en iOS y Android, sin encabezado duplicado ni espacio del gráfico anterior. */
@media(max-width:900px),(pointer:coarse) and (max-width:1200px){
  #attendancePerformance>.performance-heading,#attendancePerformance>#performanceMetrics,#attendancePerformance>#performanceChartWrap,#attendancePerformance>.performance-scroll-help,#attendancePerformance>.performance-legend{display:none!important}
  #attendancePerformance>#performanceMobileChart{display:block!important;width:100%;max-width:100%;min-width:0;margin:0!important;padding:0!important}
}
html.onc-mobile-platform #attendancePerformance>.performance-heading,
html.onc-mobile-platform #attendancePerformance>#performanceMetrics,
html.onc-mobile-platform #attendancePerformance>#performanceChartWrap,
html.onc-mobile-platform #attendancePerformance>.performance-scroll-help,
html.onc-mobile-platform #attendancePerformance>.performance-legend{display:none!important}
html.onc-mobile-platform #attendancePerformance>#performanceMobileChart{display:block!important;margin:0!important;padding:0!important}

/* v74: selección consistente de horas para los turnos, independiente del selector nativo del navegador. */
.shift-time-picker{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);align-items:center;gap:6px;min-width:0}
.shift-time-picker select{width:100%;min-width:0;max-width:100%;padding-inline:8px;font-variant-numeric:tabular-nums}
.shift-time-picker>span{color:var(--dark);font-weight:800}
.shift-schedule-help{margin:8px 2px 0;color:var(--muted);font-size:12px;line-height:1.45}
html[data-theme="dark"] .shift-time-picker>span{color:#eaf7fc}
@media(max-width:420px){.shift-time-picker{gap:4px}.shift-time-picker select{padding-inline:5px;font-size:14px}}

/* v73: asegurar una sola gráfica en móvil y mantener el formulario de incidencias dentro del panel. */
#damagePanel{width:100%;max-width:100%;min-width:0;box-sizing:border-box}
#damagePanel .loss-form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));align-items:end;width:100%;max-width:100%;min-width:0;box-sizing:border-box;gap:10px}
#damagePanel .loss-form-grid>.field{width:100%;min-width:0;max-width:100%;box-sizing:border-box}
#damagePanel .loss-form-grid input{display:block;width:100%;min-width:0;max-width:100%;box-sizing:border-box}
#damagePanel #reportLoss{grid-column:1/-1;justify-self:start;align-self:auto;width:auto;max-width:100%;margin:0;white-space:normal;overflow-wrap:anywhere}
@media(max-width:700px){#damagePanel .loss-form-grid{grid-template-columns:minmax(0,1fr);gap:9px}#damagePanel #reportLoss{grid-column:1;width:100%;justify-self:stretch}}
@media(max-width:900px),(pointer:coarse) and (max-width:1200px){#performanceMetrics,#performanceChartWrap,#performanceChart,.performance-scroll-help,.performance-panel>.performance-legend{display:none!important}#performanceMobileChart{display:block!important;width:100%;max-width:100%;min-width:0}}

/* v78: botón discreto para limpiar el período de asistencia. */
.clear-period-button{background:#e3e7ea!important;border:1px solid #c6cdd2!important;color:#46545c!important}
.clear-period-button:hover{background:#d8dee2!important}
html[data-theme="dark"] .clear-period-button{background:#414c53!important;border-color:#667780!important;color:#f0f5f7!important}
html[data-theme="dark"] .clear-period-button:hover{background:#4d5b63!important}
.employee-list{max-height:min(65vh,720px)}
.employee-roster-summary{margin:-4px 0 10px}
.employee-list .emp{min-height:58px}
#employeeDetailPanel,#shiftPlanning{scroll-margin-top:16px}
@media(max-width:900px){.employee-list{max-height:none;overflow:visible}.employee-form-layout>.panel{padding:14px}}
.employee-list{max-height:none;overflow:visible}
.employee-section-divider{display:flex;align-items:center;gap:14px;margin:20px 0 12px;color:var(--muted);font-size:11px;font-weight:750;letter-spacing:.09em}
.employee-section-divider::before,.employee-section-divider::after{content:"";height:1px;flex:1;background:var(--line)}
.employee-panel-reveal{animation:employeePanelReveal .38s cubic-bezier(.2,.75,.25,1) both;transform-origin:top center}
@keyframes employeePanelReveal{from{opacity:0;transform:translateY(-14px)}to{opacity:1;transform:translateY(0)}}
@media(prefers-reduced-motion:reduce){.employee-panel-reveal{animation:none}}
.shift-item .shift-type-badge{display:inline-flex;width:max-content;max-width:100%;padding:3px 8px;border:1px solid #85b7d6;border-radius:999px;background:#e8f4fa;color:#0b5471;font-size:11px;font-weight:750;line-height:1.35}
html[data-theme="dark"] .shift-item .shift-type-badge{border-color:#72b8d6;background:#244653;color:#d8f3ff}
@media(min-width:1001px){#shiftPlanning .shift-form{grid-template-columns:repeat(10,minmax(0,1fr))!important}#shiftPlanning .shift-form>.field:nth-child(-n+5){grid-column:span 2}#shiftPlanning .shift-form .shift-note{grid-column:span 8}#shiftPlanning .shift-form .shift-actions{grid-column:span 2}}
.shift-hour-picker{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:6px;min-width:0}
.shift-hour-picker select{width:100%;min-width:0;max-width:100%;font-variant-numeric:tabular-nums}
.shift-hour-picker>span{color:var(--dark);font-weight:800}
html[data-theme="dark"] .shift-hour-picker>span{color:#eaf7fc}

/* Acciones de eliminación claramente identificadas */
.tools-card .note-delete{background:#a74444!important;color:#fff!important;border:1px solid #a74444!important}
html[data-theme="dark"] .tools-card .note-delete{background:#9f3e43!important;color:#fff!important;border-color:#c96f73!important}


/* Confirmaciones de OnC: coherentes con la identidad visual del sistema */
.onc-confirm-card{width:min(100%,420px);padding:22px;border-color:#cfe0e8;border-top:4px solid #0b5471;border-radius:16px;background:#fff;color:#17384b;}
.onc-confirm-mark{display:grid;place-items:center;width:40px;height:40px;margin-bottom:12px;border-radius:12px;background:#e7f2f7;color:#0b5471;font-size:22px;font-weight:800;}
.onc-confirm-card h2{color:#17384b;}
.onc-confirm-card>p{margin:0 0 18px;color:#607582;line-height:1.55;}
.onc-confirm-card .dialog-actions{display:flex;justify-content:flex-end;gap:9px;margin-top:18px;}
.onc-confirm-card .dialog-actions button{min-width:112px;}
.onc-confirm-card .dialog-actions .danger{background:#a74444;color:#fff;border:1px solid #a74444;}
html[data-theme="dark"] .onc-confirm-card{background:#182832;color:#f0f5f7;border-color:#496575;border-top-color:#85b7d6;}
html[data-theme="dark"] .onc-confirm-card h2{color:#f2f7f9;}
html[data-theme="dark"] .onc-confirm-card>p{color:#c4d5de;}
html[data-theme="dark"] .onc-confirm-mark{background:#244454;color:#d9f3ff;}
html[data-theme="dark"] .onc-confirm-card .dialog-actions .danger{background:#a94449;color:#fff;border-color:#d2767a;}
@media(max-width:600px){.onc-confirm-card{width:100%;padding:18px;border-radius:14px}.onc-confirm-card .dialog-actions{display:grid;grid-template-columns:1fr 1fr}.onc-confirm-card .dialog-actions button{min-width:0}}

/* Once · asistente guiado de OnC */
.visually-hidden{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.once-launcher{position:fixed;right:max(20px,env(safe-area-inset-right));bottom:max(20px,env(safe-area-inset-bottom));z-index:60;display:flex;align-items:center;gap:8px;min-height:58px;padding:6px 14px 6px 7px;border:1px solid #8bb9cc;border-radius:999px;background:#0b5471;color:#fff;box-shadow:0 4px 14px #102e3f24}
.once-launcher img{width:40px;height:48px;object-fit:contain}.once-launcher span{font-weight:750}
.once-panel{position:fixed;right:max(20px,env(safe-area-inset-right));bottom:calc(max(20px,env(safe-area-inset-bottom)) + 68px);z-index:61;display:flex;flex-direction:column;width:min(390px,calc(100vw - 28px));height:min(610px,calc(100dvh - 115px));min-height:420px;overflow:hidden;border:1px solid #c9dce5;border-radius:18px;background:#fff;color:#17384b;box-shadow:0 16px 48px #12344730}
.once-panel.hidden{display:none!important}.once-header{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 14px;background:#0b5471;color:#fff}.once-identity{display:flex;align-items:center;gap:10px}.once-identity img{width:38px;height:46px;object-fit:contain}.once-identity strong,.once-identity span{display:block}.once-identity strong{font-size:17px}.once-identity span{font-size:12px;color:#dcecf3}.once-close.secondary{min-width:34px;width:34px;height:34px;padding:0;border:1px solid #8ab5c8;background:#176580;color:#fff;font-size:22px;line-height:1}
.once-context{margin:0;padding:8px 14px;border-bottom:1px solid #e0ebf0;background:#f4f8fa;color:#526c79;font-size:11px;line-height:1.4}
.once-messages{display:flex;flex:1;flex-direction:column;gap:9px;overflow:auto;padding:12px;background:#fff;overscroll-behavior:contain}.once-message{max-width:91%;padding:9px 11px;border:1px solid #d9e6eb;border-radius:12px;font-size:13px;line-height:1.45;overflow-wrap:anywhere}.once-message p{margin:4px 0 0}.once-message-bot{align-self:flex-start;background:#f1f7fa}.once-message-user{align-self:flex-end;border-color:#0b5471;background:#0b5471;color:#fff}.once-message-user p{margin:0}.once-suggestions{display:flex;gap:6px;overflow-x:auto;padding:7px 10px 3px;scrollbar-width:thin}.once-suggestions button{flex:0 0 auto;padding:6px 9px;font-size:11px;border-radius:999px}
.once-form{display:flex;align-items:flex-end;gap:8px;padding:10px;border-top:1px solid #e1ebef;background:#fff}.once-form textarea{flex:1;min-width:0;min-height:42px;max-height:90px;resize:vertical;padding:9px 10px;font-size:13px}.once-form button{min-height:40px;padding:8px 12px}.once-requests{padding:0 12px 10px;color:#526c79;font-size:11px}.once-requests summary{cursor:pointer;padding:7px 0;font-weight:700;color:#17384b}.once-requests summary span{display:inline-grid;place-items:center;min-width:19px;height:19px;margin-left:3px;border-radius:99px;background:#e6f1f6;color:#0b5471}.once-requests ul{max-height:86px;margin:3px 0 7px;padding-left:20px;overflow:auto}.once-requests li{padding:2px 0;overflow-wrap:anywhere}.once-requests>button{padding:5px 8px;font-size:10px}.once-requests>small{display:block;margin-top:5px}
html[data-theme="dark"] .once-panel{background:#182832;color:#f0f5f7;border-color:#435e6c;box-shadow:0 16px 48px #0007}html[data-theme="dark"] .once-context{background:#1b303a;color:#cfdee5;border-color:#3b5663}html[data-theme="dark"] .once-messages,html[data-theme="dark"] .once-form{background:#182832}html[data-theme="dark"] .once-message{border-color:#496575}html[data-theme="dark"] .once-message-bot{background:#223944;color:#f1f7f9}html[data-theme="dark"] .once-requests{color:#d0dfe6}html[data-theme="dark"] .once-requests summary{color:#f1f7f9}html[data-theme="dark"] .once-requests summary span{background:#2c5061;color:#e7f6fc}html[data-theme="dark"] .once-launcher{border-color:#85b7d6;background:#0b5471;color:white}
@media(max-width:600px){.once-launcher{right:max(14px,env(safe-area-inset-right));bottom:max(14px,env(safe-area-inset-bottom));min-height:54px}.once-launcher img{width:36px;height:43px}.once-panel{right:max(10px,env(safe-area-inset-right));bottom:calc(max(10px,env(safe-area-inset-bottom)) + 62px);width:calc(100vw - 20px);height:min(72dvh,620px);min-height:380px;border-radius:16px}.once-suggestions{max-width:100%}.once-form textarea{font-size:16px}}
@media(prefers-reduced-motion:reduce){.once-panel,.once-launcher{scroll-behavior:auto}}

/* Once: acabado sencillo, plano y adaptable, sin brillos ni sombras decorativas. */
.once-launcher{box-shadow:none;border-radius:14px;padding:6px 12px 6px 7px}
.once-panel{box-shadow:none;border-radius:14px}
.once-header{background:#0b5471}
.once-message{border-radius:9px}
.once-message-user{background:#0b5471}
@media(max-width:600px){
  .once-panel{height:min(620px,calc(100dvh - 96px));min-height:min(360px,calc(100dvh - 96px));bottom:calc(max(10px,env(safe-area-inset-bottom)) + 62px)}
  .once-launcher{border-radius:12px}
}

/* Once: icono de OnC como app de iOS, compacto y sin marco añadido. */
.once-launcher{width:58px;height:58px;min-height:58px;padding:3px;justify-content:center;gap:0;border:0;border-radius:18px;background:transparent;box-shadow:none}
.once-launcher img{display:block;width:52px;height:52px;object-fit:cover;border-radius:16px}
.once-launcher span{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.once-identity img{width:42px;height:42px;object-fit:cover;border-radius:13px;background:#0b5471}
@media(max-width:600px){.once-launcher{width:56px;height:56px;min-height:56px;padding:2px}.once-launcher img{width:52px;height:52px;border-radius:16px}}
.once-launcher{overflow:hidden;border-radius:19px;background:#0b5471}
.once-launcher img{width:100%;height:100%;border-radius:19px;object-fit:cover;transform:scale(1.08)}
.once-identity img{background:#0b5471}

/* Once v89: icono blanco para destacar sobre el encabezado azul y botón flotante iOS. */
.once-launcher{width:60px;height:60px;min-height:60px;padding:2px;overflow:hidden;border:0;border-radius:17px;background:transparent;box-shadow:none}
.once-launcher img{display:block;width:56px;height:56px;object-fit:contain;transform:none;border-radius:15px}
.once-identity img{width:44px;height:44px;object-fit:contain;padding:0;border-radius:13px;background:#fff}
.once-panel{height:min(570px,calc(100dvh - 104px));min-height:min(400px,calc(100dvh - 104px));border-radius:16px;box-shadow:0 8px 24px #1234471a}
.once-header{gap:12px;padding:12px 14px}
.once-identity{gap:11px}
.once-context{padding:9px 14px;line-height:1.45}
.once-messages{gap:10px;padding:14px}
.once-message{max-width:94%;padding:10px 12px;line-height:1.5}
.once-suggestions{flex-wrap:wrap;overflow:visible;padding:8px 10px 5px}
.once-suggestions button{min-height:34px}
.once-form{align-items:stretch}
.once-form textarea{min-height:42px;max-height:100px;resize:vertical}
@media(max-width:600px){
 .once-launcher{width:56px;height:56px;min-height:56px}
 .once-launcher img{width:52px;height:52px}
 .once-panel{width:calc(100vw - 20px);height:min(72dvh,600px);min-height:min(390px,calc(100dvh - 96px));border-radius:15px}
 .once-header{padding:11px 12px}
 .once-suggestions{flex-wrap:nowrap;overflow-x:auto}
}


/* Once v90: dos variantes de marca, chat claro y controles táctiles compatibles. */
.once-icon-light{display:block!important}
.once-icon-dark{display:none!important}
html[data-theme="dark"] .once-icon-light{display:none!important}
html[data-theme="dark"] .once-icon-dark{display:block!important}
.once-launcher{width:60px;height:60px;min-height:60px;padding:2px;overflow:hidden;border-radius:17px;background:transparent;touch-action:manipulation}
.once-launcher img{width:56px;height:56px;object-fit:contain;transform:none;border-radius:15px}
.once-identity img{width:44px;height:44px;object-fit:contain;padding:0;border-radius:13px;background:transparent}
.once-panel{width:min(410px,calc(100vw - 28px));height:min(570px,calc(100dvh - 110px));min-height:min(360px,calc(100dvh - 110px));display:flex;flex-direction:column;overscroll-behavior:contain}
.once-messages{-webkit-overflow-scrolling:touch;overscroll-behavior:contain;touch-action:pan-y}
.once-message{font:14px/1.5 system-ui,-apple-system,"Segoe UI",Roboto,Arial,sans-serif}
.once-message-user{border-color:#b8dceb;background:#e6f5fb;color:#17384b}
.once-message-bot{border-color:#d3e5ec;background:#f3f8fa;color:#17384b}
.once-form{align-items:stretch;gap:8px;padding:10px}
.once-form textarea{width:100%;min-width:0;min-height:46px;max-height:116px;resize:none;border:1px solid #bfd3dc;border-radius:12px;background:#fff;color:#17384b;padding:11px 12px;font:16px/1.4 system-ui,-apple-system,"Segoe UI",Roboto,Arial,sans-serif;outline:none}
.once-form textarea:focus{border-color:#0b5471;box-shadow:0 0 0 2px #85b7d655}
.once-form textarea::placeholder{color:#6a7f89;opacity:1}
.once-form button{min-width:68px;min-height:46px;border-radius:12px;padding:8px 12px;touch-action:manipulation}
.once-suggestions{overscroll-behavior-x:contain;-webkit-overflow-scrolling:touch;touch-action:pan-x}
.once-suggestions button{min-height:36px;touch-action:manipulation}
.once-close{min-width:42px!important;width:42px!important;height:42px!important;border-radius:12px!important;touch-action:manipulation}
.once-requests{flex:0 0 auto;max-height:150px;overflow:auto;-webkit-overflow-scrolling:touch;overscroll-behavior:contain}
html[data-theme="dark"] .once-message-user{background:#2a6077;border-color:#5e9ab2;color:#f4fbff}
html[data-theme="dark"] .once-message-bot{background:#223b46;border-color:#4b6875;color:#f2f8fa}
html[data-theme="dark"] .once-form textarea{background:#10232c;border-color:#587582;color:#f5fbff}
html[data-theme="dark"] .once-form textarea::placeholder{color:#bacbd3}
html[data-theme="dark"] .once-form textarea:focus{border-color:#9ddcf5;box-shadow:0 0 0 2px #9ddcf555}
html[data-theme="dark"] .once-suggestions button{background:#294754;border-color:#557482;color:#e9f6fb}
html[data-theme="dark"] .once-form button{background:#85cce7;color:#123b4c}
@media(max-width:600px){
 .once-launcher{right:max(12px,env(safe-area-inset-right));bottom:max(12px,env(safe-area-inset-bottom));width:56px;height:56px;min-height:56px}
 .once-launcher img{width:52px;height:52px}
 .once-panel{top:max(10px,env(safe-area-inset-top));right:max(10px,env(safe-area-inset-right));bottom:calc(max(12px,env(safe-area-inset-bottom)) + 68px);left:max(10px,env(safe-area-inset-left));width:auto;height:min(72dvh,calc(100dvh - env(safe-area-inset-top) - env(safe-area-inset-bottom) - 92px));min-height:min(340px,calc(100dvh - env(safe-area-inset-top) - env(safe-area-inset-bottom) - 92px));max-height:calc(100dvh - env(safe-area-inset-top) - env(safe-area-inset-bottom) - 92px);border-radius:15px}
 .once-header{padding:10px 12px}
 .once-context{font-size:12px}
 .once-messages{min-height:90px;padding:12px}
 .once-suggestions{padding:7px 9px 4px}
 .once-form{padding:9px}
 .once-form textarea{font-size:16px;min-height:44px}
}
@media(max-height:520px) and (max-width:900px){.once-panel{top:max(6px,env(safe-area-inset-top));bottom:calc(max(8px,env(safe-area-inset-bottom)) + 62px);height:auto;min-height:0;max-height:calc(100dvh - env(safe-area-inset-top) - env(safe-area-inset-bottom) - 78px)}}
@media(max-width:600px){.once-panel{top:auto}}
html[data-theme="dark"] .once-header{background:#102f3b;color:#f3f9fb}
html[data-theme="dark"] .once-close.secondary{background:#244553;border-color:#638392;color:#f7fbfd}

/* Once v91: alternancia de los dos iconos y contraste del encabezado por tema. */
.once-header{background:#e6f2f7;color:#0b5471;border-bottom:1px solid #c5dce6}
.once-identity span{color:#526c79!important}
.once-close.secondary{background:#d8eaf2!important;border-color:#a9c7d5!important;color:#0b5471!important}
html[data-theme="dark"] .once-header{background:#102f3b;color:#f3f9fb;border-bottom-color:#405d69}
html[data-theme="dark"] .once-identity span{color:#d3e5ec!important}
html[data-theme="dark"] .once-close.secondary{background:#244553!important;border-color:#638392!important;color:#f7fbfd!important}

/* v92: avisos compactos arriba, compatibles con safe-area y la isla/notch. */
#toast{position:fixed;top:calc(env(safe-area-inset-top,0px) + 12px);bottom:auto;left:50%;right:auto;transform:translate(-50%,-10px);width:min(560px,calc(100vw - 24px));max-width:calc(100vw - 24px);padding:12px 18px;border:1px solid #456675;border-radius:18px;background:#17384b;color:#f7fbfd;text-align:center;font-size:14px;line-height:1.4;overflow-wrap:anywhere;box-shadow:0 8px 24px #071d2780;z-index:10050;pointer-events:none;transition:opacity .18s ease,transform .18s ease}
#toast[style*="display: block"]{transform:translate(-50%,0)}
html[data-theme="dark"] #toast{background:#d9f0fb;color:#123849;border-color:#a9d5e8;box-shadow:0 8px 24px #0005}
@media(max-width:600px){#toast{top:calc(env(safe-area-inset-top,0px) + 8px);width:calc(100vw - 20px);max-width:calc(100vw - 20px);padding:10px 14px;border-radius:16px;font-size:13px}}
@media(prefers-reduced-motion:reduce){#toast{transition:none}}

/* v93: selector legible de hora y paneles de herramientas centrados en pantallas pequeñas. */
.time-picker-row{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);align-items:center;gap:8px;width:100%;min-width:0}
.time-picker-row select{width:100%;min-width:0;min-height:42px;text-align:center;font-variant-numeric:tabular-nums;font-weight:650;background:#fff;color:#183b4d}
html[data-theme="dark"] .time-picker-row select{background:#10232c;color:#f1f8fb;border-color:#526c79}
.shift-hour-picker{grid-template-columns:minmax(0,1fr) auto;gap:8px}
.shift-hour-picker select{min-height:42px;text-align:center;font-variant-numeric:tabular-nums;font-weight:650}
@media(max-width:600px){
  .toolbar-menu[open]{z-index:10020}
  .toolbar-menu[open]>.toolbar-menu-panel,.company-actions .toolbar-menu[open]>.toolbar-menu-panel,.data-actions .toolbar-menu[open]>.toolbar-menu-panel{position:fixed!important;top:50dvh!important;left:50vw!important;right:auto!important;bottom:auto!important;transform:translate(-50%,-50%);width:min(360px,calc(100vw - 32px));min-width:0;max-width:calc(100vw - 32px);max-height:min(72dvh,480px);overflow-y:auto;overscroll-behavior:contain;padding:12px;z-index:10021;border-radius:16px;box-shadow:0 18px 54px #102e3f42}
  .toolbar-menu[open]>.toolbar-menu-panel button{min-height:46px;padding:11px 13px;font-size:15px}
  html[data-theme="dark"] .toolbar-menu[open]>.toolbar-menu-panel{box-shadow:0 18px 54px #0009}
  .reminder-form .time-picker-row select{min-height:44px;font-size:16px}
  .shift-hour-picker select{min-height:44px;font-size:16px}
}

/* v94: sección personal más ordenada y controles con jerarquía visual uniforme. */
.tools-hub{padding:16px;border:1px solid #d1e2ea;border-radius:18px;background:#fff;box-shadow:0 5px 18px #18384b0b}
.tools-hub-heading{padding:2px 2px 12px;margin-bottom:12px;border-bottom:1px solid #dce8ee}
.tools-hub-heading h2{margin:0;color:#17384b;letter-spacing:-.02em}
.tools-hub-heading .note{margin:3px 0 0;color:#607582}
.tools-hub-grid{gap:14px;align-items:stretch}
.tools-card{min-width:0;padding:15px;border:1px solid #d5e4eb;border-radius:15px;background:#f7fafb;box-shadow:0 3px 12px #17384b08}
.tools-card>.tabletop{padding-bottom:10px;margin-bottom:10px;border-bottom:1px solid #dce8ee}
.tools-card .tabletop h2{color:#17384b}
.calendar-layout{gap:14px}
.calendar-main{min-width:0}
.calendar-nav{gap:8px}
.calendar-nav button{min-width:38px;min-height:36px;padding:5px 10px;border-radius:10px;font-size:16px}
.calendar-nav strong{color:#17384b;font-size:14px}
.calendar-weekdays{margin:8px 0 6px;color:#607582}
.calendar-day{min-width:0;min-height:36px;border-radius:10px;background:#fff;font-weight:650;transition:background-color .15s ease,border-color .15s ease,transform .15s ease}
.calendar-day:hover{border-color:#85b7d6;background:#f1f8fb;transform:translateY(-1px)}
.calendar-day.selected{background:#0b5471;color:#fff;border-color:#0b5471;box-shadow:0 3px 8px #0b547128}
.calendar-hint{line-height:1.45}
.calendar-side{min-width:0}
.reminder-form{margin:0;padding:13px;border:1px solid #d5e4eb;border-top:3px solid #85b7d6;border-radius:13px;background:#fff;box-shadow:0 3px 10px #17384b08}
.reminder-form>strong{color:#17384b;font-size:15px;line-height:1.35}
.reminder-form .formgrid{gap:9px}
.reminder-form input,.reminder-form select{width:100%;min-width:0;min-height:40px}
.reminder-actions{gap:8px}
.reminder-actions button{min-height:38px;border-radius:9px}
.reminder-list{align-content:start}
.reminder-item{border-color:#d6e5ec;background:#fff;border-radius:11px}
.notes-layout{align-items:start;gap:12px}
.note-composer{border:1px solid #d5e4eb;border-top:3px solid #85b7d6;border-radius:13px;background:#fff;box-shadow:0 3px 10px #17384b08}
.note-composer-title{padding-bottom:10px;border-bottom:1px solid #e1ebf0}
.note-composer .field input,.note-composer textarea,.note-composer input[type=file]{width:100%;max-width:100%;min-width:0}
.note-composer textarea{min-height:100px;background:#fbfdfe;line-height:1.45}
.note-composer button{min-height:38px;border-radius:9px}
.private-note-list{align-content:start}
.private-note{align-self:start;background:#fff}
.notes-empty{align-self:start;min-height:150px;padding:20px;border-radius:13px;background:#fff;border:1px dashed #bfd3de}
html[data-theme="dark"] .tools-hub{background:#142832;border-color:#3a5663;box-shadow:0 5px 18px #0002}
html[data-theme="dark"] .tools-hub-heading{border-bottom-color:#3a5663}
html[data-theme="dark"] .tools-hub-heading h2,html[data-theme="dark"] .tools-card .tabletop h2,html[data-theme="dark"] .calendar-nav strong,html[data-theme="dark"] .reminder-form>strong{color:#f1f7fa}
html[data-theme="dark"] .tools-hub-heading .note,html[data-theme="dark"] .calendar-weekdays{color:#c0d3dc}
html[data-theme="dark"] .tools-card{background:#192f39;border-color:#405d69;box-shadow:none}
html[data-theme="dark"] .tools-card>.tabletop{border-bottom-color:#3a5663}
html[data-theme="dark"] .reminder-form,html[data-theme="dark"] .note-composer,html[data-theme="dark"] .reminder-item,html[data-theme="dark"] .private-note,html[data-theme="dark"] .notes-empty{background:#203944;border-color:#496573;color:#f0f7fa}
html[data-theme="dark"] .note-composer-title{border-bottom-color:#496573}
html[data-theme="dark"] .note-composer textarea{background:#142832;color:#f0f7fa;border-color:#5b7886}
html[data-theme="dark"] .calendar-day{background:#142832;color:#eaf4f8;border-color:#496573}
html[data-theme="dark"] .calendar-day:hover{background:#234653;border-color:#85b7d6}
html[data-theme="dark"] .calendar-day.selected{background:#0b6688;color:#fff;border-color:#74c6e4}
html[data-theme="dark"] .notes-empty{border-style:dashed}
.toolbar-menu-close{display:none}
@media(max-width:600px){
  .tools-hub{padding:12px;border-radius:15px}
  .tools-hub-grid{grid-template-columns:minmax(0,1fr);gap:11px}
  .tools-card{padding:12px;border-radius:13px}
  .calendar-layout{grid-template-columns:minmax(0,1fr);gap:12px}
  .calendar-main{max-width:none}
  .calendar-side{margin-top:0}
  .reminder-form{padding:11px}
  .notes-layout{grid-template-columns:minmax(0,1fr);gap:10px}
  .note-composer{padding:12px}
  .notes-empty{min-height:120px;padding:16px}
  .toolbar-menu-close{display:block!important;width:100%;min-height:44px;margin-top:4px;padding:10px 14px!important;border-radius:10px!important;background:#a74444!important;border:1px solid #953b3b!important;color:#fff!important;text-align:center!important;font-size:14px!important;font-weight:750}
  .toolbar-menu-close:hover{background:#913a3a!important}
}

/* v95: jerarquía limpia para Calendario y Notas, sin paneles anidados. */
.tools-hub{padding:16px;background:#fff;border:1px solid #d1e2ea;border-radius:18px;box-shadow:0 4px 14px #18384b08}
.tools-hub-grid{gap:0;grid-template-columns:minmax(0,1fr) minmax(0,1fr);background:transparent}
.tools-card{min-width:0;padding:12px 16px;background:transparent;border:0;border-radius:0;box-shadow:none}
#personalCalendar{padding-left:4px;padding-right:20px;border-right:1px solid #dce8ee}
#privateNotes{padding-left:20px;padding-right:4px}
.tools-card>.tabletop{padding-bottom:9px;margin-bottom:12px;border-bottom:1px solid #dce8ee}
.calendar-layout{gap:14px}
.reminder-form{margin:0;padding:12px 0 0;border:0;border-top:1px solid #dce8ee;border-radius:0;background:transparent;box-shadow:none}
.reminder-form>strong{margin-bottom:10px;color:#17384b;font-size:15px}
.reminder-form .formgrid{gap:9px}
.reminder-actions{margin-top:2px}
.reminder-item{background:transparent;border:0;border-bottom:1px solid #dce8ee;border-radius:0;box-shadow:none;padding:9px 0}
.note-composer{padding:12px 0 0;border:0;border-top:1px solid #dce8ee;border-radius:0;background:transparent;box-shadow:none}
.note-composer-title{padding-bottom:9px;margin-bottom:10px;border-bottom:0}
.note-composer textarea{background:#fff}
.private-note-list{gap:0}
.private-note{min-height:0;margin:0;padding:12px 0;border:0;border-bottom:1px solid #dce8ee;border-radius:0;background:transparent;box-shadow:none}
.private-note:before{display:none}
.notes-empty{min-height:0;margin-top:12px;padding:20px 12px;border:0;border-top:1px solid #dce8ee;border-radius:0;background:transparent;color:#607582;text-align:center}
html[data-theme="dark"] .tools-hub{background:#142832;border-color:#3a5663}
html[data-theme="dark"] .tools-card{background:transparent;border:0;box-shadow:none}
html[data-theme="dark"] #personalCalendar{border-right-color:#3a5663}
html[data-theme="dark"] #privateNotes{border-left:0}
html[data-theme="dark"] .tools-card>.tabletop,html[data-theme="dark"] .reminder-form,html[data-theme="dark"] .note-composer,html[data-theme="dark"] .private-note,html[data-theme="dark"] .notes-empty{border-color:#3a5663;background:transparent;box-shadow:none}
html[data-theme="dark"] .reminder-item{background:transparent;border-color:#3a5663}
html[data-theme="dark"] .note-composer textarea{background:#10232c;color:#f1f8fb;border-color:#526c79}
html[data-theme="dark"] .notes-empty{color:#c0d3dc}
/* Admin menu: paired compact company actions; other options remain full width. */
.admin-menu .toolbar-menu-panel{grid-template-columns:repeat(2,minmax(0,1fr));min-width:286px}
.admin-menu .toolbar-menu-panel>button:nth-child(n+3){grid-column:1/-1}
.admin-menu .toolbar-menu-panel>#renameCompany,
.admin-menu .toolbar-menu-panel>#deleteCompany{min-height:36px;padding:7px 8px;text-align:center}
@media(max-width:760px){
  .tools-hub{padding:12px}
  .tools-hub-grid{grid-template-columns:minmax(0,1fr)}
  .tools-card{padding:12px 4px}
  #personalCalendar{padding:8px 4px 16px;border-right:0;border-bottom:1px solid #dce8ee}
  #privateNotes{padding:16px 4px 4px;border-left:0}
  .calendar-layout{grid-template-columns:minmax(0,1fr);gap:10px}
  .calendar-main{max-width:none}
  .calendar-side{margin-top:0}
  .reminder-form{padding-top:10px}
  .note-composer{padding-top:10px}
  .notes-empty{padding:16px 8px}
  .admin-menu .toolbar-menu-panel{min-width:0}
  .admin-menu .toolbar-menu-panel>#renameCompany,
  .admin-menu .toolbar-menu-panel>#deleteCompany{min-height:40px;padding:8px 6px;font-size:13px}
  html[data-theme="dark"] #personalCalendar{border-bottom-color:#3a5663}
}

/* Rounded information blocks and inbox actions. */
.stat,.paybox,.payroll-total-card,.performance-metric,.tools-card,.notification-item,.notes-empty{border-radius:16px}
.notification-item{align-items:flex-start;padding:13px;border:1px solid var(--line);margin:8px 0;background:var(--surface,#fff)}
.notification-item.read{opacity:.82}
.notification-copy{flex:1 1 220px;min-width:0}
.notification-actions{display:flex;flex:0 0 auto;flex-wrap:wrap;justify-content:flex-end;gap:6px}
.notification-actions button{min-height:34px;padding:7px 10px;border-radius:10px;font-size:12px}
.notification-actions button.danger{background:#a74444;border-color:#a74444;color:#fff}
html[data-theme="dark"] .notification-item{background:#1b303a;border-color:#405d69}
html[data-theme="dark"] .notification-actions button.danger{background:#9f3e43;border-color:#c96f73;color:#fff}
@media(max-width:600px){.notification-item{display:grid;grid-template-columns:minmax(0,1fr);gap:10px}.notification-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));width:100%}.notification-actions button{width:100%;min-width:0}.notification-actions button:last-child{grid-column:1/-1}}

/* Close button in Once is clearly identified as a destructive/exit action. */
.once-close.secondary{background:#a74444!important;border-color:#913b3b!important;color:#fff!important}
.once-close.secondary:hover{background:#913b3b!important}
html[data-theme="dark"] .once-close.secondary{background:#c34f55!important;border-color:#e08286!important;color:#fff!important}
html[data-theme="dark"] .once-close.secondary:hover{background:#d15c62!important}

/* v99: separa Calendario y Notas en dos superficies redondeadas independientes. */
.tools-hub-grid{position:relative;gap:20px!important}
.tools-card{min-width:0;padding:14px 16px!important;border:1px solid #c9dce6!important;border-radius:18px!important;background:transparent!important;box-shadow:none!important}
#personalCalendar{padding-left:14px!important;padding-right:14px!important;border-right:1px solid #c9dce6!important}
#privateNotes{padding-left:14px!important;padding-right:14px!important;border-left:1px solid #c9dce6!important}
.tools-hub-grid:before{content:"";position:absolute;z-index:1;top:12px;bottom:12px;left:50%;width:1px;background:#c9dce6;pointer-events:none}
html[data-theme="dark"] .tools-card{border-color:#486674!important}
html[data-theme="dark"] #personalCalendar{border-right:1px solid #486674!important}
html[data-theme="dark"] #privateNotes{border-left:1px solid #486674!important}
html[data-theme="dark"] .tools-hub-grid:before{background:#486674}
@media(max-width:760px){
  .tools-hub-grid{grid-template-columns:minmax(0,1fr)!important;gap:14px!important}
  .tools-hub-grid:before{display:none}
  .tools-card{padding:13px!important;border-radius:16px!important}
  #personalCalendar,#privateNotes{padding:13px!important;border:1px solid #c9dce6!important}
  html[data-theme="dark"] #personalCalendar,html[data-theme="dark"] #privateNotes{border-color:#486674!important}
}

/* v100: cierra también los bordes interiores de Calendario y Notas. */
#personalCalendar{border-right:1px solid #c9dce6!important}
#privateNotes{border-left:1px solid #c9dce6!important}
html[data-theme="dark"] #personalCalendar{border-right-color:#486674!important}
html[data-theme="dark"] #privateNotes{border-left-color:#486674!important}

/* v101: elimina la línea divisoria central, conserva el espacio entre paneles. */
.tools-hub-grid:before{display:none!important;content:none!important}

/* OnControl v102: usar el alto disponible en Calendario y Notas sin alterar funciones. */
@media (min-width: 900px) {
  .tools-hub-grid { align-items: stretch; }
  .tools-card#personalCalendar,
  .tools-card#privateNotes { display: flex; flex-direction: column; min-height: 470px; }
  .tools-card#personalCalendar > .tabletop,
  .tools-card#privateNotes > .tabletop { flex: 0 0 auto; }
  .calendar-layout,
  .notes-layout { flex: 1 1 auto; min-height: 0; align-items: stretch; }
  .calendar-layout { grid-template-columns: minmax(280px, 0.78fr) minmax(0, 1.22fr); }
  .calendar-main { max-width: none; display: flex; flex-direction: column; min-height: 0; }
  .calendar-weekdays { flex: 0 0 auto; }
  .calendar-grid { flex: 1 1 auto; min-height: 260px; grid-auto-rows: 1fr; }
  .calendar-day { min-height: 0; height: 100%; }
  .calendar-hint { flex: 0 0 auto; }
  .calendar-side { display: flex; flex-direction: column; min-height: 0; }
  .reminder-form { flex: 0 0 auto; }
  .reminder-list { flex: 1 1 auto; min-height: 90px; max-height: none; display: flex; flex-direction: column; justify-content: center; }
  .reminder-list:empty::after { content: "No hay recordatorios para este día."; color: var(--muted); text-align: center; padding: 16px; }
  .notes-layout { grid-template-columns: minmax(280px, 0.82fr) minmax(0, 1.18fr); }
  .note-composer { height: 100%; min-height: 0; display: flex; flex-direction: column; }
  .note-composer .field:has(textarea) { flex: 1 1 auto; display: flex; flex-direction: column; min-height: 110px; }
  .note-composer textarea { flex: 1 1 auto; min-height: 110px; resize: vertical; }
  .private-note-list { min-height: 0; height: 100%; margin-top: 0; overflow-y: auto; }
  .private-note-list .notes-empty { flex: 1 1 auto; min-height: 240px; display: flex; flex-direction: column; justify-content: center; align-items: center; text-align: center; padding: 24px; }
}

@media (min-width: 681px) and (max-width: 899px) {
  .tools-card#personalCalendar,
  .tools-card#privateNotes { min-height: 420px; }
  .calendar-main { max-width: none; }
  .calendar-layout { grid-template-columns: minmax(240px, 0.8fr) minmax(0, 1.2fr); }
  .notes-layout { grid-template-columns: minmax(230px, 0.85fr) minmax(0, 1.15fr); }
}
@media (min-width: 900px) {
  .reminder-list > p { flex: 1 1 auto; display: flex; justify-content: center; align-items: center; margin: 0; padding: 18px; text-align: center; }
}

/* OnControl v103: aprovechar el área libre y centrar el acceso a Once. */
@media (min-width: 900px) {
  .calendar-layout { grid-template-columns: minmax(320px, 0.9fr) minmax(0, 1.1fr); }
  .calendar-grid { flex: 0 0 auto; min-height: 0; grid-template-rows: repeat(6, minmax(44px, 58px)); grid-auto-rows: 58px; align-content: start; }
  .calendar-day { aspect-ratio: 1 / 0.92; min-height: 44px; max-height: 58px; }
  .calendar-side { height: 100%; }
  .reminder-list { flex: 1 1 auto; min-height: 150px; padding: 10px; border: 1px solid var(--line); border-radius: 14px; background: var(--surface,#fff); }
  .reminder-list > p { min-height: 100%; border: 1px dashed var(--line); border-radius: 12px; background: var(--bg,#f3f6f8); }
  .notes-layout { grid-template-columns: minmax(300px, 0.9fr) minmax(0, 1.1fr); }
  .private-note-list .notes-empty { min-height: 100%; border: 1px dashed var(--line); border-radius: 14px; background: var(--bg,#f3f6f8); }
  .once-panel:not(.hidden) { left: 50%; right: auto; transform: translateX(-50%); }
}

.once-launcher {
  left: 50% !important;
  right: auto !important;
  bottom: calc(env(safe-area-inset-bottom, 0px) + 12px) !important;
  transform: translateX(-50%);
  width: auto !important;
  min-width: 116px;
  height: 52px !important;
  min-height: 52px !important;
  padding: 6px 16px 6px 10px !important;
  display: inline-flex !important;
  align-items: center;
  justify-content: center;
  gap: 9px;
  overflow: visible !important;
  border: 1px solid #8fc5dc !important;
  border-radius: 999px !important;
  background: #0b5471 !important;
  color: #fff !important;
  box-shadow: 0 5px 18px #0b354044 !important;
  z-index: 1100;
  touch-action: manipulation;
}
.once-launcher img { position: static !important; display: block; flex: 0 0 36px; width: 36px !important; height: 36px !important; object-fit: contain; border-radius: 10px !important; }
.once-launcher span { position: static !important; width: auto !important; height: auto !important; padding: 0 !important; margin: 0 !important; overflow: visible !important; clip: auto !important; white-space: nowrap; border: 0 !important; color: #fff !important; font-size: 14px; font-weight: 750; }
html[data-theme="dark"] .once-launcher { background: #123c4d !important; border-color: #8fc5dc !important; color: #fff !important; }
@media (min-width: 681px) {
  .once-panel:not(.hidden) { left: 50%; right: auto; bottom: calc(env(safe-area-inset-bottom, 0px) + 74px); transform: translateX(-50%); }
}
@media (max-width: 680px) {
  .once-launcher { bottom: calc(env(safe-area-inset-bottom, 0px) + 10px) !important; min-width: 108px; height: 48px !important; min-height: 48px !important; padding: 5px 14px 5px 8px !important; gap: 8px; }
  .once-launcher img { flex-basis: 34px; width: 34px !important; height: 34px !important; }
  .once-launcher span { font-size: 13px; }
}
.once-launcher.hidden{display:none!important}

/* OnControl v104: pastilla flotante con II centrado, sin el nombre Once. */
.once-launcher { min-width: 62px !important; width: 62px !important; padding: 6px !important; gap: 0 !important; }
.once-launcher img { display: none !important; }
.once-launcher span { display: block; width: 100% !important; text-align: center; font-size: 20px !important; letter-spacing: 1px; }
@media (max-width: 680px) { .once-launcher { min-width: 58px !important; width: 58px !important; padding: 5px !important; } .once-launcher span { font-size: 19px !important; } }
.once-launcher.hidden{display:none!important}

/* OnControl v105: cuadrícula estable, botones contenidos y paneles sin solaparse. */
.tools-hub-grid { min-width: 0; }
.tools-card#personalCalendar,
.tools-card#privateNotes { min-width: 0; overflow: hidden; }
.calendar-layout,
.notes-layout { width: 100%; min-width: 0; }
.calendar-main,
.calendar-side,
.note-composer,
.private-note-list { min-width: 0; }
.calendar-grid { width: 100%; min-width: 0; grid-template-columns: repeat(7, minmax(0, 1fr)) !important; grid-template-rows: repeat(6, 48px) !important; grid-auto-rows: 48px !important; align-content: start; gap: 5px; overflow: visible; }
.calendar-day,
.calendar-empty { box-sizing: border-box; width: 100%; min-width: 0 !important; max-width: 100%; height: 48px; min-height: 48px; max-height: 48px; aspect-ratio: auto !important; padding: 3px; }
.calendar-side { height: 100%; }
.reminder-list { min-width: 0; max-height: none; overflow: visible; }
.reminder-list > p { box-sizing: border-box; width: 100%; }
.private-note-list:has(.notes-empty) { overflow: hidden; }
.private-note-list .notes-empty { box-sizing: border-box; width: 100%; }
@media (min-width: 900px) {
  .calendar-layout { grid-template-columns: minmax(0, 0.88fr) minmax(0, 1.12fr) !important; gap: 14px; }
  .notes-layout { grid-template-columns: minmax(0, 0.88fr) minmax(0, 1.12fr) !important; gap: 12px; }
}
@media (max-width: 899px) {
  .calendar-grid { grid-template-rows: repeat(6, 42px) !important; grid-auto-rows: 42px !important; }
  .calendar-day, .calendar-empty { height: 42px; min-height: 42px; max-height: 42px; }
}

/* OnControl v106: pastilla II más extendida y menos alta. */
.once-launcher { width: 82px !important; min-width: 82px !important; height: 44px !important; min-height: 44px !important; padding: 4px 18px !important; }
.once-launcher span { font-size: 19px !important; }
@media (max-width: 680px) { .once-launcher { width: 78px !important; min-width: 78px !important; height: 42px !important; min-height: 42px !important; padding: 4px 16px !important; } .once-launcher span { font-size: 18px !important; } }
.once-launcher.hidden { display: none !important; }

/* v107: acciones y búsqueda dentro de Personal de la empresa */
.employee-roster-tools { display: grid; grid-template-columns: minmax(0, 1fr); gap: 10px; margin: 12px 0 14px; min-width: 0; }
.employee-roster-tools > #addBtn { justify-self: start; min-height: 40px; padding: 9px 16px; }
.employee-search { display: grid; grid-template-columns: minmax(0, 1fr) auto auto; align-items: center; gap: 8px; min-width: 0; }
.employee-search input { width: 100%; min-width: 0; }
.employee-search button { min-width: 76px; }
.employee-search button:last-child { min-width: 78px; }
.employee-search-empty { margin: 10px 2px; }
@media (max-width: 600px) {
  .employee-roster-tools > #addBtn { width: 100%; }
  .employee-search { grid-template-columns: minmax(0, 1fr) minmax(0, auto); }
  .employee-search input { grid-column: 1 / -1; }
  .employee-search button { min-width: 0; }
}

/* v108: búsqueda alineada junto al botón de alta en Personal de la empresa */
.employee-roster-tools { display: grid; grid-template-columns: auto minmax(0, 1fr); align-items: center; gap: 12px; margin: 12px 0 14px; min-width: 0; }
.employee-roster-tools > #addBtn { justify-self: start; min-height: 40px; padding: 9px 16px; white-space: nowrap; }
.employee-search { display: grid; grid-template-columns: minmax(0, 1fr) auto auto; align-items: center; gap: 8px; min-width: 0; }
.employee-search input { width: 100%; min-width: 0; }
.employee-search button { min-width: 76px; }
.employee-search button:last-child { min-width: 78px; }
.employee-search-empty { margin: 10px 2px; }
@media (max-width: 600px) {
  .employee-roster-tools { grid-template-columns: minmax(0, 1fr); gap: 9px; }
  .employee-roster-tools > #addBtn { width: 100%; }
  .employee-search { grid-template-columns: minmax(0, 1fr) auto auto; }
  .employee-search button { min-width: 0; }
}

/* v109: estado vacío de recordatorios integrado al tema oscuro */
html[data-theme="dark"] .tools-card#personalCalendar .reminder-list {
  background: #182630;
  border-color: #344b57;
}
html[data-theme="dark"] .tools-card#personalCalendar .reminder-list > p {
  color: #e2ebf0;
  background: #203944;
  border: 1px solid #3b5663;
  border-radius: 12px;
}

/* v110: tarjetas de resumen completas y con esquinas uniformes */
.company-summary,
.company-summary .dashboard-kpis {
  box-sizing: border-box;
  width: 100%;
  max-width: 100%;
  min-width: 0;
}
.company-summary { overflow: visible; }
.company-summary .dashboard-kpis {
  grid-template-columns: repeat(3, minmax(0, 1fr));
  align-items: stretch;
}
.company-summary .dashboard-kpis > .stat {
  box-sizing: border-box;
  width: 100%;
  max-width: 100%;
  min-width: 0;
  border-radius: 16px !important;
  overflow: hidden;
}
.company-summary .dashboard-kpis > .stat small,
.company-summary .dashboard-kpis > .stat strong,
.company-summary .dashboard-kpis > .stat > span {
  display: block;
  max-width: 100%;
  overflow-wrap: anywhere;
  word-break: normal;
}
html[data-theme="dark"] .company-summary .dashboard-kpis > .kpi-payroll-total {
  background: #294b59 !important;
  border: 1px solid #78b9d5 !important;
  border-radius: 16px !important;
  color: #f2f8fb !important;
  box-shadow: 0 4px 14px #0003;
}
html[data-theme="dark"] .company-summary .dashboard-kpis > .kpi-payroll-total small,
html[data-theme="dark"] .company-summary .dashboard-kpis > .kpi-payroll-total strong,
html[data-theme="dark"] .company-summary .dashboard-kpis > .kpi-payroll-total > span {
  color: #f2f8fb !important;
}
@media (max-width: 1000px) {
  .company-summary .dashboard-kpis { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 680px) {
  .company-summary .dashboard-kpis { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .company-summary .dashboard-kpis > .kpi-payroll-total { grid-column: 1 / -1; }
}
@media (max-width: 360px) {
  .company-summary .dashboard-kpis { grid-template-columns: minmax(0, 1fr); }
  .company-summary .dashboard-kpis > .kpi-payroll-total { grid-column: auto; }
}

/* v111: Once legible in oscuro y contornos completos en los totales */
html[data-theme="dark"] .once-launcher {
  width: 78px !important; min-width: 78px !important; height: 48px !important; min-height: 48px !important;
  padding: 3px 18px !important; gap: 0 !important; justify-content: center !important;
  background: #fff !important; border: 1px solid #85b7d6 !important; border-radius: 999px !important;
  box-shadow: 0 4px 14px #0004 !important;
}
html[data-theme="dark"] .once-launcher .once-icon-light { display: none !important; }
html[data-theme="dark"] .once-launcher .once-icon-dark { display: block !important; flex: 0 0 40px !important; width: 40px !important; height: 40px !important; object-fit: contain !important; border-radius: 12px !important; }
html[data-theme="dark"] .once-launcher span { display: none !important; }
.company-summary { box-sizing: border-box; border-radius: 18px; }
.company-summary .dashboard-kpis { gap: 12px; }
.company-summary .dashboard-kpis > .stat { border-radius: 18px !important; border-width: 1px !important; overflow: hidden; }
.company-summary .dashboard-kpis > .kpi-payroll-total { border-radius: 18px !important; clip-path: inset(0 round 18px); }
html[data-theme="dark"] .company-summary .dashboard-kpis > .kpi-payroll-total { background: #294b59 !important; border: 1px solid #78b9d5 !important; color: #f2f8fb !important; }
html[data-theme="dark"] .company-summary .dashboard-kpis > .kpi-payroll-total small,
html[data-theme="dark"] .company-summary .dashboard-kpis > .kpi-payroll-total strong,
html[data-theme="dark"] .company-summary .dashboard-kpis > .kpi-payroll-total > span { color: #f2f8fb !important; }
@media (max-width: 680px) {
  html[data-theme="dark"] .once-launcher { width: 72px !important; min-width: 72px !important; height: 46px !important; min-height: 46px !important; padding: 3px 15px !important; }
  html[data-theme="dark"] .once-launcher .once-icon-dark { width: 38px !important; height: 38px !important; flex-basis: 38px !important; }
}

/* v112: eliminar halo y sombra de la pastilla de Once */
.once-launcher,
.once-launcher:hover,
.once-launcher:active,
html[data-theme="dark"] .once-launcher,
html[data-theme="dark"] .once-launcher:hover,
html[data-theme="dark"] .once-launcher:active {
  box-shadow: none !important;
  filter: none !important;
  -webkit-tap-highlight-color: transparent;
}
.once-launcher:not(:focus-visible) { outline: none !important; }
.once-launcher:focus-visible { box-shadow: none !important; }
html[data-theme="dark"] .once-launcher { border-color: #dceaf0 !important; }

/* v117: aviso inicial de Once, chat con más espacio y campos cómodos en móviles. */
.once-panel {
  width: min(470px, calc(100vw - 28px));
  height: min(700px, calc(100dvh - 100px));
  min-height: min(440px, calc(100dvh - 100px));
}
.once-intro {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 11px 14px;
  border-bottom: 1px solid #d6e5eb;
  background: #f1f7fa;
  color: #17384b;
}
.once-intro.hidden { display: none !important; }
.once-intro-copy { min-width: 0; }
.once-intro-copy > strong { display: block; margin-bottom: 3px; font-size: 13px; }
.once-intro-copy p { margin: 0; font-size: 12px; line-height: 1.45; overflow-wrap: anywhere; }
.once-intro > button { flex: 0 0 auto; min-height: 34px; padding: 6px 9px; font-size: 11px; white-space: nowrap; }
.once-messages { min-height: 0; }
html[data-theme="dark"] .once-intro { border-color: #3b5663; background: #1b303a; color: #e6f0f4; }
html[data-theme="dark"] .once-intro > button { border-color: #557483; background: #263e49; color: #f1f7f9; }
@media (max-width: 680px) {
  .once-panel {
    right: max(8px, env(safe-area-inset-right));
    bottom: calc(max(8px, env(safe-area-inset-bottom)) + 58px);
    width: calc(100vw - 16px);
    height: min(78dvh, 700px);
    min-height: min(350px, calc(100dvh - 92px));
    max-height: calc(100dvh - env(safe-area-inset-top, 0px) - env(safe-area-inset-bottom, 0px) - 78px);
  }
  .once-intro { align-items: flex-start; gap: 8px; padding: 9px 10px; }
  .once-intro-copy > strong { font-size: 12px; }
  .once-intro-copy p { font-size: 11px; line-height: 1.4; }
  .once-intro > button { padding: 6px 8px; font-size: 10px; }
}
/* iOS amplía la página al enfocar controles con texto inferior a 16px. */
@media (max-width: 900px), (pointer: coarse) {
  input:not([type="checkbox"]):not([type="radio"]):not([type="range"]):not([type="file"]),
  select,
  textarea,
  [contenteditable="true"] {
    box-sizing: border-box;
    max-width: 100%;
    font-size: 16px !important;
  }
}

/* v123: icono de marca con transparencia real en cabecera y pantallas móviles. */
.brand-logo-button,
.brand-logo-button:hover,
.brand-logo-button:active {
  background: transparent !important;
  border: 0 !important;
  outline: 0;
  box-shadow: none !important;
  filter: none !important;
}
.brand-logo {
  display: block;
  object-fit: contain !important;
  object-position: center;
  background: transparent !important;
  border: 0 !important;
  border-radius: 0 !important;
  box-shadow: none !important;
  transform: none !important;
}

/* Once v116 · formulario guiado de asistencia dentro del chat existente. */
.once-guided-form{display:grid;grid-template-columns:1fr 1fr;gap:9px;align-self:stretch;width:min(100%,360px);margin:0;padding:12px;border:1px solid #c9dce5;border-radius:12px;background:#f4f8fa;color:#17384b;font:13px/1.4 system-ui,-apple-system,"Segoe UI",Roboto,Arial,sans-serif}
.once-guided-form label{display:grid;gap:4px;min-width:0;font-weight:650;color:#385767}
.once-guided-form select,.once-guided-form input{width:100%;min-width:0;min-height:40px;padding:8px 9px;border:1px solid #bfd3dc;border-radius:9px;background:#fff;color:#17384b;font:16px/1.35 system-ui,-apple-system,"Segoe UI",Roboto,Arial,sans-serif}
.once-guided-form select:disabled{background:#e9eff2;color:#71838b}
.once-guided-note,.once-guided-actions{grid-column:1/-1}
.once-guided-actions{display:flex;justify-content:flex-end}
.once-guided-actions button{min-height:40px;padding:8px 12px;border:1px solid #0b5471;border-radius:10px;background:#0b5471;color:#fff;font-weight:700;touch-action:manipulation}
html[data-theme="dark"] .once-guided-form{border-color:#496575;background:#223944;color:#f1f7f9}
html[data-theme="dark"] .once-guided-form label{color:#dce9ee}
html[data-theme="dark"] .once-guided-form select,html[data-theme="dark"] .once-guided-form input{border-color:#587582;background:#10232c;color:#f5fbff}
html[data-theme="dark"] .once-guided-form select:disabled{background:#293e47;color:#bdcbd1}
html[data-theme="dark"] .once-guided-actions button{border-color:#85cce7;background:#85cce7;color:#123b4c}
@media(max-width:600px){.once-guided-form{width:100%;grid-template-columns:1fr 1fr;padding:10px}.once-guided-form label{font-size:12px}.once-guided-form select,.once-guided-form input{font-size:16px}.once-guided-actions button{width:100%}}

/* v118 · planes y guía de instalación de la app web. */
.subscription-dialog { width: min(980px, calc(100vw - 32px)); max-width: 980px; max-height: min(90dvh, 900px); overflow-y: auto; }
.subscription-heading { display:flex; align-items:flex-start; justify-content:space-between; gap:16px; margin-bottom:20px; }
.subscription-heading h2 { margin:5px 0 6px; }
.subscription-heading p { margin:0; color:#617786; }
.subscription-eyebrow,.plan-tag { color:#0b5471; font-size:11px; font-weight:800; letter-spacing:.09em; }
.subscription-close { min-width:42px; min-height:42px; padding:0; font-size:24px; line-height:1; }
.subscription-plans { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:16px; }
.subscription-plans-single { grid-template-columns:minmax(0,1fr); max-width:720px; margin-inline:auto; }
.subscription-plan { min-width:0; padding:20px; border:1px solid #c9dce6; border-radius:18px; background:#f8fbfc; transition:border-color .15s,background .15s; }
.subscription-plan-featured { border-color:#85b7d6; background:#eff7fb; }
.subscription-plan.plan-selected { border:2px solid #0b5471; padding:19px; }
.subscription-plan-title { display:flex; align-items:flex-start; justify-content:space-between; gap:12px; }
.subscription-plan-title h3 { margin:5px 0 0; color:#17384b; font-size:20px; }
.plan-price { display:grid; justify-items:end; gap:1px; margin:0; white-space:nowrap; color:#617786; font-size:12px; }
.plan-price strong { color:#0b5471; font-size:28px; line-height:1.1; }
.plan-summary { min-height:40px; margin:14px 0 8px; color:#536d7a; }
.subscription-plan ul { display:grid; gap:9px; min-height:166px; margin:0 0 18px; padding-left:20px; color:#294b5b; }
.subscription-plan li { padding-left:2px; }
.plan-select { width:100%; min-height:44px; }
a.plan-select { display:flex; align-items:center; justify-content:center; box-sizing:border-box; text-align:center; text-decoration:none; }
.plan-selection-notice { margin:16px 0 0; padding:12px 14px; border:1px solid #c8dce6; border-radius:12px; background:#f0f7fa; color:#294b5b; font-size:13px; line-height:1.5; }
.subscription-footer { display:flex; align-items:center; justify-content:space-between; gap:14px; margin-top:12px; color:#627987; font-size:12px; }
.install-dialog { max-width:620px; }
.install-instructions { display:grid; gap:10px; margin:18px 0; }
.install-instructions article { padding:13px 15px; border:1px solid #d2e1e8; border-radius:13px; background:#f7fafb; }
.install-instructions h3 { margin:0 0 5px; color:#0b5471; font-size:15px; }
.install-instructions p { margin:0; color:#4b6471; line-height:1.5; }
html[data-theme="dark"] .subscription-heading p,html[data-theme="dark"] .subscription-footer { color:#bacbd3; }
html[data-theme="dark"] .subscription-eyebrow,html[data-theme="dark"] .plan-tag { color:#a8ddf3; }
html[data-theme="dark"] .subscription-plan { border-color:#47616d; background:#1a2c35; }
html[data-theme="dark"] .subscription-plan-featured { border-color:#72b6d2; background:#203b47; }
html[data-theme="dark"] .subscription-plan.plan-selected { border-color:#9bdaf4; }
html[data-theme="dark"] .subscription-plan-title h3,html[data-theme="dark"] .plan-price strong { color:#e8f5fb; }
html[data-theme="dark"] .plan-price,html[data-theme="dark"] .plan-summary,html[data-theme="dark"] .subscription-plan ul { color:#c5d7df; }
html[data-theme="dark"] .plan-selection-notice { border-color:#496575; background:#1d3540; color:#d6e7ee; }
html[data-theme="dark"] .install-instructions article { border-color:#47616d; background:#1a2c35; }
html[data-theme="dark"] .install-instructions h3 { color:#a8ddf3; }
html[data-theme="dark"] .install-instructions p { color:#c5d7df; }

/* Owner console */
.owner-dashboard { width:min(1440px,calc(100% - 32px)); margin:22px auto 40px; color:#173b4b; }
.owner-dashboard.hidden { display:none!important; }
.owner-hero { display:flex; justify-content:space-between; align-items:center; gap:22px; padding:24px 28px; border-radius:20px; background:#0b5471; color:#fff; }
.owner-hero h1 { margin:5px 0; font-size:clamp(25px,3vw,36px); }
.owner-hero p { margin:0; color:#d8edf5; }
.owner-eyebrow { font-size:12px; letter-spacing:.1em; font-weight:800; color:#b8e5f5; }
.owner-actions { display:flex; align-items:center; gap:12px; flex-wrap:wrap; }
.owner-actions button { background:#fff; color:#0b5471; border:1px solid #d5e7ee; }
.owner-identity { padding:8px 12px; border-radius:999px; background:#ffffff1e; font-size:13px; }
.owner-security-note { display:flex; flex-direction:column; gap:4px; margin:16px 0; padding:14px 17px; border:1px solid #cfe2ec; border-radius:14px; background:#edf7fb; }
.owner-security-note strong { color:#0b5471; }
.owner-security-note span,.owner-card>p { color:#58717e; font-size:14px; line-height:1.5; }
.owner-kpis { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:14px; margin:16px 0; }
.owner-kpis article,.owner-card { min-width:0; padding:18px; border:1px solid #d2e2e9; border-radius:17px; background:#fff; box-shadow:0 5px 18px #173b4b0a; }
.owner-kpis article { display:grid; gap:8px; }
.owner-kpis small { color:#607985; }
.owner-kpis strong { color:#0b5471; font-size:26px; }
.owner-columns { display:grid; grid-template-columns:minmax(0,1.6fr) minmax(280px,.8fr); gap:16px; align-items:start; }
.owner-card-heading { display:flex; justify-content:space-between; align-items:center; gap:12px; }
.owner-card h2 { margin:0; color:#173b4b; font-size:20px; }
.owner-card-heading p,.owner-card>p { margin:5px 0 0; }
.owner-access-form { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:12px; margin:17px 0; }
.owner-access-form label { display:grid; align-content:start; gap:6px; color:#526b78; font-size:13px; font-weight:700; }
.owner-access-form input,.owner-access-form select { width:100%; min-width:0; }
.owner-access-note { grid-column:span 2; }
.owner-access-buttons { display:flex; align-items:end; gap:8px; }
.owner-access-buttons button { flex:1; min-width:0; }
.owner-table-wrap { max-width:100%; overflow:auto; border:1px solid #d8e5ea; border-radius:12px; }
.owner-table { width:100%; border-collapse:collapse; font-size:13px; }
.owner-table th,.owner-table td { padding:11px 10px; border-bottom:1px solid #e2ebef; text-align:left; vertical-align:middle; }
.owner-table th { background:#eef6f9; color:#315768; white-space:nowrap; }
.owner-account-select { padding:0; border:0; background:transparent; color:#0b5471; font-weight:700; text-align:left; overflow-wrap:anywhere; }
.owner-status { display:inline-block; padding:5px 8px; border-radius:999px; background:#f0f2f4; color:#5e6b71; white-space:nowrap; }
.owner-status.is-active { background:#e3f5ed; color:#146b4a; }
.owner-update-list { display:grid; gap:10px; max-height:380px; overflow:auto; margin-top:14px; }
.owner-update { display:grid; grid-template-columns:auto 1fr; gap:10px; padding:12px; border:1px solid #dbe8ed; border-radius:12px; }
.owner-update>span { align-self:start; padding:5px 8px; border-radius:999px; background:#e7f3f8; color:#0b5471; font-size:12px; font-weight:800; }
.owner-update strong { color:#173b4b; }
.owner-update p { margin:4px 0; color:#5d737e; font-size:13px; line-height:1.45; }
.owner-update small { color:#728691; }
.owner-subscription-note { display:grid; gap:8px; margin-top:18px; padding:14px; border:1px solid #d5e6ed; border-radius:13px; background:#f4f9fb; color:#536d79; font-size:13px; line-height:1.5; }
.owner-subscription-note strong { color:#173b4b; }
.owner-plan-counts { display:flex; justify-content:space-between; gap:12px; }
.owner-plan-counts b { color:#0b5471; }
html[data-theme="dark"] .owner-dashboard { color:#e7f2f6; }
html[data-theme="dark"] .owner-card,html[data-theme="dark"] .owner-kpis article { background:#172a33; border-color:#3a5967; }
html[data-theme="dark"] .owner-card h2,html[data-theme="dark"] .owner-update strong,html[data-theme="dark"] .owner-subscription-note strong { color:#e6f3f8; }
html[data-theme="dark"] .owner-kpis small,html[data-theme="dark"] .owner-security-note span,html[data-theme="dark"] .owner-card>p,html[data-theme="dark"] .owner-update p,html[data-theme="dark"] .owner-update small { color:#c0d2da; }
html[data-theme="dark"] .owner-kpis strong,html[data-theme="dark"] .owner-account-select,html[data-theme="dark"] .owner-plan-counts b { color:#9cdef5; }
html[data-theme="dark"] .owner-security-note,html[data-theme="dark"] .owner-subscription-note { background:#203943; border-color:#426373; color:#d8e8ee; }
html[data-theme="dark"] .owner-table-wrap { border-color:#3b5966; }
html[data-theme="dark"] .owner-table th { background:#203943; color:#d7e9ef; }
html[data-theme="dark"] .owner-table td { border-color:#344f5b; }
html[data-theme="dark"] .owner-status { background:#33434a; color:#e1e9ec; }
html[data-theme="dark"] .owner-status.is-active { background:#244b3e; color:#b4efcf; }
html[data-theme="dark"] .owner-update { border-color:#3b5966; }
html[data-theme="dark"] .owner-update>span { background:#264854; color:#b6e6f7; }
@media(max-width:850px) { .owner-columns { grid-template-columns:1fr; } .owner-kpis { grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media(max-width:600px) { .owner-dashboard { width:calc(100% - 20px); margin:12px auto 28px; } .owner-hero { align-items:flex-start; flex-direction:column; padding:19px; } .owner-kpis { gap:9px; } .owner-kpis article,.owner-card { padding:14px; } .owner-kpis strong { font-size:22px; } .owner-access-form { grid-template-columns:1fr 1fr; } .owner-access-note { grid-column:span 2; } .owner-access-buttons { grid-column:span 2; } .owner-table { min-width:680px; } }

/* Consola de propietario: directorio legible sin tablas que obliguen a desplazarse lateralmente. */
.owner-dashboard { max-width:1500px; }
.owner-hero { background:linear-gradient(115deg,#0b5471,#176b87); box-shadow:0 10px 24px #0b54711a; }
.owner-security-note { border-radius:16px; }
.owner-kpis article { min-height:112px; align-content:center; border-radius:18px; background:linear-gradient(145deg,#fff,#f4f9fb); }
.owner-kpis article:nth-child(3) { border-color:#b8d9e8; }
.owner-kpis article:nth-child(4) { background:#eaf5fa; }
.owner-card { border-radius:20px; }
.owner-card-heading { padding-bottom:14px; border-bottom:1px solid #e1edf2; }
.owner-access-form { grid-template-columns:repeat(3,minmax(0,1fr)); padding:14px; border:1px solid #dceaf0; border-radius:16px; background:#f7fafc; }
.owner-access-buttons { grid-column:1/-1; display:grid; grid-template-columns:1fr 1fr; align-items:stretch; }
.owner-access-buttons button { min-height:42px; }
.owner-list-heading { display:flex; align-items:center; justify-content:space-between; gap:10px; margin:20px 0 8px; }
.owner-list-heading h3 { margin:0; color:#173b4b; font-size:16px; }
.owner-count { padding:5px 10px; border-radius:999px; background:#eaf5fa; color:#0b5471; font-size:12px; font-weight:800; }
.owner-search-label { display:block; margin:0 0 6px; color:#526b78; font-size:13px; font-weight:700; }
.owner-account-search { width:100%; min-width:0; margin-bottom:12px; }
.owner-account-list { display:grid; grid-template-columns:repeat(auto-fill,minmax(min(100%,290px),1fr)); gap:10px; max-height:520px; overflow:auto; padding:2px; }
.owner-account-card { min-width:0; display:grid; gap:12px; padding:14px; border:1px solid #d7e7ed; border-radius:16px; background:#fff; transition:border-color .16s ease,background .16s ease; }
.owner-account-card:hover { border-color:#85b7d6; background:#f8fbfd; }
.owner-account-main { min-width:0; display:grid; grid-template-columns:38px minmax(0,1fr) auto; align-items:center; gap:9px; }
.owner-account-avatar { width:38px; height:38px; display:grid; place-items:center; border-radius:12px; background:#e5f2f8; color:#0b5471; font-weight:800; }
.owner-account-identity { min-width:0; display:grid; gap:3px; }
.owner-account-identity strong { overflow-wrap:anywhere; word-break:break-word; color:#173b4b; font-size:13px; }
.owner-account-identity small,.owner-account-meta small { color:#6b818d; font-size:11px; }
.owner-account-meta { display:grid; grid-template-columns:.65fr 1.35fr; gap:8px; padding-top:9px; border-top:1px solid #e6eef2; }
.owner-account-meta span { min-width:0; display:grid; gap:3px; }
.owner-account-meta b { overflow-wrap:anywhere; color:#315768; font-size:12px; }
.owner-account-select { width:100%; min-height:38px; padding:8px 12px; border:1px solid #c8dfe9; border-radius:11px; background:#edf6fa; color:#0b5471; text-align:center; font-weight:800; }
.owner-account-select:hover { background:#dceef6; }
.owner-empty-state { grid-column:1/-1; padding:22px 16px; border:1px dashed #c9dfe8; border-radius:14px; background:#f7fafc; color:#5e7480; text-align:center; line-height:1.5; }
html[data-theme="dark"] .owner-kpis article { background:#1d333d; border-color:#3c5a67; }
html[data-theme="dark"] .owner-kpis article:nth-child(4) { background:#244453; }
html[data-theme="dark"] .owner-card-heading { border-color:#344f5b; }
html[data-theme="dark"] .owner-access-form,html[data-theme="dark"] .owner-empty-state { background:#1b3039; border-color:#3b5966; }
html[data-theme="dark"] .owner-list-heading h3,html[data-theme="dark"] .owner-account-identity strong { color:#e6f3f8; }
html[data-theme="dark"] .owner-count,html[data-theme="dark"] .owner-account-avatar { background:#294957; color:#b9e7f7; }
html[data-theme="dark"] .owner-account-card { background:#172a33; border-color:#3b5966; }
html[data-theme="dark"] .owner-account-card:hover { background:#203943; border-color:#78bed9; }
html[data-theme="dark"] .owner-account-meta { border-color:#344f5b; }
html[data-theme="dark"] .owner-account-meta b { color:#d8edf5; }
html[data-theme="dark"] .owner-account-select { background:#244453; border-color:#466c7d; color:#c5edfb; }
html[data-theme="dark"] .owner-account-select:hover { background:#2d5668; }
@media(max-width:600px) {
  .owner-dashboard { width:calc(100% - 16px); }
  .owner-hero { border-radius:16px; }
  .owner-columns { gap:12px; }
  .owner-account-list { grid-template-columns:1fr; max-height:440px; }
  .owner-account-main { grid-template-columns:34px minmax(0,1fr); }
  .owner-account-main .owner-status { grid-column:2; justify-self:start; }
  .owner-access-form { grid-template-columns:1fr; }
  .owner-access-note,.owner-access-buttons { grid-column:1; }
  .owner-access-buttons { grid-template-columns:1fr 1fr; }
}
@media(max-width:680px) {
  .subscription-dialog { width:calc(100vw - 20px); max-height:calc(100dvh - 24px); padding:18px; }
  .subscription-heading { margin-bottom:14px; }
  .subscription-heading h2 { font-size:21px; }
  .subscription-plans { grid-template-columns:1fr; gap:11px; }
  .subscription-plan { padding:15px; border-radius:15px; }
  .subscription-plan.plan-selected { padding:14px; }
  .plan-summary { min-height:0; margin:10px 0 7px; }
  .subscription-plan ul { min-height:0; gap:7px; margin-bottom:13px; }
  .plan-price strong { font-size:25px; }
  .subscription-footer { align-items:flex-start; flex-direction:column; }
  .subscription-footer button { align-self:flex-end; }
  .install-dialog { width:calc(100vw - 24px); max-height:calc(100dvh - 24px); overflow:auto; }
}

/* v122: iconos planos de Once y OnControl, sin brillo ni contorno decorativo. */
.once-launcher,
.once-launcher:hover,
.once-launcher:active,
html[data-theme="dark"] .once-launcher,
html[data-theme="dark"] .once-launcher:hover,
html[data-theme="dark"] .once-launcher:active {
  box-sizing: border-box !important;
  width: 84px !important;
  min-width: 84px !important;
  height: 48px !important;
  min-height: 48px !important;
  padding: 4px !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 0 !important;
  border: 1px solid #0b5471 !important;
  border-radius: 999px !important;
  background: #0b5471 !important;
  box-shadow: none !important;
  filter: none !important;
  -webkit-tap-highlight-color: transparent;
}
.once-launcher .once-icon-light,
.once-launcher .once-icon-dark {
  width: 40px !important;
  height: 40px !important;
  flex: 0 0 40px !important;
  display: block !important;
  object-fit: contain !important;
  border-radius: 10px !important;
}
.once-launcher .once-icon-dark { display: none !important; }
.once-launcher span { display: none !important; }
html[data-theme="dark"] .once-launcher {
  background: #fff !important;
  border-color: #fff !important;
}
html[data-theme="dark"] .once-launcher .once-icon-light { display: none !important; }
html[data-theme="dark"] .once-launcher .once-icon-dark { display: block !important; }
.once-launcher:not(:focus-visible) { outline: none !important; }
.once-launcher:focus-visible { outline: 2px solid #85b7d6 !important; outline-offset: 2px; }
@media (max-width: 680px) {
  .once-launcher,
  html[data-theme="dark"] .once-launcher {
    width: 78px !important;
    min-width: 78px !important;
    height: 46px !important;
    min-height: 46px !important;
  }
  .once-launcher .once-icon-light,
  .once-launcher .once-icon-dark {
    width: 38px !important;
    height: 38px !important;
    flex-basis: 38px !important;
  }
}

/* v123: marca OnC transparente en portada, escritorio y móvil. */
.brand-logo-button,.brand-logo-button:hover,.brand-logo-button:active { background:transparent!important; border:0!important; box-shadow:none!important; filter:none!important; }
.brand-logo { object-fit:contain!important; object-position:center; background:transparent!important; border:0!important; border-radius:0!important; box-shadow:none!important; transform:none!important; }

/* Panel de propietario: controles e iconos compactos, conservando áreas táctiles cómodas. */
.owner-dashboard { font-size:14px; }
.owner-hero { gap:16px; padding:18px 22px; border-radius:17px; }
.owner-hero h1 { font-size:clamp(23px,2.6vw,32px); }
.owner-eyebrow { font-size:11px; }
.owner-actions { gap:8px; }
.owner-actions button,.owner-dashboard button { min-height:36px; padding:8px 12px; font-size:13px; }
.owner-identity { padding:6px 10px; font-size:12px; }
.owner-security-note { gap:3px; margin:12px 0; padding:11px 14px; border-radius:13px; }
.owner-security-note span,.owner-card>p { font-size:13px; }
.owner-kpis { gap:10px; margin:12px 0; }
.owner-kpis article,.owner-card { padding:14px; border-radius:15px; }
.owner-kpis article { min-height:88px; gap:5px; }
.owner-kpis strong { font-size:23px; }
.owner-columns { gap:12px; }
.owner-card h2 { font-size:18px; }
.owner-card-heading { gap:9px; padding-bottom:10px; }
.owner-access-form { gap:9px; margin:12px 0; padding:11px; border-radius:13px; }
.owner-access-form label { gap:5px; font-size:12px; }
.owner-access-form input,.owner-access-form select { min-height:36px; padding:7px 10px; font-size:13px; }
.owner-access-buttons { gap:7px; }
.owner-access-buttons button { min-height:36px; }
.owner-list-heading { margin:15px 0 7px; }
.owner-list-heading h3 { font-size:15px; }
.owner-count { padding:4px 8px; font-size:11px; }
.owner-account-search { min-height:36px; margin-bottom:9px; padding:7px 10px; }
.owner-account-list { gap:8px; max-height:480px; }
.owner-account-card { gap:9px; padding:11px; border-radius:14px; }
.owner-account-main { grid-template-columns:32px minmax(0,1fr) auto; gap:8px; }
.owner-account-avatar { width:32px; height:32px; border-radius:10px; font-size:13px; }
.owner-account-identity strong { font-size:12px; }
.owner-account-meta { gap:7px; padding-top:7px; }
.owner-account-meta b { font-size:11px; }
.owner-account-select { min-height:34px; padding:6px 9px; font-size:12px; }
.owner-table th,.owner-table td { padding:8px; }
.owner-update-list { gap:8px; max-height:340px; margin-top:11px; }
.owner-update { gap:8px; padding:10px; border-radius:11px; }
.owner-update>span { padding:4px 7px; font-size:11px; }
.owner-subscription-note { gap:6px; margin-top:14px; padding:11px; border-radius:12px; font-size:12px; }
@media(max-width:600px) {
  .owner-hero { gap:12px; padding:15px; }
  .owner-hero h1 { font-size:23px; }
  .owner-actions { gap:7px; }
  .owner-kpis article,.owner-card { padding:11px; }
  .owner-kpis article { min-height:78px; }
  .owner-kpis strong { font-size:20px; }
  .owner-account-main { grid-template-columns:30px minmax(0,1fr); }
  .owner-account-avatar { width:30px; height:30px; }
  .owner-account-select { min-height:36px; }
}

/* v124: el logotipo de la cabecera es una marca blanca independiente del icono de dominio/app. */
.brand-logo-button { flex:0 0 68px!important; width:68px!important; min-width:68px!important; height:42px!important; min-height:42px!important; border-radius:0!important; }
.brand-logo { width:68px!important; height:38px!important; object-fit:contain!important; object-position:left center!important; background:transparent!important; border:0!important; border-radius:0!important; box-shadow:none!important; transform:none!important; }
@media(max-width:650px) {
  .brand-logo-button { flex-basis:54px!important; width:54px!important; min-width:54px!important; height:34px!important; min-height:34px!important; }
  .brand-logo { width:54px!important; height:30px!important; }
}

/* v125: marca única en cabecera; el nombre es también el control de actualización. */
.brand-wordmark-button,
.brand-wordmark-button:hover,
.brand-wordmark-button:active {
  display: flex !important;
  flex: 1 1 240px !important;
  width: auto !important;
  min-width: 0 !important;
  min-height: 0 !important;
  height: auto !important;
  flex-direction: column;
  align-items: flex-start;
  justify-content: center;
  gap: 2px;
  padding: 0 !important;
  overflow: visible;
  border: 0 !important;
  border-radius: 0 !important;
  background: transparent !important;
  color: #fff !important;
  box-shadow: none !important;
  filter: none !important;
  text-align: left;
  transform: none !important;
  -webkit-tap-highlight-color: transparent;
}
.brand-wordmark-button:focus-visible { outline: 2px solid #bfe9fb; outline-offset: 5px; }
.brand-wordmark-button .brand-title { color: #fff; font-size: clamp(22px,3vw,32px); font-weight: 750; line-height: 1.15; }
.brand-wordmark-button .brand-tagline { color: #e8f4f8; font-size: 15px; line-height: 1.35; }
@media(max-width:650px) {
  .brand-wordmark-button { flex: 1 1 150px !important; }
  .brand-wordmark-button .brand-title { font-size: 23px; }
  .brand-wordmark-button .brand-tagline { font-size: 12px; }
}

/* v125: contraste uniforme para textos secundarios y etiquetas en modo oscuro. */
html[data-theme="dark"] body :where(h1,h2,h3,h4,h5,h6) { color: #f3f8fa; }
html[data-theme="dark"] body :where(p,label,small,li,td,th,dt,dd,summary,figcaption) { color: #d3e1e7; }
html[data-theme="dark"] body :where(.muted,.muted-text,.subtle,.helper,.hint,.help-text,.field-hint,.description,.subtitle,.empty-state,.empty-message,.calendar-hint,.performance-note,.section-description) { color: #c8d9e0; }
html[data-theme="dark"] body :where(a,.linkbtn) { color: #a9e0f7; }
html[data-theme="dark"] body :where(input,select,textarea,[contenteditable="true"]) { color: #f3f8fa; caret-color: #a9e0f7; }
html[data-theme="dark"] body :where(input,textarea)::placeholder { color: #bdcbd1; opacity: 1; }
html[data-theme="dark"] body :where(button.secondary,.filebtn.secondary) { color: #e8f4f8; }
html[data-theme="dark"] .brand-wordmark-button .brand-title { color: #fff; }
html[data-theme="dark"] .brand-wordmark-button .brand-tagline { color: #e8f4f8; }html[data-theme="dark"] body :where([class*="muted"],[class*="subtle"],[class*="hint"],[class*="help"],[class*="description"],[class*="subtitle"],[class*="secondary-text"]) { color: #c8d9e0; }
/* v126: panel OncePlus más compacto y una acción de pago claramente visible. */
.subscription-dialog {
  width: min(800px, calc(100vw - 32px));
  max-width: 800px;
  max-height: min(88dvh, 820px);
  padding: clamp(20px, 3vw, 30px);
}
.subscription-heading { margin-bottom: 16px; }
.subscription-heading h2 { font-size: clamp(22px, 2.4vw, 28px); }
.subscription-heading p { max-width: 66ch; line-height: 1.5; }
.subscription-plans-single { max-width: 660px; }
.subscription-plan-featured { background: #f4f9fc; }
.subscription-plan-title { align-items: center; }
.plan-price strong { font-size: clamp(28px, 3vw, 34px); }
.plan-summary { min-height: 0; margin: 12px 0; }
.subscription-plan ul { min-height: 0; gap: 8px; margin-bottom: 20px; }
.paypal-button-container {
  width: min(100%, 440px);
  min-height: 48px;
  margin: 8px auto 0;
  overflow: hidden;
  border-radius: 14px;
}
.paypal-button-container iframe { max-width: 100% !important; }
.paypal-button-container:focus-within { outline: 3px solid #85b7d6; outline-offset: 3px; }
/* Retain the former selector safely if an older cached view still contains the link. */
.onceplus-checkout,
.onceplus-checkout:hover,
.onceplus-checkout:focus-visible {
  min-height: 52px;
  padding: 12px 18px;
  border: 1px solid #0b5471;
  border-radius: 12px;
  background: #0b5471;
  color: #fff !important;
  font-size: 16px;
  font-weight: 750;
  letter-spacing: .01em;
  box-shadow: none;
  text-decoration: none;
  transition: background-color .15s ease, transform .15s ease;
}
.onceplus-checkout:hover { background: #08445c; transform: translateY(-1px); }
.onceplus-checkout:focus-visible { outline: 3px solid #85b7d6; outline-offset: 3px; }
.onceplus-checkout::after { content: ""; }
.plan-selection-notice { margin-top: 12px; line-height: 1.45; }
.subscription-footer { margin-top: 10px; }
html[data-theme="dark"] .subscription-plan-featured { background: #203b47; }
html[data-theme="dark"] .onceplus-checkout,
html[data-theme="dark"] .onceplus-checkout:hover { background: #85b7d6; border-color: #85b7d6; color: #102b37 !important; }
html[data-theme="dark"] .onceplus-checkout:focus-visible { outline-color: #d8f1fc; }
@media(max-width:680px) {
  .subscription-dialog { width: calc(100vw - 20px); max-height: calc(100dvh - 20px); padding: 16px; }
  .subscription-heading { gap: 10px; }
  .subscription-heading h2 { font-size: 21px; }
  .subscription-heading p { font-size: 14px; }
  .subscription-plan { padding: 14px; }
  .subscription-plan-title h3 { font-size: 18px; }
  .plan-price strong { font-size: 25px; }
  .subscription-plan ul { padding-left: 18px; }
  .onceplus-checkout { min-height: 48px; font-size: 15px; }
  .subscription-footer { align-items: stretch; }
  .subscription-footer button { align-self: flex-end; }
}

/* v129 · OncePlus claro y legible en ambos temas; conserva el flujo oficial de PayPal. */
.subscription-dialog { color:#17384b; }
.subscription-dialog .subscription-heading { padding:2px 2px 16px; border-bottom:1px solid #d8e8ef; }
.subscription-dialog .subscription-heading h2 { color:#123b50; letter-spacing:-.025em; }
.subscription-dialog .subscription-heading p { color:#526d7b; }
.subscription-dialog .subscription-plan-featured { border:1px solid #a9d1e4; background:#f5fafc; box-shadow:0 8px 24px #0b54710b; }
.subscription-dialog .plan-price strong { color:#0b5471; }
.onceplus-benefit-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; margin:16px 0 12px; }
.onceplus-benefit { min-width:0; display:grid; grid-template-columns:32px minmax(0,1fr); align-items:start; gap:10px; padding:13px; border:1px solid #d5e7ef; border-radius:14px; background:#fff; }
.onceplus-benefit-mark { display:grid; place-items:center; width:30px; height:30px; border-radius:10px; background:#e5f4fa; color:#0b5471; font-size:11px; font-weight:850; }
.onceplus-benefit h4 { margin:1px 0 3px; color:#17384b; font-size:14px; line-height:1.3; }
.onceplus-benefit p { margin:0; color:#536d7a; font-size:12px; line-height:1.45; }
.onceplus-includes { display:flex; flex-wrap:wrap; align-items:center; gap:6px 10px; margin:12px 0; padding:10px 12px; border-radius:12px; background:#eaf5fa; color:#315768; font-size:12px; }
.onceplus-includes strong { color:#0b5471; }
.subscription-dialog .paypal-button-container { margin-top:14px; }
.subscription-dialog .plan-selection-notice { border-color:#c9dfe9; background:#f1f8fb; color:#294b5b; }
.subscription-dialog .subscription-footer { color:#536d7a; }
html[data-theme="dark"] .subscription-dialog { background:#142832; border-color:#45616d; color:#edf5f8; }
html[data-theme="dark"] .subscription-dialog .subscription-heading { border-color:#3a5662; }
html[data-theme="dark"] .subscription-dialog .subscription-heading h2,
html[data-theme="dark"] .subscription-dialog .subscription-plan-title h3,
html[data-theme="dark"] .subscription-dialog .onceplus-benefit h4 { color:#f1f8fb; }
html[data-theme="dark"] .subscription-dialog .subscription-heading p,
html[data-theme="dark"] .subscription-dialog .plan-summary,
html[data-theme="dark"] .subscription-dialog .plan-price,
html[data-theme="dark"] .subscription-dialog .onceplus-benefit p,
html[data-theme="dark"] .subscription-dialog .subscription-footer { color:#d0e0e7; }
html[data-theme="dark"] .subscription-dialog .subscription-plan-featured { border-color:#547a8a; background:#1a333e; box-shadow:none; }
html[data-theme="dark"] .subscription-dialog .plan-price strong { color:#a9e3fa; }
html[data-theme="dark"] .onceplus-benefit { border-color:#45616d; background:#203943; }
html[data-theme="dark"] .onceplus-benefit-mark { background:#315565; color:#d2f1fc; }
html[data-theme="dark"] .onceplus-includes { background:#203943; color:#d7e8ee; }
html[data-theme="dark"] .onceplus-includes strong { color:#a9e3fa; }
html[data-theme="dark"] .subscription-dialog .plan-selection-notice { border-color:#496b79; background:#203943; color:#e0edf2; }
html[data-theme="dark"] .subscription-dialog .subscription-close { background:#263f49; border-color:#55717d; color:#eef7fa; }
html[data-theme="dark"] .owner-account-identity small,
html[data-theme="dark"] .owner-account-meta small,
html[data-theme="dark"] .owner-search-label { color:#c6d8df; }
html[data-theme="dark"] .owner-account-avatar { background:#315565; color:#e1f5fc; }
html[data-theme="dark"] .owner-count { background:#315565; color:#e1f5fc; }
html[data-theme="dark"] .owner-status { background:#3b4d55; color:#f0f5f7; }
html[data-theme="dark"] .owner-status.is-active { background:#285743; color:#c4f2d7; }
html[data-theme="dark"] .owner-account-search,
html[data-theme="dark"] .owner-access-form input,
html[data-theme="dark"] .owner-access-form select { background:#10232c; border-color:#496875; color:#edf5f8; }
html[data-theme="dark"] .owner-account-search::placeholder,
html[data-theme="dark"] .owner-access-form input::placeholder { color:#a9bec8; opacity:1; }
@media(max-width:680px) {
  .onceplus-benefit-grid { grid-template-columns:1fr; gap:8px; }
  .onceplus-benefit { padding:11px; }
  .onceplus-benefit p { font-size:13px; }
  .subscription-dialog .subscription-plan-title { align-items:flex-start; }
}

/* v129: jerarquía y contraste para OncePlus y consola de propietario. */
.subscription-dialog .onceplus-overview { display:flex; align-items:flex-start; justify-content:space-between; gap:18px; padding:2px 2px 14px; border-bottom:1px solid #d8e8ef; }
.subscription-dialog .onceplus-overview h3 { margin:6px 0 4px; color:#123b50; font-size:22px; }
.subscription-dialog .onceplus-overview p { max-width:58ch; margin:0; color:#526d7b; line-height:1.5; }
.subscription-dialog .onceplus-overview .plan-price { flex:0 0 auto; }
.subscription-dialog .onceplus-benefit-grid { margin-top:14px; }
.subscription-dialog .onceplus-benefit { box-shadow:none; }
.subscription-dialog .paypal-button-container { min-height:50px; }
.subscription-dialog .subscription-footer { flex-wrap:wrap; }
html[data-theme="dark"] .subscription-dialog .onceplus-overview { border-color:#3a5662; }
html[data-theme="dark"] .subscription-dialog .onceplus-overview h3 { color:#f1f8fb; }
html[data-theme="dark"] .subscription-dialog .onceplus-overview p { color:#d0e0e7; }
html[data-theme="dark"] .owner-dashboard { color:#e8f2f6; }
html[data-theme="dark"] .owner-kpis article,
html[data-theme="dark"] .owner-card { border-color:#405b67; background:#172d37; box-shadow:none; }
html[data-theme="dark"] .owner-card h2,
html[data-theme="dark"] .owner-kpis strong,
html[data-theme="dark"] .owner-account-identity strong,
html[data-theme="dark"] .owner-update strong { color:#eff8fb; }
html[data-theme="dark"] .owner-kpis small,
html[data-theme="dark"] .owner-security-note span,
html[data-theme="dark"] .owner-card>p,
html[data-theme="dark"] .owner-account-identity small,
html[data-theme="dark"] .owner-account-meta small,
html[data-theme="dark"] .owner-update p,
html[data-theme="dark"] .owner-update small { color:#c8d9e0; }
html[data-theme="dark"] .owner-security-note { border-color:#405b67; background:#203943; }
html[data-theme="dark"] .owner-security-note strong { color:#a9e3fa; }
html[data-theme="dark"] .owner-table-wrap { border-color:#405b67; }
html[data-theme="dark"] .owner-table th { background:#203943; color:#d7e8ee; }
html[data-theme="dark"] .owner-table td,
html[data-theme="dark"] .owner-table th { border-color:#354e59; }
html[data-theme="dark"] .owner-update { border-color:#405b67; background:#1b333d; }
html[data-theme="dark"] .owner-status { background:#34464e; color:#edf5f8; }
html[data-theme="dark"] .owner-status.is-active { background:#285743; color:#c4f2d7; }
html[data-theme="dark"] .owner-account-avatar,
html[data-theme="dark"] .owner-count { background:#315565; color:#e1f5fc; }
@media(max-width:680px) {
  .subscription-dialog .onceplus-overview { gap:10px; }
  .subscription-dialog .onceplus-overview h3 { font-size:19px; }
  .subscription-dialog .onceplus-overview .plan-price strong { font-size:24px; }
  .subscription-dialog .onceplus-includes { align-items:flex-start; }
  .subscription-dialog .subscription-footer { flex-direction:column; align-items:stretch; }
  .subscription-dialog .subscription-footer button { align-self:flex-end; }
  .owner-columns { grid-template-columns:minmax(0,1fr); }
}

/* v131: avis legibles y directorio de cuentas compacto para crecer. */
html[data-theme="dark"] body #toast {
  background:#17384b;
  color:#f4fbfe;
  border:1px solid #6b97a8;
  box-shadow:0 8px 24px #0006;
}
.owner-account-list { grid-template-columns:repeat(auto-fill,minmax(min(100%,235px),1fr)); gap:7px; }
.owner-account-card { gap:7px; padding:9px; border-radius:12px; }
.owner-account-main { grid-template-columns:28px minmax(0,1fr) auto; gap:7px; }
.owner-account-avatar { width:28px; height:28px; border-radius:9px; font-size:11px; }
.owner-account-identity strong { font-size:12px; line-height:1.25; }
.owner-account-identity small,
.owner-account-meta small { font-size:10px; }
.owner-account-meta { gap:7px; padding-top:5px; }
.owner-account-meta b { font-size:11px; }
.owner-account-select { min-height:32px; padding:5px 8px; font-size:11px; }
.owner-status { padding:3px 7px; font-size:10px; }
@media(max-width:680px) {
  .owner-account-list { grid-template-columns:1fr; gap:7px; }
  .owner-account-card { padding:9px; }
  .owner-account-select { min-height:36px; }
}

/* OnControl v132: controles compactos, aviso de suscripcion independiente y Once legible. */
.userbar .userbar-icon-button {
  display:inline-grid; place-items:center; width:40px; height:40px; min-width:40px; padding:0;
  border-radius:12px; line-height:1; flex:0 0 auto;
}
.userbar .userbar-icon-button svg { width:19px; height:19px; fill:none; stroke:currentColor; stroke-width:1.8; stroke-linecap:round; stroke-linejoin:round; }
.userbar .userbar-icon-button:hover { transform:translateY(-1px); }
.subscription-status-region {
  display:block; margin:18px 0 20px; padding:0; clear:both;
}
.subscription-status-region .plan-selection-notice {
  margin:0; padding:13px 16px; border:1px solid #c8dce6; border-radius:14px;
  background:#f2f8fb; color:#31566a; line-height:1.55;
}
html[data-theme="dark"] .subscription-status-region .plan-selection-notice {
  border-color:#456575; background:#203b49; color:#e5f2f7;
}
/* El icono cuadrado no se usa dentro de la pastilla: el control completo queda blanco en oscuro. */
html[data-theme="dark"] .once-launcher,
html[data-theme="dark"] .once-launcher:hover,
html[data-theme="dark"] .once-launcher:active {
  background:#fff !important; border:1px solid #fff !important; color:#0b5471 !important;
  box-shadow:none !important; filter:none !important;
}
html[data-theme="dark"] .once-launcher .once-icon-light,
html[data-theme="dark"] .once-launcher .once-icon-dark { display:none !important; }
html[data-theme="dark"] .once-launcher span {
  display:block !important; width:100% !important; color:#0b5471 !important;
  background:transparent !important; border:0 !important; box-shadow:none !important;
  text-align:center; font-size:20px !important; font-weight:800;
}
@media(max-width:680px) {
  .userbar .userbar-icon-button { width:38px; height:38px; min-width:38px; border-radius:11px; }
  .userbar .userbar-icon-button svg { width:18px; height:18px; }
  .subscription-status-region { margin:14px 0 16px; }
}
/* Aviso de bienvenida OncePlus para el primer acceso posterior al registro. */
.onceplus-welcome-backdrop { z-index: 45; }
.onceplus-welcome-card { width:min(100%, 720px); padding:clamp(20px, 4vw, 34px); border-radius:22px; }
.onceplus-welcome-heading { display:flex; align-items:flex-start; justify-content:space-between; gap:20px; margin-bottom:20px; }
.onceplus-welcome-heading h2 { margin:8px 0 8px; color:var(--ink,#12384b); font-size:clamp(1.45rem,3vw,2rem); }
.onceplus-welcome-heading p { max-width:570px; margin:0; color:var(--muted,#587080); line-height:1.55; }
.onceplus-welcome-eyebrow,.onceplus-welcome-tag { color:#0b6688; font-size:.75rem; font-weight:800; letter-spacing:.1em; }
.onceplus-welcome-close { flex:0 0 auto; width:42px; height:42px; border-radius:12px; font-size:1.35rem; }
.onceplus-welcome-offer { display:flex; justify-content:space-between; align-items:center; gap:18px; padding:18px 20px; border:1px solid #a9d4e8; border-radius:16px; background:#eff8fc; }
.onceplus-welcome-offer h3 { margin:5px 0; color:#12384b; font-size:1.35rem; }
.onceplus-welcome-offer p { margin:0; color:#536f7f; }
.onceplus-welcome-price { display:grid; justify-items:end; white-space:nowrap; color:#0b5471; }
.onceplus-welcome-price strong { font-size:clamp(1.5rem,4vw,2rem); }
.onceplus-welcome-price span { color:#536f7f; font-size:.9rem; }
.onceplus-welcome-benefits { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; margin:16px 0 20px; }
.onceplus-welcome-benefits article { display:grid; align-content:start; gap:4px; padding:13px 15px; border:1px solid var(--line,#d2e2e9); border-radius:14px; background:var(--surface,#fff); }
.onceplus-welcome-benefits article strong { color:var(--ink,#12384b); }
.onceplus-welcome-benefits article span { color:var(--muted,#587080); font-size:.93rem; line-height:1.45; }
.onceplus-welcome-actions { display:flex; flex-wrap:wrap; gap:10px; }
.onceplus-welcome-actions button { min-height:46px; padding:10px 20px; }
.onceplus-welcome-footnote { margin:12px 0 0; color:var(--muted,#587080); font-size:.86rem; }
html[data-theme="dark"] .onceplus-welcome-card { background:#172d38; border-color:#486271; color:#edf6fa; }
html[data-theme="dark"] .onceplus-welcome-heading h2,html[data-theme="dark"] .onceplus-welcome-benefits article strong,html[data-theme="dark"] .onceplus-welcome-offer h3 { color:#f3f9fc; }
html[data-theme="dark"] .onceplus-welcome-heading p,html[data-theme="dark"] .onceplus-welcome-benefits article span,html[data-theme="dark"] .onceplus-welcome-footnote,html[data-theme="dark"] .onceplus-welcome-offer p,html[data-theme="dark"] .onceplus-welcome-price span { color:#c2d6df; }
html[data-theme="dark"] .onceplus-welcome-offer { background:#203d4a; border-color:#527687; }
html[data-theme="dark"] .onceplus-welcome-price { color:#a9e3ff; }
html[data-theme="dark"] .onceplus-welcome-benefits article { background:#203843; border-color:#456575; }
@media(max-width:600px) {
 .onceplus-welcome-backdrop { padding:12px; }
 .onceplus-welcome-card { max-height:calc(100dvh - 24px); overflow:auto; padding:18px; border-radius:18px; }
 .onceplus-welcome-heading { gap:10px; }
 .onceplus-welcome-benefits { grid-template-columns:1fr; gap:8px; margin:12px 0 16px; }
 .onceplus-welcome-benefits article { padding:11px 13px; }
 .onceplus-welcome-offer { align-items:flex-start; padding:14px; }
 .onceplus-welcome-actions { display:grid; grid-template-columns:1fr; }
 .onceplus-welcome-actions button { width:100%; }
}
/* v143: totales por trabajador en Personal */
.emp-details{flex:1;min-width:0}.emp-payroll-pills{display:flex;flex-wrap:wrap;gap:5px;margin-top:7px}.emp-payroll-pill{display:inline-flex;align-items:center;gap:5px;padding:4px 7px;border:1px solid #b8d8e8;border-radius:999px;background:#f0f8fc;color:#315f75;font-size:10px;line-height:1.25}.emp-payroll-pill b{color:#0b5471;white-space:nowrap}.emp-payroll-month{border-color:#0b5471;background:#0b5471;color:#fff}.emp-payroll-month b{color:#fff}html[data-theme="dark"] .emp-payroll-pill{border-color:#4f8196;background:#203e4b;color:#d9edf5}html[data-theme="dark"] .emp-payroll-pill b{color:#f0faff}html[data-theme="dark"] .emp-payroll-month{border-color:#72d8fa;background:#087da6;color:#fff}html[data-theme="dark"] .emp-payroll-month b{color:#fff}@media(max-width:520px){.emp-payroll-pill{font-size:9px;padding:4px 6px}}

/* v144 · reportes de soporte */
.floating-support-tools{position:fixed;right:max(20px,env(safe-area-inset-right));bottom:max(20px,env(safe-area-inset-bottom));z-index:60;display:flex;align-items:center;gap:9px}.floating-support-tools .once-launcher{position:static!important;right:auto!important;bottom:auto!important}.support-ticket-launcher{display:grid;place-items:center;width:46px;height:46px;min-width:46px;min-height:46px;padding:0;border:1px solid #8bb9cc;border-radius:50%;background:#fff;color:#0b5471;box-shadow:0 4px 14px #102e3f24}.support-ticket-launcher svg{width:21px;height:21px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.support-ticket-launcher:hover{transform:translateY(-1px)}.support-ticket-launcher.has-pending-ticket{border-color:#dc9c3d;background:#fff7e8;color:#8b5700}.support-ticket-dialog{width:min(620px,calc(100vw - 26px));max-height:calc(100dvh - 28px);overflow:auto}.support-ticket-dialog-heading{align-items:flex-start;border-bottom:1px solid #dce8ed;padding-bottom:12px}.support-ticket-dialog-heading h2{margin:3px 0}.support-ticket-dialog-heading p{margin:3px 0;color:#607582;font-size:13px}.support-ticket-kicker{color:#0b789f;font-size:10px;font-weight:800;letter-spacing:.12em}.support-ticket-form{display:grid;gap:8px;margin-top:14px}.support-ticket-form label,.support-reply-form label{font-size:13px;font-weight:700;color:#31596a}.support-ticket-form textarea,.support-reply-form textarea{width:100%;resize:vertical}.support-ticket-form input[type=file]{width:100%}.support-ticket-form>small{margin-top:-5px;color:#607582;font-size:11px}.support-ticket-form button{justify-self:start}.support-ticket-state{margin-top:12px}.support-ticket-state-hint,.support-ticket-error{margin:6px 0;color:#607582;font-size:13px}.support-ticket-error{color:#9e3030}.support-user-ticket,.support-ticket-card{padding:13px;border:1px solid #d7e5eb;border-radius:12px;background:#f8fbfc}.support-user-ticket>small,.support-ticket-heading small{display:block;margin-top:4px;color:#687e89;font-size:11px}.support-user-ticket>p,.support-ticket-message{white-space:pre-wrap;overflow-wrap:anywhere}.support-user-ticket>strong{display:block;margin-top:12px;font-size:12px;color:#765115}.support-user-original{font-size:12px;color:#607582}.support-ticket-status{display:inline-flex;padding:4px 9px;border-radius:999px;font-size:11px;font-weight:750}.support-ticket-status.is-pending{background:#fff0ce;color:#805400}.support-ticket-status.is-answered{background:#e4f6ed;color:#17663e}.support-ticket-response{margin-top:10px;padding:10px 12px;border-left:3px solid #1784a8;border-radius:0 9px 9px 0;background:#eaf5fa}.support-ticket-response p{margin:5px 0 0;white-space:pre-wrap;overflow-wrap:anywhere}.support-ticket-attachment{display:inline-block;margin:5px 0;color:#0b688a;font-weight:700;font-size:12px}.owner-support-card{margin-top:16px}.owner-support-tickets{display:grid;gap:10px;margin-top:14px}.support-ticket-card{background:#fff}.support-ticket-heading{display:flex;justify-content:space-between;gap:12px;align-items:flex-start}.support-ticket-heading strong{display:block;overflow-wrap:anywhere}.support-ticket-message{margin:12px 0;font-size:14px}.support-reply-form{display:grid;gap:8px;margin-top:12px;padding-top:12px;border-top:1px solid #e2ebef}.support-reply-form textarea{min-height:80px}.support-reply-form button{justify-self:start}.support-ticket-attachment-error{color:#8c5b14}html[data-theme="dark"] .support-ticket-launcher{background:#203e4b;color:#d9f5ff;border-color:#72d8fa}html[data-theme="dark"] .support-user-ticket,html[data-theme="dark"] .support-ticket-card{background:#1b303a;border-color:#405965;color:#eff6f8}html[data-theme="dark"] .support-ticket-response{background:#203e4b;color:#eff6f8;border-color:#72d8fa}html[data-theme="dark"] .support-ticket-dialog-heading p,html[data-theme="dark"] .support-ticket-form label,html[data-theme="dark"] .support-reply-form label{color:#d1e1e8}html[data-theme="dark"] .support-ticket-form>small,html[data-theme="dark"] .support-user-ticket>small,html[data-theme="dark"] .support-ticket-heading small{color:#bdcdd5}@media(max-width:520px){.floating-support-tools{right:max(12px,env(safe-area-inset-right));bottom:max(12px,env(safe-area-inset-bottom));gap:7px}.support-ticket-launcher{width:42px;height:42px;min-width:42px;min-height:42px}.support-ticket-dialog{padding:15px}.support-ticket-dialog-heading{gap:8px}}

/* v146 · controles flotantes centrados, compactos y juntos */
.floating-support-tools{left:50%;right:auto;bottom:max(12px,env(safe-area-inset-bottom));transform:translateX(-50%);gap:5px}
.floating-support-tools .once-launcher{position:static!important;left:auto!important;right:auto!important;bottom:auto!important;width:48px!important;height:48px!important;min-width:48px!important;min-height:48px!important;padding:1px!important;border-radius:15px!important}
.floating-support-tools .once-launcher img{width:46px!important;height:46px!important;border-radius:13px!important}
.floating-support-tools .support-ticket-launcher{width:40px;height:40px;min-width:40px;min-height:40px}
.floating-support-tools .support-ticket-launcher svg{width:19px;height:19px}
@media(max-width:520px){.floating-support-tools{left:50%;right:auto;bottom:max(10px,env(safe-area-inset-bottom));gap:4px}.floating-support-tools .once-launcher{width:44px!important;height:44px!important;min-width:44px!important;min-height:44px!important}.floating-support-tools .once-launcher img{width:42px!important;height:42px!important}.floating-support-tools .support-ticket-launcher{width:38px;height:38px;min-width:38px;min-height:38px}}

/* v147 · centro de reportes claro y legible en ambos temas */
html[data-theme="dark"] .floating-support-tools .support-ticket-launcher{background:#163a49!important;color:#e6f8ff!important;border-color:#70cdea!important;box-shadow:0 5px 18px #0008!important}
html[data-theme="dark"] .floating-support-tools .support-ticket-launcher:hover,html[data-theme="dark"] .floating-support-tools .support-ticket-launcher:focus-visible{background:#20566b!important;color:#fff!important;border-color:#a4e8ff!important}
html[data-theme="dark"] .floating-support-tools .support-ticket-launcher.has-pending-ticket{background:#493915!important;color:#ffe5aa!important;border-color:#e0ad4e!important}
.support-ticket-launcher{transition:transform .16s ease,background .16s ease,border-color .16s ease,box-shadow .16s ease}
.support-ticket-launcher:focus-visible{outline:3px solid #39a9d1;outline-offset:3px}
.support-ticket-dialog{width:min(540px,calc(100vw - 28px));padding:22px;max-height:calc(100dvh - 28px);border-radius:20px}
.support-ticket-dialog-heading{gap:14px;align-items:flex-start;border-color:#e3edf1;padding-bottom:16px}
.support-ticket-dialog-heading h2{font-size:clamp(21px,4vw,26px);line-height:1.2;letter-spacing:-.025em;margin:5px 0 7px}
.support-ticket-dialog-heading p{max-width:390px;line-height:1.55}
.support-ticket-dialog-heading>button{flex:0 0 auto;width:38px;height:38px;padding:0;border-radius:50%;font-size:22px;line-height:1}
.support-ticket-kicker{display:inline-flex;align-items:center;padding:5px 9px;border-radius:999px;background:#e7f5fa;color:#0b688a;font-size:10px;font-weight:800;letter-spacing:.1em}
.support-ticket-form{gap:9px;margin-top:17px}
.support-ticket-form label{margin-top:4px;font-size:13px;color:#244e60}
.support-ticket-form label span{font-weight:500;color:#70838d}
.support-ticket-form textarea{min-height:132px;padding:12px 13px;border:1px solid #cbdce4;border-radius:12px;background:#fbfdfe;color:#17313d;line-height:1.55;resize:vertical}
.support-ticket-form textarea:focus{outline:3px solid #0b789f26;border-color:#1683aa}
.support-ticket-form textarea::placeholder{color:#80929a;opacity:1}
.support-ticket-field-hint,.support-ticket-privacy{font-size:11px;line-height:1.45;color:#6b7f89}
.support-ticket-field-hint{margin-top:-5px}
.support-ticket-form input[type=file]{padding:10px;border:1px dashed #aac4d0;border-radius:11px;background:#f5fafc;color:#395b69;font-size:12px}
.support-ticket-form input[type=file]::file-selector-button{margin-right:10px;padding:7px 11px;border:0;border-radius:8px;background:#e4f2f7;color:#0b5471;font:inherit;font-weight:700;cursor:pointer}
.support-ticket-form>small{margin-top:-5px;line-height:1.45}
.support-ticket-form button{min-height:44px;margin-top:4px;padding:10px 17px;border-radius:11px;font-weight:750}
.support-ticket-privacy{margin-top:-2px;text-align:center}
.support-ticket-welcome{display:flex;gap:11px;align-items:flex-start;padding:13px;border:1px solid #cfe4ed;border-radius:13px;background:#f0f8fb;color:#234957}
.support-ticket-welcome>span{display:grid;place-items:center;flex:0 0 25px;width:25px;height:25px;border-radius:50%;background:#d8f0e5;color:#1b704b;font-weight:800}
.support-ticket-welcome strong{font-size:13px}
.support-ticket-welcome p{margin:4px 0 0;color:#526e7b;font-size:12px;line-height:1.5}
.support-ticket-state-hint{margin:13px 0 2px}
html[data-theme="dark"] .support-ticket-dialog-heading{border-color:#405965}
html[data-theme="dark"] .support-ticket-kicker{background:#203f4c;color:#9de7ff}
html[data-theme="dark"] .support-ticket-form textarea{background:#14262f;color:#f0f7fa;border-color:#49616e}
html[data-theme="dark"] .support-ticket-form textarea::placeholder{color:#a8bac3}
html[data-theme="dark"] .support-ticket-form input[type=file]{background:#14262f;color:#dbe8ed;border-color:#55707e}
html[data-theme="dark"] .support-ticket-form input[type=file]::file-selector-button{background:#254956;color:#ddf6ff}
html[data-theme="dark"] .support-ticket-field-hint,html[data-theme="dark"] .support-ticket-privacy{color:#b1c1c9}
html[data-theme="dark"] .support-ticket-welcome{background:#1d3640;border-color:#416271;color:#eff8fb}
html[data-theme="dark"] .support-ticket-welcome p{color:#c2d4dc}
@media(max-width:520px){.support-ticket-dialog{width:100%;max-height:calc(100dvh - 20px);padding:17px;border-radius:17px}.support-ticket-form textarea{min-height:118px}.support-ticket-dialog-heading p{font-size:12px}}

/* v148 · cabecera y panel de empresa optimizados para teléfonos */
@media(max-width:680px){
  header{position:relative;display:flex;flex-direction:column;align-items:stretch;gap:10px;padding:14px max(14px,env(safe-area-inset-right)) 12px max(14px,env(safe-area-inset-left))}
  header .brand{display:flex;align-items:flex-start;width:100%;min-width:0;min-height:0;flex:0 0 auto;gap:0;margin:0;padding:0 58px 0 0}
  .brand-wordmark-button,.brand-wordmark-button:hover,.brand-wordmark-button:active{flex:1 1 auto!important;width:100%!important;min-width:0!important;padding:0!important;align-items:flex-start}
  .brand-wordmark-button .brand-title{font-size:25px;line-height:1.12}
  .brand-wordmark-button .brand-tagline{font-size:12px;line-height:1.35}
  .theme-toggle{position:absolute;top:13px;right:max(14px,env(safe-area-inset-right));width:62px;height:36px}
  .userbar{display:flex;width:100%;max-width:100%;min-width:0;flex:0 0 auto;flex-direction:column;align-items:stretch;flex-wrap:nowrap;gap:7px;font-size:12px}
  .account-actions{display:flex;order:1;align-items:center;justify-content:flex-end;flex-wrap:nowrap;gap:7px;width:100%;min-width:0}
  .userbar .userbar-icon-button,.userbar #profileBtn,.userbar #logoutBtn{display:inline-grid;place-items:center;flex:0 0 38px;width:38px;height:38px;min-width:38px;min-height:38px;padding:0;border-radius:11px;white-space:nowrap;line-height:1}
  .userbar .userbar-icon-button svg{width:18px;height:18px}
  .account-status{display:flex;order:2;align-items:center;gap:8px;width:100%;min-width:0;overflow:hidden}
  .syncstate{flex:0 0 auto;max-width:44%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:11px}
  .account-status #userEmail,.userbar #userEmail{display:block;flex:1 1 auto;width:1px;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;overflow-wrap:normal;align-self:center}
  .toolbar{gap:8px;padding:9px;margin-bottom:10px;border-radius:12px}
  .toolbar-row{gap:7px}
  .company-picker{grid-template-columns:auto minmax(0,1fr)!important;gap:7px}
  .company-picker select{min-height:42px;font-size:15px}
  .rolebadge{grid-column:2;justify-self:end;padding:4px 9px;font-size:11px}
  .company-actions{gap:6px}
  .company-actions>.admin-menu{grid-column:1/-1}
  .company-actions>#configurePayrollCycle,.company-actions>#addCompany{min-height:42px;font-size:12px}
  .company-actions>.admin-menu>summary{min-height:42px}
  .primary-actions>.filebtn{grid-column:1/-1;min-height:42px}
  .month-picker{min-height:46px;padding:4px}
  .month-picker input[type="month"]{min-height:36px}
  .data-actions .toolbar-menu>summary{min-height:42px}
  .manager-hub,.notice{padding:11px 12px}
  .wrap{padding-top:10px;padding-bottom:14px}
  .panel{padding:12px;border-radius:13px}
  .section-heading{gap:6px}
}
@media(max-width:380px){
  header .brand{padding-right:54px}
  .brand-wordmark-button .brand-title{font-size:23px}
  .theme-toggle{right:max(12px,env(safe-area-inset-right));width:58px}
  .account-actions{gap:5px}
  .userbar .userbar-icon-button,.userbar #profileBtn,.userbar #logoutBtn{flex-basis:36px;width:36px;height:36px;min-width:36px;min-height:36px}
  .company-picker{grid-template-columns:minmax(0,1fr)!important}
  .company-picker .toolbar-caption{grid-column:1/-1}
  .rolebadge{grid-column:1;justify-self:start}
}

/* v149 · OncePlus destacado, panel oscuro consistente y recuperación clara */
.userbar #subscriptionBtn{position:relative;background:linear-gradient(145deg,#fff5c9,#ffeb99)!important;border:1px solid #ffdc62!important;color:#75530b!important;box-shadow:0 0 0 2px #ffe78355,0 4px 12px #8c651b25!important;transition:transform .16s ease,box-shadow .16s ease,filter .16s ease}
.userbar #subscriptionBtn svg path{fill:#ffdf69;stroke:#a96f05;stroke-width:1.4}
.userbar #subscriptionBtn:hover{transform:translateY(-1px) scale(1.04);filter:saturate(1.12);box-shadow:0 0 0 3px #ffe78378,0 7px 17px #8c651b35!important}
.userbar #subscriptionBtn:focus-visible{outline:3px solid #ffdc62;outline-offset:3px}
html[data-theme="dark"] .userbar #subscriptionBtn{background:linear-gradient(145deg,#433b21,#342d1b)!important;border-color:#e6c44e!important;color:#fff0b1!important;box-shadow:0 0 0 2px #ffe78335,0 4px 14px #0007!important}
html[data-theme="dark"] .userbar #subscriptionBtn svg path{fill:#ffdf69;stroke:#ffe78a}
html[data-theme="dark"] .userbar #subscriptionBtn:focus-visible{outline-color:#ffe78a}
html[data-theme="dark"] #subscriptionDialog .subscription-dialog{background:#142832!important;color:#edf5f8;border-color:#45616d}
html[data-theme="dark"] #subscriptionDialog .subscription-plan,
html[data-theme="dark"] #subscriptionDialog .subscription-plan-featured{background:#1a333e!important;border-color:#547a8a!important;color:#edf5f8;box-shadow:none}
html[data-theme="dark"] #subscriptionDialog .onceplus-overview{background:transparent!important;border-color:#3a5662}
html[data-theme="dark"] #subscriptionDialog .onceplus-benefit{background:#203943!important;border-color:#45616d!important;color:#edf5f8}
html[data-theme="dark"] #subscriptionDialog .onceplus-includes,
html[data-theme="dark"] #subscriptionDialog .plan-selection-notice{background:#203943!important;border-color:#496b79!important;color:#e0edf2}
html[data-theme="dark"] #subscriptionDialog .subscription-footer{color:#d0e0e7}
html[data-theme="dark"] #subscriptionDialog .paypal-button-container{background:transparent!important;color:#edf5f8}
html[data-theme="dark"] #subscriptionDialog .subscription-close{background:#263f49!important;border-color:#55717d!important;color:#eef7fa!important}
.forgot-help{margin:12px 0 0;color:var(--muted);font-size:12px;line-height:1.5}
.forgot-help a{font-weight:700;overflow-wrap:anywhere}
html[data-theme="dark"] .forgot-help{color:#c8d9e0}
.onceplus-welcome-card{box-shadow:0 24px 80px #061d2b55}
.onceplus-welcome-eyebrow{display:inline-flex;padding:5px 9px;border-radius:999px;background:#e7f5fa}
.onceplus-welcome-actions #oncePlusWelcomePlan{background:linear-gradient(135deg,#0b5471,#167a9c);box-shadow:0 5px 14px #0b547129}
html[data-theme="dark"] .onceplus-welcome-eyebrow{background:#203f4c;color:#9de7ff}
html[data-theme="dark"] .onceplus-welcome-actions #oncePlusWelcomePlan{background:linear-gradient(135deg,#18779a,#2395b8);color:#fff}
@media(max-width:600px){.userbar #subscriptionBtn{box-shadow:0 0 0 2px #ffe78355,0 3px 10px #8c651b30!important}}

/* v150 · Once en el centro y dos espacios simétricos para ayuda */
.floating-support-tools{position:fixed;left:50%;right:auto;bottom:max(16px,env(safe-area-inset-bottom));display:grid!important;grid-template-columns:44px 78px 44px;grid-template-rows:48px;align-items:center;justify-items:center;gap:5px;width:max-content;transform:translateX(-50%);z-index:60}
.floating-support-tools::before{content:"";grid-column:1;grid-row:1;width:44px;height:44px;visibility:hidden;pointer-events:none}
.floating-support-tools .once-launcher{grid-column:2;grid-row:1;position:static!important;left:auto!important;right:auto!important;top:auto!important;bottom:auto!important;width:78px!important;height:46px!important;min-width:78px!important;min-height:46px!important;padding:0!important;display:flex;align-items:center;justify-content:center;overflow:hidden;border:1px solid #1c6b87!important;border-radius:999px!important;background:#0b5471!important;color:#fff!important;box-shadow:0 4px 13px #0b54712c!important}
.floating-support-tools .once-launcher img{display:none!important}
.floating-support-tools .once-launcher span{position:static!important;display:flex!important;align-items:center;justify-content:center;gap:5px;width:auto!important;height:auto!important;padding:0!important;margin:0!important;overflow:visible!important;clip:auto!important;white-space:normal!important;border:0!important;background:transparent!important;color:#fff!important;font-size:0!important;line-height:1!important}
.floating-support-tools .once-launcher span::before,.floating-support-tools .once-launcher span::after{content:"";display:block;width:4px;height:20px;border-radius:3px;background:currentColor}
.floating-support-tools .support-ticket-launcher{grid-column:3;grid-row:1;position:static;width:40px;height:40px;min-width:40px;min-height:40px;margin:0}
html[data-theme="dark"] .floating-support-tools .once-launcher{background:#fff!important;color:#0b5471!important;border-color:#d9edf5!important;box-shadow:0 4px 13px #0003!important}
html[data-theme="dark"] .floating-support-tools .once-launcher span{color:#0b5471!important}
@media(max-width:680px){.floating-support-tools{bottom:max(10px,env(safe-area-inset-bottom));grid-template-columns:40px 72px 40px;grid-template-rows:44px;gap:4px}.floating-support-tools::before{width:40px;height:40px}.floating-support-tools .once-launcher{width:72px!important;height:42px!important;min-width:72px!important;min-height:42px!important}.floating-support-tools .once-launcher span::before,.floating-support-tools .once-launcher span::after{height:18px}.floating-support-tools .support-ticket-launcher{width:38px;height:38px;min-width:38px;min-height:38px}}
@media(prefers-reduced-motion:reduce){.floating-support-tools .once-launcher,.floating-support-tools .support-ticket-launcher{transition:none!important}}

/* v151 · accesos de cuenta con escala y separación equilibradas */
.account-actions{display:flex;align-items:center;justify-content:flex-end;flex:0 0 auto;gap:9px;margin-left:auto}
.userbar .userbar-icon-button{flex:0 0 36px;width:36px;height:36px;min-width:36px;min-height:36px;padding:0;border-radius:10px}
.userbar .userbar-icon-button svg{width:17px;height:17px}
@media(max-width:680px){.account-actions{margin-left:0;gap:7px}.userbar .userbar-icon-button{flex-basis:38px;width:38px;height:38px;min-width:38px;min-height:38px}.userbar .userbar-icon-button svg{width:18px;height:18px}}
@media(max-width:380px){.account-actions{gap:6px}}

/* v152 · temas de ayuda centrados sin artefactos y planilla por quincena */
.floating-support-tools{gap:2px}
.floating-support-tools #onceLauncher{transform:none!important;transition:filter .16s ease,box-shadow .16s ease}
.floating-support-tools #onceLauncher img{display:none!important}
.floating-support-tools #onceLauncher span{display:flex!important;position:static!important;align-items:center!important;justify-content:center!important;gap:5px!important;width:auto!important;height:auto!important;min-width:0!important;padding:0!important;margin:0!important;overflow:visible!important;clip:auto!important;white-space:normal!important;font-size:0!important;line-height:1!important;color:#fff!important;background:transparent!important;border:0!important}
.floating-support-tools #onceLauncher span::before,.floating-support-tools #onceLauncher span::after{content:"";display:block;width:4px;height:20px;border-radius:3px;background:currentColor}
html[data-theme="dark"] .floating-support-tools #onceLauncher{background:#0b5471!important;border:1px solid #54a2bf!important;color:#f6fcff!important;box-shadow:0 4px 14px #0005!important}
html[data-theme="dark"] .floating-support-tools #onceLauncher span{display:flex!important;color:#fff!important}
html[data-theme="dark"] .floating-support-tools #onceLauncher img{display:none!important}
html[data-theme="dark"] .floating-support-tools #onceLauncher span::before,html[data-theme="dark"] .floating-support-tools #onceLauncher span::after{background:#fff!important}
.floating-support-tools #supportTicketLauncher{margin-left:0}
.userbar #subscriptionBtn{isolation:isolate;background:linear-gradient(145deg,#fff0a8,#ffdf61)!important;border:1px solid #ffd33f!important;color:#624500!important;box-shadow:0 0 0 2px #ffe78345,0 3px 10px #74520b24!important}
.userbar #subscriptionBtn svg{background:transparent!important;overflow:visible}
.userbar #subscriptionBtn svg path{fill:#ffd83d!important;stroke:#8a6200!important;stroke-width:1.5}
html[data-theme="dark"] .userbar #subscriptionBtn{background:#302c1d!important;border-color:#d2ad35!important;color:#ffdf62!important;box-shadow:0 0 0 2px #ffdb5840,0 4px 12px #0007!important}
html[data-theme="dark"] .userbar #subscriptionBtn svg,html[data-theme="dark"] .userbar #subscriptionBtn svg path{background:transparent!important}
html[data-theme="dark"] .userbar #subscriptionBtn svg path{fill:#ffdf62!important;stroke:#ffdf62!important}
html[data-theme="dark"] #subscriptionDialog .paypal-button-container{background:transparent!important;border-color:transparent!important;box-shadow:none!important}
.payroll-fortnight-detail{display:block;margin-top:5px;color:var(--muted);font-size:11px;line-height:1.35}
.payroll-fortnight-detail b{color:var(--dark)}
html[data-theme="dark"] .payroll-fortnight-detail,html[data-theme="dark"] .payroll-fortnight-detail b{color:#d4e4ea}
.payroll-admin-only .formgrid .field small{color:var(--muted);font-size:11px;line-height:1.4}
html[data-theme="dark"] .payroll-admin-only .formgrid .field small{color:#bdd0d8}
.loading.boot-timeout{max-width:560px;margin:32px auto;padding:22px;border:1px solid var(--line);border-radius:16px;background:var(--surface);line-height:1.6}
.boot-retry-button{display:block;margin:16px auto 0}
html[data-theme="dark"] .loading.boot-timeout{background:#172c36;color:#eaf5f8;border-color:#466571}
@media(max-width:680px){.floating-support-tools{gap:2px}.floating-support-tools .once-launcher span::before,.floating-support-tools .once-launcher span::after{height:18px}.payroll-fortnight-detail{font-size:10px}}

/* v157 · ventana flotante compacta para tickets, anclada sobre su botón */
#supportTicketDialog{position:fixed;inset:auto;right:calc(50% - 82px);bottom:calc(max(16px,env(safe-area-inset-bottom)) + 52px);display:block;width:min(380px,calc(100vw - 24px));height:auto;max-height:calc(100dvh - max(104px,calc(92px + env(safe-area-inset-top))));padding:0;background:transparent;pointer-events:none;z-index:61}
#supportTicketDialog .support-ticket-dialog{width:100%;max-height:inherit;padding:18px;border-radius:18px;pointer-events:auto;transform-origin:bottom right;box-shadow:0 16px 46px #102b3b36;animation:support-ticket-float-in .16s ease-out both}
@keyframes support-ticket-float-in{from{opacity:0;transform:translateY(8px) scale(.985)}to{opacity:1;transform:translateY(0) scale(1)}}
@media(max-width:580px){#supportTicketDialog{left:max(12px,env(safe-area-inset-left));right:max(12px,env(safe-area-inset-right));bottom:calc(max(10px,env(safe-area-inset-bottom)) + 50px);width:auto;max-height:calc(100dvh - max(92px,calc(80px + env(safe-area-inset-top))))}#supportTicketDialog .support-ticket-dialog{width:100%;max-height:inherit;padding:16px;border-radius:16px}#supportTicketDialog .support-ticket-form{gap:7px;margin-top:11px}#supportTicketDialog .support-ticket-form textarea{min-height:108px}#supportTicketDialog .support-ticket-dialog-heading h2{font-size:21px}}
@media(prefers-reduced-motion:reduce){#supportTicketDialog .support-ticket-dialog{animation:none}}
/* v158 · permisos configurables de gerencia */
.manager-permissions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px 12px;margin:12px 0;padding:12px;border:1px solid #cfdee5;border-radius:12px}.manager-permissions legend{padding:0 6px;font-weight:750;color:#0b5471}.manager-permissions label{display:flex;align-items:center;gap:8px;font-size:13px}.manager-permissions input{width:17px;height:17px;accent-color:#0b718e}.manager-permissions .note{grid-column:1/-1;margin:0}.manager-account{align-items:flex-start}.manager-account>div{display:grid;gap:3px}.manager-account small+small{color:#0b718e!important}@media(max-width:520px){.manager-permissions{grid-template-columns:1fr}}
html[data-theme="dark"] .manager-permissions{background:#172b35;border-color:#3d5e6e}html[data-theme="dark"] .manager-permissions legend{color:#d9f1fb}html[data-theme="dark"] .manager-account small+small{color:#98d3e8!important}

/* v159 · contraste real del acceso OncePlus y el area de pago en modo oscuro */
.userbar #subscriptionBtn,.userbar #subscriptionBtn:hover,.userbar #subscriptionBtn:active,.userbar #subscriptionBtn[aria-pressed="true"]{background:linear-gradient(145deg,#fff3b4 0%,#ffe276 100%)!important;border:1px solid #f2c943!important;color:#594300!important;box-shadow:0 0 0 2px #ffe78360,0 4px 12px #0002!important}
.userbar #subscriptionBtn svg path,.userbar #subscriptionBtn:hover svg path{fill:#ffd83d!important;stroke:#745000!important;stroke-width:1.6}
html[data-theme="dark"] .userbar #subscriptionBtn,html[data-theme="dark"] .userbar #subscriptionBtn:hover,html[data-theme="dark"] .userbar #subscriptionBtn:active,html[data-theme="dark"] .userbar #subscriptionBtn[aria-pressed="true"]{background:linear-gradient(145deg,#fff0a1 0%,#ffdf55 100%)!important;border-color:#ffe27a!important;color:#4e3900!important;box-shadow:0 0 0 2px #ffdf5555,0 4px 14px #0008!important}
html[data-theme="dark"] .userbar #subscriptionBtn svg path,html[data-theme="dark"] .userbar #subscriptionBtn:hover svg path{fill:#ffd83d!important;stroke:#674900!important}
html[data-theme="dark"] #subscriptionDialog .subscription-plan-featured,html[data-theme="dark"] #subscriptionDialog .onceplus-overview,html[data-theme="dark"] #subscriptionDialog .onceplus-benefit,html[data-theme="dark"] #subscriptionDialog .onceplus-includes,html[data-theme="dark"] #subscriptionDialog .subscription-status-region,html[data-theme="dark"] #subscriptionDialog .plan-selection-notice,html[data-theme="dark"] #subscriptionDialog .subscription-footer{background-color:#172f39!important;color:#eaf4f8!important;border-color:#45616d!important}
html[data-theme="dark"] #subscriptionDialog .paypal-button-container{min-height:58px;padding:6px;background:#172f39!important;border:1px solid #45616d!important;border-radius:12px;overflow:hidden;box-shadow:none!important}
html[data-theme="dark"] #subscriptionDialog .paypal-button-container iframe{border-radius:8px!important}
html[data-theme="dark"] #subscriptionDialog .subscription-dialog,html[data-theme="dark"] #subscriptionDialog .subscription-plan{background:#142832!important}

/* v160 · estado de asistencia y comparativo de sueldo */
.emp{align-items:center}.employee-update-pill{display:inline-flex;align-items:center;gap:8px;flex:0 0 auto;min-width:132px;padding:7px 10px;border:1px solid;border-radius:999px;background:var(--surface,#fff);font-size:11px;line-height:1.2}.employee-update-pill>i{width:9px;height:9px;flex:0 0 9px;border-radius:50%;background:currentColor;box-shadow:0 0 0 3px color-mix(in srgb,currentColor 14%,transparent)}.employee-update-pill>span{display:grid;gap:2px}.employee-update-pill b{font-size:11px}.employee-update-pill small{font-size:9px;white-space:nowrap}.update-green{color:#167447;border-color:#84c9a5;background:#effaf3}.update-orange{color:#a75d08;border-color:#edbd73;background:#fff7e9}.update-red{color:#a83333;border-color:#e6a0a0;background:#fff1f1}.emp-payroll-pill{flex-wrap:wrap}.emp-payroll-pill small{width:100%;font-size:9px;opacity:.82}.emp-payroll-month small{color:#fff;opacity:.9}html[data-theme="dark"] .update-green{color:#7de2a6;border-color:#3b815a;background:#173b2b}html[data-theme="dark"] .update-orange{color:#ffd08a;border-color:#926226;background:#3b2c17}html[data-theme="dark"] .update-red{color:#ffaaaa;border-color:#8c4e4e;background:#3b2023}html[data-theme="dark"] .emp-payroll-pill small{color:#c5dbe4}html[data-theme="dark"] .emp-payroll-month small{color:#fff}.summary-table.payroll-wide-summary{table-layout:auto;font-size:6.4pt}.summary-table.payroll-wide-summary th,.summary-table.payroll-wide-summary td{width:auto!important;padding:3px;white-space:normal;overflow-wrap:anywhere}.summary-table.payroll-wide-summary th:first-child,.summary-table.payroll-wide-summary td:first-child{min-width:92px}.summary-table.payroll-wide-summary th:nth-child(2),.summary-table.payroll-wide-summary td:nth-child(2){min-width:56px}
@media(max-width:600px){.employee-update-pill{min-width:0;padding:6px 8px}.employee-update-pill small{white-space:normal}.emp-payroll-pill{min-height:42px;align-content:center}.emp{align-items:flex-start}.employee-update-pill{margin-left:auto}}
.report-preview-content{overflow-x:auto}.report-preview-content .summary-table.payroll-wide-summary{width:max-content;min-width:1400px;table-layout:auto;font-size:10px}.report-preview-content .summary-table.payroll-wide-summary th,.report-preview-content .summary-table.payroll-wide-summary td{width:auto!important;white-space:normal}.report-preview-content .payroll-summary-section{page-break-after:always}

.once-plan-gate{margin:12px;padding:14px;border:1px solid #9fc8d8;border-radius:12px;background:#edf7fb;color:#17384b;font-size:13px;line-height:1.45}.once-plan-gate p{margin:5px 0 12px}.once-plan-gate button{min-height:36px;padding:7px 12px}.once-plan-gate.hidden{display:none!important}html[data-theme="dark"] .once-plan-gate{background:#223944;border-color:#4d7181;color:#eff8fb}
.owner-tools-card{display:flex;align-items:center;justify-content:space-between;gap:18px;margin:14px 0;padding:17px 20px;border:1px solid #cbdfe8;border-radius:16px;background:#f2f8fb;color:#173b4b}.owner-tools-card>div:first-child{display:grid;gap:4px}.owner-tools-card>div:first-child strong{font-size:15px}.owner-tools-card small{color:#5d7480}.owner-tool-actions{display:flex;flex-wrap:wrap;gap:8px}.owner-tool-actions button{min-height:38px}.owner-search-control{display:flex;align-items:center;gap:8px;margin-bottom:12px}.owner-search-control .owner-account-search{flex:1;margin:0}.owner-search-control button{min-height:40px;white-space:nowrap}.owner-updates-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.owner-updates-heading>div{min-width:0}.owner-updates-heading>small{flex:0 0 auto;color:#647d89;font-size:11px}.report-table-group-title{margin:9px 0 4px;font-size:9pt;color:#0b5471;break-after:avoid;page-break-after:avoid}.summary-table.payroll-breakout{table-layout:fixed;font-size:8pt}.summary-table.payroll-breakout th,.summary-table.payroll-breakout td{padding:4px 5px;font-size:8pt;overflow-wrap:anywhere}.payroll-breakout-8 th:nth-child(1){width:24%}.payroll-breakout-8 th:nth-child(2){width:11%}.payroll-breakout-8 th:nth-child(3){width:13%}.payroll-breakout-8 th:nth-child(4){width:9%}.payroll-breakout-8 th:nth-child(5){width:11%}.payroll-breakout-8 th:nth-child(6){width:11%}.payroll-breakout-8 th:nth-child(7){width:9%}.payroll-breakout-8 th:nth-child(8){width:12%}.payroll-breakout-4 th:nth-child(1){width:37%}.payroll-breakout-4 th:nth-child(n+2){width:21%}.payroll-breakout-3 th:nth-child(1){width:50%}.payroll-breakout-3 th:nth-child(n+2){width:25%}.payroll-breakout-7 th:nth-child(1){width:25%}.payroll-breakout-7 th:nth-child(n+2){width:12.5%}html[data-theme="dark"] .owner-tools-card{background:#1b3039;border-color:#3b5966;color:#e6f3f8}html[data-theme="dark"] .owner-tools-card small,html[data-theme="dark"] .owner-updates-heading>small{color:#c6d8df}
@media(max-width:700px){.owner-tools-card,.owner-updates-heading{align-items:stretch;flex-direction:column}.owner-tool-actions{display:grid;grid-template-columns:1fr 1fr}.owner-tool-actions button{min-width:0}.owner-search-control{align-items:stretch}.owner-search-control button{padding-inline:10px}}
/* OnControl v163: beneficios y accesos por ID de gerente */
.vacation-benefits-panel{border-left:4px solid #1887aa;background:linear-gradient(135deg,#f2fbff,#fff)}
.vacation-benefits-panel h2{color:#0b5471}
.vacation-benefits-panel #vacationBalanceInput{font-weight:800;font-size:18px;max-width:220px}
.vacation-financial{border:1px solid #9bcde8;background:#eaf5fb}
.emp-benefit-pill{border-color:#88b7cd;background:#e8f6fb;color:#14536c}
.emp-tips-pill{border-color:#d6ae39;background:#fff8dc;color:#775400}
.manager-credential-result{margin:12px 0;padding:16px;border:2px solid #187fa1;border-radius:16px;background:#e9f8ff;color:#123f52}
.manager-credential-result strong,.manager-credential-result code{display:block}
.manager-credential-result code{margin:8px 0;font-size:20px;font-weight:800;letter-spacing:1.5px}
#managerCreateFields{display:grid;gap:8px;margin-top:12px}
#managerCreateFields small{color:var(--muted);line-height:1.45}
html[data-theme="dark"] .vacation-benefits-panel{background:#1d3742;border-color:#56c7ec}
html[data-theme="dark"] .vacation-benefits-panel h2{color:#c5efff}
html[data-theme="dark"] .vacation-financial{background:#233e4a;border-color:#5d8fa3}
html[data-theme="dark"] .emp-benefit-pill{background:#214756;border-color:#5a9bb3;color:#e9faff}
html[data-theme="dark"] .emp-tips-pill{background:#5d4c1e;border-color:#e7c44e;color:#fff2bf}
html[data-theme="dark"] .manager-credential-result{background:#1d3b48;border-color:#63c5e7;color:#ecfaff}

/* Ficha del trabajador en ventana flotante */
body.employee-details-open{overflow:hidden}
body.employee-details-open::before{content:"";position:fixed;inset:0;z-index:8500;background:rgba(6,25,35,.66);backdrop-filter:blur(4px)}
#employeeDetailPanel.employee-floating-open{position:fixed!important;z-index:8501;left:50%!important;top:50%!important;transform:translate(-50%,-50%);width:min(1180px,calc(100vw - 40px))!important;max-width:calc(100vw - 40px)!important;height:min(90dvh,900px);max-height:90dvh;overflow:auto;overscroll-behavior:contain;margin:0!important;padding:clamp(14px,2vw,26px);box-shadow:0 24px 80px #0006;border:1px solid var(--line,#b9d3df);border-radius:22px;background:var(--panel,#fff)}
.employee-floating-heading{position:sticky;top:calc(-1 * clamp(14px,2vw,26px));z-index:4;display:flex;align-items:center;justify-content:space-between;gap:12px;margin:calc(-1 * clamp(14px,2vw,26px)) calc(-1 * clamp(14px,2vw,26px)) 16px;padding:14px clamp(14px,2vw,26px);background:var(--panel,#fff);border-bottom:1px solid var(--line,#d5e2e9);border-radius:20px 20px 0 0}
.employee-floating-heading small,.employee-floating-heading strong{display:block}.employee-floating-heading small{font-size:10px;letter-spacing:.12em;color:var(--muted,#607582)}.employee-floating-heading strong{margin-top:3px;font-size:18px;color:var(--text,#17384b)}
html[data-theme="dark"] #employeeDetailPanel.employee-floating-open,html[data-theme="dark"] .employee-floating-heading{background:#142b35;border-color:#456876;color:#edf8fc}
html[data-theme="dark"] .employee-floating-heading strong{color:#edf8fc}
@media(max-width:700px){#employeeDetailPanel.employee-floating-open{width:calc(100vw - 16px)!important;max-width:calc(100vw - 16px)!important;height:calc(100dvh - 16px);max-height:calc(100dvh - 16px);border-radius:16px;padding:12px}.employee-floating-heading{top:-12px;margin:-12px -12px 12px;padding:12px;border-radius:14px 14px 0 0}.employee-floating-heading strong{font-size:16px}}

/* v165: orden de capas para que el aviso de bienvenida nunca quede bajo una capa vacía */
body.employee-details-open::before{z-index:8400}
#employeeDetailPanel.employee-floating-open{z-index:8401}
.dialog-backdrop{z-index:9000}
.onceplus-welcome-backdrop{z-index:9002}

/* v166: la capa de ficha queda debajo de los diálogos y no puede ocultar su contenido */
body.employee-details-open::before{z-index:20!important}
#employeeDetailPanel.employee-floating-open{z-index:21!important}
.dialog-backdrop{z-index:30!important}
.onceplus-welcome-backdrop{z-index:45!important}

/* v167: no cubrir ni desenfocar toda la aplicación desde el estado de ficha */
body.employee-details-open::before{content:none!important;display:none!important;backdrop-filter:none!important;-webkit-backdrop-filter:none!important}


/* v168: fija la ficha al viewport y anula la transformacion de su animacion de entrada */
#employeeDetailPanel.employee-floating-open{position:fixed!important;left:50%!important;right:auto!important;top:50%!important;bottom:auto!important;transform:translate(-50%,-50%)!important;translate:none!important;inset:auto!important;margin:0!important;width:min(1180px,calc(100vw - 32px))!important;max-width:calc(100vw - 32px)!important;height:min(90dvh,900px)!important;max-height:calc(100dvh - 32px)!important;overflow:auto!important;z-index:25!important}
@media(max-width:700px){#employeeDetailPanel.employee-floating-open{width:calc(100vw - 16px)!important;max-width:calc(100vw - 16px)!important;height:calc(100dvh - 16px)!important;max-height:calc(100dvh - 16px)!important}}

/* La pastilla de Once se muestra a toda cuenta con sesión; la suscripción limita su uso, no su visibilidad. */
.floating-support-tools #onceLauncher:not(.hidden){display:flex!important}

/* v169: pastillas de nómina compactas y contenido alineado sin estirar cada chip */
.emp{padding:8px 10px;gap:10px}
.emp-details{min-width:0}
.emp-details>b{display:block;font-size:14px;line-height:1.25}
.emp-details>small{margin-top:2px}
.emp-payroll-pills{display:flex;flex-wrap:wrap;align-items:stretch;gap:4px;margin-top:5px;width:fit-content;max-width:100%}
.emp-payroll-pill{display:grid;grid-template-columns:max-content max-content;align-content:center;column-gap:5px;row-gap:2px;max-width:100%;padding:4px 7px;line-height:1.15;white-space:nowrap}
.emp-payroll-pill small{grid-column:1/-1;width:auto;min-width:0;margin:0;font-size:9px;line-height:1.1;white-space:nowrap}
.employee-update-pill{min-width:120px;gap:6px;padding:6px 8px}
.employee-update-pill>i{width:8px;height:8px;flex-basis:8px}
@media(max-width:600px){.emp{gap:8px;padding:8px}.emp-details>b{font-size:13px}.emp-payroll-pills{gap:4px}.emp-payroll-pill{padding:4px 6px;font-size:9px}.emp-payroll-pill small{font-size:8px}.employee-update-pill{min-width:0;padding:5px 7px}}
/* v170: mayor legibilidad para importes, etiquetas y estado de asistencia */
.emp-details>b{font-size:15px;letter-spacing:.005em}
.emp-details>small{color:#526a78;font-size:12px;line-height:1.35}
.emp-payroll-pill{font-size:11px;line-height:1.25;color:#244f65;border-color:#9bc9df;background:#f4faff}
.emp-payroll-pill b{font-size:12px;color:#064a68;font-weight:800}
.emp-payroll-pill small{font-size:10px;line-height:1.2;color:#536e7c;opacity:1}
.emp-payroll-month{background:#0b5471;color:#fff;border-color:#0b5471}
.emp-payroll-month b,.emp-payroll-month small{color:#fff}
.emp-benefit-pill{color:#244f65}
.emp-tips-pill{color:#704c00;border-color:#d6ae39;background:#fff8dc}
.employee-update-pill{font-size:12px;line-height:1.3}
.employee-update-pill b{font-size:12px}
.employee-update-pill small{font-size:10px;line-height:1.25;color:inherit;opacity:.9}
html[data-theme="dark"] .emp-details>small{color:#c1d3dc}
html[data-theme="dark"] .emp-payroll-pill{background:#203e4b;border-color:#5c91a7;color:#e6f4fa}
html[data-theme="dark"] .emp-payroll-pill b{color:#fff}
html[data-theme="dark"] .emp-payroll-pill small{color:#d1e2e9}
html[data-theme="dark"] .emp-payroll-month{background:#087da6;border-color:#72d8fa;color:#fff}
html[data-theme="dark"] .emp-payroll-month b,html[data-theme="dark"] .emp-payroll-month small{color:#fff}
html[data-theme="dark"] .emp-tips-pill{background:#5d4c1e;border-color:#e7c44e;color:#fff2bf}
@media(max-width:600px){.emp-details>b{font-size:14px}.emp-details>small{font-size:11px}.emp-payroll-pill{font-size:10px}.emp-payroll-pill b{font-size:11px}.emp-payroll-pill small{font-size:9px}.employee-update-pill b{font-size:11px}.employee-update-pill small{font-size:9px}}
/* v171: paleta oscura con contraste claro entre sueldo, beneficios y estado */
html[data-theme="dark"] .emp{background:#152c36;border-color:#46616d;color:#f1f8fb}
html[data-theme="dark"] .emp.active{background:#183642;border-color:#63c8e9;box-shadow:0 0 0 1px #63c8e955}
html[data-theme="dark"] .emp-details>b{color:#f6fbff}
html[data-theme="dark"] .emp-details>small{color:#c3d6df}
html[data-theme="dark"] .emp-payroll-pill{background:#294653;border-color:#6ba8bf;color:#f0f8fc;box-shadow:inset 0 1px #ffffff08}
html[data-theme="dark"] .emp-payroll-pill b{color:#fff;font-weight:800}
html[data-theme="dark"] .emp-payroll-pill small{color:#d4e4eb}
html[data-theme="dark"] .emp-payroll-pill.emp-payroll-month{background:#087da6;border-color:#72d8fa;color:#fff;box-shadow:0 0 0 1px #72d8fa33}
html[data-theme="dark"] .emp-payroll-pill.emp-payroll-month b,html[data-theme="dark"] .emp-payroll-pill.emp-payroll-month small{color:#fff}
html[data-theme="dark"] .emp-payroll-pill.emp-benefit-pill{background:#273d47;border-color:#75a9bd;color:#f0f8fc}
html[data-theme="dark"] .emp-payroll-pill.emp-tips-pill{background:#55451a;border-color:#f0c34e;color:#fff2bd}
html[data-theme="dark"] .employee-update-pill.update-green{background:#173e2d;border-color:#55b67b;color:#a6f0bd}
html[data-theme="dark"] .employee-update-pill.update-orange{background:#4b3518;border-color:#edb64a;color:#ffe09a}
html[data-theme="dark"] .employee-update-pill.update-red{background:#49272b;border-color:#e07b83;color:#ffb5ba}
html[data-theme="dark"] .employee-update-pill>i{box-shadow:0 0 0 3px color-mix(in srgb,currentColor 22%,transparent)}
/* v172: acentos pastel sobre superficies oscuras, con texto oscuro de alto contraste */
html[data-theme="dark"] .emp-payroll-pill{background:#d9edf5;border-color:#a6cfdf;color:#24495a;box-shadow:inset 0 1px #ffffffaa}
html[data-theme="dark"] .emp-payroll-pill b{color:#153e52}
html[data-theme="dark"] .emp-payroll-pill small{color:#476575}
html[data-theme="dark"] .emp-payroll-pill.emp-payroll-month{background:#c9eee4;border-color:#8bd2bd;color:#20534b;box-shadow:0 0 0 1px #8bd2bd33}
html[data-theme="dark"] .emp-payroll-pill.emp-payroll-month b,html[data-theme="dark"] .emp-payroll-pill.emp-payroll-month small{color:#174b43}
html[data-theme="dark"] .emp-payroll-pill.emp-benefit-pill{background:#e5def8;border-color:#c1b1e9;color:#40365d}
html[data-theme="dark"] .emp-payroll-pill.emp-benefit-pill b{color:#35284f}
html[data-theme="dark"] .emp-payroll-pill.emp-benefit-pill small{color:#584d70}
html[data-theme="dark"] .emp-payroll-pill.emp-tips-pill{background:#fff0c2;border-color:#e7c96b;color:#624b13}
html[data-theme="dark"] .emp-payroll-pill.emp-tips-pill b{color:#503b0c}
html[data-theme="dark"] .employee-update-pill.update-green{background:#d8f3df;border-color:#9ad5a9;color:#205c36}
html[data-theme="dark"] .employee-update-pill.update-orange{background:#ffe8c7;border-color:#edc17b;color:#70460b}
html[data-theme="dark"] .employee-update-pill.update-red{background:#f8d9dc;border-color:#e6a4aa;color:#702c35}
/* v173: separación más clara entre los controles flotantes inferiores */
.floating-support-tools{column-gap:10px!important;gap:10px!important}
@media(max-width:680px){.floating-support-tools{column-gap:8px!important;gap:8px!important}}
/* v175: asegurar contraste del texto en pastillas pastel aunque otras reglas del tema lo sobrescriban */
html[data-theme="dark"] .emp-payroll-pills>.emp-payroll-pill:nth-child(1),html[data-theme="dark"] .emp-payroll-pills>.emp-payroll-pill:nth-child(2){color:#18384a!important}
html[data-theme="dark"] .emp-payroll-pills>.emp-payroll-pill:nth-child(1) b,html[data-theme="dark"] .emp-payroll-pills>.emp-payroll-pill:nth-child(2) b{color:#10364a!important}
html[data-theme="dark"] .emp-payroll-pills>.emp-payroll-pill:nth-child(1) small,html[data-theme="dark"] .emp-payroll-pills>.emp-payroll-pill:nth-child(2) small{color:#405f70!important;opacity:1!important}
html[data-theme="dark"] .employee-update-pill.update-orange,html[data-theme="dark"] .employee-update-pill.update-orange b,html[data-theme="dark"] .employee-update-pill.update-orange small{color:#603d0a!important}
html[data-theme="dark"] .employee-update-pill.update-green,html[data-theme="dark"] .employee-update-pill.update-green b,html[data-theme="dark"] .employee-update-pill.update-green small{color:#205c36!important}
html[data-theme="dark"] .employee-update-pill.update-red,html[data-theme="dark"] .employee-update-pill.update-red b,html[data-theme="dark"] .employee-update-pill.update-red small{color:#702c35!important}
/* v176: panel de tickets pulido y textos claramente legibles en modo oscuro */
#supportTicketDialog .support-ticket-dialog{border:1px solid #6b9aad;border-radius:20px;background:#fff;color:#183746;box-shadow:0 20px 58px #061a2780}
#supportTicketDialog .support-ticket-dialog-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin:0;padding:0 0 14px;border-bottom:1px solid #d6e5eb}
#supportTicketDialog .support-ticket-dialog-heading>div{min-width:0}
#supportTicketDialog .support-ticket-dialog-heading h2{color:#153f54}
#supportTicketDialog .support-ticket-dialog-heading p{color:#526d7a}
#supportTicketDialog .support-ticket-form{gap:8px;margin-top:13px}
#supportTicketDialog .support-ticket-form label{margin:3px 0 0;color:#244b5c;font-size:13px}
#supportTicketDialog .support-ticket-field-hint,#supportTicketDialog .support-ticket-privacy{color:#506976;font-size:12px;line-height:1.45}
#supportTicketDialog .support-ticket-welcome{margin-bottom:4px}
#supportTicketDialog .support-ticket-form textarea{min-height:122px;font-size:14px}
#supportTicketDialog .support-ticket-form input[type=file]{min-height:48px;background:#f4f9fb}
#supportTicketDialog #sendSupportTicket{min-width:145px;min-height:46px;box-shadow:0 4px 12px #0b547123}
#supportTicketDialog .support-ticket-dialog-heading>button{background:#f0f6f8;color:#244b5c;border:1px solid #c9dce4}
html[data-theme="dark"] #supportTicketDialog .support-ticket-dialog{background:#142b35!important;border-color:#5a7f8e!important;color:#f2f8fb!important}
html[data-theme="dark"] #supportTicketDialog .support-ticket-dialog-heading{border-color:#4a6672!important}
html[data-theme="dark"] #supportTicketDialog .support-ticket-dialog-heading h2{color:#f5fbff!important}
html[data-theme="dark"] #supportTicketDialog .support-ticket-dialog-heading p{color:#d4e3e9!important}
html[data-theme="dark"] #supportTicketDialog .support-ticket-kicker{background:#254653!important;color:#b9edff!important}
html[data-theme="dark"] #supportTicketDialog .support-ticket-form label{color:#f0f7fa!important}
html[data-theme="dark"] #supportTicketDialog .support-ticket-form label span{color:#c6d8df!important}
html[data-theme="dark"] #supportTicketDialog .support-ticket-field-hint,html[data-theme="dark"] #supportTicketDialog .support-ticket-privacy{color:#d0dfe5!important}
html[data-theme="dark"] #supportTicketDialog .support-ticket-form textarea{background:#0e2029!important;color:#f6fbfd!important;border-color:#668694!important}
html[data-theme="dark"] #supportTicketDialog .support-ticket-form textarea::placeholder{color:#c0d0d7!important;opacity:1}
html[data-theme="dark"] #supportTicketDialog .support-ticket-form input[type=file]{background:#1b3540!important;color:#f0f7fa!important;border-color:#73919d!important}
html[data-theme="dark"] #supportTicketDialog .support-ticket-form input[type=file]::file-selector-button{background:#c8edf8!important;color:#153d50!important}
html[data-theme="dark"] #supportTicketDialog .support-ticket-welcome{background:#203b46!important;border-color:#60808d!important;color:#f5fbfd!important}
html[data-theme="dark"] #supportTicketDialog .support-ticket-welcome p{color:#d8e6eb!important}
html[data-theme="dark"] #supportTicketDialog .support-ticket-dialog-heading>button{background:#29434e!important;border-color:#64808b!important;color:#f6fbfd!important}
html[data-theme="dark"] #supportTicketDialog .support-ticket-error{color:#ffb8b8!important}
html[data-theme="dark"] #supportTicketDialog .support-user-ticket{background:#203944!important;color:#f5fbfd!important;border-color:#5b7c88!important}
html[data-theme="dark"] #supportTicketDialog .support-user-ticket>small{color:#d2e1e6!important}
html[data-theme="dark"] #supportTicketDialog .support-ticket-response{background:#234653!important;color:#f4fbff!important;border-color:#8ad8f2!important}
@media(max-width:580px){#supportTicketDialog .support-ticket-dialog{padding:16px 15px;border-radius:18px}#supportTicketDialog .support-ticket-form textarea{min-height:106px}#supportTicketDialog .support-ticket-dialog-heading p{font-size:12px}}
/* v177: herramientas privadas dentro del panel de propietario y resumen de ficha */
.owner-personal-tools-host #personalTools{margin:12px 0 18px;scroll-margin-top:16px}
.owner-dashboard .owner-tools-card{margin-top:12px;margin-bottom:8px}
.employee-quick-summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin:10px 0 16px;padding:12px;border:1px solid #c5dce6;border-radius:15px;background:#f2f8fb}
.employee-quick-summary>div{display:grid;align-content:center;gap:3px;min-width:0;padding:9px 11px;border:1px solid #d5e5eb;border-radius:11px;background:#fff}
.employee-quick-summary small{color:#526b78;font-size:11px;line-height:1.25}
.employee-quick-summary b{color:#123e53;font-size:15px;line-height:1.2;overflow-wrap:anywhere}
.employee-quick-summary .employee-quick-total{background:#d9f2e9;border-color:#9bd7c2}
.employee-quick-summary .employee-quick-total b{color:#174f43;font-size:17px}
.emp:focus-visible{outline:3px solid #46acd0;outline-offset:2px}
html[data-theme="dark"] .employee-quick-summary{background:#172d37;border-color:#53727e}
html[data-theme="dark"] .employee-quick-summary>div{background:#203b46;border-color:#557987}
html[data-theme="dark"] .employee-quick-summary small{color:#d4e3e9}
html[data-theme="dark"] .employee-quick-summary b{color:#f3faff}
html[data-theme="dark"] .employee-quick-summary .employee-quick-total{background:#d9f2e9;border-color:#9bd7c2}
html[data-theme="dark"] .employee-quick-summary .employee-quick-total b{color:#174f43}
@media(max-width:680px){.employee-quick-summary{grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;padding:9px}.employee-quick-summary>div{padding:8px}.employee-quick-summary small{font-size:10px}.employee-quick-summary b{font-size:14px}.employee-quick-summary .employee-quick-total b{font-size:16px}}
/* v179: ficha de trabajador modal, delimitada al viewport y cierre exclusivo con X */
body.employee-details-open{overflow:hidden!important}
body.employee-details-open::before{content:""!important;display:block!important;position:fixed!important;inset:0!important;z-index:9997!important;background:rgba(4,18,26,.68)!important;backdrop-filter:none!important;-webkit-backdrop-filter:none!important}
#employeeDetailPanel.employee-floating-open{position:fixed!important;inset:50% auto auto 50%!important;left:50%!important;right:auto!important;top:50%!important;bottom:auto!important;transform:translate(-50%,-50%)!important;translate:none!important;width:min(1180px,calc(100vw - 32px))!important;max-width:calc(100vw - 32px)!important;height:min(90dvh,900px)!important;max-height:calc(100dvh - 32px)!important;overflow:auto!important;overscroll-behavior:contain!important;z-index:9998!important}
.employee-floating-heading{position:sticky!important;top:calc(-1 * clamp(14px,2vw,26px))!important}
.employee-detail-close-x{display:grid!important;place-items:center!important;flex:0 0 42px!important;width:42px!important;height:42px!important;padding:0!important;border-radius:50%!important;font-size:28px!important;font-weight:700!important;line-height:1!important}
body.employee-details-open #closeEmployeePanel{display:none!important}
@media(max-width:700px){#employeeDetailPanel.employee-floating-open{inset:8px!important;left:8px!important;top:8px!important;transform:none!important;width:calc(100vw - 16px)!important;max-width:calc(100vw - 16px)!important;height:calc(100dvh - 16px)!important;max-height:calc(100dvh - 16px)!important}.employee-floating-heading{top:-12px!important}}
/* v181: la ficha vive en body; diálogos de confirmación se apilan por encima */
.dialog-backdrop:not(.hidden){z-index:10001!important}
.onceplus-welcome-backdrop:not(.hidden){z-index:10002!important}
/* v182: marco exterior independiente y barra de desplazamiento insetada */
#employeeDetailPanel.employee-floating-open{overflow:hidden!important;padding:0!important;border-radius:22px!important;isolation:isolate}
#employeeDetailPanel.employee-floating-open>.employee-panel-scroll{position:absolute;inset:8px!important;overflow:auto!important;overscroll-behavior:contain;scrollbar-gutter:stable;padding:clamp(14px,2vw,26px);border-radius:14px;scrollbar-width:thin;scrollbar-color:#8ba7b5 transparent}
#employeeDetailPanel.employee-floating-open>.employee-panel-scroll::-webkit-scrollbar{width:12px;height:12px}
#employeeDetailPanel.employee-floating-open>.employee-panel-scroll::-webkit-scrollbar-track{margin:10px 0;background:transparent}
#employeeDetailPanel.employee-floating-open>.employee-panel-scroll::-webkit-scrollbar-thumb{background:#8ba7b5;border:3px solid transparent;background-clip:padding-box;border-radius:999px}
html[data-theme="dark"] #employeeDetailPanel.employee-floating-open>.employee-panel-scroll{scrollbar-color:#658796 transparent}
html[data-theme="dark"] #employeeDetailPanel.employee-floating-open>.employee-panel-scroll::-webkit-scrollbar-thumb{background-color:#658796}
@media(max-width:700px){#employeeDetailPanel.employee-floating-open{padding:0!important;border-radius:16px!important}#employeeDetailPanel.employee-floating-open>.employee-panel-scroll{inset:6px!important;padding:12px;border-radius:11px}}
/* v183: encabezado fijo primero, identidad persistente y X rojo pastel accesible */
.employee-floating-heading{display:flex!important;align-items:center!important;justify-content:space-between!important;gap:14px!important;min-height:78px;background:var(--panel,#fff)!important}
.employee-floating-identity{display:grid;gap:3px;min-width:0}
.employee-floating-identity strong{font-size:19px;line-height:1.2;overflow-wrap:anywhere}
.employee-floating-identity>span{font-size:13px;line-height:1.3;color:#526c79;overflow-wrap:anywhere}
.employee-detail-close-x{background:#f8dada!important;border:1px solid #e9a8ad!important;color:#7d2631!important;box-shadow:0 2px 8px #7d263122!important}
.employee-detail-close-x:hover{background:#f2c4c8!important;border-color:#dc9098!important;color:#6a1d27!important}
.employee-detail-close-x:focus-visible{outline:3px solid #d98790!important;outline-offset:2px}
html[data-theme="dark"] .employee-detail-close-x{background:#55343a!important;border-color:#b97780!important;color:#ffe1e3!important;box-shadow:0 2px 10px #0004!important}
html[data-theme="dark"] .employee-detail-close-x:hover{background:#694047!important;border-color:#d18d95!important;color:#fff!important}
html[data-theme="dark"] .employee-floating-identity>span{color:#c3d3da}
@media(max-width:700px){.employee-floating-heading{min-height:68px}.employee-floating-identity strong{font-size:16px}.employee-floating-identity>span{font-size:12px}}
/* v184: pastillas de personal reorganizadas para pantallas pequeñas */
@media(max-width:600px){
  .emp{display:grid!important;grid-template-columns:minmax(0,1fr) auto;align-items:start;column-gap:9px;row-gap:8px;padding:10px!important;border-radius:14px}
  .emp-details{display:contents}
  .emp-details>b{grid-column:1;grid-row:1;align-self:center;min-width:0;max-width:100%;font-size:13px!important;line-height:1.25;overflow-wrap:anywhere}
  .emp-details>small{grid-column:1;grid-row:2;align-self:start;margin:0;font-size:11px!important;line-height:1.25}
  .employee-update-pill{grid-column:2;grid-row:1 / span 2;align-self:center;justify-self:end;min-width:0;max-width:122px;padding:6px 8px!important;gap:6px;font-size:10px;line-height:1.2}
  .employee-update-pill>span{min-width:0}.employee-update-pill b{font-size:10px!important}.employee-update-pill small{font-size:9px!important;white-space:normal;overflow-wrap:anywhere}
  .emp-payroll-pills{grid-column:1 / -1;display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr));align-items:stretch;gap:6px!important;width:100%!important;max-width:none!important;margin-top:0!important}
  .emp-payroll-pill{display:grid!important;grid-template-columns:minmax(0,1fr) auto;align-content:center;align-items:baseline;column-gap:5px;row-gap:2px;width:100%;min-width:0;max-width:none;padding:7px 8px!important;border-radius:12px!important;font-size:10px!important;line-height:1.2!important;white-space:normal!important;overflow-wrap:anywhere}
  .emp-payroll-pill b{justify-self:end;max-width:100%;font-size:11px!important;line-height:1.2;white-space:nowrap}
  .emp-payroll-pill small{grid-column:1 / -1;min-width:0;font-size:9px!important;line-height:1.15!important;white-space:normal!important}
  .emp-payroll-pills>.emp-payroll-month{grid-column:1 / -1}
}
@media(max-width:360px){.emp{column-gap:6px;padding:8px!important}.employee-update-pill{max-width:112px;padding:5px 6px!important}.emp-payroll-pills{gap:5px!important}.emp-payroll-pill{padding:6px!important;font-size:9px!important}.emp-payroll-pill b{font-size:10px!important}}

/* El icono del ticket conserva contraste después de tocarlo, incluso con el foco retenido por iOS. */
.floating-support-tools .support-ticket-launcher,.floating-support-tools .support-ticket-launcher:hover,.floating-support-tools .support-ticket-launcher:focus,.floating-support-tools .support-ticket-launcher:focus-visible,.floating-support-tools .support-ticket-launcher:active{opacity:1!important;filter:none!important;-webkit-tap-highlight-color:transparent;outline-offset:3px}
.floating-support-tools .support-ticket-launcher:not(.has-pending-ticket),.floating-support-tools .support-ticket-launcher:not(.has-pending-ticket):hover,.floating-support-tools .support-ticket-launcher:not(.has-pending-ticket):focus,.floating-support-tools .support-ticket-launcher:not(.has-pending-ticket):focus-visible,.floating-support-tools .support-ticket-launcher:not(.has-pending-ticket):active{background:#fff!important;color:#0b5471!important;border-color:#8bb9cc!important}
.floating-support-tools .support-ticket-launcher svg,.floating-support-tools .support-ticket-launcher svg path{opacity:1!important;fill:none!important;stroke:#0b5471!important}
html[data-theme="dark"] .floating-support-tools .support-ticket-launcher:not(.has-pending-ticket),html[data-theme="dark"] .floating-support-tools .support-ticket-launcher:not(.has-pending-ticket):hover,html[data-theme="dark"] .floating-support-tools .support-ticket-launcher:not(.has-pending-ticket):focus,html[data-theme="dark"] .floating-support-tools .support-ticket-launcher:not(.has-pending-ticket):focus-visible,html[data-theme="dark"] .floating-support-tools .support-ticket-launcher:not(.has-pending-ticket):active{background:#163a49!important;color:#e6f8ff!important;border-color:#70cdea!important}
html[data-theme="dark"] .floating-support-tools .support-ticket-launcher:not(.has-pending-ticket) svg,html[data-theme="dark"] .floating-support-tools .support-ticket-launcher:not(.has-pending-ticket) svg path{stroke:#e6f8ff!important}.floating-support-tools .support-ticket-launcher.has-pending-ticket,.floating-support-tools .support-ticket-launcher.has-pending-ticket:hover,.floating-support-tools .support-ticket-launcher.has-pending-ticket:focus,.floating-support-tools .support-ticket-launcher.has-pending-ticket:focus-visible,.floating-support-tools .support-ticket-launcher.has-pending-ticket:active{background:#fff7e8!important;color:#8b5700!important;border-color:#dc9c3d!important;-webkit-text-fill-color:#8b5700!important}
.floating-support-tools .support-ticket-launcher.has-pending-ticket svg,.floating-support-tools .support-ticket-launcher.has-pending-ticket svg path{stroke:#8b5700!important}
html[data-theme="dark"] .floating-support-tools .support-ticket-launcher.has-pending-ticket,html[data-theme="dark"] .floating-support-tools .support-ticket-launcher.has-pending-ticket:hover,html[data-theme="dark"] .floating-support-tools .support-ticket-launcher.has-pending-ticket:focus,html[data-theme="dark"] .floating-support-tools .support-ticket-launcher.has-pending-ticket:focus-visible,html[data-theme="dark"] .floating-support-tools .support-ticket-launcher.has-pending-ticket:active{background:#493915!important;color:#ffe5aa!important;border-color:#e0ad4e!important;-webkit-text-fill-color:#ffe5aa!important}
html[data-theme="dark"] .floating-support-tools .support-ticket-launcher.has-pending-ticket svg,html[data-theme="dark"] .floating-support-tools .support-ticket-launcher.has-pending-ticket svg path{stroke:#ffe5aa!important}
/* v186: restaurar el encabezado horizontal del asistente en móvil */
@media(max-width:680px){
  header.once-header{display:flex!important;flex-direction:row!important;flex-wrap:nowrap!important;align-items:center!important;justify-content:space-between!important;gap:8px!important;width:100%;min-width:0;padding:10px 12px!important}
  .once-header .once-identity{display:flex!important;flex:1 1 auto!important;flex-direction:row!important;align-items:center!important;min-width:0;gap:9px!important}
  .once-header .once-identity>img{flex:0 0 42px;width:42px!important;height:42px!important}
  .once-header .once-identity>div{min-width:0}
  .once-header .once-identity strong{font-size:16px;line-height:1.2}
  .once-header .once-identity span{font-size:12px;line-height:1.25}
  .once-header .once-close{display:grid!important;place-items:center!important;flex:0 0 42px!important;width:42px!important;min-width:42px!important;height:42px!important;min-height:42px!important;margin:0 0 0 auto!important;padding:0!important;border-radius:12px!important}
  .once-panel:not(.hidden) .once-suggestions{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px!important;max-width:100%;max-height:96px;overflow-x:hidden!important;overflow-y:auto!important;padding:8px 10px!important;touch-action:pan-y}
  .once-panel:not(.hidden) .once-suggestions button{width:100%;min-width:0;min-height:38px;padding:6px 8px!important;white-space:normal;overflow-wrap:anywhere;text-align:center;line-height:1.2;font-size:11px}
  .once-panel:not(.hidden) .once-form{display:flex!important;flex-direction:row!important;align-items:stretch!important;gap:8px!important;width:100%;min-width:0}
  .once-panel:not(.hidden) .once-form textarea{flex:1 1 auto!important;width:0!important;min-width:0!important;min-height:52px!important;max-height:100px!important;font-size:16px!important}
  .once-panel:not(.hidden) .once-form button{flex:0 0 auto!important;min-width:68px!important;min-height:48px!important;padding:8px 12px!important}
}
.reminder-form-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:10px;min-width:0}.reminder-form-heading>strong{min-width:0;overflow-wrap:anywhere}.reminder-form-heading #clearReminderDay{flex:0 0 auto;min-height:30px;padding:5px 10px;font-size:12px;border-radius:8px}.reminder-form-heading #clearReminderDay:disabled{opacity:.48;cursor:not-allowed}.reminder-form-heading #clearReminderDay:not(:disabled){background:#fff0f0;color:#8f3d42;border-color:#dfb0b2}html[data-theme=dark] .reminder-form-heading #clearReminderDay:not(:disabled){background:#4a3034;color:#ffd9dc;border-color:#9c6268}@media(max-width:520px){.reminder-form-heading{align-items:center}.reminder-form-heading #clearReminderDay{min-height:30px}}

@media(max-width:680px){.calendar-grid{grid-template-columns:repeat(7,minmax(0,1fr))!important;align-items:stretch}.calendar-grid>.calendar-day{display:grid!important;place-items:center!important;flex-direction:row!important;min-width:0!important;padding:2px!important;font-size:14px!important;line-height:1!important;letter-spacing:normal!important;white-space:nowrap!important;word-break:keep-all!important;overflow-wrap:normal!important}.calendar-grid>.calendar-day small{white-space:nowrap!important;line-height:1!important}}

.once-custom-shortcuts{display:contents}.once-shortcut{display:flex;align-items:stretch;flex:0 0 auto;gap:4px;min-width:0}.once-shortcut>button:first-child{min-width:0;max-width:180px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.once-shortcut-remove{flex:0 0 30px;min-width:30px!important;min-height:30px!important;padding:3px!important;border:1px solid #cfdae0;border-radius:999px;background:#f5f8fa;color:#607582;font-size:17px;line-height:1}.once-shortcut-remove:hover{background:#ffeded;color:#8c3e45;border-color:#dfaeb2}.once-add-shortcut{border-style:dashed!important}.once-clear-shortcuts{color:#7a5960!important}html[data-theme=dark] .once-shortcut-remove{background:#253d48;color:#d5e4e9;border-color:#526b77}html[data-theme=dark] .once-shortcut-remove:hover{background:#503238;color:#ffe2e4;border-color:#a76b70}html[data-theme=dark] .once-clear-shortcuts{color:#ffd7dc!important}@media(max-width:680px){.once-shortcut{width:100%;min-width:0}.once-shortcut>button:first-child{flex:1 1 auto;max-width:none}.once-shortcut-remove{flex:0 0 30px!important;width:30px!important;padding:0!important}}

/* v192: contraste del encabezado de ficha en tema oscuro */
html[data-theme=dark] #employeeDetailPanel.employee-floating-open>.employee-panel-scroll>.employee-floating-heading,html[data-theme=dark] #employeeDetailPanel.employee-floating-open .employee-floating-heading{background:#142b35!important;border-bottom-color:#456876!important;color:#edf8fc!important}html[data-theme=dark] #employeeDetailPanel.employee-floating-open .employee-floating-identity small{color:#a9c1cb!important}html[data-theme=dark] #employeeDetailPanel.employee-floating-open .employee-floating-identity strong{color:#f0f8fb!important}html[data-theme=dark] #employeeDetailPanel.employee-floating-open .employee-floating-identity>span{color:#c8dbe2!important}html[data-theme=dark] #employeeDetailPanel.employee-floating-open .employee-detail-close-x{background:#55343a!important;color:#ffe1e3!important;border-color:#b97780!important}

.once-suggestions .once-suggestion-primary{background:#0b5471;color:#fff;border-color:#0b5471}.once-suggestions .once-suggestion-operation,.once-suggestions .once-suggestion-summary{background:#eaf5fa;color:#174c63;border-color:#bfdeeb}.once-suggestions .once-suggestion-payroll{background:#f1edfb;color:#493c70;border-color:#d4c9ef}.once-suggestions .once-suggestion-planning{background:#eef5ed;color:#375a42;border-color:#ccdfce}html[data-theme=dark] .once-suggestions .once-suggestion-primary{background:#156987;color:#fff;border-color:#66b4ce}html[data-theme=dark] .once-suggestions .once-suggestion-operation,html[data-theme=dark] .once-suggestions .once-suggestion-summary{background:#233f4b;color:#e5f5fb;border-color:#537181}html[data-theme=dark] .once-suggestions .once-suggestion-payroll{background:#342f48;color:#eee6ff;border-color:#6a5e8b}html[data-theme=dark] .once-suggestions .once-suggestion-planning{background:#2c4035;color:#e5f4e8;border-color:#55735d}@media(max-width:680px){.once-suggestions{grid-template-columns:repeat(2,minmax(0,1fr))!important;align-items:stretch}.once-suggestions>button{min-height:38px!important}.once-custom-shortcuts{grid-column:1/-1}.once-suggestions .once-add-shortcut{grid-column:1/-1}}

/* v195 · bienvenida OncePlus: panel refinado, pago integrado y scroll interior */
#oncePlusWelcomeDialog{overflow:hidden}
#oncePlusWelcomeDialog .onceplus-welcome-card{width:min(100%,760px);max-height:calc(100dvh - max(28px,env(safe-area-inset-top)) - max(28px,env(safe-area-inset-bottom)));padding:0;overflow:hidden;border-radius:24px;display:block}
#oncePlusWelcomeDialog .onceplus-welcome-scroll{max-height:calc(100dvh - max(40px,env(safe-area-inset-top)) - max(40px,env(safe-area-inset-bottom)));overflow:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch;scrollbar-gutter:stable;padding:clamp(12px,2.4vw,20px);margin:5px 7px 5px 5px;scrollbar-width:thin;scrollbar-color:#8da9b5 transparent}
#oncePlusWelcomeDialog .onceplus-welcome-scroll::-webkit-scrollbar{width:9px}
#oncePlusWelcomeDialog .onceplus-welcome-scroll::-webkit-scrollbar-track{background:transparent;margin:16px 0;border-radius:9px}
#oncePlusWelcomeDialog .onceplus-welcome-scroll::-webkit-scrollbar-thumb{background:#9ab2bd;border:2px solid transparent;background-clip:padding-box;border-radius:9px}
#oncePlusWelcomeDialog .onceplus-welcome-heading{align-items:flex-start;gap:16px;margin:0 0 16px;padding:clamp(18px,3vw,26px);border:1px solid #2a7793;border-bottom:3px solid #8bc6de;border-radius:18px;background:linear-gradient(125deg,#0b5471,#167b9c)}
#oncePlusWelcomeDialog .onceplus-welcome-heading h2{color:#fff!important;font-size:clamp(1.35rem,3vw,1.9rem);line-height:1.17}
#oncePlusWelcomeDialog .onceplus-welcome-heading p{color:#e2f2f8!important}
#oncePlusWelcomeDialog .onceplus-welcome-eyebrow{background:#e9f7fc;color:#0b5471;padding:6px 11px;border-radius:999px;letter-spacing:.08em}
#oncePlusWelcomeDialog .onceplus-welcome-close{width:40px;height:40px;display:grid;place-items:center;border-radius:50%;background:#f1dfe0;border:1px solid #ddaeb2;color:#783b42;font-size:1.35rem}
#oncePlusWelcomeDialog .onceplus-welcome-offer{box-shadow:0 5px 14px #0b54710b}
#oncePlusWelcomeDialog .onceplus-welcome-benefits{margin:14px 0 16px}
#oncePlusWelcomeDialog .onceplus-payment-panel{margin:0 0 14px;padding:16px;border:1px solid #a9d4e8;border-radius:17px;background:linear-gradient(135deg,#f4fafc,#eaf5fa)}
#oncePlusWelcomeDialog .onceplus-payment-heading{display:grid;gap:5px;margin-bottom:10px}
#oncePlusWelcomeDialog .onceplus-payment-heading>span{color:#0b6688;font-size:.73rem;font-weight:800;letter-spacing:.11em}
#oncePlusWelcomeDialog .onceplus-payment-heading>strong{color:#12384b;font-size:1.08rem}
#oncePlusWelcomeDialog .onceplus-payment-heading>p{margin:0;color:#536f7f;font-size:.9rem;line-height:1.45}
#oncePlusWelcomeDialog .onceplus-welcome-paypal{min-height:54px;padding:5px 8px;border:1px solid #d1e2e9;border-radius:12px;background:#fff}
#oncePlusWelcomeDialog .onceplus-payment-notice{margin:8px 2px 0;color:#536f7f;font-size:.82rem;line-height:1.4}
#oncePlusWelcomeDialog .onceplus-welcome-actions{margin-top:12px}
#oncePlusWelcomeDialog .onceplus-welcome-footnote{margin:10px 2px 2px}
html[data-theme="dark"] #oncePlusWelcomeDialog .onceplus-welcome-card{background:#142832;color:#edf5f8;border-color:#45616d}
html[data-theme="dark"] #oncePlusWelcomeDialog .onceplus-welcome-scroll{scrollbar-color:#698995 transparent}
html[data-theme="dark"] #oncePlusWelcomeDialog .onceplus-welcome-scroll::-webkit-scrollbar-thumb{background:#698995;border-color:transparent;background-clip:padding-box}
html[data-theme="dark"] #oncePlusWelcomeDialog .onceplus-welcome-heading{background:linear-gradient(125deg,#0d4a62,#146681);border-color:#356a7c;border-bottom-color:#70b6d2}
html[data-theme="dark"] #oncePlusWelcomeDialog .onceplus-welcome-offer{background:#203b46;border-color:#45616d}
html[data-theme="dark"] #oncePlusWelcomeDialog .onceplus-welcome-offer h3,html[data-theme="dark"] #oncePlusWelcomeDialog .onceplus-welcome-offer p,html[data-theme="dark"] #oncePlusWelcomeDialog .onceplus-welcome-price,html[data-theme="dark"] #oncePlusWelcomeDialog .onceplus-welcome-price span{color:#eaf4f8}
html[data-theme="dark"] #oncePlusWelcomeDialog .onceplus-welcome-benefits article{background:#1b333e;border-color:#45616d}
html[data-theme="dark"] #oncePlusWelcomeDialog .onceplus-welcome-benefits article strong{color:#f3f8fa}
html[data-theme="dark"] #oncePlusWelcomeDialog .onceplus-welcome-benefits article span,html[data-theme="dark"] #oncePlusWelcomeDialog .onceplus-welcome-footnote{color:#c8d9e0}
html[data-theme="dark"] #oncePlusWelcomeDialog .onceplus-payment-panel{background:#1b333e;border-color:#45616d}
html[data-theme="dark"] #oncePlusWelcomeDialog .onceplus-payment-heading>span{color:#a8e6fa}
html[data-theme="dark"] #oncePlusWelcomeDialog .onceplus-payment-heading>strong{color:#f0f7fa}
html[data-theme="dark"] #oncePlusWelcomeDialog .onceplus-payment-heading>p,html[data-theme="dark"] #oncePlusWelcomeDialog .onceplus-payment-notice{color:#c8d9e0}
@media(max-width:600px){#oncePlusWelcomeDialog{padding:max(8px,env(safe-area-inset-top)) max(8px,env(safe-area-inset-right)) max(8px,env(safe-area-inset-bottom)) max(8px,env(safe-area-inset-left))}#oncePlusWelcomeDialog .onceplus-welcome-card{width:100%;max-height:calc(100dvh - max(18px,env(safe-area-inset-top)) - max(18px,env(safe-area-inset-bottom)));border-radius:20px}#oncePlusWelcomeDialog .onceplus-welcome-scroll{max-height:calc(100dvh - max(32px,env(safe-area-inset-top)) - max(32px,env(safe-area-inset-bottom)));margin:4px;padding:10px}#oncePlusWelcomeDialog .onceplus-welcome-heading{padding:18px 16px;border-radius:15px}#oncePlusWelcomeDialog .onceplus-welcome-close{width:38px;height:38px}.onceplus-welcome-benefits{grid-template-columns:1fr}.onceplus-welcome-offer{align-items:flex-start;flex-wrap:wrap}.onceplus-welcome-price{justify-items:start}#oncePlusWelcomeDialog .onceplus-payment-panel{padding:13px}}

/* v196: el formulario modal de Once debe quedar por encima del chat flotante */
#oncConfirmDialog{z-index:70}


/* v197: captura del atajo en línea dentro del chat de Once */
.once-shortcut-form{display:grid;gap:7px;padding:10px 12px;border-top:1px solid #d6e4ea;background:#f3f8fa}.once-shortcut-form label{font-size:12px;font-weight:750;color:#315568}.once-shortcut-form textarea{width:100%;min-height:54px;resize:vertical;border:1px solid #bfd3dd;border-radius:10px;padding:9px 11px;background:#fff;color:#17384b}.once-shortcut-form>div{display:flex;gap:8px;flex-wrap:wrap}.once-shortcut-form button{min-height:36px;padding:7px 12px}html[data-theme=dark] .once-shortcut-form{background:#172e38;border-color:#405d68}html[data-theme=dark] .once-shortcut-form label{color:#d9e9ef}html[data-theme=dark] .once-shortcut-form textarea{background:#203944;color:#eff7fa;border-color:#587581}
/* v198 · botón de cierre claro y táctil en bienvenida */
#oncePlusWelcomeDialog .onceplus-welcome-close{flex:0 0 46px!important;width:46px!important;height:46px!important;min-width:46px!important;min-height:46px!important;padding:0!important;display:grid!important;place-items:center!important;border:1px solid #d49da2!important;border-radius:50%!important;background:#f7dfe1!important;color:#783b42!important;box-shadow:0 3px 9px #061d2b30!important;cursor:pointer;touch-action:manipulation}
#oncePlusWelcomeDialog .onceplus-welcome-close svg{display:block;width:21px;height:21px;stroke:currentColor;stroke-width:2.8;stroke-linecap:round;fill:none}
#oncePlusWelcomeDialog .onceplus-welcome-close:hover{background:#f3c9cd!important;border-color:#c9838b!important;transform:scale(1.04)}
#oncePlusWelcomeDialog .onceplus-welcome-close:focus-visible{outline:3px solid #fff;outline-offset:3px;box-shadow:0 0 0 6px #197b9c!important}
html[data-theme=dark] #oncePlusWelcomeDialog .onceplus-welcome-close{background:#633d43!important;border-color:#b9767e!important;color:#fff0f1!important;box-shadow:0 3px 10px #0005!important}
html[data-theme=dark] #oncePlusWelcomeDialog .onceplus-welcome-close:hover{background:#7a4a51!important}
@media(max-width:600px){#oncePlusWelcomeDialog .onceplus-welcome-close{flex-basis:44px!important;width:44px!important;height:44px!important;min-width:44px!important;min-height:44px!important}}


/* v199 · formulario guiado y compacto para agregar atajos personales */
.once-panel .once-shortcut-form{grid-column:1/-1;width:100%;min-width:0;display:grid;gap:8px;margin:4px 0;padding:12px;border:1px solid #c5dce6;border-radius:14px;background:linear-gradient(145deg,#f6fafc,#edf5f8);box-shadow:0 3px 10px #17384b10}.once-shortcut-head{display:flex;align-items:center;gap:9px}.once-shortcut-mark{display:grid;place-items:center;flex:0 0 30px;width:30px;height:30px;border-radius:10px;background:#dcedf4;color:#0b5471;font-size:20px;font-weight:800}.once-shortcut-head strong,.once-shortcut-head small{display:block}.once-shortcut-head strong{font-size:13px;color:#17384b}.once-shortcut-head small{font-size:11px;color:#617986}.once-shortcut-form>label{margin-top:2px;font-size:11px;font-weight:750;color:#315568}.once-shortcut-form textarea{width:100%;min-height:58px;max-height:90px;resize:vertical;border:1px solid #bfd3dd;border-radius:10px;padding:10px 11px;background:#fff;color:#17384b;font:inherit;font-size:13px;line-height:1.4;transition:border-color .15s,box-shadow .15s}.once-shortcut-form textarea:focus{outline:0;border-color:#68a9c2;box-shadow:0 0 0 3px #71b9d332}.once-shortcut-form textarea::placeholder{color:#8295a0}.once-shortcut-footer{display:flex;align-items:center;justify-content:space-between;gap:8px}.once-shortcut-footer>small{font-size:10px;color:#647985}.once-shortcut-footer>div{display:flex;gap:6px;flex-wrap:wrap;justify-content:flex-end}.once-shortcut-footer button{min-height:34px;padding:7px 11px;font-size:12px}.once-shortcut-footer button:disabled{opacity:.48;cursor:not-allowed;filter:saturate(.5)}html[data-theme=dark] .once-panel .once-shortcut-form{background:linear-gradient(145deg,#1c3540,#172e38);border-color:#45616d;box-shadow:0 3px 12px #0003}html[data-theme=dark] .once-shortcut-mark{background:#254a58;color:#b9eaf8}html[data-theme=dark] .once-shortcut-head strong{color:#edf5f8}html[data-theme=dark] .once-shortcut-head small,html[data-theme=dark] .once-shortcut-footer>small{color:#bfd0d8}html[data-theme=dark] .once-shortcut-form>label{color:#d4e5eb}html[data-theme=dark] .once-shortcut-form textarea{background:#203944;color:#eff7fa;border-color:#587581}html[data-theme=dark] .once-shortcut-form textarea::placeholder{color:#9db0b9}@media(max-width:520px){.once-shortcut-footer{align-items:flex-start;flex-direction:column}.once-shortcut-footer>div{width:100%;justify-content:stretch}.once-shortcut-footer button{flex:1 1 0}}
/* v200 · acciones rápidas organizadas y chat adaptable */
.once-panel{width:min(510px,calc(100vw - 28px));height:min(740px,calc(100dvh - 110px));min-height:min(460px,calc(100dvh - 110px))}.once-messages{flex:1 1 auto;min-height:90px;scroll-behavior:smooth}.once-suggestions{display:grid;grid-template-columns:minmax(0,1fr);gap:7px;flex:0 0 auto;max-height:min(42dvh,290px);overflow-y:auto;overflow-x:hidden;padding:9px 12px;background:#fff;border-top:1px solid #e3edf1;scrollbar-width:thin;scrollbar-color:#9bb3bd transparent}.once-primary-actions{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px}.once-suggestions button{min-width:0;min-height:38px;padding:8px 10px;border-radius:12px;font-size:12px;line-height:1.2;white-space:normal;overflow-wrap:anywhere;text-align:center}.once-more-actions{border:1px solid #d8e6eb;border-radius:12px;background:#f7fafb}.once-more-actions>summary{display:flex;align-items:center;justify-content:space-between;gap:10px;min-height:42px;padding:8px 11px;cursor:pointer;list-style:none;color:#174b62;font-size:12px;font-weight:750}.once-more-actions>summary::-webkit-details-marker{display:none}.once-more-actions>summary::after{content:"＋";display:grid;place-items:center;flex:0 0 24px;width:24px;height:24px;border-radius:50%;background:#e5f1f6;color:#0b5471;font-size:17px;line-height:1}.once-more-actions[open]>summary::after{content:"−"}.once-more-actions>summary small{margin-left:auto;color:#718692;font-size:10px;font-weight:500;text-align:right}.once-extra-action-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px;padding:0 8px 8px}.once-extra-action-grid .once-custom-shortcuts{grid-column:1/-1;display:flex;flex-wrap:wrap;gap:6px}.once-extra-action-grid .once-shortcut{max-width:100%}.once-extra-action-grid .once-add-shortcut,.once-extra-action-grid .once-clear-shortcuts{min-height:34px}.once-panel .once-shortcut-form{grid-column:1/-1;margin:2px 0 0}.once-form{flex:0 0 auto;border-top:1px solid #e3edf1}.once-requests{flex:0 0 auto}html[data-theme=dark] .once-suggestions{background:#142832;border-color:#334e5a;scrollbar-color:#698995 transparent}html[data-theme=dark] .once-more-actions{background:#1a3039;border-color:#405d68}html[data-theme=dark] .once-more-actions>summary{color:#e3f0f4}html[data-theme=dark] .once-more-actions>summary small{color:#b5c8d0}html[data-theme=dark] .once-more-actions>summary::after{background:#25424e;color:#c5effb}@media(max-width:680px){.once-panel{width:calc(100vw - 16px);height:min(78dvh,720px);min-height:min(380px,calc(100dvh - 100px));max-height:calc(100dvh - env(safe-area-inset-top,0px) - env(safe-area-inset-bottom,0px) - 78px)}.once-primary-actions{grid-template-columns:repeat(2,minmax(0,1fr));gap:6px}.once-primary-actions button{min-height:40px;font-size:11px}.once-more-actions>summary{min-height:40px}.once-extra-action-grid{gap:6px}.once-suggestions{max-height:min(38dvh,260px);padding:8px}.once-panel:not(.hidden) .once-suggestions button{width:auto;min-height:38px;font-size:11px}.once-shortcut-form .once-shortcut-footer>div{justify-content:stretch}.once-form{padding:8px}.once-requests{padding-bottom:8px}}@media(max-width:360px){.once-more-actions>summary small{display:none}.once-primary-actions button{padding:7px 6px}}
@media(max-width:680px){.once-panel:not(.hidden) .once-suggestions{grid-template-columns:minmax(0,1fr)!important;max-height:min(38dvh,260px)!important}.once-panel:not(.hidden) .once-primary-actions{grid-template-columns:repeat(2,minmax(0,1fr))!important}.once-panel:not(.hidden) .once-suggestions button{width:100%!important;min-width:0!important;flex:none!important}.once-panel:not(.hidden) .once-extra-action-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important}}
.once-suggestions .once-primary-actions button,.once-suggestions .once-extra-action-grid button{width:100%;min-width:0;min-height:38px;flex:none!important}


/* v201 · Centro de reportes más claro y usable */
#supportTicketDialog .support-ticket-dialog{overflow:hidden;max-height:inherit;padding:10px 8px 10px 10px;border-radius:22px;display:block}
#supportTicketDialog .support-ticket-scroll{max-height:calc(100dvh - 190px);overflow:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch;scrollbar-gutter:stable;margin:3px 5px 3px 3px;padding:12px 14px 14px 12px;scrollbar-width:thin;scrollbar-color:#8baab7 transparent}
#supportTicketDialog .support-ticket-scroll::-webkit-scrollbar{width:8px}
#supportTicketDialog .support-ticket-scroll::-webkit-scrollbar-track{margin:10px 0;border-radius:99px;background:transparent}
#supportTicketDialog .support-ticket-scroll::-webkit-scrollbar-thumb{border:2px solid transparent;border-radius:99px;background:#8baab7;background-clip:padding-box}
#supportTicketDialog .support-ticket-dialog-heading{position:relative;display:block;padding:0 54px 16px 0;margin:0 0 14px}
#supportTicketDialog .support-ticket-dialog-heading>div{max-width:470px}
#supportTicketDialog .support-ticket-dialog-heading h2{margin:7px 0 6px;font-size:clamp(22px,3vw,28px);line-height:1.15}
#supportTicketDialog .support-ticket-dialog-heading p{max-width:440px;margin:0;font-size:14px;line-height:1.5}
#supportTicketDialog .support-ticket-dialog-heading>button{position:absolute;top:0;right:0;width:42px;height:42px;min-width:42px;padding:0;border:1px solid #efb2ad;border-radius:50%;background:#fde9e7;color:#8b3e3e;font-size:23px;line-height:1;box-shadow:none}
#supportTicketDialog .support-ticket-dialog-heading>button:hover{background:#f8d7d3;transform:translateY(-1px)}
#supportTicketDialog .support-ticket-kicker{display:inline-flex;padding:6px 11px;border-radius:999px;background:#e6f4f9;color:#0b6788;font-size:11px;letter-spacing:.09em}
#supportTicketDialog .support-ticket-state{margin:0 0 12px}
#supportTicketDialog .support-ticket-form{margin:0;gap:9px}
#supportTicketDialog .support-ticket-form label{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-top:2px}
#supportTicketDialog .support-ticket-count{color:#6d8490;font-size:11px;font-weight:600;white-space:nowrap}
#supportTicketDialog .support-ticket-form textarea{min-height:128px;max-height:34vh;padding:13px 14px;line-height:1.55}
#supportTicketDialog .support-ticket-file-info{min-height:18px;color:#526d7a;font-size:12px;overflow-wrap:anywhere}
#supportTicketDialog .support-ticket-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:6px;padding-top:12px;border-top:1px solid #d6e5eb}
#supportTicketDialog .support-ticket-actions button{min-height:44px;margin:0;padding:10px 17px;border-radius:11px;font-weight:750}
#supportTicketDialog #cancelSupportTicket{background:#edf5f8;color:#31596a;border:1px solid #cbdfe7}
#supportTicketDialog #sendSupportTicket{min-width:155px}
#supportTicketDialog .support-ticket-privacy{text-align:right}
html[data-theme="dark"] #supportTicketDialog .support-ticket-scroll{scrollbar-color:#73909b transparent}
html[data-theme="dark"] #supportTicketDialog .support-ticket-scroll::-webkit-scrollbar-thumb{background:#73909b;background-clip:padding-box}
html[data-theme="dark"] #supportTicketDialog .support-ticket-kicker{background:#254653;color:#b9edff}
html[data-theme="dark"] #supportTicketDialog .support-ticket-count,html[data-theme="dark"] #supportTicketDialog .support-ticket-file-info{color:#c6d8df}
html[data-theme="dark"] #supportTicketDialog .support-ticket-actions{border-color:#405965}
html[data-theme="dark"] #supportTicketDialog #cancelSupportTicket{background:#203b46;color:#eaf5f8;border-color:#587582}
html[data-theme="dark"] #supportTicketDialog .support-ticket-dialog-heading>button{background:#55393c!important;border-color:#a96f70!important;color:#ffe3e0!important}
html[data-theme="dark"] #supportTicketDialog .support-ticket-dialog-heading>button:hover{background:#694447!important}
@media(max-width:580px){
 #supportTicketDialog .support-ticket-dialog{padding:7px;border-radius:20px}
 #supportTicketDialog .support-ticket-scroll{max-height:calc(100dvh - 158px);margin:3px;padding:10px 11px 12px 9px}
 #supportTicketDialog .support-ticket-dialog-heading{padding:0 48px 13px 0;margin-bottom:12px}
 #supportTicketDialog .support-ticket-dialog-heading>button{width:38px;height:38px;min-width:38px;font-size:21px}
 #supportTicketDialog .support-ticket-dialog-heading h2{font-size:22px;max-width:310px}
 #supportTicketDialog .support-ticket-dialog-heading p{font-size:13px}
 #supportTicketDialog .support-ticket-form textarea{min-height:115px;max-height:27vh}
 #supportTicketDialog .support-ticket-actions{display:grid;grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr);gap:8px}
 #supportTicketDialog .support-ticket-actions button{width:100%;min-width:0;padding:10px 8px}
 #supportTicketDialog .support-ticket-privacy{text-align:left}
}#supportTicketDialog .support-ticket-file-info.is-error{color:#9e3030}
#supportTicketDialog .support-ticket-remove-file{min-height:28px;margin:0 0 0 6px;padding:3px 9px;border-radius:999px;font-size:11px;font-weight:700}
html[data-theme="dark"] #supportTicketDialog .support-ticket-file-info.is-error{color:#ffb8b8}
html[data-theme="dark"] #supportTicketDialog .support-ticket-remove-file{background:#29434e;color:#f6fbfd;border-color:#64808b}
/* v202 · cabecera accesible y resumen de nómina optimizado para móvil */
#supportTicketDialog .support-ticket-dialog-heading{position:sticky;top:0;z-index:3;padding-top:5px;background:#fff}
html[data-theme="dark"] #supportTicketDialog .support-ticket-dialog-heading{background:#142b35!important}
.payroll-total-heading p{max-width:56ch}
#vacationBenefitsPanel .formgrid{grid-template-columns:repeat(2,minmax(0,1fr));align-items:stretch}
#vacationBenefitsPanel .formgrid>.field:first-child{grid-column:1/-1}
#vacationBenefitsPanel .vacation-financial{min-height:74px;align-content:center}
@media(max-width:600px){
 .payroll-total-summary{padding:12px;border-radius:15px}
 .payroll-total-heading{margin-bottom:8px}
 .payroll-total-heading h3{font-size:17px}
 .payroll-total-heading p{font-size:12px;line-height:1.4}
 .payroll-total-subheading{margin:8px 0;font-size:14px}
 .payroll-total-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
 .payroll-total-card{min-height:72px;padding:10px;gap:4px}
 .payroll-total-card small{font-size:10px;line-height:1.25}
 .payroll-total-card strong{font-size:17px}
 .payroll-total-grand{grid-column:1/-1;min-height:66px}
 .payroll-fortnight-detail{font-size:11px;line-height:1.3}
 #vacationBenefitsPanel{padding:13px}
 #vacationBenefitsPanel>h2{font-size:17px}
 #vacationBenefitsPanel>.note{margin:5px 0 11px;font-size:12px;line-height:1.4}
 #vacationBenefitsPanel .formgrid{gap:8px}
 #vacationBenefitsPanel .formgrid>.field:first-child{padding:11px;border:1px solid var(--line);border-radius:12px;background:color-mix(in srgb,#75bad3 8%,var(--surface,#fff))}
 #vacationBenefitsPanel .formgrid>.field:first-child small{font-size:11px;line-height:1.35}
 #vacationBenefitsPanel .vacation-financial{min-width:0;min-height:78px;padding:10px;border-radius:12px}
 #vacationBenefitsPanel .vacation-financial small{font-size:10px;line-height:1.3}
 #vacationBenefitsPanel .vacation-financial strong{font-size:16px;overflow-wrap:anywhere}
}
@media(max-width:370px){.payroll-total-grid{grid-template-columns:1fr} .payroll-total-grand{grid-column:auto} #vacationBenefitsPanel .formgrid{grid-template-columns:1fr} #vacationBenefitsPanel .formgrid>.field:first-child{grid-column:auto}}
/* v203 · estructura estable del panel flotante de tickets */
#supportTicketDialog{width:min(440px,calc(100vw - 32px));height:min(660px,calc(100dvh - max(118px,calc(108px + env(safe-area-inset-top)))));max-height:calc(100dvh - max(118px,calc(108px + env(safe-area-inset-top))));left:calc(50% - 300px);right:auto;bottom:calc(max(16px,env(safe-area-inset-bottom)) + 52px);box-sizing:border-box}
#supportTicketDialog .support-ticket-dialog{display:flex;flex-direction:column;min-height:0;height:100%;box-sizing:border-box;overflow:hidden;padding:10px;border-radius:22px}
#supportTicketDialog .support-ticket-dialog-heading{position:relative;flex:0 0 auto;min-height:0;padding:4px 54px 14px 4px;margin:0 0 2px;background:transparent;border-bottom:1px solid #d6e5eb}
#supportTicketDialog .support-ticket-dialog-heading>div{max-width:none}
#supportTicketDialog .support-ticket-dialog-heading h2{max-width:100%;margin:7px 0 5px;font-size:clamp(22px,2.1vw,27px);line-height:1.15;overflow-wrap:anywhere}
#supportTicketDialog .support-ticket-dialog-heading p{max-width:100%;font-size:13px;line-height:1.42}
#supportTicketDialog .support-ticket-scroll{flex:1 1 auto;min-height:0;max-height:none;overflow-x:hidden;overflow-y:auto;margin:0 3px;padding:12px 12px 10px 4px;scrollbar-gutter:stable;overscroll-behavior:contain;-webkit-overflow-scrolling:touch}
#supportTicketDialog .support-ticket-scroll::-webkit-scrollbar{width:9px}
#supportTicketDialog .support-ticket-scroll::-webkit-scrollbar-track{margin:8px 0}
#supportTicketDialog .support-ticket-state{margin:0 0 12px}
#supportTicketDialog .support-ticket-welcome{display:grid;grid-template-columns:34px minmax(0,1fr);gap:10px;align-items:start;padding:13px;border-radius:14px}
#supportTicketDialog .support-ticket-welcome p{margin:5px 0 0;font-size:13px;line-height:1.45}
#supportTicketDialog .support-ticket-form{gap:8px}
#supportTicketDialog .support-ticket-form label{line-height:1.35}
#supportTicketDialog .support-ticket-form textarea{width:100%;box-sizing:border-box;min-height:116px;max-height:30vh;resize:vertical}
#supportTicketDialog .support-ticket-form input[type=file]{width:100%;max-width:100%;box-sizing:border-box}
#supportTicketDialog .support-ticket-field-hint,#supportTicketDialog .support-ticket-form>small{font-size:11px;line-height:1.4}
#supportTicketDialog .support-ticket-actions{flex-wrap:wrap}
#supportTicketDialog .support-ticket-privacy{font-size:11px;line-height:1.35}
html[data-theme="dark"] #supportTicketDialog .support-ticket-dialog-heading{background:transparent!important;border-color:#4a6672!important}
@media(min-width:641px){#supportTicketDialog .support-ticket-dialog{padding:13px}#supportTicketDialog .support-ticket-dialog-heading{padding-left:5px}#supportTicketDialog .support-ticket-scroll{padding:14px 15px 12px 5px}}
@media(max-width:640px){
 #supportTicketDialog{left:max(12px,env(safe-area-inset-left));right:max(12px,env(safe-area-inset-right));bottom:calc(max(10px,env(safe-area-inset-bottom)) + 50px);width:auto;height:min(700px,calc(100dvh - max(108px,calc(96px + env(safe-area-inset-top)))));max-height:calc(100dvh - max(108px,calc(96px + env(safe-area-inset-top))))}
 #supportTicketDialog .support-ticket-dialog{padding:8px;border-radius:20px}
 #supportTicketDialog .support-ticket-dialog-heading{padding:4px 48px 12px 3px;margin:0}
 #supportTicketDialog .support-ticket-dialog-heading>button{top:2px;right:1px;width:38px;height:38px;min-width:38px}
 #supportTicketDialog .support-ticket-dialog-heading h2{max-width:100%;font-size:22px}
 #supportTicketDialog .support-ticket-dialog-heading p{font-size:12px;line-height:1.4}
 #supportTicketDialog .support-ticket-scroll{padding:10px 10px 8px 3px}
 #supportTicketDialog .support-ticket-form textarea{min-height:106px;max-height:24vh}
 #supportTicketDialog .support-ticket-actions{display:grid;grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr);gap:8px}
 #supportTicketDialog .support-ticket-actions button{width:100%;min-width:0;min-height:44px;padding:9px 6px;font-size:13px}
 #supportTicketDialog .support-ticket-privacy{text-align:left}
}
@media(max-height:560px){#supportTicketDialog{height:calc(100dvh - max(90px,calc(80px + env(safe-area-inset-top))));max-height:calc(100dvh - max(90px,calc(80px + env(safe-area-inset-top))))}#supportTicketDialog .support-ticket-form textarea{min-height:76px;max-height:20vh}}

/* v204 · pulido de nómina, ficha, tickets y consola del propietario */
.payroll-total-grid{grid-template-columns:repeat(2,minmax(0,1fr));align-items:stretch}
.payroll-total-card{min-height:112px;padding:15px;gap:8px;border-radius:14px}
.payroll-total-grand,.payroll-total-deductions{min-height:132px;align-content:center}
.payroll-total-grand{display:grid;grid-template-columns:minmax(0,1fr) auto;column-gap:14px;align-items:center}
.payroll-total-grand small,.payroll-total-grand .payroll-total-caption{grid-column:1}
.payroll-total-grand strong{grid-column:2;grid-row:1 / span 2;font-size:clamp(22px,2.5vw,30px);text-align:right}
.payroll-total-caption{font-size:12px;opacity:.9}
.payroll-total-deductions{grid-column:1/-1;grid-template-columns:minmax(0,1fr) auto;column-gap:16px}
.payroll-total-deductions>small,.payroll-total-deductions>.payroll-total-breakdown{grid-column:1}
.payroll-total-deductions>strong{grid-column:2;grid-row:1 / span 2;align-self:center;font-size:clamp(22px,2.5vw,30px);text-align:right}
.payroll-total-breakdown{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px;margin-top:4px}
.payroll-total-breakdown span{display:flex;justify-content:space-between;gap:7px;padding:7px 9px;border:1px solid #cfe1e9;border-radius:9px;background:#f4f9fb;color:#526d7a;font-size:11px}
.payroll-total-breakdown b{color:#173f52;white-space:nowrap}
.employee-floating-heading{top:0!important;z-index:30!important;box-shadow:0 6px 14px #122d3814}
.employee-panel-scroll>.employee-floating-heading{position:sticky!important;top:0!important;margin-top:0!important}
.employee-floating-heading+.employee-quick-summary{scroll-margin-top:100px}
html[data-theme="dark"] .employee-floating-heading,html[data-theme="dark"] #employeeDetailPanel.employee-floating-open>.employee-panel-scroll>.employee-floating-heading{background:#142b35!important;border-color:#456876!important;color:#edf8fc!important;box-shadow:0 8px 18px #06151ba8}
#vacationBenefitsPanel .formgrid>.field:first-child{border:1px solid var(--line);border-radius:12px;padding:12px;background:color-mix(in srgb,#75bad3 8%,var(--surface,#fff))}
html[data-theme="dark"] #vacationBenefitsPanel .formgrid>.field:first-child{background:#203b46!important;border-color:#527687!important;color:#edf8fc!important}
html[data-theme="dark"] #vacationBenefitsPanel .formgrid>.field:first-child label{color:#e5f2f7!important}
html[data-theme="dark"] #vacationBenefitsPanel .formgrid>.field:first-child small,html[data-theme="dark"] #vacationBenefitsPanel>.note{color:#c5d7de!important}
html[data-theme="dark"] #vacationBenefitsPanel .formgrid>.field:first-child input{background:#142b35!important;color:#f0f8fb!important;border-color:#527687!important}
.employee-update-pill{min-width:0;max-width:174px;padding:7px 10px;box-shadow:0 2px 7px #173b4b0d}
.employee-update-pill>span{min-width:0}.employee-update-pill small{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:130px}
.owner-kpis{grid-template-columns:repeat(3,minmax(0,1fr))}
.owner-kpis .owner-kpi-alert{background:#fff3f0;border-color:#efc0b6}
.owner-kpis .owner-kpi-alert strong{color:#a94b3e}
.owner-support-controls{display:grid;grid-template-columns:minmax(0,1fr) minmax(190px,.45fr) auto;align-items:center;gap:10px;margin:14px 0}
.owner-support-controls input,.owner-support-controls select{width:100%;min-width:0;margin:0}
.owner-support-controls>span{color:#58717e;font-size:12px;font-weight:700;white-space:nowrap}
.owner-support-card .support-ticket-card{padding:14px;border-radius:14px;box-shadow:0 3px 12px #173b4b0a}
.owner-support-card .support-ticket-status{flex:0 0 auto}
html[data-theme="dark"] .owner-kpis .owner-kpi-alert{background:#412b2b;border-color:#8e5d58}
html[data-theme="dark"] .owner-kpis .owner-kpi-alert strong{color:#ffb7a9}
html[data-theme="dark"] .owner-support-controls>span{color:#c6d8df}
html[data-theme="dark"] .owner-support-controls input,html[data-theme="dark"] .owner-support-controls select{background:#172a33;color:#e6f3f8;border-color:#486674}
html[data-theme="dark"] .payroll-total-deductions{background:#233b46;border-color:#557888}
html[data-theme="dark"] .payroll-total-breakdown span{background:#172f39;border-color:#496774;color:#d0e0e6}
html[data-theme="dark"] .payroll-total-breakdown b{color:#eff8fb}
html[data-theme="dark"] .employee-update-pill.update-green{background:#d8f3df;border-color:#9ad5a9;color:#205c36}
html[data-theme="dark"] .employee-update-pill.update-orange{background:#ffe8c7;border-color:#edc17b;color:#70460b}
html[data-theme="dark"] .employee-update-pill.update-red{background:#f8d9dc;border-color:#e6a4aa;color:#702c35}
#supportTicketDialog .support-ticket-actions{justify-content:center}
#supportTicketDialog .support-ticket-actions button{min-width:150px}
@media(max-width:700px){
 .payroll-total-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}
 .payroll-total-card{min-height:96px;padding:11px}
 .payroll-total-grand,.payroll-total-deductions{min-height:116px}
 .payroll-total-grand{grid-template-columns:minmax(0,1fr) auto}
 .payroll-total-grand strong,.payroll-total-deductions>strong{font-size:21px}
 .payroll-total-breakdown{grid-template-columns:1fr;gap:5px}
 .payroll-total-breakdown span{padding:5px 7px;font-size:10px}
 .employee-floating-heading{top:0!important;margin-top:0!important}
 .employee-update-pill{max-width:132px;padding:6px 8px}
 .employee-update-pill small{max-width:92px}
 .owner-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}
 .owner-support-controls{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}
 .owner-support-controls>span{grid-column:1/-1}
 #supportTicketDialog .support-ticket-actions{justify-content:center}
}
@media(max-width:390px){
 .payroll-total-grid{grid-template-columns:1fr}
 .payroll-total-grand,.payroll-total-deductions{grid-column:auto}
 .payroll-total-deductions{grid-template-columns:minmax(0,1fr) auto}
 .owner-support-controls{grid-template-columns:1fr}
 .owner-support-controls>span{grid-column:auto}
}

/* v208 · resumen completo y selección de papel Carta/A4 */
.report-preview-content table,.report-preview-content .summary-table{width:max-content;max-width:100%;table-layout:auto}
.report-preview-content .summary-table th,.report-preview-content .summary-table td{width:auto!important}
.report-preview-content .summary-table th:first-child,.report-preview-content .summary-table td:first-child{min-width:110px}
.report-preview-content .summary-table.payroll-wide-summary{width:100%;min-width:0;max-width:100%;table-layout:fixed;font-size:8px}
.report-preview-content .summary-table.payroll-wide-summary th,.report-preview-content .summary-table.payroll-wide-summary td{width:auto!important;min-width:0;padding:4px 3px;overflow-wrap:anywhere;line-height:1.2}
.report-preview-content .summary-table.payroll-wide-summary th:first-child,.report-preview-content .summary-table.payroll-wide-summary td:first-child{width:14%!important}
.report-preview-content .summary-table.payroll-wide-summary th:nth-child(2),.report-preview-content .summary-table.payroll-wide-summary td:nth-child(2){width:5%!important}
.report-preview-content .summary-table.payroll-wide-summary th:nth-child(3),.report-preview-content .summary-table.payroll-wide-summary td:nth-child(3){width:10%!important}
.report-preview-content .summary-table.payroll-wide-summary th:nth-child(4),.report-preview-content .summary-table.payroll-wide-summary td:nth-child(4){width:12%!important}
.report-preview-content .payroll-summary-section{page:LandscapeReport;break-after:auto;page-break-after:auto}
.report-preview-content .attendance-matrix table,.report-preview-content .fortnight-payroll-table table{width:100%;max-width:100%;table-layout:auto}
.report-preview-content .attendance-matrix,.report-preview-content .fortnight-payroll-table{break-after:auto;page-break-after:auto}
.report-preview-content .employee{break-before:auto;page-break-before:auto}
.report-preview-content .payroll-summary-section{break-after:auto;page-break-after:auto}
.report-preview-content h2,.report-preview-content h3{break-after:avoid-page;page-break-after:avoid}
@media print{
 body.printing-report .report-preview-content .employee{break-before:auto!important;page-break-before:auto!important}
 body.printing-report .report-preview-content table{width:max-content;max-width:100%;table-layout:auto}
 body.printing-report .report-preview-content .summary-table.payroll-wide-summary{width:100%;min-width:0;max-width:100%;table-layout:fixed;font-size:7pt}
 body.printing-report .report-preview-content .summary-table.payroll-wide-summary th,body.printing-report .report-preview-content .summary-table.payroll-wide-summary td{width:auto!important;min-width:0;padding:1.5px 2px;overflow-wrap:anywhere}
 body.printing-report .report-preview-content .summary-table.payroll-wide-summary th:first-child,body.printing-report .report-preview-content .summary-table.payroll-wide-summary td:first-child{width:14%!important}
 body.printing-report .report-preview-content .summary-table.payroll-wide-summary th:nth-child(2),body.printing-report .report-preview-content .summary-table.payroll-wide-summary td:nth-child(2){width:5%!important}
 body.printing-report .report-preview-content .summary-table.payroll-wide-summary th:nth-child(3),body.printing-report .report-preview-content .summary-table.payroll-wide-summary td:nth-child(3){width:10%!important}
 body.printing-report .report-preview-content .summary-table.payroll-wide-summary th:nth-child(4),body.printing-report .report-preview-content .summary-table.payroll-wide-summary td:nth-child(4){width:12%!important}
 body.printing-report .report-preview-content .attendance-matrix table,body.printing-report .report-preview-content .fortnight-payroll-table table{width:100%;max-width:100%}
 body.printing-report .report-preview-content .attendance-matrix,body.printing-report .report-preview-content .fortnight-payroll-table{break-after:auto!important;page-break-after:auto!important}
 body.printing-report .report-preview-content th,body.printing-report .report-preview-content td{padding:2px 4px}
}
.report-paper-choice{display:grid;gap:5px;max-width:460px;margin:18px 0 6px;padding:13px 15px;border:1px solid #cbdfe8;border-radius:12px;background:#f2f8fb}
.report-paper-choice label{font-weight:750;color:#174255}
.report-paper-choice select{min-height:42px;width:100%;padding:8px 11px;border:1px solid #b9d1dd;border-radius:9px;background:#fff;color:#17384b;font:inherit}
.report-paper-choice small{color:#627985;font-size:12px;line-height:1.35}
html[data-theme="dark"] .report-paper-choice{background:#192f38;border-color:#3d5b67}
html[data-theme="dark"] .report-paper-choice label,html[data-theme="dark"] .report-paper-choice small{color:#d8e9ef}
html[data-theme="dark"] .report-paper-choice select{background:#10232b;border-color:#52717d;color:#f1f7fa}

/* Aviso previo al otorgar privilegios administrativos por empresa */
.company-admin-consent{margin-top:12px;padding:14px 16px;border:1px solid #e7b45c;border-left:4px solid #d99a32;border-radius:14px;background:#fff7e7;color:#493414;line-height:1.5}
.company-admin-consent strong{display:block;color:#71470b;margin-bottom:5px}
.company-admin-consent p{margin:5px 0 0;color:inherit}
[data-theme="dark"] .company-admin-consent,.dark .company-admin-consent{background:#342b1d;border-color:#a77b32;color:#f7e8c7}
[data-theme="dark"] .company-admin-consent strong,.dark .company-admin-consent strong{color:#ffe0a0}

/* v210 · ficha sin contenido filtrado en el encabezado y scroll interior limpio */
#employeeDetailPanel.employee-floating-open>.employee-panel-scroll{
  inset:8px!important;
  padding:0 clamp(14px,2vw,26px) clamp(14px,2vw,26px)!important;
  scrollbar-width:thin;
  scrollbar-color:#8ba7b5 transparent;
}
#employeeDetailPanel.employee-floating-open>.employee-panel-scroll::-webkit-scrollbar{width:9px;height:9px}
#employeeDetailPanel.employee-floating-open>.employee-panel-scroll::-webkit-scrollbar-track{margin:14px 3px;background:transparent}
#employeeDetailPanel.employee-floating-open>.employee-panel-scroll::-webkit-scrollbar-thumb{background:#8ba7b5;border:2px solid transparent;background-clip:padding-box;border-radius:999px}
#employeeDetailPanel.employee-floating-open .employee-floating-heading{
  position:sticky!important;top:0!important;z-index:40!important;
  margin:0 calc(-1 * clamp(14px,2vw,26px)) 16px!important;
  padding:16px clamp(14px,2vw,26px)!important;
  min-height:88px!important;width:auto!important;
  background:#fff!important;color:#17384b!important;
  border-radius:14px 14px 0 0!important;
  box-shadow:0 8px 18px #122d3820!important;
  opacity:1!important;backdrop-filter:none!important;-webkit-backdrop-filter:none!important;
}
html[data-theme="dark"] #employeeDetailPanel.employee-floating-open .employee-floating-heading{
  background:#142b35!important;color:#edf8fc!important;border-color:#456876!important;
}
@media(max-width:700px){
  #employeeDetailPanel.employee-floating-open>.employee-panel-scroll{inset:6px!important;padding:0 12px 12px!important}
  #employeeDetailPanel.employee-floating-open .employee-floating-heading{margin:0 -12px 12px!important;padding:13px 12px!important;min-height:76px!important;border-radius:11px 11px 0 0!important}
}
/* v211 · control accesible para ver clave e ID de gerente */
.manager-password-control{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:stretch;gap:8px}
.manager-password-control input{min-width:0;margin:0}
.manager-password-control button{white-space:nowrap;min-height:42px}
#managerCredentialReveal,#managerCredentialCopy{margin:4px 6px 0 0}
html[data-theme="dark"] .manager-password-control button{background:#203b46;color:#eaf6fa;border-color:#527687}
@media(max-width:440px){.manager-password-control{grid-template-columns:minmax(0,1fr)}.manager-password-control button{width:100%}}
/* v212 · icono de ojo para mostrar u ocultar la clave inicial */
#toggleManagerPassword{display:inline-grid;place-items:center;width:46px;min-width:46px;padding:8px}
#toggleManagerPassword svg{width:21px;height:21px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
#toggleManagerPassword[aria-pressed="true"] .manager-eye-closed{display:none}
#toggleManagerPassword[aria-pressed="false"] .manager-eye-open{display:none}
#toggleManagerPassword:focus-visible{outline:3px solid #74b9d3;outline-offset:2px}
@media(max-width:440px){.manager-password-control{grid-template-columns:minmax(0,1fr) 46px}.manager-password-control button{width:46px}}
/* v213 · panel de propietario: concesión de plan y limpieza de campos */
.owner-access-form>label small{display:block;margin-top:5px;color:var(--muted,#607582);font-size:12px;line-height:1.4}
.owner-access-buttons{grid-template-columns:minmax(0,1.15fr) minmax(0,1fr) minmax(0,.85fr)!important}
#ownerAccessClear{white-space:nowrap}
html[data-theme="dark"] .owner-access-form>label small{color:#c5d7de}
@media(max-width:600px){.owner-access-buttons{grid-template-columns:1fr 1fr!important}.owner-access-buttons #ownerAccessClear{grid-column:1/-1}}
@media(max-width:380px){.owner-access-buttons{grid-template-columns:1fr!important}.owner-access-buttons #ownerAccessClear{grid-column:auto}}
/* v218 · limpieza recuperable de tickets */
.support-cleanup-toolbar{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin:14px 0}
.support-cleanup-toolbar small{color:var(--muted,#607582);flex:1 1 240px;line-height:1.4}
.support-ticket-cleanup{display:flex;justify-content:space-between;align-items:center;gap:12px;padding-top:14px;margin-top:14px;border-top:1px solid #d6e2e8}
.support-ticket-cleanup label{display:flex;align-items:center;gap:8px;font-size:13px;font-weight:600}
.support-ticket-cleanup input{width:18px;height:18px;accent-color:#0b5471;margin:0}
html[data-theme="dark"] .support-ticket-cleanup{border-color:#3b5563}
html[data-theme="dark"] .support-cleanup-toolbar small{color:#c4d5dd}
@media(max-width:560px){.support-cleanup-toolbar>button{flex:1 1 100%}.support-ticket-cleanup{align-items:flex-start}.support-ticket-cleanup button{min-width:86px}}

/* v220 · historial en lenguaje claro */
.audit-readable h3{font-size:16px;margin:12px 0 5px;color:inherit}
.audit-readable .audit-person{margin:0 0 12px;font-weight:650;color:inherit;overflow-wrap:anywhere}
.audit-human-scroll{overflow-x:auto;margin-top:12px;border:1px solid #d5e4ea;border-radius:10px}
.audit-human-table{width:100%;border-collapse:collapse;font-size:13px;min-width:370px;background:#fff}
.audit-human-table th,.audit-human-table td{padding:11px 13px;text-align:left;border-bottom:1px solid #e2ecf0;vertical-align:top;white-space:pre-wrap;overflow-wrap:anywhere}
.audit-human-table thead th{background:#eef6f9;font-size:12px;color:#31566a}
.audit-human-table tbody th{width:34%;font-weight:650}
.audit-human-table tr:last-child>*{border-bottom:0}
html[data-theme="dark"] .audit-human-scroll{border-color:#45616f}
html[data-theme="dark"] .audit-human-table{background:#17303c;color:#eff8fc}
html[data-theme="dark"] .audit-human-table th,html[data-theme="dark"] .audit-human-table td{border-color:#395561}
html[data-theme="dark"] .audit-human-table thead th{background:#244653;color:#d4eff9}

/* v221 · selección visual de períodos */
#payrollCycleForm{width:min(720px,100%);padding:26px;max-height:calc(100dvh - 32px);overflow:auto;border-radius:22px}
.cycle-panel-heading{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;padding-bottom:18px;border-bottom:1px solid #dce8ed}
.cycle-kicker{font-size:10px;letter-spacing:.13em;color:#267e95;font-weight:800}
.cycle-panel-heading h2{font-size:27px;margin:6px 0;color:#173e50}
.cycle-panel-heading p{margin:0;color:#687e88;font-size:13px}
.cycle-close{display:grid;place-items:center;width:38px;min-width:38px;height:38px;padding:0;font-size:25px;border-radius:50%}
.cycle-intro{margin:20px 0 14px;font-size:14px;color:#607683}
.cycle-presets{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
.cycle-presets button{display:flex;align-items:flex-start;flex-direction:column;gap:6px;text-align:left;min-height:134px;padding:16px 13px;border:1px solid #d4e2e9;background:#f7fafb;color:#244b5e;border-radius:14px;box-shadow:none}
.cycle-presets button span{font-size:10px;font-weight:700;color:#5a7e8e}
.cycle-presets button strong{font-size:20px;line-height:1.3;letter-spacing:-.02em}
.cycle-presets button small{font-size:11px;line-height:1.5;font-weight:400}
.cycle-presets button.is-selected{background:#e8f5f7;border:2px solid #0a718b;padding:15px 12px;box-shadow:0 0 0 3px #0a718b0a}
.cycle-presets button.is-selected span{color:#0b6880}
.cycle-presets button:focus-visible{outline:3px solid #75bcd4;outline-offset:3px}
.cycle-custom{padding:18px;margin-top:16px;background:#f3f7f9;border-radius:12px;border:1px solid #dce7ec}
.cycle-preview-heading{display:flex;align-items:baseline;justify-content:space-between;gap:12px;margin-top:23px;margin-bottom:10px;flex-wrap:wrap}
.cycle-preview-heading h3{font-size:14px;margin:0}.cycle-preview-heading span{font-size:10px;color:#708591}
.cycle-preview{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.cycle-range-card{display:grid;gap:7px;background:#f2f7fa;border:1px solid #dfebf0;border-radius:13px;padding:16px}
.cycle-range-card>span{font-size:11px;font-weight:650;color:#607c8b}.cycle-range-card strong{font-size:17px;color:#194b61}.cycle-range-card small{font-size:11px;color:#667f8b}
.cycle-explanation{font-size:12px;line-height:1.7;color:#677e8b;margin:15px 0 0}
.cycle-actions{padding-top:17px;margin-top:18px;border-top:1px solid #dce8ed}
html[data-theme="dark"] #payrollCycleForm{background:#172e3a;color:#edf6fa;border-color:#45606c}
html[data-theme="dark"] .cycle-panel-heading h2,html[data-theme="dark"] .cycle-range-card strong{color:#e7f7ff}
html[data-theme="dark"] .cycle-kicker{color:#81ccdc}
html[data-theme="dark"] .cycle-presets button,html[data-theme="dark"] .cycle-custom,html[data-theme="dark"] .cycle-range-card{background:#203e4c;border-color:#466471;color:#edf6fa}
html[data-theme="dark"] .cycle-presets button.is-selected{background:#174d5e;border-color:#6ac8dd}
html[data-theme="dark"] .cycle-presets button span,html[data-theme="dark"] .cycle-panel-heading p,html[data-theme="dark"] .cycle-intro,html[data-theme="dark"] .cycle-range-card>span,html[data-theme="dark"] .cycle-range-card small,html[data-theme="dark"] .cycle-explanation,html[data-theme="dark"] .cycle-preview-heading span{color:#b8cfd9}
@media(max-width:560px){#payrollCycleForm{padding:19px;border-radius:17px}.cycle-panel-heading h2{font-size:23px}.cycle-presets{grid-template-columns:1fr 1fr}.cycle-presets button{min-height:122px}.cycle-presets button:last-child{grid-column:1/-1;min-height:0;display:grid;grid-template-columns:1fr 1.4fr;align-items:center}.cycle-presets button:last-child strong{grid-column:2;grid-row:1/3;font-size:19px;text-align:right}.cycle-presets button:last-child small{grid-column:1}.cycle-preview{gap:8px}.cycle-range-card{padding:12px}.cycle-range-card strong{font-size:14px}.cycle-actions button{min-width:0}}
/* v222: explicit semantic colors override broad legacy dark-theme text rules. */
html[data-theme="dark"] #ownerDashboard .support-ticket-status.is-answered,
html[data-theme="dark"] #supportTicketDialog .support-ticket-status.is-answered{
 background:#214b3a!important;color:#d1f8df!important;-webkit-text-fill-color:#d1f8df!important;border:1px solid #4b8e6b;
}
html[data-theme="dark"] #ownerDashboard .support-ticket-status.is-pending,
html[data-theme="dark"] #supportTicketDialog .support-ticket-status.is-pending{
 background:#51401e!important;color:#ffe5a4!important;-webkit-text-fill-color:#ffe5a4!important;border:1px solid #927640;
}
html[data-theme="dark"] #ownerDashboard .owner-status{background:#354c58!important;color:#e6f1f7!important;-webkit-text-fill-color:#e6f1f7!important;border:1px solid #617c8b}
html[data-theme="dark"] #ownerDashboard .owner-status.is-active{background:#214b3a!important;color:#d1f8df!important;-webkit-text-fill-color:#d1f8df!important;border-color:#4b8e6b}
html[data-theme="dark"] #ownerDashboard .owner-account-card{background:#182f3a!important;border-color:#456575!important}
html[data-theme="dark"] #ownerDashboard .owner-account-identity strong{color:#f0f8fc!important}
html[data-theme="dark"] #ownerDashboard .owner-account-identity small,
html[data-theme="dark"] #ownerDashboard .owner-account-meta small{color:#bad0dc!important}
html[data-theme="dark"] #ownerDashboard .owner-account-meta b{color:#e9f4fa!important}
html[data-theme="dark"] #ownerDashboard .owner-account-select{background:#a4d9ed!important;color:#103d53!important;-webkit-text-fill-color:#103d53!important;border-color:#80bdd4!important}
.account-transfer-notices:empty{display:none}
.account-transfer-notices{display:grid;gap:10px;max-width:1400px;width:calc(100% - 48px);margin:18px auto}
.account-transfer-notice{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:19px 22px;background:#edf8f2;border:1px solid #acd8c0;border-left:5px solid #287954;border-radius:15px;color:#194a36}
.account-transfer-notice strong{font-size:16px}.account-transfer-notice p{margin:5px 0 0;font-size:14px;line-height:1.6;overflow-wrap:anywhere}
.account-transfer-notice>div:last-child{display:flex;gap:8px;flex-shrink:0}
.once-local-thinking{font-size:12px;color:#53788b;padding:8px 14px}
.once-local-draft{border:1px solid #abd0de;background:#eef7fa;border-radius:14px;padding:16px;margin:10px 0;color:#193e50}
.once-local-draft>strong{font-size:15px}.once-local-draft dl{display:grid;grid-template-columns:minmax(80px,.7fr) minmax(0,1.3fr);gap:8px 14px;font-size:13px;margin:16px 0}
.once-local-draft dt{color:#547382}.once-local-draft dd{margin:0;overflow-wrap:anywhere;font-weight:600}
.once-local-draft p{font-size:12px;line-height:1.6;color:#547382}
.once-local-draft-actions{display:flex;gap:8px;justify-content:flex-end;flex-wrap:wrap;margin-top:15px}.once-local-draft-actions button{font-size:12px;max-width:100%;overflow-wrap:anywhere}
.once-message p{white-space:pre-wrap;overflow-wrap:anywhere}
html[data-theme="dark"] .account-transfer-notice{background:#183e33;border-color:#477e68;color:#def6e9}
html[data-theme="dark"] .account-transfer-notice strong,html[data-theme="dark"] .account-transfer-notice p{color:#def6e9!important}
html[data-theme="dark"] .once-local-draft{background:#1b3847;border-color:#567e91;color:#edf8ff}
html[data-theme="dark"] .once-local-draft>strong,html[data-theme="dark"] .once-local-draft dd{color:#edf8ff!important}
html[data-theme="dark"] .once-local-draft dt,html[data-theme="dark"] .once-local-draft p,html[data-theme="dark"] .once-local-thinking{color:#bdd5e1!important}
@media(max-width:600px){.account-transfer-notice{align-items:stretch;flex-direction:column;gap:12px;padding:16px}.account-transfer-notice>div:last-child{justify-content:flex-end;flex-wrap:wrap}.once-local-draft{padding:13px}.once-local-draft dl{gap:8px}}


/* v227: cierre laboral y resumen de liquidación */
.liquidation-estimate{margin:16px 0;padding:18px;border:1px solid #8fc6df;border-radius:16px;background:#eff8fc;color:#173b4c}
.liquidation-estimate h3{margin:0 0 8px;color:#0b5972}.liquidation-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:12px 0}.liquidation-grid>div{display:grid;gap:5px;padding:12px;border:1px solid #c8e0eb;border-radius:12px;background:#fff}.liquidation-grid small{color:#536c78}.liquidation-grid b{font-size:1.08rem;color:#124e66}
.liquidation-grid>.liquidation-subtotal{grid-column:1/-1;background:#e4f4f9;border-color:#7eb9cf}.liquidation-grid>.liquidation-subtotal b{font-size:1.3rem}
html[data-theme="dark"] .liquidation-estimate{background:#19323d;border-color:#53849a;color:#eaf6fa}html[data-theme="dark"] .liquidation-estimate h3,html[data-theme="dark"] .liquidation-grid b{color:#b9e9fa}html[data-theme="dark"] .liquidation-grid>div{background:#203c47;border-color:#527483}html[data-theme="dark"] .liquidation-grid>.liquidation-subtotal{background:#244654;border-color:#55a5c3}html[data-theme="dark"] .liquidation-grid small{color:#c0d4dc}
@media(max-width:600px){.liquidation-grid{grid-template-columns:1fr}.liquidation-estimate{padding:14px}}

/* v228: accesos claros y cifras de descuentos legibles */
.manager-actions-label{display:block;margin:2px 0 8px;color:var(--ink,#173f52);font-size:15px;font-weight:800}
.manager-access-shortcuts{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px;margin:0 0 14px}
button.manager-access-action{min-height:48px;padding:10px 13px;border:1px solid #b9d8e6;border-radius:12px;background:#edf7fb;color:#174a62;font-size:15px;font-weight:800;line-height:1.25;white-space:normal;box-shadow:0 2px 6px #153f5210}
button.manager-access-action:hover,button.manager-access-action:focus-visible{border-color:#0b6688;box-shadow:0 0 0 3px #9fd7eb66}
button.manager-access-action.is-selected{background:#0b5471;border-color:#0b5471;color:#fff}
button.manager-admin-action{background:#fff5d8;border-color:#e6c66f;color:#684e08}
button.manager-admin-action.is-selected{background:#f4d77c;border-color:#bd941f;color:#392b05;box-shadow:0 0 0 3px #f4d77c55}
.manager-identity-help{display:block;margin-top:7px;color:#496979;font-size:14px;line-height:1.45}
button#saveCompanyDialog.manager-confirm-admin{background:#f2d77f;border:1px solid #bd941f;color:#392b05;box-shadow:0 2px 8px #8e6c171f}
button#saveCompanyDialog.manager-confirm-admin:hover{background:#ebca5e}
.payroll-total-deductions>small{color:#365c6e;font-size:15px;font-weight:800;line-height:1.4}
.payroll-total-deductions>strong{font-size:clamp(28px,3vw,36px);line-height:1.1}
.payroll-total-breakdown{gap:9px}
.payroll-total-breakdown span{padding:10px 12px;color:#395c6d;font-size:14px;line-height:1.35}
.payroll-total-breakdown b{color:#123f56;font-size:14px}
html[data-theme="dark"] .manager-actions-label{color:#e5f2f7}
html[data-theme="dark"] button.manager-access-action{background:#243d48;border-color:#557887;color:#e7f5fa}
html[data-theme="dark"] button.manager-access-action.is-selected{background:#0b6688;border-color:#88d4ef;color:#fff}
html[data-theme="dark"] button.manager-admin-action{background:#483e23;border-color:#b89b46;color:#ffedb6}
html[data-theme="dark"] button.manager-admin-action.is-selected{background:#786528;border-color:#e5c85d;color:#fff6d2}
html[data-theme="dark"] .manager-identity-help{color:#c3d8e1}
html[data-theme="dark"] button#saveCompanyDialog.manager-confirm-admin{background:#e9cb64;border-color:#ffe59a;color:#302600}
html[data-theme="dark"] .payroll-total-deductions>small{color:#e0f0f5}
html[data-theme="dark"] .payroll-total-breakdown span{background:#17313b;border-color:#52717e;color:#d9eaf0}
html[data-theme="dark"] .payroll-total-breakdown b{color:#fff5d2}
@media(max-width:680px){.manager-access-shortcuts{grid-template-columns:1fr;gap:7px}button.manager-access-action{min-height:46px;text-align:left;padding-inline:14px}.payroll-total-deductions>small{font-size:14px}.payroll-total-deductions>strong{font-size:27px}.payroll-total-breakdown span{padding:9px 10px;font-size:13px}.payroll-total-breakdown b{font-size:13px}}
/* v229: acción Renombrar con azul de mayor jerarquía y texto legible */
.admin-menu .toolbar-menu-panel>#renameCompany{background:#176b91;border-color:#125b7d;color:#fff;font-weight:800;box-shadow:0 2px 7px #0d4c681c}
.admin-menu .toolbar-menu-panel>#renameCompany:hover{background:#105a7d;border-color:#0c4d6d;color:#fff}
.admin-menu .toolbar-menu-panel>#renameCompany:focus-visible{outline:3px solid #8bd0eb;outline-offset:2px}
html[data-theme="dark"] .admin-menu .toolbar-menu-panel>#renameCompany{background:#1a5d7c;border-color:#5796b0;color:#fff}
html[data-theme="dark"] .admin-menu .toolbar-menu-panel>#renameCompany:hover{background:#247495;border-color:#7dc6e0;color:#fff}
/* v238: nuevo símbolo OnControl en encabezado y tamaños responsivos. */
.brand-wordmark-button {
  display:grid!important;
  grid-template-columns:52px minmax(0,1fr);
  grid-template-rows:auto auto;
  align-items:center;
  column-gap:12px;
  row-gap:2px;
  flex:1 1 auto!important;
  width:auto!important;
  min-width:0!important;
  height:auto!important;
  min-height:0!important;
  overflow:visible!important;
}
.brand-wordmark-button .brand-mark {
  grid-column:1; grid-row:1 / span 2;
  display:block; width:52px; height:52px;
  object-fit:contain; border-radius:11px; flex:none;
}
.brand-wordmark-button .brand-title { grid-column:2; grid-row:1; }
.brand-wordmark-button .brand-tagline { grid-column:2; grid-row:2; }
@media(max-width:650px) {
  .brand-wordmark-button { grid-template-columns:44px minmax(0,1fr); column-gap:9px; }
  .brand-wordmark-button .brand-mark { width:44px; height:44px; border-radius:9px; }
}

/* v239: marca estable alineada a la izquierda y logo legible en fondos oscuros. */
button.brand-wordmark-button,
button.brand-wordmark-button:hover,
button.brand-wordmark-button:active {
  display: grid !important;
  grid-template-columns: 52px max-content;
  grid-template-rows: auto auto;
  justify-content: start !important;
  justify-items: start !important;
  align-content: center;
  align-items: center;
  column-gap: 12px;
  row-gap: 2px;
  flex: 0 1 auto !important;
  width: max-content !important;
  max-width: 100%;
  min-width: 0 !important;
  height: auto !important;
  min-height: 0 !important;
  padding: 0 !important;
  overflow: visible !important;
  text-align: left !important;
}
.brand-wordmark-button .brand-mark {
  grid-column: 1;
  grid-row: 1 / span 2;
  justify-self: start;
  width: 52px;
  height: 52px;
  object-fit: contain;
  background: transparent;
  border: 0;
  border-radius: 0;
  box-shadow: none;
}
.brand-wordmark-button .brand-title,
.brand-wordmark-button .brand-tagline {
  grid-column: 2;
  justify-self: start;
  width: max-content;
  max-width: 100%;
  text-align: left !important;
}
.brand-wordmark-button .brand-title { grid-row: 1; }
.brand-wordmark-button .brand-tagline { grid-row: 2; }
@media (max-width: 680px) {
  button.brand-wordmark-button,
  button.brand-wordmark-button:hover,
  button.brand-wordmark-button:active {
    grid-template-columns: 44px minmax(0, 1fr);
    flex: 1 1 auto !important;
    width: 100% !important;
    max-width: 100%;
    justify-content: start !important;
    column-gap: 9px;
  }
  .brand-wordmark-button .brand-mark { width: 44px; height: 44px; }
  .brand-wordmark-button .brand-title,
  .brand-wordmark-button .brand-tagline { width: auto; }
}
/* v240 · OnceControl Panamá (OCP): marca adaptativa, secciones compactas y acentos pastel con contraste. */
.brand-wordmark-button .brand-mark-light{display:block!important}
.brand-wordmark-button .brand-mark-dark{display:none!important}
html[data-theme="dark"] .brand-wordmark-button .brand-mark-light{display:none!important}
html[data-theme="dark"] .brand-wordmark-button .brand-mark-dark{display:block!important}
.brand-wordmark-button .brand-title{font-size:clamp(20px,2vw,27px);font-weight:800;letter-spacing:-.025em}
.brand-wordmark-button .brand-tagline{font-size:13px;line-height:1.25;font-weight:650;letter-spacing:.01em}
.once-header .once-identity .once-icon-light{display:block!important}
.once-header .once-identity .once-icon-dark{display:none!important}
html[data-theme="dark"] .once-header .once-identity .once-icon-light{display:none!important}
html[data-theme="dark"] .once-header .once-identity .once-icon-dark{display:block!important}
.once-launcher .once-icon-light,.once-launcher .once-icon-dark{width:40px!important;height:40px!important;object-fit:contain!important;border-radius:11px!important}
.once-launcher span{display:none!important}
html[data-theme="dark"] .once-launcher .once-icon-dark{display:block!important}
html[data-theme="dark"] .once-launcher span{display:none!important}
html:not([data-theme="dark"]) .once-launcher .once-icon-light{display:block!important}
html:not([data-theme="dark"]) .once-launcher .once-icon-dark{display:none!important}
/* Menos relleno en las secciones principales para que quepa más contenido sin reducir el texto. */
.panel,.owner-card,.performance-panel,.payroll-overview,.employee-list-panel{padding:clamp(12px,1.45vw,17px)}
.toolbar{padding:12px 14px;gap:8px}
.emp{margin-bottom:8px!important;padding:11px!important}
.emp-payroll-pills{gap:7px!important}
.section-heading,.owner-card-heading{margin-bottom:10px}
/* Pasteles vibrantes para distinguir sueldo, beneficios y propinas; texto oscuro legible en ambos temas. */
.emp-payroll-pill{background:#edf6ff!important;border-color:#9fcde2!important;color:#24495c!important}
.emp-payroll-pill b{color:#153e52!important}
.emp-payroll-pill small{color:#476575!important}
.emp-payroll-pill.emp-payroll-month{background:#c8eee5!important;border-color:#84cfba!important;color:#20534b!important}
.emp-payroll-pill.emp-payroll-month b,.emp-payroll-pill.emp-payroll-month small{color:#174b43!important}
.emp-payroll-pill.emp-benefit-pill{background:#e9e2ff!important;border-color:#c2b2ed!important;color:#40365d!important}
.emp-payroll-pill.emp-benefit-pill b{color:#35284f!important}
.emp-payroll-pill.emp-benefit-pill small{color:#584d70!important}
.emp-payroll-pill.emp-tips-pill{background:#fff0bd!important;border-color:#e3c45e!important;color:#604811!important}
.emp-payroll-pill.emp-tips-pill b{color:#503b0c!important}
html[data-theme="dark"] .emp-payroll-pill{background:#dceeff!important;border-color:#8ac2de!important;color:#24495c!important}
html[data-theme="dark"] .emp-payroll-pill b{color:#153e52!important}
html[data-theme="dark"] .emp-payroll-pill small{color:#476575!important}
html[data-theme="dark"] .emp-payroll-pill.emp-payroll-month{background:#c8eee5!important;border-color:#84cfba!important;color:#20534b!important}
html[data-theme="dark"] .emp-payroll-pill.emp-payroll-month b,html[data-theme="dark"] .emp-payroll-pill.emp-payroll-month small{color:#174b43!important}
html[data-theme="dark"] .emp-payroll-pill.emp-benefit-pill{background:#e9e2ff!important;border-color:#c2b2ed!important;color:#40365d!important}
html[data-theme="dark"] .emp-payroll-pill.emp-benefit-pill b{color:#35284f!important}
html[data-theme="dark"] .emp-payroll-pill.emp-benefit-pill small{color:#584d70!important}
html[data-theme="dark"] .emp-payroll-pill.emp-tips-pill{background:#fff0bd!important;border-color:#e3c45e!important;color:#604811!important}
html[data-theme="dark"] .emp-payroll-pill.emp-tips-pill b{color:#503b0c!important}
@media(max-width:680px){.panel,.owner-card,.performance-panel,.payroll-overview,.employee-list-panel{padding:12px!important}.toolbar{padding:10px!important;gap:7px!important}.emp{padding:10px!important}.emp-payroll-pills{gap:6px!important}.brand-wordmark-button .brand-title{font-size:20px}.brand-wordmark-button .brand-tagline{font-size:12px}}
/* La segunda línea del logotipo identifica el país con peso regular. */
.brand-wordmark-button .brand-tagline{font-size:clamp(20px,2vw,27px)!important;line-height:1.15;font-weight:400!important;letter-spacing:-.025em}
@media(max-width:680px){.brand-wordmark-button .brand-tagline{font-size:20px!important;line-height:1.15}}

/* Identidad de XI en todos los elementos del asistente y sus borradores. */
.xi-heading,.xi-inline-identity{display:inline-flex;align-items:center;gap:7px}
.xi-heading img,.xi-inline-identity img{width:22px;height:22px;flex:0 0 22px;object-fit:contain;border-radius:6px}
.xi-logo-light{display:inline-block!important}
.xi-logo-dark{display:none!important}
html[data-theme="dark"] .xi-logo-light{display:none!important}
html[data-theme="dark"] .xi-logo-dark{display:inline-block!important}
.once-local-draft>strong.xi-heading{font-size:14px}
.once-more-actions summary>span{display:inline-flex;align-items:center;gap:6px}
.once-more-actions summary img{width:18px;height:18px;object-fit:contain;border-radius:5px}
/* Accesos de gerente/administrador: ancho parejo y texto sin desbordes. */
#managerActionField .manager-access-shortcuts{grid-template-columns:repeat(2,minmax(0,1fr))!important;align-items:stretch}
#managerActionField button.manager-access-action{box-sizing:border-box;width:100%;min-width:0;max-width:100%;white-space:normal;overflow-wrap:anywhere;word-break:normal;hyphens:auto;text-align:center;line-height:1.2}
#managerActionField button.manager-admin-action{grid-column:1/-1}
@media(max-width:680px){#managerActionField .manager-access-shortcuts{grid-template-columns:minmax(0,1fr)!important}#managerActionField button.manager-admin-action{grid-column:auto}}
/* Acciones destructivas: rojo pastel vivo y legible en ambos temas. */
button.danger,.toolbar-menu-panel button.danger,.notification-actions button.danger{background:#ffd0d3!important;border:1px solid #ef8992!important;color:#70252d!important;box-shadow:0 2px 6px #8b26331c}
button.danger:hover,.toolbar-menu-panel button.danger:hover,.notification-actions button.danger:hover{background:#ffb8bf!important;border-color:#df6874!important;color:#5c1c24!important}
html[data-theme="dark"] button.danger,html[data-theme="dark"] .toolbar-menu-panel button.danger,html[data-theme="dark"] .notification-actions button.danger{background:#ffb8bf!important;border-color:#f18a94!important;color:#63232b!important}
html[data-theme="dark"] button.danger:hover,html[data-theme="dark"] .toolbar-menu-panel button.danger:hover,html[data-theme="dark"] .notification-actions button.danger:hover{background:#ffd0d3!important;border-color:#ffadb5!important;color:#55171f!important}
.once-intro .xi-heading{display:flex;align-items:center;gap:8px}.once-intro .xi-heading img{width:20px;height:20px;flex:0 0 20px}.once-intro-copy{min-width:0}.once-extra-action-grid .once-suggestion-navigation{border-color:#9bcbdc;background:#eaf6fa;color:#15485a}
html[data-theme="dark"] .once-extra-action-grid .once-suggestion-navigation{border-color:#507789;background:#29434e;color:#effaff}
html[data-theme="dark"] .once-extra-action-grid .once-suggestion-navigation:hover{background:#355968}

/* Edición flotante de asistencia por fecha. */
.attendance-date-dialog{display:flex;flex-direction:column;width:min(540px,calc(100vw - 28px));max-height:min(84dvh,760px);padding:0;overflow:hidden;border:1px solid #8bb8c9;border-radius:20px;background:var(--surface,#fff);color:var(--dark,#17384b);box-shadow:0 22px 70px #071d2a55}
.attendance-date-head{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;padding:20px 22px 14px;border-bottom:1px solid var(--line,#dce5ea);background:color-mix(in srgb,#85b7d6 10%,var(--surface,#fff))}
.attendance-date-head h2{margin:4px 0;color:var(--dark,#17384b);font-size:20px;line-height:1.2}.attendance-date-head p{margin:6px 0 0;color:var(--muted,#607582);font-size:13px}
.attendance-date-eyebrow{color:#08769a;font-size:10px;font-weight:800;letter-spacing:.12em}.attendance-date-close{flex:0 0 38px;width:38px;height:38px;padding:0;border-radius:50%;font-size:23px;line-height:1}
.attendance-date-body{display:grid;gap:8px;overflow:auto;min-height:0;padding:18px 22px;scrollbar-gutter:stable;scrollbar-width:thin;scrollbar-color:#83a9b8 transparent}
.attendance-date-body>label,.attendance-date-fields label{display:grid;gap:5px;color:var(--muted,#607582);font-size:12px;font-weight:750}.attendance-date-body label span{font-weight:500}
.attendance-date-body input,.attendance-date-body select,.attendance-date-body textarea{width:100%;min-width:0;min-height:42px;border:1px solid #bed2dc;border-radius:10px;background:var(--surface,#fff);color:var(--text,#183443);padding:9px 11px;font:inherit;font-size:14px}.attendance-date-body textarea{resize:vertical;min-height:76px}
.attendance-date-fields{display:grid;grid-template-columns:1fr 1fr;gap:12px}.attendance-date-help{min-height:18px;margin:0;color:var(--muted,#607582);font-size:12px;line-height:1.4}
.attendance-date-attachments{display:grid;gap:7px;padding:11px 12px;border:1px solid var(--line,#dce5ea);border-radius:12px;background:color-mix(in srgb,#85b7d6 8%,var(--surface,#fff))}.attendance-date-attachments-heading{display:flex;justify-content:space-between;align-items:center;gap:10px}.attendance-date-attachments-heading>div{display:grid;gap:2px;min-width:0}.attendance-date-attachments-heading strong{font-size:13px;color:var(--dark,#17384b)}.attendance-date-attachments-heading small,.attendance-date-attachment-hint{color:var(--muted,#607582);font-size:11px}.attendance-date-attachment-list{display:flex;flex-wrap:wrap;gap:6px;min-width:0}.attendance-date-attachment-list:empty{display:none}.attendance-date-attachment-list .attendance-file-link{max-width:100%;padding:5px 8px;border:1px solid var(--line,#dce5ea);border-radius:8px;background:var(--surface,#fff)}.attendance-date-attachment-hint{margin:0}.attendance-date-attachments .attendance-attach-button{min-height:36px}
.attendance-date-actions{display:flex;justify-content:flex-end;gap:9px;padding:12px 22px 18px;border-top:1px solid var(--line,#dce5ea);background:var(--surface,#fff)}.attendance-date-actions button{min-width:124px}
html[data-theme="dark"] .attendance-date-dialog{background:#182832;border-color:#547b8b;color:#eff7fa}html[data-theme="dark"] .attendance-date-head{background:#203944;border-color:#405e6a}html[data-theme="dark"] .attendance-date-head h2{color:#f2f8fa}html[data-theme="dark"] .attendance-date-head p,html[data-theme="dark"] .attendance-date-help{color:#c0d1d8}html[data-theme="dark"] .attendance-date-eyebrow{color:#8ddaf2}html[data-theme="dark"] .attendance-date-body input,html[data-theme="dark"] .attendance-date-body select,html[data-theme="dark"] .attendance-date-body textarea{background:#203741;border-color:#55717e;color:#f4f8fa}html[data-theme="dark"] .attendance-date-actions{background:#182832;border-color:#405e6a}html[data-theme="dark"] .attendance-date-body{scrollbar-color:#7397a5 transparent}html[data-theme="dark"] .attendance-date-attachments{background:#20343f;border-color:#405a67}html[data-theme="dark"] .attendance-date-attachments-heading strong{color:#f2f8fa}html[data-theme="dark"] .attendance-date-attachments-heading small,html[data-theme="dark"] .attendance-date-attachment-hint{color:#c0d1d8}html[data-theme="dark"] .attendance-date-attachment-list .attendance-file-link{background:#182832;border-color:#547b8b;color:#d9f3fb}
@media(max-width:600px){.attendance-date-dialog{width:calc(100vw - 24px);max-height:calc(100dvh - env(safe-area-inset-top,0px) - env(safe-area-inset-bottom,0px) - 28px);border-radius:18px}.attendance-date-head{padding:16px 16px 12px}.attendance-date-head h2{font-size:18px}.attendance-date-body{padding:14px 16px}.attendance-date-attachments-heading{align-items:stretch;flex-direction:column}.attendance-date-attachments-heading .attendance-attach-button{width:100%}.attendance-date-actions{padding:10px 16px 14px}.attendance-date-actions button{flex:1;min-width:0}}
@media(max-width:360px){.attendance-date-fields{grid-template-columns:minmax(0,1fr);gap:8px}}

/* v245: encabezado fijo, cierre visible y desplazamiento inset en Accesos del equipo */
#companyDialog[data-mode="manager"] #companyDialogForm{box-sizing:border-box;border-right:12px solid transparent;background-clip:padding-box;padding-right:24px;scrollbar-gutter:stable;scrollbar-width:thin;scrollbar-color:#7da9b9 #eaf3f7}
#companyDialogForm .company-dialog-header{position:sticky;top:-22px;z-index:5;display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin:-22px -22px 18px;padding:20px 22px 14px;background:#fff;border-bottom:1px solid #d7e6ed}
#companyDialogForm .company-dialog-header h2{margin:0 0 6px}
#companyDialogForm .company-dialog-header p{margin:0;color:#526d7b;font-size:14px;line-height:1.45}
#companyDialogForm .company-dialog-close{flex:0 0 44px;width:44px;height:44px;padding:0;display:grid;place-items:center;border:1px solid #e58a91;border-radius:50%;background:#f8cbd0;color:#70272d;font-size:28px;font-weight:800;line-height:1;box-shadow:0 2px 8px #8f3c4420}
#companyDialogForm .company-dialog-close:hover,#companyDialogForm .company-dialog-close:focus-visible{background:#f3aeb6;border-color:#d76570;color:#5a1820;box-shadow:0 0 0 3px #f4c5c966}
#companyDialogForm .company-dialog-close:focus-visible{outline:2px solid #7ec5df;outline-offset:2px}
#companyDialog[data-mode="manager"] #companyDialogForm::-webkit-scrollbar{width:10px}
#companyDialog[data-mode="manager"] #companyDialogForm::-webkit-scrollbar-track{margin:12px 0;border-radius:12px;background:#eaf3f7}
#companyDialog[data-mode="manager"] #companyDialogForm::-webkit-scrollbar-thumb{border:2px solid #eaf3f7;border-radius:12px;background:#7da9b9}
html[data-theme="dark"] #companyDialogForm .company-dialog-header{background:#182832;border-color:#3b515d}
html[data-theme="dark"] #companyDialogForm .company-dialog-header p{color:#c0d4dc}
html[data-theme="dark"] #companyDialogForm .company-dialog-close{background:#77383f;border-color:#e7838c;color:#ffe9eb}
html[data-theme="dark"] #companyDialogForm .company-dialog-close:hover,html[data-theme="dark"] #companyDialogForm .company-dialog-close:focus-visible{background:#91434b;border-color:#ff9da4;color:#fff}
html[data-theme="dark"] #companyDialog[data-mode="manager"] #companyDialogForm{scrollbar-color:#6d9bab #243d48}
html[data-theme="dark"] #companyDialog[data-mode="manager"] #companyDialogForm::-webkit-scrollbar-track{background:#243d48}
html[data-theme="dark"] #companyDialog[data-mode="manager"] #companyDialogForm::-webkit-scrollbar-thumb{border-color:#243d48;background:#6d9bab}
@media(max-width:600px){#companyDialogForm .company-dialog-header{top:-18px;margin:-18px -18px 16px;padding:17px 18px 13px}#companyDialog[data-mode="manager"] #companyDialogForm{border-right-width:10px;padding-right:18px}.company-dialog-close{width:42px!important;height:42px!important;flex-basis:42px!important}}
/* v246: panel de accesos con scroll separado del marco y acciones legibles */
#companyDialog[data-mode="manager"] #companyDialogForm{display:flex;flex-direction:column;overflow:hidden;padding:8px;border-radius:24px}
#companyDialog[data-mode="manager"] .company-dialog-scroll{flex:1 1 auto;min-height:0;overflow-y:auto;overflow-x:hidden;margin:5px 7px 5px 5px;padding:14px 16px 18px 18px;border-radius:18px;scrollbar-gutter:stable;scrollbar-width:thin;scrollbar-color:#7da9b9 transparent}
#companyDialog[data-mode="manager"] .company-dialog-scroll::-webkit-scrollbar{width:9px}
#companyDialog[data-mode="manager"] .company-dialog-scroll::-webkit-scrollbar-track{margin:10px 0;border-radius:10px;background:transparent}
#companyDialog[data-mode="manager"] .company-dialog-scroll::-webkit-scrollbar-thumb{border:2px solid transparent;border-radius:10px;background:#7da9b9;background-clip:padding-box}
#companyDialog[data-mode="manager"] #companyDialogForm .company-dialog-header{top:0;margin:-14px -16px 16px -18px;padding:16px 16px 14px 18px;border-radius:18px 18px 0 0}
#companyDialog[data-mode="manager"] #managerActionField .manager-access-shortcuts{grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:10px}
#companyDialog[data-mode="manager"] #managerActionField button.manager-access-action{min-height:58px;padding:12px 14px;text-align:center;line-height:1.25;white-space:normal;overflow-wrap:anywhere;border-radius:14px}
#companyDialog[data-mode="manager"] #managerActionField button.manager-admin-action{grid-column:1/-1}
#companyDialog[data-mode="manager"] .manager-permissions{align-items:start;gap:10px 16px;padding:16px}
#companyDialog[data-mode="manager"] .manager-permissions label{min-height:40px;line-height:1.35;overflow-wrap:anywhere}
html[data-theme="dark"] #companyDialog[data-mode="manager"] .company-dialog-scroll{scrollbar-color:#75aabc transparent}
html[data-theme="dark"] #companyDialog[data-mode="manager"] .company-dialog-scroll::-webkit-scrollbar-thumb{background:#75aabc;background-clip:padding-box}
@media(max-width:600px){#companyDialog[data-mode="manager"] #companyDialogForm{padding:6px;border-radius:21px}#companyDialog[data-mode="manager"] .company-dialog-scroll{margin:4px;padding:11px 12px 16px;border-radius:16px}#companyDialog[data-mode="manager"] #companyDialogForm .company-dialog-header{top:0;margin:-11px -12px 14px;padding:14px 12px 12px;border-radius:16px 16px 0 0}#companyDialog[data-mode="manager"] #managerActionField .manager-access-shortcuts{grid-template-columns:1fr!important;gap:8px}#companyDialog[data-mode="manager"] #managerActionField button.manager-admin-action{grid-column:auto}#companyDialog[data-mode="manager"] #managerActionField button.manager-access-action{min-height:48px}}


/* v253: contraste de totales e informes en modo oscuro, controles de incapacidad y acceso a guardar en la barra */
html[data-theme="dark"] .payroll-total-grand{background:#087da6!important;border-color:#a9e4ff!important;box-shadow:0 5px 16px #0005!important}
html[data-theme="dark"] .payroll-total-grand small,html[data-theme="dark"] .payroll-total-grand strong,html[data-theme="dark"] .payroll-total-grand .payroll-total-caption{color:#fff!important}
html[data-theme="dark"] .toolbar-menu-panel{background:#142b35!important;border-color:#5c7e8c!important}
html[data-theme="dark"] .toolbar-menu-panel button#reportPdfBtn,html[data-theme="dark"] .toolbar-menu-panel button#reportWordBtn,html[data-theme="dark"] .toolbar-menu-panel button#reportExcelBtn,html[data-theme="dark"] .toolbar-menu-panel button#printBtn{background:#d6eff9!important;border-color:#8cc8df!important;color:#12394a!important;font-weight:800!important}
html[data-theme="dark"] .toolbar-menu-panel button#reportPdfBtn:hover,html[data-theme="dark"] .toolbar-menu-panel button#reportWordBtn:hover,html[data-theme="dark"] .toolbar-menu-panel button#reportExcelBtn:hover,html[data-theme="dark"] .toolbar-menu-panel button#printBtn:hover{background:#aee3f5!important;color:#0b2c3b!important}
.employee-floating-heading #saveEmp{flex:0 0 auto;min-height:40px;padding:8px 14px;margin-left:auto;white-space:nowrap}
.employee-floating-heading #closeEmployeeDetails{flex:0 0 42px}
.attendance-incapacity-decision{display:grid;gap:8px;margin:6px 0;padding:12px;border:1px solid #e4b85e;border-radius:12px;background:#fff8e8;color:#684500}
.attendance-incapacity-decision>div{display:flex;gap:8px;flex-wrap:wrap}
.attendance-incapacity-decision button{min-width:120px}
.attendance-incapacity-decision button.selected[data-incapacity-decision="accepted"]{background:#d8f4e3;border-color:#69bd8b;color:#14532d}
.attendance-incapacity-decision button.selected[data-incapacity-decision="rejected"]{background:#ffdadd;border-color:#e3828a;color:#74252c}
.attendance-incapacity-decision small{color:#526c79}
html[data-theme="dark"] .attendance-incapacity-decision{background:#3b3321;border-color:#d2aa55;color:#fff1c7}
html[data-theme="dark"] .attendance-incapacity-decision small{color:#e2d5b4}
html[data-theme="dark"] .attendance-incapacity-decision button.selected[data-incapacity-decision="accepted"]{background:#214c36;border-color:#68c28b;color:#e4ffed}
html[data-theme="dark"] .attendance-incapacity-decision button.selected[data-incapacity-decision="rejected"]{background:#592f35;border-color:#df8d95;color:#ffe7e9}

/* v254 · legibilidad de las opciones de período al generar informes en modo oscuro */
html[data-theme="dark"] .report-period-option{background:#eaf4f8!important;border-color:#9bc6d6!important;color:#17384b!important}
html[data-theme="dark"] .report-period-option:hover{background:#d8eef7!important;border-color:#438da9!important}
html[data-theme="dark"] .report-period-option strong{color:#12394a!important}
html[data-theme="dark"] .report-period-option small{color:#405f6e!important}
html[data-theme="dark"] .report-period-option .period-option-kicker{background:#d5e8ef!important;color:#294c5b!important}
html[data-theme="dark"] .report-period-option.selected{background:#c9edf8!important;border-color:#087da6!important;box-shadow:0 0 0 3px #78cce533!important}
html[data-theme="dark"] .report-period-option.selected strong{color:#10394a!important}
html[data-theme="dark"] .report-period-option.selected small{color:#355969!important}
html[data-theme="dark"] .report-period-option.selected .period-option-kicker{background:#087da6!important;color:#fff!important}

/* v255 · color de acción consistente para cerrar, salir y eliminar en ambos temas */
button.danger,button.note-delete,button.once-shortcut-remove,
button[id*="close" i],button[id*="logout" i],button[id*="delete" i],
button[aria-label*="cerrar" i],button[aria-label*="salir" i],button[aria-label*="eliminar" i],
button[title*="cerrar" i],button[title*="salir" i],button[title*="eliminar" i],
button#cancelCompanyDialog,button#clearReminderDay{
  background:#ffb8bf!important;border:1px solid #ef7d89!important;color:#64232b!important;
  box-shadow:0 2px 7px #a434411c!important
}
button.danger:hover,button.note-delete:hover,button.once-shortcut-remove:hover,
button[id*="close" i]:hover,button[id*="logout" i]:hover,button[id*="delete" i]:hover,
button[aria-label*="cerrar" i]:hover,button[aria-label*="salir" i]:hover,button[aria-label*="eliminar" i]:hover,
button[title*="cerrar" i]:hover,button[title*="salir" i]:hover,button[title*="eliminar" i]:hover,
button#cancelCompanyDialog:hover,button#clearReminderDay:hover{
  background:#ff9ea8!important;border-color:#df606f!important;color:#551820!important
}
button.danger:focus-visible,button.note-delete:focus-visible,button.once-shortcut-remove:focus-visible,
button[id*="close" i]:focus-visible,button[id*="logout" i]:focus-visible,button[id*="delete" i]:focus-visible,
button[aria-label*="cerrar" i]:focus-visible,button[aria-label*="salir" i]:focus-visible,button[aria-label*="eliminar" i]:focus-visible,
button[title*="cerrar" i]:focus-visible,button[title*="salir" i]:focus-visible,button[title*="eliminar" i]:focus-visible{
  outline:3px solid #f38a95!important;outline-offset:2px
}
@media(max-width:700px){.employee-floating-heading #saveEmp{min-height:38px;padding:7px 10px;font-size:13px}.employee-floating-heading strong{max-width:48vw}}

/* v256: conteo de días del período junto al estado de asistencia */
.employee-update-summary{display:flex;align-items:center;justify-content:flex-end;gap:7px;flex:0 0 auto;max-width:52%;min-width:0}
.employee-period-counts{display:flex;align-items:center;justify-content:flex-end;flex-wrap:wrap;gap:4px;min-width:0}
.period-count{display:inline-flex;align-items:center;gap:4px;padding:5px 7px;border:1px solid #c7dce6;border-radius:999px;background:#f1f7fa;color:#315363;font-size:10px;line-height:1.15;white-space:nowrap}
.period-count b{font-size:11px;color:#153e52}
.period-count-free{background:#e6f6eb;border-color:#abd9b7;color:#315c3d}.period-count-absence{background:#fde8e8;border-color:#e9b7b7;color:#763f42}.period-count-vacation{background:#eee9fb;border-color:#c9b9e9;color:#51446d}.period-count-unregistered{background:#fff1d9;border-color:#e7ca8d;color:#72521b}
html[data-theme="dark"] .period-count{background:#253e48;border-color:#55717d;color:#e0edf2}html[data-theme="dark"] .period-count b{color:#fff}
html[data-theme="dark"] .period-count-free{background:#dff3e4;border-color:#a8d4b3;color:#28543a}html[data-theme="dark"] .period-count-free b{color:#17452b}
html[data-theme="dark"] .period-count-absence{background:#f8dddd;border-color:#e2a6aa;color:#73363b}html[data-theme="dark"] .period-count-absence b{color:#68282e}
html[data-theme="dark"] .period-count-vacation{background:#eae2fb;border-color:#c4b2e8;color:#51416d}html[data-theme="dark"] .period-count-vacation b{color:#44335f}
html[data-theme="dark"] .period-count-unregistered{background:#ffebc9;border-color:#e2bd73;color:#704b0c}html[data-theme="dark"] .period-count-unregistered b{color:#654207}
@media(max-width:700px){.employee-update-summary{grid-column:1/-1;justify-self:stretch;flex:1 1 100%;max-width:100%;justify-content:flex-start;flex-wrap:wrap}.employee-update-summary .employee-update-pill{grid-column:auto;grid-row:auto;justify-self:start;align-self:center;max-width:150px;margin-left:0}.employee-period-counts{justify-content:flex-start}.period-count{padding:5px 7px;font-size:10px}}
@media(max-width:420px){.employee-update-summary{gap:5px}.employee-period-counts{gap:3px}.period-count{font-size:9px;padding:5px 6px}}
/* v256: el cierre de la ficha conserva el rojo pastel luminoso en tema oscuro */
button.employee-detail-close-x,html[data-theme="dark"] button.employee-detail-close-x{background:#ffb8bf!important;border:1px solid #ef7d89!important;color:#64232b!important;box-shadow:0 2px 7px #a434412b!important}
button.employee-detail-close-x:hover,html[data-theme="dark"] button.employee-detail-close-x:hover{background:#ff9ea8!important;border-color:#df606f!important;color:#551820!important}
button.employee-detail-close-x:focus-visible,html[data-theme="dark"] button.employee-detail-close-x:focus-visible{outline:3px solid #f38a95!important;outline-offset:2px}
/* v257: conteos con contraste firme y estado de registro al final */
.employee-update-summary{gap:7px}
.employee-period-counts .period-count{font-size:11px;color:#315363!important}
.employee-period-counts .period-count b{font-size:12px;color:#153e52!important}
html[data-theme="dark"] .employee-period-counts .period-count.period-count-free,html[data-theme="dark"] .employee-period-counts .period-count.period-count-free *{color:#28543a!important}
html[data-theme="dark"] .employee-period-counts .period-count.period-count-free b{color:#17452b!important}
html[data-theme="dark"] .employee-period-counts .period-count.period-count-absence,html[data-theme="dark"] .employee-period-counts .period-count.period-count-absence *{color:#73363b!important}
html[data-theme="dark"] .employee-period-counts .period-count.period-count-absence b{color:#68282e!important}
html[data-theme="dark"] .employee-period-counts .period-count.period-count-vacation,html[data-theme="dark"] .employee-period-counts .period-count.period-count-vacation *{color:#51416d!important}
html[data-theme="dark"] .employee-period-counts .period-count.period-count-vacation b{color:#44335f!important}
html[data-theme="dark"] .employee-period-counts .period-count.period-count-unregistered,html[data-theme="dark"] .employee-period-counts .period-count.period-count-unregistered *{color:#704b0c!important}
html[data-theme="dark"] .employee-period-counts .period-count.period-count-unregistered b{color:#654207!important}
@media(max-width:700px){.employee-period-counts .period-count{font-size:10px}.employee-period-counts .period-count b{font-size:11px}}

/* v260: X accesible y redacción de correo desde la ficha */
#companyDialogForm .company-dialog-header{position:sticky!important;z-index:20!important;isolation:isolate}
#companyDialogForm .company-dialog-close{position:relative!important;z-index:21!important;flex:0 0 44px!important;pointer-events:auto!important;cursor:pointer!important;touch-action:manipulation}
.employee-mail-dialog{width:min(100%,600px)!important;display:flex;flex-direction:column;gap:10px}
.employee-mail-dialog .tabletop{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;margin-bottom:4px}
.employee-mail-dialog .tabletop h2{margin:4px 0}
.employee-mail-dialog label{font-weight:700;color:var(--text,#17384b)}
.employee-mail-dialog input,.employee-mail-dialog textarea{width:100%;border:1px solid var(--line,#cbdde6);border-radius:12px;background:var(--field,#fff);color:var(--text,#17384b);padding:12px;font:inherit}
.employee-mail-dialog textarea{resize:vertical;min-height:150px}
.employee-mail-dialog input[readonly]{background:var(--soft,#eef6fa)}
html[data-theme="dark"] .employee-mail-dialog label{color:#edf8fc}
html[data-theme="dark"] .employee-mail-dialog input,html[data-theme="dark"] .employee-mail-dialog textarea{background:#10232c;border-color:#587988;color:#f0f8fb}
html[data-theme="dark"] .employee-mail-dialog input[readonly]{background:#1c3945;color:#cce1e9}
@media(max-width:600px){.employee-mail-dialog{max-height:calc(100dvh - 28px)!important}.employee-mail-dialog .dialog-actions{display:grid;grid-template-columns:1fr 1.3fr;gap:8px}.employee-mail-dialog .dialog-actions button{min-width:0;padding-inline:10px}}

/* OCP v268 · XI con más espacio y comprobante/correo cómodo en móvil. */
.once-panel:not(.hidden){
  width:min(620px,calc(100vw - 36px))!important;
  height:min(820px,calc(100dvh - 96px))!important;
  min-height:min(480px,calc(100dvh - 96px))!important;
  max-height:calc(100dvh - env(safe-area-inset-top,0px) - env(safe-area-inset-bottom,0px) - 90px)!important;
}
.once-panel:not(.hidden) .once-messages{flex:1 1 auto!important;min-height:110px!important;max-height:none!important;overflow:auto;overscroll-behavior:contain}
.once-panel:not(.hidden) .once-suggestions{max-height:min(34dvh,260px)!important;overscroll-behavior:contain;scrollbar-gutter:stable}
.once-panel:not(.hidden) .once-form textarea{min-height:62px!important}
.employee-mail-dialog{max-height:min(900px,calc(100dvh - 32px))!important;overflow:auto!important;overscroll-behavior:contain;scrollbar-gutter:stable;padding-right:22px!important}
.employee-mail-context{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px;padding:11px;border:1px solid var(--line,#cbdde6);border-radius:12px;background:var(--soft,#eef6fa)}
.employee-mail-context span{display:grid;gap:3px;min-width:0;color:var(--muted,#607582);font-size:12px}
.employee-mail-context strong{color:var(--text,#17384b);font-size:14px;overflow-wrap:anywhere}
.employee-mail-dialog .employee-mail-hint{margin:0;color:var(--muted,#607582);font-size:12px;line-height:1.45}
html[data-theme="dark"] .employee-mail-context{background:#1c3945;border-color:#587988}
html[data-theme="dark"] .employee-mail-context span,html[data-theme="dark"] .employee-mail-dialog .employee-mail-hint{color:#bfd3dc}
html[data-theme="dark"] .employee-mail-context strong{color:#f0f8fb}
@media(max-width:680px){
  .once-panel:not(.hidden){left:50%!important;right:auto!important;bottom:calc(env(safe-area-inset-bottom,0px) + 66px)!important;transform:translateX(-50%)!important;width:calc(100vw - 16px)!important;height:min(84dvh,820px)!important;min-height:min(440px,calc(100dvh - 96px))!important;max-height:calc(100dvh - env(safe-area-inset-top,0px) - env(safe-area-inset-bottom,0px) - 84px)!important;border-radius:18px!important}
  .once-panel:not(.hidden) .once-suggestions{max-height:min(28dvh,210px)!important}
  .once-panel:not(.hidden) .once-messages{min-height:90px!important}
  .employee-mail-dialog{width:calc(100vw - 24px)!important;max-height:calc(100dvh - 24px)!important;padding:16px!important}
  .employee-mail-dialog .tabletop{gap:8px}
  .employee-mail-context{grid-template-columns:minmax(0,1fr)}
  .employee-mail-dialog .dialog-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px}
  .employee-mail-dialog #saveEmployeeReceipt{grid-column:1/-1;grid-row:1}
  .employee-mail-dialog #cancelEmployeeMail{grid-column:1;grid-row:2}
  .employee-mail-dialog button[type="submit"]{grid-column:2;grid-row:2}
  .employee-mail-dialog .dialog-actions button{min-width:0;white-space:normal}
}
@media(max-width:380px){.once-panel:not(.hidden){width:calc(100vw - 10px)!important}.employee-mail-dialog .dialog-actions{grid-template-columns:minmax(0,1fr)}.employee-mail-dialog #saveEmployeeReceipt,.employee-mail-dialog #cancelEmployeeMail,.employee-mail-dialog button[type="submit"]{grid-column:1;grid-row:auto}}

/* v264 · recuperación de inicio con identidad OnceControl Panamá */
.loading.boot-timeout{display:flex;align-items:center;justify-content:center;min-height:calc(100vh - 240px);max-width:none;margin:0;padding:32px 20px;border:0;border-radius:0;background:var(--bg);color:var(--oc-ink);line-height:1.5;text-align:left}
.boot-recovery-card{width:min(100%,660px);overflow:hidden;border:1px solid var(--line);border-radius:24px;background:var(--white);box-shadow:0 22px 60px rgba(13,54,72,.14)}
.boot-recovery-brand{display:flex;align-items:center;gap:14px;padding:20px 26px;background:linear-gradient(120deg,#0b5471,#146b83);color:#fff}
.boot-recovery-brand .brand-mark{width:48px;height:48px;object-fit:contain;border-radius:12px;flex:0 0 auto}
.boot-recovery-brand .brand-mark-light{display:block}.boot-recovery-brand .brand-mark-dark{display:none}
.boot-recovery-brand span{display:flex;flex-direction:column;line-height:1.05}.boot-recovery-brand strong{font-size:20px;font-weight:750;letter-spacing:-.02em}.boot-recovery-brand small{margin-top:4px;font-size:15px;font-weight:400;opacity:.9}
.boot-recovery-content{padding:30px 30px 8px}.boot-recovery-label{display:inline-flex;align-items:center;padding:6px 10px;border-radius:999px;background:#e7f4f8;color:#075d7a;font-size:11px;font-weight:800;letter-spacing:.1em}
.boot-recovery-content h1{margin:15px 0 9px;color:var(--oc-ink);font-size:clamp(23px,3vw,30px);line-height:1.18;letter-spacing:-.025em}
.boot-recovery-content p{max-width:52ch;margin:0;color:var(--muted);font-size:16px;line-height:1.65}.boot-recovery-content .boot-recovery-note{margin-top:10px;font-size:14px}
.boot-recovery-actions{display:flex;justify-content:flex-start;padding:18px 30px 28px}.boot-recovery-actions .boot-retry-button{display:inline-flex;align-items:center;justify-content:center;gap:9px;min-height:48px;margin:0;padding:0 22px;border-radius:12px;font-size:15px;font-weight:750}.boot-retry-button>span:first-child{font-size:21px;line-height:1}.boot-retry-button:disabled{opacity:.8;cursor:wait}
.boot-retry-spinner{width:16px;height:16px;border:2px solid rgba(255,255,255,.45);border-top-color:#fff;border-radius:50%;animation:bootRetrySpin .75s linear infinite}@keyframes bootRetrySpin{to{transform:rotate(360deg)}}
html[data-theme="dark"] .loading.boot-timeout{background:#0d1b22}
html[data-theme="dark"] .boot-recovery-card{background:#142a34;border-color:#365664;box-shadow:0 24px 64px rgba(0,0,0,.34)}
html[data-theme="dark"] .boot-recovery-brand{background:linear-gradient(120deg,#0b5471,#104e63)}
html[data-theme="dark"] .boot-recovery-brand .brand-mark-light{display:none}html[data-theme="dark"] .boot-recovery-brand .brand-mark-dark{display:block}
html[data-theme="dark"] .boot-recovery-label{background:#21414e;color:#bcecff}
html[data-theme="dark"] .boot-recovery-content h1{color:#f1f7fa}html[data-theme="dark"] .boot-recovery-content p{color:#c0d2da}
@media(max-width:600px){.loading.boot-timeout{min-height:calc(100svh - 190px);padding:22px 16px}.boot-recovery-card{border-radius:20px}.boot-recovery-brand{padding:17px 19px}.boot-recovery-brand .brand-mark{width:42px;height:42px}.boot-recovery-content{padding:24px 20px 6px}.boot-recovery-content p{font-size:15px}.boot-recovery-actions{padding:16px 20px 22px}.boot-recovery-actions .boot-retry-button{width:100%}}

/* OCP v270 · comprobante: cabecera clara, contenido desplazable y acciones siempre visibles. */
#employeeMailDialog{place-items:center;overflow:hidden}
#employeeMailDialog .employee-mail-dialog{width:min(760px,calc(100vw - 40px))!important;height:min(860px,calc(100dvh - 40px))!important;max-height:calc(100dvh - 40px)!important;display:flex;flex-direction:column;overflow:hidden!important;padding:0!important;gap:0!important;border-radius:22px!important}
.employee-mail-header{position:relative;display:flex;align-items:center;justify-content:space-between;gap:20px;flex:0 0 auto;padding:22px 26px 18px;border-bottom:1px solid var(--line,#cbdde6);background:var(--soft,#f1f7fa)}
.employee-mail-header>div{min-width:0}.employee-mail-header .eyebrow{display:block;margin-bottom:6px;color:var(--accent,#0b6683);font-size:11px;font-weight:800;letter-spacing:.12em}.employee-mail-header h2{margin:0 0 5px;font-size:clamp(19px,2.2vw,25px);line-height:1.2;overflow-wrap:anywhere}.employee-mail-header .note{margin:0;color:var(--muted,#607582);font-size:14px;line-height:1.4}
.employee-mail-close,.employee-mail-close:hover{position:relative!important;inset:auto!important;display:grid!important;place-items:center;flex:0 0 44px!important;width:44px!important;height:44px!important;margin:0!important;border:1px solid #ef8791!important;border-radius:14px!important;background:#ffbdc3!important;color:#70252d!important;font-size:25px!important;font-weight:800;box-shadow:none!important}
.employee-mail-scroll{min-height:0;flex:1 1 auto;overflow:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch;scrollbar-gutter:stable;padding:20px 26px 22px}
.employee-mail-context{margin-bottom:17px;padding:14px 16px;grid-template-columns:minmax(0,1.5fr) minmax(0,1fr);gap:14px}.employee-mail-context span{gap:5px}.employee-mail-context span small{color:var(--muted,#607582);font-size:12px}.employee-mail-context strong{font-size:15px;line-height:1.35}
.employee-mail-field{display:grid;gap:7px;margin:0 0 15px}.employee-mail-field label,.employee-mail-label-row label{margin:0;font-size:14px}.employee-mail-field label span{font-weight:500;color:var(--muted,#607582)}.employee-mail-dialog input,.employee-mail-dialog textarea{min-width:0;min-height:46px;padding:11px 13px}.employee-mail-dialog input:focus,.employee-mail-dialog textarea:focus{outline:3px solid #8ac6e2;outline-offset:1px}.employee-mail-label-row{display:flex;align-items:baseline;justify-content:space-between;gap:12px}.employee-mail-label-row small{color:var(--muted,#607582);font-size:12px;text-align:right}.employee-mail-dialog textarea{min-height:180px;line-height:1.5;resize:vertical}
.employee-mail-actions{position:relative;flex:0 0 auto;display:grid;grid-template-columns:minmax(110px,.8fr) minmax(190px,1.15fr) minmax(145px,1fr);gap:10px;margin:0;padding:14px 26px max(16px,env(safe-area-inset-bottom));border-top:1px solid var(--line,#cbdde6);background:var(--white,#fff)}.employee-mail-actions button{min-width:0;min-height:46px;padding:10px 14px;white-space:normal;line-height:1.25}.employee-mail-actions button[type=submit]{font-weight:800}
html[data-theme="dark"] .employee-mail-header{background:#1c3945;border-color:#456370}html[data-theme="dark"] .employee-mail-header h2{color:#f1f8fb}html[data-theme="dark"] .employee-mail-header .note{color:#c2d5dd}html[data-theme="dark"] .employee-mail-header .eyebrow{color:#9bdcf2}html[data-theme="dark"] .employee-mail-context span small{color:#bfd3dc}html[data-theme="dark"] .employee-mail-label-row small{color:#bfd3dc}html[data-theme="dark"] .employee-mail-actions{background:#182832;border-color:#456370}html[data-theme="dark"] .employee-mail-close{background:#ffbdc3!important;color:#70252d!important}
@media(max-width:650px){#employeeMailDialog{place-items:center;padding:max(10px,env(safe-area-inset-top)) max(10px,env(safe-area-inset-right)) max(10px,env(safe-area-inset-bottom)) max(10px,env(safe-area-inset-left))!important}#employeeMailDialog .employee-mail-dialog{width:100%!important;height:min(900px,calc(100dvh - max(20px,env(safe-area-inset-top)) - max(20px,env(safe-area-inset-bottom))))!important;max-height:calc(100dvh - max(20px,env(safe-area-inset-top)) - max(20px,env(safe-area-inset-bottom)))!important;border-radius:19px!important}.employee-mail-header{padding:17px 17px 15px;gap:10px}.employee-mail-header h2{font-size:20px}.employee-mail-header .note{font-size:13px}.employee-mail-close,.employee-mail-close:hover{flex-basis:40px!important;width:40px!important;height:40px!important;border-radius:13px!important}.employee-mail-scroll{padding:15px 17px 18px}.employee-mail-context{grid-template-columns:minmax(0,1fr);gap:9px;padding:12px 14px}.employee-mail-field{margin-bottom:13px}.employee-mail-label-row{align-items:flex-start;flex-direction:column;gap:3px}.employee-mail-label-row small{text-align:left}.employee-mail-dialog textarea{min-height:150px}.employee-mail-actions{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:8px;padding:11px 15px max(12px,env(safe-area-inset-bottom))}.employee-mail-actions #saveEmployeeReceipt{grid-column:1/-1;grid-row:1}.employee-mail-actions #cancelEmployeeMail{grid-column:1;grid-row:2}.employee-mail-actions button[type=submit]{grid-column:2;grid-row:2}.employee-mail-actions button{min-height:44px;padding:9px 10px;font-size:14px}}
@media(max-width:360px){.employee-mail-header{padding-inline:13px}.employee-mail-scroll{padding-inline:13px}.employee-mail-actions{padding-inline:12px}.employee-mail-actions button{font-size:13px}}

/* OCP v271 · contraste explícito del título en la cabecera del comprobante. */
.employee-mail-header{color:#17384b!important}
.employee-mail-header h2{color:#17384b!important}
html[data-theme="dark"] .employee-mail-header{color:#e3edf2!important}
html[data-theme="dark"] .employee-mail-header h2{color:#f1f8fb!important}

/* OCP v272 · estado visible mientras el comprobante se envía desde la plataforma. */
.employee-mail-hint[data-state="sending"]{color:#145b78;font-weight:700}
.employee-mail-hint[data-state="success"]{color:#167246;font-weight:700}
.employee-mail-hint[data-state="error"]{color:#9c3434;font-weight:700}
html[data-theme="dark"] .employee-mail-hint[data-state="sending"]{color:#a8e0f4}
html[data-theme="dark"] .employee-mail-hint[data-state="success"]{color:#a8edc5}
html[data-theme="dark"] .employee-mail-hint[data-state="error"]{color:#ffc1c1}

/* v279 · XI: identidad actual en una sola pastilla, con contraste por tema. */
.floating-support-tools #onceLauncher,
html[data-theme="dark"] .floating-support-tools #onceLauncher{
  display:flex!important;align-items:center!important;justify-content:center!important;
  width:104px!important;min-width:104px!important;height:46px!important;min-height:46px!important;
  padding:5px 26px!important;gap:0!important;border:0!important;border-radius:999px!important;
  background:#0b5471!important;color:#fff!important;box-shadow:none!important;filter:none!important;
}
html[data-theme="dark"] .floating-support-tools #onceLauncher{background:#fff!important;color:#0b5471!important}
.floating-support-tools #onceLauncher span,
html[data-theme="dark"] .floating-support-tools #onceLauncher span{display:none!important}
.floating-support-tools #onceLauncher span::before,
.floating-support-tools #onceLauncher span::after{content:none!important}
.floating-support-tools #onceLauncher img.once-icon-light,
.floating-support-tools #onceLauncher img.once-icon-dark{
  width:36px!important;height:36px!important;min-width:36px!important;
  object-fit:contain!important;border:0!important;border-radius:0!important;
  padding:0!important;background:transparent!important;box-shadow:none!important;
}
html:not([data-theme="dark"]) .floating-support-tools #onceLauncher img.once-icon-light{display:block!important}
html:not([data-theme="dark"]) .floating-support-tools #onceLauncher img.once-icon-dark{display:none!important}
html[data-theme="dark"] .floating-support-tools #onceLauncher img.once-icon-light{display:none!important}
html[data-theme="dark"] .floating-support-tools #onceLauncher img.once-icon-dark{display:block!important}
.floating-support-tools #onceLauncher:focus-visible{outline:3px solid #85b7d6!important;outline-offset:3px!important}

/* v280 · Cada botón ocupa su ancho real, con separación simétrica. */
.floating-support-tools{
  grid-template-columns:44px 104px 44px!important;
  grid-template-rows:48px!important;
  column-gap:14px!important;gap:14px!important;
  align-items:center!important;justify-items:center!important;
  width:max-content!important;max-width:calc(100vw - 24px)!important;
}
.floating-support-tools::before{display:none!important}
.floating-support-tools #internalMailButton,
.floating-support-tools #supportTicketLauncher{
  width:44px!important;height:44px!important;
  min-width:44px!important;min-height:44px!important;
  margin:0!important;padding:0!important;transform:none!important;
}

/* v282 · Marcos moderados y una jerarquía clara en el cierre de planilla. */
html{
  --oc-radius-panel:12px;
  --oc-radius-card:9px;
  --oc-radius-control:7px;
}
html body :is(.panel,.toolbar,.tools-card,.owner-card,.owner-hero,.boot-recovery-card,
  .performance-panel,.payroll-overview,.employee-list-panel,.subscription-plan,
  .subscription-dialog,.dialog-card,.report-preview-panel,.once-panel,
  .onc-mail-panel,.employee-floating-open,.employee-mail-dialog){
  border-radius:var(--oc-radius-panel)!important;
}
html body :is(.stat,.paybox,.emp,.payroll-total-card,.performance-metric,
  .reminder-form,.reminder-item,.note-composer,.private-note,.notes-empty,
  .support-ticket-card,.support-user-ticket,.support-ticket-response,
  .attendance-day-roster,.attendance-roster-row,.shift-item,.shift-form,
  .company-dialog-scroll,.toolbar-menu-panel,.manager-credential-result,
  .onceplus-benefit,.onceplus-welcome-offer,.employee-mail-context,
  .tablewrap,.notification-item,.owner-account-card){
  border-radius:var(--oc-radius-card)!important;
}
html body :is(.emp-payroll-pill,.emp-benefit-pill,.emp-tips-pill,.employee-update-pill,
  .period-pill,.rolebadge,.syncstate,.period-count,.support-ticket-status,
  .plan-tag,.notice,.once-message,.once-suggestion,.calendar-day,.attendance-day-button){
  border-radius:var(--oc-radius-control)!important;
}
html body button:not(#onceLauncher):not(#internalMailButton):not(#supportTicketLauncher):not(#themeToggle):not(#brandRefresh),
html body input:not([type=checkbox]):not([type=radio]):not([type=range]):not([type=color]),
html body select,html body textarea,html body .filebtn{
  border-radius:var(--oc-radius-control)!important;
}
html body input[type=file]::file-selector-button{border-radius:var(--oc-radius-control)!important}

html body .payroll-total-grid{gap:12px;align-items:stretch}
html body .payroll-total-card{min-width:0;padding:18px;row-gap:10px}
html body .payroll-total-card>small{font-size:13px;line-height:1.45;font-weight:650}
html body .payroll-total-card .payroll-fortnight-detail{font-size:13px;line-height:1.45}
html body .payroll-total-card.payroll-total-grand{
  display:grid!important;grid-template-columns:minmax(0,1fr)!important;
  grid-template-rows:auto auto auto!important;align-content:center!important;
  align-items:start!important;justify-items:start!important;
  min-height:160px;padding:22px!important;gap:9px!important;
  color:#fff!important;box-shadow:0 3px 9px #0b54711a!important;
}
html body .payroll-total-card.payroll-total-grand>small{
  grid-column:1!important;grid-row:1!important;margin:0!important;
  width:100%;color:#fff!important;font-size:14px!important;line-height:1.4!important;
  font-weight:700!important;overflow-wrap:anywhere;
}
html body .payroll-total-card.payroll-total-grand>strong{
  grid-column:1!important;grid-row:2!important;margin:0!important;
  max-width:100%;color:#fff!important;font-size:clamp(28px,3vw,38px)!important;
  line-height:1.2!important;text-align:left!important;font-variant-numeric:tabular-nums;
  overflow-wrap:anywhere;word-break:normal;
}
html body .payroll-total-card.payroll-total-grand>.payroll-total-caption{
  grid-column:1!important;grid-row:3!important;margin:0!important;
  color:#e6f6fc!important;font-size:13px!important;line-height:1.5!important;
  opacity:1!important;overflow-wrap:anywhere;
}
html body .payroll-total-deductions>small{font-size:14px;line-height:1.45}
html body .payroll-total-deductions>strong{font-size:clamp(26px,3vw,34px);line-height:1.2}
html body .payroll-total-breakdown{gap:9px;min-width:0}
html body .payroll-total-breakdown>span{
  min-width:0;padding:10px 12px;font-size:13px;line-height:1.4;
  align-items:center;flex-wrap:wrap;border-radius:var(--oc-radius-control)!important;
}
@media(max-width:760px){
  html body .payroll-total-grid{grid-template-columns:minmax(0,1fr)!important}
  html body .payroll-total-card{padding:15px;min-height:0}
  html body .payroll-total-card.payroll-total-grand{min-height:145px;padding:18px!important}
  html body .payroll-total-deductions{
    grid-template-columns:minmax(0,1fr)!important;gap:12px;
  }
  html body .payroll-total-deductions>small{grid-column:1;grid-row:1}
  html body .payroll-total-deductions>strong{grid-column:1;grid-row:2;text-align:left}
  html body .payroll-total-deductions>.payroll-total-breakdown{grid-column:1;grid-row:3;margin:0}
}
@media(max-width:540px){
  html body .payroll-total-breakdown{grid-template-columns:minmax(0,1fr)}
}

/* v283 · Texto oscuro sobre el neto menta en los dos temas. */
html body .employee-quick-summary .employee-quick-total{
  background:#d9f2e9!important;border-color:#8fcbb8!important;color:#174f43!important;
}
html body .employee-quick-summary .employee-quick-total :is(small,b,strong,span){
  color:#174f43!important;-webkit-text-fill-color:#174f43!important;opacity:1!important;
}
html body .employee-quick-summary .employee-quick-total>small{
  font-size:12px!important;font-weight:650!important;line-height:1.4!important;
}

/* Cierre, salida y eliminación mantienen el mismo rojo pastel en ambos temas. */
html body button:is(.danger,.note-delete,.once-shortcut-remove,.toolbar-menu-close,
  .once-close,.subscription-close,.employee-mail-close,.onc-mail-close,
  #logoutBtn,#clearReminderDay,#onceClearRequests,#ownerRevokeButton,
  [id*="close" i],[id*="cancel" i],[id*="delete" i],[id*="remove" i],[id*="revoke" i],
  [aria-label*="cerrar" i],[aria-label*="salir" i],[aria-label*="eliminar" i],[aria-label*="quitar" i],
  [title*="cerrar" i],[title*="salir" i],[title*="eliminar" i],[title*="quitar" i],
  [data-mail-action="close"],[data-mail-action="trash"],[data-mail-action="delete"],
  [data-once-action="clear-shortcuts"],[data-once-action="cancel-shortcut"]):not(.ocp-preserve-action){
  background:#ffb8bf!important;background-image:none!important;
  border:1px solid #e87987!important;color:#64232b!important;
  -webkit-text-fill-color:#64232b!important;font-weight:700!important;
  box-shadow:none!important;
}
html body button:is(.danger,.note-delete,.once-shortcut-remove,.toolbar-menu-close,
  .once-close,.subscription-close,.employee-mail-close,.onc-mail-close,
  #logoutBtn,#clearReminderDay,#onceClearRequests,#ownerRevokeButton,
  [id*="close" i],[id*="cancel" i],[id*="delete" i],[id*="remove" i],[id*="revoke" i],
  [aria-label*="cerrar" i],[aria-label*="salir" i],[aria-label*="eliminar" i],[aria-label*="quitar" i],
  [title*="cerrar" i],[title*="salir" i],[title*="eliminar" i],[title*="quitar" i],
  [data-mail-action="close"],[data-mail-action="trash"],[data-mail-action="delete"],
  [data-once-action="clear-shortcuts"],[data-once-action="cancel-shortcut"]):not(.ocp-preserve-action):hover{
  background:#ffa6b1!important;color:#551820!important;-webkit-text-fill-color:#551820!important;
}
html body button:is(.danger,.note-delete,.once-shortcut-remove,.toolbar-menu-close,
  .once-close,.subscription-close,.employee-mail-close,.onc-mail-close,
  #logoutBtn,#clearReminderDay,#onceClearRequests,#ownerRevokeButton,
  [id*="close" i],[id*="cancel" i],[id*="delete" i],[id*="remove" i],[id*="revoke" i],
  [aria-label*="cerrar" i],[aria-label*="salir" i],[aria-label*="eliminar" i],[aria-label*="quitar" i],
  [title*="cerrar" i],[title*="salir" i],[title*="eliminar" i],[title*="quitar" i],
  [data-mail-action="close"],[data-mail-action="trash"],[data-mail-action="delete"],
  [data-once-action="clear-shortcuts"],[data-once-action="cancel-shortcut"]):not(.ocp-preserve-action):focus-visible{
  outline:3px solid #f08292!important;outline-offset:3px!important;
}
@media(max-width:680px){
  .floating-support-tools{
    grid-template-columns:44px 104px 44px!important;
    column-gap:12px!important;gap:12px!important;
  }
}
