:root{--ink:#162033;--muted:#687386;--line:#e2e7ef;--primary:#315ee7;--surface:#fff;--bg:#f4f6fa;--danger:#c43d45;--success:#16804a;--shadow:0 8px 30px rgba(32,47,80,.07);--radius:14px}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);font:15px/1.5 Inter,system-ui,-apple-system,"Segoe UI",sans-serif}a{color:#2857ad;text-decoration:none}.topbar{position:sticky;top:0;z-index:20;border-bottom:1px solid var(--line);background:rgba(255,255,255,.97)}.topbar-inner{width:min(1240px,calc(100% - 40px));min-height:72px;margin:auto;display:flex;align-items:center;gap:24px}.brand{min-width:220px;display:flex;align-items:center;gap:10px;color:var(--ink)}.brand span{width:38px;height:38px;display:grid;place-items:center;border-radius:11px;background:linear-gradient(135deg,var(--primary),#6f8df2);color:#fff;font-weight:800}.brand img{max-width:48px;height:40px;object-fit:contain}nav{display:flex;gap:5px}nav a{padding:9px 13px;border-radius:9px;color:#536078;font-weight:650}nav a:hover,nav a.active{background:#edf2ff;color:#2348bd}.top-actions{margin-left:auto;display:flex;gap:8px}.top-actions .button{margin:0}main{width:min(1240px,calc(100% - 40px));margin:34px auto 60px}h1,h2,h3{line-height:1.2;letter-spacing:-.02em}h1{margin:5px 0 8px;font-size:clamp(28px,3vw,38px)}h2{margin:0 0 17px;font-size:19px}p{color:var(--muted)}.eyebrow{margin:0!important;color:var(--primary)!important;font-size:11px;font-weight:800;letter-spacing:.13em}.hero,.profile,.panel-head{display:flex;justify-content:space-between;align-items:center;gap:18px;margin-bottom:24px}.hero p,.profile p{margin:0}.report-links,.filters{display:flex;align-items:end;gap:8px;flex-wrap:wrap}.report-links form{margin:0}.button,button{display:inline-flex;justify-content:center;align-items:center;min-height:40px;padding:9px 15px;border:1px solid #d7deea;border-radius:10px;background:#fff;color:var(--ink);font:inherit;font-weight:700;cursor:pointer}.button.primary,button.primary{border-color:var(--primary);background:var(--primary);color:#fff}.button.danger{color:var(--danger)}.panel,.stat{border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);box-shadow:var(--shadow)}.panel{padding:22px;margin-bottom:20px}.narrow{max-width:760px;margin:auto}.login{max-width:440px;margin:10vh auto}.install{margin-top:5vh}.stack{display:grid;gap:15px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px}.full{grid-column:1/-1}label{color:#39445a;font-weight:700}label>input,label>select,label>textarea{display:block;margin-top:6px;font-weight:400}input,select,textarea{width:100%;padding:10px 11px;border:1px solid #ccd5e2;border-radius:9px;background:#fff;color:var(--ink);font:inherit}textarea{resize:vertical}.flash{margin-bottom:16px;padding:13px 16px;border:1px solid #bfe5ce;border-radius:10px;background:#ebf9f1;color:#12663d}.flash.error{border-color:#f2cac7;background:#fff0ef;color:#9d3434}.cards{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin-bottom:20px}.cards.four{grid-template-columns:repeat(4,1fr)}.dashboard-stats{max-width:830px;grid-template-columns:repeat(2,1fr);gap:14px}.dashboard-stats .stat{min-height:124px;padding:24px 20px}.stat{padding:18px;border-top:4px solid #8490a5}.stat.blue{border-top-color:var(--primary)}.stat.worked{border-top-color:#20a66a}.stat.remaining{border-top-color:#875bd8}.stat small{display:block;color:var(--muted);font-weight:650}.stat strong{display:block;margin-top:4px;font-size:29px}.table-wrap,.planning-wrap{overflow:auto}table{width:100%;border-collapse:collapse}th{color:var(--muted);font-size:11px;text-align:left;text-transform:uppercase}td,th{padding:12px 10px;border-top:1px solid var(--line)}.employee-list-panel{padding:22px 26px}.employee-list-panel .panel-head{margin-bottom:16px}.employee-list-panel .panel-head h2{margin:0}.employee-list-panel .filters select{width:auto;min-width:150px}.employee-list-panel .filters .year-filter{width:115px}.employee-table td{height:68px}.employee-table tbody tr:hover{background:#fafbfe}.person{display:flex;align-items:center;gap:11px;color:var(--ink)}.avatar{width:38px;height:38px;flex:none;display:inline-grid;place-items:center;border-radius:50%;background:#e8efff;color:#2857ad;font-weight:800}.avatar.large{width:58px;height:58px;font-size:18px}.company-tag,.status{display:inline-block;padding:5px 9px;border-radius:20px;background:#edf1f7;font-size:12px}.status.on{background:#e8f7ef;color:var(--success)}.status.off{background:#fbeaec;color:#9b3740}.profile-person{display:flex;align-items:center;gap:14px}.profile-person h1{font-size:30px}.two-col{display:grid;grid-template-columns:minmax(0,2fr) minmax(290px,1fr);gap:20px}.weekdays,.calendar{display:grid;grid-template-columns:repeat(7,1fr);gap:6px}.weekdays span{padding:8px;color:var(--muted);font-size:12px;text-align:center}.day{min-height:78px;padding:8px;display:flex;flex-direction:column;justify-content:space-between;border-radius:9px}.day.blank{background:transparent}.day small{font-size:10px}.pre{white-space:pre-wrap}.vacaciones{background:#dfe9ff!important;color:#194fae}.fin_de_semana{background:#eef1f5!important;color:#566174}.baja_con_justificante{background:#fff0cc!important;color:#845c00}.baja_sin_justificante{background:#ffd9b8!important;color:#8a3f00}.festivo_nacional,.festivo_local{background:#e5f6ec!important;color:#176a40}.festivo_autonomico{background:#d9f1f4!important;color:#136373}.otro{background:#efe7fa!important;color:#6c3a9a}.laboral{background:#fff!important}.legend{display:flex;gap:7px;flex-wrap:wrap;margin:12px 0 15px}.legend span{padding:5px 9px;border-radius:16px;font-size:11px;font-weight:650}.annual-calendar{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}.annual-calendar.compact{grid-template-columns:repeat(4,1fr);gap:8px}.year-month{margin:0;padding:12px}.year-month h2{text-align:center}.mini-week,.mini-days{display:grid;grid-template-columns:repeat(7,1fr);gap:3px}.mini-week span{color:var(--muted);font-size:9px;text-align:center}.mini-day{min-height:38px;padding:3px;border:1px solid var(--line);border-radius:4px;overflow:hidden}.mini-day b{font-size:9px}.mini-day small{display:block;font-size:7px}.annual-calendar.compact .year-month{padding:6px}.annual-calendar.compact .year-month h2{margin-bottom:4px;font-size:12px}.annual-calendar.compact .mini-week,.annual-calendar.compact .mini-days{gap:1px}.annual-calendar.compact .mini-day{min-height:19px;height:19px;padding:1px;display:grid;place-items:center}.annual-calendar.compact .mini-day small{display:none}.planning{white-space:nowrap;font-size:12px}.planning th:not(:first-child),.planning td:not(:first-child){min-width:29px;padding:8px 4px;text-align:center}.planning td:first-child{position:sticky;left:0;z-index:2;min-width:190px;background:#fff}.planning td:first-child small{display:block;color:var(--muted)}.department-group td{padding:5px 10px;border-left:5px solid var(--primary);background:#edf2ff;font-size:11px;font-weight:800}.planning-view.compact{padding:10px}.planning-view.compact .planning{font-size:9px}.planning-view.compact .planning th:not(:first-child),.planning-view.compact .planning td:not(:first-child){min-width:18px;padding:4px 1px}.planning-view.compact .planning td:first-child{min-width:140px;padding:5px}.planning-view.compact .planning td:first-child small{font-size:7px}.empty{padding:50px 20px;text-align:center;color:var(--muted)}.ranking-chart{display:grid;gap:6px}.ranking-row{display:grid;grid-template-columns:1fr 2fr 100px;align-items:center;gap:18px;padding:12px;border-top:1px solid var(--line)}.ranking-row>span small{display:block;color:var(--muted)}.ranking-track{height:14px;border-radius:20px;background:#edf1f7;overflow:hidden}.ranking-track i{display:block;height:100%;background:var(--primary)}.print-only{display:none}.back-link{display:inline-block;margin-bottom:14px}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
@media(max-width:800px){.topbar-inner{width:calc(100% - 22px);flex-wrap:wrap;padding:10px 0}.brand{min-width:auto}.brand strong{display:none}nav{order:3;width:100%;overflow:auto}.top-actions{margin-left:auto}.top-actions .primary{display:none}main{width:calc(100% - 24px);margin-top:24px}.hero,.profile,.panel-head,.filters{align-items:stretch;flex-direction:column}.profile-person{align-items:flex-start}.cards,.cards.four,.dashboard-stats,.two-col,.form-grid,.annual-calendar{grid-template-columns:1fr}.annual-calendar.compact{grid-template-columns:repeat(2,1fr)}.employee-list-panel .filters select,.employee-list-panel .filters .year-filter{width:100%}.full{grid-column:auto}}
@media print{@page{size:A4 landscape;margin:5mm}header,.no-print,.flash,.employee-sidebar{display:none!important}body,main{width:100%;max-width:none;margin:0;padding:0;background:#fff}.print-only{display:block}.print-title{margin-bottom:4px;font-size:13px;font-weight:800}.panel,.stat{box-shadow:none}.two-col{display:block}.two-col>section{width:100%}.profile{margin-bottom:6px}.cards.four{grid-template-columns:repeat(4,1fr);gap:5px}.cards.four .stat{padding:8px}.cards.four .stat strong{font-size:20px}.annual-calendar,.annual-calendar.compact{grid-template-columns:repeat(4,1fr);gap:3px}.year-month,.annual-calendar.compact .year-month{padding:3px;break-inside:avoid}.mini-day,.annual-calendar.compact .mini-day{min-height:19px;height:19px}.planning-wrap{overflow:visible}.planning-view{padding:3px}.planning{table-layout:fixed;font-size:6px}.planning td:first-child{position:static;min-width:0;width:28mm;padding:2px}.planning th:not(:first-child),.planning td:not(:first-child){min-width:0;width:auto;padding:2px 0}.department-group td{padding:2px 3px;font-size:6px}.legend{margin:3px 0;gap:3px}.legend span{padding:2px 4px;font-size:7px}}
.vacaciones_anterior{background:#dff3ff!important;color:#126487}.vacaciones_extra{background:#eadfff!important;color:#6536a3}.actions{display:flex;justify-content:flex-end;align-items:center;gap:20px}.year-selector{display:flex;align-items:center;gap:6px}.year-selector input{width:100px}.filter-row{display:flex;align-items:end;gap:10px}.filter-row>label{flex:1}.report-filter{display:grid;gap:18px}.month-filter{margin:0;padding:0;border:0}.month-filter legend{margin-bottom:8px;color:#39445a;font-weight:700}.month-options{display:grid;grid-template-columns:repeat(12,1fr);gap:6px}.month-options label{cursor:pointer}.month-options input{position:absolute;opacity:0;pointer-events:none}.month-options span{display:block;padding:8px 4px;border:1px solid var(--line);border-radius:8px;background:#fff;text-align:center;font-size:12px}.month-options input:checked+span{border-color:var(--primary);background:#edf2ff;color:#2348bd}.month-actions{margin-top:6px}.text-button{min-height:0;padding:2px 5px;border:0;color:var(--primary);background:transparent;font-size:13px}.warning{border-top-color:#e65d58}.clean-list{margin:0;padding:0;list-style:none}.clean-list li{padding:11px 0;display:flex;flex-direction:column;border-top:1px solid var(--line)}.clean-list span{color:var(--muted);font-size:13px}.bars{height:230px;display:flex;align-items:flex-end;gap:10px}.bar-item{height:100%;flex:1;display:flex;flex-direction:column;justify-content:flex-end;align-items:center}.bar-track{width:100%;height:170px;display:flex;align-items:flex-end;overflow:hidden;border-radius:6px;background:#f1f4f8}.bar-track i{width:100%;min-height:2px;background:var(--primary)}.monthly-chart{height:230px;display:grid;grid-template-columns:repeat(12,1fr);align-items:end;gap:8px;padding-top:15px;border-bottom:1px solid var(--line)}.monthly-chart-group{height:100%;display:grid;grid-template-rows:1fr auto;gap:5px;text-align:center}.monthly-bars{display:flex;align-items:end;justify-content:center;gap:2px}.monthly-bars i{width:27%;min-height:2px;border-radius:4px 4px 0 0}.chart-vacation{background:#315ee7}.chart-justified{background:#d29a22}.chart-unjustified{background:#e27729}.chart-legend{display:flex;flex-wrap:wrap;gap:14px;font-size:11px}.chart-legend span{display:inline-flex;align-items:center;gap:6px}.chart-legend span:before{content:"";width:10px;height:10px;border-radius:2px;background:currentColor}.department-legend{display:flex;flex-wrap:wrap;gap:7px;margin:12px 0}.department-legend span{padding:5px 10px;border-left:5px solid var(--primary);border-radius:6px;background:#edf2ff;font-size:12px;font-weight:700}.annual-report{display:grid;gap:20px}.annual-report-month{padding:14px}.report-day{min-height:70px;padding:3px;overflow:hidden;border:1px solid var(--line)}.report-day div{display:grid;gap:2px}.report-day small{padding:2px;overflow:hidden;border-radius:3px;font-size:7px;text-overflow:ellipsis;white-space:nowrap}
.annual-footer{margin-top:12px;display:grid;grid-template-columns:minmax(0,1fr) minmax(480px,1fr);align-items:stretch;gap:12px}.annual-observations{padding:12px 14px;border:1px solid var(--line);border-radius:9px;background:#fff}.annual-observations strong{font-size:12px}.annual-observations p{margin:4px 0 0;color:var(--muted);font-size:11px;white-space:pre-wrap}.annual-summary{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.annual-summary .stat{min-height:76px;padding:10px 12px}.annual-summary .stat strong{margin-top:5px;font-size:25px}@media(max-width:800px){.annual-footer{grid-template-columns:1fr}}@media print{.annual-footer{grid-template-columns:1fr 1fr;gap:4px}.annual-summary{grid-template-columns:repeat(2,1fr)}}
.day.selectable{width:100%;border:0;text-align:left;font-weight:400;transition:.15s ease}.day.selectable:hover{box-shadow:0 0 0 2px rgba(49,94,231,.3)}.day.selectable.selected{outline:3px solid var(--ink);outline-offset:-2px;box-shadow:0 4px 12px rgba(22,32,51,.2);transform:translateY(-1px)}.calendar-help{margin:12px 0 0;font-size:12px}.selected-days-note{padding:9px 10px;border-radius:8px;background:#edf2ff;color:#2348bd;font-size:12px}
.user-menu{display:flex;flex-direction:column;justify-content:center;min-width:115px;padding:4px 8px;color:var(--ink);line-height:1.2}.user-menu small{margin-top:3px;color:var(--muted);font-size:10px}.users-table td:first-child small{display:block;color:var(--muted)}.role-badge{display:inline-block;padding:5px 9px;border-radius:20px;background:#edf1f7;font-size:12px;font-weight:700}.role-badge.admin{background:#e7edff;color:#2348bd}.role-badge.manager{background:#e8f7ef;color:#16804a}.role-badge.viewer{background:#f1f3f6;color:#596579}.password-warning{color:#9a6200;font-weight:700}.field-help{display:block;margin-top:5px;color:var(--muted);font-weight:400}.check-label{display:flex;align-items:center;gap:8px}.check-label input{width:auto;margin:0}.role-cards .stat strong{font-size:20px}.role-cards .stat p{margin-bottom:0;font-size:12px}.role-viewer .employee-sidebar,.role-viewer .management-only{display:none}.role-viewer .day.selectable{pointer-events:none}.role-viewer .calendar-help{display:none}
.vacaciones_extra{background:#dfe9ff!important;color:#194fae}.role-badge.employee{background:#efe7fa;color:#6c3a9a}.monthly-breakdown td.nonzero{font-weight:800}.monthly-breakdown td.nonzero:after{content:"";display:block;width:var(--bar-width,100%);height:3px;margin-top:3px;border-radius:3px;background:currentColor;transition:width .2s ease}.monthly-breakdown td.metric-1{color:#16804a}.monthly-breakdown td.metric-2{color:#315ee7}.monthly-breakdown td.metric-3{color:#a06d00}.monthly-breakdown td.metric-4{color:#c35b16}.monthly-breakdown td.metric-5{color:#16804a}.monthly-breakdown td.metric-6{color:#6c3a9a}
.annual-footer.employee-access{grid-template-columns:1fr}.annual-footer.employee-access .annual-summary{grid-template-columns:repeat(4,1fr)}
.dashboard-stats{max-width:1000px;grid-template-columns:repeat(3,1fr)}.employee-list-panel .filters .employee-search{width:210px}.last-access{display:block;margin-top:6px;color:var(--muted);font-size:12px}.calendar-navigation,.month-selector{display:flex;align-items:center;gap:6px}.month-selector select{width:130px}.month-selector input{width:86px}.chart-legend{gap:8px}.chart-legend span{padding:7px 10px;border:1px solid;border-radius:8px;background:#fff!important;font-size:12px;font-weight:800}.chart-legend .chart-vacation{border-color:#9eb3f5;color:#244fc9}.chart-legend .chart-justified{border-color:#e7c66f;color:#8a6000}.chart-legend .chart-unjustified{border-color:#efad7d;color:#a84b10}.department-color-0{--dept:#315ee7;--dept-bg:#edf2ff}.department-color-1{--dept:#16804a;--dept-bg:#e8f7ef}.department-color-2{--dept:#875bd8;--dept-bg:#f1ebfc}.department-color-3{--dept:#d17a18;--dept-bg:#fff2df}.department-color-4{--dept:#13808d;--dept-bg:#e3f6f7}.department-color-5{--dept:#c04469;--dept-bg:#fdebf1}.department-color-6{--dept:#687386;--dept-bg:#eef1f5}.department-color-7{--dept:#8a6811;--dept-bg:#f9f1d8}.department-legend span[class*="department-color-"]{border-left-color:var(--dept);background:var(--dept-bg);color:var(--dept)}.department-group[class*="department-color-"] td{border-left-color:var(--dept);background:var(--dept-bg);color:var(--dept)}
@media(max-width:800px){.dashboard-stats{grid-template-columns:1fr}.calendar-navigation,.month-selector{align-items:stretch;flex-wrap:wrap}.month-selector select{width:140px}.employee-list-panel .filters .employee-search{width:100%}}
.en_revision{background:#fff0bd!important;color:#805800!important}.request_selected{background:#ffe0a3!important;color:#7a4100!important}.request-button{border-color:#e55b16!important;background:linear-gradient(135deg,#f47b20,#e45017)!important;color:#fff!important;box-shadow:0 7px 18px rgba(228,80,23,.22)}.request-button:hover{filter:brightness(.96)}.request-button:disabled{cursor:not-allowed;filter:grayscale(.6);opacity:.55;box-shadow:none}.request-calendar{grid-template-columns:repeat(3,1fr)}.request-calendar .mini-day{min-height:43px;text-align:left}.request-calendar button.mini-day{width:100%;font:inherit;display:block;border:1px solid var(--line);cursor:pointer}.request-calendar .request-day:hover{outline:2px solid #f47b20;outline-offset:-2px}.request-calendar .request-day.selected{outline:3px solid #e45017;outline-offset:-3px;background:#ffe0a3!important;color:#7a4100!important}.request-submit{position:sticky;bottom:12px;z-index:10;margin-top:18px;display:grid;grid-template-columns:1fr minmax(320px,1fr) auto;align-items:end;gap:20px;border-top:4px solid #f47b20}.request-submit h2{margin:4px 0}.request-submit p{margin:0}.request-submit textarea{min-height:88px}.request-status{display:inline-block;padding:6px 10px;border-radius:20px;font-size:12px;font-weight:800}.request-status.pending{background:#fff0bd;color:#805800}.request-status.approved{background:#dff5e9;color:#12663d}.request-status.rejected{background:#fde5e7;color:#9b3039}.request-status.large{padding:10px 16px;font-size:14px}.stat.review{border-top-color:#e7a418}.stat.rejected{border-top-color:#d14b55}.request-detail{display:grid;grid-template-columns:1fr 1fr 2fr;gap:20px}.request-detail small{display:block;color:var(--muted);font-weight:700}.request-detail strong{display:block;margin-top:4px;font-size:18px}.request-detail p{margin:4px 0;white-space:pre-wrap}.request-year-title{margin-top:30px}.request-decision{display:grid;grid-template-columns:1fr 1fr;gap:30px;margin-top:22px}.request-decision form{padding:4px 12px}.button.success{border-color:var(--success);background:var(--success);color:#fff}.request-notifications{margin-bottom:22px;padding:18px;border:1px solid #d7deea;border-radius:var(--radius);background:#fff;box-shadow:var(--shadow)}.notification-head{display:flex;align-items:center;justify-content:space-between;gap:12px}.notification-head h2{margin:3px 0 12px}.request-notification{margin-top:8px;padding:12px 14px;border-left:5px solid;border-radius:8px}.request-notification.approved{border-color:#20a66a;background:#eaf8f1}.request-notification.rejected{border-color:#d14b55;background:#fff0f1}.request-notification span{display:block;color:var(--muted);font-size:12px}.request-notification p{margin:7px 0 0;color:var(--ink)}table td>small{display:block;color:var(--muted)}
@media(max-width:900px){.request-calendar{grid-template-columns:repeat(2,1fr)}.request-submit{position:static;grid-template-columns:1fr}.request-detail,.request-decision{grid-template-columns:1fr}}
@media(max-width:600px){.request-calendar{grid-template-columns:1fr}.notification-head{align-items:flex-start;flex-direction:column}}
@media print{.request-submit,.request-decision,.request-notifications{display:none!important}.request-calendar{grid-template-columns:repeat(4,1fr)}}
.request-status.partial{background:#e9e1fb;color:#68409d}.stat.partial{border-top-color:#875bd8}.request-notification.partial{border-color:#875bd8;background:#f3effc}.partial-decision{margin-top:24px;border-top:4px solid #875bd8}.partial-decision-head,.partial-decision-footer{display:flex;justify-content:space-between;align-items:center;gap:20px}.partial-decision-head h2{margin:4px 0}.partial-decision-head p,.partial-decision-footer p{margin:0}.decision-date-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(145px,1fr));gap:9px;margin:20px 0}.decision-date{cursor:pointer}.decision-date input{position:absolute;opacity:0;pointer-events:none}.decision-date span{display:flex;justify-content:space-between;align-items:center;gap:8px;padding:11px 12px;border:2px solid var(--line);border-radius:9px;background:#fff}.decision-date small{color:#9b3039}.decision-date.accepted span{border-color:#20a66a;background:#eaf8f1}.decision-date.accepted small{color:#12663d}.decision-date.accepted small:before{content:"✓ "}.partial-decision-footer>div{min-width:210px}.partial-decision-footer>label{flex:1}.partial-decision-footer textarea{min-height:82px}.request-days{margin-top:20px}
@media(max-width:850px){.partial-decision-head,.partial-decision-footer{align-items:stretch;flex-direction:column}.partial-decision-footer>div,.partial-decision-footer>label{width:100%}}
@media print{.partial-decision{display:none!important}}
.mail-status{display:inline-block;padding:5px 9px;border-radius:20px;font-size:12px;font-weight:800}.mail-status.pending{background:#fff0bd;color:#805800}.mail-status.sending{background:#e7edff;color:#2348bd}.mail-status.sent{background:#dff5e9;color:#12663d}.mail-status.failed{background:#fde5e7;color:#9b3039}
.sortable{display:inline-flex;align-items:center;gap:5px;color:var(--muted);white-space:nowrap}.sortable:hover{color:var(--primary)}.muted{color:var(--muted);font-size:12px}.users-table .report-links{min-width:330px}
.pagination{display:flex;justify-content:center;gap:6px;margin-top:18px;overflow-x:auto}.pagination a{min-width:38px;padding:8px 11px;border:1px solid var(--line);border-radius:8px;background:#fff;text-align:center;font-weight:700}.pagination a.active{border-color:var(--primary);background:var(--primary);color:#fff}.chart-scroll{max-width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}
@media(max-width:800px){
body{overflow-x:hidden;font-size:14px}.topbar-inner{gap:10px}.brand{max-width:150px}.brand strong{display:block;max-width:100px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.top-actions{gap:4px}.top-actions .user-menu{min-width:0;max-width:105px;padding:4px}.top-actions .user-menu b{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.top-actions .user-menu small{display:none}.top-actions>.button{padding:8px 10px}nav{padding-bottom:2px;scrollbar-width:thin;white-space:nowrap}nav a{flex:none;padding:8px 10px}
main{width:calc(100% - 20px);margin:18px auto 40px}h1{font-size:28px}.panel{max-width:100%;padding:15px;border-radius:11px}.stat{padding:14px}.stat strong{font-size:25px}.hero,.profile,.panel-head{gap:12px;margin-bottom:18px}.report-links{width:100%;display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}.report-links>*{width:100%;min-width:0}.report-links form{display:block}.report-links .button,.report-links button{width:100%;padding:8px}
.filters,.filter-row{width:100%;display:grid;grid-template-columns:1fr;gap:10px}.filters>*,.filter-row>*,.report-filter>*,.year-selector>*{min-width:0;max-width:100%}.filters button,.filter-row button,.report-filter>button{width:100%}.actions{align-items:stretch;flex-direction:column-reverse;gap:10px}.actions>*{width:100%;text-align:center}.form-grid{gap:14px}.form-grid label,.stack label{min-width:0}input,select,textarea{max-width:100%;font-size:16px}
.employee-list-panel{padding:14px 0}.employee-list-panel>.panel-head{padding:0 14px}.table-wrap,.planning-wrap{width:100%;max-width:100%;overflow-x:auto;overscroll-behavior-inline:contain;-webkit-overflow-scrolling:touch;border-bottom:1px solid var(--line)}.table-wrap>table{min-width:680px}.table-wrap>.employee-table{min-width:820px}.table-wrap>.users-table{min-width:1080px}.table-wrap>.activity-table{min-width:620px}td,th{padding:10px 8px}.users-table .report-links{display:flex;width:auto;min-width:330px}.planning-wrap{position:relative}.planning td:first-child{min-width:145px}.planning th:not(:first-child),.planning td:not(:first-child){min-width:27px}
.calendar-heading{align-items:stretch}.calendar-navigation,.month-selector{width:100%}.month-selector{display:grid;grid-template-columns:minmax(105px,1fr) 82px auto}.month-selector select,.month-selector input{width:100%}.calendar-navigation>.button{flex:1}.weekdays,.calendar{gap:3px}.weekdays span{padding:5px}.day{min-height:62px;padding:5px;overflow:hidden}.day b{font-size:12px}.day small{font-size:8px;line-height:1.1;overflow-wrap:anywhere}.annual-calendar.compact{grid-template-columns:repeat(2,minmax(0,1fr))}.year-month{min-width:0}.mini-days,.mini-week{gap:2px}.mini-day{min-width:0}.annual-summary{grid-template-columns:repeat(2,minmax(0,1fr))}.annual-summary .stat{min-width:0}.annual-summary .stat small{font-size:10px}
.month-options{grid-template-columns:repeat(4,1fr)}.legend,.department-legend{overflow-x:auto;flex-wrap:nowrap;padding-bottom:5px}.legend span,.department-legend span{flex:none}.chart-scroll{margin:0 -4px;padding-bottom:6px}.chart-scroll .bars,.chart-scroll .monthly-chart{min-width:680px}.ranking-row{grid-template-columns:1fr;gap:8px}.request-detail,.request-decision,.partial-decision-footer{min-width:0}.request-submit textarea{width:100%}.request-calendar .mini-day{min-height:40px}.notification-head{align-items:stretch;flex-direction:column}
}
@media(max-width:520px){
.brand strong{display:none}.top-actions .user-menu{max-width:80px}.top-actions>.button{font-size:12px}.report-links{grid-template-columns:1fr}.cards,.cards.four,.dashboard-stats{gap:9px}.annual-calendar.compact{grid-template-columns:1fr}.annual-summary{grid-template-columns:1fr}.calendar .day{min-height:50px}.calendar .day small{display:none}.weekdays span{font-size:10px}.month-options{grid-template-columns:repeat(3,1fr)}.decision-date-grid{grid-template-columns:1fr}.pagination{justify-content:flex-start}.pagination a{flex:none}.request-calendar{grid-template-columns:1fr}.report-day{min-height:48px}.annual-report-month{padding:9px}
}
.forgot-link{text-align:center;font-weight:700}.password-note{padding:12px 14px;border-radius:9px;background:#edf2ff;color:#2348bd;font-size:13px}.password-success{text-align:center}.password-success .button{margin-top:8px}
/* Control Laboral: ajustes específicos sobre la identidad visual heredada de Gestor de Vacaciones v2.5.0 */
.role-employee .brand span,.role-manager .brand span,.role-admin .brand span{font-size:12px;letter-spacing:-.03em}

.company-checks{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-top:8px}.company-checks .check-label{padding:9px 10px;border:1px solid var(--line);border-radius:8px;background:#fff}@media(max-width:700px){.company-checks{grid-template-columns:1fr}}

/* v0.3.0 - navegación compacta con submenús */
.main-nav{display:flex;align-items:center;gap:4px;min-width:0}.nav-group{position:relative}.nav-group>summary{list-style:none;cursor:pointer;padding:9px 12px;border-radius:9px;color:#536078;font-weight:650;white-space:nowrap}.nav-group>summary::-webkit-details-marker{display:none}.nav-group>summary:hover,.nav-group>summary.active{background:#edf2ff;color:#2348bd}.nav-caret{margin-left:6px;font-size:10px}.nav-submenu{position:absolute;top:calc(100% + 8px);left:0;z-index:60;display:grid;min-width:205px;padding:7px;border:1px solid var(--line);border-radius:12px;background:#fff;box-shadow:0 16px 40px rgba(32,47,80,.16)}.nav-submenu a{display:block;padding:9px 11px}.nav-toggle{display:none;min-height:38px;padding:7px 10px}.schedule-days{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.calendar-day-form label{min-width:170px}.calendar-day-form button{align-self:end}
@media(max-width:1050px){.topbar-inner{flex-wrap:wrap;padding:10px 0}.nav-toggle{display:inline-flex;margin-left:auto}.main-nav{display:none;order:4;width:100%;flex-direction:column;align-items:stretch;border-top:1px solid var(--line);padding-top:8px}.nav-open .main-nav{display:flex}.main-nav>a,.nav-group>summary{width:100%}.nav-group{width:100%}.nav-submenu{position:static;margin:5px 0 3px;box-shadow:none;border-radius:9px;background:#f8faff}.top-actions{margin-left:0}.brand{min-width:0}.schedule-days{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:600px){.schedule-days{grid-template-columns:1fr}.calendar-day-form{display:grid;grid-template-columns:1fr}.calendar-day-form label{min-width:0}}

/* v0.4.0 - motor de fichaje */
.my-day-wrap{max-width:860px;margin:0 auto}.my-day-heading{margin-bottom:18px}.my-day-heading h1{margin:2px 0 6px}.punch-card{padding:26px;border:1px solid var(--line);border-radius:18px;background:#fff;box-shadow:var(--shadow);border-top:5px solid #9aa7bd}.punch-card.state-working{border-top-color:#20a66a}.punch-card.state-break{border-top-color:#e0a21a}.punch-card.state-closed{border-top-color:#4e6fd5}.punch-status{text-align:center;margin-bottom:22px}.punch-status small{display:block;color:var(--muted);font-weight:700;text-transform:uppercase;letter-spacing:.08em}.punch-status strong{display:block;margin-top:6px;font-size:30px;letter-spacing:.02em}.state-working .punch-status strong{color:#137a49}.state-break .punch-status strong{color:#9a6a00}.state-closed .punch-status strong{color:#3156bd}.punch-metrics{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px;margin-bottom:22px}.punch-metrics>div,.day-result>div{padding:12px;border:1px solid var(--line);border-radius:11px;background:#f8faff;text-align:center}.punch-metrics small,.day-result small{display:block;color:var(--muted);font-size:11px;margin-bottom:5px}.punch-metrics b{font-size:17px}.punch-actions{display:grid;grid-template-columns:1fr 1fr auto;gap:12px;align-items:end}.punch-actions.two{grid-template-columns:1fr 1fr}.punch-actions form{margin:0}.punch-actions .button{width:100%;min-height:48px}.punch-primary{font-size:16px}.punch-break{background:#fff7dc;border-color:#e8c75f;color:#7d5c00}.timeline{display:grid;gap:8px;margin-top:12px}.timeline-row{display:grid;grid-template-columns:90px 1fr;gap:14px;padding:10px 12px;border-left:4px solid #6c86d8;background:#f8faff;border-radius:7px}.timeline-row span{font-variant-numeric:tabular-nums;color:var(--muted)}.day-result{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin-top:18px}.day-result strong{font-size:21px}.employee-access-note{margin-top:10px}
@media(max-width:760px){.punch-card{padding:18px}.punch-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}.punch-actions,.punch-actions.two{grid-template-columns:1fr}.day-result{grid-template-columns:repeat(2,minmax(0,1fr))}.punch-status strong{font-size:26px}}
@media(max-width:420px){.punch-metrics,.day-result{grid-template-columns:1fr}.timeline-row{grid-template-columns:74px 1fr}}


/* v0.5.0 - histórico y resumen personal */
.hero.compact{align-items:flex-end}.hero-actions{display:flex;gap:8px;flex-wrap:wrap}.my-entry-filters{grid-template-columns:minmax(180px,1fr) 130px auto;align-items:end}.summary-cards{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin:16px 0 20px}.summary-card{padding:17px;border:1px solid var(--line);border-radius:12px;background:#fff;box-shadow:var(--shadow)}.summary-card small{display:block;color:var(--muted);font-size:11px;text-transform:uppercase;letter-spacing:.05em;margin-bottom:6px}.summary-card strong{font-size:24px;font-variant-numeric:tabular-nums}.positive{color:#137a49}.negative{color:#b43a48}.neutral{color:#536078}.difference{font-weight:800;white-space:nowrap}.work-status{display:inline-flex;align-items:center;padding:5px 9px;border-radius:20px;font-size:12px;font-weight:800;white-space:nowrap}.status-open{background:#dff5e9;color:#12663d}.status-on_break{background:#fff0bd;color:#805800}.status-closed{background:#e7edff;color:#2348bd}.my-entries-table td:first-child small{display:block;margin-top:3px;color:var(--muted)}.row-action{text-align:right}.button.small{padding:7px 10px;font-size:12px}.detail-status{margin:-8px 0 12px}.timeline.detailed .timeline-row{grid-template-columns:90px minmax(130px,1fr) auto;align-items:center}.timeline.detailed .timeline-row small{color:var(--muted)}.info-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}.info-grid>div,.presence-cards>div{padding:13px;border:1px solid var(--line);border-radius:10px;background:#f8faff}.info-grid small,.presence-cards small{display:block;color:var(--muted);font-size:11px;margin-bottom:5px}.summary-section{margin-bottom:26px}.section-title{display:flex;justify-content:space-between;align-items:flex-end;gap:15px}.section-title h2{margin:2px 0 0}.section-title>span{color:var(--muted);font-size:13px}.presence-cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-top:-6px}.presence-cards strong{font-size:22px}.empty-state{text-align:center;padding:34px 18px}.empty-state .button{margin-top:10px}
@media(max-width:800px){.hero.compact{align-items:stretch}.hero-actions{width:100%}.hero-actions .button{flex:1;text-align:center}.my-entry-filters{grid-template-columns:1fr}.summary-cards{grid-template-columns:repeat(2,minmax(0,1fr))}.info-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.timeline.detailed .timeline-row{grid-template-columns:74px 1fr}.timeline.detailed .timeline-row small{grid-column:2}.section-title{align-items:flex-start;flex-direction:column}.presence-cards{grid-template-columns:1fr}.my-entries-table{min-width:0!important}.my-entries-table thead{display:none}.my-entries-table,.my-entries-table tbody,.my-entries-table tr,.my-entries-table td{display:block;width:100%}.my-entries-table tr{margin:0 10px 12px;padding:12px;border:1px solid var(--line);border-radius:11px;background:#fff}.my-entries-table td{display:grid;grid-template-columns:105px 1fr;gap:10px;padding:6px 0;border:0;text-align:right}.my-entries-table td::before{content:attr(data-label);text-align:left;color:var(--muted);font-size:12px;font-weight:700}.my-entries-table td:first-child{display:block;text-align:left;border-bottom:1px solid var(--line);padding-bottom:9px;margin-bottom:4px}.my-entries-table td:first-child::before,.my-entries-table .row-action::before{display:none}.my-entries-table .row-action{display:block;text-align:right;padding-top:10px}.my-entries-table .row-action .button{width:100%;text-align:center}.summary-history{min-width:560px}}
@media(max-width:480px){.summary-cards,.info-grid{grid-template-columns:1fr}.summary-card strong{font-size:22px}}

/* v0.6 Ausencias */
.absence-badge{display:inline-flex;align-items:center;padding:4px 9px;border-radius:999px;font-size:12px;font-weight:700;background:#eef2f1;color:#35524a;white-space:nowrap}
.absence-vacation{background:#e8f4ff;color:#245f88}.absence-sick_leave{background:#fff0f0;color:#983b3b}.absence-permission{background:#fff7df;color:#82610d}.absence-justified_absence{background:#f0ecff;color:#5c4694}
.absence-duration{display:grid;grid-template-columns:140px 140px 1fr;gap:14px;align-items:end}.absence-duration p{margin:0 0 10px;color:#6b7d84;font-size:13px}
.absence-calendar{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));border-left:1px solid #e1e8e5;border-top:1px solid #e1e8e5}.cal-head{padding:9px;text-align:center;font-size:12px;font-weight:800;color:#64756f;background:#f5f8f7;border-right:1px solid #e1e8e5;border-bottom:1px solid #e1e8e5}.cal-day{min-height:105px;padding:8px;border-right:1px solid #e1e8e5;border-bottom:1px solid #e1e8e5;background:#fff;overflow:hidden}.cal-day.empty{background:#fafcfc}.cal-day>strong{display:block;margin-bottom:6px}.cal-event{display:block;margin:4px 0;padding:4px 6px;border-radius:6px;font-size:11px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;background:#edf4f2;color:#31584f}.danger-zone{margin-top:18px;padding-top:18px;border-top:1px solid #ecd7d7}.button.danger{background:#fff1f1;color:#a53434;border-color:#e7bcbc}
@media(max-width:760px){.absence-duration{grid-template-columns:1fr 1fr}.absence-duration p{grid-column:1/-1}.absence-calendar{grid-template-columns:repeat(7,minmax(44px,1fr));overflow-x:auto}.cal-day{min-height:82px;padding:5px}.cal-event{font-size:9px;padding:3px}.cal-head{font-size:10px;padding:6px 2px}}
.cards.five{grid-template-columns:repeat(5,1fr)}.absence-stat{border-top-color:#d49a25}
@media(max-width:1000px){.cards.five{grid-template-columns:repeat(3,1fr)}}
@media(max-width:800px){.cards.five{grid-template-columns:1fr}}

/* v0.7.0 - Incidencias automáticas */
.incident-type{display:inline-flex;padding:5px 9px;border-radius:999px;background:#fff2dc;color:#805900;font-size:12px;font-weight:800;white-space:nowrap}.incident-status{display:inline-flex;padding:5px 9px;border-radius:999px;font-size:12px;font-weight:800;white-space:nowrap}.incident-status.status-pending{background:#fff0f0;color:#9b3030}.incident-status.status-reviewed{background:#fff5d7;color:#7c5a00}.incident-status.status-resolved{background:#e5f6ed;color:#17663f}.incident-actions{display:flex;gap:6px;align-items:center;min-width:350px}.incident-actions input{min-width:150px}.incidents-table{min-width:1050px}@media(max-width:800px){.incident-actions{min-width:280px;flex-wrap:wrap}.incident-actions input{width:100%}.incidents-table{min-width:900px}}

/* v0.8 - Solicitudes de corrección */
.correction-review{display:grid;gap:.45rem;min-width:230px}.correction-review input{min-width:220px}.block-note{display:block;margin-top:.4rem;color:#667}.status-approved{background:#e8f7ef;color:#176b45}.status-rejected{background:#fff0f0;color:#9b2c2c}.status-cancelled{background:#f1f3f5;color:#5f6770}
@media(max-width:760px){.correction-review{min-width:0}.correction-review input{min-width:0;width:100%}}

/* Dashboard v0.9 */
.dashboard-live-cards{grid-template-columns:repeat(6,minmax(0,1fr))}.dashboard-stat-link{display:block;color:var(--ink);text-decoration:none;transition:transform .15s ease,box-shadow .15s ease}.dashboard-stat-link:hover{transform:translateY(-2px);box-shadow:0 12px 32px rgba(32,47,80,.12)}.pause-stat{border-top-color:#d5a11e}.correction-stat{border-top-color:#2d86ba}.dashboard-filters label{min-width:135px;font-size:12px}.dashboard-filters input,.dashboard-filters select{min-width:135px}.dashboard-filters label:last-of-type{min-width:180px}.dashboard-roster-table{min-width:980px}.dashboard-state{display:inline-flex;padding:5px 9px;border-radius:999px;font-size:12px;font-weight:800;white-space:nowrap}.dashboard-state.state-working{background:#dff5e9;color:#12663d}.dashboard-state.state-break{background:#fff0bd;color:#805800}.dashboard-state.state-missing{background:#fff0f0;color:#9b3030}.dashboard-state.state-closed{background:#e7edff;color:#2348bd}.dashboard-state.state-absent{background:#f0e8ff;color:#6742a6}.dashboard-state.state-off{background:#f1f3f5;color:#66707a}.dashboard-attention-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px}.attention-list{display:grid}.attention-row{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:12px 0;border-top:1px solid var(--line);color:var(--ink)}.attention-row:first-child{border-top:0}.attention-row span:first-child{min-width:0}.attention-row strong{display:block}.attention-row small{display:block;color:var(--muted);margin-top:2px}.empty-state.compact{padding:18px 0}
@media(max-width:1100px){.dashboard-live-cards{grid-template-columns:repeat(3,1fr)}}
@media(max-width:800px){.dashboard-live-cards{grid-template-columns:repeat(2,1fr)}.dashboard-attention-grid{grid-template-columns:1fr}.dashboard-filters label,.dashboard-filters label:last-of-type,.dashboard-filters input,.dashboard-filters select{width:100%;min-width:0}.dashboard-filters .button{width:100%}.dashboard-roster-table{min-width:850px}}

/* v0.10 - administración de fichajes */
.entry-admin-actions{display:flex;gap:.5rem;align-items:center;flex-wrap:wrap}.inline-void-form{display:flex;gap:.4rem;align-items:center;flex-wrap:wrap}.inline-void-form input[type=text]{min-width:190px;max-width:260px}.button.danger{background:#fff1f2;border-color:#fecdd3;color:#9f1239}.button.danger:hover{background:#ffe4e6}.status-superseded{background:#fff7ed;color:#9a3412}.status-void{background:#f3f4f6;color:#4b5563}@media(max-width:760px){.entry-admin-actions,.inline-void-form{align-items:stretch}.inline-void-form input[type=text]{min-width:100%;max-width:100%}}

/* v0.10.1 - navegación y correcciones simplificadas */
.incident-action-stack{display:grid;gap:8px;min-width:290px}.incident-actions{display:flex;align-items:center;gap:6px;flex-wrap:wrap}.incident-actions input{min-width:190px}.correction-timeline-row{grid-template-columns:90px 1fr auto auto;align-items:center}.correction-timeline-row .button{justify-self:end}.correction-quick-actions{margin-top:18px;padding-top:16px;border-top:1px solid var(--line)}.correction-context{display:grid;gap:5px;margin:0 0 18px;padding:14px 16px;border-radius:12px;background:#f5f7fb}.correction-context small{color:var(--muted)}.correction-context strong{font-size:18px}.correction-picker{padding:4px 0 8px}.correction-picker .actions{margin-top:16px}
@media(max-width:760px){.incident-action-stack{min-width:0}.incident-actions{display:grid}.incident-actions input{min-width:0;width:100%}.correction-timeline-row{grid-template-columns:72px 1fr auto}.correction-timeline-row small{grid-column:2}.correction-timeline-row .button{grid-column:3;grid-row:1 / span 2}.correction-quick-actions .button{width:100%}}

/* v0.11 - Informes */
.report-tabs{display:flex;gap:7px;flex-wrap:wrap;margin-bottom:18px}.report-tabs a{padding:8px 12px;border:1px solid var(--line);border-radius:9px;background:#fff;color:var(--ink);font-weight:700}.report-tabs a.active{background:#edf2ff;border-color:#c8d5ff;color:#2348bd}.report-cards{grid-template-columns:repeat(4,minmax(0,1fr))}.report-table{min-width:900px}.report-output .panel-head{margin-bottom:12px}.report-filters label{min-width:135px}.report-hero .hero-actions{display:flex;gap:8px}
@media(max-width:800px){.report-cards{grid-template-columns:repeat(2,1fr)}.report-tabs{display:grid;grid-template-columns:1fr 1fr}.report-filters label,.report-filters input,.report-filters select,.report-filters .button{width:100%;min-width:0}}
@media(max-width:480px){.report-cards,.report-tabs{grid-template-columns:1fr}}
@media print{.topbar,.no-print,.flash{display:none!important}body{background:#fff}main{width:100%;margin:0}.panel,.stat{box-shadow:none}.report-output{border:0;padding:0}.table-wrap{overflow:visible}.report-table{min-width:0;font-size:10px}.report-table th,.report-table td{padding:6px 4px}.report-cards{grid-template-columns:repeat(4,1fr)}}
.auto-entry{display:inline-flex;padding:3px 7px;border-radius:999px;background:#eef2ff;color:#374bb5;font-size:11px;font-weight:800}

/* v0.13 - Notificaciones internas */
.notification-bell{position:relative;display:inline-flex;align-items:center;justify-content:center;width:40px;height:40px;border:1px solid var(--line);border-radius:10px;background:#fff;text-decoration:none;font-size:18px}.notification-bell:hover{background:#f6f8ff}.notification-bell b{position:absolute;top:-6px;right:-7px;min-width:20px;height:20px;padding:0 5px;border-radius:999px;background:#ef4444;color:#fff;font-size:11px;line-height:20px;text-align:center;box-shadow:0 0 0 2px #fff}.notification-bell.has-unread{border-color:#cbd8ff;background:#f5f7ff}.notification-panel{padding:0;overflow:hidden}.notification-list{display:grid}.notification-row{display:flex;gap:12px;padding:16px 18px;border-bottom:1px solid var(--line);text-decoration:none;color:inherit;align-items:flex-start}.notification-row:last-child{border-bottom:0}.notification-row:hover{background:#f8faff}.notification-row.is-unread{background:#f4f7ff}.notification-dot{width:9px;height:9px;border-radius:50%;background:#cbd5e1;margin-top:7px;flex:0 0 auto}.notification-row.is-unread .notification-dot{background:#315fe8}.notification-copy{display:grid;gap:4px;min-width:0}.notification-copy strong{font-size:15px}.notification-copy span{color:#526079}.notification-copy small{color:#8792a7}.top-actions{display:flex;align-items:center;gap:10px}
@media(max-width:1050px){.notification-bell{width:38px;height:38px}.top-actions{width:100%;justify-content:flex-end}}

/* v0.13.1 - cabecera sin solapes */
.topbar-inner{width:min(1440px,calc(100% - 24px));gap:12px}
.brand{min-width:180px;flex:0 0 auto}.main-nav{flex:1 1 auto;justify-content:center;min-width:0}.top-actions{flex:0 0 auto;white-space:nowrap}.notification-bell{flex:0 0 auto}.user-menu{flex:0 0 auto}
@media(max-width:1280px){.topbar-inner{flex-wrap:wrap;padding:10px 0}.nav-toggle{display:inline-flex;margin-left:auto}.main-nav{display:none;order:4;width:100%;flex-direction:column;align-items:stretch;border-top:1px solid var(--line);padding-top:8px}.nav-open .main-nav{display:flex}.main-nav>a,.nav-group>summary{width:100%}.nav-group{width:100%}.nav-submenu{position:static;margin:5px 0 3px;box-shadow:none;border-radius:9px;background:#f8faff}.top-actions{margin-left:0}.brand{min-width:0}}
.my-incidents-actions{white-space:nowrap}

/* v0.14 - actividad y auditoría */
.activity-tabs{margin-bottom:16px}.activity-cards{grid-template-columns:repeat(4,minmax(0,1fr))}.activity-filters{align-items:end}.activity-table td:nth-child(2) small{display:block;margin-top:3px;color:var(--muted);font-size:11px}.activity-table td{vertical-align:top}.activity-table a:not(.button){font-weight:700;text-decoration:none}.activity-table a:not(.button):hover{text-decoration:underline}.audit-meta{grid-template-columns:repeat(3,minmax(0,1fr))}.audit-meta .stat strong{font-size:17px}.audit-changes td{vertical-align:top;white-space:normal}.pagination{display:flex;gap:6px;flex-wrap:wrap;margin-top:20px}.pagination a{display:inline-flex;min-width:36px;height:36px;padding:0 10px;align-items:center;justify-content:center;border:1px solid var(--line);border-radius:9px;text-decoration:none;font-weight:700;background:#fff}.pagination a.active{background:var(--primary);border-color:var(--primary);color:#fff}.button.small{padding:7px 10px;font-size:12px}
@media(max-width:900px){.activity-cards,.audit-meta{grid-template-columns:repeat(2,minmax(0,1fr))}.activity-table{min-width:900px}}
@media(max-width:600px){.activity-cards,.audit-meta{grid-template-columns:1fr}}

/* v0.14.7 - movimientos automáticos activos */
.timeline-row.timeline-auto{border-left-color:#d64040;background:#fff1f1}.timeline-row.timeline-auto>span,.timeline-row.timeline-auto>strong{color:#9b2525}.auto-entry-badge{display:inline-flex;margin-left:7px;padding:3px 7px;border-radius:999px;background:#d64040;color:#fff;font-size:10px;font-style:normal;font-weight:800;vertical-align:middle}
.correction-preview{margin:0 0 10px;padding:10px 12px;border-radius:10px;font-size:12px;line-height:1.4}.correction-preview.ok{background:#eaf8f0;border:1px solid #bfe7cf;color:#12663d}.correction-preview.warning{background:#fff5df;border:1px solid #f1d591;color:#765200}.correction-preview-metrics{display:flex;gap:10px;flex-wrap:wrap;margin-top:5px}.correction-preview ul{margin:6px 0 0;padding-left:18px}

/* v0.14.10 - corrección directa desde la jornada */
.correction-quick-actions{display:flex;gap:10px;flex-wrap:wrap;align-items:center}
@media(max-width:760px){.correction-quick-actions{display:grid}.correction-quick-actions .button{width:100%}}


/* v0.14.14 - incidencias justificadas */
.my-incidents-actions{display:flex;gap:7px;flex-wrap:wrap}.incident-justify-form{margin-top:8px;min-width:280px}.incident-justify-form textarea{width:100%;min-height:78px;resize:vertical}.incident-justify-form .actions{display:flex;gap:7px;justify-content:flex-end;margin-top:7px}.justification-pending{display:inline-flex;padding:6px 9px;border-radius:999px;background:#fff5df;color:#765200;font-size:12px;font-weight:800}.incident-justification-review{padding:10px 12px;border:1px solid #f1d591;border-radius:10px;background:#fffaf0}.incident-justification-review small{display:block;font-weight:800;color:#765200}.incident-justification-review p{margin:5px 0 9px;white-space:pre-wrap}
@media(max-width:760px){.my-incidents-actions,.incident-justify-form .actions{display:grid}.my-incidents-actions .button,.incident-justify-form .button{width:100%}.incident-justify-form{min-width:0}}


/* v0.14.15 - tabla de incidencias admin más compacta */
.admin-incidents-table{width:100%;min-width:1120px;table-layout:fixed}.admin-incidents-table .col-date{width:8%}.admin-incidents-table .col-worker{width:10%}.admin-incidents-table .col-company{width:8%}.admin-incidents-table .col-type{width:12%}.admin-incidents-table .col-detail{width:20%}.admin-incidents-table .col-status{width:14%}.admin-incidents-table .col-actions{width:28%}.admin-incidents-table th,.admin-incidents-table td{vertical-align:middle;white-space:normal;overflow-wrap:anywhere}.admin-incidents-table .incident-type{white-space:normal;line-height:1.25;text-align:left}.admin-incidents-table .incident-status{white-space:normal;line-height:1.2;max-width:100%}.incident-status.status-stacked{display:inline-flex;flex-direction:column;align-items:flex-start;gap:2px}.incident-status.status-stacked span{display:block}.incident-detail-cell{line-height:1.45}.incident-status-cell{padding-right:12px}.incident-actions-cell{padding-left:10px}.admin-incidents-table .incident-action-stack{min-width:0;width:100%}.admin-incidents-table .incident-action-stack>.button{width:100%;white-space:normal;text-align:center}.admin-incidents-table .incident-justification-review{width:100%;box-sizing:border-box}.admin-incidents-table .incident-actions{min-width:0;width:100%}.admin-incidents-table .incident-actions input{flex:1 1 150px;min-width:120px}.admin-incidents-table .incident-actions .button{flex:1 1 auto;white-space:normal}.admin-incidents-table .incident-justification-review p{overflow-wrap:anywhere}
@media(max-width:1200px){.admin-incidents-table{min-width:1040px}.admin-incidents-table .col-date{width:9%}.admin-incidents-table .col-worker{width:10%}.admin-incidents-table .col-company{width:8%}.admin-incidents-table .col-type{width:12%}.admin-incidents-table .col-detail{width:19%}.admin-incidents-table .col-status{width:14%}.admin-incidents-table .col-actions{width:28%}}
@media(max-width:800px){.admin-incidents-table{min-width:980px}.admin-incidents-table .incident-actions{display:grid;grid-template-columns:1fr}.admin-incidents-table .incident-actions input,.admin-incidents-table .incident-actions .button{width:100%}}


/* v0.14.16 - incidencias, notificaciones y márgenes */
.admin-incidents-table td:first-child,.admin-incidents-table th:first-child{white-space:nowrap;overflow-wrap:normal;word-break:normal;text-align:center}
.admin-incidents-table th:nth-child(4),.admin-incidents-table td:nth-child(4),
.admin-incidents-table th:nth-child(6),.admin-incidents-table td:nth-child(6),
.admin-incidents-table th:nth-child(7),.admin-incidents-table td:nth-child(7){text-align:center}
.admin-incidents-table td:nth-child(4) .incident-type,.admin-incidents-table td:nth-child(6) .incident-status{display:inline-flex;text-align:center;justify-content:center;align-items:center}
.admin-incidents-table .incident-status.status-stacked{align-items:center}
.admin-incidents-table .incident-action-stack{align-items:center}
.notification-row{position:relative;border-left:5px solid transparent}
.notification-row.notification-danger{border-left-color:#dc3f4b;background:#fff5f5}
.notification-row.notification-warning{border-left-color:#d8a21b;background:#fff9e8}
.notification-row.notification-orange{border-left-color:#e4771d;background:#fff4e9}
.notification-row.notification-justified{border-left-color:#176b45;background:#eef8f2}
.notification-row.notification-success{border-left-color:#23925b;background:#effaf4}
.notification-row.notification-info{border-left-color:#315ee7;background:#f4f7ff}
.notification-row.notification-danger .notification-dot{background:#dc3f4b}
.notification-row.notification-warning .notification-dot{background:#d8a21b}
.notification-row.notification-orange .notification-dot{background:#e4771d}
.notification-row.notification-justified .notification-dot{background:#176b45}
.notification-row.notification-success .notification-dot{background:#23925b}
.notification-row.notification-info .notification-dot{background:#315ee7}
.notification-row.is-read{filter:saturate(.75);background:#fff}
.notification-row.is-read:hover{background:#f8faff}

/* v0.14.17 - Informes simplificados */
.report-table-summary,.report-table-balance{min-width:760px}
.report-table-entries{min-width:1050px}
.report-table-incidents{min-width:1100px}
.report-table-audit{min-width:1150px}
.positive-cell{color:#147a4c;font-weight:800}
.negative-cell{color:#bd3743;font-weight:800}
.incident-stat{border-top-color:#dc3f4b}
.report-table th{white-space:nowrap}
.report-table td{vertical-align:top}
@media(max-width:800px){.report-table-summary,.report-table-balance,.report-table-entries,.report-table-incidents,.report-table-audit{min-width:900px}}

/* v0.16.0 - revisión responsive / móvil */
:root{--mobile-pad:12px}
html{-webkit-text-size-adjust:100%}
body{min-width:0}
img,svg,canvas{max-width:100%}
button,.button,input,select,textarea{touch-action:manipulation}
.table-wrap{position:relative}
.table-wrap::after{content:"";pointer-events:none;position:sticky;right:0;display:block;width:0;height:0}

@media(max-width:1050px){
  .topbar{position:sticky;top:0}
  .topbar-inner{width:calc(100% - 20px);min-height:auto;display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:8px 10px}
  .brand{grid-column:1;max-width:none;min-width:0}
  .brand strong{max-width:none}
  .nav-toggle{grid-column:2;margin:0;min-width:42px;min-height:42px}
  .top-actions{grid-column:3;width:auto;min-width:0;margin:0;justify-content:flex-end;gap:6px}
  .main-nav{grid-column:1/-1;order:initial;margin-top:2px;max-height:calc(100vh - 92px);overflow-y:auto;overscroll-behavior:contain}
  .nav-group>summary,.main-nav>a{min-height:44px;display:flex;align-items:center}
  .nav-submenu a{min-height:42px;display:flex;align-items:center}
}

@media(max-width:800px){
  main{width:calc(100% - 16px);margin:14px auto 34px}
  .panel{padding:14px;margin-bottom:14px}
  .panel-head,.hero,.profile{margin-bottom:14px}
  h1{font-size:24px;overflow-wrap:anywhere}
  h2{font-size:17px}
  .eyebrow{font-size:10px}
  .button,button{min-height:44px}
  .button.small{min-height:38px}
  .cards,.cards.four,.dashboard-stats,.summary-cards,.activity-cards,.audit-meta{grid-template-columns:repeat(2,minmax(0,1fr))}
  .stat,.summary-card{min-width:0}
  .stat strong,.summary-card strong{font-size:21px;overflow-wrap:anywhere}
  .two-col{grid-template-columns:1fr}
  .form-grid{grid-template-columns:1fr}
  .filters,.filter-row,.report-filter,.my-entry-filters{display:grid!important;grid-template-columns:1fr 1fr;align-items:end;gap:9px}
  .filters>label,.filter-row>label,.report-filter>label,.my-entry-filters>label{min-width:0}
  .filters>button,.filters>.button,.filter-row>button,.filter-row>.button,.report-filter>button,.report-filter>.button,.my-entry-filters>button,.my-entry-filters>.button{width:100%}
  .report-links,.hero-actions,.correction-quick-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));width:100%;gap:8px}
  .report-links .button,.hero-actions .button,.correction-quick-actions .button{width:100%;white-space:normal}
  .table-wrap{margin-left:-14px;margin-right:-14px;padding:0 14px;scrollbar-width:thin}
  .table-wrap:focus-within{outline:2px solid #dbe4ff;outline-offset:-2px}
  .table-wrap table{font-size:13px}
  .table-wrap th{font-size:10px}
  .table-wrap td,.table-wrap th{padding:9px 8px}
  .employee-table,.users-table,.activity-table,.report-table,.admin-incidents-table{min-width:760px!important}
  .admin-incidents-table{table-layout:auto}
  .admin-incidents-table .col-date{min-width:92px}
  .admin-incidents-table .col-worker{min-width:110px}
  .admin-incidents-table .col-company{min-width:95px}
  .admin-incidents-table .col-type{min-width:140px}
  .admin-incidents-table .col-detail{min-width:210px}
  .admin-incidents-table .col-status{min-width:140px}
  .admin-incidents-table .col-actions{min-width:245px}
  .incident-justification-review{min-width:0}
  .incident-actions,.entry-admin-actions{display:grid!important;grid-template-columns:1fr;gap:7px}
  .incident-actions input,.entry-admin-actions input,.incident-actions .button,.entry-admin-actions .button{width:100%!important;min-width:0!important}
  .notification-row{padding:13px 12px;gap:9px}
  .notification-copy strong{font-size:14px}
  .notification-copy span{font-size:13px}
  .punch-card{padding:15px}
  .punch-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}
  .punch-actions,.punch-actions.two{grid-template-columns:1fr}
  .timeline-row{grid-template-columns:68px minmax(0,1fr);gap:9px;padding:9px}
  .day-result{grid-template-columns:repeat(2,minmax(0,1fr))}
  .annual-calendar,.annual-calendar.compact{grid-template-columns:repeat(2,minmax(0,1fr))}
  .calendar{min-width:560px}
  .calendar-heading{overflow:hidden}
  .calendar-responsive{overflow-x:auto;-webkit-overflow-scrolling:touch}
  .schedule-days{grid-template-columns:1fr 1fr}
  .planning td:first-child{min-width:125px}
  .planning th:not(:first-child),.planning td:not(:first-child){min-width:26px}
  .pagination{justify-content:flex-start;flex-wrap:nowrap;overflow-x:auto;padding-bottom:5px}
  .pagination a{flex:0 0 auto}
}

@media(max-width:560px){
  .topbar-inner{width:calc(100% - 14px);grid-template-columns:minmax(0,1fr) 42px auto}
  .brand{min-width:0}.brand img{max-width:38px;height:34px}.brand span{width:34px;height:34px}.brand strong{display:none}
  .top-actions{gap:4px}.notification-bell{width:40px;height:40px}.top-actions .user-menu{max-width:92px;min-width:0}.top-actions .user-menu b{font-size:12px}.top-actions>.button{min-width:40px;padding:8px;font-size:0}.top-actions>.button::first-letter{font-size:14px}
  main{width:calc(100% - 12px);margin-top:10px}
  .panel{padding:12px;border-radius:10px}
  .cards,.cards.four,.dashboard-stats,.summary-cards,.activity-cards,.audit-meta{grid-template-columns:1fr 1fr;gap:8px}
  .stat,.summary-card{padding:12px}.stat strong,.summary-card strong{font-size:19px}
  .filters,.filter-row,.report-filter,.my-entry-filters{grid-template-columns:1fr}
  .report-links,.hero-actions,.correction-quick-actions{grid-template-columns:1fr}
  .table-wrap{margin-left:-12px;margin-right:-12px;padding:0 12px}
  .employee-table,.users-table,.activity-table,.report-table,.admin-incidents-table{min-width:700px!important}
  .punch-metrics,.day-result{grid-template-columns:1fr 1fr}
  .annual-calendar,.annual-calendar.compact{grid-template-columns:1fr}
  .schedule-days{grid-template-columns:1fr}
  .month-selector{grid-template-columns:1fr 84px}
  .month-selector .button{grid-column:1/-1}
  .calendar-navigation{display:grid;grid-template-columns:1fr 1fr}
  .calendar-navigation>*{width:100%}
  .calendar{min-width:500px}
  .legend,.department-legend{margin-left:-4px;margin-right:-4px;padding-left:4px;padding-right:4px}
  .login{margin:4vh auto}.login .panel{padding:18px 14px}
}

@media(max-width:390px){
  .cards,.cards.four,.dashboard-stats,.summary-cards,.activity-cards,.audit-meta{grid-template-columns:1fr}
  .punch-metrics,.day-result{grid-template-columns:1fr}
  .top-actions .user-menu{display:none}
  .topbar-inner{grid-template-columns:minmax(0,1fr) 42px auto}
}

/* v0.16.1 · Kiosco / tablet */
.kiosk-body{background:#eef4f2;min-height:100vh;overflow-x:hidden}.kiosk-main{min-height:100vh;display:grid;place-items:center;padding:24px}.kiosk-card{width:min(760px,100%);background:#fff;border:1px solid #dce7e3;border-radius:28px;padding:36px;box-shadow:0 20px 60px rgba(28,65,58,.12);text-align:center}.kiosk-brand{display:flex;align-items:center;justify-content:center;gap:14px;margin-bottom:30px}.kiosk-brand>span{display:grid;place-items:center;width:54px;height:54px;border-radius:16px;background:#257766;color:#fff;font-weight:800}.kiosk-brand div{display:flex;flex-direction:column;text-align:left}.kiosk-brand strong{font-size:20px}.kiosk-brand small{color:#687a76}.kiosk-card h1{font-size:clamp(32px,5vw,54px);margin:8px 0}.kiosk-help,.kiosk-person{font-size:20px;color:#667873}.kiosk-pin-form{max-width:520px;margin:24px auto 0}.kiosk-pin-form>input[name=pin]{width:100%;font-size:44px;letter-spacing:.28em;text-align:center;padding:18px;border:2px solid #ccdcd7;border-radius:18px;margin-bottom:20px}.kiosk-keypad{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}.kiosk-keypad button{min-height:84px;border:0;border-radius:18px;background:#f0f5f3;font-size:32px;font-weight:750;color:#263a35;cursor:pointer}.kiosk-keypad button:active{transform:scale(.98)}.kiosk-keypad .kiosk-ok{background:#257766;color:#fff}.kiosk-state{margin:26px auto;max-width:460px;background:#f3f7f5;border-radius:18px;padding:18px;display:flex;flex-direction:column}.kiosk-state small{color:#70817c}.kiosk-state strong{font-size:28px}.kiosk-actions{display:grid;grid-template-columns:1fr 1fr;gap:16px;max-width:620px;margin:20px auto}.kiosk-action{min-height:100px;border:0;border-radius:20px;font-size:24px;font-weight:800;cursor:pointer}.kiosk-action.primary{background:#257766;color:#fff}.kiosk-action.pause{background:#f0b429;color:#332900}.kiosk-action.danger{background:#c94747;color:#fff}.kiosk-cancel{grid-column:1/-1;padding:16px;color:#52645f}.kiosk-message{padding:14px 18px;border-radius:14px;margin:0 0 18px}.kiosk-message.error{background:#fff0f0;color:#922}.kiosk-message.success{background:#edf8f4;color:#17624f}.kiosk-success .kiosk-check{width:100px;height:100px;display:grid;place-items:center;margin:0 auto 20px;border-radius:50%;background:#e6f5ef;color:#257766;font-size:62px;font-weight:800}.kiosk-success>strong{display:block;font-size:44px;margin:14px 0}.kiosk-success>small{display:block;color:#667873}.kiosk-url-box{background:#f4f8f6;border:1px solid #dce8e4;border-radius:14px;padding:16px}.kiosk-url-box input{margin-top:10px}.kiosk-generated-pin{text-align:center}.kiosk-generated-pin strong{display:block;font-size:56px;letter-spacing:.16em;margin:8px 0}
@media(max-width:640px){.kiosk-main{padding:10px}.kiosk-card{padding:22px 14px;border-radius:20px}.kiosk-keypad{gap:9px}.kiosk-keypad button{min-height:68px}.kiosk-actions{grid-template-columns:1fr}.kiosk-cancel{grid-column:auto}}


/* v0.17.0 · gestión inteligente de incidencias */
.kiosk-live-time{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin:14px 0 18px}.kiosk-live-time span{display:flex;flex-direction:column;gap:4px;padding:14px 16px;border:1px solid #dbe4f0;border-radius:14px;background:#f7f9fc}.kiosk-live-time small{color:#667085;font-weight:700}.kiosk-live-time strong{font-size:26px;color:#0f2343}.smart-banner{display:flex;gap:14px;align-items:flex-start;padding:16px 18px;border-radius:14px;background:#eef6ff;border:1px solid #cfe1ff;margin:0 0 18px}.smart-banner strong{display:block;margin-bottom:3px}.incident-attention{display:inline-flex;flex-direction:column;gap:2px;padding:7px 10px;border-radius:12px;font-size:12px;font-weight:800}.incident-attention.worker{background:#fff7df;color:#8b5d00}.incident-attention.manager{background:#ffe7e7;color:#a02626}.severity-dot{display:inline-block;width:8px;height:8px;border-radius:50%;margin-right:6px}.severity-low{background:#e7f6ec;color:#217a43}.severity-medium{background:#fff2d8;color:#8b5d00}.severity-high{background:#ffe2e2;color:#a02626}.incident-reason-select{min-width:220px}.incident-rule-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:12px}.incident-rule-grid label{display:flex;flex-direction:column;gap:6px;font-weight:700}.incident-rule-grid input{width:100%}.attention-summary{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-bottom:18px}.attention-summary .stat strong{font-size:28px}.auto-badge{display:inline-flex;padding:4px 8px;border-radius:999px;background:#e7f6ec;color:#217a43;font-size:11px;font-weight:800}.worker-review-note{display:block;margin-top:6px;color:#667085}.incidents-table td:nth-child(6),.incidents-table th:nth-child(6){text-align:center}@media(max-width:900px){.incident-rule-grid{grid-template-columns:1fr 1fr}.attention-summary{grid-template-columns:1fr}.kiosk-live-time{grid-template-columns:1fr}}@media(max-width:560px){.incident-rule-grid{grid-template-columns:1fr}}

/* v0.17.1 · correcciones diferenciadas */
.auto-correction-notice{margin:0 0 18px;padding:14px 16px;border:1px solid #9bd7b1;background:#effaf3;border-radius:12px;color:#14532d}.auto-correction-notice strong{display:block;margin-bottom:4px}.auto-correction-notice p{margin:0;color:#356447}.auto-correction-hint{display:block;max-width:260px;color:#276749;line-height:1.3}.my-incidents-actions{align-items:center;flex-wrap:wrap}

/* v0.17.2 - Ayuda y limpieza de avisos */
.help-button{width:38px;height:38px;display:grid;place-items:center;border:1px solid #d6deeb;border-radius:12px;background:#fff;color:var(--ink);font-weight:800;text-decoration:none;font-size:18px;flex:0 0 auto}.help-button:hover{border-color:#9fb4ee;background:#f4f7ff;color:#2348bd}.help-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.help-card{margin:0}.help-card h2{margin-top:0}.help-card p:last-child{margin-bottom:0}.help-card-wide{grid-column:1/-1}.help-definitions{display:grid;grid-template-columns:minmax(140px,.45fr) 1fr;gap:10px 16px;margin:0}.help-definitions dt{font-weight:800}.help-definitions dd{margin:0;color:var(--muted)}@media(max-width:800px){.help-grid{grid-template-columns:1fr}.help-card-wide{grid-column:auto}.help-definitions{grid-template-columns:1fr;gap:4px}.help-definitions dd{margin-bottom:10px}.help-button{width:42px;height:42px}}

/* v0.18.0 · usuarios y seguridad */
.account-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.account-grid>div{padding:14px;border:1px solid var(--line);border-radius:10px;background:#fafbfe}.account-grid small{display:block;color:var(--muted);font-weight:650;margin-bottom:4px}.account-grid strong{display:block}.field-help{color:var(--muted)}.row-actions{display:flex;gap:6px;align-items:center;flex-wrap:wrap}.row-actions form{margin:0}.inline-reset{position:relative}.inline-reset summary{cursor:pointer;font-weight:700;color:#2857ad}.inline-reset .inline-form{display:flex;gap:6px;margin-top:8px;min-width:300px}.inline-reset input{min-width:190px}@media(max-width:700px){.account-grid{grid-template-columns:1fr}.inline-reset .inline-form{min-width:0;flex-direction:column}.row-actions{align-items:stretch}.row-actions>*{width:100%}.row-actions .button{width:100%}}

/* v0.19.0 · diagnóstico y estabilización */
.health-summary{grid-template-columns:repeat(3,minmax(0,1fr));margin-bottom:18px}.health-summary .stat:nth-child(1){border-top-color:#2a9d67}.health-summary .stat:nth-child(2){border-top-color:#d69a16}.health-summary .stat:nth-child(3){border-top-color:#cf4c4c}.health-table td{vertical-align:top}.health-table td:nth-child(1){white-space:nowrap;color:var(--muted);font-weight:700}.health-badge{display:inline-flex;padding:5px 9px;border-radius:999px;font-size:12px;font-weight:800;white-space:nowrap}.health-ok{background:#e5f6ed;color:#17663f}.health-warn{background:#fff3d5;color:#805900}.health-bad{background:#ffe7e7;color:#9b3030}.diagnostic-errors{display:grid;gap:10px}.diagnostic-errors>div{display:grid;grid-template-columns:minmax(170px,.5fr) minmax(180px,.6fr) 1fr;gap:12px;padding:12px 0;border-top:1px solid var(--line)}.diagnostic-errors>div:first-child{border-top:0}.diagnostic-errors span,.diagnostic-errors small{color:var(--muted)}.checklist-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.checklist-grid>div{padding:14px;border:1px solid var(--line);border-radius:12px;background:#fafbfe}.checklist-grid p{margin:5px 0 0;color:var(--muted)}.settings-link{display:block;text-decoration:none;color:inherit;transition:transform .15s ease,box-shadow .15s ease}.settings-link:hover{transform:translateY(-2px);box-shadow:0 12px 32px rgba(32,47,80,.10)}.settings-link h2{margin-top:0}.settings-link p{margin-bottom:0;color:var(--muted)}
@media(max-width:900px){.checklist-grid{grid-template-columns:1fr 1fr}.diagnostic-errors>div{grid-template-columns:1fr}.health-table{min-width:760px}}
@media(max-width:560px){.health-summary,.checklist-grid{grid-template-columns:1fr}.health-summary{gap:8px}}


/* v0.19.1 · modalidad prevista y control de origen */
.schedule-days-modes{grid-template-columns:repeat(3,minmax(220px,1fr));gap:14px}.schedule-day-mode{border:1px solid var(--border);border-radius:14px;padding:12px;background:#fff;display:grid;grid-template-columns:1fr 1.25fr;gap:10px;align-items:end}.schedule-day-mode label{margin:0}.origin-exception-field{display:none;flex-direction:column}.origin-inline{display:flex;flex-direction:column;gap:5px;margin-bottom:8px;font-size:.82rem;color:var(--muted)}.origin-inline input{min-width:220px}.movement-meta,.movement-exception{display:block;font-weight:500;font-style:normal;margin-top:3px;font-size:.78rem;color:var(--muted)}.movement-exception{color:#9a5b00}.report-table-entries td:nth-child(4),.report-table-entries td:nth-child(6),.report-table-entries td:nth-child(7){white-space:nowrap}.report-table-entries td:nth-child(5){min-width:360px}
@media(max-width:900px){.schedule-days-modes{grid-template-columns:1fr 1fr}.schedule-day-mode{grid-template-columns:1fr}.origin-inline input{min-width:0;width:100%}}
@media(max-width:600px){.schedule-days-modes{grid-template-columns:1fr}}

/* v0.19.2 · coherencia modalidad y formulario Mi jornada */
.punch-mode-help{margin-top:-6px;color:var(--muted);font-size:.9rem}.punch-form>label{align-self:start}.punch-form>label select,.punch-form>label input{width:100%}.origin-exception-field{margin-top:0}


/* v0.19.3 · excepción única por jornada */
.origin-day-note{margin:0 0 14px;padding:10px 14px;border:1px solid #f1c86b;background:#fff8e5;border-radius:12px;font-size:.92rem;color:#7a5300}
.kiosk-exception{width:100%;padding:14px;border:1px solid #e3b341;background:#fff8e5;border-radius:14px;text-align:left;margin-bottom:10px}.kiosk-exception p{margin:6px 0 10px}.kiosk-exception textarea{width:100%;box-sizing:border-box;font:inherit;padding:12px;border:1px solid #cbd5e1;border-radius:10px;resize:vertical}.kiosk-exception.saved{border-color:#9bd3b3;background:#effaf4;color:#146c43}


/* v0.19.4 · motivos predefinidos y dispositivo recordado */
.origin-exception-field select,.origin-exception-field input,.kiosk-exception select,.kiosk-exception input{width:100%;box-sizing:border-box}
.origin-exception-field input,.kiosk-exception input{margin-top:8px;padding:12px;border:1px solid var(--border);border-radius:10px;font:inherit}
.remember-device-check{display:flex!important;align-items:center;gap:9px;font-weight:600}.remember-device-check input{width:auto!important;margin:0}.remember-device-help{margin-top:-10px}.remembered-devices{display:flex;flex-direction:column;gap:10px}.remembered-device{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:12px 14px;border:1px solid var(--border);border-radius:12px}.remembered-device div{display:flex;flex-direction:column;gap:4px}.remembered-device small{color:var(--muted)}.remembered-all{margin-top:14px}
@media(max-width:640px){.remembered-device{align-items:flex-start;flex-direction:column}.remembered-device form,.remembered-device .button{width:100%}}
