:root{--bg:#0f1117;--surface:#171a24;--surface-alt:#1e2230;--border:#2a2f3d;--text:#e5e7eb;--text-muted:#94a3b8;--text-dim:#64748b;--primary:#7c3aed;--primary-hover:#6d28d9;--primary-soft:#7c3aed29;--success:#22c55e;--success-soft:#22c55e24;--danger:#ef4444;--danger-soft:#ef444424;--warning:#f59e0b;--warning-soft:#f59e0b24;--available:#38bdf8;--available-soft:#38bdf824;--radius:.75rem;--radius-sm:.5rem;--shadow:0 8px 24px #00000047;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}:root[data-theme=light]{--bg:#f8fafc;--surface:#fff;--surface-alt:#f1f5f9;--border:#e2e8f0;--text:#1e293b;--text-muted:#64748b;--text-dim:#94a3b8;--shadow:0 8px 24px #0f172a14;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}*{box-sizing:border-box}[hidden]{display:none!important}body{background-color:var(--bg);color:var(--text);margin:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;transition:background-color .15s,color .15s}a{color:inherit}.app-shell{height:100vh;display:flex;overflow:hidden}.sidebar{background-color:var(--surface);border-right:1px solid var(--border);flex-direction:column;flex-shrink:0;width:250px;min-height:0;padding:1.25rem 1rem;transition:width .15s,padding .15s;display:flex}.sidebar__brand{white-space:nowrap;flex-shrink:0;align-items:center;gap:.6rem;padding:0 .5rem 1.25rem;font-size:1.05rem;font-weight:700;display:flex;overflow:hidden}.sidebar__brand-mark{background:linear-gradient(135deg, var(--primary), #4338ca);object-fit:cover;border-radius:.4rem;flex-shrink:0;width:1.75rem;height:1.75rem}.sidebar__group-label{letter-spacing:.06em;text-transform:uppercase;color:var(--text-dim);white-space:nowrap;padding:1rem .5rem .35rem;font-size:.7rem;font-weight:600;overflow:hidden}.sidebar__group-toggle{width:100%;color:var(--text-dim);font:inherit;letter-spacing:inherit;text-transform:inherit;cursor:pointer;background:0 0;border:none;justify-content:space-between;align-items:center;display:flex}.sidebar__group-toggle:hover{color:var(--text-muted)}.sidebar__group-chevron{flex-shrink:0;width:.8rem;height:.8rem;transition:transform .15s}.sidebar__group-toggle.is-open .sidebar__group-chevron{transform:rotate(90deg)}.sidebar__nav{flex-direction:column;gap:.15rem;min-height:0;display:flex;overflow:hidden auto}.app-shell--collapsed .sidebar{width:76px;padding:1.25rem .5rem}.app-shell--collapsed .sidebar .sidebar__brand span,.app-shell--collapsed .sidebar .sidebar__group-label,.app-shell--collapsed .sidebar .nav-link span{display:none}.app-shell--collapsed .sidebar .sidebar__brand{justify-content:center;padding:0 0 1.25rem}.app-shell--collapsed .sidebar .nav-link{justify-content:center}.app-shell--collapsed .sidebar .nav-link:hover:after{content:attr(data-tooltip);background-color:var(--surface-alt);color:var(--text);border:1px solid var(--border);border-radius:var(--radius-sm);box-shadow:var(--shadow);white-space:nowrap;pointer-events:none;z-index:30;margin-left:.6rem;padding:.4rem .7rem;font-size:.8rem;font-weight:500;position:absolute;top:50%;left:100%;transform:translateY(-50%)}.nav-badge{text-align:center;color:#fff;border-radius:999px;min-width:1.35rem;margin-left:auto;padding:.05rem .4rem;font-size:.72rem;font-weight:700;line-height:1.3}.nav-badge--danger{background-color:#dc2626}.nav-badge--warning{background-color:#d97706}.app-shell--collapsed .sidebar .nav-badge{margin-left:0;padding:0 .3rem;font-size:.65rem;position:absolute;top:.1rem;right:.15rem}.nav-link{border-radius:var(--radius-sm);color:var(--text-muted);white-space:nowrap;align-items:center;gap:.75rem;padding:.55rem .75rem;font-size:.9rem;text-decoration:none;display:flex;position:relative}.nav-link svg{flex-shrink:0;width:1.1rem;height:1.1rem}.nav-link:hover{background-color:var(--surface-alt);color:var(--text)}.nav-link.is-active{background-color:var(--primary-soft);color:var(--primary);font-weight:600}.main{flex-direction:column;flex:1;min-width:0;height:100%;display:flex;overflow:hidden}.topbar{border-bottom:1px solid var(--border);flex-shrink:0;justify-content:space-between;align-items:center;gap:1rem;padding:.9rem 1.75rem;display:flex}.topbar__left{align-items:center;gap:.75rem;display:flex}.topbar__right{align-items:center;gap:.5rem;display:flex;position:relative}.icon-btn{border-radius:var(--radius-sm);border:1px solid var(--border);width:2.25rem;height:2.25rem;color:var(--text-muted);cursor:pointer;background:0 0;justify-content:center;align-items:center;display:inline-flex}.icon-btn svg{width:1.1rem;height:1.1rem}.icon-btn:hover{background-color:var(--surface-alt);color:var(--text)}.avatar-btn{background:linear-gradient(135deg, var(--primary), #4338ca);color:#fff;cursor:pointer;border:none;border-radius:999px;justify-content:center;align-items:center;width:2.25rem;height:2.25rem;font-size:.85rem;font-weight:700;display:inline-flex}.dropdown{background-color:var(--surface);border:1px solid var(--border);border-radius:var(--radius);min-width:220px;box-shadow:var(--shadow);z-index:20;padding:.5rem;position:absolute;top:calc(100% + .5rem);right:0}.dropdown[hidden]{display:none}.dropdown__header{border-bottom:1px solid var(--border);margin-bottom:.35rem;padding:.5rem .6rem .6rem}.dropdown__header strong{font-size:.9rem;display:block}.dropdown__header span{color:var(--text-muted);font-size:.78rem}.dropdown form{margin:0}.dropdown__item{border-radius:var(--radius-sm);width:100%;color:var(--text-muted);text-align:left;cursor:pointer;background:0 0;border:none;align-items:center;gap:.6rem;padding:.5rem .6rem;font-size:.88rem;display:flex}.dropdown__item svg{width:1rem;height:1rem}.dropdown__item:hover{background-color:var(--surface-alt);color:var(--text)}.content{flex-direction:column;flex:1;min-height:0;padding:1.75rem;display:flex;overflow-y:auto}.page-header{margin-bottom:1.5rem}.page-header h1{margin:0 0 .25rem;font-size:1.5rem}.page-header p{color:var(--text-muted);margin:0}.auth-page{background:radial-gradient(circle at 15% 20%, #7c3aed59, transparent 45%), radial-gradient(circle at 85% 80%, #4338ca59, transparent 45%), var(--bg);justify-content:center;align-items:center;min-height:100vh;padding:2rem;display:flex}.auth-card{background-color:var(--surface);border:1px solid var(--border);border-radius:var(--radius);width:100%;max-width:400px;box-shadow:var(--shadow);padding:2rem}.auth-card__brand{text-align:center;flex-direction:column;align-items:center;gap:.75rem;margin-bottom:1.5rem;font-size:1.15rem;font-weight:700;display:flex}.auth-card__brand-mark{background:linear-gradient(135deg, var(--primary), #4338ca);object-fit:cover;border-radius:.75rem;width:4rem;height:4rem}.auth-card h1{margin:0 0 .25rem;font-size:1.25rem}.auth-card p.subtitle{color:var(--text-muted);margin:0 0 1.5rem;font-size:.9rem}.auth-card footer{text-align:center;color:var(--text-dim);margin-top:1.5rem;font-size:.8rem}.form{flex-direction:column;gap:.35rem;max-width:480px;display:flex}.form label{margin-top:.75rem;font-size:.85rem;font-weight:600}.form input[type=text],.form input[type=password],.form input[type=number],.form input[type=email],.form input[type=tel],.form input[type=date],.form input[type=datetime-local],.form select,.form textarea{border:1px solid var(--border);border-radius:var(--radius-sm);background-color:var(--surface-alt);color:var(--text);width:100%;padding:.6rem .75rem;font-family:inherit;font-size:.9rem}.form input[type=text]:focus,.form input[type=password]:focus,.form input[type=number]:focus,.form input[type=email]:focus,.form input[type=tel]:focus,.form input[type=date]:focus,.form input[type=datetime-local]:focus,.form select:focus,.form textarea:focus{border-color:var(--primary);outline:none}.form input[type=text]:disabled,.form input[type=password]:disabled,.form input[type=number]:disabled,.form input[type=email]:disabled,.form input[type=tel]:disabled,.form input[type=date]:disabled,.form input[type=datetime-local]:disabled,.form select:disabled,.form textarea:disabled{opacity:.7;cursor:not-allowed}.form textarea{resize:vertical;min-height:4.5rem}.form fieldset{border:1px solid var(--border);border-radius:var(--radius-sm);margin-top:.75rem;padding:.75rem}.form fieldset legend{padding:0 .35rem;font-size:.85rem;font-weight:600}.form__checkbox{align-items:center;gap:.5rem;margin-top:.35rem;font-weight:400;display:flex}.form__actions{align-items:center;gap:1rem;margin-top:1.25rem;display:flex}.fieldset--bare{border:none;margin:0;padding:0}.record-actions-bar{background-color:var(--surface);border-top:1px solid var(--border);flex-shrink:0;align-items:center;gap:1rem;padding:1rem 1.75rem;display:flex;box-shadow:0 -2px 8px #00000014}.password-field{display:flex;position:relative}.password-field input{padding-right:2.5rem!important}.password-field__toggle{width:2.5rem;height:100%;color:var(--text-dim);cursor:pointer;background:0 0;border:none;justify-content:center;align-items:center;padding:0;display:flex;position:absolute;top:0;right:0}.password-field__toggle svg{width:1.15rem;height:1.15rem}.password-field__toggle:hover{color:var(--text-muted)}.password-field__toggle:focus-visible{outline:2px solid var(--primary);outline-offset:-2px;border-radius:var(--radius-sm)}.logo-field{align-items:center;gap:1rem;display:flex}.logo-preview{border-radius:var(--radius-sm);border:1px solid var(--border);object-fit:cover;background-color:var(--surface-alt);width:3.5rem;height:3.5rem}.field-hint{color:var(--text-dim);margin:.35rem 0 0;font-size:.78rem}.field-hint--danger{color:var(--danger)}.btn{background-color:var(--primary);color:#fff;border-radius:var(--radius-sm);cursor:pointer;border:none;justify-content:center;align-items:center;gap:.5rem;width:fit-content;padding:.6rem 1.1rem;font-size:.9rem;font-weight:600;text-decoration:none;display:inline-flex}.btn:hover{background-color:var(--primary-hover)}.btn--ghost{color:var(--text-muted);border:1px solid var(--border);background:0 0}.btn--ghost:hover{background-color:var(--surface-alt);color:var(--text)}.btn--danger{color:var(--danger);border:1px solid var(--danger);background:0 0;padding:.6rem .9rem}.btn--danger:hover{background-color:var(--danger-soft)}.btn--warning{color:var(--warning);border:1px solid var(--warning-soft);background:0 0;padding:.6rem .9rem}.btn--warning:hover{background-color:var(--warning-soft)}.btn--success{color:var(--success);border:1px solid var(--success);background:0 0;padding:.6rem .9rem}.btn--success:hover{background-color:var(--success-soft)}.btn--info{color:var(--primary);border:1px solid var(--primary);background:0 0;padding:.6rem .9rem}.btn--info:hover{background-color:var(--surface-alt)}.btn--solid-success{background-color:#16a34a}.btn--solid-success:hover{background-color:#15803d}.btn--solid-info{background-color:#0284c7}.btn--solid-info:hover{background-color:#0369a1}.btn--solid-warning{background-color:#d97706}.btn--solid-warning:hover{background-color:#b45309}.btn--solid-neutral{background-color:var(--surface-alt);color:var(--text);border:1px solid var(--border)}.btn--solid-neutral:hover{background-color:var(--border)}.btn--block{width:100%;margin-top:1.25rem}.btn:disabled{opacity:.75;cursor:not-allowed}.btn.is-loading{color:#0000;position:relative}.btn.is-loading:after{content:"";border:2px solid #fff6;border-top-color:#fff;border-radius:50%;width:1rem;height:1rem;animation:.6s linear infinite btn-spin;position:absolute}@keyframes btn-spin{to{transform:rotate(360deg)}}.card{background-color:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:1.5rem}.card+.card{margin-top:1.5rem}.card p{color:var(--text-muted);margin:0}.card__title{margin:0 0 1rem;font-size:1.05rem}.form--grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:0 1.5rem;max-width:none;display:grid}.form--grid label{display:block}.form--grid__full{grid-column:1/-1}.form--grid__contents{display:contents}.dynamic-fields{grid-template-columns:repeat(12,minmax(0,1fr));align-items:start;gap:0 1.5rem;display:grid}.dynamic-fields__heading{margin:1.5rem 0 .25rem;font-size:1.2rem;font-weight:700}.dynamic-fields__heading:first-child{margin-top:0}.dynamic-fields__subheading{color:var(--text-muted);margin:1.25rem 0 .25rem;font-size:1rem;font-weight:600}.dynamic-fields__subheading:first-child{margin-top:0}.dynamic-fields__static-text{color:var(--text-muted);margin:.25rem 0;font-size:.9rem}.dynamic-fields__separator{border:none;border-top:1px solid var(--border);width:100%;margin:.75rem 0}.dynamic-fields__line-break{height:0}.dynamic-fields__page-break{color:var(--text-dim);text-transform:uppercase;letter-spacing:.04em;align-items:center;gap:.5rem;margin:.75rem 0;font-size:.78rem;display:flex}.dynamic-fields__page-break:before,.dynamic-fields__page-break:after{content:"";border-top:1px dashed var(--border);flex:1}.dynamic-fields__spacer{height:1.5rem}.permissions-toolbar{align-items:center;gap:.5rem;margin-bottom:.75rem;display:flex}.permissions-toolbar input{flex:1}.permissions-list{flex-direction:column;gap:.25rem;max-height:260px;display:flex;overflow-y:auto}.attribute-builder{flex-direction:column;gap:.75rem;display:flex}.card--fill{flex-direction:column;flex:auto;min-height:38rem;display:flex}.type-editor{flex:auto;max-width:none;min-height:0}.type-editor__fields{border:1px solid var(--border);border-radius:var(--radius-sm);flex-direction:column;flex:auto;min-height:14rem;margin-top:.75rem;padding:.75rem;display:flex}.type-editor__fields-title{align-items:center;gap:.5rem;margin-bottom:.75rem;font-size:.85rem;font-weight:600;display:flex}.type-editor__fields-scroll{flex:auto;min-height:0;padding-right:.25rem;overflow-y:auto}.type-editor__footer{border-top:1px solid var(--border);flex-wrap:wrap;flex-shrink:0;align-items:center;gap:.75rem;margin-top:1rem;padding-top:1.25rem;display:flex}.attribute-row{background-color:var(--surface-alt);border:1px solid var(--border);border-radius:var(--radius-sm);flex-wrap:wrap;align-items:flex-end;gap:.75rem;padding:.85rem;display:flex}.attribute-row>div{flex:1;min-width:160px}.attribute-row__actions{gap:.35rem;margin-left:auto;display:flex}.attribute-row__required{white-space:nowrap}.attribute-row--readonly{align-items:center;gap:.6rem}.attribute-row__name{margin-right:auto;font-weight:600}.calendar-week{grid-template-columns:repeat(7,minmax(0,1fr));align-items:start;gap:.75rem;display:grid}@media (width<=900px){.calendar-week{grid-template-columns:repeat(2,minmax(0,1fr))}}.calendar-week__day{background-color:var(--surface);border:1px solid var(--border);border-radius:var(--radius);flex-direction:column;gap:.5rem;min-height:140px;padding:.85rem;display:flex}.calendar-week__day-label{text-transform:uppercase;letter-spacing:.04em;color:var(--text-dim);border-bottom:1px solid var(--border);padding-bottom:.35rem;font-size:.75rem;font-weight:600}.calendar-week__add{text-align:center;margin-top:auto;font-size:.8rem}.calendar-week__empty{color:var(--text-dim);margin:0;font-size:.8rem}.appointment-card{border-radius:var(--radius-sm);background-color:var(--surface-alt);border-left:3px solid var(--primary);color:var(--text);flex-direction:column;gap:.2rem;padding:.5rem .6rem;font-size:.82rem;text-decoration:none;display:flex}.appointment-card:hover{background-color:var(--primary-soft)}.appointment-card__time{font-size:.78rem;font-weight:600}.appointment-card__patient{color:var(--text-muted)}.appointment-card .badge{width:fit-content}.appointment-card--available{background-color:var(--available-soft);border-left-color:var(--available)}.appointment-card--reschedule-target{outline:2px dashed var(--warning);outline-offset:-2px}.appointment-card--confirmada{background-color:var(--primary-soft);border-left-color:var(--primary)}.appointment-card--pendiente{background-color:var(--warning-soft);border-left-color:var(--warning)}.appointment-card--atendida{background-color:var(--success-soft);border-left-color:var(--success)}.appointment-card--cancelada,.appointment-card--no_show{background-color:var(--danger-soft);border-left-color:var(--danger);opacity:.85}.schedule-grid{flex-direction:column;gap:.5rem;display:flex}.schedule-grid__row{border-bottom:1px solid var(--border);flex-wrap:wrap;align-items:center;gap:.6rem;padding:.4rem 0;display:flex}.schedule-grid__row:last-child{border-bottom:none}.schedule-grid__day{color:var(--text-muted);flex-shrink:0;width:90px;font-size:.85rem}.schedule-grid__block{align-items:center;gap:.4rem;display:flex}.schedule-grid__block input{width:8.5rem}.schedule-grid__remove{color:var(--text-dim);cursor:pointer;background:0 0;border:none;padding:.2rem .4rem;font-size:.8rem}.schedule-grid__remove:hover{color:var(--danger)}.schedule-grid__remove:disabled{opacity:.4;cursor:not-allowed}.schedule-grid__remove:disabled:hover{color:var(--text-dim)}.schedule-grid__add{border:1px dashed var(--border);border-radius:var(--radius-sm);color:var(--text-muted);cursor:pointer;background:0 0;padding:.3rem .6rem;font-size:.78rem}.schedule-grid__add:hover{color:var(--text);border-color:var(--text-muted)}.schedule-grid span{text-align:center;color:var(--text-dim);font-size:.8rem}.version-actions{border-top:1px solid var(--border);gap:.75rem;margin-top:1.5rem;padding-top:1.25rem;display:flex}.version-actions form{margin:0}.insurance-form{margin-top:1.25rem}.card__stack{flex-direction:column;align-items:flex-start;gap:1.1rem;display:flex}.card__stack>.table-wrap,.card__stack>.form{align-self:stretch}.card__stack>.field-hint{margin:0}.card__stack>.field-hint+.field-hint{margin-top:-.65rem}.form__checkbox-cell{flex-direction:column;justify-content:flex-end;align-items:flex-start;display:flex}.form__checkbox-cell .field-hint{margin-top:.35rem}.toolbar{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.75rem;margin-bottom:1.25rem;display:flex}.table-wrap+.toolbar{margin-top:1rem}.detail-list{grid-template-columns:max-content 1fr;gap:.35rem 1.25rem;margin:.75rem 0;font-size:.9rem;display:grid}.detail-list dt{color:var(--text-dim)}.detail-list dd{margin:0}.mono-wrap{word-break:break-all;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.78rem}.toolbar--spaced{margin-top:1.5rem}.tabs{flex-wrap:wrap;gap:.4rem;margin-bottom:1rem;display:flex}.tabs__tab{border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text-dim);cursor:pointer;background:0 0;padding:.45rem .9rem;font-size:.85rem}.tabs__tab:hover{color:var(--text)}.tabs__tab.is-active{background-color:var(--primary-soft);border-color:var(--primary);color:var(--primary)}.card>.toolbar:last-child{margin-bottom:0}.attention-date{text-transform:capitalize}.combobox{position:relative}.combobox__results{background-color:var(--surface);border:1px solid var(--border);border-radius:var(--radius-sm);max-height:240px;box-shadow:var(--shadow);z-index:20;margin:0;padding:.25rem;list-style:none;position:absolute;top:calc(100% + .25rem);left:0;right:0;overflow-y:auto}.combobox__results li{border-radius:var(--radius-sm);cursor:pointer;padding:.5rem .6rem;font-size:.85rem}.combobox__results li.is-highlighted,.combobox__results li:hover{background-color:var(--primary-soft)}.combobox__empty{color:var(--text-dim);cursor:default!important}.combobox__empty:hover{background-color:#0000!important}.toolbar-select{border:1px solid var(--border);border-radius:var(--radius-sm);background-color:var(--surface-alt);color:var(--text);padding:.55rem .75rem;font-family:inherit;font-size:.85rem}.toolbar-select:focus{border-color:var(--primary);outline:none}.search-form{gap:.5rem;display:flex}.search-form input[type=text]{border:1px solid var(--border);border-radius:var(--radius-sm);background-color:var(--surface-alt);color:var(--text);min-width:220px;padding:.55rem .75rem;font-size:.85rem}.pagination{flex-wrap:wrap;align-items:center;gap:.35rem;margin-top:1.25rem;display:flex}.pagination__item{border:1px solid var(--border);border-radius:var(--radius-sm);background-color:var(--surface);min-width:2.25rem;height:2.25rem;color:var(--text-muted);white-space:nowrap;justify-content:center;align-items:center;padding:0 .6rem;font-size:.85rem;text-decoration:none;display:inline-flex}.pagination__item:hover{border-color:var(--primary);color:var(--primary)}.pagination__item.is-active{background-color:var(--primary);border-color:var(--primary);color:#fff;font-weight:600}.pagination__item.is-disabled{opacity:.4;cursor:not-allowed}.table-wrap{background-color:var(--surface);border:1px solid var(--border);border-radius:var(--radius);overflow:hidden}.table-wrap--scroll{max-height:65vh;overflow-y:auto}.table-wrap--scroll thead th{background-color:var(--surface);z-index:1;position:sticky;top:0}table{border-collapse:collapse;width:100%}table th{text-align:left;letter-spacing:.05em;text-transform:uppercase;color:var(--text-dim);border-bottom:1px solid var(--border);padding:.75rem 1.25rem;font-size:.72rem;font-weight:600}table td{text-align:left;border-bottom:1px solid var(--border);padding:.85rem 1.25rem;font-size:.9rem}table tr:last-child td{border-bottom:none}table tr:hover td{background-color:var(--surface-alt)}.table-actions{align-items:center;gap:.75rem;display:flex}.table-actions form{margin:0}.badge-group{flex-wrap:wrap;align-items:center;gap:.35rem;display:flex}.badge-stack{flex-direction:column;align-items:flex-start;gap:.4rem;display:flex}.badge{background-color:var(--primary-soft);color:var(--primary);border-radius:999px;align-items:center;padding:.2rem .6rem;font-size:.78rem;font-weight:600;display:inline-flex}.badge--muted{background-color:var(--surface-alt);color:var(--text-dim)}.badge--warning{color:#d97706;background-color:#f59e0b29}.badge--danger{color:#dc2626;background-color:#ef444429}.card__header-row{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.75rem;margin-bottom:1rem;display:flex}.card__header-row .card__title{margin:0}.card>*+.table-wrap{margin-top:1rem}.table__note{color:var(--text-dim);font-size:.78rem}.data-authorization__form{max-width:none}.segmented{border:1px solid var(--border);border-radius:var(--radius-sm);margin-right:.75rem;display:inline-flex;overflow:hidden}.segmented__option{background-color:var(--surface-alt);color:var(--text);cursor:pointer;border:0;padding:.5rem .9rem;font-family:inherit;font-size:.85rem}.segmented__option+.segmented__option{border-left:1px solid var(--border)}.segmented__option.is-active{background-color:var(--primary);color:#fff}.paper-document{margin:0}.paper-document__picker{flex-wrap:wrap;align-items:center;gap:.75rem;display:flex}.data-notice{border-radius:.5rem;margin-top:1rem;padding:.75rem 1rem;font-size:.9rem}.data-notice p{margin:0}.data-notice--warning{background-color:#f59e0b1f;border:1px solid #f59e0b66}.data-notice--ok{color:var(--text-dim);padding:0}.data-notice .form__actions,.data-notice__form{margin-top:.75rem}.data-authorization__policy{border:1px solid var(--border);background-color:var(--surface-alt);border-radius:.5rem;max-height:14rem;margin-bottom:1rem;padding:.75rem 1rem;overflow-y:auto}.staff-signature__preview{border:1px solid var(--border);background-color:#fff;border-radius:.5rem;max-width:22rem;max-height:9rem;padding:.5rem;display:block}.signature-hash{word-break:break-all}.signature-pad__canvas{border:1px dashed var(--border);touch-action:none;cursor:crosshair;background-color:#fff;border-radius:.5rem;width:100%;display:block}.signature-pad__footer{color:var(--text-dim);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.75rem;margin-top:.4rem;font-size:.8rem;display:flex}.signature-pad__error{color:#ef4444;margin:.4rem 0 0;font-size:.8rem}.toast-container{z-index:300;flex-direction:column;gap:.6rem;max-width:min(24rem,100vw - 2.5rem);display:flex;position:fixed;top:4.5rem;right:1.25rem}.toast{border-radius:var(--radius-sm);box-shadow:var(--shadow);cursor:pointer;white-space:pre-line;opacity:0;padding:.75rem 1rem;font-size:.88rem;line-height:1.4;transition:opacity .2s,transform .2s;transform:translate(1rem)}.toast--visible{opacity:1;transform:translate(0)}.toast--success{background-color:var(--surface);color:var(--success);border:1px solid var(--success);border-left-width:4px}.toast--error{background-color:var(--surface);color:var(--danger);border:1px solid var(--danger);border-left-width:4px}.toast--info{background-color:var(--surface);color:var(--text);border:1px solid var(--border);border-left-width:4px;border-left-color:var(--primary)}:root .flatpickr-calendar{background-color:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow)}:root .flatpickr-calendar.arrowTop:before,:root .flatpickr-calendar.arrowTop:after{border-bottom-color:var(--border)}:root .flatpickr-months .flatpickr-month{color:var(--text);fill:var(--text)}:root .flatpickr-months .flatpickr-prev-month,:root .flatpickr-months .flatpickr-next-month{color:var(--text-muted);fill:var(--text-muted)}:root .flatpickr-months .flatpickr-prev-month:hover,:root .flatpickr-months .flatpickr-next-month:hover{color:var(--primary);fill:var(--primary)}:root .flatpickr-current-month{color:var(--text)}:root .flatpickr-current-month .flatpickr-monthDropdown-months,:root .flatpickr-current-month input.cur-year{color:var(--text);background:0 0}:root .flatpickr-current-month .flatpickr-monthDropdown-months:hover{background-color:var(--surface-alt)}:root span.flatpickr-weekday{color:var(--text-dim);background-color:var(--surface)}:root .flatpickr-day{color:var(--text)}:root .flatpickr-day.today{border-color:var(--primary)}:root .flatpickr-day:hover{background-color:var(--surface-alt);border-color:var(--surface-alt)}:root .flatpickr-day.selected{background-color:var(--primary);border-color:var(--primary);color:#fff}:root .flatpickr-day.flatpickr-disabled,:root .flatpickr-day.prevMonthDay,:root .flatpickr-day.nextMonthDay{color:var(--text-dim)}:root .flatpickr-time{border-top:1px solid var(--border)}:root .flatpickr-time input,:root .flatpickr-time .flatpickr-am-pm{color:var(--text)}:root .flatpickr-time input:hover,:root .flatpickr-time .flatpickr-am-pm:hover{background-color:var(--surface-alt)}:root .flatpickr-time .flatpickr-time-separator,:root .flatpickr-time .numInputWrapper span.arrowUp:after{border-bottom-color:var(--text-dim)}:root .flatpickr-time .numInputWrapper span.arrowDown:after{border-top-color:var(--text-dim)}:root .flatpickr-time .numInputWrapper:hover{background-color:var(--surface-alt)}.appointments-calendar{flex-direction:column;flex:1;gap:1.25rem;min-height:0;display:flex}.calendar-body{flex:1;min-height:0;padding-right:.25rem;position:relative;overflow-y:auto}.calendar-body.is-loading>:not(.calendar-body__loading-overlay){opacity:.45;pointer-events:none}.calendar-body__loading-overlay{z-index:1;justify-content:center;height:0;padding-top:.5rem;display:flex;position:sticky;top:0;overflow:visible}.spinner{border:2px solid var(--border);border-top-color:var(--primary);border-radius:50%;width:1.5rem;height:1.5rem;animation:.6s linear infinite btn-spin}.calendar-toolbar{border-bottom:1px solid var(--border);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.75rem;padding-bottom:.75rem;display:flex}.calendar-toolbar__group{flex-wrap:wrap;align-items:center;gap:.5rem;display:flex}.calendar-toolbar__view-switch{border:1px solid var(--border);border-radius:var(--radius-sm);display:inline-flex;overflow:hidden}.calendar-toolbar__view-switch button{background:var(--surface);color:var(--text-muted);border:none;border-right:1px solid var(--border);cursor:pointer;padding:.5rem .85rem;font-size:.85rem}.calendar-toolbar__view-switch button:last-child{border-right:none}.calendar-toolbar__view-switch button:hover{background-color:var(--surface-alt)}.calendar-toolbar__view-switch button.is-active{background-color:var(--primary-soft);color:var(--primary);font-weight:600}.calendar-toolbar__date-label{white-space:nowrap;text-align:center;min-width:17rem;font-size:.95rem;font-weight:600}.calendar-toolbar select,.calendar-toolbar .date-field-input{border:1px solid var(--border);border-radius:var(--radius-sm);background-color:var(--surface-alt);color:var(--text);padding:.5rem .7rem;font-size:.85rem}.calendar-toolbar .date-field-input{width:9rem}.calendar-toolbar .date-field-input:focus{border-color:var(--primary);outline:none}.list-alert{border-radius:var(--radius-sm);background-color:var(--danger-soft);color:var(--danger);flex-direction:column;gap:.4rem;margin-bottom:1rem;padding:.75rem 1rem;font-size:.88rem;display:flex}.list-alert p{flex-wrap:wrap;align-items:center;gap:.6rem;margin:0;display:flex}.reschedule-banner{border-radius:var(--radius-sm);background-color:var(--warning-soft);color:var(--warning);justify-content:space-between;align-items:center;gap:1rem;padding:.75rem 1rem;font-size:.88rem;display:flex}.legend-bar{color:var(--text-muted);flex-wrap:wrap;gap:.9rem;padding:.15rem 0 .35rem;font-size:.78rem;display:flex}.legend-swatch{border-radius:var(--radius-sm);color:inherit;font:inherit;cursor:pointer;background:0 0;border:1px solid #0000;align-items:center;gap:.4rem;padding:.2rem .5rem;display:inline-flex}.legend-swatch:hover{background-color:var(--surface-alt)}.legend-swatch--active{border-color:var(--border);background-color:var(--surface-alt);color:var(--text);font-weight:600}.legend-swatch__dot{border-radius:50%;flex-shrink:0;width:.65rem;height:.65rem;display:inline-block}.legend-swatch__dot--available{background-color:var(--available)}.legend-swatch__dot--warning{background-color:var(--warning)}.legend-swatch__dot--primary{background-color:var(--primary)}.legend-swatch__dot--success{background-color:var(--success)}.legend-swatch__dot--danger{background-color:var(--danger)}.day-list__empty{text-align:center;color:var(--text-dim);padding:1.5rem;font-size:.88rem}.day-card-list{flex-direction:column;gap:.5rem;display:flex}.day-card{border-radius:var(--radius-sm);border:1px solid var(--border);cursor:pointer;text-align:left;background-color:var(--surface);width:100%;color:var(--text);border-left:3px solid #0000;flex-wrap:wrap;align-items:center;gap:.4rem 1rem;padding:.7rem 1rem;font-size:.88rem;display:flex}.day-card__time{flex-shrink:0;width:5.5rem;font-weight:600}.day-card__staff{font-weight:500}.day-card__specialty{color:var(--text-muted);font-size:.82rem}.day-card__patient-info{color:var(--text-muted);flex-wrap:wrap;gap:.6rem;font-size:.82rem;display:flex}.day-card__patient{color:var(--text);font-weight:600}.day-card--available{background-color:var(--available-soft);border-left-color:var(--available)}.day-card--available:hover{background-color:var(--available-soft);filter:brightness(1.08)}.day-card--pendiente{background-color:var(--warning-soft);border-left-color:var(--warning)}.day-card--confirmada{background-color:var(--primary-soft);border-left-color:var(--primary)}.day-card--atendida{background-color:var(--success-soft);border-left-color:var(--success)}.day-card--cancelada,.day-card--no_show{background-color:var(--danger-soft);border-left-color:var(--danger);opacity:.85}.day-card--reschedule-target{outline:2px dashed var(--warning);outline-offset:-2px}.month-grid{grid-template-columns:repeat(7,minmax(0,1fr));gap:.5rem;display:grid}@media (width<=700px){.month-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}.month-grid__weekday{text-align:right;color:var(--text-dim);padding:0 .2rem .3rem;font-size:.75rem;font-weight:600}.month-grid__blank{background:0 0}.month-grid__day{background-color:var(--surface);border:1px solid var(--border);border-radius:var(--radius-sm);cursor:pointer;min-height:96px;color:var(--text);flex-direction:column;align-items:flex-end;gap:.4rem;padding:.5rem .6rem;display:flex}.month-grid__day:hover{background-color:var(--surface-alt)}.month-grid__day--today{border-color:var(--primary);box-shadow:0 0 0 1px var(--primary)}.month-grid__date{color:var(--text);font-size:.95rem;font-weight:700}.month-grid__date--holiday{color:var(--danger)}.month-grid__stats{flex-direction:column;align-self:stretch;align-items:flex-start;gap:.15rem;width:100%;display:flex}.month-grid__stat{border-radius:var(--radius-sm);text-align:left;white-space:nowrap;text-overflow:ellipsis;width:100%;padding:.05rem .4rem;font-size:.68rem;font-weight:600;display:block;overflow:hidden}.month-grid__stat--primary{background-color:var(--primary-soft);color:var(--primary)}.month-grid__stat--success{background-color:var(--success-soft);color:var(--success)}.month-grid__stat--warning{background-color:var(--warning-soft);color:var(--warning)}.month-grid__stat--danger{background-color:var(--danger-soft);color:var(--danger)}.month-grid__stat--available{background-color:var(--available-soft);color:var(--available)}.modal-overlay{z-index:200;background-color:#00000080;justify-content:center;align-items:center;padding:1.5rem;display:flex;position:fixed;inset:0}.modal{background-color:var(--surface);border:1px solid var(--border);border-radius:var(--radius);width:100%;max-width:480px;max-height:calc(100vh - 3rem);box-shadow:var(--shadow);flex-direction:column;display:flex;overflow:hidden}.modal>.form,.modal>.modal__scroll{flex:auto;min-height:0;overflow-y:auto}.modal--wide{max-width:640px}.modal--wide .form{max-width:none}@media (width>=768px){.modal--wide{max-width:70vw}}.modal--pdf{width:95vw;max-width:none;height:92vh;max-height:92vh}.modal--preview{width:80vw;max-width:none;height:90vh;max-height:90vh}.modal__status{text-align:center;color:var(--text-muted);padding:2rem}.modal__body--pdf{flex:auto;min-height:0;padding:0}.modal__body--pdf iframe{border:none;width:100%;height:100%;display:block}.modal__header{border-bottom:1px solid var(--border);flex-shrink:0;justify-content:space-between;align-items:flex-start;gap:1rem;padding:1rem 1.25rem;display:flex}.modal__header h2{margin:0;font-size:1.05rem}.modal__header-meta{color:var(--text-muted);margin:.35rem 0 0;font-size:.85rem;line-height:1.4}.modal__close{color:var(--text-muted);cursor:pointer;background:0 0;border:none;padding:.25rem;font-size:1.1rem;line-height:1}.modal__close:hover{color:var(--text)}.modal__body{padding:1.25rem}.modal__footer{border-top:1px solid var(--border);justify-content:flex-end;gap:.6rem;padding:1rem 1.25rem;display:flex}.appointment-detail{grid-template-columns:repeat(2,1fr);gap:.9rem 1.5rem;font-size:.9rem;display:grid}.appointment-detail__field{min-width:0}.appointment-detail__field--wide{grid-column:1/-1}.appointment-detail dt{color:var(--text-dim);text-transform:uppercase;letter-spacing:.04em;font-size:.75rem}.appointment-detail dd{margin:.1rem 0 0}@media (width<=640px){.appointment-detail{grid-template-columns:1fr}}.patient-summary{flex-wrap:wrap;gap:1rem 2rem;display:flex}.patient-summary__item{min-width:140px}.patient-summary__label{color:var(--text-dim);text-transform:uppercase;letter-spacing:.04em;font-size:.72rem;display:block}.patient-summary__value{margin-top:.15rem;font-size:.9rem;display:block}.pdf-template__form{max-width:none}.pdf-template__editor{margin-bottom:1.5rem}.pdf-template__editor>label{margin-bottom:.4rem;display:block}.rich-text-editor{border:1px solid var(--border);border-radius:8px;overflow:hidden}.rich-text-editor__toolbar{background:var(--surface-alt);border-bottom:1px solid var(--border);flex-wrap:wrap;gap:.25rem;padding:.4rem;display:flex}.rich-text-editor__btn{min-width:28px;height:28px;color:var(--text);cursor:pointer;background:0 0;border:1px solid #0000;border-radius:6px;padding:0 .4rem;font-size:.8rem}.rich-text-editor__btn:hover{border-color:var(--border)}.rich-text-editor__btn.is-active{border-color:var(--primary);color:var(--primary)}.rich-text-editor__btn:disabled{opacity:.4;cursor:not-allowed}.rich-text-editor__content{outline:none;min-height:140px;padding:.75rem}.rich-text-editor__content p{margin:0 0 .5rem}.rich-text-editor__content table{margin:.5rem 0}.rich-text-editor__content table td,.rich-text-editor__content table th{min-width:2rem;min-height:1.5rem;position:relative}.rich-text-editor__toolbar--tables{border-top:1px dashed var(--border)}.rich-text-editor__source{padding:.75rem}.rich-text-editor__source textarea{resize:vertical;width:100%;font-family:Courier New,monospace;font-size:.85rem}.rich-text-editor__source-actions{justify-content:flex-end;gap:.5rem;margin-top:.5rem;display:flex}.rich-text-editor__hint{color:var(--text-dim);padding:0 .75rem .6rem;font-size:.72rem}.rich-text-editor__variables{flex-wrap:wrap;gap:.4rem;padding:0 .75rem .75rem;display:flex}.rich-text-editor__variable{padding:.2rem .5rem;font-size:.75rem}.patient-fields{margin-top:.5rem}.patient-fields select:disabled,.patient-fields input:disabled{opacity:.6;cursor:not-allowed}.patient-fields__match{font-size:.8rem;position:absolute;top:0;right:0}.patient-fields__search{position:relative}.patient-fields__suggestions{z-index:10;background-color:var(--surface);border:1px solid var(--border);border-radius:var(--radius-sm);box-shadow:var(--shadow);max-height:12rem;margin-top:.2rem;padding:.25rem;list-style:none;position:absolute;top:100%;left:0;right:0;overflow-y:auto}.patient-fields__suggestions li+li{margin-top:.15rem}.patient-fields__suggestions button{border-radius:var(--radius-sm);width:100%;color:var(--text);text-align:left;cursor:pointer;background:0 0;border:none;padding:.4rem .5rem;font-size:.85rem;display:block}.patient-fields__suggestions button:hover{background-color:var(--surface-alt)}.link-button{color:var(--primary);font-size:inherit;cursor:pointer;background:0 0;border:none;padding:0;text-decoration:underline}.link-button:hover{color:var(--primary-hover)}.cancelled-list{flex-direction:column;gap:.6rem;max-height:50vh;list-style:none;display:flex;overflow-y:auto}.cancelled-list__item{border-radius:var(--radius-sm);border-left:3px solid var(--danger);background-color:var(--danger-soft);padding:.7rem .9rem}.cancelled-list__main{flex-wrap:wrap;align-items:center;gap:.7rem;display:flex}.cancelled-list__time{font-weight:600}.cancelled-list__patient{margin-right:auto;font-weight:600}.cancelled-list__meta{color:var(--text-muted);margin-top:.2rem;font-size:.82rem}.cancelled-list__reason{color:var(--text-muted);margin-top:.2rem;font-size:.82rem;font-style:italic}
