/* ===========================================================
   Antesdefirma — Portal de cliente (mi.antesdefirma.es)
   =========================================================== */
.pt-body{background:var(--bg-2);min-height:100vh;}

/* ===== LOGIN ===== */
.pt-login{min-height:100vh;display:grid;grid-template-columns:1fr 1fr;}
@media(max-width:860px){.pt-login{grid-template-columns:1fr;}.pt-login .aside{display:none;}}
.pt-login .form-side{display:flex;align-items:center;justify-content:center;padding:40px 24px;}
.pt-login .box{width:100%;max-width:380px;}
.pt-login .brand{margin-bottom:34px;}
.pt-login h1{font-size:28px;margin-bottom:8px;}
.pt-login p.sub{color:var(--ink-2);margin-bottom:28px;font-size:15px;}
.pt-login .field{margin-bottom:16px;}
.pt-login .field.full{width:100%;}
.pt-login .field label{display:block;width:100%;font-size:13px;font-weight:600;color:var(--ink);margin:0 0 7px;text-align:left;}
.pt-login .field input{display:block;width:100%;box-sizing:border-box;border:1px solid var(--line-2);border-radius:6px;padding:13px 15px;font-family:'Manrope',sans-serif;font-size:15px;color:var(--ink);background:var(--cream);outline:none;margin:0;}
.pt-login .field input:focus{border-color:var(--sage);}
.pt-login .aside{background:var(--forest);color:#cfe0d6;padding:54px 50px;display:flex;flex-direction:column;justify-content:center;position:relative;overflow:hidden;}
.pt-login .aside h2{color:#fff;font-size:30px;margin-bottom:18px;max-width:16ch;}
.pt-login .aside .checks li{color:#cfe0d6;}
.pt-login .aside .checks li::before{background:rgba(255,255,255,.12);}
.pt-login .aside .report{margin-top:34px;max-width:340px;}

/* login: volver, magic link, demo roles */
.pt-login .back-link{display:inline-flex;align-items:center;gap:7px;font-size:13.5px;font-weight:600;color:var(--muted);margin-bottom:22px;}
.pt-login .back-link svg{width:16px;height:16px;stroke:currentColor;}
.pt-login .back-link:hover{color:var(--sage-d);}
.login-or{display:flex;align-items:center;gap:12px;margin:16px 0;color:var(--muted);font-size:12.5px;}
.login-or::before,.login-or::after{content:"";flex:1;height:1px;background:var(--line);}
.login-foot{text-align:center;color:var(--muted);font-size:13px;margin-top:18px;}
.login-note{font-size:13px;margin:12px 0 0;padding:11px 14px;border-radius:6px;background:var(--cream);border:1px solid var(--line);color:var(--ink-2);}
.login-note.ok{background:var(--tint);border-color:var(--tint-2);color:var(--sage-d);font-weight:600;}
.demo-row{margin-top:30px;padding-top:22px;border-top:1px dashed var(--line-2);}
.demo-tag{display:block;font-family:'Space Grotesk',sans-serif;font-size:11px;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);margin-bottom:12px;text-align:center;}
.demo-roles{display:grid;grid-template-columns:1fr 1fr;gap:8px;}
.demo-roles button,.demo-roles a{display:flex;align-items:center;justify-content:center;font-family:'Outfit',sans-serif;font-weight:600;font-size:13.5px;color:var(--ink-2);background:#fff;border:1px solid var(--line-2);border-radius:6px;padding:11px;cursor:pointer;transition:.12s;text-align:center;}
.demo-roles button:hover,.demo-roles a:hover{border-color:var(--sage);color:var(--sage-d);}
.demo-roles button.active{background:var(--sage);color:#fff;border-color:var(--sage);}

/* ===== APP ===== */
/* La columna izquierda se pinta de verde con un gradiente en el PROPIO contenedor del
   grid: cubre los 248px izquierdos a lo largo de TODA la altura del contenido, aunque se
   scrollee (el sticky de .pt-side solo cubría la ventana y dejaba franja beige). */
.pt-shell{display:grid;grid-template-columns:248px 1fr;min-height:100vh;align-items:start;background:linear-gradient(90deg,var(--forest-2) 0 248px,transparent 248px);}
.pt-side{background:var(--forest-2);color:#bcd0c4;padding:24px 18px;display:flex;flex-direction:column;gap:6px;position:sticky;top:0;height:100vh;overflow-y:auto;}
.pt-side .brand{padding:6px 10px 22px;}
.pt-side .brand .wm{font-family:'Outfit',sans-serif;font-weight:700;font-size:19px;color:#fff;letter-spacing:-0.03em;}
.pt-side .brand .wm b{color:var(--sage-soft);}
.pt-side a{display:flex;align-items:center;gap:12px;padding:11px 14px;border-radius:6px;font-size:14.5px;font-weight:600;color:#bcd0c4;cursor:pointer;transition:.15s;}
.pt-side a svg{width:19px;height:19px;stroke:currentColor;flex-shrink:0;}
.pt-side a:hover{background:rgba(255,255,255,.06);color:#fff;}
.pt-side a.active{background:var(--sage);color:#fff;}
.pt-side .spacer{flex:1;}
.pt-side a.xrole{margin-top:6px;border:1px dashed rgba(255,255,255,.18);color:#9fb6a8;}
.pt-side a.xrole:hover{border-color:var(--sage-soft);color:#fff;}
.pt-side a.xrole .xrole-tag{margin-left:auto;font-family:'Space Grotesk',sans-serif;font-size:10px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;background:rgba(255,255,255,.1);padding:3px 8px;border-radius:6px;}
.pt-side .help{background:rgba(255,255,255,.06);border-radius:16px;padding:16px;font-size:13px;color:#cfe0d6;}
.pt-side .help b{color:#fff;display:block;margin-bottom:5px;font-family:'Outfit',sans-serif;}
.pt-side .help button{margin-top:12px;width:100%;}

.pt-main{padding:clamp(22px,3.5vw,40px);max-width:1000px;}
.pt-topbar{display:flex;align-items:center;justify-content:space-between;margin-bottom:30px;gap:16px;}
.pt-topbar .hello h1{font-size:clamp(24px,3vw,32px);}
.pt-topbar .hello p{color:var(--ink-2);margin-top:5px;font-size:15px;}
.pt-topbar .who{display:flex;align-items:center;gap:11px;}
.pt-topbar .who .av{width:42px;height:42px;border-radius:50%;background:var(--sage);color:#fff;display:flex;align-items:center;justify-content:center;font-family:'Outfit',sans-serif;font-weight:700;}

/* tarjeta resumen pedido */
.pt-order{background:#fff;border:1px solid var(--line);border-radius:var(--r-lg);padding:26px 28px;margin-bottom:24px;display:flex;justify-content:space-between;align-items:center;gap:20px;flex-wrap:wrap;}
.pt-order .meta{display:flex;flex-direction:column;gap:5px;min-width:0;}
.pt-order .meta .pn{font-family:'Outfit',sans-serif;font-weight:700;font-size:20px;line-height:1.25;color:var(--ink);}
.pt-order .meta .addr{color:var(--ink-2);font-size:14px;margin-top:4px;display:flex;align-items:center;gap:7px;}
.pt-order .meta .addr svg{width:15px;height:15px;stroke:var(--sage);}
.pt-order .badge{flex-shrink:0;align-self:flex-start;white-space:nowrap;font-family:'Space Grotesk',sans-serif;font-weight:600;font-size:12.5px;letter-spacing:.04em;text-transform:uppercase;padding:8px 14px;border-radius:var(--r-pill);background:var(--tint);color:var(--sage-d);}

/* timeline de proceso */
.pt-section-title{font-family:'Outfit',sans-serif;font-weight:700;font-size:18px;color:var(--ink);margin:0 0 16px;display:flex;align-items:center;gap:10px;}
.pt-section-title .c{font-size:12px;color:var(--muted);font-weight:600;font-family:'Space Grotesk',sans-serif;}
.timeline{background:#fff;border:1px solid var(--line);border-radius:var(--r-lg);padding:10px 28px;margin-bottom:24px;}
.tl-step{display:flex;gap:18px;padding:20px 0;border-bottom:1px solid var(--line);}
.tl-step:last-child{border-bottom:none;}
.tl-step .marker{display:flex;flex-direction:column;align-items:center;flex-shrink:0;}
.tl-step .dot{width:34px;height:34px;border-radius:50%;display:flex;align-items:center;justify-content:center;border:2px solid var(--line-2);background:#fff;}
.tl-step .dot svg{width:17px;height:17px;stroke:var(--muted);}
.tl-step .line{flex:1;width:2px;background:var(--line);margin-top:6px;}
.tl-step:last-child .line{display:none;}
.tl-step.done .dot{background:var(--sage);border-color:var(--sage);}
.tl-step.done .dot svg{stroke:#fff;}
.tl-step.done .line{background:var(--sage);}
.tl-step.current .dot{border-color:var(--sage);box-shadow:0 0 0 4px rgba(74,124,89,.16);}
.tl-step.current .dot svg{stroke:var(--sage);}
.tl-step .body h4{font-family:'Outfit',sans-serif;font-weight:700;font-size:16px;color:var(--ink);margin:0 0 3px;}
.tl-step.pending .body h4{color:var(--muted);}
.tl-step .body p{font-size:14px;color:var(--ink-2);}
.tl-step .body .when{font-size:12.5px;color:var(--muted);margin-top:6px;font-family:'Space Grotesk',sans-serif;}
.tl-step .body .tag-now{display:inline-block;margin-top:8px;font-size:11px;font-weight:600;font-family:'Space Grotesk',sans-serif;letter-spacing:.05em;text-transform:uppercase;color:var(--sage-d);background:var(--tint);padding:4px 10px;border-radius:var(--r-pill);}

/* docs */
.docs-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px;}
@media(max-width:680px){.docs-grid{grid-template-columns:1fr;}}
.dropzone{grid-column:1 / -1;border:2px dashed var(--line-2);border-radius:var(--r-lg);padding:34px;text-align:center;background:#fff;transition:.15s;cursor:pointer;}
.dropzone.over{border-color:var(--sage);background:#fafdfb;}
.dropzone .ic{width:54px;height:54px;border-radius:16px;background:var(--tint);display:flex;align-items:center;justify-content:center;margin:0 auto 14px;}
.dropzone .ic svg{width:26px;height:26px;stroke:var(--sage);}
.dropzone h4{font-family:'Outfit',sans-serif;font-weight:700;font-size:16px;color:var(--ink);margin-bottom:5px;}
.dropzone p{font-size:13.5px;color:var(--muted);}
.dropzone .btn{margin-top:16px;}
.doc-item{display:flex;align-items:center;gap:13px;background:#fff;border:1px solid var(--line);border-radius:16px;padding:14px 16px;}
.doc-item .fic{width:38px;height:38px;border-radius:6px;background:var(--tint);display:flex;align-items:center;justify-content:center;flex-shrink:0;}
.doc-item .fic svg{width:18px;height:18px;stroke:var(--sage);}
.doc-item .info{flex:1;min-width:0;}
.doc-item .info .n{font-weight:600;font-size:14px;color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.doc-item .info .s{font-size:12px;color:var(--muted);}
.doc-item .st{font-size:12px;font-weight:600;color:var(--sage-d);display:flex;align-items:center;gap:5px;}
.doc-item .st svg{width:14px;height:14px;stroke:var(--sage);}
.doc-item .req{font-size:12px;font-weight:600;color:var(--warn);}

/* informe final (bloqueado/listo) */
.report-cta{background:linear-gradient(120deg,var(--forest),var(--forest-2));color:#cfe0d6;border-radius:var(--r-lg);padding:30px;display:flex;align-items:center;justify-content:space-between;gap:24px;flex-wrap:wrap;}
.report-cta h3{color:#fff;font-size:22px;}
.report-cta p{margin-top:6px;font-size:14.5px;max-width:46ch;}
.report-cta.locked{background:#fff;border:1px solid var(--line);color:var(--ink-2);}
.report-cta.locked h3{color:var(--ink);}
.report-cta .lock{display:flex;align-items:center;gap:8px;font-size:13px;color:var(--muted);font-weight:600;}
.report-cta .lock svg{width:16px;height:16px;stroke:var(--muted);}

.pt-section{display:none;}
.pt-section.active{display:block;}

/* mobile topbar */
.pt-mobnav{display:none;}
@media(max-width:1024px){.pt-mobnav{display:flex;gap:8px;overflow-x:auto;padding:10px 14px;background:var(--forest-2);border-bottom:1px solid rgba(236,229,216,.25);position:sticky;top:0;z-index:30;}
  .pt-mobnav a{white-space:nowrap;padding:8px 14px;border-radius:var(--r-pill);font-size:13px;font-weight:600;color:#bcd0c4;cursor:pointer;}
  .pt-mobnav a.active{background:var(--sage);color:#fff;}
}

/* layout responsive: ocultar sidebar y usar barra superior (al final para ganar en cascada) */
@media(max-width:1024px){.pt-shell{grid-template-columns:1fr !important;background:none !important;}.pt-side{display:none !important;}}

/* ===== Informe web interactivo (A1) + argumentario (A2) ===== */
.iw{display:flex;flex-direction:column;gap:16px}
.iw-hero{border-radius:16px;padding:26px 22px;color:#fff;background:#0E1D28}
.iw-hero.sem-ok{background:linear-gradient(135deg,#1d4d33,#2e6b47)}
.iw-hero.sem-warn{background:linear-gradient(135deg,#7a5418,#a3742a)}
.iw-hero.sem-risk{background:linear-gradient(135deg,#6e2a2a,#94403c)}
.iw-light{display:flex;gap:7px;margin-bottom:12px}
.iw-light .dot{width:14px;height:14px;border-radius:50%;opacity:.28}
.iw-light .dot.ok{background:#7fd99a}.iw-light .dot.warn{background:#f3c969}.iw-light .dot.risk{background:#f08c8c}
.iw-light .dot.on{opacity:1;box-shadow:0 0 0 4px rgba(255,255,255,.18)}
.iw-verdict{font-family:'Outfit',sans-serif;font-size:26px;letter-spacing:-.02em}
.iw-verdict b{font-weight:800}
.iw-sem-txt{font-size:14px;opacity:.85;margin-top:2px}
.iw-resumen{font-size:14.5px;line-height:1.6;margin:12px 0 0;opacity:.95;max-width:640px}
.iw-meta{font-size:12.5px;opacity:.7;margin-top:12px}
.iw-meta code{font-size:11px;background:rgba(255,255,255,.14);padding:2px 6px;border-radius:6px}
.iw-nav{display:flex;gap:8px;flex-wrap:wrap;position:sticky;top:0;z-index:5;background:var(--bg,#faf8f3);padding:8px 0}
.iw-nav button{border:1px solid var(--line);background:#fff;border-radius:6px;padding:9px 16px;font-size:13.5px;font-weight:600;color:var(--ink);cursor:pointer}
.iw-nav button.on{background:var(--sage);border-color:var(--sage);color:#fff}
.iw-card{background:#fff;border:1px solid var(--line);border-left-width:4px;border-radius:16px;margin-bottom:10px;overflow:hidden}
.iw-card.sev-ok{border-left-color:#5C6B47}.iw-card.sev-warn{border-left-color:#c98a2d}.iw-card.sev-risk{border-left-color:#b4534e}
.iw-card-top{display:flex;align-items:center;gap:10px;padding:13px 14px;cursor:default}
.iw-card-top h4{margin:0;font-size:14.5px;flex:1;cursor:pointer;line-height:1.35}
.iw-sev{font-size:11px;font-weight:800;letter-spacing:.04em;text-transform:uppercase;padding:3px 9px;border-radius:6px;white-space:nowrap}
.sev-ok .iw-sev{background:#e6f0e9;color:#2e6b47}.sev-warn .iw-sev{background:#f7ecd8;color:#8a5f1c}.sev-risk .iw-sev{background:#f6e3e2;color:#8f3b37}
.iw-x{border:none;background:none;font-size:15px;color:var(--muted);cursor:pointer;transition:transform .15s}
.iw-card.open .iw-x{transform:rotate(180deg)}
.iw-body{display:none;padding:0 16px 14px 44px;font-size:13.8px;line-height:1.6;color:#3d4a44}
.iw-card.open .iw-body{display:block}
.iw-fotos{display:flex;gap:8px;flex-wrap:wrap;margin-top:10px}
.iw-fotos img{width:96px;height:72px;object-fit:cover;border-radius:6px;border:1px solid var(--line)}
.iw-pick input{width:18px;height:18px;accent-color:var(--sage);cursor:pointer}
.iw-datos{background:#fff;border:1px solid var(--line);border-radius:16px;padding:18px}
.iw-datos h4{margin:0 0 10px;font-size:14px}.iw-datos h4+table+h4,.iw-datos table+h4{margin-top:18px}
.iw-datos table{width:100%;border-collapse:collapse;font-size:13.5px}
.iw-datos td{padding:7px 8px;border-bottom:1px solid var(--line)}
.iw-datos td:first-child{color:var(--muted);width:42%}
.iw-datos ul{margin:0;padding-left:18px;font-size:13.5px;line-height:1.7}
.iw-bar{position:sticky;bottom:12px;z-index:6;display:flex;align-items:center;gap:12px;justify-content:space-between;background:#0E1D28;color:#fff;border-radius:16px;padding:12px 16px;font-size:13.5px;box-shadow:0 12px 32px -10px rgba(16,40,56,.5)}
@media (max-width:640px){.iw-verdict{font-size:21px}.iw-body{padding-left:16px}.iw-bar{flex-direction:column;align-items:stretch;text-align:center}}

/* ===== Tracker B1: fechas por etapa + siguiente paso ===== */
.stp{position:relative}
.stp .when{font-size:10.5px;color:var(--muted);margin-top:3px;text-align:center}
.stp .when.now{color:var(--sage-d);font-weight:700}
.next-step{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-top:14px;padding:12px 14px;background:#fff;border:1px dashed var(--line);border-radius:16px;font-size:13.5px;color:var(--ink)}
@media (max-width:640px){.next-step{flex-direction:column;align-items:stretch;text-align:center}}

/* ── Informe web interactivo v2 (cadena 4 · modelo expedientes) ───────────── */
.iwv2 .iw-card-top{cursor:default}
.iwv2 .iw-card-top h4{cursor:default}
.iwv2 .iw-card-body{padding:0 14px 12px;font-size:13.8px;line-height:1.6;color:#3d4a44}
.iw-chip{font-size:11px;font-weight:800;letter-spacing:.04em;text-transform:uppercase;padding:3px 9px;border-radius:6px;white-space:nowrap}
.sev-ok .iw-chip{background:#e9efdf;color:#4a5636}
.sev-warn .iw-chip{background:#f6ebd6;color:#8a5f1c}
.sev-risk .iw-chip{background:#f6e2dd;color:#8f3b30}
.iw-sec{margin:18px 0}
.iw-sec>h4{font-family:'Outfit',sans-serif;font-size:16px;margin:0 0 10px;color:var(--ink)}
.iw-hall{margin-bottom:8px}
.iw-hall p{margin:4px 0}
.iw-hall-f,.iw-hall-r{font-size:12.5px;margin-top:4px}
.iw-hall-f span,.iw-hall-r span{font-weight:700;color:var(--muted);margin-right:4px}
.iw-muted{color:var(--muted);font-size:13.5px}
.iw-tabla,.iw-cuadro{width:100%;border-collapse:collapse;font-size:13.5px}
.iw-tabla td{padding:7px 8px;border-bottom:1px solid var(--line)}
.iw-cuadro tr{cursor:pointer;border-bottom:1px solid var(--line)}
.iw-cuadro tr:hover{background:#faf7f0}
.iw-cuadro td{padding:9px 8px;vertical-align:top}
.iw-cuadro td:nth-child(2){width:130px}
.iw-legal{background:#fff;border:1px solid var(--line);border-radius:12px;margin:10px 0}
.iw-legal summary{padding:12px 14px;cursor:pointer;font-weight:600;font-size:13.5px;list-style:none}
.iw-legal summary::-webkit-details-marker{display:none}
.iw-legal summary::before{content:'\25B8 ';color:var(--sage)}
.iw-legal[open] summary::before{content:'\25BE '}
.iw-legal-body{padding:0 14px 14px;font-size:13px;line-height:1.6;color:#3d4a44}
.iw-verlist{list-style:none;padding:0;margin:0;font-size:14px}
.iw-verlist li{padding:6px 0;color:var(--muted)}
.iw-verlist li.on{color:var(--ink);font-weight:700}
.iw-arg{font-size:14px;line-height:1.6;margin-top:8px;background:#fff;border:1px solid var(--line);border-radius:12px;padding:12px 14px}
.iw-dl{display:inline-block;margin-bottom:14px}
.iw-anexos{margin-top:24px}
.iw-flash{animation:iwflash 1.4s ease}
@keyframes iwflash{0%{box-shadow:0 0 0 3px rgba(92,107,71,.5)}100%{box-shadow:0 0 0 3px rgba(92,107,71,0)}}
@media (max-width:430px){.iw-cuadro td:nth-child(3),.iw-tabla td:nth-child(3){font-size:12px}}

/* Regla de radios (ronda 2.2): el informe se FIRMA → papel RECTO con filete
   fino. Las tarjetas/§10/cuadro del informe web van a radio 0; los chips y
   botones (controles) mantienen su 6px. */
.iwv2 .iw-card{border-radius:0}
.iwv2 .iw-legal{border-radius:0}
.iwv2 .iw-arg{border-radius:0}
.iwv2 .iw-datos,.iwv2 .iw-anexos{border-radius:0}

/* Cadena 5 (Bloque D): margen de negociación — papel recto, filete fino, cifras
   tabulares, fuente al pie. */
.iw-margen{margin-top:26px;border:1px solid var(--line);border-radius:0;padding:20px 22px;background:#fff}
.iw-margen h4{margin:0 0 12px;font-family:'Outfit',sans-serif}
.iw-margen-total{font-family:'Space Grotesk','Outfit',sans-serif;font-size:26px;font-weight:600;color:var(--ink);margin:0 0 14px;font-variant-numeric:tabular-nums}
.iw-margen-tabla{width:100%;border-collapse:collapse;font-size:13.5px}
.iw-margen-tabla th{text-align:left;font-size:11px;letter-spacing:.05em;text-transform:uppercase;color:var(--muted);border-bottom:1px solid var(--line);padding:6px 8px}
.iw-margen-tabla td{padding:9px 8px;border-bottom:1px solid var(--line);vertical-align:top}
.iw-margen-eur{text-align:right;white-space:nowrap;font-variant-numeric:tabular-nums;font-weight:600}
.iw-fuente{font-size:11.5px;color:var(--muted);margin-top:3px}
.iw-margen-cont{margin-top:12px}
.iw-margen-cont ul{margin:6px 0 0;padding-left:18px;font-size:13.5px}
.iw-margen-nota{font-size:12px;color:var(--muted);margin:14px 0 0;line-height:1.5;border-top:1px solid var(--line);padding-top:12px}
