.button{justify-content:center;align-items:center;gap:var(--space-2);border-radius:var(--radius-control);font-size:var(--font-size-secondary);font-weight:var(--font-weight-medium);cursor:pointer;transition:background-color var(--transition-fast), border-color var(--transition-fast), color var(--transition-fast);border:1px solid #0000;text-decoration:none;display:inline-flex}.button:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}.button:disabled{opacity:.55;cursor:not-allowed}.button--medium{min-height:44px;padding:var(--space-2) var(--space-5)}.button--small{min-height:36px;padding:var(--space-1) var(--space-3)}.button--primary{background-color:var(--color-primary);color:var(--color-text-inverted)}.button--primary:hover:not(:disabled){background-color:var(--color-primary-hover)}.button--primary:active:not(:disabled){background-color:var(--color-primary-pressed)}.button--secondary{background-color:var(--color-surface);border-color:var(--color-border-strong);color:var(--color-text)}.button--secondary:hover:not(:disabled){background-color:var(--color-background);border-color:var(--color-border-hover)}.button--secondary:active:not(:disabled){background-color:var(--color-border)}.button--ghost{color:var(--color-text);background-color:#0000}.button--ghost:hover:not(:disabled){background-color:var(--color-background)}.button--ghost:active:not(:disabled){background-color:var(--color-border)}.button--danger{background-color:var(--color-danger);color:var(--color-text-inverted)}.button--danger:hover:not(:disabled){background-color:var(--color-danger-hover)}.button--danger:active:not(:disabled){background-color:var(--color-danger-pressed)}.button__spinner{border-radius:var(--radius-pill);width:1em;height:1em;animation:button-spinner-rotate var(--motion-duration-spin) linear infinite;border:2px solid;border-right-color:#0000;flex:none}@keyframes button-spinner-rotate{to{transform:rotate(360deg)}}.spinner{align-items:center;gap:var(--space-sm);color:var(--color-text-muted);font-size:var(--font-size-sm);display:flex}.spinner__circle{border:2px solid var(--color-border);border-top-color:var(--color-primary);width:16px;height:16px;animation:spinner-rotate var(--motion-duration-spin) linear infinite;border-radius:50%}@keyframes spinner-rotate{to{transform:rotate(360deg)}}:root{--color-primary:#312b24;--color-primary-hover:#241f19;--color-primary-pressed:#1a1612;--color-primary-soft:#f1eee9;--color-success:#217a4e;--color-success-soft:#e8f4ed;--color-warning:#96650a;--color-warning-soft:#fbf2df;--color-danger:#b3271e;--color-danger-hover:#9a2119;--color-danger-pressed:#821b12;--color-danger-soft:#fceceb;--color-info:#2364c8;--color-info-soft:#eaf1fc;--color-clinical:#6b47c4;--color-clinical-soft:#f1ecfa;--color-layer-0:#faf9f7;--color-layer-1:#fff;--color-layer-2:#fff;--color-layer-3:#fff;--color-background:var(--color-layer-0);--color-surface:var(--color-layer-1);--color-border:#e8e4de;--color-border-strong:#cfc8bd;--color-border-hover:#b5ab9c;--color-text:#27221c;--color-text-muted:#6e675e;--color-text-inverted:#faf9f7;--color-scrim:#201a1466;--color-control-knob:#fff;--font-family-base:"Inter", -apple-system, blinkmacsystemfont, "Segoe UI", roboto, "Helvetica Neue", arial, sans-serif;--font-size-display:2.5rem;--font-size-page-title:1.875rem;--font-size-section-title:1.5rem;--font-size-card-title:1.125rem;--font-size-body:1rem;--font-size-secondary:.875rem;--font-size-caption:.75rem;--font-size-xs:var(--font-size-caption);--font-size-sm:var(--font-size-secondary);--font-size-md:var(--font-size-body);--font-size-lg:var(--font-size-section-title);--font-size-xl:var(--font-size-page-title);--font-size-2xl:var(--font-size-display);--font-weight-regular:400;--font-weight-medium:500;--font-weight-semibold:600;--font-weight-bold:700;--line-height-base:1.5;--line-height-tight:1.25;--letter-spacing-tight:-.01em;--space-1:.25rem;--space-2:.5rem;--space-3:.75rem;--space-4:1rem;--space-5:1.25rem;--space-6:1.5rem;--space-8:2rem;--space-10:2.5rem;--space-12:3rem;--space-16:4rem;--space-20:5rem;--space-24:6rem;--space-xs:var(--space-1);--space-sm:var(--space-2);--space-md:var(--space-4);--space-lg:var(--space-6);--space-xl:var(--space-8);--space-2xl:var(--space-12);--radius-control:10px;--radius-control-sm:6px;--radius-card:16px;--radius-dialog:20px;--radius-pill:999px;--radius-sm:var(--radius-control);--radius-md:var(--radius-card);--shadow-1:0 1px 2px #30281e12;--shadow-2:0 6px 16px #30281e1a;--shadow-3:0 16px 40px #30281e24;--shadow-bar:0 -6px 16px #30281e0f;--shadow-card:var(--shadow-1);--shadow-raised:var(--shadow-2);--motion-duration-fast:.12s;--motion-duration-base:.18s;--motion-duration-complex:.25s;--motion-duration-spin:.8s;--motion-duration-ambient:2.4s;--motion-ease-standard:cubic-bezier(.4, 0, .2, 1);--motion-ease-enter:cubic-bezier(0, 0, .2, 1);--motion-ease-exit:cubic-bezier(.4, 0, 1, 1);--transition-fast:var(--motion-duration-fast) var(--motion-ease-standard);--transition-base:var(--motion-duration-base) var(--motion-ease-standard);--sidebar-width:240px;--topbar-height:56px;--bottom-nav-height:72px;--content-max-width:1280px;--content-width-document:880px;--content-width-medium:960px;--content-width-wide:1120px}:root[data-theme=dark]{--color-primary:#ece7df;--color-primary-hover:#f6f2ec;--color-primary-pressed:#fff;--color-primary-soft:#2e2922;--color-success:#6cc793;--color-success-soft:#1b3126;--color-warning:#e2ab4b;--color-warning-soft:#362a15;--color-danger:#ef8a80;--color-danger-hover:#f59d94;--color-danger-pressed:#f9aea6;--color-danger-soft:#3a211d;--color-info:#85b4f2;--color-info-soft:#1b2a3f;--color-clinical:#b6a0ee;--color-clinical-soft:#2a2340;--color-layer-0:#17140f;--color-layer-1:#201c17;--color-layer-2:#282320;--color-layer-3:#2f2a24;--color-border:#332e27;--color-border-strong:#4b453c;--color-border-hover:#665f54;--color-text:#ece7df;--color-text-muted:#a49c90;--color-text-inverted:#17140f;--color-scrim:#0a080699;--color-control-knob:#8d8578;--shadow-1:0 1px 2px #0006;--shadow-2:0 6px 16px #00000073;--shadow-3:0 16px 40px #0000008c;--shadow-bar:0 -6px 16px #0006}@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(/fonts/InterVariable.woff2)format("woff2")}*,:before,:after{box-sizing:border-box}html,body,#root{height:100%}body{font-family:var(--font-family-base);font-size:var(--font-size-md);line-height:var(--line-height-base);font-variant-numeric:tabular-nums;color:var(--color-text);background-color:var(--color-background);-webkit-font-smoothing:antialiased;margin:0}h1,h2,h3,h4,p{margin:0}h1,h2,h3,h4{line-height:var(--line-height-tight)}h1,h2{letter-spacing:var(--letter-spacing-tight)}button{font:inherit}a,button{-webkit-tap-highlight-color:transparent}a{color:var(--color-primary);text-underline-offset:2px;text-decoration:underline}@keyframes overlay-fade-in{0%{opacity:0}}@keyframes dialog-enter{0%{opacity:0;transform:scale(.96)}}@keyframes sheet-enter{0%{transform:translateY(100%)}}@keyframes drawer-enter{0%{transform:translate(100%)}}@keyframes overlay-fade-out{to{opacity:0}}@keyframes dialog-exit{to{opacity:0;transform:scale(.96)}}@keyframes sheet-exit{to{transform:translateY(100%)}}@keyframes drawer-exit{to{transform:translate(100%)}}@keyframes route-enter{0%{opacity:0;transform:translateY(10px)}}@keyframes surface-fade-in{0%{opacity:0}}@keyframes nav-selection-enter{0%{opacity:0;transform:scale(.92)}}@keyframes banner-drop-in{0%{opacity:0;transform:translate(-50%, calc(-1 * var(--space-2)))}}.centered-fill{place-items:center;height:100%;display:grid}.visually-hidden{clip:rect(0 0 0 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}@font-face{font-family:Archivo;font-style:normal;font-weight:300 800;font-stretch:62% 125%;font-display:swap;src:url(/fonts/Archivo-Variable.woff2)format("woff2")}.portal{--portal-brand:#312b24;--portal-display:"Archivo", var(--font-family-base);--portal-column:1180px;--portal-gutter:20px;--portal-ink:#191511;--portal-brand-wash:var(--color-primary-soft);--portal-brand-tint:var(--color-border);--portal-brand-strong:var(--portal-brand);--color-primary:var(--portal-brand);--color-primary-hover:var(--portal-brand-strong);--color-primary-pressed:var(--portal-brand-strong);--color-primary-soft:var(--portal-brand-wash);background:var(--color-layer-0);flex-direction:column;min-height:100%;display:flex;overflow-x:clip}@media (width>=768px){.portal{--portal-gutter:32px}}.portal__main{flex-direction:column;flex:1;display:flex}.portal__main>.spinner,.portal__main>.empty-state{padding:64px var(--portal-gutter);margin:auto}@supports (color:color-mix(in srgb, red, blue)){.portal{--portal-brand-wash:color-mix(in srgb, var(--portal-brand) 7%, #fff);--portal-brand-tint:color-mix(in srgb, var(--portal-brand) 20%, #fff);--portal-brand-strong:color-mix(in srgb, var(--portal-brand) 82%, #000)}}.portal-topbar{z-index:20;background:var(--color-layer-0);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);position:sticky;top:0}@supports (background:color-mix(in srgb, red, transparent)){.portal-topbar{background:color-mix(in srgb, var(--color-layer-0) 82%, transparent)}}.portal-topbar__inner{width:100%;max-width:var(--portal-column);padding-inline:var(--portal-gutter);justify-content:space-between;align-items:center;gap:16px;margin:0 auto;padding-block:10px;display:flex}.portal-topbar__identity{color:var(--color-text);align-items:center;gap:10px;text-decoration:none;display:flex}.portal-topbar__logo{object-fit:cover;border-radius:var(--radius-pill);background:var(--color-layer-1);justify-content:center;align-items:center;width:34px;height:34px;display:flex}.portal-topbar__logo--empty{background:var(--portal-brand);color:#fff;font-family:var(--portal-display);font-weight:600}.portal-topbar__name{font-weight:var(--font-weight-semibold);letter-spacing:var(--letter-spacing-tight)}.portal-topbar__actions{align-items:center;gap:4px;display:flex}.portal-topbar__link{border-radius:var(--radius-pill);color:var(--color-text-muted);font-size:var(--font-size-sm);padding:8px 10px;text-decoration:none}.portal-topbar__link:hover{color:var(--color-text);background:var(--portal-brand-wash)}.portal-topbar__account{color:var(--color-text-muted);font-size:var(--font-size-sm);padding-inline:8px;display:none}@media (width>=768px){.portal-topbar__account{display:inline}}.portal-page{width:100%;max-width:var(--portal-column);padding-inline:var(--portal-gutter);flex-direction:column;flex:1;gap:20px;margin:0 auto;padding-block:28px 64px;display:flex}.portal-page--narrow{max-width:520px}.portal-footer{background:var(--portal-ink);color:#ffffffd1;margin-top:80px;padding:56px 0 28px}.portal-footer__inner{width:100%;max-width:var(--portal-column);padding-inline:var(--portal-gutter);gap:40px;margin:0 auto;display:grid}@media (width>=768px){.portal-footer__inner{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:48px}}.portal-footer__identity{flex-direction:column;align-items:flex-start;gap:10px;display:flex}.portal-footer__logo{object-fit:cover;border-radius:var(--radius-pill);background:#fff;width:44px;height:44px}.portal-footer__name{font-family:var(--portal-display);letter-spacing:-.02em;color:#fff;font-size:1.75rem;font-weight:500;font-stretch:108%}.portal-footer__tagline{color:#ffffff9e;max-width:32ch;font-size:var(--font-size-sm)}.portal-footer__columns{grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:32px;display:grid}.portal-footer__column{flex-direction:column;align-items:flex-start;gap:10px;display:flex}.portal-footer__title{font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold);text-transform:uppercase;letter-spacing:.16em;color:#ffffff73}.portal-footer__link{color:#ffffffd1;font-size:var(--font-size-sm);padding-block:4px;line-height:1.5;text-decoration:none}.portal-footer__link:hover{color:#fff;text-underline-offset:3px;text-decoration:underline}.portal-footer__link:focus-visible{outline-offset:3px;outline:2px solid #fff}.portal-footer__note{width:100%;max-width:var(--portal-column);padding-inline:var(--portal-gutter);color:#ffffff61;font-size:var(--font-size-xs);border-top:1px solid #ffffff1f;margin:44px auto 0;padding-top:20px;padding-bottom:72px}@media (width>=1024px){.portal-footer__note{padding-bottom:0}}.portal-section-title{font-family:var(--portal-display);letter-spacing:-.02em;margin:0;font-size:1.5rem;font-weight:500;font-stretch:108%}.portal-appointments{flex-direction:column;gap:12px;margin:0;padding:0;list-style:none;display:flex}.portal-form{flex-direction:column;gap:14px;display:flex}.portal-form__title{font-family:var(--portal-display);letter-spacing:-.02em;margin:0;font-size:1.6rem;font-weight:500;font-stretch:106%}.portal-form__actions{flex-wrap:wrap;justify-content:space-between;gap:8px;display:flex}.portal-form__hint,.portal-form__summary{color:var(--color-text-muted);font-size:var(--font-size-sm);margin:0}.portal-form__summary{color:var(--color-text);font-weight:600}.portal-slots{flex-wrap:wrap;gap:8px;margin:0;padding:0;list-style:none;display:flex}.portal-appointment{flex-direction:column;gap:6px;display:flex}.portal-appointment__treatment{font-size:var(--font-size-md);font-weight:var(--font-weight-semibold);margin:0}.portal-appointment__when{color:var(--color-text);margin:0}.portal-appointment__meta{color:var(--color-text-muted);font-size:var(--font-size-sm);gap:12px;margin:0;display:flex}.portal-card{background:var(--portal-brand);color:#fff;border-radius:var(--radius-card);aspect-ratio:1.586;box-shadow:var(--shadow-2);flex-direction:column;justify-content:space-between;gap:12px;padding:20px;display:flex}.portal-card__header{align-items:center;gap:10px;display:flex}.portal-card__logo{object-fit:contain;border-radius:var(--radius-sm);background:#fff;width:32px;height:32px;padding:2px}.portal-card__organization{font-weight:600}.portal-card__holder{font-size:var(--font-size-lg);margin:0}.portal-card__visits{align-items:baseline;gap:8px;margin:0;display:flex}.portal-card__visits-value{font-family:var(--portal-display);font-size:44px;font-weight:600;font-stretch:105%;line-height:1}.portal-card__last-visit{opacity:.85;font-size:var(--font-size-sm);margin:0}.portal-card__serial{letter-spacing:.08em;opacity:.85;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:var(--font-size-sm);margin:0}.portal-card__actions{flex-direction:column;gap:10px;display:flex}.portal-empty{text-align:center;max-width:480px;margin:0 auto;padding:96px 20px}.portal-empty__title{font-family:var(--portal-display);letter-spacing:-.02em;margin:0 0 8px;font-size:1.75rem;font-weight:500;font-stretch:106%}.portal-empty__body{color:var(--color-text-muted);margin:0}
