/* ===========================================================
   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:11px;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;}

/* ===== APP ===== */
.pt-shell{display:grid;grid-template-columns:248px 1fr;min-height:100vh;}
@media(max-width:840px){.pt-shell{grid-template-columns:1fr;}.pt-side{display:none;}}
.pt-side{background:var(--forest-2);color:#bcd0c4;padding:24px 18px;display:flex;flex-direction:column;gap:6px;position:sticky;top:0;height:100vh;}
.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:11px;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:999px;}
.pt-side .help{background:rgba(255,255,255,.06);border-radius:14px;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:14px;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:13px;padding:14px 16px;}
.doc-item .fic{width:38px;height:38px;border-radius:9px;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:840px){
  .pt-mobnav{display:flex;gap:8px;overflow-x:auto;padding:14px 16px;background:var(--forest-2);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;}
}
