:root{
  font-family:Inter,"Segoe UI",ui-sans-serif,system-ui,-apple-system,sans-serif;
  color:#15283d;
  background:#f3f6f9;
  font-synthesis:none;
  --teal:#078b97;
  --teal-dark:#06747f;
  --muted:#687b8f;
}

*{box-sizing:border-box}

html,body{min-height:100%}

body{margin:0}

button,input,select{font:inherit}

.button{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:8px;
  min-height:42px;
  border:0;
  border-radius:10px;
  padding:10px 16px;
  font-weight:800;
  font-size:13px;
  cursor:pointer;
  transition:.18s ease;
}

.button:focus-visible,
input:focus-visible{
  outline:3px solid #41b6c555;
  outline-offset:2px;
}

.button:disabled{
  cursor:not-allowed;
  opacity:.5;
}

.button--primary{
  color:#fff;
  background:var(--teal);
  box-shadow:0 8px 20px #078b9726;
}

.button--primary:hover:not(:disabled){
  background:var(--teal-dark);
  transform:translateY(-1px);
}

.verification-page{
  min-height:100vh;
  display:grid;
  place-items:center;
  padding:24px;
  background:linear-gradient(145deg,#102b46,#0c5062);
}

.verification-card{
  width:min(680px,100%);
  background:#fff;
  border-radius:20px;
  padding:clamp(24px,5vw,46px);
  box-shadow:0 24px 70px #061a2c55;
}

.verification-brand{
  color:var(--teal);
  font-size:11px;
  font-weight:900;
  letter-spacing:.16em;
}

.verification-card h1{
  margin:10px 0;
  font-size:clamp(25px,5vw,38px);
  letter-spacing:-.04em;
}

.verification-card header>p{
  color:var(--muted);
  line-height:1.55;
}

.verification-card form{
  display:grid;
  gap:14px;
  margin-top:28px;
}

.verification-card label{
  display:grid;
  gap:8px;
  font-size:12px;
  font-weight:800;
  color:#334a60;
}

.verification-card input{
  width:100%;
  height:48px;
  border:1px solid #cfd9e2;
  border-radius:9px;
  padding:0 12px;
  font-family:Consolas,monospace;
}

.verification-success,
.verification-failure,
.verification-loading{
  margin-top:24px;
  border-radius:12px;
  padding:18px;
}

.verification-success{
  background:#eaf8f1;
  border:1px solid #c5ead6;
  color:#145f42;
}

.verification-failure{
  background:#fff0ef;
  border:1px solid #f2cac6;
  color:#922e26;
}

.verification-loading{
  background:#edf8fa;
  color:#17616a;
}

.verification-success h2,
.verification-failure h2{
  margin:0 0 13px;
  font-size:18px;
}

.verification-success p,
.verification-failure p{
  margin:7px 0;
  font-size:12px;
  line-height:1.55;
}

.verification-success p:nth-last-child(2){
  overflow-wrap:anywhere;
  font-family:Consolas,monospace;
  font-size:10px;
}

.fiscalizer-body{background:#f3f7fb;color:#102a43;font-family:Arial,sans-serif;margin:0}.fiscalizer-shell{max-width:1180px;margin:auto;padding:32px}.fiscalizer-login{max-width:520px;margin:6vh auto}.fiscalizer-login form,.filters,#search{display:grid;gap:12px;margin:24px 0}label{display:grid;gap:7px;font-weight:700}input{padding:12px;border:1px solid #cbd8e5;border-radius:10px}button{border:0;border-radius:10px;padding:12px 16px;background:#078c98;color:white;font-weight:700;cursor:pointer}.secondary{background:#e8f0f5;color:#12324a}.fiscalizer-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:24px}.eyebrow{color:#078c98;font-weight:800;letter-spacing:.12em;text-transform:uppercase}.fiscalizer-layout{display:grid;grid-template-columns:270px 1fr;gap:22px}.fiscalizer-layout aside{display:grid;gap:10px;align-content:start;background:#102f49;color:white;padding:20px;border-radius:16px}.fiscalizer-layout aside span{font-size:13px;opacity:.7;padding:10px}.company-list{display:grid;gap:10px}.company-option{text-align:left;display:flex;justify-content:space-between;background:white;color:#102a43;border:1px solid #d9e3ec}.table-wrap{overflow:auto}table{width:100%;border-collapse:collapse;font-size:14px}th,td{padding:10px;border-bottom:1px solid #d9e3ec;text-align:left}.error{color:#b42318}.helper{color:#627d98}@media(max-width:720px){.fiscalizer-shell{padding:16px}.fiscalizer-layout{grid-template-columns:1fr}.fiscalizer-header{align-items:flex-start;gap:12px}.company-option{display:grid;gap:4px}}
.access-shell{max-width:520px;min-height:90vh;display:grid;place-items:center}.access-card{width:100%;padding:34px}.access-card h1{margin-bottom:8px}.access-copy{color:#627d98;line-height:1.55}.access-form{display:grid;gap:18px;margin-top:26px}.brand-mark{width:48px;height:48px;border-radius:15px;background:#0d304b;color:white;display:grid;place-items:center;font-size:24px;font-weight:900;box-shadow:inset -5px -5px 0 #0795a1}.brand-mark.small{width:34px;height:34px;border-radius:10px;font-size:17px}.link-button{background:transparent;color:#087f8c;padding-left:0}.demo-key,.gap-card,.notice-state{padding:14px;border-radius:12px;background:#e6f7f7;color:#174b52}.demo-key{display:flex;justify-content:space-between;margin-top:20px}.demo-key code{font-size:18px;letter-spacing:.12em}.search-row{display:grid;grid-template-columns:1fr auto;gap:12px;align-items:end}.company-option span{display:grid;gap:4px}.company-option small{font-weight:400;color:#627d98}.fiscalizer-app{min-height:100vh}.app-header{height:68px;background:#0d304b;color:white;display:flex;align-items:center;justify-content:space-between;padding:0 28px}.app-header>div{display:flex;align-items:center;gap:12px}.app-header>div:last-child{display:grid;text-align:right;gap:3px}.app-header small{color:#b9d3df}.app-grid{display:grid;grid-template-columns:260px 1fr;min-height:calc(100vh - 68px)}.app-sidebar{background:#102f49;color:white;padding:24px 16px;display:flex;flex-direction:column;gap:7px}.app-sidebar p{color:#62d1d5;font-weight:800;font-size:12px;letter-spacing:.12em}.app-sidebar button{text-align:left;background:transparent;color:#dcebf2}.app-sidebar button.active{background:#174d6d;color:white}.sidebar-spacer{flex:1}.app-content{padding:32px;min-width:0}.company-heading{display:flex;justify-content:space-between;gap:24px;align-items:center;margin-bottom:24px}.company-heading h1{margin:5px 0}.notice-state{max-width:340px;font-size:13px}.module-card{min-height:360px}.gap-card{margin-top:24px;background:#f1f5f8;color:#486581}.filters{grid-template-columns:1fr 1fr auto;align-items:end}.selection-card{padding:28px}@media(max-width:760px){.app-grid{grid-template-columns:1fr}.app-sidebar{position:static}.app-content{padding:18px}.company-heading,.app-header{align-items:flex-start}.company-heading{display:grid}.filters,.search-row{grid-template-columns:1fr}.demo-key{display:grid;gap:8px}}

/* Reporte de asistencia del Portal del Fiscalizador */
.fiscalizer-body select{min-width:0;padding:12px;border:1px solid #cbd8e5;border-radius:10px;background:#fff;color:#102a43}.attendance-filters{grid-template-columns:repeat(4,minmax(160px,1fr));gap:16px;padding:20px;border:1px solid #d9e3ec;border-radius:14px;background:#f8fbfd}.attendance-filters label{min-width:0;align-content:start;color:#334e68;font-size:13px}.attendance-filters input,.attendance-filters select{width:100%}.attendance-filters select[multiple]{min-height:112px}.attendance-filters button{align-self:end;min-height:44px}.report-gaps{display:grid;gap:5px;margin:0 0 24px;padding:14px 16px;border-left:4px solid #d69e2e;border-radius:8px;background:#fff8e5;color:#6b5317;font-size:13px}.report-employer{padding:20px;border-radius:14px;background:#102f49;color:#fff;box-shadow:0 8px 24px #102f491a}.report-section-label{margin:0 0 12px;color:#58d1d5;font-size:11px;font-weight:900;letter-spacing:.14em}.report-identity-grid,.worker-identity-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px 28px}.report-identity-grid>div,.worker-identity-grid>div{display:grid;gap:5px;min-width:0}.report-identity-grid span,.worker-identity-grid span{color:#9eb6c7;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.05em}.report-identity-grid strong{font-size:16px;overflow-wrap:anywhere}.worker-report{margin-top:20px;overflow:hidden;border:1px solid #d9e3ec;border-radius:14px;background:#fff;box-shadow:0 6px 18px #102f490d}.worker-report header{padding:20px;background:#f5f9fb;border-bottom:1px solid #d9e3ec}.worker-report header .report-section-label{color:#078c98}.worker-identity-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.worker-identity-grid span{color:#627d98}.worker-identity-grid strong{font-size:14px;overflow-wrap:anywhere}.attendance-table-wrap{width:100%;overflow-x:auto}.attendance-report-table{table-layout:fixed}.attendance-report-table th{background:#eaf2f6;color:#334e68;font-size:12px;text-transform:uppercase;letter-spacing:.04em}.attendance-report-table th:nth-child(1){width:15%}.attendance-report-table th:nth-child(2),.attendance-report-table th:nth-child(3){width:16%}.attendance-report-table th:nth-child(4){width:53%}.attendance-report-table td{vertical-align:top;line-height:1.45;overflow-wrap:anywhere}.report-limitations{margin-top:22px;padding:17px 18px;border:1px solid #b8dce1;border-radius:12px;background:#eef9fa;color:#245862}.report-limitations strong{display:block;margin-bottom:9px}.report-limitations p{margin:5px 0;font-size:13px;line-height:1.5}.indeterminate,.empty-report{margin:18px;padding:16px;border-radius:10px;background:#f4f7f9;color:#526d82}.empty-report{text-align:center}
@media(max-width:1050px){.attendance-filters{grid-template-columns:repeat(2,minmax(160px,1fr))}.worker-identity-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:640px){.attendance-filters,.report-identity-grid,.worker-identity-grid{grid-template-columns:1fr}.attendance-report-table,.attendance-report-table tbody,.attendance-report-table tr,.attendance-report-table td{display:block;width:100%}.attendance-report-table thead{display:none}.attendance-report-table tr{padding:10px 14px;border-bottom:1px solid #d9e3ec}.attendance-report-table td{display:grid;grid-template-columns:112px minmax(0,1fr);gap:10px;padding:7px 0;border:0}.attendance-report-table td::before{content:attr(data-label);color:#627d98;font-size:11px;font-weight:800;text-transform:uppercase}.attendance-report-table th:nth-child(n){width:auto}}
.hash-search{margin:18px 0;padding:14px;border:1px solid #d7dde5;border-radius:10px;background:#fafbfc}.hash-search form{display:flex;gap:8px;margin-top:8px}.hash-search input{flex:1}.export-actions{display:flex;gap:8px;flex-wrap:wrap;margin:14px 0}.button-link{display:inline-flex;align-items:center;padding:9px 12px;border-radius:8px;background:#1d4ed8;color:white;text-decoration:none;font-weight:700}.attendance-table-wrap{overflow-x:auto}.attendance-report-table{font-family:Arial,sans-serif;font-size:8pt;border-collapse:collapse;width:100%}.attendance-report-table th,.attendance-report-table td{border:1px solid #cbd5e1;padding:5px;vertical-align:top}.attendance-report-table th{background:#eef2f7}.report-employer{font-family:Arial,sans-serif}@media print{.app-sidebar,.app-header,.filters,.hash-search,.export-actions,.notice-state{display:none!important}.app-grid{display:block}.app-content{padding:0}.public-card{box-shadow:none;border:0}.attendance-table-wrap{overflow:visible}.attendance-report-table{font-size:8pt}}
/* Fiscalizador: screen-only layout; printed reports retain their existing rules. */
@media screen {
  #fiscalizerApp, #fiscalizerApp * { box-sizing: border-box; }
  #fiscalizerApp { width: 100%; min-width: 0; }
  #fiscalizerApp .app-grid { grid-template-columns: 260px minmax(0, 1fr); }
  #fiscalizerApp :is(.app-content, .module-card, #results, .public-card) { min-width: 0; max-width: 100%; }
  #fiscalizerApp .app-header { height: auto; min-height: 68px; padding-block: 16px; gap: 16px; flex-wrap: wrap; }
  #fiscalizerApp :is(.app-header > div, .company-heading > div) { min-width: 0; overflow-wrap: break-word; }
  #fiscalizerApp .company-heading { flex-wrap: wrap; }
  #fiscalizerApp :is(.attendance-filters, .search-row) { gap: 16px; align-items: end; }
  #fiscalizerApp .attendance-filters { grid-template-columns: repeat(auto-fit, minmax(min(100%, 210px), 1fr)); align-items: start; }
  #fiscalizerApp :is(.attendance-filters, .search-row) label { min-width: 0; gap: 8px; line-height: 1.4; }
  #fiscalizerApp :is(input, select) { min-width: 0; max-width: 100%; min-height: 44px; font-size: 14px; }
  #fiscalizerApp .attendance-filters :is(input, select) { width: 100%; }
  #fiscalizerApp :is(.attendance-filters, .search-row, .hash-search, .export-actions) button {
    display: inline-flex; align-items: center; justify-content: center;
    min-height: 44px; padding: 10px 18px; border: 1px solid #087f8c; border-radius: 8px;
    font: 600 14px/1.4 Arial, sans-serif; background: #087f8c; color: #fff;
    text-align: center; white-space: normal; max-width: 100%; cursor: pointer;
  }
  #fiscalizerApp .attendance-filters > button { align-self: end; justify-self: start; min-width: 120px; }
  #fiscalizerApp .export-actions { gap: 12px; align-items: center; margin: 20px 0; }
  #fiscalizerApp .export-actions button { min-width: 152px; background: #fff; color: #12526a; border-color: #b9cbd7; }
  #fiscalizerApp :is(.attendance-filters, .search-row, .hash-search) button:hover:not(:disabled) { background: #066b76; border-color: #066b76; }
  #fiscalizerApp .export-actions button:hover:not(:disabled) { background: #edf5f8; border-color: #759aaa; }
  #fiscalizerApp button:disabled { opacity: .55; cursor: not-allowed; }
  #fiscalizerApp :is(button, input, select, .attendance-table-wrap):focus-visible { outline: 3px solid #5ab9c5; outline-offset: 3px; }
  #fiscalizerApp .hash-search form { display: flex; flex-wrap: wrap; align-items: center; gap: 12px; }
  #fiscalizerApp .hash-search input { flex: 1 1 260px; width: 100%; }
  #fiscalizerApp #hash-result { overflow-wrap: anywhere; }
  #fiscalizerApp .attendance-table-wrap { width: 100%; max-width: 100%; overflow-x: auto; border: 1px solid #d9e3ec; border-radius: 8px; }
  #fiscalizerApp .attendance-report-table { display: table; width: 100%; min-width: 680px; table-layout: auto; font: 14px/1.5 Arial, sans-serif; }
  #fiscalizerApp .attendance-report-table thead { display: table-header-group; }
  #fiscalizerApp .attendance-report-table tbody { display: table-row-group; }
  #fiscalizerApp .attendance-report-table tr { display: table-row; padding: 0; }
  #fiscalizerApp .attendance-report-table :is(th, td) {
    display: table-cell; width: auto; min-width: 130px; padding: 12px 16px;
    border: 0; border-bottom: 1px solid #e2eaf0; vertical-align: top;
    white-space: normal; overflow-wrap: break-word; word-break: normal; text-align: left;
  }
  #fiscalizerApp .attendance-report-table th { font-size: 12px; line-height: 1.5; font-weight: 700; background: #edf3f7; color: #334e68; }
  #fiscalizerApp .attendance-report-table td::before { content: none; }
  #fiscalizerApp .attendance-report-table td[data-label*="Observaciones"] { min-width: 300px; }
  #fiscalizerApp .attendance-report-table td:is([data-label*="Nombre"], [data-label*="Lugar"], [data-label*="Razón"]) { min-width: 220px; }
  #fiscalizerApp .attendance-report-table tbody tr:last-child td { border-bottom: 0; }
}
@media screen and (max-width: 900px) {
  #fiscalizerApp .app-grid { grid-template-columns: minmax(0, 1fr); }
  #fiscalizerApp .app-content { padding: 18px; }
  #fiscalizerApp .app-sidebar { min-width: 0; }
}
@media screen and (max-width: 480px) {
  #fiscalizerApp .export-actions button { flex: 1 1 100%; }
  #fiscalizerApp .search-row { grid-template-columns: minmax(0, 1fr); }
  #fiscalizerApp :is(.module-card, .selection-card) { padding: 16px; }
}

/* Reporte de jornada diaria — Res. Ex. DT 38/2024, art. 27 b) */
.journey-report-table{min-width:1280px;table-layout:auto}
.journey-report-table th,.journey-report-table td{min-width:125px;white-space:normal;overflow-wrap:normal;word-break:normal}
.journey-report-table th:first-child,.journey-report-table td:first-child{min-width:95px}
.journey-report-table .weekly-total td{font-weight:800;background:#f3f8fa;border-top:2px solid #6f8798}
@media print{.worker-report{break-inside:avoid-page}.journey-report-table{min-width:0;font-size:7pt}.journey-report-table th,.journey-report-table td{min-width:0}}
/* DT Res. Ex. 38 arts. 27-28: reportería fiscalizador sin desplazamiento horizontal. */
#fiscalizerApp .attendance-table-wrap{overflow-x:visible!important;max-width:100%;}
#fiscalizerApp .attendance-report-table{width:100%!important;min-width:0!important;table-layout:fixed!important;font-family:Arial,sans-serif!important;font-size:8pt!important;}
#fiscalizerApp .attendance-report-table th,#fiscalizerApp .attendance-report-table td{min-width:0!important;width:auto!important;padding:4px!important;overflow-wrap:anywhere;word-break:normal;}
#fiscalizerApp .attendance-report-table th{font-size:8pt!important;letter-spacing:0!important;}
#fiscalizerApp .attendance-report-table td[data-label*="Observaciones"],#fiscalizerApp .attendance-report-table td:is([data-label*="Nombre"],[data-label*="Lugar"],[data-label*="Razón"]){min-width:0!important;}
#fiscalizerApp .report-legend{margin:14px 18px;padding:10px 12px;border-radius:8px;background:#f4f7f9;font:8pt Arial,sans-serif;color:#334e68;}
@media print{#fiscalizerApp .attendance-report-table{font-size:8pt!important;table-layout:fixed!important;width:100%!important}#fiscalizerApp .worker-report{break-inside:auto;page-break-inside:auto}#fiscalizerApp .attendance-table-wrap{overflow:visible!important}}

/* Reporte DT: máxima legibilidad dentro del límite Arial 8 exigido por art. 28. */
#fiscalizerApp .journey-report-table{font-variant-numeric:tabular-nums lining-nums;}
#fiscalizerApp .journey-report-table th,#fiscalizerApp .journey-report-table td{font-size:8pt!important;line-height:1.45!important;padding:6px 5px!important;vertical-align:middle;}
#fiscalizerApp .journey-report-table th{font-weight:700!important;}
#fiscalizerApp .journey-report-table td:nth-child(1),
#fiscalizerApp .journey-report-table td:nth-child(2),
#fiscalizerApp .journey-report-table td:nth-child(3),
#fiscalizerApp .journey-report-table td:nth-child(4),
#fiscalizerApp .journey-report-table td:nth-child(5),
#fiscalizerApp .journey-report-table td:nth-child(6),
#fiscalizerApp .journey-report-table td:nth-child(7){white-space:nowrap;overflow-wrap:normal!important;word-break:normal!important;}
#fiscalizerApp .journey-report-table .weekly-total td{font-weight:700!important;border-top:2px solid #6f8798;}

/* Jornada diaria: números hh:mm:ss legibles sin superar Arial 8 ni usar scroll horizontal. */
#fiscalizerApp .journey-report-table{font-variant-numeric:tabular-nums lining-nums!important;}
#fiscalizerApp .journey-report-table th:nth-child(1){width:7%;}
#fiscalizerApp .journey-report-table th:nth-child(2){width:12%;}
#fiscalizerApp .journey-report-table th:nth-child(3){width:12%;}
#fiscalizerApp .journey-report-table th:nth-child(4){width:11%;}
#fiscalizerApp .journey-report-table th:nth-child(5){width:11%;}
#fiscalizerApp .journey-report-table th:nth-child(6){width:9%;}
#fiscalizerApp .journey-report-table th:nth-child(7){width:9%;}
#fiscalizerApp .journey-report-table th:nth-child(8){width:9%;}
#fiscalizerApp .journey-report-table th:nth-child(9){width:20%;}
#fiscalizerApp .journey-report-table td:nth-child(-n+8){font-variant-numeric:tabular-nums lining-nums;white-space:nowrap!important;}
#fiscalizerApp .journey-report-table .weekly-total td{font-weight:800!important;background:#f3f8fa!important;}


/* Portal Fiscalizador: selector individual de trabajador y lectura profesional de cambios de turno */
#fiscalizerApp .attendance-filters select[name="employeeIds"]{height:44px;min-height:44px;}
#fiscalizerApp .shift-change-list{display:grid;gap:18px;padding:18px;}
#fiscalizerApp .shift-change-card{border:1px solid #d7e3eb;border-radius:14px;background:#fff;overflow:hidden;box-shadow:0 5px 16px rgba(16,47,73,.06);}
#fiscalizerApp .shift-change-summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1px;background:#dce7ee;border-bottom:1px solid #d7e3eb;}
#fiscalizerApp .shift-change-summary>div{background:#f6f9fb;padding:13px 15px;}
#fiscalizerApp .shift-change-summary span,#fiscalizerApp .shift-observation span{display:block;margin-bottom:4px;color:#61798e;font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.04em;}
#fiscalizerApp .shift-change-summary strong{font-size:14px;color:#17324a;}
#fiscalizerApp .shift-comparison{display:grid;grid-template-columns:minmax(0,1fr) 42px minmax(0,1fr);align-items:stretch;padding:18px;gap:10px;}
#fiscalizerApp .shift-comparison>section{min-width:0;border:1px solid #d9e5ec;border-radius:12px;background:#fbfdfe;overflow:hidden;}
#fiscalizerApp .shift-panel-title{display:flex;justify-content:space-between;gap:12px;align-items:center;padding:11px 13px;background:#edf4f7;border-bottom:1px solid #d9e5ec;}
#fiscalizerApp .shift-panel-title span{font-weight:800;color:#15354e;}
#fiscalizerApp .shift-panel-title small{color:#61798e;font-weight:700;}
#fiscalizerApp .shift-start{padding:10px 12px 2px;color:#087f8c;font-size:12px;font-weight:800;}
#fiscalizerApp .shift-days{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px;padding:10px 12px 13px;}
#fiscalizerApp .shift-day{display:flex;justify-content:space-between;gap:8px;align-items:center;padding:7px 9px;border:1px solid #e2eaf0;border-radius:8px;background:#fff;font-size:12px;line-height:1.3;}
#fiscalizerApp .shift-day span{flex:0 0 auto;color:#70879a;font-weight:700;}
#fiscalizerApp .shift-day strong{text-align:right;color:#203d54;font-weight:700;}
#fiscalizerApp .shift-arrow{display:flex;align-items:center;justify-content:center;color:#078c98;font-size:25px;font-weight:900;}
#fiscalizerApp .shift-observation{padding:0 18px 16px;}
#fiscalizerApp .shift-observation p{margin:0;padding:10px 12px;border-radius:8px;background:#f6f9fb;color:#334e68;}
@media(max-width:1000px){#fiscalizerApp .shift-change-summary{grid-template-columns:repeat(2,minmax(0,1fr));}#fiscalizerApp .shift-comparison{grid-template-columns:1fr;}#fiscalizerApp .shift-arrow{transform:rotate(90deg);height:26px;}#fiscalizerApp .shift-days{grid-template-columns:1fr;}}
@media print{#fiscalizerApp .shift-change-list{padding:0;gap:10px}#fiscalizerApp .shift-change-card{box-shadow:none;break-inside:avoid}#fiscalizerApp .shift-day{font-size:8pt}#fiscalizerApp .shift-change-summary span,#fiscalizerApp .shift-observation span{font-size:7pt}}
#fiscalizerApp .shift-panel-title>div{display:grid;gap:3px;min-width:0;}
#fiscalizerApp .shift-panel-title>div>b{color:#61798e;font-size:11px;font-weight:700;line-height:1.25;}

/* Jornada diaria: las marcaciones pueden contener varios eventos y deben envolver
   dentro de su propia celda, sin invadir Colación ni forzar scroll horizontal. */
#fiscalizerApp .journey-report-table th:nth-child(3),
#fiscalizerApp .journey-report-table td:nth-child(3){
  white-space:normal!important;
  overflow-wrap:anywhere!important;
  word-break:normal!important;
}
#fiscalizerApp .journey-report-table td:nth-child(9){
  white-space:normal!important;
  overflow-wrap:anywhere!important;
}

/* DT fiscalizable report: screen and print preserve Arial at max 8 pt and wrap content. */
#fiscalizerApp .attendance-report-table { font: 8pt/1.35 Arial, sans-serif !important; table-layout: auto; min-width: 0; }
#fiscalizerApp .attendance-report-table th { font-size: 8pt !important; line-height: 1.35; }
#fiscalizerApp .attendance-report-table :is(th,td) { min-width: 0; padding: 5px 6px; white-space: normal; overflow-wrap: anywhere; word-break: normal; }
#fiscalizerApp .attendance-report-table td[data-label*="Observaciones"] { min-width: 0; }
@media print {
  #fiscalizerApp .attendance-report-table { font: 8pt/1.35 Arial, sans-serif !important; min-width: 0 !important; width: 100% !important; }
  #fiscalizerApp .attendance-report-table th { font-size: 8pt !important; }
  #fiscalizerApp .attendance-report-table :is(th,td) { padding: 4px; min-width: 0 !important; overflow-wrap: anywhere; }
}


/* Multi-select fiscalizador: conserva selección múltiple sin mostrar el listbox nativo. */
#fiscalizerApp .native-multi-select{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important;}
#fiscalizerApp .multi-select-control{position:relative;min-width:0;}
#fiscalizerApp .multi-select-trigger{width:100%;min-height:44px;padding:11px 12px;border:1px solid #cbd8e5;border-radius:10px;background:#fff;color:#102a43;display:flex;align-items:center;justify-content:space-between;gap:10px;text-align:left;font-weight:400;}
#fiscalizerApp .multi-select-trigger span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
#fiscalizerApp .multi-select-trigger b{font-size:16px;line-height:1;}
#fiscalizerApp .multi-select-menu{position:absolute;z-index:30;top:calc(100% + 6px);left:0;right:0;max-height:260px;overflow:auto;padding:7px;border:1px solid #cbd8e5;border-radius:10px;background:#fff;box-shadow:0 12px 28px #102f4926;}
#fiscalizerApp .multi-select-menu label{display:flex;grid-template-columns:none;align-items:center;gap:9px;padding:8px;border-radius:7px;color:#102a43;font-size:13px;font-weight:500;cursor:pointer;}
#fiscalizerApp .multi-select-menu label:hover{background:#eef6f8;}
#fiscalizerApp .multi-select-menu input{width:16px!important;height:16px;margin:0;padding:0;}
/* Read-only correction evidence; not an additional report column. */
.fiscalizer-correction-actions{display:flex;flex-wrap:wrap;gap:.5rem;margin:.75rem 0}
.fiscalizer-correction-actions button{text-align:left;white-space:normal}
.fiscalizer-correction-dialog{border:1px solid #d8e2ec;border-radius:14px;padding:1.5rem;width:min(700px,90vw);max-height:85vh;overflow:auto;color:#17344d}
.fiscalizer-correction-dialog::backdrop{background:rgba(15,35,55,.45)}
.fiscalizer-correction-dialog dl{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:1rem}
.fiscalizer-correction-dialog dt{font-weight:600}
.fiscalizer-correction-dialog dd{margin:.25rem 0 0;overflow-wrap:anywhere}
.fiscalizer-correction-dialog form{display:flex;justify-content:flex-end;margin-top:1rem}
@media print{.fiscalizer-correction-actions,.fiscalizer-correction-dialog{display:none}}
