@charset "UTF-8";.login-page{display:flex;justify-content:center;align-items:center;min-height:100vh;background:linear-gradient(135deg,#667eea,#764ba2);padding:16px;box-sizing:border-box}.login-card{background:#fff;border-radius:16px;box-shadow:0 20px 60px #0000004d;padding:40px;width:100%;max-width:400px;box-sizing:border-box}.login-header{text-align:center;margin-bottom:32px}.login-logo{font-size:48px;margin-bottom:8px}.login-title{font-size:24px;font-weight:700;color:#2c3e50;margin:0 0 4px}.login-subtitle{font-size:14px;color:#7f8c8d;margin:0}.login-form{display:flex;flex-direction:column;gap:20px}.login-field{display:flex;flex-direction:column;gap:6px}.login-field label{font-size:13px;font-weight:600;color:#555;text-transform:uppercase;letter-spacing:.5px}.login-field input{padding:12px 16px;border:2px solid #e0e6ed;border-radius:8px;font-size:16px;color:#333;background:#f8f9fa;transition:border-color .2s,box-shadow .2s;outline:none;box-sizing:border-box;width:100%}.login-field input:focus{border-color:#667eea;box-shadow:0 0 0 3px #667eea26;background:#fff}.login-field input::placeholder{color:#adb5bd}.login-error{background:#fff5f5;border:1px solid #fed7d7;border-radius:8px;padding:12px 16px;color:#c53030;font-size:14px;text-align:center}.login-button{padding:14px 24px;background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;border:none;border-radius:8px;font-size:16px;font-weight:600;cursor:pointer;transition:opacity .2s,transform .1s;letter-spacing:.5px}.login-button:hover:not(:disabled){opacity:.9;transform:translateY(-1px)}.login-button:active:not(:disabled){transform:translateY(0)}.login-button:disabled{opacity:.6;cursor:not-allowed}.login-button-loading{display:inline-flex;align-items:center;gap:8px}@keyframes login-spin{to{transform:rotate(360deg)}}.login-spinner{display:inline-block;width:18px;height:18px;border:2px solid rgba(255,255,255,.3);border-top-color:#fff;border-radius:50%;animation:login-spin .6s linear infinite}@media (max-width: 480px){.login-card{padding:28px 20px;border-radius:12px}.login-logo{font-size:40px}.login-title{font-size:20px}.login-field input{padding:10px 14px;font-size:16px}.login-button{padding:12px 20px;font-size:15px}}@media (max-height: 500px){.login-page{align-items:flex-start;padding-top:20px}.login-header{margin-bottom:16px}.login-logo{font-size:32px;margin-bottom:4px}}.header{background:linear-gradient(135deg,#f86e1e,#e8bc8a);color:#fff;padding:0 20px;position:sticky;top:0;z-index:100;box-shadow:0 2px 8px #0000001a}.header-container{display:flex;align-items:center;height:70px;max-width:1400px;margin:0 auto}.menu-toggle{display:none;background:none;border:none;cursor:pointer;padding:8px;margin-right:15px;z-index:101}.hamburger{display:flex;flex-direction:column;width:28px;height:24px;justify-content:space-between;position:relative}.hamburger span{display:block;height:3px;width:100%;background-color:#fff;border-radius:2px;transition:all .3s ease}.hamburger.open span:nth-child(1){transform:rotate(45deg);position:absolute;top:50%}.hamburger.open span:nth-child(2){opacity:0}.hamburger.open span:nth-child(3){transform:rotate(-45deg);position:absolute;top:50%}.header-left{display:flex;align-items:center}.header-logo{margin:0;font-size:20px;font-weight:700;white-space:nowrap}.active-menu-item{font-weight:400;font-size:16px;opacity:.85}.header-right{display:flex;align-items:center;gap:20px;margin-left:auto}.header-user{display:flex;align-items:center;gap:8px}.user-name{font-weight:500;max-width:200px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.btn-logout{background:none;border:1px solid rgba(255,255,255,.3);border-radius:4px;padding:4px 8px;cursor:pointer;font-size:16px;line-height:1;transition:all .2s;color:#fff}.btn-logout:hover{background:#ffffff26;border-color:#ffffff80}@media (max-width: 768px){.menu-toggle{display:block}.header{padding:0 15px}.header-container{height:60px}.user-name{display:none}.header-logo{font-size:17px}.active-menu-item{font-size:14px}.header-right{display:flex}}@media (max-width: 480px){.header-container{height:55px}.header-logo{font-size:15px}.active-menu-item{display:none}.hamburger{width:24px;height:20px}.hamburger span{height:2px}}.sidebar{width:280px;background-color:#fff;border-right:1px solid #e0e0e0;overflow-y:auto;flex-shrink:0}.sidebar-nav{padding:10px 0}.nav-section{margin-bottom:5px}.nav-section-header{display:flex;align-items:center;padding:12px 20px;cursor:pointer;transition:background-color .2s;-webkit-user-select:none;user-select:none}.nav-section-header:hover{background-color:#f5f5f5}.nav-section-icon{font-size:18px;margin-right:12px;width:24px;text-align:center}.nav-section-title{flex:1;font-weight:600;font-size:14px;color:#333}.nav-section-arrow{font-size:10px;color:#999;transition:transform .2s}.nav-section-arrow.expanded{transform:rotate(180deg)}.nav-section-content{background-color:#fafafa;border-top:1px solid #e0e0e0;border-bottom:1px solid #e0e0e0}.nav-link{display:flex;align-items:center;padding:10px 20px 10px 56px;color:#666;transition:all .2s;font-size:13px;border-left:3px solid transparent}.nav-link:hover{background-color:#f0f0f0;color:#f86e1e}.nav-link.active{background-color:#f0f0ff;color:#f86e1e;border-left-color:#f86e1e;font-weight:500}.nav-link-icon{margin-right:10px;font-size:16px}.nav-subsection{padding:5px 0}.nav-subsection-title{padding:8px 20px 8px 56px;font-size:12px;font-weight:600;color:#999;text-transform:uppercase;letter-spacing:.5px}.nav-link.sub{padding-left:72px;font-size:13px}@media (max-width: 768px){.sidebar{width:240px;position:fixed;left:0;top:60px;bottom:0;z-index:100;transform:translate(-100%);transition:transform .3s}.sidebar.mobile-open{transform:translate(0)}.nav-section-header{padding:10px 15px}.nav-link{padding:8px 15px 8px 46px}.nav-link.sub{padding-left:62px}}@media (max-width: 768px){.sidebar{position:fixed;left:-280px;top:60px;bottom:0;width:280px;z-index:99;transition:left .3s ease;box-shadow:2px 0 8px #0000001a}.sidebar.mobile-open{left:0}}@media (max-width: 480px){.sidebar{width:260px;left:-260px;top:55px}.nav-link{font-size:13px;padding:10px 15px}.nav-section-title,.nav-subsection-title{font-size:13px}}.nav-section-title{display:flex;align-items:center;justify-content:space-between;padding:12px 20px;cursor:pointer;transition:background-color .2s;-webkit-user-select:none;user-select:none;font-weight:600;font-size:14px;color:#333}.nav-section-title:hover{background-color:#f5f5f5}.nav-section-title .arrow{font-size:10px;color:#999;transition:transform .2s}.nav-section-title .arrow.expanded{transform:rotate(180deg)}.nav-section-items{background-color:#fafafa}.nav-subsection{margin:5px 0}.nav-subsection-title{display:flex;align-items:center;justify-content:space-between;padding:10px 20px 10px 40px;cursor:pointer;transition:background-color .2s;-webkit-user-select:none;user-select:none;font-weight:500;font-size:13px;color:#555}.nav-subsection-title:hover{background-color:#f0f0f0}.nav-subsection-title .arrow{font-size:9px;color:#999;transition:transform .2s}.nav-subsection-title .arrow.expanded{transform:rotate(180deg)}.nav-subsection-items{background-color:#fff}.nav-subsection-items .nav-link{padding-left:60px}.footer{display:flex;align-items:center;padding:6px 16px;background:#fff;border-top:1px solid #e0e0e0;gap:16px;flex-shrink:0;width:100%;max-width:100vw;overflow:hidden;z-index:50}.footer-section{display:flex;align-items:center;gap:10px}.footer-label{font-size:12px;color:#666;font-weight:500;white-space:nowrap}.footer-history{flex:1;min-width:0;display:flex;align-items:center;gap:10px;overflow:hidden}.history-items{display:flex;gap:5px;flex-wrap:nowrap;align-items:center;overflow-x:auto;-webkit-overflow-scrolling:touch}.history-items::-webkit-scrollbar{display:none}.history-item{background-color:#f5f5f5;border:1px solid #e0e0e0;padding:3px 10px;border-radius:4px;font-size:12px;color:#333;cursor:pointer;transition:all .2s;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:140px;flex-shrink:0}.history-item:hover{background-color:#f86e1e;color:#fff;border-color:#f86e1e}.no-history{font-size:12px;color:#999;font-style:italic;white-space:nowrap}.clear-history{background:none;border:none;color:#999;font-size:14px;cursor:pointer;padding:2px 6px;transition:color .2s;flex-shrink:0}.clear-history:hover{color:#f44}.connection-status{display:flex;align-items:center;gap:6px;padding:4px 10px;border-radius:20px;background-color:#f5f5f5;flex-shrink:0}.status-indicator{width:8px;height:8px;border-radius:50%;animation:pulse 2s infinite;flex-shrink:0}.status-connected .status-indicator{background-color:#4caf50}.status-disconnected .status-indicator{background-color:#ff9800;animation:none}.status-error .status-indicator{background-color:#f44336;animation:none}.status-connecting .status-indicator{background-color:#2196f3}.status-text{font-size:11px;font-weight:500;color:#666;white-space:nowrap}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}.footer-version{display:flex;align-items:center;gap:12px;flex-shrink:0;flex-wrap:nowrap}.version-info{font-size:11px;color:#999;white-space:nowrap}@media (max-width: 768px){.footer{padding:5px 10px;gap:8px}.footer-history{display:none}.footer-version{flex:1;justify-content:space-between;width:100%}.version-info{font-size:10px}}@media (max-width: 480px){.footer{padding:4px 8px;padding-bottom:max(4px,env(safe-area-inset-bottom));gap:6px;min-height:36px}.footer-history{display:none}.connection-status{padding:3px 8px}.status-text{font-size:10px}.version-info{font-size:9px}}.layout{display:flex;flex-direction:column;min-height:100vh;background-color:#f5f5f5;overflow-x:hidden;max-width:100vw;width:100%}.layout-body{display:flex;flex:1;overflow:hidden;min-width:0}.layout-main{flex:1;min-width:0;overflow-x:hidden;overflow-y:auto}@media (max-width: 768px){.layout-body{position:relative}.layout-main{width:100%;padding:0;max-width:100vw}}@media (max-width: 480px){.layout-main{padding:0}}.dashboard{padding:20px;max-width:1400px;margin:0 auto}.dashboard h1{margin:0 0 24px;font-size:28px;color:#333}.dashboard-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:24px}.dashboard-card{background:#fff;border-radius:8px;padding:24px;box-shadow:0 2px 4px #0000001a}.card-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px;padding-bottom:16px;border-bottom:2px solid #eee}.card-header h2{margin:0;font-size:18px;color:#333}.card-link{color:#2196f3;text-decoration:none;font-size:14px;transition:color .2s}.card-link:hover{color:#1976d2}.card-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:16px}.stat-item{text-align:center;padding:16px;background:#f9f9f9;border-radius:4px}.stat-item.success{background:#e8f5e9}.stat-item.warning{background:#fff3e0}.stat-value{font-size:24px;font-weight:700;color:#333;margin-bottom:4px}.stat-label{font-size:12px;color:#666;text-transform:uppercase}.dashboard-loading,.dashboard-error{padding:40px;text-align:center;color:#666}@media (max-width: 768px){.dashboard-grid{grid-template-columns:1fr}}.invoices-container{padding:20px;max-width:1400px;margin:0 auto}.invoices-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:24px}.invoices-header h1{margin:0;font-size:28px;color:#333}.btn-create{background-color:#4caf50;color:#fff;padding:12px 24px;border:none;border-radius:4px;font-size:16px;font-weight:500;cursor:pointer;transition:all .2s;display:flex;align-items:center;gap:8px}.btn-create:hover:not(:disabled){background-color:#45a049;transform:translateY(-1px);box-shadow:0 4px 12px #4caf504d}.btn-create:disabled{opacity:.5;cursor:not-allowed}.invoice-filters{background:#fff;border-radius:8px;padding:16px;margin-bottom:24px;box-shadow:0 2px 4px #0000001a}.filters-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px}.btn-toggle-filters{background:none;border:none;font-size:16px;font-weight:600;cursor:pointer;display:flex;align-items:center;gap:8px;color:#333}.filter-badge{color:#4caf50;font-size:20px}.btn-clear-filters{background:#f5f5f5;border:1px solid #ddd;padding:6px 12px;border-radius:4px;cursor:pointer;font-size:14px}.btn-clear-filters:hover{background:#e0e0e0}.filters-content{border-top:1px solid #eee;padding-top:16px}.filters-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:16px;margin-bottom:16px}.filter-group{display:flex;flex-direction:column;gap:4px}.filter-group label{font-size:14px;font-weight:500;color:#666}.filter-input,.filter-select{padding:8px 12px;border:1px solid #ddd;border-radius:4px;font-size:14px;transition:border-color .2s}.filter-input:focus,.filter-select:focus{outline:none;border-color:#4caf50;box-shadow:0 0 0 3px #4caf501a}.invoices-table-container{background:#fff;border-radius:8px;box-shadow:0 2px 4px #0000001a;overflow-x:auto}.invoices-table{width:100%;border-collapse:collapse}.invoices-table thead{background-color:#f5f5f5;border-bottom:2px solid #ddd}.invoices-table th{padding:12px;text-align:left;font-weight:600;color:#333;font-size:14px;white-space:nowrap}.invoices-table td{padding:12px;border-bottom:1px solid #eee;font-size:14px}.invoices-table tbody tr{transition:background-color .2s}.invoices-table tbody tr:hover{background-color:#f9f9f9}.invoice-number{color:#1976d2;font-weight:600;cursor:pointer}.invoice-number:hover{text-decoration:underline}.patient-name{font-weight:500}.amount,.total-amount,.paid,.balance{text-align:right;font-family:monospace}.discount{color:#f57c00;text-align:right}.status-badge{display:inline-block;padding:4px 12px;border-radius:12px;font-size:12px;font-weight:600;text-transform:uppercase}.status-badge.status-0,.status-badge.status-new{background-color:#e3f2fd;color:#1976d2}.status-badge.status-1,.status-badge.status-partial{background-color:#fff3e0;color:#f57c00}.status-badge.status-2,.status-badge.status-paid{background-color:#e8f5e9;color:#388e3c}.status-badge.status-3,.status-badge.status-cancelled{background-color:#ffebee;color:#d32f2f}.btn-icon:disabled{opacity:.3;cursor:not-allowed}.btn-pay:hover{background-color:#e8f5e9;border-color:#388e3c}.btn-page:hover:not(:disabled){background-color:#f5f5f5;border-color:#4caf50}.invoice-card{padding:24px}.invoice-card-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:24px;padding-bottom:16px;border-bottom:2px solid #eee}.invoice-card-header h2{margin:0;font-size:24px}.invoice-info-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:16px;margin-bottom:24px}.invoice-section{margin-bottom:24px}.invoice-section h3{font-size:18px;margin:0 0 16px;color:#333}.items-table,.payments-table{width:100%;border-collapse:collapse;font-size:14px}.items-table th,.payments-table th{background-color:#f5f5f5;padding:10px;text-align:left;font-weight:600}.items-table td,.payments-table td{padding:10px;border-bottom:1px solid #eee}.invoice-totals{background-color:#f9f9f9;padding:16px;border-radius:4px;margin-bottom:24px}.total-row{display:flex;justify-content:space-between;padding:8px 0;font-size:14px}.total-main{font-size:18px;padding-top:12px;margin-top:8px;border-top:2px solid #ddd}.total-balance{font-size:16px;padding-top:8px;margin-top:4px;border-top:1px solid #ddd}.invoice-actions{display:flex;gap:12px;justify-content:flex-end}.invoice-form{padding:24px}.form-group{margin-bottom:16px}.form-group label{display:block;margin-bottom:6px;font-weight:600;font-size:14px;color:#333}.form-group input,.form-group select,.form-group textarea{width:100%;padding:10px 12px;border:1px solid #ddd;border-radius:4px;font-size:14px;font-family:inherit;transition:border-color .2s}.form-group input:focus,.form-group select:focus,.form-group textarea:focus{outline:none;border-color:#4caf50;box-shadow:0 0 0 3px #4caf501a}.payment-modal{padding:24px;max-width:500px}.payment-info{background-color:#f9f9f9;padding:16px;border-radius:4px;margin-bottom:24px}.info-row{display:flex;justify-content:space-between;font-size:16px}.payment-type-selector{display:flex;gap:16px;margin-bottom:24px;padding:16px;background-color:#f9f9f9;border-radius:4px}.payment-type-selector label{display:flex;align-items:center;gap:6px;cursor:pointer;font-size:14px}.payment-type-selector input[type=radio]{cursor:pointer}.change-info{margin-top:8px;padding:8px;background-color:#e8f5e9;border-left:3px solid #4CAF50;color:#2e7d32;font-weight:600}.payment-total{padding:12px;background-color:#e3f2fd;border-radius:4px;text-align:center;margin-bottom:16px}.btn-primary,.btn-secondary,.btn-danger{padding:10px 24px;border:none;border-radius:4px;font-size:14px;font-weight:600;cursor:pointer;transition:all .2s}.btn-primary{background-color:#4caf50;color:#fff}.btn-primary:hover:not(:disabled){background-color:#45a049;box-shadow:0 2px 8px #4caf504d}.btn-primary:disabled,.btn-secondary:disabled,.btn-danger:disabled{opacity:.5;cursor:not-allowed}.text-success{color:#4caf50}.text-warning{color:#ff9800}.text-danger{color:#f44336}@media (max-width: 768px){.invoices-header{flex-direction:column;gap:16px;align-items:stretch}.invoices-table-container{overflow-x:scroll}.invoices-table{font-size:12px}.invoices-table th,.invoices-table td{padding:8px}.actions{flex-direction:column}.pagination{flex-direction:column;gap:12px}.modal-content{max-height:100vh;border-radius:0}.invoice-info-grid{grid-template-columns:1fr}.form-actions,.payment-type-selector{flex-direction:column}}.patients-container{padding:20px;max-width:1400px;margin:0 auto}.patients-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:24px}.patients-header h1{margin:0;font-size:28px;color:#333}.patients-filters{background:#fff;border-radius:8px;padding:20px;margin-bottom:24px;box-shadow:0 2px 4px #0000001a}.search-bar{margin-bottom:16px}.search-input{width:100%;padding:12px 16px;border:1px solid #ddd;border-radius:4px;font-size:16px;transition:border-color .2s}.search-input:focus{outline:none;border-color:#2196f3;box-shadow:0 0 0 3px #2196f31a}.filter-buttons{display:flex;gap:8px;margin-bottom:16px;flex-wrap:wrap}.filter-btn{padding:8px 16px;border:1px solid #ddd;background:#fff;border-radius:4px;cursor:pointer;font-size:14px;transition:all .2s}.filter-btn:hover{background:#f5f5f5}.filter-btn.active{background:#2196f3;color:#fff;border-color:#2196f3}.btn-clear-filters{margin-left:auto;background:#f5f5f5;border:1px solid #ddd}.filter-limit{display:flex;align-items:center;gap:8px}.filter-limit select{padding:6px 12px;border:1px solid #ddd;border-radius:4px}.patients-table-container{background:#fff;border-radius:8px;box-shadow:0 2px 4px #0000001a;overflow-x:auto}.patients-table{width:100%;border-collapse:collapse}.patients-table thead{background-color:#f5f5f5;border-bottom:2px solid #ddd}.patients-table th{padding:12px;text-align:left;font-weight:600;color:#333;font-size:14px;white-space:nowrap}.patients-table td{padding:12px;border-bottom:1px solid #eee;font-size:14px}.patients-table tbody tr{transition:background-color .2s}.patients-table tbody tr:hover{background-color:#f9f9f9}.patient-photo-cell{width:60px}.patient-avatar{width:48px;height:48px;border-radius:50%;display:flex;align-items:center;justify-content:center;overflow:hidden}.patient-avatar img{width:100%;height:100%;object-fit:cover}.patient-avatar.sex-male{background:#e3f2fd;color:#1976d2;font-size:24px}.patient-avatar.sex-female{background:#fce4ec;color:#c2185b;font-size:24px}.card-number{color:#1976d2;font-weight:600;cursor:pointer}.card-number:hover{text-decoration:underline}.patient-name{cursor:pointer}.name-wrapper{display:flex;align-items:center;gap:8px}.full-name{font-weight:500}.sex-badge{display:inline-block;padding:2px 8px;border-radius:10px;font-size:11px;font-weight:600;text-transform:uppercase}.sex-badge.sex-male{background:#e3f2fd;color:#1976d2}.sex-badge.sex-female{background:#fce4ec;color:#c2185b}.age{text-align:center;font-weight:500}.phone,.email{color:#666}.dispensary-badge{display:inline-block;padding:4px 12px;background:#fff3e0;color:#f57c00;border-radius:12px;font-size:12px;font-weight:600}.actions{display:flex;gap:4px;justify-content:center}.btn-icon{background:none;border:1px solid #ddd;padding:6px 10px;border-radius:4px;cursor:pointer;font-size:16px;transition:all .2s}.btn-icon:hover:not(:disabled){transform:scale(1.1);box-shadow:0 2px 8px #00000026}.btn-view:hover{background-color:#e3f2fd;border-color:#1976d2}.btn-edit:hover{background-color:#fff3e0;border-color:#f57c00}.btn-delete:hover{background-color:#ffebee;border-color:#d32f2f}.patient-card{padding:0;max-width:1000px}.patient-card-header{padding:24px;border-bottom:2px solid #eee;display:flex;justify-content:space-between;align-items:flex-start}.patient-main-info{display:flex;gap:24px}.patient-photo-large{width:120px;height:120px;border-radius:50%;overflow:hidden;background:#f5f5f5;display:flex;align-items:center;justify-content:center;font-size:60px}.patient-photo-large img{width:100%;height:100%;object-fit:cover}.photo-placeholder{width:100%;height:100%;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#667eea,#764ba2)}.patient-details h2{margin:0 0 8px;font-size:24px;color:#333}.patient-meta{display:flex;flex-wrap:wrap;gap:12px;font-size:14px;color:#666}.patient-meta>span{padding:4px 12px;background:#f5f5f5;border-radius:12px}.tabs{display:flex;gap:4px;padding:0 24px;background:#fff;border-bottom:1px solid #eee}.tabs button{padding:12px 24px;border:none;background:none;cursor:pointer;font-size:14px;font-weight:500;color:#666;border-bottom:2px solid transparent;transition:all .2s}.tabs button:hover{color:#2196f3}.tabs button.active{color:#2196f3;border-bottom-color:#2196f3}.tab-content{padding:24px;min-height:300px}.info-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:16px}.info-item{display:flex;flex-direction:column;gap:4px}.info-item.full-width{grid-column:1 / -1}.info-item label{font-size:12px;color:#666;text-transform:uppercase;font-weight:600}.info-item span{font-size:14px;color:#333}.dispensary-panel{background:#f9f9f9;padding:16px;border-radius:8px}.dispensary-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px}.dispensary-header h3{margin:0;font-size:18px}.dispensary-active{background:#fff3e0;border-left:4px solid #FF9800;padding:16px;border-radius:4px;margin-bottom:16px}.next-exam{padding:12px;background:#e8f5e9;border-radius:4px;margin:16px 0;font-weight:500}.next-exam.overdue{background:#ffebee;color:#d32f2f}.dispensary-history{margin-top:24px}.dispensary-history h4{font-size:16px;margin-bottom:12px}.history-item{padding:12px;background:#fff;border-radius:4px;margin-bottom:8px;border-left:3px solid #ddd}.history-item.active{border-left-color:#4caf50;background:#e8f5e9}.history-reason{font-weight:600;margin-bottom:4px}.history-dates{font-size:13px;color:#666}.history-status{font-size:12px;color:#999;margin-top:4px}.patient-form{padding:24px;max-width:700px}.form-section{margin-bottom:24px;padding-bottom:24px;border-bottom:1px solid #eee}.form-section:last-of-type{border-bottom:none}.form-section h3{margin:0 0 16px;font-size:18px;color:#333}.form-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:16px;margin-bottom:16px}.form-group{display:flex;flex-direction:column;gap:6px;margin-bottom:16px}.form-group label{font-weight:600;font-size:14px;color:#333}.form-group input,.form-group select,.form-group textarea{padding:10px 12px;border:1px solid #ddd;border-radius:4px;font-size:14px;font-family:inherit;transition:border-color .2s}.form-group input:focus,.form-group select:focus,.form-group textarea:focus{outline:none;border-color:#2196f3;box-shadow:0 0 0 3px #2196f31a}.form-actions{display:flex;gap:12px;justify-content:flex-end;margin-top:24px;padding-top:16px;border-top:1px solid #eee}.btn-create,.btn-primary,.btn-secondary,.btn-danger{padding:10px 24px;border:none;border-radius:4px;font-size:14px;font-weight:600;cursor:pointer;transition:all .2s}.btn-create,.btn-primary{background-color:#2196f3;color:#fff}.btn-create:hover:not(:disabled),.btn-primary:hover:not(:disabled){background-color:#1976d2;box-shadow:0 2px 8px #2196f34d}.btn-secondary{background-color:#f5f5f5;color:#333;border:1px solid #ddd}.btn-secondary:hover:not(:disabled){background-color:#e0e0e0}.btn-danger{background-color:#f44336;color:#fff}.btn-danger:hover:not(:disabled){background-color:#da190b;box-shadow:0 2px 8px #f443364d}.btn-create:disabled,.btn-primary:disabled,.btn-secondary:disabled,.btn-danger:disabled{opacity:.5;cursor:not-allowed}.modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background-color:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000;padding:20px;animation:fadeIn .2s}.modal-content{background:#fff;border-radius:8px;max-width:900px;width:100%;max-height:90vh;overflow-y:auto;box-shadow:0 8px 32px #0000004d;animation:slideUp .3s}.btn-close{background:none;border:none;font-size:24px;cursor:pointer;color:#666;width:32px;height:32px;border-radius:50%;transition:all .2s}.btn-close:hover{background-color:#f5f5f5;color:#333}.patient-actions{display:flex;gap:12px;justify-content:flex-end;padding:16px 24px;border-top:1px solid #eee}.loading-indicator{text-align:center;padding:40px;color:#666}.error-message{background-color:#ffebee;color:#d32f2f;padding:12px 16px;border-radius:4px;margin-bottom:16px}.empty-state{text-align:center;padding:60px 20px;color:#666}.empty-state p{font-size:18px;margin-bottom:16px}.pagination{display:flex;justify-content:space-between;align-items:center;margin-top:24px;padding:16px;background:#fff;border-radius:8px;box-shadow:0 2px 4px #0000001a}.pagination-info{font-size:14px;color:#666}.pagination-controls{display:flex;gap:8px}.btn-page{padding:8px 16px;border:1px solid #ddd;background:#fff;border-radius:4px;cursor:pointer;font-size:14px;transition:all .2s}.btn-page:hover:not(:disabled){background-color:#f5f5f5;border-color:#2196f3}.btn-page:disabled{opacity:.3;cursor:not-allowed}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@media (max-width: 768px){.patients-header{flex-direction:column;gap:16px;align-items:stretch}.patients-table-container{overflow-x:scroll}.patients-table{font-size:12px}.patients-table th,.patients-table td{padding:8px}.patient-main-info{flex-direction:column}.tabs{overflow-x:auto;padding:0 16px}.tabs button{padding:10px 16px;white-space:nowrap}.tab-content{padding:16px}.info-grid,.form-row{grid-template-columns:1fr}.form-actions{flex-direction:column}.modal-content{max-height:100vh;border-radius:0}.pagination{flex-direction:column;gap:12px}}.task-organizer{height:100%;display:flex;flex-direction:column;background-color:#fff}.task-organizer-header{padding:20px 30px;border-bottom:1px solid #e0e0e0;background-color:#fafafa}.task-organizer-title{font-size:24px;font-weight:600;color:#333;margin-bottom:20px}.task-organizer-controls{display:flex;gap:15px;flex-wrap:wrap;align-items:center}.period-navigation{display:flex;gap:10px}.btn-nav,.btn-today{padding:8px 16px;border:1px solid #ddd;background-color:#fff;border-radius:6px;font-size:13px;font-weight:500;transition:all .2s}.btn-nav:hover,.btn-today:hover{background-color:#f86e1e;color:#fff;border-color:#f86e1e}.btn-today{font-weight:600;color:#f86e1e}.view-mode-selector{display:flex;gap:0;border:1px solid #ddd;border-radius:6px;overflow:hidden}.btn-view-mode{padding:8px 16px;border:none;background-color:#fff;font-size:13px;font-weight:500;transition:all .2s;border-right:1px solid #ddd}.btn-view-mode:last-child{border-right:none}.btn-view-mode:hover{background-color:#f5f5f5}.btn-view-mode.active{background-color:#f86e1e;color:#fff}.filters-row{display:flex;gap:10px;align-items:center;flex:1;min-width:0}.filters-row .doctor-filter,.filters-row .room-filter{flex:1;min-width:0}.filters-row select{width:100%;padding:8px 12px;border:1px solid #ddd;border-radius:6px;font-size:13px;background-color:#fff;-webkit-appearance:auto;-moz-appearance:auto;appearance:auto}.filters-row select:focus{outline:none;border-color:#f86e1e}.btn-new-task{padding:8px 20px;background:linear-gradient(135deg,#f86e1e,#e8bc8a);color:#fff;border:none;border-radius:6px;font-size:14px;font-weight:600;transition:all .2s;box-shadow:0 2px 8px #667eea4d}.btn-new-task:hover{transform:translateY(-2px);box-shadow:0 4px 12px #667eea66}.current-period{padding:15px 30px;background-color:#fff;border-bottom:1px solid #e0e0e0;font-size:18px;font-weight:600;color:#f86e1e;text-align:center}.task-organizer-content{flex:1;overflow-y:auto;padding:20px 30px}.calendar-grid{background-color:#fff;border-radius:8px;padding:20px}.calendar-placeholder{text-align:center;padding:40px 20px}.no-tasks{color:#999;font-style:italic;margin-top:20px}.tasks-list{margin-top:20px;display:flex;flex-direction:column;gap:10px;max-width:800px;margin-left:auto;margin-right:auto}.task-item{display:flex;gap:15px;padding:15px;background-color:#f9f9f9;border-left:4px solid #F86E1E;border-radius:6px;transition:all .2s;cursor:pointer}.task-item:hover{background-color:#f0f0ff;transform:translate(5px)}.task-time{font-size:16px;font-weight:700;color:#f86e1e;min-width:60px}.task-info{flex:1}.task-patient{font-size:15px;font-weight:600;color:#333;margin-bottom:5px}.loading,.error{text-align:center;padding:40px;font-size:16px}.loading{color:#f86e1e}.error{color:#f44336}.spinner{display:inline-block;width:30px;height:30px;border:3px solid #f3f3f3;border-top:3px solid #F86E1E;border-radius:50%;animation:spin 1s linear infinite;margin-bottom:10px}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background-color:#00000080;display:flex;justify-content:center;align-items:center;z-index:1000}.modal{background-color:#fff;border-radius:8px;width:90%;max-width:600px;max-height:90vh;overflow-y:auto;box-shadow:0 4px 20px #0000004d}.modal-header{display:flex;justify-content:space-between;align-items:center;padding:20px;border-bottom:1px solid #e0e0e0}.modal-header h3{margin:0;font-size:20px;color:#333}.modal-close{background:none;border:none;font-size:24px;color:#999;cursor:pointer;padding:0;width:30px;height:30px;display:flex;align-items:center;justify-content:center}.modal-close:hover{color:#333}@media (max-width: 768px){.task-organizer-header{padding:15px}.task-organizer-title{font-size:20px;margin-bottom:15px}.task-organizer-controls{flex-direction:column;align-items:stretch;gap:10px}.period-navigation{justify-content:space-between}.view-mode-selector{width:100%}.btn-view-mode{flex:1}.doctor-filter{margin-left:0}.select-doctor{width:100%}.filters-row{flex-direction:column;gap:8px}.filters-row .doctor-filter,.filters-row .room-filter{width:100%}.current-period{padding:10px 15px;font-size:16px}.task-organizer-content{padding:15px}.task-item{flex-direction:column;gap:10px}.task-time{min-width:auto}}@media (max-width: 768px){.task-organizer-header{flex-direction:column;gap:15px}.task-organizer-title{font-size:20px}.task-organizer-controls{flex-direction:column;gap:12px;width:100%}.period-navigation{width:100%;justify-content:space-between}.btn-nav{padding:8px 12px;font-size:13px}.btn-today{padding:8px 16px;font-size:13px}.view-mode-selector{width:100%;display:grid;grid-template-columns:repeat(2,1fr);gap:8px}.btn-view-mode{font-size:13px;padding:8px 12px}.doctor-filter,.room-filter{width:100%}.select-doctor,.select-room{width:100%;font-size:14px}.btn-new-task{width:100%;font-size:14px;padding:12px}.current-period{font-size:16px;padding:12px}.task-item{flex-direction:column;gap:8px}.task-time{min-width:auto;font-size:16px;border-right:none;border-bottom:2px solid #F86E1E;padding-bottom:5px}.task-patient{font-size:15px}.task-doctor,.task-room,.task-comment{font-size:12px}}@media (max-width: 480px){.task-organizer-title{font-size:18px}.btn-nav,.btn-today,.btn-view-mode{font-size:12px;padding:6px 10px}.current-period,.task-patient{font-size:14px}.task-doctor,.task-room,.task-comment{font-size:11px}.modal{width:95%;margin:10px}}.btn-text-mobile{display:none}.btn-text-desktop{display:inline}@media (max-width: 768px){.btn-text-mobile{display:inline}.btn-text-desktop{display:none}.view-mode-selector{display:flex;flex-direction:row!important;gap:4px}.btn-view-mode{flex:1;min-width:40px;padding:8px 4px;font-size:14px}}.task-details{display:flex;flex-direction:column;gap:12px}.task-detail-row{display:flex;gap:10px;padding:8px;background-color:#f5f5f5;border-radius:4px}.task-detail-row strong{min-width:140px;color:#757575;font-weight:600}.modal-body{padding:20px}.modal-footer{display:flex;gap:10px;padding:15px 20px;border-top:1px solid #e0e0e0;justify-content:flex-end;margin-top:20px}.btn-edit,.btn-delete,.btn-close-modal{padding:10px 20px;border:none;border-radius:4px;cursor:pointer;font-size:14px;font-weight:600;transition:all .2s}.btn-edit{background-color:#4caf50;color:#fff}.btn-edit:hover{background-color:#45a049}.btn-delete{background-color:#f44336;color:#fff}.btn-delete:hover{background-color:#da190b}.btn-close-modal{background-color:#757575;color:#fff}.btn-close-modal:hover{background-color:#616161}.task-note-text{font-weight:600;font-size:14px;color:#5e35b1}.task-item[data-tasktype="3"]{border-left:4px solid #9f7aea}.task-item[data-tasktype="5"]{border-left:4px solid #F86E1E}.group-by-rooms-checkbox{display:none}@media (min-width: 1024px){.group-by-rooms-checkbox{display:flex;align-items:center;gap:8px}.group-by-rooms-checkbox label{display:flex;align-items:center;gap:6px;font-size:14px;cursor:pointer;-webkit-user-select:none;user-select:none}.group-by-rooms-checkbox input[type=checkbox]{width:16px;height:16px;cursor:pointer}}.tasks-by-room{display:none}@media (min-width: 1024px){.tasks-by-room{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:20px;align-items:start}.room-group{border:1px solid #e0e0e0;border-radius:8px;padding:0;background-color:#fafafa;overflow:hidden}.room-group-header{font-weight:600;font-size:16px;color:#fff;background-color:#f86e1e;padding:12px 15px;margin:0;text-align:center}.room-group .tasks-list{display:flex;flex-direction:column;gap:10px;padding:15px}.room-group .task-item{margin:0}}.btn-new-task-inline{padding:8px 16px;border:2px solid #F86E1E;background-color:#f86e1e;color:#fff;border-radius:6px;font-size:18px;font-weight:700;transition:all .2s;cursor:pointer;line-height:1;min-width:40px}.btn-new-task-inline:hover{background-color:#e8bc8a;border-color:#e8bc8a;transform:scale(1.05)}.btn-view-mode{display:flex;align-items:center;justify-content:center;text-align:center}.task-organizer-controls{gap:10px}.period-navigation{gap:5px;flex-wrap:nowrap}.btn-nav,.btn-today{padding:8px 12px;font-size:12px;min-width:35px}.btn-new-task-inline{padding:8px 12px;font-size:16px;min-width:35px}.view-mode-selector{flex-direction:row!important;width:100%}.btn-view-mode{flex:1;min-width:0;padding:10px 4px;font-size:14px}@media (max-width: 480px){.task-organizer-header{padding:10px}.task-organizer-title{font-size:18px;margin-bottom:10px}.btn-nav,.btn-today,.btn-new-task-inline{padding:6px 8px;min-width:32px}.btn-text-desktop{display:none!important}.btn-text-mobile{display:inline!important}.btn-view-mode{padding:8px 2px;font-size:13px}.select-doctor,.select-room{font-size:12px;padding:6px}}.rbc-btn{color:inherit;font:inherit;margin:0}button.rbc-btn{overflow:visible;text-transform:none;-webkit-appearance:button;-moz-appearance:button;appearance:button;cursor:pointer}button[disabled].rbc-btn{cursor:not-allowed}button.rbc-input::-moz-focus-inner{border:0;padding:0}.rbc-calendar{-webkit-box-sizing:border-box;box-sizing:border-box;height:100%;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;-webkit-box-align:stretch;-ms-flex-align:stretch;align-items:stretch}.rbc-m-b-negative-3{margin-bottom:-3px}.rbc-h-full{height:100%}.rbc-calendar *,.rbc-calendar *:before,.rbc-calendar *:after{-webkit-box-sizing:inherit;box-sizing:inherit}.rbc-abs-full,.rbc-row-bg{overflow:hidden;position:absolute;top:0;left:0;right:0;bottom:0}.rbc-ellipsis,.rbc-show-more,.rbc-row-segment .rbc-event-content,.rbc-event-label{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.rbc-rtl{direction:rtl}.rbc-off-range{color:#999}.rbc-off-range-bg{background:#e6e6e6}.rbc-header{overflow:hidden;-webkit-box-flex:1;-ms-flex:1 0 0%;flex:1 0 0%;text-overflow:ellipsis;white-space:nowrap;padding:0 3px;text-align:center;vertical-align:middle;font-weight:700;font-size:90%;min-height:0;border-bottom:1px solid #ddd}.rbc-header+.rbc-header{border-left:1px solid #ddd}.rbc-rtl .rbc-header+.rbc-header{border-left-width:0;border-right:1px solid #ddd}.rbc-header>a,.rbc-header>a:active,.rbc-header>a:visited{color:inherit;text-decoration:none}.rbc-button-link{color:inherit;background:none;margin:0;padding:0;border:none;cursor:pointer;-webkit-user-select:text;-moz-user-select:text;-ms-user-select:text;user-select:text}.rbc-row-content{position:relative;-moz-user-select:none;-ms-user-select:none;user-select:none;-webkit-user-select:none;z-index:4}.rbc-row-content-scrollable{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;height:100%}.rbc-row-content-scrollable .rbc-row-content-scroll-container{height:100%;overflow-y:scroll;-ms-overflow-style:none;scrollbar-width:none}.rbc-row-content-scrollable .rbc-row-content-scroll-container::-webkit-scrollbar{display:none}.rbc-today{background-color:#eaf6ff}.rbc-toolbar{display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;margin-bottom:10px;font-size:16px}.rbc-toolbar .rbc-toolbar-label{-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1;padding:0 10px;text-align:center}.rbc-toolbar button{color:#373a3c;display:inline-block;margin:0;text-align:center;vertical-align:middle;background:none;background-image:none;border:1px solid #ccc;padding:.375rem 1rem;border-radius:4px;line-height:normal;white-space:nowrap}.rbc-toolbar button:active,.rbc-toolbar button.rbc-active{background-image:none;-webkit-box-shadow:inset 0 3px 5px rgba(0,0,0,.125);box-shadow:inset 0 3px 5px #00000020;background-color:#e6e6e6;border-color:#adadad}.rbc-toolbar button:active:hover,.rbc-toolbar button:active:focus,.rbc-toolbar button.rbc-active:hover,.rbc-toolbar button.rbc-active:focus{color:#373a3c;background-color:#d4d4d4;border-color:#8c8c8c}.rbc-toolbar button:focus{color:#373a3c;background-color:#e6e6e6;border-color:#adadad}.rbc-toolbar button:hover{color:#373a3c;cursor:pointer;background-color:#e6e6e6;border-color:#adadad}.rbc-btn-group{display:inline-block;white-space:nowrap}.rbc-btn-group>button:first-child:not(:last-child){border-top-right-radius:0;border-bottom-right-radius:0}.rbc-btn-group>button:last-child:not(:first-child){border-top-left-radius:0;border-bottom-left-radius:0}.rbc-rtl .rbc-btn-group>button:first-child:not(:last-child){border-radius:0 4px 4px 0}.rbc-rtl .rbc-btn-group>button:last-child:not(:first-child){border-radius:4px 0 0 4px}.rbc-btn-group>button:not(:first-child):not(:last-child){border-radius:0}.rbc-btn-group button+button{margin-left:-1px}.rbc-rtl .rbc-btn-group button+button{margin-left:0;margin-right:-1px}.rbc-btn-group+.rbc-btn-group,.rbc-btn-group+button{margin-left:10px}@media (max-width: 767px){.rbc-toolbar{-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column}}.rbc-event,.rbc-day-slot .rbc-background-event{border:none;-webkit-box-sizing:border-box;box-sizing:border-box;-webkit-box-shadow:none;box-shadow:none;margin:0;padding:2px 5px;background-color:#3174ad;border-radius:5px;color:#fff;cursor:pointer;width:100%;text-align:left}.rbc-slot-selecting .rbc-event,.rbc-slot-selecting .rbc-day-slot .rbc-background-event,.rbc-day-slot .rbc-slot-selecting .rbc-background-event{cursor:inherit;pointer-events:none}.rbc-event.rbc-selected,.rbc-day-slot .rbc-selected.rbc-background-event{background-color:#265985}.rbc-event:focus,.rbc-day-slot .rbc-background-event:focus{outline:5px auto #3b99fc}.rbc-event-label{font-size:80%}.rbc-event-overlaps{-webkit-box-shadow:-1px 1px 5px 0px rgba(51,51,51,.5);box-shadow:-1px 1px 5px #33333380}.rbc-event-continues-prior{border-top-left-radius:0;border-bottom-left-radius:0}.rbc-event-continues-after{border-top-right-radius:0;border-bottom-right-radius:0}.rbc-event-continues-earlier{border-top-left-radius:0;border-top-right-radius:0}.rbc-event-continues-later{border-bottom-left-radius:0;border-bottom-right-radius:0}.rbc-row{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row}.rbc-row-segment{padding:0 1px 1px}.rbc-selected-cell{background-color:#0000001a}.rbc-show-more{background-color:#ffffff4d;z-index:4;font-weight:700;font-size:85%;height:auto;line-height:normal;color:#3174ad}.rbc-show-more:hover,.rbc-show-more:focus{color:#265985}.rbc-month-view{position:relative;border:1px solid #ddd;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;-webkit-box-flex:1;-ms-flex:1 0 0px;flex:1 0 0;width:100%;-moz-user-select:none;-ms-user-select:none;user-select:none;-webkit-user-select:none;height:100%}.rbc-month-header{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row}.rbc-month-row{display:-webkit-box;display:-ms-flexbox;display:flex;position:relative;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;-webkit-box-flex:1;-ms-flex:1 0 0px;flex:1 0 0;-ms-flex-preferred-size:0px;flex-basis:0px;overflow:hidden;height:100%}.rbc-month-row+.rbc-month-row{border-top:1px solid #ddd}.rbc-date-cell{-webkit-box-flex:1;-ms-flex:1 1 0px;flex:1 1 0;min-width:0;padding-right:5px;text-align:right}.rbc-date-cell.rbc-now{font-weight:700}.rbc-date-cell>a,.rbc-date-cell>a:active,.rbc-date-cell>a:visited{color:inherit;text-decoration:none}.rbc-row-bg{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row;-webkit-box-flex:1;-ms-flex:1 0 0px;flex:1 0 0;overflow:hidden;right:1px}.rbc-day-bg{-webkit-box-flex:1;-ms-flex:1 0 0%;flex:1 0 0%}.rbc-day-bg+.rbc-day-bg{border-left:1px solid #ddd}.rbc-rtl .rbc-day-bg+.rbc-day-bg{border-left-width:0;border-right:1px solid #ddd}.rbc-overlay{position:absolute;z-index:5;border:1px solid #e5e5e5;background-color:#fff;-webkit-box-shadow:0 5px 15px rgba(0,0,0,.25);box-shadow:0 5px 15px #00000040;padding:10px}.rbc-overlay>*+*{margin-top:1px}.rbc-overlay-header{border-bottom:1px solid #e5e5e5;margin:-10px -10px 5px;padding:2px 10px}.rbc-agenda-view{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;-webkit-box-flex:1;-ms-flex:1 0 0px;flex:1 0 0;overflow:auto}.rbc-agenda-view table.rbc-agenda-table{width:100%;border:1px solid #ddd;border-spacing:0;border-collapse:collapse}.rbc-agenda-view table.rbc-agenda-table tbody>tr>td{padding:5px 10px;vertical-align:top}.rbc-agenda-view table.rbc-agenda-table .rbc-agenda-time-cell{padding-left:15px;padding-right:15px;text-transform:lowercase}.rbc-agenda-view table.rbc-agenda-table tbody>tr>td+td{border-left:1px solid #ddd}.rbc-rtl .rbc-agenda-view table.rbc-agenda-table tbody>tr>td+td{border-left-width:0;border-right:1px solid #ddd}.rbc-agenda-view table.rbc-agenda-table tbody>tr+tr{border-top:1px solid #ddd}.rbc-agenda-view table.rbc-agenda-table thead>tr>th{padding:3px 5px;text-align:left;border-bottom:1px solid #ddd}.rbc-rtl .rbc-agenda-view table.rbc-agenda-table thead>tr>th{text-align:right}.rbc-agenda-time-cell{text-transform:lowercase}.rbc-agenda-time-cell .rbc-continues-after:after{content:" »"}.rbc-agenda-time-cell .rbc-continues-prior:before{content:"« "}.rbc-agenda-date-cell,.rbc-agenda-time-cell{white-space:nowrap}.rbc-agenda-event-cell{width:100%}.rbc-time-column{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;min-height:100%}.rbc-time-column .rbc-timeslot-group{-webkit-box-flex:1;-ms-flex:1;flex:1}.rbc-timeslot-group{border-bottom:1px solid #ddd;min-height:40px;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-flow:column nowrap;flex-flow:column nowrap}.rbc-time-gutter,.rbc-header-gutter{-webkit-box-flex:0;-ms-flex:none;flex:none}.rbc-label{padding:0 5px}.rbc-day-slot{position:relative}.rbc-day-slot .rbc-events-container{bottom:0;left:0;position:absolute;right:0;margin-right:10px;top:0}.rbc-day-slot .rbc-events-container.rbc-rtl{left:10px;right:0}.rbc-day-slot .rbc-event,.rbc-day-slot .rbc-background-event{border:1px solid #265985;display:-webkit-box;display:-ms-flexbox;display:flex;max-height:100%;min-height:20px;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-flow:column wrap;flex-flow:column wrap;-webkit-box-align:start;-ms-flex-align:start;align-items:flex-start;overflow:hidden;position:absolute}.rbc-day-slot .rbc-background-event{opacity:.75}.rbc-day-slot .rbc-event-label{-webkit-box-flex:0;-ms-flex:none;flex:none;padding-right:5px;width:auto}.rbc-day-slot .rbc-event-content{width:100%;-webkit-box-flex:1;-ms-flex:1 1 0px;flex:1 1 0;word-wrap:break-word;line-height:1;height:100%;min-height:1em}.rbc-day-slot .rbc-time-slot{border-top:1px solid #f7f7f7}.rbc-time-view-resources .rbc-time-gutter,.rbc-time-view-resources .rbc-time-header-gutter{position:sticky;left:0;background-color:#fff;border-right:1px solid #ddd;z-index:10;margin-right:-1px}.rbc-time-view-resources .rbc-time-header{overflow:hidden}.rbc-time-view-resources .rbc-time-header-content{min-width:auto;-webkit-box-flex:1;-ms-flex:1 0 0px;flex:1 0 0;-ms-flex-preferred-size:0px;flex-basis:0px}.rbc-time-view-resources .rbc-time-header-cell-single-day{display:none}.rbc-time-view-resources .rbc-day-slot{min-width:140px}.rbc-time-view-resources .rbc-header,.rbc-time-view-resources .rbc-day-bg{width:140px;-webkit-box-flex:1;-ms-flex:1 1 0px;flex:1 1 0;-ms-flex-preferred-size:0 px;flex-basis:0 px}.rbc-time-header-content+.rbc-time-header-content{margin-left:-1px}.rbc-time-slot{-webkit-box-flex:1;-ms-flex:1 0 0px;flex:1 0 0}.rbc-time-slot.rbc-now{font-weight:700}.rbc-day-header{text-align:center}.rbc-slot-selection{z-index:10;position:absolute;background-color:#00000080;color:#fff;font-size:75%;width:100%;padding:3px}.rbc-slot-selecting{cursor:move}.rbc-time-view{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;-webkit-box-flex:1;-ms-flex:1;flex:1;width:100%;border:1px solid #ddd;min-height:0}.rbc-time-view .rbc-time-gutter{white-space:nowrap;text-align:right}.rbc-time-view .rbc-allday-cell{-webkit-box-sizing:content-box;box-sizing:content-box;width:100%;height:100%;position:relative}.rbc-time-view .rbc-allday-cell+.rbc-allday-cell{border-left:1px solid #ddd}.rbc-time-view .rbc-allday-events{position:relative;z-index:4}.rbc-time-view .rbc-row{-webkit-box-sizing:border-box;box-sizing:border-box;min-height:20px}.rbc-time-header{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-flex:0;-ms-flex:0 0 auto;flex:0 0 auto;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row}.rbc-time-header.rbc-overflowing{border-right:1px solid #ddd}.rbc-rtl .rbc-time-header.rbc-overflowing{border-right-width:0;border-left:1px solid #ddd}.rbc-time-header>.rbc-row:first-child{border-bottom:1px solid #ddd}.rbc-time-header>.rbc-row.rbc-row-resource{border-bottom:1px solid #ddd}.rbc-time-header-cell-single-day{display:none}.rbc-time-header-content{-webkit-box-flex:1;-ms-flex:1;flex:1;display:-webkit-box;display:-ms-flexbox;display:flex;min-width:0;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;border-left:1px solid #ddd}.rbc-rtl .rbc-time-header-content{border-left-width:0;border-right:1px solid #ddd}.rbc-time-header-content>.rbc-row.rbc-row-resource{border-bottom:1px solid #ddd;-ms-flex-negative:0;flex-shrink:0}.rbc-time-content{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-flex:1;-ms-flex:1 0 0%;flex:1 0 0%;-webkit-box-align:start;-ms-flex-align:start;align-items:flex-start;width:100%;border-top:2px solid #ddd;overflow-y:auto;position:relative}.rbc-time-content>.rbc-time-gutter{-webkit-box-flex:0;-ms-flex:none;flex:none}.rbc-time-content>*+*>*{border-left:1px solid #ddd}.rbc-rtl .rbc-time-content>*+*>*{border-left-width:0;border-right:1px solid #ddd}.rbc-time-content>.rbc-day-slot{width:100%;-moz-user-select:none;-ms-user-select:none;user-select:none;-webkit-user-select:none}.rbc-current-time-indicator{position:absolute;z-index:3;left:0;right:0;height:1px;background-color:#74ad31;pointer-events:none}.rbc-resource-grouping.rbc-time-header-content{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column}.rbc-resource-grouping .rbc-row .rbc-header{width:141px}.rbc-addons-dnd .rbc-addons-dnd-row-body{position:relative}.rbc-addons-dnd .rbc-addons-dnd-drag-row{position:absolute;top:0;left:0;right:0}.rbc-addons-dnd .rbc-addons-dnd-over{background-color:#0000004d}.rbc-addons-dnd .rbc-event{transition:opacity .15s}.rbc-addons-dnd .rbc-event:hover .rbc-addons-dnd-resize-ns-icon,.rbc-addons-dnd .rbc-event:hover .rbc-addons-dnd-resize-ew-icon{display:block}.rbc-addons-dnd .rbc-addons-dnd-dragged-event{opacity:0}.rbc-addons-dnd.rbc-addons-dnd-is-dragging .rbc-event:not(.rbc-addons-dnd-dragged-event):not(.rbc-addons-dnd-drag-preview){opacity:.5}.rbc-addons-dnd .rbc-addons-dnd-resizable{position:relative;width:100%;height:100%}.rbc-addons-dnd .rbc-addons-dnd-resize-ns-anchor{width:100%;text-align:center;position:absolute}.rbc-addons-dnd .rbc-addons-dnd-resize-ns-anchor:first-child{top:0}.rbc-addons-dnd .rbc-addons-dnd-resize-ns-anchor:last-child{bottom:0}.rbc-addons-dnd .rbc-addons-dnd-resize-ns-anchor .rbc-addons-dnd-resize-ns-icon{display:none;border-top:3px double;margin:0 auto;width:10px;cursor:ns-resize}.rbc-addons-dnd .rbc-addons-dnd-resize-ew-anchor{position:absolute;top:4px;bottom:0}.rbc-addons-dnd .rbc-addons-dnd-resize-ew-anchor:first-child{left:0}.rbc-addons-dnd .rbc-addons-dnd-resize-ew-anchor:last-child{right:0}.rbc-addons-dnd .rbc-addons-dnd-resize-ew-anchor .rbc-addons-dnd-resize-ew-icon{display:none;border-left:3px double;margin-top:auto;margin-bottom:auto;height:10px;cursor:ew-resize}.task-modal{max-width:700px;max-height:90vh;overflow-y:auto}.modal-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px;padding-bottom:8px;border-bottom:2px solid #f0f0f0}.modal-header h2{margin:0;font-size:18px;color:#333}.btn-close{background:none;border:none;font-size:22px;cursor:pointer;color:#999;padding:0;width:32px;height:32px;display:flex;align-items:center;justify-content:center;border-radius:50%;transition:all .2s}.btn-close:hover{background:#f0f0f0;color:#333}.task-type-tabs{display:flex;gap:0;margin-bottom:16px;border:1px solid #ddd;border-radius:6px;overflow:hidden}.task-type-tabs .tab-btn{flex:1;padding:10px 16px;border:none;background:#f5f5f5;color:#666;font-size:14px;font-weight:500;cursor:pointer;transition:all .2s}.task-type-tabs .tab-btn.active{background:#2196f3;color:#fff}.task-type-tabs .tab-btn:not(.active):hover{background:#e8e8e8}.note-color-picker{display:flex;gap:12px;padding:8px 0}.note-color-picker .color-btn{width:36px;height:36px;border-radius:50%;border:3px solid transparent;cursor:pointer;transition:all .2s;padding:0}.note-color-picker .color-btn.active{border-color:#333;transform:scale(1.15);box-shadow:0 2px 6px #0000004d}.note-color-picker .color-btn:hover:not(.active){transform:scale(1.1);border-color:#aaa}.form-group{margin-bottom:14px}.form-group label{display:block;margin-bottom:5px;font-weight:500;color:#555;font-size:13px}.form-group input,.form-group select,.form-group textarea{width:100%;padding:9px 11px;border:1px solid #ddd;border-radius:6px;font-size:14px;font-family:inherit;box-sizing:border-box;transition:border-color .2s}.form-group input:focus,.form-group select:focus,.form-group textarea:focus{border-color:#4a90d9;outline:none;box-shadow:0 0 0 2px #4a90d91f}.form-group textarea{resize:vertical;min-height:60px}.required{color:#e74c3c;font-weight:700}.mt-8{margin-top:8px}.label-row{display:flex;align-items:center;justify-content:space-between;margin-bottom:5px;gap:8px;flex-wrap:wrap}.label-row label{margin-bottom:0;flex-shrink:0}.btn-inline{background:none;border:1px solid #4a90d9;color:#4a90d9;padding:3px 10px;border-radius:4px;font-size:12px;cursor:pointer;transition:all .2s;font-weight:500}.btn-inline:hover{background:#4a90d9;color:#fff}.form-row{display:grid;gap:12px}.form-row-2{grid-template-columns:1fr 1fr}.form-row-3{grid-template-columns:2fr 1fr 1fr}.patient-search{position:relative}.patient-search input{width:100%;padding:9px 11px;border:1px solid #ddd;border-radius:6px;font-size:14px;box-sizing:border-box}.patient-dropdown{position:absolute;top:100%;left:0;right:0;background:#fff;border:1px solid #ddd;border-top:none;border-radius:0 0 6px 6px;max-height:200px;overflow-y:auto;z-index:1000;box-shadow:0 4px 12px #0000001f}.patient-item{padding:9px 12px;cursor:pointer;transition:background .15s}.patient-item:hover{background:#e8f0fe}.patient-item-main{display:flex;justify-content:space-between;align-items:center;gap:8px}.patient-name{font-weight:500;color:#333}.patient-card{font-size:11px;color:#7b68ee;white-space:nowrap;font-weight:500}.patient-phone{font-size:12px;color:#888}.patient-item-sub{display:flex;gap:12px;align-items:center;flex-wrap:wrap;margin-top:2px}.patient-group{font-size:11px;color:#6a5acd;font-weight:500}.patient-conflict{border-left:3px solid #f44336}.conflict-icon{margin-right:4px;font-size:10px}.patient-card-info{font-size:11px;color:#7b68ee;font-weight:500;padding:2px 8px;background:#f3f0ff;border-radius:10px;white-space:nowrap}.author-display{padding:9px 11px;border:1px solid #eee;border-radius:6px;font-size:13px;color:#666;background:#f9f9f9}.btn-create-card{background:#e8f5e9;border:1px solid #4caf50;color:#2e7d32;padding:2px 10px;border-radius:12px;font-size:11px;cursor:pointer;font-weight:500;white-space:nowrap;transition:all .2s}.btn-create-card:hover{background:#c8e6c9}.btn-view-card{background:none;border:1px solid #ccc;color:#666;padding:1px 6px;border-radius:8px;font-size:12px;cursor:pointer;transition:all .2s;line-height:1}.btn-view-card:hover{background:#f0f0f0;border-color:#999}.patient-edit-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#00000080;z-index:1200;display:flex;align-items:center;justify-content:center}.patient-edit-modal{background:#fff;border-radius:12px;width:95%;max-width:700px;max-height:90vh;overflow-y:auto;padding:20px;box-shadow:0 8px 30px #0000004d}.new-patient-form{background:#f8faff;border:1px dashed #b3d4fc;border-radius:8px;padding:12px;margin-top:4px}.new-patient-form input{padding:8px 10px;border:1px solid #ddd;border-radius:6px;font-size:13px;width:100%;box-sizing:border-box}.card-number-row{display:flex;align-items:center;gap:4px;flex-wrap:wrap}.card-label{font-size:12px;color:#666;white-space:nowrap;margin-right:4px}.card-field{flex:1;min-width:60px}.card-field.card-before{max-width:80px}.card-field.card-number{max-width:100px}.card-field.card-after{max-width:80px}.card-sep{color:#aaa;font-size:14px}.searchable-select{position:relative}.ss-color-dot{display:inline-block;width:12px;height:12px;border-radius:3px;margin-right:6px;flex-shrink:0;border:1px solid rgba(0,0,0,.15);vertical-align:middle}.select-display .ss-color-dot{width:10px;height:10px}.select-option[style]{padding-left:8px}.select-display{display:flex;justify-content:space-between;align-items:center;padding:9px 11px;border:1px solid #ddd;border-radius:6px;background:#fff;cursor:pointer;font-size:14px;transition:border-color .2s;min-height:20px}.select-display:hover{border-color:#aaa}.select-display.open{border-color:#4a90d9;box-shadow:0 0 0 2px #4a90d91f}.select-display.disabled{background:#f5f5f5;color:#999;cursor:not-allowed}.select-display .placeholder{color:#aaa}.select-arrow{font-size:10px;color:#999;margin-left:8px;flex-shrink:0}.select-dropdown{position:absolute;top:100%;left:0;right:0;background:#fff;border:1px solid #ddd;border-top:none;border-radius:0 0 6px 6px;z-index:1010;box-shadow:0 4px 12px #0000001f}.select-search{width:100%;padding:8px 10px;border:none;border-bottom:1px solid #eee;font-size:13px;box-sizing:border-box;outline:none}.select-options{max-height:180px;overflow-y:auto}.select-option{padding:8px 12px;cursor:pointer;font-size:13px;transition:background .12s}.select-option:hover{background:#e8f0fe}.select-option.selected{background:#d6e8ff;font-weight:600}.select-option.empty{color:#999;font-style:italic}.toggle-chips{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:14px;padding:4px 0}.chip{display:inline-flex;align-items:center;gap:4px;padding:6px 12px;border-radius:20px;border:1px solid #ddd;background:#f9f9f9;font-size:13px;cursor:pointer;transition:all .2s;color:#777;-webkit-user-select:none;user-select:none}.chip:hover{border-color:#aaa;background:#f0f0f0}.chip-active{border-color:#2196f3;background:#e3f2fd;color:#1565c0}.chip-active.chip-green{border-color:#4caf50;background:#e8f5e9;color:#2e7d32}.chip-active.chip-orange{border-color:#ff9800;background:#fff3e0;color:#e65100}.modal-actions{display:flex;justify-content:space-between;margin-top:20px;padding-top:14px;border-top:2px solid #f0f0f0}.actions-left,.actions-right{display:flex;gap:8px}.btn-primary,.btn-secondary,.btn-danger{padding:9px 18px;border:none;border-radius:6px;font-size:14px;font-weight:500;cursor:pointer;transition:all .2s}.btn-primary{background:#2196f3;color:#fff}.btn-primary:hover{background:#1976d2}.btn-primary:disabled{background:#ccc;cursor:not-allowed}.btn-secondary{background:#f5f5f5;color:#333}.btn-secondary:hover{background:#e0e0e0}.btn-danger{background:#f44336;color:#fff}.btn-danger:hover{background:#d32f2f}@media (max-width: 768px){.task-modal{max-width:95%;margin:10px auto;padding:16px}.modal-header h2{font-size:18px}.form-row-2,.form-row-3{grid-template-columns:1fr}.modal-actions{flex-direction:column;gap:8px}.actions-left,.actions-right{width:100%;justify-content:stretch}.actions-left button,.actions-right button{flex:1}.toggle-chips{justify-content:center}.new-patient-form .form-row-3{grid-template-columns:1fr;gap:8px}}@media (max-width: 480px){.task-modal{max-width:100%;margin:0;border-radius:0;max-height:100vh}.toggle-chips{flex-direction:column}.chip{justify-content:center}}.history-modal{max-width:800px;max-height:85vh;width:100%;overflow-y:auto;display:flex;flex-direction:column}.history-content{flex:1;min-height:0;max-height:65vh;overflow-y:auto;margin:12px 0;padding-right:4px}.history-loading,.history-empty{text-align:center;padding:40px 20px;color:#999}.history-empty-hint{margin-top:8px;font-size:13px;color:#bbb}.history-warning{background:#fff8e1;color:#f57f17;padding:8px 12px;border-radius:4px;margin-bottom:12px;font-size:13px;border-left:3px solid #ffc107}.history-modal .history-list{display:flex;flex-direction:column;gap:8px}.history-modal .history-item{background:#f9f9f9;border-left:4px solid #2196F3;padding:10px 14px;border-radius:4px;max-width:none;box-sizing:border-box;transition:box-shadow .2s}.history-modal .history-item:hover{box-shadow:0 2px 8px #00000014}.history-modal .history-item.action-insert{border-left-color:#4caf50}.history-modal .history-item.action-delete{border-left-color:#f44336}.history-modal .history-item.action-update{border-left-color:#ff9800}.history-modal .history-meta{margin-bottom:4px;display:flex;gap:10px;align-items:center;flex-wrap:wrap}.history-modal .history-action{font-weight:600;color:#333;font-size:13px;margin-right:auto}.history-modal .history-date{font-size:12px;color:#555;font-weight:500}.history-modal .history-user{font-size:12px;color:#888}.history-modal .history-changes{margin-top:6px;padding-top:6px;border-top:1px solid #e8e8e8;width:100%}.history-modal .history-change{padding:4px 0;font-size:13px;display:flex;align-items:center;flex-wrap:wrap;gap:4px;width:100%}.history-modal .change-label{color:#666;font-weight:500;margin-right:4px;min-width:90px}.history-modal .change-from{color:#e53935;text-decoration:line-through;background:#ffebee;padding:1px 6px;border-radius:3px;font-size:12px}.history-modal .change-arrow{color:#999;margin:0 2px}.history-modal .change-to{color:#2e7d32;font-weight:500;background:#e8f5e9;padding:1px 6px;border-radius:3px;font-size:12px}.history-modal .history-footer{display:flex;justify-content:space-between;align-items:center;padding-top:8px;border-top:1px solid #f0f0f0}.history-modal .history-count{font-size:12px;color:#999}@media (max-width: 768px){.history-modal{max-width:95%}.history-modal .history-change{flex-direction:column;align-items:flex-start;gap:2px}.history-modal .change-label{min-width:auto}.history-modal .history-footer{flex-direction:column;gap:8px;align-items:stretch}.history-modal .history-count{text-align:center}}.birthday-modal{max-width:700px;width:100%;max-height:85vh;overflow-y:auto}.bd-filters{margin-bottom:10px}.bd-dates{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.bd-dates label{font-size:13px;color:#666;display:flex;align-items:center;gap:4px}.bd-dates input[type=date]{padding:4px 8px;border:1px solid #ddd;border-radius:5px;font-size:13px}.bd-sms-block{display:flex;gap:8px;align-items:flex-start;margin-bottom:10px}.bd-sms-block textarea{flex:1;padding:8px;border:1px solid #ddd;border-radius:6px;font-size:13px;resize:vertical;min-height:50px}.btn-sm{padding:6px 12px;font-size:12px;white-space:nowrap}.bd-list{max-height:45vh;overflow-y:auto}.bd-empty{text-align:center;padding:30px;color:#999}.bd-count{font-size:12px;color:#888;margin-bottom:6px}.bd-item{display:flex;justify-content:space-between;align-items:center;padding:8px 10px;border-bottom:1px solid #f0f0f0;gap:8px}.bd-item:hover{background:#f9f9f9}.bd-item-selected{background:#e3f2fd!important}.bd-checkbox{width:18px;height:18px;cursor:pointer;flex-shrink:0;accent-color:#2196F3}.bd-item-main{flex:1;min-width:0;cursor:pointer}.bd-select-all{display:flex;align-items:center;gap:6px;cursor:pointer;font-size:12px;color:#888}.bd-select-all input{width:16px;height:16px;cursor:pointer;accent-color:#2196F3}.bd-sel-count{color:#2196f3;font-weight:500}.bd-name{font-size:14px;font-weight:500;color:#333}.bd-age{font-size:12px;color:#888;margin-left:8px;font-weight:400}.bd-info{display:flex;gap:10px;flex-wrap:wrap;margin-top:2px}.bd-birthday,.bd-phone,.bd-email{font-size:12px;color:#666}.bd-item-actions{display:flex;gap:4px;align-items:center;flex-shrink:0}.bd-btn{width:32px;height:32px;border-radius:6px;border:1px solid #ddd;background:#fff;cursor:pointer;font-size:14px;display:flex;align-items:center;justify-content:center;transition:all .15s}.bd-btn:hover{background:#f0f0f0}.bd-btn-sms:hover{background:#e3f2fd;border-color:#2196f3}.bd-btn-call:hover{background:#e8f5e9;border-color:#4caf50}.bd-btn:disabled{opacity:.5;cursor:default}.bd-status{font-size:14px}.bd-ok{color:#4caf50}.bd-fail{color:#f44336}.bd-log{margin-top:10px;padding:8px;background:#f9f9f9;border-radius:6px;max-height:100px;overflow-y:auto}.bd-log-title{font-size:12px;font-weight:600;color:#666;margin-bottom:4px}.bd-log-item{font-size:12px;padding:2px 0}.bd-log-item.bd-fail{color:#d32f2f}@media (max-width: 768px){.birthday-modal{max-width:95%}.bd-sms-block{flex-direction:column}.bd-dates{flex-direction:column;gap:6px}}.dispensary-modal{max-width:750px;width:100%;max-height:85vh;overflow-y:auto}.disp-controls{display:flex;justify-content:space-between;align-items:center;margin-bottom:10px;flex-wrap:wrap;gap:8px}.disp-tabs{display:flex;gap:0;border:1px solid #ddd;border-radius:6px;overflow:hidden}.disp-tab{padding:6px 14px;border:none;background:#fff;font-size:13px;cursor:pointer;color:#666;transition:all .15s;display:flex;align-items:center;gap:6px}.disp-tab:not(:last-child){border-right:1px solid #ddd}.disp-tab.active{background:#2196f3;color:#fff}.disp-badge{background:#f44336;color:#fff;font-size:11px;font-weight:600;padding:1px 6px;border-radius:10px;min-width:18px;text-align:center}.disp-badge-green{background:#4caf50}.disp-tab.active .disp-badge{background:#ffffff4d}.disp-days{display:flex;align-items:center;gap:6px;font-size:13px;color:#666}.disp-days select{padding:4px 8px;border:1px solid #ddd;border-radius:5px;font-size:13px}.disp-list{max-height:50vh;overflow-y:auto}.disp-empty{text-align:center;padding:30px;color:#999}.disp-item{display:flex;align-items:flex-start;gap:8px;padding:8px 10px;border-bottom:1px solid #f0f0f0}.disp-item:hover{background:#f9f9f9}.disp-item-left{flex-shrink:0;padding-top:3px}.disp-type-dot{display:inline-block;width:10px;height:10px;border-radius:50%;border:1px solid rgba(0,0,0,.15)}.disp-item-main{flex:1;min-width:0}.disp-item-name{font-size:14px;font-weight:500;color:#333}.disp-card{font-size:11px;color:#7b68ee;margin-left:6px}.disp-item-info{display:flex;gap:10px;flex-wrap:wrap;margin-top:2px;font-size:12px;color:#666}.disp-type-label{background:#f0f0f0;padding:1px 6px;border-radius:8px;font-size:11px}.disp-item-task{font-size:12px;color:#555;margin-top:2px}.disp-visited{color:#4caf50;margin-left:6px;font-weight:500}.disp-not-visited{color:#f44336;margin-left:6px}.disp-item-comment{font-size:12px;color:#888;margin-top:2px;font-style:italic}.disp-item-actions{flex-shrink:0}@media (max-width: 768px){.dispensary-modal{max-width:95%}.disp-controls{flex-direction:column;align-items:stretch}}.wizard-modal{max-width:650px;width:100%;max-height:90vh;display:flex;flex-direction:column}.wiz-stepper{display:flex;gap:4px;margin-bottom:16px;padding:0 4px}.wiz-step{flex:1;display:flex;align-items:center;gap:6px;padding:8px 10px;border-radius:6px;background:#f5f5f5;font-size:13px;color:#999;cursor:default;transition:all .2s}.wiz-step.active{background:#2196f3;color:#fff}.wiz-step.done{background:#e8f5e9;color:#2e7d32;cursor:pointer}.wiz-step.done:hover{background:#c8e6c9}.wiz-step-num{width:24px;height:24px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:600;background:#0000001a;flex-shrink:0}.wiz-step.active .wiz-step-num{background:#ffffff4d}.wiz-step.done .wiz-step-num{background:#4caf50;color:#fff}.wiz-step-label{font-size:12px;white-space:nowrap}.wiz-body{flex:1;min-height:0;overflow-y:auto;padding:0 4px}.wiz-step-content h3{font-size:15px;color:#333;margin:0 0 12px}.wiz-empty{text-align:center;padding:30px;color:#999}.wiz-date-input{padding:10px 14px;border:2px solid #2196F3;border-radius:8px;font-size:16px;width:100%;max-width:250px}.wiz-date-label{font-size:14px;color:#666;margin-top:8px}.wiz-doctor-list{display:flex;flex-direction:column;gap:4px;max-height:45vh;overflow-y:auto}.wiz-doctor-item{display:flex;justify-content:space-between;align-items:center;padding:10px 12px;border:1px solid #e0e0e0;border-radius:6px;cursor:pointer;transition:all .15s}.wiz-doctor-item:hover{background:#f5f5f5;border-color:#bbb}.wiz-doctor-item.selected{background:#e3f2fd;border-color:#2196f3}.wiz-doc-name{font-size:14px;font-weight:500}.wiz-doc-spec{font-size:12px;color:#888}.wiz-slots{max-height:40vh;overflow-y:auto}.wiz-hour-group{display:flex;align-items:flex-start;gap:8px;margin-bottom:6px}.wiz-hour-label{font-size:12px;font-weight:600;color:#888;min-width:40px;padding-top:6px;text-align:right}.wiz-hour-slots{display:flex;flex-wrap:wrap;gap:4px}.wiz-slot{padding:6px 10px;border:1px solid #ddd;border-radius:5px;background:#fff;font-size:13px;cursor:pointer;transition:all .15s;color:#333}.wiz-slot:hover{background:#e3f2fd;border-color:#2196f3}.wiz-slot.selected{background:#2196f3;color:#fff;border-color:#1565c0}.wiz-slot-info{margin-top:10px;padding:8px 12px;background:#e8f5e9;border-radius:6px;font-size:13px;color:#2e7d32;font-weight:500}.wiz-patient-search{position:relative;margin-bottom:10px}.wiz-patient-search input{width:100%;padding:10px 12px;border:1px solid #ddd;border-radius:6px;font-size:14px}.wiz-patient-dropdown{position:absolute;top:100%;left:0;right:0;background:#fff;border:1px solid #ddd;border-radius:0 0 6px 6px;max-height:200px;overflow-y:auto;z-index:10;box-shadow:0 4px 12px #0000001a}.wiz-patient-item{padding:8px 12px;cursor:pointer;display:flex;justify-content:space-between;font-size:13px;border-bottom:1px solid #f5f5f5}.wiz-patient-item:hover{background:#f5f5f5}.wiz-pat-phone{font-size:12px;color:#888}.wiz-pat-card{font-size:12px;color:#7b68ee;margin-left:4px}.wiz-selected-patient{padding:8px 12px;background:#e8f5e9;border-radius:6px;font-size:13px;color:#2e7d32;font-weight:500;margin-bottom:10px}.wiz-comment{width:100%;padding:8px 12px;border:1px solid #ddd;border-radius:6px;font-size:13px;resize:vertical;margin-bottom:12px}.wiz-summary{background:#f5f7fa;border-radius:8px;padding:12px 14px;font-size:13px;color:#555;line-height:1.8;border-left:4px solid #2196F3}.wiz-summary-title{font-weight:600;color:#333;margin-bottom:4px}.wiz-nav{display:flex;justify-content:space-between;align-items:center;padding-top:12px;border-top:1px solid #eee;margin-top:12px;flex-shrink:0}.wiz-nav-right{display:flex;gap:8px}@media (max-width: 600px){.wizard-modal{max-width:98%}.wiz-stepper{gap:2px}.wiz-step{padding:6px}.wiz-step-label{display:none}.wiz-step-num{width:28px;height:28px;font-size:13px}.wiz-hour-label{min-width:32px;font-size:11px}.wiz-slot{padding:5px 7px;font-size:12px}}.wiz-doc-left{display:flex;flex-direction:column;gap:2px}.wiz-doc-slots{font-size:11px;padding:2px 8px;border-radius:10px;white-space:nowrap}.wiz-doc-slots.has-slots{background:#e8f5e9;color:#2e7d32}.wiz-doc-slots.empty-slots{background:#f5f5f5;color:#999}.wiz-doctor-item.no-slots{opacity:.5}.wiz-doctor-item.no-slots:hover{opacity:.7}.gsync-modal{max-width:550px;width:100%}.gsync-body{padding:10px 0}.gsync-empty{text-align:center;padding:30px;color:#999}.gsync-error{background:#ffebee;color:#c62828;padding:8px 12px;border-radius:6px;font-size:13px;margin-bottom:8px}.gsync-status{padding:8px 14px;border-radius:6px;font-size:14px;font-weight:500;margin-bottom:12px;text-align:center}.gsync-status-off{background:#ffebee;color:#c62828}.gsync-status-auth{background:#fff8e1;color:#f57f17}.gsync-status-on{background:#e8f5e9;color:#2e7d32}.gsync-desc{font-size:13px;color:#666;margin-bottom:12px;line-height:1.5}.gsync-desc code{background:#f5f5f5;padding:1px 4px;border-radius:3px;font-size:12px}.gsync-auth-btn{width:100%;padding:12px;font-size:15px}.gsync-upload-btn{display:inline-block;width:100%;padding:12px;font-size:14px;text-align:center;cursor:pointer;border-radius:6px}.gsync-code-row{display:flex;gap:8px;margin-bottom:10px}.gsync-code-input{flex:1;padding:10px 12px;border:1px solid #ddd;border-radius:6px;font-size:13px}.gsync-link-btn{background:none;border:none;color:#2196f3;cursor:pointer;font-size:13px;padding:4px 0}.gsync-link-btn:hover{text-decoration:underline}.gsync-form{display:flex;flex-direction:column;gap:8px}.gsync-label{font-size:13px;color:#555;font-weight:500}.gsync-select{padding:8px 10px;border:1px solid #ddd;border-radius:6px;font-size:13px}.gsync-tz{max-height:200px}.gsync-info{padding:10px 14px;background:#f5f7fa;border-radius:8px;font-size:13px;line-height:2;margin-bottom:12px}.gsync-actions{display:flex;gap:8px;flex-wrap:wrap}.gsync-hint{background:#fff8e1;border-left:4px solid #ffc107;padding:10px 12px;border-radius:0 6px 6px 0;font-size:12px;color:#795548;margin-bottom:12px;line-height:1.6}.gsync-input{padding:8px 10px;border:1px solid #ddd;border-radius:6px;font-size:13px;width:100%;box-sizing:border-box}.gsync-or{text-align:center;color:#999;font-size:12px;padding:4px 0}.gsync-btn-row{display:flex;gap:8px;flex-wrap:wrap}.gsync-input-row{display:flex;gap:6px;align-items:center}.gsync-input-row .gsync-input{flex:1}.gsync-add-btn{white-space:nowrap;padding:8px 12px!important;font-size:13px}.gsync-info-msg{background:#e8f5e9;color:#2e7d32;padding:8px 12px;border-radius:6px;font-size:13px;margin-bottom:8px}@media (max-width: 600px){.gsync-input-row,.gsync-btn-row{flex-direction:column}}@media (max-width: 600px){.gsync-modal{max-width:95%}.gsync-code-row{flex-direction:column}}.gsync-empty-list{padding:8px 12px;color:#999;font-size:13px;background:#f9f9f9;border-radius:6px;text-align:center}.calendar-container{padding:12px;background:#f5f5f5;height:calc(100vh - 120px);display:flex;flex-direction:column;overflow:hidden}.calendar-header{background:#fff;padding:12px 16px;border-radius:8px;box-shadow:0 1px 3px #00000014;flex-shrink:0}.cal-top-row{display:flex;justify-content:space-between;align-items:center;margin-bottom:6px}.cal-title{font-size:16px;font-weight:600;color:#444}.cal-actions{display:flex;gap:6px}.btn-icon{width:36px;height:36px;display:flex;align-items:center;justify-content:center;border:1px solid #ddd;border-radius:6px;background:#fff;font-size:16px;cursor:pointer;transition:all .15s}.btn-icon:hover{background:#f0f0f0;border-color:#bbb}.btn-icon:disabled{opacity:.4;cursor:not-allowed}.btn-icon.btn-green{border-color:#4caf50;color:#388e3c}.btn-icon.btn-green:hover{background:#e8f5e9}.btn-icon.btn-orange{border-color:#ff9800;color:#e65100}.btn-icon.btn-orange:hover{background:#fff3e0}.btn-icon.btn-blue{border-color:#2196f3;color:#1565c0}.btn-icon.btn-blue:hover{background:#e3f2fd}.cal-filters-row{display:flex;gap:10px}.filter-select-wrap{position:relative;flex:1;min-width:0}.filter-select-display{display:flex;justify-content:space-between;align-items:center;padding:8px 10px;border:1px solid #ddd;border-radius:6px;background:#fff;cursor:pointer;font-size:13px;transition:border-color .15s;min-height:18px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.filter-select-display:hover{border-color:#aaa}.filter-select-display.open{border-color:#4a90d9;box-shadow:0 0 0 2px #4a90d91a}.filter-select-display .placeholder{color:#aaa}.fs-arrow{font-size:9px;color:#999;margin-left:6px;flex-shrink:0}.filter-select-dropdown{position:absolute;top:100%;left:0;right:0;background:#fff;border:1px solid #ddd;border-top:none;border-radius:0 0 6px 6px;z-index:1020;box-shadow:0 4px 12px #0000001f}.fs-search{width:100%;padding:7px 10px;border:none;border-bottom:1px solid #eee;font-size:13px;box-sizing:border-box;outline:none}.fs-options{max-height:200px;overflow-y:auto}.fs-option{padding:7px 10px;cursor:pointer;font-size:13px;transition:background .1s;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.fs-option:hover{background:#e8f0fe}.fs-option.selected{background:#d6e8ff;font-weight:600}.fs-option.empty{color:#999;font-style:italic}.date-nav{position:relative;padding:8px 0 10px}.date-nav-row{display:flex;align-items:center;gap:4px;flex-wrap:wrap}.dn-btn{padding:5px 10px;border:1px solid #ddd;border-radius:5px;background:#fff;cursor:pointer;font-size:13px;transition:all .15s;color:#555}.dn-btn:hover{background:#f0f0f0;border-color:#bbb}.dn-today{font-weight:500;color:#1976d2;border-color:#90caf9}.dn-today:hover{background:#e3f2fd}.dn-label{padding:5px 12px;border:none;background:none;font-size:14px;font-weight:600;color:#333;cursor:pointer;border-radius:5px;transition:background .15s;white-space:nowrap}.dn-label:hover{background:#f0f0f0}.dn-date-input{padding:4px 6px;border:1px solid #ddd;border-radius:5px;font-size:13px;color:#555;background:#fff;margin-left:auto;cursor:pointer;width:auto}.dn-date-input:focus{border-color:#4a90d9;outline:none}.dn-count{font-size:12px;color:#999;white-space:nowrap}.date-nav-views{display:flex;gap:0;margin-top:8px;border:1px solid #ddd;border-radius:6px;overflow:hidden;width:fit-content}.dn-view-btn{padding:5px 14px;border:none;border-right:1px solid #ddd;background:#fff;font-size:13px;cursor:pointer;color:#666;transition:all .15s}.dn-view-btn:last-child{border-right:none}.dn-view-btn:hover{background:#f5f5f5}.dn-view-btn.active{background:#2196f3;color:#fff}.month-picker{position:absolute;top:100%;left:0;z-index:1030;background:#fff;border:1px solid #ddd;border-radius:8px;box-shadow:0 6px 20px #00000026;padding:10px;width:220px}.mp-year-row{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px;padding:0 4px}.mp-year-row button{background:none;border:none;cursor:pointer;font-size:14px;color:#555;padding:4px 8px;border-radius:4px}.mp-year-row button:hover{background:#f0f0f0}.mp-year-row span{font-weight:600;font-size:15px;color:#333}.mp-months{display:grid;grid-template-columns:repeat(4,1fr);gap:4px}.mp-month{padding:6px 2px;border:none;border-radius:5px;background:#f5f5f5;cursor:pointer;font-size:12px;color:#555;transition:all .12s;text-align:center}.mp-month:hover{background:#e3f2fd;color:#1565c0}.mp-month.active{background:#2196f3;color:#fff;font-weight:600}.fs-checkbox{margin-right:6px;font-size:14px}.fs-color-dot{display:inline-block;width:12px;height:12px;border-radius:3px;margin-right:6px;flex-shrink:0;border:1px solid rgba(0,0,0,.15);vertical-align:middle}.filter-select-display .fs-color-dot{width:10px;height:10px;margin-right:5px}.fs-option[style]{padding-left:8px}.calendar-error{background:#ffebee;color:#c62828;padding:10px 14px;border-radius:6px;margin-bottom:10px;border-left:4px solid #f44336;font-size:13px;flex-shrink:0}.calendar-wrapper{background:#fff;padding:10px 14px;border-radius:8px;box-shadow:0 1px 3px #00000014;flex:1;min-height:0;overflow:auto;display:flex;flex-direction:column}.calendar-wrapper .rbc-calendar{flex:1;min-height:0}.rbc-calendar{font-family:inherit}.rbc-header{padding:8px 4px;font-weight:600;font-size:13px;color:#555;background:#f9f9f9;border-bottom:2px solid #e0e0e0;text-align:center}.rbc-header+.rbc-header{border-left:1px solid #e8e8e8}.rbc-header a{color:inherit;text-decoration:none}.rbc-row.rbc-row-resource{align-items:center}.rbc-today{background-color:#e3f2fd}.rbc-event{padding:3px 5px;font-size:12px;cursor:pointer;line-height:1.3}.rbc-event:hover{opacity:.9}.rbc-event-label{font-size:11px}.rbc-time-slot{min-height:36px}.rbc-timeslot-group{min-height:72px}.rbc-toolbar{display:none!important}.rbc-allday-cell{max-height:2px;overflow:hidden}.rbc-allday-cell .rbc-row-bg{display:none}.rbc-time-view .rbc-row:first-child{min-height:0}.rbc-time-gutter .rbc-label{font-size:11px;padding:0 4px;white-space:nowrap}.rbc-overlay{max-height:300px;overflow-y:auto;z-index:1050}.rbc-overlay-header{font-weight:600;font-size:13px;padding:4px 8px;border-bottom:1px solid #e0e0e0;position:sticky;top:0;background:#fff}.rbc-show-more{font-size:11px;color:#1976d2;font-weight:500;cursor:pointer}.modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000;padding:16px}.modal-content{background:#fff;border-radius:8px;box-shadow:0 4px 20px #0003;padding:20px;position:relative;animation:modalSlideIn .2s ease-out}@keyframes modalSlideIn{0%{opacity:0;transform:translateY(-16px)}to{opacity:1;transform:translateY(0)}}@media (max-width: 768px){.calendar-container{padding:6px}.calendar-header{padding:10px 12px}.cal-title{font-size:14px}.cal-filters-row{display:flex;flex-direction:row;gap:6px}.filter-select-wrap{flex:1;min-width:0}.calendar-wrapper{padding:6px 8px}.date-nav-row{gap:3px}.dn-btn{padding:4px 7px;font-size:12px}.dn-label{font-size:12px;padding:4px 8px}.dn-date-input{font-size:12px;padding:3px 4px}.date-nav-views{margin-top:6px}.dn-view-btn{padding:4px 10px;font-size:12px}.rbc-header{padding:6px 2px;font-size:11px}.rbc-event{font-size:11px;padding:2px 3px}.dn-count{font-size:11px}.month-picker{width:200px}.mp-month{font-size:11px;padding:5px 1px}}@media (max-width: 480px){.cal-top-row{flex-wrap:wrap;gap:6px}.cal-title{width:100%;font-size:13px}.cal-actions{margin-left:auto}.btn-icon{width:32px;height:32px;font-size:14px}.dn-today{display:none}.dn-label{font-size:11px}.dn-count{font-size:10px}.dn-date-input{width:100px;font-size:11px}}.rbc-agenda-event-cell [data-evtid]{cursor:pointer}.rbc-agenda-event-cell [data-evtid]:hover{text-decoration:underline}.cal-tooltip-portal{position:fixed;z-index:99999;background:#2a2a2a;color:#fff;padding:10px 14px;border-radius:8px;font-size:12px;line-height:1.6;max-width:300px;min-width:160px;width:max-content;white-space:normal;word-break:break-word;box-shadow:0 6px 24px #0006;pointer-events:none;animation:tipFadeIn .12s ease-out}.cal-tooltip-portal div{padding:1px 0}@keyframes tipFadeIn{0%{opacity:0}to{opacity:1}}.legend-popup{background:#fff;border-radius:10px;padding:20px;box-shadow:0 8px 30px #0003;max-width:440px;width:95%;animation:modalSlideIn .2s ease-out}.legend-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:14px;padding-bottom:8px;border-bottom:1px solid #eee}.legend-title{font-weight:600;font-size:16px;color:#333}.legend-columns{display:flex;gap:20px}.legend-col{flex:1}.legend-col-title{font-weight:600;font-size:13px;color:#666;margin-bottom:8px;padding-bottom:4px;border-bottom:1px solid #eee}.legend-item{display:flex;align-items:center;gap:8px;font-size:13px;color:#444;padding:3px 0}.legend-swatch{width:18px;height:18px;border-radius:4px;border:1px solid rgba(0,0,0,.12);flex-shrink:0}.legend-swatch-note{width:14px;height:14px;border-radius:3px}.legend-swatch-room{width:18px;height:18px;background:#f0f0f0;border-radius:4px;border:1px solid #ddd}.legend-extra{margin-top:12px;padding-top:10px;border-top:1px solid #eee}@media (max-width: 480px){.legend-columns{flex-direction:column;gap:12px}.legend-popup{padding:14px}}.confirm-dialog{background:#fff;border-radius:10px;padding:24px;box-shadow:0 8px 30px #0003;max-width:400px;width:90%;animation:modalSlideIn .2s ease-out}.confirm-msg{font-size:16px;font-weight:600;color:#333;margin-bottom:8px}.confirm-det{font-size:13px;color:#666;margin-bottom:16px;padding:8px;background:#f5f7fa;border-radius:6px}.confirm-actions{display:flex;gap:8px;justify-content:flex-end}.rbc-day-off{background:#f0f0f0!important}.rbc-day-off .rbc-header{color:#bbb}.rbc-addons-dnd .rbc-addons-dnd-resize-ns-anchor{z-index:10}.rbc-addons-dnd .rbc-addons-dnd-resize-ns-anchor .rbc-addons-dnd-resize-ns-icon{width:20px;height:4px;border-top:2px solid rgba(255,255,255,.6);margin:0 auto;cursor:ns-resize}.rbc-addons-dnd-dragged-event{opacity:.4}.rbc-addons-dnd .rbc-event.rbc-addons-dnd-drag-preview{background:#1976d2!important;opacity:.7;border:2px dashed #fff!important}.placeholder-page{display:flex;align-items:center;justify-content:center;min-height:400px;padding:40px}.placeholder-content{text-align:center;max-width:600px}.placeholder-content h2{color:#f86e1e;margin-bottom:20px;font-size:28px}.placeholder-content p{color:#666;font-size:16px;line-height:1.6}.not-found{display:flex;align-items:center;justify-content:center;min-height:400px;padding:40px}.not-found-content{text-align:center}.not-found-content h1{font-size:120px;color:#f86e1e;margin:0;font-weight:700}.not-found-content h2{font-size:32px;color:#333;margin:20px 0}.not-found-content p{color:#666;font-size:18px;margin-bottom:30px}.btn-home{display:inline-block;padding:12px 30px;background:linear-gradient(135deg,#f86e1e,#e8bc8a);color:#fff;text-decoration:none;border-radius:6px;font-weight:500;transition:transform .2s,box-shadow .2s}.btn-home:hover{transform:translateY(-2px);box-shadow:0 4px 12px #667eea66}*{margin:0;padding:0;box-sizing:border-box}body{margin:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}code{font-family:source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace}#root{height:100vh}
