*{box-sizing:border-box}
:root{--navy:#0e355a;--blue:#196da9;--sky:#55b7e7;--ice:#eef8fd;--line:#d7e8f2;--ink:#153b5d;--muted:#688298;--white:#fff;--green:#1f8f55;--red:#b63f45;--amber:#a66b00}
html{scroll-behavior:smooth}
body{margin:0;font-family:Inter,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;background:linear-gradient(180deg,#f5fbff,#eaf5fb);color:var(--ink)}
a{color:inherit}.shell{max-width:1180px;margin:auto;padding:26px}.top{display:flex;align-items:center;justify-content:space-between;gap:18px;margin-bottom:20px}
.brand{display:flex;align-items:center;gap:12px;font-weight:950;color:var(--navy);text-decoration:none}.brand img{width:58px;height:58px;object-fit:contain}.back{color:var(--blue);font-weight:850;text-decoration:none}
.hero{padding:34px;border-radius:30px;background:radial-gradient(circle at 90% 15%,rgba(103,205,247,.28),transparent 30%),linear-gradient(135deg,#0e355a,#1b72ad);color:#fff;box-shadow:0 26px 64px rgba(14,53,90,.16);margin-bottom:22px}
.hero h1{margin:0 0 10px;font-size:clamp(2rem,5vw,4rem);line-height:.98}.hero p{margin:0;max-width:800px;opacity:.87;line-height:1.55}
.grid{display:grid;grid-template-columns:1.12fr .88fr;gap:20px}.card{background:rgba(255,255,255,.94);border:1px solid rgba(25,109,169,.10);border-radius:24px;padding:22px;box-shadow:0 14px 38px rgba(14,53,90,.07)}
h1,h2,h3{color:var(--navy)}.hero h1{color:#fff}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}.field{display:grid;gap:7px}.field.full{grid-column:1/-1}
label{font-weight:850;font-size:.91rem}input,select,textarea{width:100%;padding:13px 14px;border:1px solid var(--line);border-radius:14px;background:#fbfdff;color:var(--ink);outline:none;font:inherit}
input:focus,select:focus,textarea:focus{border-color:#5ab3e7;box-shadow:0 0 0 4px rgba(90,179,231,.12)}
button,.btn{display:inline-flex;align-items:center;justify-content:center;border:0;border-radius:999px;padding:13px 18px;background:linear-gradient(135deg,#2d8dcc,#0e4f80);color:#fff;font-weight:900;cursor:pointer;text-decoration:none;font:inherit}
.btn-soft{background:#e7f4fb;color:var(--navy)}.btn-danger,.danger{background:linear-gradient(135deg,#c55359,#963039)!important}.btn-green{background:linear-gradient(135deg,#2fa667,#187847)!important}
.help{font-size:.84rem;color:var(--muted);line-height:1.4}.notice{padding:14px 16px;border-radius:15px;background:#e9f6fd;color:var(--navy);margin-bottom:16px}.error{background:#fff0f0;color:#8c2525}.success{background:#eaf8ef;color:#25633a}
.rules{display:grid;gap:11px}.rule{padding:14px;border-radius:16px;background:#f6fbfe;border:1px solid rgba(35,104,159,.08)}.rule strong{display:block;margin-bottom:4px}
.footer{margin-top:24px;text-align:center;color:var(--muted);font-size:.84rem}
.admin-layout{display:grid;grid-template-columns:220px 1fr;gap:18px}.sidebar{background:linear-gradient(180deg,#0e355a,#124e7b);color:#fff;border-radius:25px;padding:18px;height:max-content;position:sticky;top:18px;box-shadow:0 18px 45px rgba(14,53,90,.13)}
.sidebar-brand{display:flex;align-items:center;gap:10px;margin-bottom:18px}.sidebar-brand img{width:48px;height:48px;object-fit:contain}.sidebar-brand strong{font-size:.9rem}
.side-nav{display:grid;gap:7px}.side-nav a{padding:11px 12px;border-radius:13px;text-decoration:none;color:#dceffc;font-weight:800;font-size:.91rem}.side-nav a:hover,.side-nav a.active{background:rgba(255,255,255,.13);color:#fff}
.main{min-width:0}.page-head{display:flex;justify-content:space-between;align-items:flex-start;gap:15px;margin-bottom:18px}.page-head h1{margin:0}.page-head p{margin:5px 0 0;color:var(--muted)}
.summary{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:18px}.stat{background:#fff;border:1px solid rgba(35,104,159,.09);border-radius:18px;padding:16px;box-shadow:0 9px 25px rgba(14,53,90,.05)}.stat strong{font-size:1.65rem;color:var(--navy);display:block}.stat span{color:var(--muted);font-size:.83rem}
.toolbar{display:flex;gap:10px;align-items:end;flex-wrap:wrap;margin-bottom:16px}.toolbar .field{min-width:145px}.toolbar .grow{flex:1;min-width:220px}.quick-tabs{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:15px}.quick-tabs a{padding:9px 13px;border-radius:999px;background:#e8f5fc;color:var(--navy);font-weight:850;text-decoration:none;font-size:.85rem}.quick-tabs a.active{background:var(--navy);color:#fff}
.table-wrap{overflow:auto;border-radius:16px}.table{width:100%;border-collapse:collapse;min-width:1050px}.table th,.table td{padding:12px 10px;border-bottom:1px solid #e6f0f6;text-align:left;vertical-align:middle;font-size:.88rem}.table th{color:#526f87;font-size:.78rem;text-transform:uppercase;letter-spacing:.035em;background:#f8fbfd}.table tr:hover td{background:#fbfdff}
.badge{display:inline-flex;padding:6px 9px;border-radius:999px;font-size:.74rem;font-weight:950;white-space:nowrap}.status-pending{background:#fff3ce;color:#806000}.status-confirmed{background:#dff5e8;color:#1c7041}.status-attended{background:#e0efff;color:#1b5b95}.status-rejected,.status-cancelled{background:#ffe5e5;color:#912c32}.status-no_show{background:#eee9ff;color:#5d4292}
.pay-ok{background:#def6e7;color:#1f7545}.pay-pending{background:#fff2d4;color:#875d00}
.actions{display:flex;gap:6px;flex-wrap:wrap}.actions form{display:inline}.actions button,.mini-btn{padding:8px 10px;font-size:.76rem;border-radius:10px}.mini-btn{background:#e8f4fb;color:var(--navy);text-decoration:none;font-weight:850;display:inline-flex}
.receipt{font-weight:850;color:var(--blue);text-decoration:none}.patient-link{font-weight:900;color:var(--navy);text-decoration:none}
.schedule-row{display:grid;grid-template-columns:110px 90px 1fr 1fr 120px;gap:10px;align-items:center;padding:12px 0;border-bottom:1px solid #edf3f7}
.profile-grid{display:grid;grid-template-columns:.8fr 1.2fr;gap:18px}.info-list{display:grid;gap:10px}.info-item{padding:12px;border-radius:14px;background:#f7fbfd}.info-item small{display:block;color:var(--muted);margin-bottom:3px}.timeline{display:grid;gap:12px}.timeline-item{position:relative;padding:15px 15px 15px 18px;border-left:3px solid #63b9e2;background:#f9fcfe;border-radius:0 14px 14px 0}.timeline-item small{color:var(--muted)}
.note-type{font-size:.72rem;text-transform:uppercase;letter-spacing:.04em;color:var(--blue);font-weight:900}.modal{position:fixed;inset:0;background:rgba(3,25,43,.72);display:none;align-items:center;justify-content:center;padding:20px;z-index:9999}.modal.open{display:flex}.modal-card{max-width:900px;width:100%;max-height:92vh;background:#fff;border-radius:20px;padding:14px;overflow:auto}.modal-card img{display:block;max-width:100%;max-height:76vh;margin:auto}.modal-head{display:flex;justify-content:space-between;align-items:center;padding:4px 4px 12px}.modal-close{width:38px;height:38px;padding:0;border-radius:50%}
.login-wrap{max-width:520px;margin:55px auto}.admin-login-brand{text-align:center;margin-bottom:18px}.admin-login-brand img{width:70px;height:70px;object-fit:contain}.admin-login-brand strong{display:block;color:var(--navy);margin-top:7px}.admin-login-brand span{display:block;color:var(--muted);font-size:.82rem;margin-top:2px}
@media(max-width:900px){.admin-layout{grid-template-columns:1fr}.sidebar{position:static}.side-nav{grid-template-columns:repeat(3,1fr)}.summary{grid-template-columns:repeat(2,1fr)}.profile-grid,.grid{grid-template-columns:1fr}}
@media(max-width:650px){.shell{padding:14px}.form-grid{grid-template-columns:1fr}.field.full{grid-column:auto}.top{align-items:flex-start}.brand span{display:none}.hero{padding:24px}.summary{grid-template-columns:1fr 1fr}.side-nav{grid-template-columns:1fr 1fr}.schedule-row{grid-template-columns:1fr 1fr}.schedule-row .day{grid-column:1/-1}.page-head{flex-direction:column}.toolbar>*{width:100%}}

/* V20 - Comunidad */
.lead-new{background:#e7f4ff;color:#176398}.lead-contacted{background:#eeeaff;color:#5c4995}.lead-interested{background:#fff1cb;color:#806000}.lead-appointment{background:#e0f3ff;color:#175e94}.lead-client{background:#def6e7;color:#1f7545}.lead-not_interested{background:#f0f0f0;color:#666}
.consent-yes{background:#def6e7;color:#1f7545}.consent-no{background:#f3f3f3;color:#777}.consent-stop{background:#ffe5e5;color:#912c32}
.kpi-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:10px;margin-bottom:18px}.kpi{background:#fff;border:1px solid rgba(35,104,159,.09);border-radius:17px;padding:14px}.kpi strong{display:block;font-size:1.45rem;color:var(--navy)}.kpi span{font-size:.78rem;color:var(--muted)}
.interest-tags{display:flex;gap:5px;flex-wrap:wrap}.interest-tag{display:inline-flex;padding:5px 8px;border-radius:999px;background:#edf7fc;color:#315f80;font-size:.7rem;font-weight:800}
.qr-card{display:grid;grid-template-columns:170px 1fr;gap:18px;align-items:center;padding:16px;border:1px solid #e2eef5;border-radius:18px;background:#fbfdff}.qr-card img{width:160px;height:160px;border-radius:12px;background:#fff}.code-url{word-break:break-all;padding:10px;border-radius:11px;background:#eef7fc;color:#245579;font-size:.8rem}
.message-preview{white-space:pre-wrap;background:#f7fbfd;border:1px solid #e1edf4;border-radius:14px;padding:14px;color:#365a72;line-height:1.5}.queue{display:grid;gap:10px}.queue-item{display:grid;grid-template-columns:1fr auto;gap:12px;align-items:center;border:1px solid #e3edf4;border-radius:15px;padding:12px;background:#fff}
@media(max-width:900px){.kpi-grid{grid-template-columns:repeat(2,1fr)}.qr-card{grid-template-columns:1fr}.queue-item{grid-template-columns:1fr}}


/* V21 - PANEL CRM COMERCIAL */
.crm-eyebrow{display:inline-flex;margin-bottom:7px;padding:6px 9px;border-radius:999px;background:#e6f5fd;color:#1c6d9f;font-size:.7rem;font-weight:950;letter-spacing:.07em}
.crm-periods{margin-top:-4px}.crm-kpis{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-bottom:18px}.crm-kpi{position:relative;overflow:hidden;background:#fff;border:1px solid rgba(35,104,159,.09);border-radius:20px;padding:17px;box-shadow:0 10px 28px rgba(14,53,90,.055)}.crm-kpi:after{content:"";position:absolute;width:90px;height:90px;border-radius:50%;right:-38px;top:-38px;background:rgba(85,183,231,.10)}.crm-kpi span{display:block;color:var(--muted);font-size:.78rem;font-weight:850}.crm-kpi strong{display:block;color:var(--navy);font-size:2rem;line-height:1.1;margin:7px 0 4px}.crm-kpi small{color:#7890a3}.crm-kpi.accent{background:linear-gradient(145deg,#f7fcff,#e8f7ff)}.crm-kpi.success{background:linear-gradient(145deg,#f8fffa,#e7f8ee)}
.crm-grid-2{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin-bottom:18px}.section-head{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:14px}.section-head h3{margin:0}.section-head p{margin:4px 0 0;color:var(--muted);font-size:.82rem}
.crm-funnel,.crm-bars{display:grid;gap:13px}.crm-funnel-row{text-decoration:none;display:block}.crm-funnel-label,.crm-bar-row>div:first-child{display:flex;justify-content:space-between;gap:10px;margin-bottom:6px;font-size:.82rem}.crm-funnel-label span,.crm-bar-row span{font-weight:800;color:#46677e}.crm-track{height:10px;border-radius:999px;background:#edf4f8;overflow:hidden}.crm-track>span{display:block;height:100%;min-width:2px;border-radius:999px;background:#4ba5d4}.crm-track>.lead-new{background:#5eaee0}.crm-track>.lead-contacted{background:#8d7bd5}.crm-track>.lead-interested{background:#e4b84e}.crm-track>.lead-appointment{background:#3e97d1}.crm-track>.lead-client{background:#42a86c}.crm-track>.lead-not_interested{background:#a7b0b7}.crm-bar-fill{background:linear-gradient(90deg,#4db3e4,#226d9f)!important}
.crm-trend-card{margin-bottom:18px}.crm-trend{height:210px;display:flex;align-items:stretch;gap:5px;padding:12px 4px 2px;overflow-x:auto}.crm-trend-col{min-width:25px;flex:1;display:grid;grid-template-rows:20px 1fr 22px;align-items:end;text-align:center}.crm-trend-value{font-size:.66rem;color:#67849b;align-self:start}.crm-trend-bar{height:145px;display:flex;align-items:flex-end;justify-content:center;background:linear-gradient(180deg,transparent,#f5fafc);border-radius:9px 9px 4px 4px}.crm-trend-bar i{display:block;width:min(22px,72%);min-height:4px;background:linear-gradient(180deg,#58b8e6,#166a9f);border-radius:7px 7px 3px 3px}.crm-trend-col small{font-size:.62rem;color:#7891a3;white-space:nowrap}
.crm-event-table{min-width:930px}.metric-pill{display:inline-flex;padding:6px 8px;border-radius:999px;background:#e6f4fc;color:#176694;font-size:.75rem;font-weight:900}.success-pill{background:#e3f6ea;color:#1d7444}
.crm-contact-list{display:grid;gap:7px}.crm-contact{display:grid;grid-template-columns:38px 1fr auto;gap:10px;align-items:center;text-decoration:none;padding:10px;border-radius:14px;border:1px solid transparent}.crm-contact:hover{background:#f7fbfd;border-color:#e2edf4}.crm-avatar{width:38px;height:38px;border-radius:13px;display:grid;place-items:center;background:linear-gradient(145deg,#dff3fc,#bfe6f8);color:#155e8d;font-weight:950}.crm-contact strong{display:block;color:var(--navy);font-size:.87rem}.crm-contact span:not(.badge){display:block;color:var(--muted);font-size:.73rem;margin-top:2px}.crm-empty{padding:18px;border-radius:15px;background:#edf9f2;color:#246d42}.crm-help{margin-top:18px;padding:14px 16px;border-radius:16px;background:#e8f5fc;color:#315d78;font-size:.82rem;line-height:1.55}
@media(max-width:1000px){.crm-kpis{grid-template-columns:repeat(2,1fr)}}
@media(max-width:800px){.crm-grid-2{grid-template-columns:1fr}.crm-trend{height:190px}.crm-trend-col{min-width:31px}}
@media(max-width:550px){.crm-kpis{grid-template-columns:1fr}.crm-contact{grid-template-columns:38px 1fr}.crm-contact .badge{grid-column:2;justify-self:start}.crm-trend-col{min-width:36px}}

/* V22 - PROMOCIÓN */
.promo-admin-preview{display:grid;grid-template-columns:70px 1fr;gap:14px;align-items:center;margin-top:18px;padding:16px;border-radius:18px;background:linear-gradient(135deg,#123a63,#2c79bf);color:#fff}.promo-admin-preview>span{width:62px;height:62px;border-radius:50%;display:grid;place-items:center;background:#fff;color:#123a63;font-size:1.8rem}.promo-admin-preview small{display:block;opacity:.8;font-weight:900;letter-spacing:.08em}.promo-admin-preview strong{display:block;font-size:1.4rem;margin:2px 0}.promo-admin-preview p{margin:0;opacity:.88}.promo-status-claimed{background:#e4f4ff;color:#176398}.promo-status-redeemed{background:#def6e7;color:#1f7545}.promo-status-cancelled{background:#f0f0f0;color:#666}

/* V23 - TIENDA / ECOMMERCE */
.store-kpis{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:18px}.store-kpi{background:#fff;border:1px solid rgba(35,104,159,.09);border-radius:20px;padding:17px;box-shadow:0 10px 28px rgba(14,53,90,.055)}.store-kpi span{display:block;color:var(--muted);font-size:.78rem;font-weight:850}.store-kpi strong{display:block;color:var(--navy);font-size:1.75rem;line-height:1.1;margin:7px 0 3px}.store-kpi.success{background:linear-gradient(145deg,#f7fff9,#e6f8ed)}.store-kpi.warn{background:linear-gradient(145deg,#fffdf7,#fff3dc)}.store-kpi.accent{background:linear-gradient(145deg,#f7fcff,#e7f6ff)}
.store-grid{display:grid;grid-template-columns:1.15fr .85fr;gap:18px;margin-bottom:18px}.store-product-row{display:grid;grid-template-columns:56px 1fr auto auto;gap:10px;align-items:center;padding:10px 0;border-bottom:1px solid #e8f1f6}.store-thumb{width:56px;height:56px;border-radius:12px;overflow:hidden;background:#edf7fc;display:grid;place-items:center}.store-thumb img{width:100%;height:100%;object-fit:cover}.store-muted{color:var(--muted);font-size:.76rem}.store-stock-ok{color:#1f7545;font-weight:900}.store-stock-low{color:#a06d05;font-weight:900}.store-stock-out{color:#a9333c;font-weight:900}.store-form-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:12px}.store-form-grid .full{grid-column:1/-1}.store-upload-preview{width:140px;height:140px;border-radius:16px;background:#eef7fc;border:1px dashed #b6d7e9;overflow:hidden;display:grid;place-items:center}.store-upload-preview img{width:100%;height:100%;object-fit:cover}.order-status-new{background:#e4f4ff;color:#176398}.order-status-preparing{background:#fff1cb;color:#806000}.order-status-ready{background:#e8efff;color:#315f9b}.order-status-shipped{background:#eeeaff;color:#5c4995}.order-status-delivered{background:#def6e7;color:#1f7545}.order-status-cancelled{background:#ffe5e5;color:#912c32}.payment-status-pending{background:#fff2d4;color:#875d00}.payment-status-verified{background:#def6e7;color:#1f7545}.payment-status-rejected{background:#ffe5e5;color:#912c32}.payment-status-refunded{background:#edf0f2;color:#5d6870}.store-total{font-weight:950;color:var(--navy);font-size:1rem}.inventory-plus{color:#1f7545;font-weight:900}.inventory-minus{color:#a9333c;font-weight:900}.store-chart{height:230px;display:flex;align-items:end;gap:7px;padding:18px 6px 4px;overflow-x:auto}.store-chart-col{min-width:38px;flex:1;display:grid;grid-template-rows:1fr 24px;align-items:end;text-align:center}.store-chart-bar{height:180px;display:flex;align-items:flex-end;justify-content:center;background:linear-gradient(180deg,transparent,#f5fafc);border-radius:10px}.store-chart-bar i{display:block;width:min(26px,72%);min-height:4px;background:linear-gradient(180deg,#43b779,#198f53);border-radius:7px 7px 3px 3px}.store-chart-col small{font-size:.65rem;color:#7891a3}.store-order-items{display:grid;gap:8px}.store-order-item{display:grid;grid-template-columns:1fr auto;gap:10px;padding:11px 0;border-bottom:1px solid #e8f0f5}.store-order-item:last-child{border-bottom:0}.store-actions-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.store-note{padding:12px;border-radius:14px;background:#f6fafc;color:#45677e;font-size:.82rem}.store-customer-card{display:grid;grid-template-columns:46px 1fr auto;gap:10px;align-items:center;padding:12px;border:1px solid #e2edf4;border-radius:15px;background:#fff}.store-avatar{width:46px;height:46px;border-radius:14px;display:grid;place-items:center;background:linear-gradient(145deg,#def2fc,#bfe4f7);color:#155e8d;font-weight:950}
@media(max-width:1000px){.store-kpis{grid-template-columns:repeat(2,1fr)}.store-grid{grid-template-columns:1fr}.store-form-grid{grid-template-columns:1fr}.store-form-grid .full{grid-column:auto}}
@media(max-width:600px){.store-kpis{grid-template-columns:1fr}.store-product-row{grid-template-columns:52px 1fr}.store-product-row>div:nth-last-child(-n+2){grid-column:2}.store-actions-grid{grid-template-columns:1fr}}
