:root{
  --bg:#F4F6F6; --surface:#FFFFFF; --ink:#132523; --ink-soft:#5A6E6C; --line:#DFE7E5;
  --accent:#0E8C82; --accent-ink:#fff;
  --rojo:#C0392B; --rojo-bg:#FBEBE9; --ambar:#A9720B; --ambar-bg:#FBF2E1;
  --azul:#2C5FA8; --azul-bg:#EAF0FA; --verde:#1E8A5B; --verde-bg:#E7F5EE;
  --morado:#6D4AA6; --morado-bg:#F0EBFA; --teal:#0E8C82; --teal-bg:#E3F3F1; --gris:#5A6E6C; --gris-bg:#ECF1F0;
  --font:system-ui,-apple-system,"Segoe UI",Roboto,sans-serif; --mono:ui-monospace,"SF Mono",Menlo,monospace;
  --maxw:1080px;
}
@media (prefers-color-scheme:dark){
  :root{
    --bg:#0B1615; --surface:#12211F; --ink:#E7F0EE; --ink-soft:#93A8A5; --line:#22322F;
    --accent:#2AC9C0; --accent-ink:#04201C;
    --rojo:#F0837A; --rojo-bg:#2A1512; --ambar:#E3B25E; --ambar-bg:#2A2010; --azul:#8FB4E8; --azul-bg:#121E2E;
    --verde:#6FD4A0; --verde-bg:#0E2418; --morado:#B79BE6; --morado-bg:#1C1430; --teal:#57DAD1; --teal-bg:#0C2624;
    --gris:#93A8A5; --gris-bg:#1A2825;
  }
}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--bg);color:var(--ink);font-family:var(--font);line-height:1.5}
a{color:var(--accent);text-decoration:none}
a:hover{text-decoration:underline}
code{font-family:var(--mono);font-size:.86em;background:var(--gris-bg);padding:1px 5px;border-radius:5px;word-break:break-word}
h1{font-size:1.6rem;margin:.2em 0 .6em} h2{font-size:1.15rem;margin:1.4em 0 .5em} h3{font-size:1rem;margin:.2em 0 .5em}

.top{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:12px clamp(16px,4vw,32px);
  background:var(--surface);border-bottom:1px solid var(--line);position:sticky;top:0;z-index:5}
.marca{font-weight:700;color:var(--ink);letter-spacing:-.01em}
.marca .sub{color:var(--ink-soft);font-weight:400;font-size:.86rem}
.quien{display:flex;align-items:center;gap:10px;font-size:.86rem}
.quien .nom{font-weight:600} .quien .rol{color:var(--ink-soft)}
.quien .salir{padding:5px 10px;border:1px solid var(--line);border-radius:8px;color:var(--ink-soft)}
.menu{display:flex;gap:4px;flex-wrap:wrap;padding:8px clamp(16px,4vw,32px);background:var(--surface);border-bottom:1px solid var(--line)}
.menu a{padding:6px 12px;border-radius:8px;color:var(--ink-soft);font-size:.92rem}
.menu a[aria-current]{background:var(--teal-bg);color:var(--accent);font-weight:600}
.wrap{max-width:var(--maxw);margin:0 auto;padding:clamp(18px,4vw,34px)}
.pie{max-width:var(--maxw);margin:12px auto 30px;padding:0 clamp(16px,4vw,32px);color:var(--ink-soft);font-size:.8rem}

.tarjeta{background:var(--surface);border:1px solid var(--line);border-radius:14px;padding:18px;margin:14px 0;display:flex;flex-direction:column;gap:12px}
.sec-cab{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}
label{display:flex;flex-direction:column;gap:5px;font-size:.86rem;font-weight:600;color:var(--ink-soft)}
label.check{flex-direction:row;align-items:center;font-weight:400;color:var(--ink)}
input,select,textarea{font:inherit;font-weight:400;color:var(--ink);background:var(--bg);border:1px solid var(--line);border-radius:9px;padding:9px 11px}
input[type=file]{padding:7px}
textarea{resize:vertical;line-height:1.5}
input:focus,select:focus,textarea:focus{outline:2px solid var(--accent);outline-offset:1px;border-color:var(--accent)}
.acciones{display:flex;gap:10px;flex-wrap:wrap;align-items:center}

button,.boton{font:inherit;font-weight:600;font-size:.92rem;cursor:pointer;border:1px solid var(--line);
  background:var(--surface);color:var(--ink);border-radius:9px;padding:9px 16px;display:inline-block;text-align:center}
button:hover,.boton:hover{text-decoration:none;border-color:var(--accent)}
.boton.primario,button.primario{background:var(--accent);color:var(--accent-ink);border-color:var(--accent)}
.boton.fantasma{background:transparent}
.boton.peligro,button.peligro{color:var(--rojo);border-color:var(--rojo)}
button:disabled,.boton[disabled]{opacity:.5;cursor:not-allowed}
button[name=decision]{border-width:1px}

.centrado{min-height:100vh;display:grid;place-items:center;padding:20px}
.login{max-width:380px;width:100%}
.login h1{margin:.1em 0} .lede{color:var(--ink-soft);margin:.2em 0 .6em}
.error{background:var(--rojo-bg);color:var(--rojo);padding:8px 12px;border-radius:9px;font-size:.9rem}

.chip{display:inline-block;font-size:.74rem;font-weight:700;padding:3px 9px;border-radius:999px;white-space:nowrap}
.chip.gris{background:var(--gris-bg);color:var(--gris)} .chip.azul{background:var(--azul-bg);color:var(--azul)}
.chip.ambar{background:var(--ambar-bg);color:var(--ambar)} .chip.morado{background:var(--morado-bg);color:var(--morado)}
.chip.verde{background:var(--verde-bg);color:var(--verde)} .chip.teal{background:var(--teal-bg);color:var(--teal)}
.chip.rojo{background:var(--rojo-bg);color:var(--rojo)}

.tabla{display:flex;flex-direction:column;border:1px solid var(--line);border-radius:12px;overflow:hidden;margin:10px 0}
.fila{display:grid;grid-template-columns:1fr auto auto auto;gap:12px;align-items:center;padding:12px 14px;border-bottom:1px solid var(--line);color:var(--ink)}
.fila:last-child{border-bottom:none} .fila:hover{background:var(--gris-bg);text-decoration:none}
.f-tit{font-weight:600} .f-meta,.f-fecha,.f-cuando{color:var(--ink-soft);font-size:.84rem}
.fila.vencida{background:var(--rojo-bg)} .rojo-txt{color:var(--rojo)}
.apagado{color:var(--ink-soft);font-size:.9rem}

.cols{display:grid;grid-template-columns:1fr 340px;gap:22px;align-items:start}
.col-lado{position:sticky;top:76px}
.cab-prop{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;flex-wrap:wrap;margin-bottom:6px}
.cab-prop .meta{color:var(--ink-soft);font-size:.86rem;margin:.2em 0}
.cab-estado{display:flex;gap:6px;flex-wrap:wrap}
.volver{font-size:.86rem;color:var(--ink-soft)}
.copy-box{background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:16px;white-space:normal;line-height:1.6}
.guia{background:var(--teal-bg);color:var(--ink);border-left:3px solid var(--accent);border-radius:0 10px 10px 0;
  padding:10px 14px;font-size:.9rem;margin:0 0 14px}
.guia b{color:var(--accent-2)}
.enviar{margin-top:14px;align-items:center;flex-direction:row;flex-wrap:wrap;gap:8px}

.panel{background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:16px}
.veredicto .v-cab{display:flex;align-items:center;gap:12px;flex-wrap:wrap}
.v-cuenta{color:var(--ink-soft);font-size:.86rem}
.v-nota{font-size:.86rem;color:var(--ink-soft);margin:.4em 0 .8em}
.grupo{margin:12px 0}
.grupo h4{margin:.2em 0 .5em;font-size:.9rem}
.hallazgos{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:8px}
.hallazgo{border-left:3px solid var(--gris);background:var(--gris-bg);border-radius:0 9px 9px 0;padding:9px 12px}
.hallazgo.rojo{border-color:var(--rojo);background:var(--rojo-bg)}
.hallazgo.ambar{border-color:var(--ambar);background:var(--ambar-bg)}
.hallazgo.azul{border-color:var(--azul);background:var(--azul-bg)}
.h-cab{display:flex;justify-content:space-between;gap:8px;font-size:.78rem}
.h-regla{font-weight:700} .h-fuente{color:var(--ink-soft);text-transform:uppercase;letter-spacing:.04em;font-size:.7rem}
.h-msg{margin:.25em 0;font-size:.9rem} .h-ev{margin:.2em 0} .h-sug{font-size:.86rem;color:var(--ink-soft)}
.nv{margin:.4em 0 0;padding-left:1.1em;font-size:.86rem;color:var(--ink-soft)} .nv li{margin:.2em 0}
.nv-det summary{cursor:pointer;font-weight:700;font-size:.9rem;color:var(--ink)}
.nv-det summary::marker{color:var(--ink-soft)}
.nota-ia{margin-top:10px;padding:8px 12px;background:var(--azul-bg);border-radius:9px}
.ia-ok{margin-top:10px;padding:10px 12px;background:var(--verde-bg);border-radius:9px;font-size:.9rem}

.timeline{list-style:none;padding:0;margin:0;font-size:.86rem}
.timeline li{padding:8px 0;border-bottom:1px solid var(--line)}
.timeline .coment{color:var(--ink-soft);font-style:italic;margin-top:2px}
.dec-aprueba{color:var(--verde);font-weight:700} .dec-cambios{color:var(--ambar);font-weight:700} .dec-rechaza{color:var(--rojo);font-weight:700}

.galeria{display:flex;flex-wrap:wrap;gap:12px}
.galeria figure{margin:0;width:150px} .galeria img{width:150px;height:150px;object-fit:cover;border-radius:10px;border:1px solid var(--line)}
.galeria figcaption{font-size:.74rem;color:var(--ink-soft);margin-top:4px;word-break:break-word}

.tabla-scroll{overflow-x:auto}
table.datos{width:100%;border-collapse:collapse;font-size:.85rem;min-width:640px}
table.datos th,table.datos td{text-align:left;padding:8px 10px;border-bottom:1px solid var(--line);vertical-align:top}
table.datos th{color:var(--ink-soft);font-weight:600}
table.datos td.det{color:var(--ink-soft);max-width:260px;overflow-wrap:anywhere}
.aviso-invitacion{background:var(--teal-bg);border-color:var(--teal)}
.banner-cambios{background:var(--ambar-bg);color:var(--ink);border-left:4px solid var(--ambar);
  border-radius:0 10px 10px 0;padding:12px 16px;margin:0 0 16px;font-size:.95rem}
.hint-check{display:block;margin:-2px 0 0}
.boton.descargar{background:var(--teal-bg);border-color:var(--teal);color:var(--accent-2);font-weight:700}
.ia-prop{border-color:var(--accent);border-width:1px}
.ia-prop-cab{display:flex;align-items:center;gap:10px;justify-content:space-between;flex-wrap:wrap}
.ia-prop-cab h3{margin:0}
.ia-texto{background:var(--teal-bg);border-color:var(--teal)}

@media (max-width:760px){
  .cols{grid-template-columns:1fr} .col-lado{position:static}
  .fila{grid-template-columns:1fr auto}
  .f-meta,.f-fecha{display:none}
}
