.app-crash{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--space-3);min-height:100dvh;padding:var(--space-6);text-align:center}.app-crash .icon{color:var(--color-danger)}.app-crash .title{font-size:var(--text-xl);font-weight:600;color:var(--color-text)}.app-crash .text{max-width:34ch;font-size:var(--text-sm);color:var(--color-text-muted)}.app-crash .actions{display:flex;flex-direction:column;gap:var(--space-2);width:100%;max-width:320px}.sync-status{position:fixed;inset:0 0 auto;z-index:var(--z-toast);display:flex;align-items:center;justify-content:center;gap:var(--space-2);padding:var(--space-2) var(--space-4);background-color:var(--color-primary-light);color:var(--color-primary-dark);font-size:var(--text-xs);font-weight:600}.sync-status.offline{background-color:var(--color-warning-soft);color:var(--color-warning-strong)}.sync-status .icon{flex-shrink:0}.sync-status-rejected{position:fixed;inset-inline:var(--space-3);bottom:calc(var(--space-3) + env(safe-area-inset-bottom));z-index:var(--z-toast);display:flex;align-items:center;justify-content:center;gap:var(--space-2);width:calc(100% - var(--space-3) * 2);padding:var(--space-3);border:1px solid var(--color-danger);border-radius:var(--radius-lg);background-color:var(--color-surface);box-shadow:var(--shadow-lg);color:var(--color-danger);font-size:var(--text-sm);font-weight:600;text-align:start}.sync-status-rejected .icon{flex-shrink:0}.rejected-sheet{display:flex;flex-direction:column;gap:var(--space-3)}.rejected-sheet .lead{font-size:var(--text-sm);color:var(--color-text-muted)}.rejected-sheet .list{display:flex;flex-direction:column;gap:var(--space-2)}.rejected-sheet .row{display:flex;align-items:flex-start;gap:var(--space-2);padding:var(--space-3);border-radius:var(--radius-md);background-color:var(--color-warning-soft)}.rejected-sheet .row .icon{flex-shrink:0;margin-block-start:2px;color:var(--color-warning-strong)}.rejected-sheet .row .body{display:flex;flex-direction:column;gap:2px}.rejected-sheet .row .label{font-size:var(--text-sm);font-weight:600;color:var(--color-text)}.rejected-sheet .row .meta{font-size:var(--text-xs);color:var(--color-text-muted)}.rejected-sheet .error{font-size:var(--text-sm);color:var(--color-danger)}.bottom-sheet{position:fixed;top:0;right:0;bottom:0;left:0;z-index:var(--z-overlay);display:flex;flex-direction:column;justify-content:flex-end;align-items:center;background-color:var(--color-overlay)}.bottom-sheet .panel{display:flex;flex-direction:column;width:100%;max-height:85dvh;border-top-left-radius:var(--radius-lg);border-top-right-radius:var(--radius-lg);background-color:var(--color-surface)}.bottom-sheet .panel .header{flex-shrink:0;padding:var(--space-6) var(--space-6) var(--space-3)}.bottom-sheet .panel>.body{display:flex;flex:1;flex-direction:column;gap:var(--space-4);min-height:0;padding-block:var(--space-2) var(--space-6);overflow-y:auto;overscroll-behavior:contain}.bottom-sheet .panel>.body--pad-base{padding-inline:var(--space-6)}.bottom-sheet .panel>.body--pad-sm{padding-inline:var(--space-3)}.bottom-sheet .panel>.body--pad-none{padding-inline:0}.bottom-sheet .panel>.body--with-footer{padding-bottom:var(--space-4)}.bottom-sheet .panel>.footer{display:flex;flex-direction:column;flex-shrink:0;gap:var(--space-3);padding:var(--space-4) var(--space-6);padding-bottom:calc(var(--space-4) + env(safe-area-inset-bottom));border-top:1px solid var(--color-border)}@media(min-width:1024px){.bottom-sheet .panel{max-width:var(--layout-max-width)}}.sheet-enter-active,.sheet-leave-active{transition:opacity var(--transition)}.sheet-enter-active .panel,.sheet-leave-active .panel{transition:transform var(--transition)}.sheet-enter-from,.sheet-leave-to{opacity:0}.sheet-enter-from .panel,.sheet-leave-to .panel{transform:translateY(100%)}.base-section-title{font-size:var(--text-xs);font-weight:600;letter-spacing:var(--letter-spacing-wide);text-transform:uppercase;color:var(--color-text-muted)}.base-button{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);padding:var(--space-3) var(--space-4);border-radius:var(--radius);font-size:var(--text-base);font-weight:600;transition:background-color var(--transition),border-color var(--transition),color var(--transition)}.base-button--sm:not(.base-button--icon){padding:var(--space-2) var(--space-3);font-size:var(--text-sm)}.base-button--lg:not(.base-button--icon){padding:var(--space-4) var(--space-5);font-size:var(--text-lg)}.base-button--block{width:100%}.base-button .spinner{width:1em;height:1em;border:2px solid currentColor;border-top-color:transparent;border-radius:var(--radius-full);animation:base-button-spin .6s linear infinite}.base-button--icon{padding:0;width:var(--size-control);height:var(--size-control);flex-shrink:0}.base-button:disabled{cursor:not-allowed;opacity:.5}.base-button--primary{background-color:var(--color-primary);color:var(--color-text-on-primary)}.base-button--primary:hover:not(:disabled){background-color:var(--color-primary-dark)}.base-button--secondary{background-color:var(--color-surface);border:1px solid var(--color-border);color:var(--color-text)}.base-button--secondary:hover:not(:disabled){border-color:var(--color-border-strong)}.base-button--ghost{color:var(--color-text-muted)}.base-button--ghost:hover:not(:disabled){background-color:var(--color-surface-2);color:var(--color-text)}.base-button--danger{background-color:var(--color-danger);color:var(--color-text-on-primary)}.base-button--danger:hover:not(:disabled){opacity:.9}@keyframes base-button-spin{to{transform:rotate(360deg)}}.update-banner{position:fixed;inset-inline:var(--space-3);bottom:calc(var(--space-3) + env(safe-area-inset-bottom));z-index:var(--z-toast);display:flex;align-items:center;gap:var(--space-2);padding:var(--space-3);border:1px solid var(--color-border);border-radius:var(--radius-lg);background:var(--color-surface);box-shadow:var(--shadow-lg)}.update-banner .icon{flex-shrink:0;color:var(--color-primary)}.update-banner .text{flex:1;font-size:var(--text-sm);color:var(--color-text)}.update-banner .action{flex-shrink:0}.notify-stack{position:fixed;inset-inline:0;bottom:calc(var(--size-bottom-nav-safe) + var(--space-4) + var(--size-control) + var(--space-3));z-index:var(--z-toast);display:flex;flex-direction:column;gap:var(--space-2);pointer-events:none;padding-inline:var(--space-3)}@media(min-width:1024px){.notify-stack{inset-inline:50%;width:100%;max-width:var(--layout-max-width);transform:translate(-50%)}}.notify-stack .notice{pointer-events:auto;display:flex;gap:var(--space-3);align-items:flex-start;min-height:var(--size-control);padding:var(--space-3) var(--space-4);border:1px solid var(--color-border);border-radius:var(--radius-lg);background-color:var(--color-surface);box-shadow:var(--shadow-lg);text-align:left}.notify-stack .notice .icon{flex-shrink:0;margin-top:1px}.notify-stack .notice .text{display:flex;flex-direction:column;gap:2px;min-width:0}.notify-stack .notice .text .message{color:var(--color-text);font-size:var(--text-sm);font-weight:600;overflow-wrap:anywhere}.notify-stack .notice .text .queued{color:var(--color-text-muted);font-size:var(--text-xs)}.notify-stack .notice--success .icon{color:var(--color-success-strong)}.notify-stack .notice--error{border-color:var(--color-danger)}.notify-stack .notice--error .icon{color:var(--color-danger-strong)}.notify-enter-active,.notify-leave-active{transition:opacity var(--transition),transform var(--transition)}.notify-enter-from,.notify-leave-to{opacity:0;transform:translateY(var(--space-3))}.app-layout{position:fixed;top:0;right:0;bottom:0;left:0;display:flex;flex-direction:column;background-color:var(--color-bg)}.app-layout .skip-link{position:fixed;top:0;left:var(--space-4);z-index:var(--z-toast);padding:var(--space-2) var(--space-4);border-radius:0 0 var(--radius) var(--radius);background-color:var(--color-primary);color:var(--color-text-on-primary);font-size:var(--text-sm);font-weight:600;transform:translateY(-100%);transition:transform var(--transition)}.app-layout .skip-link:focus-visible{transform:translateY(0)}.app-layout .content{flex:1;min-height:0;overflow-y:auto;overscroll-behavior-y:contain;display:flex;flex-direction:column}.app-layout .content>*{flex:1 0 auto}@media(min-width:1024px){.app-layout .content{width:100%;max-width:var(--layout-max-width);margin-inline:auto}}.bottom-nav{position:relative;z-index:var(--z-sticky);flex-shrink:0;height:var(--size-bottom-nav-safe);padding-bottom:env(safe-area-inset-bottom,0px);display:flex;align-items:stretch;justify-content:space-around;border-top:1px solid var(--color-border);background-color:var(--color-surface)}.bottom-nav .item{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--space-1);padding:var(--space-3) var(--space-2);color:var(--color-text-muted);font-size:var(--text-xs);font-weight:500;transition:color var(--transition)}.bottom-nav .item.router-link-exact-active{color:var(--color-primary)}.bottom-nav .item .icon{position:relative;display:inline-flex}.bottom-nav .item .icon .badge{position:absolute;top:-6px;right:-8px;display:inline-flex;align-items:center;justify-content:center;min-width:16px;height:16px;padding:0 var(--space-1);border-radius:var(--radius-full);background-color:var(--color-danger);color:var(--color-text-on-primary);font-size:var(--text-2xs);font-weight:700;line-height:1}.bottom-nav .item .label{line-height:1}@media(min-width:1024px){.bottom-nav{width:100%;max-width:var(--layout-max-width);margin-inline:auto}}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/inter-latin-400-normal-C38fXH4l.woff2) format("woff2"),url(/assets/inter-latin-400-normal-CyCys3Eg.woff) format("woff")}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/inter-latin-500-normal-Cerq10X2.woff2) format("woff2"),url(/assets/inter-latin-500-normal-BL9OpVg8.woff) format("woff")}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/inter-latin-600-normal-LgqL8muc.woff2) format("woff2"),url(/assets/inter-latin-600-normal-CiBQ2DWP.woff) format("woff")}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/inter-latin-700-normal-Yt3aPRUw.woff2) format("woff2"),url(/assets/inter-latin-700-normal-BLAVimhd.woff) format("woff")}:root{--color-primary: #3f63bf;--color-primary-dark: #314e99;--color-primary-light: #e0e7f6;--color-bg: #f3f6fa;--color-surface: #ffffff;--color-surface-2: #f1f5f9;--color-surface-3: #e2e8f0;--color-overlay: rgb(0 0 0 / .4);--color-text: #1e293b;--color-text-muted: #5a6a7d;--color-text-disabled: #94a3b8;--color-text-on-primary: #ffffff;--color-border: #e2e8f0;--color-border-strong: #cbd5e1;--color-border-focus: #a9bce0;--color-info: #3792a3;--color-info-soft: #ddeef1;--color-info-strong: #2a6f7c;--color-success: #37936a;--color-success-soft: #dff0e7;--color-success-strong: #2a7050;--color-warning: #cc8a2f;--color-warning-soft: #f9edda;--color-warning-strong: #8a5c1c;--color-danger: #cc4747;--color-danger-soft: #f8e4e4;--color-danger-strong: #a63636;--color-accent-indigo-soft: #e7e9f7;--color-accent-indigo: #6874c4;--color-accent-indigo-strong: #5460ab;--color-accent-blue-soft: #e1eef6;--color-accent-blue: #4093c4;--color-accent-blue-strong: #27688d;--color-accent-violet-soft: #efe9f7;--color-accent-violet: #8f6fc4;--color-accent-violet-strong: #6b4d9b;--color-accent-teal-soft: #ddf0ed;--color-accent-teal: #40a89e;--color-accent-teal-strong: #256a64;--color-cita-pendiente: #cc8a2f;--color-cita-confirmada: #3f63bf;--color-cita-completada: #37936a;--color-cita-cancelada: #cc4747;--color-cita-ausente: #ea580c;--color-cita-ausente-soft: #fff1e6;--color-cita-ausente-strong: #b8410c}:root{--font-sans: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;--text-2xs: .625rem;--text-xs: .75rem;--text-sm: .875rem;--text-base: 1rem;--text-lg: 1.125rem;--text-xl: 1.25rem;--text-2xl: 1.5rem;--text-3xl: 1.875rem;--text-page-title: var(--text-xl);--text-card-title: var(--text-base);--text-sheet-title: var(--text-lg);--line-height-tight: 1.25;--line-height-base: 1.5;--line-height-relaxed: 1.7;--letter-spacing-wide: .06em}:root{--space-1: 4px;--space-2: 8px;--space-3: 12px;--space-4: 16px;--space-5: 20px;--space-6: 24px;--space-8: 32px;--space-10: 40px;--space-12: 48px;--space-16: 64px;--layout-max-width: 640px;--size-icon-box: 36px;--size-photo-thumb: 72px;--size-accent-bar: 3px;--size-control: 44px;--size-bottom-nav: 64px;--size-bottom-nav-safe: calc(var(--size-bottom-nav) + env(safe-area-inset-bottom, 0px))}:root{--radius-sm: 4px;--radius: 8px;--radius-md: 8px;--radius-lg: 12px;--radius-full: 999px}:root{--shadow-sm: 0 1px 2px rgb(0 0 0 / .04);--shadow: 0 1px 3px rgb(0 0 0 / .06), 0 1px 2px rgb(0 0 0 / .04);--shadow-md: 0 2px 6px rgb(0 0 0 / .08);--shadow-lg: 0 4px 12px rgb(0 0 0 / .1)}:root{--transition: .15s ease}@keyframes fade-in{0%{opacity:0}to{opacity:1}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}:root{--z-map: 1050;--z-sticky: 1100;--z-aside: 1150;--z-overlay: 1200;--z-popover: 1250;--z-menu: 1300;--z-toast: 1400}:root{--breakpoint-mobile: 767px;--breakpoint-tablet: 768px;--breakpoint-desktop: 1024px}*,*:before,*:after{box-sizing:border-box}*{margin:0}html{-webkit-text-size-adjust:100%;text-size-adjust:100%;-webkit-tap-highlight-color:transparent}body{min-height:100dvh;line-height:var(--line-height-base);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;-webkit-user-select:none;user-select:none}input,textarea,[contenteditable=true],.selectable{-webkit-user-select:text;user-select:text}img,picture,video,canvas,svg{display:block;max-width:100%}input,button,textarea,select{font:inherit;color:inherit}button{cursor:pointer;background:none;border:none}a{color:inherit;text-decoration:none}ul,ol{list-style:none;padding:0}p,h1,h2,h3,h4,h5,h6{overflow-wrap:break-word}:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}#app{isolation:isolate;min-height:100dvh}.text-muted{color:var(--color-text-muted)}.text-danger{color:var(--color-danger-strong)}.visually-hidden{position:absolute;width:1px;height:1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}body{font-family:var(--font-sans);font-size:var(--text-base);font-weight:400;color:var(--color-text);background-color:var(--color-bg)}
