:root{--green:#16a34a;--green2:#0f7a38;--purple:#7c3aed;--pink:#ec4899;--blue:#169fdb;--ink:#172033;--muted:#667085;--bg:#f6f3ff;--line:#e7e3ef;--white:#fff;--shadow:0 10px 28px rgba(50,35,90,.09)}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;font-family:Inter,system-ui,-apple-system,Segoe UI,Roboto,Arial,sans-serif;background:var(--bg);color:var(--ink);padding-bottom:86px}.hidden{display:none!important}.topbar{position:sticky;top:0;z-index:20;padding:14px max(18px,env(safe-area-inset-left));background:linear-gradient(120deg,var(--green2),var(--green),var(--purple));color:#fff;display:flex;align-items:center;justify-content:space-between;gap:10px;box-shadow:0 4px 18px rgba(20,80,40,.18)}.brand{display:flex;align-items:center;gap:12px}.brand img{width:54px;height:54px;border-radius:15px;background:#fff;object-fit:cover}.brand h1{font-size:1.25rem;margin:0}.brand p{margin:3px 0 0;font-size:.83rem;opacity:.92}.installed{font-weight:800;font-size:.82rem;background:rgba(255,255,255,.18);padding:9px 12px;border-radius:999px}main{max-width:1080px;margin:auto;padding:18px}.view{display:none}.view.active{display:block}.card{background:#fff;border:1px solid var(--line);border-radius:24px;padding:22px;margin-bottom:18px;box-shadow:var(--shadow)}h2{font-size:1.8rem;margin:10px 0 6px}h3{margin:0 0 13px;font-size:1.2rem}p{color:var(--muted);margin:5px 0;line-height:1.45}.badge{display:inline-block;background:#eee8ff;color:#6228cd;padding:7px 12px;border-radius:999px;font-weight:800;font-size:.82rem}.welcome{display:flex;align-items:center;justify-content:space-between;background:linear-gradient(135deg,#fff,#effcf2)}.welcome img{width:92px;border-radius:22px}.stats{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}.stat{display:flex;flex-direction:column;margin-bottom:18px}.stat b{font-size:1.7rem;color:var(--green2)}.stat span{font-size:.88rem;color:var(--muted)}.quick-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:14px}.quick{border:1px solid var(--line);background:#fff;border-radius:18px;padding:20px;text-align:left;cursor:pointer}.quick span{font-size:2rem;display:block}.quick b,.quick small{display:block}.quick small{color:var(--muted);margin-top:4px}.install-card{display:flex;align-items:center;justify-content:space-between;gap:15px;background:linear-gradient(135deg,#e8fff0,#f3edff)}.hero{display:flex;justify-content:space-between;align-items:center}.folio{background:#f4f4f7;border-radius:17px;padding:18px}.grid{display:grid;gap:15px}.grid.two{grid-template-columns:1fr 1fr}.full{grid-column:1/-1}label{font-weight:750;font-size:.92rem;display:block}input,select,textarea{width:100%;margin-top:7px;border:1px solid #d4d7df;border-radius:14px;padding:14px;font:inherit;background:#fff;color:var(--ink)}textarea{resize:vertical}.check{display:flex;gap:10px;align-items:center;margin-top:14px}.check input{width:auto;margin:0}.section-head{display:flex;align-items:center;justify-content:space-between;gap:15px}.btn{border:0;border-radius:14px;padding:13px 17px;font-weight:800;font-size:.94rem;cursor:pointer}.btn-primary{background:var(--green);color:#fff}.btn-light{background:#fff;color:#4b2ca7;border:1px solid #ddd4ff}.btn-blue{background:var(--blue);color:#fff}.btn-pink{background:var(--pink);color:#fff}.btn-whatsapp{background:#16a34a;color:#fff}.btn-danger-light{background:#fff0f0;color:#c32727}.services{display:grid;gap:14px}.service-row{display:grid;grid-template-columns:2.2fr .65fr .8fr .8fr auto;gap:10px;align-items:end;background:#faf9fd;border:1px solid var(--line);padding:14px;border-radius:18px}.remove-service{border:0;background:#ffe5e5;color:#b42318;border-radius:12px;width:42px;height:48px;font-size:1.35rem;font-weight:900}.form-actions{display:grid;grid-template-columns:1fr 1.3fr;gap:12px;position:sticky;bottom:76px;z-index:8;background:rgba(246,243,255,.92);backdrop-filter:blur(10px);padding:12px 0}.form-actions .btn{min-height:55px;font-size:1.05rem}#signatureCanvas{width:100%;height:180px;border:2px dashed #c9cad3;border-radius:15px;background:#fff;touch-action:none}.search{margin:8px 0 16px}.saved-item,.upcoming-item{display:flex;justify-content:space-between;align-items:center;gap:10px;border-top:1px solid var(--line);padding:15px 0}.saved-meta{color:var(--muted);font-size:.85rem;margin-top:4px}.saved-actions{display:flex;gap:6px}.empty{text-align:center;color:var(--muted);padding:28px}.bottom-nav{position:fixed;z-index:25;bottom:0;left:0;right:0;height:72px;padding-bottom:env(safe-area-inset-bottom);background:#fff;border-top:1px solid var(--line);display:flex;justify-content:space-around;box-shadow:0 -8px 26px rgba(40,30,70,.08)}.bottom-nav button{flex:1;border:0;background:transparent;color:#858b97;font-size:1.4rem;font-weight:800}.bottom-nav span{display:block;font-size:.72rem;margin-top:2px}.bottom-nav button.active{color:var(--green)}.modal{position:fixed;inset:0;background:rgba(11,15,25,.72);z-index:50;overflow:auto;padding:16px}.modal-content{max-width:940px;margin:auto;background:#fff;border-radius:20px;overflow:hidden}.modal-actions{position:sticky;top:0;z-index:3;display:flex;flex-wrap:wrap;gap:8px;padding:12px;background:#f8f8fb;border-bottom:1px solid var(--line)}.contract{padding:38px;color:#111;background:#fff}.contract-header{text-align:center;border-bottom:3px solid var(--green);padding-bottom:18px}.contract-header h1{margin:0;color:var(--green2)}.company-data{margin:8px 0;font-size:.9rem}.contract-grid{display:grid;grid-template-columns:1fr 1fr;gap:13px;margin:20px 0}.contract table{width:100%;border-collapse:collapse;margin:16px 0}.contract th,.contract td{border:1px solid #ccc;padding:9px;text-align:left}.contract .money{text-align:right}.signature-img{display:block;width:300px;max-height:120px;object-fit:contain;margin-top:35px}.signature-label{border-top:1px solid #333;width:320px;text-align:center;padding-top:6px}.event-pill{font-size:.78rem;padding:5px 9px;border-radius:999px;background:#e9f9ee;color:#08752f;font-weight:800}@media(max-width:720px){main{padding:14px}.card{padding:18px;border-radius:22px}.stats{grid-template-columns:1fr}.stat{margin-bottom:0}.grid.two{grid-template-columns:1fr}.full{grid-column:auto}.hero{display:block}.folio{margin-top:16px}.service-row{grid-template-columns:1fr 1fr}.service-main{grid-column:1/-1}.remove-service{grid-column:2;justify-self:end}.welcome img{width:74px}.contract{padding:20px}.contract-grid{grid-template-columns:1fr}.modal-actions .btn{flex:1 1 45%}}@media print{body{background:#fff;padding:0}.topbar,main,.bottom-nav,.modal-actions{display:none!important}.modal{position:static;display:block!important;background:#fff;padding:0}.modal-content{max-width:none;border-radius:0}.contract{padding:12mm}.contract table{font-size:11px}}

.contract-clauses{padding-left:22px;line-height:1.45}.contract-clauses li{margin-bottom:7px}.client-signature-block{margin-top:34px;width:360px;max-width:100%}.signature-name,.signature-date{text-align:center;font-size:.85rem;color:#555;margin-top:5px}@media print{.contract-clauses{font-size:10.5px;line-height:1.3}.contract-clauses li{margin-bottom:4px}}


/* Disponibilidad de equipos v3.3 */
.service-name option:disabled{color:#b42318;background:#fff1f1;font-weight:800}.service-status{display:block;margin-top:8px;padding:9px 11px;border-radius:10px;background:#fff0f0;color:#b42318;font-size:.8rem;line-height:1.35}.service-row-warning{border:2px solid #ef4444;background:#fff8f8}.service-row-warning .service-name{border-color:#ef4444;color:#b42318}.availability-note{font-size:.82rem;color:#667085}

/* Reportes mensuales v3.6 */
.report-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}.report-stat{display:flex;flex-direction:column;margin-bottom:0}.report-stat span{font-size:.84rem;color:var(--muted)}.report-stat b{font-size:1.45rem;color:var(--green2);margin-top:5px}.report-stat.profit{background:linear-gradient(135deg,#eaffef,#fff)}.report-stat.profit b.negative{color:#c32727}.expense-form{display:grid;grid-template-columns:1fr 1fr 2fr 1fr auto;gap:10px;align-items:end}.expense-form .btn{min-height:49px}.report-row{display:flex;justify-content:space-between;align-items:center;gap:12px;border-top:1px solid var(--line);padding:14px 0}.report-money,.expense-actions{display:flex;flex-direction:column;align-items:flex-end;gap:5px}.report-money small{color:var(--muted)}.expense-actions{flex-direction:row;align-items:center}.service-rank{display:flex;align-items:center;gap:12px;padding:12px 0;border-top:1px solid var(--line)}.service-rank>span{width:34px;height:34px;border-radius:50%;display:grid;place-items:center;background:#e9f9ee;color:var(--green2);font-weight:900}.service-rank small{display:block;color:var(--muted);margin-top:3px}@media(max-width:800px){.report-stats{grid-template-columns:1fr 1fr}.expense-form{grid-template-columns:1fr 1fr}.expense-description{grid-column:1/-1}.expense-form .btn{grid-column:1/-1}.report-row{align-items:flex-start}.expense-actions{flex-direction:column}}

/* Recomendación en Facebook v3.7 */
.facebook-cta{margin-top:34px;border:2px solid #bde8ca;border-radius:18px;overflow:hidden;background:#f1fff5;display:grid;grid-template-columns:minmax(250px,42%) 1fr;align-items:stretch}.facebook-cta>img{width:100%;height:100%;min-height:190px;object-fit:cover}.facebook-cta-copy{padding:20px}.facebook-cta-copy h3{color:#08752f;margin:0 0 8px}.facebook-cta-copy p{color:#344054;margin-bottom:15px}.facebook-cta-copy a{display:inline-block;background:#1877f2;color:#fff;text-decoration:none;font-weight:800;border-radius:12px;padding:12px 16px}@media(max-width:650px){.facebook-cta{grid-template-columns:1fr}.facebook-cta>img{min-height:145px;max-height:210px}.facebook-cta-copy{padding:16px}}@media print{.facebook-cta{break-inside:avoid;margin-top:22px}.facebook-cta-copy a{background:#1877f2!important;color:#fff!important;-webkit-print-color-adjust:exact;print-color-adjust:exact}}

/* Cotizaciones v3.8 */
.quote-warning{margin-top:16px;padding:14px;border-radius:14px;background:#fff7e6;border:1px solid #ffd796;color:#8a4b00;font-weight:750;line-height:1.4}.quote-actions{grid-template-columns:1fr 1.3fr}.quote-status{display:inline-block;padding:5px 9px;border-radius:999px;background:#eef2ff;color:#4338ca;font-size:.76rem;font-weight:850}.quote-status.Aceptada{background:#e9f9ee;color:#08752f}.quote-status.Rechazada,.quote-status.Vencida{background:#fff0f0;color:#b42318}.quote-status.Convertida{background:#f3e8ff;color:#6b21a8}.quote-summary{border:2px solid #bde8ca;border-radius:16px;background:#f4fff7;padding:16px;margin:18px 0}.quote-notice{font-weight:800;color:#8a4b00;background:#fff7e6;border-radius:12px;padding:12px;margin:16px 0}.saved-item.quote-item{align-items:flex-start}@media(max-width:720px){.bottom-nav button{font-size:1.15rem}.bottom-nav span{font-size:.65rem}.quote-actions{grid-template-columns:1fr 1fr}}
@media print{
  body.printing-quote #previewModal{display:none!important}
  body.printing-quote #quotePreviewModal{display:block!important}
  body.printing-contract #quotePreviewModal{display:none!important}
  body.printing-contract #previewModal{display:block!important}
}

/* Club Brinky v4.0 */
.bottom-nav{overflow-x:auto}.bottom-nav button{min-width:70px}.reward-ready{display:inline-block;margin-top:6px;background:#fff1b8;color:#745000;border-radius:999px;padding:5px 9px;font-size:.78rem;font-weight:800}.loyalty-item{border-left:5px solid #f7c948}.loyalty-modal{max-width:720px}.loyalty-card{max-width:540px;margin:0 auto 18px;background:linear-gradient(145deg,#16a34a,#0f7a35);color:white;border-radius:26px;padding:24px;text-align:center;box-shadow:0 18px 45px rgba(0,0,0,.18)}.loyalty-card-head{display:flex;align-items:center;justify-content:center;gap:12px}.loyalty-card-head img{width:72px;height:72px;border-radius:50%;background:white}.loyalty-card-head h2{margin:0;font-size:2rem}.loyalty-card-head p{margin:2px 0}.loyalty-person{background:rgba(255,255,255,.14);border-radius:16px;padding:12px;margin:16px 0}.loyalty-person h3{font-size:1.45rem;margin:0}.loyalty-person p{margin:5px 0 0}.stamp-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin:18px 0}.stamp-dot{display:grid;place-items:center;aspect-ratio:1;border-radius:50%;font-size:1.8rem;background:rgba(255,255,255,.18);border:2px dashed rgba(255,255,255,.7)}.stamp-dot.filled{background:#ffd84d;color:#7a5200;border-style:solid}.loyalty-progress{display:flex;flex-direction:column;gap:5px}.loyalty-qr{display:block;width:170px;height:170px;margin:18px auto 8px;background:white;border:10px solid white;border-radius:12px}.loyalty-controls{display:flex;flex-wrap:wrap;gap:8px}.history-row{display:flex;gap:12px;padding:11px 0;border-bottom:1px solid #e5e7eb}.history-row span{color:#667085;min-width:95px}@media print{body.printing-loyalty *{visibility:hidden!important}body.printing-loyalty #loyaltyCard,body.printing-loyalty #loyaltyCard *{visibility:visible!important}body.printing-loyalty #loyaltyCard{position:absolute;left:0;top:0;width:100%;max-width:none;box-shadow:none}}

/* Club Brinky v4.1 QR */
.qr-wrap{position:relative;width:190px;margin:18px auto 8px}.qr-wrap span{position:absolute;right:-28px;top:10px;background:#ffd84d;color:#684600;font-size:.68rem;font-weight:900;padding:6px 8px;border-radius:999px;transform:rotate(8deg)}.referral-box{margin-top:15px;background:rgba(255,255,255,.14);border:1px solid rgba(255,255,255,.3);border-radius:15px;padding:12px;line-height:1.45}.referral-box small{color:#fff}.loyalty-modal .modal-actions{justify-content:center}

/* Club Brinky v5.0 VIP */
.loyalty-card{position:relative;overflow:hidden;border:3px solid #ffd84d;background:linear-gradient(145deg,#0b9d46,#07582e);animation:vipEnter .45s ease-out}.vip-shine{position:absolute;inset:-40%;background:linear-gradient(110deg,transparent 42%,rgba(255,255,255,.16) 50%,transparent 58%);transform:translateX(-60%);animation:vipShine 3.8s ease-in-out infinite;pointer-events:none}.vip-watermark{position:absolute;right:-12px;top:70px;font-size:9rem;opacity:.08;transform:rotate(-12deg)}.vip-tier{display:inline-block;margin:12px auto 0;padding:7px 16px;border-radius:999px;background:rgba(255,255,255,.18);font-weight:900;letter-spacing:.08em}.loyalty-person{background:#fff;color:#153d27}.loyalty-person p,.loyalty-person small{color:#42634f}.qr-wrap span{display:block;font-weight:900;letter-spacing:.06em}.vip-cta{margin:16px 0 10px;padding:13px;border-radius:15px;background:rgba(255,216,77,.18);border:1px solid rgba(255,216,77,.65);font-size:1rem}.referral-box{margin-top:12px;padding:13px;border-radius:15px;background:rgba(255,255,255,.13)}@keyframes vipEnter{from{opacity:0;transform:translateY(12px) scale(.98)}to{opacity:1;transform:none}}@keyframes vipShine{0%,55%{transform:translateX(-60%)}85%,100%{transform:translateX(60%)}}

.referral-lookup{display:grid;grid-template-columns:1fr auto;gap:9px;align-items:end}.referral-lookup .btn{min-height:49px;white-space:nowrap}.referral-ok{display:block;margin-top:7px;color:#087a38;font-weight:800}.referral-error{display:block;margin-top:7px;color:#c32727;font-weight:800}@media(max-width:560px){.referral-lookup{grid-template-columns:1fr}.referral-lookup .btn{width:100%}}
