/* Portal SGC DIAEVENTOS — capas de vidrio sobre un fondo de aurora lenta: riel de procesos flotante + área de trabajo + hoja de lectura */
:root{
  --bg:#EDF2EF; --bg-2:#E4ECEE;
  --blob-1:#B5D2C4; --blob-2:#C5D8E6; --blob-3:#EBD8BE;
  --glass:rgba(255,255,255,.64); --glass-strong:rgba(255,255,255,.82); --glass-edge:rgba(255,255,255,.9);
  --ink:#1B2925; --muted:#5B6C66; --faint:#8A9A94; --line:rgba(27,52,45,.11);
  --accent:#2C6957; --accent-ink:#FFFFFF; --accent-soft:rgba(44,105,87,.11);
  --est:#4A7898; --est-soft:rgba(74,120,152,.13); --ope:#2C6957; --ope-soft:rgba(44,105,87,.12); --apo:#A97B3C; --apo-soft:rgba(169,123,60,.14);
  --crit:#B5443A; --crit-soft:rgba(181,68,58,.12); --warn:#A06E12; --warn-soft:rgba(160,110,18,.13); --ok:#2E7A57; --ok-soft:rgba(46,122,87,.12);
  --paper:#FFFFFF; --paper-ink:#1F2724; --paper-line:#E1E6E3; --paper-head:#F2F5F3;
  --sh-1:0 1px 1px rgba(20,44,37,.04),0 6px 18px -8px rgba(20,44,37,.16);
  --sh-2:0 1px 2px rgba(20,44,37,.05),0 14px 34px -12px rgba(20,44,37,.22),0 40px 80px -40px rgba(20,44,37,.25);
  --f-display:"Instrument Serif",Georgia,"Times New Roman",serif;
  --f-body:"Figtree",system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;
  --f-mono:"JetBrains Mono",ui-monospace,Consolas,monospace;
  --r:16px; --r-s:10px;
  color-scheme:light;
}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]){
  --bg:#0D1412; --bg-2:#101A1A; --blob-1:#1D4A3F; --blob-2:#1E3550; --blob-3:#3E3220;
  --glass:rgba(23,34,31,.62); --glass-strong:rgba(26,38,35,.86); --glass-edge:rgba(255,255,255,.07);
  --ink:#E4ECE8; --muted:#9CAEA7; --faint:#71847D; --line:rgba(220,240,232,.09);
  --accent:#8CCBB4; --accent-ink:#0D1412; --accent-soft:rgba(140,203,180,.13);
  --est:#8DB8D8; --est-soft:rgba(141,184,216,.13); --ope:#8CCBB4; --ope-soft:rgba(140,203,180,.12); --apo:#DDB57E; --apo-soft:rgba(221,181,126,.13);
  --crit:#EE8A7E; --crit-soft:rgba(238,138,126,.14); --warn:#E6B95C; --warn-soft:rgba(230,185,92,.14); --ok:#7BCFA2; --ok-soft:rgba(123,207,162,.13);
  --paper:#16201D; --paper-ink:#E1E9E5; --paper-line:#2A3834; --paper-head:#1C2825;
  --sh-1:0 1px 1px rgba(0,0,0,.3),0 6px 18px -8px rgba(0,0,0,.5);
  --sh-2:0 1px 2px rgba(0,0,0,.35),0 14px 34px -12px rgba(0,0,0,.55),0 40px 80px -40px rgba(0,0,0,.6);
  color-scheme:dark}}
:root[data-theme="dark"]{
  --bg:#0D1412; --bg-2:#101A1A; --blob-1:#1D4A3F; --blob-2:#1E3550; --blob-3:#3E3220;
  --glass:rgba(23,34,31,.62); --glass-strong:rgba(26,38,35,.86); --glass-edge:rgba(255,255,255,.07);
  --ink:#E4ECE8; --muted:#9CAEA7; --faint:#71847D; --line:rgba(220,240,232,.09);
  --accent:#8CCBB4; --accent-ink:#0D1412; --accent-soft:rgba(140,203,180,.13);
  --est:#8DB8D8; --est-soft:rgba(141,184,216,.13); --ope:#8CCBB4; --ope-soft:rgba(140,203,180,.12); --apo:#DDB57E; --apo-soft:rgba(221,181,126,.13);
  --crit:#EE8A7E; --crit-soft:rgba(238,138,126,.14); --warn:#E6B95C; --warn-soft:rgba(230,185,92,.14); --ok:#7BCFA2; --ok-soft:rgba(123,207,162,.13);
  --paper:#16201D; --paper-ink:#E1E9E5; --paper-line:#2A3834; --paper-head:#1C2825;
  --sh-1:0 1px 1px rgba(0,0,0,.3),0 6px 18px -8px rgba(0,0,0,.5);
  --sh-2:0 1px 2px rgba(0,0,0,.35),0 14px 34px -12px rgba(0,0,0,.55),0 40px 80px -40px rgba(0,0,0,.6);
  color-scheme:dark}
*{box-sizing:border-box}
html,body{margin:0;min-height:100%}
body{background:linear-gradient(160deg,var(--bg),var(--bg-2));color:var(--ink);font:15px/1.55 var(--f-body);-webkit-font-smoothing:antialiased}
a{color:var(--accent)}
button,input,select{font:inherit;color:inherit}
:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:6px}
::selection{background:var(--accent-soft)}

/* aurora */
.aura{position:fixed;inset:0;z-index:0;pointer-events:none;overflow:hidden}
.aura i{position:absolute;border-radius:50%;filter:blur(80px);opacity:.75;animation:drift 48s ease-in-out infinite alternate}
.aura i:nth-child(1){width:52vmax;height:52vmax;background:var(--blob-1);left:-14vmax;top:-18vmax}
.aura i:nth-child(2){width:46vmax;height:46vmax;background:var(--blob-2);right:-16vmax;top:12vh;animation-duration:60s;animation-delay:-12s}
.aura i:nth-child(3){width:40vmax;height:40vmax;background:var(--blob-3);left:28vw;bottom:-22vmax;animation-duration:70s;animation-delay:-30s;opacity:.55}
@keyframes drift{0%{transform:translate3d(0,0,0) scale(1)}50%{transform:translate3d(4vmax,3vmax,0) scale(1.08)}100%{transform:translate3d(-3vmax,5vmax,0) scale(.96)}}
.glass{background:var(--glass);backdrop-filter:blur(22px) saturate(1.35);-webkit-backdrop-filter:blur(22px) saturate(1.35);border:1px solid var(--glass-edge);box-shadow:var(--sh-1)}

/* puerta de entrada */
body.gate{min-height:100vh;display:grid;place-items:center;padding:24px max(16px,env(safe-area-inset-left,0px))}
.gate-card{position:relative;z-index:1;width:min(420px,100%);padding:36px 32px;border-radius:24px;background:var(--glass-strong);backdrop-filter:blur(26px);-webkit-backdrop-filter:blur(26px);border:1px solid var(--glass-edge);box-shadow:var(--sh-2)}
.gate-card h1{font:400 40px/1.02 var(--f-display);margin:6px 0 22px}
.gate-card h1 em{color:var(--accent)}
.gate-card form{display:grid;gap:10px}
.gate-card label{font-size:13px;color:var(--muted);font-weight:600}
.gate-card input{width:100%;padding:12px 14px;border-radius:12px;border:1px solid var(--line);background:var(--glass)}
.gate-card .err{color:var(--crit);background:var(--crit-soft);padding:8px 12px;border-radius:10px;font-size:14px}
.gate-card .fine{font-size:12.5px;color:var(--faint);margin:18px 0 0}
.mark{width:46px;height:46px;border-radius:14px;display:grid;place-items:center;font:400 28px/1 var(--f-display);color:var(--accent-ink);background:linear-gradient(135deg,var(--accent),var(--est));box-shadow:var(--sh-1);margin-bottom:18px}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:11px 18px;border-radius:12px;border:0;background:var(--accent);color:var(--accent-ink);font-weight:700;cursor:pointer;text-decoration:none;box-shadow:0 8px 20px -10px var(--accent)}
.btn:hover{filter:brightness(1.06)}
.btn.ghost{background:var(--glass);color:var(--ink);border:1px solid var(--line);box-shadow:none}
.eyebrow{font:700 11px/1.2 var(--f-body);letter-spacing:.16em;text-transform:uppercase;color:var(--muted);margin:0 0 8px}

/* app */
body::before{content:"";position:fixed;inset:0 0 auto;height:env(safe-area-inset-top,0px);z-index:40;background:var(--bg)}
.app{position:relative;z-index:1;display:grid;grid-template-columns:280px minmax(0,1fr);gap:18px;padding-block:18px;padding-left:max(18px,env(safe-area-inset-left,0px));padding-right:max(18px,env(safe-area-inset-right,0px));min-height:100vh}
.rail{position:sticky;top:calc(18px + env(safe-area-inset-top,0px));align-self:start;max-height:calc(100vh - 36px);overflow:auto;border-radius:22px;padding:18px 12px 18px}
.rail .brand{display:flex;gap:12px;align-items:center;padding:4px 8px 16px;text-decoration:none;color:var(--ink)}
.rail .brand .mark{width:38px;height:38px;font-size:23px;margin:0;border-radius:11px}
.rail .brand b{display:block;font:400 22px/1 var(--f-display)}
.rail .brand small{display:block;font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--muted);margin-top:3px}
.rail h4{margin:16px 10px 6px;font:700 10.5px/1 var(--f-body);letter-spacing:.16em;text-transform:uppercase;color:var(--faint)}
.rail a.nav{display:flex;align-items:center;gap:10px;padding:7px 10px;border-radius:11px;color:var(--ink);text-decoration:none;font-size:14px;transition:background .15s}
.rail a.nav:hover{background:var(--accent-soft)}
.rail a.nav.on{background:var(--glass-strong);box-shadow:var(--sh-1);font-weight:600}
.rail .num{font:600 11px var(--f-mono);color:var(--faint);width:28px;flex:none}
.rail .nm{flex:1;min-width:0}
.rail .ico{width:28px;flex:none;display:grid;place-items:center;color:var(--accent)}
.dot{width:8px;height:8px;border-radius:50%;flex:none}
.d-alta{background:var(--crit);box-shadow:0 0 0 3px var(--crit-soft)} .d-media{background:var(--warn);box-shadow:0 0 0 3px var(--warn-soft)} .d-ok{background:var(--ok);box-shadow:0 0 0 3px var(--ok-soft)}
.t-est .num,.t-est.ico{color:var(--est)} .t-ope .num{color:var(--ope)} .t-apo .num{color:var(--apo)}
.work{min-width:0;display:flex;flex-direction:column;gap:18px}
.bar{position:sticky;top:calc(18px + env(safe-area-inset-top,0px));z-index:10;display:flex;gap:10px;align-items:center;padding:10px;border-radius:18px;flex-wrap:wrap}
.bar .menu{display:none}
.search{flex:1 1 240px;position:relative;min-width:0}
.search input{width:100%;padding:11px 14px 11px 40px;border-radius:12px;border:1px solid var(--line);background:var(--glass-strong)}
.search svg{position:absolute;left:13px;top:50%;transform:translateY(-50%);color:var(--muted)}
.chip-cert{display:flex;align-items:center;gap:8px;padding:8px 12px;border-radius:12px;background:var(--apo-soft);font-size:13px;white-space:nowrap}
.chip-cert b{font:600 13px var(--f-mono);color:var(--apo)}
.iconbtn{width:40px;height:40px;display:grid;place-items:center;border-radius:12px;border:1px solid var(--line);background:var(--glass-strong);cursor:pointer;text-decoration:none;color:var(--ink)}
.iconbtn:hover{border-color:var(--accent)}
#view{min-width:0}
.fade{animation:up .28s ease-out}
@keyframes up{from{opacity:.4;transform:translateY(6px)}to{opacity:1;transform:none}}

h1.display{font:400 clamp(36px,5vw,58px)/1.02 var(--f-display);margin:0 0 10px;text-wrap:balance;letter-spacing:-.005em}
h1.display em{font-style:italic;color:var(--accent)}
h2.sec{font:400 30px/1.1 var(--f-display);margin:34px 0 14px;text-wrap:balance}
h2.sec small{font:500 13px var(--f-body);color:var(--muted);margin-left:8px}
h3{font:700 15px/1.3 var(--f-body);margin:0 0 6px}
.lede{color:var(--muted);max-width:66ch;margin:0;font-size:16px}
.panel{border-radius:var(--r);padding:20px}
.muted{color:var(--muted)} .small{font-size:13px} .mono{font-family:var(--f-mono)}

/* inicio */
.hero{display:grid;grid-template-columns:minmax(0,1.45fr) minmax(0,1fr);gap:18px}
.hero .intro{border-radius:24px;padding:30px 30px 26px;position:relative;overflow:hidden}
.hero .intro::after{content:"";position:absolute;right:-60px;bottom:-80px;width:280px;height:280px;border-radius:50%;background:radial-gradient(circle,var(--accent-soft),transparent 70%)}
.ring{border-radius:24px;padding:24px;display:flex;gap:20px;align-items:center}
.ring svg{flex:none}
.ring .big{font:400 54px/.9 var(--f-display);font-variant-numeric:tabular-nums;color:var(--apo)}
.kv{display:grid;grid-template-columns:auto 1fr;gap:4px 14px;font-size:13.5px;margin:12px 0 0}
.kv dt{color:var(--muted)} .kv dd{margin:0;min-width:0;overflow-wrap:anywhere}
.stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin-top:18px}
.stat{border-radius:var(--r);padding:16px 18px;text-decoration:none;color:var(--ink);transition:transform .18s,box-shadow .18s}
.stat:hover{transform:translateY(-2px);box-shadow:var(--sh-2)}
.stat .v{font:600 30px/1 var(--f-mono);font-variant-numeric:tabular-nums}
.stat .k{font-size:13px;color:var(--muted);margin-top:8px}
.v.crit{color:var(--crit)} .v.warn{color:var(--warn)} .v.acc{color:var(--accent)}
.map{display:grid;grid-template-columns:130px minmax(0,1fr) 130px;gap:14px}
.pillar{border-radius:var(--r);padding:16px;display:flex;flex-direction:column;justify-content:center;font-size:12.5px;color:var(--muted)}
.pillar b{font:400 24px/1.05 var(--f-display);color:var(--ink);display:block;margin-bottom:6px}
.bands{display:grid;gap:12px;min-width:0}
.band{border-radius:var(--r);padding:14px}
.band.est{background:linear-gradient(135deg,var(--est-soft),transparent 70%),var(--glass)}
.band.ope{background:linear-gradient(135deg,var(--ope-soft),transparent 70%),var(--glass)}
.band.apo{background:linear-gradient(135deg,var(--apo-soft),transparent 70%),var(--glass)}
.tiles{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px}
.flow{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:10px}
.tile{position:relative;display:flex;flex-direction:column;gap:6px;padding:12px;border-radius:12px;background:var(--glass-strong);border:1px solid var(--glass-edge);box-shadow:var(--sh-1);text-decoration:none;color:var(--ink);min-width:0;transition:transform .18s,box-shadow .18s}
.tile:hover{transform:translateY(-3px);box-shadow:var(--sh-2)}
.tile .id{display:flex;justify-content:space-between;align-items:center;font:600 11px var(--f-mono);color:var(--muted)}
.tile .t{font-weight:700;font-size:13.5px;line-height:1.25}
.tile .c{font-size:12px;color:var(--muted)}
.flow .tile:not(:last-child)::after{content:"";position:absolute;right:-9px;top:50%;width:8px;height:2px;background:var(--ope);opacity:.6}

/* proceso */
.phead{border-radius:24px;padding:28px 30px;position:relative;overflow:hidden}
.phead.est{background:linear-gradient(120deg,var(--est-soft),transparent 60%),var(--glass)}
.phead.ope{background:linear-gradient(120deg,var(--ope-soft),transparent 60%),var(--glass)}
.phead.apo{background:linear-gradient(120deg,var(--apo-soft),transparent 60%),var(--glass)}
.phead .pid{font:600 13px var(--f-mono);color:var(--muted)}
.pills{display:flex;flex-wrap:wrap;gap:6px;margin-top:12px}
.pill{display:inline-flex;align-items:center;gap:6px;font:700 11.5px/1 var(--f-body);padding:6px 9px;border-radius:999px;white-space:nowrap;text-decoration:none}
.p-alta{background:var(--crit-soft);color:var(--crit)} .p-media{background:var(--warn-soft);color:var(--warn)} .p-ok{background:var(--ok-soft);color:var(--ok)}
.p-neu{background:var(--glass-strong);color:var(--muted);border:1px solid var(--line)} .p-acc{background:var(--accent-soft);color:var(--accent)}
.fgrid{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(0,1fr);gap:18px;margin-top:18px}
.steps{list-style:none;margin:0;padding:0;display:grid;gap:2px;counter-reset:s}
.steps li{counter-increment:s;display:grid;grid-template-columns:34px 1fr;gap:8px;padding:6px 0;font-size:14px;border-bottom:1px dashed var(--line)}
.steps li:last-child{border-bottom:0}
.steps li::before{content:counter(s,decimal-leading-zero);font:600 11.5px/1.8 var(--f-mono);color:var(--accent)}
.subs{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:12px;margin-top:18px}
.sub{border-radius:var(--r);padding:16px;font-size:13.5px}
.tabs{display:flex;gap:6px;margin:26px 0 16px;padding:5px;border-radius:14px;width:max-content;max-width:100%;overflow-x:auto}
.tabs button{border:0;background:none;padding:8px 14px;border-radius:10px;font-weight:600;font-size:14px;color:var(--muted);cursor:pointer;white-space:nowrap}
.tabs button.on{background:var(--glass-strong);color:var(--ink);box-shadow:var(--sh-1)}
.tabs .n{font:600 11.5px var(--f-mono);margin-left:6px;color:var(--faint)}
.dgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(270px,1fr));gap:14px}
.dcard{display:flex;flex-direction:column;gap:10px;border-radius:var(--r);padding:16px;text-decoration:none;color:var(--ink);transition:transform .18s,box-shadow .18s;min-width:0}
.dcard:hover{transform:translateY(-3px);box-shadow:var(--sh-2)}
.dcard .top{display:flex;justify-content:space-between;gap:8px;align-items:center}
.dcard .code{font:600 12.5px var(--f-mono);color:var(--accent)}
.dcard .name{font-weight:700;font-size:15px;line-height:1.3}
.dcard .why{font-size:12.5px;color:var(--muted);border-left:2px solid var(--warn);padding-left:8px}
.dcard .why.alta{border-color:var(--crit)}
.dcard .foot{display:flex;justify-content:space-between;align-items:center;font-size:12px;color:var(--muted);margin-top:auto}
.kind{display:inline-grid;place-items:center;min-width:38px;height:20px;padding:0 6px;border-radius:6px;font:700 10px/1 var(--f-mono);letter-spacing:.04em}
.k-doc{background:var(--est-soft);color:var(--est)} .k-xls{background:var(--ope-soft);color:var(--ope)} .k-pdf{background:var(--crit-soft);color:var(--crit)} .k-img{background:var(--apo-soft);color:var(--apo)} .k-none{background:var(--line);color:var(--muted)}
.rows{border-radius:var(--r);overflow:hidden}
.row{display:flex;gap:12px;align-items:center;padding:11px 16px;border-bottom:1px solid var(--line);text-decoration:none;color:var(--ink);flex-wrap:wrap}
.row:last-child{border-bottom:0}
.row:hover{background:var(--accent-soft)}
.row .grow{flex:1 1 240px;min-width:0;overflow-wrap:anywhere}
.row .sub2{font-size:12px;color:var(--muted)}
.empty{padding:28px;text-align:center;color:var(--muted);border-radius:var(--r);border:1px dashed var(--line)}
.tw{overflow-x:auto;max-width:100%}
.gtable{border-radius:var(--r);overflow:hidden}
.gtable table{border-collapse:collapse;width:100%;font-size:13.5px}
.gtable th{font:700 10.5px/1.2 var(--f-body);letter-spacing:.12em;text-transform:uppercase;color:var(--muted);text-align:left;padding:12px 14px;border-bottom:1px solid var(--line);white-space:nowrap}
.gtable td{padding:12px 14px;border-bottom:1px solid var(--line);vertical-align:top}
.gtable tr:last-child td{border-bottom:0}
.gtable .code{font:600 12.5px var(--f-mono);white-space:nowrap;color:var(--accent)}
.filters{display:flex;gap:6px;flex-wrap:wrap;margin:4px 0 14px}
.filters button{border:1px solid var(--line);background:var(--glass);padding:7px 14px;border-radius:999px;font-weight:600;font-size:13px;cursor:pointer}
.filters button.on{background:var(--ink);color:var(--bg);border-color:var(--ink)}
.grid2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}

/* lector */
.reader{display:grid;grid-template-columns:300px minmax(0,1fr);gap:18px;align-items:start}
.rmeta{position:sticky;top:calc(92px + env(safe-area-inset-top,0px));border-radius:20px;padding:18px;max-height:calc(100vh - 110px);overflow:auto;display:grid;gap:16px}
.rmeta h5{margin:0 0 8px;font:700 10.5px/1 var(--f-body);letter-spacing:.14em;text-transform:uppercase;color:var(--faint)}
.rmeta .kv{margin:0;font-size:13px}
.firma{display:grid;grid-template-columns:auto 1fr;gap:2px 10px;font-size:13px}
.firma span{color:var(--muted)}
.outline a{display:block;padding:4px 8px;border-radius:8px;font-size:13px;color:var(--ink);text-decoration:none;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.outline a:hover{background:var(--accent-soft)}
.outline a.l3{padding-left:20px;color:var(--muted)}
.vers a{display:flex;gap:8px;align-items:center;padding:6px 8px;border-radius:8px;font-size:12.5px;color:var(--ink);text-decoration:none}
.vers a.on{background:var(--accent-soft);font-weight:600}
.vers a:hover{background:var(--accent-soft)}
.vers a i{font-style:normal;flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.note{font-size:12.5px;padding:10px 12px;border-radius:12px;background:var(--warn-soft);color:var(--ink)}
.note.alta{background:var(--crit-soft)}
.rhead{border-radius:22px;padding:22px 26px;margin-bottom:16px}
.crumbs{font-size:13px;color:var(--muted);display:flex;gap:6px;flex-wrap:wrap;align-items:center}
.crumbs a{color:var(--muted);text-decoration:none} .crumbs a:hover{color:var(--accent)}
.rhead h1{font:400 clamp(28px,3.4vw,40px)/1.08 var(--f-display);margin:8px 0 6px;text-wrap:balance}
.paper{background:var(--paper);color:var(--paper-ink);border-radius:14px;box-shadow:var(--sh-2);padding:clamp(20px,4vw,52px);min-height:60vh}
.paper.wide{padding:clamp(14px,2.4vw,28px)}
.docbody{max-width:860px;margin:0 auto;font-size:15px;line-height:1.65}
.docbody img{max-width:180px;height:auto}
.docbody p{margin:0 0 10px}
.docbody h1,.docbody h2,.docbody h3,.docbody h4{font-family:var(--f-body);font-weight:700;line-height:1.3;margin:24px 0 10px;scroll-margin-top:110px}
.docbody h1{font:400 28px/1.15 var(--f-display)} .docbody h2{font-size:19px} .docbody h3{font-size:16px}
.docbody ol>li>p:only-child,.docbody ul>li>p:only-child{margin:0}
.docbody ol>li::marker{font-weight:700;color:var(--accent)}
.docbody table{border-collapse:collapse;width:100%;font-size:13.5px;margin:8px 0 18px}
.docbody th,.docbody td{border:1px solid var(--paper-line);padding:8px 10px;vertical-align:top;text-align:left}
.docbody th,.docbody tr:first-child td{background:var(--paper-head)}
.docbody td ul{margin:0;padding-left:16px}
.docbody .img-omit{color:var(--faint);font-size:12px}
.sheettabs{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:14px}
.sheettabs button{border:1px solid var(--paper-line);background:var(--paper-head);color:var(--paper-ink);padding:6px 12px;border-radius:9px;font-size:13px;font-weight:600;cursor:pointer}
.sheettabs button.on{background:var(--accent);border-color:var(--accent);color:var(--accent-ink)}
table.xl{border-collapse:collapse;font-size:12.5px;min-width:100%}
table.xl td{border:1px solid var(--paper-line);padding:5px 8px;vertical-align:top;max-width:340px;white-space:normal}
table.xl td.b{font-weight:700;background:var(--paper-head)}
.xl-note{font-size:12px;color:var(--faint)}
.pdfpages{display:grid;gap:18px;justify-items:center}
.pdfpages canvas{max-width:100%;height:auto;background:#fff;border-radius:6px;box-shadow:var(--sh-1)}
.pdfph{width:100%;max-width:880px;aspect-ratio:1/1.3;border-radius:6px;background:var(--paper-head)}
.rnav{display:flex;justify-content:space-between;gap:12px;margin-top:16px;flex-wrap:wrap}
.loading{display:grid;place-items:center;min-height:40vh;color:var(--muted)}
mark{background:var(--warn-soft);color:inherit;border-radius:3px;padding:0 2px}
.res{display:block;padding:14px 16px;border-bottom:1px solid var(--line);text-decoration:none;color:var(--ink)}
.res:hover{background:var(--accent-soft)}
.res .snip{font-size:13px;color:var(--muted);margin-top:4px}
.toast{position:fixed;left:50%;bottom:calc(20px + env(safe-area-inset-bottom,0px));transform:translateX(-50%);padding:10px 16px;border-radius:12px;background:var(--ink);color:var(--bg);font-size:13.5px;z-index:60}

@media (max-width:1100px){.reader{grid-template-columns:minmax(0,1fr)}.rmeta{position:static;max-height:none}}
@media (max-width:980px){
  .app{grid-template-columns:minmax(0,1fr)}
  .rail{position:fixed;inset:calc(10px + env(safe-area-inset-top,0px)) auto 10px max(10px,env(safe-area-inset-left,0px));width:min(300px,86vw);max-height:none;z-index:50;transform:translateX(-110%);transition:transform .25s}
  .rail.open{transform:none}
  .bar .menu{display:grid}
  .hero,.fgrid,.grid2{grid-template-columns:minmax(0,1fr)}
  .stats{grid-template-columns:repeat(2,minmax(0,1fr))}
  .map{grid-template-columns:minmax(0,1fr)}
  .flow{grid-template-columns:repeat(2,minmax(0,1fr))}
  .flow .tile::after{display:none}
}
@media (max-width:560px){.chip-cert span{display:none}.phead,.hero .intro,.rhead{padding:20px}}
@media (prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}
/* Mapa de procesos ilustrado */
.pmwrap{overflow-x:auto;border-radius:24px;padding:14px;background:var(--glass);backdrop-filter:blur(22px) saturate(1.35);-webkit-backdrop-filter:blur(22px) saturate(1.35);border:1px solid var(--glass-edge);box-shadow:var(--sh-1)}
.pm{display:block;width:100%;min-width:940px;height:auto;font-family:var(--f-body)}
.pm text{font-family:var(--f-body)}
.pm-st-a{stop-color:var(--accent);stop-opacity:.10}
.pm-st-b{stop-color:var(--accent);stop-opacity:.28}
.pm-flow{fill:url(#pmFlow)}
.pm-client{fill:var(--glass-strong);stroke:var(--glass-edge);stroke-width:1}
.pm-cli-c{fill:var(--accent-soft)}
.pm-ico{fill:none;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.7}
.pm-ico-cli{stroke:var(--accent)}
.pm-heart{stroke:var(--crit);fill:var(--crit-soft)}
.pm-h{font:400 26px var(--f-display);fill:var(--ink);letter-spacing:.04em}
.pm-sub{font-size:12px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;fill:var(--accent)}
.pm-li{font-size:12.5px;fill:var(--muted)}
.pm-band{stroke:var(--glass-edge);stroke-width:1}
.pm-band-est{fill:var(--est-soft)}
.pm-band-apo{fill:var(--apo-soft)}
.pm-band-t{font-size:11.5px;font-weight:700;letter-spacing:.16em;fill:var(--muted)}
.pm-on-flow{fill:var(--accent)}
.pm-band-link{font-size:13px;font-weight:700;fill:var(--est)}
.pm-est-c{fill:var(--glass-strong);stroke:var(--est);stroke-opacity:.35;stroke-width:1.5}
.pm-ico-est{stroke:var(--est)}
.pm-ope-c{fill:var(--accent-soft)}
.pm-ico-ope{stroke:var(--ope)}
.pm-apo-c{fill:var(--apo-soft)}
.pm-ico-apo{stroke:var(--apo)}
.pm-chev{fill:var(--glass-strong);stroke:var(--ope);stroke-opacity:.35;stroke-width:1.2}
.pm-tile{fill:var(--glass-strong);stroke:var(--glass-edge);stroke-width:1}
.pm-lbl{font-size:12px;font-weight:600;fill:var(--ink)}
.pm-lbl-s{font-size:11px}
.pm-num{font:600 11.5px var(--f-mono);fill:var(--faint)}
.pm-dot{stroke:var(--glass-strong);stroke-width:2.5}
.pm-alta{fill:var(--crit)} .pm-media{fill:var(--warn)} .pm-ok{fill:var(--ok)}
.pm-conn{stroke:var(--faint);stroke-width:1.6;stroke-dasharray:4 5}
.pm-arrowhead{fill:var(--faint)}
.pm-tag{fill:var(--glass-strong);stroke:var(--line)}
.pm-tag-t{font-size:11.5px;font-weight:700;fill:var(--muted)}
.pm-loop{fill:none;stroke:var(--accent);stroke-width:2;stroke-dasharray:7 7;animation:pmflow 2.4s linear infinite}
.pm-tag-loop{stroke:var(--accent);stroke-opacity:.4}
.pm-tag-lt{fill:var(--accent);font-size:12.5px}
@keyframes pmflow{to{stroke-dashoffset:-28}}
.pm-link{cursor:pointer}
.pm-node{transition:transform .2s ease;transform-box:fill-box;transform-origin:center}
.pm-link:hover .pm-node,.pm-link:focus .pm-node{transform:translateY(-4px)}
.pm-link:hover .pm-chev,.pm-link:hover .pm-tile,.pm-link:hover .pm-est-c{stroke:var(--accent);stroke-opacity:1;stroke-width:2}
.pm-link:focus{outline:none}
.pm-link:focus-visible .pm-chev,.pm-link:focus-visible .pm-tile,.pm-link:focus-visible .pm-est-c{stroke:var(--accent);stroke-width:3;stroke-opacity:1}
.pm-hint{font-size:12.5px;color:var(--muted);margin:10px 4px 0}
.phead .pbadge{float:right;width:84px;height:84px;border-radius:24px;display:grid;place-items:center;background:var(--glass-strong);box-shadow:var(--sh-1);margin-left:16px}
.phead.est .pbadge{color:var(--est)} .phead.ope .pbadge{color:var(--ope)} .phead.apo .pbadge{color:var(--apo)}
@media (max-width:560px){.phead .pbadge{width:60px;height:60px;border-radius:18px}.phead .pbadge svg{width:30px;height:30px}}
@media (prefers-reduced-motion:reduce){.pm-loop{animation:none}.pm-node{transition:none}}
/* códigos enlazados */
.clink{font:inherit;color:var(--accent);background:none;border:0;padding:0 1px;margin:0;cursor:pointer;text-decoration:underline;text-decoration-thickness:1.5px;text-underline-offset:3px;border-radius:4px;white-space:nowrap}
.clink:hover{background:var(--accent-soft)}
.c-dc{color:var(--est);text-decoration-style:solid}
.c-dc::after{content:" ⇄";font-size:.85em}
.c-multi{color:var(--warn);text-decoration-style:double}
.c-miss{color:var(--muted);text-decoration-style:dashed}
.c-self{color:inherit;text-decoration:none;font-weight:700;cursor:default}
.c-self:hover{background:none}
.clegend{display:flex;flex-wrap:wrap;gap:6px 14px;align-items:center;font-size:12px;color:var(--muted);padding:8px 12px;margin-bottom:14px;border-radius:10px;background:var(--paper-head)}
.clegend b{color:var(--paper-ink);font-weight:700;margin-right:4px}
.clegend span{display:inline-flex;align-items:center;gap:6px}
.lg{display:inline-block;width:18px;height:0;border-bottom:2px solid}
.lg.go{border-color:var(--accent)} .lg.dc{border-color:var(--est)} .lg.multi{border-bottom:4px double var(--warn)} .lg.miss{border-bottom:2px dashed var(--muted)}
.pop{position:fixed;inset:0;z-index:70;display:grid;place-items:center;padding:calc(20px + env(safe-area-inset-top,0px)) max(16px,env(safe-area-inset-right,0px)) calc(20px + env(safe-area-inset-bottom,0px)) max(16px,env(safe-area-inset-left,0px));background:rgba(10,20,17,.35);backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);animation:up .2s ease-out}
.pop-card{position:relative;width:min(560px,100%);max-height:85vh;overflow:auto;padding:26px;border-radius:22px;background:var(--glass-strong);backdrop-filter:blur(26px);-webkit-backdrop-filter:blur(26px);border:1px solid var(--glass-edge);box-shadow:var(--sh-2);display:grid;gap:12px}
.pop-x{position:absolute;top:14px;right:14px}
.pop-code{font:600 26px var(--f-mono);margin:0;color:var(--accent)}
.pop-h{margin:6px 0 0;font:700 10.5px/1 var(--f-body);letter-spacing:.14em;text-transform:uppercase;color:var(--faint)}
.pop-dc{padding:14px;border-radius:14px;background:var(--est-soft)}
.pop-dc-h{display:flex;gap:10px;align-items:center;margin-bottom:10px;flex-wrap:wrap}
.pop .kv{margin:0}

.c-proc{color:var(--ope);text-decoration-color:var(--ope)}
.c-role{color:var(--apo);text-decoration-color:var(--apo)}
.c-file{color:var(--accent)}
.c-name{text-decoration-thickness:1px}
.lg.proc{border-color:var(--ope);border-bottom-width:3px} .lg.role{border-color:var(--apo)}
.docbody .clink,table.xl .clink{white-space:normal}
/* identidad: logo DIAEVENTOS y sello Bureau Veritas */
.logo{display:block;color:var(--ink)}
.logo svg{display:block;width:150px;height:auto}
.rail .brand{flex-direction:column;align-items:flex-start;gap:8px;padding:6px 10px 18px}
.rail .brand small{margin:0}
.rail-foot{margin-top:22px;padding:14px 10px 4px;border-top:1px solid var(--line)}
.bv{display:block;height:auto;border-radius:10px;box-shadow:var(--sh-1);background:#fff}
.rail-foot .bv{width:150px}
.hero-foot{display:flex;justify-content:space-between;align-items:flex-end;gap:14px;flex-wrap:wrap;margin-top:16px;position:relative;z-index:1}
.hero-foot .bv{width:165px}
.gate-logo{color:var(--ink);margin-bottom:18px}
.gate-logo svg{display:block;width:170px;height:auto}
.gate-foot{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap;margin-top:18px}
.gate-foot .fine{margin:0}
.gate-foot .bv{width:140px}
@media (max-width:560px){.hero-foot .bv{width:140px}}
