/* ==========================================================================
   Kattnails · Hoja de estilos
   Paleta:  fondo #F3DDD3 · texto #4A3A2F · acento #A87E4F
   Tipografía: Libertinus Math (serif)
   ========================================================================== */

:root{
  --bg:#F3DDD3; --ink:#4A3A2F; --ink-2:#5C4A3D; --muted:#7A6558;
  --muted-2:#9C8478; --muted-3:#B0A093; --faint:#C2B3A7;
  --accent:#A87E4F; --rose:#FAE9E1; --rose-2:#E7D3CA; --rose-3:#E1C6C0;
  --green:#6F8F6A; --danger:#A8564A;
  --line:rgba(156,132,120,.35); --line-soft:rgba(156,132,120,.22);
  --serif:'Libertinus Math',Cambria,'Times New Roman',Georgia,serif;
  --wrap:1240px;
}

*{box-sizing:border-box}
html{scroll-behavior:smooth;overflow-x:hidden}
body{overflow-x:hidden}
body{
  margin:0;background:var(--bg);color:var(--ink);
  font-family:var(--serif);font-weight:400;
  -webkit-font-smoothing:antialiased;text-wrap:pretty;
  min-height:100vh;display:flex;flex-direction:column;
}
a{color:var(--ink);text-decoration:none;transition:color .3s ease}
a:hover{color:var(--accent)}
img{max-width:100%;display:block}
input,select,textarea,button{font-family:inherit}
input:focus,select:focus,textarea:focus{outline:none;border-color:var(--accent)}
select{
  appearance:none;
  -webkit-appearance:none;
  -moz-appearance:none;
  background:#fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='10' viewBox='0 0 10 10'%3E%3Cpath fill='%237A6558' d='M1.5 3.5l3.5 3.5 3.5-3.5' stroke='%237A6558' stroke-width='1.2' stroke-linecap='round' stroke-linejoin='round' fill='none'/%3E%3C/svg%3E") no-repeat right 10px center;
  padding-right:28px;
  cursor:pointer;
  border:1px solid var(--rose-2);
  border-radius:6px;
  transition:all .2s ease;
}
select:hover{border-color:var(--muted-2)}
select:focus{border-color:var(--accent);box-shadow:0 0 0 3px rgba(168,126,79,.1)}
h1,h2,h3{font-weight:500}

/* Utilidades ------------------------------------------------------------- */
.wrap{max-width:var(--wrap);margin:0 auto}
.muted{color:var(--muted-2)!important}
.eyebrow{margin:0 0 12px;font-size:10.5px;letter-spacing:.28em;text-transform:uppercase;color:var(--muted-2)}
.reveal{opacity:0;transform:translateY(26px);transition:opacity .9s ease,transform .9s ease}
.reveal.in{opacity:1;transform:none}
@media (prefers-reduced-motion: reduce){
  .reveal{opacity:1!important;transform:none!important;transition:none}
  html{scroll-behavior:auto}
}

/* Botones ---------------------------------------------------------------- */
.btn{display:inline-block;text-align:center;cursor:pointer;font-family:var(--serif);
  font-size:11px;letter-spacing:.2em;text-transform:uppercase;padding:16px 30px;
  border:1px solid transparent;transition:background .35s ease,border-color .35s ease,color .35s ease}
.btn-dark{background:var(--ink);color:var(--bg);border-color:var(--ink)}
.btn-dark:hover{background:var(--accent);border-color:var(--accent);color:var(--bg)}
.btn-outline{background:transparent;color:var(--ink);border-color:rgba(156,132,120,.55)}
.btn-outline:hover{border-color:var(--ink);background:rgba(231,211,202,.45);color:var(--ink)}
.btn-block{width:100%}
.btn-lg{padding:18px 34px}

/* Cabecera --------------------------------------------------------------- */
.site-header{position:sticky;top:0;z-index:60;background:rgba(243,221,211,.92);
  backdrop-filter:blur(12px);border-bottom:1px solid var(--line-soft)}
.header-inner{max-width:var(--wrap);margin:0 auto;padding:12px clamp(16px,4vw,44px);
  display:flex;align-items:center;justify-content:space-between;gap:14px;flex-wrap:wrap}
.brand{font-size:22px;font-weight:500;letter-spacing:.16em;text-transform:uppercase;color:var(--ink)}
.nav{display:flex;align-items:center;gap:clamp(12px,2vw,26px);flex-wrap:wrap}
.nav-link{font-size:11px;letter-spacing:.2em;text-transform:uppercase;color:var(--muted-2)}
.nav-link:hover,.nav-link.is-active{color:var(--ink)}
.nav-cta{font-size:11px!important;padding:13px 22px!important;letter-spacing:.18em}
.nav-cta.is-current{background:var(--accent);border-color:var(--accent);color:var(--bg)}

/* Hamburger menu */
.nav-toggle{display:none;flex-direction:column;justify-content:center;gap:5px;width:32px;height:32px;
  background:none;border:none;cursor:pointer;padding:4px;z-index:100}
.nav-toggle span{display:block;width:100%;height:2px;background:var(--ink);transition:all .3s ease}
.nav-toggle.open span:nth-child(1){transform:rotate(45deg) translate(5px,5px)}
.nav-toggle.open span:nth-child(2){opacity:0}
.nav-toggle.open span:nth-child(3){transform:rotate(-45deg) translate(5px,-5px)}

@media(max-width:768px){
  .nav-toggle{display:flex}
  .nav{position:fixed;top:0;right:-100%;width:min(280px,80vw);height:100vh;
    flex-direction:column;align-items:flex-start;gap:0;padding:80px 30px 30px;
    background:var(--bg);box-shadow:-4px 0 20px rgba(0,0,0,.1);transition:right .3s ease;z-index:90}
  .nav.open{right:0}
  .nav-link{width:100%;padding:16px 0;font-size:13px;border-bottom:1px solid var(--line-soft)}
  .nav-cta{width:100%;text-align:center;margin-top:20px}
}

main{flex:1}

/* Hero ------------------------------------------------------------------- */
.hero{padding:clamp(22px,4vw,52px) clamp(16px,4vw,44px) 0}
.hero-meta{display:flex;flex-wrap:wrap;gap:clamp(10px,3vw,40px);justify-content:space-between;
  padding-bottom:clamp(16px,2.5vw,26px);border-bottom:1px solid rgba(156,132,120,.4)}
.hero-meta p{margin:0;font-size:10.5px;letter-spacing:.24em;text-transform:uppercase}
.hero-meta .m1{color:var(--muted-2)} .hero-meta .m2{color:var(--faint)}
.hero-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,340px),1fr));
  gap:clamp(20px,3.5vw,56px);align-items:start;padding-top:clamp(18px,3vw,34px)}
.hero-letras{display:flex;flex-wrap:wrap;overflow:hidden;padding-bottom:6px}
.hero-letras span{display:inline-block;font-weight:500;font-size:clamp(52px,11.5vw,150px);
  line-height:.85;letter-spacing:-.035em;color:var(--ink)}
.hero-tagline{margin:clamp(18px,2.5vw,26px) 0 0;max-width:420px;font-style:italic;font-weight:300;
  font-size:clamp(18px,2.1vw,25px);line-height:1.5;color:var(--muted)}
.hero-cta{display:flex;flex-wrap:wrap;gap:10px;margin-top:clamp(20px,3vw,32px)}
.hero-img{position:relative}
.hero-img .ph,.hero-img .real{width:100%;aspect-ratio:4/5;max-height:min(72vh,620px)}
.hero-img .real{background-size:cover;background-position:center}
.hero-img .ph{display:flex;align-items:center;justify-content:center;
  background:repeating-linear-gradient(135deg,#E7D3CA 0 14px,#EFE0D9 14px 28px)}
.hero-img .ph span{font-size:10.5px;letter-spacing:.18em;text-transform:uppercase;color:var(--muted-2);
  background:rgba(243,221,211,.88);padding:10px 16px}
.hero-img .tag{position:absolute;left:0;bottom:-1px;background:var(--bg);padding:12px 16px 0 0;
  font-size:10px;letter-spacing:.22em;text-transform:uppercase;color:var(--muted-2)}

/* Marquee ---------------------------------------------------------------- */
.marquee{margin-top:clamp(36px,6vw,80px);background:var(--ink);overflow:hidden;padding:16px 0}
.marquee-track{display:flex;width:max-content;animation:kn-marquee 26s linear infinite}
.marquee-track span{display:flex;align-items:center;gap:28px;padding-right:28px;font-size:11.5px;
  letter-spacing:.28em;text-transform:uppercase;color:var(--rose-2);white-space:nowrap}
.marquee-track span i{color:var(--accent);font-style:normal}
@keyframes kn-marquee{from{transform:translateX(0)}to{transform:translateX(-50%)}}
@media (prefers-reduced-motion: reduce){.marquee-track{animation:none}}

/* Sección Sobre mí ------------------------------------------------------- */
.section{padding:clamp(52px,8vw,104px) clamp(16px,4vw,44px);scroll-margin-top:66px}
.sobre-grid{max-width:var(--wrap);margin:0 auto;display:grid;
  grid-template-columns:repeat(auto-fit,minmax(min(100%,300px),1fr));
  gap:clamp(26px,4.5vw,68px);align-items:start}
.retrato{position:relative;max-width:460px}
.retrato .real{width:100%;aspect-ratio:4/5;background-size:cover;background-position:center}
.retrato .ph{width:100%;aspect-ratio:4/5;display:flex;align-items:center;justify-content:center;
  background:repeating-linear-gradient(135deg,#E1C6C0 0 12px,#E9D5CF 12px 24px)}
.retrato .ph span{font-size:10.5px;letter-spacing:.16em;text-transform:uppercase;color:#8A7064;
  background:rgba(243,221,211,.88);padding:9px 14px}
.ficha{margin-top:14px;display:flex;flex-direction:column;gap:9px}
.ficha-row{display:flex;justify-content:space-between;gap:14px;padding-bottom:9px;border-bottom:1px solid rgba(156,132,120,.28)}
.ficha-row .k{font-size:10px;letter-spacing:.2em;text-transform:uppercase;color:var(--muted-3)}
.ficha-row .v{font-size:12.5px;color:var(--ink-2);text-align:right}
.section-title{margin:0 0 clamp(20px,3vw,30px);font-size:clamp(30px,4.6vw,48px);line-height:1.05;letter-spacing:-.02em;color:var(--ink)}
.bio-parrafos{display:flex;flex-direction:column;gap:16px;max-width:560px}
.bio-parrafos p{margin:0;font-size:clamp(15px,1.5vw,16.5px);line-height:1.85;color:var(--ink-2)}
.bio-firma{margin:clamp(22px,3vw,32px) 0 0;font-style:italic;font-size:20px;color:var(--muted-2)}

/* Galería ---------------------------------------------------------------- */
.gal-head{display:flex;flex-wrap:wrap;gap:16px;align-items:flex-end;justify-content:space-between;
  padding-bottom:16px;margin-bottom:clamp(20px,3vw,32px);border-bottom:1px solid rgba(156,132,120,.4)}
.gal-head h2{margin:0;font-size:clamp(30px,4.6vw,48px);line-height:1;letter-spacing:-.02em;color:var(--ink)}
.gal-link{font-size:10.5px;letter-spacing:.2em;text-transform:uppercase;color:var(--muted-2);
  border-bottom:1px solid rgba(156,132,120,.5);padding-bottom:3px}
.gal-link:hover{color:var(--accent);border-color:var(--accent)}
.gal-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,224px),1fr));gap:clamp(10px,1.6vw,18px);align-items:start}
.gal-fig{margin:0;transition:transform .5s cubic-bezier(.2,.7,.3,1)}
.gal-fig:hover{transform:translateY(-6px)}
.gal-fig .real{width:100%;aspect-ratio:1/1;background-size:cover;background-position:center}
.gal-fig .ph{width:100%;aspect-ratio:1/1;display:flex;align-items:center;justify-content:center;
  background:repeating-linear-gradient(135deg,#EDE2DA 0 11px,#F3EAE4 11px 22px);border:1px solid var(--line-soft)}
.gal-fig .ph span{font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:var(--muted-2)}
.gal-cap{margin-top:10px;display:flex;justify-content:space-between;gap:10px;font-size:10.5px;
  letter-spacing:.14em;text-transform:uppercase;color:var(--muted-2)}
.gal-cap .nn{color:var(--faint)}

/* Paquetes --------------------------------------------------------------- */
.paquetes{background:var(--rose);border-top:1px solid var(--line-soft);border-bottom:1px solid var(--line-soft)}
.pk-head{display:flex;flex-wrap:wrap;gap:20px;align-items:flex-end;justify-content:space-between;margin-bottom:clamp(24px,3.5vw,40px)}
.pk-head h2{margin:0;font-size:clamp(30px,4.6vw,48px);line-height:1;letter-spacing:-.02em;color:var(--ink)}
.pk-head .note{flex:0 1 380px;margin:0;font-size:14.5px;line-height:1.8;color:var(--muted)}
.pk-head .note a{color:var(--accent);border-bottom:1px solid rgba(168,126,79,.45)}
.pk-list{display:flex;flex-direction:column;border-top:1px solid var(--line)}
.pk-row{border-bottom:1px solid var(--line);padding:clamp(18px,2.6vw,28px) 0;display:grid;
  grid-template-columns:repeat(auto-fit,minmax(min(100%,240px),1fr));gap:clamp(14px,2.4vw,32px);
  align-items:start;transition:background .4s ease,padding-left .4s ease}
.pk-row:hover{background:#F6E7E0;padding-left:14px}
.pk-name-wrap{display:flex;gap:14px;align-items:flex-start}
.pk-nn{font-size:11px;letter-spacing:.14em;color:var(--faint);padding-top:8px}
.pk-row h3{margin:0 0 8px;font-size:clamp(23px,2.8vw,30px);line-height:1.1;letter-spacing:-.01em;color:var(--ink)}
.pk-desc{margin:0;max-width:320px;font-size:13.5px;line-height:1.7;color:var(--muted)}
.pk-items{margin:0;padding:0;list-style:none;display:flex;flex-wrap:wrap;gap:7px;align-content:flex-start}
.pk-items li{font-size:11.5px;letter-spacing:.03em;color:#6B5749;border:1px solid rgba(156,132,120,.4);padding:7px 11px}
.pk-price-wrap{display:flex;flex-wrap:wrap;gap:14px;align-items:baseline;justify-content:flex-end}
.pk-price{font-weight:500;font-size:clamp(26px,3.4vw,34px);letter-spacing:-.02em;color:var(--accent)}
.pk-link{font-size:10.5px;letter-spacing:.2em;text-transform:uppercase;color:var(--ink);
  border-bottom:1px solid rgba(74,58,47,.5);padding-bottom:3px}
.pk-link:hover{color:var(--accent);border-color:var(--accent)}

/* CTA final -------------------------------------------------------------- */
.cta{background:var(--rose-3)}
.cta-grid{max-width:var(--wrap);margin:0 auto;display:grid;
  grid-template-columns:repeat(auto-fit,minmax(min(100%,300px),1fr));gap:clamp(24px,4vw,56px);align-items:end}
.cta h2{margin:0;font-size:clamp(32px,5.6vw,62px);line-height:.98;letter-spacing:-.025em;color:var(--ink)}
.cta .eyebrow{color:#8A7064}
.cta-col{display:flex;flex-direction:column;gap:18px;align-items:flex-start}
.cta-col p{margin:0;max-width:420px;font-size:15.5px;line-height:1.8;color:#6B5749}
.cta-btns{display:flex;flex-wrap:wrap;gap:10px}

/* Pie -------------------------------------------------------------------- */
.site-footer{padding:clamp(34px,5vw,58px) clamp(16px,4vw,44px) 28px;border-top:1px solid rgba(156,132,120,.25)}
.footer-inner{max-width:var(--wrap);margin:0 auto;display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,200px),1fr));gap:28px}
.footer-brand{margin:0 0 10px;font-size:20px;font-weight:500;letter-spacing:.16em;text-transform:uppercase;color:var(--ink)}
.footer-dir{margin:0;max-width:260px;font-size:13px;line-height:1.8;color:var(--muted-2)}
.footer-col{display:flex;flex-direction:column;gap:9px}
.footer-h{margin:0 0 4px;font-size:10px;letter-spacing:.26em;text-transform:uppercase;color:var(--muted-2)}
.footer-col a{font-size:13.5px;color:var(--ink-2)}
.footer-copy{max-width:var(--wrap);margin:clamp(26px,4vw,42px) auto 0;padding-top:18px;
  border-top:1px solid rgba(156,132,120,.2);font-size:10.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--muted-3)}
.site-footer.slim{padding:34px clamp(18px,5vw,48px)}
.footer-slim-inner{max-width:1180px;margin:0 auto;display:flex;flex-wrap:wrap;gap:18px;justify-content:space-between;align-items:center}
.footer-copy-slim{margin:0;font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--muted-3)}
.footer-slim-links{display:flex;gap:22px;flex-wrap:wrap}
.footer-slim-links a{font-size:13px;color:var(--muted-2)}

/* ======================================================================== */
/* RESERVA                                                                  */
/* ======================================================================== */
.page-pad{padding:clamp(38px,6vw,72px) clamp(18px,5vw,48px) clamp(60px,9vw,110px)}
.res-wrap{max-width:1180px;margin:0 auto}
.res-intro{text-align:center;max-width:620px;margin:0 auto clamp(34px,5vw,58px)}
.res-intro .eyebrow{letter-spacing:.3em}
.res-intro h1{margin:0 0 16px;font-size:clamp(36px,6.6vw,60px);line-height:1.05;color:var(--ink)}
.res-intro p{margin:0;font-size:15.5px;line-height:1.8;color:var(--muted)}
.res-layout{display:flex;flex-wrap:wrap;gap:clamp(20px,3.5vw,44px);align-items:flex-start}
.res-left{flex:1.15 1 340px;min-width:min(100%,300px);display:flex;flex-direction:column;gap:clamp(20px,3vw,32px)}
.card-rose{background:var(--rose);border:1px solid rgba(156,132,120,.28);padding:clamp(20px,3vw,30px)}
.cal-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:22px}
.cal-nav{width:44px;height:44px;border:1px solid rgba(156,132,120,.45);background:transparent;color:var(--muted);
  cursor:pointer;font-size:15px;transition:border-color .3s ease,color .3s ease}
.cal-nav:hover:not(:disabled){border-color:var(--ink);color:var(--ink)}
.cal-nav:disabled{opacity:.4;cursor:not-allowed}
.cal-month{margin:0;font-size:clamp(22px,3vw,28px);letter-spacing:.02em;color:var(--ink);text-transform:capitalize}
.cal-dows{display:grid;grid-template-columns:repeat(7,1fr);gap:4px;margin-bottom:8px}
.cal-dows div{text-align:center;font-size:9.5px;letter-spacing:.16em;text-transform:uppercase;color:var(--muted-3);padding:6px 0}
.cal-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:4px}
.cal-cell{aspect-ratio:1/1;min-height:42px}
.cal-cell .empty{width:100%;height:100%}
.cal-cell .off{width:100%;height:100%;display:flex;align-items:center;justify-content:center;font-size:14px;color:#CFC3B8}
.cal-cell button{width:100%;height:100%;font-size:14px;cursor:pointer;transition:background .3s ease,border-color .3s ease}
.cal-cell .free{border:1px solid rgba(156,132,120,.35);background:var(--bg);color:var(--ink)}
.cal-cell .free:hover{background:var(--rose-2);border-color:var(--muted-2)}
.cal-cell .sel{border:1px solid var(--ink);background:var(--ink);color:var(--bg)}
.cal-hint{margin:18px 0 0;font-size:11.5px;line-height:1.7;color:var(--muted-2)}
.blk-title{margin:0 0 18px;font-size:10.5px;letter-spacing:.28em;text-transform:uppercase;color:var(--muted-2)}
.blk-empty{margin:0;font-style:italic;font-size:19px;color:var(--muted-3)}
.blk-list{display:flex;flex-wrap:wrap;gap:10px}
.blk{padding:15px 24px;font-size:14px;letter-spacing:.08em;cursor:pointer;transition:background .3s ease,border-color .3s ease}
.blk.free{border:1px solid rgba(156,132,120,.45);background:transparent;color:var(--ink)}
.blk.free:hover{background:var(--rose-2);border-color:var(--muted-2)}
.blk.sel{border:1px solid var(--ink);background:var(--ink);color:var(--bg)}
.blk.taken{display:inline-block;padding:15px 24px;border:1px dashed rgba(156,132,120,.45);color:#C4B7AC;text-decoration:line-through}
.res-form{flex:1 1 320px;min-width:min(100%,300px);position:sticky;top:88px;background:var(--rose-2);
  border:1px solid var(--line);padding:clamp(22px,3.2vw,34px);display:flex;flex-direction:column;gap:18px}
.res-form .lbl{display:flex;flex-direction:column;gap:7px}
.res-form .lbl span{font-size:10.5px;letter-spacing:.18em;text-transform:uppercase;color:#8A7064}
.res-form input,.res-form select,.res-form textarea{padding:14px;border:1px solid rgba(156,132,120,.5);
  background:var(--rose);color:var(--ink);font-size:15px;transition:border-color .3s ease}
.res-form textarea{resize:vertical;line-height:1.6}
.res-pick{border-top:1px solid rgba(156,132,120,.45);border-bottom:1px solid rgba(156,132,120,.45);
  padding:14px 0;display:flex;justify-content:space-between;gap:12px;align-items:baseline}
.res-pick .k{font-size:10.5px;letter-spacing:.18em;text-transform:uppercase;color:#8A7064}
.res-pick .v{font-size:20px;color:var(--ink);text-align:right}
.tel-wrap{display:flex;align-items:stretch;border:1px solid rgba(156,132,120,.5);background:var(--rose)}
.tel-wrap .pre{display:flex;align-items:center;padding:0 12px;font-size:15px;color:#8A7064;border-right:1px solid rgba(156,132,120,.4)}
.tel-wrap input{flex:1;min-width:0;border:none;background:transparent;letter-spacing:.08em}
.res-err{margin:0;font-size:13px;color:var(--danger);line-height:1.6}
.res-note{margin:0;font-size:11.5px;line-height:1.7;color:#8A7064}

/* Account Section in Booking */
.res-account-section{margin:8px 0 4px;padding-top:12px;border-top:1px dashed rgba(156,132,120,.25)}
.res-account-toggle{
  display:flex;align-items:center;gap:10px;width:100%;
  padding:12px 14px;background:linear-gradient(135deg,var(--rose),var(--rose-2));
  border:1px solid rgba(156,132,120,.2);border-radius:10px;
  font-family:var(--serif);font-size:13px;color:var(--ink-2);
  cursor:pointer;transition:all .2s
}
.res-account-toggle:hover{background:var(--rose-2);border-color:rgba(156,132,120,.35)}
.res-account-toggle i:first-child{color:var(--accent);font-size:14px}
.res-account-toggle span{flex:1;text-align:left}
.res-account-toggle .toggle-arrow{font-size:10px;color:var(--muted);transition:transform .2s}
.res-account-toggle.open .toggle-arrow{transform:rotate(180deg)}
.res-account-fields{
  margin-top:12px;padding:14px;
  background:rgba(255,255,255,.5);border:1px solid rgba(156,132,120,.12);
  border-radius:10px
}
.res-account-fields .account-hint{
  display:flex;align-items:flex-start;gap:8px;
  margin:0 0 14px;padding:10px 12px;
  background:linear-gradient(135deg,rgba(200,160,140,.08),rgba(200,160,140,.04));
  border-radius:8px;font-size:12px;line-height:1.5;color:var(--muted)
}
.res-account-fields .account-hint i{color:var(--accent);margin-top:2px}
.res-account-fields .lbl{margin-bottom:10px}
.res-account-fields .lbl:last-child{margin-bottom:0}

/* Account status (clienta existente) */
.res-account-status{
  display:flex;align-items:center;gap:10px;
  padding:14px 16px;background:linear-gradient(135deg,rgba(39,174,96,.08),rgba(39,174,96,.04));
  border:1px solid rgba(39,174,96,.2);border-radius:10px;
  font-size:14px;color:#1E8449
}
.res-account-status i{font-size:18px;color:#27AE60}

/* Email hint */
.lbl-hint{
  display:block;margin-top:6px;font-size:12px;line-height:1.5
}
.lbl-hint i{margin-right:4px}

/* Cupón Section */
.res-cupon-section{margin:16px 0 4px;padding-top:14px;border-top:1px dashed rgba(156,132,120,.25)}
.res-cupon-toggle{
  display:flex;align-items:center;gap:10px;width:100%;
  padding:12px 14px;background:linear-gradient(135deg,#FFF9F5,#FFF3EC);
  border:1px solid rgba(168,126,79,.2);border-radius:10px;
  font-family:var(--serif);font-size:13px;color:var(--ink-2);
  cursor:pointer;transition:all .2s
}
.res-cupon-toggle:hover{background:#FFF3EC;border-color:rgba(168,126,79,.35)}
.res-cupon-toggle i:first-child{color:var(--accent);font-size:14px}
.res-cupon-toggle span{flex:1;text-align:left}
.res-cupon-toggle .toggle-arrow{font-size:10px;color:var(--muted);transition:transform .2s}
.res-cupon-toggle.open .toggle-arrow{transform:rotate(180deg)}
.res-cupon-fields{margin-top:12px}
.cupon-input-wrap{
  display:flex;gap:8px
}
.cupon-input-wrap input{
  flex:1;padding:12px 14px;
  font-family:var(--serif);font-size:14px;letter-spacing:.1em;
  text-transform:uppercase;
  background:var(--bg);border:1px solid rgba(156,132,120,.35);color:var(--ink)
}
.cupon-input-wrap input:focus{border-color:var(--accent);outline:none}
.cupon-input-wrap input::placeholder{text-transform:none;letter-spacing:0}
.btn-validar-cupon{
  padding:12px 18px;background:var(--ink);color:var(--bg);
  border:none;font-family:var(--serif);font-size:11px;
  letter-spacing:.15em;text-transform:uppercase;cursor:pointer;
  transition:background .2s
}
.btn-validar-cupon:hover:not(:disabled){background:var(--accent)}
.btn-validar-cupon:disabled{opacity:.6;cursor:not-allowed}
.cupon-status{
  margin-top:8px;font-size:13px;line-height:1.5
}
.cupon-status.success{color:#27AE60}
.cupon-status.success i{margin-right:5px}
.cupon-status.error{color:var(--danger)}
.cupon-status.error i{margin-right:5px}

.confirm{max-width:620px;margin:0 auto;background:var(--rose);border:1px solid var(--line);
  padding:clamp(30px,5vw,54px);text-align:center;animation:kn-rise .6s ease both}
@keyframes kn-rise{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}
.confirm .check{width:54px;height:54px;border-radius:50%;border:1px solid var(--accent);margin:0 auto 24px;
  display:flex;align-items:center;justify-content:center;font-size:26px;color:var(--accent)}
.confirm h2{margin:0 0 14px;font-size:clamp(28px,4.5vw,42px);color:var(--ink)}
.confirm .lead{margin:0 0 26px;font-size:15px;line-height:1.8;color:var(--muted)}
.confirm-rows{border-top:1px solid rgba(156,132,120,.3);border-bottom:1px solid rgba(156,132,120,.3);
  padding:20px 0;margin-bottom:26px;display:flex;flex-direction:column;gap:10px;text-align:left}
.confirm-row{display:flex;justify-content:space-between;gap:16px;font-size:13.5px}
.confirm-row .k{letter-spacing:.16em;text-transform:uppercase;font-size:10.5px;color:var(--muted-2);padding-top:3px}
.confirm-row .v{color:var(--ink);text-align:right}
.confirm-actions{display:flex;flex-wrap:wrap;gap:12px;justify-content:center}

/* ======================================================================== */
/* CALCULADORA                                                              */
/* ======================================================================== */
.calc-pad{padding:clamp(30px,5vw,60px) clamp(16px,4vw,44px) clamp(56px,8vw,100px)}
.calc-wrap{max-width:1280px;margin:0 auto}
.calc-hero{display:flex;flex-wrap:wrap;gap:24px;align-items:flex-end;justify-content:space-between;
  padding-bottom:clamp(22px,3vw,34px);margin-bottom:clamp(26px,4vw,46px);border-bottom:1px solid var(--line)}
.calc-hero h1{margin:0;font-size:clamp(40px,8vw,86px);line-height:.94;letter-spacing:-.01em;color:var(--ink)}
.calc-hero h1 em{font-weight:400;color:var(--accent)}
.calc-hero .intro{flex:0 1 320px;margin:0;font-size:14.5px;line-height:1.85;color:var(--muted)}
.calc-hero .eyebrow{letter-spacing:.3em}
.calc-cols{display:flex;flex-wrap:wrap;gap:clamp(18px,2.6vw,38px);align-items:flex-start}
.calc-main{flex:1.55 1 400px;min-width:min(100%,320px);display:flex;flex-direction:column;gap:clamp(26px,3.5vw,46px)}
.calc-step-head{display:flex;align-items:flex-start;gap:16px;margin-bottom:20px}
.calc-step-head .num{font-size:clamp(38px,5vw,54px);line-height:.78;color:var(--rose-3)}
.calc-step-head h2{margin:0 0 8px;font-size:clamp(23px,3vw,31px);line-height:1;color:var(--ink)}
.calc-step-head .sub{margin:0;font-size:10px;letter-spacing:.24em;text-transform:uppercase;color:var(--muted-2);line-height:1.6}

/* Retiro options */
.retiro-grid{display:flex;flex-direction:column;gap:10px}
.retiro-opt{width:100%;text-align:left;padding:16px 20px;cursor:pointer;display:flex;align-items:center;gap:14px;
  background:var(--rose);border:1px solid rgba(156,132,120,.3);border-radius:12px;
  transition:all .25s ease;position:relative}
.retiro-opt:hover{border-color:var(--muted-2);background:#F6E7E0;transform:translateX(4px)}
.retiro-opt.on{border-color:var(--accent);background:#fff;box-shadow:0 4px 16px rgba(168,126,79,.12)}
.retiro-opt.solo{border-left:3px solid var(--accent)}
.retiro-opt.solo.on{background:linear-gradient(135deg,#fff 0%,var(--rose) 100%)}
.retiro-radio{width:20px;height:20px;border:2px solid var(--muted-2);border-radius:50%;flex-shrink:0;
  display:flex;align-items:center;justify-content:center;transition:all .2s ease}
.retiro-opt.on .retiro-radio{border-color:var(--accent);background:var(--accent)}
.retiro-opt.on .retiro-radio::after{content:'';width:8px;height:8px;background:#fff;border-radius:50%}
.retiro-info{flex:1;display:flex;flex-direction:column;gap:2px}
.retiro-name{font-size:15px;font-weight:500;color:var(--ink)}
.retiro-desc{font-size:12px;color:var(--muted-2)}
.retiro-price{font-size:16px;font-weight:600;color:var(--accent);white-space:nowrap}
.retiro-price.free{font-size:12px;font-weight:400;color:var(--green);text-transform:uppercase;letter-spacing:.1em}
.retiro-cost{position:absolute;bottom:6px;right:16px;font-size:10px;color:var(--muted-2)}

.tec-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,212px),1fr));gap:12px}
.tec{width:100%;height:100%;text-align:left;padding:20px;cursor:pointer;display:flex;flex-direction:column;gap:12px;
  min-height:140px;position:relative;background:var(--rose);border:1px solid rgba(156,132,120,.3);
  transition:border-color .3s ease,background .3s ease,transform .3s ease}
.tec:hover{border-color:var(--muted-2);background:#F6E7E0;transform:translateY(-3px)}
.tec .radio{position:absolute;top:16px;right:16px;width:15px;height:15px;border-radius:50%;border:1px solid rgba(156,132,120,.5)}
.tec .name{font-size:20px;line-height:1.15;color:var(--ink);padding-right:24px}
.tec .price{margin-top:auto;font-size:32px;line-height:1;color:var(--accent)}
.tec .cost{font-size:10.5px;letter-spacing:.1em;color:var(--muted-2)}
.tec.on{background:var(--ink);border-color:var(--ink);transform:none}
.tec.on .radio{border-color:var(--rose-3);background:var(--rose-3)}
.tec.on .name{color:var(--bg)}
.tec.on .price{color:var(--rose-3)}
.tec.on .cost{color:rgba(243,221,211,.6)}
.modo-switch{display:inline-flex;flex-wrap:wrap;border:1px solid rgba(156,132,120,.4);background:var(--rose);margin-bottom:20px}
.modo-switch button{padding:14px 20px;font-size:10px;letter-spacing:.16em;text-transform:uppercase;
  background:transparent;border:none;color:var(--muted-2);cursor:pointer;transition:color .3s ease}
.modo-switch button:hover{color:var(--ink)}
.modo-switch button.on{background:var(--ink);color:var(--bg)}
.calc-counter{margin:-6px 0 18px;font-size:10.5px;letter-spacing:.2em;text-transform:uppercase;color:var(--muted-2)}
.calc-counter.full{color:var(--accent)}
.deco-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,248px),1fr));gap:10px}
.deco{background:var(--rose);border:1px solid rgba(156,132,120,.26);transition:border-color .3s ease}
.deco:hover{border-color:var(--muted-2)}
.deco.on{background:var(--rose-2);border-color:var(--muted-2)}
.deco.disabled{opacity:.5;pointer-events:none}
.deco.disabled .deco-btn{cursor:not-allowed}
.deco-btn{width:100%;text-align:left;padding:14px 16px;background:transparent;border:none;cursor:pointer;
  display:flex;align-items:center;gap:13px;min-height:66px}
.deco-btn:disabled{cursor:not-allowed}
.deco-code{flex:none;width:36px;height:36px;border-radius:50%;border:1px solid rgba(156,132,120,.45);
  display:flex;align-items:center;justify-content:center;font-size:14px;letter-spacing:.03em;color:var(--muted-2)}
.deco.on .deco-code{background:var(--ink);border:none;color:var(--bg)}
.deco-info{flex:1;display:flex;flex-direction:column;gap:4px;min-width:0}
.deco-info .n{font-size:14.5px;color:var(--ink);line-height:1.3}
.deco-info .l{font-size:10.5px;color:var(--muted-2);letter-spacing:.02em}
.deco.on .deco-info .l{color:var(--muted)}
.deco-mark{flex:none;width:20px;height:20px;border-radius:50%;border:1px solid rgba(156,132,120,.55)}
.deco.on .deco-mark{background:var(--ink);border:none;display:flex;align-items:center;justify-content:center;color:var(--bg);font-size:11px}
.deco-qty{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 16px;border-top:1px solid rgba(156,132,120,.28)}
.deco.on .deco-qty{border-top-color:rgba(156,132,120,.45)}
.deco-qty .lab{font-size:10px;letter-spacing:.18em;text-transform:uppercase;color:var(--muted-2)}
.deco.on .deco-qty .lab{color:#8A7064}
.qty-ctrl{display:flex;align-items:center;gap:7px}
.qty-ctrl button{width:36px;height:36px;border:1px solid rgba(156,132,120,.4);background:var(--bg);color:var(--muted);cursor:pointer;font-size:16px;line-height:1}
.deco.on .qty-ctrl button{border-color:rgba(74,58,47,.35);background:var(--rose);color:var(--ink)}
.qty-ctrl input{width:54px;padding:9px 4px;text-align:center;border:1px solid rgba(156,132,120,.4);background:var(--bg);color:var(--ink);font-size:15px}
.deco.on .qty-ctrl input{border-color:rgba(74,58,47,.35);background:var(--rose)}
.edit-link{display:inline-block;margin-top:16px;font-size:10.5px;letter-spacing:.16em;text-transform:uppercase;
  color:var(--accent);border-bottom:1px solid rgba(168,126,79,.45);padding-bottom:3px}
.calc-side{flex:1 1 320px;min-width:min(100%,320px);position:sticky;top:84px;display:flex;flex-direction:column;gap:16px}
.quote{background:linear-gradient(165deg,#FFFCF9 0%,#FAF4EF 100%);border:1px solid rgba(168,140,110,.2);
  padding:clamp(24px,3vw,32px);box-shadow:0 4px 24px rgba(120,90,60,.06),0 1px 3px rgba(120,90,60,.04)}
.quote-head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:24px;
  padding-bottom:16px;border-bottom:1px solid rgba(168,140,110,.15)}
.quote-head p{margin:0;font-size:11px;letter-spacing:.28em;text-transform:uppercase;color:var(--accent);font-weight:500}
.quote-folio{font-size:10px;letter-spacing:.12em;color:var(--muted-3);font-family:var(--mono,monospace)}
.quote-empty{margin:0 0 24px;font-style:italic;font-size:17px;line-height:1.6;color:var(--muted-3);text-align:center;
  padding:20px 0;opacity:.85}
.quote-detalle{display:flex;flex-direction:column;gap:12px;padding-bottom:20px;margin-bottom:20px;
  border-bottom:1px solid rgba(168,140,110,.18)}
.quote-line{display:flex;justify-content:space-between;gap:14px;align-items:baseline}
.quote-line .n{font-size:14px;color:var(--ink);min-width:0;line-height:1.5}
.quote-line .m{font-size:13px;white-space:nowrap;color:var(--accent);font-weight:500}
.quote-total{display:flex;flex-direction:column;gap:8px;padding:20px 0;text-align:center;
  background:linear-gradient(180deg,transparent 0%,rgba(168,140,110,.06) 100%);margin:0 -24px;padding-left:24px;padding-right:24px}
.quote-total .lab{font-size:10px;letter-spacing:.22em;text-transform:uppercase;color:var(--muted-2)}
.quote-total .val{font-family:var(--serif);font-size:clamp(38px,6vw,52px);line-height:1;color:var(--accent);font-weight:400}
.quote-int{display:flex;justify-content:space-between;gap:12px;align-items:baseline;padding:10px 0;border-bottom:1px solid var(--line-soft)}
.quote-int .lab{font-size:9.5px;letter-spacing:.2em;text-transform:uppercase;color:var(--muted-2)}
.quote-int .val{font-size:22px;color:var(--muted)}
.quote-gan .val{font-size:26px;color:var(--green)}
.quote-costos-extra{flex-direction:column;gap:6px;padding:12px 0;background:var(--rose);margin:0 -24px;padding-left:24px;padding-right:24px}
.quote-costos-extra .costo-row{display:flex;justify-content:space-between;align-items:center;font-size:12px;color:var(--muted)}
.quote-costos-extra .costo-row span:last-child{font-weight:500;color:var(--ink)}
.quote-ref{margin:16px 0 0;font-size:12px;line-height:1.7;color:var(--muted-3);text-align:center;font-style:italic}
.roi{background:var(--bg);border:1px solid rgba(156,132,120,.32);padding:clamp(20px,2.6vw,28px)}
.roi h3{margin:0 0 6px;font-size:10.5px;letter-spacing:.3em;text-transform:uppercase;color:var(--ink);font-weight:400}
.roi .sub{margin:0 0 22px;font-size:9.5px;letter-spacing:.2em;text-transform:uppercase;color:var(--muted-2)}
.roi-margen{display:flex;justify-content:space-between;align-items:baseline;gap:12px;margin-bottom:10px}
.roi-margen .lab{font-size:9.5px;letter-spacing:.2em;text-transform:uppercase;color:var(--muted-2)}
.roi-margen .val{font-size:30px;line-height:1;color:var(--green)}
.roi-bar{height:5px;background:rgba(156,132,120,.25);margin-bottom:18px}
.roi-bar i{display:block;height:100%;background:var(--green);transition:width .5s cubic-bezier(.2,.7,.3,1)}
.roi-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,120px),1fr));gap:10px}
.roi-card{padding:16px;border:1px solid rgba(156,132,120,.28)}
.roi-card.win{background:#F2EAE2}
.roi-card.inv{background:var(--rose-2)}
.roi-card p:first-child{margin:0 0 8px;font-size:9px;letter-spacing:.2em;text-transform:uppercase;color:var(--muted-2)}
.roi-card p:last-child{margin:0;font-size:24px;line-height:1}
.roi-card.win p:last-child{color:var(--green)}
.roi-card.inv p:last-child{color:var(--ink)}

/* ROI Tiempo y Tarifa por hora */
.roi-tiempo{display:flex;flex-direction:column;gap:10px;margin-bottom:20px;padding:16px;
  background:linear-gradient(135deg,rgba(111,143,106,.08) 0%,rgba(111,143,106,.04) 100%);
  border:1px solid rgba(111,143,106,.2);border-radius:4px}
.roi-tiempo-row{display:flex;justify-content:space-between;align-items:center;gap:12px}
.roi-tiempo-row .lab{display:flex;align-items:center;gap:8px;font-size:10px;letter-spacing:.15em;
  text-transform:uppercase;color:var(--muted)}
.roi-tiempo-row .lab i{font-size:12px;color:var(--muted-2)}
.roi-tiempo-row .val{font-size:15px;font-weight:500;color:var(--ink)}
.roi-tiempo-row.highlight .val{font-size:22px;color:var(--green);font-weight:400}

/* ROI Objetivo comparativo */
.roi-objetivo{margin-top:18px;padding:16px;background:var(--rose);border:1px solid var(--line-soft);border-radius:4px}
.roi-obj-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px}
.roi-obj-header span:first-child{font-size:9px;letter-spacing:.2em;text-transform:uppercase;color:var(--muted-2)}
.roi-obj-diff{font-size:14px;font-weight:500;padding:4px 10px;border-radius:20px}
.roi-obj-diff.positive{background:rgba(111,143,106,.15);color:var(--green)}
.roi-obj-diff.negative{background:rgba(168,86,74,.12);color:var(--danger)}
.roi-obj-bar{display:flex;flex-direction:column;gap:8px}
.roi-obj-track{position:relative;height:8px;background:rgba(156,132,120,.18);border-radius:4px;overflow:visible}
.roi-obj-fill{height:100%;background:linear-gradient(90deg,var(--green) 0%,#8FAF8A 100%);border-radius:4px;
  transition:width .5s cubic-bezier(.2,.7,.3,1)}
.roi-obj-marker{position:absolute;top:50%;width:3px;height:16px;background:var(--ink);border-radius:1px;
  transform:translateY(-50%);transition:left .5s ease}
.roi-obj-labels{display:flex;justify-content:space-between;font-size:9px;letter-spacing:.1em;color:var(--muted-2)}

.calc-actions{display:flex;flex-direction:column;gap:12px;margin-top:8px}
.calc-actions .row{display:flex;gap:10px;flex-wrap:wrap}
.btn-ghost{flex:1 1 130px;padding:14px 12px;border:1px solid rgba(156,132,120,.4);background:transparent;color:var(--muted-2);
  font-family:var(--serif);font-size:10px;letter-spacing:.14em;text-transform:uppercase;cursor:pointer;text-align:center;
  transition:all .3s ease}
.btn-ghost:hover{border-color:var(--accent);color:var(--accent);background:rgba(168,126,79,.04)}
.btn-copy{width:100%;padding:20px 24px;border:none;position:relative;overflow:hidden;text-align:center;
  background:linear-gradient(135deg,#B8956F 0%,#9A7A4A 50%,#C9A96E 100%);background-size:200% 200%;
  color:#FFF;font-family:var(--serif);font-size:11px;letter-spacing:.2em;text-transform:uppercase;cursor:pointer;
  transition:all .4s ease;box-shadow:0 4px 15px rgba(168,126,79,.3),inset 0 1px 0 rgba(255,255,255,.15)}
.btn-copy::before{content:'';position:absolute;top:0;left:-100%;width:100%;height:100%;
  background:linear-gradient(90deg,transparent,rgba(255,255,255,.2),transparent);transition:left .5s ease}
.btn-copy:hover{background-position:100% 0;transform:translateY(-2px);
  box-shadow:0 6px 20px rgba(168,126,79,.4),inset 0 1px 0 rgba(255,255,255,.2)}
.btn-copy:hover::before{left:100%}
.btn-copy:active{transform:translateY(0);box-shadow:0 2px 8px rgba(168,126,79,.3)}

/* ======================================================================== */
/* ADMIN                                                                    */
/* ======================================================================== */
.admin-login-wrap{flex:1;display:flex;align-items:center;justify-content:center;padding:clamp(24px,6vw,60px)}
.admin-login{width:100%;max-width:380px;background:var(--rose);border:1px solid rgba(156,132,120,.3);
  padding:clamp(28px,5vw,44px);display:flex;flex-direction:column;gap:18px;animation:kn-rise .6s ease both}
.admin-login .eyebrow{letter-spacing:.3em}
.admin-login h1{margin:0;font-weight:400;font-size:38px;line-height:1;color:var(--ink)}
.admin-login p{margin:0;font-size:14px;line-height:1.7;color:var(--muted)}
.admin-login input{padding:15px;border:1px solid rgba(156,132,120,.5);background:var(--bg);color:var(--ink);font-size:15px}
.admin-login .err{margin:0;font-size:13px;color:var(--danger)}
.admin-login .back{font-size:10px;letter-spacing:.16em;text-transform:uppercase;color:var(--muted-2);text-align:center}
.admin-header{position:sticky;top:0;z-index:60;background:rgba(74,58,47,.97);backdrop-filter:blur(12px)}
.admin-header .top{max-width:1280px;margin:0 auto;padding:12px clamp(16px,4vw,44px);display:flex;
  align-items:center;justify-content:space-between;gap:14px;flex-wrap:wrap}
.admin-brand{display:flex;align-items:baseline;gap:12px}
.admin-brand .b{font-size:24px;color:var(--bg);letter-spacing:.04em}
.admin-brand .p{font-size:9.5px;letter-spacing:.22em;text-transform:uppercase;color:var(--rose-3)}
.admin-top-actions{display:flex;align-items:center;gap:18px;flex-wrap:wrap}
.admin-top-actions a{font-size:10px;letter-spacing:.16em;text-transform:uppercase;color:#C9B5A8}
.admin-top-actions a:hover{color:var(--bg)}
.admin-logout{padding:11px 18px;border:1px solid rgba(243,221,211,.35);background:transparent;color:var(--bg);
  font-family:var(--serif);font-size:10px;letter-spacing:.16em;text-transform:uppercase;cursor:pointer;transition:background .3s ease}
.admin-logout:hover{background:rgba(243,221,211,.12)}
.admin-tabs{max-width:1280px;margin:0 auto;padding:0 clamp(16px,4vw,44px);display:flex;gap:2px;flex-wrap:wrap;border-top:1px solid rgba(243,221,211,.14)}
.admin-tab{padding:14px 18px;font-family:var(--serif);font-size:10px;letter-spacing:.18em;text-transform:uppercase;
  color:#C9B5A8;background:transparent;border:none;cursor:pointer;transition:color .3s ease}
.admin-tab:hover{color:var(--bg)}
.admin-tab.on{color:var(--ink);background:var(--bg)}
.sub-tab{padding:10px 18px;font-family:var(--serif);font-size:11px;letter-spacing:.12em;text-transform:uppercase;
  background:transparent;border:1px solid rgba(156,132,120,.4);color:var(--muted-2);cursor:pointer;transition:all .2s}
.sub-tab:hover{border-color:var(--ink);color:var(--ink)}
.sub-tab.on{background:var(--ink);border-color:var(--ink);color:var(--bg)}
.admin-main{flex:1;padding:clamp(26px,4vw,48px) clamp(16px,4vw,44px) clamp(50px,7vw,90px)}
.admin-inner{max-width:1280px;margin:0 auto}
.admin-panel{display:none}
.admin-panel.on{display:block;animation:kn-rise .4s ease both}
.admin-h2{margin:0 0 8px;font-size:clamp(28px,4.5vw,44px);line-height:1;color:var(--ink)}
.admin-sub{margin:0 0 28px;font-size:10px;letter-spacing:.2em;text-transform:uppercase;color:var(--muted-2)}
.admin-toolbar{display:flex;flex-wrap:wrap;gap:18px;align-items:flex-end;justify-content:space-between;margin-bottom:26px}
.seg{display:flex;gap:2px;border:1px solid rgba(156,132,120,.4)}
.seg button{padding:12px 16px;font-family:var(--serif);font-size:9.5px;letter-spacing:.16em;text-transform:uppercase;
  background:transparent;border:none;color:var(--muted-2);cursor:pointer}
.seg button.on{background:var(--ink);color:var(--bg)}
.res-empty{margin:0;padding:44px;text-align:center;background:var(--rose);border:1px dashed rgba(156,132,120,.45);
  font-style:italic;font-size:20px;color:var(--muted-3)}
.bk-list{display:flex;flex-direction:column;gap:10px}
.bk{background:var(--rose);border:1px solid rgba(156,132,120,.28);border-left:3px solid var(--muted-2);
  padding:clamp(16px,2.4vw,24px);display:flex;flex-wrap:wrap;gap:18px;align-items:flex-start}
.bk.pendiente{border-left-color:var(--accent)}
.bk.confirmada{border-left-color:var(--green)}
.bk.cancelada{border-left-color:var(--muted-3)}
.bk-date{flex:0 0 118px}
.bk-date .d{margin:0 0 5px;font-size:26px;line-height:1;color:var(--ink)}
.bk-date .m{margin:0 0 8px;font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:var(--muted-2)}
.bk-date .h{margin:0;font-size:12px;color:var(--accent)}
.bk-body{flex:1 1 220px;min-width:min(100%,200px)}
.bk-body .name{margin:0 0 6px;font-size:17px;color:var(--ink)}
.bk-body .svc{margin:0 0 6px;font-size:13.5px;color:var(--muted)}
.bk-body .cto{margin:0 0 6px;font-size:12px;color:var(--muted-2)}
.bk-body .notes{margin:8px 0 0;font-size:13px;line-height:1.6;color:var(--muted);border-left:1px solid rgba(156,132,120,.4);padding-left:10px}
.bk-actions{flex:0 0 auto;display:flex;flex-direction:column;gap:7px;min-width:150px}
.bk-estado{font-size:9.5px;letter-spacing:.18em;text-transform:uppercase}
.bk.pendiente .bk-estado{color:var(--accent)}
.bk.confirmada .bk-estado{color:var(--green)}
.bk.cancelada .bk-estado{color:var(--muted-3)}
.bk-btns{display:flex;gap:6px;flex-wrap:wrap}
.bk-btns button{padding:10px 12px;border:1px solid rgba(156,132,120,.45);background:transparent;color:var(--ink);
  font-family:var(--serif);font-size:9.5px;letter-spacing:.12em;text-transform:uppercase;cursor:pointer;transition:background .3s ease}
.bk-btns button:hover{background:var(--rose-2)}
.bk-btns .del{color:var(--danger)}
.admin-card{background:var(--rose);border:1px solid rgba(156,132,120,.3);padding:clamp(18px,2.6vw,26px)}
.admin-card + .admin-card{margin-top:16px}
.admin-card-h{margin:0 0 16px;font-size:10px;letter-spacing:.24em;text-transform:uppercase;color:var(--muted-2)}
.admin-flex{display:flex;flex-wrap:wrap;gap:clamp(14px,2.4vw,26px);align-items:flex-start}
.admin-col{flex:1 1 320px;min-width:min(100%,300px);display:flex;flex-direction:column;gap:14px}
.admin-col.wide{flex:1.4 1 380px}
.field{display:flex;flex-direction:column;gap:6px}
.field > span{font-size:9px;letter-spacing:.16em;text-transform:uppercase;color:var(--muted-2)}
.field input,.field textarea,.field select{padding:12px;border:1px solid rgba(156,132,120,.4);background:var(--bg);color:var(--ink);font-size:14px}
.field textarea{line-height:1.7;resize:vertical}
.row-line{display:flex;flex-wrap:wrap;gap:8px;align-items:center;padding:8px 0;border-bottom:1px solid rgba(156,132,120,.18)}
.row-line input[type=number]{color:var(--accent)}
.row-line input.cost{color:var(--muted)}
.inp-nombre{flex:2 1 150px;min-width:0;padding:10px 12px;border:1px solid rgba(156,132,120,.4);background:var(--bg);font-size:14px}
.inp-desc{flex:2 1 180px;min-width:0;padding:10px 12px;border:1px solid rgba(156,132,120,.4);background:var(--bg);font-size:13px;color:var(--muted)}
.inp-codigo{flex:0 0 50px;width:50px;text-align:center;padding:10px 6px;border:1px solid rgba(156,132,120,.4);background:var(--bg);color:var(--muted-2);font-size:14px}
.row-total{flex:0 0 70px;text-align:right;font-size:11px;color:var(--muted-3)}
.mini{flex:1 1 130px;min-width:0;display:flex;align-items:center;gap:8px}
.mini.chk{flex:0 0 auto;gap:6px;cursor:pointer}
.mini.chk input[type="checkbox"]{width:16px;height:16px;accent-color:var(--accent);cursor:pointer}
.mini.chk span{font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--muted-2)}
.admin-hint{margin:0 0 12px;font-size:11px;color:var(--muted-3);font-style:italic}
.mini span{font-size:9px;letter-spacing:.14em;text-transform:uppercase;color:var(--muted-2)}
.mini input{flex:1;width:100%;min-width:0;padding:11px 10px;border:1px solid rgba(156,132,120,.4);background:var(--bg);font-size:13px}
.x-btn{padding:11px 13px;border:1px solid rgba(156,132,120,.4);background:transparent;color:var(--danger);
  font-family:var(--serif);font-size:11px;cursor:pointer}
.add-btn{margin-top:16px;padding:13px 18px;border:1px dashed rgba(156,132,120,.6);background:transparent;color:var(--muted);
  font-family:var(--serif);font-size:9.5px;letter-spacing:.16em;text-transform:uppercase;cursor:pointer;transition:border-color .3s ease,color .3s ease}
.add-btn:hover{border-color:var(--ink);color:var(--ink)}
.dia-row{display:flex;flex-wrap:wrap;gap:12px;align-items:center;padding:11px 0;border-bottom:1px solid rgba(156,132,120,.2)}
.dia-toggle{flex:0 0 128px;text-align:left;padding:10px 12px;border:1px solid rgba(156,132,120,.45);background:transparent;
  color:var(--muted-2);font-size:13.5px;cursor:pointer;transition:background .3s ease}
.dia-toggle.on{border-color:var(--ink);background:var(--ink);color:var(--bg)}
.dia-row input{flex:1 1 180px;min-width:0;padding:11px 12px;border:1px solid rgba(156,132,120,.45);background:var(--bg);
  color:var(--ink);font-size:13px}
.dur-box{background:var(--rose-2);border:1px solid var(--line);padding:clamp(18px,2.6vw,26px)}
.dur-box input{width:88px;padding:12px;border:1px solid rgba(74,58,47,.35);background:var(--rose);color:var(--ink);font-size:26px;text-align:center}
.exc-add{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:14px}
.exc-add input{flex:1 1 150px;min-width:0;padding:12px;border:1px solid rgba(156,132,120,.45);background:var(--bg);color:var(--ink);font-size:13px}
.exc-list{display:flex;flex-wrap:wrap;gap:7px}
.exc-chip{padding:9px 12px;border:1px solid rgba(156,132,120,.45);background:#F6E7E0;color:var(--muted);font-family:var(--serif);font-size:11px;cursor:pointer;transition:color .3s ease}
.exc-chip:hover{color:var(--danger)}
.pk-edit{border:1px solid rgba(156,132,120,.28);padding:14px;display:flex;flex-direction:column;gap:10px;background:var(--bg)}
.pk-edit .top{display:flex;gap:8px}
.pk-edit .top input:first-child{flex:2 1 130px;min-width:0}
.pk-edit .top input[type=number]{flex:1 1 90px;min-width:0;color:var(--accent)}
.pk-edit input,.pk-edit textarea{padding:11px;border:1px solid rgba(156,132,120,.4);background:var(--rose);color:var(--ink);font-size:13.5px;line-height:1.6;resize:vertical}
.gal-row{display:flex;flex-wrap:wrap;gap:10px;align-items:center;padding-bottom:10px;border-bottom:1px solid rgba(156,132,120,.18)}
.gal-thumb{flex:0 0 44px;height:44px;background-size:cover;background-position:center;border:1px solid var(--line)}
.gal-row input[type=text]{flex:2 1 150px;min-width:0;padding:11px;border:1px solid rgba(156,132,120,.4);background:var(--bg);color:var(--ink);font-size:13.5px}
.gal-row input[type=file]{flex:1 1 140px;font-size:11.5px;color:var(--muted)}
.admin-footer{padding:22px clamp(16px,4vw,44px);border-top:1px solid rgba(156,132,120,.25)}
.admin-footer p{max-width:1280px;margin:0 auto;font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:var(--muted-3)}
.upload-row{display:flex;flex-wrap:wrap;gap:12px}
.upload-row .field{flex:1 1 150px}
.upload-row input[type=file]{font-size:12px;color:var(--muted)}
.toast{position:fixed;left:50%;bottom:24px;transform:translateX(-50%) translateY(20px);background:var(--ink);color:var(--bg);
  padding:13px 22px;font-size:11px;letter-spacing:.16em;text-transform:uppercase;opacity:0;pointer-events:none;
  transition:opacity .3s ease,transform .3s ease;z-index:100}
.toast.show{opacity:1;transform:translateX(-50%) translateY(0)}

/* ============================================================================
   KIT BUILDER - Comparador de Productos (TAMAÑO GRANDE)
   ============================================================================ */

/* Contenedor principal */
.kb{
  display:grid;
  grid-template-columns:1fr 340px;
  gap:28px;
  align-items:start;
}
.kb-main{display:flex;flex-direction:column;gap:20px}

/* Header grande */
.kb-top{
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:20px;
  padding-bottom:20px;
  border-bottom:2px solid var(--ink);
}
.kb-intro{display:flex;align-items:center;gap:16px}
.kb-intro::before{
  content:'COMPARADOR';
  font-size:11px;
  letter-spacing:0.15em;
  text-transform:uppercase;
  color:var(--accent);
  background:rgba(168,126,79,0.1);
  padding:8px 16px;
  border-radius:100px;
  font-weight:600;
}
.kb-intro h2{margin:0;font-size:28px;font-weight:600;color:var(--ink);letter-spacing:-0.02em}
.kb-intro p{display:none}

/* Contador grande */
.kb-sum{
  display:flex;
  align-items:center;
  gap:14px;
  background:var(--ink);
  padding:12px 14px 12px 22px;
  border-radius:100px;
  box-shadow:0 6px 24px rgba(74,58,47,0.2);
}
.kb-sum-count{font-size:14px;color:rgba(255,255,255,0.6);font-weight:500}
.kb-sum-total{font-size:24px;font-weight:700;color:#fff}
.kb-sum-clear{
  width:36px;height:36px;
  display:flex;align-items:center;justify-content:center;
  background:rgba(255,255,255,0.1);
  border:none;
  border-radius:50%;
  color:rgba(255,255,255,0.7);
  font-size:18px;
  cursor:pointer;
  transition:all 400ms cubic-bezier(0.32,0.72,0,1);
}
.kb-sum-clear:hover{background:rgba(255,255,255,0.2);color:#fff;transform:rotate(90deg)}

/* Wrapper para summary con sets */
.kb-sum-wrap{display:flex;align-items:center;gap:14px}
.kb-sum-sets{
  display:flex;
  align-items:center;
  gap:10px;
  background:linear-gradient(135deg,#5A8A55 0%,#4A7A45 100%);
  padding:10px 16px;
  border-radius:100px;
  box-shadow:0 4px 16px rgba(90,138,85,0.3);
}
.kb-sum-sets-label{
  font-size:13px;
  color:rgba(255,255,255,0.8);
  font-weight:500;
}
.kb-sum-sets-cost{
  font-size:18px;
  font-weight:700;
  color:#fff;
}

/* Grid de categorías GRANDE */
.kb-cats-grid{
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:12px;
  background:rgba(74,58,47,0.04);
  padding:14px;
  border-radius:24px;
  border:1px solid rgba(74,58,47,0.08);
}

/* Tarjeta de categoría GRANDE */
.kb-cat-card{
  background:#fff;
  border:2px solid transparent;
  padding:20px 16px;
  cursor:pointer;
  text-align:center;
  border-radius:18px;
  position:relative;
  transition:all 400ms cubic-bezier(0.32,0.72,0,1);
  box-shadow:0 2px 8px rgba(74,58,47,0.06);
}
.kb-cat-card:hover{
  transform:translateY(-4px);
  box-shadow:0 12px 32px rgba(74,58,47,0.1);
  border-color:rgba(168,126,79,0.3);
}
.kb-cat-card.has-sel{border-color:var(--accent);background:linear-gradient(135deg,#FFFDFB 0%,#FDF9F5 100%)}
.kb-cat-card.has-sel .kb-cat-num,
.kb-cat-card.has-sel .kb-cat-name{color:var(--ink)}
.kb-cat-card.active{
  background:var(--ink)!important;
  border-color:var(--ink)!important;
  box-shadow:0 12px 32px rgba(74,58,47,0.25);
  transform:translateY(-2px) scale(1.02);
}
.kb-cat-card.active .kb-cat-num,
.kb-cat-card.active .kb-cat-name,
.kb-cat-card.active .kb-cat-empty{color:#fff!important}
.kb-cat-card.active .kb-cat-count{color:rgba(255,255,255,0.8)!important}
.kb-cat-card.has-sel::after{
  content:'';
  position:absolute;
  top:10px;right:10px;
  width:12px;height:12px;
  background:var(--accent);
  border-radius:50%;
  box-shadow:0 2px 8px rgba(168,126,79,0.5);
}

.kb-cat-num{display:block;font-size:12px;font-weight:700;color:var(--muted-2);margin-bottom:8px;letter-spacing:0.1em}
.kb-cat-name{margin:0 0 10px;font-size:16px;font-weight:600;color:var(--ink);line-height:1.3}
.kb-cat-count{margin:0;font-size:14px;color:var(--accent);font-weight:600}
.kb-cat-total{display:none}
.kb-cat-empty{margin:0;font-size:13px;color:var(--muted-2)}

/* Panel de productos GRANDE */
.kb-products-panel{
  background:rgba(255,255,255,0.9);
  backdrop-filter:blur(20px);
  border:2px solid var(--accent);
  padding:8px;
  border-radius:28px;
  box-shadow:0 16px 48px rgba(74,58,47,0.12);
}
.kb-products-panel-inner{
  background:linear-gradient(180deg,#FDFBF9 0%,#FAF7F4 100%);
  border-radius:22px;
  padding:24px;
}

.kb-panel-header{
  display:flex;
  justify-content:space-between;
  align-items:center;
  margin-bottom:20px;
  padding-bottom:16px;
  border-bottom:1px solid rgba(74,58,47,0.1);
}
.kb-panel-title{display:flex;align-items:center;gap:14px}
.kb-panel-num{
  font-size:14px;
  font-weight:700;
  color:#fff;
  background:var(--accent);
  width:36px;height:36px;
  display:flex;align-items:center;justify-content:center;
  border-radius:10px;
  box-shadow:0 4px 12px rgba(168,126,79,0.35);
}
.kb-panel-title h3{margin:0;font-size:22px;font-weight:600;color:var(--ink)}
.kb-panel-sel{
  font-size:13px;
  color:var(--accent);
  font-weight:600;
  background:rgba(168,126,79,0.12);
  padding:6px 14px;
  border-radius:100px;
}
.kb-panel-close{
  width:42px;height:42px;
  border:none;
  background:rgba(74,58,47,0.06);
  color:var(--muted);
  font-size:22px;
  cursor:pointer;
  display:flex;align-items:center;justify-content:center;
  border-radius:12px;
  transition:all 400ms cubic-bezier(0.32,0.72,0,1);
}
.kb-panel-close:hover{background:var(--ink);color:#fff}

/* Grid de productos - 4 columnas GRANDES */
.kb-grid{
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:16px;
  max-height:420px;
  overflow-y:auto;
  padding-right:8px;
}
.kb-grid::-webkit-scrollbar{width:6px}
.kb-grid::-webkit-scrollbar-track{background:rgba(0,0,0,0.02);border-radius:6px}
.kb-grid::-webkit-scrollbar-thumb{background:rgba(168,126,79,0.25);border-radius:6px}
@media (max-width:1300px){.kb-grid{grid-template-columns:repeat(3,1fr)}}

/* Card de producto GRANDE */
.kb-item{
  background:#fff;
  border:2px solid rgba(74,58,47,0.1);
  padding:20px 18px;
  cursor:pointer;
  position:relative;
  display:flex;
  flex-direction:column;
  min-height:180px;
  border-radius:20px;
  transition:all 400ms cubic-bezier(0.32,0.72,0,1);
  box-shadow:0 4px 12px rgba(74,58,47,0.06);
}
.kb-item:hover{
  transform:translateY(-6px);
  box-shadow:0 16px 40px rgba(74,58,47,0.12);
  border-color:rgba(168,126,79,0.4);
}
.kb-item:active{transform:translateY(-3px) scale(0.98)}
.kb-item.selected{
  border-color:var(--accent);
  border-width:3px;
  background:linear-gradient(135deg,#FFFDFB 0%,#FDF8F4 100%);
  box-shadow:0 12px 32px rgba(168,126,79,0.2);
}
.kb-item.selected::after{
  content:'';
  position:absolute;
  top:0;left:0;right:0;
  height:4px;
  background:linear-gradient(90deg,var(--accent),#C4A574);
  border-radius:20px 20px 0 0;
}

.kb-item-head{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:12px}
.kb-item-store{
  font-size:11px;
  letter-spacing:0.08em;
  text-transform:uppercase;
  background:var(--ink);
  color:#fff;
  padding:6px 12px;
  font-weight:600;
  border-radius:8px;
  box-shadow:0 3px 10px rgba(74,58,47,0.2);
}
.kb-item-check{
  width:28px;height:28px;
  border:2px solid rgba(74,58,47,0.2);
  display:flex;align-items:center;justify-content:center;
  font-size:14px;
  color:var(--accent);
  background:#fff;
  flex-shrink:0;
  border-radius:8px;
  transition:all 400ms cubic-bezier(0.32,0.72,0,1);
}
.kb-item.selected .kb-item-check{
  background:var(--accent);
  border-color:var(--accent);
  color:#fff;
  transform:scale(1.15);
  box-shadow:0 4px 12px rgba(168,126,79,0.4);
}

.kb-item-name{margin:0 0 10px;font-size:16px;font-weight:600;color:var(--ink);line-height:1.35;flex:1;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.kb-item-meta{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:12px}
.kb-item-brand{font-size:12px;color:var(--accent);font-weight:600}
.kb-item-size{font-size:11px;color:var(--muted);background:rgba(74,58,47,0.06);padding:4px 10px;border-radius:6px}

.kb-item-foot{display:flex;justify-content:space-between;align-items:center;padding-top:12px;border-top:1px solid rgba(74,58,47,0.08);margin-top:auto}
.kb-item-prices{display:flex;align-items:baseline;gap:8px}
.kb-item-price{font-size:22px;font-weight:700;color:var(--ink);letter-spacing:-0.02em}
.kb-item-bulk{font-size:11px;color:#5A8A55;font-weight:600;background:rgba(90,138,85,0.12);padding:4px 8px;border-radius:6px}
.kb-item-link{
  font-size:11px;
  color:var(--accent);
  text-decoration:none;
  padding:8px 14px;
  border:2px solid rgba(168,126,79,0.4);
  border-radius:8px;
  transition:all 400ms cubic-bezier(0.32,0.72,0,1);
  font-weight:600;
}
.kb-item-link:hover{background:var(--accent);color:#fff;border-color:var(--accent)}

/* Info de sets en card de producto */
.kb-item-sets{
  display:flex;
  justify-content:space-between;
  align-items:center;
  padding:8px 10px;
  margin:8px -18px 8px -18px;
  background:linear-gradient(90deg,rgba(90,138,85,0.08) 0%,rgba(90,138,85,0.03) 100%);
  border-left:3px solid #5A8A55;
}
.kb-item-sets-count{
  font-size:12px;
  color:#5A8A55;
  font-weight:600;
}
.kb-item-sets-cost{
  font-size:14px;
  color:#5A8A55;
  font-weight:700;
}

/* Botones GRANDES */
.kb-panel-actions{
  margin-top:20px;
  padding-top:16px;
  border-top:1px solid rgba(74,58,47,0.08);
  display:flex;
  justify-content:flex-end;
  gap:14px;
}
.kb-continue,.kb-finish{
  display:inline-flex;
  align-items:center;
  gap:10px;
  padding:14px 20px 14px 26px;
  font-size:14px;
  letter-spacing:0.02em;
  font-weight:600;
  cursor:pointer;
  border:none;
  border-radius:100px;
  transition:all 400ms cubic-bezier(0.32,0.72,0,1);
}
.kb-continue{background:var(--ink);color:#fff;box-shadow:0 6px 20px rgba(74,58,47,0.25)}
.kb-continue:hover{transform:translateX(6px);box-shadow:0 8px 28px rgba(74,58,47,0.3)}
.kb-continue::after{
  content:'→';
  display:flex;align-items:center;justify-content:center;
  width:30px;height:30px;
  background:rgba(255,255,255,0.15);
  border-radius:50%;
  font-size:16px;
}
.kb-finish{background:var(--accent);color:#fff;box-shadow:0 6px 20px rgba(168,126,79,0.3)}
.kb-finish:hover{transform:scale(1.04);box-shadow:0 10px 32px rgba(168,126,79,0.35)}

/* Sidebar resumen GRANDE */
.kb-footer{
  background:rgba(74,58,47,0.04);
  padding:8px;
  border-radius:28px;
  position:sticky;
  top:80px;
  max-height:calc(100vh - 120px);
  overflow:hidden;
  border:1px solid rgba(74,58,47,0.08);
  display:flex;
  flex-direction:column;
}
.kb-footer-inner{
  background:var(--ink);
  border-radius:22px;
  padding:20px;
  display:flex;
  flex-direction:column;
  max-height:100%;
  overflow:hidden;
}
.kb-footer-items{
  display:flex;
  flex-direction:column;
  gap:12px;
  padding-bottom:16px;
  border-bottom:1px solid rgba(255,255,255,0.1);
  overflow-y:auto;
  flex:1;
  min-height:0;
  max-height:calc(100vh - 320px);
  padding-right:8px;
}
.kb-footer-items::-webkit-scrollbar{width:5px}
.kb-footer-items::-webkit-scrollbar-track{background:transparent}
.kb-footer-items::-webkit-scrollbar-thumb{background:rgba(255,255,255,0.15);border-radius:5px}
.kb-footer-items::-webkit-scrollbar-thumb:hover{background:rgba(255,255,255,0.25)}
.kb-fi{
  display:flex;
  flex-direction:column;
  gap:10px;
  padding:16px 18px;
  background:rgba(255,255,255,0.06);
  border-radius:16px;
  transition:all 400ms cubic-bezier(0.32,0.72,0,1);
}
.kb-fi:hover{background:rgba(255,255,255,0.1)}
.kb-fi-cat{
  color:rgba(255,255,255,0.4);
  font-size:11px;
  letter-spacing:0.1em;
  text-transform:uppercase;
  font-weight:500;
}
.kb-fi-name{
  color:#fff;
  font-size:17px;
  line-height:1.4;
  font-weight:500;
}
.kb-fi-row{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  margin-top:4px;
}
.kb-fi-store{
  color:var(--accent);
  font-size:12px;
  text-transform:uppercase;
  letter-spacing:0.05em;
  font-weight:600;
}
.kb-fi-price{
  color:#fff;
  font-weight:700;
  font-size:20px;
  letter-spacing:-0.01em;
}
.kb-fi-link{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  color:#fff;
  font-size:13px;
  text-decoration:none;
  padding:10px 18px;
  background:var(--accent);
  border-radius:10px;
  transition:all 400ms cubic-bezier(0.32,0.72,0,1);
  font-weight:600;
  white-space:nowrap;
}
.kb-fi-link:hover{
  transform:translateY(-2px);
  box-shadow:0 6px 16px rgba(168,126,79,0.5);
  background:#B8925F;
}

/* Sets info en sidebar item */
.kb-fi-sets{
  display:flex;
  justify-content:space-between;
  align-items:center;
  padding:8px 12px;
  margin:-4px 0 8px 0;
  background:rgba(90,138,85,0.15);
  border-radius:8px;
  font-size:11px;
  color:#7CB377;
}
.kb-fi-setcost{
  font-weight:700;
  color:#8FC98A;
}

/* Footer totales container */
.kb-footer-totals{
  margin-top:16px;
  flex-shrink:0;
  display:flex;
  flex-direction:column;
  gap:10px;
}

.kb-footer-total{
  display:flex;
  justify-content:space-between;
  align-items:center;
  padding:18px 20px;
  background:rgba(255,255,255,0.08);
  border-radius:16px;
}
.kb-footer-total span{
  color:rgba(255,255,255,0.5);
  font-size:12px;
  letter-spacing:0.06em;
  text-transform:uppercase;
  font-weight:600;
}
.kb-footer-total strong{
  color:#fff;
  font-size:28px;
  font-weight:700;
  letter-spacing:-0.02em;
}

/* Sets info en footer */
.kb-footer-sets{
  background:linear-gradient(135deg,rgba(90,138,85,0.2) 0%,rgba(90,138,85,0.1) 100%);
  border-radius:16px;
  padding:16px 20px;
  border:1px solid rgba(90,138,85,0.3);
}
.kb-footer-sets-row{
  display:flex;
  justify-content:space-between;
  align-items:center;
  padding:6px 0;
}
.kb-footer-sets-row:first-child{
  border-bottom:1px solid rgba(90,138,85,0.2);
  padding-bottom:10px;
  margin-bottom:6px;
}
.kb-footer-sets-row span{
  color:rgba(140,200,140,0.7);
  font-size:11px;
  letter-spacing:0.05em;
  text-transform:uppercase;
}
.kb-footer-sets-row strong{
  color:#8FC98A;
  font-size:20px;
  font-weight:700;
}

/* Botón terminar lista */
.kb-finish-list{
  width:100%;
  margin-top:16px;
  padding:16px 20px;
  background:linear-gradient(135deg,var(--accent) 0%,#C4A574 100%);
  color:#fff;
  border:none;
  border-radius:14px;
  font-size:15px;
  font-weight:600;
  cursor:pointer;
  transition:all 400ms cubic-bezier(0.32,0.72,0,1);
  box-shadow:0 6px 20px rgba(168,126,79,0.35);
  flex-shrink:0;
}
.kb-finish-list:hover{
  transform:translateY(-3px);
  box-shadow:0 10px 30px rgba(168,126,79,0.45);
}

/* Estado vacío */
.kb-footer-empty{
  color:rgba(255,255,255,0.4);
  font-size:16px;
  text-align:center;
  padding:50px 24px;
  line-height:1.6;
}

/* ============================================================================
   VISTA FINAL - Lista completa del kit
   ============================================================================ */
.kb-final{
  background:#fff;
  border-radius:28px;
  padding:32px;
  box-shadow:0 12px 48px rgba(74,58,47,0.1);
}

.kb-final-header{
  display:flex;
  justify-content:space-between;
  align-items:flex-start;
  gap:24px;
  padding-bottom:28px;
  margin-bottom:28px;
  border-bottom:2px solid var(--ink);
}
.kb-final-title h2{
  margin:0 0 8px;
  font-size:32px;
  font-weight:700;
  color:var(--ink);
  letter-spacing:-0.02em;
}
.kb-final-title p{
  margin:0;
  font-size:18px;
  color:var(--muted);
}
.kb-final-title strong{
  color:var(--ink);
  font-weight:700;
}
.kb-final-actions{
  display:flex;
  gap:12px;
  flex-shrink:0;
}
.kb-btn-back{
  padding:14px 24px;
  background:transparent;
  border:2px solid var(--line);
  color:var(--ink);
  border-radius:100px;
  font-size:14px;
  font-weight:600;
  cursor:pointer;
  transition:all 400ms cubic-bezier(0.32,0.72,0,1);
}
.kb-btn-back:hover{
  border-color:var(--ink);
  background:var(--ink);
  color:#fff;
}
.kb-btn-excel{
  padding:14px 28px;
  background:linear-gradient(135deg,#217346 0%,#2E8B57 100%);
  border:none;
  color:#fff;
  border-radius:100px;
  font-size:14px;
  font-weight:600;
  cursor:pointer;
  transition:all 400ms cubic-bezier(0.32,0.72,0,1);
  box-shadow:0 6px 20px rgba(33,115,70,0.3);
}
.kb-btn-excel:hover{
  transform:translateY(-3px);
  box-shadow:0 10px 30px rgba(33,115,70,0.4);
}

/* Grupos por tienda */
.kb-final-stores{
  display:flex;
  flex-direction:column;
  gap:24px;
}
.kb-store-group{
  background:linear-gradient(135deg,#FDFBF9 0%,#FAF7F4 100%);
  border:2px solid rgba(74,58,47,0.08);
  border-radius:20px;
  overflow:hidden;
}
.kb-store-header{
  display:flex;
  align-items:center;
  gap:16px;
  padding:20px 24px;
  background:var(--ink);
  color:#fff;
}
.kb-store-name{
  font-size:18px;
  font-weight:700;
  letter-spacing:0.02em;
  text-transform:uppercase;
}
.kb-store-count{
  font-size:13px;
  color:rgba(255,255,255,0.6);
  margin-left:auto;
}
.kb-store-total{
  font-size:20px;
  font-weight:700;
  color:var(--accent);
}
.kb-store-items{
  padding:8px;
  display:flex;
  flex-direction:column;
  gap:8px;
}
.kb-final-item{
  display:grid;
  grid-template-columns:1fr auto auto;
  gap:20px;
  align-items:center;
  padding:20px 24px;
  background:#fff;
  border-radius:14px;
  box-shadow:0 2px 8px rgba(74,58,47,0.04);
  transition:all 300ms ease;
}
.kb-final-item:hover{
  box-shadow:0 6px 20px rgba(74,58,47,0.08);
}
.kb-final-item-info{
  display:flex;
  flex-direction:column;
  gap:6px;
}
.kb-final-cat{
  font-size:11px;
  color:var(--accent);
  font-weight:600;
  letter-spacing:0.08em;
  text-transform:uppercase;
}
.kb-final-name{
  font-size:18px;
  font-weight:600;
  color:var(--ink);
  line-height:1.3;
}
.kb-final-brand{
  font-size:13px;
  color:var(--muted);
  font-weight:500;
}
.kb-final-size{
  display:inline-block;
  font-size:12px;
  color:var(--muted);
  background:rgba(74,58,47,0.06);
  padding:4px 10px;
  border-radius:6px;
  width:fit-content;
}
.kb-final-item-price{
  font-size:24px;
  font-weight:700;
  color:var(--ink);
  letter-spacing:-0.02em;
}
.kb-final-item-link{
  display:inline-flex;
  align-items:center;
  padding:14px 24px;
  background:var(--accent);
  color:#fff;
  border-radius:12px;
  font-size:14px;
  font-weight:600;
  text-decoration:none;
  transition:all 400ms cubic-bezier(0.32,0.72,0,1);
  box-shadow:0 4px 16px rgba(168,126,79,0.25);
  white-space:nowrap;
}
.kb-final-item-link:hover{
  transform:translateY(-3px);
  box-shadow:0 8px 24px rgba(168,126,79,0.35);
  background:#B8925F;
}

/* Costos en item final */
.kb-final-item-costs{
  display:flex;
  flex-direction:column;
  align-items:flex-end;
  gap:6px;
}
.kb-final-item-sets{
  display:flex;
  align-items:center;
  gap:10px;
  font-size:13px;
  color:#5A8A55;
}
.kb-final-item-setcost{
  font-weight:700;
  background:rgba(90,138,85,0.1);
  padding:4px 10px;
  border-radius:6px;
}

/* Resumen final */
.kb-final-summary{
  margin-top:32px;
  padding:28px 32px;
  background:var(--ink);
  border-radius:20px;
}
.kb-final-summary-row{
  display:flex;
  justify-content:space-between;
  align-items:center;
}
.kb-final-summary-row span{
  font-size:18px;
  color:rgba(255,255,255,0.6);
  font-weight:500;
  text-transform:uppercase;
  letter-spacing:0.05em;
}
.kb-final-summary-row strong{
  font-size:42px;
  color:#fff;
  font-weight:700;
  letter-spacing:-0.02em;
}

/* Filas highlight (sets) */
.kb-final-summary-row.highlight{
  background:linear-gradient(90deg,rgba(90,138,85,0.2) 0%,rgba(90,138,85,0.1) 100%);
  margin:0 -32px;
  padding:16px 32px;
  border-left:4px solid #5A8A55;
}
.kb-final-summary-row.highlight span{
  color:rgba(140,200,140,0.8);
}
.kb-final-summary-row.highlight strong{
  font-size:28px;
  color:#8FC98A;
}

/* Responsive vista final */
@media (max-width:900px){
  .kb-final{padding:24px}
  .kb-final-header{flex-direction:column;gap:20px}
  .kb-final-actions{width:100%}
  .kb-btn-back,.kb-btn-excel{flex:1;text-align:center;justify-content:center}
}
@media (max-width:640px){
  .kb-final{padding:16px;border-radius:20px}
  .kb-final-title h2{font-size:24px}
  .kb-final-title p{font-size:15px}
  .kb-final-actions{flex-direction:column}
  .kb-store-header{padding:16px 18px;flex-wrap:wrap}
  .kb-store-name{font-size:15px}
  .kb-final-item{grid-template-columns:1fr;gap:14px}
  .kb-final-item-price{font-size:22px}
  .kb-final-item-link{width:100%;justify-content:center}
  .kb-final-summary{padding:20px}
  .kb-final-summary-row{flex-direction:column;gap:8px;text-align:center}
  .kb-final-summary-row strong{font-size:36px}
}

/* Responsive */
@media (max-width:1200px){
  .kb{grid-template-columns:1fr 300px}
  .kb-cats-grid{grid-template-columns:repeat(3,1fr)}
  .kb-grid{grid-template-columns:repeat(3,1fr)}
}
@media (max-width:900px){
  .kb{grid-template-columns:1fr;gap:20px}
  .kb-footer{position:static;max-height:none}
  .kb-cats-grid{grid-template-columns:repeat(3,1fr)}
}
@media (max-width:640px){
  .kb-top{flex-direction:column;align-items:stretch;gap:14px}
  .kb-intro{justify-content:center;flex-wrap:wrap}
  .kb-intro h2{font-size:22px}
  .kb-sum{width:100%;justify-content:center}
  .kb-cats-grid{grid-template-columns:repeat(2,1fr);gap:10px;padding:10px}
  .kb-cat-card{padding:16px 12px}
  .kb-cat-name{font-size:14px}
  .kb-products-panel{padding:6px}
  .kb-products-panel-inner{padding:16px}
  .kb-grid{grid-template-columns:1fr;max-height:none;gap:12px}
  .kb-item{min-height:160px;padding:18px 16px}
  .kb-footer{padding:6px}
  .kb-footer-inner{padding:18px}
  .kb-fi{padding:12px 14px}
}

/* Responsive tweaks ------------------------------------------------------ */
@media (max-width:640px){
  .res-form{position:static}
  .calc-side{position:static}
  .bk-actions{min-width:100%}
  .quote{padding:20px}
  .quote-total{margin:0 -20px;padding:16px 20px}
  .quote-total .val{font-size:36px}
  .btn-copy{padding:16px}
}

/* Admin panel mobile */
@media (max-width:768px){
  .admin-header .top{flex-wrap:wrap;gap:10px}
  .admin-brand{font-size:16px}
  .admin-tabs{overflow-x:auto;flex-wrap:nowrap;gap:0;-webkit-overflow-scrolling:touch}
  .admin-tab{flex-shrink:0;padding:12px 14px;font-size:9px;white-space:nowrap}
  .admin-main{padding:16px 12px 40px}
  .admin-h2{font-size:22px}
  .admin-toolbar{flex-direction:column;align-items:flex-start;gap:10px}
  .sub-tabs{width:100%}
  .sub-tab{padding:10px 12px;font-size:10px;flex:1;text-align:center}
  .admin-card{padding:12px}
  .admin-card-h{margin-bottom:10px}
  /* Row lines - compact layout */
  .row-line{display:flex;flex-wrap:wrap;gap:6px;padding:10px 0}
  .inp-nombre{flex:1 1 100%;order:1;padding:8px 10px;font-size:13px}
  .inp-codigo{flex:0 0 50px;order:0;padding:8px 4px;font-size:12px}
  .row-line .x-btn{order:0;margin-left:auto}
  .row-deco .inp-codigo{order:0}
  .row-deco .inp-nombre{order:1}
  .row-deco .x-btn{order:2}
  .mini{flex:1 1 45%;order:3}
  .mini input{padding:8px;font-size:13px}
  .row-total{flex:0 0 100%;order:4;text-align:left;font-size:10px;padding-top:4px}
  .add-btn{width:100%;text-align:center;margin-top:8px}
  .edit-link{font-size:10px}
  .seg{flex-wrap:wrap}
  .seg button{flex:1;min-width:70px;padding:10px 6px;font-size:8px}
  .bk-card{flex-direction:column}
  .bk-left{border-right:none;border-bottom:1px solid rgba(156,132,120,.25);padding:14px}
  .bk-right{padding:14px}
  .bk-actions{flex-direction:column;gap:6px}
  .bk-actions button,.bk-actions a{width:100%;text-align:center;padding:10px!important}
  .pk-edit .top{flex-direction:column;gap:6px}
  .pk-edit .top input{width:100%}
  .pk-incl{width:100%}
  #calc-frame{min-height:700px}
}

/* ============================================================================
   RESERVAS PANEL — Premium Design (Double-Bezel Architecture)
   ============================================================================ */

/* Container */
.rv{
  display:flex;
  flex-direction:column;
  gap:28px;
}

/* Header with title and stats */
.rv-header{
  display:flex;
  justify-content:space-between;
  align-items:flex-start;
  gap:24px;
  flex-wrap:wrap;
}
.rv-title{
  display:flex;
  flex-direction:column;
  gap:6px;
}
.rv-eyebrow{
  font-size:10px;
  letter-spacing:0.2em;
  text-transform:uppercase;
  color:var(--muted-2);
  font-weight:500;
}
.rv-title h2{
  margin:0;
  font-size:34px;
  font-weight:700;
  color:var(--ink);
  letter-spacing:-0.02em;
}

/* Stats row */
.rv-stats{
  display:flex;
  gap:16px;
}
.rv-stat{
  /* Double-bezel outer shell */
  background:rgba(74,58,47,0.03);
  border:1px solid rgba(74,58,47,0.06);
  border-radius:20px;
  padding:4px;
}
.rv-stat::before{
  /* Inner core */
  content:'';
  display:block;
}
.rv-stat{
  display:flex;
  flex-direction:column;
  align-items:center;
  gap:2px;
  padding:16px 24px;
  background:linear-gradient(145deg,#fff 0%,#FDFBF9 100%);
  border-radius:16px;
  box-shadow:
    0 1px 2px rgba(74,58,47,0.04),
    inset 0 1px 0 rgba(255,255,255,0.8);
  transition:all 500ms cubic-bezier(0.32,0.72,0,1);
}
.rv-stat:hover{
  transform:translateY(-2px);
  box-shadow:
    0 8px 24px rgba(74,58,47,0.08),
    inset 0 1px 0 rgba(255,255,255,0.8);
}
.rv-stat-num{
  font-size:32px;
  font-weight:700;
  color:var(--ink);
  letter-spacing:-0.02em;
  line-height:1;
}
.rv-stat-label{
  font-size:11px;
  color:var(--muted);
  text-transform:uppercase;
  letter-spacing:0.08em;
  font-weight:500;
}
.rv-stat.confirmed .rv-stat-num{color:var(--green)}
.rv-stat.total{
  background:linear-gradient(145deg,var(--ink) 0%,#3A2A1F 100%);
}
.rv-stat.total .rv-stat-num{color:#fff}
.rv-stat.total .rv-stat-label{color:rgba(255,255,255,0.5)}

/* Filters */
.rv-filters{
  display:flex;
  gap:10px;
  padding:6px;
  background:rgba(74,58,47,0.04);
  border-radius:18px;
  width:fit-content;
}
.rv-filter{
  display:inline-flex;
  align-items:center;
  gap:10px;
  padding:14px 22px;
  background:transparent;
  border:none;
  border-radius:14px;
  font-family:var(--serif);
  font-size:14px;
  font-weight:500;
  color:var(--muted);
  cursor:pointer;
  transition:all 500ms cubic-bezier(0.32,0.72,0,1);
}
.rv-filter:hover{
  color:var(--ink);
  background:rgba(255,255,255,0.6);
}
.rv-filter.active{
  background:#fff;
  color:var(--ink);
  box-shadow:0 4px 16px rgba(74,58,47,0.1);
}
.rv-filter-icon{
  font-size:16px;
}
.rv-filter-count{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-width:26px;
  height:26px;
  padding:0 8px;
  font-size:12px;
  font-weight:600;
  background:rgba(74,58,47,0.08);
  border-radius:8px;
  transition:all 400ms ease;
}
.rv-filter.active .rv-filter-count{
  background:var(--ink);
  color:#fff;
}

/* Empty state */
.rv-empty{
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:16px;
  padding:80px 40px;
  background:linear-gradient(145deg,#fff 0%,#FDFBF9 100%);
  border-radius:28px;
  border:2px dashed rgba(74,58,47,0.12);
  text-align:center;
}
.rv-empty-icon{
  font-size:56px;
  opacity:0.4;
}
.rv-empty-title{
  margin:0;
  font-size:22px;
  font-weight:600;
  color:var(--ink);
}
.rv-empty-sub{
  margin:0;
  font-size:15px;
  color:var(--muted);
}

/* Cards list */
.rv-list{
  display:flex;
  flex-direction:column;
  gap:14px;
}

/* Single reservation card — Double-Bezel Architecture */
.rv-card{
  /* Outer shell */
  background:rgba(74,58,47,0.03);
  border:1px solid rgba(74,58,47,0.06);
  border-radius:24px;
  padding:5px;
  opacity:0;
  transform:translateY(20px);
  animation:rvCardIn 600ms cubic-bezier(0.32,0.72,0,1) forwards;
  animation-delay:var(--delay,0ms);
}
@keyframes rvCardIn{
  to{opacity:1;transform:translateY(0)}
}
.rv-card-inner{
  display:grid;
  grid-template-columns:80px 1fr auto;
  gap:0;
  background:linear-gradient(145deg,#fff 0%,#FDFBF9 100%);
  border-radius:20px;
  overflow:hidden;
  box-shadow:
    0 2px 8px rgba(74,58,47,0.04),
    inset 0 1px 0 rgba(255,255,255,0.9);
  transition:all 500ms cubic-bezier(0.32,0.72,0,1);
}
.rv-card:hover .rv-card-inner{
  box-shadow:
    0 12px 36px rgba(74,58,47,0.1),
    inset 0 1px 0 rgba(255,255,255,0.9);
}
.rv-card.processing{
  opacity:0.6;
  pointer-events:none;
}
.rv-card.processing .rv-card-inner{
  filter:grayscale(0.3);
}

/* Date sidebar */
.rv-card-date{
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:2px;
  padding:20px 16px;
  background:var(--ink);
  color:#fff;
  text-align:center;
}
.rv-card-day{
  font-size:32px;
  font-weight:700;
  line-height:1;
  letter-spacing:-0.02em;
}
.rv-card-month{
  font-size:12px;
  font-weight:600;
  text-transform:uppercase;
  letter-spacing:0.1em;
  opacity:0.7;
}
.rv-card-weekday{
  font-size:10px;
  text-transform:uppercase;
  letter-spacing:0.15em;
  opacity:0.5;
  margin-top:4px;
}
.rv-card-today{
  margin-top:8px;
  padding:4px 10px;
  background:var(--accent);
  border-radius:6px;
  font-size:9px;
  font-weight:700;
  letter-spacing:0.1em;
  text-transform:uppercase;
}
.rv-card.today .rv-card-date{
  background:linear-gradient(145deg,var(--accent) 0%,#B8925F 100%);
}

/* Main content */
.rv-card-content{
  display:flex;
  flex-direction:column;
  gap:10px;
  padding:20px 24px;
}
.rv-card-top{
  display:flex;
  align-items:center;
  gap:14px;
}
.rv-card-time{
  font-size:20px;
  font-weight:700;
  color:var(--ink);
  letter-spacing:-0.01em;
}
.rv-card-status{
  display:inline-flex;
  align-items:center;
  gap:6px;
  padding:6px 14px;
  border-radius:100px;
  font-size:11px;
  font-weight:600;
  letter-spacing:0.04em;
}
.rv-card-status.pendiente{
  background:rgba(168,126,79,0.12);
  color:var(--accent);
}
.rv-card-status.confirmada{
  background:rgba(111,143,106,0.12);
  color:var(--green);
}
.rv-card-status.cancelada{
  background:rgba(168,86,74,0.1);
  color:var(--danger);
}
.rv-card-name{
  margin:0;
  font-size:22px;
  font-weight:600;
  color:var(--ink);
  line-height:1.3;
}
.rv-card-service{
  margin:0;
  font-size:15px;
  color:var(--muted);
  font-style:italic;
}
.rv-card-contact{
  display:flex;
  flex-wrap:wrap;
  gap:10px;
  margin-top:8px;
}
.rv-card-phone,
.rv-card-ig{
  display:inline-flex;
  align-items:center;
  gap:8px;
  padding:10px 16px;
  font-size:13px;
  font-weight:500;
  text-decoration:none;
  border-radius:100px;
  transition:all 400ms cubic-bezier(0.32,0.72,0,1);
}
/* Contact button icons (FontAwesome) */
.rv-card-phone i,
.rv-card-ig i{
  display:flex;
  align-items:center;
  justify-content:center;
  width:28px;
  height:28px;
  border-radius:50%;
  font-size:15px;
  flex-shrink:0;
  transition:background 300ms ease;
}
/* WhatsApp button */
.rv-card-phone{
  background:rgba(37,211,102,0.1);
  color:#128C7E;
  border:2px solid rgba(37,211,102,0.25);
}
.rv-card-phone i{
  background:rgba(37,211,102,0.15);
}
.rv-card-phone:hover{
  background:#25D366;
  color:#fff;
  border-color:#25D366;
  transform:translateY(-3px);
  box-shadow:0 8px 24px rgba(37,211,102,0.35);
}
.rv-card-phone:hover i{
  background:rgba(255,255,255,0.2);
}
/* Instagram button */
.rv-card-ig{
  background:linear-gradient(135deg,rgba(225,48,108,0.08) 0%,rgba(131,58,180,0.08) 100%);
  color:#E1306C;
  border:2px solid rgba(225,48,108,0.25);
}
.rv-card-ig i{
  background:linear-gradient(135deg,rgba(225,48,108,0.15) 0%,rgba(131,58,180,0.15) 100%);
}
.rv-card-ig:hover{
  background:linear-gradient(135deg,#E1306C 0%,#833AB4 100%);
  color:#fff;
  border-color:transparent;
  transform:translateY(-3px);
  box-shadow:0 8px 24px rgba(225,48,108,0.4);
}
.rv-card-ig:hover i{
  background:rgba(255,255,255,0.2);
}
.rv-card-notes{
  margin-top:6px;
  padding:12px 16px;
  background:rgba(74,58,47,0.04);
  border-radius:12px;
  font-size:13px;
  color:var(--muted);
  line-height:1.5;
}
.rv-card-notes-label{
  font-weight:600;
  color:var(--ink);
  margin-right:6px;
}

/* Actions column */
.rv-card-actions{
  display:flex;
  flex-direction:column;
  gap:8px;
  padding:16px 20px;
  border-left:1px solid rgba(74,58,47,0.06);
  justify-content:center;
}
/* Action buttons - Premium pill design */
.rv-btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:10px;
  padding:14px 24px;
  border:2px solid transparent;
  border-radius:100px;
  font-family:var(--serif);
  font-size:14px;
  font-weight:600;
  letter-spacing:0.02em;
  cursor:pointer;
  transition:all 400ms cubic-bezier(0.32,0.72,0,1);
  white-space:nowrap;
  position:relative;
  overflow:hidden;
}
.rv-btn::before{
  content:'';
  position:absolute;
  inset:0;
  background:linear-gradient(180deg,rgba(255,255,255,0.15) 0%,transparent 50%);
  opacity:0;
  transition:opacity 300ms ease;
}
.rv-btn:hover::before{opacity:1}
.rv-btn i{
  font-size:15px;
  width:28px;
  height:28px;
  display:flex;
  align-items:center;
  justify-content:center;
  border-radius:50%;
  flex-shrink:0;
  transition:background 300ms ease;
}

/* Confirmar - Verde outline */
.rv-btn.confirm{
  background:transparent;
  border-color:rgba(111,143,106,0.4);
  color:var(--green);
}
.rv-btn.confirm i{
  background:rgba(111,143,106,0.15);
}
.rv-btn.confirm:hover{
  background:var(--green);
  border-color:var(--green);
  color:#fff;
  transform:translateY(-3px);
  box-shadow:0 8px 24px rgba(111,143,106,0.35);
}
.rv-btn.confirm:hover i{
  background:rgba(255,255,255,0.2);
}

/* Cancelar - Rojo outline */
.rv-btn.cancel{
  background:transparent;
  border-color:rgba(168,86,74,0.4);
  color:var(--danger);
}
.rv-btn.cancel i{
  background:rgba(168,86,74,0.15);
}
.rv-btn.cancel:hover{
  background:var(--danger);
  border-color:var(--danger);
  color:#fff;
  transform:translateY(-3px);
  box-shadow:0 8px 24px rgba(168,86,74,0.35);
}
.rv-btn.cancel:hover i{
  background:rgba(255,255,255,0.2);
}

/* Eliminar - Mismo estilo que los otros */
.rv-btn.delete{
  background:transparent;
  border-color:rgba(74,58,47,0.2);
  color:var(--muted);
}
.rv-btn.delete i{
  background:rgba(74,58,47,0.08);
}
.rv-btn.delete:hover{
  background:var(--danger);
  border-color:var(--danger);
  color:#fff;
  transform:translateY(-3px);
  box-shadow:0 8px 24px rgba(168,86,74,0.35);
}
.rv-btn.delete:hover i{
  background:rgba(255,255,255,0.2);
}

/* Past reservations styling */
.rv-card.past{
  opacity:0.6;
}
.rv-card.past .rv-card-date{
  background:var(--muted-3);
}
.rv-card.cancelada .rv-card-date{
  background:var(--danger);
}

/* Responsive */
@media (max-width:900px){
  .rv-header{flex-direction:column;gap:20px}
  .rv-stats{flex-wrap:wrap}
  .rv-stat{padding:14px 20px}
  .rv-stat-num{font-size:26px}
  .rv-card-inner{grid-template-columns:70px 1fr}
  .rv-card-actions{
    grid-column:1/-1;
    flex-direction:row;
    flex-wrap:wrap;
    border-left:none;
    border-top:1px solid rgba(74,58,47,0.06);
    padding:14px 20px;
  }
  .rv-btn{flex:1;min-width:100px;padding:12px 20px}
}
@media (max-width:640px){
  .rv{gap:20px}
  .rv-title h2{font-size:26px}
  .rv-stats{gap:10px}
  .rv-stat{padding:12px 16px}
  .rv-stat-num{font-size:22px}
  .rv-stat-label{font-size:9px}
  .rv-filters{width:100%;justify-content:center}
  .rv-filter{flex:1;padding:12px 14px;font-size:13px;justify-content:center}
  .rv-filter span:not(.rv-filter-icon):not(.rv-filter-count){display:none}
  .rv-card{padding:4px;border-radius:20px}
  .rv-card-inner{grid-template-columns:60px 1fr;border-radius:16px}
  .rv-card-date{padding:16px 12px}
  .rv-card-day{font-size:26px}
  .rv-card-month{font-size:10px}
  .rv-card-today{padding:3px 8px;font-size:8px}
  .rv-card-content{padding:16px}
  .rv-card-time{font-size:17px}
  .rv-card-status{padding:5px 10px;font-size:10px}
  .rv-card-name{font-size:18px}
  .rv-card-service{font-size:14px}
  .rv-card-contact{gap:8px}
  .rv-card-phone,.rv-card-ig{font-size:12px;padding:8px 14px}
  .rv-card-phone i,.rv-card-ig i{width:22px;height:22px;font-size:13px}
  .rv-card-notes{padding:10px 12px;font-size:12px}
  .rv-card-actions{padding:14px 16px;gap:8px}
  .rv-btn{padding:12px 18px;font-size:13px;border-radius:100px;gap:8px}
  .rv-btn i{width:24px;height:24px;font-size:13px}
  .rv-empty{padding:60px 24px;border-radius:20px}
  .rv-empty-icon{font-size:44px}
  .rv-empty-title{font-size:18px}
  .rv-empty-sub{font-size:13px}
}

/* ============================================================================
   HORARIOS PANEL — Premium Design
   ============================================================================ */

.hr{
  display:flex;
  flex-direction:column;
  gap:28px;
}

/* Header */
.hr-header{
  display:flex;
  justify-content:space-between;
  align-items:flex-start;
  gap:24px;
  flex-wrap:wrap;
}
.hr-title{
  display:flex;
  flex-direction:column;
  gap:6px;
}
.hr-eyebrow{
  font-size:10px;
  letter-spacing:0.2em;
  text-transform:uppercase;
  color:var(--muted-2);
  font-weight:500;
}
.hr-title h2{
  margin:0;
  font-size:34px;
  font-weight:700;
  color:var(--ink);
  letter-spacing:-0.02em;
}

/* Stats */
.hr-stats{
  display:flex;
  gap:12px;
}
.hr-stat{
  display:flex;
  flex-direction:column;
  align-items:center;
  gap:4px;
  padding:16px 22px;
  background:linear-gradient(145deg,#fff 0%,#FDFBF9 100%);
  border:1px solid rgba(74,58,47,0.08);
  border-radius:16px;
  box-shadow:0 2px 8px rgba(74,58,47,0.04);
  transition:all 400ms cubic-bezier(0.32,0.72,0,1);
}
.hr-stat:hover{
  transform:translateY(-2px);
  box-shadow:0 8px 24px rgba(74,58,47,0.08);
}
.hr-stat-num{
  font-size:28px;
  font-weight:700;
  color:var(--ink);
  letter-spacing:-0.02em;
  line-height:1;
}
.hr-stat-label{
  font-size:10px;
  color:var(--muted);
  text-transform:uppercase;
  letter-spacing:0.08em;
  font-weight:500;
}
.hr-stat.accent{
  background:linear-gradient(145deg,var(--accent) 0%,#B8925F 100%);
}
.hr-stat.accent .hr-stat-num,
.hr-stat.accent .hr-stat-label{
  color:#fff;
}

/* Grid layout */
.hr-grid{
  display:grid;
  grid-template-columns:1fr 340px;
  gap:24px;
}

/* Cards */
.hr-card{
  background:rgba(74,58,47,0.03);
  border:1px solid rgba(74,58,47,0.06);
  border-radius:24px;
  padding:5px;
}
.hr-card>*:not(.hr-card-header):first-child,
.hr-card>.hr-card-header+*{
  background:linear-gradient(145deg,#fff 0%,#FDFBF9 100%);
  border-radius:20px;
}
.hr-card-header{
  display:flex;
  align-items:center;
  gap:12px;
  padding:20px 24px 16px;
  font-size:15px;
  font-weight:600;
  color:var(--ink);
}
.hr-card-header i{
  width:36px;
  height:36px;
  display:flex;
  align-items:center;
  justify-content:center;
  background:rgba(168,126,79,0.12);
  color:var(--accent);
  border-radius:10px;
  font-size:15px;
}

/* Days list */
.hr-days{
  display:flex;
  flex-direction:column;
  padding:8px;
  background:linear-gradient(145deg,#fff 0%,#FDFBF9 100%);
  border-radius:20px;
}
.hr-day{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:16px;
  padding:16px 20px;
  border-radius:14px;
  transition:all 400ms cubic-bezier(0.32,0.72,0,1);
  opacity:0;
  transform:translateX(-10px);
  animation:hrDayIn 500ms cubic-bezier(0.32,0.72,0,1) forwards;
  animation-delay:var(--delay,0ms);
}
@keyframes hrDayIn{
  to{opacity:1;transform:translateX(0)}
}
.hr-day:hover{
  background:rgba(74,58,47,0.03);
}
.hr-day.active{
  background:rgba(111,143,106,0.06);
}
.hr-day-toggle{
  display:flex;
  align-items:center;
  gap:14px;
  min-width:160px;
}
.hr-day-name{
  font-size:15px;
  font-weight:600;
  color:var(--ink);
}
.hr-day.active .hr-day-name{
  color:var(--green);
}

/* Toggle switch */
.hr-switch{
  position:relative;
  width:48px;
  height:28px;
  padding:0;
  border:none;
  background:transparent;
  cursor:pointer;
}
.hr-switch-track{
  position:absolute;
  inset:0;
  background:rgba(74,58,47,0.15);
  border-radius:100px;
  transition:background 400ms cubic-bezier(0.32,0.72,0,1);
}
.hr-switch.on .hr-switch-track{
  background:var(--green);
}
.hr-switch-thumb{
  position:absolute;
  top:3px;
  left:3px;
  width:22px;
  height:22px;
  background:#fff;
  border-radius:50%;
  box-shadow:0 2px 8px rgba(0,0,0,0.15);
  transition:transform 400ms cubic-bezier(0.32,0.72,0,1);
}
.hr-switch.on .hr-switch-thumb{
  transform:translateX(20px);
}

/* Day slots */
.hr-day-slots{
  flex:1;
  display:flex;
  align-items:center;
  gap:10px;
  min-width:0;
}
.hr-day-slots i{
  color:var(--muted);
  font-size:14px;
}
.hr-day-slots input{
  flex:1;
  min-width:0;
  padding:12px 16px;
  border:2px solid rgba(74,58,47,0.1);
  border-radius:12px;
  background:#fff;
  font-family:var(--serif);
  font-size:14px;
  color:var(--ink);
  transition:all 300ms ease;
}
.hr-day-slots input:focus{
  border-color:var(--accent);
  box-shadow:0 0 0 4px rgba(168,126,79,0.1);
}
.hr-day-closed{
  display:flex;
  align-items:center;
  gap:8px;
  padding:12px 16px;
  background:rgba(74,58,47,0.04);
  border-radius:12px;
  font-size:13px;
  color:var(--muted);
  font-style:italic;
}

/* Hint */
.hr-hint{
  display:flex;
  align-items:flex-start;
  gap:10px;
  margin:0;
  padding:16px 24px;
  font-size:13px;
  line-height:1.6;
  color:var(--muted);
}
.hr-hint i{
  color:var(--accent);
  margin-top:2px;
}

/* Duration card */
.hr-card.duration{
  margin-bottom:16px;
}
.hr-duration{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:16px;
  padding:28px;
  background:linear-gradient(145deg,#fff 0%,#FDFBF9 100%);
  border-radius:20px;
}
.hr-dur-input{
  display:flex;
  align-items:center;
  background:rgba(74,58,47,0.04);
  border-radius:16px;
  overflow:hidden;
}
.hr-dur-btn{
  width:48px;
  height:56px;
  border:none;
  background:transparent;
  color:var(--muted);
  font-size:16px;
  cursor:pointer;
  transition:all 300ms ease;
}
.hr-dur-btn:hover{
  background:rgba(74,58,47,0.08);
  color:var(--ink);
}
.hr-dur-btn.minus:hover{color:var(--danger)}
.hr-dur-btn.plus:hover{color:var(--green)}
.hr-dur-input input{
  width:70px;
  height:56px;
  border:none;
  background:transparent;
  font-family:var(--serif);
  font-size:32px;
  font-weight:700;
  color:var(--ink);
  text-align:center;
}
.hr-dur-input input:focus{outline:none}
.hr-dur-label{
  font-size:18px;
  color:var(--muted);
  font-weight:500;
}

/* Exceptions */
.hr-exc-content{
  background:linear-gradient(145deg,#fff 0%,#FDFBF9 100%);
  border-radius:20px;
  padding:20px;
}
.hr-exc-add{
  display:flex;
  gap:10px;
  margin-bottom:16px;
}
.hr-exc-add input{
  flex:1;
  min-width:0;
  padding:14px 16px;
  border:2px solid rgba(74,58,47,0.12);
  border-radius:12px;
  background:#fff;
  font-family:var(--serif);
  font-size:14px;
  color:var(--ink);
  transition:all 300ms ease;
}
.hr-exc-add input:focus{
  border-color:var(--accent);
  box-shadow:0 0 0 4px rgba(168,126,79,0.1);
}
.hr-exc-btn{
  display:inline-flex;
  align-items:center;
  gap:8px;
  padding:14px 20px;
  background:var(--ink);
  color:#fff;
  border:none;
  border-radius:12px;
  font-family:var(--serif);
  font-size:13px;
  font-weight:600;
  cursor:pointer;
  white-space:nowrap;
  transition:all 400ms cubic-bezier(0.32,0.72,0,1);
}
.hr-exc-btn:hover{
  background:var(--accent);
  transform:translateY(-2px);
  box-shadow:0 6px 20px rgba(168,126,79,0.3);
}

/* Exception chips */
.hr-exc-list{
  display:flex;
  flex-direction:column;
  gap:10px;
}
.hr-exc-chip{
  display:flex;
  align-items:center;
  gap:12px;
  padding:14px 16px;
  background:rgba(168,86,74,0.06);
  border:1px solid rgba(168,86,74,0.12);
  border-radius:12px;
  opacity:0;
  transform:translateY(10px);
  animation:hrExcIn 400ms cubic-bezier(0.32,0.72,0,1) forwards;
  animation-delay:var(--delay,0ms);
}
@keyframes hrExcIn{
  to{opacity:1;transform:translateY(0)}
}
.hr-exc-chip i{
  color:var(--danger);
  font-size:14px;
}
.hr-exc-chip span{
  flex:1;
  font-size:14px;
  color:var(--ink);
}
.hr-exc-remove{
  width:28px;
  height:28px;
  display:flex;
  align-items:center;
  justify-content:center;
  border:none;
  background:rgba(168,86,74,0.1);
  color:var(--danger);
  border-radius:8px;
  cursor:pointer;
  transition:all 300ms ease;
}
.hr-exc-remove:hover{
  background:var(--danger);
  color:#fff;
}

/* Empty state */
.hr-exc-empty{
  display:flex;
  flex-direction:column;
  align-items:center;
  gap:12px;
  padding:24px;
  text-align:center;
  background:rgba(111,143,106,0.04);
  border:2px dashed rgba(111,143,106,0.15);
  border-radius:12px;
}
.hr-exc-empty i{
  font-size:36px;
  color:var(--green);
  opacity:0.6;
}
.hr-exc-empty span{
  font-size:14px;
  color:var(--muted);
}

/* Responsive */
@media (max-width:900px){
  .hr-header{flex-direction:column;gap:20px}
  .hr-stats{flex-wrap:wrap}
  .hr-grid{grid-template-columns:1fr}
  .hr-side{
    display:grid;
    grid-template-columns:repeat(auto-fit,minmax(280px,1fr));
    gap:16px;
  }
  .hr-card.duration{margin-bottom:0}
}
@media (max-width:640px){
  .hr{gap:20px}
  .hr-title h2{font-size:26px}
  .hr-stats{gap:8px}
  .hr-stat{padding:12px 16px}
  .hr-stat-num{font-size:22px}
  .hr-card{padding:4px;border-radius:20px}
  .hr-card-header{padding:16px 18px 12px;font-size:14px}
  .hr-card-header i{width:32px;height:32px;font-size:14px}
  .hr-days{padding:6px;border-radius:16px}
  .hr-day{flex-direction:column;align-items:stretch;gap:12px;padding:14px}
  .hr-day-toggle{min-width:auto}
  .hr-day-slots{width:100%}
  .hr-day-slots input{padding:10px 14px}
  .hr-hint{padding:14px 18px;font-size:12px}
  .hr-duration{padding:20px}
  .hr-dur-input input{font-size:26px;width:60px;height:48px}
  .hr-dur-btn{width:42px;height:48px}
  .hr-dur-label{font-size:15px}
  .hr-exc-content{padding:14px}
  .hr-exc-add{flex-direction:column;margin-bottom:12px}
  .hr-exc-add input{width:100%}
  .hr-exc-btn{width:100%;justify-content:center}
  .hr-exc-chip{padding:12px 14px}
  .hr-exc-empty{padding:20px}
}

/* ========================================================================
   Admin Panel: MIS PRODUCTOS (CRUD)
   ======================================================================== */
.mp{
  display:flex;
  flex-direction:column;
  gap:24px;
}
.mp-header{
  display:flex;
  justify-content:space-between;
  align-items:flex-start;
  flex-wrap:wrap;
  gap:20px;
}
.mp-title{
  display:flex;
  flex-direction:column;
  gap:6px;
}
.mp-eyebrow{
  font-size:10px;
  letter-spacing:.25em;
  text-transform:uppercase;
  color:var(--muted-2);
}
.mp-title h2{
  margin:0;
  font-size:clamp(28px,4vw,36px);
  font-weight:500;
  color:var(--ink);
  letter-spacing:-.02em;
}
.mp-add-btn{
  display:inline-flex;
  align-items:center;
  gap:8px;
  padding:14px 24px;
  background:var(--ink);
  color:var(--bg);
  border:none;
  border-radius:12px;
  font-family:var(--serif);
  font-size:13px;
  letter-spacing:.1em;
  text-transform:uppercase;
  cursor:pointer;
  transition:all .25s ease;
}
.mp-add-btn:hover{
  background:var(--accent);
  transform:translateY(-2px);
  box-shadow:0 8px 24px rgba(74,58,47,.18);
}
.mp-add-btn i{
  font-size:12px;
}

/* Stats */
.mp-stats{
  display:flex;
  gap:12px;
  flex-wrap:wrap;
}
.mp-stat{
  background:var(--rose);
  border-radius:16px;
  padding:18px 24px;
  display:flex;
  flex-direction:column;
  gap:4px;
  min-width:120px;
  transition:transform .2s ease,box-shadow .2s ease;
}
.mp-stat:hover{
  transform:translateY(-2px);
  box-shadow:0 6px 20px rgba(74,58,47,.1);
}
.mp-stat-num{
  font-size:26px;
  font-weight:500;
  color:var(--ink);
  letter-spacing:-.02em;
}
.mp-stat-label{
  font-size:11px;
  letter-spacing:.15em;
  text-transform:uppercase;
  color:var(--muted-2);
}
.mp-stat.accent{
  background:var(--ink);
}
.mp-stat.accent .mp-stat-num,
.mp-stat.accent .mp-stat-label{
  color:var(--bg);
}

/* Empty state */
.mp-empty{
  background:var(--rose);
  border:2px dashed var(--rose-2);
  border-radius:20px;
  padding:60px 40px;
  text-align:center;
  display:flex;
  flex-direction:column;
  align-items:center;
  gap:16px;
}
.mp-empty-icon{
  font-size:48px;
  color:var(--muted-2);
  opacity:.6;
}
.mp-empty-title{
  margin:0;
  font-size:22px;
  font-weight:500;
  color:var(--ink);
}
.mp-empty-text{
  margin:0;
  font-size:15px;
  color:var(--muted);
  max-width:320px;
  line-height:1.6;
}
.mp-empty-btn{
  margin-top:8px;
  display:inline-flex;
  align-items:center;
  gap:8px;
  padding:16px 28px;
  background:var(--ink);
  color:var(--bg);
  border:none;
  border-radius:12px;
  font-family:var(--serif);
  font-size:13px;
  letter-spacing:.1em;
  cursor:pointer;
  transition:all .25s ease;
}
.mp-empty-btn:hover{
  background:var(--accent);
  transform:translateY(-2px);
}

/* Product list */
.mp-list{
  display:flex;
  flex-direction:column;
  gap:12px;
}
.mp-card{
  background:#fff;
  border-radius:16px;
  box-shadow:0 2px 8px rgba(74,58,47,.06);
  padding:20px 24px;
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:20px;
  transition:all .25s ease;
  animation:mp-card-in .4s ease calc(var(--delay,0)) both;
}
@keyframes mp-card-in{
  from{opacity:0;transform:translateY(12px)}
  to{opacity:1;transform:none}
}
.mp-card:hover{
  box-shadow:0 8px 28px rgba(74,58,47,.12);
  transform:translateY(-2px);
}
.mp-card-main{
  display:flex;
  align-items:center;
  gap:24px;
  flex:1;
  min-width:0;
}
.mp-card-info{
  display:flex;
  flex-direction:column;
  gap:4px;
  min-width:0;
  flex:1;
}
.mp-card-name{
  margin:0;
  font-size:16px;
  font-weight:500;
  color:var(--ink);
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}
.mp-card-brand{
  font-size:12px;
  color:var(--muted-2);
  letter-spacing:.08em;
}
.mp-card-numbers{
  display:flex;
  flex-direction:column;
  align-items:flex-end;
  gap:4px;
}
.mp-card-precio{
  font-size:18px;
  font-weight:600;
  color:var(--ink);
}
.mp-card-calc{
  display:flex;
  align-items:center;
  gap:8px;
  font-size:12px;
  color:var(--muted-2);
}
.mp-card-costo{
  color:var(--accent);
  font-weight:600;
}
.mp-card-actions{
  display:flex;
  align-items:center;
  gap:8px;
}
.mp-card-link,
.mp-card-edit,
.mp-card-delete{
  width:36px;
  height:36px;
  border:none;
  border-radius:10px;
  display:flex;
  align-items:center;
  justify-content:center;
  cursor:pointer;
  transition:all .2s ease;
  font-size:14px;
}
.mp-card-link{
  background:var(--rose);
  color:var(--accent);
  text-decoration:none;
}
.mp-card-link:hover{
  background:var(--accent);
  color:#fff;
}
.mp-card-edit{
  background:var(--rose);
  color:var(--muted);
}
.mp-card-edit:hover{
  background:var(--accent);
  color:#fff;
}
.mp-card-delete{
  background:var(--rose);
  color:var(--muted-2);
}
.mp-card-delete:hover{
  background:#f5d5d0;
  color:var(--danger);
}

/* Fixed costs section */
.mp-section{
  background:var(--rose);
  border-radius:20px;
  padding:24px;
  margin-top:12px;
}
.mp-section-header{
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:16px;
}
.mp-section-title{
  display:flex;
  align-items:center;
  gap:12px;
  font-size:16px;
  font-weight:500;
  color:var(--ink);
}
.mp-section-title i{
  width:36px;
  height:36px;
  background:var(--rose-2);
  border-radius:10px;
  display:flex;
  align-items:center;
  justify-content:center;
  color:var(--muted);
}
.mp-section-badge{
  font-size:10px;
  letter-spacing:.12em;
  text-transform:uppercase;
  color:var(--muted-2);
  background:var(--rose-2);
  padding:4px 10px;
  border-radius:6px;
}

/* Toggle switch */
.mp-toggle{
  width:52px;
  height:28px;
  background:var(--rose-2);
  border:none;
  border-radius:14px;
  position:relative;
  cursor:pointer;
  transition:background .25s ease;
}
.mp-toggle.on{
  background:var(--green);
}
.mp-toggle-track{
  position:absolute;
  inset:0;
  border-radius:14px;
}
.mp-toggle-thumb{
  position:absolute;
  top:3px;
  left:3px;
  width:22px;
  height:22px;
  background:#fff;
  border-radius:50%;
  transition:left .25s ease;
  box-shadow:0 2px 4px rgba(0,0,0,.15);
}
.mp-toggle.on .mp-toggle-thumb{
  left:27px;
}

/* Fixed costs content */
.mp-cf-content{
  margin-top:20px;
  display:flex;
  flex-direction:column;
  gap:24px;
}

/* Grid de dos columnas */
.mp-cf-grid{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:20px;
}
@media(max-width:900px){
  .mp-cf-grid{grid-template-columns:1fr}
}
.mp-cf-col{
  background:#fff;
  border-radius:14px;
  padding:20px;
}
.mp-cf-col-title{
  margin:0 0 16px;
  font-size:13px;
  font-weight:500;
  letter-spacing:.08em;
  text-transform:uppercase;
  color:var(--ink);
  display:flex;
  align-items:center;
  gap:10px;
}
.mp-cf-col-title i{
  color:var(--accent);
}

/* Schedule link toggle */
.mp-cf-link-toggle{
  display:flex;
  align-items:center;
  justify-content:space-between;
  padding:14px 16px;
  background:linear-gradient(135deg,rgba(168,126,79,.08) 0%,rgba(168,126,79,.04) 100%);
  border:1px solid rgba(168,126,79,.2);
  border-radius:10px;
  margin-bottom:16px;
}
.mp-cf-link-info{
  display:flex;
  align-items:center;
  gap:10px;
  font-size:13px;
  color:var(--ink);
}
.mp-cf-link-info i{
  color:var(--accent);
  font-size:14px;
}

/* Schedule data display */
.mp-cf-schedule-data{
  background:var(--rose);
  border-radius:12px;
  padding:16px;
  margin-bottom:16px;
}
.mp-cf-schedule-header{
  display:flex;
  align-items:center;
  gap:10px;
  margin-bottom:14px;
  font-size:12px;
  color:var(--muted);
}
.mp-cf-schedule-header i{
  color:var(--accent);
}
.mp-cf-schedule-edit{
  margin-left:auto;
  font-size:11px;
  letter-spacing:.1em;
  text-transform:uppercase;
  color:var(--accent);
  text-decoration:none;
}
.mp-cf-schedule-edit:hover{
  text-decoration:underline;
}
.mp-cf-schedule-stats{
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:10px;
}
@media(max-width:600px){
  .mp-cf-schedule-stats{grid-template-columns:repeat(2,1fr)}
}
.mp-cf-schedule-stat{
  text-align:center;
  padding:12px 8px;
  background:#fff;
  border-radius:8px;
}
.mp-cf-schedule-stat .val{
  display:block;
  font-size:20px;
  font-weight:500;
  color:var(--ink);
  line-height:1.2;
}
.mp-cf-schedule-stat .lab{
  display:block;
  font-size:10px;
  letter-spacing:.05em;
  color:var(--muted-2);
  margin-top:4px;
}

/* Sueldo section separator */
.mp-cf-sueldo-section{
  margin-top:16px;
  padding-top:16px;
  border-top:1px solid var(--rose-2);
}

.mp-cf-items{
  display:flex;
  flex-direction:column;
  gap:0;
}
.mp-cf-item{
  display:flex;
  align-items:center;
  gap:12px;
  padding:12px 0;
  border-bottom:1px solid var(--rose-2);
}
.mp-cf-item:last-of-type{
  border-bottom:none;
}
.mp-cf-item.total{
  background:var(--rose);
  margin:8px -20px 0;
  padding:14px 20px;
  border-radius:10px;
  border-bottom:none;
}
.mp-cf-item.total .mp-cf-item-name{
  font-weight:500;
}
.mp-cf-item-name{
  flex:1;
  font-size:14px;
  color:var(--ink);
}
.mp-cf-item-monto{
  font-size:15px;
  font-weight:600;
  color:var(--ink);
}
.mp-cf-item-del{
  width:28px;
  height:28px;
  background:transparent;
  border:none;
  border-radius:6px;
  display:flex;
  align-items:center;
  justify-content:center;
  cursor:pointer;
  color:var(--muted-2);
  transition:all .2s ease;
}
.mp-cf-item-del:hover{
  background:#f5d5d0;
  color:var(--danger);
}
.mp-cf-add{
  display:flex;
  gap:10px;
  padding-top:12px;
  border-top:1px solid var(--rose-2);
  margin-top:8px;
}
.mp-cf-add input[type="text"]{
  flex:1;
  padding:10px 14px;
  border:1px solid var(--rose-2);
  border-radius:8px;
  font-family:var(--serif);
  font-size:14px;
  background:#fff;
}
.mp-cf-add input[type="number"]{
  width:100px;
  padding:10px 14px;
  border:1px solid var(--rose-2);
  border-radius:8px;
  font-family:var(--serif);
  font-size:14px;
  background:#fff;
  text-align:right;
}
.mp-cf-add button{
  width:40px;
  height:40px;
  background:var(--ink);
  color:var(--bg);
  border:none;
  border-radius:10px;
  cursor:pointer;
  display:flex;
  align-items:center;
  justify-content:center;
  transition:background .2s ease;
}
.mp-cf-add button:hover{
  background:var(--accent);
}

/* Fixed costs calculator */
.mp-cf-calc{
  display:flex;
  flex-direction:column;
  gap:14px;
}
.mp-cf-row{
  display:flex;
  flex-direction:column;
  gap:6px;
}
.mp-cf-row label{
  font-size:12px;
  color:var(--muted);
  display:flex;
  align-items:center;
  gap:8px;
}
.mp-cf-row label i{
  font-size:11px;
  color:var(--muted-2);
}
.mp-cf-row input{
  padding:12px 16px;
  border:1px solid var(--rose-2);
  border-radius:10px;
  font-family:var(--serif);
  font-size:16px;
  background:#fff;
  text-align:right;
}
.mp-cf-row input:focus{
  border-color:var(--accent);
  outline:none;
}
.mp-cf-input-wrap{
  position:relative;
  display:flex;
  align-items:center;
}
.mp-cf-prefix{
  position:absolute;
  left:14px;
  color:var(--muted-2);
  font-size:14px;
  z-index:1;
}
.mp-cf-suffix{
  position:absolute;
  right:14px;
  color:var(--muted-2);
  font-size:12px;
  letter-spacing:.05em;
}
.mp-cf-input-wrap input{
  flex:1;
  padding-left:32px;
}

/* Results panel */
.mp-cf-results{
  background:linear-gradient(135deg,#4A3A2F 0%,#5C4A3D 100%);
  border-radius:16px;
  padding:24px;
  color:#fff;
}
.mp-cf-results-title{
  margin:0 0 20px;
  font-size:14px;
  font-weight:500;
  letter-spacing:.1em;
  text-transform:uppercase;
  color:rgba(255,255,255,.9);
  display:flex;
  align-items:center;
  gap:10px;
}
.mp-cf-results-title i{
  color:var(--accent);
}

/* Breakdown */
.mp-cf-breakdown{
  background:rgba(255,255,255,.08);
  border-radius:12px;
  padding:16px;
  margin-bottom:20px;
}
.mp-cf-breakdown-title{
  font-size:10px;
  letter-spacing:.15em;
  text-transform:uppercase;
  color:rgba(255,255,255,.5);
  margin-bottom:12px;
}
.mp-cf-breakdown-row{
  display:flex;
  justify-content:space-between;
  align-items:center;
  padding:8px 0;
  font-size:14px;
  color:rgba(255,255,255,.7);
  border-bottom:1px solid rgba(255,255,255,.08);
}
.mp-cf-breakdown-row:last-child{
  border-bottom:none;
}
.mp-cf-breakdown-row span:first-child{
  display:flex;
  align-items:center;
  gap:8px;
}
.mp-cf-breakdown-row span:first-child i{
  font-size:11px;
  opacity:.6;
}
.mp-cf-breakdown-row.total{
  color:#fff;
  font-weight:500;
  padding-top:12px;
  margin-top:4px;
  border-top:1px solid rgba(255,255,255,.15);
  border-bottom:none;
}
.mp-cf-breakdown-row.sueldo{
  color:var(--green);
  font-weight:500;
}
.mp-cf-breakdown-row.sueldo span:last-child{
  color:#8FBF8A;
}

/* Price cards */
.mp-cf-prices{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:12px;
  margin-bottom:20px;
}
@media(max-width:500px){
  .mp-cf-prices{grid-template-columns:1fr}
}
.mp-cf-price-card{
  padding:20px;
  border-radius:12px;
  text-align:center;
}
.mp-cf-price-card.min{
  background:rgba(255,255,255,.06);
  border:1px solid rgba(255,255,255,.1);
}
.mp-cf-price-card.objetivo{
  background:linear-gradient(135deg,rgba(168,126,79,.3) 0%,rgba(168,126,79,.15) 100%);
  border:1px solid var(--accent);
}
.mp-cf-price-label{
  font-size:11px;
  letter-spacing:.15em;
  text-transform:uppercase;
  color:rgba(255,255,255,.6);
  margin-bottom:4px;
}
.mp-cf-price-card.objetivo .mp-cf-price-label{
  color:var(--accent);
}
.mp-cf-price-sub{
  font-size:11px;
  color:rgba(255,255,255,.4);
  margin-bottom:10px;
}
.mp-cf-price-value{
  font-size:28px;
  font-weight:500;
  color:#fff;
}
.mp-cf-price-card.objetivo .mp-cf-price-value{
  color:var(--accent);
  font-size:32px;
}

/* Metrics */
.mp-cf-metrics{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:12px;
}
@media(max-width:700px){
  .mp-cf-metrics{grid-template-columns:1fr}
}
.mp-cf-metric{
  display:flex;
  align-items:center;
  gap:12px;
  padding:14px;
  background:rgba(255,255,255,.05);
  border-radius:10px;
}
.mp-cf-metric-icon{
  width:36px;
  height:36px;
  background:rgba(168,126,79,.2);
  border-radius:8px;
  display:flex;
  align-items:center;
  justify-content:center;
  color:var(--accent);
  font-size:14px;
}
.mp-cf-metric-info{
  display:flex;
  flex-direction:column;
  gap:2px;
}
.mp-cf-metric-value{
  font-size:16px;
  font-weight:500;
  color:#fff;
}
.mp-cf-metric-label{
  font-size:10px;
  letter-spacing:.05em;
  color:rgba(255,255,255,.5);
}

/* Scenarios */
.mp-cf-scenarios{
  margin-top:20px;
  padding-top:20px;
  border-top:1px solid rgba(255,255,255,.1);
}
.mp-cf-scenarios-title{
  font-size:11px;
  letter-spacing:.12em;
  text-transform:uppercase;
  color:rgba(255,255,255,.6);
  margin-bottom:14px;
  display:flex;
  align-items:center;
  gap:8px;
}
.mp-cf-scenarios-title i{
  color:#F5C87A;
}
.mp-cf-scenarios-grid{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:10px;
}
@media(max-width:600px){
  .mp-cf-scenarios-grid{grid-template-columns:1fr}
}
.mp-cf-scenario{
  background:rgba(255,255,255,.05);
  border-radius:10px;
  padding:14px;
  text-align:center;
  display:flex;
  flex-direction:column;
  gap:4px;
}
.mp-cf-scenario .pct{
  font-size:18px;
  font-weight:500;
  color:#fff;
}
.mp-cf-scenario .info{
  font-size:11px;
  color:rgba(255,255,255,.5);
}
.mp-cf-scenario .price{
  font-size:15px;
  font-weight:500;
  color:var(--accent);
  margin-top:4px;
}
.mp-cf-scenarios-hint{
  margin:14px 0 0;
  font-size:12px;
  color:rgba(255,255,255,.4);
  font-style:italic;
  text-align:center;
}

/* Legacy summary - keep for compatibility */
.mp-cf-summary{
  background:#fff;
  border-radius:14px;
  padding:16px;
}
.mp-cf-sum-row{
  display:flex;
  justify-content:space-between;
  align-items:center;
  padding:10px 0;
  border-bottom:1px solid var(--rose-2);
  font-size:14px;
  color:var(--muted);
}
.mp-cf-sum-row:last-child{
  border-bottom:none;
}
.mp-cf-sum-row strong{
  font-size:16px;
  font-weight:600;
  color:var(--ink);
}
.mp-cf-sum-row.highlight{
  background:var(--rose);
  margin:12px -16px -16px;
  padding:16px;
  border-radius:0 0 14px 14px;
  border-bottom:none;
}
.mp-cf-sum-row.highlight strong{
  font-size:18px;
  color:var(--accent);
}

/* Modal */
.mp-modal-overlay{
  position:fixed;
  top:0 !important;
  left:0 !important;
  right:0 !important;
  bottom:0 !important;
  width:100vw !important;
  height:100vh !important;
  background:rgba(74,58,47,.5);
  backdrop-filter:blur(4px);
  display:flex;
  align-items:center;
  justify-content:center;
  z-index:9999;
  padding:20px;
  margin:0 !important;
  box-sizing:border-box;
  transform:none !important;
  animation:mp-modal-fade .2s ease;
}
@keyframes mp-modal-fade{
  from{opacity:0}
  to{opacity:1}
}
.mp-modal{
  background:#fff;
  border-radius:20px;
  width:calc(100% - 40px);
  max-width:500px;
  overflow:hidden;
  display:flex;
  flex-direction:column;
  box-shadow:0 24px 64px rgba(74,58,47,.25);
  animation:mp-modal-scale .25s ease;
}
@keyframes mp-modal-scale{
  from{opacity:0;transform:scale(.95)}
  to{opacity:1;transform:none}
}
.mp-modal-header{
  display:flex;
  justify-content:space-between;
  align-items:center;
  padding:16px 24px;
  border-bottom:1px solid var(--rose-2);
}
.mp-modal-header h3{
  margin:0;
  font-size:18px;
  font-weight:500;
  color:var(--ink);
}
.mp-modal-close{
  width:32px;
  height:32px;
  background:var(--rose);
  border:none;
  border-radius:8px;
  display:flex;
  align-items:center;
  justify-content:center;
  cursor:pointer;
  color:var(--muted);
  font-size:14px;
  transition:all .2s ease;
}
.mp-modal-close:hover{
  background:var(--ink);
  color:var(--bg);
}
.mp-modal-body{
  padding:20px 24px;
  display:flex;
  flex-direction:column;
  gap:14px;
  overflow:hidden;
}
.mp-field{
  display:flex;
  flex-direction:column;
  gap:4px;
}
.mp-field label{
  font-size:11px;
  letter-spacing:.08em;
  text-transform:uppercase;
  color:var(--muted-2);
}
.mp-field input,
.mp-field select{
  padding:10px 12px;
  border:1px solid var(--rose-2);
  border-radius:8px;
  font-family:var(--serif);
  font-size:14px;
  background:#fff;
  transition:all .2s ease;
}
.mp-field input:focus,
.mp-field select:focus{
  border-color:var(--accent);
  outline:none;
  box-shadow:0 0 0 3px rgba(168,126,79,.12);
}
.mp-field select{
  appearance:none;
  -webkit-appearance:none;
  -moz-appearance:none;
  background:#fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath fill='%237A6558' d='M2 4l4 4 4-4'/%3E%3C/svg%3E") no-repeat right 12px center;
  background-size:12px;
  padding-right:32px;
  cursor:pointer;
}
.mp-field select:hover{
  border-color:var(--muted-2);
  background-color:var(--rose);
}
.mp-field select option{
  padding:12px;
  background:#fff;
  color:var(--ink);
  font-family:var(--serif);
}
.mp-field select:disabled{
  opacity:.6;
  cursor:not-allowed;
  background-color:var(--rose);
}
.mp-field-row{
  display:grid;
  grid-template-columns:1fr 1fr 100px;
  gap:10px;
}
.mp-field-row .mp-field{
  min-width:0;
}
.mp-field-row .mp-field select{
  width:100%;
}
.mp-input-prefix{
  display:flex;
  align-items:center;
  background:#fff;
  border:1px solid var(--rose-2);
  border-radius:8px;
  overflow:hidden;
  transition:border-color .2s ease;
  min-width:0;
}
.mp-input-prefix:focus-within{
  border-color:var(--accent);
}
.mp-input-prefix span{
  padding:10px 8px 10px 12px;
  color:var(--muted-2);
  font-size:14px;
}
.mp-input-prefix input{
  flex:1;
  padding:10px 12px 10px 0;
  border:none;
  font-family:var(--serif);
  font-size:14px;
}
.mp-input-prefix input:focus{
  outline:none;
}
.mp-modal-footer{
  display:flex;
  justify-content:flex-end;
  gap:12px;
  padding:16px 24px;
  border-top:1px solid var(--rose-2);
  background:var(--rose);
}
.mp-modal-cancel{
  padding:12px 20px;
  background:transparent;
  color:var(--muted);
  border:1px solid var(--rose-2);
  border-radius:8px;
  font-family:var(--serif);
  font-size:13px;
  letter-spacing:.08em;
  cursor:pointer;
  transition:all .2s ease;
}
.mp-modal-cancel:hover{
  background:#fff;
  border-color:var(--muted-2);
  color:var(--ink);
}
.mp-modal-save{
  padding:12px 24px;
  background:var(--ink);
  color:var(--bg);
  border:none;
  border-radius:8px;
  font-family:var(--serif);
  font-size:13px;
  letter-spacing:.08em;
  cursor:pointer;
  transition:all .2s ease;
}
.mp-modal-save:hover{
  background:var(--accent);
}

/* Responsive: Productos */
@media(max-width:900px){
  .mp-header{flex-direction:column;align-items:stretch}
  .mp-add-btn{width:100%;justify-content:center}
  .mp-stats{flex-wrap:nowrap;overflow-x:auto;padding-bottom:8px}
  .mp-stat{min-width:100px}
  .mp-card{flex-direction:column;align-items:stretch;gap:16px}
  .mp-card-main{flex-direction:column;align-items:stretch;gap:12px}
  .mp-card-numbers{align-items:flex-start}
  .mp-card-actions{justify-content:flex-end}
}
@media(max-width:600px){
  .mp-field-row{grid-template-columns:1fr 1fr;gap:8px}
  .mp-field-row .mp-field:last-child{grid-column:1 / -1}
  .mp-modal{border-radius:16px;margin:10px}
  .mp-modal-header{padding:14px 18px}
  .mp-modal-body{padding:16px 18px;gap:12px}
  .mp-modal-footer{padding:14px 18px;flex-direction:column}
  .mp-modal-cancel,.mp-modal-save{width:100%;justify-content:center}
  .mp-cf-add{flex-direction:column}
  .mp-cf-add input[type="number"]{width:100%}
  .mp-cf-prices{grid-template-columns:1fr}
  .mp-cf-metrics{grid-template-columns:1fr}
}

/* ========================================================================== */
/* CRM - CLIENTAS (Premium Redesign)                                          */
/* ========================================================================== */

.crm{padding:10px 0;max-width:1200px}

/* Header con gradiente sutil */
.crm-header{
  display:flex;justify-content:space-between;align-items:center;gap:24px;
  margin-bottom:32px;flex-wrap:wrap;
  padding:24px 28px;
  background:linear-gradient(135deg,rgba(255,255,255,.9),rgba(250,233,225,.6));
  border:1px solid rgba(156,132,120,.15);
  border-radius:20px;
  box-shadow:0 4px 24px rgba(74,58,47,.04)
}
.crm-title{display:flex;flex-direction:column;gap:6px}
.crm-eyebrow{
  font-size:11px;letter-spacing:.35em;text-transform:uppercase;
  color:var(--accent);font-weight:500
}
.crm-title h2{margin:0;font-size:clamp(26px,4vw,34px);font-weight:400;color:var(--ink)}
.crm-actions{display:flex;gap:14px;align-items:center;flex-wrap:wrap}
.crm-search{position:relative;display:flex;align-items:center}
.crm-search i{position:absolute;left:16px;color:var(--muted-2);font-size:14px;pointer-events:none}
.crm-search input{
  padding:14px 18px 14px 46px;
  border:2px solid transparent;
  border-radius:14px;
  font-family:var(--serif);font-size:15px;
  width:280px;
  background:rgba(255,255,255,.95);
  box-shadow:0 2px 12px rgba(74,58,47,.06);
  transition:all .25s ease
}
.crm-search input:focus{
  border-color:var(--accent);outline:none;
  box-shadow:0 4px 20px rgba(168,126,79,.15)
}
.crm-search input::placeholder{color:var(--muted-3)}
.crm-add-btn{
  display:flex;align-items:center;gap:10px;
  padding:14px 24px;
  background:linear-gradient(135deg,var(--ink),#5a4a3f);
  color:var(--bg);border:none;border-radius:14px;
  font-family:var(--serif);font-size:13px;letter-spacing:.08em;
  cursor:pointer;transition:all .3s ease;
  box-shadow:0 4px 16px rgba(74,58,47,.2)
}
.crm-add-btn:hover{
  background:linear-gradient(135deg,var(--accent),#c4a070);
  transform:translateY(-2px);
  box-shadow:0 6px 24px rgba(168,126,79,.3)
}
.crm-add-btn i{font-size:12px}

/* Stats Cards - Premium Grid */
.crm-quick-stats{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(180px,1fr));
  gap:18px;margin-bottom:28px
}
.crm-stat{
  background:linear-gradient(145deg,#fff,#fdfbf9);
  border:1px solid rgba(156,132,120,.12);
  border-radius:18px;
  padding:22px 24px;
  display:flex;flex-direction:column;gap:8px;
  position:relative;overflow:hidden;
  transition:all .3s ease
}
.crm-stat::before{
  content:'';position:absolute;top:0;left:0;right:0;height:4px;
  background:linear-gradient(90deg,var(--rose-2),var(--rose-3));
  opacity:0;transition:opacity .3s
}
.crm-stat:hover{
  transform:translateY(-4px);
  box-shadow:0 12px 32px rgba(74,58,47,.1)
}
.crm-stat:hover::before{opacity:1}
.crm-stat .val{
  font-size:32px;font-weight:600;
  color:var(--ink);line-height:1;
  letter-spacing:-.02em
}
.crm-stat .lab{
  font-size:11px;letter-spacing:.14em;text-transform:uppercase;
  color:var(--muted-2);font-weight:500;
  display:flex;align-items:center;gap:6px
}
.crm-stat .lab i{font-size:12px;opacity:.7}
.crm-stat.accent{
  background:linear-gradient(145deg,#4A3A2F,#3d302a);
  border:none;
  box-shadow:0 8px 28px rgba(74,58,47,.25)
}
.crm-stat.accent::before{background:linear-gradient(90deg,var(--accent),#d4b896)}
.crm-stat.accent .val,.crm-stat.accent .lab{color:#fff}
.crm-stat.accent .lab{opacity:.75}

/* Lista de clientas - Cards Style */
.crm-list{
  background:#fff;
  border:1px solid rgba(156,132,120,.1);
  border-radius:20px;
  overflow:hidden;
  box-shadow:0 4px 24px rgba(74,58,47,.04)
}
.crm-loading,.crm-empty{
  padding:80px 30px;text-align:center;
  color:var(--muted);
  display:flex;flex-direction:column;align-items:center;justify-content:center;
  background:linear-gradient(180deg,#fff,var(--rose))
}
.crm-empty i{
  font-size:56px;
  color:var(--rose-3);margin-bottom:20px;
  display:block;opacity:.6
}
.crm-empty p{font-size:16px;margin:0 0 16px}

/* Table Premium */
.crm-table{width:100%;border-collapse:collapse}
.crm-table th{
  padding:18px 20px;text-align:left;
  font-size:10px;letter-spacing:.18em;text-transform:uppercase;
  color:var(--muted-2);font-weight:600;
  background:linear-gradient(180deg,var(--rose),#f8ede6);
  border-bottom:2px solid rgba(156,132,120,.1);
  position:sticky;top:0;z-index:1
}
.crm-table td{
  padding:20px;
  border-bottom:1px solid rgba(156,132,120,.08);
  font-size:14px;color:var(--ink);
  vertical-align:middle;
  transition:background .2s
}
.crm-table tbody tr{transition:all .2s ease}
.crm-table tbody tr:hover{background:linear-gradient(90deg,var(--rose),transparent)}
.crm-table tbody tr:hover td{border-color:transparent}
.crm-table tr:last-child td{border-bottom:none}

/* Avatar Premium */
.crm-name{display:flex;align-items:center;gap:16px}
.crm-name .avatar{
  width:48px;height:48px;
  background:linear-gradient(145deg,var(--accent),#d4b896);
  color:#fff;border-radius:14px;
  display:flex;align-items:center;justify-content:center;
  font-size:18px;font-weight:600;
  box-shadow:0 4px 12px rgba(168,126,79,.25);
  letter-spacing:-.02em
}
.crm-name-wrap{display:flex;flex-direction:column;gap:6px}
.crm-name-wrap>span:first-child{font-weight:500;font-size:15px}
.crm-name-wrap .segment-badge{font-size:9px;padding:3px 10px;border-radius:6px}

/* Contact Info */
.crm-contact{display:flex;flex-direction:column;gap:4px;font-size:12px;color:var(--muted)}
.crm-contact span{display:flex;align-items:center;gap:8px}
.crm-contact i{width:16px;color:var(--muted-3);font-size:11px}
.crm-table .center{text-align:center}
.crm-table .muted{color:var(--muted-2);font-size:13px}

/* Puntos Badge Premium */
.puntos-badge{
  display:inline-flex;align-items:center;justify-content:center;
  min-width:40px;
  background:linear-gradient(145deg,#FDF6E3,#F5E6C8);
  padding:6px 14px;border-radius:10px;
  font-size:13px;font-weight:600;
  color:#9A7B4F;
  box-shadow:inset 0 -2px 0 rgba(154,123,79,.15)
}

/* Action Buttons Premium */
.crm-actions-cell{display:flex;gap:8px;justify-content:flex-end}
.crm-actions-cell button{
  width:38px;height:38px;border:none;
  background:linear-gradient(145deg,#fff,var(--rose));
  color:var(--muted);border-radius:10px;
  cursor:pointer;transition:all .25s ease;
  box-shadow:0 2px 8px rgba(74,58,47,.06)
}
.crm-actions-cell button:hover{
  background:linear-gradient(145deg,var(--ink),#5a4a3f);
  color:#fff;
  transform:scale(1.08);
  box-shadow:0 4px 16px rgba(74,58,47,.2)
}
.crm-actions-cell .crm-view:hover{
  background:linear-gradient(145deg,var(--accent),#d4b896)
}

/* Responsive */
@media(max-width:768px){
  .crm-header{padding:20px;flex-direction:column;align-items:stretch}
  .crm-actions{justify-content:stretch}
  .crm-search input{width:100%}
  .crm-add-btn{justify-content:center}
  .crm-quick-stats{grid-template-columns:1fr 1fr}
  .crm-table th,.crm-table td{padding:14px 12px}
  .crm-name .avatar{width:40px;height:40px;font-size:15px}
}

/* Modal CRM */
.crm-modal-overlay{
  position:fixed;
  top:0;left:0;right:0;bottom:0;
  background:rgba(40,32,26,.5);
  display:flex;
  align-items:flex-start;
  justify-content:center;
  z-index:9999;
  padding-top:140px;
  padding-left:20px;
  padding-right:20px;
  padding-bottom:40px;
  box-sizing:border-box;
  overflow-y:auto
}
.crm-modal{
  background:#fff;
  border-radius:20px;
  width:100%;
  max-width:440px;
  display:flex;
  flex-direction:column;
  overflow:hidden;
  box-shadow:0 24px 80px rgba(40,32,26,.25);
  margin-bottom:auto
}
.crm-modal-inner{display:contents}

/* Header */
.crm-modal-header{
  background:var(--ink);
  padding:20px 24px;
  display:flex;
  align-items:center;
  gap:14px;
  flex-shrink:0
}
.crm-modal-header .modal-icon{
  width:44px;height:44px;
  background:rgba(255,255,255,.1);
  border-radius:12px;
  display:flex;align-items:center;justify-content:center
}
.crm-modal-header .modal-icon i{font-size:17px;color:#fff}
.crm-modal-header .modal-titles{flex:1;min-width:0}
.crm-modal-header h3{margin:0;font-size:17px;font-weight:600;color:#fff}
.crm-modal-header .modal-sub{margin:3px 0 0;font-size:12px;color:rgba(255,255,255,.5)}
.crm-modal-close{
  width:32px;height:32px;border:none;
  background:rgba(255,255,255,.1);
  color:rgba(255,255,255,.6);
  cursor:pointer;border-radius:8px;
  display:flex;align-items:center;justify-content:center;
  font-size:13px;transition:all .2s
}
.crm-modal-close:hover{background:rgba(255,255,255,.2);color:#fff}

/* Body */
.crm-modal-body{padding:24px;overflow-y:auto;flex:1}
.crm-modal-body.detail{padding:0}

/* Form */
.crm-form{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.crm-field{display:flex;flex-direction:column;gap:6px}
.crm-field.full{grid-column:1/-1}
.crm-field label{font-size:11px;font-weight:600;color:var(--ink);letter-spacing:.03em;text-transform:uppercase}
.crm-field label .req{color:var(--accent);margin-left:2px}
.crm-field input,.crm-field textarea,.crm-field select{
  width:100%;padding:12px 14px;
  border:1px solid rgba(74,58,47,.12);
  border-radius:10px;
  font-family:var(--serif);font-size:14px;
  background:#fff;color:var(--ink);
  box-sizing:border-box;transition:border-color .2s
}
.crm-field input::placeholder,.crm-field textarea::placeholder{color:var(--muted-2)}
.crm-field input:focus,.crm-field textarea:focus,.crm-field select:focus{border-color:var(--accent);outline:none}
.crm-field textarea{resize:vertical;min-height:64px}

/* Password Section */
.crm-password-section label i{margin-right:6px;color:var(--accent)}
.crm-password-status{
  display:flex;align-items:center;gap:8px;
  padding:10px 14px;border-radius:10px;
  font-size:13px;margin-bottom:8px
}
.crm-password-status.has-password{
  background:linear-gradient(135deg,rgba(104,159,99,.1),rgba(104,159,99,.05));
  color:#5a8a55
}
.crm-password-status.has-password i{color:#689f63}
.crm-password-status.no-password{
  background:rgba(74,58,47,.04);
  color:var(--muted)
}
.crm-btn-link{
  background:none;border:none;
  color:var(--accent);font-size:12px;font-weight:500;
  cursor:pointer;margin-left:auto;
  text-decoration:underline;text-underline-offset:2px
}
.crm-btn-link:hover{color:var(--accent-dark)}
.crm-password-fields{display:flex;flex-direction:column;gap:8px}
.crm-password-fields input{
  font-size:13px;
  letter-spacing:.5px
}

/* Footer */
.crm-modal-footer{
  display:flex;justify-content:flex-end;align-items:center;gap:10px;
  padding:16px 24px;
  background:var(--rose);
  border-top:1px solid rgba(74,58,47,.06);
  flex-shrink:0
}
.crm-btn-cancel{
  padding:11px 20px;background:transparent;
  border:1px solid rgba(74,58,47,.15);border-radius:10px;
  color:var(--muted);font-family:var(--serif);font-size:13px;
  cursor:pointer;transition:all .2s
}
.crm-btn-cancel:hover{background:#fff;border-color:var(--muted-2);color:var(--ink)}
.crm-btn-save{
  padding:11px 20px;background:var(--ink);color:#fff;
  border:none;border-radius:10px;
  font-family:var(--serif);font-size:13px;font-weight:500;
  cursor:pointer;display:flex;align-items:center;gap:8px;transition:all .2s
}
.crm-btn-save:hover{background:var(--accent)}
.crm-btn-save .btn-icon{
  width:22px;height:22px;background:rgba(255,255,255,.15);
  border-radius:50%;display:flex;align-items:center;justify-content:center
}
.crm-btn-save .btn-icon i{font-size:10px}
.crm-btn-delete{
  padding:11px 18px;background:transparent;
  border:1px solid rgba(168,86,74,.25);color:var(--danger);
  border-radius:10px;font-family:var(--serif);font-size:13px;
  cursor:pointer;margin-right:auto;display:flex;align-items:center;gap:6px;transition:all .2s
}
.crm-btn-delete:hover{background:rgba(168,86,74,.08)}
.crm-btn-delete i{font-size:11px}

/* Detalle de clienta */
.crm-detail-header{
  display:flex;gap:20px;
  padding:20px clamp(20px,4vw,28px);
  background:rgba(74,58,47,.02);
  border-bottom:1px solid rgba(74,58,47,.06);
  flex-wrap:wrap;
  align-items:flex-start
}
.crm-detail-info{flex:1;min-width:140px}
.crm-detail-info p{
  margin:6px 0;font-size:13px;color:var(--muted);
  display:flex;align-items:center;gap:8px
}
.crm-detail-info p i{width:16px;color:var(--muted-2);text-align:center;font-size:12px}
.crm-detail-info p a{color:var(--ink);text-decoration:none;transition:color .3s cubic-bezier(.32,.72,0,1)}
.crm-detail-info p a:hover{color:var(--accent)}
.crm-detail-stats{display:flex;gap:16px;align-items:center}
.crm-detail-stats .stat{text-align:center;padding:8px 12px;background:#fff;border-radius:8px}
.crm-detail-stats .stat .val{display:block;font-size:18px;font-weight:500;color:var(--ink)}
.crm-detail-stats .stat .lab{display:block;font-size:9px;letter-spacing:.1em;text-transform:uppercase;color:var(--muted-2)}
.crm-detail-stats .stat.accent{background:linear-gradient(135deg,#F5E6A3,#E8D68A)}
.crm-detail-notes{padding:16px 24px;border-bottom:1px solid var(--rose-2)}
.crm-detail-notes .note{padding:12px 16px;border-radius:8px;font-size:13px;display:flex;align-items:flex-start;gap:10px;margin-bottom:8px}
.crm-detail-notes .note:last-child{margin-bottom:0}
.crm-detail-notes .note i{margin-top:2px;color:var(--muted-2)}
.crm-detail-notes .note.warning{background:#FFF5F0;color:#A8564A}
.crm-detail-notes .note.warning i{color:#A8564A}
.crm-detail-section{padding:20px 24px;border-bottom:1px solid var(--rose-2)}
.crm-detail-section:last-child{border-bottom:none}
.crm-detail-section h5{margin:0 0 16px;font-size:13px;font-weight:500;color:var(--ink);display:flex;align-items:center;gap:8px}
.crm-detail-section h5 i{color:var(--accent)}
.crm-detail-section .empty{color:var(--muted);font-size:13px;font-style:italic}
.crm-history{display:flex;flex-direction:column;gap:8px}
.history-item{display:flex;align-items:center;gap:16px;padding:12px;background:var(--rose);border-radius:8px}
.history-item .date{font-size:12px;color:var(--muted);min-width:80px}
.history-item .info{flex:1;display:flex;align-items:center;gap:12px;flex-wrap:wrap}
.history-item .servicio{font-size:14px;color:var(--ink)}
.history-item .monto{font-size:14px;font-weight:500;color:var(--ink)}
.history-item .puntos{font-size:11px;background:#E8F5E8;color:var(--green);padding:2px 8px;border-radius:10px}
.crm-redemptions{display:flex;flex-direction:column;gap:6px}
.redemption-item{display:flex;align-items:center;gap:12px;padding:10px;background:var(--rose);border-radius:6px;font-size:13px}
.redemption-item .date{color:var(--muted);min-width:80px}
.redemption-item .reward{flex:1;color:var(--ink)}
.redemption-item .puntos{color:var(--danger)}

/* ========================================================================== */
/* ANALYTICS - REPORTES (Premium Design)                                      */
/* ========================================================================== */

.analytics{padding:0}

/* Header con glassmorphism */
.analytics-header{
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:24px;
  margin-bottom:32px;
  padding:28px 32px;
  background:linear-gradient(135deg,rgba(74,58,47,.04),rgba(74,58,47,.01));
  border:1px solid rgba(74,58,47,.06);
  border-radius:24px;
  flex-wrap:wrap
}
.analytics-title{display:flex;flex-direction:column;gap:6px}
.analytics-eyebrow{
  font-size:10px;
  letter-spacing:.35em;
  text-transform:uppercase;
  color:var(--accent);
  font-weight:500;
  display:inline-flex;
  align-items:center;
  gap:8px
}
.analytics-eyebrow::before{
  content:'';
  width:8px;
  height:8px;
  background:var(--accent);
  border-radius:50%;
  animation:pulse-dot 2s ease-in-out infinite
}
@keyframes pulse-dot{0%,100%{opacity:1;transform:scale(1)}50%{opacity:.5;transform:scale(.8)}}
.analytics-title h2{margin:0;font-size:32px;font-weight:300;color:var(--ink);letter-spacing:-.02em}

/* Period selector pills */
.analytics-period{
  display:flex;
  gap:4px;
  padding:4px;
  background:rgba(74,58,47,.04);
  border-radius:16px
}
.period-btn{
  padding:12px 20px;
  border:none;
  background:transparent;
  border-radius:12px;
  font-family:var(--serif);
  font-size:12px;
  color:var(--muted);
  cursor:pointer;
  transition:all .4s cubic-bezier(.32,.72,0,1);
  font-weight:500;
  letter-spacing:.02em
}
.period-btn:hover{color:var(--ink)}
.period-btn.on{
  background:#fff;
  color:var(--ink);
  box-shadow:0 2px 12px rgba(74,58,47,.1),0 1px 3px rgba(74,58,47,.08)
}

/* KPI Dashboard - Bento style */
.analytics-dashboard{
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:16px;
  margin-bottom:32px
}
.analytics-loading{
  grid-column:1/-1;
  padding:60px;
  text-align:center;
  color:var(--muted);
  font-size:14px
}

/* KPI Cards con glassmorphism */
.dash-card{
  position:relative;
  background:#fff;
  border:1px solid rgba(74,58,47,.06);
  border-radius:20px;
  padding:24px;
  display:flex;
  flex-direction:column;
  gap:16px;
  overflow:hidden;
  transition:all .5s cubic-bezier(.32,.72,0,1)
}
.dash-card::before{
  content:'';
  position:absolute;
  top:0;left:0;right:0;
  height:3px;
  background:linear-gradient(90deg,transparent,var(--rose-2),transparent);
  opacity:0;
  transition:opacity .4s ease
}
.dash-card:hover{
  transform:translateY(-2px);
  box-shadow:0 12px 40px rgba(74,58,47,.08)
}
.dash-card:hover::before{opacity:1}

/* Highlight card - revenue */
.dash-card.highlight{
  background:linear-gradient(145deg,#4A3A2F 0%,#5C4A3D 50%,#4A3A2F 100%);
  border:none;
  grid-column:span 1
}
.dash-card.highlight::before{background:linear-gradient(90deg,transparent,rgba(255,255,255,.2),transparent)}
.dash-card.highlight .dash-icon{background:rgba(255,255,255,.12);backdrop-filter:blur(8px)}
.dash-card.highlight .dash-icon i{color:#fff}
.dash-card.highlight .dash-value,.dash-card.highlight .dash-label{color:#fff}
.dash-card.highlight .dash-label{opacity:.7}

.dash-icon{
  width:52px;
  height:52px;
  background:linear-gradient(135deg,var(--rose),rgba(232,224,213,.5));
  border-radius:16px;
  display:flex;
  align-items:center;
  justify-content:center;
  box-shadow:inset 0 1px 1px rgba(255,255,255,.8)
}
.dash-icon i{font-size:20px;color:var(--accent)}

.dash-info{display:flex;flex-direction:column;gap:6px}
.dash-value{font-size:28px;font-weight:400;color:var(--ink);letter-spacing:-.02em;line-height:1}
.dash-label{font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--muted-2);font-weight:500}
.dash-variation{
  font-size:12px;
  display:inline-flex;
  align-items:center;
  gap:5px;
  padding:4px 10px;
  border-radius:20px;
  font-weight:500;
  width:fit-content;
  margin-top:4px
}
.dash-variation.positive{background:rgba(111,143,106,.12);color:var(--green)}
.dash-variation.negative{background:rgba(198,85,85,.1);color:var(--danger)}

/* Charts grid - 2 column layout */
.analytics-charts-row{
  display:grid;
  grid-template-columns:2fr 1fr;
  gap:20px;
  margin-bottom:24px
}

/* Chart containers */
.analytics-section{
  background:#fff;
  border:1px solid rgba(74,58,47,.06);
  border-radius:24px;
  padding:28px;
  position:relative;
  overflow:hidden
}
.analytics-section::after{
  content:'';
  position:absolute;
  top:0;right:0;
  width:200px;
  height:200px;
  background:radial-gradient(circle,rgba(201,168,124,.06) 0%,transparent 70%);
  pointer-events:none
}
.analytics-section h3{
  margin:0 0 24px;
  font-size:14px;
  font-weight:500;
  color:var(--ink);
  display:flex;
  align-items:center;
  gap:12px;
  letter-spacing:.02em
}
.analytics-section h3 i{
  width:32px;
  height:32px;
  background:var(--rose);
  border-radius:10px;
  display:flex;
  align-items:center;
  justify-content:center;
  font-size:14px;
  color:var(--accent)
}
.analytics-chart{position:relative;height:280px}
.analytics-chart canvas{max-height:100%}
.analytics-chart .empty{
  position:absolute;
  inset:0;
  display:flex;
  align-items:center;
  justify-content:center;
  color:var(--muted);
  font-size:14px
}

/* Donut chart container */
.chart-donut-wrap{height:220px;position:relative}
.chart-donut-wrap canvas{max-height:100%}
.donut-center{
  position:absolute;
  top:50%;left:50%;
  transform:translate(-50%,-50%);
  text-align:center;
  pointer-events:none
}
.donut-center .value{font-size:28px;font-weight:400;color:var(--ink);display:block}
.donut-center .label{font-size:10px;letter-spacing:.1em;text-transform:uppercase;color:var(--muted-2)}

/* Analytics grid - 3 column */
.analytics-grid{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:20px
}

/* Card premium style */
.analytics-card{
  background:#fff;
  border:1px solid rgba(74,58,47,.06);
  border-radius:20px;
  padding:24px;
  transition:all .4s cubic-bezier(.32,.72,0,1)
}
.analytics-card:hover{
  box-shadow:0 8px 32px rgba(74,58,47,.06)
}
.analytics-card h4{
  margin:0 0 20px;
  font-size:13px;
  font-weight:500;
  color:var(--ink);
  display:flex;
  align-items:center;
  gap:10px;
  letter-spacing:.02em
}
.analytics-card h4 i{
  width:28px;
  height:28px;
  background:var(--rose);
  border-radius:8px;
  display:flex;
  align-items:center;
  justify-content:center;
  font-size:12px;
  color:var(--accent)
}
.analytics-card .empty{
  text-align:center;
  padding:40px 20px;
  color:var(--muted);
  font-size:13px
}

/* Ranking list premium */
.ranking-list{display:flex;flex-direction:column;gap:10px}
.ranking-item{
  display:flex;
  align-items:center;
  gap:14px;
  padding:14px 16px;
  background:linear-gradient(135deg,var(--rose),rgba(232,224,213,.3));
  border-radius:14px;
  transition:all .3s ease
}
.ranking-item:hover{transform:translateX(4px)}
.ranking-item .rank{
  width:28px;
  height:28px;
  background:#fff;
  border-radius:8px;
  display:flex;
  align-items:center;
  justify-content:center;
  font-size:11px;
  font-weight:600;
  color:var(--accent);
  box-shadow:0 2px 6px rgba(74,58,47,.06)
}
.ranking-item .name{flex:1;font-size:14px;color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ranking-item .count{font-size:11px;color:var(--muted);background:rgba(74,58,47,.05);padding:4px 10px;border-radius:12px}
.ranking-item .amount{font-size:14px;font-weight:500;color:var(--ink)}

/* Retention stats premium */
.retention-stats{display:flex;gap:24px;align-items:center}
.retention-chart-wrap{width:120px;height:120px;position:relative;flex-shrink:0}
.retention-chart-wrap canvas{max-width:100%;max-height:100%}
.retention-pct{
  position:absolute;
  top:50%;left:50%;
  transform:translate(-50%,-50%);
  font-size:26px;
  font-weight:400;
  color:var(--green)
}
.retention-info{flex:1}
.retention-info p{margin:0 0 8px;font-size:15px;color:var(--ink)}
.retention-info p strong{font-weight:600;color:var(--accent)}
.retention-info .sub{
  font-size:12px;
  color:var(--muted);
  padding:8px 14px;
  background:var(--rose);
  border-radius:10px;
  display:inline-block
}

/* Reminders panel premium */
.reminders-actions{display:flex;flex-direction:column;gap:12px}
.reminder-btn{
  position:relative;
  padding:16px 20px;
  border:none;
  border-radius:14px;
  font-family:var(--serif);
  font-size:13px;
  cursor:pointer;
  display:flex;
  align-items:center;
  gap:12px;
  justify-content:center;
  transition:all .4s cubic-bezier(.32,.72,0,1);
  font-weight:500;
  overflow:hidden
}
.reminder-btn{background:var(--ink);color:#fff}
.reminder-btn::before{
  content:'';
  position:absolute;
  inset:0;
  background:linear-gradient(135deg,transparent,rgba(255,255,255,.1));
  opacity:0;
  transition:opacity .3s ease
}
.reminder-btn:hover{transform:translateY(-2px);box-shadow:0 8px 24px rgba(74,58,47,.2)}
.reminder-btn:hover::before{opacity:1}
.reminder-btn:active{transform:scale(.98)}
.reminder-btn.secondary{
  background:transparent;
  border:1px solid var(--rose-2);
  color:var(--ink)
}
.reminder-btn.secondary:hover{
  border-color:var(--accent);
  color:var(--accent);
  background:rgba(201,168,124,.05)
}
.reminder-btn:disabled{opacity:.6;cursor:not-allowed;transform:none}
.reminders-note{
  margin:16px 0 0;
  font-size:11px;
  color:var(--muted);
  text-align:center;
  padding:12px;
  background:var(--rose);
  border-radius:10px
}

/* ========================================================================== */
/* FIDELIDAD                                                                  */
/* ========================================================================== */

.loyalty{padding:10px 0}
.loyalty-header{display:flex;justify-content:space-between;align-items:flex-start;gap:20px;margin-bottom:24px;flex-wrap:wrap}
.loyalty-title{display:flex;flex-direction:column;gap:4px}
.loyalty-eyebrow{font-size:10px;letter-spacing:.3em;text-transform:uppercase;color:var(--muted-2)}
.loyalty-title h2{margin:0;font-size:28px;font-weight:400;color:var(--ink)}
.loyalty-add-btn{display:flex;align-items:center;gap:8px;padding:12px 20px;background:var(--ink);color:var(--bg);border:none;border-radius:10px;font-family:var(--serif);font-size:12px;letter-spacing:.1em;cursor:pointer;transition:background .2s}
.loyalty-add-btn:hover{background:var(--accent)}

/* Info del programa */
.loyalty-info{background:#fff;border:1px solid var(--rose-2);border-radius:14px;padding:20px;margin-bottom:24px}
.loyalty-rule{display:flex;align-items:center;gap:16px}
.loyalty-rule i{font-size:24px;color:var(--accent)}
.loyalty-rule strong{font-size:15px;color:var(--ink)}
.loyalty-rule p{margin:4px 0 0;font-size:13px;color:var(--muted)}

/* Lista de recompensas */
.loyalty-rewards{min-height:200px}
.loyalty-loading,.loyalty-empty{padding:60px;text-align:center;color:var(--muted)}
.loyalty-empty i{font-size:48px;color:var(--rose-3);margin-bottom:16px;display:block}
.rewards-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:16px}
.reward-card{background:#fff;border:1px solid var(--rose-2);border-radius:14px;padding:20px;display:flex;gap:16px;transition:all .2s}
.reward-card:hover{border-color:var(--accent);box-shadow:0 4px 20px rgba(168,126,79,.1)}
.reward-card.inactive{opacity:.5}
.reward-icon{width:50px;height:50px;background:linear-gradient(135deg,var(--accent),#c9a87c);border-radius:12px;display:flex;align-items:center;justify-content:center;flex-shrink:0}
.reward-icon i{font-size:20px;color:#fff}
.reward-info{flex:1;min-width:0}
.reward-info h4{margin:0 0 4px;font-size:15px;font-weight:500;color:var(--ink)}
.reward-info p{margin:0 0 10px;font-size:13px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.reward-meta{display:flex;gap:12px;flex-wrap:wrap}
.reward-meta .puntos{display:flex;align-items:center;gap:4px;font-size:12px;color:var(--accent);font-weight:500}
.reward-meta .tipo{font-size:11px;background:var(--rose);padding:4px 10px;border-radius:20px;color:var(--muted)}
.reward-meta .segmento{font-size:11px;padding:4px 10px;border-radius:20px;display:inline-flex;align-items:center;gap:4px}
.reward-actions{display:flex;flex-direction:column;gap:6px}
.reward-actions button{width:32px;height:32px;border:none;background:transparent;color:var(--muted-2);border-radius:6px;cursor:pointer;transition:all .2s}
.reward-actions button:hover{background:var(--rose-2);color:var(--ink)}
.reward-delete:hover{background:#FFF0F0!important;color:var(--danger)!important}

/* ========================================================================== */
/* SEGMENTOS DE CLIENTES                                                      */
/* ========================================================================== */

.segments-section{
  background:#fff;
  border:1px solid var(--rose-2);
  border-radius:16px;
  padding:24px;
  margin-bottom:24px
}
.segments-header{
  display:flex;
  justify-content:space-between;
  align-items:flex-start;
  gap:16px;
  margin-bottom:20px;
  flex-wrap:wrap
}
.segments-header h3{
  margin:0;
  display:flex;
  align-items:center;
  gap:10px
}
.segments-header h3 i{color:var(--accent)}

.segments-empty{
  padding:40px 20px;
  text-align:center;
  color:var(--muted);
  display:flex;
  flex-direction:column;
  align-items:center
}
.segments-empty i{font-size:40px;color:var(--rose-3);margin-bottom:12px}

.segments-grid{
  display:grid;
  grid-template-columns:repeat(auto-fill,minmax(280px,1fr));
  gap:16px
}
.segment-card{
  background:var(--rose);
  border:1px solid var(--rose-2);
  border-radius:14px;
  padding:16px;
  display:flex;
  gap:14px;
  align-items:center;
  transition:all .2s
}
.segment-card:hover{border-color:var(--accent);box-shadow:0 4px 16px rgba(74,58,47,.08)}
.segment-card.inactive{opacity:.5}
.segment-icon{
  width:44px;
  height:44px;
  border-radius:12px;
  display:flex;
  align-items:center;
  justify-content:center;
  flex-shrink:0
}
.segment-icon i{font-size:18px;color:#fff}
.segment-info{flex:1;min-width:0}
.segment-info strong{display:block;font-size:14px;font-weight:500;color:var(--ink);margin-bottom:2px}
.segment-info span{font-size:12px;color:var(--muted)}
.segment-info p{margin:4px 0 0;font-size:12px;color:var(--muted-2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.segment-actions{display:flex;gap:6px}
.segment-actions button{
  width:32px;
  height:32px;
  border:none;
  background:transparent;
  color:var(--muted-2);
  border-radius:6px;
  cursor:pointer;
  transition:all .2s
}
.segment-actions button:hover{background:#fff;color:var(--ink)}
.segment-actions .seg-delete:hover{background:#FFF0F0;color:var(--danger)}

/* Segment badge para CRM */
.segment-badge{
  display:inline-flex;
  align-items:center;
  gap:5px;
  padding:4px 10px;
  border-radius:20px;
  font-size:10px;
  color:#fff;
  font-weight:500;
  letter-spacing:.02em
}
.segment-badge i{font-size:9px}

/* Color/Icon pickers */
.color-picker,.icon-picker{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
  margin-top:6px
}
.color-opt{
  width:32px;
  height:32px;
  border:2px solid transparent;
  border-radius:8px;
  cursor:pointer;
  transition:all .2s
}
.color-opt:hover{transform:scale(1.1)}
.color-opt.selected{border-color:var(--ink);box-shadow:0 0 0 2px #fff inset}
.icon-opt{
  width:36px;
  height:36px;
  border:1px solid var(--rose-2);
  border-radius:8px;
  background:#fff;
  cursor:pointer;
  display:flex;
  align-items:center;
  justify-content:center;
  color:var(--muted);
  transition:all .2s
}
.icon-opt:hover{border-color:var(--accent);color:var(--accent)}
.icon-opt.selected{border-color:var(--ink);background:var(--ink);color:#fff}

/* Field hint */
.field-hint{
  margin:6px 0 0;
  font-size:11px;
  color:var(--muted);
  line-height:1.4
}

/* Responsive */
@media(max-width:768px){
  .segments-header{flex-direction:column;gap:12px}
  .segments-header button{width:100%}
  .segments-grid{grid-template-columns:1fr}
  .crm-header,.analytics-header,.loyalty-header{flex-direction:column;align-items:stretch}
  .crm-actions{justify-content:space-between}
  .crm-search input{width:100%}
  .crm-table{font-size:12px}
  .crm-table th,.crm-table td{padding:10px 8px}
  .crm-contact{display:none}
  .crm-detail-header{flex-direction:column;align-items:center;text-align:center}
  .crm-detail-stats{justify-content:center}
  .crm-form{grid-template-columns:1fr}
  .crm-field.full{grid-column:1}
  .crm-modal-overlay{padding-top:120px;padding-left:16px;padding-right:16px}
  .crm-modal{max-width:100%;border-radius:16px}
  .analytics-header{padding:20px}
  .analytics-title h2{font-size:24px}
  .analytics-dashboard{grid-template-columns:1fr 1fr}
  .analytics-charts-row{grid-template-columns:1fr}
  .analytics-grid{grid-template-columns:1fr}
  .analytics-chart{height:220px}
  .retention-stats{flex-direction:column;text-align:center}
  .rewards-grid{grid-template-columns:1fr}
}
@media(max-width:480px){
  .analytics-header{flex-direction:column;gap:16px;align-items:stretch}
  .analytics-period{justify-content:center}
  .analytics-dashboard{grid-template-columns:1fr}
  .dash-card{flex-direction:row;align-items:center}
  .analytics-section{padding:20px;border-radius:18px}
  .analytics-card{padding:18px;border-radius:16px}
  .crm-quick-stats{flex-direction:column}
  .crm-stat{min-width:unset}
  .crm-modal-overlay{padding-top:100px;padding-left:12px;padding-right:12px}
  .crm-modal-header{padding:16px 18px;gap:12px}
  .crm-modal-header .modal-icon{width:38px;height:38px}
  .crm-modal-header h3{font-size:15px}
  .crm-modal-header .modal-sub{display:none}
  .crm-modal-body{padding:18px}
  .crm-modal-footer{padding:14px 18px}
}

/* ========================================================================
   CUPONES ADMIN
   ======================================================================== */
.cupones-panel{max-width:1100px}
.cupones-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:16px}
.cupon-card{background:var(--rose);border:1px solid var(--line);padding:0;overflow:hidden;transition:box-shadow .2s}
.cupon-card:hover{box-shadow:0 4px 20px rgba(74,58,47,.1)}
.cupon-card.inactivo{opacity:.7}
.cupon-card.expirado{opacity:.5;background:#f5f0ed}
.cupon-card-header{display:flex;justify-content:space-between;align-items:center;padding:16px 18px;border-bottom:1px solid var(--line-soft);background:rgba(255,255,255,.4)}
.cupon-codigo{font-size:18px;font-weight:600;letter-spacing:.1em;color:var(--ink)}
.cupon-estado{font-size:9px;letter-spacing:.12em;text-transform:uppercase;padding:5px 10px;border-radius:20px}
.cupon-estado.activo{background:rgba(39,174,96,.15);color:#1E8449}
.cupon-estado.inactivo{background:rgba(156,132,120,.15);color:var(--muted)}
.cupon-estado.expirado{background:rgba(192,57,43,.1);color:var(--danger)}
.cupon-card-body{padding:18px}
.cupon-valor{font-size:28px;font-weight:500;color:var(--accent);margin-bottom:8px}
.cupon-desc{margin:0 0 12px;font-size:13px;color:var(--muted);line-height:1.5}
.cupon-meta{display:flex;flex-wrap:wrap;gap:12px}
.cupon-meta span{font-size:11px;color:var(--muted-2);display:flex;align-items:center;gap:5px}
.cupon-meta i{font-size:10px;color:var(--muted-3)}
.cupon-card-actions{display:flex;gap:8px;padding:14px 18px;border-top:1px solid var(--line-soft);background:rgba(255,255,255,.3)}
.cupon-card-actions button{flex:1;padding:10px;font-family:var(--serif);font-size:11px;letter-spacing:.08em;border:1px solid var(--line);background:#fff;color:var(--muted);cursor:pointer;transition:all .2s;display:flex;align-items:center;justify-content:center;gap:6px}
.cupon-card-actions button:hover{border-color:var(--ink);color:var(--ink)}
.cupon-card-actions .cupon-delete{flex:0 0 auto;padding:10px 14px;color:var(--muted-3)}
.cupon-card-actions .cupon-delete:hover{background:#FFF0F0;border-color:var(--danger);color:var(--danger)}

/* Modal cupones */
.cupon-modal-overlay{position:fixed;inset:0;background:rgba(74,58,47,.6);z-index:1000;display:flex;align-items:center;justify-content:center;padding:20px}
.cupon-modal{background:var(--bg);width:100%;max-width:520px;max-height:90vh;overflow-y:auto;box-shadow:0 20px 60px rgba(0,0,0,.2)}
.cupon-modal-header{display:flex;justify-content:space-between;align-items:center;padding:20px 24px;border-bottom:1px solid var(--line)}
.cupon-modal-header h3{margin:0;font-size:20px;font-weight:500;color:var(--ink)}
.cupon-modal-close{background:none;border:none;font-size:20px;color:var(--muted);cursor:pointer;padding:4px}
.cupon-modal-close:hover{color:var(--ink)}
.cupon-modal-body{padding:24px}
.cupon-field{margin-bottom:18px}
.cupon-field label{display:block;font-size:10px;letter-spacing:.16em;text-transform:uppercase;color:var(--muted-2);margin-bottom:8px}
.cupon-field input,.cupon-field select{width:100%;padding:12px 14px;font-family:var(--serif);font-size:15px;border:1px solid var(--line);background:#fff;color:var(--ink)}
.cupon-field input:focus,.cupon-field select:focus{border-color:var(--accent);outline:none}
.cupon-field-hint{display:block;margin-top:6px;font-size:11px;color:var(--muted-3)}
.cupon-field-row{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.cupon-checkbox{display:flex;align-items:center;gap:10px;cursor:pointer}
.cupon-checkbox input{width:18px;height:18px;accent-color:var(--accent)}
.cupon-checkbox span{font-size:14px;color:var(--ink-2)}
.cupon-modal-footer{display:flex;justify-content:flex-end;gap:12px;padding:18px 24px;border-top:1px solid var(--line);background:var(--rose)}

