html,body{height:100%;overflow:hidden;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;}
  /* sidebar */
  #sidebar{position:fixed;left:0;top:0;height:100%;width:240px;transform:translateX(-100%);transition:transform .2s ease,width .2s ease;z-index:40;background:#fff;border-right:1px solid #F0F0F0;display:flex;flex-direction:column;}
  #sidebar.open{transform:translateX(0);}
  .sidebar-logo{display:block;width:172px;max-width:100%;height:auto;}
  .sidebar-logo-compact{display:none;width:32px;height:32px;object-fit:contain;}
  .sidebar-brand{position:relative;display:flex;align-items:center;min-height:82px;}
  .sidebar-collapse-button{display:none;position:absolute;right:-13px;top:50%;transform:translateY(-50%);width:27px;height:27px;border:1px solid #E5E7EB;border-radius:999px;background:#fff;color:#6B7280;align-items:center;justify-content:center;box-shadow:0 2px 8px rgba(15,23,42,.09);transition:color .15s,background .15s,transform .2s;z-index:2;}
  .sidebar-collapse-button:hover{background:#F9FAFB;color:#0052CC;}
  @media(min-width:1024px){
    #sidebar{position:relative;transform:translateX(0)!important;z-index:auto;}
    #sidebarOverlay{display:none!important;}
    .sidebar-collapse-button{display:flex;}
    #sidebar.sidebar-collapsed{width:72px;}
    #sidebar.sidebar-collapsed .sidebar-brand{padding-left:19px;padding-right:19px;justify-content:center;}
    #sidebar.sidebar-collapsed .sidebar-brand-content{align-items:center;}
    #sidebar.sidebar-collapsed .sidebar-logo,#sidebar.sidebar-collapsed .sidebar-company{display:none;}
    #sidebar.sidebar-collapsed .sidebar-logo-compact{display:block;}
    #sidebar.sidebar-collapsed .sidebar-collapse-icon{transform:rotate(180deg);}
    #sidebar.sidebar-collapsed nav{padding-left:10px;padding-right:10px;}
    #sidebar.sidebar-collapsed .sidebar-group-toggle{display:none;}
    #sidebar.sidebar-collapsed .sidebar-group-panel[hidden]{display:block!important;}
    #sidebar.sidebar-collapsed .sidebar-group{margin-top:5px;}
    #sidebar.sidebar-collapsed .sidebar-favorites-group{padding-bottom:5px;margin-bottom:5px;}
    #sidebar.sidebar-collapsed .nav-item-row{justify-content:center;}
    #sidebar.sidebar-collapsed .nav-item{flex:0 0 44px;width:44px;height:42px;padding:0;justify-content:center;gap:0;}
    #sidebar.sidebar-collapsed .nav-item svg{width:19px;height:19px;}
    #sidebar.sidebar-collapsed .nav-item-label,#sidebar.sidebar-collapsed .nav-favorite-btn,#sidebar.sidebar-collapsed .nav-item>span:not(.nav-item-label){display:none!important;}
    #sidebar.sidebar-collapsed .sidebar-user-area{padding:12px 10px;}
    #sidebar.sidebar-collapsed .sidebar-user-area>div{justify-content:center;flex-direction:column;gap:7px;}
    #sidebar.sidebar-collapsed .sidebar-user-copy{display:none;}
    #sidebar.sidebar-collapsed .sidebar-logout button{width:36px;height:32px;}
  }
  /* nav */
  .nav-item-row{position:relative;display:flex;align-items:center;margin:1px 0;}
  .nav-item{display:flex;align-items:center;gap:10px;flex:1 1 auto;min-width:0;padding:9px 42px 9px 14px;border-radius:10px;font-size:14px;font-weight:500;color:#6B7280;cursor:pointer;transition:all .12s;white-space:nowrap;}
  .nav-item-label{min-width:0;overflow:hidden;text-overflow:ellipsis;}
  .nav-item:hover{background:#F9FAFB;color:#111827;}
  .nav-item.active{background:#E0ECFF;color:#0052CC;font-weight:600;}
  .nav-item.active svg{stroke:#0065F9;}
  .nav-favorite-btn{position:absolute;right:7px;top:50%;transform:translateY(-50%) scale(.94);width:24px;height:24px;border-radius:7px;display:flex;align-items:center;justify-content:center;color:#9CA3AF;background:transparent;opacity:0;pointer-events:none;transition:opacity .14s ease,transform .14s ease,color .14s ease;}
  .nav-item-row:hover .nav-favorite-btn,.nav-item-row:focus-within .nav-favorite-btn{opacity:1;pointer-events:auto;transform:translateY(-50%) scale(1);}
  .nav-favorite-btn:hover{background:transparent;color:#4B5563;}
  .nav-favorite-btn[aria-pressed="true"]{background:transparent;color:#9CA3AF;}
  .sidebar-favorites-group{border-bottom:1px solid #F0F0F0;margin-bottom:7px;padding-bottom:7px;}
  #sidebarFavoritesContent .nav-item-row{margin-top:2px;}
  .sidebar-group{margin-top:5px;}
  .sidebar-group-toggle{width:100%;min-height:32px;padding:7px 12px;display:flex;align-items:center;justify-content:space-between;gap:8px;border-radius:9px;color:#9CA3AF;font-size:10px;font-weight:700;letter-spacing:.09em;text-transform:uppercase;cursor:pointer;transition:background .12s,color .12s;}
  .sidebar-group-toggle:hover{background:#F9FAFB;color:#4B5563;}
  .sidebar-group-toggle.has-active{color:#0052CC;}
  .sidebar-group-chevron{flex:none;transition:transform .18s ease;}
  .sidebar-group-toggle[aria-expanded="true"] .sidebar-group-chevron{transform:rotate(90deg);}
  .sidebar-group-panel{padding:1px 0 4px;}
  .sidebar-subnav{margin:2px 0 3px 26px;padding-left:8px;border-left:1px solid #E5E7EB;display:flex;flex-direction:column;gap:2px;}
  .sidebar-subnav-item{border:0;box-shadow:none;}
  .sidebar-subnav-item:hover{box-shadow:none;}
  /* mono de datos: cifras tabulares */
  .font-mono{font-feature-settings:"tnum" 1;letter-spacing:-.01em;}
  /* cards */
  .card{background:#fff;border-radius:16px;border:1px solid #F0F0F0;box-shadow:0 1px 3px rgba(0,0,0,.04);}
  .card-hover{transition:box-shadow .16s,transform .16s,border-color .16s;}
  .card-hover:hover{box-shadow:0 8px 24px -8px rgba(0,0,0,.12);transform:translateY(-2px);border-color:#E5E7EB;}
  /* foco accesible para teclado */
  a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,[tabindex]:focus-visible{
    outline:2px solid #0065F9;outline-offset:2px;border-radius:8px;}
  /* pulso "en vivo" */
  .live-dot{position:relative;display:inline-block;width:9px;height:9px;border-radius:999px;background:#0065F9;}
  .live-dot::after{content:"";position:absolute;inset:0;border-radius:999px;background:#0065F9;animation:pulse 1.8s ease-out infinite;}
  @keyframes pulse{0%{transform:scale(1);opacity:.6}100%{transform:scale(3.2);opacity:0}}
  /* fichada nueva en el feed */
  .feed-new{animation:feedin .45s ease,feedglow 2.4s ease forwards;}
  @keyframes feedin{from{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:none}}
  @keyframes feedglow{0%{background:#E0ECFF}100%{background:transparent}}
  /* badges */
  .badge{display:inline-flex;align-items:center;padding:2px 10px;border-radius:999px;font-size:12px;font-weight:600;line-height:1.6;}
  .bg-green{background:#E0ECFF;color:#0052CC;}
  .bg-red{background:#FEF2F2;color:#DC2626;}
  .bg-amber{background:#FFFBEB;color:#D97706;}
  .bg-blue{background:#EFF6FF;color:#2563EB;}
  .bg-gray{background:#F3F4F6;color:#6B7280;}
  .bg-slate{background:#F1F5F9;color:#475569;}
  /* table */
  th{font-size:11px;font-weight:700;color:#9CA3AF;text-transform:uppercase;letter-spacing:.05em;white-space:nowrap;}
  td{font-size:13.5px;color:#374151;}
  tbody tr:hover td{background:#FAFAFA;}
  /* sim bar */
  .simbar{height:6px;border-radius:999px;background:#E5E7EB;overflow:hidden;}
  .simfill{height:100%;border-radius:999px;transition:width .5s ease;}
  /* scrollbar */
  ::-webkit-scrollbar{width:5px;height:5px;}
  ::-webkit-scrollbar-thumb{background:#D1D5DB;border-radius:3px;}
  ::-webkit-scrollbar-track{background:transparent;}
  /* mock map */
  .mockmap{position:relative;border-radius:12px;overflow:hidden;height:110px;
    background:linear-gradient(rgba(255,255,255,.55),rgba(255,255,255,.55)),
    repeating-linear-gradient(0deg,#d8dde2 0 1px,transparent 1px 22px),
    repeating-linear-gradient(90deg,#d8dde2 0 1px,transparent 1px 22px),#EDEAE3;}
  .mockmap::before{content:"";position:absolute;left:-10%;top:40%;width:120%;height:12px;background:#fff;border-top:1px solid #d9d4c8;border-bottom:1px solid #d9d4c8;transform:rotate(-6deg);}
  input,select{font-family:inherit;}
  .chart-wrap{position:relative;height:190px;}
  /* entrada suave páginas */
  #content > *{animation:fi .18s ease;}
  @keyframes fi{from{opacity:0;transform:translateY(5px)}to{opacity:1;transform:none}}
  /* fila nueva en tabla de fichajes */
  .row-new{animation:rowIn .4s cubic-bezier(.16,1,.3,1),rowGlow 3s ease forwards;}
  @keyframes rowIn{from{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:none}}
  @keyframes rowGlow{0%{background:rgba(0,101,249,.08)}60%{background:rgba(0,101,249,.05)}100%{background:transparent}}
  /* bump animado en contadores KPI */
  .kpi-bump{animation:kpiBump .5s cubic-bezier(.16,1,.3,1);}
  @keyframes kpiBump{0%{transform:scale(1)}40%{transform:scale(1.22)}100%{transform:scale(1)}}
  /* respeta usuarios que reducen movimiento */
  @media(prefers-reduced-motion:reduce){
    *,#content > *,.live-dot::after{animation:none!important;transition:none!important;}
  }

/* Editor de fichadas: cabecera y acciones fijas, contenido desplazable. */
#empModalInner.record-editor {
  width:100%; max-width:640px; max-height:calc(100vh - 32px);
  max-height:min(90dvh,calc(100dvh - 32px)); overflow:hidden;
  border:1px solid #e5e7eb; border-radius:20px;
}
.record-editor-header > button { min-width:44px; min-height:44px; }
.record-editor-footer button { min-height:44px; }
.record-editor-header { flex-shrink:0; padding:20px 24px 16px; }
.record-editor-body { min-height:0; overflow-y:auto; overscroll-behavior:contain; padding:20px 24px; gap:16px; }
.record-editor-footer { flex-shrink:0; padding:16px 24px; background:#f9fafb; }
.record-editor :is(input:not([type=hidden]):not([type=checkbox]):not([type=radio]),select,textarea) { min-width:0; width:100%; font-size:14px; background:#fff; border-color:#d1d5db; }
.record-editor :is(input:not([type=hidden]):not([type=checkbox]):not([type=radio]),select) { min-height:42px; padding:9px 12px; }
.record-editor textarea { min-height:88px; padding:10px 12px; resize:vertical; }
.record-editor :is(input,select,textarea,button):focus-visible { outline:2px solid #0891b2; outline-offset:2px; }
.record-editor #regEmpButton { background:#f8fafc; min-height:64px; }
.record-editor #regEmpMenu { position:relative; width:100%; max-width:100%; }
.record-editor #regEmpOptions { max-height:180px; }
.record-editor [aria-invalid=true] { border-color:#dc2626; }
.record-editor button:disabled { opacity:.65; cursor:wait; }
.record-editor-caption { font-size:12px; color:#64748b; margin-top:6px; line-height:1.45; }
@media(max-width:639px) {
  #empModal { padding:12px; }
  #empModalInner.record-editor { max-height:calc(100dvh - 24px); border-radius:16px; }
  .record-editor-header,.record-editor-footer { padding:16px; }
  .record-editor-body { padding:16px; gap:14px; }
  .record-editor :is(input:not([type=hidden]):not([type=checkbox]):not([type=radio]),select,textarea) { font-size:16px; }
}

/* Expediente de jornada: impresión conserva sólo el contenido de la revisión. */
.jornada-review article { min-width: 0; }
.jornada-review td { overflow-wrap: anywhere; max-width: 26rem; }
@media print {
  body:has(.jornada-review) * { visibility: hidden; }
  body .jornada-review, body .jornada-review * { visibility: visible; }
  body .jornada-review { position: absolute; inset: 0; width: 100%; color: #111; }
  .jornada-review #reviewForm, .jornada-review .review-actions, .jornada-review a { display: none; }
  .jornada-review .card { box-shadow: none; margin-bottom: 1rem; }
  .jornada-review article { break-inside: avoid; }
  .jornada-review .overflow-x-auto { overflow: visible; }
}

/* Confirmaciones y motivos: tarjeta compacta con contenido y acciones separados. */
.panel-action-overlay { position:fixed; inset:0; z-index:200; display:flex; align-items:center; justify-content:center; padding:24px; background:rgba(15,23,42,.48); backdrop-filter:blur(5px); }
.panel-action-dialog { width:100%; max-width:540px; max-height:calc(100dvh - 48px); display:flex; flex-direction:column; overflow:hidden; background:#fff; border:1px solid rgba(255,255,255,.8); border-radius:24px; box-shadow:0 24px 80px rgba(15,23,42,.25); animation:panel-action-enter .16s ease-out; }
.panel-action-header { display:flex; align-items:center; gap:14px; padding:24px 24px 20px; flex-shrink:0; }
.panel-action-icon { display:flex; align-items:center; justify-content:center; width:46px; height:46px; flex-shrink:0; border-radius:15px; background:#eff6ff; color:#2563eb; }
.panel-action-heading { min-width:0; flex:1; }
.panel-action-eyebrow { color:#64748b; font-size:10px; font-weight:800; letter-spacing:.1em; text-transform:uppercase; margin:0 0 4px; }
.panel-action-heading h2 { margin:0; font-size:20px; font-weight:800; line-height:1.25; color:#0f172a; }
.panel-action-close { display:flex; align-items:center; justify-content:center; width:44px; height:44px; flex-shrink:0; border:0; border-radius:12px; color:#64748b; background:transparent; }
.panel-action-close:hover { background:#f1f5f9; color:#0f172a; }
.panel-action-body { min-height:0; overflow-y:auto; overscroll-behavior:contain; padding:0 24px 24px; }
.panel-action-message { margin:0; white-space:pre-wrap; overflow-wrap:anywhere; color:#475569; font-size:14px; line-height:1.65; }
.panel-action-summary { margin-top:18px; padding:4px 16px; background:#f8fafc; border:1px solid #e2e8f0; border-radius:16px; }
.panel-action-summary[hidden],.panel-action-error[hidden] { display:none; }
.panel-action-summary > div { display:flex; align-items:baseline; justify-content:space-between; gap:18px; padding:11px 0; border-bottom:1px solid #e2e8f0; }
.panel-action-summary > div:last-child { border-bottom:0; }
.panel-action-summary span { color:#64748b; font-size:12px; flex-shrink:0; }
.panel-action-summary strong { color:#0f172a; font-size:13px; text-align:right; overflow-wrap:anywhere; }
.panel-action-reason { margin-top:22px; }
.panel-action-label-row { display:flex; align-items:baseline; justify-content:space-between; gap:12px; margin-bottom:9px; }
.panel-action-label-row label { font-size:13px; font-weight:700; color:#0f172a; }
.panel-action-label-row label span { color:#dc2626; }
.panel-action-label-row > span { font-size:11px; color:#94a3b8; font-variant-numeric:tabular-nums; }
.panel-action-reason textarea { width:100%; min-height:116px; max-height:240px; resize:vertical; padding:12px 14px; border:1px solid #cbd5e1; border-radius:13px; background:#fff; font:inherit; font-size:14px; line-height:1.6; color:#0f172a; outline:none; transition:border-color .15s,box-shadow .15s; }
.panel-action-reason textarea::placeholder { color:#94a3b8; }
.panel-action-reason textarea:focus { border-color:#2563eb; box-shadow:0 0 0 3px rgba(37,99,235,.12); }
.panel-action-reason textarea[aria-invalid="true"] { border-color:#dc2626; box-shadow:0 0 0 3px rgba(220,38,38,.1); }
.panel-action-help { margin:7px 0 0; color:#64748b; font-size:12px; line-height:1.5; }
.panel-action-audit { display:flex; align-items:flex-start; gap:7px; margin:12px 0 0; color:#64748b; font-size:12px; line-height:1.5; }
.panel-action-audit svg { flex-shrink:0; margin-top:1px; color:#2563eb; }
.panel-action-error { margin-top:12px; padding:10px 12px; border-radius:10px; background:#fef2f2; color:#b91c1c; font-size:13px; line-height:1.5; }
.panel-action-footer { display:flex; justify-content:flex-end; gap:10px; padding:16px 24px; border-top:1px solid #e2e8f0; background:#f8fafc; flex-shrink:0; }
.panel-action-footer button { min-height:44px; padding:11px 18px; border-radius:12px; font-size:13px; font-weight:700; }
.panel-action-cancel { border:1px solid #e2e8f0; background:#fff; color:#475569; }
.panel-action-cancel:hover { border-color:#cbd5e1; background:#f1f5f9; }
.panel-action-accept { border:1px solid #2563eb; background:#2563eb; color:#fff; box-shadow:0 2px 4px rgba(37,99,235,.15); }
.panel-action-accept:hover { background:#1d4ed8; border-color:#1d4ed8; }
.panel-action-dialog button:focus-visible { outline:3px solid rgba(37,99,235,.35); outline-offset:2px; }
.panel-action-danger .panel-action-icon { background:#fef2f2; color:#dc2626; }
.panel-action-danger .panel-action-accept { background:#dc2626; border-color:#dc2626; box-shadow:none; }
@keyframes panel-action-enter { from { opacity:0; transform:translateY(8px); } to { opacity:1; transform:translateY(0); } }
@media(max-width:560px) {
  .panel-action-overlay { padding:12px; }
  .panel-action-dialog { border-radius:20px; max-height:calc(100dvh - 24px); }
  .panel-action-header { padding:20px 18px 16px; gap:10px; }
  .panel-action-heading h2 { font-size:18px; }
  .panel-action-body { padding:0 18px 20px; }
  .panel-action-reason textarea { font-size:16px; }
  .panel-action-footer { padding:14px 18px; }
  .panel-action-footer button { flex:1; padding:12px 10px; }
}
@media(prefers-reduced-motion:reduce) { .panel-action-dialog { animation:none; } }

/* Revisión de jornada: contexto, historial y evidencia con jerarquías propias. */
.jornada-review { color:#0f172a; max-width:1440px; margin:auto; }
.jornada-review .jr-toolbar,.jr-overview,.jr-section { border:1px solid #e2e8f0; border-radius:22px; background:#fff; box-shadow:0 2px 5px rgba(15,23,42,.025); }
.jr-toolbar { padding:24px; }
.jr-toolbar-top { display:flex; align-items:center; justify-content:space-between; gap:20px; }
.jr-back { display:inline-block; font-size:12px; font-weight:700; color:#64748b; margin-bottom:12px; }
.jr-back:hover,.jr-link:hover { color:#1d4ed8; }
.jr-toolbar h2 { font-size:25px; font-weight:800; letter-spacing:-.03em; margin:0; }
.jr-toolbar-top p,.jr-section-heading p { font-size:13px; color:#64748b; margin:6px 0 0; line-height:1.6; }
.jr-query { display:flex; align-items:flex-end; flex-wrap:wrap; gap:16px; margin-top:22px; padding-top:20px; border-top:1px solid #f1f5f9; }
.jr-label { display:block; font-size:10px; color:#64748b; font-weight:800; text-transform:uppercase; letter-spacing:.09em; }
.jr-query-employee { flex:1; min-width:180px; padding-bottom:10px; }
.jr-query-employee strong { display:block; font-size:14px; margin-top:8px; }
.jr-date-controls { display:flex; align-items:center; margin-top:8px; border:1px solid #cbd5e1; border-radius:12px; overflow:hidden; }
.jr-date-controls input { width:154px; border:0; background:white; padding:10px 8px; font-size:14px; color:#0f172a; min-height:44px; }
.jr-date-controls button { width:38px; min-height:44px; color:#64748b; font-size:22px; }
.jr-date-controls button:hover { color:#2563eb; background:#eff6ff; }
.jr-button { min-height:44px; padding:10px 16px; border:1px solid transparent; border-radius:12px; font-size:13px; font-weight:700; white-space:nowrap; }
.jr-button-primary { background:#2563eb; color:white; }
.jr-button-primary:hover { background:#1d4ed8; }
.jr-button-secondary { background:white; border-color:#e2e8f0; color:#475569; }
.jr-button:disabled { opacity:.45; cursor:default; }
.jornada-review button:focus-visible,.jornada-review a:focus-visible,.jr-date-controls input:focus-visible { outline:3px solid #bfdbfe; outline-offset:2px; }
.jr-status:empty { display:none; }
.jr-status { margin:18px 0; border-radius:12px; padding:14px 16px; background:#eff6ff; color:#1d4ed8; font-size:13px; }
.jr-status-loading:before { content:''; display:inline-block; width:14px; height:14px; border:2px solid #bfdbfe; border-top-color:#2563eb; border-radius:50%; margin-right:10px; vertical-align:middle; animation:jr-spin .8s linear infinite; }
.jr-status-error { background:#fef2f2; color:#b91c1c; }
.jr-overview { margin-top:20px; padding:24px; }
.jr-overview-heading { display:flex; align-items:center; justify-content:space-between; gap:16px; }
.jr-overview h3 { font-size:22px; font-weight:800; margin-top:5px; letter-spacing:-.025em; }
.jr-overview-heading p { font-size:13px; color:#64748b; margin-top:4px; }
.jr-overview-date { font-size:14px; font-weight:700; color:#475569; background:#f8fafc; border:1px solid #e2e8f0; border-radius:10px; padding:9px 12px; }
.jr-overview-metrics { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:12px; margin-top:20px; }
.jr-metric { padding:14px 16px; background:#f8fafc; border-radius:12px; min-width:0; }
.jr-metric span { display:block; font-size:11px; color:#64748b; line-height:1.5; }
.jr-metric strong { display:block; margin-top:5px; font-size:16px; font-weight:800; overflow-wrap:anywhere; }
.jr-overview-metrics strong { font-size:25px; }
.jr-footnote { color:#94a3b8; font-size:11px; margin-top:14px; line-height:1.5; }
.jr-section-nav { display:flex; gap:8px; margin:18px 0; overflow-x:auto; }
.jr-section-nav a { display:flex; align-items:center; gap:9px; font-size:12px; font-weight:700; color:#475569; border:1px solid #e2e8f0; background:#fff; border-radius:10px; padding:10px 14px; white-space:nowrap; }
.jr-section-nav a:hover { color:#2563eb; border-color:#bfdbfe; }
.jr-section-nav span { font-size:10px; padding:2px 6px; border-radius:6px; background:#f1f5f9; }
.jr-review-grid { display:grid; grid-template-columns:minmax(0,1.35fr) minmax(0,1fr); gap:20px; align-items:start; }
.jr-section { min-width:0; padding:22px; scroll-margin-top:20px; }
.jr-section-heading { margin-bottom:20px; }
.jr-section-heading h3 { font-size:18px; font-weight:800; margin-top:5px; }
.jr-history,.jr-records { display:flex; flex-direction:column; gap:16px; }
.jr-event,.jr-record { min-width:0; border:1px solid #e2e8f0; border-radius:16px; padding:18px; }
.jr-event { border-left:3px solid #93c5fd; }
.jr-event-deleted { border-left-color:#fca5a5; }
.jr-event-top,.jr-record-top,.jr-calculation-top { display:flex; align-items:center; flex-wrap:wrap; justify-content:space-between; gap:10px; }
.jr-event-top time { color:#64748b; font-size:11px; font-variant-numeric:tabular-nums; }
.jr-event h4 { font-size:14px; font-weight:800; margin-top:12px; line-height:1.6; overflow-wrap:anywhere; }
.jr-chip { display:inline-flex; align-items:center; padding:4px 8px; border-radius:7px; font-size:10px; font-weight:700; line-height:1.4; }
.jr-chip-blue { background:#eff6ff; color:#2563eb; }
.jr-chip-red { background:#fef2f2; color:#dc2626; }
.jr-chip-green { background:#ecfdf5; color:#047857; }
.jr-chip-amber { background:#fffbeb; color:#b45309; }
.jr-event-meta { font-size:12px; font-weight:600; color:#475569; line-height:1.7; margin-top:5px; }
.jr-event-meta span { color:#94a3b8; font-weight:400; }
.jr-reason { background:#f8fafc; border-radius:10px; padding:12px; margin-top:14px; }
.jr-reason > span { font-size:10px; font-weight:800; color:#64748b; text-transform:uppercase; letter-spacing:.06em; }
.jr-reason p { font-size:13px; color:#334155; line-height:1.6; margin-top:5px; white-space:pre-wrap; overflow-wrap:anywhere; }
.jr-changes { margin-top:14px; border:1px solid #e2e8f0; border-radius:10px; overflow:hidden; }
.jr-change-head,.jr-change { display:grid; grid-template-columns:1fr 1.2fr 1.2fr; gap:12px; padding:10px 12px; font-size:12px; }
.jr-change-head { background:#f8fafc; color:#64748b; font-size:10px; font-weight:700; }
.jr-change { border-top:1px solid #e2e8f0; align-items:start; }
.jr-change strong { color:#475569; font-weight:600; }
.jr-change > div { min-width:0; overflow-wrap:anywhere; white-space:pre-wrap; }
.jr-change > div:last-child { color:#1d4ed8; font-weight:600; }
.jr-change small { display:none; }
.jr-link { display:inline-block; margin-top:14px; font-size:12px; color:#2563eb; font-weight:700; }
.jr-state,.jr-notice,.jr-empty { font-size:12px; line-height:1.6; margin-top:12px; overflow-wrap:anywhere; }
.jr-notice { color:#b45309; }
.jr-text-red { color:#b91c1c!important; }
.jr-record-deleted { background:#fffafa; border-color:#fecaca; }
.jr-record-top > div { display:flex; align-items:center; gap:10px; }
.jr-record-time { font-size:23px; font-weight:800; font-variant-numeric:tabular-nums; letter-spacing:-.02em; }
.jr-record-state { color:#64748b; font-size:9px; font-weight:800; letter-spacing:.06em; }
.jr-record-location { font-size:13px; font-weight:700; margin-top:10px; }
.jr-record-meta { font-size:11px; color:#94a3b8; margin-top:4px; }
.jr-evidence-chips { display:flex; flex-wrap:wrap; gap:6px; margin-top:14px; }
.jr-evidence-chips span { background:#f1f5f9; border-radius:6px; padding:4px 7px; font-size:10px; color:#64748b; }
.jr-record-details { margin-top:14px; padding-top:12px; border-top:1px solid #f1f5f9; font-size:12px; color:#475569; }
.jr-record-details summary,.jr-calc-detail summary { cursor:pointer; font-weight:700; }
.jr-record-details > div { margin-top:10px; line-height:1.8; }
.jr-record-notes { white-space:pre-wrap; overflow-wrap:anywhere; }
.jr-calculation-section { margin-top:20px; }
.jr-calculations { display:grid; gap:14px; }
.jr-calculation { border:1px solid #e2e8f0; border-radius:16px; padding:18px; min-width:0; }
.jr-calculation h4 { font-size:14px; font-weight:700; }
.jr-calculation h4 span { color:#94a3b8; font-size:12px; font-weight:400; }
.jr-calc-main { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:10px; margin-top:16px; }
.jr-calc-main .jr-metric:last-child { background:#eff6ff; color:#1d4ed8; }
.jr-calc-detail { margin-top:14px; font-size:12px; color:#475569; }
.jr-calc-breakdown { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:10px; margin-top:14px; }
.jr-history-note { padding:16px 20px; border:1px solid #fde68a; border-radius:14px; background:#fffbeb; margin-top:20px; color:#92400e; }
.jr-history-note strong { font-size:12px; }
.jr-history-note p { font-size:12px; line-height:1.6; margin-top:4px; }
.jr-empty-state { padding:24px 18px; text-align:center; border:1px dashed #cbd5e1; border-radius:14px; background:#f8fafc; }
.jr-empty-state strong { font-size:13px; color:#475569; }
.jr-empty-state p { font-size:12px; color:#64748b; margin-top:5px; line-height:1.6; }
@keyframes jr-spin { to { transform:rotate(360deg); } }
@media(max-width:1100px) { .jr-review-grid { grid-template-columns:1fr; } }
@media(max-width:600px) {
  .jr-toolbar,.jr-overview,.jr-section { padding:18px; border-radius:18px; }
  .jr-toolbar-top { align-items:flex-start; flex-direction:column; gap:14px; }
  .jr-toolbar h2 { font-size:22px; }
  .jr-query { gap:14px; }
  .jr-query-employee { flex-basis:100%; }
  .jr-query-date { flex:1; }
  .jr-date-controls input { width:100%; min-width:0; font-size:16px; }
  .jr-query > .jr-button { width:100%; }
  .jr-overview-date { display:none; }
  .jr-overview h3 { font-size:20px; }
  .jr-overview-metrics { gap:7px; }
  .jr-overview-metrics .jr-metric { padding:10px; }
  .jr-overview-metrics .jr-metric span { font-size:10px; }
  .jr-overview-metrics strong { font-size:22px; }
  .jr-event,.jr-record,.jr-calculation { padding:14px; }
  .jr-change-head { display:none; }
  .jr-change { grid-template-columns:1fr 1fr; gap:8px; }
  .jr-change > strong { grid-column:1/-1; }
  .jr-change small { display:block; font-size:10px; color:#94a3b8; margin-bottom:3px; font-weight:400; }
  .jr-calc-main,.jr-calc-breakdown { grid-template-columns:1fr; }
}
@media print {
  .jornada-review .jr-toolbar,.jornada-review .jr-section-nav { display:none; }
  .jr-review-grid { display:block; }
  .jr-section { margin-top:16px; box-shadow:none; }
  .jr-event,.jr-record,.jr-calculation { break-inside:avoid; }
  .jr-record-details > div,.jr-calc-detail > .jr-calc-breakdown,.jr-calc-detail > .jr-footnote { display:block!important; }
  .jr-calc-detail > .jr-calc-breakdown { display:grid!important; }
}
@media(prefers-reduced-motion:reduce) { .jr-status-loading:before { animation:none; } }
