:root{--bg:#f6f4ef;--card:#fff;--text:#2f2f2f;--muted:#707070;--line:#e7dfcf;--primary:#e9b344;--primary-2:#d49b22;--danger:#b42318;--ok:#067647;--dark:#4d4d4d;--gold:#e9b344;--gray:#4d4d4d;--soft-gold:#fff7e2}*{box-sizing:border-box}body{margin:0;font-family:system-ui,-apple-system,Segoe UI,Arial,sans-serif;background:var(--bg);color:var(--text)}a{text-decoration:none;color:inherit}.menu-toggle{display:none;position:sticky;top:0;z-index:80;width:100%;border:0;background:var(--dark);color:white;padding:13px 16px;text-align:left;font-weight:800;font-size:16px}.menu-backdrop{display:none}.brand-row{display:flex;justify-content:space-between;gap:12px;align-items:flex-start}.close-menu{display:none;border:0;background:rgba(255,255,255,.12);color:white;border-radius:10px;width:38px;height:38px;font-size:24px;line-height:1}.sidebar{position:fixed;inset:0 auto 0 0;width:250px;background:var(--dark);color:white;padding:22px;overflow:auto}.sidebar h2{margin:0 0 6px}.sidebar .muted{color:#cbd5e1;font-size:14px}.sidebar nav{display:grid;gap:8px;margin-top:25px}.sidebar a{padding:11px 12px;border-radius:12px;background:rgba(255,255,255,.06)}.sidebar a:hover{background:rgba(255,255,255,.14)}.main{margin-left:250px;padding:28px}.login-wrap{min-height:100vh;display:grid;place-items:center;padding:20px}.card{background:var(--card);border:1px solid var(--line);border-radius:18px;padding:20px;box-shadow:0 8px 30px #10182814;margin-bottom:18px}.form-card{display:grid;gap:14px}.grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:16px}.info-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:8px}.stat{font-size:30px;font-weight:800}.muted,.hint{color:var(--muted);font-size:13px}.btn{display:inline-flex;border:0;border-radius:12px;background:var(--primary);color:white;padding:10px 14px;cursor:pointer;align-items:center;justify-content:center;gap:8px;font-weight:700}.btn.secondary{background:#344054}.btn.danger{background:var(--danger)}.btn.ok{background:var(--ok)}.btn.mini{padding:7px 10px;font-size:12px}input,select,textarea{width:100%;padding:10px 12px;border:1px solid var(--line);border-radius:12px;background:white;font:inherit}label{display:grid;gap:6px;font-weight:650;margin-bottom:12px}.row{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:14px}.table-wrap{width:100%;overflow:auto}.table{width:100%;border-collapse:collapse;background:white;border-radius:16px;overflow:hidden;min-width:720px}.table th,.table td{padding:12px;border-bottom:1px solid var(--line);text-align:left;font-size:14px;vertical-align:top}.badge{padding:5px 9px;border-radius:999px;background:#eef4ff;color:#175cd3;font-weight:700;font-size:12px}.alert{background:#ecfdf3;color:#067647;padding:12px;border-radius:12px;margin-bottom:14px}.error{background:#fef3f2;color:#b42318}.actions{display:flex;gap:8px;flex-wrap:wrap}.top-actions{margin-bottom:12px}.inline-form{display:flex;gap:8px;flex-wrap:wrap;align-items:center}.inline-form input{width:240px}.rq-item{border:1px solid var(--line);padding:14px;border-radius:14px;margin-bottom:10px;background:#fafafa}.rq-item.is-deleted{opacity:.65;background:#fff1f0}.rq-actions{display:flex;justify-content:flex-end}.link{color:var(--primary);font-weight:700}.check-line,.perm-row,.chip{display:flex;align-items:center;gap:8px;margin:0;font-weight:600}.check-line input,.perm-row input,.chip input{width:auto}.permission-groups{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:14px}.perm-group{border:1px solid var(--line);border-radius:16px;background:#fbfcff;overflow:hidden}.perm-title{background:#eef4ff;color:#175cd3;padding:10px 12px;font-weight:800}.perm-row{display:grid;grid-template-columns:auto 1fr;gap:7px 10px;border-top:1px solid var(--line);padding:10px 12px}.perm-row small{grid-column:2;color:var(--muted);font-size:11px}.chips{display:flex;flex-wrap:wrap;gap:8px}.chip{border:1px solid var(--line);border-radius:999px;padding:8px 11px;background:white}details{border:1px solid var(--line);border-radius:16px;background:white;padding:12px}summary{font-weight:850;cursor:pointer;padding:4px}h1{font-size:28px}h2{font-size:20px}h3{font-size:16px}@media(max-width:800px){body.menu-open{overflow:hidden}.menu-toggle{display:block}.menu-backdrop{position:fixed;inset:0;background:rgba(16,24,40,.48);z-index:90}.menu-open .menu-backdrop{display:block}.sidebar{position:fixed;top:0;left:0;bottom:0;width:min(84vw,310px);transform:translateX(-105%);transition:transform .22s ease;z-index:100;border-radius:0;box-shadow:0 20px 60px rgba(0,0,0,.35)}.menu-open .sidebar{transform:translateX(0)}.close-menu{display:inline-grid;place-items:center}.sidebar nav{grid-template-columns:1fr;margin-top:14px}.main{margin:0;padding:14px}.card{padding:15px;border-radius:16px}.row{grid-template-columns:1fr}.grid,.permission-groups,.info-grid{grid-template-columns:1fr}.table{min-width:760px}.actions,.inline-form{display:grid;grid-template-columns:1fr;width:100%}.inline-form input{width:100%}.btn{width:100%}h1{font-size:23px}.perm-row{grid-template-columns:auto 1fr}.chips{display:grid;grid-template-columns:1fr}.chip{border-radius:14px}}@media(max-width:420px){.main{padding:10px}details{padding:10px}.card{padding:12px}.sidebar{width:88vw}}

@media print{.no-print,.menu-toggle,.sidebar,.menu-backdrop{display:none!important}.main{margin:0!important;padding:0!important}.card{box-shadow:none!important;border-color:#ddd!important}}

/* Permisos de usuarios: vista ordenada y mobile first */
.page-help{margin-top:-8px;margin-bottom:16px}.perm-help{background:#fff7ed;border:1px solid #fed7aa;color:#9a3412;border-radius:14px;padding:12px;margin-bottom:12px}.admin-total{border:1px solid var(--line);border-radius:14px;padding:12px;background:#fbfcff;margin-top:8px}.role-presets{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:10px;margin-bottom:14px}.preset-card{border:1px solid var(--line);background:#fff;border-radius:16px;padding:13px;text-align:left;cursor:pointer;display:grid;gap:5px;color:var(--text)}.preset-card:hover{border-color:var(--primary);box-shadow:0 8px 24px #1f5eff1a}.preset-card b{font-size:14px;color:#175cd3}.preset-card span{font-size:12px;color:var(--muted);line-height:1.35}.permission-list{grid-template-columns:1fr}.readable-perm{grid-template-columns:auto 1fr auto;align-items:center}.readable-perm small{grid-column:3;color:#98a2b3;background:#f2f4f7;border-radius:999px;padding:4px 8px;font-size:10px}@media(max-width:800px){.role-presets{grid-template-columns:1fr}.preset-card{padding:14px}.readable-perm{grid-template-columns:auto 1fr}.readable-perm small{grid-column:2;justify-self:start;margin-top:3px}.perm-title{position:sticky;top:0;z-index:1}.page-help{font-size:13px}}

/* Campos digitables en mayúscula */
input[type=text], input:not([type]), textarea { text-transform: uppercase; }


.table-search-box{margin:0 0 12px;display:flex;justify-content:flex-end}.table-search-box label{width:min(360px,100%);margin:0;font-weight:700}.table-search-box input{background:#fff;border:1px solid var(--line)}
@media(max-width:800px){.table-search-box{justify-content:stretch}.table-search-box label{width:100%}}

.table-filter-controls{display:grid;grid-template-columns:2fr 1fr 1fr 1fr;gap:12px;align-items:end;justify-content:stretch}.table-filter-controls label{width:100%;margin:0}.table-filter-controls input,.table-filter-controls select{background:#fff;border:1px solid var(--line)}@media(max-width:800px){.table-filter-controls{grid-template-columns:1fr}}


/* ===== Identidad visual MUR ===== */
body{background:linear-gradient(180deg,#f8f6f1 0,#f3f0e8 100%);color:var(--text)}
.sidebar{background:var(--gray);border-right:6px solid var(--gold)}
.sidebar a{background:rgba(255,255,255,.08);border-left:4px solid transparent}
.sidebar a:hover{background:rgba(233,179,68,.18);border-left-color:var(--gold)}
.brand-row{border-bottom:1px solid rgba(255,255,255,.18);padding-bottom:16px}
.brand-logo{width:132px;max-width:100%;height:auto;display:block;margin-bottom:8px;filter:drop-shadow(0 2px 3px rgba(0,0,0,.18))}
.menu-toggle{background:var(--gray);border-bottom:4px solid var(--gold)}
h1{color:var(--gray);border-left:8px solid var(--gold);padding-left:12px;line-height:1.15}
h2,h3{color:var(--gray)}
.card,details{border-color:var(--line);box-shadow:0 10px 28px rgba(77,77,77,.10)}
.card{border-top:4px solid var(--gold)}
summary{background:var(--soft-gold);border-radius:12px;padding:10px 12px;color:var(--gray);display:flex;align-items:center;gap:8px}
summary::before{content:'▸';color:var(--gold);font-size:18px}details[open] summary::before{content:'▾'}
.btn{background:var(--gold);color:var(--gray);box-shadow:0 4px 12px rgba(233,179,68,.22)}
.btn:hover{background:var(--primary-2)}
.btn.secondary{background:var(--gray);color:white}.btn.danger{background:var(--danger);color:white}.btn.ok{background:var(--ok);color:white}
input:focus,select:focus,textarea:focus{outline:3px solid rgba(233,179,68,.30);border-color:var(--gold)}
.table th{background:var(--gray);color:#fff;border-bottom:3px solid var(--gold)}
.table tr:nth-child(even) td{background:#fffaf0}.table tr:hover td{background:#fff3cf}
.badge{background:var(--soft-gold);color:var(--gray);border:1px solid var(--gold)}
.alert{background:var(--soft-gold);color:#6f4b00;border-left:6px solid var(--gold)}
.permission-groups,.ot-sections{gap:16px}.perm-title{background:var(--gray);color:white;border-bottom:4px solid var(--gold)}
.preset-card:hover{border-color:var(--gold);box-shadow:0 8px 24px rgba(233,179,68,.22)}.preset-card b{color:var(--gray)}
.form-card details{padding:14px;background:#fff}.form-card .row{align-items:start}
textarea{min-height:96px;resize:vertical}.textarea-large{min-height:160px}.textarea-xlarge{min-height:240px}
.field-note{font-size:12px;color:var(--muted);margin-top:-6px;margin-bottom:10px}
.form-section-title{display:flex;align-items:center;gap:8px;font-size:18px;font-weight:900;color:var(--gray);margin:4px 0 12px}.form-section-title::before{content:'';width:10px;height:24px;background:var(--gold);border-radius:999px}
@media(max-width:800px){.brand-logo{width:112px}.table{min-width:900px}.card{border-top-width:3px}summary{font-size:15px}.form-card details{padding:10px}.btn{min-height:42px}}
@media print{body{background:white!important}.card,details{box-shadow:none!important}.table th{background:#4d4d4d!important;color:white!important;-webkit-print-color-adjust:exact;print-color-adjust:exact}}

/* ===== Ajustes OT/RQ: personal en lista y actividades en cascada ===== */
.personal-list{display:grid;grid-template-columns:1fr;gap:12px}
.personal-row{display:grid;grid-template-columns:minmax(190px,1.4fr) minmax(210px,2fr) minmax(120px,.8fr) minmax(120px,.8fr);gap:12px;align-items:end;background:#fff;border:1px solid #ead8b2;border-radius:14px;padding:12px}
.personal-row .role{font-weight:900;color:#4d4d4d;text-transform:uppercase}
.personal-row label{margin:0}.activity-row{grid-template-columns:repeat(2,minmax(120px,.7fr)) repeat(5,minmax(160px,1fr))}
@media(max-width:850px){.personal-row{grid-template-columns:1fr}.activity-row{grid-template-columns:1fr}.personal-row .role{padding:8px 0;border-bottom:1px dashed #e9b344}}

/* ===== FIX RESPONSIVE FORMULARIOS OT: evitar desborde horizontal ===== */
.main{max-width:100vw;overflow-x:hidden}
.form-card{max-width:100%;overflow-x:hidden}
.form-card details{max-width:100%;overflow-x:hidden}
.form-card input,.form-card select,.form-card textarea{min-width:0;font-size:14px;padding:9px 10px}
.form-card label{min-width:0;font-size:14px;line-height:1.25}
.row{grid-template-columns:repeat(auto-fit,minmax(min(100%,180px),1fr));gap:12px}
.personal-list{display:grid;gap:10px;width:100%}
.personal-row{grid-template-columns:minmax(150px,1.05fr) minmax(220px,2fr) minmax(100px,.65fr) minmax(100px,.65fr);gap:10px;padding:10px;align-items:end;max-width:100%}
.personal-row .role{font-size:13px;line-height:1.15;word-break:break-word}
.personal-row input,.personal-row select{font-size:14px;padding:9px 10px}
.activity-row{grid-template-columns:repeat(auto-fit,minmax(min(100%,145px),1fr))!important;gap:10px}
.rq-item{max-width:100%;overflow:hidden}
@media(max-width:1180px){
  .personal-row{grid-template-columns:minmax(160px,1fr) minmax(260px,2fr) minmax(105px,.8fr) minmax(105px,.8fr)}
  .personal-row label{font-size:13px}
}
@media(max-width:980px){
  .personal-row{grid-template-columns:1fr 1fr}
  .personal-row .role{grid-column:1/-1;padding-bottom:6px;border-bottom:1px dashed var(--gold);font-size:13px}
  .personal-row label:nth-of-type(1){grid-column:1/-1}
}
@media(max-width:620px){
  .personal-row{grid-template-columns:1fr}
  .personal-row label:nth-of-type(1){grid-column:auto}
  .form-card input,.form-card select,.form-card textarea{font-size:13px;padding:8px 9px}
  .form-card label{font-size:13px}
}

/* ===== Reportes, exportación y paginación segura ===== */
.report-filter-form{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:12px;align-items:end}.report-actions{display:flex;align-items:end}.report-card{border-top-color:var(--gold)}.table-pager{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;margin:12px 0 4px;padding:10px 12px;background:#fffaf0;border:1px solid #ead8b2;border-radius:14px}.table-pager label{display:flex;align-items:center;gap:8px;margin:0;font-weight:800;color:var(--gray)}.table-pager select{width:auto;min-width:74px;padding:7px 9px}.pager-buttons{display:flex;align-items:center;gap:8px}.page-num{font-weight:900;color:var(--gray);min-width:72px;text-align:center}.btn.mini{padding:8px 10px;min-height:0;font-size:12px}.table-info{color:var(--muted);font-weight:700}@media(max-width:700px){.table-pager{display:grid;grid-template-columns:1fr;align-items:stretch}.pager-buttons{justify-content:space-between}.table-pager .btn{width:auto}.report-filter-form{grid-template-columns:1fr}.report-actions .btn{width:100%}}

.parada-alerta{color:#b00020;font-weight:700}.parada-alerta select{color:#4d4d4d;font-weight:700}.personal-row.compact{grid-template-columns:minmax(140px,220px) 1fr}

/* Evidencias y firmas */
.evidence-gallery{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:14px}
.evidence-card{border:1px solid #ddd;border-radius:12px;padding:10px;background:#fff}
.evidence-card img{width:100%;max-height:220px;object-fit:contain;border-radius:8px;background:#f5f5f5}
.evidence-edit-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:14px}
.evidence-edit-item{display:flex;flex-direction:column;gap:8px}
.evidence-thumb{width:100%;max-height:160px;object-fit:contain;border:1px solid #ddd;border-radius:8px;background:#fff}
.firma-preview{display:block;max-width:260px;max-height:120px;object-fit:contain;border:1px solid #ddd;border-radius:8px;background:#fff;margin:8px 0}
.firma-mini{width:80px;
    height:40px;
    object-fit:contain;
    border:1px solid #ddd;
    border-radius:4px;
    background:#fff;
    cursor:pointer;}
