/* Sandra Custom · Paleta cálida, responsive y botones coherentes en hover */
.scaca-portal{--sc-ink:#2e2a25;--sc-muted:#5e5a54;--sc-green:#71826b;--sc-green-soft:#95a28e;--sc-rose:#c99583;--sc-cream:#f3eed2;--sc-ivory:#faf8f1;--sc-border:#e7dfcf;max-width:1040px;margin:24px auto 48px;color:var(--sc-ink);font-family:inherit;line-height:1.5}
.scaca-portal *{box-sizing:border-box}.scaca-portal h2{font-size:clamp(1.5rem,3.2vw,2rem);line-height:1.25;color:var(--sc-ink)}.scaca-portal h3{font-size:1.22rem;color:var(--sc-ink);margin:34px 0 14px}.scaca-portal p{margin:7px 0 13px;color:inherit}.scaca-portal small,.scaca-muted{color:var(--sc-muted);font-size:.88rem}.scaca-portal form{margin:12px 0}.scaca-portal label{display:block;font-weight:600;margin:8px 0}.scaca-portal input,.scaca-portal select{font:inherit;color:var(--sc-ink);background:#fff;display:block;width:100%;max-width:520px;min-height:44px;padding:10px 13px;border:1px solid #c9c4b7;border-radius:9px}.scaca-portal input:focus,.scaca-portal select:focus,.scaca-portal button:focus-visible,.scaca-portal summary:focus-visible{outline:3px solid var(--sc-green-soft);outline-offset:2px}
.scaca-portal button,.scaca-portal .scaca-submit{font:inherit;appearance:none;display:inline-flex;align-items:center;justify-content:center;min-height:44px;border:1px solid var(--sc-green);border-radius:9px;background:var(--sc-green);color:#fff;padding:10px 17px;cursor:pointer;font-weight:600;transition:background .15s ease,transform .15s ease,border-color .15s ease}
.scaca-portal button:hover:not(:disabled),.scaca-portal button:active:not(:disabled),.scaca-portal .scaca-submit:hover:not(:disabled){background:#53634e!important;border-color:#53634e!important;color:#fff!important;box-shadow:none!important}.scaca-portal button:disabled{cursor:not-allowed;opacity:.45}.scaca-portal .scaca-linkbtn{background:transparent;border:0;color:#8a503d;text-decoration:underline;text-underline-offset:3px;padding:8px 0;min-height:36px}.scaca-portal .scaca-linkbtn:hover{background:transparent!important;color:#603e30!important;border:0!important}
.scaca-portal-top{display:flex;align-items:flex-start;justify-content:space-between;gap:10px;flex-wrap:wrap}.scaca-banner{padding:14px 16px;border-left:4px solid var(--sc-green-soft);background:var(--sc-cream);border-radius:6px;margin:12px 0}.scaca-banner.error{border-left-color:#a34236;background:#fae9e5}.scaca-month-filter{display:flex;align-items:flex-end;flex-wrap:wrap;gap:10px;margin:14px 0 24px}.scaca-month-filter label{margin:0}.scaca-month-filter select{min-width:190px}
.scaca-portal-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,340px),1fr));gap:14px}.scaca-portal-appointment,.scaca-portal-credit{min-width:0;background:var(--sc-ivory);border:1px solid var(--sc-border);border-radius:15px;padding:18px}.scaca-portal-appointment strong{font-size:1.05rem}.scaca-portal-appointment small{margin-left:8px}.scaca-portal-credit p{margin:8px 0}.scaca-action{background:#fff;border:1px solid var(--sc-border);border-radius:10px;margin:12px 0;padding:0 12px}.scaca-action summary{font-weight:600;color:var(--sc-ink);cursor:pointer;padding:12px 0;list-style-position:inside}.scaca-action[open] summary{border-bottom:1px solid var(--sc-border);margin-bottom:10px}
.scaca-calendar{padding:0 0 15px}.scaca-calendar-label{font-size:.86rem;color:var(--sc-muted);margin:5px 0 12px}.scaca-weekdays,.scaca-days{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:4px;text-align:center}.scaca-weekdays{font-weight:700;font-size:12px;color:var(--sc-muted);padding-bottom:7px}.scaca-days{margin-bottom:13px}.scaca-portal .scaca-day{background:#fff;color:var(--sc-ink);border:1px solid var(--sc-border);border-radius:7px;min-width:0;min-height:38px;padding:4px;font-size:14px}.scaca-portal .scaca-day:hover:not(:disabled),.scaca-portal .scaca-day.is-active{background:var(--sc-green)!important;color:#fff!important;border-color:var(--sc-green)!important}.scaca-portal .scaca-day.is-disabled{background:#f1ede6;color:#aaa;opacity:.55}.scaca-slot-day[hidden]{display:none!important}.scaca-slot-day{border-top:1px solid var(--sc-border);padding-top:12px}.scaca-times{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px;margin:10px 0}.scaca-portal .scaca-time{background:#fff;color:var(--sc-ink);border-color:var(--sc-border);font-size:.86rem;min-height:52px;padding:8px}.scaca-portal .scaca-time.is-full{background:var(--sc-cream);color:#604334;border-color:var(--sc-rose)}.scaca-portal .scaca-time:hover,.scaca-portal .scaca-time.is-active{background:var(--sc-green)!important;color:#fff!important;border-color:var(--sc-green)!important}.scaca-selection{font-size:.88rem;color:var(--sc-muted)!important}.scaca-calendar-form{padding-top:10px}.scaca-calendar-form .scaca-submit{width:100%}.scaca-history-wrap{overflow-x:auto}.scaca-history{width:100%;border-collapse:collapse;font-size:.9rem}.scaca-history th,.scaca-history td{padding:11px;border-bottom:1px solid var(--sc-border);text-align:left}
@media(max-width:720px){.scaca-portal{padding:0 12px;margin:14px auto 30px}.scaca-portal-list{grid-template-columns:1fr}.scaca-portal-appointment,.scaca-portal-credit{padding:14px}.scaca-portal button{max-width:100%}.scaca-month-filter{display:grid;grid-template-columns:1fr}.scaca-month-filter select,.scaca-month-filter button{width:100%}.scaca-times{grid-template-columns:1fr}.scaca-portal-top{align-items:center}.scaca-days{gap:3px}.scaca-portal .scaca-day{font-size:13px;min-height:40px}.scaca-portal h3{margin-top:24px}}
@media(prefers-reduced-motion:reduce){.scaca-portal button{transition:none}}

/* 1.7 asynchronous states: accessible, neutral feedback. */
.scaca-lazy-calendar [data-scaca-calendar-result]{min-height:30px}
.scaca-portal [aria-live="polite"]{overflow-wrap:anywhere}
.scaca-portal .scaca-banner.error{color:#72291f;border-color:#a34236}
.scaca-portal [data-scaca-overview] > h3{margin-bottom:8px}
.scaca-portal .scaca-time:disabled{opacity:.5;cursor:not-allowed}
.scaca-portal .scaca-action summary{min-height:44px}
.scaca-portal button:focus-visible,.scaca-portal summary:focus-visible{outline:3px solid #617b57;outline-offset:2px}

/* 1.8.0: clearly visible, accessible progress state. */
.scaca-portal .scaca-loading{display:flex;align-items:center;gap:12px;min-height:58px;padding:14px 16px;background:var(--sc-ivory);border:1px solid var(--sc-border);border-radius:10px;color:var(--sc-muted)}
.scaca-portal .scaca-spinner{display:inline-block;width:22px;height:22px;flex:none;border:3px solid #d1d8cb;border-top-color:#53634e;border-radius:50%;animation:scaca-spin .85s linear infinite}
@keyframes scaca-spin{to{transform:rotate(360deg)}}
@media(prefers-reduced-motion:reduce){.scaca-portal .scaca-spinner{animation:none;border-top-color:#53634e}}

/* 1.8.7 — An uncertain result is a verification state, not a failed booking. */
.scaca-portal .scaca-banner.pending{border-left-color:#8c8667;background:#f4f0e0;color:#38372e}
