.sidebar{position:fixed;left:0;top:0;height:100vh;width:var(--sidebar-width);background:var(--color-white);border-right:1px solid var(--color-gray-200);display:flex;flex-direction:column;z-index:100;overflow-y:auto}.sidebar-header{padding:.5rem .75rem;border-bottom:1px solid var(--color-gray-200);display:flex;align-items:center;justify-content:space-between}.sidebar-logo{display:flex;align-items:center;justify-content:center;gap:.75rem;margin-bottom:.5rem}.sidebar-close-btn{display:none;border:none;background:transparent;font-size:1.25rem;line-height:1;cursor:pointer;color:var(--color-gray-500)}.sidebar-close-btn:hover{color:var(--color-gray-800)}.logo-image{height:56px;width:auto;object-fit:contain}.sidebar-title{font-size:1rem;font-weight:600;color:var(--color-gray-900);margin:0}.sidebar-subtitle{font-size:.875rem;color:var(--color-gray-500);margin:0}.sidebar-search{margin:1rem;position:relative;display:flex;align-items:center}.search-icon{position:absolute;left:.75rem;color:var(--color-gray-400);pointer-events:none}.search-input{width:100%;padding:.5rem 2.5rem;font-size:.875rem;border:1px solid var(--color-gray-200);border-radius:var(--border-radius-sm);background:var(--color-gray-50);transition:all var(--transition-fast)}.search-input:focus{outline:none;background:var(--color-white);border-color:var(--brand-primary);box-shadow:0 0 0 3px #d4a04c1a}.search-kbd{position:absolute;right:.75rem;font-size:.75rem;color:var(--color-gray-400);background:var(--color-white);padding:.125rem .375rem;border-radius:3px;border:1px solid var(--color-gray-200);font-family:var(--font-family-mono)}.sidebar-menu-item{display:flex;align-items:center;gap:.75rem;padding:.75rem 1rem;margin:0 .5rem;font-size:.875rem;color:var(--color-gray-700);border-radius:var(--border-radius-sm);cursor:pointer;transition:all var(--transition-fast)}.sidebar-menu-item:hover{background:var(--color-gray-50);color:var(--color-gray-900)}.sidebar-nav{flex:1;padding:.5rem;overflow-y:auto}.sidebar-nav-item{display:flex;align-items:center;gap:.75rem;padding:.75rem 1rem;margin-bottom:.25rem;font-size:.875rem;color:var(--color-gray-700);border-radius:var(--border-radius-sm);cursor:pointer;transition:all var(--transition-fast);text-decoration:none}.sidebar-nav-item:hover{background:var(--color-gray-50);color:var(--color-gray-900);transform:translate(2px)}.sidebar-nav-item.active{background:linear-gradient(135deg,var(--brand-primary-light),var(--brand-primary));color:var(--color-white);font-weight:500;box-shadow:var(--shadow-md)}.sidebar-nav-item.active:hover{background:linear-gradient(135deg,var(--brand-primary),var(--brand-primary-dark));transform:translate(2px)}.sidebar-footer{padding:1rem;border-top:1px solid var(--color-gray-200)}.sidebar-collapse-btn{display:flex;align-items:center;gap:.75rem;width:100%;padding:.75rem 1rem;margin-bottom:1rem;font-size:.875rem;color:var(--color-gray-700);background:transparent;border:1px solid var(--color-gray-200);border-radius:var(--border-radius-sm);cursor:pointer;transition:all var(--transition-fast)}.sidebar-collapse-btn:hover{background:var(--color-gray-50);border-color:var(--color-gray-300)}.sidebar-user{display:flex;align-items:center;gap:.75rem;padding:.75rem;background:var(--color-gray-50);border-radius:var(--border-radius);cursor:pointer;transition:all var(--transition-fast)}.sidebar-user:hover{background:var(--color-gray-100)}.user-avatar{width:36px;height:36px;border-radius:50%;background:linear-gradient(135deg,var(--brand-primary),var(--brand-accent));color:var(--color-white);display:flex;align-items:center;justify-content:center;font-weight:600;font-size:.875rem;flex-shrink:0}.user-info{flex:1;min-width:0}.user-name{font-size:.875rem;font-weight:500;color:var(--color-gray-900);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.user-email{font-size:.75rem;color:var(--color-gray-500);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sidebar-user-container{position:relative}.user-menu-icon{color:var(--color-gray-500);transition:transform var(--transition-fast);flex-shrink:0}.user-menu-icon.open{transform:rotate(180deg)}.user-dropdown-menu{position:absolute;bottom:100%;left:0;right:0;margin-bottom:.5rem;background:var(--color-white);border-radius:var(--border-radius);box-shadow:var(--shadow-lg);border:1px solid var(--color-gray-200);overflow:hidden;animation:slideUp .2s ease-out;z-index:1000}@keyframes slideUp{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.user-menu-item{display:flex;align-items:center;gap:.75rem;width:100%;padding:.875rem 1rem;font-size:.875rem;color:var(--color-gray-700);background:transparent;border:none;cursor:pointer;transition:all var(--transition-fast);text-align:left}.user-menu-item:hover{background:var(--color-gray-50);color:var(--color-gray-900)}.user-menu-item.logout{color:var(--color-error);border-top:1px solid var(--color-gray-200)}.user-menu-item.logout:hover{background:#fee2e2;color:#991b1b}@media (max-width: 768px){.sidebar{transform:translate(-100%);transition:transform var(--transition-normal)}.sidebar.open{transform:translate(0)}.sidebar-close-btn{display:inline-flex;align-items:center;justify-content:center;padding:.25rem}}.header{height:var(--header-height);background:var(--color-white);border-bottom:1px solid var(--color-gray-200);display:flex;align-items:center;padding:0 2rem;position:sticky;top:0;z-index:50}.header-content{display:flex;align-items:center;justify-content:space-between;width:100%}.header-left{display:flex;align-items:center;gap:1rem}.header-breadcrumb{display:flex;align-items:center;gap:.5rem;font-size:.875rem;color:var(--color-gray-600)}.breadcrumb-icon{font-size:1rem}.breadcrumb-text{font-weight:400}.header-right{display:flex;align-items:center;gap:.75rem}.header-menu-btn{display:none}.header-action-btn{display:flex;align-items:center;justify-content:center;width:36px;height:36px;background:transparent;border:none;border-radius:var(--border-radius-sm);color:var(--color-gray-600);cursor:pointer;transition:all var(--transition-fast)}.header-action-btn:hover{background:var(--color-gray-100);color:var(--color-gray-900)}@media (max-width: 768px){.header{padding:0 1rem}.header-menu-btn{display:flex;align-items:center;justify-content:center;width:36px;height:36px;background:transparent;border:none;border-radius:var(--border-radius-sm);color:var(--color-gray-600);cursor:pointer;transition:all var(--transition-fast)}.header-menu-btn:hover{background:var(--color-gray-100);color:var(--color-gray-900)}}.layout{display:flex;height:100vh;width:100%;overflow:hidden}.layout-main{flex:1;display:flex;flex-direction:column;overflow:hidden;margin-left:var(--sidebar-width)}.layout-content{flex:1;overflow-y:auto;padding:2rem;background:var(--color-gray-50)}@media (max-width: 768px){.layout-main{margin-left:0}.layout-content{padding:1rem}}.dashboard{max-width:1400px;margin:0 auto}.dashboard-header-bar{display:flex;align-items:center;justify-content:space-between;margin-bottom:1.5rem}.dashboard-title{font-size:1.5rem;font-weight:600;color:var(--color-gray-900)}.dashboard-header-controls{display:flex;align-items:center;gap:.75rem}.dashboard-date-range-btn{display:inline-flex;align-items:center;gap:.5rem;padding:.5rem .75rem;background:var(--color-white);border-radius:var(--border-radius-sm);border:1px solid var(--color-gray-300);font-size:.875rem;color:var(--color-gray-700);cursor:pointer;transition:all var(--transition-fast)}.dashboard-date-range-btn:hover{background:var(--color-gray-50);border-color:var(--color-gray-400)}.date-range-separator{color:var(--color-gray-400)}.dashboard-icon-btn{display:inline-flex;align-items:center;justify-content:center;width:36px;height:36px;border-radius:var(--border-radius-sm);border:1px solid var(--color-gray-300);background:var(--color-white);color:var(--color-gray-600);cursor:pointer;transition:all var(--transition-fast)}.dashboard-icon-btn:hover{background:var(--color-gray-50);border-color:var(--color-gray-400);color:var(--color-gray-900)}.dashboard-main-grid{display:grid;grid-template-columns:2fr 1.2fr;gap:1.5rem}.dashboard-main-left,.dashboard-main-right{display:flex;flex-direction:column;gap:1.5rem}.dashboard-card{background:var(--color-white);border-radius:var(--border-radius);padding:1.5rem;box-shadow:var(--shadow-sm);transition:box-shadow var(--transition-normal)}.dashboard-card:hover{box-shadow:var(--shadow-md)}.card-split{display:grid;grid-template-columns:1.1fr 1fr;gap:1.25rem}.calendar-panel{display:flex;flex-direction:column;gap:.75rem}.calendar-header{display:flex;align-items:center;justify-content:space-between}.calendar-month{font-size:.875rem;font-weight:500;color:var(--color-gray-900)}.calendar-nav{display:flex;align-items:center;gap:.25rem}.calendar-nav-btn{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;border-radius:var(--border-radius-sm);border:1px solid var(--color-gray-300);background:var(--color-white);cursor:pointer;color:var(--color-gray-600);transition:all var(--transition-fast)}.calendar-nav-btn:hover{background:var(--color-gray-50);border-color:var(--color-gray-400)}.calendar-grid{border-radius:var(--border-radius-sm);border:1px solid var(--color-gray-200);padding:.75rem}.calendar-weekdays{display:grid;grid-template-columns:repeat(7,1fr);margin-bottom:.5rem;font-size:.75rem;color:var(--color-gray-500)}.calendar-weekday{text-align:center}.calendar-days{display:grid;grid-template-columns:repeat(7,1fr);gap:.25rem}.calendar-day{height:32px;border-radius:9999px;border:none;background:transparent;font-size:.75rem;cursor:pointer;color:var(--color-gray-700);transition:all var(--transition-fast)}.calendar-day:hover{background:var(--color-gray-100)}.calendar-day.selected{background:var(--brand-primary);color:var(--color-white)}.calendar-day.has-appointments:after{content:"";display:block;width:6px;height:6px;border-radius:9999px;background:var(--brand-primary);margin:2px auto 0}.primary-btn{display:inline-flex;align-items:center;justify-content:center;padding:.5rem .9rem;border-radius:var(--border-radius-sm);border:none;background:var(--brand-primary);color:var(--color-white);font-size:.875rem;cursor:pointer;margin-top:.5rem;align-self:flex-start;transition:background var(--transition-fast)}.primary-btn:hover{background:var(--brand-primary-dark)}.appointment-list-panel{display:flex;flex-direction:column;gap:.75rem}.panel-title{font-size:.9375rem;font-weight:600;color:var(--color-gray-900);margin:0}.panel-subtitle{font-size:.8125rem;color:var(--color-gray-500)}.appointment-list{display:flex;flex-direction:column;gap:.75rem;margin-top:.75rem}.appointment-list-item{display:flex;align-items:center;gap:.75rem;padding:.5rem .75rem;border-radius:var(--border-radius-sm);border:1px solid var(--color-gray-100);background:var(--color-gray-50)}.appointment-dot{width:8px;height:8px;border-radius:50%;background:var(--brand-primary)}.appointment-info{flex:1}.appointment-name{font-size:.875rem;font-weight:500;color:var(--color-gray-900)}.appointment-name-btn{background:none;border:none;padding:0;cursor:pointer;text-align:left}.appointment-name-btn:focus-visible{outline:2px solid var(--brand-primary);outline-offset:2px;border-radius:4px}.appointment-name-btn-disabled{cursor:default;color:var(--color-gray-500)}.appointment-meta{font-size:.75rem;color:var(--color-gray-500)}.appointment-action-btn{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;border-radius:var(--border-radius-sm);border:none;background:transparent;color:var(--color-gray-500);cursor:pointer}.card-header-row{display:flex;align-items:center;justify-content:space-between;margin-bottom:1rem}.total-appointments-content{display:flex;gap:1.25rem}.donut-wrapper{position:relative;width:160px;height:160px}.donut-chart{width:100%;height:100%;transform:rotate(-90deg)}.donut-ring{fill:transparent;stroke:var(--color-gray-100);stroke-width:12}.donut-segment.online{fill:transparent;stroke:var(--brand-primary);stroke-width:12;stroke-linecap:round}.donut-center{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;flex-direction:column;align-items:center;justify-content:center}.donut-center-label{font-size:.75rem;color:var(--color-gray-500)}.donut-center-value{font-size:1.5rem;font-weight:600;color:var(--color-gray-900)}.total-appointments-legend{flex:1;display:flex;flex-direction:column;gap:.5rem;justify-content:center}.legend-row{display:grid;grid-template-columns:auto 1fr auto auto;align-items:center;gap:.5rem;font-size:.8125rem;color:var(--color-gray-700)}.legend-dot{width:10px;height:10px;border-radius:9999px}.legend-dot.online{background:var(--brand-primary)}.legend-dot.home{background:var(--color-gray-300)}.legend-dot.inperson{background:var(--color-success)}.legend-value{font-weight:500}.legend-percent{font-size:.75rem;color:var(--color-gray-500)}.link-btn{background:transparent;border:none;color:var(--brand-primary);font-size:.8125rem;cursor:pointer}.upcoming-filter-row{margin-bottom:.75rem}.chip-btn{display:inline-flex;align-items:center;padding:.25rem .75rem;border-radius:9999px;border:1px solid var(--color-gray-200);background:var(--color-white);font-size:.75rem;color:var(--color-gray-700);cursor:pointer}.chip-btn-active{border-color:var(--brand-primary);background:#d4a04c1a;color:var(--brand-primary-dark)}.upcoming-list{display:flex;flex-direction:column;gap:.75rem}.upcoming-item{display:flex;align-items:center;gap:.75rem;padding:.75rem .5rem;border-radius:var(--border-radius-sm);border:1px solid var(--color-gray-100);background:var(--color-gray-50)}.upcoming-item-button{width:100%;text-align:left;cursor:pointer;border:1px solid var(--color-gray-100);background:var(--color-gray-50)}.upcoming-item-button:hover{border-color:var(--color-gray-200);background:var(--color-gray-100)}.upcoming-item-button:focus-visible{outline:2px solid var(--brand-primary);outline-offset:2px}.upcoming-avatar{width:32px;height:32px;border-radius:9999px;background:linear-gradient(135deg,var(--brand-primary),var(--brand-accent));color:var(--color-white);display:flex;align-items:center;justify-content:center;font-size:.875rem;font-weight:600}.upcoming-info{flex:1}.upcoming-name{font-size:.875rem;font-weight:500;color:var(--color-gray-900)}.upcoming-meta{font-size:.75rem;color:var(--color-gray-500)}.upcoming-purpose{font-size:.75rem;color:var(--color-gray-600)}.dashboard-analytics-section{margin-top:2.5rem}.analytics-title{font-size:1.25rem;font-weight:600;color:var(--color-gray-900);margin:0 0 1.25rem}.analytics-cards{display:grid;grid-template-columns:repeat(4,1fr);gap:1.5rem;margin-bottom:2.5rem}.analytics-card{border-radius:12px;padding:1.25rem 1.75rem;display:flex;flex-direction:column;gap:.75rem}.card-patients,.card-appointments{background:#eef7ff}.card-revenue{background:#ecfdf3}.card-growth{background:#f5f3ff}.ac-header{display:flex;align-items:center;gap:.6rem}.ac-icon-wrapper{display:flex;align-items:center;justify-content:center}.ac-icon-wrapper.i-blue{color:#0284c7}.ac-icon-wrapper.i-green{color:#16a34a}.ac-icon-wrapper.i-yellow{color:#f59e0b}.ac-icon-wrapper.i-purple{color:#8b5cf6}.ac-title{font-size:.95rem;font-weight:700;color:var(--color-gray-800)}.ac-value{font-size:1.8rem;font-weight:700;color:var(--color-gray-900);line-height:1;margin-top:.25rem}.ac-trend{display:flex;align-items:center;gap:.35rem;font-size:.825rem;color:var(--color-gray-700);margin-top:.25rem}.ac-trend.negative{color:var(--color-gray-700)}.ac-trend.negative span{color:#ef4444;font-weight:600}.ac-trend.negative svg{color:#ef4444}.analytics-graph-container{background:var(--color-white);border:1px solid var(--color-gray-200);border-radius:12px;padding:1.5rem}.graph-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:2rem}.gh-left{display:flex;align-items:center;gap:1rem}.gh-left h3{margin:0;font-size:1.15rem;font-weight:600;color:var(--color-gray-900)}.gh-total-pill{background:#f5f3ff;padding:.4rem .8rem;border-radius:6px;font-size:.85rem;color:var(--color-gray-800)}.gh-right{display:flex;align-items:center;gap:.5rem}.gh-right button{display:flex;align-items:center;justify-content:center;width:30px;height:30px;background:none;border:none;color:#64748b;cursor:pointer;border-radius:50%}.gh-right button:hover{background:var(--color-gray-100);color:var(--color-gray-900)}.graph-placeholder{display:flex;gap:1rem;min-height:200px}.graph-y-axis{display:flex;flex-direction:column;justify-content:space-between;font-size:.75rem;color:var(--color-gray-500);padding-bottom:20px}.graph-grid{flex:1;display:flex;flex-direction:column;justify-content:space-between;border-bottom:1px solid var(--color-gray-200)}.graph-row{flex:1;border-top:1px solid var(--color-gray-200);border-left:1px solid var(--color-gray-200);border-right:1px solid var(--color-gray-200);background-image:linear-gradient(90deg,transparent 33%,var(--color-gray-200) 33%,var(--color-gray-200) 33.5%,transparent 33.5%,transparent 66%,var(--color-gray-200) 66%,var(--color-gray-200) 66.5%,transparent 66.5%)}@media (max-width: 1100px){.analytics-cards{grid-template-columns:repeat(2,1fr)}}@media (max-width: 600px){.analytics-cards{grid-template-columns:1fr}}@media (max-width: 768px){.dashboard-header-bar{flex-direction:column;align-items:flex-start;gap:.75rem}.dashboard-main-grid,.card-split{grid-template-columns:1fr}.total-appointments-content{flex-direction:column;align-items:center}}.appointment-card{padding:1.5rem}.appointment-card-header{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem}.appointment-card-header-main{display:flex;flex-direction:column;gap:.25rem}.appointment-subtitle{margin:0;font-size:.875rem;color:var(--color-gray-600)}.appointment-filters{display:flex;flex-direction:column;gap:1rem;margin-bottom:1rem}.appointment-filters-row{display:flex;flex-wrap:wrap;gap:1rem}.appointment-filter-group{min-width:200px;flex:1}.appointment-filter-group-inline{display:flex;gap:.75rem}.appointment-filter-label{display:block;margin-bottom:.25rem;font-size:.75rem;font-weight:500;color:var(--color-gray-600)}.appointment-filter-input{font-size:.8125rem}.appointment-filter-input-sm{max-width:160px}.appointment-filters-secondary{display:flex;flex:1;align-items:center;justify-content:space-between;gap:1rem}.appointment-results-summary{flex:1}.appointment-filters-actions{display:flex;align-items:center;gap:.75rem}.appointment-active-filters{display:flex;align-items:center;gap:.5rem}.appointment-filter-chips{display:flex;flex-wrap:wrap;gap:.375rem}.appointment-filter-chip{border-radius:9999px;border:1px solid var(--color-gray-200);padding:.15rem .5rem;font-size:.75rem;color:var(--color-gray-700);background:var(--color-gray-50)}.appointment-clear-filters-btn{padding-inline:.75rem}.appointment-validation-message{font-size:.8125rem;color:#991b1b;background:#fee2e2;border-radius:var(--border-radius-sm);padding:.5rem .75rem}.appointment-table-wrapper{margin-top:.5rem;border-radius:var(--border-radius-sm);border:1px solid var(--color-gray-200);overflow:hidden;overflow-x:auto}.appointment-table{width:100%;border-collapse:collapse;font-size:.875rem}.appointment-table thead{background:var(--color-gray-50)}.appointment-table-header-cell{text-align:left;padding:.75rem 1rem;border-bottom:1px solid var(--color-gray-200);white-space:nowrap}.appointment-table td{padding:.75rem 1rem;border-bottom:1px solid var(--color-gray-100);vertical-align:middle}.appointment-table tbody tr:nth-child(2n){background:var(--color-gray-50)}.appointment-table-empty{display:flex;align-items:center;justify-content:center;gap:.75rem;padding:2rem}.link-button{border:none;background:none;padding:0;margin:0;font:inherit;color:var(--brand-primary);cursor:pointer}.link-button:hover{text-decoration:underline}.appointment-pagination{display:flex;align-items:center;justify-content:space-between;margin-top:1rem;gap:1rem}.appointment-pagination-left{display:flex;align-items:center;gap:.5rem}.appointment-page-size-select{width:auto}.appointment-pagination-right{display:flex;align-items:center;gap:.75rem;flex-wrap:wrap;justify-content:flex-end}.appointment-pagination-buttons{display:flex;gap:.5rem}.appointment-pagination-page-input{display:flex;align-items:center;gap:.5rem}.appointment-page-input{max-width:80px}@media (max-width: 900px){.appointment-pagination{flex-direction:column;align-items:flex-start}}@media (max-width: 768px){.page-header{flex-direction:column;align-items:flex-start;gap:1rem}.page-header .btn{width:100%}}.page-container{max-width:1400px;margin:0 auto}.page-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:2rem}.page-title{font-size:1.875rem;font-weight:700;color:var(--color-gray-900);margin:0}.page-content{display:flex;flex-direction:column;gap:1.5rem}.patient-card{padding:1.5rem}.patient-card-header{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem}.patient-card-header-main{display:flex;flex-direction:column;gap:.25rem}.patient-subtitle{margin:0;font-size:.875rem;color:var(--color-gray-600)}.patient-card-header-actions{display:flex;align-items:center;gap:.5rem}.patient-filters{display:flex;flex-direction:column;gap:1rem;margin-bottom:1rem}.patient-filters-row{display:flex;flex-wrap:wrap;gap:1rem}.patient-filter-group{min-width:200px;flex:1}.patient-filter-group-inline{display:flex;gap:.75rem}.patient-filter-label{display:block;margin-bottom:.25rem;font-size:.75rem;font-weight:500;color:var(--color-gray-600)}.patient-filter-input{font-size:.8125rem}.patient-filter-input-sm{max-width:160px}.patient-filters-secondary{display:flex;flex:1;align-items:center;justify-content:space-between;gap:1rem}.patient-results-summary{flex:1}.patient-filters-actions{display:flex;align-items:center;gap:.75rem}.patient-active-filters{display:flex;align-items:center;gap:.5rem}.patient-filter-chips{display:flex;flex-wrap:wrap;gap:.375rem}.patient-filter-chip{border-radius:9999px;border:1px solid var(--color-gray-200);padding:.15rem .5rem;font-size:.75rem;color:var(--color-gray-700);background:var(--color-gray-50)}.patient-clear-filters-btn{padding-inline:.75rem}.patient-validation-message{font-size:.8125rem;color:#991b1b;background:#fee2e2;border-radius:var(--border-radius-sm);padding:.5rem .75rem}.patient-table-wrapper{margin-top:.5rem;border-radius:var(--border-radius-sm);border:1px solid var(--color-gray-200);overflow:hidden;overflow-x:auto}.patient-table{width:100%;border-collapse:collapse;font-size:.875rem}.patient-table thead{background:var(--color-gray-50)}.patient-table-header-cell{text-align:left;padding:.75rem 1rem;border-bottom:1px solid var(--color-gray-200);white-space:nowrap}.patient-table-sort-btn{display:inline-flex;align-items:center;gap:.25rem;background:none;border:none;padding:0;font:inherit;color:var(--color-gray-700);cursor:pointer}.patient-table tbody tr:nth-child(2n){background:var(--color-gray-50)}.patient-table td{padding:.75rem 1rem;border-bottom:1px solid var(--color-gray-100);vertical-align:middle}.patient-name-link{color:var(--brand-primary);text-decoration:none;font-weight:500}.patient-name-link:hover{text-decoration:underline}.patient-table-loading,.patient-table-error,.patient-table-empty{display:flex;align-items:center;justify-content:center;gap:.75rem;padding:2rem}.sort-indicator{width:0;height:0;border-left:4px solid transparent;border-right:4px solid transparent;border-top:6px solid var(--color-gray-300)}.sort-indicator.desc{transform:rotate(180deg)}.sort-indicator.asc{border-top-color:var(--brand-primary)}.input-error{border-color:#ef4444;box-shadow:0 0 0 3px #ef44441a}.patient-pagination{display:flex;align-items:center;justify-content:space-between;margin-top:1rem;gap:1rem}.patient-pagination-left{display:flex;align-items:center;gap:.5rem}.patient-page-size-select{width:auto}.patient-pagination-right{display:flex;align-items:center;gap:.75rem}.patient-pagination-buttons{display:flex;gap:.5rem}.patient-detail-card{padding:1.75rem 1.75rem 1.5rem;border-radius:var(--border-radius-md);border:1px solid var(--color-gray-200);background:var(--color-white);box-shadow:0 18px 45px #0f172a0d}.patient-detail-header{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-bottom:1rem}.patient-detail-main{display:flex;align-items:center;gap:.75rem}.patient-detail-avatar{width:48px;height:48px;border-radius:9999px;background:linear-gradient(135deg,var(--brand-primary),var(--brand-accent));color:var(--color-white);display:flex;align-items:center;justify-content:center;font-size:1.25rem;font-weight:600}.patient-detail-name{margin:0;font-size:1.125rem;font-weight:600}.patient-detail-id{font-size:.875rem;color:var(--color-gray-500)}.patient-detail-meta{display:flex;flex-wrap:wrap;gap:.5rem;justify-content:flex-end}.patient-detail-body{display:flex;flex-direction:column;gap:1.75rem}.patient-detail-section{padding-top:1.5rem;border-top:1px solid var(--color-gray-100)}.patient-detail-section:first-of-type{padding-top:0;border-top:none}.patient-detail-section-title{margin:0 0 1rem;font-size:.95rem;font-weight:600;color:var(--color-gray-900)}.patient-detail-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:.75rem 1.5rem}.patient-detail-label{font-size:.75rem;color:var(--color-gray-500);margin-bottom:.15rem}.patient-detail-value{font-size:.875rem;color:var(--color-gray-900);white-space:pre-line}.patient-detail-link{font-size:.75rem;color:var(--brand-primary);text-decoration:none}.patient-detail-link:hover{text-decoration:underline}.patient-detail-link:focus-visible{outline:2px solid var(--brand-primary);outline-offset:2px}.patient-detail-note-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:1rem}.patient-detail-note-card{border-radius:var(--border-radius-sm);border:1px solid var(--color-gray-200);background:var(--color-gray-50);padding:.75rem .9rem}.patient-detail-list{display:flex;flex-direction:column;gap:.5rem}.patient-detail-list-item{padding:.4rem 0;border-bottom:1px dashed var(--color-gray-200)}.patient-detail-list-item:last-child{border-bottom:none}.patient-history-layout{display:grid;grid-template-columns:minmax(260px,320px) minmax(0,1fr);gap:1.5rem}.patient-history-sidebar{align-self:flex-start}.patient-history-sidebar-card{padding:1.5rem 1.5rem 1.25rem;border-radius:var(--border-radius-md);border:1px solid var(--color-gray-200);background:var(--color-white);box-shadow:0 18px 45px #0f172a0d;display:flex;flex-direction:column;gap:1.5rem}.patient-history-sidebar-header{display:flex;gap:.75rem;align-items:center}.patient-history-sidebar-header-text{display:flex;flex-direction:column;gap:.25rem}.patient-history-name{margin:0;font-size:1.1rem;font-weight:600}.patient-history-id{font-size:.8rem;color:var(--color-gray-500)}.patient-history-meta-row{display:flex;flex-wrap:wrap;gap:.35rem;margin-top:.25rem}.patient-history-sidebar-section{border-top:1px solid var(--color-gray-100);padding-top:1rem}.patient-history-sidebar-label{font-size:.8rem;font-weight:600;color:var(--color-gray-700);margin-bottom:.5rem}.patient-history-sidebar-list{display:flex;flex-direction:column;gap:.25rem}.patient-history-sidebar-list-item{font-size:.8rem;color:var(--color-gray-800)}.patient-history-sidebar-chips{display:flex;flex-wrap:wrap;gap:.4rem}.patient-history-chip{display:inline-flex;align-items:center;padding:.15rem .55rem;font-size:.75rem}.patient-history-chip-alert{background:#fef2f2;color:#b91c1c;border:1px solid #fecaca}.patient-history-sidebar-muted{font-size:.8rem;color:var(--color-gray-500)}.patient-history-main{display:flex;flex-direction:column;gap:1.5rem}.patient-history-header{display:flex;align-items:center;justify-content:space-between}.patient-vitals{padding:1.25rem 1.5rem;border-radius:var(--border-radius-md);border:1px solid var(--color-gray-200);background:var(--color-white);box-shadow:0 18px 45px #0f172a0d}.patient-vitals-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:1rem}.patient-vitals-title{margin:0;font-size:.9rem;font-weight:600;color:var(--color-gray-800)}.patient-vitals-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:.75rem}.patient-vital-card{border-radius:var(--border-radius-sm);border:1px solid var(--color-gray-200);background:var(--color-gray-50);padding:.75rem .9rem;display:flex;flex-direction:column;gap:.35rem}.patient-vital-card-emphasis{border-color:#f97316;background:#fffbeb}.patient-vital-title{font-size:.8rem;color:var(--color-gray-600)}.patient-vital-value-row{display:flex;align-items:baseline;gap:.25rem}.patient-vital-value{font-size:1.1rem;font-weight:600;color:var(--color-gray-900)}.patient-vital-unit{font-size:.8rem;color:var(--color-gray-500)}.patient-vital-status{font-size:.75rem;color:var(--color-gray-600)}.patient-history-search{display:flex;margin-top:-.25rem}.patient-history-search-input{width:100%;max-width:360px}.patient-timeline{padding:1.25rem 1.5rem;border-radius:var(--border-radius-md);border:1px solid var(--color-gray-200);background:var(--color-white);box-shadow:0 18px 45px #0f172a0d}.patient-timeline-title{margin:0 0 1rem;font-size:.9rem;font-weight:600;color:var(--color-gray-800)}.patient-timeline-list{list-style:none;margin:0;padding:0}.patient-timeline-item{position:relative;padding-left:1.75rem;padding-bottom:1.25rem}.patient-timeline-item:last-child{padding-bottom:0}.patient-timeline-marker{position:absolute;left:.55rem;top:.35rem;width:10px;height:10px;border-radius:9999px;background:var(--brand-primary);box-shadow:0 0 0 4px #3b82f626}.patient-timeline-item:before{content:"";position:absolute;left:.9rem;top:.9rem;bottom:-.25rem;width:1px;background:var(--color-gray-200)}.patient-timeline-item:last-child:before{display:none}.patient-timeline-card{border-radius:var(--border-radius-sm);border:1px solid var(--color-gray-200);background:var(--color-gray-50);padding:.9rem 1rem}.patient-timeline-card-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:.5rem;gap:.75rem}.patient-timeline-card-title{font-size:.85rem;font-weight:600;color:var(--color-gray-900)}.patient-timeline-card-date{font-size:.75rem;color:var(--color-gray-500)}.patient-timeline-card-body{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:.5rem 1rem}.patient-timeline-row-label{font-size:.75rem;color:var(--color-gray-500)}.patient-timeline-row-value{font-size:.85rem;color:var(--color-gray-900)}.patient-timeline-empty{padding:.75rem 0}.patient-timeline-card-header{display:flex;align-items:flex-start;justify-content:space-between;gap:.75rem;margin-bottom:.75rem}.patient-timeline-card-header-left{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap}.patient-timeline-marker.vital{background:#0d9488;border-color:#ccfbf1}.patient-timeline-marker.encounter{background:var(--brand-primary);border-color:#fef3c7}.timeline-type-badge{display:inline-flex;align-items:center;gap:.25rem;padding:.2rem .6rem;font-size:.7rem;font-weight:600;letter-spacing:.02em;border-radius:4px;white-space:nowrap}.badge-vital{background:#ccfbf1;color:#0f766e}.badge-encounter{background:#fef3c7;color:#92400e}.patient-timeline-ref{font-size:.7rem;color:var(--color-gray-400);font-family:JetBrains Mono,monospace,monospace}.patient-timeline-pairs{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:.4rem 1rem;margin-bottom:.75rem}.patient-timeline-pair{display:flex;flex-direction:column;gap:.1rem}.pair-key{font-size:.7rem;font-weight:600;color:var(--color-gray-500);text-transform:uppercase;letter-spacing:.04em}.pair-value{font-size:.82rem;color:var(--color-gray-800)}.patient-timeline-medications{margin-top:.5rem;border-top:1px solid var(--color-gray-100);padding-top:.65rem}.medications-label{font-size:.7rem;font-weight:600;color:var(--color-gray-500);text-transform:uppercase;letter-spacing:.04em;margin-bottom:.5rem}.medications-label-row{display:flex;align-items:center;justify-content:space-between;gap:.5rem;margin-bottom:.5rem}.medications-label-row .medications-label{margin-bottom:0}.timeline-copy-btn{display:inline-flex;align-items:center;gap:.3rem;padding:.25rem .65rem;border-radius:20px;border:1px solid #bfdbfe;background:#eff6ff;color:#1d4ed8;font-size:.72rem;font-weight:600;cursor:pointer;white-space:nowrap;transition:background .15s,border-color .15s,color .15s}.timeline-copy-btn:hover{background:#dbeafe;border-color:#93c5fd;color:#1e3a8a}.medications-table-wrap{overflow-x:auto;border-radius:8px;border:1px solid #e2e8f0;margin-top:.5rem}.medication-group-table{width:100%;border-collapse:collapse;font-size:.8rem}.medication-group-row td{padding:.6rem .85rem;color:#334155;vertical-align:top;border-right:1px solid rgba(0,0,0,.04)}.medication-group-row td:last-child{border-right:none}.medication-group-row.group-even td{background-color:#dcfce7}.medication-group-row.group-odd td{background-color:#f0fdf4}.medication-group-row.group-last-row td{border-bottom:1px solid #e2e8f0}.medication-group-table tbody tr:last-child td{border-bottom:none}.medication-col-name{font-weight:500;color:#1e293b;width:45%}.medication-col-dosage{width:20%;white-space:nowrap}.medication-col-instruction{width:35%}.medication-brand{font-size:.72rem;color:var(--color-gray-400);margin-top:.25rem}.medication-comment-inline{font-style:italic;color:#64748b;margin-left:.25rem}.patient-timeline-review{margin-top:.5rem;font-size:.78rem;color:var(--color-gray-600);border-top:1px dashed var(--color-gray-200);padding-top:.4rem}.review-label{font-weight:600;color:var(--color-gray-500)}.patient-medical-history{padding:1.25rem 1.5rem;border-radius:var(--border-radius-md);border:1px solid var(--color-gray-200);background:var(--color-white);box-shadow:0 18px 45px #0f172a0d}.patient-medical-history-toggle{display:flex;align-items:center;justify-content:space-between;width:100%;background:none;border:none;padding:0;cursor:pointer;margin-bottom:0;text-align:left}.patient-medical-history-toggle:hover .patient-medical-history-title{color:var(--brand-primary)}.patient-medical-history-title{margin:0;font-size:.9rem;font-weight:600;color:var(--color-gray-800);transition:color var(--transition-fast)}.patient-medical-history-chevron{color:var(--color-gray-500);flex-shrink:0;transition:transform .25s ease;transform:rotate(-90deg)}.patient-medical-history-chevron.open{transform:rotate(0)}.patient-medical-history-body{max-height:0;overflow:hidden;transition:max-height .3s ease,opacity .25s ease,margin-top .25s ease;opacity:0;margin-top:0}.patient-medical-history-body.expanded{max-height:9999px;opacity:1;margin-top:1rem}.patient-medical-history-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:1rem}.patient-medical-history-card{border-radius:var(--border-radius-sm);border:1px solid var(--color-gray-200);background:var(--color-gray-50);padding:1rem;display:flex;flex-direction:column;gap:.25rem}.patient-medical-history-label{font-size:.75rem;font-weight:500;color:var(--color-gray-500)}.patient-medical-history-value{font-size:.9rem;color:var(--color-gray-900);line-height:1.4}@media (max-width: 900px){.page-header{flex-direction:column;align-items:flex-start;gap:1rem}.page-header .btn{width:100%}.patient-card-header,.patient-filters-secondary,.patient-pagination{flex-direction:column;align-items:flex-start}.patient-history-layout{grid-template-columns:minmax(0,1fr)}.patient-history-sidebar{order:2}.patient-history-main{order:1}}.appt-detail-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:.75rem 1.25rem}.appt-detail-cell{display:flex;flex-direction:column;gap:.15rem}.appt-detail-cell-wide{grid-column:1 / -1}.appt-notif-row{display:flex;flex-wrap:wrap;gap:.35rem;margin-top:.25rem}.appt-notif-badge{display:inline-block;padding:.18rem .5rem;border-radius:4px;font-size:.72rem;font-weight:600;background:#e0f2fe;color:#0369a1}.appt-links-row{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:.25rem}.appt-link{display:inline-flex;align-items:center;gap:.25rem;padding:.2rem .65rem;border-radius:4px;font-size:.75rem;font-weight:500;background:#f0fdf4;color:#15803d;border:1px solid #bbf7d0;text-decoration:none;transition:background .15s}.appt-link:hover{background:#dcfce7}.enc-body{padding:.75rem 0 .5rem;display:flex;flex-direction:column;gap:1rem}.enc-meta-row{display:flex;flex-wrap:wrap;gap:.4rem;margin-bottom:.25rem}.enc-meta-chip{display:inline-flex;align-items:center;gap:.3rem;padding:.22rem .65rem;border-radius:20px;font-size:.75rem;font-weight:500;background:#f1f5f9;color:#475569;border:1px solid #e2e8f0}.enc-meta-chip-ayur{background:#f0fdf4;color:#15803d;border-color:#bbf7d0}.enc-block{display:flex;flex-direction:column;gap:.5rem}.enc-block-title{font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:#94a3b8}.enc-chips{display:flex;flex-wrap:wrap;gap:.35rem}.enc-chip{display:inline-block;padding:.22rem .65rem;border-radius:20px;font-size:.78rem;font-weight:500;border:1px solid transparent}.enc-chip-symptom{background:#fff7ed;color:#c2410c;border-color:#fed7aa}.enc-chip-diagnosis{background:#fdf4ff;color:#7e22ce;border-color:#e9d5ff}.enc-chip-diet{background:#f0fdf4;color:#15803d;border-color:#bbf7d0}.enc-chip-ashta{background:#eff6ff;color:#1d4ed8;border-color:#bfdbfe}.enc-table-wrap{overflow-x:auto;border-radius:8px;border:1px solid #e2e8f0}.enc-table{width:100%;border-collapse:collapse;font-size:.8rem}.enc-table thead{background:#f8fafc}.enc-table th{padding:.45rem .75rem;text-align:left;font-weight:600;color:#64748b;font-size:.72rem;text-transform:uppercase;letter-spacing:.04em;white-space:nowrap;border-bottom:1px solid #e2e8f0}.enc-table td{padding:.5rem .75rem;color:#334155;border-bottom:1px solid #f1f5f9;vertical-align:top}.enc-table tbody tr:last-child td{border-bottom:none}.enc-table tbody tr:hover td{background:#f8fafc}.enc-therapy-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:.65rem}.enc-therapy-card{background:#f8fafc;border:1px solid #e2e8f0;border-radius:8px;padding:.65rem .85rem;display:flex;flex-direction:column;gap:.25rem}.enc-therapy-name{font-size:.85rem;font-weight:600;color:#1e293b}.enc-therapy-cat{font-size:.72rem;color:#64748b}.enc-therapy-meta{display:flex;flex-wrap:wrap;gap:.3rem;margin-top:.25rem}.enc-meta-badge{display:inline-block;padding:.12rem .45rem;border-radius:4px;font-size:.7rem;font-weight:600;background:#e0f2fe;color:#0369a1}.enc-ashta-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:.6rem}.enc-ashta-cell{background:#f8fafc;border:1px solid #e2e8f0;border-radius:8px;padding:.55rem .75rem}.enc-ashta-label{font-size:.7rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:#94a3b8;margin-bottom:.35rem}.enc-ashta-values{display:flex;flex-wrap:wrap;gap:.3rem}.enc-comment{font-size:.85rem;color:#334155;background:#fffbeb;border:1px solid #fde68a;border-left:3px solid #f59e0b;border-radius:6px;padding:.6rem .85rem;line-height:1.5;white-space:pre-wrap}.enc-empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.6rem;padding:1.75rem 1rem;text-align:center}.enc-empty-icon{font-size:2rem;line-height:1;opacity:.45}.enc-empty-text{font-size:.85rem;color:var(--color-gray-500)}.enc-create-btn{margin-top:.25rem;display:inline-flex;align-items:center;gap:.35rem;padding:.5rem 1.25rem;font-size:.85rem;font-weight:600;border-radius:var(--border-radius-sm);background:var(--brand-primary);color:#fff;text-decoration:none;transition:background .15s,box-shadow .15s;box-shadow:0 2px 8px #3b82f640}.enc-create-btn:hover{background:var(--brand-primary-dark, #2563eb);box-shadow:0 4px 12px #3b82f659;color:#fff}.ce-layout{max-width:1100px;display:flex;flex-direction:column;gap:0}.ce-page-header{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-bottom:1.5rem;flex-wrap:wrap}.ce-page-header-titles{flex:1;min-width:0}.ce-back-btn{display:inline-flex;align-items:center;gap:.4rem;flex-shrink:0}.ce-appt-badge{margin-top:.2rem;font-size:.78rem;color:var(--color-gray-500);font-family:JetBrains Mono,monospace}.ce-banner{padding:.75rem 1rem;border-radius:var(--border-radius-sm);font-size:.875rem;font-weight:500;margin-bottom:1rem}.ce-banner-success{background:#f0fdf4;color:#15803d;border:1px solid #bbf7d0}.ce-banner-error{background:#fef2f2;color:#b91c1c;border:1px solid #fecaca}.ce-banner-draft{background:#f0fdf4;color:#166534;border:1px solid #86efac;display:flex;align-items:flex-start;gap:.5rem;padding-right:2.5rem;position:relative}.ce-draft-status{display:flex;align-items:center;flex-shrink:0}.ce-draft-pill{display:inline-flex;align-items:center;gap:.4rem;padding:.28rem .75rem;border-radius:20px;font-size:.72rem;font-weight:600;border:1px solid transparent;letter-spacing:.01em;transition:all .2s}.ce-draft-saved{background:#f0fdf4;color:#16a34a;border-color:#bbf7d0}.ce-draft-saving{background:#fffbeb;color:#b45309;border-color:#fde68a}.ce-draft-unsaved{background:var(--color-gray-100);color:var(--color-gray-500);border-color:var(--color-gray-200)}.ce-draft-dot{width:7px;height:7px;border-radius:50%;flex-shrink:0}.ce-draft-dot.saved{background:#16a34a}.ce-draft-dot.unsaved{background:#94a3b8}.ce-draft-dot.saving{background:#f59e0b;animation:ce-dot-pulse 1s ease-in-out infinite}@keyframes ce-dot-pulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.4;transform:scale(.75)}}.ce-section{background:var(--color-white);border:1px solid var(--color-gray-200);border-radius:var(--border-radius-md);box-shadow:0 4px 20px #0f172a0a;margin-bottom:1rem;overflow:visible}.ce-section>.ce-section-toggle{border-radius:var(--border-radius-md) var(--border-radius-md) 0 0}.ce-section>.ce-section-body{border-radius:0 0 var(--border-radius-md) var(--border-radius-md);overflow:visible}.ce-section-toggle{display:flex;align-items:center;justify-content:space-between;width:100%;padding:1rem 1.25rem;background:none;border:none;cursor:pointer;text-align:left;transition:background .15s}.ce-section-toggle:hover{background:var(--color-gray-50)}.ce-section-title{font-size:.9rem;font-weight:600;color:var(--color-gray-800);display:flex;align-items:center;gap:.5rem}.ce-section-badge{display:inline-flex;align-items:center;justify-content:center;min-width:20px;height:20px;border-radius:9999px;background:var(--brand-primary);color:#fff;font-size:.7rem;font-weight:700;padding:0 .35rem}.ce-chevron{color:var(--color-gray-400);transition:transform .22s ease;transform:rotate(-90deg);flex-shrink:0}.ce-chevron.open{transform:rotate(0)}.ce-section-body{padding:0 1.25rem 1.25rem;border-top:1px solid var(--color-gray-100)}.ce-field{display:flex;flex-direction:column;gap:.35rem}.ce-label{font-size:.75rem;font-weight:600;color:var(--color-gray-600);text-transform:uppercase;letter-spacing:.04em}.ce-grid-2{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:1rem;padding-top:1rem}.ce-grid-3{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:.85rem}.ce-tag-group{padding-top:1rem;display:flex;flex-direction:column;gap:.75rem}.ce-tag-input-row{display:flex;gap:.5rem}.ce-tag-input{flex:1}.ce-tag-add-btn{display:inline-flex;align-items:center;gap:.3rem;flex-shrink:0;white-space:nowrap}.ce-autocomplete-wrap{align-items:flex-start}.ce-autocomplete-field{position:relative;flex:1}.ce-med-ac-wrap{position:relative;width:100%}.ce-autocomplete-dropdown{position:absolute;top:calc(100% + 4px);left:0;right:0;z-index:1000;background:#fff;border:1px solid var(--color-gray-200);border-radius:var(--border-radius-sm);box-shadow:0 8px 24px #0f172a1a;max-height:220px;overflow-y:auto;list-style:none;margin:0;padding:.25rem 0}.ce-autocomplete-item{padding:.5rem .85rem;font-size:.85rem;cursor:pointer;color:var(--color-gray-700);transition:background .12s}.ce-autocomplete-item:hover,.ce-autocomplete-item.active{background:#eff6ff;color:#1d4ed8}.ce-autocomplete-spinner{position:absolute;right:.6rem;top:50%;transform:translateY(-50%);width:13px;height:13px;border:2px solid var(--color-gray-200);border-top-color:var(--brand-primary, #3b82f6);border-radius:50%;animation:ce-spin .7s linear infinite;pointer-events:none}.ce-tags{display:flex;flex-wrap:wrap;gap:.4rem}.ce-tag{display:inline-flex;align-items:center;gap:.35rem;padding:.22rem .6rem .22rem .75rem;border-radius:20px;font-size:.8rem;font-weight:500;border:1px solid transparent;background:var(--color-gray-100);color:var(--color-gray-700)}.ce-tag-symptom{background:#fff7ed;color:#c2410c;border-color:#fed7aa}.ce-tag-diagnosis{background:#fdf4ff;color:#7e22ce;border-color:#e9d5ff}.ce-tag-diet{background:#f0fdf4;color:#15803d;border-color:#bbf7d0}.ce-tag-ashta{background:#eff6ff;color:#1d4ed8;border-color:#bfdbfe}.ce-tag-remove{background:none;border:none;padding:0;cursor:pointer;font-size:1rem;line-height:1;color:inherit;opacity:.55;transition:opacity .15s;display:flex;align-items:center}.ce-tag-remove:hover{opacity:1}.ce-table-scroll{overflow:visible;border-radius:8px;border:1px solid var(--color-gray-200);margin-top:1rem}.ce-table{width:100%;border-collapse:collapse;font-size:.8rem;min-width:800px}.ce-table thead{background:var(--color-gray-50)}.ce-table th{padding:.5rem .65rem;text-align:left;font-weight:600;color:#64748b;font-size:.72rem;text-transform:uppercase;letter-spacing:.04em;white-space:nowrap;border-bottom:1px solid var(--color-gray-200)}.ce-table td{padding:.4rem .5rem;vertical-align:middle;border-bottom:1px solid var(--color-gray-100)}.ce-table tbody tr:last-child td{border-bottom:none}.ce-table tbody tr:not(.medication-group-row):hover td{background:#f8fafc}.medication-group-tbody:hover td{background:#f8fafc}.ce-table-num{color:var(--color-gray-400);font-size:.75rem;text-align:center;width:28px}.ce-table-input{min-width:100px;width:100%;font-size:.8rem;padding:.3rem .5rem}.ce-add-row-btn{display:inline-flex;align-items:center;gap:.35rem;margin-top:.75rem;font-size:.82rem}.ce-del-btn{background:none;border:none;cursor:pointer;color:#ef4444;padding:.25rem;display:flex;align-items:center;opacity:.6;transition:opacity .15s;border-radius:4px}.ce-del-btn:hover{opacity:1;background:#fef2f2}.ce-therapy-list{display:flex;flex-direction:column;gap:1rem;padding-top:1rem}.ce-therapy-card{border:1px solid var(--color-gray-200);border-radius:var(--border-radius-sm);padding:1rem 1.1rem;background:#f8fafc}.ce-therapy-card-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:.85rem}.ce-therapy-num{font-size:.78rem;font-weight:700;color:var(--color-gray-500);text-transform:uppercase;letter-spacing:.05em}.ce-ashta-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:1rem;padding-top:1rem}.ce-ashta-cell{background:#f8fafc;border:1px solid var(--color-gray-200);border-radius:var(--border-radius-sm);padding:.85rem 1rem}.ce-ashta-label{margin-bottom:.5rem}.ce-ashta-cell .ce-tag-group{padding-top:0}.ce-textarea{width:100%;resize:vertical;font-family:inherit;line-height:1.6;margin-top:1rem}.ce-submit-bar{display:flex;align-items:center;justify-content:flex-end;gap:.75rem;padding:1.25rem 0 .5rem;border-top:1px solid var(--color-gray-200);margin-top:.5rem}.ce-save-btn{display:inline-flex;align-items:center;gap:.4rem;min-width:150px;justify-content:center}.ce-save-btn:disabled{opacity:.65;cursor:not-allowed}.ce-spinner{display:inline-block;width:14px;height:14px;border:2px solid rgba(255,255,255,.4);border-top-color:#fff;border-radius:50%;animation:ce-spin .7s linear infinite}@keyframes ce-spin{to{transform:rotate(360deg)}}.ce-banner-copy{background:#eff6ff;color:#1e40af;border:1px solid #bfdbfe;display:flex;align-items:flex-start;gap:.5rem;padding-right:2.5rem;position:relative}.ce-banner-dismiss{position:absolute;right:.75rem;top:50%;transform:translateY(-50%);background:none;border:none;font-size:1.15rem;line-height:1;cursor:pointer;color:#1e40af;opacity:.6;padding:0;transition:opacity .15s}.ce-banner-dismiss:hover{opacity:1}@media (max-width: 768px){.ce-page-header{flex-direction:column;align-items:flex-start}.ce-section-body{padding:0 .85rem 1rem}.ce-grid-2,.ce-grid-3,.ce-ashta-grid{grid-template-columns:1fr}.ce-submit-bar{flex-direction:column-reverse}.ce-submit-bar .btn{width:100%;justify-content:center}}.ce-therapy-more-btn{display:inline-flex;align-items:center;gap:.35rem;padding:.28rem .75rem;font-size:.75rem;font-weight:600;color:#4f46e5;background:#eef2ff;border:1px solid #c7d2fe;border-radius:20px;cursor:pointer;transition:background .15s,border-color .15s,transform .1s;letter-spacing:.01em}.ce-therapy-more-btn:hover{background:#e0e7ff;border-color:#a5b4fc;transform:translateY(-1px)}.ce-therapy-more-badge{display:inline-flex;align-items:center;justify-content:center;min-width:18px;height:18px;padding:0 .3rem;border-radius:9999px;background:#4f46e5;color:#fff;font-size:.65rem;font-weight:700}.ce-modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#0f172a8c;backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);z-index:2000;display:flex;align-items:center;justify-content:center;padding:1rem;animation:ce-backdrop-in .18s ease}@keyframes ce-backdrop-in{0%{opacity:0}to{opacity:1}}.ce-modal{background:#fff;border-radius:16px;box-shadow:0 24px 64px #0f172a38,0 4px 16px #0f172a14;width:100%;max-width:780px;max-height:90vh;display:flex;flex-direction:column;animation:ce-modal-in .22s cubic-bezier(.34,1.56,.64,1);overflow:hidden}@keyframes ce-modal-in{0%{opacity:0;transform:scale(.94) translateY(12px)}to{opacity:1;transform:scale(1) translateY(0)}}.ce-modal-header{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;padding:1.25rem 1.5rem 1rem;border-bottom:1px solid var(--color-gray-100);flex-shrink:0;background:linear-gradient(135deg,#f8f9ff,#fff);border-radius:16px 16px 0 0}.ce-modal-header-left{display:flex;align-items:flex-start;gap:.85rem}.ce-modal-icon{font-size:1.6rem;line-height:1;flex-shrink:0;margin-top:.1rem}.ce-modal-title{margin:0;font-size:1.05rem;font-weight:700;color:var(--color-gray-900);line-height:1.3}.ce-modal-subtitle{margin:.15rem 0 0;font-size:.8rem;color:var(--color-gray-500);line-height:1.4}.ce-modal-close{background:none;border:none;cursor:pointer;font-size:1.1rem;color:var(--color-gray-400);padding:.2rem .3rem;border-radius:6px;line-height:1;transition:color .15s,background .15s;flex-shrink:0;margin-top:.1rem}.ce-modal-close:hover{color:var(--color-gray-700);background:var(--color-gray-100)}.ce-modal-body{flex:1;overflow-y:auto;padding:1.25rem 1.5rem;display:flex;flex-direction:column;gap:1.25rem}.ce-modal-section{background:#f8fafc;border:1px solid var(--color-gray-200);border-radius:10px;padding:1rem 1.1rem}.ce-modal-section-title{display:flex;align-items:center;gap:.5rem;font-size:.8rem;font-weight:700;color:var(--color-gray-700);text-transform:uppercase;letter-spacing:.06em;margin-bottom:.9rem}.ce-modal-section-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0}.ce-modal-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:.85rem}.ce-modal-two-col{display:grid;grid-template-columns:1fr 1fr;gap:1rem}.ce-modal-checkbox-grid{display:flex;flex-direction:column;gap:.55rem}.ce-modal-check-row{display:flex;flex-wrap:wrap;gap:.75rem 1.5rem}.ce-modal-check-label{display:flex;align-items:center;gap:.55rem;font-size:.83rem;color:var(--color-gray-700);cursor:pointer;-webkit-user-select:none;user-select:none;line-height:1.4}.ce-modal-check-label:hover{color:var(--color-gray-900)}.ce-modal-checkbox{-moz-appearance:none;appearance:none;-webkit-appearance:none;width:17px;height:17px;border:2px solid var(--color-gray-300);border-radius:4px;background:#fff;flex-shrink:0;cursor:pointer;transition:border-color .15s,background .15s;position:relative}.ce-modal-checkbox:checked{background:#4f46e5;border-color:#4f46e5}.ce-modal-checkbox:checked:after{content:"";position:absolute;top:2px;left:4px;width:5px;height:9px;border:2px solid #fff;border-top:none;border-left:none;transform:rotate(45deg)}.ce-modal-checkbox:focus-visible{outline:2px solid #6366f1;outline-offset:2px}.ce-modal-footer{padding:.9rem 1.5rem;border-top:1px solid var(--color-gray-100);display:flex;justify-content:flex-end;flex-shrink:0;background:#f8fafc;border-radius:0 0 16px 16px}.ce-modal-done-btn{min-width:120px;justify-content:center;background:linear-gradient(135deg,#4f46e5,#6366f1);border:none;font-weight:600;letter-spacing:.02em;transition:transform .12s,box-shadow .12s}.ce-modal-done-btn:hover{transform:translateY(-1px);box-shadow:0 4px 12px #6366f166}@media (max-width: 640px){.ce-modal{max-height:95vh;border-radius:12px}.ce-modal-two-col{grid-template-columns:1fr}.ce-modal-grid{grid-template-columns:1fr 1fr}}:root{--brand-primary: #2a7be4;--brand-primary-dark: #1f5fb8;--color-white: #ffffff;--color-gray-50: #f9fafb;--color-gray-100: #f1f3f5;--color-gray-300: #d0d5dd;--color-gray-500: #6b7280;--color-gray-700: #374151;--color-gray-900: #111827;--border-radius: 12px;--border-radius-sm: 8px;--shadow-sm: 0 4px 10px rgba(0,0,0,.06);--shadow-md: 0 8px 20px rgba(0,0,0,.08)}.login-container{height:100vh;display:flex;align-items:center;justify-content:center;background:var(--color-gray-50)}.login-card{width:360px;padding:2rem;background:var(--color-white);border-radius:var(--border-radius);box-shadow:var(--shadow-sm);transition:box-shadow .2s ease}.login-card:hover{box-shadow:var(--shadow-md)}.login-logo-wrapper{display:flex;justify-content:center;margin-bottom:1.5rem}.login-logo{height:56px;width:auto;object-fit:contain}.login-title{font-size:1.5rem;font-weight:600;color:var(--color-gray-900);margin-bottom:.25rem}.login-subtitle{font-size:.85rem;color:var(--color-gray-500);margin-bottom:1.5rem}.login-input{width:100%;padding:.65rem .75rem;border-radius:var(--border-radius-sm);border:1px solid var(--color-gray-300);margin-bottom:.9rem;font-size:.9rem;transition:border .2s}.login-input:focus{outline:none;border-color:var(--brand-primary)}.login-btn{width:100%;padding:.65rem;border:none;border-radius:var(--border-radius-sm);background:var(--brand-primary);color:#fff;font-size:.9rem;cursor:pointer;transition:background .2s}.login-btn:hover{background:var(--brand-primary-dark)}.login-error{color:#dc2626;font-size:.8rem;margin-bottom:.5rem}.login-footer{margin-top:1rem;font-size:.75rem;text-align:center;color:var(--color-gray-500)}body{background:#f4f6f9;font-family:Arial,Helvetica,sans-serif}.container{max-width:900px;margin:auto;padding:20px}.page-title{text-align:center;color:#2c3e50;margin-bottom:20px}.card{background:#fff;padding:20px;margin-bottom:20px;border-radius:10px;box-shadow:0 3px 10px #00000014}.header{display:flex;justify-content:space-between;align-items:center}.status{background:#27ae60;color:#fff;padding:5px 12px;border-radius:20px;font-size:14px}.grid{display:grid;grid-template-columns:1fr 1fr;gap:15px;margin-top:15px}.grid label{font-size:13px;color:#777}.grid p{margin:3px 0 0;font-weight:500}.full{grid-column:span 2}.schedule{background:#f9fafb;padding:12px;margin-top:10px;border-radius:8px}.app{height:100%;width:100%}:root{--brand-primary: #D4A04C;--brand-primary-dark: #B8883A;--brand-primary-light: #E5B96D;--brand-accent: #C99A45;--color-white: #FFFFFF;--color-black: #1A1A1A;--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-success: #10B981;--color-warning: #F59E0B;--color-error: #EF4444;--color-info: #3B82F6;--status-open: #8B5CF6;--status-active: #EF4444;--status-completed: #10B981;--sidebar-width: 240px;--header-height: 64px;--border-radius: 8px;--border-radius-sm: 4px;--border-radius-lg: 12px;--shadow-sm: 0 1px 2px 0 rgba(0, 0, 0, .05);--shadow-md: 0 4px 6px -1px rgba(0, 0, 0, .1), 0 2px 4px -1px rgba(0, 0, 0, .06);--shadow-lg: 0 10px 15px -3px rgba(0, 0, 0, .1), 0 4px 6px -2px rgba(0, 0, 0, .05);--shadow-xl: 0 20px 25px -5px rgba(0, 0, 0, .1), 0 10px 10px -5px rgba(0, 0, 0, .04);--font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", "Roboto", "Oxygen", "Ubuntu", "Cantarell", "Fira Sans", "Droid Sans", "Helvetica Neue", sans-serif;--font-family-mono: source-code-pro, Menlo, Monaco, Consolas, "Courier New", monospace;--transition-fast: .15s ease-in-out;--transition-normal: .25s ease-in-out;--transition-slow: .35s ease-in-out}*{margin:0;padding:0;box-sizing:border-box}html,body{height:100%;width:100%}body{font-family:var(--font-family);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;color:var(--color-gray-900);background-color:var(--color-gray-50);line-height:1.5}#root{height:100%;width:100%}h1,h2,h3,h4,h5,h6{font-weight:600;line-height:1.2;color:var(--color-gray-900)}h1{font-size:2.25rem}h2{font-size:1.875rem}h3{font-size:1.5rem}h4{font-size:1.25rem}h5{font-size:1.125rem}h6{font-size:1rem}p{margin-bottom:1rem}a{color:var(--brand-primary);text-decoration:none;transition:color var(--transition-fast)}a:hover{color:var(--brand-primary-dark)}.container{width:100%;max-width:1280px;margin:0 auto;padding:0 1rem}.flex{display:flex}.flex-col{flex-direction:column}.items-center{align-items:center}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.gap-1{gap:.25rem}.gap-2{gap:.5rem}.gap-3{gap:.75rem}.gap-4{gap:1rem}.gap-6{gap:1.5rem}.gap-8{gap:2rem}.text-sm{font-size:.875rem}.text-base{font-size:1rem}.text-lg{font-size:1.125rem}.text-xl{font-size:1.25rem}.text-2xl{font-size:1.5rem}.font-medium{font-weight:500}.font-semibold{font-weight:600}.font-bold{font-weight:700}.text-gray-500{color:var(--color-gray-500)}.text-gray-600{color:var(--color-gray-600)}.text-gray-700{color:var(--color-gray-700)}.text-gray-900{color:var(--color-gray-900)}.card{background:var(--color-white);border-radius:var(--border-radius);padding:1.5rem;box-shadow:var(--shadow-sm);transition:box-shadow var(--transition-normal)}.card:hover{box-shadow:var(--shadow-md)}.card-header{margin-bottom:1rem;padding-bottom:1rem;border-bottom:1px solid var(--color-gray-200)}.card-title{font-size:1.125rem;font-weight:600;color:var(--color-gray-900)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;padding:.625rem 1.25rem;font-size:.875rem;font-weight:500;border-radius:var(--border-radius-sm);border:none;cursor:pointer;transition:all var(--transition-fast);text-decoration:none}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-primary{background:var(--brand-primary);color:var(--color-white)}.btn-primary:hover:not(:disabled){background:var(--brand-primary-dark);transform:translateY(-1px);box-shadow:var(--shadow-md)}.btn-secondary{background:var(--color-gray-100);color:var(--color-gray-700)}.btn-secondary:hover:not(:disabled){background:var(--color-gray-200)}.btn-ghost{background:transparent;color:var(--color-gray-700)}.btn-ghost:hover:not(:disabled){background:var(--color-gray-100)}.badge{display:inline-flex;align-items:center;padding:.25rem .75rem;font-size:.75rem;font-weight:500;border-radius:9999px;white-space:nowrap}.badge-primary{background:var(--brand-primary-light);color:var(--brand-primary-dark)}.badge-success{background:#d1fae5;color:#065f46}.badge-warning{background:#fef3c7;color:#92400e}.badge-error{background:#fee2e2;color:#991b1b}.badge-info{background:#dbeafe;color:#1e40af}.input{width:100%;padding:.625rem .875rem;font-size:.875rem;border:1px solid var(--color-gray-300);border-radius:var(--border-radius-sm);transition:all var(--transition-fast);background:var(--color-white);color:var(--color-gray-900)}.input:focus{outline:none;border-color:var(--brand-primary);box-shadow:0 0 0 3px #d4a04c1a}.input::placeholder{color:var(--color-gray-400)}.grid{display:grid;gap:1.5rem}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}@media (max-width: 768px){.grid-cols-2,.grid-cols-3,.grid-cols-4{grid-template-columns:repeat(1,minmax(0,1fr))}}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:var(--color-gray-100)}::-webkit-scrollbar-thumb{background:var(--color-gray-300);border-radius:4px}::-webkit-scrollbar-thumb:hover{background:var(--color-gray-400)}@keyframes fadeIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.fade-in{animation:fadeIn var(--transition-normal) ease-out}@keyframes slideIn{0%{transform:translate(-100%)}to{transform:translate(0)}}.slide-in{animation:slideIn var(--transition-normal) ease-out}@keyframes spin{to{transform:rotate(360deg)}}.spinner{border:2px solid var(--color-gray-200);border-top-color:var(--brand-primary);border-radius:50%;width:24px;height:24px;animation:spin .6s linear infinite}
