:root{
  --orange:#f26b21; --orange-d:#c9531a; --orange-l:#fff0e6;
  --ink:#1b1b1f; --muted:#6b6b75; --bg:#f4f4f6; --card:#fff; --line:#e4e4e8;
  --ok:#1f9d55; --nc:#d64545; --na:#8a8f98; --info:#2f6fed;
  --radius:14px; --gutter:clamp(14px,4vw,32px);
}
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;font-family:"Segoe UI",system-ui,-apple-system,Roboto,Arial,sans-serif;color:var(--ink);background:var(--bg);line-height:1.5;overflow-x:hidden}
img,svg,canvas{max-width:100%}
h1,h2,h3,h4{margin:0;line-height:1.2}
a{color:inherit}
.wrap{width:100%;max-width:1100px;margin:0 auto;padding-inline:var(--gutter)}
.hidden{display:none!important}

/* Barra superior */
.top{background:var(--orange);color:#fff;position:sticky;top:0;z-index:30;box-shadow:0 2px 10px rgba(0,0,0,.15)}
.bar{display:flex;align-items:center;gap:12px;min-height:62px;padding-block:8px}
.logo{height:42px;width:auto;border-radius:4px}
.ttl{flex:1;min-width:0;display:flex;flex-direction:column}
.ttl b{font-size:1.05rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ttl small{opacity:.92;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.nav{display:flex;gap:4px}
.nav a{text-decoration:none;padding:8px 12px;border-radius:999px;font-weight:600;font-size:.92rem;white-space:nowrap}
.nav a:hover,.nav a.on{background:rgba(255,255,255,.22)}

/* Botones y campos */
.btn{border:0;background:var(--orange);color:#fff;border-radius:10px;padding:11px 18px;font:inherit;font-weight:700;cursor:pointer;white-space:nowrap;text-decoration:none;display:inline-block;text-align:center}
.btn:hover{background:var(--orange-d)}
.btn.light{background:#fff;color:var(--orange-d);padding:9px 14px}
.btn.light:hover{background:var(--orange-l)}
.btn.small{padding:8px 12px;font-size:.88rem}
.btn.ghost{background:#fff;color:var(--ink);border:1px solid #cfcfd6}
.btn.ghost:hover{background:#f0f0f3}
.btn.dark{background:var(--ink)}
.btn.danger{background:var(--nc)}
.btn.okb{background:var(--ok)}
.btn[disabled]{opacity:.5;cursor:not-allowed}
.field{font:inherit;padding:10px 12px;border:1px solid #cfcfd6;border-radius:10px;background:#fff;width:100%;min-width:0;color:inherit}
.field:focus{outline:3px solid var(--orange-l);border-color:var(--orange)}
.field[readonly]{background:#f0f0f3}
label.lb{display:flex;flex-direction:column;gap:5px;font-weight:600;font-size:.85rem}
textarea.field{resize:vertical;min-height:70px}

/* ===== Landing ===== */
.hero-wrap{height:190svh;position:relative}
.hero-stick{position:sticky;top:62px;height:calc(100svh - 62px);display:grid;place-items:center;overflow:hidden;background:var(--bg)}
.hero-img{position:absolute;inset:0;overflow:hidden;clip-path:inset(14% 16% round 28px);will-change:clip-path;background:var(--ink)}
.hero-img img{width:100%;height:100%;object-fit:cover;transform:scale(1.3);will-change:transform}
.hero-img::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(27,27,31,.5),rgba(27,27,31,.2) 50%,rgba(27,27,31,.75))}
.hero-txt{position:relative;z-index:2;text-align:center;color:#fff;padding:0 var(--gutter);max-width:820px}
.pill{display:inline-block;background:var(--orange);color:#fff;border-radius:999px;padding:5px 16px;font-weight:700;font-size:.85rem}
.hero-txt h1{font-size:clamp(2rem,6.5vw,4.4rem);font-weight:800;letter-spacing:-.02em;margin:14px 0}
.hero-txt p{font-size:clamp(1rem,2.2vw,1.25rem);margin:0 auto 24px;max-width:600px;opacity:.95}
.hero-txt .btn{font-size:1.05rem;padding:14px 28px}
section.block{padding:clamp(48px,8vw,90px) 0}
section.block h2{font-size:clamp(1.6rem,3.6vw,2.4rem);margin:6px 0 24px}
.eyebrow{font-size:.78rem;letter-spacing:.16em;text-transform:uppercase;color:var(--orange);font-weight:700}
.spec-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:16px}
.spec{background:var(--card);border-radius:var(--radius);padding:22px;border-top:6px solid var(--orange);box-shadow:0 1px 4px rgba(0,0,0,.07)}
.spec svg{width:48px;height:48px;color:var(--orange);margin-bottom:10px}
.spec h3{margin-bottom:8px}
.spec ul{margin:0;padding-left:18px;color:#3a3a42;font-size:.93rem}
.steps{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:14px;counter-reset:s}
.step{background:var(--ink);color:#fff;border-radius:var(--radius);padding:18px;counter-increment:s}
.step::before{content:counter(s);display:grid;place-items:center;width:34px;height:34px;border-radius:50%;background:var(--orange);font-weight:800;margin-bottom:10px}
.cta{background:var(--orange);color:#fff;text-align:center}
.cta h2{margin-top:0}
footer{padding:22px 0 34px;color:var(--muted);font-size:.85rem;text-align:center}

/* ===== Panel ===== */
main.app{padding-block:20px 90px}
.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}
.stat{background:var(--card);border-radius:var(--radius);padding:12px 8px;text-align:center;border-top:5px solid var(--sc,#999);box-shadow:0 1px 3px rgba(0,0,0,.06)}
.stat b{display:block;font-size:1.8rem;line-height:1.1;color:var(--sc,var(--ink))}
.stat span{font-size:.8rem;color:var(--muted);font-weight:600}
.toolbar{display:flex;flex-wrap:wrap;gap:8px;margin:16px 0;align-items:center}
.toolbar .field{flex:1 1 200px;width:auto}
.toolbar select.field{flex:0 1 170px}
.page-h{display:flex;justify-content:space-between;align-items:center;gap:10px;flex-wrap:wrap;margin-top:6px}
.page-h h2{font-size:1.4rem}
.rlist{display:flex;flex-direction:column;gap:10px}
.rcard{background:var(--card);border-radius:var(--radius);padding:14px 16px;border-left:6px solid var(--sc,#999);box-shadow:0 1px 3px rgba(0,0,0,.06);display:grid;grid-template-columns:1fr auto;gap:8px 12px;align-items:center}
.rcard h3{font-size:1rem}
.rcard .meta{color:var(--muted);font-size:.86rem;display:flex;flex-wrap:wrap;gap:2px 14px;margin-top:4px}
.rcard .acts{display:flex;gap:4px;flex-wrap:wrap;justify-content:flex-end}
.link{border:0;background:none;color:var(--orange-d);font:inherit;font-weight:700;cursor:pointer;padding:6px 8px}
.link.del{color:var(--nc)}
.badge{display:inline-block;color:#fff;background:var(--sc,#999);border-radius:99px;padding:2px 11px;font-size:.75rem;font-weight:700;white-space:nowrap}
.s-ok{--sc:var(--ok)}.s-nc{--sc:var(--nc)}.s-obs{--sc:#e0a100}.s-bor{--sc:var(--na)}.s-info{--sc:var(--info)}.s-all{--sc:var(--ink)}
.empty{text-align:center;color:var(--muted);padding:34px 10px}

/* Formulario */
.fsec{background:var(--card);border-radius:var(--radius);padding:16px 18px;margin-top:14px;box-shadow:0 1px 3px rgba(0,0,0,.06)}
.fsec>h3{font-size:1rem;color:var(--orange-d);text-transform:uppercase;letter-spacing:.05em;margin-bottom:12px}
fieldset{border:0;padding:0;margin:0;min-width:0}
.grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:12px}
.mrow{display:grid;grid-template-columns:2.4fr 1.3fr .8fr .8fr 1.3fr auto;gap:8px;margin-bottom:8px;align-items:end}
.mrow .lb{font-size:.72rem;color:var(--muted)}
.mrow .x{align-self:end}
.cgroup{margin-bottom:14px}
.cgroup h4{background:var(--orange-l);color:var(--orange-d);padding:7px 12px;border-radius:8px;margin-bottom:8px;font-size:.92rem}
.citem{display:grid;grid-template-columns:1fr auto;gap:6px 12px;padding:10px 4px;border-bottom:1px solid var(--line);align-items:center}
.citem .t{font-size:.93rem}
.citem .obs{grid-column:1/-1}
.seg{display:inline-flex;border:1px solid #cfcfd6;border-radius:10px;overflow:hidden}
.seg button{border:0;background:#fff;padding:8px 14px;font:inherit;font-size:.85rem;font-weight:700;cursor:pointer;color:var(--muted);min-width:46px}
.seg button+button{border-left:1px solid #cfcfd6}
.seg button.on[data-v="C"]{background:var(--ok);color:#fff}
.seg button.on[data-v="NC"]{background:var(--nc);color:#fff}
.seg button.on[data-v="NA"]{background:var(--na);color:#fff}
.photos{display:grid;grid-template-columns:repeat(auto-fill,minmax(130px,1fr));gap:10px;margin-top:10px}
.ph{position:relative;border-radius:10px;overflow:hidden;background:#000;aspect-ratio:4/3}
.ph img{width:100%;height:100%;object-fit:cover;display:block}
.ph button{position:absolute;top:4px;right:4px;border:0;background:rgba(0,0,0,.65);color:#fff;border-radius:50%;width:28px;height:28px;cursor:pointer;font-size:1rem;line-height:1}
.sigs{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.sigbox{border:1px solid var(--line);border-radius:12px;padding:12px;display:flex;flex-direction:column;gap:8px}
.sigbox h4{font-size:.9rem}
.sigpad{width:100%;height:130px;border:2px dashed #cfcfd6;border-radius:10px;background:#fff;touch-action:none;display:block}
.bottombar{position:fixed;left:0;right:0;bottom:0;background:#fff;box-shadow:0 -2px 12px rgba(0,0,0,.12);z-index:25;padding:10px 0 calc(10px + env(safe-area-inset-bottom))}
.bottombar .wrap{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.bottombar .sp{flex:1;color:var(--muted);font-size:.85rem;min-width:90px}
.lockbar{background:#fff7e0;border:1px solid #f0d58a;border-radius:10px;padding:10px 14px;margin-top:12px;display:flex;gap:10px;align-items:center;flex-wrap:wrap}
.errbox{background:#fff1f1;border:1px solid #f1b5b5;color:#8f1d1d;border-radius:10px;padding:10px 14px;margin-top:12px}
.errbox ul{margin:6px 0 0;padding-left:20px}
.cfg-lines{min-height:170px;font-size:.9rem}

/* Diálogos */
dialog{border:0;border-radius:18px;padding:0;width:min(440px,calc(100vw - 24px));box-shadow:0 24px 60px rgba(0,0,0,.35)}
dialog::backdrop{background:rgba(20,20,25,.55)}
dialog form{padding:22px;display:flex;flex-direction:column;gap:14px}
dialog h2{font-size:1.25rem;text-align:center}
.login-logo{height:48px;width:auto;border-radius:6px;background:var(--orange);margin:0 auto}
.pw-box{position:relative}
.pw-box .field{padding-right:90px}
.pw-toggle{position:absolute;right:6px;top:50%;transform:translateY(-50%);border:0;border-radius:8px;background:var(--orange-l);color:var(--orange-d);font:inherit;font-weight:700;padding:6px 12px;cursor:pointer}
.msg{margin:0;color:var(--nc);font-weight:600;min-height:1.2em;text-align:center}
.dlg-actions{display:flex;justify-content:flex-end;gap:8px}

/* ===== Hoja imprimible (réplica del formato DOP-RI-001) ===== */
.sheet{background:#fff;color:#000;border:1px solid #bbb;padding:10px;font-size:.8rem;margin-top:14px}
.sheet table{width:100%;border-collapse:collapse;table-layout:fixed}
.sheet td,.sheet th{border:1px solid #333;padding:4px 6px;vertical-align:top;overflow-wrap:anywhere;word-break:break-word}
.sheet th{background:#eee;text-align:left;font-size:.72rem;text-transform:uppercase}
.sheet .hdr td.lg{width:20%;background:var(--orange);text-align:center;vertical-align:middle}
.sheet .hdr td.lg img{height:44px;width:auto;margin:0 auto}
.sheet .hdr td.tt{text-align:center;font-weight:800;font-size:1rem;vertical-align:middle}
.sheet .hdr td.k{background:#eee;font-weight:700;width:14%}
.sheet .hdr td.v{width:16%}
.sheet .lbl{background:#eee;font-weight:700;font-size:.7rem;text-transform:uppercase;display:block}
.sheet h5{margin:10px 0 3px;font-size:.78rem;text-transform:uppercase;background:var(--orange);color:#fff;padding:3px 6px}
.sheet .c{text-align:center}
.sheet .res-ok{font-weight:800;color:var(--ok)}.sheet .res-nc{font-weight:800;color:var(--nc)}
.sheet .gal{display:grid;grid-template-columns:repeat(3,1fr);gap:6px;margin-top:4px}
.sheet .gal img{width:100%;aspect-ratio:4/3;object-fit:cover;border:1px solid #333}
.sheet .firmas{display:grid;grid-template-columns:1fr 1fr;gap:0;margin-top:10px}
.sheet .firmas>div{border:1px solid #333;padding:6px}
.sheet .firmas img{height:70px;width:auto;max-width:100%}
.sheet .sig-empty{height:70px}
.sheet .pre{white-space:pre-line}

/* Responsive */
@media (max-width:900px){
  .nav a{padding:8px 9px;font-size:.85rem}
  .mrow{grid-template-columns:1fr 1fr 1fr 1fr}
  .mrow .m-desc{grid-column:1/-1}
  .mrow .x{grid-column:auto}
}
@media (max-width:640px){
  .stats{grid-template-columns:repeat(2,1fr)}
  .rcard{grid-template-columns:1fr}
  .rcard .acts{justify-content:flex-start}
  .sigs{grid-template-columns:1fr}
  .mrow{grid-template-columns:1fr 1fr}
  .logo{height:36px}
  .ttl small{display:none}
  .nav{display:none}
  .navm{display:flex!important}
  .seg button{padding:10px 12px}
  .sheet{font-size:.74rem;padding:6px}
  .sheet th{font-size:.58rem;padding:3px 2px;letter-spacing:0}
  .sheet td{padding:3px 4px}
  .sheet .hdr td.lg{width:22%}.sheet .hdr td.k{width:22%;font-size:.62rem}.sheet .hdr td.v{width:24%;font-size:.66rem}.sheet .hdr td.tt{font-size:.8rem}
  .sheet .hdr td.lg img{height:30px}
  .sheet table.kv tr{display:grid;grid-template-columns:1fr 1fr}
  .sheet table.kv td{display:block}
  .sheet .gal{grid-template-columns:repeat(2,1fr)}
  .sheet .firmas{grid-template-columns:1fr}
}
.navm{display:none;position:fixed;left:0;right:0;bottom:0;background:var(--ink);z-index:26;justify-content:space-around;padding:6px 4px calc(6px + env(safe-area-inset-bottom))}
.navm a{color:#fff;text-decoration:none;font-weight:600;font-size:.82rem;padding:8px 14px;border-radius:10px}
.navm a.on{background:var(--orange)}
@media (max-width:640px){main.app{padding-bottom:150px}.bottombar{bottom:50px;padding-bottom:10px}}
@media (prefers-reduced-motion:reduce){*{scroll-behavior:auto!important}}

/* ===== Impresión (A4) ===== */
@page{size:A4;margin:10mm}
@media print{
  html,body{background:#fff}
  .top,.navm,.bottombar,.no-print,.toolbar,.page-h,dialog{display:none!important}
  main.app{padding:0}.wrap{max-width:none;padding:0}
  .sheet{border:0;padding:0;margin:0;font-size:9pt}
  .sheet *{-webkit-print-color-adjust:exact;print-color-adjust:exact}
  .sheet h5,.sheet tr,.sheet .firmas{break-inside:avoid}
  .sheet .gal{grid-template-columns:repeat(3,1fr)}
  .sheet .firmas{grid-template-columns:1fr 1fr}
}
