: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__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.25rem;border-radius:var(--radius-md);border:1px solid rgba(6,175,65,.15);background:#06af410d}.horario-page .date-selector__panel{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:.85rem}.horario-page .date-selector__nav{width:2.4rem;height:2.4rem;display:grid;place-items:center;border-radius:999px;border:1px solid var(--border-soft);background:#fff;color:var(--brand-primary);font-size:1.35rem;transition:all .2s ease}.horario-page .date-selector__nav:hover:not(:disabled){background:#06af411a;border-color:#06af4140}.horario-page .date-selector__nav:disabled{cursor:not-allowed;opacity:.45}.horario-page .date-selector__summary{display:flex;flex-direction:column;align-items:center;gap:.35rem;text-align:center}.horario-page .date-selector__range{font-size:1.05rem;font-weight:600;color:var(--text-main)}.horario-page .date-selector__calendar-toggle{border:none;background:none;color:var(--brand-primary);font-weight:600;font-size:.95rem;cursor:pointer;text-decoration:underline;transition:opacity .2s ease}.horario-page .date-selector__calendar-toggle:hover{opacity:.75}.horario-page .date-selector__fallback{position:absolute;inset:0;pointer-events:none;width:1px;height:1px;overflow:hidden}.horario-page .date-selector__input{position:absolute;inset:0;opacity:0;pointer-events:none;width:1px;height:1px;border:none}.horario-page .date-selector__week{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:.75rem;padding:.1rem 0 .35rem;margin:0;list-style:none}.horario-page .date-selector__day{min-width:0}.horario-page .date-pill{position:relative;display:flex;flex-direction:column;align-items:center;gap:.4rem;width:100%;padding:.9rem .5rem 1.4rem;border-radius:14px;border:1px solid var(--border-soft);background:#fff;color:var(--text-main);transition:border-color .2s ease,transform .2s ease}.horario-page .date-pill:hover:not(:disabled){border-color:#06af4166;transform:translateY(-1px)}.horario-page .date-pill:disabled{cursor:not-allowed;opacity:.5}.horario-page .date-pill--selected{border-color:#06af41b3}.horario-page .date-pill--today{border-color:#06af4173}.horario-page .date-pill__weekday{font-size:.95rem;font-weight:600;color:var(--brand-primary)}.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-overlay{position:fixed;inset:0;z-index:30;display:flex;align-items:center;justify-content:center}.calendar-overlay__backdrop{position:absolute;inset:0;background:#00000059}.calendar{position:relative;z-index:31;width:min(420px,92vw);background:#fff;border-radius:var(--radius-md);padding:1.5rem;display:flex;flex-direction:column;gap:1rem;box-shadow:0 18px 45px #0000002e}.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(7,1fr);gap:.25rem;text-transform:uppercase;font-size:.75rem;font-weight:600;color:var(--text-muted)}.calendar__grid{display:grid;grid-template-columns:repeat(7,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;transition:background .2s ease}.calendar__day:hover:not(:disabled){background:#06af412e}.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--selected{background:var(--brand-primary);color:#fff}.calendar__day--other{background:#f0f0f0d9;color:var(--text-muted)}.calendar__close{align-self:flex-end;border:none;background:none;color:var(--brand-primary);font-weight:600;font-size:.95rem;cursor:pointer;text-decoration:underline;transition:opacity .2s ease}.calendar__close:hover{opacity:.75}@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:.9rem;gap:.75rem}.horario-page .date-selector__panel{flex-direction:column;align-items:stretch;gap:.5rem}.horario-page .date-selector__week{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:.6rem;padding:0}.horario-page .date-selector__day{min-width:0}.horario-page .date-selector__range{font-size:.95rem}.horario-page .date-pill{padding:.85rem .45rem 1.1rem;gap:.35rem;width:100%}.horario-page .date-pill__weekday{font-size:.9rem}.horario-page .date-pill__number{font-size:1.35rem}.grid{gap:.85rem}.card{padding:1.05rem}}@media (max-width: 420px){.calendar{padding:1.25rem;gap:.75rem}.calendar__grid{gap:.25rem}}.breadcrumb{margin-bottom:.75rem}
