@import "https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700&family=JetBrains+Mono:wght@400;500&display=swap";.input-wrapper{gap:var(--space-1-5);flex-direction:column;display:flex}.input-wrapper--full{width:100%}.input__label{font-size:var(--text-sm);font-weight:var(--font-medium);color:var(--text-primary)}.input__required{color:var(--color-danger-500);margin-left:var(--space-1)}.input__container{align-items:center;display:flex;position:relative}.input__field{width:100%;height:40px;padding:0 var(--space-3);background-color:var(--surface-bg);border:1px solid var(--surface-border);border-radius:var(--radius-md);color:var(--text-primary);font-size:var(--text-base);transition:all var(--transition-fast)}.input__field:focus{border-color:var(--color-primary-500);box-shadow:0 0 0 1px var(--color-primary-500);outline:none}.input__field:disabled{background-color:var(--surface-raised);color:var(--text-disabled);cursor:not-allowed}.input__field--error{border-color:var(--color-danger-500)}.input__field--error:focus{border-color:var(--color-danger-500);box-shadow:0 0 0 1px var(--color-danger-500)}.input__field--with-left-icon{padding-left:var(--space-10)}.input__field--with-right-icon{padding-right:var(--space-10)}.input__icon{color:var(--text-secondary);pointer-events:none;justify-content:center;align-items:center;display:flex;position:absolute}.input__icon--left{left:var(--space-3)}.input__icon--right{right:var(--space-3)}.input__message{font-size:var(--text-xs);color:var(--text-secondary)}.input__message--error{color:var(--color-danger-500)}.btn{justify-content:center;align-items:center;gap:var(--space-2);font-family:inherit;font-weight:var(--font-medium);border-radius:var(--radius-md);transition:all var(--transition-fast);white-space:nowrap;display:inline-flex}.btn:disabled{opacity:.6;cursor:not-allowed}.btn--full{width:100%}.btn--sm{height:32px;padding:0 var(--space-3);font-size:var(--text-sm)}.btn--md{height:40px;padding:0 var(--space-4);font-size:var(--text-sm)}.btn--lg{height:48px;padding:0 var(--space-6);font-size:var(--text-base)}.btn--primary{background-color:var(--color-primary-600);color:#fff}.btn--primary:hover:not(:disabled){background-color:var(--color-primary-500);box-shadow:var(--shadow-glow-primary)}.btn--secondary{background-color:var(--surface-overlay);color:var(--text-primary);border:1px solid var(--surface-border)}.btn--secondary:hover:not(:disabled){background-color:var(--surface-raised);border-color:var(--color-primary-400)}.btn--ghost{color:var(--text-secondary);background-color:#0000}.btn--ghost:hover:not(:disabled){background-color:var(--surface-overlay);color:var(--text-primary)}.btn--danger{background-color:var(--color-danger-600);color:#fff}.btn--danger:hover:not(:disabled){background-color:var(--color-danger-500);box-shadow:var(--shadow-glow-danger)}.btn--success{background-color:var(--color-success-600);color:#fff}.btn--success:hover:not(:disabled){background-color:var(--color-success-500);box-shadow:var(--shadow-glow-success)}.btn--loading .btn__text{opacity:.8}.btn__spinner{border:2px solid;border-right-color:#0000;border-radius:50%;width:1em;height:1em;animation:.75s linear infinite spin;display:inline-block}.auth-layout{min-height:100vh;padding:var(--space-4);background:radial-gradient(circle at top center, var(--surface-raised), var(--surface-bg));justify-content:center;align-items:center;display:flex}.auth-card{background-color:var(--surface-bg);border:1px solid var(--surface-border);border-radius:var(--radius-xl);width:100%;max-width:420px;padding:var(--space-8);box-shadow:var(--shadow-xl);animation:fadeInUp var(--transition-slow)}.auth-header{text-align:center;margin-bottom:var(--space-8)}.auth-logo{background:linear-gradient(135deg, var(--color-primary-500), var(--color-primary-700));border-radius:var(--radius-lg);width:48px;height:48px;margin-bottom:var(--space-4);color:#fff;box-shadow:var(--shadow-glow-primary);justify-content:center;align-items:center;display:inline-flex}.auth-title{font-size:var(--text-2xl);margin-bottom:var(--space-2)}.auth-subtitle{color:var(--text-secondary);font-size:var(--text-sm)}.auth-form{gap:var(--space-5);flex-direction:column;display:flex}.auth-footer{margin-top:var(--space-6);text-align:center;font-size:var(--text-sm);color:var(--text-secondary)}.auth-footer a{color:var(--color-primary-400);font-weight:var(--font-medium)}.spinner{color:var(--color-primary-500);justify-content:center;align-items:center;display:inline-flex}.spinner__svg{width:100%;height:100%;animation:1s linear infinite spin}.spinner__circle{opacity:.25}.spinner__svg circle.spinner__circle{stroke-dasharray:60;stroke-dashoffset:40px;opacity:1}.spinner--sm{width:16px;height:16px}.spinner--md{width:24px;height:24px}.spinner--lg{width:32px;height:32px}.spinner--xl{width:48px;height:48px}.avatar{border-radius:var(--radius-full);background-color:var(--surface-overlay);color:var(--text-secondary);border:1px solid var(--surface-border);flex-shrink:0;justify-content:center;align-items:center;display:inline-flex;position:relative;overflow:hidden}.avatar__img{object-fit:cover;width:100%;height:100%}.avatar__initials{font-weight:var(--font-medium);text-transform:uppercase}.avatar--sm{width:24px;height:24px}.avatar--sm .avatar__initials{font-size:10px}.avatar--md{width:36px;height:36px}.avatar--md .avatar__initials{font-size:var(--text-sm)}.avatar--lg{width:48px;height:48px}.avatar--lg .avatar__initials{font-size:var(--text-lg)}.avatar--xl{width:64px;height:64px}.avatar--xl .avatar__initials{font-size:var(--text-2xl)}.tooltip-wrapper{display:inline-flex;position:relative}.tooltip{z-index:var(--z-tooltip);background-color:var(--surface-raised);color:var(--text-primary);padding:var(--space-1-5) var(--space-2-5);border-radius:var(--radius-sm);font-size:var(--text-xs);font-weight:var(--font-medium);white-space:nowrap;box-shadow:var(--shadow-md);border:1px solid var(--surface-border);pointer-events:none;animation:scaleIn var(--transition-fast) forwards;opacity:0;position:absolute}.tooltip__arrow{background-color:var(--surface-raised);border:1px solid var(--surface-border);width:8px;height:8px;position:absolute;transform:rotate(45deg)}.tooltip--top{bottom:calc(100% + var(--space-2));left:50%;transform:translate(-50%)}.tooltip--top .tooltip__arrow{border-top-color:#0000;border-left-color:#0000;bottom:-4px;left:calc(50% - 4px)}.tooltip--bottom{top:calc(100% + var(--space-2));left:50%;transform:translate(-50%)}.tooltip--bottom .tooltip__arrow{border-bottom-color:#0000;border-right-color:#0000;top:-4px;left:calc(50% - 4px)}.tooltip--left{right:calc(100% + var(--space-2));top:50%;transform:translateY(-50%)}.tooltip--left .tooltip__arrow{border-bottom-color:#0000;border-left-color:#0000;top:calc(50% - 4px);right:-4px}.tooltip--right{left:calc(100% + var(--space-2));top:50%;transform:translateY(-50%)}.tooltip--right .tooltip__arrow{border-top-color:#0000;border-right-color:#0000;top:calc(50% - 4px);left:-4px}.layout{background-color:var(--surface-bg);height:100vh;display:flex;overflow:hidden}.sidebar{width:var(--sidebar-width);background-color:var(--surface-base);border-right:1px solid var(--surface-border);transition:width var(--transition-base);z-index:var(--z-sticky);flex-direction:column;display:flex}.sidebar--collapsed{width:72px}.sidebar__header{height:var(--header-height);padding:0 var(--space-4);border-bottom:1px solid var(--surface-border);flex-shrink:0;justify-content:space-between;align-items:center;display:flex}.sidebar--collapsed .sidebar__header{justify-content:center;padding:0}.sidebar__logo{align-items:center;gap:var(--space-3);color:var(--color-primary-400);display:flex}.sidebar__brand{font-weight:var(--font-bold);font-size:var(--text-lg);color:var(--text-primary);white-space:nowrap}.sidebar__toggle{color:var(--text-secondary);border-radius:var(--radius-sm);width:32px;height:32px;transition:all var(--transition-fast);flex-shrink:0;justify-content:center;align-items:center;display:flex}.sidebar__toggle:hover{background-color:var(--surface-raised);color:var(--text-primary)}.sidebar__nav{padding:var(--space-4) var(--space-3);gap:var(--space-1);flex-direction:column;flex:1;display:flex;overflow-y:auto}.sidebar__footer{padding:var(--space-4) var(--space-3);border-top:1px solid var(--surface-border)}.nav-group{gap:var(--space-0-5);margin-bottom:var(--space-4);flex-direction:column;display:flex}.nav-group__label{font-size:10px;font-weight:var(--font-bold);color:var(--text-tertiary);text-transform:uppercase;letter-spacing:.08em;padding:0 var(--space-3) var(--space-1)}.nav-item{align-items:center;gap:var(--space-3);padding:var(--space-2-5) var(--space-3);border-radius:var(--radius-md);color:var(--text-secondary);font-weight:var(--font-medium);font-size:var(--text-sm);transition:all var(--transition-fast);white-space:nowrap;text-decoration:none;display:flex;overflow:hidden}.nav-item__icon{flex-shrink:0;align-items:center;display:flex}.nav-item__label{text-overflow:ellipsis;flex:1;overflow:hidden}.sidebar--collapsed .nav-item{padding:var(--space-2-5) 0;justify-content:center}.nav-item:hover{background-color:var(--surface-raised);color:var(--text-primary)}.nav-item--active{color:var(--color-primary-400);background-color:#6366f11f}.nav-item--active:hover{color:var(--color-primary-400);background-color:#6366f12e}.nav-item--logout{cursor:pointer;text-align:left;background:0 0;border:none;width:100%}.nav-item--logout:hover{color:var(--color-danger-500);background-color:#ef44441a}.page-placeholder{justify-content:center;align-items:center;gap:var(--space-2);min-height:300px;color:var(--text-secondary);text-align:center;flex-direction:column;display:flex}.main{flex-direction:column;flex:1;min-width:0;display:flex}.header{height:var(--header-height);background-color:var(--surface-bg);border-bottom:1px solid var(--surface-border);padding:0 var(--space-6) 0 var(--space-4);flex-shrink:0;justify-content:space-between;align-items:center;display:flex}.header__left{align-items:center;min-width:40px;display:flex}.header__sidebar-btn{border-radius:var(--radius-md);width:36px;height:36px;color:var(--text-secondary);transition:all var(--transition-fast);justify-content:center;align-items:center;display:flex}.header__actions{align-items:center;gap:var(--space-2);display:flex}.header__icon-btn{border-radius:var(--radius-md);width:36px;height:36px;color:var(--text-secondary);transition:all var(--transition-fast);flex-shrink:0;justify-content:center;align-items:center;display:flex}.header__icon-btn:hover{background-color:var(--surface-raised);color:var(--text-primary)}.user-menu{align-items:center;gap:var(--space-3);cursor:pointer;padding:var(--space-1) var(--space-2);border-radius:var(--radius-md);transition:background-color var(--transition-fast);display:flex}.user-menu:hover{background-color:var(--surface-raised)}.user-menu__info{flex-direction:column;display:flex}.user-menu__name{font-size:var(--text-sm);font-weight:var(--font-medium);color:var(--text-primary);line-height:1.2}.user-menu__role{font-size:var(--text-xs);color:var(--text-secondary)}.content{padding:var(--space-6);background-color:var(--surface-bg);flex:1;overflow-y:auto}.badge{font-weight:var(--font-medium);border-radius:var(--radius-full);white-space:nowrap;letter-spacing:.02em;justify-content:center;align-items:center;display:inline-flex}.badge--sm{padding:0 var(--space-2);height:20px;font-size:.6875rem}.badge--md{padding:0 var(--space-2-5);height:24px;font-size:var(--text-xs)}.badge--default{background-color:var(--surface-overlay);color:var(--text-primary);border:1px solid var(--surface-border)}.badge--primary{color:var(--color-primary-300);background-color:#6366f126;border:1px solid #6366f14d}.badge--success{color:var(--color-success-500);background-color:#22c55e26;border:1px solid #22c55e4d}.badge--warning{color:var(--color-warning-500);background-color:#f59e0b26;border:1px solid #f59e0b4d}.badge--danger{color:var(--color-danger-500);background-color:#ef444426;border:1px solid #ef44444d}.badge--info{color:var(--color-info-500);background-color:#3b82f626;border:1px solid #3b82f64d}.modal-overlay{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:var(--z-modal);padding:var(--space-4);background:#000000a6;justify-content:center;align-items:center;animation:.15s overlayIn;display:flex;position:fixed;inset:0}@keyframes overlayIn{0%{opacity:0}to{opacity:1}}.modal{background:var(--surface-base);border:1px solid var(--surface-border);border-radius:var(--radius-xl);box-shadow:var(--shadow-xl);max-height:calc(100vh - var(--space-8));flex-direction:column;width:100%;animation:.2s cubic-bezier(.16,1,.3,1) modalIn;display:flex}@keyframes modalIn{0%{opacity:0;transform:scale(.95)translateY(8px)}to{opacity:1;transform:scale(1)translateY(0)}}.modal--sm{max-width:400px}.modal--md{max-width:560px}.modal--lg{max-width:760px}.modal--xl{max-width:1024px}.modal--full{max-width:calc(100vw - var(--space-8));max-height:calc(100vh - var(--space-8))}.modal__header{padding:var(--space-6);border-bottom:1px solid var(--surface-border);flex-shrink:0;justify-content:space-between;align-items:flex-start;display:flex}.modal__header-text{gap:var(--space-1);flex-direction:column;display:flex}.modal__title{font-size:var(--text-lg);font-weight:var(--font-semibold);color:var(--text-primary);margin:0}.modal__subtitle{font-size:var(--text-sm);color:var(--text-secondary);margin:0}.modal__close{border-radius:var(--radius-md);width:32px;height:32px;color:var(--text-secondary);cursor:pointer;transition:all var(--transition-fast);margin-left:var(--space-4);background:0 0;border:none;flex-shrink:0;justify-content:center;align-items:center;display:flex}.modal__close:hover{background:var(--surface-raised);color:var(--text-primary)}.modal__body{padding:var(--space-6);flex:1;overflow-y:auto}.modal__footer{padding:var(--space-4) var(--space-6);border-top:1px solid var(--surface-border);justify-content:flex-end;gap:var(--space-3);flex-shrink:0;display:flex}.page-header{justify-content:space-between;align-items:flex-start;gap:var(--space-4);margin-bottom:var(--space-6);flex-wrap:wrap;display:flex}.page-header__left{gap:var(--space-2);flex-direction:column;display:flex}.page-header__breadcrumb,.page-header__crumb{align-items:center;gap:var(--space-1);display:flex}.page-header__separator{color:var(--text-tertiary);font-size:var(--text-xs)}.page-header__crumb-label{font-size:var(--text-sm);color:var(--text-tertiary)}.page-header__crumb-link{font-size:var(--text-sm);color:var(--text-secondary);transition:color var(--transition-fast);text-decoration:none}.page-header__crumb-link:hover{color:var(--text-primary)}.page-header__title-row{align-items:center;gap:var(--space-3);display:flex}.page-header__icon{border-radius:var(--radius-lg);width:44px;height:44px;color:var(--color-primary-400);background:#6366f126;flex-shrink:0;justify-content:center;align-items:center;display:flex}.page-header__title{font-size:var(--text-2xl);font-weight:var(--font-bold);color:var(--text-primary);margin:0;line-height:1.2}.page-header__subtitle{font-size:var(--text-sm);color:var(--text-secondary);margin:var(--space-1) 0 0}.page-header__actions{align-items:center;gap:var(--space-3);flex-shrink:0;display:flex}.table-wrapper{border:1px solid var(--surface-border);border-radius:var(--radius-lg);background:var(--surface-base);overflow-x:auto}.table{border-collapse:collapse;width:100%;font-size:var(--text-sm)}.table__head{background:var(--surface-raised);border-bottom:1px solid var(--surface-border)}.table__th{padding:var(--space-3) var(--space-4);font-weight:var(--font-semibold);font-size:var(--text-xs);color:var(--text-secondary);text-transform:uppercase;letter-spacing:.06em;white-space:nowrap}.table__th--left{text-align:left}.table__th--center{text-align:center}.table__th--right{text-align:right}.table__body .table__row{border-bottom:1px solid var(--surface-border-subtle);transition:background var(--transition-fast)}.table__body .table__row:last-child{border-bottom:none}.table__row--clickable{cursor:pointer}.table__row--clickable:hover{background:var(--surface-raised)}.table__td{padding:var(--space-3-5) var(--space-4);color:var(--text-primary);vertical-align:middle}.table__td--left{text-align:left}.table__td--center{text-align:center}.table__td--right{text-align:right}.table__loading,.table__empty{text-align:center;padding:var(--space-16) var(--space-4);color:var(--text-secondary)}.table__loading{justify-content:center;align-items:center;gap:var(--space-3);display:flex}.table__empty{display:table-cell}.table__empty-icon{margin-bottom:var(--space-3);opacity:.4;justify-content:center;display:flex}.tag{align-items:center;gap:var(--space-1-5);font-weight:var(--font-medium);border-radius:var(--radius-full);white-space:nowrap;line-height:1;display:inline-flex}.tag--sm{padding:3px var(--space-2);font-size:11px}.tag--md{font-size:var(--text-xs);padding:var(--space-1) var(--space-2-5)}.tag__dot{border-radius:50%;flex-shrink:0;width:6px;height:6px}.tag--default{background:var(--surface-overlay);color:var(--text-secondary)}.tag--default .tag__dot{background:var(--text-secondary)}.tag--primary{color:var(--color-primary-400);background:#6366f126}.tag--primary .tag__dot{background:var(--color-primary-400)}.tag--success{color:var(--color-success-500);background:#22c55e26}.tag--success .tag__dot{background:var(--color-success-500)}.tag--warning{color:var(--color-warning-500);background:#f59e0b26}.tag--warning .tag__dot{background:var(--color-warning-500)}.tag--danger{color:var(--color-danger-500);background:#ef444426}.tag--danger .tag__dot{background:var(--color-danger-500)}.tag--info{color:var(--color-info-500);background:#3b82f626}.tag--info .tag__dot{background:var(--color-info-500)}.tag--purple{color:#a855f7;background:#a855f726}.tag--purple .tag__dot{background:#a855f7}.tag__remove{cursor:pointer;color:currentColor;opacity:.6;width:14px;height:14px;transition:opacity var(--transition-fast);background:0 0;border:none;border-radius:50%;justify-content:center;align-items:center;padding:0;font-size:14px;line-height:1;display:inline-flex}.tag__remove:hover{opacity:1}.patient-list{gap:var(--space-5);flex-direction:column;display:flex}.patient-list__toolbar{align-items:center;gap:var(--space-3);flex-wrap:wrap;display:flex}.patient-list__search-form{align-items:center;gap:var(--space-2);flex:1;min-width:260px;display:flex}.patient-list__search-wrap{flex:1;align-items:center;display:flex;position:relative}.patient-list__search-icon{left:var(--space-3);color:var(--text-tertiary);pointer-events:none;position:absolute}.patient-list__search-input{width:100%;padding:var(--space-2-5) var(--space-10) var(--space-2-5) var(--space-9);background:var(--surface-raised);border:1px solid var(--surface-border);border-radius:var(--radius-md);color:var(--text-primary);font-size:var(--text-sm);font-family:var(--font-sans);transition:all var(--transition-fast);outline:none}.patient-list__search-input::placeholder{color:var(--text-tertiary)}.patient-list__search-input:focus{border-color:var(--color-primary-500);box-shadow:0 0 0 3px #6366f126}.patient-list__search-clear{right:var(--space-3);background:var(--surface-overlay);cursor:pointer;width:20px;height:20px;color:var(--text-secondary);transition:all var(--transition-fast);border:none;border-radius:50%;justify-content:center;align-items:center;display:flex;position:absolute}.patient-list__search-clear:hover{background:var(--color-danger-500);color:#fff}.patient-list__name-cell{align-items:center;gap:var(--space-3);display:flex}.patient-list__name{font-weight:var(--font-medium);color:var(--text-primary);font-size:var(--text-sm)}.patient-list__meta{font-size:var(--text-xs);color:var(--text-secondary);margin-top:2px}.patient-list__age,.patient-list__date{font-size:var(--text-sm);color:var(--text-secondary)}.patient-list__doctor-cell{align-items:center;gap:var(--space-2);font-size:var(--text-sm);display:flex}.patient-list__doctor-dot{border-radius:50%;flex-shrink:0;width:8px;height:8px}.patient-list__action-btn{border-radius:var(--radius-sm);cursor:pointer;width:28px;height:28px;color:var(--text-tertiary);transition:all var(--transition-fast);background:0 0;border:none;justify-content:center;align-items:center;display:flex}.patient-list__action-btn:hover{background:var(--surface-overlay);color:var(--text-primary)}.patient-list__pagination{padding:var(--space-3) var(--space-4);background:var(--surface-base);border:1px solid var(--surface-border);border-radius:var(--radius-lg);justify-content:space-between;align-items:center;display:flex}.patient-list__pagination-info{font-size:var(--text-sm);color:var(--text-secondary)}.patient-list__pagination-controls{align-items:center;gap:var(--space-3);display:flex}.patient-list__page-num{font-size:var(--text-sm);color:var(--text-primary);font-weight:var(--font-medium)}.patient-list__page-btn{border-radius:var(--radius-md);border:1px solid var(--surface-border);background:var(--surface-raised);cursor:pointer;width:32px;height:32px;color:var(--text-primary);transition:all var(--transition-fast);justify-content:center;align-items:center;display:flex}.patient-list__page-btn:hover:not(:disabled){border-color:var(--color-primary-500);color:var(--color-primary-400)}.patient-list__page-btn:disabled{opacity:.4;cursor:not-allowed}.tabs{gap:var(--space-1);border-bottom:1px solid var(--surface-border);scrollbar-width:none;flex-shrink:0;display:flex;overflow-x:auto}.tabs::-webkit-scrollbar{display:none}.tabs__tab{align-items:center;gap:var(--space-2);padding:var(--space-3) var(--space-4);font-size:var(--text-sm);font-weight:var(--font-medium);color:var(--text-secondary);cursor:pointer;white-space:nowrap;transition:all var(--transition-fast);border-radius:var(--radius-sm) var(--radius-sm) 0 0;background:0 0;border:none;border-bottom:2px solid #0000;margin-bottom:-1px;display:flex}.tabs__tab:hover:not(.tabs__tab--disabled){color:var(--text-primary);background:var(--surface-raised)}.tabs__tab--active{color:var(--color-primary-400);border-bottom-color:var(--color-primary-400)}.tabs__tab--active:hover{color:var(--color-primary-400)}.tabs__tab--disabled{opacity:.4;cursor:not-allowed}.tabs__icon{flex-shrink:0;align-items:center;display:flex}.tabs__badge{min-width:18px;height:18px;padding:0 var(--space-1);background:var(--color-primary-500);color:#fff;font-size:10px;font-weight:var(--font-bold);border-radius:var(--radius-full);justify-content:center;align-items:center;display:inline-flex}.tabs--pill{background:var(--surface-raised);padding:var(--space-1);border-radius:var(--radius-lg);border-bottom:none}.tabs--pill .tabs__tab{border-radius:var(--radius-md);border-bottom:none;margin-bottom:0}.tabs--pill .tabs__tab--active{background:var(--surface-overlay);color:var(--text-primary);border-bottom:none}.tab-panel{padding-top:var(--space-6)}.card{background:var(--surface-base);border:1px solid var(--surface-border);border-radius:var(--radius-lg);flex-direction:column;display:flex;overflow:hidden}.card--raised{background:var(--surface-raised)}.card--outlined{background:0 0}.card--clickable{cursor:pointer;transition:all var(--transition-fast)}.card--clickable:hover{border-color:var(--color-primary-500);box-shadow:0 0 0 1px var(--color-primary-500), var(--shadow-md);transform:translateY(-1px)}.card--pad-none .card__body{padding:0}.card--pad-sm .card__body{padding:var(--space-3)}.card--pad-md .card__body{padding:var(--space-5)}.card--pad-lg .card__body{padding:var(--space-6)}.card__header{padding:var(--space-4) var(--space-5);border-bottom:1px solid var(--surface-border);flex-shrink:0}.card__body{flex:1}.card__footer{padding:var(--space-4) var(--space-5);border-top:1px solid var(--surface-border);flex-shrink:0}.stat-card{background:var(--surface-base);border:1px solid var(--surface-border);border-radius:var(--radius-lg);padding:var(--space-5);gap:var(--space-3);transition:all var(--transition-base);flex-direction:column;display:flex;position:relative;overflow:hidden}.stat-card:before{content:"";height:3px;position:absolute;top:0;left:0;right:0}.stat-card--primary:before{background:var(--color-primary-500)}.stat-card--success:before{background:var(--color-success-500)}.stat-card--warning:before{background:var(--color-warning-500)}.stat-card--danger:before{background:var(--color-danger-500)}.stat-card--info:before{background:var(--color-info-500)}.stat-card:hover{box-shadow:var(--shadow-md);border-color:#ffffff26;transform:translateY(-2px)}.stat-card__header{justify-content:space-between;align-items:flex-start;display:flex}.stat-card__title{font-size:var(--text-sm);font-weight:var(--font-medium);color:var(--text-secondary)}.stat-card__icon{border-radius:var(--radius-lg);flex-shrink:0;justify-content:center;align-items:center;width:40px;height:40px;display:flex}.stat-card__icon--primary{color:var(--color-primary-400);background:#6366f126}.stat-card__icon--success{color:var(--color-success-500);background:#22c55e26}.stat-card__icon--warning{color:var(--color-warning-500);background:#f59e0b26}.stat-card__icon--danger{color:var(--color-danger-500);background:#ef444426}.stat-card__icon--info{color:var(--color-info-500);background:#3b82f626}.stat-card__value{font-size:var(--text-3xl);font-weight:var(--font-bold);color:var(--text-primary);line-height:1}.stat-card__footer{align-items:center;gap:var(--space-2);display:flex}.stat-card__trend{font-size:var(--text-sm);font-weight:var(--font-medium)}.stat-card__trend--up{color:var(--color-success-500)}.stat-card__trend--down{color:var(--color-danger-500)}.stat-card__trend-label{font-weight:var(--font-regular);color:var(--text-secondary)}.stat-card__subtitle{font-size:var(--text-xs);color:var(--text-tertiary)}.file-upload__zone{justify-content:center;align-items:center;gap:var(--space-3);padding:var(--space-8) var(--space-6);border:2px dashed var(--surface-border);border-radius:var(--radius-lg);background:var(--surface-raised);cursor:pointer;transition:all var(--transition-base);text-align:center;flex-direction:column;display:flex}.file-upload__zone:hover{border-color:var(--color-primary-500);background:#6366f10d}.file-upload__zone--dragging{border-color:var(--color-primary-400);box-shadow:var(--shadow-glow-primary);background:#6366f11a}.file-upload__zone--disabled{opacity:.5;cursor:not-allowed}.file-upload__icon{color:var(--text-tertiary);transition:color var(--transition-fast)}.file-upload__zone:hover .file-upload__icon,.file-upload__zone--dragging .file-upload__icon{color:var(--color-primary-400)}.file-upload__text{gap:var(--space-1);flex-direction:column;display:flex}.file-upload__label{font-size:var(--text-sm);font-weight:var(--font-semibold);color:var(--text-primary)}.file-upload__hint{font-size:var(--text-xs);color:var(--text-secondary)}.file-upload__accept{color:var(--text-tertiary);font-size:11px;font-family:var(--font-mono)}.file-upload__input{display:none}.file-upload__error{font-size:var(--text-xs);color:var(--color-danger-500);margin:var(--space-2) 0 0}.patient-card{flex-direction:column;gap:0;display:flex}.patient-card__loading,.patient-card__not-found{justify-content:center;align-items:center;gap:var(--space-4);min-height:300px;color:var(--text-secondary);flex-direction:column;display:flex}.patient-card__allergy-banner{align-items:center;gap:var(--space-3);padding:var(--space-3) var(--space-4);border-radius:var(--radius-lg);margin-bottom:var(--space-4);background:#ef44441f;border:1px solid #ef444459;animation:2s ease-in-out bannerPulse;display:flex}@keyframes bannerPulse{0%,to{opacity:1}50%{opacity:.7}}.patient-card__allergy-banner-icon{flex-shrink:0;font-size:18px}.patient-card__allergy-banner-text{flex:1}.patient-card__allergy-banner-title{font-size:var(--text-sm);font-weight:var(--font-semibold);color:#ef4444;margin:0 0 2px}.patient-card__allergy-banner-list{font-size:var(--text-xs);color:#ef4444d9;margin:0}.patient-card__hero360{align-items:center;gap:var(--space-6);background:var(--surface-raised);border:1px solid var(--surface-border);border-radius:var(--radius-xl);padding:var(--space-5) var(--space-6);margin-bottom:var(--space-5);display:flex;position:relative;overflow:hidden}.patient-card__hero360:before{content:"";background:var(--color-primary-500);border-radius:4px 0 0 4px;width:4px;height:100%;position:absolute;top:0;left:0}.patient-card__hero-avatar{flex-shrink:0;position:relative}.patient-card__hero-intl-badge{background:var(--surface-base);border:2px solid var(--surface-raised);border-radius:50%;justify-content:center;align-items:center;width:22px;height:22px;font-size:14px;display:flex;position:absolute;bottom:-2px;right:-2px}.patient-card__hero-main{flex:1;min-width:0}.patient-card__hero-name{font-size:var(--text-xl);font-weight:var(--font-bold);color:var(--text-primary);margin:0 0 var(--space-1);white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.patient-card__hero-meta{align-items:center;gap:var(--space-3);margin-bottom:var(--space-3);flex-wrap:wrap;display:flex}.patient-card__hero-meta-item{align-items:center;gap:var(--space-1-5);font-size:var(--text-sm);color:var(--text-secondary);display:flex}.patient-card__hero-quick{align-items:center;gap:var(--space-2);flex-wrap:wrap;display:flex}.patient-card__hero-quick-btn{align-items:center;gap:var(--space-1-5);padding:var(--space-1-5) var(--space-3);background:var(--surface-base);border:1px solid var(--surface-border);border-radius:var(--radius-md);font-size:var(--text-xs);color:var(--text-secondary);cursor:pointer;transition:all var(--transition-fast);text-decoration:none;display:flex}.patient-card__hero-quick-btn:hover{border-color:var(--color-primary-500);color:var(--color-primary-400);background:#6366f114}.patient-card__hero-stats{gap:var(--space-3);text-align:right;flex-direction:column;flex-shrink:0;display:flex}.patient-card__hero-stat360{flex-direction:column;gap:2px;display:flex}.patient-card__hero-stat360-label{color:var(--text-tertiary);text-transform:uppercase;letter-spacing:.06em;font-size:10px}.patient-card__hero-stat360-val{font-size:var(--text-sm);font-weight:var(--font-semibold);color:var(--text-primary)}.patient-card__doc-dot{border-radius:50%;flex-shrink:0;width:8px;height:8px;display:inline-block}.patient-card__layout{gap:var(--space-5);grid-template-columns:1fr 300px;align-items:start;display:grid}.patient-card__sidebar{gap:var(--space-4);top:var(--space-4);flex-direction:column;display:flex;position:sticky}.patient-card__sidebar-card{background:var(--surface-raised);border:1px solid var(--surface-border);border-radius:var(--radius-lg);overflow:hidden}.patient-card__sidebar-card-header{padding:var(--space-3) var(--space-4);border-bottom:1px solid var(--surface-border);justify-content:space-between;align-items:center;display:flex}.patient-card__sidebar-card-title{font-size:var(--text-xs);font-weight:var(--font-semibold);color:var(--text-secondary);text-transform:uppercase;letter-spacing:.06em;margin:0}.patient-card__sidebar-card-body{padding:var(--space-3) var(--space-4);gap:var(--space-2);flex-direction:column;display:flex}.patient-card__sidebar-appt{align-items:center;gap:var(--space-2-5);padding:var(--space-2) 0;border-bottom:1px solid var(--surface-border);display:flex}.patient-card__sidebar-appt:last-child{border-bottom:none;padding-bottom:0}.patient-card__sidebar-appt-bar{border-radius:3px;flex-shrink:0;width:3px;height:36px}.patient-card__sidebar-appt-info{flex:1;min-width:0}.patient-card__sidebar-appt-title{font-size:var(--text-xs);font-weight:var(--font-medium);color:var(--text-primary);white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.patient-card__sidebar-appt-date{color:var(--text-tertiary);font-size:10px}.patient-card__sidebar-finance{gap:var(--space-2);flex-direction:column;display:flex}.patient-card__sidebar-finance-row{font-size:var(--text-xs);padding:var(--space-1) 0;justify-content:space-between;align-items:center;display:flex}.patient-card__sidebar-finance-label{color:var(--text-tertiary)}.patient-card__sidebar-finance-val{font-weight:var(--font-semibold);color:var(--text-primary);font-family:var(--font-mono)}.patient-card__sidebar-finance-val--total{color:var(--color-primary-400);font-size:var(--text-sm)}.patient-card__sidebar-allergy{align-items:center;gap:var(--space-2);padding:var(--space-1-5) 0;border-bottom:1px solid var(--surface-border);display:flex}.patient-card__sidebar-allergy:last-child{border-bottom:none}.patient-card__sidebar-allergy-dot{background:#ef4444;border-radius:50%;flex-shrink:0;width:6px;height:6px}.patient-card__sidebar-allergy-name{font-size:var(--text-xs);color:var(--text-primary);flex:1}.patient-card__sidebar-info-row{justify-content:space-between;align-items:flex-start;gap:var(--space-2);padding:var(--space-1-5) 0;border-bottom:1px solid var(--surface-border);font-size:var(--text-xs);display:flex}.patient-card__sidebar-info-row:last-child{border-bottom:none}.patient-card__sidebar-info-label{color:var(--text-tertiary);flex-shrink:0}.patient-card__sidebar-info-val{color:var(--text-primary);font-weight:var(--font-medium);text-align:right;word-break:break-word}.patient-card__content{flex-direction:column;gap:0;min-width:0;display:flex}.patient-card__grid{gap:var(--space-4);grid-template-columns:repeat(auto-fit,minmax(320px,1fr));display:grid}.patient-card__card-title{font-size:var(--text-sm);font-weight:var(--font-semibold);color:var(--text-primary);margin:0}.patient-card__info-grid{gap:var(--space-4) var(--space-6);grid-template-columns:1fr 1fr;display:grid}.patient-card__info-item{gap:var(--space-0-5);flex-direction:column;display:flex}.patient-card__info-label{font-size:var(--text-xs);color:var(--text-tertiary);text-transform:uppercase;letter-spacing:.05em}.patient-card__info-val{font-size:var(--text-sm);color:var(--text-primary);font-weight:var(--font-medium)}.patient-card__notes{font-size:var(--text-sm);color:var(--text-secondary);line-height:var(--leading-relaxed);margin:0}.patient-card__tab-content{gap:var(--space-6);padding-top:var(--space-4);flex-direction:column;display:flex}.patient-card__tab-loading{align-items:center;gap:var(--space-3);color:var(--text-secondary);padding:var(--space-8) 0;display:flex}.patient-card__section{gap:var(--space-3);flex-direction:column;display:flex}.patient-card__section-header{justify-content:space-between;align-items:center;display:flex}.patient-card__section-title{font-size:var(--text-base);font-weight:var(--font-semibold);color:var(--text-primary);margin:0}.patient-card__empty-msg{font-size:var(--text-sm);color:var(--text-tertiary);padding:var(--space-6) 0;margin:0}.patient-card__list{gap:var(--space-2);flex-direction:column;display:flex}.patient-card__list-item{padding:var(--space-3) var(--space-4);background:var(--surface-raised);border:1px solid var(--surface-border);border-radius:var(--radius-md);justify-content:space-between;align-items:center;gap:var(--space-3);transition:border-color var(--transition-fast);display:flex}.patient-card__list-item:hover{border-color:#ffffff26}.patient-card__list-item-left{gap:var(--space-0-5);flex-direction:column;flex:1;min-width:0;display:flex}.patient-card__list-item-title{font-size:var(--text-sm);font-weight:var(--font-medium);color:var(--text-primary)}.patient-card__list-item-sub{font-size:var(--text-xs);color:var(--text-secondary)}.patient-card__appt-item{align-items:center;gap:var(--space-3);padding:var(--space-3) var(--space-4);background:var(--surface-raised);border:1px solid var(--surface-border);border-left:3px solid var(--color-primary-500);border-radius:var(--radius-md);transition:border-color var(--transition-fast);display:flex}.patient-card__appt-item:hover{opacity:.9}.patient-card__appt-time{flex-shrink:0;min-width:150px}.patient-card__appt-date{font-size:var(--text-sm);color:var(--text-secondary)}.patient-card__appt-info{flex-direction:column;flex:1;gap:2px;display:flex}.patient-card__appt-title{font-size:var(--text-sm);font-weight:var(--font-medium);color:var(--text-primary)}.patient-card__appt-doctor{font-size:var(--text-xs);color:var(--text-secondary);align-items:center;display:flex}.patient-card__plan-item{padding:var(--space-3) var(--space-4);background:var(--surface-raised);border:1px solid var(--surface-border);border-radius:var(--radius-md);cursor:pointer;transition:all var(--transition-fast);justify-content:space-between;align-items:center;gap:var(--space-4);display:flex}.patient-card__plan-item:hover{border-color:var(--color-primary-500);background:#6366f10d}.patient-card__plan-info{flex-direction:column;gap:2px;display:flex}.patient-card__plan-title{font-size:var(--text-sm);font-weight:var(--font-medium);color:var(--text-primary)}.patient-card__plan-date{font-size:var(--text-xs);color:var(--text-secondary)}.patient-card__plan-right{align-items:center;gap:var(--space-3);flex-shrink:0;display:flex}.patient-card__plan-cost{font-size:var(--text-sm);font-weight:var(--font-semibold);color:var(--color-success-500)}.patient-card__file-grid{gap:var(--space-3);grid-template-columns:repeat(auto-fill,minmax(180px,1fr));display:grid}.patient-card__file-card{align-items:center;gap:var(--space-2);padding:var(--space-4);background:var(--surface-raised);border:1px solid var(--surface-border);border-radius:var(--radius-lg);cursor:pointer;transition:all var(--transition-fast);text-align:center;flex-direction:column;display:flex;position:relative}.patient-card__file-card:hover{border-color:var(--color-primary-500);box-shadow:var(--shadow-md)}.patient-card__file-icon{font-size:32px}.patient-card__file-info{gap:var(--space-1);flex-direction:column;width:100%;display:flex}.patient-card__file-name{font-size:var(--text-xs);font-weight:var(--font-medium);color:var(--text-primary);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.patient-card__file-meta{color:var(--text-secondary);font-size:10px}.patient-card__file-date{color:var(--text-tertiary);font-size:10px}.patient-card__file-empty{align-items:center;gap:var(--space-3);padding:var(--space-12) 0;color:var(--text-secondary);flex-direction:column;display:flex}.patient-card__file-delete-btn{top:var(--space-2);right:var(--space-2);cursor:pointer;opacity:0;transition:opacity var(--transition-fast);color:var(--text-tertiary);background:0 0;border:none;padding:4px;position:absolute}.patient-card__file-card:hover .patient-card__file-delete-btn{opacity:1}.patient-card__file-delete-btn:hover{color:#ef4444}.patient-card__note-compose{background:var(--surface-raised);border:1px solid var(--surface-border);border-radius:var(--radius-lg);padding:var(--space-4);gap:var(--space-3);flex-direction:column;display:flex}.patient-card__note-textarea{box-sizing:border-box;width:100%;padding:var(--space-3);background:var(--surface-base);border:1px solid var(--surface-border);border-radius:var(--radius-md);color:var(--text-primary);font-size:var(--text-sm);font-family:var(--font-sans);resize:vertical;min-height:80px;transition:border-color var(--transition-fast);line-height:var(--leading-relaxed);outline:none}.patient-card__note-textarea:focus{border-color:var(--color-primary-500);box-shadow:0 0 0 3px #6366f11f}.patient-card__note-compose-footer{justify-content:space-between;align-items:center;gap:var(--space-3);display:flex}.patient-card__note-private-label{align-items:center;gap:var(--space-2);font-size:var(--text-xs);color:var(--text-secondary);cursor:pointer;-webkit-user-select:none;user-select:none;display:flex}.patient-card__notes-list{gap:var(--space-3);flex-direction:column;display:flex}.patient-card__note-item{background:var(--surface-raised);border:1px solid var(--surface-border);border-radius:var(--radius-lg);padding:var(--space-4);gap:var(--space-2);transition:border-color var(--transition-fast);flex-direction:column;display:flex}.patient-card__note-item--private{border-left:3px solid var(--color-primary-500);background:#6366f10a}.patient-card__note-header{align-items:center;gap:var(--space-2);display:flex}.patient-card__note-author{font-size:var(--text-xs);font-weight:var(--font-semibold);color:var(--text-primary)}.patient-card__note-time{font-size:var(--text-xs);color:var(--text-tertiary);flex:1}.patient-card__note-private-badge{color:var(--color-primary-400);border-radius:var(--radius-sm);font-size:10px;font-weight:var(--font-medium);background:#6366f11a;padding:2px 6px}.patient-card__note-body{font-size:var(--text-sm);color:var(--text-secondary);line-height:var(--leading-relaxed);white-space:pre-wrap;word-break:break-word}.patient-card__form{gap:var(--space-4);flex-direction:column;display:flex}.patient-card__form-group{gap:var(--space-1-5);flex-direction:column;display:flex}.patient-card__form-label{font-size:var(--text-sm);font-weight:var(--font-medium);color:var(--text-secondary)}.patient-card__form-input{padding:var(--space-2-5) var(--space-3);background:var(--surface-raised);border:1px solid var(--surface-border);border-radius:var(--radius-md);color:var(--text-primary);font-size:var(--text-sm);font-family:var(--font-sans);transition:all var(--transition-fast);box-sizing:border-box;outline:none;width:100%}.patient-card__form-input:focus{border-color:var(--color-primary-500);box-shadow:0 0 0 3px #6366f126}.patient-card__form-textarea{resize:vertical}.patient-card__selected-files{margin-top:var(--space-3);gap:var(--space-2);flex-direction:column;display:flex}.patient-card__selected-file{padding:var(--space-2) var(--space-3);background:var(--surface-raised);border-radius:var(--radius-sm);font-size:var(--text-xs);color:var(--text-secondary);justify-content:space-between;align-items:center;display:flex}.patient-card__file-size{color:var(--text-tertiary);font-family:var(--font-mono)}@media (width<=1024px){.patient-card__layout{grid-template-columns:1fr}.patient-card__sidebar{grid-template-columns:repeat(auto-fit,minmax(240px,1fr));display:grid;position:static}}@media (width<=640px){.patient-card__hero360{flex-direction:column;align-items:flex-start}.patient-card__hero-stats{text-align:left;gap:var(--space-4);flex-direction:row}}.new-patient{flex-direction:column;gap:0;display:flex}.new-patient__form{gap:var(--space-6);flex-direction:column;display:flex}.new-patient__section{background:var(--surface-base);border:1px solid var(--surface-border);border-radius:var(--radius-lg);padding:var(--space-6);gap:var(--space-4);flex-direction:column;display:flex}.new-patient__section-title{font-size:var(--text-base);font-weight:var(--font-semibold);color:var(--text-primary);margin:0 0 var(--space-2);padding-bottom:var(--space-3);border-bottom:1px solid var(--surface-border)}.new-patient__grid{gap:var(--space-4);grid-template-columns:repeat(2,1fr);display:grid}.new-patient__field{gap:var(--space-1-5);flex-direction:column;display:flex}.new-patient__field--full{grid-column:1/-1}.new-patient__label{font-size:var(--text-sm);font-weight:var(--font-medium);color:var(--text-secondary)}.new-patient__label--checkbox{align-items:center;gap:var(--space-2);cursor:pointer;padding-top:var(--space-5);display:flex}.new-patient__checkbox{width:16px;height:16px;accent-color:var(--color-primary-500);cursor:pointer}.new-patient__input{padding:var(--space-2-5) var(--space-3);background:var(--surface-raised);border:1px solid var(--surface-border);border-radius:var(--radius-md);color:var(--text-primary);font-size:var(--text-sm);font-family:var(--font-sans);transition:all var(--transition-fast);box-sizing:border-box;outline:none;width:100%}.new-patient__input::placeholder{color:var(--text-tertiary)}.new-patient__input:focus{border-color:var(--color-primary-500);box-shadow:0 0 0 3px #6366f126}.new-patient__input--error{border-color:var(--color-danger-500)}.new-patient__textarea{resize:vertical}.new-patient__error{font-size:var(--text-xs);color:var(--color-danger-500)}.new-patient__error-banner{align-items:center;gap:var(--space-2);padding:var(--space-3) var(--space-4);border-radius:var(--radius-md);color:var(--color-danger-500);font-size:var(--text-sm);background:#ef44441a;border:1px solid #ef44444d;display:flex}.new-patient__actions{justify-content:flex-end;gap:var(--space-3);padding:var(--space-4) 0;display:flex}.searchable-select-wrapper{flex-direction:column;gap:4px;display:flex}.searchable-select-wrapper.select-wrapper--full{width:100%}.searchable-select__container{width:100%;position:relative}.searchable-select__field{background-color:var(--surface-base);border:1px solid var(--surface-border);border-radius:var(--radius-md);width:100%;color:var(--text-primary);cursor:pointer;justify-content:space-between;align-items:center;min-height:38px;padding:8px 12px;font-family:inherit;font-size:.875rem;transition:all .2s;display:flex}.searchable-select__field:hover{border-color:var(--brand-primary)}.searchable-select__placeholder{color:var(--text-tertiary)}.searchable-select__value{color:var(--text-primary)}.searchable-select__arrow{color:var(--text-tertiary);align-items:center;display:flex}.searchable-select__dropdown{background-color:var(--surface-base);border:1px solid var(--surface-border);border-radius:var(--radius-md);z-index:50;flex-direction:column;width:100%;max-height:300px;display:flex;position:absolute;top:calc(100% + 4px);left:0;box-shadow:0 4px 12px #0000001a}.searchable-select__search-wrapper{border-bottom:1px solid var(--surface-border);align-items:center;gap:8px;padding:8px 12px;display:flex}.searchable-select__search-icon{color:var(--text-tertiary)}.searchable-select__search-input{color:var(--text-primary);background:0 0;border:none;outline:none;flex:1;font-size:.875rem}.searchable-select__search-input::placeholder{color:var(--text-tertiary)}.searchable-select__options{padding:4px 0;overflow-y:auto}.searchable-select__option{color:var(--text-primary);cursor:pointer;padding:8px 12px;font-size:.875rem;transition:background .15s}.searchable-select__option:hover{background-color:var(--surface-bg)}.searchable-select__option--selected{background-color:var(--brand-primary-light,#3b82f61a);color:var(--brand-primary,#3b82f6);font-weight:500}.searchable-select__no-options{text-align:center;color:var(--text-tertiary);padding:12px;font-size:.875rem}.cal{gap:var(--space-4);flex-direction:column;display:flex}.cal__controls{justify-content:space-between;align-items:center;gap:var(--space-4);flex-wrap:wrap;display:flex}.cal__nav{align-items:center;gap:var(--space-2);display:flex}.cal__nav-btn{border-radius:var(--radius-md);border:1px solid var(--surface-border);background:var(--surface-raised);width:32px;height:32px;color:var(--text-primary);cursor:pointer;transition:all var(--transition-fast);justify-content:center;align-items:center;display:flex}.cal__nav-btn:hover{border-color:var(--color-primary-500);color:var(--color-primary-400)}.cal__today-btn{padding:0 var(--space-3);border-radius:var(--radius-md);border:1px solid var(--surface-border);background:var(--surface-raised);height:32px;color:var(--text-primary);font-size:var(--text-sm);font-family:var(--font-sans);cursor:pointer;transition:all var(--transition-fast)}.cal__today-btn:hover{border-color:var(--color-primary-500);color:var(--color-primary-400)}.cal__range-label{font-size:var(--text-sm);font-weight:var(--font-semibold);color:var(--text-primary);margin-left:var(--space-2)}.cal__filters{gap:var(--space-3);display:flex}.cal__filter-select{padding:var(--space-1-5) var(--space-3);background:var(--surface-raised);border:1px solid var(--surface-border);border-radius:var(--radius-md);color:var(--text-primary);font-size:var(--text-sm);font-family:var(--font-sans);cursor:pointer;outline:none}.cal__loading{align-items:center;gap:var(--space-2);font-size:var(--text-sm);color:var(--text-secondary);display:flex}.cal__wrapper{background:var(--surface-base);border:1px solid var(--surface-border);border-radius:var(--radius-lg);overflow:auto hidden}.cal__header-row{border-bottom:1px solid var(--surface-border);background:var(--surface-raised);z-index:10;grid-template-columns:60px repeat(7,1fr);display:grid;position:sticky;top:0}.cal__time-gutter{border-right:1px solid var(--surface-border)}.cal__day-header{align-items:center;gap:var(--space-1);padding:var(--space-3) var(--space-2);border-right:1px solid var(--surface-border-subtle);transition:background var(--transition-fast);flex-direction:column;display:flex}.cal__day-header:last-child{border-right:none}.cal__day-header--today{background:#6366f10d}.cal__day-name{font-size:11px;font-weight:var(--font-semibold);color:var(--text-tertiary);text-transform:uppercase;letter-spacing:.06em}.cal__day-num{font-size:var(--text-lg);font-weight:var(--font-semibold);color:var(--text-secondary);border-radius:50%;justify-content:center;align-items:center;width:36px;height:36px;display:flex}.cal__day-num--today{background:var(--color-primary-500);color:#fff}.cal__day-badge{background:var(--color-primary-500);color:#fff;border-radius:var(--radius-full);font-size:10px;font-weight:var(--font-bold);padding:1px 6px}.cal__body{grid-template-columns:60px repeat(7,1fr);min-height:720px;display:grid}.cal__time-col{border-right:1px solid var(--surface-border)}.cal__time-slot{height:60px;padding-top:var(--space-1);padding-right:var(--space-2);color:var(--text-tertiary);border-bottom:1px solid var(--surface-border-subtle);justify-content:flex-end;align-items:flex-start;font-size:11px;display:flex}.cal__day-col{border-right:1px solid var(--surface-border-subtle);position:relative}.cal__day-col:last-child{border-right:none}.cal__day-col--today{background:#6366f108}.cal__hour-cell{border-bottom:1px solid var(--surface-border-subtle);cursor:pointer;height:60px;transition:background var(--transition-fast)}.cal__hour-cell:hover{background:#6366f10f}.cal__appt{border-radius:var(--radius-sm);padding:3px var(--space-2);cursor:pointer;z-index:5;transition:all var(--transition-fast);-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);position:absolute;left:2px;right:2px;overflow:hidden}.cal__appt:hover{z-index:6;box-shadow:var(--shadow-md);transform:scaleX(1.01)}.cal__appt-patient{font-size:11px;font-weight:var(--font-semibold);white-space:nowrap;text-overflow:ellipsis;display:block;overflow:hidden}.cal__appt-type{opacity:.75;white-space:nowrap;text-overflow:ellipsis;font-size:10px;display:block;overflow:hidden}.cal__form{gap:var(--space-4);flex-direction:column;display:flex}.cal__form-error{padding:var(--space-2-5) var(--space-3);border-radius:var(--radius-md);color:var(--color-danger-500);font-size:var(--text-sm);background:#ef44441a;border:1px solid #ef44444d}.cal__form-grid{gap:var(--space-4);grid-template-columns:1fr 1fr;display:grid}.cal__form-field{gap:var(--space-1-5);flex-direction:column;display:flex}.cal__form-field--full{grid-column:1/-1}.cal__form-label{font-size:var(--text-sm);font-weight:var(--font-medium);color:var(--text-secondary)}.cal__form-input{padding:var(--space-2-5) var(--space-3);background:var(--surface-raised);border:1px solid var(--surface-border);border-radius:var(--radius-md);color:var(--text-primary);font-size:var(--text-sm);font-family:var(--font-sans);transition:all var(--transition-fast);box-sizing:border-box;outline:none;width:100%}.cal__form-input:focus{border-color:var(--color-primary-500);box-shadow:0 0 0 3px #6366f126}.cal__form-textarea{resize:vertical}.cal__time-inputs{align-items:center;gap:var(--space-2);display:flex}.cal__time-inputs>span{font-weight:var(--font-bold);color:var(--text-secondary)}.cal__time-inputs .cal__form-input{flex:1}.cal__detail{gap:var(--space-3);flex-direction:column;display:flex}.cal__detail-row{padding:var(--space-2-5) 0;border-bottom:1px solid var(--surface-border-subtle);justify-content:space-between;align-items:center;display:flex}.cal__detail-row:last-child{border-bottom:none}.cal__detail-row--col{align-items:flex-start;gap:var(--space-1);flex-direction:column}.cal__detail-label{font-size:var(--text-xs);color:var(--text-tertiary);text-transform:uppercase;letter-spacing:.05em}.cal__detail-val{font-size:var(--text-sm);font-weight:var(--font-medium);color:var(--text-primary)}.cal__detail-notes{color:var(--text-secondary);font-weight:var(--font-regular)}.odontogram-container{background:var(--surface-base);border-radius:var(--radius-lg);width:100%;max-width:900px;padding:var(--space-4);margin:0 auto}.odontogram-container svg{width:100%;height:auto}.tooth-group{cursor:pointer;transition:transform .1s}.tooth-group:hover path{fill:#bfdbfe!important}.tooth-group--selected path{fill:var(--color-primary-500)!important}.tooth-group text{-webkit-user-select:none;user-select:none;pointer-events:none}.treatment-plan-page{max-width:1400px;margin:0 auto}.treatment-plan-page .form-input{outline:none;font-family:inherit;font-size:1rem;transition:border-color .2s}.treatment-plan-page .form-input:focus{border-color:var(--color-primary-500)!important}.work-orders{flex-direction:column;height:100%;display:flex}.work-orders__loading{flex:1;justify-content:center;align-items:center;display:flex}.wo-card{background-color:var(--surface-base);border:1px solid var(--surface-border);border-radius:var(--radius-md);padding:var(--space-3);box-shadow:var(--shadow-sm);cursor:grab;gap:var(--space-2);flex-direction:column;display:flex}.wo-card:hover{border-color:var(--color-primary-400)}.wo-card:active{cursor:grabbing}.wo-card__header{justify-content:space-between;align-items:flex-start;display:flex}.wo-card__patient{font-weight:var(--font-semibold);font-size:var(--text-sm);color:var(--text-primary);line-height:1.2}.wo-card__id{color:var(--text-tertiary);font-size:10px;font-family:var(--font-mono);background:var(--surface-raised);border-radius:4px;padding:2px 6px}.wo-card__body{flex-direction:column;gap:4px;display:flex}.wo-card__material{align-items:center;gap:var(--space-1-5);font-size:var(--text-xs);color:var(--text-secondary);display:flex}.wo-card__date{align-items:center;gap:var(--space-1-5);font-size:var(--text-xs);color:var(--color-warning-500);font-weight:var(--font-medium);display:flex}.wo-card__footer{border-top:1px dashed var(--surface-border-subtle);justify-content:flex-end;margin-top:4px;padding-top:8px;display:flex}.wo-card__doctor{align-items:center;gap:var(--space-1-5);font-size:var(--text-xs);color:var(--text-tertiary);display:flex}.wo-form{gap:var(--space-4);flex-direction:column;display:flex}.form-group{gap:var(--space-2);flex-direction:column;display:flex}.form-group label{font-size:var(--text-sm);font-weight:var(--font-medium);color:var(--text-secondary)}.form-control{padding:var(--space-2-5) var(--space-3);background-color:var(--surface-base);border:1px solid var(--surface-border-strong);border-radius:var(--radius-md);color:var(--text-primary);font-family:inherit;font-size:var(--text-sm);transition:all var(--transition-fast)}.form-control:focus{border-color:var(--color-primary-500);outline:none;box-shadow:0 0 0 2px #6366f133}.inventory{flex-direction:column;height:100%;display:flex}.inventory__content{background:var(--surface-base);border:1px solid var(--surface-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);flex:1;overflow:hidden}.inventory__name{flex-direction:column;gap:2px;display:flex}.inventory__item-name{font-weight:var(--font-medium);color:var(--text-primary)}.inventory__item-sku{color:var(--text-tertiary);font-size:11px;font-family:var(--font-mono)}.inventory__stock-cell{align-items:center;gap:var(--space-3);display:flex}.inventory__quantity{font-weight:var(--font-semibold);color:var(--color-success-600)}.inventory__quantity--low{color:var(--color-danger-500)}.inventory__actions{gap:var(--space-2);display:flex}.leads-page{flex-direction:column;height:100%;display:flex}.leads__loading{flex:1;justify-content:center;align-items:center;display:flex}.kanban{gap:var(--space-4);padding-bottom:var(--space-4);flex:1;display:flex;overflow-x:auto}.kanban::-webkit-scrollbar{height:8px}.kanban::-webkit-scrollbar-track{background:var(--surface-base);border-radius:4px}.kanban::-webkit-scrollbar-thumb{background:var(--surface-border-strong);border-radius:4px}.kanban__column{background-color:var(--surface-raised);border-radius:var(--radius-lg);border:1px solid var(--surface-border);flex-direction:column;min-width:280px;max-width:280px;display:flex}.kanban__column-header{padding:var(--space-3) var(--space-4);border-bottom:1px solid var(--surface-border);border-top-left-radius:var(--radius-lg);border-top-right-radius:var(--radius-lg);background-color:var(--surface-base);border-top-style:solid;border-top-width:4px;justify-content:space-between;align-items:center;display:flex}.kanban__column-title{font-weight:var(--font-semibold);font-size:var(--text-sm);color:var(--text-primary)}.kanban__column-count{background-color:var(--surface-raised);color:var(--text-tertiary);font-size:11px;font-weight:var(--font-bold);border-radius:var(--radius-full);padding:2px 8px}.kanban__column-body{padding:var(--space-3);gap:var(--space-3);flex-direction:column;flex:1;min-height:150px;display:flex;overflow-y:auto}.lead-card{background-color:var(--surface-base);border:1px solid var(--surface-border);border-radius:var(--radius-md);padding:var(--space-3);box-shadow:var(--shadow-sm);cursor:grab;gap:var(--space-2);flex-direction:column;display:flex}.lead-card:hover{border-color:var(--color-primary-400)}.lead-card:active{cursor:grabbing}.lead-card__header{justify-content:space-between;align-items:flex-start;gap:8px;display:flex}.lead-card__name{font-weight:var(--font-semibold);font-size:var(--text-sm);color:var(--text-primary);line-height:1.2}.lead-card__body{flex-direction:column;gap:6px;margin-top:4px;display:flex}.lead-card__contact{align-items:center;gap:var(--space-2);font-size:var(--text-xs);color:var(--text-secondary);display:flex}.lead-card__source{margin-top:2px}.source-badge{background:var(--surface-raised);color:var(--text-tertiary);font-size:10px;font-family:var(--font-mono);border-radius:4px;padding:2px 6px}.lead-card__footer{border-top:1px dashed var(--surface-border-subtle);justify-content:center;margin-top:8px;padding-top:8px;display:flex}.crm-form{gap:var(--space-4);flex-direction:column;display:flex}.analytics-dashboard{gap:var(--space-6);flex-direction:column;display:flex}.analytics__charts{gap:var(--space-4);grid-template-columns:2fr 1fr;display:grid}@media (width<=1024px){.analytics__charts{grid-template-columns:1fr}}.analytics__chart-card{background:var(--surface-base);border:1px solid var(--surface-border);border-radius:var(--radius-lg);padding:var(--space-4);box-shadow:var(--shadow-sm)}.analytics__chart-title{font-size:var(--text-base);font-weight:var(--font-semibold);margin-bottom:var(--space-4);color:var(--text-primary)}.toast-container{top:var(--space-4);right:var(--space-4);z-index:var(--z-toast);gap:var(--space-2);pointer-events:none;flex-direction:column;width:100%;max-width:380px;display:flex;position:fixed}@media (width<=640px){.toast-container{top:auto;bottom:var(--space-4);max-width:calc(100vw - var(--space-8));right:50%;transform:translate(50%)}}.toast{pointer-events:auto;background-color:var(--surface-raised);color:var(--text-primary);border:1px solid var(--surface-border);border-radius:var(--radius-lg);padding:var(--space-3) var(--space-4);align-items:flex-start;gap:var(--space-3);box-shadow:var(--shadow-lg);animation:slideInRight var(--transition-base) forwards;display:flex}@media (width<=640px){.toast{animation:fadeInUp var(--transition-base) forwards}}.toast__content{flex:1;min-width:0;padding-top:2px}.toast__message{font-weight:var(--font-medium);font-size:var(--text-sm);line-height:var(--leading-tight)}.toast__description{font-size:var(--text-xs);color:var(--text-secondary);margin-top:var(--space-1);line-height:var(--leading-normal)}.toast__icon{flex-shrink:0;justify-content:center;align-items:center;display:flex}.toast__close{color:var(--text-tertiary);margin-left:var(--space-2);padding:var(--space-1);border-radius:var(--radius-sm);transition:all var(--transition-fast);flex-shrink:0;margin-top:-2px;margin-right:-8px}.toast__close:hover{color:var(--text-primary);background-color:var(--surface-overlay)}.toast--success .toast__icon{color:var(--color-success-500)}.toast--success{border-left:4px solid var(--color-success-500)}.toast--error .toast__icon{color:var(--color-danger-500)}.toast--error{border-left:4px solid var(--color-danger-500)}.toast--warning .toast__icon{color:var(--color-warning-500)}.toast--warning{border-left:4px solid var(--color-warning-500)}.toast--info .toast__icon{color:var(--color-info-500)}.toast--info{border-left:4px solid var(--color-info-500)}:root{--color-primary-50:#eef2ff;--color-primary-100:#e0e7ff;--color-primary-200:#c7d2fe;--color-primary-300:#a5b4fc;--color-primary-400:#818cf8;--color-primary-500:#6366f1;--color-primary-600:#4f46e5;--color-primary-700:#4338ca;--color-primary-800:#3730a3;--color-primary-900:#312e81;--color-gray-50:#f9fafb;--color-gray-100:#f3f4f6;--color-gray-200:#e5e7eb;--color-gray-300:#d1d5db;--color-gray-400:#9ca3af;--color-gray-500:#6b7280;--color-gray-600:#4b5563;--color-gray-700:#374151;--color-gray-800:#1f2937;--color-gray-900:#111827;--color-gray-950:#030712;--color-success-50:#f0fdf4;--color-success-500:#22c55e;--color-success-600:#16a34a;--color-success-700:#15803d;--color-warning-50:#fffbeb;--color-warning-500:#f59e0b;--color-warning-600:#d97706;--color-danger-50:#fef2f2;--color-danger-500:#ef4444;--color-danger-600:#dc2626;--color-danger-700:#b91c1c;--color-info-50:#eff6ff;--color-info-500:#3b82f6;--color-info-600:#2563eb;--surface-bg:#0f1117;--surface-base:#161b27;--surface-raised:#1c2333;--surface-overlay:#232b3e;--surface-border:#ffffff14;--surface-border-subtle:#ffffff0d;--text-primary:#fffffff2;--text-secondary:#fff9;--text-tertiary:#ffffff59;--text-disabled:#ffffff40;--text-inverse:#0f1117;--shadow-input:0 0 0 3px #6366f140;--font-sans:"Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--font-mono:"JetBrains Mono", "Fira Code", "Consolas", monospace;--text-xs:.75rem;--text-sm:.875rem;--text-base:1rem;--text-lg:1.125rem;--text-xl:1.25rem;--text-2xl:1.5rem;--text-3xl:1.875rem;--text-4xl:2.25rem;--font-light:300;--font-regular:400;--font-medium:500;--font-semibold:600;--font-bold:700;--leading-tight:1.25;--leading-snug:1.375;--leading-normal:1.5;--leading-relaxed:1.625;--space-0:0;--space-0-5:.125rem;--space-1:.25rem;--space-1-5:.375rem;--space-2:.5rem;--space-2-5:.625rem;--space-3:.75rem;--space-3-5:.875rem;--space-4:1rem;--space-5:1.25rem;--space-6:1.5rem;--space-7:1.75rem;--space-8:2rem;--space-10:2.5rem;--space-12:3rem;--space-16:4rem;--space-20:5rem;--radius-sm:.25rem;--radius-md:.5rem;--radius-lg:.75rem;--radius-xl:1rem;--radius-2xl:1.5rem;--radius-full:9999px;--shadow-sm:0 1px 3px #0000004d, 0 1px 2px #0003;--shadow-md:0 4px 12px #0006, 0 2px 4px #0000004d;--shadow-lg:0 10px 30px #00000080, 0 4px 8px #0000004d;--shadow-xl:0 20px 50px #0009, 0 8px 16px #0006;--shadow-glow-primary:0 0 20px #6366f14d;--shadow-glow-success:0 0 20px #22c55e4d;--shadow-glow-danger:0 0 20px #ef44444d;--z-base:0;--z-raised:10;--z-dropdown:100;--z-sticky:200;--z-overlay:300;--z-modal:400;--z-toast:500;--z-tooltip:600;--transition-fast:.1s cubic-bezier(.16, 1, .3, 1);--transition-base:.2s cubic-bezier(.16, 1, .3, 1);--transition-slow:.35s cubic-bezier(.16, 1, .3, 1);--transition-spring:.5s cubic-bezier(.34, 1.56, .64, 1);--sidebar-width:260px;--header-height:64px;--content-max-width:1400px}.theme-light{--surface-bg:#f5f5f5;--surface-base:#fff;--surface-raised:#eef1f8;--surface-overlay:#e4e8f3;--surface-border:#0000001a;--surface-border-subtle:#0000000f;--text-primary:#0f1117eb;--text-secondary:#0f11178f;--text-tertiary:#0f111761;--text-disabled:#0f11173d;--text-inverse:#fff;--shadow-sm:0 1px 3px #00000014, 0 1px 2px #0000000d;--shadow-md:0 4px 12px #0000001a, 0 2px 4px #0000000f;--shadow-lg:0 10px 30px #0000001f, 0 4px 8px #0000000f;--shadow-xl:0 20px 50px #00000026, 0 8px 16px #00000014;--shadow-input:0 0 0 3px #6366f12e}.theme-dark{--surface-bg:#0f1117;--surface-base:#161b27;--surface-raised:#1c2333;--surface-overlay:#232b3e;--surface-border:#ffffff14;--surface-border-subtle:#ffffff0d;--text-primary:#fffffff2;--text-secondary:#fff9;--text-tertiary:#ffffff59;--text-disabled:#ffffff40;--text-inverse:#0f1117;--shadow-sm:0 1px 3px #0000004d, 0 1px 2px #0003;--shadow-md:0 4px 12px #0006, 0 2px 4px #0000004d;--shadow-lg:0 10px 30px #00000080, 0 4px 8px #0000004d;--shadow-xl:0 20px 50px #0009, 0 8px 16px #0006}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizelegibility;scroll-behavior:smooth;font-size:16px}body{font-family:var(--font-sans);font-size:var(--text-base);font-weight:var(--font-regular);line-height:var(--leading-normal);color:var(--text-primary);background-color:var(--surface-bg);min-height:100vh;overflow-x:hidden}h1,h2,h3,h4,h5,h6{font-weight:var(--font-semibold);line-height:var(--leading-tight);color:var(--text-primary)}h1{font-size:var(--text-4xl)}h2{font-size:var(--text-3xl)}h3{font-size:var(--text-2xl)}h4{font-size:var(--text-xl)}h5{font-size:var(--text-lg)}h6{font-size:var(--text-base)}p{line-height:var(--leading-relaxed);color:var(--text-secondary)}a{color:var(--color-primary-400);transition:color var(--transition-fast);text-decoration:none}a:hover{color:var(--color-primary-300);text-decoration:underline}code{font-family:var(--font-mono);background-color:var(--surface-overlay);border-radius:var(--radius-sm);color:var(--color-primary-300);padding:.1em .35em;font-size:.875em}button{cursor:pointer;background:0 0;border:none;outline:none;font-family:inherit}input,textarea,select{font-family:inherit;font-size:inherit}ul,ol{list-style:none}img,svg{max-width:100%;display:block}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:var(--surface-overlay);border-radius:var(--radius-full)}::-webkit-scrollbar-thumb:hover{background:var(--color-gray-600)}::selection{background-color:var(--color-primary-600);color:#fff}:focus-visible{outline:2px solid var(--color-primary-500);outline-offset:2px;border-radius:var(--radius-sm)}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}#root{flex-direction:column;min-height:100vh;display:flex}.glass{-webkit-backdrop-filter:blur(12px);border:1px solid var(--surface-border);background:#ffffff0a}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes fadeInUp{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeInDown{0%{opacity:0;transform:translateY(-12px)}to{opacity:1;transform:translateY(0)}}@keyframes scaleIn{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}@keyframes slideInRight{0%{opacity:0;transform:translate(16px)}to{opacity:1;transform:translate(0)}}@keyframes spin{to{transform:rotate(360deg)}}@keyframes pulse{0%,to{opacity:1}50%{opacity:.4}}@keyframes shimmer{0%{background-position:-200% 0}to{background-position:200% 0}}.skeleton{background:linear-gradient(90deg, var(--surface-raised) 25%, var(--surface-overlay) 50%, var(--surface-raised) 75%);border-radius:var(--radius-md);background-size:200% 100%;animation:1.5s infinite shimmer}
