/* Navegación adaptable a notebooks y pantallas de poca altura */
.site-nav{position:sticky;top:0;z-index:200;background:var(--paper);border-bottom:1px solid var(--line)}
.site-nav-inner{max-width:1280px;height:60px;margin:0 auto;padding:0 40px;display:flex;align-items:center;justify-content:space-between;gap:24px}
.site-logo{display:flex;align-items:center;gap:10px;font:900 20px 'Playfair Display',serif;letter-spacing:-.5px;color:var(--ink)}
.site-logo i{width:10px;height:10px;flex:none;border-radius:50%;background:var(--green);box-shadow:0 0 0 0 rgba(26,122,94,.45);animation:site-logo-pulse 2s ease-in-out infinite}
@keyframes site-logo-pulse{50%{box-shadow:0 0 0 6px rgba(26,122,94,0)}}
.site-nav-links{display:flex;align-items:center;gap:36px}
.site-nav-links a{position:relative;color:var(--muted);font-size:12px;font-weight:700;letter-spacing:1.5px;text-transform:uppercase;transition:color .2s}
.site-nav-links a::after{content:'';position:absolute;left:0;bottom:-3px;width:0;height:1px;background:var(--green);transition:width .3s}
.site-nav-links a:hover{color:var(--ink)}
.site-nav-links a:hover::after{width:100%}
.site-nav-links .site-nav-cta{padding:9px 20px;border-radius:100px;background:var(--ink);color:var(--cream)}
.site-nav-links .site-nav-cta::after{display:none}
.site-nav-links .site-nav-cta:hover{background:var(--green);color:#fff}
.site-nav-burger{display:none;padding:4px;border:0;background:none;cursor:pointer;flex-direction:column;gap:5px}
.site-nav-burger span{display:block;width:22px;height:2px;border-radius:2px;background:var(--ink)}
@media(max-width:860px){
  .site-nav-inner{padding:0 24px}
  .site-nav-links{display:none}
  .site-nav-links.open{display:flex;position:absolute;top:60px;left:0;right:0;flex-direction:column;gap:20px;padding:24px 40px 32px;background:var(--paper);border-bottom:1px solid var(--line);box-shadow:0 14px 25px rgba(20,18,14,.08)}
  .site-nav-burger{display:flex}
}
.public-body:has(.site-nav) .public-shell{padding-top:32px}
.site-nav+.public-shell>.public-brand{display:none}
.public-body:has(.site-nav){display:flex;min-height:100vh;flex-direction:column}
.public-body:has(.site-nav) .public-shell{width:100%;flex:1}
.site-footer{width:100%;padding:54px 0 32px;background:var(--ink);color:#fff}
.site-footer-inner{width:100%;max-width:1280px;margin:0 auto;padding:0 40px}
.site-footer-top{display:flex;align-items:flex-start;justify-content:space-between;gap:40px;padding-bottom:38px;margin-bottom:24px;border-bottom:1px solid rgba(255,255,255,.07)}
.site-footer-logo{display:flex;align-items:center;gap:10px;font:900 22px 'Playfair Display',serif}
.site-footer-logo i{width:8px;height:8px;border-radius:50%;background:var(--green2)}
.site-footer-top p{max-width:280px;margin:12px 0 0;color:rgba(255,255,255,.35);font-size:13px;line-height:1.6}
.site-footer-credit{text-align:right}.site-footer-credit small{display:block;margin-bottom:8px;color:rgba(255,255,255,.25);font-size:11px;font-weight:700;letter-spacing:1px}.site-footer-credit a{color:rgba(255,255,255,.6);font-size:15px;font-weight:700}
.site-footer-credit a:hover,.site-footer-allies a:hover{color:var(--green2)}
.site-footer-allies{display:flex;align-items:center;gap:24px;flex-wrap:wrap}.site-footer-allies>small{color:rgba(255,255,255,.2);font-size:11px;font-weight:700;letter-spacing:1.5px}.site-footer-allies>div{display:flex;gap:24px;flex-wrap:wrap}.site-footer-allies a{color:rgba(255,255,255,.35);font-size:13px;font-weight:600}
.site-footer-copy{margin:32px 0 0;text-align:center;color:rgba(255,255,255,.2);font-size:12px}
@media(max-width:620px){.site-footer{padding:42px 0 28px}.site-footer-inner{padding:0 24px}.site-footer-top{display:grid;gap:28px;padding-bottom:28px}.site-footer-credit{text-align:left}.site-footer-allies{align-items:flex-start;display:grid;gap:14px}.site-footer-allies>div{display:grid;gap:13px}}

/* Registro optimizado para campañas */
.registration-page{flex:1;width:100%;padding:64px 40px 76px;background:linear-gradient(115deg,#faf7f2 0 58%,#132019 58%)}
.registration-hero{display:grid;grid-template-columns:minmax(0,1fr) minmax(390px,500px);align-items:center;gap:clamp(54px,8vw,120px);width:100%;max-width:1180px;margin:0 auto}
.registration-copy{max-width:570px}.registration-kicker{display:inline-flex;align-items:center;gap:8px;color:var(--green);font-size:11px;font-weight:800;letter-spacing:2px}.registration-kicker::before{content:'';width:24px;height:1px;background:var(--green)}
.registration-copy h1{margin:18px 0 22px;font:900 clamp(44px,5.2vw,68px)/.98 'Playfair Display',serif;letter-spacing:-2px}.registration-copy h1 em{color:var(--green)}.registration-copy>p{max-width:530px;margin:0;color:var(--muted);font-size:17px;line-height:1.7}
.registration-benefits{display:grid;gap:17px;margin:34px 0 28px;padding:0;list-style:none}.registration-benefits li{display:flex;align-items:flex-start;gap:13px}.registration-benefits i{display:grid;place-items:center;width:25px;height:25px;flex:none;border-radius:50%;background:#dff1e9;color:var(--green);font-style:normal;font-weight:900}.registration-benefits span{display:grid;gap:2px;color:var(--muted);line-height:1.45}.registration-benefits b{color:var(--ink);font-size:15px}.registration-trust{display:flex;align-items:center;gap:12px;color:var(--green);font-size:12px}.registration-trust span{color:var(--line)}
.registration-form-card{padding:38px 40px;background:#fff;border:1px solid var(--line);border-radius:20px;box-shadow:0 28px 70px rgba(14,20,16,.18)}.registration-form-card>small{color:var(--green);font-weight:800;letter-spacing:2px}.registration-form-card h2{margin:9px 0 8px;font:900 italic 34px/1.05 'Playfair Display',serif}.registration-form-card h2 em{color:var(--green)}.registration-form-card>p{margin:0 0 24px;color:var(--muted)}
.registration-form{gap:14px}.registration-form .field{gap:7px}.registration-form input{min-height:48px;padding:12px 14px}.registration-form input::placeholder{color:#aaa399}.password-field{position:relative}.password-field input{padding-right:78px}.password-field button{position:absolute;right:7px;top:7px;height:34px;padding:0 9px;border:0;border-radius:7px;background:var(--cream);color:var(--ink);font-size:11px;font-weight:700;cursor:pointer}
.registration-submit{width:100%;min-height:50px;font-size:14px;box-shadow:0 8px 20px rgba(22,19,15,.14)}.registration-legal{margin:13px 0 0!important;text-align:center;font-size:10px;line-height:1.5}.registration-login{display:flex;justify-content:center;gap:7px;margin-top:19px;padding-top:18px;border-top:1px solid #eee9e0;color:var(--muted);font-size:12px}.registration-login a{color:var(--green);font-weight:800}
.registration-visits table{min-width:1100px}.registration-visits td{vertical-align:top}.visit-type{display:inline-block;padding:5px 9px;border-radius:99px;background:#eee;color:#555;font-size:9px;font-weight:900;white-space:nowrap}.visit-type.persona-probable{background:#e5f3ed;color:var(--green)}.visit-type.bot{background:#fff3d7;color:#8b6518}.visit-type.ia{background:#e9e7fa;color:#5547a7}.visit-url{display:block;max-width:330px;overflow:hidden;color:var(--green);font-weight:700;text-overflow:ellipsis;white-space:nowrap}.visit-ref{display:block;max-width:330px;margin-top:5px;overflow:hidden;color:var(--muted);text-overflow:ellipsis;white-space:nowrap}

/* Páginas de reserva de cada institución */
.customer-body{display:flex;min-height:100vh;flex-direction:column;background:#f4f1eb;background-image:radial-gradient(circle at 8% 5%,rgba(35,166,126,.12),transparent 27%),radial-gradient(circle at 92% 20%,rgba(26,122,94,.09),transparent 25%)}
.customer-body .public-shell{width:100%;max-width:1120px;flex:1;padding:38px 24px 28px}.customer-body .public-shell>.public-brand{display:none}
.customer-body .booking{margin:0 auto;border:1px solid rgba(26,122,94,.13);border-radius:26px;box-shadow:0 30px 80px rgba(25,43,34,.13)}
.customer-body .booking-improved .booking-head{position:relative;padding:48px 48px 42px;background:linear-gradient(125deg,#101713 0%,#173d30 52%,#1a7a5e 100%);overflow:hidden}
.customer-body .booking-improved .booking-head::after{content:'';position:absolute;right:-80px;bottom:-150px;width:340px;height:340px;border:1px solid rgba(255,255,255,.12);border-radius:50%;box-shadow:0 0 0 45px rgba(255,255,255,.025),0 0 0 90px rgba(255,255,255,.018)}
.customer-body .booking-improved .booking-head>*{position:relative;z-index:1}.customer-body .booking-improved .booking-head small{display:inline-flex;align-items:center;gap:9px;color:#8ce7c5}.customer-body .booking-improved .booking-head small::before{content:'';width:9px;height:9px;border-radius:50%;background:#50d5a5;box-shadow:0 0 0 6px rgba(80,213,165,.13)}
.customer-body .booking-improved .booking-head h1{max-width:760px;margin:17px 0 12px;font-size:clamp(38px,6vw,62px);line-height:1;letter-spacing:-1px}.customer-body .booking-improved .booking-head p{max-width:650px;margin:0;font-size:15px;line-height:1.6}
.customer-body .booking-improved .booking-body{padding:38px 48px 46px}.customer-body .booking-improved .booking-body>.notice{display:flex;align-items:center;gap:5px;padding:15px 18px;border:1px solid #cfe8dd;border-radius:12px;background:#f0f8f4}
.customer-body .booking-improved .booking-body>form:first-of-type{padding:24px;border-radius:16px;background:#faf8f4}.customer-body .booking-improved .booking-body>form:first-of-type::before{margin-bottom:4px;font-size:21px}
.customer-body .booking-improved .field label{color:#39352f}.customer-body .booking-improved input,.customer-body .booking-improved select{border-color:#d8d1c6;background:#fff;transition:border-color .18s,box-shadow .18s}.customer-body .booking-improved input:focus,.customer-body .booking-improved select:focus{outline:0;border-color:var(--green);box-shadow:0 0 0 3px rgba(26,122,94,.1)}
.customer-body .booking-improved .slot label{background:#fff}.customer-body .booking-improved .slot input:checked+label{background:var(--green);color:#fff;box-shadow:0 6px 14px rgba(26,122,94,.22)}
.customer-powered{display:flex;align-items:center;justify-content:center;gap:8px;padding:4px 20px 30px;color:#817a6f;font-size:11px}.customer-powered a{display:flex;align-items:center;gap:7px;color:#29251f;font:900 15px 'Playfair Display',serif}.customer-powered i{width:7px;height:7px;border-radius:50%;background:var(--green)}
.customer-body .auth-card{margin:26px auto}.customer-body .public-shell>.actions{max-width:780px;margin:0 auto 18px}
@media(max-width:700px){.customer-body .public-shell{padding:16px 12px 20px}.customer-body .booking{border-radius:20px}.customer-body .booking-improved .booking-head{padding:32px 24px}.customer-body .booking-improved .booking-head h1{font-size:38px}.customer-body .booking-improved .booking-body{padding:25px 20px 30px}.customer-body .booking-improved .booking-body>.notice{display:block;line-height:1.55}.customer-body .booking-improved .booking-body>form:first-of-type{padding:17px}.customer-powered{flex-wrap:wrap;padding-bottom:22px}.customer-body .auth-card{margin:12px auto}}
@media(max-width:940px){.registration-page{padding:50px 28px;background:var(--paper)}.registration-hero{grid-template-columns:1fr;gap:42px;max-width:650px}.registration-copy{max-width:none}.registration-copy h1{font-size:clamp(42px,9vw,62px)}.registration-form-card{max-width:560px;width:100%;margin:0 auto}}
@media(max-width:620px){.registration-page{padding:38px 16px 48px}.registration-copy h1{letter-spacing:-1px}.registration-copy>p{font-size:15px}.registration-benefits{margin:28px 0 22px}.registration-trust{align-items:flex-start;flex-direction:column;gap:5px}.registration-trust span{display:none}.registration-form-card{padding:28px 22px}.registration-form-card h2{font-size:30px}}

.sidebar{padding-bottom:16px;overflow:hidden}
.sidebar .brand,.sidebar .account-pill{flex-shrink:0}
.sidebar nav{min-height:0;overflow-y:auto;overscroll-behavior:contain;padding-right:4px;scrollbar-width:thin;scrollbar-color:#343b32 transparent}
.sidebar nav::-webkit-scrollbar{width:5px}
.sidebar nav::-webkit-scrollbar-thumb{background:#343b32;border-radius:8px}
.sidebar-bottom{margin-top:10px;padding:12px 6px 0;display:grid;gap:8px;flex-shrink:0}
.sidebar-user{min-width:0;padding:0 6px}
.sidebar-user strong,.sidebar-user small{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.sidebar-user strong{font-size:12px}
.sidebar-user small{color:#737b70;font-size:10px;margin-top:2px}
.logout-link{display:flex;align-items:center;gap:8px;padding:8px 10px;border-radius:8px;color:#a9afa5;font-size:12px;font-weight:700}
.logout-link:hover{background:#2a1d19;color:#e88a73}
.logout-link span{white-space:nowrap;max-width:none;overflow:visible}
@media(max-height:760px) and (min-width:951px){
  .sidebar{padding-top:18px}
  .brand{padding-bottom:16px}
  .account-pill{padding:9px 12px;margin-bottom:10px}
  .sidebar nav{gap:1px}
  .sidebar nav a{padding:7px 10px}
  .sidebar-bottom{margin-top:7px;padding-top:8px}
  .sidebar-user{display:none}
}

.trial-banner{display:grid;grid-template-columns:minmax(0,1fr) auto auto;align-items:center;gap:28px;margin:-40px -40px 30px;padding:22px 40px;background:linear-gradient(110deg,#16231d,#1a7a5e);color:#fff;box-shadow:0 10px 30px rgba(26,122,94,.18)}
.trial-banner.expired{background:linear-gradient(110deg,#3b201b,#a74735)}
.trial-copy{display:grid;gap:3px}.trial-copy small{font-size:9px;font-weight:800;letter-spacing:2px;color:#74d7b7}.trial-copy strong{font:900 italic clamp(22px,3vw,32px) 'Playfair Display',serif}.trial-copy span{color:rgba(255,255,255,.7);font-size:12px}.trial-count{text-align:center;padding:0 28px;border-left:1px solid rgba(255,255,255,.18);border-right:1px solid rgba(255,255,255,.18)}.trial-count b{display:block;font:900 32px 'Playfair Display',serif}.trial-count span,.trial-count small{display:block}.trial-count span{font-weight:700;font-size:11px}.trial-count small{color:rgba(255,255,255,.6);font-size:9px;margin-top:3px}.trial-banner .btn{background:#fff;color:#163c30;white-space:nowrap}.trial-banner .btn:hover{background:#e5f3ed}
@media(max-width:950px){.trial-banner{margin:-70px -28px 28px;padding:76px 28px 20px;grid-template-columns:1fr auto}.trial-banner .btn{grid-column:1/-1}.trial-count{border-right:0;padding-right:0}}
@media(max-width:620px){.trial-banner{margin:-70px -16px 24px;padding:74px 18px 18px;grid-template-columns:1fr;gap:16px}.trial-count{text-align:left;border:0;padding:0}.trial-count b{display:inline;margin-right:6px}.trial-banner .btn{grid-column:auto}}

@media(max-width:700px){
  .hours-table{border:0;background:transparent;overflow:visible}
  .hours-table table,.hours-table tbody,.hours-table tr,.hours-table td{display:block;width:100%;min-width:0}
  .hours-table thead{display:none}
  .hours-table tbody{display:grid;gap:10px}
  .hours-table tr{background:#fff;border:1px solid var(--line);border-radius:12px;padding:14px;box-shadow:0 4px 16px rgba(20,18,14,.04)}
  .hours-table td{border:0;padding:5px 0;display:flex;justify-content:space-between;gap:15px;text-align:right}
  .hours-table td::before{font-size:9px;font-weight:800;letter-spacing:1.2px;text-transform:uppercase;color:#948d81;text-align:left}
  .hours-table td:nth-child(1)::before{content:'Profesional'}
  .hours-table td:nth-child(2)::before{content:'Día'}
  .hours-table td:nth-child(3)::before{content:'Horario'}
  .hours-table td:nth-child(4){justify-content:flex-end;padding-top:10px;margin-top:5px;border-top:1px solid #eee9e0}
  .hours-table td:nth-child(4)::before{content:''}
  .hours-table td:nth-child(4) a{color:#b94a3a;font-weight:700}
}

/* La página de horarios no debe ensanchar el viewport */
.hours-layout{grid-template-columns:minmax(0,1.25fr) minmax(340px,.75fr);align-items:start;max-width:100%}
.hours-layout>.card{min-width:0;max-width:100%;overflow:hidden}
.hours-layout .form-grid{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}
.hours-layout .field,.hours-layout input,.hours-layout select,.hours-layout textarea{min-width:0;max-width:100%}
.hours-layout .table-wrap{max-width:100%}
@media(max-width:1380px){
  .hours-layout{grid-template-columns:minmax(0,1fr)}
  .hours-layout>.card{width:100%}
}
@media(max-width:620px){
  .hours-layout .form-grid{grid-template-columns:minmax(0,1fr)}
  .hours-layout .field.full,.hours-layout .form-actions{grid-column:auto}
}
.patient-history{display:grid;gap:10px;max-height:620px;overflow:auto;padding-right:5px}.history-item{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;padding:14px;border:1px solid var(--line);border-radius:10px}.history-item div{display:grid;gap:4px}.history-item span,.history-item small{color:var(--muted)}@media(max-width:620px){.history-item{flex-direction:column}.patient-history{max-height:none}}
.availability-list{display:grid;gap:9px}.availability-professional{margin:18px 0 3px;padding-bottom:9px;border-bottom:1px solid var(--line);font:900 italic 20px 'Playfair Display',serif}.availability-professional:first-child{margin-top:0}.availability-row{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:14px 15px;border:1px solid #eee8de;border-radius:11px;background:#fcfaf7}.availability-day{display:grid;grid-template-columns:minmax(90px,auto) auto;align-items:center;gap:3px 18px}.availability-day span{font-weight:700;color:var(--green)}.availability-day small{grid-column:1/-1;color:var(--muted)}@media(max-width:620px){.availability-row{align-items:flex-start;flex-direction:column}.availability-row .actions{width:100%}.availability-row .actions .btn{flex:1}.availability-day{grid-template-columns:1fr}.availability-day small{grid-column:auto}}

/* Agenda mensual */
.calendar-toolbar{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:14px}.calendar-toolbar h2{margin:0;font:900 italic 26px 'Playfair Display',serif;text-transform:capitalize}.calendar-card{background:#fff;border:1px solid var(--line);border-radius:16px;overflow:hidden;box-shadow:0 8px 28px rgba(20,18,14,.05)}.calendar-week,.calendar-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr))}.calendar-week{background:#171a16;color:#8ca095}.calendar-week span{text-align:center;padding:10px;font-size:9px;font-weight:800;letter-spacing:1.5px;text-transform:uppercase}.calendar-day{min-height:116px;padding:10px;border-right:1px solid #eee8de;border-bottom:1px solid #eee8de;background:#fff;display:flex;flex-direction:column;gap:5px;transition:.18s}.calendar-day:nth-child(7n){border-right:0}.calendar-day:hover{background:#f4f0e8}.calendar-day.empty-day{background:#faf8f4}.day-number{width:28px;height:28px;display:grid;place-items:center;border-radius:50%;font-weight:800}.calendar-day.today .day-number{background:var(--green);color:#fff}.calendar-day small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;padding:4px 6px;border-left:3px solid var(--event-color);border-radius:4px;background:#eef6f2;font-size:10px}.calendar-day b{font-size:9px;color:var(--green)}@media(max-width:780px){.calendar-card{overflow-x:auto}.calendar-week,.calendar-grid{min-width:760px}.calendar-toolbar h2{font-size:21px}.calendar-toolbar .btn{padding:8px 12px;font-size:11px}}

/* Reserva pública guiada */
.booking-improved{max-width:980px}.booking-improved .booking-head{background:linear-gradient(120deg,#121712,#1a7a5e);color:#fff;padding:42px}.booking-improved .booking-head small{color:#7de0bd;font-weight:800;letter-spacing:2px}.booking-improved .booking-head h1{font-size:clamp(38px,6vw,58px);margin:10px 0}.booking-improved .booking-head p{color:rgba(255,255,255,.7)}.booking-improved .booking-body{padding:36px}.booking-improved .booking-body>.notice{border:0;background:#edf6f2;padding:16px 18px}.booking-improved .booking-body>.notice a{color:var(--green);font-weight:800}.booking-improved .booking-body>form:first-of-type{background:#faf7f2;border:1px solid #e5ded2;border-radius:14px;padding:20px;position:relative}.booking-improved .booking-body>form:first-of-type::before{content:'1 · Elegí servicio, profesional y fecha';grid-column:1/-1;font:900 italic 19px 'Playfair Display',serif;color:var(--ink)}.booking-improved .section-title{display:flex;align-items:center;gap:10px}.booking-improved .booking-body>h2.section-title::before{content:'2';width:30px;height:30px;border-radius:50%;display:grid;place-items:center;background:var(--green);color:#fff;font:800 13px 'DM Sans',sans-serif}.booking-improved form h2.section-title::before{content:'3';width:30px;height:30px;border-radius:50%;display:grid;place-items:center;background:var(--green);color:#fff;font:800 13px 'DM Sans',sans-serif}.booking-improved .slot-grid{grid-template-columns:repeat(5,minmax(0,1fr));gap:10px}.booking-improved .slot label{padding:12px 8px;border-radius:10px;transition:.15s}.booking-improved .slot label:hover{border-color:var(--green);color:var(--green);transform:translateY(-1px)}.booking-improved .form-actions .btn{min-width:210px;padding:14px 24px}.booking-improved input,.booking-improved select{min-height:46px}@media(max-width:700px){.booking-improved .booking-head{padding:28px 22px}.booking-improved .booking-body{padding:22px}.booking-improved .slot-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.booking-improved .booking-body>form:first-of-type{padding:15px}.booking-improved .form-actions .btn{width:100%}}
.whatsapp-float{position:fixed;right:24px;bottom:24px;z-index:40;width:58px;height:58px;border-radius:50%;display:grid;place-items:center;background:#25d366;color:#fff;box-shadow:0 12px 30px rgba(16,96,57,.3);transition:.18s}.whatsapp-float:hover{transform:translateY(-3px) scale(1.04);background:#1ebe5d}.whatsapp-float svg{width:29px;height:29px;fill:currentColor}@media(max-width:700px){.whatsapp-float{right:16px;bottom:16px;width:54px;height:54px}}
