/* ════════════════════════════════════════════════════
   PRESUPUESTO — ELEGANTE Y LIMPIO
   Blanco · crema suave · burdeos refinado · líneas finas
════════════════════════════════════════════════════ */

/* INTRO */
.pres-intro-section{
  background:#fff;
  padding:64px 0 56px;border-bottom:1px solid #e8dde4;
  position:relative;overflow:hidden;
}
.pres-intro-section::before{
  content:'';position:absolute;
  top:-80px;right:-80px;width:360px;height:360px;
  background:radial-gradient(circle,rgba(92,29,71,.04) 0%,transparent 65%);
  pointer-events:none;
}
.pres-intro-inner{position:relative;z-index:1}
.pres-intro-eyebrow{
  display:inline-flex;align-items:center;gap:8px;
  border:1px solid rgba(92,29,71,.2);border-radius:2px;
  padding:6px 16px;font-size:.67rem;font-weight:800;
  color:var(--purple);letter-spacing:.16em;text-transform:uppercase;
  margin-bottom:18px;background:rgba(255,255,255,.7);
}
.pres-intro-eyebrow svg{width:12px;height:12px;stroke:var(--purple);fill:none;flex-shrink:0}
.pres-intro-title{
  font-family:'Playfair Display',Georgia,serif;
  font-size:clamp(1.9rem,3.8vw,3rem);
  font-weight:800;font-style:italic;
  color:var(--purple-dark);line-height:1.2;margin-bottom:14px;
}
.pres-intro-title span{
  position:relative;color:var(--purple);
}
.pres-intro-title span::after{
  content:'';position:absolute;left:0;bottom:-3px;right:0;
  height:2px;background:linear-gradient(90deg,var(--purple),transparent);
  border-radius:1px;
}
.pres-intro-sub{
  font-size:.95rem;color:var(--text-muted);
  max-width:520px;line-height:1.7;margin-bottom:32px;
}
.pres-steps{
  display:grid;grid-template-columns:repeat(3,1fr);gap:16px;
  margin-bottom:32px;
}
.pres-step{
  display:flex;flex-direction:column;gap:10px;
  padding:20px 18px;background:#fff;
  border:1px solid #e8dde4;border-radius:12px;
  transition:box-shadow .22s,transform .22s;
  position:relative;overflow:hidden;
}
.pres-step::before{
  content:'';position:absolute;top:0;left:0;right:0;
  height:3px;background:linear-gradient(90deg,var(--purple),var(--purple-light));
  opacity:0;transition:opacity .22s;
}
.pres-step:hover{box-shadow:0 6px 24px rgba(92,29,71,.1);transform:translateY(-2px)}
.pres-step:hover::before{opacity:1}
.pres-step-num{
  width:30px;height:30px;border-radius:50%;
  background:var(--purple);color:#fff;
  font-size:.78rem;font-weight:900;
  display:flex;align-items:center;justify-content:center;flex-shrink:0;
}
.pres-step h4{font-size:.88rem;font-weight:700;color:var(--text);margin:0;line-height:1.3}
.pres-step p{font-size:.74rem;color:var(--text-muted);margin:0;line-height:1.55}
.pres-trust-row{display:flex;flex-wrap:wrap;gap:10px}
.pres-trust-badge{
  display:flex;align-items:center;gap:7px;
  padding:7px 14px;border:1px solid #e0d4da;
  border-radius:24px;font-size:.73rem;font-weight:700;
  color:var(--text-muted);background:#fff;white-space:nowrap;
  transition:all .18s;
}
.pres-trust-badge:hover{border-color:var(--purple);color:var(--purple)}
.pres-trust-badge svg{width:13px;height:13px;stroke:var(--purple);fill:none;flex-shrink:0}
.pres-trust-badge.highlight{background:var(--purple);color:#fff;border-color:var(--purple)}
.pres-trust-badge.highlight svg{stroke:#fff}
.pres-trust-badge.highlight:hover{background:var(--purple-dark)}
.pres-intro-grid{display:grid;grid-template-columns:1fr 300px;gap:48px;align-items:center}
.pres-intro-visual{
  background:#fff;border:1px solid #e0d4da;
  border-radius:14px;padding:26px;
  box-shadow:0 8px 32px rgba(92,29,71,.07);
}
.piv-title{
  font-family:'Playfair Display',serif;font-style:italic;
  font-size:.94rem;color:var(--purple-dark);
  margin-bottom:16px;padding-bottom:12px;
  border-bottom:1px solid #eee0e6;
}
.piv-list{list-style:none;padding:0;margin:0 0 20px;display:flex;flex-direction:column;gap:10px}
.piv-list li{
  display:flex;align-items:flex-start;gap:9px;
  font-size:.78rem;color:var(--text-muted);line-height:1.5;
}
.piv-list li::before{
  content:'';width:16px;height:16px;border-radius:50%;
  background:var(--purple-soft);border:1px solid rgba(92,29,71,.15);
  flex-shrink:0;margin-top:1px;
  background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 10 10' xmlns='http://www.w3.org/2000/svg'%3E%3Cpolyline points='2,5 4,7 8,3' stroke='%235c1d47' stroke-width='1.5' fill='none'/%3E%3C/svg%3E");
  background-repeat:no-repeat;background-size:10px;background-position:center;
}
.piv-contact{
  display:flex;align-items:center;gap:12px;
  background:var(--purple-soft);border:1px solid rgba(92,29,71,.12);
  border-radius:10px;padding:14px;
}
.piv-contact svg{width:20px;height:20px;stroke:var(--purple);fill:none;flex-shrink:0}
.piv-contact div span{display:block;font-size:.65rem;color:var(--text-muted);font-weight:700;text-transform:uppercase;letter-spacing:.1em}
.piv-contact div strong{font-size:1rem;color:var(--purple-dark);display:block;margin-top:3px;font-family:'Playfair Display',serif;font-style:italic}

/* MAIN */
.pres-main{padding:48px 0 80px;background:#f7f4f6}
.pres-layout{display:grid;grid-template-columns:1fr 296px;gap:24px;align-items:flex-start}

/* SIDEBAR */
.pres-sidebar{position:sticky;top:calc(var(--header-h)+16px);display:flex;flex-direction:column;gap:12px}
.pres-cta-box{
  background:#fff;border:1px solid #e0d4da;
  border-radius:14px;padding:24px;
  box-shadow:0 4px 24px rgba(92,29,71,.08);
}
.pres-cta-box h4{
  font-family:'Playfair Display',serif;font-style:italic;
  font-size:1rem;color:var(--purple-dark);margin-bottom:5px;
}
.pres-cta-box p{font-size:.76rem;color:var(--text-muted);margin-bottom:18px;line-height:1.5}
.pres-send-btn{
  width:100%;display:flex;align-items:center;justify-content:center;gap:9px;
  background:var(--purple);color:#fff;border:none;border-radius:9px;
  padding:14px 20px;font-size:.86rem;font-weight:800;cursor:pointer;
  font-family:inherit;transition:all .22s;letter-spacing:.03em;
  box-shadow:0 4px 18px rgba(92,29,71,.28);
}
.pres-send-btn:hover{background:var(--purple-dark);transform:translateY(-1px);box-shadow:0 8px 28px rgba(92,29,71,.38)}
.pres-send-btn svg{width:15px;height:15px;stroke:#fff;fill:none;stroke-width:2.5;flex-shrink:0}
.pres-contact-box{background:#fff;border:1px solid #e8e0e4;border-radius:14px;padding:18px;box-shadow:0 2px 12px rgba(92,29,71,.05)}
.pres-contact-box h5{font-size:.65rem;font-weight:800;color:var(--purple);text-transform:uppercase;letter-spacing:.14em;margin-bottom:12px;padding-bottom:9px;border-bottom:1px solid #eedde5}
.pres-contact-item{display:flex;align-items:center;gap:9px;margin-bottom:10px;font-size:.79rem;color:var(--text)}
.pres-contact-item:last-child{margin-bottom:0}
.pres-contact-item svg{width:14px;height:14px;stroke:var(--purple);fill:none;flex-shrink:0}
.pres-contact-item a{color:var(--purple);font-weight:700;text-decoration:none}
.pres-contact-item a:hover{text-decoration:underline}
.pres-progress-box{background:#fff;border:1px solid #e8e0e4;border-radius:14px;padding:16px;box-shadow:0 2px 12px rgba(92,29,71,.05)}
.pres-progress-box h5{font-size:.65rem;font-weight:800;color:var(--purple);text-transform:uppercase;letter-spacing:.14em;margin-bottom:10px}
.pres-prog-bar{height:5px;background:#f0e8ec;border-radius:3px;overflow:hidden;margin-bottom:5px}
.pres-prog-fill{height:100%;background:linear-gradient(90deg,var(--purple),var(--purple-light));border-radius:3px;transition:width .4s ease;width:0%}
.pres-prog-label{font-size:.69rem;color:var(--text-muted);font-weight:600}

/* MENÚ SERVICIOS */
.pres-services-menu{background:#fff;border:1px solid #e8dde4;border-radius:14px;overflow:hidden;margin-bottom:16px;box-shadow:0 4px 20px rgba(92,29,71,.06)}
.psm-head{padding:22px 24px;background:var(--purple-soft);border-bottom:1px solid #e8dde4}
.psm-head h3{font-family:'Playfair Display',serif;font-style:italic;font-size:1rem;color:var(--purple-dark);margin-bottom:5px;display:flex;align-items:center;gap:8px}
.psm-head p{font-size:.75rem;color:var(--text-muted);margin:0;line-height:1.5}
.psm-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:0}
.psm-item{display:flex;align-items:center;gap:9px;padding:11px 16px;border-right:1px solid #efe7eb;border-bottom:1px solid #efe7eb;cursor:pointer;transition:background .14s;user-select:none}
.psm-item:nth-child(3n){border-right:none}
.psm-item:nth-last-child(-n+3){border-bottom:none}
.psm-item:hover{background:var(--purple-soft)}
.psm-item input[type=checkbox]{width:15px;height:15px;accent-color:var(--purple);flex-shrink:0;cursor:pointer}
.psm-item label{font-size:.77rem;font-weight:600;color:var(--text);cursor:pointer;line-height:1.3}
.psm-item.checked{background:var(--purple-soft)}
.psm-item.checked label{color:var(--purple-dark);font-weight:700}

/* DATOS OBRA */
.pres-obra-card{background:#fff;border:1px solid #e8dde4;border-radius:14px;overflow:hidden;margin-bottom:16px;box-shadow:0 4px 20px rgba(92,29,71,.06)}
.poc-head{padding:16px 22px;background:var(--purple-soft);border-bottom:1px solid #e8dde4;display:flex;align-items:center;gap:11px}
.poc-icon{width:36px;height:36px;border-radius:9px;display:flex;align-items:center;justify-content:center;background:var(--purple);flex-shrink:0}
.poc-icon svg{width:17px;height:17px;stroke:#fff;fill:none}
.poc-head h3{font-size:.92rem;font-weight:700;margin:0;color:var(--purple-dark);font-family:'Playfair Display',serif;font-style:italic}
.poc-body{padding:20px 22px}

/* CAMPOS */
.pf-row{display:grid;grid-template-columns:1fr 1fr;gap:13px;margin-bottom:13px}
.pf-row-3{display:grid;grid-template-columns:1fr 1fr 1fr;gap:13px;margin-bottom:13px}
.pf-row-full{margin-bottom:13px}
.pf-row:last-child,.pf-row-3:last-child,.pf-row-full:last-child{margin-bottom:0}
.pf-field{display:flex;flex-direction:column;gap:4px}
.pf-field label{font-size:.65rem;font-weight:800;color:var(--purple);text-transform:uppercase;letter-spacing:.09em}
.pf-field input,.pf-field select,.pf-field textarea{padding:9px 12px;border:1.5px solid #e8dde4;border-radius:8px;font-family:inherit;font-size:.85rem;transition:all .2s;background:#fff;width:100%;box-sizing:border-box;color:var(--text)}
.pf-field input:focus,.pf-field select:focus,.pf-field textarea:focus{outline:none;border-color:var(--purple);box-shadow:0 0 0 3px rgba(92,29,71,.07)}
.pf-field textarea{min-height:78px;resize:vertical}
.pf-unit{position:relative}
.pf-unit input{padding-right:42px}
.pf-unit-label{position:absolute;right:11px;top:50%;transform:translateY(-50%);font-size:.66rem;font-weight:800;color:var(--purple);pointer-events:none}

/* PARTIDAS */
.pres-partida{background:#fff;border:1px solid #e8dde4;border-radius:14px;overflow:hidden;margin-bottom:12px;display:none;box-shadow:0 2px 14px rgba(92,29,71,.06);transition:box-shadow .22s}
.pres-partida:hover{box-shadow:0 8px 32px rgba(92,29,71,.1)}
.pres-partida.visible{display:block}
.pp-head{padding:0;border:none;cursor:pointer;width:100%;text-align:left;background:none;display:flex}
.pp-head-inner{display:flex;align-items:center;gap:13px;padding:16px 20px;flex:1;transition:background .16s}
.pp-head-inner:hover{background:var(--purple-soft)}
.pp-head[aria-expanded=true] .pp-head-inner{background:var(--purple-soft)}
.pp-icon{width:40px;height:40px;border-radius:9px;display:flex;align-items:center;justify-content:center;font-size:1.2rem;line-height:1;flex-shrink:0;background:#f8f4f6;border:1px solid #ede4e9;transition:transform .2s}
.pp-head-inner:hover .pp-icon{transform:scale(1.06)}
.pp-title h3{font-size:.88rem;font-weight:700;margin:0 0 2px;color:var(--text);font-family:'Playfair Display',serif;font-style:italic}
.pp-title p{font-size:.69rem;color:var(--text-muted);margin:0}
.pp-title{flex:1}
.pp-chevron{width:17px;height:17px;stroke:var(--purple);fill:none;stroke-width:2.5;transition:transform .25s;flex-shrink:0;margin-right:20px}
.pp-head[aria-expanded=true] .pp-chevron{transform:rotate(180deg)}
.pp-body{padding:20px 22px 22px;border-top:1px solid #ede8ec;display:none;background:#fdfbfc}
.pp-body.open{display:block}
.pp-subtitle{font-size:.64rem;font-weight:800;text-transform:uppercase;letter-spacing:.11em;color:var(--purple);margin:16px 0 9px;padding-bottom:6px;border-bottom:1px solid #ede8ec;display:flex;align-items:center;gap:6px}
.pp-subtitle svg{width:10px;height:10px;stroke:var(--purple);fill:none}

/* ITEMS */
.pp-items{display:flex;flex-direction:column;gap:6px}
.pp-item{display:grid;grid-template-columns:28px 1fr 126px;gap:9px;align-items:center;padding:9px 13px;border:1.5px solid #ede8ec;border-radius:8px;background:#fff;transition:all .14s;cursor:pointer}
.pp-item:hover{border-color:#c9a8b8;background:#fdf8fb}
.pp-item:has(input[type=checkbox]:checked){border-color:var(--purple);background:var(--purple-soft)}
.pp-item-check{display:flex;align-items:center;justify-content:center}
.pp-item-check input[type=checkbox]{width:16px;height:16px;accent-color:var(--purple);cursor:pointer}
.pp-item-label{font-size:.79rem;font-weight:600;color:var(--text);cursor:pointer;line-height:1.3}
.pp-item:has(input:checked) .pp-item-label{color:var(--purple-dark);font-weight:700}
.pp-item-qty{display:flex;align-items:center;gap:5px}
.pp-item-qty input{width:68px;padding:6px 8px;border:1.5px solid #e8dde4;border-radius:6px;font-family:inherit;font-size:.79rem;text-align:right;background:#faf8f9;transition:border-color .2s;color:var(--text)}
.pp-item-qty input:focus{outline:none;border-color:var(--purple);background:#fff}
.pp-item-qty span{font-size:.64rem;font-weight:800;color:var(--purple);white-space:nowrap;min-width:22px}

/* MEDIDAS */
.pp-medidas{background:#faf6f8;border:1px solid #ede8ec;border-radius:10px;padding:15px;margin-top:13px}
.pp-medidas-title{font-size:.64rem;font-weight:800;text-transform:uppercase;letter-spacing:.1em;color:var(--purple);margin-bottom:11px;display:flex;align-items:center;gap:6px}
.pp-medidas-title svg{width:12px;height:12px;stroke:var(--purple);fill:none;flex-shrink:0}
.pp-medidas-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:11px}
.pp-medidas-grid.cols-2{grid-template-columns:repeat(2,1fr)}.pp-medidas-grid.cols-1{grid-template-columns:1fr;max-width:200px}

/* NOTAS */
.pp-note{margin-top:14px}
.pp-note label{font-size:.64rem;font-weight:800;color:var(--purple);text-transform:uppercase;letter-spacing:.09em;display:block;margin-bottom:5px}
.pp-note textarea{width:100%;padding:9px 12px;border:1.5px solid #e8dde4;border-radius:8px;font-family:inherit;font-size:.81rem;resize:none;transition:all .2s;box-sizing:border-box;min-height:60px;background:#fff;color:var(--text)}
.pp-note textarea:focus{outline:none;border-color:var(--purple);box-shadow:0 0 0 3px rgba(92,29,71,.07)}

/* REPEATER */
.pp-repeater{display:flex;flex-direction:column;gap:12px}
.pp-rep-item{border:1px solid #e8dde4;border-radius:10px;overflow:hidden;background:#fff}
.pp-rep-head{display:flex;align-items:center;justify-content:space-between;padding:11px 16px;background:var(--purple-soft);border-bottom:1px solid #e8dde4}
.pp-rep-head span{font-size:.81rem;font-weight:700;color:var(--purple-dark);display:flex;align-items:center;gap:7px;font-family:'Playfair Display',serif;font-style:italic}
.pp-rep-head span svg{width:13px;height:13px;stroke:var(--purple);fill:none}
.pp-rep-del{background:none;border:none;cursor:pointer;width:26px;height:26px;border-radius:6px;display:flex;align-items:center;justify-content:center;color:#c0392b;transition:background .14s}
.pp-rep-del:hover{background:#fff0f0}
.pp-rep-del svg{width:13px;height:13px;stroke:currentColor;fill:none}
.pp-rep-body{padding:16px}
.pp-rep-label{font-size:.64rem;font-weight:800;color:var(--purple);text-transform:uppercase;letter-spacing:.09em;margin-bottom:7px;display:block}
.pp-rep-row{display:grid;grid-template-columns:repeat(2,1fr);gap:11px;margin-bottom:11px}
.pp-rep-row.cols-3{grid-template-columns:repeat(3,1fr)}
.pp-rep-row.cols-4{grid-template-columns:repeat(4,1fr)}
.pp-rep-row:last-child{margin-bottom:0}
.pp-check-group{display:flex;flex-wrap:wrap;gap:6px}
.pp-check-opt{display:flex;align-items:center;gap:5px;padding:5px 12px;border:1.5px solid #e8dde4;border-radius:20px;cursor:pointer;font-size:.71rem;font-weight:700;color:var(--text-muted);transition:all .14s;user-select:none;background:#fff}
.pp-check-opt:has(input:checked){border-color:var(--purple);background:var(--purple-soft);color:var(--purple-dark)}
.pp-check-opt input{width:12px;height:12px;accent-color:var(--purple);cursor:pointer}
.pp-add-btn{display:flex;align-items:center;justify-content:center;gap:8px;width:100%;padding:11px;border:2px dashed #ddd0d8;border-radius:9px;background:none;cursor:pointer;font-size:.77rem;font-weight:700;color:var(--purple);transition:all .18s;font-family:inherit;margin-top:6px}
.pp-add-btn:hover{border-color:var(--purple);background:var(--purple-soft)}
.pp-add-btn svg{width:15px;height:15px;stroke:var(--purple);fill:none;stroke-width:2.5}

/* OBSERVACIONES */
.pres-obs{background:#fff;border:1px solid #e8dde4;border-radius:14px;padding:22px;margin-bottom:12px;box-shadow:0 2px 14px rgba(92,29,71,.05)}
.pres-obs h3{font-size:.9rem;font-weight:700;font-family:'Playfair Display',serif;font-style:italic;color:var(--text);margin-bottom:13px;display:flex;align-items:center;gap:8px;padding-bottom:11px;border-bottom:1px solid #ede8ec}
.pres-obs h3 svg{width:16px;height:16px;stroke:var(--purple);fill:none}
.pres-obs textarea{width:100%;padding:11px 13px;border:1.5px solid #e8dde4;border-radius:8px;font-family:inherit;font-size:.85rem;resize:vertical;min-height:96px;transition:all .2s;box-sizing:border-box;color:var(--text)}
.pres-obs textarea:focus{outline:none;border-color:var(--purple);box-shadow:0 0 0 3px rgba(92,29,71,.07)}

/* PRIVACIDAD */
.pres-privacy{background:var(--purple-soft);border:1px solid rgba(92,29,71,.1);border-radius:14px;padding:16px 20px;margin-bottom:12px}
.pres-privacy-inner{display:flex;align-items:flex-start;gap:9px}
.pres-privacy-inner input{width:16px;height:16px;accent-color:var(--purple);margin-top:2px;flex-shrink:0;cursor:pointer}
.pres-privacy-inner label{font-size:.77rem;color:var(--text-muted);line-height:1.55;cursor:pointer}
.pres-privacy-inner a{color:var(--purple);font-weight:700}

/* BOTÓN MÓVIL */
.pres-mobile-send{display:none;width:100%;padding:15px;background:var(--purple);color:#fff;border:none;border-radius:10px;font-size:.88rem;font-weight:800;cursor:pointer;font-family:inherit;align-items:center;justify-content:center;gap:9px;box-shadow:0 6px 22px rgba(92,29,71,.3);margin-top:8px;letter-spacing:.03em}
.pres-mobile-send:hover{background:var(--purple-dark)}
.pres-mobile-send svg{width:16px;height:16px;stroke:#fff;fill:none;stroke-width:2.5}
.pres-error{border-color:#e74c3c!important;box-shadow:0 0 0 3px rgba(231,76,60,.08)!important}
#services-error{color:#e74c3c;font-size:.75rem;font-weight:700;margin-top:7px;display:none}

/* RESPONSIVE */
@media(max-width:1024px){.pres-layout{grid-template-columns:1fr 268px}.pres-intro-grid{grid-template-columns:1fr}.pres-intro-visual{display:none}}
@media(max-width:820px){.pres-layout{grid-template-columns:1fr}.pres-sidebar{position:static;display:none}.pres-mobile-send{display:flex}.psm-grid{grid-template-columns:repeat(2,1fr)}.psm-item:nth-child(3n){border-right:1px solid #efe7eb}.psm-item:nth-child(2n){border-right:none}.pp-medidas-grid{grid-template-columns:repeat(2,1fr)}.pf-row-3{grid-template-columns:1fr 1fr}.pp-rep-row.cols-4{grid-template-columns:repeat(2,1fr)}}
@media(max-width:600px){.pres-steps{grid-template-columns:1fr}.pres-trust-row{gap:7px}.pres-intro-section{padding:48px 0 40px}}
@media(max-width:520px){.psm-grid{grid-template-columns:1fr}.psm-item{border-right:none!important}.pf-row{grid-template-columns:1fr}.pp-rep-row,.pp-rep-row.cols-3{grid-template-columns:1fr 1fr}.pp-item{grid-template-columns:26px 1fr}.pp-item-qty{display:none}.pres-intro-title{font-size:1.75rem}}

/* ── GUARDAR / ESTADO DE PARTIDA ── */
.pp-save-bar{
  display:flex;align-items:center;justify-content:space-between;
  padding:12px 22px;
  background:#fff;border-top:1px solid #ede8ec;
  gap:12px;flex-wrap:wrap;
}
.pp-save-btn{
  display:flex;align-items:center;gap:7px;
  background:var(--purple);color:#fff;border:none;
  border-radius:8px;padding:9px 18px;
  font-size:.8rem;font-weight:700;cursor:pointer;
  font-family:inherit;transition:all .2s;
  box-shadow:0 3px 12px rgba(92,29,71,.22);
}
.pp-save-btn:hover{background:var(--purple-dark);transform:translateY(-1px)}
.pp-save-btn svg{width:14px;height:14px;stroke:#fff;fill:none;stroke-width:2.5;flex-shrink:0}
.pp-save-info{font-size:.73rem;color:var(--text-muted);font-style:italic}

/* Badge de estado en cabecera */
.pp-status-badge{
  display:none;align-items:center;gap:5px;
  font-size:.66rem;font-weight:800;
  padding:3px 10px;border-radius:12px;
  margin-left:auto;margin-right:8px;flex-shrink:0;
}
.pp-status-badge.done{
  display:flex;
  background:#e8f5e9;color:#2e7d32;border:1px solid #a5d6a7;
}
.pp-status-badge.done svg{width:10px;height:10px;stroke:#2e7d32;fill:none;stroke-width:2.5}
.pp-status-badge.pending{
  display:flex;
  background:#fff8e1;color:#f57f17;border:1px solid #ffe082;
}

/* Partida guardada — cabecera mínima */
.pres-partida.saved .pp-head-inner{background:#f0fdf4}
.pres-partida.saved{border-color:#a5d6a7}

/* ── RESUMEN / PREVIEW ── */
.pres-resumen-wrap{
  background:#fff;border:1px solid #e8dde4;
  border-radius:14px;overflow:hidden;
  margin-bottom:14px;box-shadow:0 4px 20px rgba(92,29,71,.07);
}
.pres-resumen-head{
  padding:18px 24px;
  background:var(--purple-soft);
  border-bottom:1px solid #e8dde4;
  display:flex;align-items:center;gap:11px;
}
.pres-resumen-head svg{width:20px;height:20px;stroke:var(--purple);fill:none;flex-shrink:0}
.pres-resumen-head h3{
  font-family:'Playfair Display',serif;font-style:italic;
  font-size:1rem;color:var(--purple-dark);margin:0;flex:1;
}
.pres-resumen-toggle{
  background:none;border:1px solid rgba(92,29,71,.2);
  border-radius:7px;padding:6px 12px;
  font-size:.73rem;font-weight:700;color:var(--purple);
  cursor:pointer;font-family:inherit;transition:all .18s;
}
.pres-resumen-toggle:hover{background:var(--purple);color:#fff}
.pres-resumen-body{
  padding:0;display:none;
}
.pres-resumen-body.open{display:block}
.presumen-empty{
  padding:24px;text-align:center;
  font-size:.83rem;color:var(--text-muted);font-style:italic;
}
/* Tabla de resumen */
.resumen-seccion{border-bottom:1px solid #f0ebe9}
.resumen-seccion:last-child{border-bottom:none}
.resumen-sec-head{
  display:flex;align-items:center;gap:10px;
  padding:13px 20px;background:#fdfbfc;
  border-bottom:1px solid #f5f0f2;
  cursor:pointer;user-select:none;
}
.resumen-sec-head:hover{background:var(--purple-soft)}
.resumen-sec-icon{font-size:1rem;flex-shrink:0}
.resumen-sec-title{font-size:.84rem;font-weight:700;color:var(--text);font-family:'Playfair Display',serif;font-style:italic;flex:1}
.resumen-sec-count{
  font-size:.68rem;font-weight:800;color:var(--purple);
  background:var(--purple-soft);padding:2px 9px;border-radius:10px;
  border:1px solid rgba(92,29,71,.12);margin-right:6px;
}
.resumen-sec-arrow{width:14px;height:14px;stroke:var(--text-muted);fill:none;stroke-width:2.5;transition:transform .2s;flex-shrink:0}
.resumen-seccion.open .resumen-sec-arrow{transform:rotate(180deg)}
.resumen-sec-items{display:none;padding:0 20px 12px}
.resumen-seccion.open .resumen-sec-items{display:block}
.resumen-item-row{
  display:grid;grid-template-columns:1fr auto;gap:12px;
  align-items:center;padding:7px 0;
  border-bottom:1px dashed #f0eaed;font-size:.8rem;
}
.resumen-item-row:last-child{border-bottom:none}
.resumen-item-name{color:var(--text);font-weight:500}
.resumen-item-qty{
  font-size:.75rem;font-weight:700;color:var(--purple);
  background:var(--purple-soft);padding:2px 9px;border-radius:10px;
  white-space:nowrap;
}
.resumen-item-row.no-qty .resumen-item-qty{background:#f0fdf4;color:#2e7d32;border:1px solid #c8e6c9}
.resumen-datos{
  padding:16px 20px;background:#fafafa;
  border-bottom:1px solid #f0ebe9;
}
.resumen-datos h4{
  font-size:.68rem;font-weight:800;color:var(--purple);
  text-transform:uppercase;letter-spacing:.1em;margin-bottom:10px;
}
.resumen-datos-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}
.resumen-dato{display:flex;flex-direction:column;gap:2px}
.resumen-dato span{font-size:.66rem;color:var(--text-muted);font-weight:700;text-transform:uppercase;letter-spacing:.07em}
.resumen-dato strong{font-size:.82rem;color:var(--text)}
.resumen-obs{
  padding:14px 20px;background:#fafafa;
  font-size:.8rem;color:var(--text-muted);
  border-top:1px dashed #f0eaed;font-style:italic;
}
/* Bottom bar de envío */
.pres-submit-bar{
  background:var(--purple-soft);border:1.5px solid rgba(92,29,71,.15);
  border-radius:14px;padding:20px 24px;
  display:flex;align-items:center;gap:16px;flex-wrap:wrap;
  margin-bottom:14px;
}
.pres-submit-bar-text{flex:1}
.pres-submit-bar-text h4{font-family:'Playfair Display',serif;font-style:italic;font-size:.95rem;color:var(--purple-dark);margin-bottom:3px}
.pres-submit-bar-text p{font-size:.75rem;color:var(--text-muted);margin:0;line-height:1.4}
.pres-submit-bar .pres-send-btn{width:auto;padding:13px 28px}

@media(max-width:600px){
  .resumen-datos-grid{grid-template-columns:repeat(2,1fr)}
  .pres-submit-bar{flex-direction:column;align-items:stretch}
  .pres-submit-bar .pres-send-btn{width:100%}
}

/* ── VALIDACIÓN EN LÍNEA ── */
.pf-error{display:block;font-size:.65rem;font-weight:700;color:#c0392b;margin-top:3px;min-height:14px}
.pf-field input.pres-error,.pf-field input:invalid.touched{border-color:#c0392b!important;box-shadow:0 0 0 3px rgba(192,57,43,.08)!important}
.pf-field input.valid{border-color:#27ae60!important}

/* ── Datos de la obra — collapsible ── */
.poc-toggle {
  cursor: pointer;
  user-select: none;
  justify-content: space-between;
  transition: background .2s;
}
.poc-toggle:hover { background: #f0e8ed; }
.poc-head-left { display: flex; align-items: center; gap: 11px; }
.poc-head-right { display: flex; align-items: center; gap: 10px; flex-shrink: 0; }

.poc-chevron {
  width: 18px; height: 18px;
  stroke: var(--purple);
  transition: transform .32s cubic-bezier(.4,0,.2,1);
  flex-shrink: 0;
}
.obra-collapsed .poc-chevron { transform: rotate(-90deg); }

.poc-summary {
  display: none;
  font-size: .76rem;
  color: var(--purple);
  font-weight: 600;
  margin-top: 2px;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  max-width: 340px;
}
.obra-collapsed .poc-summary { display: block; }

.poc-badge--ok {
  background: #d1fae5;
  color: #065f46;
  font-size: .7rem;
  font-weight: 700;
  padding: 3px 9px;
  border-radius: 20px;
  letter-spacing: .02em;
  white-space: nowrap;
}

/* Body collapse animation */
#obra-body {
  overflow: hidden;
  transition: max-height .38s cubic-bezier(.4,0,.2,1), opacity .28s ease;
  max-height: 2000px;
  opacity: 1;
}
.obra-collapsed #obra-body {
  max-height: 0 !important;
  opacity: 0;
  pointer-events: none;
}

/* Save & hide button */
.poc-save-bar {
  display: flex;
  justify-content: flex-end;
  padding: 14px 0 2px;
  border-top: 1px solid #f0e8ed;
  margin-top: 18px;
}
.poc-save-btn {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  background: var(--purple);
  color: #fff;
  border: none;
  border-radius: 8px;
  padding: 9px 18px;
  font-size: .83rem;
  font-weight: 700;
  cursor: pointer;
  transition: background .2s, transform .15s;
}
.poc-save-btn svg { width: 15px; height: 15px; stroke: #fff; fill: none; }
.poc-save-btn:hover { background: var(--purple-dark); transform: translateY(-1px); }
.poc-save-btn:active { transform: translateY(0); }
