.toast-container{top:var(--spacing-lg);right:var(--spacing-lg);z-index:var(--z-index-toast);gap:var(--spacing-sm);max-width:400px;width:calc(100% - 2 * var(--spacing-lg));flex-direction:column;display:flex;position:fixed}.toast{align-items:center;gap:var(--spacing-sm);padding:var(--spacing-md);border-radius:var(--radius-md);box-shadow:var(--shadow-lg);animation:toast-slide-in var(--transition-base) ease-out;font-size:var(--font-size-base);line-height:var(--line-height-normal);display:flex}.toast-success{background-color:var(--color-status-confirmed-bg);color:var(--color-success);border-left:4px solid var(--color-success)}.toast-error{background-color:var(--color-error-bg);color:var(--color-error);border-left:4px solid var(--color-error)}.toast-warning{background-color:var(--color-warning-bg);color:var(--color-warning);border-left:4px solid var(--color-warning)}.toast-icon{font-weight:var(--font-weight-bold);font-size:var(--font-size-body);text-align:center;flex-shrink:0;width:20px}.toast-message{flex:1}.toast-close{color:inherit;opacity:.6;cursor:pointer;font-size:var(--font-size-xs);border-radius:var(--radius-sm);line-height:var(--line-height-compact);background:0 0;border:none;flex-shrink:0;padding:2px 4px}.toast-close:hover{opacity:1;box-shadow:none;transform:none}@keyframes toast-slide-in{0%{opacity:0;transform:translate(100%)}to{opacity:1;transform:translate(0)}}@media (width<=640px){.toast-container{top:auto;bottom:calc(60px + var(--spacing-md));left:var(--spacing-md);right:var(--spacing-md);width:auto;max-width:none}}.bottom-tab-bar{display:none}@media (width<=640px){.bottom-tab-bar{z-index:var(--z-index-nav);background-color:var(--color-primary);border-top:1px solid var(--color-border);height:60px;padding-bottom:env(safe-area-inset-bottom,0);display:flex;position:fixed;bottom:0;left:0;right:0;box-shadow:0 -2px 8px #00000014}.tab-item{color:var(--color-text-muted);opacity:.6;cursor:pointer;padding:var(--spacing-xs) 0;transition:color var(--transition-fast), opacity var(--transition-fast);-webkit-tap-highlight-color:transparent;background:0 0;border:none;border-radius:0;flex-direction:column;flex:1;justify-content:center;align-items:center;gap:2px;display:flex}.tab-item:hover{box-shadow:none;transform:none}.tab-item.tab-active{color:var(--color-accent);opacity:1;box-shadow:inset 0 3px 0 var(--color-accent)}.tab-active .tab-label{font-weight:var(--font-weight-bold)}.tab-icon{font-size:var(--font-size-medium);line-height:var(--line-height-compact);filter:grayscale();transition:filter var(--transition-fast)}.tab-active .tab-icon{filter:none}.tab-label{font-size:var(--font-size-xs);font-weight:var(--font-weight-medium);line-height:var(--line-height-compact)}.app{padding-bottom:calc(60px + env(safe-area-inset-bottom,0px))}.login-page{padding-bottom:0}}@media (width>=641px){.app{padding-left:var(--width-sidenav)}.app:has(.login-page){padding-left:0}}.side-nav{width:var(--width-sidenav);background-color:var(--color-surface);border-right:1px solid var(--color-border);z-index:var(--z-index-sticky);flex-direction:column;display:none;position:fixed;top:0;bottom:0;left:0}@media (width>=641px){.side-nav{display:flex}}.side-nav-tabs{padding:var(--spacing-md) 0;gap:var(--spacing-xs);flex-direction:column;flex:1;display:flex}.side-nav-tab{align-items:center;gap:var(--spacing-sm);padding:var(--spacing-sm) var(--spacing-md);width:calc(100% - var(--spacing-xs) * 2);text-align:left;cursor:pointer;border-radius:var(--radius-md);margin:0 var(--spacing-xs);box-sizing:border-box;color:var(--color-text-muted);font-size:var(--font-size-small);transition:background-color var(--transition-fast), color var(--transition-fast);background:0 0;border:none;font-family:inherit;display:flex}@media (hover:hover){.side-nav-tab:hover{background-color:var(--color-surface-hover);color:var(--color-secondary)}}.side-nav-tab.active{background-color:var(--color-accent-light);color:var(--color-accent);font-weight:var(--font-weight-semibold);box-shadow:inset 3px 0 0 var(--color-accent)}.side-nav-tab-icon{font-size:var(--font-size-medium);flex-shrink:0}.side-nav-tab-label{font-size:var(--font-size-small)}.side-nav-footer{border-top:1px solid var(--color-border)}.side-nav-settings-link{align-items:center;gap:var(--spacing-sm);width:calc(100% - var(--spacing-xs) * 2);margin:var(--spacing-xs);padding:var(--spacing-sm) var(--spacing-md);border-radius:var(--radius-md);color:var(--color-text-muted);font-size:var(--font-size-small);cursor:pointer;transition:background-color var(--transition-fast), color var(--transition-fast);box-sizing:border-box;background:0 0;border:none;font-family:inherit;display:flex}@media (hover:hover){.side-nav-settings-link:hover{background-color:var(--color-surface-hover);color:var(--color-secondary)}}.side-nav-user{padding:var(--spacing-sm) var(--spacing-md) var(--spacing-md);flex-direction:column;gap:2px;display:flex}.side-nav-user-name{font-size:var(--font-size-small);font-weight:var(--font-weight-semibold);color:var(--color-secondary);white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.side-nav-user-role{font-size:var(--font-size-xs);color:var(--color-text-muted);text-transform:capitalize;white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.login-form{width:100%;max-width:400px;padding:var(--spacing-xl);background-color:var(--color-primary);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg)}.form-group{margin-bottom:var(--spacing-lg)}.form-group label{margin-bottom:var(--spacing-sm);font-weight:var(--font-weight-medium);color:var(--color-secondary);font-size:var(--font-size-medium);display:block}.form-group input{width:100%}.error-message{padding:var(--spacing-md);margin-bottom:var(--spacing-md);background-color:var(--color-status-inactive-bg);color:var(--color-error);border-radius:var(--radius-sm);font-size:var(--font-size-small)}.login-form button{width:100%;padding:var(--spacing-md) var(--spacing-lg);font-size:var(--font-size-medium);font-weight:var(--font-weight-medium)}@media (width<=480px){.login-form{padding:var(--spacing-lg);max-width:100%}}.btn{font-family:var(--font-family);font-size:var(--font-size-medium);padding:var(--spacing-sm) var(--spacing-lg);border-radius:var(--radius-md);cursor:pointer;transition:all var(--transition-base);justify-content:center;align-items:center;gap:var(--spacing-sm);border:none;display:inline-flex}.btn:disabled{opacity:.5;cursor:not-allowed}.btn:not(:disabled):hover{box-shadow:var(--shadow-md);transform:translateY(-1px)}.btn:not(:disabled):active{transform:translateY(0)}.btn-primary:not(:disabled):hover{opacity:.9}.btn-secondary:not(:disabled):hover{background-color:var(--color-background);border-color:var(--color-accent)}.btn-danger{background-color:var(--color-error);color:var(--color-primary)}.btn-danger:not(:disabled):hover{opacity:.9}.btn-icon{color:var(--color-accent);padding:var(--spacing-sm);background:0 0;border:none}.btn-icon:not(:disabled):hover{background-color:var(--color-background);box-shadow:none}.btn-home{border:1px solid var(--color-border);border-radius:var(--radius-md);padding:var(--spacing-sm) var(--spacing-md);font-size:var(--font-size-medium);color:var(--color-text);background:0 0}.btn-home:not(:disabled):hover{background-color:var(--color-background);border-color:var(--color-accent);box-shadow:none;transform:none}.page-header{padding:var(--spacing-lg);background-color:var(--color-primary);border-bottom:1px solid var(--color-border);box-shadow:var(--shadow-sm);justify-content:space-between;align-items:center;display:flex}.page-header h1{font-size:var(--font-size-large);margin:0}.header-right{align-items:center;gap:var(--spacing-lg);display:flex}.header-actions{align-items:center;gap:var(--spacing-sm);display:flex}.user-info{align-items:center;gap:var(--spacing-md);display:flex}.user-details{flex-direction:column;align-items:flex-end;display:flex}.user-name{font-weight:var(--font-weight-medium)}.header-settings-link{padding:var(--spacing-xs);font-size:var(--font-size-medium);cursor:pointer;line-height:var(--line-height-compact);border-radius:var(--radius-md);transition:background-color var(--transition-fast);color:var(--color-text-muted);background:0 0;border:none;display:none}@media (hover:hover){.header-settings-link:hover{background-color:var(--color-surface-hover)}}@media (width>=641px){.btn-home:not(.header-back){display:none}}@media (width>=641px) and (width<=1024px){.user-info{display:none}.dashboard-page .user-info{display:flex}}@media (width<=640px){.page-header{gap:var(--spacing-md);flex-direction:column;align-items:stretch}.header-left,.header-right{justify-content:center}.header-right{flex-direction:column;align-items:center}.header-actions{flex-direction:column;align-items:stretch;width:100%}.user-info{display:none}.dashboard-page .user-info{flex-direction:column;align-items:center;width:100%;display:flex}.dashboard-page .user-info .btn{width:100%}.dashboard-page .user-details{align-items:center}.appointments-page--calendar .page-header{padding:var(--spacing-sm) var(--spacing-md);gap:var(--spacing-sm)}}.card{background-color:var(--color-primary);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:var(--spacing-lg);box-shadow:var(--shadow-sm)}.card.clickable{cursor:pointer;transition:all var(--transition-base)}.card.clickable:not(.disabled):hover{box-shadow:var(--shadow-lg);border-color:var(--color-accent);transform:translateY(-4px)}.card.clickable:not(.disabled):focus{outline:2px solid var(--color-accent);outline-offset:2px}.card.disabled{opacity:.5;cursor:not-allowed}.card.disabled:hover{box-shadow:var(--shadow-sm);border-color:var(--color-border);transform:none}.card-module{padding:var(--spacing-xl)}.card-info{border-radius:var(--radius-lg)}.card-summary{border-left:4px solid var(--color-accent);border-radius:var(--radius-md);box-shadow:var(--shadow-md)}.card-title{margin-bottom:var(--spacing-sm);font-size:var(--font-size-medium);color:var(--color-secondary)}.card-description{font-size:var(--font-size-small);color:var(--color-text-secondary);margin:0}@keyframes shimmer{0%{background-position:-200% 0}to{background-position:200% 0}}.loading-state-bars{gap:var(--spacing-sm);margin-bottom:var(--spacing-md);flex-direction:column;display:flex}.loading-state-bar{border-radius:var(--radius-sm);background:linear-gradient(90deg, var(--color-border) 25%, var(--color-surface-hover) 50%, var(--color-border) 75%);background-size:200% 100%;height:1rem;animation:1.4s ease-in-out infinite shimmer}.loading-state-message{color:var(--color-text-muted);font-size:var(--font-size-small);text-align:center;display:block}.badge{padding:var(--spacing-xs) var(--spacing-sm);border-radius:var(--radius-sm);font-size:var(--font-size-small);font-weight:var(--font-weight-medium);text-transform:capitalize;align-items:center;display:inline-flex}.badge-active{background-color:var(--color-status-active-bg);color:var(--color-status-active-text)}.badge-inactive{background-color:var(--color-status-inactive-bg);color:var(--color-status-inactive-text)}.badge-scheduled{background-color:var(--color-status-scheduled-bg);color:var(--color-status-scheduled-text)}.badge-confirmed{background-color:var(--color-status-confirmed-bg);color:var(--color-status-confirmed-text)}.badge-completed{background-color:var(--color-status-completed-bg);color:var(--color-status-completed-text)}.badge-cancelled{background-color:var(--color-status-cancelled-bg);color:var(--color-status-cancelled-text)}.badge-type.badge-consultation{background-color:var(--color-type-consultation-bg);color:var(--color-type-consultation-text)}.badge-type.badge-treatment{background-color:var(--color-type-treatment-bg);color:var(--color-type-treatment-text)}.badge-type.badge-followup{background-color:var(--color-type-followup-bg);color:var(--color-type-followup-text)}.badge-type.badge-procedure{background-color:var(--color-type-procedure-bg);color:var(--color-type-procedure-text)}.table-container{background-color:var(--color-primary);border:1px solid var(--color-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);overflow:hidden}.table{border-collapse:collapse;width:100%}.table-head{background-color:var(--color-background)}.table-head th{padding:var(--spacing-md) var(--spacing-lg);text-align:left;font-size:var(--font-size-small);font-weight:var(--font-weight-semibold);text-transform:uppercase;color:var(--color-text);border-bottom:1px solid var(--color-border)}.table-body tr{border-bottom:1px solid var(--color-border)}.table-body tr:last-child{border-bottom:none}.table-body td{padding:var(--spacing-md) var(--spacing-lg);font-size:var(--font-size-medium);color:var(--color-text)}.table-row.clickable{cursor:pointer;transition:background-color var(--transition-fast)}.table-row.clickable:hover{background-color:var(--color-background)}.table-row.clickable:focus{outline:2px solid var(--color-accent);outline-offset:-2px}@media (width<=640px){.table-head th,.table-body td{padding:var(--spacing-sm) var(--spacing-md)}}.patients-page{background-color:var(--color-background);flex-direction:column;height:100dvh;display:flex;overflow:hidden}.patients-content{min-height:0;padding:var(--spacing-xl);max-width:var(--max-width-page);flex:1;width:100%;margin:0 auto;overflow-y:auto}.patients-controls{margin-bottom:var(--spacing-xl)}.search-filter-row{gap:var(--spacing-md);margin-bottom:var(--spacing-md);flex-wrap:wrap;align-items:center;display:flex}.search-box{min-width:var(--min-width-card);flex:1}.search-input{width:100%;padding:var(--spacing-sm) var(--spacing-md);border:1px solid var(--color-border);border-radius:var(--radius-md);font-size:var(--font-size-medium);transition:border-color var(--transition-fast)}.search-input:focus{border-color:var(--color-accent);outline:none}.filter-box{min-width:150px}.filter-select{width:100%;padding:var(--spacing-sm) var(--spacing-md);border:1px solid var(--color-border);border-radius:var(--radius-md);font-size:var(--font-size-medium);background-color:var(--color-primary);cursor:pointer}.patients-summary{color:var(--color-text-secondary);font-size:var(--font-size-small)}.loading-state,.empty-state{text-align:center;padding:var(--spacing-xxl);color:var(--color-text-secondary)}.empty-state p:first-child{font-size:var(--font-size-large);margin-bottom:var(--spacing-sm);color:var(--color-text)}.patients-table-container{background-color:var(--color-primary);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);margin-bottom:var(--spacing-xl);overflow:hidden}.patients-table{border-collapse:collapse;width:100%}.patients-table thead{background-color:var(--color-background)}.patients-table th{text-align:left;padding:var(--spacing-md) var(--spacing-lg);font-weight:var(--font-weight-semibold);color:var(--color-text);font-size:var(--font-size-small);text-transform:uppercase;letter-spacing:var(--letter-spacing-label);border-bottom:2px solid var(--color-border)}.patients-table tbody tr{border-bottom:1px solid var(--color-border);transition:background-color var(--transition-fast)}.patient-row{cursor:pointer}.patient-row:hover{background-color:var(--color-background)}.patients-table td{padding:var(--spacing-md) var(--spacing-lg);font-size:var(--font-size-medium)}.patient-name{font-weight:var(--font-weight-medium);color:var(--color-secondary);align-items:center;gap:var(--spacing-sm);display:flex}.patient-avatar{background-color:var(--color-accent);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:32px;height:32px;display:flex;overflow:hidden}.patient-avatar-img{object-fit:cover;width:100%;height:100%}.patient-avatar-initials{font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold);color:var(--color-primary);line-height:var(--line-height-compact);letter-spacing:var(--letter-spacing-label)}.pagination-info{color:var(--color-text-secondary);font-size:var(--font-size-medium)}@media (width<=1024px){.patients-table-wrapper [data-col=email],.patients-table-wrapper [data-col=birthDate]{display:none}}@media (width<=768px){.patients-table-container{overflow-x:auto}.patients-table{min-width:600px}.patients-content{padding:var(--spacing-lg)}.patients-table th,.patients-table td{padding:var(--spacing-sm) var(--spacing-md);font-size:var(--font-size-small)}}@media (width<=640px){.search-filter-row{flex-direction:column;align-items:stretch}.search-box,.filter-box,.btn-primary,.btn-danger{width:100%}.pagination{gap:var(--spacing-sm);flex-direction:column}}@media (width<=480px){.patients-content{padding:var(--spacing-md)}.dashboard-header{align-items:flex-start;gap:var(--spacing-sm);flex-direction:column}.user-info{justify-content:space-between;width:100%}}@media (width<=640px){.patients-table-wrapper table thead{display:none}.patients-table-wrapper table{min-width:0}.patients-table-wrapper table,.patients-table-wrapper tbody,.patients-table-wrapper tr{width:100%;display:block}.patients-table-wrapper tr{background:var(--color-primary);border:1px solid var(--color-border);border-radius:var(--radius-md);margin-bottom:var(--spacing-sm);padding:var(--spacing-md);align-items:center;gap:var(--spacing-xs) var(--spacing-sm);flex-wrap:wrap;display:flex}.patients-table-wrapper td{font-size:var(--font-size-base);border:none;padding:2px 0}.patients-table-wrapper td.patient-name{width:100%;font-weight:var(--font-weight-semibold);font-size:var(--font-size-body)}.patients-table-wrapper [data-col=email],.patients-table-wrapper [data-col=birthDate],.patients-table-wrapper [data-col=status]{display:none}.patients-table-wrapper [data-col=phone]:after{content:" 📞"}}.modal{background-color:var(--color-primary);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);flex-direction:column;width:100%;max-width:500px;max-height:90vh;display:flex;overflow:hidden}.modal-title{font-size:var(--font-size-medium);font-weight:var(--font-weight-semibold);margin:0}.modal-content{padding:var(--spacing-lg);flex:1;overflow-y:auto}.modal-footer{justify-content:flex-end;gap:var(--spacing-sm);padding:var(--spacing-lg);border-top:1px solid var(--color-border);display:flex}@media (width>=768px){.modal{max-width:640px}}@media (width<=480px){.modal{max-width:100%;margin:var(--spacing-md)}}.confirm-dialog .modal-content{padding:var(--spacing-lg)}.confirm-dialog-message{line-height:var(--line-height-loose);font-size:var(--font-size-medium);color:var(--color-text);margin:0}.patient-detail-page{background-color:var(--color-background);flex-direction:column;min-height:100vh;display:flex}.patient-detail-content{padding:var(--spacing-xl);max-width:var(--max-width-content);flex:1;width:100%;margin:0 auto}.action-bar{margin-bottom:var(--spacing-xl);justify-content:space-between;align-items:center;gap:var(--spacing-md);display:flex}.action-buttons{gap:var(--spacing-md);display:flex}.patient-header-card{background-color:var(--color-primary);border-radius:var(--radius-lg);padding:var(--spacing-xl);margin-bottom:var(--spacing-xl);box-shadow:var(--shadow-md);border-left:4px solid var(--color-accent)}.patient-header-info{align-items:center;gap:var(--spacing-md);margin-bottom:var(--spacing-sm);display:flex}.patient-header-photo{object-fit:cover;border:3px solid var(--color-accent);border-radius:50%;flex-shrink:0;width:72px;height:72px}.patient-header-card h2{font-size:var(--font-size-large);color:var(--color-secondary);margin:0}.patient-age{font-size:var(--font-size-medium);color:var(--color-text-secondary);margin:0}.info-sections{gap:var(--spacing-lg);flex-direction:column;display:flex}.info-card{background-color:var(--color-primary);border-radius:var(--radius-lg);padding:var(--spacing-xl);box-shadow:var(--shadow-sm);border:1px solid var(--color-border)}.info-card h3{margin-top:0;margin-bottom:var(--spacing-lg);font-size:var(--font-size-medium);color:var(--color-secondary);border-bottom:2px solid var(--color-background);padding-bottom:var(--spacing-sm)}.info-grid{gap:var(--spacing-lg);grid-template-columns:repeat(auto-fit,minmax(250px,1fr));display:grid}.info-item{gap:var(--spacing-xs);flex-direction:column;display:flex}.info-item label{font-size:var(--font-size-small);font-weight:var(--font-weight-semibold);color:var(--color-text-secondary);text-transform:uppercase;letter-spacing:var(--letter-spacing-label)}.info-item p{font-size:var(--font-size-medium);color:var(--color-text);margin:0}.notes-text{line-height:var(--line-height-loose);color:var(--color-text);white-space:pre-wrap;margin:0}.info-card.metadata{background-color:var(--color-background);border-style:dashed}.info-card.metadata h3{border-bottom-color:var(--color-border)}.info-card.metadata .info-item label,.info-card.metadata .info-item p{font-size:var(--font-size-small)}@media (width<=768px){.patient-detail-content{padding:var(--spacing-lg)}}@media (width<=640px){.action-bar{flex-direction:column;align-items:stretch}.action-buttons{flex-direction:column}.action-buttons button{width:100%}.patient-header-info{flex-direction:column;align-items:flex-start}.info-grid{grid-template-columns:1fr}}@media (width<=480px){.patient-detail-content{padding:var(--spacing-md)}.patient-header-card,.info-card{padding:var(--spacing-lg)}.patient-header-card h2{font-size:var(--font-size-medium)}}.age-calculator{gap:var(--spacing-sm);flex-direction:column;display:flex}.age-calculator label{font-weight:var(--font-weight-medium);font-size:var(--font-size-small);color:var(--color-text-strong)}.age-input{padding:var(--spacing-sm);border:1px solid var(--color-input-border);border-radius:var(--radius-sm);font-size:var(--font-size-body);background-color:var(--color-surface-hover);cursor:not-allowed}.age-input:disabled{opacity:.7;color:var(--color-text-muted)}.age-input.has-error{border-color:var(--color-error-light);background-color:var(--color-error-bg)}.validation-message{font-size:var(--font-size-small);color:var(--color-error);margin-top:var(--spacing-xs)}.historia-clinica-section{border:1px solid var(--color-border-light);border-radius:var(--radius-md);overflow:hidden}.section-header{width:100%;padding:var(--spacing-md);background-color:var(--color-surface-hover);border:none;border-bottom:1px solid var(--color-border-light);cursor:pointer;transition:background-color var(--transition-base);justify-content:space-between;align-items:center;display:flex}.section-header:hover{background-color:var(--color-border-light)}.section-title{align-items:center;gap:var(--spacing-sm);flex:1;display:flex}.title-text{font-weight:var(--font-weight-semibold);color:var(--color-secondary)}.progress-badge{min-width:3rem;padding:var(--spacing-xs) var(--spacing-sm);background-color:var(--color-accent-light);color:var(--color-accent);border-radius:var(--radius-sm);font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold);justify-content:center;align-items:center;display:inline-flex}.expand-icon{color:var(--color-text-muted);font-size:var(--font-size-xs);transition:transform var(--transition-base);margin-left:var(--spacing-md)}.section-header.expanded .expand-icon{transform:rotate(0)}.section-content{padding:var(--spacing-md);animation:slideDown var(--transition-base)}.section-content.closing{animation:slideUp var(--transition-base) forwards}@keyframes slideDown{0%{opacity:0;max-height:0}to{opacity:1;max-height:2000px}}@keyframes slideUp{0%{opacity:1;max-height:2000px}to{opacity:0;max-height:0}}.progress-bar-container{background-color:var(--color-border-light);border-radius:var(--radius-sm);width:100%;height:.5rem;margin-bottom:var(--spacing-md);overflow:hidden}.progress-bar-fill{background:linear-gradient(90deg, var(--color-accent), var(--color-success));height:100%;transition:width var(--transition-slow)}.section-photo-row{gap:var(--spacing-md);margin-bottom:var(--spacing-md);grid-template-columns:1fr;display:grid}.section-photo-side-fields{gap:var(--spacing-md);grid-template-columns:1fr;align-content:start;display:grid}@media (width>=641px){.section-photo-side-fields{grid-template-columns:minmax(min-content,1fr) 1fr}.section-photo-side-fields .field-label{white-space:nowrap}}.section-photo-side-fields .field-container.full-width{grid-column:1/-1}@media (width>=641px){.section-photo-row{align-items:start;gap:var(--spacing-md);grid-template-columns:repeat(2,1fr)}.section-photo{align-self:start}.section-photo .patient-photo-upload{padding:var(--spacing-sm) 0;background:0 0;border:none}}.fields-grid{gap:var(--spacing-md);grid-template-columns:1fr;display:grid}@media (width>=641px){.fields-grid{grid-template-columns:repeat(2,1fr)}}.fields-grid .field-container.full-width{grid-column:1/-1}.fields-grid .field-container:has(.textarea-input){grid-column:1/-1}.field-container{gap:var(--spacing-sm);flex-direction:column;display:flex}.field-label{font-weight:var(--font-weight-medium);font-size:var(--font-size-small);color:var(--color-text-strong)}.field-input{padding:var(--spacing-sm);border:1px solid var(--color-input-border);border-radius:var(--radius-sm);font-size:var(--font-size-small);transition:border-color var(--transition-base);font-family:inherit}.field-input:focus{border-color:var(--color-accent);box-shadow:0 0 0 3px rgba(var(--color-accent-rgb), .1);outline:none}.field-input:disabled{background-color:var(--color-surface-hover);opacity:.7;cursor:not-allowed}.textarea-input{resize:vertical;min-height:100px;font-family:inherit}.select-input{appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 20 20'%3E%3Cpath stroke='%236B7280' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='M6 8l4 4 4-4'/%3E%3C/svg%3E");background-position:right .5rem center;background-repeat:no-repeat;background-size:1.5em 1.5em;padding-right:2.5rem}.field-help{font-size:var(--font-size-xs);color:var(--color-text-muted);font-style:italic}.field-container.has-error .field-label{color:var(--color-error)}.input-error{background-color:var(--color-error-bg);border-color:var(--color-error)!important}.input-error:focus{box-shadow:0 0 0 3px rgba(var(--color-accent-rgb), .1);border-color:var(--color-error)!important}.field-error{font-size:var(--font-size-xs);color:var(--color-error);font-weight:var(--font-weight-medium)}.annotation-canvas-wrapper{border:2px solid var(--color-border-light);border-radius:var(--radius-md);background:var(--color-surface);padding:var(--spacing-sm);box-sizing:border-box;outline:none;flex-direction:column;min-width:0;max-width:100%;display:flex;overflow:hidden}.annotation-canvas-wrapper:focus-within{border-color:var(--color-accent)}.annotation-canvas-wrapper.disabled{opacity:.6;pointer-events:none}.annotation-toolbar{align-items:center;gap:var(--spacing-sm);padding:var(--spacing-xs);background:var(--color-surface-hover);border-radius:var(--radius-sm);flex-wrap:wrap;display:flex}.toolbar-tools{gap:2px;display:flex}.toolbar-separator{background:var(--color-border-light);flex-shrink:0;width:1px;height:24px}.annotation-tool-btn{width:32px;height:32px;color:var(--color-text-muted);border-radius:var(--radius-sm);cursor:pointer;transition:all var(--transition-fast);background:0 0;border:none;justify-content:center;align-items:center;padding:0;display:flex}.annotation-tool-btn svg{width:16px;height:16px}.annotation-tool-btn:hover{background:var(--color-surface);color:var(--color-text-strong)}.annotation-tool-btn.active{background:var(--color-accent);color:#fff}.toolbar-brush-size{align-items:center;display:flex}.brush-slider{appearance:none;background:var(--color-border-light);cursor:pointer;border-radius:2px;outline:none;width:60px;height:4px}.brush-slider::-webkit-slider-thumb{-webkit-appearance:none;background:var(--color-accent);cursor:pointer;border:none;border-radius:50%;width:14px;height:14px}.brush-slider::-moz-range-thumb{background:var(--color-accent);cursor:pointer;border:none;border-radius:50%;width:14px;height:14px}.toolbar-colors{gap:var(--spacing-xs);align-items:center;display:flex}.color-dot{cursor:pointer;width:20px;height:20px;transition:all var(--transition-fast);border:2px solid #0000;border-radius:50%;padding:0}.color-dot:hover{transform:scale(1.15)}.color-dot.active{border-color:var(--color-text-strong);box-shadow:0 0 0 2px var(--color-surface)}.color-picker-label{cursor:pointer;justify-content:center;align-items:center;display:flex;position:relative}.color-picker-input{opacity:0;pointer-events:none;width:0;height:0;position:absolute}.color-picker-swatch{border:2px dashed var(--color-border-light);width:20px;height:20px;transition:all var(--transition-fast);border-radius:50%;display:block}.color-picker-swatch:hover{transform:scale(1.15)}.toolbar-actions{gap:2px;display:flex}.annotation-action-btn{width:32px;height:32px;color:var(--color-text-muted);border-radius:var(--radius-sm);cursor:pointer;transition:all var(--transition-fast);background:0 0;border:none;justify-content:center;align-items:center;padding:0;display:flex}.annotation-action-btn svg{width:16px;height:16px}.annotation-action-btn:hover:not(:disabled){background:var(--color-surface);color:var(--color-text-strong)}.annotation-action-btn:disabled{opacity:.35;cursor:default}.toolbar-zoom{align-items:center;gap:var(--spacing-xs);display:flex}.zoom-indicator{font-size:var(--font-size-xs);font-weight:var(--font-weight-medium);color:var(--color-text-muted);text-align:center;-webkit-user-select:none;user-select:none;min-width:36px}.annotation-canvas-container{border-radius:var(--radius-sm);touch-action:none;justify-content:center;width:100%;min-width:0;max-width:100%;display:flex;overflow:hidden}.annotation-canvas-container .canvas-container{max-width:100%!important}.annotation-canvas-container canvas{border-radius:var(--radius-sm);max-width:100%}@media (width<=768px){.annotation-canvas-wrapper{padding:var(--spacing-xs)}.annotation-toolbar{gap:var(--spacing-xs);padding:var(--spacing-xs)}.toolbar-separator{display:none}.toolbar-tools{flex-wrap:wrap;gap:2px;width:100%;display:flex}.toolbar-colors{gap:var(--spacing-xs);flex-wrap:wrap;width:100%;display:flex}.toolbar-actions{flex-wrap:wrap;gap:2px;width:100%;display:flex}.toolbar-brush-size{width:100%}.annotation-tool-btn{width:36px;height:36px}.annotation-tool-btn svg{width:18px;height:18px}.annotation-action-btn{width:36px;height:36px}.annotation-action-btn svg{width:18px;height:18px}.color-dot,.color-picker-swatch{width:26px;height:26px}.brush-slider{width:100%}}.patient-history-form-page{max-width:var(--max-width-page);width:100%;margin:0 auto}.patient-history-form-content{padding:var(--spacing-xl) var(--spacing-md)}.draft-restore-banner{align-items:center;gap:var(--spacing-md);background-color:var(--color-warning-bg);border:1px solid var(--color-warning);border-radius:var(--radius-md);padding:var(--spacing-sm) var(--spacing-md);margin-bottom:var(--spacing-md);font-size:var(--font-size-base);flex-wrap:wrap;display:flex}.promote-banner{background-color:var(--color-info-bg);border:1px solid var(--color-info);border-radius:var(--radius-md);padding:var(--spacing-sm) var(--spacing-md);margin-bottom:var(--spacing-md);font-size:var(--font-size-base)}.draft-restore-btn,.draft-discard-btn{border:1px solid var(--color-border);border-radius:var(--radius-sm);padding:var(--spacing-xs) var(--spacing-md);cursor:pointer;font-size:var(--font-size-small);transition:background-color var(--transition-fast);background:0 0}.draft-restore-btn{background-color:var(--color-accent);color:var(--color-primary);border-color:var(--color-accent)}@media (hover:hover){.draft-restore-btn:hover{background-color:var(--color-accent-hover)}.draft-discard-btn:hover{background-color:var(--color-surface-hover)}}.patient-history-form-page .page-header{margin-bottom:var(--spacing-md)}.patient-history-form-page .page-header h1{font-size:var(--font-size-large);font-weight:var(--font-weight-bold);color:var(--color-text-strong)}.history-form{gap:var(--spacing-lg);flex-direction:column;display:flex}.autoestima-slider{width:100%;accent-color:var(--color-accent);cursor:pointer}.autoestima-value{font-size:var(--font-size-small);font-weight:var(--font-weight-bold);color:var(--color-accent);text-align:center;display:block}.zones-grid{gap:var(--spacing-xl);margin-top:var(--spacing-md);grid-template-columns:repeat(auto-fit,minmax(300px,1fr));display:grid}.zone-container{gap:var(--spacing-md);flex-direction:column;min-width:0;display:flex}.zone-container h3{font-size:var(--font-size-body);font-weight:var(--font-weight-semibold);color:var(--color-text-strong);margin:0}.zone-notes{margin-top:var(--spacing-md)}.zone-notes .field-label{margin-bottom:var(--spacing-sm);font-weight:var(--font-weight-semibold);color:var(--color-text);display:block}.zone-notes .field-input{width:100%}.form-actions{gap:var(--spacing-md);margin-top:var(--spacing-xl);padding-top:var(--spacing-md);border-top:1px solid var(--color-border-light);justify-content:flex-end;display:flex}@media (width<=768px){.patient-history-form-content{padding:var(--spacing-md)}.patient-history-form-page .page-header h1{font-size:var(--font-size-medium)}}@media (width<=640px){.zones-grid{gap:var(--spacing-md);grid-template-columns:1fr}.form-actions{flex-direction:column-reverse}.form-actions button{width:100%}}@media (width<=480px){.patient-history-form-page .page-header h1{font-size:var(--font-size-medium)}.history-form{gap:var(--spacing-md)}}.patient-photo-upload{align-items:center;gap:var(--spacing-sm);padding:var(--spacing-md);border:1px dashed var(--color-input-border);border-radius:var(--radius-lg);background:var(--color-surface);flex-direction:column;display:flex}.photo-preview-container{aspect-ratio:1;border:2px solid var(--color-border-light);border-radius:50%;flex-shrink:0;width:min(100%,200px);overflow:hidden}.photo-preview{object-fit:cover;width:100%;height:100%;display:block}.photo-placeholder{background:var(--color-surface-hover);justify-content:center;align-items:center;width:100%;height:100%;display:flex}.photo-placeholder-icon{font-size:3rem;line-height:var(--line-height-compact)}.photo-actions{align-items:center;gap:var(--spacing-sm);flex-direction:column;display:flex}.photo-upload-label{padding:var(--spacing-xs) var(--spacing-md);background:var(--color-accent);color:var(--color-primary);border-radius:var(--radius-sm);font-size:var(--font-size-small);font-weight:var(--font-weight-medium);cursor:pointer;transition:background var(--transition-fast);text-align:center;display:inline-block}.photo-upload-label:hover{background:var(--color-accent-hover)}.photo-upload-label[aria-disabled=true]{background:var(--color-accent-light);cursor:not-allowed}.photo-file-input{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.photo-delete-btn{color:var(--color-error-light);font-size:var(--font-size-xs);cursor:pointer;background:0 0;border:none;padding:0;text-decoration:underline}.photo-delete-btn:hover{color:var(--color-error)}.photo-error{color:var(--color-error-light);font-size:var(--font-size-xs);text-align:center;margin:0}.photo-pending-hint{color:var(--color-text-muted);font-size:var(--font-size-xs);text-align:center;margin:0}.timeline{padding-left:var(--spacing-xl);position:relative}.timeline:before{content:"";left:var(--spacing-sm);background-color:var(--color-border);width:2px;position:absolute;top:0;bottom:0}.timeline-item{padding-bottom:var(--spacing-lg);position:relative}.timeline-item:last-child{padding-bottom:0}.timeline-marker{left:calc(-1 * var(--spacing-xl) + var(--spacing-xs));top:var(--spacing-xs);background-color:var(--color-accent);border:2px solid var(--color-primary);width:12px;height:12px;box-shadow:var(--shadow-sm);border-radius:50%;position:absolute}.timeline-content{background-color:var(--color-primary);border:1px solid var(--color-border);border-radius:var(--radius-md);padding:var(--spacing-md);box-shadow:var(--shadow-sm)}.timeline-header{justify-content:space-between;align-items:flex-start;gap:var(--spacing-md);display:flex}.timeline-info{gap:var(--spacing-xs);flex-direction:column;display:flex}.timeline-date{font-size:var(--font-size-small);color:var(--color-text-secondary)}.timeline-title{font-size:var(--font-size-medium);font-weight:var(--font-weight-semibold);color:var(--color-secondary);margin:0}.timeline-subtitle{font-size:var(--font-size-small);color:var(--color-text-secondary)}.timeline-actions{gap:var(--spacing-xs);display:flex}.timeline-body{margin-top:var(--spacing-md);padding-top:var(--spacing-md);border-top:1px solid var(--color-border);font-size:var(--font-size-small);color:var(--color-text);white-space:pre-wrap}@media (width<=480px){.timeline-header{flex-direction:column}.timeline-actions{margin-top:var(--spacing-sm)}}.patient-history-read-view{gap:var(--spacing-sm);flex-direction:column;display:flex}.read-section{border:1px solid var(--color-border-light);border-radius:var(--radius-md);overflow:hidden}.read-section--empty{opacity:.65}.read-section__header{width:100%;padding:var(--spacing-sm) var(--spacing-md);background-color:var(--color-surface);cursor:pointer;transition:background-color var(--transition-fast);border:none;justify-content:space-between;align-items:center;display:flex}.read-section__header:hover{background-color:var(--color-surface-hover)}.read-section__title{font-weight:var(--font-weight-semibold);font-size:var(--font-size-small);color:var(--color-secondary)}.read-section__empty-badge{font-size:var(--font-size-xs);padding:2px var(--spacing-sm);border-radius:var(--radius-sm);background-color:var(--color-border-light);color:var(--color-text-muted);margin-left:auto;margin-right:var(--spacing-sm)}.read-section__chevron{font-size:var(--font-size-xs);color:var(--color-text-muted);flex-shrink:0}.read-section__body{padding:var(--spacing-md);gap:var(--spacing-sm) var(--spacing-lg);grid-template-columns:repeat(auto-fill,minmax(260px,1fr));margin:0;display:grid}.read-field{flex-direction:column;gap:2px;display:flex}.read-field--full{grid-column:1/-1}.read-field__label{font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold);color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.03em}.read-field__value{font-size:var(--font-size-small);color:var(--color-text-strong);line-height:var(--line-height-relaxed);white-space:pre-wrap;word-break:break-word;margin:0}.read-zones{gap:var(--spacing-lg);flex-wrap:wrap;display:flex}.read-zone{min-width:var(--min-width-card);flex-direction:column;flex:1;align-items:center;display:flex}.read-zone__title{margin:0 0 var(--spacing-sm);font-size:var(--font-size-small);font-weight:var(--font-weight-semibold);color:var(--color-secondary)}.read-zone__notes{margin:var(--spacing-sm) 0 0;font-size:var(--font-size-small);color:var(--color-text);background:var(--color-surface);padding:var(--spacing-sm) var(--spacing-sm);border-radius:var(--radius-sm);white-space:pre-wrap;width:100%}@media (width<=640px){.read-section__body{grid-template-columns:1fr}.read-zones{flex-direction:column}}.record-annotations-readonly{margin-top:var(--spacing-sm)}.record-annotations-toggle{font-size:var(--font-size-xs);color:var(--color-accent);cursor:pointer;background:0 0;border:none;padding:0;text-decoration:underline}.record-annotations-toggle:hover{opacity:.75}.record-annotations-grid{gap:var(--spacing-md);margin-top:var(--spacing-sm);flex-wrap:wrap;display:flex}.record-annotation-zone{flex-direction:column;align-items:center;display:flex}.record-annotation-zone__title{margin:0 0 var(--spacing-xs);font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold);color:var(--color-secondary)}@media (width<=640px){.record-annotations-grid{flex-direction:column}}.patient-records-page{background-color:var(--color-background);flex-direction:column;min-height:100vh;display:flex}.patient-records-content{padding:var(--spacing-xl);max-width:var(--max-width-content);flex:1;width:100%;margin:0 auto}.patient-name{font-size:var(--font-size-large);color:var(--color-secondary);text-align:center;flex:1;margin:0}.records-summary{background-color:var(--color-primary);border-radius:var(--radius-lg);padding:var(--spacing-xl);margin-bottom:var(--spacing-xl);box-shadow:var(--shadow-sm);border:1px solid var(--color-border)}.records-summary h3{margin-top:0;margin-bottom:var(--spacing-lg);font-size:var(--font-size-medium);color:var(--color-secondary)}.summary-cards{grid-template-columns:repeat(auto-fit, minmax(var(--min-width-card), 1fr));gap:var(--spacing-md);margin-bottom:var(--spacing-md);display:grid}.summary-card{background-color:var(--color-background);border:2px solid var(--color-border);border-radius:var(--radius-md);padding:var(--spacing-lg);cursor:pointer;transition:all var(--transition-base);text-align:center}.summary-card:hover{border-color:var(--color-accent);box-shadow:var(--shadow-md);transform:translateY(-2px)}.summary-card.active{border-color:var(--color-accent);background-color:rgba(var(--color-accent-rgb), .1)}.summary-count{font-size:var(--font-size-large);font-weight:var(--font-weight-semibold);color:var(--color-accent);margin-bottom:var(--spacing-xs)}.summary-label{font-size:var(--font-size-medium);color:var(--color-text);font-weight:var(--font-weight-medium);margin-bottom:var(--spacing-xs)}.summary-date{font-size:var(--font-size-small);color:var(--color-text-secondary)}.clear-filter{color:var(--color-accent);padding:var(--spacing-sm);font-size:var(--font-size-small);cursor:pointer;background-color:#0000;border:none;text-decoration:underline}.clear-filter:hover{opacity:.8;box-shadow:none;transform:none}.records-timeline{background-color:var(--color-primary);border-radius:var(--radius-lg);padding:var(--spacing-xl);box-shadow:var(--shadow-sm);border:1px solid var(--color-border)}.timeline{position:relative}.timeline-item{gap:var(--spacing-lg);margin-bottom:var(--spacing-xl);display:flex;position:relative}.timeline-item:last-child{margin-bottom:0}.timeline-item:not(:last-child):after{content:"";background-color:var(--color-border);width:2px;position:absolute;top:40px;bottom:-32px;left:17px}.timeline-marker{flex-shrink:0;width:36px;height:36px;position:relative}.timeline-dot{border:3px solid var(--color-border);background-color:var(--color-primary);width:36px;height:36px;z-index:var(--z-index-base);border-radius:50%;position:relative}.timeline-dot.consultation{border-color:var(--color-status-scheduled-text);background-color:var(--color-status-scheduled-bg)}.timeline-dot.treatment{border-color:var(--color-success);background-color:var(--color-status-active-bg)}.timeline-dot.note{border-color:var(--color-warning);background-color:var(--color-warning-bg)}.timeline-dot.procedure{border-color:var(--color-status-completed-text);background-color:var(--color-status-completed-bg)}.timeline-content{background-color:var(--color-background);border-radius:var(--radius-md);padding:var(--spacing-lg);border:1px solid var(--color-border);flex:1}.record-header{margin-bottom:var(--spacing-md);justify-content:space-between;align-items:flex-start;gap:var(--spacing-md);display:flex}.record-type-badge{padding:var(--spacing-xs) var(--spacing-md);border-radius:var(--radius-lg);font-size:var(--font-size-small);font-weight:var(--font-weight-medium);margin-bottom:var(--spacing-xs);display:inline-block}.record-type-badge.consultation{background-color:var(--color-status-scheduled-bg);color:var(--color-status-scheduled-text)}.record-type-badge.treatment{background-color:var(--color-status-confirmed-bg);color:var(--color-status-confirmed-text)}.record-type-badge.note{background-color:var(--color-warning-bg);color:var(--color-warning)}.record-type-badge.procedure{background-color:var(--color-status-completed-bg);color:var(--color-status-completed-text)}.record-title{font-size:var(--font-size-medium);color:var(--color-secondary);font-weight:var(--font-weight-medium);margin:0}.record-date{font-size:var(--font-size-small);color:var(--color-text-secondary);white-space:nowrap}.record-data{margin-bottom:var(--spacing-md);padding:var(--spacing-md);background-color:var(--color-primary);border-radius:var(--radius-sm);border-left:3px solid var(--color-accent)}.data-item{font-size:var(--font-size-small);color:var(--color-text);margin-bottom:var(--spacing-xs);line-height:var(--line-height-loose)}.data-item:last-child{margin-bottom:0}.data-item strong{color:var(--color-text-secondary);text-transform:capitalize}.record-attachments{font-size:var(--font-size-small);color:var(--color-text-secondary);margin-bottom:var(--spacing-sm);padding:var(--spacing-sm);background-color:var(--color-primary);border-radius:var(--radius-sm);border:1px dashed var(--color-border)}.attachments-toggle{font-size:var(--font-size-small);color:var(--color-accent);cursor:pointer;margin-bottom:var(--spacing-xs);background:0 0;border:none;padding:0;text-decoration:underline;display:block}.attachments-toggle:hover{opacity:.75}.attachments-loading,.attachments-empty{font-size:var(--font-size-small);color:var(--color-text-muted);margin-top:var(--spacing-xs);font-style:italic;display:block}.attachments-groups{gap:var(--spacing-md);margin-top:var(--spacing-sm);flex-direction:column;display:flex}.attachments-group-title{margin:0 0 var(--spacing-sm);font-size:var(--font-size-small);font-weight:var(--font-weight-semibold);color:var(--color-text)}.attachments-image-grid{gap:var(--spacing-sm);flex-wrap:wrap;display:flex}.attachment-image-card{align-items:center;gap:var(--spacing-xs);flex-direction:column;width:110px;display:flex}.attachment-thumb{object-fit:cover;border-radius:var(--radius-sm);border:1px solid var(--color-border);background-color:var(--color-background);width:110px;height:90px}.attachments-doc-list{gap:var(--spacing-xs);flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.attachment-doc-item{align-items:center;gap:var(--spacing-xs);font-size:var(--font-size-small);display:flex}.attachment-doc-icon{flex-shrink:0}.attachment-file-name{font-size:var(--font-size-small);color:var(--color-text-muted);text-align:center;word-break:break-all;max-width:110px}.attachment-doc-item .attachment-file-name{text-align:left;flex:1;max-width:none}.attachment-detail-btn{font-size:var(--font-size-small);color:var(--color-accent);border:1px solid var(--color-accent);border-radius:var(--radius-sm);padding:2px var(--spacing-sm);white-space:nowrap;transition:background-color var(--transition-fast), color var(--transition-fast);text-decoration:none;display:inline-block}.attachment-detail-btn:hover{background-color:var(--color-accent);color:var(--color-primary)}.record-footer{padding-top:var(--spacing-sm);border-top:1px solid var(--color-border)}.record-author{font-size:var(--font-size-small);color:var(--color-text-secondary);font-style:italic}.history-record-card{background-color:var(--color-primary);border-radius:var(--radius-lg);border:2px solid var(--color-accent);padding:var(--spacing-lg);margin-bottom:var(--spacing-xl);box-shadow:var(--shadow-sm)}.history-record-header{justify-content:space-between;align-items:flex-start;gap:var(--spacing-md);flex-wrap:wrap;display:flex}.history-record-info{gap:var(--spacing-xs);flex-direction:column;display:flex}.history-record-title{font-size:var(--font-size-medium);font-weight:var(--font-weight-semibold);color:var(--color-secondary);margin:0}.history-record-subtitle{font-size:var(--font-size-small);color:var(--color-text-secondary)}.history-record-actions{gap:var(--spacing-sm);flex-shrink:0;display:flex}.history-toggle-btn{margin-top:var(--spacing-md);font-size:var(--font-size-small);color:var(--color-accent);cursor:pointer;background:0 0;border:none;padding:0;text-decoration:underline;display:block}.history-toggle-btn:hover{opacity:.75}.history-record-body{margin-top:var(--spacing-lg);padding-top:var(--spacing-lg);border-top:1px solid var(--color-border)}@media (width<=768px){.patient-records-content{padding:var(--spacing-lg)}.summary-cards{grid-template-columns:repeat(auto-fit,minmax(140px,1fr))}}@media (width<=640px){.action-bar{flex-direction:column;align-items:stretch}.patient-name{text-align:left;font-size:var(--font-size-medium)}.action-bar button{width:100%}.record-header{flex-direction:column}.timeline-item{gap:var(--spacing-md)}.timeline-marker,.timeline-dot{width:24px;height:24px}.timeline-item:not(:last-child):after{left:11px}}@media (width<=480px){.patient-records-content,.records-summary,.records-timeline,.timeline-content{padding:var(--spacing-md)}}.form-label{font-size:var(--font-size-small);font-weight:var(--font-weight-medium);color:var(--color-text)}.required-indicator{color:var(--color-error);margin-left:var(--spacing-xs)}.form-input{font-family:var(--font-family);font-size:var(--font-size-medium);padding:var(--spacing-sm) var(--spacing-md);border:1px solid var(--color-border);border-radius:var(--radius-sm);background-color:var(--color-primary);transition:border-color var(--transition-fast);width:100%}.form-input:focus{border-color:var(--color-accent);outline:none}.form-input:disabled{background-color:var(--color-background);opacity:.7;cursor:not-allowed}.form-input.has-error,.form-input.has-error:focus{border-color:var(--color-error)}select.form-input{cursor:pointer;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath fill='%23333' d='M6 8L1 3h10z'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right var(--spacing-md) center;padding-right:calc(var(--spacing-md) * 2 + 12px)}textarea.form-input{resize:vertical;min-height:100px}.form-field--checkbox{align-items:center;gap:var(--spacing-sm);padding-bottom:var(--spacing-sm);flex-flow:wrap}.form-field--checkbox .form-label{cursor:pointer;order:0;margin:0}.form-checkbox{cursor:pointer;width:18px;height:18px;accent-color:var(--color-accent);order:1}.form-field-description{font-size:var(--font-size-small);color:var(--color-text-light);order:2}.patient-record-form-page{background-color:var(--color-background);flex-direction:column;min-height:100vh;display:flex}.patient-record-form-content{padding:var(--spacing-xl);max-width:var(--max-width-content);flex:1;width:100%;margin:0 auto}.patient-record-form{gap:var(--spacing-lg);flex-direction:column;display:flex}.record-form-grid{gap:var(--spacing-lg);background-color:var(--color-primary);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:var(--spacing-lg);grid-template-columns:1fr 1fr;align-items:start;display:grid}.record-form-cell{flex-direction:column;min-width:0;display:flex}.record-form-title{font-size:var(--font-size-large);font-weight:var(--font-weight-semibold);color:var(--color-secondary);margin:0}.record-date-row{align-items:center;gap:var(--spacing-sm);padding:var(--spacing-sm) 0;font-size:var(--font-size-medium);color:var(--color-text-muted);justify-content:flex-end;display:flex}.record-date-label{font-weight:var(--font-weight-semibold);color:var(--color-text)}.record-date-value{color:var(--color-text-muted)}.file-selection{margin-top:var(--spacing-xs)}.file-list{margin:0 0 var(--spacing-xs);padding:0 0 0 var(--spacing-lg);font-size:var(--font-size-small);color:var(--color-text-muted);list-style:outside}.file-list li{margin-bottom:2px}.file-clear-btn{font-size:var(--font-size-small);color:var(--color-error);cursor:pointer;background:0 0;border:none;padding:0;text-decoration:underline}.file-clear-btn:hover{opacity:.75}.file-clear-btn:disabled{opacity:.4;cursor:not-allowed}@media (width<=768px){.patient-record-form-content{padding:var(--spacing-lg)}}@media (width<=640px){.record-form-grid{grid-template-columns:1fr}.record-date-row{justify-content:flex-start}.form-actions{flex-direction:column-reverse}.form-actions button{width:100%}}@media (width<=480px){.patient-record-form-content{padding:var(--spacing-md)}}.calendar-toolbar{padding:var(--spacing-md);background:var(--color-primary);border:1px solid var(--color-border);border-radius:var(--radius-lg);margin-bottom:var(--spacing-md);justify-content:space-between;align-items:center;gap:var(--spacing-md);flex-wrap:wrap;display:flex}.toolbar-nav{align-items:center;gap:var(--spacing-xs);display:flex}.toolbar-btn{background:var(--color-primary);border:1px solid var(--color-border);border-radius:var(--radius-md);padding:var(--spacing-sm) var(--spacing-md);font-size:var(--font-size-base);cursor:pointer;color:var(--color-text);transition:all var(--transition-fast);font-weight:var(--font-weight-medium)}.toolbar-btn:hover{background:var(--color-background);border-color:var(--color-accent);box-shadow:none;transform:none}.nav-btn{padding:var(--spacing-sm) var(--spacing-md);font-size:var(--font-size-body)}.today-btn{color:var(--color-accent);font-weight:var(--font-weight-semibold)}.toolbar-date-label{font-size:var(--font-size-medium);font-weight:var(--font-weight-semibold);color:var(--color-text);text-transform:capitalize;text-align:center;flex:1;margin:0}.toolbar-views{border:1px solid var(--color-border);border-radius:var(--radius-md);display:flex;overflow:hidden}.view-btn{border:none;border-right:1px solid var(--color-border);padding:var(--spacing-sm) var(--spacing-md);border-radius:0}.view-btn:last-child{border-right:none}.view-btn.active{background-color:var(--color-accent);color:var(--color-primary);border-color:var(--color-accent)}.view-btn.active:hover{background-color:var(--color-accent);opacity:.9}.calendar-sync-btn{padding:var(--spacing-sm);color:var(--color-text-secondary);justify-content:center;align-items:center;text-decoration:none;display:flex;position:relative}.calendar-sync-btn:hover{color:var(--color-accent)}.calendar-sync-btn.connected{color:var(--color-text)}.calendar-sync-btn.syncing svg{animation:.8s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.connected-dot{background:var(--color-success,#22c55e);border:2px solid var(--color-primary);border-radius:50%;width:8px;height:8px;position:absolute;top:4px;right:2px}@media (width>=641px) and (width<=1024px){.calendar-toolbar{gap:var(--spacing-xs) var(--spacing-md);grid-template-rows:auto auto;grid-template-columns:auto 1fr;align-items:center;display:grid}.toolbar-nav{grid-area:1/1}.toolbar-date-label{text-align:right;grid-area:1/2}.toolbar-views{grid-area:2/1/auto/-1;width:100%}.view-btn{text-align:center;flex:1}}@media (width<=640px){.calendar-toolbar{gap:var(--spacing-xs);padding:var(--spacing-sm) var(--spacing-md);grid-template-rows:auto auto;grid-template-columns:1fr auto;align-items:center;display:grid}.toolbar-date-label{text-align:left;font-size:var(--font-size-body);grid-area:1/1;margin:0}.toolbar-nav{grid-area:1/2;justify-content:flex-end}.toolbar-views{grid-area:2/1/auto/-1;width:100%}.view-btn{text-align:center;flex:1}.toolbar-btn{justify-content:center;align-items:center;min-width:44px;min-height:44px;display:flex}.nav-btn{padding:var(--spacing-sm)}}.calendar-event{cursor:pointer;border-radius:var(--radius-sm);transition:box-shadow var(--transition-fast);line-height:var(--line-height-snug);overflow:hidden}@media (hover:hover){.calendar-event:hover{box-shadow:var(--shadow-md)}}.calendar-event-month{align-items:center;gap:var(--spacing-xs);padding:2px var(--spacing-xs);font-size:var(--font-size-small);white-space:nowrap;text-overflow:ellipsis;border-left:3px solid #0000;margin-bottom:2px;display:flex;overflow:hidden}.calendar-event-month .event-time{font-weight:var(--font-weight-semibold);flex-shrink:0}.calendar-event-month .event-title{text-overflow:ellipsis;overflow:hidden}.calendar-event-day{left:var(--spacing-xs);right:var(--spacing-xs);padding:var(--spacing-xs) var(--spacing-sm);font-size:var(--font-size-small);z-index:var(--z-index-base);border-left:3px solid #0000;position:absolute}.calendar-event-week{padding:2px var(--spacing-xs);font-size:var(--font-size-xs);z-index:var(--z-index-base);border-left:3px solid #0000;position:absolute;left:2px;right:2px}.calendar-event-day .event-time,.calendar-event-week .event-time{font-weight:var(--font-weight-semibold);white-space:nowrap}.calendar-event-day .event-title,.calendar-event-week .event-title{font-weight:var(--font-weight-medium);white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.calendar-event-day .event-patient,.calendar-event-week .event-patient{font-size:var(--font-size-xs);opacity:.85;white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.event-compact{padding:0 var(--spacing-xs);align-items:center;display:flex}.event-inline{white-space:nowrap;text-overflow:ellipsis;font-size:var(--font-size-xs);font-weight:var(--font-weight-medium);line-height:var(--line-height-compact);overflow:hidden}.event-own{background-color:var(--color-event-own-bg);border-left-color:var(--color-event-own-border);color:var(--color-event-own-border)}.event-other{background-color:var(--color-event-other-bg);border-left-color:var(--color-event-other-border);color:var(--color-event-other-border)}.event-cancelled{opacity:.55}.event-cancelled .event-title,.event-cancelled .event-patient{text-decoration:line-through}.calendar-event[draggable=true]{cursor:grab}.calendar-event[draggable=true]:active{cursor:grabbing}.calendar-event.dragging{opacity:.4;border:2px dashed var(--color-accent)}.event-redacted{background-color:var(--color-bg-tertiary);border-left-color:var(--color-text-tertiary);color:var(--color-text-tertiary);cursor:default;opacity:.6}.event-redacted:hover{box-shadow:none}.external-event{cursor:default;border-radius:var(--radius-sm);line-height:var(--line-height-snug);background-color:var(--color-bg-tertiary);border-left:3px solid var(--color-text-tertiary);color:var(--color-text-tertiary);opacity:.75;overflow:hidden}.external-event-month{padding:2px var(--spacing-xs);font-size:var(--font-size-small);white-space:nowrap;text-overflow:ellipsis;align-items:center;margin-bottom:2px;display:flex;overflow:hidden}.external-event-day{left:var(--spacing-xs);right:var(--spacing-xs);padding:var(--spacing-xs) var(--spacing-sm);font-size:var(--font-size-small);z-index:var(--z-index-base);position:absolute}.external-event-week{padding:2px var(--spacing-xs);font-size:var(--font-size-xs);z-index:var(--z-index-base);position:absolute;left:2px;right:2px}.external-event-time{font-weight:var(--font-weight-semibold);white-space:nowrap}.external-event-label{font-size:var(--font-size-xs);white-space:nowrap;text-overflow:ellipsis;font-style:italic;overflow:hidden}.external-event-compact{padding:0 var(--spacing-xs);align-items:center;display:flex}.external-event-inline{white-space:nowrap;text-overflow:ellipsis;font-size:var(--font-size-xs);font-style:italic;line-height:var(--line-height-compact);overflow:hidden}.day-view{background:var(--color-primary);border-radius:var(--radius-lg);overflow:hidden}.time-grid{position:relative}.time-slot{border-bottom:1px solid var(--color-border);cursor:pointer;transition:background-color var(--transition-fast);display:flex}@media (hover:hover){.time-slot:hover{background-color:var(--color-background)}}.time-slot-blocked{background-color:var(--color-calendar-blocked);cursor:not-allowed;background-image:repeating-linear-gradient(45deg, transparent, transparent 8px, var(--color-calendar-blocked-stripe) 8px, var(--color-calendar-blocked-stripe) 16px)}.time-slot-blocked:hover{background-color:var(--color-calendar-blocked)}.time-label{width:70px;min-width:70px;padding:var(--spacing-xs) var(--spacing-md);font-size:var(--font-size-small);color:var(--color-text-secondary);border-right:1px solid var(--color-border);text-align:right}.slot-content{flex:1;position:relative}.events-container{pointer-events:none;position:absolute;inset:0 0 0 70px}.events-container .calendar-event{pointer-events:auto}.time-slot.drag-over{background-color:rgba(var(--color-accent-rgb), .15);outline:2px dashed var(--color-accent);outline-offset:-2px}@media (width<=640px){.time-label{width:50px;min-width:50px;padding:var(--spacing-xs) var(--spacing-sm);font-size:var(--font-size-xs)}.events-container{left:50px}}@media (width<=480px){.time-label{width:40px;min-width:40px;padding:var(--spacing-xs);font-size:var(--font-size-2xs)}.events-container{left:40px}}.week-view{background:var(--color-primary);border-radius:var(--radius-lg);border:1px solid var(--color-border);overflow:hidden}.week-header{border-bottom:2px solid var(--color-border);background:var(--color-background);z-index:2;display:flex;position:sticky;top:0}.week-time-spacer{width:70px;min-width:70px}.week-day-header{text-align:center;padding:var(--spacing-sm) var(--spacing-xs);font-size:var(--font-size-small);font-weight:var(--font-weight-semibold);color:var(--color-text);border-left:1px solid var(--color-border);flex:1}.week-day-header.today{color:var(--color-accent);background-color:rgba(var(--color-accent-rgb), .05)}.week-grid{position:relative}.week-row{border-bottom:1px solid var(--color-border);display:flex}.week-time-label{width:70px;min-width:70px;padding:var(--spacing-xs) var(--spacing-md);font-size:var(--font-size-small);color:var(--color-text-secondary);border-right:1px solid var(--color-border);text-align:right}.week-cell{border-left:1px solid var(--color-border);cursor:pointer;transition:background-color var(--transition-fast);flex:1}@media (hover:hover){.week-cell:hover{background-color:var(--color-background)}}.week-cell.today{background-color:rgba(var(--color-accent-rgb), .03)}.week-cell.blocked{background-color:var(--color-calendar-blocked);cursor:not-allowed;background-image:repeating-linear-gradient(45deg, transparent, transparent 8px, var(--color-calendar-blocked-stripe) 8px, var(--color-calendar-blocked-stripe) 16px)}.week-events-layer{pointer-events:none;display:flex;position:absolute;inset:0}.week-day-events{border-left:1px solid #0000;flex:1;position:relative}.week-day-events .calendar-event{pointer-events:auto}.week-cell.drag-over{background-color:rgba(var(--color-accent-rgb), .15);outline:2px dashed var(--color-accent);outline-offset:-2px}@media (width>=641px) and (width<=1024px){.week-time-spacer,.week-time-label{width:56px;min-width:56px;padding:var(--spacing-xs) var(--spacing-sm);font-size:var(--font-size-xs)}}@media (width<=640px){.week-view{-webkit-overflow-scrolling:touch;overflow-x:auto}.week-header,.week-grid,.week-events-layer{min-width:650px}.week-day-header,.week-cell,.week-day-events{min-width:120px}.week-time-spacer,.week-time-label{width:50px;min-width:50px;padding:var(--spacing-xs) var(--spacing-sm);font-size:var(--font-size-xs)}}@media (width<=480px){.week-time-spacer,.week-time-label{width:40px;min-width:40px;padding:var(--spacing-xs);font-size:var(--font-size-2xs)}}.month-view{background:var(--color-primary);border-radius:var(--radius-lg);border:1px solid var(--color-border);flex-direction:column;width:100%;display:flex;overflow:hidden}.month-header{background:var(--color-background);border-bottom:2px solid var(--color-border);grid-template-columns:repeat(7,1fr);display:grid}.month-day-label{text-align:center;padding:var(--spacing-sm) var(--spacing-xs);font-size:var(--font-size-small);font-weight:var(--font-weight-semibold);color:var(--color-text)}.month-grid{flex-direction:column;flex:1;width:100%;display:flex}.month-week{border-bottom:1px solid var(--color-border);box-sizing:border-box;flex:1;grid-template-columns:repeat(7,minmax(0,1fr));width:100%;display:grid}.month-week:last-child{border-bottom:none}.month-cell{min-height:60px;padding:var(--spacing-xs);border-left:1px solid var(--color-border);cursor:pointer;box-sizing:border-box;flex-direction:column;display:flex}.month-cell:first-child{border-left:none}.month-cell.other-month{background-color:var(--color-background);opacity:.5}.month-cell.today{background-color:rgba(var(--color-accent-rgb), .05)}.month-day-number{font-size:var(--font-size-base);font-weight:var(--font-weight-medium);padding:2px var(--spacing-sm);cursor:pointer;width:28px;height:28px;transition:background-color var(--transition-fast);border-radius:50%;justify-content:center;align-items:center;margin-bottom:2px;display:flex}.month-day-number:hover{background-color:var(--color-background)}.month-cell.today .month-day-number{background-color:var(--color-accent);color:var(--color-primary)}.month-events{flex-direction:column;flex:1;gap:1px;display:flex;overflow:hidden}.month-more{font-size:var(--font-size-xs);color:var(--color-accent);background-color:var(--color-accent-light);border-radius:var(--radius-sm);padding:2px var(--spacing-sm);cursor:pointer;font-weight:var(--font-weight-semibold);transition:background-color var(--transition-fast);align-self:flex-start;display:inline-block}@media (hover:hover){.month-more:hover{background-color:var(--color-accent);color:var(--color-primary)}}.month-dots{justify-content:center;gap:3px;padding-top:2px;display:none}@media (width<=640px){.month-cell{min-height:60px;padding:2px}.month-day-number{font-size:var(--font-size-xs);width:32px;min-width:32px;height:32px;min-height:32px}.month-events .calendar-event-month,.month-events .external-event-month{display:none}.month-events{align-items:center}.month-dots{justify-content:center;align-items:center;padding-top:2px;display:flex}.month-cell:active{background-color:rgba(var(--color-accent-rgb), .08)}}.month-cell.non-workable{background-color:var(--color-calendar-blocked);cursor:not-allowed;background-image:repeating-linear-gradient(45deg, transparent, transparent 8px, var(--color-calendar-blocked-stripe) 8px, var(--color-calendar-blocked-stripe) 16px)}.month-cell.non-workable .month-day-number,.month-day-label.non-workable{color:var(--color-text-muted)}.month-cell.drag-over{background-color:rgba(var(--color-accent-rgb), .15);outline:2px dashed var(--color-accent);outline-offset:-2px}.month-count-badge{font-size:var(--font-size-xs);font-weight:var(--font-weight-bold);color:var(--color-primary);background-color:var(--color-accent);text-align:center;min-width:20px;line-height:var(--line-height-relaxed);border-radius:10px;padding:1px 6px;display:none}@media (width<=640px){.month-count-badge{display:inline-block}}.calendar-view{flex-direction:column;flex:1;width:100%;min-height:0;display:flex;overflow:hidden}.calendar-connect-banner{align-items:center;gap:var(--spacing-sm);padding:var(--spacing-sm) var(--spacing-md);background:var(--color-accent-light);border:1px solid var(--color-accent);border-radius:var(--radius-md);margin-bottom:var(--spacing-md);color:var(--color-text);display:flex}.calendar-connect-link{align-items:center;gap:var(--spacing-md);text-align:left;cursor:pointer;color:var(--color-text);transition:opacity var(--transition-fast);background:0 0;border:none;flex:1;padding:0;font-family:inherit;display:flex}.calendar-connect-link:hover{opacity:.85}.calendar-connect-text{font-size:var(--font-size-base);line-height:var(--line-height-normal)}.calendar-connect-cta{font-size:var(--font-size-small);font-weight:var(--font-weight-semibold);color:var(--color-accent);padding:var(--spacing-sm) var(--spacing-md);border:1px solid var(--color-accent);border-radius:var(--radius-md);background:var(--color-primary);white-space:pre-line;text-align:center;flex-shrink:0}.calendar-connect-link:hover .calendar-connect-cta{background:var(--color-accent);color:var(--color-primary)}.calendar-connect-dismiss{color:var(--color-text-muted);font-size:var(--font-size-medium);cursor:pointer;padding:var(--spacing-xs);line-height:var(--line-height-compact);background:0 0;border:none;flex-shrink:0}@media (width<=640px){.calendar-connect-banner{padding:var(--spacing-xs) var(--spacing-md)}.calendar-connect-text{font-size:var(--font-size-small);flex:1}.calendar-connect-cta{padding:var(--spacing-xs) var(--spacing-sm);font-size:var(--font-size-xs)}}.calendar-body{flex-direction:column;flex:1;min-height:0;display:flex;overflow:hidden auto}.calendar-body .month-view{flex:1;min-height:0}@media (width<=640px){.calendar-body .month-view{flex:none}}.calendar-body .day-view,.calendar-body .week-view{flex:1;min-height:0;overflow-y:auto}.calendar-body ::-webkit-scrollbar{width:6px}.calendar-body ::-webkit-scrollbar-track{background:0 0}.calendar-body ::-webkit-scrollbar-thumb{background:var(--color-border);border-radius:3px}.calendar-body ::-webkit-scrollbar-thumb:hover{background:var(--color-text-secondary)}.calendar-body .day-view,.calendar-body .week-view{scrollbar-width:thin;scrollbar-color:var(--color-border) transparent}.calendar-body>*{animation:.15s calendarFadeIn}@keyframes calendarFadeIn{0%{opacity:0}to{opacity:1}}.appointments-page{flex-direction:column;height:100dvh;display:flex;overflow:hidden}.appointments-content{min-height:0;padding:var(--spacing-xl);max-width:var(--max-width-page);flex-direction:column;flex:1;width:100%;margin:0 auto;display:flex;overflow-y:auto}.filters-section{background-color:var(--color-primary);padding:var(--spacing-lg);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);margin-bottom:var(--spacing-xl);gap:var(--spacing-md);grid-template-columns:repeat(auto-fit,minmax(200px,1fr));display:grid}.filter-group{gap:var(--spacing-xs);flex-direction:column;display:flex}.filter-group label{font-size:var(--font-size-small);font-weight:var(--font-weight-medium);color:var(--color-text);text-transform:uppercase;letter-spacing:var(--letter-spacing-label)}.filter-group input[type=date],.filter-group select{padding:var(--spacing-sm) var(--spacing-md);border:1px solid var(--color-border);border-radius:var(--radius-md);font-size:var(--font-size-medium);background-color:var(--color-primary);cursor:pointer;transition:border-color var(--transition-fast)}.filter-group input[type=date]:focus,.filter-group select:focus{border-color:var(--color-accent);outline:none}.appointments-list{background-color:var(--color-primary);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);margin-bottom:var(--spacing-xl);overflow:hidden}.appointments-table{border-collapse:collapse;width:100%}.appointments-table thead{background-color:var(--color-background)}.appointments-table th{text-align:left;padding:var(--spacing-md) var(--spacing-lg);font-weight:var(--font-weight-semibold);color:var(--color-text);font-size:var(--font-size-small);text-transform:uppercase;letter-spacing:var(--letter-spacing-label);border-bottom:2px solid var(--color-border)}.appointments-table tbody tr{border-bottom:1px solid var(--color-border);transition:background-color var(--transition-fast)}.appointments-table tbody tr:hover{background-color:var(--color-background)}.appointments-table td{padding:var(--spacing-md) var(--spacing-lg);font-size:var(--font-size-medium)}.appointments-table td.actions{gap:var(--spacing-sm);align-items:center;display:flex}.patient-link{color:var(--color-accent);font-weight:var(--font-weight-medium);transition:opacity var(--transition-fast);text-decoration:none}.status-badge{padding:var(--spacing-xs) var(--spacing-md);border-radius:var(--radius-lg);font-size:var(--font-size-small);font-weight:var(--font-weight-medium);text-align:center;white-space:nowrap;display:inline-block}.type-badge{padding:var(--spacing-xs) var(--spacing-md);border-radius:var(--radius-lg);font-size:var(--font-size-small);font-weight:var(--font-weight-medium);text-align:center;white-space:nowrap;display:inline-block}.page-info{color:var(--color-text-secondary);font-size:var(--font-size-medium)}.view-mode-toggle{border:1px solid var(--color-border);border-radius:var(--radius-md);display:flex;overflow:hidden}.view-mode-toggle .toggle-btn{padding:var(--spacing-sm) var(--spacing-md);font-size:var(--font-size-base);font-weight:var(--font-weight-medium);border:none;border-right:1px solid var(--color-border);background:var(--color-primary);color:var(--color-text);cursor:pointer;transition:background-color var(--transition-fast), color var(--transition-fast);border-radius:0}.view-mode-toggle .toggle-btn:last-child{border-right:none}.view-mode-toggle .toggle-btn:hover{background:var(--color-background);box-shadow:none;transform:none}.view-mode-toggle .toggle-btn.active{background:var(--color-accent);color:#fff}.view-mode-toggle .toggle-btn.active:hover{opacity:.9}.appointments-action-row{gap:var(--spacing-sm);display:flex}@media (width>=641px) and (width<=1024px){.appointments-page .header-actions{flex-direction:column;align-items:stretch}.appointments-page .view-mode-toggle{width:100%}.appointments-page .view-mode-toggle .toggle-btn,.appointments-action-row .btn{flex:1}}@media (width<=640px){.view-mode-toggle{width:100%}.view-mode-toggle .toggle-btn{flex:1}.appointments-action-row{flex-direction:column;align-items:stretch}.appointments-action-row .btn{width:100%}.appointments-blocked-btn{display:none}}@media (width<=768px){.appointments-content{padding:var(--spacing-lg)}.appointments-table th,.appointments-table td{padding:var(--spacing-sm) var(--spacing-md);font-size:var(--font-size-small)}}@media (width<=640px){.filters-section{grid-template-columns:1fr}.pagination{gap:var(--spacing-sm);flex-direction:column}}@media (width<=480px){.appointments-content{padding:var(--spacing-md)}}@media (width<=640px){.appointments-table-wrapper table thead{display:none}.appointments-table-wrapper table,.appointments-table-wrapper tbody,.appointments-table-wrapper tr{width:100%;display:block}.appointments-table-wrapper tr{background:var(--color-primary);border:1px solid var(--color-border);border-radius:var(--radius-md);margin-bottom:var(--spacing-sm);padding:var(--spacing-md);gap:var(--spacing-xs) var(--spacing-sm);grid-template-columns:1fr auto;display:grid}.appointments-table-wrapper td{font-size:var(--font-size-base);border:none;padding:2px 0;display:block}}.autocomplete,.autocomplete-input-wrapper{width:100%;position:relative}.autocomplete-loading{right:var(--spacing-md);pointer-events:none;position:absolute;top:50%;transform:translateY(-50%)}.spinner{border:2px solid var(--color-border);border-top-color:var(--color-accent);border-radius:50%;width:16px;height:16px;animation:.6s linear infinite spin}.autocomplete-dropdown{top:calc(100% + var(--spacing-xs));background-color:var(--color-primary);border:1px solid var(--color-border);border-radius:var(--radius-sm);max-height:300px;box-shadow:var(--shadow-md);z-index:var(--z-index-modal);margin:0;padding:0;list-style:none;position:absolute;left:0;right:0;overflow-y:auto}.autocomplete-item{padding:var(--spacing-sm) var(--spacing-md);cursor:pointer;transition:background-color var(--transition-fast);border-bottom:1px solid var(--color-border)}.autocomplete-item:last-child{border-bottom:none}.autocomplete-item:hover,.autocomplete-item.highlighted{background-color:var(--color-background)}.autocomplete-item-title{font-size:var(--font-size-medium);font-weight:var(--font-weight-medium);color:var(--color-text);margin-bottom:var(--spacing-xs)}.autocomplete-item-details{gap:var(--spacing-md);font-size:var(--font-size-small);color:var(--color-text-secondary);display:flex}.autocomplete-item-details span{display:inline-block}.autocomplete-loading-item{padding:var(--spacing-sm) var(--spacing-md);text-align:center;color:var(--color-text-secondary);font-size:var(--font-size-small)}.appointment-form-page{background-color:var(--color-background);flex-direction:column;min-height:100vh;display:flex}.appointment-form-content{padding:var(--spacing-xl);max-width:var(--max-width-form);flex:1;width:100%;margin:0 auto}.appointment-form{gap:var(--spacing-xl);flex-direction:column;display:flex}.form-section{background-color:var(--color-primary);border-radius:var(--radius-lg);padding:var(--spacing-xl);box-shadow:var(--shadow-sm);border:1px solid var(--color-border)}.form-section h2{margin-top:0;margin-bottom:var(--spacing-lg);font-size:var(--font-size-medium);color:var(--color-secondary);border-bottom:2px solid var(--color-background);padding-bottom:var(--spacing-sm)}.form-field.full-width{grid-column:1/-1}.form-field.checkbox-field{margin:var(--spacing-xs);align-self:end}.required{color:var(--color-error)}.form-field input,.form-field select,.form-field textarea{padding:var(--spacing-sm) var(--spacing-md);border:1px solid var(--color-border);border-radius:var(--radius-md);font-size:var(--font-size-medium);font-family:var(--font-family);transition:border-color var(--transition-fast);background-color:var(--color-primary)}.form-field input:focus,.form-field select:focus,.form-field textarea:focus{border-color:var(--color-accent);outline:none}.form-field input.error,.form-field select.error,.form-field textarea.error{border-color:var(--color-error)}.form-field input:disabled,.form-field select:disabled,.form-field textarea:disabled{background-color:var(--color-background);cursor:not-allowed;opacity:.6}.form-field textarea{resize:vertical;min-height:100px}.form-field select{cursor:pointer}.field-error{font-size:var(--font-size-small);color:var(--color-error)}.warning-message{padding:var(--spacing-md);background-color:var(--color-warning-bg);color:var(--color-warning);border-radius:var(--radius-md);margin-bottom:var(--spacing-lg);border-left:4px solid var(--color-warning)}.btn-primary{background-color:var(--color-accent);color:var(--color-primary);padding:var(--spacing-sm) var(--spacing-lg);border-radius:var(--radius-md);font-size:var(--font-size-medium);font-weight:var(--font-weight-medium);cursor:pointer;transition:all var(--transition-base);border:none}.btn-secondary{background-color:var(--color-primary);color:var(--color-text);border:1px solid var(--color-border);padding:var(--spacing-sm) var(--spacing-lg);border-radius:var(--radius-md);font-size:var(--font-size-medium);cursor:pointer;transition:all var(--transition-base)}.patient-mode-selector{margin-bottom:var(--spacing-lg)}.field-label{font-size:var(--font-size-small);font-weight:var(--font-weight-semibold);color:var(--color-text);margin-bottom:var(--spacing-sm);display:block}.walk-in-patient-form{padding:var(--spacing-lg);background:var(--color-background);border-radius:var(--radius-md);border-left:3px solid var(--color-accent);margin-bottom:var(--spacing-lg)}.walk-in-patient-form .form-row{gap:var(--spacing-lg);margin-bottom:var(--spacing-lg);grid-template-columns:1fr 1fr;display:block}.walk-in-patient-form .form-row:last-child,.walk-in-patient-form .form-field{margin-bottom:0}.phone-field-group{gap:var(--spacing-xs);display:flex}.phone-field-group .phone-area-code{flex-shrink:0;width:72px}.phone-field-group .form-input:not(.phone-area-code){flex:1}@media (width<=768px){.appointment-form-content,.form-section{padding:var(--spacing-lg)}}@media (width<=640px){.form-grid{grid-template-columns:1fr}.form-actions{flex-direction:column-reverse}.form-actions button{width:100%}.radio-group{flex-direction:column}.walk-in-patient-form .form-row{grid-template-columns:1fr}}@media (width<=480px){.appointment-form-content,.form-section{padding:var(--spacing-md)}}.appointment-detail-page{background-color:var(--color-background);flex-direction:column;min-height:100vh;display:flex}.appointment-detail-content{padding:var(--spacing-xl);max-width:var(--max-width-content);flex:1;width:100%;margin:0 auto}.action-bar{margin-bottom:var(--spacing-xl);justify-content:space-between;align-items:center;gap:var(--spacing-md);flex-wrap:wrap;display:flex}.action-buttons{gap:var(--spacing-md);flex-wrap:wrap;display:flex}.appointment-header{background-color:var(--color-primary);border-radius:var(--radius-lg);padding:var(--spacing-xl);box-shadow:var(--shadow-sm);margin-bottom:var(--spacing-xl);border:1px solid var(--color-border)}.header-main h2{margin:0 0 var(--spacing-md) 0;font-size:var(--font-size-xlarge);color:var(--color-text)}.badges{gap:var(--spacing-sm);flex-wrap:wrap;display:flex}.status-badge{padding:var(--spacing-sm) var(--spacing-md);border-radius:var(--radius-md);font-size:var(--font-size-small);font-weight:var(--font-weight-medium);text-align:center;display:inline-block}.status-badge.status-scheduled{background-color:var(--color-status-scheduled-bg);color:var(--color-status-scheduled-text)}.status-badge.status-confirmed{background-color:var(--color-status-confirmed-bg);color:var(--color-status-confirmed-text)}.status-badge.status-completed{background-color:var(--color-status-completed-bg);color:var(--color-status-completed-text)}.status-badge.status-cancelled{background-color:var(--color-status-cancelled-bg);color:var(--color-status-cancelled-text)}.type-badge{padding:var(--spacing-sm) var(--spacing-md);border-radius:var(--radius-md);font-size:var(--font-size-small);font-weight:var(--font-weight-medium);text-align:center;display:inline-block}.type-badge.type-consultation{background-color:var(--color-type-consultation-bg);color:var(--color-type-consultation-text)}.type-badge.type-treatment{background-color:var(--color-type-treatment-bg);color:var(--color-type-treatment-text)}.type-badge.type-followup{background-color:var(--color-type-followup-bg);color:var(--color-type-followup-text)}.type-badge.type-procedure{background-color:var(--color-type-procedure-bg);color:var(--color-type-procedure-text)}.detail-section{background-color:var(--color-primary);border-radius:var(--radius-lg);padding:var(--spacing-xl);box-shadow:var(--shadow-sm);margin-bottom:var(--spacing-xl);border:1px solid var(--color-border)}.detail-section h3{margin:0 0 var(--spacing-lg) 0;font-size:var(--font-size-medium);color:var(--color-secondary);border-bottom:2px solid var(--color-background);padding-bottom:var(--spacing-sm)}.detail-section.metadata{background-color:var(--color-background)}.detail-section.metadata h3{color:var(--color-text-secondary);font-size:var(--font-size-small);text-transform:uppercase;letter-spacing:var(--letter-spacing-label)}.detail-grid{gap:var(--spacing-lg);grid-template-columns:repeat(auto-fit,minmax(250px,1fr));display:grid}.detail-item{gap:var(--spacing-xs);flex-direction:column;display:flex}.detail-item.full-width{grid-column:1/-1}.detail-item label{font-size:var(--font-size-small);font-weight:var(--font-weight-semibold);color:var(--color-text-secondary);text-transform:uppercase;letter-spacing:var(--letter-spacing-label)}.detail-item .value{font-size:var(--font-size-medium);color:var(--color-text)}.patient-link{color:var(--color-accent);font-weight:var(--font-weight-medium);font-size:var(--font-size-medium);cursor:pointer;text-align:left;transition:opacity var(--transition-fast);background:0 0;border:none;padding:0;text-decoration:none}.patient-link:hover{opacity:.8;text-decoration:underline}.btn-primary{background-color:var(--color-accent);color:var(--color-primary);padding:var(--spacing-sm) var(--spacing-lg);border-radius:var(--radius-md);font-size:var(--font-size-medium);font-weight:var(--font-weight-medium);cursor:pointer;transition:all var(--transition-base);white-space:nowrap;border:none}.btn-secondary{background-color:var(--color-primary);color:var(--color-text);border:1px solid var(--color-border);padding:var(--spacing-sm) var(--spacing-lg);border-radius:var(--radius-md);font-size:var(--font-size-medium);cursor:pointer;transition:all var(--transition-base);white-space:nowrap}.btn-danger{background-color:var(--color-error);color:var(--color-primary);padding:var(--spacing-sm) var(--spacing-lg);border-radius:var(--radius-md);font-size:var(--font-size-medium);font-weight:var(--font-weight-medium);cursor:pointer;transition:all var(--transition-base);white-space:nowrap;border:none}.btn-danger:hover{background-color:var(--color-error-hover)}.btn-danger:disabled{opacity:.6;cursor:not-allowed}.reminder-modal-content p{color:var(--color-text-secondary);margin-bottom:var(--spacing-md);font-size:var(--font-size-base)}.reminder-template-select{gap:var(--spacing-xs);margin-bottom:var(--spacing-md);flex-direction:column;display:flex}.reminder-template-select label{font-size:var(--font-size-small);font-weight:var(--font-weight-semibold);color:var(--color-text-secondary)}.template-select{padding:var(--spacing-sm);border:1px solid var(--color-border);border-radius:var(--radius-md);font-size:var(--font-size-base);background-color:var(--color-primary)}.reminder-result{padding:var(--spacing-md);border-radius:var(--radius-md);font-size:var(--font-size-base);margin-top:var(--spacing-md)}.reminder-success{background-color:var(--color-status-active-bg);color:var(--color-success);border-left:4px solid var(--color-success)}.reminder-error{background-color:var(--color-error-bg);color:var(--color-error);border-left:4px solid var(--color-error-light)}@media (width<=768px){.appointment-detail-content,.detail-section{padding:var(--spacing-lg)}}@media (width<=640px){.action-bar{flex-direction:column;align-items:stretch}.action-buttons{flex-direction:column;width:100%}.action-buttons button{width:100%}.detail-grid{grid-template-columns:1fr}}@media (width<=480px){.appointment-detail-content,.appointment-header,.detail-section{padding:var(--spacing-md)}.header-main h2{font-size:var(--font-size-large)}}.more-actions-dropdown{top:calc(100% + var(--spacing-xs));background:var(--color-primary);border:1px solid var(--color-border);border-radius:var(--radius-md);box-shadow:var(--shadow-md);z-index:var(--z-index-sticky);min-width:200px;position:absolute;right:0;overflow:hidden}.dropdown-item{width:100%;padding:var(--spacing-sm) var(--spacing-md);text-align:left;cursor:pointer;font-size:var(--font-size-base);color:var(--color-text);transition:background-color var(--transition-fast);background:0 0;border:none;display:block}@media (hover:hover){.dropdown-item:hover{background-color:var(--color-surface-hover)}}.dropdown-item-danger{color:var(--color-error)}.dropdown-item:disabled{opacity:.5;cursor:not-allowed}.walkin-banner{justify-content:space-between;align-items:center;gap:var(--spacing-md);padding:var(--spacing-md) var(--spacing-lg);background-color:var(--color-warning-bg,#fff8e1);border:1px solid var(--color-warning,#f59e0b);border-radius:var(--radius-md);margin-bottom:var(--spacing-md);display:flex}.blocked-periods-page{min-height:100vh;max-width:var(--max-width-page);width:100%;margin:0 auto}.blocked-periods-content{padding:var(--spacing-xl)}.modal-overlay{z-index:var(--z-index-modal);padding:var(--spacing-lg);background-color:#00000080;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.modal-content{background-color:var(--color-primary);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);width:100%;max-height:90vh;overflow-y:auto}.modal-header{padding:var(--spacing-lg);border-bottom:1px solid var(--color-border);justify-content:space-between;align-items:center;display:flex}.modal-header h2{font-size:var(--font-size-large);color:var(--color-text);margin:0}.modal-close{font-size:var(--font-size-xlarge);color:var(--color-text-secondary);cursor:pointer;width:32px;height:32px;transition:color var(--transition-fast);background:0 0;border:none;justify-content:center;align-items:center;padding:0;display:flex}.modal-close:hover{color:var(--color-error)}.blocked-period-form{padding:var(--spacing-lg);gap:var(--spacing-lg);flex-direction:column;display:flex}.form-field{gap:var(--spacing-xs);flex-direction:column;display:flex}.form-row{gap:var(--spacing-lg);grid-template-columns:1fr 1fr;display:grid}.form-field label{font-size:var(--font-size-small);font-weight:var(--font-weight-semibold);color:var(--color-text)}.form-field input,.form-field textarea{padding:var(--spacing-sm) var(--spacing-md);border:1px solid var(--color-border);border-radius:var(--radius-md);font-size:var(--font-size-medium);font-family:var(--font-family);transition:border-color var(--transition-fast)}.form-field input:focus,.form-field textarea:focus{border-color:var(--color-accent);outline:none}.form-field input:disabled,.form-field textarea:disabled{background-color:var(--color-background);cursor:not-allowed;opacity:.6}.form-field textarea{resize:vertical}.checkbox-label{align-items:center;gap:var(--spacing-sm);cursor:pointer;font-weight:var(--font-weight-normal);display:flex}.checkbox-label input[type=checkbox]{cursor:pointer;width:20px;height:20px}.checkbox-label span{font-size:var(--font-size-medium)}.blocked-periods-list{background-color:var(--color-primary);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);overflow:hidden}.blocked-periods-table{border-collapse:collapse;width:100%}.blocked-periods-table thead{background-color:var(--color-background)}.blocked-periods-table th{text-align:left;padding:var(--spacing-md) var(--spacing-lg);font-weight:var(--font-weight-semibold);color:var(--color-text);font-size:var(--font-size-small);text-transform:uppercase;letter-spacing:var(--letter-spacing-label);border-bottom:2px solid var(--color-border)}.blocked-periods-table tbody tr{border-bottom:1px solid var(--color-border);transition:background-color var(--transition-fast)}.blocked-periods-table tbody tr:hover{background-color:var(--color-background)}.blocked-periods-table tbody tr.inactive-row{opacity:.6}.blocked-periods-table td{padding:var(--spacing-md) var(--spacing-lg);font-size:var(--font-size-medium)}.blocked-periods-table td.actions{gap:var(--spacing-sm);align-items:center;display:flex}.time-text{font-size:var(--font-size-small);color:var(--color-text-secondary)}.status-badge{padding:var(--spacing-xs) var(--spacing-md);border-radius:var(--radius-lg);font-size:var(--font-size-small);font-weight:var(--font-weight-medium);display:inline-block}.status-badge.active{background-color:var(--color-status-active-bg);color:var(--color-success)}.status-badge.inactive{background-color:var(--color-status-inactive-bg);color:var(--color-error)}.empty-state p{font-size:var(--font-size-large);margin-bottom:var(--spacing-lg);color:var(--color-text)}.loading{text-align:center;padding:var(--spacing-xxl);color:var(--color-text-secondary);font-size:var(--font-size-large)}.error-message{padding:var(--spacing-md);background-color:var(--color-error-bg);color:var(--color-error);border-radius:var(--radius-md);margin-bottom:var(--spacing-lg);border-left:4px solid var(--color-error)}.btn{padding:var(--spacing-sm) var(--spacing-lg);border-radius:var(--radius-md);font-size:var(--font-size-medium);font-weight:var(--font-weight-medium);cursor:pointer;transition:all var(--transition-base);white-space:nowrap;border:none}.btn-primary{background-color:var(--color-accent);color:var(--color-primary)}.btn-primary:hover{opacity:.9;box-shadow:var(--shadow-md);transform:translateY(-1px)}.btn-primary:disabled{opacity:.6;cursor:not-allowed;transform:none}.btn-secondary{background-color:var(--color-primary);color:var(--color-text);border:1px solid var(--color-border)}.btn-secondary:hover{background-color:var(--color-background);border-color:var(--color-accent)}.btn-secondary:disabled{opacity:.5;cursor:not-allowed}.btn-icon{color:var(--color-accent);font-size:var(--font-size-small);cursor:pointer;padding:var(--spacing-xs) var(--spacing-sm);transition:opacity var(--transition-fast);background:0 0;border:none}.btn-icon:hover{opacity:.7;text-decoration:underline}.btn-icon.btn-danger{color:var(--color-error)}@media (width<=1025px){.blocked-periods-list{overflow-x:auto}.blocked-periods-table{min-width:900px}}@media (width<=768px){.blocked-periods-content{padding:var(--spacing-lg)}}@media (width<=640px){.form-row{grid-template-columns:1fr}.modal-content{max-width:100%}.form-actions{flex-direction:column-reverse}.form-actions button{width:100%}}@media (width<=480px){.blocked-periods-content{padding:var(--spacing-md)}.modal-overlay{padding:0}.modal-content{border-radius:0;max-height:100vh}}@media (width<=640px){.blocked-periods-table-wrapper table thead{display:none}.blocked-periods-table-wrapper table,.blocked-periods-table-wrapper tbody,.blocked-periods-table-wrapper tr{width:100%;display:block}.blocked-periods-table-wrapper tr{background:var(--color-primary);border:1px solid var(--color-border);border-radius:var(--radius-md);margin-bottom:var(--spacing-sm);padding:var(--spacing-md);gap:var(--spacing-xs);flex-direction:column;display:flex}.blocked-periods-table-wrapper td{font-size:var(--font-size-base);border:none;padding:2px 0;display:block}.blocked-periods-table-wrapper td.actions{gap:var(--spacing-sm);padding-top:var(--spacing-xs);border-top:1px solid var(--color-border-light);margin-top:var(--spacing-xs);display:flex}}.treatments-page{background-color:var(--color-background);flex-direction:column;height:100dvh;display:flex;overflow:hidden}.treatments-content{min-height:0;padding:var(--spacing-xl);max-width:var(--max-width-page);flex:1;width:100%;margin:0 auto;overflow-y:auto}.treatments-controls{margin-bottom:var(--spacing-xl)}.treatments-summary{color:var(--color-text-secondary);font-size:var(--font-size-small)}.treatment-title{font-weight:var(--font-weight-medium);color:var(--color-secondary)}@media (width<=768px){.treatments-content{padding:var(--spacing-lg)}}@media (width<=480px){.treatments-content{padding:var(--spacing-md)}}@media (width<=640px){.treatments-table-wrapper table thead{display:none}.treatments-table-wrapper table,.treatments-table-wrapper tbody{width:100%;display:block}.treatments-table-wrapper tr{gap:var(--spacing-xs) var(--spacing-sm);padding:var(--spacing-md);background:var(--color-primary);border:1px solid var(--color-border);border-radius:var(--radius-md);margin-bottom:var(--spacing-sm);grid-template-columns:1fr auto;display:grid}.treatments-table-wrapper td{font-size:var(--font-size-base);border:none;padding:2px 0}.treatments-table-wrapper .treatment-title{font-weight:var(--font-weight-semibold);font-size:var(--font-size-body);color:var(--color-secondary);grid-column:1}.treatments-table-wrapper .treatment-price{font-size:var(--font-size-body);font-weight:var(--font-weight-medium);text-align:right;grid-column:2}.treatments-table-wrapper .treatment-duration{font-size:var(--font-size-small);color:var(--color-text-secondary);grid-column:1}.treatments-table-wrapper .treatment-duration:before{content:attr(data-label) ": ";font-weight:var(--font-weight-semibold)}.treatments-table-wrapper .treatment-sessions{font-size:var(--font-size-small);color:var(--color-text-secondary);text-align:right;grid-column:2}.treatments-table-wrapper .treatment-sessions:before{content:attr(data-label) ": ";font-weight:var(--font-weight-semibold)}}.treatment-form-page{background-color:var(--color-background);flex-direction:column;min-height:100vh;display:flex}.treatment-form-content{padding:var(--spacing-xl);max-width:var(--max-width-form);flex:1;width:100%;margin:0 auto}.form-container{gap:var(--spacing-lg);flex-direction:column;display:flex}.treatment-form{gap:var(--spacing-xl);flex-direction:column;display:flex}.treatment-form .form-field.full-width{grid-column:1/-1}.price-currency-group,.duration-sessions-group{gap:var(--spacing-md);grid-column:1/-1;grid-template-columns:1fr 1fr;align-items:start;display:grid}.currency-selector{gap:var(--spacing-xs);flex-direction:column;display:flex}.radio-group{gap:var(--spacing-lg);margin-top:var(--spacing-sm);flex-wrap:wrap;display:flex}.radio-option{align-items:center;gap:var(--spacing-sm);cursor:pointer;padding:var(--spacing-sm);border-radius:var(--radius-sm);transition:background-color var(--transition-base);display:flex}.radio-option:hover{background-color:var(--color-background)}.radio-option input[type=radio]{cursor:pointer;width:18px;height:18px}.radio-option span{font-size:var(--font-size-medium);color:var(--color-text)}.checkbox-group{gap:var(--spacing-md);grid-column:1/-1;grid-template-columns:1fr 1fr;display:grid}.form-actions{justify-content:flex-end;gap:var(--spacing-md);padding-top:var(--spacing-lg);border-top:1px solid var(--color-border);display:flex}@media (width<=768px){.treatment-form-content{padding:var(--spacing-lg)}}@media (width<=640px){.form-actions{flex-direction:column-reverse}.form-actions button{width:100%}.price-currency-group,.duration-sessions-group,.checkbox-group{grid-template-columns:1fr}.radio-group{flex-direction:column}}@media (width<=480px){.treatment-form-content{padding:var(--spacing-md)}}.treatment-detail-page{background-color:var(--color-background);flex-direction:column;min-height:100vh;display:flex}.treatment-detail-content{padding:var(--spacing-xl);max-width:var(--max-width-content);flex:1;width:100%;margin:0 auto}.treatment-info-grid{gap:var(--spacing-lg);grid-template-columns:1fr;display:grid}@media (width>=1024px){.treatment-info-grid{grid-template-columns:1fr 1fr}.treatment-info-grid>:last-child:nth-child(odd){grid-column:1/-1}}.info-row{gap:var(--spacing-md);padding:var(--spacing-sm) 0;border-bottom:1px solid var(--color-border);align-items:flex-start;display:flex}.info-row:last-child{border-bottom:none}.info-label{font-size:var(--font-size-small);font-weight:var(--font-weight-semibold);color:var(--color-text-secondary);text-transform:uppercase;letter-spacing:var(--letter-spacing-label);min-width:var(--min-width-card)}.info-value{font-size:var(--font-size-medium);color:var(--color-text);flex:1}.info-value.price{font-size:var(--font-size-large);font-weight:var(--font-weight-semibold);color:var(--color-accent)}@media (width<=768px){.treatment-detail-content{padding:var(--spacing-lg)}}@media (width<=640px){.info-row{gap:var(--spacing-xs);flex-direction:column}.info-label{min-width:auto}}@media (width<=480px){.treatment-detail-content{padding:var(--spacing-md)}}.templates-page{background-color:var(--color-background);flex-direction:column;min-height:100vh;display:flex}.templates-content{padding:var(--spacing-xl);max-width:var(--max-width-page);flex:1;width:100%;margin:0 auto}.templates-controls{margin-bottom:var(--spacing-xl)}.templates-summary{color:var(--color-text-secondary);font-size:var(--font-size-small)}.template-name{font-weight:var(--font-weight-medium);color:var(--color-secondary)}@media (width<=768px){.templates-content{padding:var(--spacing-lg)}}@media (width<=480px){.templates-content{padding:var(--spacing-md)}}@media (width<=640px){.templates-table-wrapper table thead{display:none}.templates-table-wrapper table,.templates-table-wrapper tbody,.templates-table-wrapper tr{width:100%;display:block}.templates-table-wrapper tr{background:var(--color-primary);border:1px solid var(--color-border);border-radius:var(--radius-md);margin-bottom:var(--spacing-sm);padding:var(--spacing-md);gap:var(--spacing-xs);flex-direction:column;display:flex}.templates-table-wrapper td{font-size:var(--font-size-base);border:none;padding:2px 0;display:block}.templates-table-wrapper td.template-name{font-weight:var(--font-weight-semibold);font-size:var(--font-size-body)}}.template-form-page{background-color:var(--color-background);flex-direction:column;min-height:100vh;display:flex}.template-form-content{padding:var(--spacing-xl);max-width:var(--max-width-form);flex:1;width:100%;margin:0 auto}.template-form{gap:var(--spacing-xl);flex-direction:column;display:flex}.template-variables-help{margin-top:var(--spacing-sm);padding:var(--spacing-md);background:var(--color-background);border:1px solid var(--color-border);border-radius:var(--radius-md)}.variables-title{font-size:var(--font-size-small);font-weight:var(--font-weight-semibold);color:var(--color-text-secondary);margin-bottom:var(--spacing-sm)}.variables-list{gap:var(--spacing-xs);flex-wrap:wrap;display:flex}.variable-chip{padding:var(--spacing-xs) var(--spacing-sm);background:var(--color-background);border:1px solid var(--color-border);border-radius:var(--radius-sm);cursor:pointer;font-size:var(--font-size-small);margin:2px;font-family:monospace;display:inline-block}.variable-chip:hover{background:var(--color-accent);color:var(--color-primary);border-color:var(--color-accent)}@media (width<=768px){.template-form-content{padding:var(--spacing-lg)}}@media (width<=480px){.template-form-content{padding:var(--spacing-md)}}.template-detail-page{background-color:var(--color-background);flex-direction:column;min-height:100vh;display:flex}.template-detail-content{padding:var(--spacing-xl);max-width:var(--max-width-page);flex:1;width:100%;margin:0 auto}.template-info-grid{gap:var(--spacing-lg);flex-direction:column;display:flex}.template-text{white-space:pre-wrap}.template-preview{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);padding:var(--spacing-md);margin-top:var(--spacing-md);white-space:pre-wrap}@media (width<=768px){.template-detail-content{padding:var(--spacing-lg)}}@media (width<=480px){.template-detail-content{padding:var(--spacing-md)}}.reminder-logs-page{background-color:var(--color-background);flex-direction:column;min-height:100vh;display:flex}.reminder-logs-content{padding:var(--spacing-xl);max-width:var(--max-width-page);flex:1;width:100%;margin:0 auto}.reminder-logs-controls{margin-bottom:var(--spacing-xl)}.search-filter-row{align-items:center;gap:var(--spacing-md);margin-bottom:var(--spacing-md);flex-wrap:wrap;display:flex}.filter-box{align-items:center;gap:var(--spacing-xs);display:flex}.filter-label{font-size:var(--font-size-small);font-weight:var(--font-weight-semibold);color:var(--color-text-secondary);margin-right:var(--spacing-xs)}.filter-date{padding:var(--spacing-sm) var(--spacing-md);border:1px solid var(--color-border);border-radius:var(--radius-md);font-size:var(--font-size-medium);color:var(--color-text);background-color:var(--color-primary);width:100%}.filter-date:focus{border-color:var(--color-primary);box-shadow:0 0 0 3px rgba(var(--color-accent-rgb), .15);outline:none}@media (width<=768px){.reminder-logs-content{padding:var(--spacing-lg)}}@media (width>=641px) and (width<=1024px){.reminder-logs-page [data-col=appointment],.reminder-logs-page [data-col=template]{display:none}}@media (width<=640px){.search-filter-row{flex-direction:column}.reminder-logs-page [data-col=appointment],.reminder-logs-page [data-col=template],.reminder-logs-page [data-col=phone]{display:none}}@media (width<=480px){.reminder-logs-content{padding:var(--spacing-md)}}.send-reminder-form{gap:var(--spacing-md);flex-direction:column;display:flex}.send-reminder-field{gap:var(--spacing-xs);flex-direction:column;display:flex}.send-reminder-field label{font-size:var(--font-size-small);font-weight:var(--font-weight-semibold);color:var(--color-text-secondary)}.send-reminder-field select{padding:var(--spacing-sm);border:1px solid var(--color-border);border-radius:var(--radius-md);font-size:var(--font-size-base);background-color:var(--color-primary)}.send-result{padding:var(--spacing-md);border-radius:var(--radius-md);font-size:var(--font-size-base)}.send-success{background-color:var(--color-status-active-bg);color:var(--color-success);border-left:4px solid var(--color-success)}.send-error{background-color:var(--color-error-bg);color:var(--color-error);border-left:4px solid var(--color-error-light)}.settings-page{background-color:var(--color-background);flex-direction:column;min-height:100vh;display:flex}.settings-content{padding:var(--spacing-xl);max-width:var(--max-width-content);flex:1;width:100%;margin:0 auto}.settings-section-title{font-size:var(--font-size-large);color:var(--color-secondary);margin:var(--spacing-xl) 0 var(--spacing-md);padding-bottom:var(--spacing-xs);border-bottom:2px solid var(--color-border)}.settings-section-title:first-child{margin-top:0}.settings-card{background-color:var(--color-primary);border-radius:var(--radius-lg);padding:var(--spacing-xl);box-shadow:var(--shadow-sm);margin-bottom:var(--spacing-xl);border:1px solid var(--color-border)}.settings-card h3{margin:0 0 var(--spacing-lg) 0;font-size:var(--font-size-medium);color:var(--color-secondary);border-bottom:2px solid var(--color-background);padding-bottom:var(--spacing-sm)}.settings-label{font-size:var(--font-size-small);font-weight:var(--font-weight-semibold);color:var(--color-text-secondary);text-transform:uppercase;letter-spacing:var(--letter-spacing-label);margin-bottom:var(--spacing-sm);display:block}.settings-hint{margin-top:var(--spacing-sm);color:var(--color-text-secondary);font-size:var(--font-size-small);font-style:italic}.theme-segmented{border-radius:var(--radius-md);border:1px solid var(--color-border);display:inline-flex;overflow:hidden}.theme-segment{padding:var(--spacing-sm) var(--spacing-lg);background:var(--color-surface);color:var(--color-text-muted);font-size:var(--font-size-base);cursor:pointer;transition:background-color var(--transition-fast), color var(--transition-fast);border:none;font-family:inherit}.theme-segment:not(:last-child){border-right:1px solid var(--color-border)}.theme-segment.active{background-color:var(--color-accent);color:#fff;font-weight:var(--font-weight-semibold)}@media (hover:hover){.theme-segment:not(.active):hover{background-color:var(--color-surface-hover);color:var(--color-secondary)}}.status-grid{gap:var(--spacing-lg);grid-template-columns:repeat(auto-fit,minmax(200px,1fr));display:grid}.status-item{gap:var(--spacing-xs);flex-direction:column;display:flex}.status-item label{font-size:var(--font-size-small);font-weight:var(--font-weight-semibold);color:var(--color-text-secondary);text-transform:uppercase;letter-spacing:var(--letter-spacing-label)}.status-value{font-size:var(--font-size-medium);color:var(--color-text);font-family:monospace}.gcal-description{color:var(--color-text-secondary);margin-bottom:var(--spacing-md);font-size:var(--font-size-base);line-height:var(--line-height-relaxed)}.gcal-privacy-note{color:var(--color-text-secondary);margin-bottom:var(--spacing-lg);font-size:var(--font-size-small);font-style:italic}.gcal-success-message{margin-bottom:var(--spacing-lg);padding:var(--spacing-md);border-radius:var(--radius-md);font-size:var(--font-size-base);background-color:var(--color-status-active-bg);color:var(--color-success);border-left:4px solid var(--color-success)}.gcal-settings-form{align-items:flex-start;gap:var(--spacing-md);flex-direction:column;display:flex}.gcal-toggle-label{align-items:center;gap:var(--spacing-sm);cursor:pointer;font-size:var(--font-size-base);color:var(--color-text);display:flex}.gcal-toggle-label input[type=checkbox]{cursor:pointer;width:18px;height:18px}.gcal-conflict-note{color:var(--color-text-secondary);font-size:var(--font-size-small);line-height:var(--line-height-normal);margin:0}.gcal-danger-zone{border-color:var(--color-error,#e57373)}.gcal-danger-zone .gcal-conflict-note{margin-bottom:var(--spacing-md)}.test-description,.config-description{color:var(--color-text-secondary);margin-bottom:var(--spacing-md);font-size:var(--font-size-base);line-height:var(--line-height-relaxed)}.config-description a{color:var(--color-accent);text-decoration:none}.config-description a:hover{text-decoration:underline}.test-result{margin-top:var(--spacing-md);padding:var(--spacing-md);border-radius:var(--radius-md);font-size:var(--font-size-base)}.test-success{background-color:var(--color-status-active-bg);color:var(--color-success);border-left:4px solid var(--color-success)}.test-error{background-color:var(--color-error-bg);color:var(--color-error);border-left:4px solid var(--color-error-light)}.test-disabled-hint{margin-top:var(--spacing-sm);color:var(--color-text-secondary);font-size:var(--font-size-small);font-style:italic}.env-vars-list{gap:var(--spacing-sm);flex-wrap:wrap;display:flex}.env-vars-list code{background-color:var(--color-background);padding:var(--spacing-xs) var(--spacing-sm);border-radius:var(--radius-sm);font-size:var(--font-size-small);color:var(--color-text);border:1px solid var(--color-border)}@media (width<=768px){.settings-content{padding:var(--spacing-lg)}}@media (width<=640px){.status-grid{grid-template-columns:1fr}.theme-segmented{width:100%;display:flex}.theme-segment{text-align:center;flex:1}}.users-page{background-color:var(--color-background);flex-direction:column;min-height:100vh;display:flex}.users-content{padding:var(--spacing-xl);max-width:var(--max-width-page);flex:1;width:100%;margin:0 auto}.users-controls{margin-bottom:var(--spacing-xl)}.users-search-row{gap:var(--spacing-md);flex-wrap:wrap;align-items:center;display:flex}.users-search-row .search-box{min-width:var(--min-width-card);flex:1}.users-actions-cell{gap:var(--spacing-sm);display:flex}.toggle-row{align-items:center;gap:var(--spacing-sm);margin-top:var(--spacing-sm);display:flex}.toggle-switch{flex-shrink:0;width:44px;height:24px;position:relative}.toggle-switch input{opacity:0;width:0;height:0}.toggle-slider{cursor:pointer;background-color:var(--color-border);transition:background-color var(--transition-fast);border-radius:24px;position:absolute;inset:0}.toggle-slider:before{content:"";background-color:var(--color-primary);width:18px;height:18px;transition:transform var(--transition-fast);border-radius:50%;position:absolute;bottom:3px;left:3px}.toggle-switch input:checked+.toggle-slider{background-color:var(--color-success)}.toggle-switch input:checked+.toggle-slider:before{transform:translate(20px)}@media (width<=768px){.users-content{padding:var(--spacing-lg)}}@media (width<=640px){.users-search-row{flex-direction:column;align-items:stretch}}:root{--color-primary:#fff;--color-secondary:#000;--color-accent:#204862;--color-accent-rgb:32, 72, 98;--color-accent-light:#d0dde5;--color-accent-hover:#193a4e;--color-text:#333;--color-text-secondary:#666;--color-text-strong:#374151;--color-text-muted:#6b7280;--color-background:#fafafa;--color-surface:#f9fafb;--color-surface-hover:#f3f4f6;--color-border:#e0e0e0;--color-border-light:#e5e7eb;--color-input-border:#d1d5db;--color-error:#d32f2f;--color-error-light:#ef4444;--color-error-bg:#fef2f2;--color-error-hover:#b71c1c;--color-success:#388e3c;--color-warning:#f57c00;--color-warning-bg:#fff3e0;--color-info:#0284c7;--color-info-bg:#e0f2fe;--color-bg-tertiary:#e5e7eb;--color-text-tertiary:#9ca3af;--color-status-active-bg:#e8f5e9;--color-status-active-text:#388e3c;--color-status-inactive-bg:#ffebee;--color-status-inactive-text:#d32f2f;--color-status-scheduled-bg:#e3f2fd;--color-status-scheduled-text:#1976d2;--color-status-confirmed-bg:#e8f5e9;--color-status-confirmed-text:#388e3c;--color-status-completed-bg:#f3e5f5;--color-status-completed-text:#7b1fa2;--color-status-cancelled-bg:#ffebee;--color-status-cancelled-text:#d32f2f;--color-type-consultation-bg:#fff3e0;--color-type-consultation-text:#e65100;--color-type-treatment-bg:#fce4ec;--color-type-treatment-text:#c2185b;--color-type-followup-bg:#e0f2f1;--color-type-followup-text:#00695c;--color-type-procedure-bg:#ede7f6;--color-type-procedure-text:#512da8;--color-event-own-bg:#ffebee;--color-event-own-border:#c62828;--color-event-other-bg:#e9edef;--color-event-other-border:#204862;--color-calendar-blocked:#f1f5f8;--color-calendar-blocked-stripe:#64748b1f;--font-family:-apple-system, BlinkMacSystemFont, "Segoe UI", "Roboto", "Oxygen", "Ubuntu", "Cantarell", "Fira Sans", "Droid Sans", "Helvetica Neue", sans-serif;--font-size-2xs:10px;--font-size-xs:12px;--font-size-small:14px;--font-size-base:16px;--font-size-body:18px;--font-size-medium:22px;--font-size-large:36px;--font-size-xlarge:42px;--font-weight-normal:400;--font-weight-medium:500;--font-weight-semibold:600;--font-weight-bold:700;--line-height-compact:1;--line-height-tight:1.2;--line-height-snug:1.3;--line-height-normal:1.4;--line-height-relaxed:1.5;--line-height-loose:1.6;--letter-spacing-label:.5px;--z-index-base:1;--z-index-sticky:100;--z-index-nav:900;--z-index-modal:1000;--z-index-toast:2000;--spacing-xs:4px;--spacing-sm:8px;--spacing-md:16px;--spacing-lg:24px;--spacing-xl:32px;--spacing-xxl:48px;--radius-sm:4px;--radius-md:8px;--radius-lg:12px;--shadow-sm:0 1px 3px #0000001a;--shadow-md:0 4px 6px #0000001a;--shadow-lg:0 10px 15px #0000001a;--transition-fast:.15s ease;--transition-base:.25s ease;--transition-slow:.35s ease;--max-width-page:1600px;--max-width-content:1200px;--max-width-form:900px;--min-width-card:180px;--width-sidenav:180px}*{box-sizing:border-box;margin:0;padding:0}html{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-size:16px}body{font-family:var(--font-family);font-size:var(--font-size-medium);color:var(--color-text);background-color:var(--color-background);line-height:var(--line-height-loose)}body.page-fixed{overflow:hidden}h1,h2,h3,h4,h5,h6{color:var(--color-secondary);font-weight:var(--font-weight-semibold);line-height:var(--line-height-tight);margin-bottom:var(--spacing-md)}h1{font-size:var(--font-size-xlarge)}h2{font-size:var(--font-size-large)}h3{font-size:var(--font-size-medium)}p{margin-bottom:var(--spacing-md)}a{color:var(--color-accent);transition:opacity var(--transition-fast);text-decoration:none}a:hover{opacity:.8}:focus-visible,button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,[tabindex]:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px}button{font-family:var(--font-family);font-size:var(--font-size-medium);padding:var(--spacing-sm) var(--spacing-lg);border-radius:var(--radius-md);background-color:var(--color-accent);color:var(--color-primary);cursor:pointer;transition:all var(--transition-base);border:none}button:hover{opacity:.9;box-shadow:var(--shadow-md);transform:translateY(-1px)}button:active{transform:translateY(0)}button:disabled{opacity:.5;cursor:not-allowed}input,textarea,select{font-family:var(--font-family);font-size:var(--font-size-medium);padding:var(--spacing-sm) var(--spacing-md);border:1px solid var(--color-border);border-radius:var(--radius-sm);background-color:var(--color-primary);transition:border-color var(--transition-fast)}input:focus,textarea:focus,select:focus{border-color:var(--color-accent);outline:none}.app{flex-direction:column;min-height:100vh;display:flex}@media (width<=640px){.patients-page,.treatments-page,.appointments-page,.dashboard-page{height:calc(100dvh - 60px - env(safe-area-inset-bottom,0px))}}.login-page{min-height:100vh;padding:var(--spacing-lg);flex-direction:column;justify-content:center;align-items:center;display:flex}.dashboard-page{height:100dvh;padding:var(--spacing-lg);flex-direction:column;justify-content:center;align-items:center;display:flex;overflow:hidden}.login-container{text-align:center;width:100%;max-width:400px}.login-container h1{margin-bottom:var(--spacing-sm);color:var(--color-accent)}.login-subtitle{margin-bottom:var(--spacing-xl);color:var(--color-text-secondary);font-size:var(--font-size-medium)}.dashboard-page{align-items:stretch;padding:0}.dashboard-header{padding:var(--spacing-lg);background-color:var(--color-primary);border-bottom:1px solid var(--color-border);box-shadow:var(--shadow-sm);justify-content:space-between;align-items:center;display:flex}.dashboard-header h1{margin:0}.header-left{align-items:center;gap:var(--spacing-md);display:flex}.btn-home{border:1px solid var(--color-border);border-radius:var(--radius-md);padding:var(--spacing-sm) var(--spacing-md);font-size:var(--font-size-medium);cursor:pointer;transition:all var(--transition-fast);background:0 0}.btn-home:hover{background-color:var(--color-background);border-color:var(--color-accent)}.user-role{color:var(--color-text-secondary);font-size:var(--font-size-small)}.dashboard-content{min-height:0;padding:var(--spacing-xl);max-width:var(--max-width-page);flex:1;width:100%;margin:0 auto;overflow-y:auto}.dashboard-modules{grid-template-columns:repeat(auto-fill, minmax(var(--min-width-card), 1fr));gap:var(--spacing-lg);margin-top:var(--spacing-xl);display:grid}.module-card{background-color:var(--color-primary);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:var(--spacing-xl);cursor:pointer;transition:all var(--transition-base);box-shadow:var(--shadow-sm)}.module-card:not(.disabled):hover{box-shadow:var(--shadow-lg);border-color:var(--color-accent);transform:translateY(-4px)}.module-card h3{margin-bottom:var(--spacing-sm);font-size:var(--font-size-medium);color:var(--color-secondary)}.module-card p{font-size:var(--font-size-small);color:var(--color-text-secondary);margin:0}.module-card.disabled{opacity:.5;cursor:not-allowed}.module-card.disabled:hover{box-shadow:var(--shadow-sm);border-color:var(--color-border);transform:none}.loading-state{text-align:center;padding:var(--spacing-xxl);color:var(--color-text-secondary)}.message{padding:var(--spacing-md);border-radius:var(--radius-md);margin-bottom:var(--spacing-md);border-left:4px solid}.message-error{background-color:var(--color-status-inactive-bg);color:var(--color-error);border-color:var(--color-error)}.message-warning{background-color:var(--color-warning-bg);color:var(--color-warning);border-color:var(--color-warning)}.empty-state{text-align:center;padding:var(--spacing-xxl);color:var(--color-text-secondary)}.empty-state-message{margin-bottom:var(--spacing-md)}.action-bar{margin-bottom:var(--spacing-lg);justify-content:space-between;align-items:center;display:flex}.action-bar-actions{gap:var(--spacing-sm);display:flex}.form-section{background-color:var(--color-primary);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:var(--spacing-lg);box-shadow:var(--shadow-sm);margin-bottom:var(--spacing-lg)}.form-section-title{margin-bottom:var(--spacing-md);font-size:var(--font-size-medium);color:var(--color-secondary)}.form-grid{gap:var(--spacing-md);grid-template-columns:repeat(auto-fit,minmax(250px,1fr));display:grid}.filter-section{gap:var(--spacing-md);margin-bottom:var(--spacing-lg);grid-template-columns:repeat(auto-fit,minmax(200px,1fr));display:grid}.pagination{justify-content:center;align-items:center;gap:var(--spacing-md);margin-top:var(--spacing-lg);display:flex}.pagination-info{font-size:var(--font-size-small);color:var(--color-text-secondary)}.container{max-width:var(--max-width-content);padding:0 var(--spacing-lg);margin:0 auto}.text-center{text-align:center}.text-small{font-size:var(--font-size-small)}.text-secondary{color:var(--color-text-secondary)}@media (width<=1024px){:root{--font-size-xlarge:36px;--font-size-large:28px;--font-size-medium:18px}.dashboard-content{padding:var(--spacing-lg)}}@media (width<=768px){:root{--font-size-xlarge:28px;--font-size-large:24px;--font-size-medium:18px;--spacing-lg:16px;--spacing-xl:24px}body{font-size:var(--font-size-body)}.dashboard-content{padding:var(--spacing-md)}}@media (width<=640px){:root{--font-size-xlarge:24px;--font-size-large:20px;--spacing-md:12px;--spacing-lg:12px}.dashboard-content{padding:var(--spacing-md) var(--spacing-md) 4.25rem}.dashboard-stats-grid{grid-template-columns:1fr}}[data-theme=dim]{--color-primary:#e8eaed;--color-background:#dde1e4;--color-surface:#e2e5e8;--color-surface-hover:#d8dcdf;--color-border:#c8ccce;--color-border-light:#ced2d5;--color-input-border:#b8bec3;--color-accent-light:#c2d0da;--color-calendar-blocked:#dde0e3;--color-bg-tertiary:#d1d5d9;--shadow-sm:0 1px 3px #00000026;--shadow-md:0 4px 6px #00000026;--shadow-lg:0 10px 15px #00000026}
