/* NWPS · app de pruebas · lenguaje visual elegante futurista (mismos tokens del prototipo) */
:root{
  --bg:#0A0E13; --hoja:#0F151C; --raised:#121A22; --deep:#0C1218;
  --linea:#1E2831; --linea-suave:#18222B;
  --tinta:#F2F5F7; --tinta-2:#A9B6C0; --gris:#74838F;
  --petroleo:#4FD8C4; --senal:#E8B457; --alerta:#F0736A; --ok:#5FC98F;
  --fuente:'Archivo','Helvetica Neue',system-ui,sans-serif;
  --fuente-cuerpo:'IBM Plex Sans',system-ui,-apple-system,Segoe UI,sans-serif;
  --fuente-mono:'IBM Plex Mono',ui-monospace,Menlo,monospace;
  --r:10px; --r-sm:8px;
}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:
   radial-gradient(1100px 520px at 88% -12%, rgba(79,216,196,.09), transparent 60%),
   radial-gradient(760px 420px at 4% 108%, rgba(79,216,196,.05), transparent 60%),
   var(--bg);
  color:var(--tinta);font-family:var(--fuente-cuerpo);font-size:15px;line-height:1.55;
  -webkit-font-smoothing:antialiased;min-height:100vh}
a{color:var(--petroleo)}
h1,h2,h3,h4{font-family:var(--fuente);letter-spacing:-.015em;line-height:1.2;margin:0}
.mono{font-family:var(--fuente-mono)}

/* ---------- topbar ---------- */
.topbar{display:flex;align-items:center;gap:18px;padding:14px 22px;border-bottom:1px solid var(--linea);
  position:sticky;top:0;z-index:20;background:rgba(10,14,19,.9);backdrop-filter:blur(10px)}
.brand{display:flex;align-items:baseline;gap:9px;font-family:var(--fuente);font-weight:700;font-size:1.05rem}
.brand i{display:inline-block;width:9px;height:9px;border-radius:2px;background:var(--petroleo);transform:translateY(-1px)}
.brand small{font-family:var(--fuente-mono);font-weight:400;font-size:.66rem;color:var(--gris);letter-spacing:.05em}
.topbar .right{margin-left:auto;display:flex;align-items:center;gap:12px;flex-wrap:wrap}
.chip{font-family:var(--fuente-mono);font-size:.68rem;letter-spacing:.06em;padding:5px 10px;border-radius:999px;
  border:1px solid var(--linea);color:var(--tinta-2);background:var(--hoja);text-transform:uppercase}
.chip.ok{color:#07231E;background:var(--petroleo);border-color:var(--petroleo);font-weight:700}
.chip.warn{color:#2A1E04;background:var(--senal);border-color:var(--senal);font-weight:700}
.langsw{display:flex;align-items:center;gap:2px;border:1px solid var(--linea);border-radius:999px;padding:2px;background:var(--hoja)}
.langsw button{border:0;background:transparent;color:var(--gris);font-family:var(--fuente-mono);font-size:.68rem;letter-spacing:.06em;
  padding:5px 10px;border-radius:999px;cursor:pointer;text-transform:uppercase}
.langsw button[aria-pressed="true"]{background:var(--petroleo);color:#06231F;font-weight:700}
.langsw .globe{color:var(--gris);font-size:.78rem;padding:0 2px 0 6px}

/* ---------- layout ---------- */
.wrap{max-width:1280px;margin:0 auto;padding:26px 22px 60px;display:grid;grid-template-columns:1.35fr .95fr;gap:22px;align-items:start}
@media (max-width:1040px){.wrap{grid-template-columns:1fr}}
.eyebrow{font-family:var(--fuente-mono);font-size:.68rem;letter-spacing:.16em;text-transform:uppercase;color:var(--petroleo);margin:0 0 8px}
h1.title{font-size:1.65rem;font-weight:800;letter-spacing:-.025em;margin:0 0 8px}
.lead{color:var(--tinta-2);font-size:.94rem;margin:0 0 18px;max-width:70ch}
.langline{font-size:.78rem;color:var(--gris);margin:-8px 0 16px;display:flex;align-items:center;gap:8px}
.langline b{color:var(--petroleo);font-weight:600}

.sheet{background:linear-gradient(180deg,var(--raised),var(--hoja));border:1px solid var(--linea);border-radius:var(--r);padding:18px}
.sheet + .sheet{margin-top:16px}
.sheet h2{font-size:1.05rem;font-weight:700;margin:0 0 4px}
.sheet h3{font-size:.92rem;font-weight:700;margin:0 0 6px}
.sheet .sub{color:var(--gris);font-size:.82rem;margin:0 0 14px}
.stack{display:flex;flex-direction:column;gap:16px}

/* ---------- puertas ---------- */
.doors{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-bottom:16px}
@media (max-width:720px){.doors{grid-template-columns:1fr}}
.door{text-align:left;background:var(--deep);border:1px solid var(--linea);border-radius:var(--r);padding:12px 13px;cursor:pointer;
  color:var(--tinta);font-family:inherit;transition:border-color .15s,background .15s}
.door:hover{border-color:#2A3843}
.door[aria-pressed="true"]{border-color:var(--petroleo);background:#0E1A1C}
.door span{display:block;font-family:var(--fuente-mono);font-size:.64rem;letter-spacing:.14em;text-transform:uppercase;color:var(--gris);margin-bottom:4px}
.door[aria-pressed="true"] span{color:var(--petroleo)}
.door b{display:block;font-family:var(--fuente);font-size:.95rem;margin-bottom:3px}
.door em{display:block;font-style:normal;color:var(--gris);font-size:.76rem;line-height:1.4}

/* ---------- stepper ---------- */
.stepper{display:grid;grid-template-columns:repeat(4,1fr);gap:6px;margin:4px 0 18px}
.stepper button{background:transparent;border:0;border-top:2px solid var(--linea);padding:9px 4px 0;text-align:left;cursor:pointer;color:var(--gris);font-family:inherit}
.stepper button[aria-current="true"]{border-top-color:var(--petroleo);color:var(--tinta)}
.stepper button.done{border-top-color:#2E6B62;color:var(--tinta-2)}
.stepper i{display:block;font-family:var(--fuente-mono);font-size:.62rem;font-style:normal;letter-spacing:.12em;text-transform:uppercase}
.stepper b{font-size:.8rem;font-weight:600}

/* ---------- campos ---------- */
.row{display:grid;gap:12px;margin-bottom:12px}
.row.c2{grid-template-columns:1fr 1fr}
@media (max-width:640px){.row.c2{grid-template-columns:1fr}}
.field{display:flex;flex-direction:column;gap:5px}
.field label{font-size:.78rem;color:var(--tinta-2);font-weight:600}
.field .hint{font-size:.72rem;color:var(--gris);line-height:1.4}
input,select,textarea{background:var(--deep);border:1px solid var(--linea);border-radius:var(--r-sm);color:var(--tinta);
  font-family:inherit;font-size:.88rem;padding:9px 11px;width:100%}
input:focus,select:focus,textarea:focus{outline:none;border-color:var(--petroleo);box-shadow:0 0 0 3px rgba(79,216,196,.12)}
input.bad,select.bad{border-color:var(--alerta)}
textarea{resize:vertical;min-height:76px}
select[multiple]{height:auto}
.btn{border:1px solid var(--linea);background:var(--hoja);color:var(--tinta);border-radius:var(--r-sm);padding:10px 16px;
  font-family:inherit;font-size:.86rem;font-weight:600;cursor:pointer;transition:.15s}
.btn:hover{border-color:#31404B}
.btn.pri{background:var(--petroleo);border-color:var(--petroleo);color:#05201C}
.btn.pri:hover{filter:brightness(1.06)}
.btn.ghost{background:transparent}
.btn:disabled{opacity:.5;cursor:not-allowed}
.btnbar{display:flex;align-items:center;gap:10px;margin-top:14px;flex-wrap:wrap}
.btnbar .meta{font-family:var(--fuente-mono);font-size:.72rem;color:var(--gris)}

/* ---------- OTP ---------- */
.otp{display:flex;gap:8px;margin:10px 0}
.otp input{width:46px;height:52px;text-align:center;font-family:var(--fuente-mono);font-size:1.15rem}
@media (max-width:520px){.otp input{width:38px;height:46px}}

/* ---------- notas y avisos ---------- */
.note{border-left:2px solid var(--petroleo);background:#0E1A1C;border-radius:0 var(--r-sm) var(--r-sm) 0;padding:10px 12px;font-size:.84rem;color:var(--tinta-2);margin-top:12px}
.note.ok{border-left-color:var(--ok);background:#101C16;color:#D6EFE2}
.note.bad{border-left-color:var(--alerta);background:#1C1313;color:#F6DAD7}
.note.warn{border-left-color:var(--senal);background:#1B1710;color:#F2E4C6}
.console{background:var(--deep);border:1px dashed #2A3843;border-radius:var(--r-sm);padding:11px 12px;margin-top:12px}
.console .tag{font-family:var(--fuente-mono);font-size:.62rem;letter-spacing:.14em;text-transform:uppercase;color:var(--senal);display:block;margin-bottom:6px}
.code{font-family:var(--fuente-mono);font-size:1.5rem;letter-spacing:.34em;color:var(--tinta);margin:2px 0 8px}
.errlist{margin:8px 0 0;padding-left:18px;color:var(--alerta);font-size:.82rem}

/* ---------- listas ---------- */
ul.kv{list-style:none;margin:0;padding:0}
ul.kv li{display:grid;grid-template-columns:38% 1fr;gap:10px;padding:8px 0;border-bottom:1px solid var(--linea-suave);font-size:.85rem}
ul.kv li:last-child{border-bottom:0}
ul.kv b{color:var(--tinta-2);font-weight:600}
ul.kv span{color:var(--tinta)}

ul.ladder{list-style:none;margin:0;padding:0;counter-reset:l}
ul.ladder li{display:flex;flex-direction:column;gap:3px;padding:9px 0 9px 14px;border-left:2px solid var(--linea);position:relative}
ul.ladder li.act{border-left-color:var(--petroleo)}
ul.ladder li.next{border-left-color:var(--senal)}
ul.ladder b{font-size:.85rem;display:flex;align-items:center;gap:8px;flex-wrap:wrap}
ul.ladder span{font-size:.78rem;color:var(--gris)}
.badge{font-family:var(--fuente-mono);font-size:.62rem;letter-spacing:.08em;text-transform:uppercase;padding:2px 7px;border-radius:999px;border:1px solid var(--linea);color:var(--gris)}
.badge.ok{color:#06231F;background:var(--petroleo);border-color:var(--petroleo);font-weight:700}
.badge.no{color:var(--gris)}
.badge.warn{color:#2A1E04;background:var(--senal);border-color:var(--senal);font-weight:700}

.log{list-style:none;margin:0;padding:0;max-height:240px;overflow:auto}
.log li{padding:7px 0;border-bottom:1px solid var(--linea-suave);font-size:.79rem;display:grid;grid-template-columns:auto 1fr;gap:10px}
.log li:last-child{border-bottom:0}
.log .t{font-family:var(--fuente-mono);font-size:.68rem;color:var(--gris);white-space:nowrap}
.log .d{color:var(--tinta-2)}
.log .d b{color:var(--tinta)}

table.tbl{width:100%;border-collapse:collapse;font-size:.8rem}
table.tbl th{text-align:left;font-family:var(--fuente-mono);font-size:.64rem;letter-spacing:.1em;text-transform:uppercase;color:var(--gris);
  border-bottom:1px solid var(--linea);padding:8px 6px}
table.tbl td{padding:8px 6px;border-bottom:1px solid var(--linea-suave);vertical-align:top}
table.tbl tr:last-child td{border-bottom:0}
.scroll{overflow:auto;max-height:340px}
.stats{display:flex;gap:14px;flex-wrap:wrap;margin:0 0 12px}
.stat{background:var(--deep);border:1px solid var(--linea);border-radius:var(--r-sm);padding:8px 12px;min-width:96px}
.stat b{display:block;font-family:var(--fuente);font-size:1.2rem}
.stat span{font-family:var(--fuente-mono);font-size:.62rem;letter-spacing:.1em;text-transform:uppercase;color:var(--gris)}
.hidden{display:none !important}
.footer{max-width:1280px;margin:0 auto;padding:0 22px 40px;color:var(--gris);font-size:.76rem}
.sepdot{color:var(--gris)}

/* ===== CSS del prototipo, acotado a .pz ===== */
.pz :root{
    --bg:#0A0E13;
    --hoja:#0F151C;
    --raised:#121A22;
    --deep:#0C1218;
    --tinta:#F2F5F7;
    --tinta2:#A9B6C0;
    --gris:#74838F;
    --gris2:#4E5B66;
    --linea:rgba(255,255,255,.07);
    --linea2:rgba(255,255,255,.045);
    --petroleo:#4FD8C4;
    --petroleo2:rgba(79,216,196,.10);
    --petroleo3:rgba(79,216,196,.26);
    --senal:#E8B457;
    --senal2:rgba(232,180,87,.10);
    --alerta:#F0736A;
    --alerta2:rgba(240,115,106,.10);
    --radio:10px;
    --radio-s:8px;
    --sombra:0 1px 2px rgba(0,0,0,.4), 0 18px 40px -28px rgba(0,0,0,.85);
    --fuente-mono:"IBM Plex Mono",ui-monospace,monospace;
  }
.pz html, .pz body{margin:0;padding:0}
.pz .mono{font-family:var(--fuente-mono);font-variant-numeric:tabular-nums}
.pz h1, .pz h2, .pz h3, .pz h4{font-family:Archivo,"IBM Plex Sans",sans-serif;margin:0;line-height:1.25;letter-spacing:-.01em}
.pz a{color:var(--petroleo);text-decoration:none}
.pz button{font:inherit;cursor:pointer}
.pz /* ---------- barra superior ---------- */
  .topbar{
    position:sticky;top:0;z-index:60;
    display:flex;align-items:center;gap:22px;flex-wrap:wrap;
    padding:14px 28px;
    background:rgba(10,14,19,.86);
    -webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);
    border-bottom:1px solid var(--linea);
  }
.pz .brand{display:flex;align-items:baseline;gap:10px;font-family:Archivo;font-weight:700;font-size:1.05rem;letter-spacing:.02em}
.pz .brand i{display:inline-block;width:9px;height:9px;border-radius:2px;background:var(--petroleo);transform:translateY(-1px)}
.pz .brand small{font-family:var(--fuente-mono);font-weight:400;font-size:.66rem;color:var(--gris);letter-spacing:.06em;margin-left:2px}
.pz .tabs{display:flex;gap:2px;margin-left:auto;flex-wrap:wrap;background:rgba(255,255,255,.035);border-radius:999px;padding:3px}
.pz .tab{
    background:transparent;border:0;color:var(--tinta2);
    padding:8px 15px;border-radius:999px;
    font-size:.83rem;font-weight:500;letter-spacing:0;
    transition:color .18s,background .18s;
  }
.pz .tab:hover{color:var(--tinta)}
.pz .tab[aria-selected="true"]{background:var(--raised);color:var(--tinta);font-weight:600;box-shadow:0 1px 2px rgba(0,0,0,.35)}
.pz /* ---------- franja de estado, .pz discreta ---------- */
  .govbar{
    display:flex;align-items:center;gap:10px;flex-wrap:wrap;
    padding:9px 28px;border-bottom:1px solid var(--linea2);
    font-family:var(--fuente-mono);font-size:.66rem;letter-spacing:.04em;color:var(--gris);
  }
.pz .govbar b{color:var(--petroleo);font-weight:500}
.pz .govbar .sep{color:var(--gris2)}
.pz .led{width:6px;height:6px;border-radius:50%;background:var(--petroleo);flex:0 0 auto}
.pz .wrap{max-width:1160px;margin:0 auto;padding:34px 28px 96px}
.pz .view{display:none}
.pz .view.on{display:block;animation:in .3s ease both}
.pz from{opacity:0;transform:translateY(5px)}
.pz to{opacity:1;transform:none}
.pz .view.on{animation:none}
.pz .eyebrow{font-size:.76rem;color:var(--gris);margin:0 0 8px;letter-spacing:.02em}
.pz h1{font-size:1.9rem;font-weight:700}
.pz .lead{max-width:68ch;color:var(--tinta2);margin:12px 0 30px;font-size:1rem}
.pz /* ---------- paneles ---------- */
  .sheet{
    position:relative;background:var(--hoja);
    border:1px solid var(--linea);border-radius:var(--radio);
    box-shadow:var(--sombra);
    padding:26px 28px;
  }
.pz .sheet > h2{font-size:1.15rem;font-weight:600}
.pz .sheet > h2 + .sub{color:var(--gris);font-size:.88rem;margin:7px 0 0;max-width:64ch}
.pz .grid{display:grid;gap:20px}
.pz .two{grid-template-columns:minmax(0,1.02fr) minmax(0,.98fr);align-items:start}
.pz .three{grid-template-columns:repeat(3,minmax(0,1fr))}
.pz .quotelayout{grid-template-columns:minmax(0,.86fr) minmax(0,1.14fr)}
.pz .stack{display:grid;gap:18px}
.pz /* ---------- puertas de registro ---------- */
  .doors{display:flex;gap:12px;flex-wrap:wrap;margin:22px 0 26px}
.pz .door{
    flex:1 1 220px;text-align:left;background:var(--hoja);
    border:1px solid var(--linea);border-radius:var(--radio);padding:16px 18px;color:var(--tinta);
    transition:border-color .18s,background .18s,transform .18s;
  }
.pz .door:hover{border-color:rgba(255,255,255,.16);transform:translateY(-1px)}
.pz .door[aria-pressed="true"]{border-color:var(--petroleo3);background:linear-gradient(180deg,var(--petroleo2),transparent 70%)}
.pz .door b{display:block;font-family:Archivo;font-weight:600;font-size:1rem}
.pz .door span{display:block;font-size:.72rem;color:var(--gris);margin-bottom:6px}
.pz .door em{display:block;font-style:normal;font-size:.85rem;color:var(--tinta2);margin-top:8px}
.pz /* ---------- pasos ---------- */
  .stepper{display:flex;gap:4px;flex-wrap:wrap;margin:0 0 24px}
.pz .stepper button{
    flex:1 1 120px;background:transparent;border:1px solid var(--linea);border-radius:var(--radio-s);
    padding:11px 13px;text-align:left;color:var(--tinta2);transition:border-color .18s,color .18s,background .18s;
  }
.pz .stepper button i{display:block;font-style:normal;font-size:.68rem;color:var(--gris);margin-bottom:2px}
.pz .stepper button b{font-size:.87rem;font-weight:500}
.pz .stepper button[aria-current="true"]{border-color:var(--petroleo3);background:var(--petroleo2);color:var(--tinta)}
.pz .stepper button[aria-current="true"] b{font-weight:600}
.pz .stepper button[aria-current="true"] i{color:var(--petroleo)}
.pz .panel{display:none}
.pz .panel.on{display:block}
.pz .field{margin:0 0 18px}
.pz .field label{display:block;font-size:.8rem;color:var(--tinta2);margin-bottom:7px}
.pz .field input, .pz .field select, .pz .field textarea{
    width:100%;padding:12px 14px;border:1px solid var(--linea);border-radius:var(--radio-s);
    background:var(--deep);font:inherit;color:var(--tinta);
  }
.pz .field input::placeholder, .pz .field textarea::placeholder{color:var(--gris2)}
.pz .field input:focus, .pz .field select:focus, .pz .field textarea:focus, .pz .door:focus-visible, .pz .tab:focus-visible, .pz .stepper button:focus-visible, .pz .btn:focus-visible{outline:2px solid var(--petroleo3);outline-offset:2px}
.pz .field .hint{font-size:.78rem;color:var(--gris);margin-top:6px}
.pz .row{display:grid;gap:16px}
.pz .row.c2{grid-template-columns:1fr 1fr}
.pz .btn{
    background:transparent;color:var(--tinta);border:1px solid var(--linea);border-radius:var(--radio-s);
    padding:12px 20px;font-size:.85rem;font-weight:600;letter-spacing:0;
    transition:background .18s,border-color .18s,color .18s,opacity .18s;
  }
.pz .btn:hover{border-color:rgba(255,255,255,.2)}
.pz .btn.ghost{color:var(--tinta2)}
.pz .btn.ghost:hover{color:var(--tinta)}
.pz .btn.pri{background:var(--petroleo);border-color:var(--petroleo);color:#06231F}
.pz .btn.pri:hover{background:#63E2D0}
.pz .btn.amber{background:var(--senal);border-color:var(--senal);color:#2A1E06}
.pz .btn:disabled{opacity:.45;cursor:not-allowed}
.pz .btnbar{display:flex;gap:12px;flex-wrap:wrap;align-items:center;margin-top:8px}
.pz .otp{display:flex;gap:10px;margin:6px 0 10px}
.pz .otp input{width:48px;text-align:center;font-family:var(--fuente-mono);font-size:1.05rem;font-weight:600;padding:12px 0;
    background:var(--deep);color:var(--tinta);border:1px solid var(--linea);border-radius:var(--radio-s)}
.pz .otp input.filled{border-color:var(--petroleo3);background:var(--petroleo2);color:var(--petroleo)}
.pz /* ---------- escalera ---------- */
  .ladder{list-style:none;padding:0;margin:18px 0 0;counter-reset:n}
.pz .ladder li{position:relative;padding:13px 16px 13px 50px;border:1px solid var(--linea);border-radius:var(--radio-s);margin-bottom:9px;background:var(--deep)}
.pz .ladder li::before{
    counter-increment:n;content:counter(n);position:absolute;left:14px;top:14px;width:24px;height:24px;border-radius:50%;
    background:var(--petroleo2);color:var(--petroleo);font-family:var(--fuente-mono);font-size:.72rem;
    display:flex;align-items:center;justify-content:center;
  }
.pz .ladder li.locked{opacity:.62}
.pz .ladder li.locked::before{background:rgba(255,255,255,.05);color:var(--gris)}
.pz .ladder b{display:block;font-size:.92rem;font-weight:600}
.pz .ladder span{display:block;font-size:.83rem;color:var(--gris);margin-top:3px}
.pz .ladder span.badge{display:inline-block;margin:0 0 5px}
.pz .badge{
    display:inline-block;font-size:.7rem;font-weight:500;border:1px solid currentColor;border-radius:999px;
    padding:2px 9px;vertical-align:2px;
  }
.pz .badge.ok{color:var(--petroleo);background:var(--petroleo2);border-color:var(--petroleo3)}
.pz .badge.sig{color:var(--senal);background:var(--senal2);border-color:rgba(232,180,87,.28)}
.pz .badge.no{color:var(--gris);border-color:var(--linea)}
.pz /* ---------- tarjetas ---------- */
  .card{background:var(--hoja);border:1px solid var(--linea);border-radius:var(--radio);padding:20px 22px;box-shadow:var(--sombra)}
.pz .card h3{font-size:1rem;font-weight:600;margin-bottom:14px}
.pz .kv{list-style:none;padding:0;margin:0;font-size:.87rem}
.pz .kv li{display:flex;gap:14px;padding:9px 0;border-bottom:1px solid var(--linea2)}
.pz .kv li:last-child{border-bottom:0;padding-bottom:0}
.pz .kv b{font-size:.74rem;color:var(--gris);font-weight:500;min-width:118px;flex:0 0 auto;padding-top:2px}
.pz .kv span{color:var(--tinta2)}
.pz table.cmp{width:100%;border-collapse:collapse;font-size:.86rem}
.pz table.cmp th, .pz table.cmp td{border-bottom:1px solid var(--linea2);padding:11px 12px;text-align:left;vertical-align:top}
.pz table.cmp thead th{font-size:.72rem;font-weight:500;color:var(--gris);border-bottom:1px solid var(--linea)}
.pz table.cmp td.num{font-family:var(--fuente-mono);font-weight:500;font-variant-numeric:tabular-nums}
.pz table.cmp tr.win td{background:var(--petroleo2)}
.pz .warnrow{background:var(--senal2)}
.pz .warnrow td{color:#F3D9A6}
.pz .quotecard{border:1px solid var(--linea);border-radius:var(--radio);background:var(--hoja);padding:18px 20px;margin-bottom:14px;position:relative}
.pz .quotecard.pick{border-color:var(--petroleo3);box-shadow:var(--sombra)}
.pz .quotecard h4{font-size:.98rem;font-weight:600;display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.pz .quotecard .price{font-family:var(--fuente-mono);font-weight:600;font-size:1.15rem;margin:10px 0 6px}
.pz .quotecard .meta{font-family:var(--fuente-mono);font-size:.7rem;color:var(--gris);letter-spacing:.03em}
.pz .quotecard .inc{font-size:.86rem;color:var(--tinta2);margin:11px 0 0}
.pz .quotecard .inc b{color:var(--senal)}
.pz .quotecard .pickbtn{margin-top:14px}
.pz .stamp{display:none;position:absolute;right:16px;top:18px;font-size:.7rem;font-weight:600;letter-spacing:.04em;
    border:1px solid currentColor;border-radius:999px;padding:3px 10px}
.pz .quotecard.pick .stamp{display:none}
.pz .quotecard.pick .stamp.win{display:block;color:var(--petroleo);background:var(--petroleo2)}
.pz .quotecard.lose .stamp.lose{display:block;color:var(--gris);border-color:var(--linea)}
.pz .quotecard.lose{opacity:.72}
.pz .timeline{list-style:none;padding:0;margin:16px 0 0;font-size:.86rem}
.pz .timeline li{position:relative;padding:0 0 16px 26px;border-left:1px solid var(--linea);margin-left:4px}
.pz .timeline li:last-child{border-left-color:transparent;padding-bottom:0}
.pz .timeline li::before{content:"";position:absolute;left:-4px;top:6px;width:7px;height:7px;border-radius:50%;background:var(--gris2)}
.pz .timeline li.done::before{background:var(--petroleo)}
.pz .timeline li.now::before{background:var(--senal);box-shadow:0 0 0 4px var(--senal2)}
.pz .timeline b{display:block;font-weight:600;color:var(--tinta)}
.pz .timeline span{color:var(--gris);font-size:.79rem}
.pz .hilo{list-style:none;padding:0;margin:14px 0 0;font-size:.87rem}
.pz .hilo li{border:1px solid var(--linea);border-radius:var(--radio-s);padding:11px 13px;margin-bottom:8px;background:var(--deep)}
.pz .hilo li.me{background:var(--petroleo2);border-color:var(--petroleo3)}
.pz .hilo .who{font-size:.72rem;color:var(--gris);display:block;margin-bottom:4px}
.pz .note{border:1px solid rgba(232,180,87,.22);background:var(--senal2);color:#F3D9A6;padding:14px 16px;font-size:.86rem;border-radius:var(--radio-s);margin:16px 0;line-height:1.55}
.pz .note.ok{border-color:var(--petroleo3);background:var(--petroleo2);color:#CBF3ED}
.pz .note b{color:inherit}
.pz .foot{margin-top:44px;font-size:.76rem;color:var(--gris);border-top:1px solid var(--linea);padding-top:16px}
.pz .wrap{padding:24px 18px 80px}
.pz .sheet{padding:20px 18px}
.pz /* ---------- conmutadores de audiencia ---------- */
  .audsw{display:inline-flex;gap:2px;background:rgba(255,255,255,.035);border-radius:999px;padding:3px;margin:20px 0 24px;flex-wrap:wrap}
.pz .audsw button{background:transparent;border:0;border-radius:999px;padding:9px 16px;font-size:.83rem;font-weight:500;color:var(--tinta2)}
.pz .audsw button[aria-pressed="true"]{background:var(--raised);color:var(--tinta);font-weight:600}
.pz .redact{background:var(--gris2);color:transparent;border-radius:3px;padding:0 5px;user-select:none;-webkit-user-select:none}
.pz .bar{height:8px;background:rgba(255,255,255,.06);border-radius:999px;overflow:hidden;margin:9px 0 5px}
.pz .bar i{display:block;height:100%;background:var(--senal);border-radius:999px}
.pz .bar i.ok{background:var(--petroleo)}
.pz .audbox{border:1px solid var(--linea);border-radius:var(--radio);padding:18px 20px;background:var(--deep)}
.pz .audbox h4{font-size:.8rem;font-weight:600;color:var(--petroleo);margin:0 0 12px}
.pz .audbox ul{margin:0;padding-left:20px;font-size:.87rem;color:var(--tinta2)}
.pz .audbox li{margin:.4em 0}
.pz /* ---------- índice de cumplimiento ---------- */
  .icorow{display:grid;grid-template-columns:170px 1fr 44px;gap:12px;align-items:center;font-size:.86rem;margin:10px 0}
.pz .icorow .bar{margin:0}
.pz .stars{display:flex;gap:8px}
.pz .stars button{background:var(--deep);border:1px solid var(--linea);border-radius:var(--radio-s);min-width:38px;height:36px;
    font-family:var(--fuente-mono);font-size:.82rem;color:var(--tinta2)}
.pz .stars button:hover{border-color:rgba(255,255,255,.2)}
.pz .stars button[aria-pressed="true"]{background:var(--petroleo);border-color:var(--petroleo);color:#06231F;font-weight:600}
.pz .rategrid{display:grid;gap:12px;margin-top:14px}
.pz .rategrid .rr{display:grid;grid-template-columns:180px 1fr;gap:12px;align-items:center;font-size:.86rem}
.pz .rategrid .rr{grid-template-columns:1fr}
.pz .icorow{grid-template-columns:118px 1fr 40px}
.pz /* ---------- control / gobernanza ---------- */
  .cgrid{display:grid;gap:16px}
.pz .cgrid{grid-template-columns:repeat(3,minmax(0,1fr))}
.pz .cmod{background:var(--hoja);border:1px solid var(--linea);border-radius:var(--radio);padding:20px 22px}
.pz .cmod h4{font-size:.76rem;font-weight:500;color:var(--gris);margin-bottom:8px}
.pz .cmod b{display:block;font-family:Archivo;font-size:1rem;font-weight:600;margin-bottom:8px}
.pz .cmod p{margin:0;font-size:.85rem;color:var(--tinta2)}
.pz .cmod .lock{margin-top:12px;font-size:.78rem;color:var(--petroleo)}
.pz .clause{background:var(--petroleo2);border:1px solid var(--petroleo3);border-radius:var(--radio);padding:22px 24px}
.pz .clause p{margin:0;font-size:.95rem;color:#DCF7F2;line-height:1.65}
.pz .clause p b{color:var(--petroleo)}
.pz .nolet{border:1px solid rgba(232,180,87,.2);border-radius:var(--radio);overflow:hidden}
.pz .nolet div{display:grid;grid-template-columns:30px 1fr;gap:12px;padding:13px 16px;background:var(--senal2);border-bottom:1px solid rgba(232,180,87,.16);font-size:.86rem;color:#F3D9A6}
.pz .nolet div:last-child{border-bottom:0}
.pz .nolet div span:first-child{font-family:var(--fuente-mono);color:var(--senal);font-weight:600}
.pz .svgshell{border:1px solid var(--linea);border-radius:var(--radio);background:var(--deep);padding:18px}
.pz .svgshell svg{width:100%;height:auto;display:block}
.pz /* ---------- financiamiento ---------- */
  .brgrid{display:grid;gap:12px}
.pz .br{border:1px solid var(--linea);border-radius:var(--radio-s);background:var(--deep);padding:15px 17px}
.pz .br b{display:block;font-family:Archivo;font-size:.95rem;font-weight:600;margin-bottom:6px}
.pz .br span{display:block;font-size:.84rem;color:var(--tinta2)}
.pz .br .brk{font-size:.74rem;color:var(--petroleo);margin-top:8px}
.pz .br.bad{border-color:rgba(240,115,106,.24)}
.pz .br.bad .brk{color:var(--alerta)}
.pz .langsw{display:flex;align-items:center;gap:2px;border:1px solid var(--linea);border-radius:999px;padding:2px;background:var(--hoja)}
.pz .langsw button{border:0;background:transparent;color:var(--gris);font-family:var(--fuente-mono);font-size:.68rem;letter-spacing:.06em;
    padding:5px 10px;border-radius:999px;cursor:pointer;text-transform:uppercase}
.pz .langsw button[aria-pressed="true"]{background:var(--petroleo);color:#06231F;font-weight:700}
.pz .langsw .globe{color:var(--gris);font-size:.78rem;padding:0 2px 0 6px}
.pz .topbar .right{display:flex;align-items:center;gap:12px;margin-left:auto}
.pz .langline{font-size:.78rem;color:var(--gris);margin:-2px 0 12px;display:flex;align-items:center;gap:8px}
.pz .langline b{color:var(--petroleo);font-weight:600}
/* ---------- conmutador de vistas de la app ---------- */
.tabs{display:flex;gap:4px;flex-wrap:wrap;align-items:center}
.tab{border:0;background:transparent;color:var(--gris);font-family:var(--fuente-cuerpo);font-size:.8rem;font-weight:600;
  padding:7px 11px;border-radius:999px;cursor:pointer;white-space:nowrap}
.tab:hover{color:var(--tinta);background:#141C24}
.tab[aria-selected="true"]{background:#13242A;color:var(--petroleo);box-shadow:inset 0 0 0 1px #1F3A3A}
.views{display:block}
.views .view{display:none}
.views .view.on{display:block}
.pz section.view{max-width:1280px;margin:0 auto;padding:26px 22px 70px}
.pz .foot{max-width:1280px;margin:0 auto;padding:0 22px 30px;color:var(--gris);font-size:.76rem}
.pz .lead{max-width:80ch}

/* ===== Vista 02 · Proyectos: cliente a la izquierda, proveedor a la derecha ===== */
#v-proyectos{max-width:1320px;margin:0 auto;padding:0 0 70px}
.split-head{display:grid;grid-template-columns:1fr 90px 1fr;align-items:end;padding:26px 26px 0;border-bottom:1px solid var(--linea)}
.split-head .tagl,.split-head .tagr{font-family:var(--fuente-mono);font-size:.62rem;letter-spacing:.15em;text-transform:uppercase;
  padding:3px 9px;border-radius:999px;display:inline-block;margin-bottom:9px}
.split-head .tagl{background:#0F2723;color:var(--petroleo);border:1px solid #1E453F}
.split-head .tagr{background:#2A2011;color:var(--senal);border:1px solid #4A3A1C}
.split-head h2{font-size:1.12rem}
.split-head p{margin:5px 0 0;color:var(--gris);font-size:.81rem;max-width:44ch}
.split-head > div{padding-bottom:16px}
.split-head .rail{position:relative;height:100%;padding:0}
.split-head .rail::before{content:'';position:absolute;left:50%;top:6px;bottom:0;border-left:1px dashed #26333D}
.split-body{display:grid;grid-template-columns:1fr 90px 1fr}
.split-body .col{padding:22px 26px 26px}
.split-body .col.left{background:linear-gradient(180deg,rgba(79,216,196,.05),transparent 34%)}
.split-body .col.mid{padding:0;position:relative}
.split-body .col.mid::before{content:'';position:absolute;left:50%;top:0;bottom:0;border-left:1px dashed #26333D}
.split .card{background:linear-gradient(180deg,var(--raised),var(--hoja));border:1px solid var(--linea);border-radius:var(--r);padding:16px}
.split .card+.card{margin-top:14px}
.split .card h3{font-size:.95rem;font-weight:700;margin:0 0 6px}
.split .card .sub{color:var(--gris);font-size:.79rem;margin:0 0 12px}
.pcard{border:1px solid var(--linea);border-radius:var(--r-sm);padding:12px;background:var(--deep)}
.pcard+.pcard{margin-top:10px}
.pcard.pick{border-color:var(--petroleo)}
.pcard h4{margin:0 0 5px;font-size:.92rem;font-weight:700}
.pcard .meta{font-family:var(--fuente-mono);font-size:.67rem;color:var(--gris);letter-spacing:.04em}
.pcard .facts{display:flex;gap:14px;flex-wrap:wrap;margin:9px 0 4px}
.pcard .fact{font-size:.78rem;color:var(--tinta-2)}
.pcard .fact b{color:var(--tinta);font-weight:600}
.approw{display:flex;align-items:center;gap:10px;justify-content:space-between;padding:9px 0;border-bottom:1px solid var(--linea-suave);font-size:.82rem}
.approw:last-child{border-bottom:0}
.approw .who{display:flex;flex-direction:column;gap:2px}
.approw .who b{font-size:.84rem}
.approw .who span{color:var(--gris);font-size:.74rem}
@media(max-width:1000px){.split-head,.split-body{grid-template-columns:1fr}.split-head .rail,.split-body .col.mid{display:none}}
/* Subscription status stays outside individual app views. */
.subscription-bar{max-width:1236px;margin:0 auto;padding:16px 0;display:flex;align-items:center;justify-content:space-between;gap:16px;border-bottom:1px solid var(--linea)}
.subscription-bar p{margin:2px 0 0;font-size:.82rem;color:var(--tinta-2)}
.subscription-bar strong{font-size:.92rem;color:var(--petroleo)}
.subscription-bar.expired strong{color:var(--senal)}
#subscription-dialog{width:min(480px,calc(100% - 24px));max-height:calc(100dvh - 32px);overflow:auto;padding:24px;border:1px solid var(--linea);border-radius:8px;background:var(--hoja);color:var(--tinta);box-shadow:0 20px 80px #0008;letter-spacing:0}
#subscription-dialog::backdrop{background:#000a}
#subscription-dialog h2{font-size:1.25rem;letter-spacing:0;line-height:1.3}
#subscription-dialog p{font-size:.84rem;color:var(--tinta-2);margin:10px 0 16px}
.subscription-heading{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px}
#subscription-close{width:36px;height:36px;padding:0;font-size:1.4rem}
.subscription-summary{margin:18px 0 0}
.subscription-summary div{display:flex;justify-content:space-between;gap:16px;padding:10px 0;border-bottom:1px solid var(--linea)}
.subscription-summary dt{color:var(--tinta-2);font-size:.84rem}
.subscription-summary dd{margin:0;font-weight:600;text-align:right;font-size:.9rem}
#subscription-total{color:var(--petroleo);font-size:1.1rem}
#subscription-message{overflow-wrap:anywhere}
#subscription-dialog .btnbar{align-items:stretch}
#subscription-dialog .btnbar button{white-space:normal;min-height:44px}
@media(max-width:1280px){.subscription-bar{margin:0 22px}}
@media(max-width:520px){.subscription-bar{align-items:flex-start;flex-direction:column}#subscription-dialog{padding:18px}#subscription-dialog .btnbar{flex-direction:column}}
/* Project financing: inputs and results are unframed work surfaces. */
#v-capital h1{font-size:1.7rem;letter-spacing:0;margin-bottom:10px}
#v-capital h2{font-size:1.05rem;letter-spacing:0;margin:0 0 12px}
#v-capital h3{font-size:1rem;letter-spacing:0;margin:12px 0}
#v-capital [hidden]{display:none!important}
.fund-scope,.fund-caption{font-size:.8rem;color:var(--tinta-2);line-height:1.6}
.fund-scope{padding-bottom:20px;border-bottom:1px solid var(--linea)}
.fund-workspace{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:36px;padding:20px 0 30px}
.fund-inputs,.fund-output{min-width:0}
#fund-name{margin-top:18px!important}
.fund-modes{display:flex;gap:0;border-bottom:1px solid var(--linea);margin:20px 0}
.fund-modes button{flex:1;min-height:44px;background:none;border:0;border-bottom:2px solid transparent;color:var(--tinta-2);font:inherit;cursor:pointer}
.fund-modes button[aria-pressed="true"]{color:var(--petroleo);border-bottom-color:var(--petroleo)}
.fund-main-number{padding:16px 0}
.fund-main-number span{display:block;color:var(--tinta-2);font-size:.84rem}
.fund-main-number strong{display:block;font-size:1.75rem;line-height:1.4;color:var(--petroleo);overflow-wrap:anywhere}
.fund-capital-bar{display:flex;height:10px;width:100%;overflow:hidden;background:var(--linea)}
.fund-capital-bar i{display:block;height:100%}
#fund-own-bar{background:var(--petroleo)}
#fund-advance-bar{background:var(--senal)}
#fund-gap-bar{background:#9aa6b5}
.fund-values{margin:0}
.fund-values>div{display:grid;grid-template-columns:minmax(0,1fr) minmax(100px,auto);gap:16px;border-bottom:1px solid var(--linea);padding:12px 0;align-items:baseline}
.fund-values dt{color:var(--tinta-2);font-size:.84rem}
.fund-values dd{margin:0;text-align:right;font-size:.95rem;font-weight:600;overflow-wrap:anywhere}
.fund-emphasis dd{color:var(--petroleo)}
.fund-formulas{margin-top:22px;font-size:.82rem}
.fund-formulas summary{cursor:pointer;color:var(--tinta);padding:12px 0;font-weight:600}
.fund-formulas p{color:var(--tinta-2);overflow-wrap:anywhere}
.fund-band{border-top:1px solid var(--linea);padding:28px 0}
.fund-cases{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin-top:20px}
.fund-case{padding:18px;border:1px solid var(--linea);border-radius:8px;background:var(--hoja);min-width:0}
.fund-case p{font-size:.84rem;color:var(--tinta-2)}
.fund-case a{font-size:.8rem;overflow-wrap:anywhere}
.fund-checklist{padding-left:20px;color:var(--tinta-2);font-size:.86rem;line-height:1.8}
@media(max-width:900px){.fund-workspace{grid-template-columns:1fr;gap:24px}.fund-output{border-top:1px solid var(--linea);padding-top:24px}.fund-cases{grid-template-columns:1fr}}
@media(max-width:640px){#v-capital .row.c2{grid-template-columns:1fr}}
@media(max-width:480px){.fund-values>div{grid-template-columns:1fr;gap:4px}.fund-values dd{text-align:left}.fund-main-number strong{font-size:1.4rem}}
