
:root{
  --bg:#dfe6df;--bg-deep:#d2ddd3;--paper:#fffaf4;--paper-2:#f5eee5;
  --ink:#19231c;--muted:#5c685f;--line:#bdc9bf;--line-soft:#d6ded7;
  --sage:#728873;--sage-dark:#425a49;--sage-deep:#314339;--sage-soft:#e3ece2;
  --beige:#eadbca;--gold:#ad8458;--danger:#923e3a;--warning:#fff1d8;
  --shadow:0 18px 48px rgba(33,49,39,.14);--shadow-soft:0 8px 22px rgba(33,49,39,.10);--radius:22px
}
*{box-sizing:border-box}html{background:var(--bg)}body{margin:0;font-family:Inter,system-ui,-apple-system,"Segoe UI",Roboto,Arial,sans-serif;color:var(--ink);background:radial-gradient(circle at 12% 0,rgba(173,132,88,.18),transparent 25%),radial-gradient(circle at 88% 4%,rgba(66,90,73,.18),transparent 26%),linear-gradient(180deg,var(--bg-deep),#edf0eb 50%,#e6e1da 100%);min-height:100vh}button,input,textarea{font:inherit}.hidden{display:none!important}.app-shell{width:min(1000px,100%);margin:0 auto;padding:22px 18px 88px}
.hero{display:grid;grid-template-columns:minmax(0,1.18fr) minmax(300px,.82fr);border-radius:30px;overflow:hidden;box-shadow:var(--shadow);border:1px solid rgba(49,67,57,.28);margin-bottom:18px;background:var(--paper)}
.hero-brand{display:grid;place-items:center;min-height:265px;padding:30px;background:linear-gradient(145deg,#f3e7d8,#f9f4ec)}
.brand-logo{display:block;width:min(650px,100%);height:auto;object-fit:contain;filter:drop-shadow(0 9px 18px rgba(77,45,27,.09))}
.hero-message{display:flex;flex-direction:column;justify-content:center;padding:38px 34px;background:linear-gradient(145deg,var(--sage-dark),var(--sage-deep));color:#fff}
.eyebrow{display:inline-flex;align-self:flex-start;padding:7px 12px;border-radius:999px;background:rgba(255,255,255,.12);border:1px solid rgba(255,255,255,.2);font-size:12px;font-weight:800;letter-spacing:.1em;text-transform:uppercase;color:#f5eadc}
.hero-message h1{margin:16px 0 12px;font-family:Georgia,serif;font-size:clamp(2rem,4vw,3.25rem);line-height:1.04;letter-spacing:-.03em}.hero-message p{margin:0;color:#e7eee8;font-size:1.02rem;line-height:1.58}
.card,.identity,.social-links{background:rgba(255,250,244,.98);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow-soft);padding:22px;margin-bottom:16px}.center{text-align:center;padding:48px 22px}.center p{color:var(--muted)}h1,h2,h3{font-family:Georgia,serif}h2{margin:0 0 5px;font-size:1.65rem;line-height:1.18}p{line-height:1.5}.view{animation:fade .18s ease}@keyframes fade{from{opacity:.45;transform:translateY(4px)}to{opacity:1;transform:none}}
.install-box{display:flex;align-items:center;justify-content:space-between;gap:18px;background:linear-gradient(135deg,#314339,#49604f);color:#fff;border:1px solid rgba(255,255,255,.14);border-radius:20px;box-shadow:var(--shadow-soft);padding:18px 20px;margin-bottom:16px}.install-box strong,.install-box small{display:block}.install-box strong{font-size:1.07rem}.install-box small{color:#dce6de;margin-top:4px;line-height:1.45}.install-button{background:#f6ede2!important;color:#28372e!important;border-color:#f6ede2!important;white-space:nowrap}
.tabs{display:grid;grid-template-columns:repeat(4,1fr);gap:9px;position:sticky;top:0;z-index:20;padding:10px 0 14px;background:linear-gradient(180deg,rgba(215,225,216,.98),rgba(235,237,232,.92) 76%,transparent);backdrop-filter:blur(9px)}
.tab,.button{border:1px solid var(--line);border-radius:14px;background:rgba(255,250,244,.98);color:var(--ink);padding:12px 15px;font-weight:760;cursor:pointer;transition:.2s}.tab:hover,.button:hover{transform:translateY(-1px);box-shadow:0 8px 16px rgba(33,49,39,.10)}.tab.active,.button.primary{background:linear-gradient(145deg,var(--sage-dark),var(--sage-deep));color:#fff;border-color:var(--sage-deep);box-shadow:0 11px 20px rgba(49,67,57,.22)}.button.small{padding:8px 11px;font-size:13px}.button:disabled{opacity:.55;cursor:not-allowed;transform:none;box-shadow:none}
.section-title,.section-heading,.step,.identity{display:flex;align-items:flex-start;gap:14px}.section-heading{justify-content:space-between;flex-wrap:wrap;margin-bottom:18px}.section-title p,.section-heading p,.step p{margin:0;color:var(--muted)}
.round-icon,.step>span{width:50px;height:50px;border-radius:16px;background:linear-gradient(145deg,#dfe9de,#cddccf);display:grid;place-items:center;flex:none;font-weight:900;color:var(--sage-deep);border:1px solid #c0cec2}.round-icon svg{width:24px;height:24px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin-top:18px}.form-grid label,.field{display:flex;flex-direction:column;gap:7px;font-size:13px;font-weight:740}.form-grid input,.form-grid textarea,.field input,.search{width:100%;border:1px solid #aebcaf;border-radius:13px;background:#fff;padding:13px 14px;color:var(--ink);outline:none;transition:.2s}.form-grid input::placeholder,.form-grid textarea::placeholder{color:#8a938c}.form-grid input:focus,.form-grid textarea:focus,.field input:focus,.search:focus{border-color:var(--sage-dark);box-shadow:0 0 0 4px rgba(66,90,73,.13)}.form-grid textarea{min-height:105px;resize:vertical}.full{grid-column:1/-1}.check{flex-direction:row!important;align-items:center;font-weight:520!important;gap:10px!important}.check input{width:18px!important;height:18px}.actions{display:flex;gap:8px;flex-wrap:wrap}.grow{flex:1;min-width:0}
.info-note,.price-note{background:#f0e6da;border:1px solid #d5c1a9;border-radius:14px;padding:13px;color:#534b43;font-size:13px;line-height:1.5}.alert{border-radius:14px;padding:12px 14px;font-size:13px}.alert.error{background:#fff0ee;border:1px solid #e3b6b2;color:var(--danger)}
.identity{align-items:center;background:#edf3ec}.avatar{width:46px;height:46px;border-radius:50%;display:grid;place-items:center;background:var(--sage-dark);font-weight:900;color:#fff}.identity strong,.identity small{display:block}.identity small{color:var(--muted);margin-top:3px}
.selection-summary{border:1px solid #adc0b0;border-radius:17px;background:#e6eee5;padding:15px 16px;margin:18px 0}.selection-summary.empty{border-style:dashed;background:#f7f4ef;color:var(--muted)}.selection-summary strong,.selection-summary small{display:block}.selection-summary small{color:var(--muted);margin-top:4px}
.category-list,.treatment-list,.promotion-list{display:grid;gap:12px}.category{border:1px solid #b7c4b8;border-radius:18px;overflow:hidden;background:#fff}.category-toggle{width:100%;border:0;background:#fff;padding:16px;display:flex;align-items:center;gap:13px;text-align:left;cursor:pointer}.category-mark{width:44px;height:44px;border-radius:15px;background:#eadbca;display:grid;place-items:center;font-family:Georgia,serif;font-weight:800;color:#654c36}.category-toggle strong,.category-toggle small{display:block}.category-toggle small{color:var(--muted);margin-top:3px}.chevron{font-size:22px;color:var(--muted);transition:.2s}.category.open>.category-toggle .chevron{transform:rotate(180deg)}.category-panel{display:none;border-top:1px solid #cdd6ce}.category.open .category-panel{display:block}
.service-row{width:100%;border:0;border-bottom:1px solid #d6ddd7;background:#fff;padding:14px 16px;display:flex;gap:12px;align-items:flex-start;text-align:left;cursor:pointer}.service-row:hover{background:#f0f5ef}.service-row:last-child{border-bottom:0}.service-row.selected{background:#dce8db}.service-check{width:24px;height:24px;border-radius:8px;border:1px solid #9bab9d;display:grid;place-items:center;flex:none;color:#fff;background:#fff}.service-row.selected .service-check{background:var(--sage-dark);border-color:var(--sage-dark)}.service-row strong,.service-row small{display:block}.service-row small{color:var(--muted);margin-top:4px;line-height:1.35}.service-price{font-weight:800;white-space:nowrap}.price-note{margin-top:15px}
.slot-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:9px;margin-top:14px}.slot{border:1px solid #aebcaf;background:#fff;border-radius:12px;padding:12px 6px;text-align:center;cursor:pointer;font-weight:760}.slot.selected{background:var(--sage-deep);color:#fff;border-color:var(--sage-deep)}.subtle{color:var(--muted);font-size:13px;margin-top:11px;line-height:1.5}
.treatment-card,.promotion-card,.appointment-card{border:1px solid #b7c4b8;background:#fff;border-radius:18px;padding:17px}.treatment-card h3,.promotion-card h3{margin:0 0 6px}.treatment-card p,.promotion-card p{margin:0;color:#465249}.treatment-meta,.promotion-meta{display:flex;gap:7px;flex-wrap:wrap;margin:10px 0}.chip{border-radius:999px;background:#eee2d4;padding:6px 10px;font-size:12px;font-weight:700;color:#574838;border:1px solid #dac4ad}.treatment-actions,.promotion-actions,.appointment-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:12px}.promotion-card.featured{border-color:#c5a47f;background:linear-gradient(145deg,#fffaf4,#f3e5d4);box-shadow:0 12px 24px rgba(129,90,50,.12)}
.promo-callout{background:#dce9dc;border:1px solid #a9bea9;border-radius:17px;padding:14px 15px;margin-bottom:16px;display:flex;align-items:center;gap:12px}.promo-callout strong,.promo-callout small{display:block}.promo-callout small{color:var(--muted);margin-top:3px}.appointment-card+.appointment-card{margin-top:10px}.appointment-top{display:flex;justify-content:space-between;gap:12px}.appointment-card strong,.appointment-card small{display:block}.appointment-card small{color:var(--muted);margin-top:4px}.status{border-radius:999px;padding:5px 10px;font-size:11px;font-weight:800;height:max-content}.status.pending-online,.status.pending{background:#ffe4b5;color:#714a0f}.status.confirmed{background:#cfe4d1;color:#294a30}.status.cancelled{background:#f2d3d0;color:#7b312c}.status.completed{background:#dce5ef;color:#344e69}
.social-links{text-align:center;background:#f0e8dd}.social-links p{color:var(--muted)}.social-links .actions{justify-content:center}.search{max-width:280px}.modal-backdrop{position:fixed;inset:0;background:rgba(19,29,22,.62);z-index:100;display:grid;place-items:center;padding:18px}.modal{width:min(620px,100%);max-height:90vh;overflow:auto;background:var(--paper);border-radius:24px;box-shadow:0 24px 80px rgba(0,0,0,.32)}.modal-head{display:flex;justify-content:space-between;align-items:center;padding:18px 20px;border-bottom:1px solid var(--line-soft)}.modal-head h2{margin:0}.modal-head button{border:0;background:transparent;font-size:26px;color:var(--ink)}.modal-body{padding:20px}.modal-actions{display:flex;justify-content:flex-end;gap:9px;padding:15px 20px;border-top:1px solid var(--line-soft);position:sticky;bottom:0;background:var(--paper)}.toast{position:fixed;right:18px;bottom:18px;z-index:130;background:#172019;color:#fff;padding:12px 15px;border-radius:12px;box-shadow:var(--shadow)}.spinner{width:38px;height:38px;border-radius:50%;border:4px solid #c7d3c8;border-top-color:var(--sage-deep);animation:spin .8s linear infinite;margin:0 auto 14px}@keyframes spin{to{transform:rotate(360deg)}}
@media(max-width:760px){.app-shell{padding:10px 12px 90px}.hero{grid-template-columns:1fr;border-radius:24px}.hero-brand{min-height:auto;padding:22px 18px}.brand-logo{width:96%}.hero-message{padding:26px 22px}.hero-message h1{font-size:2.25rem}.tabs{grid-template-columns:repeat(2,1fr);gap:8px;padding-top:8px}.card,.identity,.social-links{padding:16px;border-radius:18px}.form-grid{grid-template-columns:1fr}.full{grid-column:auto}.slot-grid{grid-template-columns:repeat(3,1fr)}.install-box{align-items:flex-start;flex-direction:column}.install-box .button{width:100%}.section-heading{flex-direction:column}.search{max-width:none}.modal-backdrop{padding:0;align-items:end}.modal{border-radius:22px 22px 0 0;max-height:94vh}.modal-actions .button{flex:1}.appointment-top{flex-direction:column}.status{align-self:flex-start}}
@media(max-width:480px){.hero-brand{padding:18px 12px}.hero-message h1{font-size:2rem}.slot-grid{grid-template-columns:repeat(2,1fr)}}

/* v7 · Tratamientos agrupados por categorías */
.treatment-list{display:grid;gap:12px}
.treatment-category{border:1px solid #b7c4b8;border-radius:18px;overflow:hidden;background:#fff;box-shadow:0 6px 18px rgba(37,48,38,.05)}
.treatment-category-toggle{width:100%;border:0;background:linear-gradient(145deg,#fff,#f7f4ef);padding:16px;display:flex;align-items:center;gap:13px;text-align:left;cursor:pointer;color:var(--ink)}
.treatment-category-toggle strong,.treatment-category-toggle small{display:block}
.treatment-category-toggle strong{font-family:Georgia,serif;font-size:1.18rem}
.treatment-category-toggle small{color:var(--muted);margin-top:3px}
.treatment-category-panel{display:none;border-top:1px solid #cdd6ce;background:#f8faf7;padding:10px}
.treatment-category.open .treatment-category-panel{display:grid;gap:10px}
.treatment-category.open .chevron{transform:rotate(180deg)}
.treatment-card.compact{margin:0;padding:15px;border-radius:15px;box-shadow:none}
.treatment-card-main{display:flex;align-items:flex-start;justify-content:space-between;gap:16px}
.treatment-card.compact .treatment-meta{margin:0;justify-content:flex-end;flex:none}
.treatment-card.compact h3{font-size:1.2rem}
.treatment-card.compact p{margin-top:5px;line-height:1.45}
@media(max-width:700px){
  .treatment-category-toggle{padding:14px}
  .treatment-category-panel{padding:8px}
  .treatment-card-main{flex-direction:column;gap:9px}
  .treatment-card.compact .treatment-meta{justify-content:flex-start}
}


/* v9 · Subcategorías reales y guía diferenciada */
.service-subgroup,.treatment-subgroup{border-top:1px solid #d4ddd5;background:#f7faf6}
.service-subgroup+.service-subgroup,.treatment-subgroup+.treatment-subgroup{border-top:1px solid #c8d3ca}
.service-subgroup-toggle,.treatment-subgroup-toggle{width:100%;border:0;background:linear-gradient(145deg,#f3f7f1,#eef3ed);padding:13px 15px;display:flex;align-items:center;gap:11px;text-align:left;cursor:pointer;color:var(--ink)}
.service-subgroup-toggle strong,.service-subgroup-toggle small,.treatment-subgroup-toggle strong,.treatment-subgroup-toggle small{display:block}
.service-subgroup-toggle small,.treatment-subgroup-toggle small{color:var(--muted);margin-top:2px;font-size:12px}
.service-subgroup-mark{width:34px;height:34px;border-radius:11px;background:#e9ddcf;display:grid;place-items:center;flex:none;font-family:Georgia,serif;font-weight:800;color:#654c36}
.service-subgroup-panel,.treatment-subgroup-panel{display:none;border-top:1px solid #d8e0d9;background:#fff}
.service-subgroup.open>.service-subgroup-panel,.treatment-subgroup.open>.treatment-subgroup-panel{display:block}
.service-subgroup.open>.service-subgroup-toggle .chevron,.treatment-subgroup.open>.treatment-subgroup-toggle .chevron{transform:rotate(180deg)}
.service-subgroup.depth-1>.service-subgroup-toggle,.treatment-subgroup.depth-1>.treatment-subgroup-toggle{padding-left:27px;background:#f8f5ef}
.service-subgroup.depth-2>.service-subgroup-toggle,.treatment-subgroup.depth-2>.treatment-subgroup-toggle{padding-left:39px}
.treatment-subgroup{border:1px solid #c4d0c5;border-radius:15px;overflow:hidden;margin:8px 0;background:#fff}
.treatment-subgroup-panel{padding:8px;display:none;gap:9px}
.treatment-subgroup.open>.treatment-subgroup-panel{display:grid}
.treatment-category-panel>.treatment-card.compact{margin-bottom:9px}
@media(max-width:700px){.service-subgroup-toggle,.treatment-subgroup-toggle{padding:12px}.service-subgroup.depth-1>.service-subgroup-toggle,.treatment-subgroup.depth-1>.treatment-subgroup-toggle{padding-left:20px}}

/* === v10 · servicios completos y productos === */
.service-subgroup{border:1px solid #d9e0d7;border-radius:15px;background:#fbfdfb;margin:9px 0;overflow:hidden}
.service-subgroup.depth-1{margin-left:10px;border-color:#e0d7cc;background:#fffdf9}
.service-subgroup-toggle{width:100%;border:0;background:transparent;padding:13px 14px;display:flex;align-items:center;gap:11px;text-align:left;color:var(--ink)}
.service-subgroup-toggle:hover{background:#f2f6f1}
.service-subgroup-toggle .grow{flex:1;min-width:0}.service-subgroup-toggle strong{display:block;font-family:Georgia,serif;font-size:18px;line-height:1.25}.service-subgroup-toggle small{display:block;color:var(--muted);margin-top:3px}
.service-subgroup-mark{width:36px;height:36px;border-radius:11px;background:var(--sage2);display:grid;place-items:center;color:#405842;font-weight:900;flex:none}
.service-subgroup-panel{display:none;padding:0 10px 10px}.service-subgroup.open>.service-subgroup-panel{display:block}.service-subgroup.open>.service-subgroup-toggle .chevron{transform:rotate(180deg)}
.service-card-public{border:1px solid var(--line);border-radius:14px;background:#fff;padding:13px;margin-top:8px;box-shadow:0 3px 12px rgba(47,56,48,.04)}
.service-card-public.selected{border-color:#7f967e;background:#f1f6f0;box-shadow:0 0 0 2px rgba(121,139,120,.12)}
.service-card-head{display:flex;align-items:flex-start;gap:12px}.service-card-head .grow{flex:1;min-width:0}.service-card-head h3{font-family:Georgia,serif;font-size:19px;line-height:1.25;margin:0}.service-card-head p{margin:6px 0 0;color:#625f59;line-height:1.45;font-size:14px}
.service-card-meta{display:flex;gap:6px;flex-wrap:wrap;justify-content:flex-end;max-width:150px}.service-card-meta .chip{white-space:nowrap}
.service-card-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:12px}.service-card-actions .button.primary.selected-action{background:#6e826f}
.service-selected-badge{display:inline-flex;align-items:center;gap:5px;border-radius:999px;background:#dfeade;color:#365c3e;padding:5px 9px;font-size:11px;font-weight:800;margin-top:8px}
.service-direct-group-title{font-family:Georgia,serif;font-size:17px;margin:13px 2px 5px;color:#47584a}

.product-category-list{margin-top:10px}.product-heading{align-items:center}.product-heading .search{min-width:230px}
.product-grid-public{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:11px;padding-top:8px}
.product-card-public{border:1px solid var(--line);border-radius:16px;background:#fff;padding:14px;display:flex;flex-direction:column;min-width:0}
.product-card-top{display:flex;gap:12px;align-items:flex-start}.product-image{width:70px;height:70px;border-radius:14px;object-fit:cover;border:1px solid var(--line);background:#f8f4ee;flex:none}.product-image-placeholder{width:70px;height:70px;border-radius:14px;background:#efe6da;color:#6b563a;display:grid;place-items:center;font-size:26px;flex:none}
.product-card-public h3{font-family:Georgia,serif;font-size:19px;line-height:1.25;margin:0}.product-brand{color:var(--muted);font-size:12px;margin-top:3px}.product-card-public p{color:#5f5a54;line-height:1.45;margin:11px 0 0;font-size:14px}
.product-tags{display:flex;gap:6px;flex-wrap:wrap;margin-top:10px}.product-tag{display:inline-flex;border-radius:999px;padding:5px 8px;background:#f2ede6;color:#675f56;font-size:11px;font-weight:700}.product-tag.featured{background:#e5eee2;color:#405f43}
.product-price-box{margin-top:auto;padding-top:13px;display:flex;align-items:flex-end;justify-content:space-between;gap:10px}.product-price-main{display:flex;align-items:baseline;gap:8px;flex-wrap:wrap}.product-price-current{font-family:Georgia,serif;font-size:23px;font-weight:800}.product-price-old{text-decoration:line-through;color:var(--muted);font-size:14px}.product-offer-note{display:block;color:#8a5a20;font-size:11px;font-weight:700;width:100%;margin-top:2px}
.stock-label{display:inline-flex;border-radius:999px;padding:5px 8px;font-size:11px;font-weight:800;background:#e2efe3;color:#365c3e;white-space:nowrap}.stock-label.low{background:#fff0d9;color:#825c16}.stock-label.out{background:#f6dfdc;color:#87423c}
.product-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:12px}.product-actions .button{flex:1}.product-detail-block{border:1px solid var(--line);border-radius:13px;padding:12px;margin-top:10px;background:#faf7f2}.product-detail-block strong{display:block;color:#47584a;margin-bottom:5px}.product-detail-block p{margin:0;white-space:pre-wrap;line-height:1.5}
.product-reserve-summary{border:1px solid #d5dfd2;background:#f2f7f0;border-radius:14px;padding:13px;margin-bottom:12px}.product-reserve-summary strong{display:block;font-family:Georgia,serif;font-size:20px}.product-reserve-summary small{display:block;color:var(--muted);margin-top:5px}.product-reserve-form textarea{width:100%;min-height:90px;border:1px solid var(--line);border-radius:12px;padding:11px;resize:vertical}
.product-reservation-card{border:1px solid var(--line);border-radius:14px;background:#fff;padding:13px;margin-top:9px}.product-reservation-top{display:flex;align-items:flex-start;gap:10px}.product-reservation-top .grow{flex:1;min-width:0}.product-reservation-top strong,.product-reservation-top small{display:block}.product-reservation-top small{color:var(--muted);margin-top:4px}.product-reservation-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:10px}
.product-offer-promo{border-left:4px solid #bd9864}

@media(max-width:760px){
  .service-card-head{display:block}.service-card-meta{justify-content:flex-start;max-width:none;margin-top:9px}.service-card-actions .button{flex:1;min-width:120px}
  .service-subgroup.depth-1{margin-left:5px}.service-subgroup-toggle strong{font-size:16px}.service-card-head h3{font-size:17px}
  .product-heading{align-items:stretch}.product-heading .search{width:100%;min-width:0}.product-grid-public{grid-template-columns:1fr}.product-card-top{align-items:flex-start}.product-image,.product-image-placeholder{width:62px;height:62px}.product-card-public h3{font-size:18px}
}


/* === v13 · encabezado compacto, contacto y navegación por días === */
.app-shell{width:min(1040px,100%);padding-top:14px}
.hero{grid-template-columns:minmax(0,1.12fr) minmax(315px,.88fr);border-radius:25px;margin-bottom:10px}
.hero-brand{min-height:188px;padding:20px 24px}
.brand-logo{width:min(560px,96%)}
.hero-message{padding:23px 28px}
.eyebrow{padding:5px 10px;font-size:11px}
.hero-message h1{margin:10px 0 8px;font-size:clamp(1.9rem,3.5vw,2.65rem);line-height:1.02}
.hero-message p{font-size:.94rem;line-height:1.45}
.hero-contact-actions{margin-top:14px}
.hero-contact-button{display:inline-flex;background:#f7eee3!important;color:#293a30!important;border-color:#f7eee3!important;padding:9px 13px;font-size:13px;text-decoration:none;box-shadow:none!important}
.install-box{padding:11px 15px;margin-bottom:8px;border-radius:16px;gap:14px}
.install-box strong{font-size:.96rem}.install-box small{font-size:12px;margin-top:2px;line-height:1.35}
.install-box .button{padding:9px 13px}
.tabs{gap:8px;padding:6px 0 8px}.tab{padding:10px 12px}
.card,.identity,.social-links{margin-bottom:12px}.identity{padding:13px 16px}.avatar{width:40px;height:40px}
.date-picker-block{margin-top:14px}
.date-nav-row{display:grid;grid-template-columns:44px minmax(0,1fr) 44px;gap:9px;align-items:end}
.date-field{min-width:0}.date-arrow{width:44px;height:47px;border:1px solid #aebcaf;border-radius:13px;background:#fff;color:var(--sage-deep);font-size:29px;line-height:1;font-weight:700;cursor:pointer;display:grid;place-items:center;transition:.18s}
.date-arrow:hover:not(:disabled){background:var(--sage-soft);border-color:var(--sage-dark)}.date-arrow:disabled{opacity:.35;cursor:not-allowed}
.availability-status{margin-top:11px;font-weight:750;color:#3f5144}
.availability-status.no-hours{background:#fff1e6;border:1px solid #e7c3a6;color:#7a3f24;border-radius:13px;padding:11px 13px}
.availability-help{display:flex;align-items:center;gap:14px;margin-top:10px;padding:12px 13px;border:1px solid #c6d2c7;border-radius:14px;background:#edf3ec}
.availability-help strong,.availability-help span{display:block}.availability-help strong{font-size:13px;color:#304738}.availability-help span{font-size:12px;color:var(--muted);line-height:1.4;margin-top:3px}
.contact-button{flex:none;text-decoration:none;background:var(--sage-dark)!important;color:#fff!important;border-color:var(--sage-dark)!important;white-space:nowrap}
.slot-grid:empty{display:none}
@media(max-width:760px){
  .app-shell{padding-top:7px}
  .hero{grid-template-columns:1.08fr .92fr;border-radius:20px;margin-bottom:7px}
  .hero-brand{min-height:126px;padding:13px 11px}.brand-logo{width:100%}
  .hero-message{padding:14px 13px}.eyebrow{padding:4px 7px;font-size:9px}.hero-message h1{font-size:1.42rem;margin:7px 0 5px}.hero-message p{font-size:11px;line-height:1.35}
  .hero-contact-actions{margin-top:9px}.hero-contact-button{padding:7px 8px;font-size:10px;border-radius:10px}
  .install-box{padding:10px 12px;display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center}.install-box .button{width:auto;padding:8px 10px;font-size:12px}.install-box small{display:none}
  .tabs{grid-template-columns:repeat(4,minmax(0,1fr));gap:5px;overflow-x:auto}.tab{padding:9px 5px;font-size:12px;min-width:0}
  .card,.identity,.social-links{padding:14px;margin-bottom:9px}.identity{padding:11px 13px}.avatar{width:36px;height:36px}
  .date-nav-row{grid-template-columns:40px minmax(0,1fr) 40px;gap:7px}.date-arrow{width:40px;height:45px}
  .availability-help{align-items:stretch;flex-direction:column;gap:9px}.availability-help .button{width:100%;text-align:center}
}
@media(max-width:480px){
  .hero{grid-template-columns:1fr}.hero-brand{min-height:auto;padding:10px 15px}.brand-logo{width:82%}.hero-message{padding:12px 15px}.hero-message p{display:none}.hero-contact-actions{margin-top:8px}
  .install-box{grid-template-columns:1fr}.install-box .button{width:100%}
}

/* === v14 · actualización forzada y cabecera realmente compacta === */
.hero{grid-template-columns:minmax(0,1.16fr) minmax(300px,.84fr);border-radius:22px;margin-bottom:8px}
.hero-brand{min-height:152px;padding:13px 20px}
.brand-logo{width:min(500px,92%)}
.hero-message{padding:17px 22px}
.eyebrow{padding:4px 9px;font-size:10px}
.hero-message h1{margin:7px 0 6px;font-size:clamp(1.65rem,3vw,2.3rem)}
.hero-message p{font-size:.88rem;line-height:1.38}
.hero-contact-actions{margin-top:10px}
.hero-contact-button{padding:8px 12px!important;font-size:12px!important;font-weight:850!important}
.install-box{padding:9px 13px;margin-bottom:6px}
.tabs{padding:4px 0 6px}
.identity{margin-bottom:9px}
@media(max-width:760px){
  .hero{grid-template-columns:1.05fr .95fr}
  .hero-brand{min-height:104px;padding:8px 9px}.brand-logo{width:96%}
  .hero-message{padding:10px 11px}.hero-message h1{font-size:1.2rem;margin:4px 0}.hero-message p{display:none}
  .hero-contact-button{padding:6px 7px!important;font-size:9px!important}
}


/* v15 · Jornadas de láser */
.laser-service-badge{display:inline-flex;align-items:center;width:max-content;max-width:100%;margin-top:7px;padding:5px 8px;border-radius:999px;background:#f3e8d8;color:#72552f;font-size:11px;font-weight:800;line-height:1.25}
.selection-summary small{line-height:1.45}


/* v16 · Contenido formateado de las fichas de servicios */
.service-rich-content-v16{font-size:15px;line-height:1.62;color:#25342a}
.service-rich-content-v16 h3{font-family:Georgia,serif;font-size:19px;line-height:1.25;margin:20px 0 8px;color:#263a2e}
.service-rich-content-v16 h3:first-child{margin-top:2px}
.service-rich-content-v16 p{margin:0 0 12px}
.service-rich-content-v16 ul,.service-rich-content-v16 ol{margin:4px 0 14px;padding-left:23px}
.service-rich-content-v16 li{margin:4px 0}
.service-warning-v16{border-color:#e5c6ad;background:#fff7f0}


/* === v18 · Historial completo del cliente === */
.portal-overview-v17{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin-bottom:12px}
.portal-kpi-v17{border:1px solid var(--line);border-radius:15px;background:linear-gradient(145deg,#fff,#f3f7f2);padding:14px 15px;box-shadow:0 5px 16px rgba(46,65,52,.06)}
.portal-kpi-v17 span{display:block;color:var(--muted);font-size:12px;font-weight:750}.portal-kpi-v17 strong{display:block;margin-top:5px;font-family:Georgia,serif;font-size:27px;color:var(--sage-deep)}
.portal-entry-v17{border:1px solid var(--line);border-radius:15px;background:#fff;padding:14px;margin-top:9px}
.portal-entry-head-v17{display:flex;align-items:flex-start;gap:10px}.portal-entry-head-v17 .grow{flex:1;min-width:0}.portal-entry-head-v17 strong,.portal-entry-head-v17 small{display:block}.portal-entry-head-v17 small{color:var(--muted);margin-top:4px;line-height:1.4}
.portal-origin-v17{display:inline-flex;margin-top:7px;border-radius:999px;padding:4px 7px;background:#eef3ec;color:#4d6551;font-size:10px;font-weight:800}
.portal-item-list-v17{display:flex;flex-direction:column;gap:5px;margin-top:11px;padding-top:10px;border-top:1px solid #eee8df;color:#59554f;font-size:13px}.portal-item-list-v17 span{display:block}
.portal-money-row-v17{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-top:11px}.portal-money-row-v17 strong{font-family:Georgia,serif;font-size:21px}.portal-money-row-v17 span{font-size:12px;color:#8a621d;font-weight:800}
.portal-bonus-count-v17{display:flex;align-items:baseline;gap:7px;margin-top:12px}.portal-bonus-count-v17 strong{font-family:Georgia,serif;font-size:30px;color:var(--sage-deep)}.portal-bonus-count-v17 span{color:var(--muted);font-size:13px}
.portal-progress-v17{height:8px;border-radius:999px;background:#eee8df;overflow:hidden;margin-top:8px}.portal-progress-v17 span{display:block;height:100%;background:var(--sage);border-radius:inherit}
.alert.warning{background:#fff4df;border-color:#e3c894;color:#74541e}
@media(max-width:760px){.portal-overview-v17{grid-template-columns:repeat(2,minmax(0,1fr))}.portal-kpi-v17{padding:12px}.portal-kpi-v17 strong{font-size:24px}.portal-entry-head-v17{align-items:flex-start}.portal-money-row-v17{align-items:flex-end}}

/* === v19 · Historial de citas agrupado por año y mes === */
.history-accordion-v19{display:grid;gap:10px}
.history-year-v19,.history-month-v19{border:1px solid var(--line);border-radius:16px;background:#fff;overflow:hidden}
.history-year-v19>summary,.history-month-v19>summary{display:flex;align-items:center;justify-content:space-between;gap:14px;list-style:none;cursor:pointer;user-select:none}
.history-year-v19>summary::-webkit-details-marker,.history-month-v19>summary::-webkit-details-marker{display:none}
.history-year-v19>summary{padding:15px 17px;background:linear-gradient(145deg,#e5ede4,#f3f6f1);color:var(--sage-deep)}
.history-month-v19>summary{padding:13px 15px;background:#fbf8f3;color:#3e5043}
.history-summary-main-v19{display:flex;align-items:baseline;justify-content:space-between;gap:12px;min-width:0;flex:1}
.history-summary-main-v19 strong{font-family:Georgia,serif;font-size:20px;line-height:1.2}
.history-month-v19 .history-summary-main-v19 strong{font-size:17px}
.history-summary-main-v19 small{color:var(--muted);font-size:12px;font-weight:750;white-space:nowrap}
.history-chevron-v19{font-size:23px;line-height:1;color:var(--sage-dark);transition:transform .18s ease}
.history-year-v19[open]>summary .history-chevron-v19,.history-month-v19[open]>summary .history-chevron-v19{transform:rotate(180deg)}
.history-year-content-v19{display:grid;gap:9px;padding:10px;background:#f5f7f3}
.history-month-content-v19{padding:5px 10px 11px;background:#fff}
.history-month-content-v19>.portal-entry-v17:first-child{margin-top:5px}
@media(max-width:760px){
  .history-year-v19>summary{padding:14px}.history-month-v19>summary{padding:12px 13px}
  .history-summary-main-v19 strong{font-size:19px}.history-month-v19 .history-summary-main-v19 strong{font-size:16px}
  .history-year-content-v19{padding:8px}.history-month-content-v19{padding:3px 8px 9px}
}

/* === v20 · Selector limpio de historial === */
.portal-toolbar-v20{display:flex;align-items:center;justify-content:space-between;gap:14px;margin:2px 0 10px;padding:11px 14px;border:1px solid var(--line);border-radius:15px;background:rgba(255,250,244,.92)}
.portal-toolbar-v20 strong,.portal-toolbar-v20 small{display:block}.portal-toolbar-v20 small{margin-top:2px;color:var(--muted);font-size:12px}
.portal-kpi-button-v20{appearance:none;width:100%;font:inherit;text-align:left;color:var(--ink);cursor:pointer;transition:border-color .18s ease,background .18s ease,box-shadow .18s ease,transform .18s ease}
.portal-kpi-button-v20:hover{border-color:#8da08f;transform:translateY(-1px);box-shadow:0 8px 18px rgba(46,65,52,.11)}
.portal-kpi-button-v20:focus-visible{outline:3px solid rgba(66,90,73,.24);outline-offset:2px}
.portal-kpi-button-v20.active{border-color:var(--sage-deep);background:linear-gradient(145deg,var(--sage-dark),var(--sage-deep));box-shadow:0 10px 22px rgba(49,67,57,.22)}
.portal-kpi-button-v20.active span,.portal-kpi-button-v20.active strong{color:#fff}
.portal-kpi-button-v20.active span{opacity:.84}
.portal-section-panel-v20{animation:fade .18s ease}
@media(max-width:760px){.portal-toolbar-v20{align-items:flex-start}.portal-toolbar-v20 .button{flex:none}}
@media(max-width:430px){.portal-toolbar-v20{align-items:stretch;flex-direction:column}.portal-toolbar-v20 .button{width:100%}}

/* === v22 · Puntos del cliente === */
.loyalty-card-v22{padding:0;overflow:hidden;border-color:#b9c9b9;background:linear-gradient(145deg,#f8fbf6,#edf4ea)}
.loyalty-summary-v22{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:14px;padding:17px 19px}
.loyalty-star-v22{display:grid;place-items:center;width:48px;height:48px;border-radius:50%;background:#395343;color:#f5e3aa;font-size:25px;box-shadow:0 7px 17px rgba(49,67,57,.18)}
.loyalty-copy-v22 span,.loyalty-copy-v22 strong,.loyalty-copy-v22 small,.loyalty-rule-v22 span,.loyalty-rule-v22 strong{display:block}
.loyalty-copy-v22 span{color:#526657;font-size:12px;font-weight:850;text-transform:uppercase;letter-spacing:.05em}
.loyalty-copy-v22 strong{margin-top:2px;font-family:Georgia,serif;font-size:34px;line-height:1;color:#2f4939}
.loyalty-copy-v22 small{margin-top:4px;color:#4d6152;font-size:13px;font-weight:750}
.loyalty-rule-v22{padding-left:17px;border-left:1px solid #c5d2c4;text-align:right}
.loyalty-rule-v22 span{font-size:11px;color:#68786c}.loyalty-rule-v22 strong{margin-top:3px;color:#334c3c;font-family:Georgia,serif;font-size:19px}
.loyalty-details-v22{border-top:1px solid #c7d4c6;background:rgba(255,255,255,.72)}
.loyalty-details-v22>summary{display:grid;grid-template-columns:minmax(0,1fr) auto auto;align-items:center;gap:10px;padding:12px 18px;list-style:none;cursor:pointer;color:#344d3d;font-weight:850}
.loyalty-details-v22>summary::-webkit-details-marker{display:none}.loyalty-details-v22>summary small{font-size:11px;color:#6c7b6f;font-weight:750}
.loyalty-chevron-v22{font-size:21px;line-height:1;transition:transform .18s ease}.loyalty-details-v22[open] .loyalty-chevron-v22{transform:rotate(180deg)}
.loyalty-movements-v22{max-height:360px;overflow:auto;padding:4px 18px 13px}
.loyalty-movement-v22{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;padding:11px 0;border-top:1px solid #e0e7df}
.loyalty-movement-v22 div{min-width:0}.loyalty-movement-v22 strong,.loyalty-movement-v22 small{display:block}.loyalty-movement-v22 strong{font-size:13px;color:#2f4235}.loyalty-movement-v22 small{margin-top:3px;color:#6a756d;font-size:11px;line-height:1.35}
.loyalty-movement-v22 b{flex:none;font-size:13px;color:#4d5b51}.loyalty-movement-v22 b.positive{color:#2e6a43}.loyalty-movement-v22 b.negative{color:#a2493e}
@media(max-width:520px){
  .loyalty-summary-v22{grid-template-columns:auto minmax(0,1fr);gap:11px;padding:15px}
  .loyalty-star-v22{width:42px;height:42px;font-size:22px}.loyalty-copy-v22 strong{font-size:30px}
  .loyalty-rule-v22{grid-column:1/-1;padding:10px 0 0;border-left:0;border-top:1px solid #c5d2c4;text-align:left;display:flex;justify-content:space-between;align-items:baseline;gap:10px}.loyalty-rule-v22 strong{font-size:17px}
  .loyalty-details-v22>summary{padding:12px 15px}.loyalty-movements-v22{padding:3px 15px 12px}
  .loyalty-movement-v22{gap:10px}.loyalty-movement-v22 b{font-size:12px}
}
