:root{
  --blue:#087cb6;
  --blue-dark:#045a87;
  --orange:#f47b20;
  --orange-dark:#c95c09;
  --bg:#f4f7fb;
  --panel:#ffffff;
  --text:#1d2939;
  --muted:#667085;
  --line:#e4e7ec;
  --green:#12a150;
  --red:#d92d20;
  --yellow:#f79009;
  --shadow:0 16px 40px rgba(16,24,40,.08);
}

/* ===== Centro de Horas PRO: cuadrante, planificación y cierre ===== */
.hours-control-hero,
.planning-hero,
.close-hero {
  background:
    radial-gradient(circle at 85% 20%, rgba(43, 182, 166, .23), transparent 30%),
    linear-gradient(135deg, #072f47 0%, #0b4b69 60%, #0a6371 100%);
}
.hours-control-hero h2,
.planning-hero h2,
.close-hero h2 { max-width: 850px; }
.week-navigation { display: grid; gap: 10px; min-width: 260px; }
.week-navigation form { display: flex; gap: 8px; }
.week-navigation input,
.period-picker input { min-width: 155px; background: #fff; color: #17384a; }
.weekly-control-panel { padding-bottom: 12px; }
.weekly-legend { display: flex; flex-wrap: wrap; gap: 8px; margin: 0 0 14px; }
.weekly-legend span { border-radius: 999px; padding: 5px 10px; font-size: 12px; font-weight: 800; }
.weekly-legend .ok { background: #dcfce7; color: #166534; }
.weekly-legend .pending { background: #fef3c7; color: #92400e; }
.weekly-legend .alert { background: #fee2e2; color: #991b1b; }
.weekly-legend .leave { background: #e0e7ff; color: #3730a3; }
.weekly-legend .off { background: #eef2f6; color: #64748b; }
.weekly-grid-wrap { border: 1px solid #dbe7ed; border-radius: 14px; max-height: 68vh; }
.weekly-hours-grid { min-width: 1180px; border-collapse: separate; border-spacing: 0; }
.weekly-hours-grid th { position: sticky; top: 0; z-index: 4; background: #edf5f8; color: #25485a; text-align: center; }
.weekly-hours-grid th:first-child { left: 0; z-index: 6; text-align: left; min-width: 185px; }
.weekly-hours-grid th small { display: block; color: #78909d; font-weight: 600; }
.weekly-hours-grid td { padding: 5px; min-width: 126px; border-bottom: 1px solid #e6eef2; border-right: 1px solid #edf2f5; }
.weekly-hours-grid td:first-child { position: sticky; left: 0; z-index: 3; background: #fff; min-width: 185px; padding: 10px 12px; }
.weekly-hours-grid td:first-child small { display: block; margin-top: 3px; color: #718793; }
.week-cell { position: relative; display: grid; min-height: 76px; padding: 9px; border: 1px solid transparent; border-radius: 10px; text-decoration: none; transition: transform .15s ease, box-shadow .15s ease; }
.week-cell:hover { transform: translateY(-2px); box-shadow: 0 8px 20px rgba(8, 48, 70, .14); }
.week-cell strong { color: #113b50; font-size: 16px; }
.week-cell small { color: #66808d; }
.week-cell em { margin-top: 5px; font-size: 10px; font-style: normal; font-weight: 800; line-height: 1.2; text-transform: uppercase; }
.week-cell.ok { background: #eafaf0; border-color: #bce8ca; }
.week-cell.ok em { color: #18743a; }
.week-cell.pending { background: #fff8e7; border-color: #f6d992; }
.week-cell.pending em { color: #9a6408; }
.week-cell.alert { background: #fff0ee; border-color: #f4b6ae; }
.week-cell.alert em { color: #b52a1c; }
.week-cell.leave { background: #eef0ff; border-color: #c8cff7; }
.week-cell.leave em { color: #4c51a8; }
.week-cell.off { background: #f5f7f9; border-color: #e4eaee; }
.week-cell.off strong,
.week-cell.off small,
.week-cell.off em { color: #8b9aa3; }
.week-cell.future { background: #edf7fb; border-color: #c9e5ee; }
.week-cell.future em { color: #26718a; }
.cell-lock { position: absolute; right: 5px; top: 5px; padding: 2px 5px; border-radius: 5px; background: #263d49; color: #fff; font-size: 8px; font-weight: 900; text-transform: uppercase; }
.week-total { background: #f4f8fa; text-align: center; }
.week-total strong,
.week-total small { display: block; }
.incident-list { display: grid; gap: 7px; }
.incident-row { display: grid; grid-template-columns: 115px minmax(180px, 1fr) 110px minmax(190px, 1fr) 90px; align-items: center; gap: 12px; padding: 11px 13px; border: 1px solid #e4ebef; border-radius: 10px; color: #294b5c; text-decoration: none; background: #fff; }
.incident-row:hover { border-color: #f29e90; background: #fff9f8; }
.incident-type { width: fit-content; border-radius: 999px; padding: 4px 8px; background: #fee2e2; color: #a32020; font-size: 11px; font-weight: 900; }
.incident-row strong { color: #08728a; text-align: right; }
.success-empty { color: #137743; background: #effcf4; border-radius: 10px; }

.planning-table { min-width: 1280px; }
.planning-table th { text-align: center; white-space: nowrap; }
.planning-table th:first-child { text-align: left; position: sticky; left: 0; z-index: 5; }
.planning-table td { text-align: center; }
.planning-table td:first-child { position: sticky; left: 0; z-index: 3; min-width: 220px; background: #fff; text-align: left; }
.planning-table td:first-child small { display: block; margin-top: 4px; color: #748994; }
.planning-table input { min-width: 0; padding: 8px; }
.planning-table .plan-time { width: 100px; }
.planning-table .plan-hour { width: 68px; text-align: center; }
.plan-week-total { white-space: nowrap; color: #08728a; }

.period-picker { display: flex; align-items: end; gap: 8px; }
.period-picker label { color: #fff; font-weight: 800; }
.period-picker input { display: block; margin-top: 5px; }
.close-hero.is-closed { background: linear-gradient(135deg, #172b38, #395262); }
.close-layout { display: grid; grid-template-columns: minmax(0, 1.35fr) minmax(300px, .65fr); gap: 16px; margin-bottom: 16px; }
.period-status { border-radius: 999px; padding: 7px 13px; font-size: 12px; font-weight: 900; text-transform: uppercase; letter-spacing: .05em; }
.period-status.open { background: #dcfce7; color: #166534; }
.period-status.closed { background: #dbe6ec; color: #263d49; }
.close-action-panel form { display: grid; gap: 14px; }
.close-action-panel label { font-weight: 800; color: #304f5e; }
.close-action-panel textarea,
.close-action-panel input { display: block; width: 100%; margin-top: 6px; }
.close-confirm { padding: 12px; border: 1px solid #f1c46e; border-radius: 10px; background: #fff9e9; }
.close-metadata { display: grid; gap: 6px; margin-bottom: 18px; padding: 15px; border-radius: 10px; background: #edf4f7; }
.close-metadata p { margin: 4px 0 0; white-space: pre-wrap; }
.close-checklist { height: fit-content; }
.check-result { display: flex; gap: 12px; align-items: center; margin: 9px 0; padding: 12px; border-radius: 10px; }
.check-result > span { display: grid; place-items: center; width: 29px; height: 29px; border-radius: 50%; font-weight: 900; }
.check-result b,
.check-result small { display: block; }
.check-result.ok { background: #effaf3; color: #176b38; }
.check-result.ok > span { background: #c7efd4; }
.check-result.warning { background: #fff6e5; color: #915f09; }
.check-result.warning > span { background: #f9dfa5; }
.control-alert { display: inline-block; margin-top: 4px; padding: 3px 7px; border-radius: 999px; background: #fee2e2; color: #a32020; font-size: 10px; font-weight: 900; }
.day-control-pill { display: inline-block; margin-top: 4px; border-radius: 999px; padding: 3px 7px; font-size: 10px; font-weight: 900; white-space: nowrap; }
.day-control-pill.ok { background: #dcfce7; color: #166534; }
.day-control-pill.pending { background: #fef3c7; color: #92400e; }
.day-control-pill.alert { background: #fee2e2; color: #991b1b; }
.day-control-pill.leave { background: #e0e7ff; color: #3730a3; }
.day-control-pill.off,
.day-control-pill.future { background: #edf2f5; color: #607783; }
.select-col { width: 44px; }
.btn:disabled { cursor: not-allowed; opacity: .5; filter: grayscale(.35); }

@media (max-width: 1050px) {
  .close-layout { grid-template-columns: 1fr; }
  .incident-row { grid-template-columns: 100px 1fr 95px; }
  .incident-row span:nth-of-type(2) { display: none; }
  .incident-row strong { text-align: left; }
  .week-navigation { width: 100%; }
}
@media (max-width: 680px) {
  .incident-row { grid-template-columns: 1fr auto; }
  .incident-row > * { grid-column: 1; }
  .incident-row strong { grid-column: 2; grid-row: 1; }
  .period-picker,
  .week-navigation form { align-items: stretch; flex-direction: column; }
}
*{box-sizing:border-box}
body{margin:0;font-family:Inter,Segoe UI,Arial,sans-serif;background:var(--bg);color:var(--text)}
a{color:var(--blue);text-decoration:none}
body.nav-open{overflow:hidden}
:focus-visible{outline:3px solid rgba(244,123,32,.45);outline-offset:2px}
.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}
.skip-link{position:fixed;left:16px;top:12px;z-index:100;transform:translateY(-160%);background:#fff;color:var(--blue-dark);border:1px solid var(--line);border-radius:10px;padding:10px 14px;font-weight:800;box-shadow:var(--shadow)}
.skip-link:focus{transform:translateY(0)}
.layout{display:flex;min-height:100vh}
.sidebar{width:282px;background:linear-gradient(180deg,#06344f,#06283d);color:#fff;position:fixed;height:100vh;left:0;top:0;overflow:auto;padding:20px 14px}
.brand{display:flex;gap:12px;align-items:center;padding:10px 8px 22px;border-bottom:1px solid rgba(255,255,255,.12);margin-bottom:12px}
.brand img{width:56px;height:56px;border-radius:14px;background:#fff;object-fit:cover;padding:2px}
.brand strong{display:block;font-size:18px;letter-spacing:.4px}.brand span{font-size:12px;color:#c5d9e8}
.nav-item{display:flex;align-items:center;gap:11px;color:#d8e9f3;padding:11px 12px;border-radius:12px;margin:3px 0;font-size:14px;font-weight:600}
.nav-item:hover,.nav-item.active{background:linear-gradient(90deg,var(--blue),rgba(244,123,32,.85));color:#fff;box-shadow:0 10px 25px rgba(0,0,0,.18)}
.main{margin-left:282px;width:calc(100% - 282px)}
.topbar{height:88px;background:#fff;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:0 28px;position:sticky;top:0;z-index:5}
.topbar h1{margin:0;font-size:24px}.topbar p{margin:4px 0 0;color:var(--muted);font-size:13px}.userbox{display:flex;align-items:center;gap:12px;color:var(--muted);font-weight:600}
.content{padding:28px;max-width:1600px;margin:0 auto}.grid{display:grid;gap:18px}.cards{grid-template-columns:repeat(4,minmax(180px,1fr))}.two{grid-template-columns:1.35fr 1fr}.report-grid{grid-template-columns:repeat(3,minmax(240px,1fr))}
.card,.panel{background:var(--panel);border:1px solid var(--line);border-radius:18px;box-shadow:var(--shadow)}.card{padding:20px}.panel{padding:22px;margin-bottom:18px}.mt{margin-top:18px}
.stat{display:flex;align-items:center;gap:14px;position:relative;overflow:hidden}.stat:after{content:"";position:absolute;right:-32px;top:-32px;width:100px;height:100px;border-radius:50%;background:rgba(8,124,182,.08)}.stat-icon{font-size:30px;width:52px;height:52px;display:grid;place-items:center;border-radius:16px;background:#eff8ff}.stat.orange .stat-icon{background:#fff4ed}.stat.green .stat-icon{background:#edfcf2}.stat.red .stat-icon{background:#fef3f2}.stat span{color:var(--muted);font-size:13px}.stat strong{display:block;font-size:25px;margin-top:4px}.stat.blue strong{color:var(--blue)}.stat.orange strong{color:var(--orange)}.stat.green strong{color:var(--green)}.stat.red strong{color:var(--red)}
.panel-title{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-bottom:12px}.panel-title h2,.panel h2{margin:0;font-size:18px}.panel p{color:var(--muted)}
.table-wrap{overflow:auto}table{width:100%;border-collapse:separate;border-spacing:0}th{text-align:left;background:#f8fafc;color:#475467;font-size:12px;text-transform:uppercase;letter-spacing:.04em;border-bottom:1px solid var(--line);padding:12px}td{padding:13px 12px;border-bottom:1px solid var(--line);vertical-align:middle;font-size:14px}tr:hover td{background:#fbfdff}small{color:var(--muted)}
.badge{display:inline-flex;align-items:center;border-radius:999px;padding:5px 10px;font-size:12px;font-weight:800}.badge.success{background:#ecfdf3;color:#067647}.badge.warning{background:#fff7ed;color:#b54708}.badge.danger{background:#fef3f2;color:#b42318}.badge.neutral{background:#f2f4f7;color:#475467}
.btn{border:0;border-radius:12px;background:linear-gradient(135deg,var(--blue),var(--orange));color:#fff;display:inline-flex;align-items:center;justify-content:center;gap:8px;font-weight:800;padding:10px 16px;cursor:pointer;box-shadow:0 8px 18px rgba(8,124,182,.20);font-size:14px}.btn:hover{filter:brightness(.98)}.btn.ghost{background:#fff;color:var(--blue);border:1px solid #b9ddec;box-shadow:none}.btn.small{padding:8px 12px;font-size:13px}.btn.mini{padding:6px 9px;border-radius:9px;font-size:12px}.btn.danger{background:#fff;color:var(--red);border:1px solid #fecdca;box-shadow:none}.btn.full{width:100%;margin-top:12px}
.toolbar{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:18px}.search{display:flex;gap:8px;flex:1}.search input{max-width:520px}.actions{display:flex;gap:8px;flex-wrap:wrap}.inline{display:flex;gap:8px;align-items:center}.row-actions{display:flex;gap:7px;flex-wrap:wrap}.row-actions form{display:inline}.actions-cell{min-width:190px}
input,select,textarea{width:100%;border:1px solid #d0d5dd;border-radius:12px;padding:11px 12px;font:inherit;background:#fff;color:var(--text)}textarea{resize:vertical}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(250px,1fr));gap:16px}.field label{display:block;font-weight:800;margin-bottom:7px;color:#344054}.field b{color:var(--orange)}.field.wide{grid-column:1/-1}.field small{display:block;margin-top:5px}.form-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:22px;padding-top:18px;border-top:1px solid var(--line)}.file-link{display:block;margin-bottom:6px;font-weight:700}.form-inline{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.form-inline input{width:200px}.form-inline label{font-weight:800;color:#475467}
.bars{display:flex;flex-direction:column;gap:14px}.bar-row{display:grid;grid-template-columns:145px 1fr 64px;gap:10px;align-items:center}.bar-row span{font-weight:700;color:#344054}.bar-row div{height:12px;border-radius:99px;background:#edf2f7;overflow:hidden}.bar-row i{display:block;height:100%;border-radius:99px;background:linear-gradient(90deg,var(--blue),var(--orange))}.bar-row b{text-align:right;color:var(--blue)}
.report-card h3{margin-top:0}.report-card p{min-height:44px}.import-list{display:flex;flex-direction:column;gap:10px}.import-row{display:grid;grid-template-columns:1fr auto 280px;gap:8px;align-items:center;border:1px solid var(--line);border-radius:14px;padding:10px}.import-row form{display:flex;gap:8px}.import-row input[type=file]{padding:7px}.export-links{display:grid;grid-template-columns:1fr 1fr;gap:10px}.export-links a{padding:12px;border:1px solid #c6e2f2;border-radius:12px;background:#f5fbff;font-weight:800}
.company-card{display:flex;gap:18px;align-items:center}.company-card img{width:120px;height:120px;object-fit:contain;border:1px solid var(--line);border-radius:18px;background:white}.backup-list{display:flex;flex-direction:column;gap:10px}.backup-list a{display:block;padding:13px;border-radius:12px;border:1px solid var(--line);background:#fafcff;font-weight:800}.empty{text-align:center;color:var(--muted);padding:28px}.alert{border-radius:12px;padding:10px 12px;margin:10px 0;font-weight:700}.alert.danger{background:#fef3f2;color:#b42318}
.login-screen{min-height:100vh;display:grid;place-items:center;background:radial-gradient(circle at 25% 15%,rgba(8,124,182,.17),transparent 35%),radial-gradient(circle at 80% 25%,rgba(244,123,32,.17),transparent 32%),#f7fbff;padding:24px}.login-card{width:100%;max-width:430px;background:#fff;border:1px solid var(--line);border-radius:28px;box-shadow:0 30px 70px rgba(16,24,40,.14);padding:34px}.login-logo{width:118px;height:118px;object-fit:contain;display:block;margin:0 auto 12px}.login-card h1{text-align:center;margin:0}.login-card p{text-align:center;color:var(--muted);margin-bottom:20px}.login-card label{font-weight:800;display:block;margin:14px 0 7px}.hint{font-size:12px;color:var(--muted);text-align:center;margin-top:16px;background:#f8fafc;border-radius:12px;padding:10px}
@media(max-width:1100px){.cards,.two,.report-grid{grid-template-columns:1fr 1fr}.sidebar{width:230px}.main{margin-left:230px;width:calc(100% - 230px)}}
@media(max-width:800px){.sidebar{position:relative;width:100%;height:auto}.main{margin:0;width:100%}.layout{display:block}.cards,.two,.report-grid,.form-grid{grid-template-columns:1fr}.toolbar{flex-direction:column;align-items:stretch}.topbar{position:relative}.import-row{grid-template-columns:1fr}.bar-row{grid-template-columns:1fr}.content{padding:16px}}
.nested{box-shadow:none;margin:18px 0 0;background:#fbfdff}.entry-table input{min-width:92px;padding:8px 9px;border-radius:9px}.entry-table td{padding:8px}.entry-table th{white-space:nowrap}.entry-table.compact td,.entry-table.compact th{font-size:12px}.entry-table.compact input{min-width:82px}.quick-actions{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin:16px 0}.quick-actions span{color:var(--muted);font-size:13px}.invoice-total{display:flex;align-items:center;justify-content:flex-end;gap:18px;margin-top:14px;font-size:16px}.invoice-total strong{font-size:24px;color:var(--blue)}
.alert.success{background:#ecfdf3;color:#067647}.grid-two{display:grid;grid-template-columns:1fr 1fr;gap:18px;align-items:start}.muted{color:var(--muted)}.stack-actions{display:flex;gap:10px;flex-wrap:wrap;margin:14px 0}.note-box{background:#f8fafc;border:1px solid var(--line);border-radius:14px;padding:13px;margin-top:14px;color:#475467}.inline-form{display:inline-flex}.scan-import-form{display:grid;grid-template-columns:150px 150px 120px auto;gap:6px;align-items:center}.scan-import-form input,.scan-import-form select{padding:8px;border-radius:9px;font-size:12px;min-width:0}@media(max-width:1100px){.grid-two{grid-template-columns:1fr}.scan-import-form{grid-template-columns:1fr}}
.scan-btn{font-weight:800;}
#cuentaFacturaBox{transition:opacity .2s ease;}
.notice{padding:12px 14px;border-radius:14px;margin:0 0 16px 0;font-weight:700}
.notice.ok{background:#e9f9ef;color:#10743b;border:1px solid #bee8cb}
.notice.error{background:#fff1f1;color:#a62626;border:1px solid #f3b7b7}
.list-head{display:flex;justify-content:space-between;align-items:center;gap:12px;margin:0 0 12px;color:#475467}
.list-head strong{font-size:22px;color:#101828;margin-right:6px}.list-head small{display:block;margin-top:4px;color:var(--muted)}
.form-intro{margin-bottom:18px}.form-intro h2{margin:0 0 5px;font-size:19px}.form-intro p{margin:0;color:var(--muted)}.form-intro b{color:var(--orange)}
.empty-state{display:flex;min-height:120px;align-items:center;justify-content:center;flex-direction:column;gap:9px;color:var(--muted);text-align:center}
.empty-state strong{color:#344054;font-size:16px}.empty-state.compact{min-height:150px;border:1px dashed var(--line);border-radius:14px;background:#fbfdff;padding:18px}
.quick-panel{margin-top:18px}.quick-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:12px}.quick-tile{display:flex;flex-direction:column;gap:7px;border:1px solid #d6e8f2;border-radius:14px;background:#f8fcff;padding:14px;color:#344054;min-height:118px}.quick-tile:hover{border-color:#9fd0e8;background:#f2faff}.quick-tile span{font-size:25px}.quick-tile strong{color:#06344f}.quick-tile small{color:var(--muted);line-height:1.35}
.filter-box{margin-top:10px}
.summary-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:14px;margin-bottom:18px}
.summary-card{background:#f7f9fc;border:1px solid #e7edf5;border-radius:18px;padding:16px;display:flex;flex-direction:column;gap:8px}
.summary-card span{color:#667085;font-size:13px;font-weight:700;text-transform:uppercase;letter-spacing:.03em}
.summary-card strong{font-size:24px;color:#101828}
.muted{color:#667085}

/* ===== Adaptación móvil NOVA BUILD ERP ===== */
.mobile-menu-btn,.mobile-close{display:none}
.mobile-backdrop{display:none}
@media(max-width:900px){
  body{background:#eef4fa;-webkit-text-size-adjust:100%}
  .layout{display:block;min-height:100svh}
  .sidebar{position:fixed;left:0;top:0;bottom:0;width:min(86vw,330px);height:100svh;transform:translateX(-105%);transition:transform .22s ease;z-index:50;border-right:1px solid rgba(255,255,255,.08);padding-bottom:calc(22px + env(safe-area-inset-bottom));}
  body.nav-open .sidebar{transform:translateX(0)}
  .mobile-backdrop{display:block;position:fixed;inset:0;background:rgba(15,23,42,.44);opacity:0;pointer-events:none;transition:opacity .2s ease;z-index:45}
  body.nav-open .mobile-backdrop{opacity:1;pointer-events:auto}
  .mobile-close{display:grid;margin-left:auto;width:38px;height:38px;border:0;border-radius:12px;background:rgba(255,255,255,.12);color:#fff;font-size:25px;place-items:center;cursor:pointer}
  .main{margin:0;width:100%;min-width:0}
  .topbar{height:auto;min-height:72px;position:sticky;top:0;padding:12px 14px;gap:10px;box-shadow:0 10px 28px rgba(16,24,40,.08)}
  .mobile-menu-btn{display:inline-grid;width:44px;height:44px;border:0;border-radius:14px;background:#06344f;color:#fff;place-items:center;font-size:22px;flex:0 0 auto;box-shadow:0 8px 18px rgba(6,52,79,.18)}
  .topbar-title{min-width:0;flex:1}.topbar h1{font-size:19px;line-height:1.15;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.topbar p{font-size:11px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.userbox{gap:6px}.userbox span{display:none}.userbox .btn{padding:9px 10px;border-radius:11px;font-size:12px}
  .content{padding:14px 12px 26px;max-width:none}.panel,.card{border-radius:18px}.panel{padding:16px;margin-bottom:14px}.card{padding:16px}.panel-title{align-items:flex-start;flex-direction:column}.panel-title h2,.panel h2{font-size:17px}.cards,.two,.report-grid,.grid-two,.form-grid,.summary-grid{grid-template-columns:1fr!important;gap:12px}.toolbar{flex-direction:column;align-items:stretch;gap:10px}.search{flex-direction:column}.search input{max-width:none}.actions,.quick-actions,.stack-actions,.form-actions{display:grid;grid-template-columns:1fr;gap:9px}.actions .btn,.quick-actions .btn,.stack-actions .btn,.form-actions .btn{width:100%}.inline,.form-inline{display:grid;grid-template-columns:1fr;gap:8px}.form-inline input{width:100%}.row-actions{display:grid;grid-template-columns:1fr 1fr;gap:7px}.row-actions .btn,.row-actions form,.row-actions button{width:100%}.btn{min-height:44px;padding:11px 14px}.btn.mini,.btn.small{min-height:40px;padding:9px 10px}
  input,select,textarea{font-size:16px;min-height:44px}.field label{font-size:14px}.company-card{flex-direction:column;align-items:flex-start}.company-card img{width:90px;height:90px}.export-links{grid-template-columns:1fr}.import-row{grid-template-columns:1fr}.import-row form{display:grid;grid-template-columns:1fr}.scan-import-form{grid-template-columns:1fr!important}.invoice-total{justify-content:space-between;background:#f8fafc;border:1px solid var(--line);border-radius:14px;padding:12px;margin-top:12px}.invoice-total strong{font-size:20px}.summary-card strong{font-size:22px}
}

@media(max-width:700px){
  .table-wrap{overflow:visible}
  .mobile-card-table table,.table-wrap table{display:block;width:100%}
  .mobile-card-table thead,.table-wrap thead{display:none}
  .mobile-card-table tbody,.table-wrap tbody{display:grid;gap:12px;width:100%}
  .mobile-card-table tr,.table-wrap tr{display:block;background:#fff;border:1px solid var(--line);border-radius:16px;box-shadow:0 10px 24px rgba(16,24,40,.06);padding:10px;overflow:hidden}
  .mobile-card-table tr:hover td,.table-wrap tr:hover td{background:transparent}
  .mobile-card-table td,.table-wrap td{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;border-bottom:1px solid #eef2f6;padding:9px 4px;font-size:14px;text-align:right;min-width:0}
  .mobile-card-table td:last-child,.table-wrap td:last-child{border-bottom:0}
  .mobile-card-table td::before,.table-wrap td::before{content:attr(data-label);font-weight:800;color:#475467;text-align:left;max-width:46%;flex:0 0 46%;font-size:12px;text-transform:uppercase;letter-spacing:.03em}
  .mobile-card-table td > *,.table-wrap td > *{max-width:54%}
  .mobile-card-table td:empty,.table-wrap td:empty{display:none}
  .entry-table td{display:block;text-align:left}.entry-table td::before{display:block;max-width:100%;margin-bottom:5px}.entry-table td > *{max-width:100%;width:100%}
}

@media(max-width:420px){
  .brand img{width:46px;height:46px}.brand strong{font-size:16px}.topbar h1{font-size:17px}.content{padding-left:10px;padding-right:10px}.panel,.card{padding:14px;border-radius:16px}.row-actions{grid-template-columns:1fr}.mobile-card-table td,.table-wrap td{display:block;text-align:left}.mobile-card-table td::before,.table-wrap td::before{display:block;max-width:100%;margin-bottom:4px}.mobile-card-table td > *,.table-wrap td > *{max-width:100%}
}
/* Flash Manager */
.flash-kpis{grid-template-columns:repeat(auto-fit,minmax(210px,1fr));margin-bottom:18px}
.action-list{display:flex;flex-direction:column;gap:10px;margin-top:12px}
.action-item{display:flex;gap:10px;align-items:flex-start;border:1px solid var(--line);border-radius:14px;background:#fbfdff;padding:12px}
.action-item p{margin:0;color:#344054;font-weight:600;line-height:1.35}
@media(max-width:700px){.action-item{display:block}.action-item .badge{margin-bottom:8px}}
.work-block{margin:18px 0 24px;padding:14px;border:1px solid #d0d5dd;border-radius:16px;background:#fff}.work-block h3{margin:0 0 4px}.muted{color:#667085;font-size:.92rem}.sticky-actions{position:sticky;bottom:0;background:rgba(255,255,255,.95);padding:12px;border-top:1px solid #e4e7ec}

/* ===== NOVA BUILD PRO: rediseño profesional ===== */
.nb-pro{
  --blue:#1070a0;
  --blue-dark:#074f7a;
  --orange:#f08028;
  --orange-dark:#a05018;
  --bg:#f6f8fa;
  --panel:#ffffff;
  --text:#18211d;
  --muted:#68746f;
  --line:#dde5dc;
  --green:#15803d;
  --red:#b42318;
  --yellow:#b7791f;
  --shadow:0 1px 2px rgba(16,24,40,.06),0 12px 28px rgba(16,24,40,.06);
  background:var(--bg);
  color:var(--text);
  font-family:Aptos,Segoe UI,Inter,Arial,sans-serif;
}
.nb-pro a{color:var(--blue-dark)}
.nb-pro .layout{display:flex;min-height:100vh;background:linear-gradient(180deg,#f4f7fb 0,#eef4fa 100%)}
.nb-pro .sidebar{width:272px;background:#ffffff;color:var(--text);border-right:1px solid var(--line);box-shadow:none;padding:16px;scrollbar-width:thin}
.nb-pro .brand{gap:10px;padding:10px;border:1px solid var(--line);border-radius:8px;background:#fff;margin:0 0 14px;box-shadow:0 1px 2px rgba(16,24,40,.04)}
.nb-pro .brand img{width:42px;height:42px;border-radius:6px;padding:0;border:1px solid #edf1ea;object-fit:cover}
.nb-pro .brand strong{font-size:13px;letter-spacing:.1em;text-transform:uppercase;color:#14201c}
.nb-pro .brand span{font-size:12px;color:var(--muted);font-weight:700}
.nb-pro .mobile-close{background:#eaf5fb;color:var(--text)}
.nb-pro .nav-item{position:relative;gap:10px;color:#34443e;padding:8px 9px;border-radius:8px;margin:2px 0;font-size:13px;font-weight:750;border:1px solid transparent}
.nb-pro .nav-item span:first-child{width:30px;height:30px;display:grid;place-items:center;border-radius:6px;background:#eaf5fb;color:#0b5f8d;font-size:10px;letter-spacing:.08em;font-weight:900}
.nb-pro .nav-item:hover{background:#f1f6ef;color:#14201c;border-color:#d8e3d7;box-shadow:none}
.nb-pro .nav-item.active{background:#1070a0;color:#fff;border-color:#1070a0;box-shadow:0 8px 18px rgba(16,112,160,.18)}
.nb-pro .nav-item.active span:first-child{background:rgba(255,255,255,.16);color:#fff}
.nb-pro .main{margin-left:272px;width:calc(100% - 272px);min-width:0}
.nb-pro .topbar{height:76px;background:rgba(255,255,255,.92);border-bottom:1px solid var(--line);box-shadow:0 1px 0 rgba(16,24,40,.02);backdrop-filter:blur(14px);padding:0 24px}
.nb-pro .topbar-kicker,.nb-pro .section-kicker{display:block;margin-bottom:4px;color:#6a776f;font-size:11px;letter-spacing:.12em;text-transform:uppercase;font-weight:900}
.nb-pro .topbar h1{font-size:22px;letter-spacing:0;color:#111b17}
.nb-pro .topbar p{color:#758078;font-size:12px}
.nb-pro .userbox{color:#44514b;font-size:13px}
.nb-pro .top-search{width:min(34vw,420px);display:flex;align-items:center}
.nb-pro .top-search input{height:40px;border-radius:999px;background:#f6f8f3;border-color:#d8e3d7;padding:0 16px;font-size:13px}
.nb-pro .top-search input:focus{background:#fff}
.nb-pro .content{max-width:1480px;padding:24px}
.nb-pro .card,.nb-pro .panel{border-radius:8px;border:1px solid var(--line);box-shadow:var(--shadow);background:rgba(255,255,255,.98)}
.nb-pro .card{padding:16px}
.nb-pro .panel{padding:18px;margin-bottom:16px}
.nb-pro .panel-title{margin-bottom:14px}
.nb-pro .panel-title h2,.nb-pro .panel h2{font-size:17px;color:#14201c;letter-spacing:0}
.nb-pro .panel-title a{font-weight:800;font-size:13px}
.nb-pro .grid{gap:14px}
.nb-pro .cards{grid-template-columns:repeat(auto-fit,minmax(190px,1fr))}
.nb-pro .two{grid-template-columns:minmax(0,1.35fr) minmax(320px,.85fr)}
.nb-pro .ops-hero{display:flex;align-items:flex-end;justify-content:space-between;gap:22px;background:linear-gradient(135deg,#074f7a 0,#1070a0 58%,#f08028 165%);color:#fff;border:1px solid #074f7a;border-radius:8px;padding:24px;margin-bottom:16px;box-shadow:0 18px 40px rgba(16,112,160,.18)}
.nb-pro .ops-hero h2{margin:0;max-width:780px;color:#fff;font-size:29px;line-height:1.08;letter-spacing:0}
.nb-pro .ops-hero p{margin:10px 0 0;max-width:780px;color:#e6f4fb;line-height:1.5}
.nb-pro .ops-hero .section-kicker{color:#ffd8b8}
.nb-pro .ops-hero-actions{display:flex;gap:10px;flex-wrap:wrap;justify-content:flex-end}
.nb-pro .stat{align-items:flex-start;min-height:116px;border-left:4px solid #9fc9bf;background:#fff}
.nb-pro .stat:after{display:none}
.nb-pro .stat-icon{width:38px;height:38px;border-radius:6px;background:#eaf5fb;color:#1070a0;font-size:11px;font-weight:900;letter-spacing:.08em}
.nb-pro .stat span{font-size:12px;font-weight:800;text-transform:uppercase;letter-spacing:.04em}
.nb-pro .stat strong{font-size:24px;color:#14201c}
.nb-pro .stat.orange{border-left-color:#f08028}.nb-pro .stat.green{border-left-color:#1070a0}.nb-pro .stat.red{border-left-color:#e87820}
.nb-pro .stat.orange .stat-icon{background:#fff3e9;color:#a05018}.nb-pro .stat.green .stat-icon{background:#eaf5fb;color:#074f7a}.nb-pro .stat.red .stat-icon{background:#fff0e6;color:#a05018}
.nb-pro .quick-panel{margin-top:0}
.nb-pro .quick-grid{grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:10px}
.nb-pro .quick-tile{min-height:104px;border-radius:8px;border:1px solid var(--line);background:#ffffff;padding:14px;color:#26352f}
.nb-pro .quick-tile:hover{border-color:#8fc5df;background:#f2f9fd}
.nb-pro .quick-tile span{width:34px;height:28px;display:grid;place-items:center;border-radius:6px;background:#1070a0;color:#fff;font-size:11px;font-weight:900;letter-spacing:.08em}
.nb-pro .quick-tile strong{color:#15211d}
.nb-pro .quick-tile small{color:#68746f}
.nb-pro .ops-focus-grid{align-items:stretch}
.nb-pro .priority-list,.nb-pro .workflow-list,.nb-pro .result-list{display:flex;flex-direction:column;gap:10px}
.nb-pro .priority-item,.nb-pro .workflow-item,.nb-pro .result-item{display:flex;gap:12px;align-items:flex-start;border:1px solid var(--line);border-radius:8px;background:#ffffff;padding:12px;color:#26352f}
.nb-pro .priority-item:hover,.nb-pro .workflow-item:hover,.nb-pro .result-item:hover{background:#f2f9fd;border-color:#8fc5df}
.nb-pro .priority-item span,.nb-pro .workflow-item span{flex:0 0 auto;display:grid;place-items:center;border-radius:6px;font-size:11px;font-weight:900;letter-spacing:.08em}
.nb-pro .priority-item span{min-width:62px;height:30px;background:#eaf5fb;color:#1070a0}
.nb-pro .priority-item.danger span{background:#fff0ee;color:#9f1d15}
.nb-pro .priority-item.warning span{background:#fff3e9;color:#a05018}
.nb-pro .priority-item.success span{background:#eaf7ee;color:#166534}
.nb-pro .priority-item strong,.nb-pro .workflow-item strong,.nb-pro .result-item strong{display:block;color:#14201c}
.nb-pro .priority-item small,.nb-pro .workflow-item small,.nb-pro .result-item span{display:block;margin-top:3px;color:#68746f;line-height:1.35}
.nb-pro .workflow-item span{width:34px;height:34px;background:#1070a0;color:#fff}
.nb-pro .search-hero{margin-bottom:14px}
.nb-pro .global-search-panel{margin-bottom:14px}
.nb-pro .global-search-form{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px}
.nb-pro .global-search-form input{min-height:46px}
.nb-pro .invoice-search-panel{margin-bottom:14px}
.nb-pro .invoice-search-form{display:grid;grid-template-columns:repeat(4,minmax(160px,1fr));gap:12px;align-items:end}
.nb-pro .invoice-search-form .field{margin:0}
.nb-pro .invoice-search-actions{display:flex;gap:8px;align-items:center;justify-content:flex-end}
.nb-pro .invoice-result-summary{margin-bottom:14px}
.nb-pro .search-count{margin:12px 0 0}
.nb-pro .search-groups{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:14px}
.nb-pro .result-item{justify-content:space-between;align-items:center}
.nb-pro .result-item div{min-width:0}
.nb-pro .result-item em{font-style:normal;white-space:nowrap}
.nb-pro .toolbar-menu,.nb-pro .action-menu{position:relative;display:inline-block;text-align:left}
.nb-pro .action-menu{z-index:2}
.nb-pro .action-menu[open]{z-index:120}
.nb-pro .toolbar-menu summary,.nb-pro .action-menu summary{list-style:none;cursor:pointer;user-select:none}
.nb-pro .toolbar-menu summary::-webkit-details-marker,.nb-pro .action-menu summary::-webkit-details-marker{display:none}
.nb-pro .toolbar-menu summary::after,.nb-pro .action-menu summary::after{content:"";display:inline-block;margin-left:8px;border-left:4px solid transparent;border-right:4px solid transparent;border-top:5px solid currentColor;vertical-align:middle}
.nb-pro .toolbar-menu[open] summary::after,.nb-pro .action-menu[open] summary::after{transform:rotate(180deg)}
.nb-pro .toolbar-menu-list,.nb-pro .action-menu-list{background:#fff;border:1px solid var(--line);border-radius:8px;box-shadow:0 16px 34px rgba(16,24,40,.14);padding:6px;z-index:130}
.nb-pro .toolbar-menu-list{position:absolute;right:0;top:calc(100% + 6px);min-width:240px}
.nb-pro .action-menu-list{position:absolute;right:0;top:calc(100% + 6px);display:grid;gap:2px;margin-top:0;min-width:190px}
.nb-pro .toolbar-menu-list a,.nb-pro .action-menu-list a,.nb-pro .action-menu-list button{display:flex;width:100%;align-items:center;border:0;border-radius:6px;background:transparent;color:#26352f;font:inherit;font-size:13px;font-weight:750;padding:9px 10px;text-align:left;cursor:pointer}
.nb-pro .toolbar-menu-list a:hover,.nb-pro .action-menu-list a:hover,.nb-pro .action-menu-list button:hover{background:#f2f9fd;color:#074f7a}
.nb-pro .action-menu-list form{margin:0}
.nb-pro .action-menu-list .danger-link{color:#b42318}
.nb-pro .module-facturas .table-wrap{overflow-x:auto}
.nb-pro .module-facturas td.row-actions{display:table-cell;text-align:right}
.nb-pro .module-facturas .actions-cell{min-width:118px;width:118px;white-space:nowrap}
.nb-pro .invoice-table{min-width:1180px}
.nb-pro .invoice-table th,.nb-pro .invoice-table td{white-space:nowrap}
.nb-pro .invoice-table td:nth-child(3),.nb-pro .invoice-table td:nth-child(4){max-width:190px;overflow:hidden;text-overflow:ellipsis}
.nb-pro .btn{border-radius:7px;background:#1070a0;color:#fff;box-shadow:none;border:1px solid #1070a0;font-weight:850;padding:10px 14px}
.nb-pro .btn:hover{background:#074f7a;filter:none}
.nb-pro .btn.ghost{background:#fff;color:#074f7a;border:1px solid #b9d8e8}
.nb-pro .btn.ghost:hover{background:#f2f8f5}
.nb-pro .btn.danger{background:#fff;color:var(--red);border-color:#f4b7af}
.nb-pro .btn.small{padding:7px 11px}.nb-pro .btn.mini{padding:6px 9px;border-radius:6px}
.nb-pro input,.nb-pro select,.nb-pro textarea{border-radius:7px;border-color:#cfd9d0;background:#fff;color:#17211d;box-shadow:inset 0 1px 0 rgba(16,24,40,.02)}
.nb-pro input:focus,.nb-pro select:focus,.nb-pro textarea:focus{border-color:#1070a0;box-shadow:0 0 0 4px rgba(16,112,160,.14);outline:none}
.nb-pro .field label,.nb-pro .form-inline label{font-size:13px;color:#2e3d37}
.nb-pro .field b,.nb-pro .form-intro b{color:#f08028}
.nb-pro .form-actions{border-top-color:var(--line)}
.nb-pro .form-intro{padding-bottom:12px;border-bottom:1px solid var(--line)}
.nb-pro .form-intro h2{font-size:20px;color:#14201c}
.nb-pro .toolbar{align-items:flex-start;margin-bottom:14px}
.nb-pro .search input{max-width:460px}
.nb-pro .list-head{background:#fff;border:1px solid var(--line);border-radius:8px;padding:12px 14px;margin-bottom:12px;box-shadow:0 1px 2px rgba(16,24,40,.04)}
.nb-pro .list-head strong{font-size:24px;color:#1070a0}
.nb-pro .table-wrap{border:1px solid var(--line);border-radius:8px;overflow:auto;background:#fff}
.nb-pro .table-wrap table{border-spacing:0}
.nb-pro th{background:#f1f7fb;color:#52616a;font-size:11px;border-bottom:1px solid var(--line);padding:11px 12px}
.nb-pro td{padding:12px;border-bottom:1px solid #edf1ea;color:#26352f}
.nb-pro tr:hover td{background:#f8fbf6}
.nb-pro .panel .table-wrap{border:1px solid var(--line)}
.nb-pro .badge{border-radius:6px;padding:5px 8px;font-size:11px;letter-spacing:.02em}
.nb-pro .badge.success{background:#eaf5fb;color:#074f7a}.nb-pro .badge.warning{background:#fff3e9;color:#a05018}.nb-pro .badge.danger{background:#fff0ee;color:#9f1d15}.nb-pro .badge.neutral{background:#f0f2f4;color:#505962}
.nb-pro .bars{gap:12px}
.nb-pro .bar-row{grid-template-columns:minmax(120px,170px) 1fr 70px}
.nb-pro .bar-row span{font-size:13px}
.nb-pro .bar-row div{height:9px;background:#edf2ee}
.nb-pro .bar-row i{background:linear-gradient(90deg,#1070a0,#f08028)}
.nb-pro .summary-card,.nb-pro .note-box,.nb-pro .work-block{border-radius:8px;background:#ffffff;border-color:var(--line)}
.nb-pro .empty-state.compact{border-radius:8px;background:#ffffff}
.nb-pro .notice{border-radius:8px}
.nb-pro .login-screen{min-height:100vh;display:grid;grid-template-columns:minmax(320px,1.05fr) minmax(360px,.95fr);gap:36px;align-items:center;background:#f6f8fa;padding:44px;place-items:stretch}
.nb-pro .login-brand-panel{align-self:stretch;display:flex;justify-content:center;flex-direction:column;border-radius:8px;background:linear-gradient(135deg,#074f7a 0,#1070a0 56%,#f08028 170%);color:#fff;padding:42px;box-shadow:0 20px 50px rgba(16,112,160,.18)}
.nb-pro .login-brand-panel h1{max-width:620px;margin:0;color:#fff;font-size:42px;line-height:1.02;letter-spacing:0}
.nb-pro .login-brand-panel p{max-width:540px;color:#e6f4fb;font-size:16px;line-height:1.55}
.nb-pro .login-brand-panel .section-kicker{color:#ffd8b8}
.nb-pro .login-card{align-self:center;justify-self:center;max-width:420px;border-radius:8px;border:1px solid var(--line);box-shadow:var(--shadow);padding:30px;background:#fff}
.nb-pro .login-logo{width:84px;height:84px;border-radius:8px;border:1px solid var(--line);padding:4px;margin-bottom:16px}
.nb-pro .login-card h1{text-align:left;font-size:24px;color:#14201c}
.nb-pro .login-card p{text-align:left;line-height:1.4}
.nb-pro .hint{border-radius:8px;background:#f1f7fb;color:#59666d;text-align:left}
.nb-pro .mobile-menu-btn{background:#1070a0;border-radius:7px;box-shadow:none}

@media(max-width:1100px){
  .nb-pro .sidebar{width:236px}
  .nb-pro .main{margin-left:236px;width:calc(100% - 236px)}
  .nb-pro .two{grid-template-columns:1fr}
  .nb-pro .login-brand-panel h1{font-size:34px}
}

@media(max-width:900px){
  .nb-pro .layout{display:block}
  .nb-pro .sidebar{width:min(86vw,330px);background:#ffffff}
  .nb-pro .main{margin:0;width:100%}
  .nb-pro .topbar{height:auto;min-height:72px;padding:12px 14px;flex-wrap:wrap}
  .nb-pro .top-search{order:3;width:100%;grid-column:1/-1}
  .nb-pro .content{padding:14px 12px 26px}
  .nb-pro .ops-hero{display:block;padding:18px}
  .nb-pro .ops-hero h2{font-size:23px}
  .nb-pro .ops-hero-actions{justify-content:flex-start;margin-top:16px}
  .nb-pro .cards,.nb-pro .quick-grid,.nb-pro .form-grid,.nb-pro .summary-grid{grid-template-columns:1fr!important}
  .nb-pro .toolbar{display:grid;grid-template-columns:1fr;gap:10px}
  .nb-pro .search{display:grid;grid-template-columns:1fr}
  .nb-pro .global-search-form{grid-template-columns:1fr}
  .nb-pro .invoice-search-form{grid-template-columns:1fr}
  .nb-pro .invoice-search-actions{display:grid;grid-template-columns:1fr;gap:8px}
  .nb-pro .search-groups{grid-template-columns:1fr}
  .nb-pro .toolbar-menu,.nb-pro .toolbar-menu summary{width:100%}
  .nb-pro .toolbar-menu-list{position:static;min-width:0;margin-top:8px}
  .nb-pro .login-screen{grid-template-columns:1fr;gap:16px;padding:18px}
  .nb-pro .login-brand-panel{padding:24px}
  .nb-pro .login-brand-panel h1{font-size:28px}
}

@media(max-width:700px){
  .nb-pro .table-wrap{border:0;background:transparent}
  .nb-pro .mobile-card-table tr,.nb-pro .table-wrap tr{border-radius:8px;box-shadow:0 1px 2px rgba(16,24,40,.06);border:1px solid var(--line)}
  .nb-pro .mobile-card-table td,.nb-pro .table-wrap td{border-bottom-color:#edf1ea}
  .nb-pro .actions-cell{min-width:0}
  .nb-pro .module-facturas td.row-actions{display:block;text-align:left}
  .nb-pro .module-facturas .actions-cell{width:auto}
  .nb-pro .invoice-table{min-width:0}
  .nb-pro .action-menu,.nb-pro .action-menu summary{width:100%}
  .nb-pro .action-menu-list{position:static;min-width:0;margin-top:8px}
}

/* NOVA BUILD Pro 2 - centros de control */
.nb-pro{
  --bg:#f4f7fb;
  --panel:#ffffff;
  --text:#122033;
  --muted:#667085;
  --line:#d8e3ee;
  --shadow:0 1px 2px rgba(16,24,40,.05),0 14px 34px rgba(16,24,40,.07);
}
.nb-pro .layout{background:#f4f7fb}
.nb-pro .sidebar{background:#ffffff;border-right:1px solid #d9e5ef}
.nb-pro .brand{background:#ffffff;border-color:#dce7f1}
.nb-pro .brand strong,.nb-pro .panel-title h2,.nb-pro .panel h2,.nb-pro .quick-tile strong,.nb-pro .priority-item strong,.nb-pro .workflow-item strong,.nb-pro .result-item strong{color:#122033}
.nb-pro .brand img{border-color:#d9e5ef}
.nb-pro .nav-item{color:#304055}
.nb-pro .nav-item span:first-child{background:#e9f5fb;color:#074f7a}
.nb-pro .nav-item:hover{background:#eef7fc;border-color:#c8dfec}
.nb-pro .top-search input{background:#f5f8fb;border-color:#d8e3ee}
.nb-pro .quick-tile,.nb-pro .priority-item,.nb-pro .workflow-item,.nb-pro .result-item,.nb-pro .summary-card,.nb-pro .note-box,.nb-pro .work-block,.nb-pro .empty-state.compact{background:#ffffff;border-color:#d8e3ee}
.nb-pro .quick-tile:hover,.nb-pro .priority-item:hover,.nb-pro .workflow-item:hover,.nb-pro .result-item:hover{background:#f2f9fd}
.nb-pro tr:hover td{background:#f6fbff}
.nb-pro td{border-bottom-color:#edf3f8}
.nb-pro .ops-hero.center-hero{background:linear-gradient(135deg,#053f63 0,#1070a0 58%,#f08028 170%);box-shadow:0 22px 54px rgba(16,112,160,.20)}
.nb-pro .center-kpis{margin-bottom:14px}
.nb-pro .center-grid{align-items:stretch}
.nb-pro .control-strip{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin:0 0 16px}
.nb-pro .control-card{display:flex;flex-direction:column;gap:8px;border:1px solid var(--line);border-radius:8px;background:#fff;padding:16px;color:#122033;box-shadow:var(--shadow)}
.nb-pro .control-card:hover{border-color:#8fc5df;background:#f7fcff}
.nb-pro .control-card span{font-size:12px;font-weight:900;text-transform:uppercase;letter-spacing:.06em;color:#667085}
.nb-pro .control-card strong{font-size:24px;color:#122033}
.nb-pro .control-card small{color:#667085}
.nb-pro .control-card.blue{border-left:4px solid #1070a0}
.nb-pro .control-card.orange{border-left:4px solid #f08028}
.nb-pro .control-card.red{border-left:4px solid #b42318}
.nb-pro .control-card.green{border-left:4px solid #15803d}
.nb-pro .metric-list,.nb-pro .compact-list{display:grid;gap:10px}
.nb-pro .metric-row,.nb-pro .compact-item{display:flex;align-items:center;justify-content:space-between;gap:14px;border:1px solid var(--line);border-radius:8px;background:#fff;padding:12px;color:#122033}
.nb-pro .metric-row span,.nb-pro .compact-item span{display:flex;flex-direction:column;gap:3px;min-width:0}
.nb-pro .metric-row small,.nb-pro .compact-item small{color:#667085}
.nb-pro .metric-row strong,.nb-pro .compact-item strong{white-space:nowrap;color:#122033}
.nb-pro .compact-item:hover{border-color:#8fc5df;background:#f7fcff}
.nb-pro .center-hero + .center-kpis .stat{min-height:106px}
.nb-pro .center-hero + .center-kpis .stat strong{font-size:26px}
.nb-pro .app-facturas .center-kpis .stat.green,.nb-pro .app-facturas .control-card.blue{border-left-color:#1070a0}
.nb-pro .app-gastos .center-kpis .stat.orange{border-left-color:#f08028}
.nb-pro .app-documentos_prl .center-kpis .stat.red{border-left-color:#b42318}
.nb-pro .report-hero{align-items:center}
.nb-pro .report-console{display:grid;gap:16px}
.nb-pro .report-tabs{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:10px}
.nb-pro .report-tab{display:flex;min-height:132px;flex-direction:column;gap:8px;border:1px solid var(--line);border-radius:8px;background:#fff;padding:14px;color:#122033;box-shadow:var(--shadow)}
.nb-pro .report-tab:hover{border-color:#8fc5df;background:#f7fcff}
.nb-pro .report-tab.active{border-color:#1070a0;box-shadow:0 0 0 3px rgba(16,112,160,.12)}
.nb-pro .report-tab span,.nb-pro .report-card-tag{display:inline-grid;place-items:center;width:max-content;min-width:34px;height:26px;border-radius:6px;background:#e9f5fb;color:#074f7a;font-size:11px;font-weight:900;letter-spacing:.08em}
.nb-pro .report-tab strong{font-size:15px;color:#122033}
.nb-pro .report-tab small{color:#667085;line-height:1.35}
.nb-pro .report-filter-panel{margin-bottom:0}
.nb-pro .report-filter-grid{display:grid;grid-template-columns:repeat(4,minmax(170px,1fr));gap:12px;align-items:end}
.nb-pro .report-filter-grid .field{margin:0}
.nb-pro .report-filter-submit{align-self:end}
.nb-pro .report-filter-submit .btn{width:100%;min-height:42px}
.nb-pro .report-export-actions{display:flex;gap:8px;align-items:center;justify-content:flex-end;flex-wrap:wrap}
.nb-pro .report-summary{margin:0}
.nb-pro .report-table-wrap{max-height:68vh}
.nb-pro .report-table{min-width:1080px}
.nb-pro .report-table th{position:sticky;top:0;z-index:1}
.nb-pro .report-table td{white-space:nowrap}
.nb-pro .report-table td:nth-child(3),.nb-pro .report-table td:nth-child(4),.nb-pro .report-table td:nth-child(6){max-width:260px;overflow:hidden;text-overflow:ellipsis}
.nb-pro .report-card-tag{margin-bottom:4px}
.nb-pro .report-tab.compact{min-height:112px}
.nb-pro .scenario-panel{margin-bottom:0}
.nb-pro .scenario-groups{display:grid;gap:18px}
.nb-pro .scenario-group{display:grid;gap:10px}
.nb-pro .scenario-group h3{margin:0;font-size:15px;color:#122033}
.nb-pro .scenario-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:10px}
.nb-pro .scenario-card{display:grid;grid-template-columns:auto 1fr;gap:4px 10px;align-items:start;border:1px solid var(--line);border-radius:8px;background:#fff;padding:12px;color:#122033}
.nb-pro .scenario-card:hover{border-color:#8fc5df;background:#f7fcff}
.nb-pro .scenario-card.active{border-color:#1070a0;box-shadow:0 0 0 3px rgba(16,112,160,.12)}
.nb-pro .scenario-card span{grid-row:1/3;display:grid;place-items:center;min-width:36px;height:28px;border-radius:6px;background:#e9f5fb;color:#074f7a;font-size:11px;font-weight:900;letter-spacing:.08em}
.nb-pro .scenario-card strong{font-size:14px;color:#122033}
.nb-pro .scenario-card small{color:#667085;line-height:1.35}
.nb-pro.report-picker-open{overflow:hidden}
.nb-pro .report-start-panel{margin-bottom:0}
.nb-pro .report-start-grid{align-items:stretch}
.nb-pro .report-start-action{font:inherit;text-align:left;cursor:pointer}
.nb-pro .report-modal-backdrop{position:fixed;inset:0;z-index:80;display:none;align-items:center;justify-content:center;background:rgba(18,32,51,.58);padding:24px}
.nb-pro .report-modal-backdrop.open{display:flex}
.nb-pro .report-picker-window{width:min(1120px,96vw);max-height:min(860px,92vh);display:flex;flex-direction:column;background:#fff;border:1px solid #d8e3ee;border-radius:10px;box-shadow:0 28px 80px rgba(18,32,51,.28);overflow:hidden}
.nb-pro .report-picker-head{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;padding:22px 24px;border-bottom:1px solid var(--line);background:linear-gradient(135deg,#f7fbff,#ffffff)}
.nb-pro .report-picker-head h2{margin:0;color:#122033;font-size:24px}
.nb-pro .report-picker-head p{margin:7px 0 0;color:#667085}
.nb-pro .report-picker-close{width:38px;height:38px;border:1px solid #cfe0ea;border-radius:8px;background:#fff;color:#122033;font-size:26px;line-height:1;cursor:pointer}
.nb-pro .report-picker-close:hover{background:#eef7fc}
.nb-pro .report-picker-search{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:12px;align-items:center;padding:16px 24px;border-bottom:1px solid var(--line);background:#fff}
.nb-pro .report-picker-search input{height:48px;font-size:15px;border-radius:8px}
.nb-pro .report-picker-search span{white-space:nowrap;color:#667085;font-weight:850}
.nb-pro .report-picker-shortcuts{display:flex;gap:8px;flex-wrap:wrap;padding:0 24px 14px;border-bottom:1px solid var(--line)}
.nb-pro .report-picker-shortcuts a{display:inline-flex;border:1px solid #cfe0ea;border-radius:999px;background:#f7fbff;color:#074f7a;font-weight:850;padding:8px 12px;font-size:13px}
.nb-pro .report-picker-catalog{overflow:auto;padding:0 24px 22px}
.nb-pro .report-picker-catalog summary{position:sticky;top:0;z-index:2;display:flex;align-items:center;gap:8px;padding:14px 0;background:#fff;color:#122033;font-weight:900;cursor:pointer}
.nb-pro .report-picker-groups{display:grid;gap:18px}
.nb-pro .report-picker-group{display:grid;gap:10px}
.nb-pro .report-picker-group h3{margin:0;color:#122033;font-size:15px}
.nb-pro .report-picker-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:10px}
.nb-pro .report-picker-item{display:grid;grid-template-columns:auto 1fr;gap:4px 10px;align-items:start;border:1px solid var(--line);border-radius:8px;background:#fff;padding:12px;color:#122033}
.nb-pro .report-picker-item:hover{border-color:#8fc5df;background:#f7fcff}
.nb-pro .report-picker-item.secure{border-color:#f3d2b6;background:#fffaf6}
.nb-pro .report-picker-item span{grid-row:1/3;display:grid;place-items:center;min-width:36px;height:28px;border-radius:6px;background:#e9f5fb;color:#074f7a;font-size:11px;font-weight:900;letter-spacing:.08em}
.nb-pro .report-picker-item.secure span{background:#fff3e9;color:#a05018}
.nb-pro .report-picker-item strong{font-size:14px;color:#122033}
.nb-pro .report-picker-item small{color:#667085;line-height:1.35}
.nb-pro .report-window-hero{margin-bottom:14px}
.nb-pro .report-window-console{gap:14px}
.nb-pro .accounting-hero{background:linear-gradient(135deg,#122033 0,#1070a0 72%,#f08028 175%)}
.nb-pro .accounting-lock-panel{max-width:620px}
.nb-pro .accounting-lock-form{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:12px;align-items:end}
.nb-pro .accounting-form .wide{grid-column:1/-1}
.nb-pro .accounting-grid{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}
.nb-pro .badge.info{background:#e9f5fb;color:#075985}
.nb-pro .badge.dark{background:#28323c;color:#fff}
.nb-pro .hours-hero{margin-bottom:12px}
.nb-pro .hours-tabs{display:flex;gap:8px;flex-wrap:wrap;margin:0 0 16px}
.nb-pro .hours-tabs a{display:inline-flex;align-items:center;min-height:38px;border:1px solid var(--line);border-radius:8px;background:#fff;color:#304055;font-size:13px;font-weight:850;padding:9px 12px;box-shadow:0 1px 2px rgba(16,24,40,.04)}
.nb-pro .hours-tabs a:hover{border-color:#8fc5df;background:#f7fcff}
.nb-pro .hours-tabs a.active{background:#1070a0;border-color:#1070a0;color:#fff}
.nb-pro .hours-filter-grid{display:grid;grid-template-columns:repeat(4,minmax(160px,1fr));gap:12px;align-items:end}
.nb-pro .hours-filter-grid.compact{grid-template-columns:repeat(3,minmax(160px,1fr))}
.nb-pro .hours-filter-grid .field{margin:0}
.nb-pro .hours-filter-grid .wide-ish{grid-column:span 2}
.nb-pro .hours-filter-actions .btn{width:100%;min-height:42px}
.nb-pro .hours-page-grid{grid-template-columns:minmax(0,1.25fr) minmax(320px,.75fr)}
.nb-pro .form-grid.single{grid-template-columns:1fr}
.nb-pro .hours-table{min-width:1120px}
.nb-pro .hours-table td:nth-child(2),.nb-pro .hours-table td:nth-child(3){max-width:260px}
.nb-pro .hours-entry-table{min-width:1480px}
.nb-pro .hours-entry-table th,.nb-pro .hours-entry-table td{white-space:nowrap}
.nb-pro .hours-entry-table td:nth-child(2){min-width:190px;white-space:normal}
.nb-pro .hours-entry-table input,.nb-pro .hours-entry-table select{min-width:74px;padding:7px 8px;font-size:12px;border-radius:6px}
.nb-pro .hours-entry-table input[name^="observaciones_"]{min-width:170px}
.nb-pro .hours-check{align-self:end;margin:0 0 4px;min-height:42px;display:flex;align-items:center;gap:8px;font-weight:850;color:#304055}
.nb-pro .checkline.tiny{font-size:12px;font-weight:800;white-space:nowrap;margin-bottom:5px}
.nb-pro .checkline input{width:auto;min-height:0;margin-right:6px}
.nb-pro .hours-extra-worker{display:grid;grid-template-columns:repeat(4,minmax(150px,1fr));gap:12px;align-items:end}
.nb-pro .hours-extra-worker .wide{grid-column:span 2}
.nb-pro .hours-total-chip{grid-column:1/-1;border:1px solid var(--line);border-radius:8px;background:#f7fbff;color:#304055;font-weight:850;padding:12px}
.nb-pro .quick-actions.compact{margin:0}
.nb-pro .money-positive{color:#067647}
.nb-pro .money-negative{color:#b42318}

/* Carga y revisión diaria de horas */
.nb-pro .control-strip{grid-template-columns:repeat(auto-fit,minmax(210px,1fr))}
.nb-pro .filter-button-row{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.nb-pro .hours-filter-actions .filter-button-row .btn{width:auto}
.nb-pro .daily-hours-hero{align-items:center;background:linear-gradient(135deg,#073b5b 0,#1070a0 68%,#18a07a 170%)}
.nb-pro .daily-date-picker{display:grid;grid-template-columns:minmax(170px,1fr) auto;gap:8px;align-items:end;min-width:390px;padding:13px;border:1px solid rgba(255,255,255,.26);border-radius:9px;background:rgba(255,255,255,.1)}
.nb-pro .daily-date-picker label{grid-column:1/-1;color:#fff;font-size:12px;font-weight:900;letter-spacing:.04em;text-transform:uppercase}
.nb-pro .daily-date-picker input{background:#fff}
.nb-pro .daily-review-head{align-items:end}
.nb-pro .daily-manager{display:flex;flex-direction:column;gap:6px;min-width:260px;color:#344054;font-size:12px;font-weight:850}
.nb-pro .daily-quick-actions{margin:0 0 14px}
.nb-pro .daily-hours-table{min-width:1900px}
.nb-pro .daily-hours-table th,.nb-pro .daily-hours-table td{vertical-align:middle;white-space:nowrap}
.nb-pro .daily-hours-table td:nth-child(2){min-width:210px;white-space:normal}
.nb-pro .daily-hours-table td:nth-child(3){min-width:130px;white-space:normal}
.nb-pro .daily-hours-table td:nth-child(4){min-width:230px}
.nb-pro .daily-hours-table td:last-child{min-width:210px}
.nb-pro .daily-hours-table input,.nb-pro .daily-hours-table select{min-width:78px;padding:7px 8px;font-size:12px;border-radius:6px}
.nb-pro .daily-hours-table select[name^="obra_"]{min-width:220px}
.nb-pro .daily-hours-table input[name^="observaciones_"]{min-width:200px}
.nb-pro .daily-row.missing-part{background:#fffaf3}
.nb-pro .daily-row.has-part{background:#f8fffb}
.nb-pro .daily-status-note{display:block;margin-top:5px;color:#667085;white-space:normal}
.nb-pro .daily-save-actions{justify-content:flex-end}

/* Módulo PRL independiente */
.nb-pro .prl-hero{background:linear-gradient(135deg,#073b5b 0,#0b7195 62%,#18a07a 155%)}
.nb-pro .prl-type-actions{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin:0 0 16px}
.nb-pro .prl-type-card{display:flex;align-items:center;gap:13px;min-height:88px;border:1px solid var(--line);border-radius:10px;background:#fff;padding:16px;color:#122033;box-shadow:var(--shadow);transition:.15s ease}
.nb-pro .prl-type-card:hover{transform:translateY(-1px);border-color:#8fc5df;box-shadow:0 10px 24px rgba(16,112,160,.12)}
.nb-pro .prl-type-card>span{display:grid;place-items:center;min-width:48px;height:48px;border-radius:9px;font-size:12px;font-weight:950;letter-spacing:.06em}
.nb-pro .prl-type-card.epi>span{background:#e9f5fb;color:#075985}
.nb-pro .prl-type-card.training>span{background:#fff3e9;color:#a05018}
.nb-pro .prl-type-card.medical>span{background:#eaf8f3;color:#067647}
.nb-pro .prl-type-card div{display:flex;flex-direction:column;gap:4px}
.nb-pro .prl-type-card strong{font-size:15px}
.nb-pro .prl-type-card small{color:#667085;line-height:1.35}
.nb-pro .prl-worker-table{min-width:980px}
.nb-pro .prl-expiry{display:block;margin-top:6px;color:#667085;white-space:nowrap}
.nb-pro .prl-filter{display:grid;grid-template-columns:repeat(3,minmax(170px,1fr)) auto auto;gap:10px;align-items:end;margin:0 0 16px;padding:14px;border:1px solid var(--line);border-radius:9px;background:#f8fbfd}
.nb-pro .prl-filter label{display:flex;flex-direction:column;gap:6px;color:#344054;font-size:12px;font-weight:850}
.nb-pro .prl-filter select{min-height:42px}
.nb-pro .prl-form-panel{max-width:900px}
.nb-pro .prl-form-switcher{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin:0 0 20px;padding:5px;border-radius:10px;background:#eef4f7}
.nb-pro .prl-form-switcher a{display:grid;place-items:center;min-height:42px;border-radius:7px;color:#475467;font-size:13px;font-weight:850;padding:8px;text-align:center}
.nb-pro .prl-form-switcher a.active{background:#1070a0;color:#fff;box-shadow:0 3px 9px rgba(16,112,160,.2)}

/* Contratación, antigüedad y bajas laborales */
.nb-pro .labor-hero{background:linear-gradient(135deg,#18364b 0,#1070a0 68%,#f08028 175%)}
.nb-pro .labor-kpis .stat strong{font-size:20px}
.nb-pro .active-leave-panel{display:flex;align-items:center;justify-content:space-between;gap:20px;border-left:5px solid #b42318;background:#fff8f7}
.nb-pro .active-leave-panel h2{margin:8px 0 3px;color:#7a271a}
.nb-pro .active-leave-panel p{margin:0;color:#667085}
.nb-pro .rejoin-form{display:grid;grid-template-columns:minmax(190px,1fr) auto;gap:9px;align-items:end;min-width:420px}
.nb-pro .rejoin-form label{grid-column:1/-1;color:#344054;font-size:12px;font-weight:850}
.nb-pro .labor-form-panel{border-top:4px solid #1070a0}
.nb-pro .labor-form-grid{display:grid;grid-template-columns:repeat(4,minmax(150px,1fr));gap:14px}
.nb-pro .labor-form-grid label{display:flex;flex-direction:column;gap:7px;color:#344054;font-size:12px;font-weight:850}
.nb-pro .labor-form-grid .wide{grid-column:1/-1}
.nb-pro .labor-form-grid .file-link{width:max-content}

@media(max-width:1100px){
  .nb-pro .control-strip{grid-template-columns:repeat(2,minmax(0,1fr))}
  .nb-pro .report-filter-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .nb-pro .accounting-grid{grid-template-columns:1fr}
  .nb-pro .hours-filter-grid,.nb-pro .hours-filter-grid.compact,.nb-pro .hours-extra-worker{grid-template-columns:repeat(2,minmax(0,1fr))}
  .nb-pro .hours-page-grid{grid-template-columns:1fr}
}
@media(max-width:900px){
  .nb-pro .sidebar{background:#ffffff}
  .nb-pro .report-tabs{grid-template-columns:1fr 1fr}
  .nb-pro .report-export-actions{justify-content:flex-start}
  .nb-pro .report-picker-search{grid-template-columns:1fr}
  .nb-pro .hours-filter-grid,.nb-pro .hours-filter-grid.compact,.nb-pro .hours-extra-worker{grid-template-columns:1fr}
  .nb-pro .hours-filter-grid .wide-ish,.nb-pro .hours-extra-worker .wide{grid-column:auto}
  .nb-pro .hours-tabs{display:grid;grid-template-columns:1fr 1fr}
  .nb-pro .daily-hours-hero{align-items:flex-start;flex-direction:column}
  .nb-pro .daily-date-picker{min-width:0;width:100%}
  .nb-pro .daily-review-head{align-items:flex-start;flex-direction:column}
  .nb-pro .daily-manager{min-width:0;width:100%}
  .nb-pro .prl-type-actions{grid-template-columns:1fr}
  .nb-pro .prl-filter{grid-template-columns:1fr 1fr}
  .nb-pro .active-leave-panel{align-items:flex-start;flex-direction:column}
  .nb-pro .rejoin-form{min-width:0;width:100%}
  .nb-pro .labor-form-grid{grid-template-columns:1fr 1fr}
}
@media(max-width:700px){
  .nb-pro .control-strip{grid-template-columns:1fr}
  .nb-pro .metric-row,.nb-pro .compact-item{align-items:flex-start;flex-direction:column}
  .nb-pro .metric-row strong,.nb-pro .compact-item strong{white-space:normal}
  .nb-pro .report-tabs,.nb-pro .report-filter-grid{grid-template-columns:1fr}
  .nb-pro .scenario-grid{grid-template-columns:1fr}
  .nb-pro .accounting-lock-form{grid-template-columns:1fr}
  .nb-pro .report-modal-backdrop{padding:10px}
  .nb-pro .report-picker-window{max-height:94vh;width:100%}
  .nb-pro .report-picker-head{padding:16px}
  .nb-pro .report-picker-search{padding:12px 16px}
  .nb-pro .report-picker-shortcuts{padding:0 16px 12px}
  .nb-pro .report-picker-catalog{padding:0 16px 16px}
  .nb-pro .report-picker-grid{grid-template-columns:1fr}
  .nb-pro .report-tab{min-height:0}
  .nb-pro .report-table{min-width:0}
  .nb-pro .report-table td{white-space:normal}
  .nb-pro .hours-tabs{grid-template-columns:1fr}
  .nb-pro .hours-table,.nb-pro .hours-entry-table{min-width:0}
  .nb-pro .hours-entry-table th,.nb-pro .hours-entry-table td{white-space:normal}
  .nb-pro .daily-hours-table{min-width:0}
  .nb-pro .daily-hours-table th,.nb-pro .daily-hours-table td{white-space:normal}
  .nb-pro .filter-button-row,.nb-pro .daily-date-picker{grid-template-columns:1fr}
  .nb-pro .prl-filter,.nb-pro .prl-form-switcher{grid-template-columns:1fr}
  .nb-pro .prl-worker-table{min-width:0}
  .nb-pro .rejoin-form,.nb-pro .labor-form-grid{grid-template-columns:1fr}
}

/* NOVA BUILD CLEAN PRO · navegación por áreas y superficies sobrias */
.nb-clean{--nb-navy:#0b2638;--nb-blue:#0f6f9f;--nb-orange:#ed7d2b;--nb-bg:#f3f5f7;--nb-text:#182531;--nb-muted:#667583;--nb-line:#dce3e8;--nb-shadow:0 1px 2px rgba(16,24,40,.04),0 8px 24px rgba(16,24,40,.05);background:var(--nb-bg);color:var(--nb-text)}
.nb-clean .layout{background:var(--nb-bg)}
.nb-clean .sidebar{width:248px;display:flex;flex-direction:column;overflow:hidden;background:var(--nb-navy);border:0;box-shadow:none;color:#fff}
.nb-clean .main{margin-left:248px;width:calc(100% - 248px)}
.nb-clean .brand{flex:0 0 auto;min-height:78px;margin:0 0 8px;background:var(--nb-navy);border:0;border-bottom:1px solid rgba(255,255,255,.1);padding:14px 18px}
.nb-clean .brand img{width:44px;height:44px;border:1px solid rgba(255,255,255,.18);border-radius:8px;background:#fff;padding:2px}
.nb-clean .brand strong{color:#fff;font-size:14px;letter-spacing:.04em}.nb-clean .brand span{color:#9eb5c3;font-size:11px}
.nb-clean .grouped-nav{flex:1 1 auto;min-height:0;height:auto;padding:6px 10px 12px;overflow-y:auto}
.nb-clean .nav-group{display:block;margin:0 0 15px;padding:0;border:0}
.nb-clean .nav-group h2,.nb-clean .nav-system>summary{margin:0;padding:6px 10px;color:#809bab;font-size:10px;font-weight:900;letter-spacing:.11em;text-transform:uppercase}
.nb-clean .nav-system>summary{display:flex;align-items:center;justify-content:space-between;cursor:pointer;list-style:none}.nb-clean .nav-system>summary::-webkit-details-marker{display:none}
.nb-clean .nav-system>summary:after{content:'+';font-size:14px}.nb-clean .nav-system[open]>summary:after{content:'−'}
.nb-clean .nav-group-items{display:grid;gap:2px}
.nb-clean .nav-item{min-height:39px;display:grid;grid-template-columns:28px 1fr;align-items:center;gap:8px;margin:0;padding:6px 9px;border:1px solid transparent;border-radius:7px;color:#c7d5dd;font-size:13px;font-weight:720}
.nb-clean .nav-item span:first-child{width:27px;height:25px;display:grid;place-items:center;border-radius:5px;background:rgba(255,255,255,.065);color:#9fc6dc;font-size:9px}
.nb-clean .nav-item:hover{background:rgba(255,255,255,.07);border-color:rgba(255,255,255,.06);color:#fff;transform:none}
.nb-clean .nav-item.active{background:#fff;color:var(--nb-navy);border-color:#fff;box-shadow:0 5px 16px rgba(0,0,0,.16)}.nb-clean .nav-item.active span:first-child{background:#e9f4f9;color:#075a82}
.nb-clean .sidebar-footer{position:static;flex:0 0 auto;display:grid;gap:2px;margin:8px 0 0;padding:11px 12px;border:1px solid rgba(255,255,255,.1);border-radius:7px;background:rgba(255,255,255,.045)}
.nb-clean .sidebar-footer span{color:#7f9aaa;font-size:9px;font-weight:900;letter-spacing:.1em;text-transform:uppercase}.nb-clean .sidebar-footer strong{color:#eaf0f3;font-size:12px}.nb-clean .sidebar-footer small{color:#8fa5b2;font-size:10px}
.nb-clean .topbar{height:78px;min-height:78px;padding:0 24px;display:grid;grid-template-columns:minmax(160px,.75fr) minmax(280px,1.2fr) auto;gap:22px;align-items:center;background:#fff;border-bottom:1px solid var(--nb-line);box-shadow:none}
.nb-clean .topbar-title h1{margin:1px 0 0;color:var(--nb-text);font-size:19px;line-height:1.15;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.nb-clean .topbar-kicker{color:#82909b;font-size:9px;letter-spacing:.12em}.nb-clean .topbar-title p{display:none}
.nb-clean .top-search{position:relative;width:100%;max-width:640px;justify-self:center}.nb-clean .top-search input{height:42px;width:100%;padding:0 78px 0 16px;border:1px solid #d8e0e6;border-radius:7px;background:#f7f9fa;font-size:13px}
.nb-clean .top-search input:focus{background:#fff;border-color:#87b8cf;box-shadow:0 0 0 3px rgba(15,111,159,.1)}.nb-clean .search-hint{position:absolute;right:7px;top:7px;padding:6px 8px;border:1px solid #d8e0e6;border-radius:5px;background:#fff;color:#82909b;font-size:10px;font-weight:800}
.nb-clean .userbox{display:flex;align-items:center;gap:12px}.nb-clean .userbox>span{display:grid;text-align:right;line-height:1.15}.nb-clean .userbox strong{max-width:150px;font-size:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.nb-clean .userbox small{color:#83909a;font-size:10px}
.nb-clean .content{max-width:1520px;margin:0 auto;padding:24px 28px 44px}.nb-clean .panel{border:1px solid var(--nb-line);border-radius:9px;background:#fff;box-shadow:var(--nb-shadow)}
.nb-clean .btn{min-height:38px;padding:9px 14px;border-radius:6px;background:var(--nb-blue);border-color:var(--nb-blue);box-shadow:none;font-size:12px;font-weight:850}.nb-clean .btn:hover{background:#0a5c86;border-color:#0a5c86}.nb-clean .btn.ghost{background:#fff;color:#274254;border-color:#ccd8df}.nb-clean .btn.ghost:hover{background:#f4f8fa;color:#0b5f89;border-color:#a9c7d6}
.nb-clean .section-kicker{display:block;margin-bottom:5px;color:#788793;font-size:10px;font-weight:900;letter-spacing:.12em;text-transform:uppercase}
.nb-clean .breadcrumbs{display:flex;align-items:center;gap:7px;margin:-6px 0 16px;color:#7a8993;font-size:11px;font-weight:800}.nb-clean .breadcrumbs a,.nb-clean .breadcrumbs span{display:inline-flex;align-items:center;min-height:24px;color:#71818c}.nb-clean .breadcrumbs a:hover{color:#0a628c}.nb-clean .breadcrumbs a:after,.nb-clean .breadcrumbs span:not(:last-child):after{content:'›';margin-left:7px;color:#a6b3bb}.nb-clean .breadcrumbs [aria-current="page"]{color:#263743}

/* Arquitectura UX común: centros, cabeceras, paneles y KPIs */
.nb-clean .ops-hero,.nb-clean .report-search-hero,.nb-clean .module-header{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:end;gap:22px;margin:0 0 16px;padding:21px 23px;border:1px solid var(--nb-line);border-left:4px solid var(--nb-blue);border-radius:9px;background:#fff;color:var(--nb-text);box-shadow:var(--nb-shadow)}.nb-clean .ops-hero h2,.nb-clean .report-search-hero h2,.nb-clean .module-header h2{margin:0;max-width:840px;color:var(--nb-text);font-size:25px;line-height:1.15;letter-spacing:-.02em}.nb-clean .ops-hero p,.nb-clean .report-search-hero p,.nb-clean .module-header p{margin:6px 0 0;max-width:860px;color:var(--nb-muted);font-size:13px;line-height:1.45}.nb-clean .ops-hero .section-kicker{color:#6f7e89}.nb-clean .ops-hero-actions,.nb-clean .module-primary-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap;justify-content:flex-end}.nb-clean .center-kpis{gap:12px;margin-bottom:16px}.nb-clean .center-kpis .card.stat{min-height:92px;display:flex;align-items:center;gap:12px;padding:16px 17px;border-radius:9px;border:1px solid var(--nb-line);background:#fff;box-shadow:var(--nb-shadow)}.nb-clean .center-kpis .stat-icon{width:38px;height:38px;display:grid;place-items:center;border-radius:7px;background:#eaf4f9;color:#0b628a;font-size:11px;font-weight:950}.nb-clean .center-kpis .stat span{color:#77858f;font-size:10px;font-weight:900;letter-spacing:.08em;text-transform:uppercase}.nb-clean .center-kpis .stat strong{display:block;margin-top:3px;color:#182531;font-size:22px;line-height:1.1}.nb-clean .center-grid{align-items:start;margin-bottom:16px}.nb-clean .panel-title{align-items:flex-start;margin-bottom:14px}.nb-clean .panel-title h2{font-size:17px;letter-spacing:-.01em}.nb-clean .panel-title p{margin:4px 0 0;color:var(--nb-muted);font-size:12px}.nb-clean .priority-list,.nb-clean .compact-list,.nb-clean .metric-list{display:grid;gap:8px}.nb-clean .priority-item,.nb-clean .compact-item,.nb-clean .metric-row{border-radius:8px;border-color:var(--nb-line);box-shadow:none}.nb-clean .control-strip{gap:10px;margin-bottom:16px}.nb-clean .control-card{border-radius:8px;box-shadow:none}

/* Dashboard ejecutivo */
.nb-clean .executive-hero{display:flex;align-items:center;justify-content:space-between;gap:24px;margin:0 0 16px;padding:22px 24px;border:1px solid var(--nb-line);border-left:4px solid var(--nb-blue);border-radius:9px;background:#fff;box-shadow:var(--nb-shadow)}
.nb-clean .executive-hero h2{margin:0;color:var(--nb-text);font-size:27px;letter-spacing:-.02em}.nb-clean .executive-hero p{margin:6px 0 0;color:var(--nb-muted);font-size:13px}.nb-clean .executive-actions{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end}
.nb-clean .executive-kpis{grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-bottom:16px}.nb-clean .executive-kpis .control-card{min-height:116px;justify-content:center;gap:5px;padding:17px 18px;border-radius:8px;box-shadow:none}.nb-clean .executive-kpis .control-card span{font-size:10px}.nb-clean .executive-kpis .control-card strong{font-size:25px;letter-spacing:-.025em}.nb-clean .executive-kpis .control-card small{font-size:11px}
.nb-clean .executive-grid{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(300px,.6fr);gap:16px;margin-bottom:16px}.nb-clean .executive-grid>.panel{margin:0;padding:20px}.nb-clean .clean-title{margin-bottom:14px;align-items:flex-start}.nb-clean .clean-title h2{margin:0;font-size:18px}
.nb-clean .clean-priorities{gap:7px}.nb-clean .clean-priorities .priority-item{display:grid;grid-template-columns:72px 1fr auto;align-items:center;min-height:66px;padding:11px 13px;border-radius:7px;box-shadow:none}.nb-clean .clean-priorities .priority-item>span{width:auto;text-align:center;font-size:9px}.nb-clean .clean-priorities .priority-item i{color:#91a0aa;font-style:normal;font-size:17px}
.nb-clean .command-list{display:grid;gap:7px}.nb-clean .command-list>a{display:grid;grid-template-columns:34px 1fr auto;align-items:center;gap:10px;padding:11px;border:1px solid var(--nb-line);border-radius:7px;color:var(--nb-text);background:#fff}.nb-clean .command-list>a:hover{border-color:#a9cad9;background:#f7fbfd}.nb-clean .command-list>a>span{display:grid;place-items:center;width:32px;height:32px;border-radius:6px;background:#eaf4f9;color:#0a648f;font-size:10px;font-weight:900}.nb-clean .command-list div{display:grid;gap:2px}.nb-clean .command-list strong{font-size:12px}.nb-clean .command-list small{color:var(--nb-muted);font-size:10px}.nb-clean .command-list i{color:#91a0aa;font-style:normal}
.nb-clean .dashboard-details{margin:0;padding:0;overflow:hidden}.nb-clean .dashboard-details>summary{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:16px 20px;cursor:pointer;list-style:none}.nb-clean .dashboard-details>summary::-webkit-details-marker{display:none}.nb-clean .dashboard-details>summary>span{display:grid;gap:3px}.nb-clean .dashboard-details>summary strong{font-size:14px}.nb-clean .dashboard-details>summary small{color:var(--nb-muted);font-size:11px}.nb-clean .dashboard-details>summary>b{color:#0b6b98;font-size:11px}.nb-clean .dashboard-details[open]>summary{border-bottom:1px solid var(--nb-line);background:#fbfcfd}.nb-clean .dashboard-details-body{padding:18px}.nb-clean .compact-stats{grid-template-columns:repeat(4,minmax(0,1fr));margin-bottom:18px}.nb-clean .compact-stats .stat{min-height:90px}.nb-clean .detail-tables{align-items:start}.nb-clean .detail-tables>section{min-width:0}

/* Centro de reportes */
.nb-clean .report-search-hero{display:flex;align-items:flex-end;justify-content:space-between;gap:20px;margin:0 0 16px;padding:8px 2px 18px;border-bottom:1px solid var(--nb-line)}.nb-clean .report-search-hero h2{margin:0;font-size:29px;letter-spacing:-.025em}.nb-clean .report-search-hero p{margin:7px 0 0;color:var(--nb-muted);font-size:13px}
.nb-clean .report-finder{max-width:1120px;margin:0 auto;padding:22px}.nb-clean .report-finder-controls{display:grid;grid-template-columns:minmax(0,1fr) 250px;gap:12px}.nb-clean .report-finder-controls .field{margin:0}.nb-clean .report-finder-controls input,.nb-clean .report-finder-controls select{height:48px;font-size:14px}
.nb-clean .report-suggestions{display:flex;align-items:center;gap:7px;flex-wrap:wrap;margin:14px 0 18px}.nb-clean .report-suggestions>span{color:#7d8a94;font-size:11px;font-weight:800}.nb-clean .report-suggestions button,.nb-clean .text-button{padding:5px 9px;border:1px solid #d5e1e7;border-radius:999px;background:#f8fafb;color:#426071;font:inherit;font-size:10px;font-weight:800;cursor:pointer}.nb-clean .report-suggestions button:hover,.nb-clean .text-button:hover{border-color:#9fc4d6;background:#eef7fb;color:#075d87}
.nb-clean .report-result-meta{display:flex;align-items:center;justify-content:space-between;min-height:39px;padding:9px 0;border-top:1px solid var(--nb-line);border-bottom:1px solid var(--nb-line);color:#77858f;font-size:11px;font-weight:800}
.nb-clean .report-search-idle{min-height:300px;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:36px;color:var(--nb-muted)}.nb-clean .report-search-idle>span{display:grid;place-items:center;width:52px;height:52px;margin-bottom:14px;border-radius:12px;background:#edf5f9;color:#0b668f;font-size:14px;font-weight:900}.nb-clean .report-search-idle strong{margin-bottom:5px;color:#344552;font-size:15px}.nb-clean .report-search-idle small{font-size:11px}
.nb-clean .report-results{display:grid;gap:20px;padding-top:18px}.nb-clean .report-result-group h3{margin:0 0 8px;color:#657581;font-size:11px;font-weight:900;letter-spacing:.08em;text-transform:uppercase}.nb-clean .report-result-list{display:grid;grid-template-columns:1fr 1fr;gap:8px}.nb-clean .report-result-row{display:grid;grid-template-columns:38px 1fr auto;align-items:center;gap:11px;min-height:72px;padding:11px 13px;border:1px solid var(--nb-line);border-radius:7px;background:#fff;color:var(--nb-text)}.nb-clean .report-result-row:hover{border-color:#91bdcf;background:#f8fbfc;box-shadow:0 4px 14px rgba(14,91,126,.07)}.nb-clean .report-result-row>span{display:grid;place-items:center;width:36px;height:32px;border-radius:6px;background:#e9f4f9;color:#0a648f;font-size:9px;font-weight:900}.nb-clean .report-result-row>div{display:grid;gap:3px}.nb-clean .report-result-row strong{font-size:12px}.nb-clean .report-result-row small{color:var(--nb-muted);font-size:10px;line-height:1.35}.nb-clean .report-result-row i{color:#91a0aa;font-style:normal}.nb-clean .report-search-empty{margin-top:18px}.nb-clean [hidden]{display:none!important}

/* Formularios progresivos */
.nb-clean .record-workspace{display:grid;grid-template-columns:260px minmax(0,1fr);gap:18px;align-items:start}.nb-clean .record-rail{position:sticky;top:96px;display:grid;gap:16px;padding:18px;border:1px solid var(--nb-line);border-radius:9px;background:#fff;box-shadow:var(--nb-shadow)}.nb-clean .record-rail strong{display:block;margin:1px 0 5px;color:var(--nb-text);font-size:17px;line-height:1.2}.nb-clean .record-rail small{display:block;color:var(--nb-muted);font-size:11px;line-height:1.45}.nb-clean .record-steps{display:grid;gap:6px;padding-top:4px;border-top:1px solid var(--nb-line)}.nb-clean .record-steps a{display:grid;grid-template-columns:23px 1fr;gap:8px;align-items:center;min-height:35px;padding:6px 7px;border:1px solid transparent;border-radius:7px;color:#354752;font-size:12px;font-weight:850}.nb-clean .record-steps a:hover{border-color:#c8dbe5;background:#f4f9fb;color:#075f89}.nb-clean .record-steps span{display:grid;place-items:center;width:22px;height:22px;border-radius:5px;background:#eaf4f9;color:#0b628a;font-size:10px;font-weight:950}.nb-clean .record-rail-actions{display:grid;gap:9px;padding-top:10px;border-top:1px solid var(--nb-line)}.nb-clean .record-rail-actions span{color:#7a8993;font-size:10px;font-weight:800}
.nb-clean .smart-form-panel{max-width:1120px;margin:0 auto;padding:0;overflow:hidden}.nb-clean .clean-form-intro{display:flex;align-items:flex-end;justify-content:space-between;gap:20px;margin:0;padding:22px 24px;border-bottom:1px solid var(--nb-line);background:#fff}.nb-clean .clean-form-intro h2{margin:0;font-size:23px}.nb-clean .clean-form-intro p{margin:6px 0 0;color:var(--nb-muted);font-size:12px}.nb-clean .required-note{white-space:nowrap;color:#77858f;font-size:10px;font-weight:800}
.nb-clean .form-section{display:block;margin:0;padding:22px 24px;border:0;border-bottom:1px solid var(--nb-line);background:#fff}.nb-clean .form-section>header{margin-bottom:16px}.nb-clean .form-section h3{margin:0;font-size:15px}.nb-clean .form-section header p{margin:4px 0 0;color:var(--nb-muted);font-size:11px}.nb-clean .optional-form-section{padding:0}.nb-clean .optional-form-section>summary{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:17px 24px;cursor:pointer;list-style:none;background:#fbfcfd}.nb-clean .optional-form-section>summary::-webkit-details-marker{display:none}.nb-clean .optional-form-section>summary span{display:grid;gap:2px}.nb-clean .optional-form-section>summary strong{font-size:13px}.nb-clean .optional-form-section>summary small{color:#7b8993;font-size:10px}.nb-clean .optional-form-section>summary>b{color:#0d6d99;font-size:10px}.nb-clean .optional-form-section[open]>summary{border-bottom:1px solid var(--nb-line)}.nb-clean .optional-form-section>.form-grid{padding:21px 24px}
.nb-clean .smart-form-panel .form-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:15px}.nb-clean .smart-form-panel .field.wide{grid-column:1/-1}.nb-clean .smart-form-panel input,.nb-clean .smart-form-panel select,.nb-clean .smart-form-panel textarea{min-height:42px}.nb-clean .smart-field-hint{color:#6f8794!important;font-size:9px!important}.nb-clean .sticky-form-actions{position:sticky;bottom:0;z-index:3;margin:0;padding:14px 24px;border:0;background:rgba(255,255,255,.96);box-shadow:0 -8px 22px rgba(25,40,51,.055)}

/* Listados y filtros bajo demanda */
.nb-clean .module-header{display:flex;align-items:flex-end;justify-content:space-between;gap:22px;margin-bottom:14px}.nb-clean .module-header h2{margin:0;font-size:26px;letter-spacing:-.02em}.nb-clean .module-header p{margin:5px 0 0;color:var(--nb-muted);font-size:12px}.nb-clean .module-primary-actions{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end}
.nb-clean .list-command-bar{position:relative;z-index:5;display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:10px;padding:11px;border:1px solid var(--nb-line);border-radius:8px;background:#fff;box-shadow:0 1px 2px rgba(16,24,40,.03)}.nb-clean .clean-list-search{display:grid;grid-template-columns:minmax(240px,480px) auto;gap:8px;flex:1;margin:0}.nb-clean .clean-list-search input{height:38px}.nb-clean .list-command-actions{display:flex;gap:8px}.nb-clean .list-filter-panel{margin:0 0 10px;padding:16px;box-shadow:none}.nb-clean .list-filter-grid{display:grid;grid-template-columns:repeat(4,minmax(150px,1fr));gap:12px;align-items:end}.nb-clean .list-filter-grid .field{margin:0}.nb-clean .list-filter-actions{display:flex;gap:7px;align-items:center;justify-content:flex-end}
.nb-clean .clean-list-panel{padding:0;overflow:visible}.nb-clean .clean-list-panel .table-wrap{border:0;border-radius:9px}.nb-clean .clean-list-panel th{height:42px;background:#f4f7f9;color:#63727d;font-size:9px;letter-spacing:.06em}.nb-clean .clean-list-panel td{height:52px;padding:10px 12px;font-size:12px}.nb-clean .actions-cell{width:94px;text-align:right}.nb-clean tr.menu-open-row{position:relative;z-index:55}.nb-clean td.menu-open-cell{position:relative;z-index:56}.nb-clean .action-menu-list{z-index:140}.nb-clean .toolbar-menu-list{z-index:150}
.nb-clean .list-command-bar{z-index:80}.nb-clean .list-command-actions{align-items:center;flex-wrap:wrap;justify-content:flex-end}.nb-clean .column-menu-list{display:grid;gap:8px;min-width:230px;padding:10px}.nb-clean .column-menu-list strong{padding:2px 2px 4px;color:#344552;font-size:11px}.nb-clean .column-menu-list label{display:flex;align-items:center;gap:8px;padding:7px 8px;border-radius:6px;color:#354752;font-size:12px;font-weight:800;cursor:pointer}.nb-clean .column-menu-list label:hover{background:#f4f8fa}.nb-clean .column-menu-list input{width:15px;height:15px}.nb-clean .column-reset{width:100%;border-radius:6px;text-align:center}.nb-clean .clean-list-panel.compact-density th{height:34px}.nb-clean .clean-list-panel.compact-density td{height:38px;padding:7px 10px;font-size:11px}.nb-clean .actions-cell{width:168px;min-width:168px;text-align:right;white-space:nowrap}.nb-clean .actions-cell.row-actions{display:flex;justify-content:flex-end;align-items:center;gap:6px;flex-wrap:nowrap}.nb-clean .row-primary-action{background:#edf6fb!important;border:1px solid #c8dde8!important;color:#0a6089!important;box-shadow:none!important}.nb-clean .action-menu[open]{z-index:999}.nb-clean .action-menu[open] .action-menu-list{z-index:1000}.nb-clean .toolbar-menu[open]{z-index:900}.nb-clean .toolbar-menu[open] .toolbar-menu-list{z-index:910}
.nb-clean .active-filter-strip{display:flex;align-items:center;gap:7px;flex-wrap:wrap;margin:0 0 10px;padding:9px 10px;border:1px solid #cfe2ec;border-radius:8px;background:#f4f9fc;color:#5c6e7b;font-size:11px;font-weight:800}.nb-clean .active-filter-strip span{color:#0b628a;font-weight:950;text-transform:uppercase;letter-spacing:.08em}.nb-clean .active-filter-strip b{padding:5px 8px;border:1px solid #d6e5ec;border-radius:999px;background:#fff;color:#344552;font-weight:850}.nb-clean .active-filter-strip a{margin-left:auto;color:#0b628a;font-weight:950}
.nb-clean .module-flow-nav{position:sticky;top:78px;z-index:45;display:flex;align-items:center;gap:6px;flex-wrap:wrap;margin:0 0 12px;padding:8px;border:1px solid var(--nb-line);border-radius:8px;background:rgba(255,255,255,.96);box-shadow:0 6px 18px rgba(16,24,40,.06);backdrop-filter:blur(10px)}.nb-clean .module-flow-nav a{min-height:32px;display:inline-flex;align-items:center;padding:7px 10px;border-radius:6px;color:#425968;font-size:11px;font-weight:900}.nb-clean .module-flow-nav a:hover{background:#eef8fc;color:#0b628a}.nb-clean .module-flow-nav a:last-child{margin-left:auto;color:#0b628a}

/* Horas por obra · centro profesional */
.nb-clean .hours-command-center{padding:18px;margin-bottom:14px;border-left:4px solid #0f6f9f}.nb-clean .hours-focus-form{display:grid;grid-template-columns:repeat(6,minmax(130px,1fr));gap:12px;align-items:end}.nb-clean .hours-focus-form .field{margin:0}.nb-clean .hours-focus-form .wide-ish{grid-column:span 2}.nb-clean .hours-focus-actions{display:flex;align-items:end}.nb-clean .hours-focus-actions .btn{width:100%}.nb-clean .advanced-filter-box{grid-column:1/-1;border:1px solid #dbe7ee;border-radius:8px;background:#f8fbfd}.nb-clean .advanced-filter-box>summary{padding:11px 13px;cursor:pointer;color:#315267;font-size:12px;font-weight:900;list-style:none}.nb-clean .advanced-filter-box>summary::-webkit-details-marker{display:none}.nb-clean .advanced-filter-box>summary:after{content:'+';float:right}.nb-clean .advanced-filter-box[open]>summary{border-bottom:1px solid #dbe7ee}.nb-clean .advanced-filter-box[open]>summary:after{content:'−'}.nb-clean .hours-advanced-grid{display:grid;grid-template-columns:repeat(5,minmax(150px,1fr));gap:12px;padding:13px}.nb-clean .hours-kpi-grid{grid-template-columns:repeat(6,minmax(0,1fr));gap:10px}.nb-clean .hours-kpi-grid .summary-card{min-height:86px}.nb-clean .hours-alert-panel{padding:18px;margin-bottom:14px}.nb-clean .hours-alert-list{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:9px}.nb-clean .hours-alert{display:grid;grid-template-columns:58px 1fr;gap:10px;align-items:start;min-height:82px;padding:12px;border:1px solid var(--nb-line);border-radius:8px;background:#fff;color:#243947}.nb-clean .hours-alert span{display:grid;place-items:center;height:28px;border-radius:6px;font-size:9px;font-weight:950;letter-spacing:.06em}.nb-clean .hours-alert strong{display:block;font-size:12px}.nb-clean .hours-alert small{display:block;margin-top:4px;color:#687985;font-size:10px;line-height:1.35}.nb-clean .hours-alert.critical{border-color:#f0b8b8;background:#fff7f7}.nb-clean .hours-alert.critical span{background:#fee4e2;color:#b42318}.nb-clean .hours-alert.high{border-color:#ffd28a;background:#fffaf0}.nb-clean .hours-alert.high span{background:#fff0d0;color:#a05200}.nb-clean .hours-alert.medium span{background:#eaf4f9;color:#0b628a}.nb-clean .hours-alert.info span{background:#eef2f6;color:#566574}.nb-clean .hours-table-workspace{padding:18px;margin-bottom:16px}.nb-clean .pro-hours-table{min-width:1220px}.nb-clean .pro-hours-table th{white-space:nowrap}.nb-clean .pro-hours-table td{vertical-align:top}.nb-clean .select-col{width:44px;text-align:center}.nb-clean .control-alert{color:#b54708;font-size:10px;font-weight:900}.nb-clean .hours-flow-nav{top:78px}.nb-clean .hours-table-workspace .list-command-actions{display:flex;align-items:center;gap:7px;flex-wrap:wrap;justify-content:flex-end}
.nb-clean .hours-option-panel{padding:18px;margin-bottom:14px}.nb-clean .hours-option-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px}.nb-clean .hours-option-card{display:grid;grid-template-columns:42px 1fr;grid-template-rows:auto auto;gap:4px 10px;align-items:start;min-height:92px;padding:13px;border:1px solid var(--nb-line);border-radius:8px;background:#fff;color:#253845;text-decoration:none}.nb-clean .hours-option-card:hover{border-color:#97c6da;background:#f7fbfd;box-shadow:0 6px 18px rgba(16,24,40,.06)}.nb-clean .hours-option-card span{grid-row:1/3;display:grid;place-items:center;width:40px;height:36px;border-radius:7px;background:#eaf4f9;color:#0b628a;font-size:10px;font-weight:950;letter-spacing:.08em}.nb-clean .hours-option-card.primary span{background:#0b628a;color:#fff}.nb-clean .hours-option-card strong{font-size:13px;color:#1d2d38}.nb-clean .hours-option-card small{color:#6f7f8a;font-size:10px;line-height:1.35}

/* Centro de reportes · inteligencia empresarial */
.nb-clean .report-intelligence-hero{border-left-color:#0b628a}.nb-clean .report-category-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-bottom:16px}.nb-clean .report-category-card{display:grid;grid-template-columns:42px 1fr auto;align-items:center;gap:12px;min-height:96px;padding:15px;border:1px solid var(--nb-line);border-radius:9px;background:#fff;color:var(--nb-text);box-shadow:var(--nb-shadow)}.nb-clean .report-category-card:hover{border-color:#9dc8da;background:#f8fcfd}.nb-clean .report-category-card>span{display:grid;place-items:center;width:40px;height:38px;border-radius:8px;background:#eaf4f9;color:#0b628a;font-size:11px;font-weight:950}.nb-clean .report-category-card strong{display:block;font-size:14px}.nb-clean .report-category-card small{display:block;margin-top:4px;color:var(--nb-muted);font-size:10px;line-height:1.35}.nb-clean .report-category-card>b{display:grid;place-items:center;min-width:30px;height:28px;border-radius:999px;background:#f0f4f7;color:#536675;font-size:11px}.nb-clean .report-dashboard-grid{align-items:start;margin-bottom:16px}.nb-clean .report-favorite-list,.nb-clean .business-question-list{display:grid;gap:8px}.nb-clean .report-favorite-card{display:grid;grid-template-columns:38px 1fr;gap:10px;align-items:center;padding:11px;border:1px solid var(--nb-line);border-radius:8px;background:#fff;color:#243947}.nb-clean .report-favorite-card:hover,.nb-clean .business-question-card:hover{border-color:#9dc8da;background:#f7fbfd}.nb-clean .report-favorite-card>span{display:grid;place-items:center;width:34px;height:32px;border-radius:7px;background:#eaf4f9;color:#0b628a;font-size:10px;font-weight:950}.nb-clean .report-favorite-card strong,.nb-clean .business-question-card strong{display:block;font-size:12px}.nb-clean .report-favorite-card small,.nb-clean .business-question-card small{display:block;margin-top:3px;color:var(--nb-muted);font-size:10px}.nb-clean .business-question-card{display:block;padding:12px;border:1px solid var(--nb-line);border-radius:8px;background:#fff;color:#243947}.nb-clean .report-pro-finder{padding:20px}.nb-clean .report-total{align-self:start;padding:7px 10px;border:1px solid #dbe7ee;border-radius:999px;background:#f8fbfd;color:#536675;font-size:11px;font-weight:900}

/* Usuarios · auditoría */
.nb-clean .audit-hero{border-left-color:#1f6b4a}.nb-clean .audit-kpi-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}.nb-clean .audit-filter-panel,.nb-clean .audit-log-panel{padding:18px;margin-bottom:16px}.nb-clean .audit-filter-grid{display:grid;grid-template-columns:repeat(6,minmax(150px,1fr));gap:12px;align-items:end}.nb-clean .audit-filter-grid .field{margin:0}.nb-clean .audit-filter-grid .wide-ish{grid-column:span 2}.nb-clean .audit-filter-actions{display:flex;gap:8px;align-items:end;justify-content:flex-end}.nb-clean .audit-log-table{min-width:1320px}.nb-clean .audit-log-table th{white-space:nowrap}.nb-clean .audit-log-table td{vertical-align:top;font-size:12px}.nb-clean .audit-log-table small{color:#667985;font-size:10px}

/* Importar / Exportar */
.nb-clean .import-export-hero{border-left-color:#0b628a}.nb-clean .import-export-grid{align-items:start}.nb-clean .import-panel,.nb-clean .export-panel{padding:18px}.nb-clean .pro-import-row{grid-template-columns:minmax(150px,1fr) auto minmax(260px,1.45fr);gap:10px;align-items:center}.nb-clean .pro-import-row>div{display:grid;gap:2px}.nb-clean .pro-import-row small,.nb-clean .small-note{color:#72828d;font-size:10px;font-weight:800}.nb-clean .pro-export-links{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}.nb-clean .pro-export-links a,.nb-clean .export-disabled{display:grid;grid-template-columns:36px 1fr;gap:3px 10px;align-items:center;min-height:62px;padding:11px;border:1px solid var(--nb-line);border-radius:8px;background:#fff;color:#243947}.nb-clean .pro-export-links a:hover{border-color:#9dc8da;background:#f7fbfd}.nb-clean .pro-export-links span{grid-row:1/3;display:grid;place-items:center;width:34px;height:32px;border-radius:7px;background:#eaf4f9;color:#0b628a;font-size:10px;font-weight:950}.nb-clean .pro-export-links strong,.nb-clean .export-disabled b{font-size:12px}.nb-clean .pro-export-links small,.nb-clean .export-disabled small{color:#72828d;font-size:10px}.nb-clean .export-disabled{opacity:.58;background:#f8fafb}

/* Copias automáticas */
.nb-clean .backup-status-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-bottom:16px}.nb-clean .backup-status-card{display:grid;gap:5px;padding:18px 20px;border:1px solid var(--nb-line);border-radius:9px;background:#fff;box-shadow:var(--nb-shadow)}.nb-clean .backup-status-card>span{color:#778792;font-size:9px;font-weight:900;letter-spacing:.1em;text-transform:uppercase}.nb-clean .backup-status-card>strong{font-size:16px;color:var(--nb-text)}.nb-clean .backup-status-card>small{color:var(--nb-muted);font-size:11px;line-height:1.45}.nb-clean .backup-status-card.active{border-left:4px solid #1c9b57}.nb-clean .backup-status-card.active>strong{color:#147442}.nb-clean .backup-history-panel{padding:18px 20px}.nb-clean .backup-list{gap:7px}.nb-clean .backup-list a{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:12px 14px;border:1px solid var(--nb-line);border-radius:7px;background:#fff;font-size:12px}.nb-clean .backup-list a:hover{border-color:#9fc4d6;background:#f7fbfd}.nb-clean .backup-list a small{white-space:nowrap;font-size:10px;font-weight:850}
.nb-clean .backup-settings-panel{margin-bottom:16px;padding:20px}.nb-clean .backup-settings-form{display:grid;grid-template-columns:minmax(280px,.8fr) minmax(320px,1.2fr) auto;gap:16px;align-items:end}.nb-clean .backup-settings-form .field{margin:0}.nb-clean .backup-toggle{min-height:48px;display:flex;align-items:flex-start;gap:10px;padding:10px 12px;border:1px solid var(--nb-line);border-radius:7px;background:#f8fafb;cursor:pointer}.nb-clean .backup-toggle input{width:18px;height:18px;margin-top:2px}.nb-clean .backup-toggle span{display:grid;gap:2px}.nb-clean .backup-toggle strong{font-size:12px}.nb-clean .backup-toggle small{font-size:10px;color:var(--nb-muted)}

/* Nóminas enlazadas con horas y contabilidad */
.nb-clean .payroll-control-panel{margin-bottom:14px;padding:18px}.nb-clean .payroll-control-grid{display:grid;grid-template-columns:minmax(0,1.55fr) minmax(240px,.45fr);gap:16px;align-items:stretch}.nb-clean .payroll-worker-search{display:grid;grid-template-columns:1.1fr 1fr 1fr 170px auto;gap:12px;align-items:end;margin:0}.nb-clean .payroll-worker-search>div:first-child{align-self:center}.nb-clean .payroll-worker-search h2{margin:2px 0 4px;font-size:19px}.nb-clean .payroll-worker-search p{margin:0}.nb-clean .payroll-worker-search .field{margin:0}.nb-clean .payroll-action-box{padding:16px;border:1px solid var(--nb-line);border-radius:9px;background:#f7fafc}.nb-clean .payroll-action-list{display:grid;gap:8px;margin-top:10px}.nb-clean .payroll-action-list a{padding:10px 12px;border:1px solid #dbe7ee;border-radius:7px;background:#fff;color:#0b6088;font-size:12px;font-weight:900}.nb-clean .payroll-action-list a:hover{background:#eef8fc}.nb-clean .payroll-worker-matches{margin-top:14px;padding:13px;border:1px solid #dbe7ee;border-radius:9px;background:#fff}.nb-clean .payroll-worker-matches>div{display:flex;flex-wrap:wrap;gap:8px;margin-top:8px}.nb-clean .payroll-worker-matches a{padding:9px 11px;border:1px solid var(--nb-line);border-radius:7px;background:#fbfcfd;font-weight:850}.nb-clean .payroll-worker-matches small{display:block;color:var(--nb-muted);font-weight:700}.nb-clean .payroll-worker-card{margin-bottom:14px;padding:18px}.nb-clean .payroll-worker-head{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;margin-bottom:14px}.nb-clean .payroll-worker-head h2{margin:2px 0 4px;font-size:24px}.nb-clean .payroll-worker-head p{margin:0;color:var(--nb-muted)}.nb-clean .payroll-worker-actions{display:flex;flex-wrap:wrap;gap:7px;justify-content:flex-end}.nb-clean .payroll-worker-kpis{grid-template-columns:repeat(5,minmax(0,1fr));margin-bottom:14px}.nb-clean .payroll-worker-detail h3{margin:0 0 10px;font-size:14px}.nb-clean .payroll-mini-list{gap:7px}.nb-clean .payroll-summary{grid-template-columns:repeat(6,minmax(0,1fr));margin-bottom:14px}.nb-clean .payroll-calculation-panel,.nb-clean .payroll-movement-panel,.nb-clean .payroll-history-panel{margin-bottom:16px;padding:18px}.nb-clean .payroll-table{min-width:1680px}.nb-clean .payroll-table td{vertical-align:top}.nb-clean .payroll-pay-form{display:grid;grid-template-columns:minmax(115px,1fr);gap:5px;min-width:145px}.nb-clean .payroll-pay-form select{height:32px;min-height:32px;padding:4px 7px;font-size:10px}.nb-clean .payroll-pay-form .btn{width:100%}.nb-clean .payroll-movement-form{grid-template-columns:repeat(4,minmax(0,1fr))}.nb-clean .positive{color:#167b49;font-weight:800}.nb-clean .payroll-balance{font-weight:900}.nb-clean .payroll-balance.due{color:#b54708}.nb-clean .payroll-balance.credit{color:#0b6b98}.nb-clean .payroll-carry-note{display:inline-block;max-width:150px;color:#0b6b98;font-size:10px;font-weight:900;line-height:1.25}.nb-clean.app-nominas .summary-card:last-child{border-left-color:#0b6b98}
.nb-clean .notice.warning{background:#fff7e6;color:#8a4b00;border:1px solid #ffd28a}.nb-clean .notice ul{margin:8px 0 0;padding-left:18px}.nb-clean .compact-note{margin:10px 0 0;font-size:11px;line-height:1.45}.nb-clean .payroll-incidents-panel{margin-bottom:16px;padding:18px}.nb-clean .payroll-incident-form{grid-template-columns:repeat(4,minmax(0,1fr));margin-bottom:14px}.nb-clean .payroll-checks{display:flex;align-items:center;flex-wrap:wrap;gap:10px;padding:9px 0}.nb-clean .payroll-checks.wide{grid-column:1/-1}.nb-clean .payroll-checks label{display:flex;align-items:center;gap:6px;margin:0;color:#3c4b55;font-size:11px;font-weight:850}.nb-clean .payroll-checks input{width:16px;height:16px}.nb-clean .compact-table{margin-top:10px}.nb-clean .toolbar-form{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin:0}.nb-clean .toolbar-form input,.nb-clean .toolbar-form select{min-height:34px;max-width:160px}.nb-clean .payroll-admin-grid{align-items:start;margin-bottom:16px}.nb-clean .compact-list .compact-item.active{border-color:#7bb5cf;background:#eef8fc}.nb-clean .compact-form{grid-template-columns:repeat(5,minmax(0,1fr));gap:10px;margin-bottom:12px}.nb-clean .payroll-legal-overview{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;flex-wrap:wrap;margin-bottom:16px;padding:16px}.nb-clean .payroll-worker-form{padding:20px;margin-bottom:16px}.nb-clean .payroll-form-sections{display:grid;gap:18px}.nb-clean .payroll-form-sections section{padding:16px;border:1px solid var(--nb-line);border-radius:9px;background:#fbfcfd}.nb-clean .payroll-form-sections h3{margin:0 0 12px;font-size:15px}.nb-clean .payroll-form-sections .form-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.nb-clean .payroll-readiness{padding:18px;margin-bottom:16px}.nb-clean .payroll-issue-list{display:grid;gap:8px}.nb-clean .payroll-issue{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 12px;border-radius:8px;border:1px solid var(--nb-line);background:#fff}.nb-clean .payroll-issue strong{font-size:12px}.nb-clean .payroll-issue span{color:var(--nb-muted);font-size:11px;font-weight:800}.nb-clean .payroll-issue.error{border-color:#f3b7b7;background:#fff7f7}.nb-clean .payroll-issue.warning{border-color:#ffd28a;background:#fffaf0}.nb-clean .payroll-issue.info{border-color:#b7ddf2;background:#f2f9fd}.nb-clean .sticky-actions{position:sticky;bottom:0;z-index:4;margin:16px -20px -20px;padding:14px 20px;background:rgba(255,255,255,.96);border-top:1px solid var(--nb-line);box-shadow:0 -8px 22px rgba(25,40,51,.055)}
.nb-clean .payroll-generate-form{margin:0}.nb-clean .linklike-action{width:100%;min-height:38px;padding:10px 12px;border:1px solid #dbe7ee;border-radius:7px;background:#fff;color:#0b6088;text-align:left;font:inherit;font-size:12px;font-weight:900;cursor:pointer}.nb-clean .linklike-action:hover{background:#eef8fc}.nb-clean .payroll-detail-kpis{grid-template-columns:repeat(5,minmax(0,1fr));margin-bottom:16px}.nb-clean .payroll-detail-grid{align-items:start;margin-bottom:16px}.nb-clean .payroll-detail-grid .panel{padding:18px}.nb-clean .payroll-table{min-width:1960px}.nb-clean .payroll-generated-card{padding:18px;margin-bottom:16px;border-left:4px solid #0f6f9f}

/* Barra horizontal flotante sincronizada con la tabla que está en pantalla */
.floating-table-scroll{position:fixed;z-index:75;bottom:9px;height:22px;display:block;overflow-x:scroll;overflow-y:hidden;border:1px solid #aebdc7;border-radius:7px;background:#eef3f6;box-shadow:0 5px 18px rgba(11,38,56,.22);opacity:0;pointer-events:none;transform:translateY(34px);transition:opacity .16s ease,transform .16s ease;scrollbar-color:#55788c #dbe5ea;scrollbar-width:auto}.floating-table-scroll.is-visible{opacity:1;pointer-events:auto;transform:translateY(0)}.floating-table-scroll-spacer{height:1px}.floating-table-scroll::-webkit-scrollbar{height:14px}.floating-table-scroll::-webkit-scrollbar-track{background:#dbe5ea;border-radius:7px}.floating-table-scroll::-webkit-scrollbar-thumb{background:#55788c;border:2px solid #dbe5ea;border-radius:7px}.floating-table-scroll::-webkit-scrollbar-thumb:hover{background:#315e76}

@media(max-width:1180px){.nb-clean .executive-kpis{grid-template-columns:1fr 1fr}.nb-clean .executive-grid{grid-template-columns:1fr}.nb-clean .record-workspace{grid-template-columns:1fr}.nb-clean .record-rail{position:static}.nb-clean .record-steps{grid-template-columns:repeat(2,minmax(0,1fr))}.nb-clean .smart-form-panel .form-grid{grid-template-columns:1fr 1fr}.nb-clean .list-filter-grid{grid-template-columns:repeat(3,minmax(150px,1fr))}.nb-clean .hours-focus-form{grid-template-columns:repeat(3,minmax(0,1fr))}.nb-clean .hours-advanced-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.nb-clean .hours-kpi-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.nb-clean .hours-option-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.nb-clean .hours-alert-list,.nb-clean .report-category-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.nb-clean .audit-filter-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.nb-clean .backup-settings-form{grid-template-columns:1fr 1fr}.nb-clean .backup-settings-form .form-actions{grid-column:1/-1}.nb-clean .payroll-control-grid,.nb-clean .payroll-worker-search{grid-template-columns:1fr 1fr}.nb-clean .payroll-worker-search>div:first-child{grid-column:1/-1}.nb-clean .payroll-summary,.nb-clean .payroll-worker-kpis{grid-template-columns:repeat(3,minmax(0,1fr))}.nb-clean .payroll-movement-form{grid-template-columns:1fr 1fr}}
@media(max-width:900px){
  .nb-clean .sidebar{width:min(86vw,300px)}.nb-clean .main{margin:0;width:100%}.nb-clean .sidebar-footer{display:none}.nb-clean .grouped-nav{padding-bottom:30px}
  .nb-clean .topbar{height:auto;min-height:70px;grid-template-columns:auto 1fr auto;padding:11px 13px;gap:10px}.nb-clean .top-search{grid-column:1/-1;grid-row:2;max-width:none}.nb-clean .userbox>span{display:none}.nb-clean .content{padding:16px 12px 30px}
  .nb-clean .module-flow-nav{position:static}
  .nb-clean .executive-hero{align-items:flex-start;flex-direction:column}.nb-clean .ops-hero,.nb-clean .report-search-hero,.nb-clean .module-header{grid-template-columns:1fr;align-items:start}.nb-clean .ops-hero-actions,.nb-clean .executive-actions,.nb-clean .module-primary-actions{justify-content:flex-start}.nb-clean .report-finder-controls{grid-template-columns:1fr}.nb-clean .report-result-list{grid-template-columns:1fr}
  .nb-clean .list-command-bar{align-items:stretch;flex-direction:column}.nb-clean .clean-list-search{grid-template-columns:1fr auto}.nb-clean .list-command-actions{justify-content:flex-end}.nb-clean .list-filter-grid{grid-template-columns:1fr 1fr}
  .nb-clean .actions-cell{width:auto;min-width:0;white-space:normal}.nb-clean .actions-cell.row-actions{display:grid;grid-template-columns:1fr 1fr;justify-content:stretch}.nb-clean .actions-cell .btn,.nb-clean .actions-cell details,.nb-clean .actions-cell summary{width:100%}
  .nb-clean .hours-focus-form,.nb-clean .hours-advanced-grid,.nb-clean .hours-kpi-grid,.nb-clean .hours-option-grid,.nb-clean .hours-alert-list,.nb-clean .report-category-grid,.nb-clean .backup-status-grid,.nb-clean .backup-settings-form,.nb-clean .audit-filter-grid,.nb-clean .pro-export-links,.nb-clean .payroll-control-grid,.nb-clean .payroll-worker-search,.nb-clean .payroll-summary,.nb-clean .payroll-worker-kpis,.nb-clean .payroll-movement-form{grid-template-columns:1fr}.nb-clean .hours-focus-form .wide-ish,.nb-clean .audit-filter-grid .wide-ish{grid-column:auto}.nb-clean .audit-filter-actions{display:grid;grid-template-columns:1fr 1fr;justify-content:stretch}.nb-clean .pro-import-row{grid-template-columns:1fr}.nb-clean .pro-import-row form{display:grid;grid-template-columns:1fr}.nb-clean .hours-table-workspace .list-command-actions{justify-content:flex-start}.nb-clean .payroll-worker-head{display:grid}.nb-clean .payroll-worker-actions{justify-content:flex-start}
}
@media(max-width:640px){
  .nb-clean .executive-kpis{grid-template-columns:1fr}.nb-clean .executive-hero h2,.nb-clean .report-search-hero h2{font-size:23px}.nb-clean .executive-actions{display:grid;width:100%;grid-template-columns:1fr}.nb-clean .clean-priorities .priority-item{grid-template-columns:62px 1fr}.nb-clean .clean-priorities .priority-item i{display:none}.nb-clean .compact-stats{grid-template-columns:1fr}
  .nb-clean .report-finder{padding:15px}.nb-clean .record-steps{grid-template-columns:1fr}.nb-clean .clean-form-intro{align-items:flex-start;flex-direction:column}.nb-clean .smart-form-panel .form-grid{grid-template-columns:1fr}.nb-clean .form-section,.nb-clean .optional-form-section>.form-grid{padding:18px 16px}.nb-clean .optional-form-section{padding:0}.nb-clean .optional-form-section>summary{padding:15px 16px}.nb-clean .sticky-form-actions{padding:12px 16px}
  .nb-clean .clean-list-search{grid-template-columns:1fr}.nb-clean .list-command-actions{display:grid;grid-template-columns:1fr 1fr}.nb-clean .list-command-actions>.btn,.nb-clean .list-command-actions details,.nb-clean .list-command-actions summary{width:100%}.nb-clean .list-filter-grid{grid-template-columns:1fr}.nb-clean .list-filter-actions{justify-content:stretch}.nb-clean .list-filter-actions>*{flex:1}
}

@media(max-width:1180px){
  .nb-clean .payroll-incident-form,.nb-clean .compact-form,.nb-clean .payroll-form-sections .form-grid{grid-template-columns:1fr 1fr}
}
@media(max-width:700px){
  .nb-clean .payroll-incident-form,.nb-clean .compact-form,.nb-clean .payroll-form-sections .form-grid{grid-template-columns:1fr}
  .nb-clean .payroll-legal-overview{display:grid}
  .nb-clean .toolbar-form{align-items:stretch}
  .nb-clean .toolbar-form input,.nb-clean .toolbar-form select{max-width:none;width:100%}
  .nb-clean .payroll-issue{align-items:flex-start;flex-direction:column}
}

/* ===== V3 Fase 1 · Registro de jornada GPS ===== */
.jornada-hero{display:flex;justify-content:space-between;gap:24px;align-items:center;margin:0 0 18px;padding:22px 24px;border:1px solid #cfe2ee;border-radius:20px;background:linear-gradient(135deg,#f5fbff,#ffffff);box-shadow:var(--shadow)}
.jornada-hero h2{margin:4px 0 7px;font-size:26px;color:#06344f}.jornada-hero p{margin:0;color:#667085;max-width:780px;line-height:1.5}.eyebrow{display:block;font-size:11px;font-weight:900;letter-spacing:.1em;color:#1070a0;text-transform:uppercase}.jornada-live-status{display:flex;align-items:center;gap:10px;min-width:165px;padding:12px 14px;border:1px solid #ccebd7;background:#f0fbf4;border-radius:14px}.jornada-live-status small,.jornada-live-status strong{display:block}.jornada-live-status small{color:#667085}.jornada-live-status strong{color:#167a3c}.live-dot{width:12px;height:12px;border-radius:50%;background:#22a55b;box-shadow:0 0 0 6px rgba(34,165,91,.12)}
.jornada-action-panel{border-top:4px solid #1070a0}.clock-card{display:grid;grid-template-columns:2fr 1fr 1.4fr;gap:12px;margin:14px 0;padding:16px;border:1px solid #dfe7ee;border-radius:16px;background:#f8fbfd}.clock-card div{display:flex;flex-direction:column;gap:3px}.clock-card small{color:#667085;font-weight:700}.clock-card strong{color:#102a3a;font-size:16px}.clock-card span{color:#667085;font-size:12px}.active-clock{box-shadow:inset 4px 0 #f59e0b}.clock-button{width:100%;min-height:72px;border:0;border-radius:18px;margin-top:14px;font-size:20px;font-weight:900;letter-spacing:.03em;cursor:pointer;box-shadow:0 12px 30px rgba(16,24,40,.13);transition:transform .12s ease}.clock-button:active{transform:translateY(1px)}.clock-in{background:#177a45;color:#fff}.clock-out{background:#b42318;color:#fff}.clock-button[disabled]{opacity:.7;cursor:wait}.geo-feedback{min-height:22px;margin-top:8px;color:#475467;font-size:13px;font-weight:700}.geo-feedback.ok{color:#167a3c}.geo-feedback.warn{color:#b54708}.privacy-note{margin:8px 0 0;color:#667085;font-size:12px}.jornada-exit-fields{grid-template-columns:220px 1fr}.jornada-kpis small{color:#667085}.filter-action{align-self:end}.mini-clock-form{display:inline}.mini-clock-form .geo-feedback{display:none}.trace-summary{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-top:14px}.trace-summary>div{padding:14px;border-radius:14px;background:#f8fafc;border:1px solid #e4e7ec;display:flex;flex-direction:column;gap:4px}.trace-summary small{color:#667085;text-transform:uppercase;font-weight:800;font-size:11px}.trace-summary strong{color:#101828}.trace-summary span{color:#667085;font-size:12px}.timeline{margin-top:14px}.timeline-event{display:grid;grid-template-columns:24px 1fr;gap:12px;position:relative;padding-bottom:18px}.timeline-event:not(:last-child):before{content:"";position:absolute;left:6px;top:14px;bottom:-3px;width:2px;background:#d8e5ed}.timeline-marker{width:14px;height:14px;border-radius:50%;background:#1070a0;margin-top:4px;z-index:1}.timeline-body{padding:12px 14px;border:1px solid #e1e8ee;border-radius:14px;background:#fff}.timeline-head{display:flex;justify-content:space-between;gap:12px}.timeline-head span{color:#667085;font-size:12px}.timeline-body p{margin:7px 0;color:#344054}.trace-meta{display:flex;flex-wrap:wrap;gap:8px 14px;font-size:12px;color:#667085}.timeline-body code{display:inline-block;margin-top:8px;padding:5px 8px;background:#f2f4f7;border-radius:7px;color:#344054}
@media(max-width:900px){.jornada-hero{align-items:flex-start;flex-direction:column}.jornada-live-status{width:100%}.clock-card{grid-template-columns:1fr}.jornada-exit-fields,.trace-summary{grid-template-columns:1fr!important}.clock-button{min-height:68px;font-size:18px}.jornada-hero h2{font-size:22px}}


/* ===== V3 Fase 1.2 · Control vivo, geofence y correcciones ===== */
.jornada-kpis-five{grid-template-columns:repeat(5,minmax(0,1fr))}.live-work-panel{border-top:4px solid #22a55b}.live-work-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.live-work-card{border:1px solid #dce7ed;border-radius:16px;background:#fff;overflow:hidden}.live-work-head{display:flex;justify-content:space-between;gap:12px;align-items:center;padding:14px 15px;background:#f7fbfd;border-bottom:1px solid #e5edf2}.live-work-head small,.live-work-head strong{display:block}.live-work-head small{font-size:11px;color:#667085;font-weight:800}.live-work-head strong{margin-top:2px;color:#102a3a}.live-count{display:grid;place-items:center;min-width:38px;height:38px;border-radius:12px;background:#e9f7ef;color:#167a3c;font-weight:900;font-size:18px}.live-warning{padding:8px 14px;background:#fff6ed;color:#b54708;font-size:12px;font-weight:800}.live-worker-list{padding:5px 14px 10px}.live-worker-row{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:10px 0;border-bottom:1px solid #eef2f5}.live-worker-row:last-child{border-bottom:0}.live-worker-row strong,.live-worker-row small{display:block}.live-worker-row small{margin-top:2px;color:#667085}.live-empty{grid-column:1/-1}.not-punched-details{margin-top:14px;border-top:1px solid #e5e7eb;padding-top:12px}.not-punched-details summary{cursor:pointer;font-weight:800;color:#344054}.not-punched-list{display:flex;flex-wrap:wrap;gap:7px;margin-top:10px}.not-punched-list span{padding:6px 9px;border-radius:999px;background:#f2f4f7;color:#475467;font-size:12px}.geofence-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.geofence-card{padding:14px;border:1px solid #dfe7ee;border-radius:16px;background:#fbfdfe}.geofence-card-head{display:flex;justify-content:space-between;align-items:flex-start;gap:10px}.geofence-card-head small,.geofence-card-head strong{display:block}.geofence-card-head small{color:#667085;font-weight:800;font-size:11px}.geo-current{font-size:12px;margin:10px 0;color:#475467;word-break:break-word}.geo-current code{font-size:11px}.geofence-card .field{margin:8px 0}.geofence-card .geo-feedback{font-size:11px}.jornada-actions{align-items:flex-start;flex-wrap:wrap}.correction-menu{position:relative}.correction-menu summary{list-style:none;cursor:pointer}.correction-menu summary::-webkit-details-marker{display:none}.correction-form{position:absolute;right:0;z-index:20;width:300px;padding:14px;border:1px solid #d0d5dd;border-radius:14px;background:#fff;box-shadow:0 16px 40px rgba(16,24,40,.18)}.correction-form label{display:block;margin-bottom:9px}.correction-form label span{display:block;margin-bottom:4px;color:#475467;font-size:11px;font-weight:800}.correction-form input,.correction-form select,.correction-form textarea{width:100%;border:1px solid #d0d5dd;border-radius:8px;padding:8px;font:inherit}.correction-list{margin-top:9px;display:grid;gap:7px}.correction-item{padding:9px;border-radius:10px;background:#f8fafc;border:1px solid #e4e7ec}.correction-item>div:first-child strong,.correction-item>div:first-child small{display:block;margin-top:4px}.correction-item small{color:#667085}.correction-resolve{display:grid;gap:5px;margin-top:7px}.correction-resolve form{display:grid;grid-template-columns:1fr auto;gap:5px}.correction-resolve input{min-width:100px;border:1px solid #d0d5dd;border-radius:7px;padding:5px 7px;font-size:11px}.table-subnote{display:block;margin-top:3px;color:#667085;font-size:11px}.trace-payload{margin:9px 0 0;padding:8px 10px;white-space:pre-wrap;word-break:break-word;background:#f8fafc;border:1px solid #e4e7ec;border-radius:8px;color:#475467;font-size:11px}.btn.danger{background:#b42318;color:#fff;border-color:#b42318}
@media(max-width:1180px){.jornada-kpis-five{grid-template-columns:repeat(3,minmax(0,1fr))}.live-work-grid,.geofence-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:760px){.jornada-kpis-five,.live-work-grid,.geofence-grid{grid-template-columns:1fr}.correction-form{position:fixed;left:12px;right:12px;bottom:12px;top:auto;width:auto;max-height:75vh;overflow:auto}.correction-resolve form{grid-template-columns:1fr}.jornada-actions{display:grid;grid-template-columns:1fr 1fr}.jornada-actions>.btn,.jornada-actions>form,.jornada-actions>details{width:100%}.jornada-actions button,.jornada-actions summary{width:100%}}
/* V3 Fase 2 · Partes digitales */
.work-photo-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:12px}.work-photo-grid img{width:100%;height:160px;object-fit:cover;border-radius:10px;border:1px solid #dce6eb}.timeline{display:grid;gap:10px}.timeline-item{border-left:3px solid #087cb6;padding:8px 12px;background:#f7fafb;border-radius:0 8px 8px 0}.timeline-item span,.timeline-item small{display:block;color:#6e818c;font-size:12px}.timeline-item p{margin:5px 0}.app-partes_digitales .summary-card strong{font-size:1.55rem}
/* V3 Fase 8 · Portal trabajador / PRL documental */
.portal-hero{background:linear-gradient(135deg,#0b3850,#0b7285);color:#fff}.portal-hero .section-kicker,.portal-hero p{color:#d9f2f5}
.portal-compliance-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:14px}.portal-compliance-card{border:1px solid #d7e2e8;border-radius:14px;padding:16px;background:#fff}.portal-compliance-card header{display:flex;gap:12px;justify-content:space-between;align-items:flex-start}.portal-compliance-card header h3{margin:3px 0}.portal-compliance-card.ok{border-left:5px solid #2e8b57}.portal-compliance-card.blocked{border-left:5px solid #c04444;background:#fffafa}.portal-alert{color:#9e2f2f;font-weight:700}.portal-warn{color:#a15c00}.portal-ok{color:#257448;font-weight:700}
.portal-task,.signature-box{border:1px solid #d7e2e8;border-radius:12px;margin:10px 0;background:#fbfdfe}.portal-task>summary,.signature-box>summary{cursor:pointer;padding:13px;font-weight:700;display:flex;justify-content:space-between;gap:10px}.portal-task>form,.signature-box>form,.portal-task>p{margin:0;padding:14px;border-top:1px solid #e5ecef}.portal-deliveries{display:grid;gap:12px}.portal-delivery{border:1px solid #d7e2e8;border-radius:13px;padding:15px;background:#fff}.portal-delivery-head{display:flex;justify-content:space-between;gap:12px}.portal-delivery-head h3{margin:3px 0}.portal-delivery-head p{white-space:pre-wrap;margin:6px 0;color:#536875}.employee-sign-canvas{display:block;width:100%;height:170px;border:2px dashed #9eb2bd;border-radius:10px;background:#fff;touch-action:none}.signature-actions{margin:8px 0}.portal-check{display:flex!important;gap:9px!important;align-items:flex-start!important}.portal-check input[type=checkbox]{width:auto!important;margin-top:4px}.portal-reject{display:block;color:#a23a3a;max-width:260px}.inline-form{display:flex;gap:6px;align-items:center;flex-wrap:wrap}.inline-form input{min-width:160px}.form-grid .full{grid-column:1/-1}
@media(max-width:720px){.portal-compliance-grid{grid-template-columns:1fr}.portal-delivery-head{flex-direction:column}.form-grid{grid-template-columns:1fr!important}.form-grid .full{grid-column:auto}.inline-form{align-items:stretch}.inline-form input,.inline-form button{width:100%}}

/* ===== V3 Fase 14 · Centro único de control ===== */
.control-top-chip{display:flex;align-items:center;gap:6px;min-height:34px;padding:5px 9px;border:1px solid #d7e1e7;border-radius:7px;background:#f8fafb;color:#536875;text-decoration:none}.control-top-chip span{font-size:9px;font-weight:900}.control-top-chip strong{font-size:12px}.control-top-chip.has-alerts{border-color:#f1b9ae;background:#fff5f3;color:#9f2d20}.control-stats{grid-template-columns:repeat(7,minmax(0,1fr))}.danger-lite{border-left:4px solid #b42318}.warning-lite{border-left:4px solid #d97706}.control-filter-card{margin-bottom:14px}.control-filters{grid-template-columns:1.4fr repeat(4,minmax(140px,1fr))}.control-new-task{margin-bottom:14px}.control-new-task>summary{cursor:pointer;padding:16px 18px;display:flex;gap:10px;align-items:center}.control-new-task>summary span{color:#667085;font-size:12px}.control-new-task>form{padding:0 18px 18px}.control-list{display:grid;gap:12px}.control-item{position:relative;padding:17px 18px;border-left:5px solid #93a4ae;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:16px}.control-item.priority-critica{border-left-color:#b42318}.control-item.priority-alta{border-left-color:#d97706}.control-item.priority-normal{border-left-color:#1476a4}.control-item.priority-baja{border-left-color:#7b8790}.control-item.is-read{opacity:.76}.control-item-flags{display:flex;flex-wrap:wrap;gap:6px;align-items:center}.control-priority{display:inline-flex;padding:4px 8px;border-radius:999px;font-size:10px;font-weight:900;text-transform:uppercase}.control-priority.p-critica{background:#fee4e2;color:#9f261d}.control-priority.p-alta{background:#fff0d5;color:#a75b00}.control-priority.p-normal{background:#e7f3f9;color:#0d6189}.control-priority.p-baja{background:#f0f2f4;color:#596773}.control-module{font-size:10px;font-weight:900;color:#657681;text-transform:uppercase;letter-spacing:.06em}.control-item h3{margin:9px 0 4px;font-size:17px;color:#213744}.control-item p{margin:0;color:#586d78;font-size:13px;line-height:1.45}.control-meta{display:flex;flex-wrap:wrap;gap:9px 18px;margin-top:10px;color:#72818b;font-size:11px}.control-item-actions{min-width:250px;display:flex;flex-direction:column;align-items:stretch;gap:7px}.control-item-actions>.btn{text-align:center}.control-item-actions .inline-form{justify-content:flex-end}.control-complete-form{display:grid;grid-template-columns:1fr auto;gap:6px}.control-complete-form input{min-width:190px;border:1px solid #d2dde3;border-radius:6px;padding:7px 8px}.control-manage{grid-column:1/-1;border-top:1px solid #e5ebef;padding-top:9px}.control-manage>summary{cursor:pointer;color:#526874;font-size:11px;font-weight:850}.control-manage .form-grid{padding-top:10px;grid-template-columns:repeat(3,minmax(160px,1fr))}.control-empty{text-align:center;padding:34px}.control-empty h2{margin:0 0 5px}.control-empty p{color:#667085}.app-centro_control .breadcrumbs{margin-bottom:12px}
@media(max-width:1250px){.control-stats{grid-template-columns:repeat(4,minmax(0,1fr))}.control-filters{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:800px){.control-stats,.control-filters{grid-template-columns:1fr 1fr}.control-item{grid-template-columns:1fr}.control-item-actions{min-width:0}.control-item-actions .inline-form{justify-content:flex-start}.control-manage .form-grid{grid-template-columns:1fr}.control-complete-form{grid-template-columns:1fr}.control-top-chip span{display:none}}
@media(max-width:540px){.control-stats,.control-filters{grid-template-columns:1fr}.control-item-actions .inline-form{display:grid;grid-template-columns:1fr 1fr}.control-item-actions .inline-form .btn{width:100%}}
/* Fase 15 · Automatizaciones */
.automation-hero{border-left:4px solid #6a5acd}.automation-rule-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.automation-rule-card{padding:16px}.automation-rule-card.is-disabled{opacity:.68;background:#f8fafb}.automation-rule-head,.automation-rule-foot{display:flex;justify-content:space-between;gap:12px;align-items:center}.automation-rule-head{margin-bottom:12px}.automation-rule-card label{display:block;margin-bottom:10px}.automation-rule-card small{color:#667985}.automation-rule-foot{border-top:1px solid #e5ebef;padding-top:10px;margin-top:8px}.inline-edit{display:flex;gap:6px;margin-top:6px}.inline-edit input{min-width:220px}@media(max-width:1000px){.automation-rule-grid{grid-template-columns:1fr}}

/* Fase 16 · Comunicaciones */
.comms-tabs{display:flex;gap:8px;flex-wrap:wrap;margin:14px 0 18px}.comms-tabs a{padding:9px 13px;border:1px solid #d0d5dd;border-radius:10px;text-decoration:none;background:#fff;color:#344054;font-weight:650}.comms-tabs a.active{background:#0b2f47;color:#fff;border-color:#0b2f47}.comms-calendar-list{display:grid;gap:10px}.comms-calendar-item{display:grid;grid-template-columns:82px 1fr auto;align-items:center;gap:16px}.comms-date{background:#f2f4f7;border-radius:10px;padding:10px;text-align:center}.comms-date strong{display:block;font-size:24px;color:#0b2f47}.comms-date span{font-size:12px;color:#667085}@media(max-width:760px){.comms-calendar-item{grid-template-columns:64px 1fr}.comms-calendar-item>div:last-child{grid-column:2}.two-col{display:block}}
