:root{--brand-primary: #06af41;--text-main: #1d2a1f;--text-muted: #5b6b5f;--border-soft: #e2f3e6;--spacing-xs: .5rem;--spacing-sm: .75rem;--spacing-md: 1rem;--spacing-lg: 1.5rem;--radius-md: 12px;--radius-lg: 16px}*,*:before,*:after{box-sizing:border-box}body{margin:0;font-family:Inter,Segoe UI,Tahoma,Geneva,Verdana,sans-serif;background-color:#f6fdf7;color:var(--text-main);min-height:100vh}a{color:var(--brand-primary)}button{font-family:inherit}.link-button{background:none;border:none;color:var(--brand-primary);font-weight:600;padding:0;cursor:pointer}.link-button:focus-visible{outline:2px solid var(--brand-primary);outline-offset:2px}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.modal-overlay{position:fixed;inset:0;display:flex;align-items:center;justify-content:center;padding:clamp(1.2rem,4vw,1.6rem);background:#00000073;z-index:1000}.modal-overlay__backdrop{position:absolute;inset:0;background:transparent;cursor:pointer}.modal{position:relative;z-index:1;width:min(420px,100%);padding:clamp(1.1rem,4vw,1.5rem);border-radius:var(--radius-md);background:#fff;display:flex;flex-direction:column;gap:clamp(.75rem,3vw,1rem);box-shadow:0 18px 45px #0000002e}.modal__title{margin:0;font-size:clamp(1.1rem,4vw,1.3rem);font-weight:600}.modal__body{margin:0;line-height:1.45;color:var(--text-main)}.modal__note{margin:.75rem 0 0;font-size:.95rem;color:var(--text-muted)}.payment-warning{display:flex;gap:1rem;padding:1rem;border-radius:var(--radius-md);background:#f8fafc;border:1px solid #e2e8f0;box-shadow:inset 0 0 0 2px #2563eb1a}.payment-warning__copy{flex:1;display:flex;flex-direction:column;gap:.35rem}.payment-warning__eyebrow{margin:0;font-size:.8rem;text-transform:uppercase;letter-spacing:.08em;color:#2563eb;font-weight:600}.payment-warning__title{margin:0;font-size:1rem;font-weight:700;color:#0f172a}.payment-warning__text{margin:0;font-size:.92rem;color:#1f2937}.payment-warning__text--strong{font-weight:600;color:#b45309}.payment-warning__logo{align-self:center;max-width:130px;height:auto}@media (max-width: 480px){.payment-warning{flex-direction:column;align-items:flex-start}.payment-warning__logo{max-width:110px}}.modal__actions{display:flex;justify-content:flex-end;gap:.5rem}.modal__confirm,.modal__cancel{min-width:120px;padding:.55rem 1.4rem;border-radius:999px;font-weight:600;cursor:pointer}.modal__confirm{border:none;background:var(--brand-primary);color:#fff}.modal__cancel{border:1px solid var(--border-soft);background:#fff;color:var(--text-muted)}.feedback{border-radius:var(--radius-md);padding:.85rem 1rem;font-size:.95rem}.feedback.error{background:#d63d4a14;border:1px solid rgba(214,61,74,.3);color:#8c1b28}.feedback.muted{color:var(--text-muted);background:#06af410d}.section-header{display:flex;flex-direction:column;gap:.4rem;margin-bottom:1.35rem;text-align:center}.section-header h1{margin:0;font-size:1.55rem}.section-header p{margin:0;color:var(--text-muted);font-size:1rem}.grid{display:grid;gap:1rem;grid-template-columns:repeat(auto-fit,minmax(240px,1fr))}.grid--cols-2{grid-template-columns:minmax(0,1fr)}@media (min-width: 640px){.grid--cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}}.card{display:flex;flex-direction:column;gap:.4rem;padding:1.25rem;border-radius:var(--radius-md);border:1px solid var(--border-soft);background:#fff;text-align:left;cursor:pointer;transition:transform .2s ease,border-color .2s ease}.card:hover:not(:disabled){transform:translateY(-1px);border-color:#06af4166}.card:disabled{cursor:not-allowed;opacity:.55}.card-title{font-size:1.1rem;font-weight:600}.card-subtitle{color:var(--text-muted);font-size:.9rem}.card-action{margin-top:auto;font-size:.85rem;font-weight:600;color:var(--brand-primary)}.card-action.disabled{color:var(--text-muted)}.loader{width:100%;min-height:220px;padding:2rem;margin:0 auto;border-radius:var(--radius-lg);border:1px solid rgba(6,175,65,.15);background:#fffffff2;box-shadow:0 20px 45px #0d446114;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1.25rem;text-align:center;color:var(--text-main);animation:loaderFadeIn .4s ease}.loader__spinner{width:60px;height:60px;border-radius:999px;border:4px solid rgba(6,175,65,.15);border-top-color:var(--brand-primary);animation:loaderSpin 1s linear infinite}.loader__copy{display:flex;flex-direction:column;gap:.4rem;max-width:360px}.loader__title{margin:0;font-size:1.05rem;font-weight:600;letter-spacing:.01em}.loader__subtitle{margin:0;font-size:.92rem;color:var(--text-muted);line-height:1.4}@keyframes loaderSpin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes loaderFadeIn{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@media (max-width: 640px){.loader{min-height:180px;padding:1.5rem}.loader__spinner{width:48px;height:48px;border-width:3px}.loader__title{font-size:1rem}.loader__subtitle{font-size:.9rem}}.horario-page{display:grid;gap:1.35rem}.horario-page .date-selector{position:relative;display:flex;flex-direction:column;gap:1rem;padding:1.5rem;border-radius:var(--radius-md);border:1px solid rgba(6,175,65,.15);background:#fff;box-shadow:0 8px 24px #0f172a0d}.horario-page .date-selector__header{display:flex;align-items:flex-start;justify-content:space-between;flex-wrap:wrap;gap:1rem}.horario-page .date-selector__copy{display:flex;flex-direction:column;gap:.25rem}.horario-page .date-selector__eyebrow{margin:0;text-transform:uppercase;letter-spacing:.08em;font-size:.75rem;color:var(--text-muted)}.horario-page .date-selector__current{margin:0;font-size:1.4rem;font-weight:700;color:var(--text-main)}.horario-page .date-selector__nav-group{display:inline-flex;align-items:center;gap:.65rem}.horario-page .date-selector__month{min-width:10rem;text-align:center;font-weight:600;font-size:1.05rem;color:var(--text-main)}.horario-page .date-selector__helper{margin:0;color:var(--text-muted);font-size:.95rem}.horario-page .date-selector__status{margin:0;font-size:.9rem;color:var(--brand-primary)}.horario-page .date-selector__legend{display:flex;align-items:center;flex-wrap:wrap;gap:1rem;font-size:.9rem;color:var(--text-muted)}.horario-page .date-selector__legend-item{display:inline-flex;align-items:center;gap:.35rem}.horario-page .date-selector__legend-dot{width:.85rem;height:.85rem;border-radius:999px;display:inline-block;border:1px solid rgba(15,23,42,.15)}.horario-page .date-selector__legend-dot--available{background:#06af4140;border-color:#06af4199}.horario-page .date-selector__legend-dot--selected{background:var(--brand-primary);border-color:var(--brand-primary)}.horario-page .date-selector__legend-dot--today{background:transparent;border-color:#06af4199}.horario-page .date-selector__fallback{position:absolute;inset:0;width:1px;height:1px;overflow:hidden;pointer-events:none}.horario-page .date-selector__input{position:absolute;inset:0;opacity:0;width:1px;height:1px;border:none;pointer-events:none}.horario-page .date-pill__number{font-size:1.5rem;font-weight:700;line-height:1}.horario-page .date-pill__availability{font-size:.85rem;color:var(--text-muted)}.horario-page .date-pill__marker{position:absolute;bottom:.55rem;width:10px;height:10px;border-radius:50%;border:1px solid rgba(6,175,65,.25);background:transparent;transition:transform .2s ease,background .2s ease}.horario-page .date-pill__marker--active{background:var(--brand-primary);border-color:var(--brand-primary);transform:scale(1.05)}.calendar{width:100%;background:#fff;border-radius:var(--radius-md);padding:1.25rem;display:flex;flex-direction:column;gap:1rem;border:1px solid var(--border-soft)}.calendar--inline{box-shadow:none}.calendar__header{display:flex;align-items:center;justify-content:space-between}.calendar__title{font-size:1.1rem;font-weight:700;color:var(--text-main)}.calendar__nav{width:2.25rem;height:2.25rem;border-radius:50%;border:1px solid var(--border-soft);background:#fff;color:var(--brand-primary);font-size:1.3rem;display:grid;place-items:center;transition:background .2s ease,border-color .2s ease}.calendar__nav:hover:not(:disabled){background:#06af411a;border-color:#06af4140}.calendar__nav:disabled{cursor:not-allowed;opacity:.45}.calendar__weekdays{display:grid;grid-template-columns:repeat(5,1fr);gap:.25rem;text-transform:uppercase;font-size:.75rem;font-weight:600;color:var(--text-muted)}.calendar__grid{display:grid;grid-template-columns:repeat(5,1fr);gap:.35rem}.calendar__day{border:none;border-radius:10px;min-height:2.5rem;font-weight:600;background:#06af4114;color:var(--text-main);display:grid;place-items:center;cursor:pointer;position:relative;overflow:hidden;transition:background .2s ease,box-shadow .2s ease,color .2s ease,transform .2s ease}.calendar__day:after{content:"";position:absolute;inset:2px;border-radius:inherit;border:2px solid transparent;pointer-events:none;transition:border-color .2s ease}.calendar__day:disabled{cursor:not-allowed;opacity:.45;background:#d2d2d273;color:var(--text-muted)}.calendar__day--today{border:2px solid rgba(6,175,65,.5)}.calendar__day--available{background:#06af4126;color:#0f172a}.calendar__day--selected{background:linear-gradient(135deg,#06af41,#048f35);color:#fff;box-shadow:0 12px 28px #06af4159;transform:translateY(-1px)}.calendar__day--selected:after{border-color:#fffc}.calendar__day--other{background:#f0f0f0d9;color:var(--text-muted)}@media (max-width: 960px) and (min-width: 641px){.horario-page .date-selector__week{grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:.6rem}}@media (max-width: 640px){.section-header{margin-bottom:1.1rem}.section-header h1{font-size:1.3rem}.section-header p{font-size:.95rem}.horario-page{gap:1.1rem}.horario-page .date-selector{padding:1rem;gap:.85rem}.horario-page .date-selector__header{flex-direction:column;align-items:flex-start;gap:.75rem}.horario-page .date-selector__nav-group{width:100%;justify-content:space-between}.horario-page .date-selector__month{min-width:0;text-align:left}.grid{gap:.85rem}.card{padding:1.05rem}.calendar{padding:1rem}.calendar__grid{gap:.25rem}.calendar__day{min-height:2.4rem}}@media (max-width: 420px){.calendar{padding:.85rem}.calendar__nav{width:2rem;height:2rem}}.breadcrumb{margin-bottom:.75rem}
