*,:before,:after{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }::backdrop{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }*,:before,:after{box-sizing:border-box;border-width:0;border-style:solid;border-color:#e5e7eb}:before,:after{--tw-content: ""}html,:host{line-height:1.5;-webkit-text-size-adjust:100%;-moz-tab-size:4;-o-tab-size:4;tab-size:4;font-family:ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji",Segoe UI Symbol,"Noto Color Emoji";font-feature-settings:normal;font-variation-settings:normal;-webkit-tap-highlight-color:transparent}body{margin:0;line-height:inherit}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-feature-settings:normal;font-variation-settings:normal;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}button,input,optgroup,select,textarea{font-family:inherit;font-feature-settings:inherit;font-variation-settings:inherit;font-size:100%;font-weight:inherit;line-height:inherit;letter-spacing:inherit;color:inherit;margin:0;padding:0}button,select{text-transform:none}button,input:where([type=button]),input:where([type=reset]),input:where([type=submit]){-webkit-appearance:button;background-color:transparent;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dl,dd,h1,h2,h3,h4,h5,h6,hr,figure,p,pre{margin:0}fieldset{margin:0;padding:0}legend{padding:0}ol,ul,menu{list-style:none;margin:0;padding:0}dialog{padding:0}textarea{resize:vertical}input::-moz-placeholder,textarea::-moz-placeholder{opacity:1;color:#9ca3af}input::placeholder,textarea::placeholder{opacity:1;color:#9ca3af}button,[role=button]{cursor:pointer}:disabled{cursor:default}img,svg,video,canvas,audio,iframe,embed,object{display:block;vertical-align:middle}img,video{max-width:100%;height:auto}[hidden]:where(:not([hidden=until-found])){display:none}.\!container{width:100%!important}.container{width:100%}@media(min-width:640px){.\!container{max-width:640px!important}.container{max-width:640px}}@media(min-width:768px){.\!container{max-width:768px!important}.container{max-width:768px}}@media(min-width:1024px){.\!container{max-width:1024px!important}.container{max-width:1024px}}@media(min-width:1280px){.\!container{max-width:1280px!important}.container{max-width:1280px}}@media(min-width:1536px){.\!container{max-width:1536px!important}.container{max-width:1536px}}.visible{visibility:visible}.collapse{visibility:collapse}.static{position:static}.fixed{position:fixed}.absolute{position:absolute}.relative{position:relative}.inset-0{inset:0}.z-50{z-index:50}.mx-4{margin-left:1rem;margin-right:1rem}.mb-2{margin-bottom:.5rem}.mb-4{margin-bottom:1rem}.mb-6{margin-bottom:1.5rem}.block{display:block}.inline{display:inline}.table{display:table}.grid{display:grid}.hidden{display:none}.w-full{width:100%}.max-w-md{max-width:28rem}.grow{flex-grow:1}.border-collapse{border-collapse:collapse}.resize{resize:both}.justify-center{justify-content:center}.space-x-3>:not([hidden])~:not([hidden]){--tw-space-x-reverse: 0;margin-right:calc(.75rem * var(--tw-space-x-reverse));margin-left:calc(.75rem * calc(1 - var(--tw-space-x-reverse)))}.rounded-lg{border-radius:.5rem}.rounded-md{border-radius:.375rem}.border{border-width:1px}.bg-black{--tw-bg-opacity: 1;background-color:rgb(0 0 0 / var(--tw-bg-opacity, 1))}.bg-blue-600{--tw-bg-opacity: 1;background-color:rgb(37 99 235 / var(--tw-bg-opacity, 1))}.bg-gray-300{--tw-bg-opacity: 1;background-color:rgb(209 213 219 / var(--tw-bg-opacity, 1))}.bg-white{--tw-bg-opacity: 1;background-color:rgb(255 255 255 / var(--tw-bg-opacity, 1))}.bg-opacity-50{--tw-bg-opacity: .5}.p-6{padding:1.5rem}.px-4{padding-left:1rem;padding-right:1rem}.py-2{padding-top:.5rem;padding-bottom:.5rem}.text-lg{font-size:1.125rem;line-height:1.75rem}.text-sm{font-size:.875rem;line-height:1.25rem}.font-semibold{font-weight:600}.uppercase{text-transform:uppercase}.lowercase{text-transform:lowercase}.italic{font-style:italic}.text-gray-500{--tw-text-opacity: 1;color:rgb(107 114 128 / var(--tw-text-opacity, 1))}.text-gray-600{--tw-text-opacity: 1;color:rgb(75 85 99 / var(--tw-text-opacity, 1))}.text-gray-700{--tw-text-opacity: 1;color:rgb(55 65 81 / var(--tw-text-opacity, 1))}.text-gray-900{--tw-text-opacity: 1;color:rgb(17 24 39 / var(--tw-text-opacity, 1))}.text-white{--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity, 1))}.filter{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.hover\:bg-blue-700:hover{--tw-bg-opacity: 1;background-color:rgb(29 78 216 / var(--tw-bg-opacity, 1))}.hover\:bg-gray-400:hover{--tw-bg-opacity: 1;background-color:rgb(156 163 175 / var(--tw-bg-opacity, 1))}.focus\:outline-none:focus{outline:2px solid transparent;outline-offset:2px}.focus\:ring-2:focus{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.focus\:ring-blue-500:focus{--tw-ring-opacity: 1;--tw-ring-color: rgb(59 130 246 / var(--tw-ring-opacity, 1))}.focus\:ring-gray-500:focus{--tw-ring-opacity: 1;--tw-ring-color: rgb(107 114 128 / var(--tw-ring-opacity, 1))}:root{--primary-color: #3498db;--primary-rgb: 52, 152, 219;--primary-dark: #2980b9;--secondary-color: #2ecc71;--secondary-rgb: 46, 204, 113;--secondary-dark: #27ae60;--accent-color: #9b59b6;--accent-rgb: 155, 89, 182;--warning-color: #f39c12;--warning-rgb: 243, 156, 18;--danger-color: #e74c3c;--danger-rgb: 231, 76, 60;--success-color: #27ae60;--success-rgb: 39, 174, 96;--success-dark: #229954;--info-color: #3498db;--info-rgb: 52, 152, 219;--info-dark: #2980b9;--dark-color: #34495e;--dark-rgb: 52, 73, 94;--dark-dark: #2c3e50;--light-color: #ecf0f1;--light-rgb: 236, 240, 241;--light-dark: #bdc3c7;--muted-color: #95a5a6;--muted-rgb: 149, 165, 166;--muted-dark: #7f8c8d;--light-gray: #f5f5f5;--medium-gray: #e0e0e0;--dark-gray: #777;--text-color: #333;--text-light: #666;--white: #fff;--shadow: 0 2px 10px rgba(0, 0, 0, .1);--shadow-strong: 0 5px 15px rgba(0, 0, 0, .15);--radius: 8px;--transition: all .3s ease;--spacing-xs: 4px;--spacing-sm: 8px;--spacing-md: 16px;--spacing-lg: 24px;--spacing-xl: 32px;--sidebar-width: 250px;--header-height: 60px;--font-family: "Segoe UI", Tahoma, Geneva, Verdana, sans-serif}*{margin:0;padding:0;box-sizing:border-box}body{font-family:var(--font-family);color:var(--text-color);background-color:var(--light-gray);line-height:1.5}.app{display:flex;min-height:100vh;position:relative}.main-content{flex:1;margin-left:0;transition:var(--transition)}@media(min-width:992px){.main-content{margin-left:var(--sidebar-width)}}.content{padding:var(--spacing-md);padding-top:calc(var(--header-height) + var(--spacing-md));min-height:100vh}h1,h2,h3,h4,h5,h6{margin-bottom:var(--spacing-md);font-weight:600;line-height:1.2}h1{font-size:28px}h2{font-size:24px}h3{font-size:20px}p{margin-bottom:var(--spacing-md)}button{cursor:pointer;background:none;border:none;font-family:inherit}input,select,textarea{font-family:inherit;font-size:16px;padding:var(--spacing-sm) var(--spacing-md);border:1px solid var(--medium-gray);border-radius:var(--radius);width:100%;transition:var(--transition)}input:focus,select:focus,textarea:focus{outline:none;border-color:var(--primary-color);box-shadow:0 0 0 2px #3498db33}.card{background-color:var(--white);border-radius:var(--radius);box-shadow:var(--shadow);padding:var(--spacing-md);margin-bottom:var(--spacing-md);transition:var(--transition)}.card:hover{box-shadow:var(--shadow-strong)}.btn{display:inline-flex;align-items:center;justify-content:center;padding:var(--spacing-sm) var(--spacing-md);border-radius:var(--radius);font-weight:500;transition:var(--transition);background-color:var(--primary-color);color:var(--white)}.btn:hover{background-color:var(--primary-dark)}.btn-secondary{background-color:var(--secondary-color)}.btn-secondary:hover{background-color:var(--secondary-dark)}.btn-outline{background-color:transparent;border:1px solid var(--primary-color);color:var(--primary-color)}.btn-outline:hover{background-color:var(--primary-color);color:var(--white)}.btn-danger:hover{background-color:#c82333}.btn-sm{padding:4px 8px;font-size:14px}.btn-lg{padding:12px 20px;font-size:18px}.flex{display:flex}.flex-col{flex-direction:column}.items-center{align-items:center}.justify-between{justify-content:space-between}.grid{display:grid;grid-gap:var(--spacing-md)}.grid-cols-1{grid-template-columns:1fr}@media(min-width:768px){.grid-cols-2-md{grid-template-columns:repeat(2,1fr)}}@media(min-width:992px){.grid-cols-3-lg{grid-template-columns:repeat(3,1fr)}.grid-cols-4-lg{grid-template-columns:repeat(4,1fr)}}.text-center{text-align:center}.mb-sm{margin-bottom:var(--spacing-sm)}.mb-md{margin-bottom:var(--spacing-md)}.mb-lg{margin-bottom:var(--spacing-lg)}.mt-sm{margin-top:var(--spacing-sm)}.mt-md{margin-top:var(--spacing-md)}.mt-lg{margin-top:var(--spacing-lg)}.mr-sm{margin-right:var(--spacing-sm)}.mr-md{margin-right:var(--spacing-md)}.ml-sm{margin-left:var(--spacing-sm)}.ml-md{margin-left:var(--spacing-md)}.text-primary{color:var(--primary-color)}.text-secondary{color:var(--secondary-color)}.text-warning{color:var(--warning-color)}.text-danger{color:var(--danger-color)}.visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}*{scrollbar-width:none;-ms-overflow-style:none}*::-webkit-scrollbar{display:none}html,body{scrollbar-width:none;-ms-overflow-style:none}html::-webkit-scrollbar,body::-webkit-scrollbar{display:none}.overflow-y-auto,.overflow-auto,.scrollable,[style*="overflow-y: auto"],[style*="overflow: auto"]{scrollbar-width:none;-ms-overflow-style:none}.overflow-y-auto::-webkit-scrollbar,.overflow-auto::-webkit-scrollbar,.scrollable::-webkit-scrollbar,[style*="overflow-y: auto"]::-webkit-scrollbar,[style*="overflow: auto"]::-webkit-scrollbar{display:none}.modal-content,.modal-body{scrollbar-width:none;-ms-overflow-style:none}.modal-content::-webkit-scrollbar,.modal-body::-webkit-scrollbar{display:none}.sidebar,.sidebar-content{scrollbar-width:none;-ms-overflow-style:none}.sidebar::-webkit-scrollbar,.sidebar-content::-webkit-scrollbar{display:none}.appointment-calendar,.calendar-container,.day-appointments,.week-appointments,.month-appointments{scrollbar-width:none;-ms-overflow-style:none}.appointment-calendar::-webkit-scrollbar,.calendar-container::-webkit-scrollbar,.day-appointments::-webkit-scrollbar,.week-appointments::-webkit-scrollbar,.month-appointments::-webkit-scrollbar{display:none}.table-container,.data-table,.table-wrapper{scrollbar-width:none;-ms-overflow-style:none}.table-container::-webkit-scrollbar,.data-table::-webkit-scrollbar,.table-wrapper::-webkit-scrollbar{display:none}textarea,select[size],input[type=file]{scrollbar-width:none;-ms-overflow-style:none}textarea::-webkit-scrollbar,select[size]::-webkit-scrollbar,input[type=file]::-webkit-scrollbar{display:none}.chat-container,.chat-sidebar,.chat-main,.messages-list,.message-container{scrollbar-width:none;-ms-overflow-style:none}.chat-container::-webkit-scrollbar,.chat-sidebar::-webkit-scrollbar,.chat-main::-webkit-scrollbar,.messages-list::-webkit-scrollbar,.message-container::-webkit-scrollbar{display:none}.patients-list,.patient-list{scrollbar-width:none;-ms-overflow-style:none}.patients-list::-webkit-scrollbar,.patient-list::-webkit-scrollbar{display:none}.dashboard,.dashboard-content,.stats-container{scrollbar-width:none;-ms-overflow-style:none}.dashboard::-webkit-scrollbar,.dashboard-content::-webkit-scrollbar,.stats-container::-webkit-scrollbar{display:none}.header{position:fixed;top:0;left:0;right:0;height:var(--header-height);background-color:var(--white);box-shadow:var(--shadow);display:flex;justify-content:space-between;align-items:center;padding:0 var(--spacing-md);z-index:100}.header-left{display:flex;align-items:center}.header-left h1{margin-bottom:0;font-size:18px;margin-left:var(--spacing-md)}.menu-toggle{display:flex;flex-direction:column;justify-content:space-between;width:24px;height:18px;background:transparent;border:none;cursor:pointer;padding:0}.menu-toggle span{display:block;height:2px;width:100%;background-color:var(--text-color);transition:var(--transition)}.header-right{display:flex;align-items:center}.search-container{position:relative;margin-right:var(--spacing-md);display:none}.search-input{padding-right:40px;width:250px}.search-button{position:absolute;right:8px;top:50%;transform:translateY(-50%);background:none;border:none;color:var(--dark-gray);cursor:pointer}.notification-button{position:relative;background:none;border:none;color:var(--text-color);margin-right:var(--spacing-md);cursor:pointer;padding:var(--spacing-sm)}.notification-badge{position:absolute;top:0;right:0;background-color:var(--danger-color);color:#fff;border-radius:50%;width:16px;height:16px;font-size:10px;display:flex;align-items:center;justify-content:center}.user-profile{display:flex;align-items:center;cursor:pointer;position:relative}.avatar{width:36px;height:36px;border-radius:50%;overflow:hidden;margin-right:var(--spacing-sm)}.avatar-placeholder{width:100%;height:100%;background-color:var(--primary-color);color:var(--white);display:flex;align-items:center;justify-content:center;font-weight:600;font-size:14px;border-radius:50%}.user-info{display:none}.user-name{font-weight:600;font-size:14px;display:block}.user-role{font-size:12px;color:var(--text-light)}.logout-button{background:none;border:none;color:var(--text-light);cursor:pointer;padding:var(--spacing-sm);margin-left:var(--spacing-sm);border-radius:var(--radius);transition:var(--transition);display:flex;align-items:center;justify-content:center}.logout-button:hover{color:var(--danger-color);background-color:#e74c3c1a}.edit-profile-button{background:none;border:none;color:var(--text-light);cursor:pointer;padding:var(--spacing-sm);margin-left:var(--spacing-sm);border-radius:var(--radius);transition:var(--transition);display:flex;align-items:center;justify-content:center}.edit-profile-button:hover{color:var(--primary-color);background-color:#3498db1a}@media(min-width:768px){.header-left h1{font-size:20px}.search-container,.user-info{display:block}}.sidebar{position:fixed;left:0;top:0;bottom:0;width:var(--sidebar-width);background-color:var(--white);box-shadow:var(--shadow);z-index:200;display:flex;flex-direction:column;transform:translate(-100%);transition:transform .3s ease}.sidebar.open{transform:translate(0)}.sidebar-backdrop{position:fixed;inset:0;background-color:#00000080;z-index:199}.sidebar-header{height:var(--header-height);padding:0 var(--spacing-md);display:flex;align-items:center;justify-content:center;border-bottom:1px solid var(--medium-gray)}.logo{display:flex;align-items:center;color:var(--primary-color);font-weight:700;font-size:18px}.logo svg{margin-right:var(--spacing-sm)}.logo-image{width:130px;margin-right:var(--spacing-sm);-o-object-fit:contain;object-fit:contain}.close-sidebar{display:flex;align-items:center;justify-content:center;background:none;border:none;color:var(--dark-gray);cursor:pointer}.sidebar-nav{flex:1;padding:var(--spacing-md) 0;overflow-y:auto}.sidebar-nav ul{list-style:none;padding:0;margin:0}.sidebar-nav li{margin-bottom:2px}.sidebar-nav li button{display:flex;align-items:center;width:100%;padding:var(--spacing-md) var(--spacing-lg);color:var(--text-color);text-decoration:none;transition:var(--transition);border:none;background:none;text-align:left}.sidebar-nav li button svg{margin-right:var(--spacing-md);color:var(--text-light);transition:var(--transition)}.sidebar-nav li button:hover{background-color:#3498db1a;color:var(--primary-color)}.sidebar-nav li button:hover svg{color:var(--primary-color)}.sidebar-nav li.active button{background-color:#3498db1a;color:var(--primary-color);border-left:3px solid var(--primary-color)}.sidebar-nav li.active button svg{color:var(--primary-color)}.sidebar-footer{padding:var(--spacing-md);border-top:1px solid var(--medium-gray)}.settings-button,.logout-button,.support-button{display:flex;align-items:center;padding:var(--spacing-sm) var(--spacing-md);margin-bottom:var(--spacing-sm);background:none;border:none;color:var(--text-color);cursor:pointer;transition:var(--transition);border-radius:var(--radius)}.settings-button svg,.logout-button svg,.support-button svg{margin-right:var(--spacing-md)}.settings-button:hover,.logout-button:hover,.support-button:hover{background-color:#3498db1a;color:var(--primary-color)}.support-button{color:var(--info-color)}.support-button:hover{background-color:#3498db1a;color:var(--info-color)}.logout-button{margin-left:0;color:var(--danger-color)}.logout-button:hover{background-color:#e74c3c1a;color:var(--danger-color)}@media(min-width:992px){.sidebar{transform:translate(0)}.close-sidebar{display:none}}.support-panel-backdrop{position:fixed;inset:0;background-color:#0000004d;z-index:998;opacity:0;transition:opacity .3s ease}.support-panel-backdrop.show{opacity:1}.support-panel{position:fixed;top:0;right:0;bottom:0;width:450px;max-width:90vw;background:var(--white);box-shadow:-5px 0 15px #0000001a;z-index:999;transform:translate(100%);transition:transform .3s ease;display:flex;flex-direction:column}.support-panel.open{transform:translate(0)}.support-panel-header{display:flex;align-items:center;justify-content:space-between;padding:var(--spacing-lg);border-bottom:1px solid var(--medium-gray);background:var(--light-gray);flex-shrink:0}.support-panel-title{display:flex;align-items:center;gap:var(--spacing-md)}.support-panel-title svg{color:var(--primary-color);flex-shrink:0}.support-panel-title h2{margin:0;color:var(--primary-color);font-size:20px;font-weight:600}.support-panel-close{display:flex;align-items:center;justify-content:center;width:32px;height:32px;background:none;border:none;color:var(--text-light);cursor:pointer;border-radius:var(--radius);transition:var(--transition)}.support-panel-close:hover{background-color:#e74c3c1a;color:var(--danger-color)}.support-panel-content{flex:1;overflow-y:auto;padding:var(--spacing-lg)}.support-form{display:flex;flex-direction:column;height:100%}.form-group label{display:block;margin-bottom:var(--spacing-sm);font-weight:500;color:var(--text-color);font-size:14px}.form-group input,.form-group select,.form-group textarea{width:100%;padding:var(--spacing-sm) var(--spacing-md);border:1px solid var(--medium-gray);border-radius:var(--radius);font-size:14px;transition:var(--transition);background-color:var(--white)}.form-group input:focus,.form-group select:focus,.form-group textarea:focus{outline:none;border-color:var(--primary-color);box-shadow:0 0 0 2px #3498db33}.form-group textarea{resize:vertical;min-height:120px;font-family:inherit}.form-group select{cursor:pointer}.form-group input::-moz-placeholder,.form-group textarea::-moz-placeholder{color:var(--text-light);opacity:.7}.form-group input::placeholder,.form-group textarea::placeholder{color:var(--text-light);opacity:.7}.alert{display:flex;align-items:center;padding:var(--spacing-md);border-radius:var(--radius);margin-bottom:var(--spacing-md);font-size:14px;font-weight:500}.alert svg{margin-right:var(--spacing-sm);flex-shrink:0}.alert-success{background-color:#27ae601a;color:var(--success-color);border:1px solid rgba(39,174,96,.2)}.alert-error{background-color:#e74c3c1a;color:var(--danger-color);border:1px solid rgba(231,76,60,.2)}.form-actions{display:flex;gap:var(--spacing-md);justify-content:flex-end;margin-top:auto;padding-top:var(--spacing-md);border-top:1px solid var(--medium-gray)}.form-actions .btn{display:flex;align-items:center;gap:var(--spacing-sm);padding:var(--spacing-sm) var(--spacing-md);border-radius:var(--radius);font-weight:500;font-size:14px;transition:var(--transition);cursor:pointer;border:none}.form-actions .btn-primary{background-color:var(--primary-color);color:var(--white)}.form-actions .btn-primary:hover:not(:disabled){background-color:var(--primary-dark)}.form-actions .btn-outline{background-color:transparent;color:var(--text-color);border:1px solid var(--medium-gray)}.form-actions .btn-outline:hover:not(:disabled){background-color:var(--light-gray);border-color:var(--text-light)}@media(max-width:768px){.support-panel{width:100vw;max-width:100vw}.support-panel-header,.support-panel-content{padding:var(--spacing-md)}.support-panel-title h2{font-size:18px}.form-actions{flex-direction:column}.form-actions .btn{width:100%;justify-content:center}}@media(max-width:480px){.support-panel-header,.support-panel-content{padding:var(--spacing-sm)}.support-panel-title h2{font-size:16px}.support-panel-title svg{width:20px;height:20px}}.file-input{width:100%;padding:var(--spacing-sm);border:2px dashed var(--medium-gray);border-radius:var(--radius);background-color:var(--light-gray);cursor:pointer;transition:border-color .2s ease,background-color .2s ease}.file-input:hover{border-color:var(--primary-color);background-color:rgba(var(--primary-rgb),.05)}.file-help{display:block;margin-top:var(--spacing-xs);color:var(--muted-color);font-size:14px}.attachments-list{margin-top:var(--spacing-md);padding:var(--spacing-md);background-color:var(--light-gray);border-radius:var(--radius);border:1px solid var(--medium-gray)}.attachments-list h4{margin:0 0 var(--spacing-sm) 0;font-size:16px;color:var(--text-color)}.attachment-item{display:flex;align-items:center;justify-content:space-between;padding:var(--spacing-sm);margin-bottom:var(--spacing-sm);background-color:var(--white);border:1px solid var(--medium-gray);border-radius:var(--radius)}.attachment-item:last-child{margin-bottom:0}.file-name{font-weight:500;color:var(--text-color);flex:1;margin-right:var(--spacing-sm)}.file-size{color:var(--muted-color);font-size:14px;margin-right:var(--spacing-sm)}.remove-attachment{background:var(--danger-color);color:var(--white);border:none;border-radius:50%;width:24px;height:24px;display:flex;align-items:center;justify-content:center;cursor:pointer;font-size:12px;transition:background-color .2s ease}.remove-attachment:hover{background-color:var(--danger-dark)}.dashboard{padding:var(--spacing-md)}@media(max-width:768px){.dashboard{padding:var(--spacing-sm)}.dashboard .dashboard-header{flex-direction:column;gap:var(--spacing-sm);align-items:stretch;padding:var(--spacing-sm)}.dashboard .dashboard-header h2{text-align:center;font-size:1.5rem}.dashboard .dashboard-header .btn{width:100%;justify-content:center;padding:var(--spacing-sm);font-size:.9rem}.stats-grid{grid-template-columns:1fr;gap:var(--spacing-sm);margin-bottom:var(--spacing-md)}.stat-card{padding:var(--spacing-sm)}.stat-icon{width:40px;height:40px;margin-right:var(--spacing-sm)}.stat-content h3{font-size:1.5rem}.stat-content p{font-size:.9rem}.dashboard-grid{grid-template-columns:1fr;gap:var(--spacing-sm);margin-bottom:var(--spacing-md)}.card-header{flex-direction:column;gap:var(--spacing-sm);align-items:stretch}.card-header h3{text-align:center;font-size:1.2rem}.card-header .btn{width:100%;justify-content:center;padding:var(--spacing-sm);font-size:.9rem}.appointments-list,.patients-list{gap:var(--spacing-xs)}.appointment-item,.patient-item{padding:var(--spacing-sm)}.appointment-time,.patient-name{font-size:.9rem}.appointment-patient,.patient-contact{font-size:.8rem}.appointment-calendar{height:400px}}@media(max-width:480px){.dashboard{padding:var(--spacing-xs)}.dashboard .dashboard-header h2{font-size:1.3rem}.stat-card{padding:var(--spacing-xs)}.stat-icon{width:35px;height:35px}.stat-content h3{font-size:1.3rem}.stat-content p{font-size:.8rem}.card-header h3{font-size:1.1rem}.appointment-item,.patient-item{padding:var(--spacing-xs)}.appointment-time,.patient-name{font-size:.8rem}.appointment-patient,.patient-contact{font-size:.7rem}.appointment-calendar{height:auto;min-height:350px}}.dashboard .dashboard-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--spacing-lg);background-color:var(--white);border-radius:var(--radius);box-shadow:var(--shadow);padding:var(--spacing-md)}.dashboard .dashboard-header h2{margin-bottom:0;color:var(--text-dark);font-size:24px;font-weight:600}.dashboard .dashboard-header .btn{font-size:12px;padding:6px 12px}.stats-grid{display:grid;grid-template-columns:repeat(1,1fr);gap:var(--spacing-md);margin-bottom:var(--spacing-lg)}.stat-card{background-color:var(--white);border-radius:var(--radius);box-shadow:var(--shadow);padding:var(--spacing-md);display:flex;align-items:center;transition:var(--transition)}.stat-card:hover{transform:translateY(-2px);box-shadow:var(--shadow-strong)}.stat-icon{width:48px;height:48px;border-radius:12px;display:flex;align-items:center;justify-content:center;margin-right:var(--spacing-md);color:var(--white)}.stat-content{flex:1}.stat-content h3{font-size:24px;margin-bottom:0}.stat-content p{color:var(--text-light);margin-bottom:var(--spacing-xs);font-size:14px}.stat-trend{font-size:12px}.trend-up{color:var(--secondary-color)}.trend-down{color:var(--danger-color)}.trend-period{color:var(--text-light);margin-left:var(--spacing-xs)}.dashboard-grid{display:grid;grid-template-columns:1fr;gap:var(--spacing-md);margin-bottom:var(--spacing-lg)}.card-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--spacing-md)}.card-header h3{margin-bottom:0}.appointments-list,.patients-list{display:flex;flex-direction:column;gap:var(--spacing-sm)}.appointment-item{display:flex;align-items:center;padding:var(--spacing-sm);border-radius:var(--radius);background-color:var(--light-gray);transition:var(--transition)}.appointment-item:hover{background-color:var(--medium-gray)}.appointment-item.my-appointment{border-left:4px solid var(--primary-color);background-color:#3498db0d}.appointment-doctor{margin:4px 0}.doctor-badge{font-size:11px;padding:2px 6px;border-radius:12px;font-weight:500}.doctor-badge.my-appointment{background-color:var(--primary-color);color:#fff}.doctor-badge.other-doctor{background-color:var(--light-gray);color:var(--text-dark)}.appointment-time{font-weight:600;min-width:80px;text-align:center}.appointment-time .time{font-size:14px;font-weight:600}.appointment-time .end-time{font-size:11px;color:var(--text-light);margin-top:2px}.appointment-details{flex:1;margin:0 var(--spacing-md)}.appointment-patient{font-weight:500}.appointment-treatment{font-size:12px;color:var(--text-light)}.appointment-status{display:flex;align-items:center;gap:var(--spacing-sm)}.status-badges{display:flex;flex-direction:column;gap:var(--spacing-xs);align-items:flex-end}.appointment-type-badge{font-size:10px;padding:2px 6px;border-radius:4px;font-weight:500;text-transform:uppercase;letter-spacing:.5px}.badge-consultation{background-color:#3b82f6;color:#fff}.badge-visiting{background-color:#f59e0b;color:#fff}.badge-regular{background-color:#10b981;color:#fff}.patient-item{display:flex;align-items:center;padding:var(--spacing-sm);border-radius:var(--radius);background-color:var(--light-gray);transition:var(--transition)}.patient-item:hover{background-color:var(--medium-gray)}.patient-avatar img{width:100%;height:100%;-o-object-fit:cover;object-fit:cover}.patient-details{flex:1}.patient-name{font-weight:500}.patient-info{font-size:12px;color:var(--text-light)}.dashboard-content{display:flex;gap:var(--spacing-lg);min-height:calc(100vh - 120px)}.dashboard-main{flex:1;display:flex;flex-direction:column;gap:var(--spacing-lg)}.dashboard-sidebar{width:300px;position:relative;background:var(--white);border-radius:var(--radius);box-shadow:var(--shadow-sm);border:1px solid var(--border-color);overflow:hidden}.sidebar-content{padding:var(--spacing-lg)}.sidebar-content h3{margin:0 0 var(--spacing-md) 0;font-size:1.1rem;font-weight:600;color:var(--text-dark)}.quick-actions{display:flex;flex-direction:column;gap:var(--spacing-sm)}.quick-actions .btn{width:100%;justify-content:center;text-align:center;display:flex;align-items:center}@media(max-width:1024px){.dashboard-content{flex-direction:column}.dashboard-sidebar{width:100%;order:-1}.quick-actions{flex-direction:row;flex-wrap:wrap;gap:var(--spacing-sm)}.quick-actions .btn{flex:1;min-width:150px;padding:var(--spacing-sm) var(--spacing-md)}}@media(max-width:768px){.dashboard-sidebar{margin-bottom:var(--spacing-md);width:100%}.sidebar-content{padding:var(--spacing-md)}.sidebar-content h3{font-size:1rem;margin-bottom:var(--spacing-sm)}.quick-actions{flex-direction:column;gap:var(--spacing-xs)}.quick-actions .btn{width:100%!important;padding:12px var(--spacing-md)!important;font-size:14px;justify-content:center!important;text-align:center!important;display:flex!important;align-items:center!important;min-width:0!important;max-width:100%!important}}@media(max-width:480px){.sidebar-content{padding:var(--spacing-sm)}.sidebar-content h3{font-size:.95rem}.quick-actions .btn{padding:12px var(--spacing-sm)!important;font-size:13px;min-width:0!important;width:100%!important;justify-content:center!important;text-align:center!important}}.loading-spinner{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:var(--spacing-xl);text-align:center}.error-message{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:var(--spacing-xl);text-align:center;background-color:var(--light-gray);border-radius:var(--radius);margin:var(--spacing-md) 0}.error-message p{color:var(--danger-color);margin-bottom:var(--spacing-md);font-weight:500}.no-appointments,.no-patients{text-align:center;padding:var(--spacing-lg);color:var(--text-light);font-style:italic}.quick-stats-section{margin-bottom:var(--spacing-lg)}.quick-stats-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:var(--spacing-md)}.quick-stat-item{padding:var(--spacing-md);background-color:var(--light-gray);border-radius:var(--radius);text-align:center}.quick-stat-label{font-size:12px;color:var(--text-light);margin-bottom:var(--spacing-xs)}.quick-stat-value{font-size:24px;font-weight:600;color:var(--primary-color)}@media(min-width:576px){.stats-grid{grid-template-columns:repeat(2,1fr)}}@media(min-width:992px){.stats-grid{grid-template-columns:repeat(4,1fr)}.dashboard-grid{grid-template-columns:repeat(2,1fr)}}.reminders-section{margin-bottom:var(--spacing-lg)}.reminders-list{display:flex;flex-direction:column;gap:var(--spacing-sm);max-height:400px;overflow-y:auto;padding-right:var(--spacing-xs)}.reminders-list::-webkit-scrollbar{width:6px}.reminders-list::-webkit-scrollbar-track{background:var(--light-gray);border-radius:3px}.reminders-list::-webkit-scrollbar-thumb{background:var(--primary-color);border-radius:3px}.reminders-list::-webkit-scrollbar-thumb:hover{background:var(--primary-dark)}.reminder-item{display:flex;align-items:center;gap:var(--spacing-sm);padding:var(--spacing-md);border-radius:var(--radius);border-left:4px solid;background-color:var(--light-gray);transition:all .2s ease}.reminder-item:hover{transform:translateY(-2px);box-shadow:0 4px 12px #0000001a}.reminder-item.urgent{border-left-color:#dc2626;background-color:#fef2f2}.reminder-item.warning{border-left-color:#f59e0b;background-color:#fffbeb}.reminder-item.info{border-left-color:#3b82f6;background-color:#eff6ff}.reminder-item.success{border-left-color:#10b981;background-color:#ecfdf5}.reminder-icon{font-size:20px;flex-shrink:0}.reminder-content{flex:1;min-width:0}.reminder-title{font-weight:600;color:var(--text-color);margin-bottom:var(--spacing-xs);font-size:14px}.reminder-details{color:var(--text-light);font-size:12px;margin-bottom:var(--spacing-xs);line-height:1.4}.reminder-time{color:var(--primary-color);font-size:11px;font-weight:500}.loading-placeholder{display:flex;align-items:center;justify-content:center;gap:var(--spacing-sm);padding:var(--spacing-lg);color:var(--text-light);font-size:14px}.no-reminders{display:flex;align-items:center;gap:var(--spacing-sm);padding:var(--spacing-md);border-radius:var(--radius);background-color:var(--light-gray);color:var(--text-light);text-align:center}.no-reminders .reminder-icon{font-size:24px;color:var(--success-color)}.no-reminders .reminder-content{flex:1}.no-reminders .reminder-title{font-weight:600;color:var(--text-color);margin-bottom:var(--spacing-xs)}.no-reminders .reminder-details{font-size:12px;color:var(--text-light)}.reminder-count{font-size:12px;font-weight:600;color:var(--primary-color);margin-bottom:var(--spacing-xs)}.reminder-amount{font-size:12px;font-weight:600;color:var(--warning-color);margin-bottom:var(--spacing-xs)}.reminder-actions{display:flex;gap:var(--spacing-xs);flex-shrink:0}@media(max-width:768px){.reminders-list{max-height:300px}.reminder-item{padding:var(--spacing-sm)}.reminder-actions{flex-direction:column;gap:var(--spacing-xs)}.reminder-actions .btn{font-size:11px;padding:var(--spacing-xs) var(--spacing-sm)}}.inventory-section{margin-bottom:var(--spacing-lg)}.inventory-update-form{display:flex;flex-direction:column;gap:var(--spacing-md)}.search-section{position:relative}.search-section label{display:block;font-size:14px;font-weight:600;color:var(--text-color);margin-bottom:var(--spacing-sm)}.dropdown-container{position:relative}.inventory-dropdown{width:100%;padding:var(--spacing-sm);border:2px solid var(--light-gray);border-radius:var(--radius);font-size:14px;background-color:#fff;transition:border-color .2s ease;cursor:pointer}.inventory-dropdown:focus{outline:none;border-color:var(--primary-color)}.inventory-dropdown option{padding:var(--spacing-sm);font-size:14px}.no-item-selected{text-align:center;padding:var(--spacing-lg);color:var(--text-light);font-style:italic;background-color:var(--light-gray);border-radius:var(--radius)}.stock-update-section label{display:block;font-size:14px;font-weight:600;color:var(--text-color);margin-bottom:var(--spacing-sm)}.quantity-controls{display:flex;align-items:center;gap:var(--spacing-sm);margin-bottom:var(--spacing-md)}.quantity-btn{width:40px;height:40px;padding:0;display:flex;align-items:center;justify-content:center;font-size:18px;font-weight:700;border-radius:var(--radius)}.quantity-input{width:80px;height:40px;text-align:center;border:2px solid var(--light-gray);border-radius:var(--radius);font-size:16px;font-weight:600;padding:var(--spacing-sm)}.quantity-input:focus{outline:none;border-color:var(--primary-color)}.current-stock{display:flex;align-items:center;gap:var(--spacing-sm);margin-bottom:var(--spacing-md);padding:var(--spacing-sm);background-color:var(--light-gray);border-radius:var(--radius)}.stock-label{font-size:14px;color:var(--text-color);font-weight:500}.stock-value{font-size:18px;font-weight:600;color:var(--primary-color)}.update-stock-btn{width:100%;padding:var(--spacing-sm);font-size:14px;font-weight:600;transition:background-color .2s ease}.update-stock-btn:disabled{background-color:var(--light-gray);cursor:not-allowed;opacity:.6}.stock-update-message{margin-top:var(--spacing-md);padding:var(--spacing-sm) var(--spacing-md);border-radius:var(--radius);font-size:14px;font-weight:500;text-align:center}.stock-update-message.success{background-color:#d4edda;color:#155724;border:1px solid #c3e6cb}.stock-update-message.error{background-color:#f8d7da;color:#721c24;border:1px solid #f5c6cb}.adjustment-controls{margin:var(--spacing-md) 0}.adjustment-label{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--spacing-sm);font-size:14px;font-weight:600}.adjustment-value{font-size:16px;font-weight:700;padding:4px 8px;border-radius:4px}.adjustment-value.positive{color:#28a745;background-color:#d4edda}.adjustment-value.negative{color:#dc3545;background-color:#f8d7da}.adjustment-value.neutral{color:#6c757d;background-color:#e9ecef}.quantity-btn.add-btn{background-color:#d4edda;color:#28a745;border-color:#28a745}.quantity-btn.add-btn:hover{background-color:#28a745;color:#fff}.quantity-btn.remove-btn{background-color:#f8d7da;color:#dc3545;border-color:#dc3545}.quantity-btn.remove-btn:hover{background-color:#dc3545;color:#fff}.quick-adjustments{display:flex;gap:var(--spacing-xs);margin-top:var(--spacing-sm);flex-wrap:wrap}.quick-btn{padding:4px 8px;font-size:12px;min-width:40px}.preview-stock{display:flex;justify-content:space-between;align-items:center;margin:var(--spacing-md) 0;padding:var(--spacing-sm);background-color:#e8f4fd;border-radius:var(--radius);border-left:4px solid var(--primary-color)}.preview-label{font-size:14px;font-weight:600;color:var(--text-color)}.preview-value{font-size:16px;font-weight:700;color:var(--primary-color)}@media(max-width:768px){.quantity-controls{justify-content:center}.quantity-input{width:100px}.reminder-item{flex-direction:column;align-items:flex-start;gap:var(--spacing-xs)}.reminder-content{width:100%}}.notepad-section{margin-bottom:var(--spacing-lg)}.notepad-wrapper{padding:0}.dashboard-patient-search{margin-bottom:var(--spacing-lg)}.fullscreen-patient-modal{position:fixed;inset:0;z-index:9999;animation:fadeIn .2s ease}.fullscreen-modal-backdrop{position:absolute;inset:0;background-color:#000000bf;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;padding:var(--spacing-md);overflow:auto}.fullscreen-modal-container{position:relative;width:100%;max-width:95vw;max-height:95vh;background:#fff;border-radius:12px;box-shadow:0 20px 60px #0000004d;display:flex;flex-direction:column;animation:slideUp .3s ease;overflow:hidden}@keyframes slideUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.fullscreen-modal-close{position:absolute;top:16px;right:16px;z-index:10000;background:#ffffffe6;border:none;border-radius:50%;width:40px;height:40px;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all .2s ease;box-shadow:0 2px 8px #00000026}.fullscreen-modal-close:hover{background:#fff;transform:scale(1.1);box-shadow:0 4px 12px #0003}.fullscreen-modal-close svg{width:20px;height:20px;color:var(--text-color, #333)}.fullscreen-modal-content{flex:1;overflow-y:auto;padding:var(--spacing-md);height:100%}.fullscreen-modal-content .patient-profile{max-width:100%;margin:0}@media(max-width:768px){.dashboard-patient-search{padding:0;margin-bottom:var(--spacing-md)}.fullscreen-modal-backdrop{padding:0}.fullscreen-modal-container{max-width:100vw;max-height:100vh;border-radius:0}.fullscreen-modal-close{top:12px;right:12px;width:36px;height:36px}.fullscreen-modal-close svg{width:18px;height:18px}.fullscreen-modal-content{padding:var(--spacing-sm)}}.doctor-availability-manager{padding:20px;max-width:1200px;margin:0 auto}.availability-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:30px;padding-bottom:20px;border-bottom:2px solid #e5e7eb}.availability-header h2{margin:0;color:#1f2937;font-size:1.8rem}.availability-header p{margin:5px 0 0;color:#6b7280;font-size:.95rem}.upcoming-timeoff{margin-bottom:40px}.upcoming-timeoff h3{color:#1f2937;margin-bottom:20px;font-size:1.3rem}.timeoff-list{display:grid;gap:15px}.timeoff-item{background:#f8fafc;border:1px solid #e2e8f0;border-radius:8px;padding:20px;display:flex;justify-content:space-between;align-items:center;transition:all .2s ease}.timeoff-item:hover{box-shadow:0 4px 6px -1px #0000001a;border-color:#cbd5e1}.timeoff-info{flex:1}.timeoff-type{display:inline-block;background:#3b82f6;color:#fff;padding:4px 12px;border-radius:20px;font-size:.8rem;font-weight:500;margin-right:10px}.timeoff-dates{font-weight:600;color:#1f2937;margin-right:15px}.timeoff-reason{color:#6b7280;font-style:italic}.timeoff-actions{display:flex;gap:10px}.all-availability h3{color:#1f2937;margin-bottom:20px;font-size:1.3rem}.no-availability{text-align:center;padding:40px;color:#6b7280;background:#f9fafb;border-radius:8px;border:2px dashed #d1d5db}.availability-list{display:grid;gap:20px}.availability-item{background:#fff;border:1px solid #e5e7eb;border-radius:8px;padding:20px;display:flex;justify-content:space-between;align-items:flex-start;transition:all .2s ease}.availability-item:hover{box-shadow:0 4px 6px -1px #0000001a;border-color:#d1d5db}.availability-info{flex:1}.availability-header-info{display:flex;align-items:center;gap:15px;margin-bottom:10px}.availability-type{display:inline-block;background:#10b981;color:#fff;padding:4px 12px;border-radius:20px;font-size:.8rem;font-weight:500}.availability-status{font-size:.9rem;font-weight:500}.availability-dates{margin-bottom:10px}.date-range{font-weight:600;color:#1f2937;margin-right:15px}.time-range{color:#6b7280;font-size:.9rem}.availability-reason{color:#6b7280;font-size:.9rem;margin-top:8px}.availability-actions{display:flex;gap:10px;flex-shrink:0}.form-modal-overlay{position:fixed;inset:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000}.form-modal{background:#fff;border-radius:12px;width:90%;max-width:600px;max-height:90vh;overflow-y:auto;box-shadow:0 25px 50px -12px #00000040}.form-header{display:flex;justify-content:space-between;align-items:center;padding:20px 25px;border-bottom:1px solid #e5e7eb}.form-header h3{margin:0;color:#1f2937;font-size:1.3rem}.close-btn{background:none;border:none;font-size:1.5rem;color:#6b7280;cursor:pointer;padding:0;width:30px;height:30px;display:flex;align-items:center;justify-content:center;border-radius:50%;transition:all .2s ease}.close-btn:hover{background:#f3f4f6;color:#374151}.availability-form{padding:25px}.form-group label{margin-bottom:8px;font-weight:500;color:#374151;font-size:.9rem}.form-group input,.form-group select,.form-group textarea{padding:10px 12px;border:1px solid #d1d5db;border-radius:6px;font-size:.9rem;transition:border-color .2s ease}.form-group input[type=checkbox]{width:auto;margin-right:8px}.form-group label:has(input[type=checkbox]){flex-direction:row;align-items:center;cursor:pointer}.form-actions{display:flex;justify-content:flex-end;gap:15px;margin-top:30px;padding-top:20px;border-top:1px solid #e5e7eb}.btn{padding:10px 20px;border:none;border-radius:6px;font-size:.9rem;font-weight:500;cursor:pointer;transition:all .2s ease;text-decoration:none;display:inline-flex;align-items:center;justify-content:center;gap:8px}.btn-disabled{background-color:#f3f4f6!important;color:#9ca3af!important;cursor:not-allowed!important;opacity:.6;border:1px solid #e5e7eb!important}.btn-disabled:hover{background-color:#f3f4f6!important;color:#9ca3af!important;transform:none!important}.btn-primary:hover:not(:disabled){background:#2563eb}.btn-secondary{background:#6b7280;color:#fff}.btn-secondary:hover:not(:disabled){background:#4b5563}.btn-danger:hover:not(:disabled){background:#dc2626}.error-message{background:#fef2f2;border:1px solid #fecaca;color:#dc2626;padding:12px 16px;border-radius:6px;margin-bottom:20px;font-size:.9rem}.loading{text-align:center;padding:40px;color:#6b7280;font-size:1.1rem}@media(max-width:768px){.doctor-availability-manager{padding:15px}.availability-header{flex-direction:column;align-items:flex-start;gap:15px}.form-row{grid-template-columns:1fr;gap:15px}.form-modal{width:95%;margin:20px}.timeoff-item,.availability-item{flex-direction:column;align-items:flex-start;gap:15px}.timeoff-actions,.availability-actions{width:100%;justify-content:flex-end}.form-actions{flex-direction:column}.btn{width:100%}}.loading-spinner{display:flex;flex-direction:column;align-items:center;justify-content:center;position:relative}.loading-spinner--centered{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);z-index:10}.loading-spinner--small{padding:1rem}.loading-spinner--small .loading-spinner__circle{width:24px;height:24px}.loading-spinner--medium{padding:1.5rem}.loading-spinner--medium .loading-spinner__circle{width:40px;height:40px}.loading-spinner--large{padding:2rem}.loading-spinner--large .loading-spinner__circle{width:60px;height:60px}.loading-spinner--xlarge{padding:3rem}.loading-spinner--xlarge .loading-spinner__circle{width:80px;height:80px}.loading-spinner__circle{position:relative;border-radius:50%;display:flex;align-items:center;justify-content:center}.loading-spinner__inner-circle{width:100%;height:100%;border:3px solid transparent;border-top:3px solid currentColor;border-radius:50%;animation:spin 1.2s cubic-bezier(.68,-.55,.265,1.55) infinite;position:relative}.loading-spinner__pulse{position:absolute;top:50%;left:50%;width:30%;height:30%;background:currentColor;border-radius:50%;transform:translate(-50%,-50%);animation:pulse 2s ease-in-out infinite;opacity:.3}.loading-spinner--primary{color:var(--primary-color, #3b82f6)}.loading-spinner--secondary{color:var(--secondary-color, #6b7280)}.loading-spinner--white{color:#fff}.loading-spinner--dark{color:var(--text-dark, #1f2937)}.loading-spinner__message{margin-top:1rem;font-size:.875rem;color:var(--text-medium, #6b7280);text-align:center;font-weight:500;animation:fadeInUp .6s ease-out}@keyframes pulse{0%,to{opacity:.3;transform:translate(-50%,-50%) scale(.8)}50%{opacity:.6;transform:translate(-50%,-50%) scale(1.2)}}@keyframes fadeInUp{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.loading-spinner--right-panel{position:absolute;inset:0;background:#fffffff2;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);z-index:20;display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:200px}.loading-spinner--right-panel .loading-spinner__circle{width:50px;height:50px}.loading-spinner--right-panel .loading-spinner__inner-circle{border-width:4px;animation:spin 1s linear infinite}.loading-spinner--right-panel .loading-spinner__pulse{width:20%;height:20%;animation:pulse 1.5s ease-in-out infinite}@media(max-width:768px){.loading-spinner--right-panel .loading-spinner__circle{width:40px;height:40px}.loading-spinner__message{font-size:.8rem;margin-top:.75rem}}@media(prefers-color-scheme:dark){.loading-spinner--right-panel{background:#111827f2}.loading-spinner__message{color:var(--text-light, #9ca3af)}}.loading-spinner[aria-hidden=true]{display:none}@media(prefers-contrast:high){.loading-spinner__inner-circle{border-width:4px}.loading-spinner--primary{color:#00f}.loading-spinner--secondary{color:#000}}@media(prefers-reduced-motion:reduce){.loading-spinner__inner-circle{animation:none;border-top-color:currentColor}.loading-spinner__pulse{animation:none;opacity:.5}.loading-spinner__message{animation:none}}.patient-search-container{position:relative;width:100%;margin:0}.patient-search-input-wrapper{position:relative;display:flex;align-items:center;background:#fff;border:2px solid var(--border-color, #e0e0e0);border-radius:12px;padding:12px 16px;transition:all .2s ease;box-shadow:0 2px 4px #0000000d}.patient-search-input-wrapper:focus-within{border-color:var(--primary-color, #3498db);box-shadow:0 0 0 3px #3498db1a}.patient-search-container .patient-search-input{flex:1;border:none;outline:none;font-size:16px;padding:0 48px 0 0;background:transparent;color:var(--text-color, #333);min-width:0;width:100%;order:1}.patient-search-container .patient-search-input::-moz-placeholder{color:var(--text-muted, #999)}.patient-search-container .patient-search-input::placeholder{color:var(--text-muted, #999)}.patient-search-input-wrapper .search-icon{color:var(--text-muted, #999);flex-shrink:0;width:20px;height:20px;display:block;position:absolute!important;right:16px!important;top:50%!important;transform:translateY(-50%)!important;pointer-events:none;margin:0!important;left:auto!important}.patient-search-input-wrapper .search-loading{display:flex;align-items:center;position:absolute!important;right:16px!important;top:50%!important;transform:translateY(-50%)!important;margin:0!important;left:auto!important}.patient-search-container .spinner-small{width:16px;height:16px;border:2px solid var(--border-color, #e0e0e0);border-top-color:var(--primary-color, #3498db);border-radius:50%;animation:spin .6s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.patient-search-input-wrapper .clear-search-btn{background:none;border:none;cursor:pointer;padding:4px;display:flex;align-items:center;justify-content:center;color:var(--text-muted, #999);transition:color .2s ease;flex-shrink:0;position:absolute!important;right:16px!important;top:50%!important;transform:translateY(-50%)!important;margin:0!important;left:auto!important}.patient-search-container .clear-search-btn:hover{color:var(--text-color, #333)}.patient-search-results{position:absolute;top:calc(100% + 8px);left:0;right:0;background:#fff;border:1px solid var(--border-color, #e0e0e0);border-radius:12px;box-shadow:0 4px 12px #00000026;max-height:400px;overflow-y:auto;z-index:1000;animation:slideDown .2s ease}.search-results-header{padding:8px 16px;font-size:12px;font-weight:600;color:var(--text-muted, #666);text-transform:uppercase;letter-spacing:.5px;border-bottom:1px solid var(--border-color, #f0f0f0);background:var(--light-gray, #f8f9fa);position:sticky;top:0;z-index:1}.patient-search-result-item{display:flex;align-items:center;padding:12px 16px;cursor:pointer;transition:background-color .2s ease;border-bottom:1px solid var(--border-color, #f0f0f0)}.patient-search-result-item:last-child{border-bottom:none}.patient-search-result-item:hover,.patient-search-result-item.selected{background-color:var(--hover-bg, #f5f5f5)}.patient-result-avatar{width:40px;height:40px;border-radius:50%;background:linear-gradient(135deg,var(--primary-color, #3498db),var(--secondary-color, #2ecc71));color:#fff;display:flex;align-items:center;justify-content:center;font-weight:600;font-size:16px;margin-right:12px;flex-shrink:0}.patient-result-info{flex:1;min-width:0}.patient-result-name{font-weight:600;font-size:15px;color:var(--text-color, #333);margin-bottom:4px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.patient-result-details{font-size:13px;color:var(--text-muted, #666);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.patient-search-no-results{padding:24px 16px;text-align:center;color:var(--text-muted, #999);font-size:14px}@media(max-width:768px){.patient-search-input-wrapper{padding:10px 14px}.patient-search-input{font-size:14px}.patient-search-results{max-height:300px}.patient-search-result-item{padding:10px 14px}.patient-result-avatar{width:36px;height:36px;font-size:14px}.patient-result-name{font-size:14px}.patient-result-details{font-size:12px}}.patient-profile{background-color:var(--white);border-radius:var(--radius);box-shadow:var(--shadow);width:100%;height:100%;max-height:90vh;overflow-y:auto}.profile-header{display:flex;align-items:center;padding:24px;border-bottom:1px solid var(--medium-gray);position:relative}@media(max-width:768px){.profile-header{flex-direction:column;align-items:flex-start;gap:16px;padding:16px}.profile-actions{width:100%;justify-content:space-between}.patient-contact-info{flex-direction:column;gap:8px}}.patient-profile .patient-contact-info .email-item .email-text{margin-right:10px}@media(max-width:480px){.profile-header{padding:12px;gap:12px}.patient-header-details h2{font-size:20px}.profile-actions{border-top:none!important;flex-direction:column;gap:8px}.profile-actions .btn{width:100%}}.patient-avatar-large{width:80px;height:80px;border-radius:50%;overflow:hidden;margin-right:var(--spacing-lg);border:3px solid var(--primary-color)}.patient-avatar-large .avatar-placeholder{width:100%;height:100%;background-color:var(--primary-color);color:var(--white);display:flex;align-items:center;justify-content:center;font-weight:600;font-size:24px;border-radius:50%}.patient-header-details{flex:1}.patient-header-details h2{margin-bottom:var(--spacing-xs);font-size:24px}.patient-meta{color:var(--text-light);margin-bottom:var(--spacing-sm)}.patient-meta span{margin-right:var(--spacing-md)}.patient-contact-info{display:flex;gap:var(--spacing-md)}.contact-item{display:flex;align-items:center}.contact-item svg{margin-right:var(--spacing-xs);color:var(--primary-color)}.profile-actions{display:flex;gap:var(--spacing-sm);border-top:none}.profile-actions .btn-outline{border:2px solid var(--primary-color);color:var(--primary-color)!important;background-color:transparent;font-weight:500;padding:10px 20px;transition:all .3s ease;text-decoration:none;cursor:pointer}.profile-actions .btn-outline:hover{background-color:var(--primary-color)!important;color:var(--white)!important;border-color:var(--primary-color);transform:translateY(-1px);box-shadow:0 4px 8px rgba(var(--primary-rgb),.3)}.profile-actions .btn-outline:focus{outline:none;box-shadow:0 0 0 3px rgba(var(--primary-rgb),.2)}.profile-actions .btn-outline:active{transform:translateY(0);box-shadow:0 2px 4px rgba(var(--primary-rgb),.3)}.close-profile{position:absolute;top:var(--spacing-md);right:var(--spacing-md);background:none;border:none;color:var(--dark-gray);cursor:pointer;transition:var(--transition)}.close-profile:hover{color:var(--danger-color)}.profile-tabs{display:flex;border-bottom:1px solid var(--medium-gray);overflow-x:auto;white-space:nowrap}.profile-tabs button{padding:var(--spacing-md) var(--spacing-lg);background:none;border:none;border-bottom:3px solid transparent;font-weight:500;color:var(--text-light);cursor:pointer;transition:var(--transition)}.profile-tabs button:hover{color:var(--primary-color)}.profile-tabs button.active{color:var(--primary-color);border-bottom-color:var(--primary-color)}.profile-content{padding:var(--spacing-lg);width:100%;max-width:100%}.overview-tab,.appointments-tab,.files-tab,.billing-tab,.case-history-tab,.letters-tab{width:100%;max-width:100%}.vitals-section{margin-bottom:var(--spacing-lg)}.case-history-header{display:flex;flex-direction:column;gap:4px;margin-bottom:var(--spacing-md)}.case-history-actions{display:flex;justify-content:flex-end;margin-bottom:var(--spacing-sm)}.case-history-header h3{margin:0}.case-history-subtitle{color:var(--text-light);font-size:.95rem}.case-history-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:var(--spacing-md)}.case-card{border:1px solid var(--medium-gray);border-radius:var(--radius-md);padding:var(--spacing-md);background:var(--white);box-shadow:0 1px 2px #0000000a;display:flex;flex-direction:column;gap:var(--spacing-sm)}.case-card-header{display:flex;align-items:center;justify-content:space-between;gap:var(--spacing-sm);flex-wrap:wrap}.case-card-datetime{display:flex;align-items:baseline;gap:var(--spacing-sm)}.case-date{font-weight:600}.case-time{color:var(--text-light);font-size:.9rem}.case-card-meta{color:var(--text-light);font-size:.95rem}.case-card-notes{line-height:1.6;color:var(--text-color);white-space:pre-wrap}.link-button{align-self:flex-start;background:none;border:none;color:var(--primary-color);padding:0;cursor:pointer}.link-button:hover{text-decoration:underline}@media(max-width:680px){.case-history-list{grid-template-columns:1fr}}.vitals-grid{display:grid;grid-template-columns:repeat(1,1fr);gap:var(--spacing-md);margin-top:var(--spacing-md)}.vital-card{background-color:var(--light-gray);border-radius:var(--radius);padding:var(--spacing-md);display:flex;align-items:center}.vital-icon{width:40px;height:40px;border-radius:50%;display:flex;align-items:center;justify-content:center;margin-right:var(--spacing-md);color:#fff}.blood-pressure{background-color:var(--primary-color)}.heart-rate{background-color:var(--danger-color)}.temperature{background-color:var(--warning-color)}.weight{background-color:var(--accent-color)}.vital-data{flex:1}.vital-value{font-size:18px;font-weight:600}.vital-label{font-size:12px;color:var(--text-light)}.overview-grid{display:grid;grid-template-columns:repeat(1,1fr);gap:var(--spacing-md)}.next-appointment{padding:var(--spacing-md);background-color:var(--light-gray);border-radius:var(--radius);margin-top:var(--spacing-sm)}.appointment-date{font-weight:600;font-size:16px;margin-bottom:var(--spacing-xs)}.appointment-type{font-size:14px}.appointment-doctor{font-size:12px;color:var(--text-light);margin-top:var(--spacing-xs)}.no-appointment{text-align:center;padding:var(--spacing-md)}.medications-list{list-style:none;padding:0}.medication-item{padding:var(--spacing-sm);border-bottom:1px solid var(--medium-gray)}.medication-item:last-child{border-bottom:none}.medication-name{font-weight:500}.medication-condition,.medication-since{font-size:12px;color:var(--text-light)}.allergies-content{padding:var(--spacing-sm) 0}.allergies-content h4{font-size:16px;margin-bottom:var(--spacing-sm)}.notes-section{margin-top:var(--spacing-md);padding-top:var(--spacing-md);border-top:1px solid var(--medium-gray)}.insurance-info{padding:var(--spacing-sm) 0}.insurance-info div{margin-bottom:var(--spacing-sm)}.status-active{color:var(--secondary-color);font-weight:500}.medical-table,.treatment-table,.billing-table{width:100%;border-collapse:collapse;margin-top:var(--spacing-md)}.medical-table th,.treatment-table th,.billing-table th{text-align:left;padding:var(--spacing-sm);background-color:var(--light-gray);font-weight:600}.medical-table td,.treatment-table td,.billing-table td{padding:var(--spacing-sm);border-bottom:1px solid var(--medium-gray)}.no-data-message{padding:var(--spacing-lg);text-align:center;color:var(--text-light)}.appointments-header,.files-header,.billing-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--spacing-md)}.appointment-filters,.billing-filters{display:flex;gap:var(--spacing-md);margin-bottom:var(--spacing-md)}.date-range-filters{display:flex;align-items:end;gap:var(--spacing-md);flex-wrap:wrap}.filter-group{display:flex;flex-direction:column;gap:var(--spacing-xs)}.filter-group label{font-size:12px;font-weight:500;color:var(--text-light);text-transform:uppercase;letter-spacing:.5px}.filter-group input[type=date]{padding:var(--spacing-sm);border:1px solid var(--medium-gray);border-radius:var(--radius-sm);font-size:14px;background-color:var(--white);color:var(--text-dark);min-width:140px}.filter-group input[type=date]:focus{outline:none;border-color:var(--primary-color);box-shadow:0 0 0 2px rgba(var(--primary-color-rgb),.1)}@media(max-width:768px){.date-range-filters{flex-direction:column;align-items:stretch;gap:var(--spacing-sm)}.filter-group{width:100%}.filter-group input[type=date]{width:100%;min-width:auto}}.appointment-history-item{display:flex;padding:var(--spacing-md);border-bottom:1px solid var(--medium-gray)}.appointment-history-item:last-child{border-bottom:none}.appointment-date-time{min-width:100px;margin-right:var(--spacing-md)}.appointment-details{flex:1}.appointment-type{font-weight:500}.appointment-notes{font-size:12px;color:var(--text-light);margin-top:var(--spacing-xs)}.files-grid{display:grid;grid-template-columns:repeat(1,1fr);gap:var(--spacing-md)}.file-card{display:flex;align-items:center;background-color:var(--light-gray);border-radius:var(--radius);padding:var(--spacing-md)}.file-icon{width:40px;height:40px;display:flex;align-items:center;justify-content:center;margin-right:var(--spacing-md);color:var(--primary-color)}.file-details{flex:1}.file-name{font-weight:500}.file-meta{font-size:12px;color:var(--text-light)}.file-type{margin-right:var(--spacing-md)}.file-actions{display:flex;gap:var(--spacing-sm)}.billing-summary{margin-bottom:var(--spacing-md)}.summary-title{font-weight:600;margin-bottom:var(--spacing-md);font-size:18px}.billing-stats{display:grid;grid-template-columns:repeat(2,1fr);gap:var(--spacing-md)}.billing-stat{padding:var(--spacing-md);background-color:var(--light-gray);border-radius:var(--radius);text-align:center}.billing-stat .stat-value{font-size:20px;font-weight:600;margin-bottom:var(--spacing-xs)}.billing-stat .stat-label{font-size:14px;color:var(--text-light)}@media(min-width:576px){.vitals-grid,.overview-grid,.files-grid{grid-template-columns:repeat(2,1fr)}}@media(min-width:992px){.vitals-grid,.billing-stats{grid-template-columns:repeat(4,1fr)}}.modal-container{width:900px;max-width:95vw;max-height:90vh;margin:auto}.modal-content{width:900px;min-width:900px;max-height:90vh;overflow-y:auto;border-radius:var(--radius);box-shadow:var(--shadow-strong);background:var(--white);padding:var(--spacing-lg)}@media(max-width:768px){.modal-content{width:100%;min-width:auto;max-width:100%;max-height:95vh;padding:var(--spacing-md)}.modal-container{width:100%;max-width:95vw;margin:10px}}@media(max-width:480px){.modal-content{width:100%;min-width:auto;max-width:100%;max-height:98vh;padding:var(--spacing-sm)}.modal-container{width:100%;max-width:98vw;margin:5px}}.files-tab{padding:24px}.files-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:24px}.files-header h3{margin:0;color:var(--dark-gray);font-size:1.5rem;font-weight:600}.files-filters{display:flex;gap:20px;margin-bottom:24px;padding:16px;background:#f9fafb;border-radius:8px;border:1px solid #e5e7eb}.filter-group{display:flex;flex-direction:column;gap:6px;min-width:200px}.filter-group label{font-size:14px;font-weight:500;color:#374151}.filter-group select,.filter-group input{padding:8px 12px;border:1px solid #d1d5db;border-radius:6px;font-size:14px;background:#fff}.filter-group select:focus,.filter-group input:focus{outline:none;border-color:#667eea;box-shadow:0 0 0 3px #667eea1a}.files-content{min-height:200px}.loading-files{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:40px;color:#6b7280}.spinner{width:32px;height:32px;border:3px solid #e5e7eb;border-top:3px solid #667eea;border-radius:50%;animation:spin 1s linear infinite;margin-bottom:12px}.files-list{display:flex;flex-direction:column;gap:16px}.no-files{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:60px 20px;text-align:center;color:#6b7280}.no-files svg{color:#d1d5db;margin-bottom:16px}.no-files h3{margin:0 0 8px;color:#374151;font-size:1.25rem;font-weight:600}.no-files p{margin:0 0 20px;font-size:14px;line-height:1.5}@media(max-width:768px){.files-tab{padding:16px}.files-header{flex-direction:column;align-items:flex-start;gap:16px}.files-filters{flex-direction:column;gap:16px}.filter-group{min-width:auto}}.letters-tab{padding:24px}.letters-header{display:flex;flex-direction:column;gap:4px;margin-bottom:24px}.letters-header h3{margin:0;color:var(--dark-gray);font-size:1.5rem;font-weight:600}.letters-subtitle{color:var(--medium-gray);font-size:.9rem}.letters-list{display:flex;flex-direction:column;gap:16px}.letter-card{border:1px solid var(--light-gray);border-radius:8px;padding:16px;transition:all .2s ease;background:var(--white);display:flex;gap:12px}.letter-card:hover{border-color:var(--primary-color);box-shadow:0 2px 8px #0000001a;transform:translateY(-2px)}.letter-card-content-wrapper{flex:1;cursor:pointer}.letter-card-actions{display:flex;align-items:center;flex-shrink:0}.letter-card-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:12px;gap:16px}.letter-card-header h4{margin:0;color:var(--dark-gray);font-size:1.1rem;font-weight:600;flex:1}.letter-date{color:var(--medium-gray);font-size:.875rem;white-space:nowrap}.letter-card-content{color:var(--dark-gray);font-size:.95rem;line-height:1.5}.letter-card-content p{margin:0}.letter-details-modal{max-width:800px;width:100%}.letter-meta{margin-bottom:24px;padding-bottom:16px;border-bottom:1px solid var(--light-gray)}.letter-meta-item{color:var(--medium-gray);font-size:.9rem}.letter-content{margin-top:16px}.letter-content-body{color:var(--dark-gray);line-height:1.8;font-size:1rem}.letter-content-body p{margin:0 0 12px}@media(max-width:768px){.letters-tab{padding:16px}.letter-card-header{flex-direction:column;align-items:flex-start;gap:8px}.letter-date{font-size:.8rem}}.patient-edit-modal{background:var(--white);border-radius:var(--radius);box-shadow:var(--shadow-strong);width:100%;max-width:800px;max-height:90vh;overflow-y:auto;position:relative}.patient-edit-header{display:flex;justify-content:space-between;align-items:center;padding:var(--spacing-lg);border-bottom:1px solid var(--medium-gray);position:sticky;top:0;background:var(--white);z-index:10}.patient-edit-header h2{margin:0;font-size:24px;font-weight:600;color:var(--text-color)}.patient-edit-content{padding:var(--spacing-lg)}.form-section{margin-bottom:var(--spacing-xl)}.form-section h4{margin:0 0 var(--spacing-md) 0;font-size:18px;font-weight:600;color:var(--text-color);border-bottom:2px solid var(--primary-color);padding-bottom:var(--spacing-sm)}.form-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:var(--spacing-md);margin-bottom:var(--spacing-md)}.form-group label{display:block;font-weight:600;color:#000!important;margin-bottom:var(--spacing-sm);font-size:14px}.form-input{width:100%;padding:var(--spacing-md);border:2px solid var(--medium-gray);border-radius:var(--radius);font-size:16px;transition:var(--transition);background:var(--white);box-sizing:border-box}.form-input:focus{border-color:var(--primary-color);box-shadow:0 0 0 2px #3498db33;outline:none}.form-input.error{border-color:var(--danger-color);box-shadow:0 0 0 2px #e74c3c33}.form-input[type=number]{-moz-appearance:textfield}.form-input[type=number]::-webkit-outer-spin-button,.form-input[type=number]::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}textarea.form-input{resize:vertical;min-height:80px}.patient-edit-actions{display:flex;justify-content:flex-end;gap:var(--spacing-md);padding-top:var(--spacing-lg);border-top:1px solid var(--medium-gray);margin-top:var(--spacing-xl)}.btn{display:inline-flex;align-items:center;justify-content:center;padding:var(--spacing-md) var(--spacing-lg);border-radius:var(--radius);font-weight:500;transition:var(--transition);border:none;cursor:pointer;font-size:16px;gap:var(--spacing-sm);min-width:120px}.btn-secondary:hover:not(:disabled){background-color:var(--medium-gray);color:var(--text-color)}@media(max-width:768px){.modal-content{width:100%;min-width:auto;max-height:95vh;padding:var(--spacing-md)}.patient-edit-header h2{font-size:1.3rem}.close-button{width:28px;height:28px;font-size:20px}.form-section{margin-bottom:var(--spacing-lg)}.form-section h4{font-size:1.1rem;margin-bottom:var(--spacing-sm)}.form-group{margin-bottom:var(--spacing-sm)}.form-group label{font-size:.9rem}.form-input{padding:var(--spacing-sm);font-size:.9rem}.patient-edit-actions{flex-direction:column;gap:var(--spacing-sm);padding:var(--spacing-md)}.patient-edit-actions .btn{width:100%;padding:var(--spacing-sm);font-size:.9rem}.patient-edit-modal{max-width:100%;margin:var(--spacing-sm)}.patient-edit-header{padding:var(--spacing-md)}.patient-edit-header h2{font-size:20px}.patient-edit-content{padding:var(--spacing-md)}.form-row{grid-template-columns:1fr;gap:var(--spacing-sm)}.patient-edit-actions{flex-direction:column}.btn{width:100%}}@media(max-width:480px){.modal-content{width:100%;min-width:auto;max-height:98vh;padding:var(--spacing-sm)}.patient-edit-header{padding:var(--spacing-sm)}.patient-edit-header h2{font-size:1.2rem}.close-button{width:26px;height:26px;font-size:18px}.patient-edit-content{padding:var(--spacing-sm)}.form-section h4{font-size:1rem}.form-group label{font-size:.8rem}.form-input{padding:var(--spacing-xs);font-size:16px}.patient-edit-actions{padding:var(--spacing-sm)}.patient-edit-actions .btn{font-size:.8rem;padding:var(--spacing-xs)}}@media(prefers-color-scheme:dark){.patient-edit-modal{background:var(--white)!important;color:var(--text-color)!important}.patient-edit-header{background:var(--white)!important;border-bottom-color:var(--medium-gray)!important}.form-input{background:var(--white)!important;border-color:var(--medium-gray)!important;color:var(--text-color)!important}.form-input:focus{border-color:var(--primary-color)!important}.btn-secondary{background:var(--light-gray)!important;border-color:var(--medium-gray)!important;color:var(--text-color)!important}.btn-secondary:hover:not(:disabled){background:var(--medium-gray)!important}.form-section h4{border-bottom-color:var(--primary-color)!important}.patient-edit-actions{border-color:var(--medium-gray)!important}}@media(prefers-reduced-motion:reduce){.btn,.form-input,.close-button{transition:none}.spinner{animation:none}}.btn:focus,.form-input:focus,.close-button:focus{outline:2px solid var(--primary-color);outline-offset:2px}.searchable-dropdown{position:relative;width:100%}.dropdown-input{width:100%;padding:10px 35px 10px 12px;border:1px solid #ddd;border-radius:4px;font-size:14px;background:#fff;cursor:pointer}.dropdown-input:focus{outline:none;border-color:#007bff;box-shadow:0 0 0 2px #007bff40}.dropdown-input:disabled{background-color:#f5f5f5;cursor:not-allowed}.dropdown-arrow{position:absolute;right:10px;top:50%;transform:translateY(-50%);cursor:pointer;color:#666;font-size:12px;transition:transform .2s}.dropdown-arrow:hover{color:#333}.dropdown-error{color:#dc3545;font-size:12px;margin-top:4px}.dropdown-options{position:absolute;top:100%;left:0;right:0;background:#fff;border:1px solid #ddd;border-top:none;border-radius:0 0 4px 4px;max-height:200px;overflow-y:auto;z-index:1000;box-shadow:0 2px 4px #0000001a}.dropdown-option{padding:10px 12px;cursor:pointer;border-bottom:1px solid #f0f0f0;transition:background-color .2s}.dropdown-option:hover{background-color:#f8f9fa}.dropdown-option.selected{background-color:#e3f2fd;color:#1976d2}.dropdown-loading{color:#007bff}.dropdown-no-results{color:#dc3545}.dropdown-options::-webkit-scrollbar-track{background:#f1f1f1}.dropdown-options::-webkit-scrollbar-thumb{background:#c1c1c1;border-radius:3px}.dropdown-options::-webkit-scrollbar-thumb:hover{background:#a8a8a8}.teeth-modal-overlay{position:fixed;inset:0;background:#000000b3;display:flex;align-items:center;justify-content:center;z-index:1000;padding:20px}.teeth-modal{background:#fff;border-radius:16px;max-width:-moz-fit-content;max-width:fit-content;width:100%;max-height:90vh;overflow-y:auto;box-shadow:0 20px 60px #0000004d;position:relative}.teeth-modal-header{display:flex;justify-content:space-between;align-items:center;padding:10px 32px 16px;border-bottom:2px solid #f3f4f6;background:linear-gradient(135deg,#f8fafc,#e2e8f0);border-radius:16px 16px 0 0}.teeth-modal-header h3{margin:0;color:#1e293b;font-size:1.5rem;font-weight:700}.close-button{background:#ef4444;color:#fff;border:none;width:32px;height:32px;border-radius:50%;font-size:20px;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .2s ease}.close-button:hover{background:#dc2626;transform:scale(1.1)}.teeth-modal-content{padding:10px 32px}.teeth-grid{display:grid;grid-template-columns:1fr 1fr;gap:40px;margin-bottom:32px}.teeth-quadrant{text-align:center}.quadrant-title{margin:0 0 20px;font-size:1.25rem;font-weight:700;color:#374151;text-transform:uppercase;letter-spacing:1px}.teeth-row{display:flex;justify-content:center;gap:8px;flex-wrap:wrap}.tooth-button{position:relative;width:50px;height:60px;border:none;border-radius:8px 8px 12px 12px;background:linear-gradient(135deg,#fefefe,#f3f4f6);cursor:pointer;transition:all .3s ease;display:flex;flex-direction:column;align-items:center;justify-content:center;box-shadow:0 2px 4px #0000001a,inset 0 1px #fffc,inset 0 -1px #0000001a;border:2px solid #e5e7eb;overflow:hidden}.tooth-button:before{content:"";position:absolute;top:0;left:0;right:0;height:30%;background:linear-gradient(135deg,#fefefe,#f8fafc);border-radius:6px 6px 0 0}.tooth-button:after{content:"";position:absolute;bottom:0;left:0;right:0;height:20%;background:linear-gradient(135deg,#f1f5f9,#e2e8f0);border-radius:0 0 10px 10px}.tooth-button:hover{transform:translateY(-3px) scale(1.05);box-shadow:0 8px 25px #00000026,inset 0 1px #ffffffe6,inset 0 -1px #0000001a;border-color:#3b82f6}.tooth-button.selected{background:linear-gradient(135deg,#dbeafe,#bfdbfe);border-color:#2563eb;box-shadow:0 4px 15px #3b82f64d,inset 0 1px #ffffffe6,inset 0 -1px #0000001a;transform:translateY(-2px)}.tooth-button.selected:before{background:linear-gradient(135deg,#dbeafe,#bfdbfe)}.tooth-button.selected:after{background:linear-gradient(135deg,#93c5fd,#7dd3fc)}.tooth-notation{font-size:1.2rem;font-weight:700;color:#1e293b;z-index:2;position:relative;margin-bottom:2px}.tooth-position{font-size:.7rem;font-weight:600;color:#64748b;z-index:2;position:relative}.teeth-quadrant.ur .tooth-button{background:linear-gradient(135deg,#fefefe,#fef7ff)}.teeth-quadrant.ul .tooth-button{background:linear-gradient(135deg,#fefefe,#f0f9ff)}.teeth-quadrant.ll .tooth-button{background:linear-gradient(135deg,#fefefe,#f0fdf4)}.teeth-quadrant.lr .tooth-button{background:linear-gradient(135deg,#fefefe,#fef2f2)}.teeth-quadrant.ur .tooth-button.selected{background:linear-gradient(135deg,#f3e8ff,#e9d5ff);border-color:#9333ea}.teeth-quadrant.ul .tooth-button.selected{background:linear-gradient(135deg,#dbeafe,#bfdbfe);border-color:#2563eb}.teeth-quadrant.ll .tooth-button.selected{background:linear-gradient(135deg,#dcfce7,#bbf7d0);border-color:#16a34a}.teeth-quadrant.lr .tooth-button.selected{background:linear-gradient(135deg,#fee2e2,#fecaca);border-color:#dc2626}.teeth-quadrant.ur .tooth-button.selected:before{background:linear-gradient(135deg,#f3e8ff,#e9d5ff)}.teeth-quadrant.ul .tooth-button.selected:before{background:linear-gradient(135deg,#dbeafe,#bfdbfe)}.teeth-quadrant.ll .tooth-button.selected:before{background:linear-gradient(135deg,#dcfce7,#bbf7d0)}.teeth-quadrant.lr .tooth-button.selected:before{background:linear-gradient(135deg,#fee2e2,#fecaca)}.teeth-quadrant.ur .tooth-button.selected:after{background:linear-gradient(135deg,#e9d5ff,#d8b4fe)}.teeth-quadrant.ul .tooth-button.selected:after{background:linear-gradient(135deg,#93c5fd,#7dd3fc)}.teeth-quadrant.ll .tooth-button.selected:after{background:linear-gradient(135deg,#86efac,#4ade80)}.teeth-quadrant.lr .tooth-button.selected:after{background:linear-gradient(135deg,#fca5a5,#f87171)}.selected-teeth-info{background:#f8fafc;border:2px solid #e2e8f0;border-radius:12px;padding:24px;margin-bottom:24px}.selected-teeth-info h4{margin:0 0 16px;color:#1e293b;font-size:1.1rem;font-weight:600}.selected-teeth-list{display:flex;flex-wrap:wrap;gap:8px}.selected-tooth-tag{background:linear-gradient(135deg,#3b82f6,#1d4ed8);color:#fff;padding:6px 12px;border-radius:20px;font-size:.875rem;font-weight:500;box-shadow:0 2px 4px #3b82f633}.no-teeth-selected{color:#6b7280;font-style:italic;margin:0}.teeth-modal-actions{display:flex;gap:16px;justify-content:flex-end;padding:24px 32px;border-top:2px solid #f3f4f6;background:#f8fafc;border-radius:0 0 16px 16px}.btn{padding:12px 24px;border:none;border-radius:8px;font-size:14px;font-weight:600;cursor:pointer;transition:all .2s ease;min-width:120px}.btn-primary{background:linear-gradient(135deg,#10b981,#059669);color:#fff}.btn-primary:hover{background:linear-gradient(135deg,#059669,#047857);transform:translateY(-2px);box-shadow:0 8px 25px #10b9814d}.btn-outline{background:#fff;color:#6b7280;border:2px solid #d1d5db}.btn-outline:hover{background:#f9fafb;border-color:#9ca3af;color:#374151}@media(max-width:768px){.teeth-modal{margin:20px;max-height:95vh}.teeth-modal-header{padding:20px 24px 16px}.teeth-modal-header h3{font-size:1.25rem}.teeth-modal-content{padding:24px}.teeth-grid{grid-template-columns:1fr;gap:32px}.teeth-row{gap:6px}.tooth-button{width:45px;height:55px}.tooth-notation{font-size:1.1rem}.teeth-modal-actions{padding:20px 24px;flex-direction:column}.btn{width:100%}}@media(max-width:480px){.teeth-modal{margin:10px}.teeth-modal-header{padding:16px 20px 12px}.teeth-modal-content{padding:20px}.tooth-button{width:40px;height:50px}.tooth-notation{font-size:1rem}.tooth-position{font-size:.65rem}.selected-teeth-info{padding:20px}}@keyframes toothSelect{0%{transform:scale(1)}50%{transform:scale(1.1)}to{transform:scale(1.05)}}.tooth-button.selected{animation:toothSelect .3s ease-out}.tooth-button:focus{outline:3px solid #3b82f6;outline-offset:2px}.btn:focus{outline:3px solid #3b82f6;outline-offset:2px}.appointment-form{max-width:800px;margin:0 auto;padding:20px}.form-group label{display:block;margin-bottom:8px;font-weight:600;color:#374151}.form-control,.form-group input,.form-group select,.form-group textarea{width:100%;padding:10px 12px;border:1px solid #d1d5db;border-radius:6px;font-size:14px;transition:border-color .2s ease}.form-control:focus,.form-group input:focus,.form-group select:focus,.form-group textarea:focus{outline:none;border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f61a}.notes-header label{margin-bottom:0;font-weight:600;color:#374151}.teeth-buttons{display:flex;gap:8px;flex-shrink:0}.form-group textarea{width:100%;resize:vertical;min-height:80px}.btn-detail-teeth{background:linear-gradient(135deg,#10b981,#059669);color:#fff;border:none;padding:8px;border-radius:6px;font-size:1.2rem;font-weight:500;cursor:pointer;transition:all .2s ease;white-space:nowrap;height:32px;width:40px;display:flex;align-items:center;justify-content:center;position:relative}.btn-detail-teeth .tooth-count{position:absolute;top:-6px;right:-6px;background:#ef4444;color:#fff;font-size:.7rem;font-weight:700;border-radius:50%;width:18px;height:18px;display:flex;align-items:center;justify-content:center;border:2px solid white;box-shadow:0 2px 4px #0003}.btn-clear-teeth{background:linear-gradient(135deg,#ef4444,#dc2626);color:#fff;border:none;padding:8px;border-radius:6px;font-size:1.2rem;font-weight:500;cursor:pointer;transition:all .2s ease;white-space:nowrap;height:32px;width:40px;display:flex;align-items:center;justify-content:center}.btn-clear-teeth:hover{background:linear-gradient(135deg,#dc2626,#b91c1c);transform:translateY(-1px) scale(1.05);box-shadow:0 4px 12px #ef44444d}.btn-detail-teeth:hover{background:linear-gradient(135deg,#059669,#047857);transform:translateY(-1px) scale(1.05);box-shadow:0 4px 12px #10b9814d}.btn-detail-teeth:hover .tooth-count{transform:scale(1.1);box-shadow:0 3px 6px #0000004d}.btn-detail-teeth:active{transform:translateY(0)}.time-slot-container{position:relative}.time-slot-row{display:flex;gap:12px;align-items:flex-start}.time-slot-row select{flex:1}.btn-refresh-slots{background:linear-gradient(135deg,#3b82f6,#1d4ed8);color:#fff;border:none;padding:8px 12px;border-radius:6px;cursor:pointer;transition:all .2s ease;flex-shrink:0;height:38px;display:flex;align-items:center;justify-content:center;min-width:40px}.btn-refresh-slots:hover{background:linear-gradient(135deg,#2563eb,#1e40af);transform:translateY(-1px);box-shadow:0 4px 12px #3b82f64d}.btn-refresh-slots:disabled{background:#9ca3af;cursor:not-allowed;transform:none;box-shadow:none}.refresh-icon{font-size:16px;font-weight:700}.refresh-icon.loading{animation:spin 1s linear infinite}.available-slots-info{background:#f0f9ff;border:1px solid #bae6fd;border-radius:6px;padding:12px 16px;margin-top:12px;color:#0369a1;font-size:14px;font-weight:500}.validation-error{color:#dc2626;font-size:14px;margin-top:8px;padding:8px 12px;background:#fef2f2;border:1px solid #fecaca;border-radius:6px}.form-control.error,.form-group input.error,.form-group select.error,.form-group textarea.error{border-color:#dc2626}.form-actions{display:flex;gap:12px;justify-content:flex-end;margin-top:30px;padding-top:20px;border-top:1px solid #e5e7eb}.btn{padding:12px 24px;border:none;border-radius:6px;font-size:14px;font-weight:500;cursor:pointer;transition:all .2s ease;min-width:100px}.btn-primary{background:linear-gradient(135deg,#3b82f6,#1d4ed8);color:#fff}.btn-primary:hover{background:linear-gradient(135deg,#2563eb,#1e40af);transform:translateY(-1px);box-shadow:0 4px 12px #3b82f64d}.btn-primary:disabled{background:#9ca3af;cursor:not-allowed;transform:none;box-shadow:none}.btn-outline{background:#fff;color:#6b7280;border:1px solid #d1d5db}.btn-outline:hover{background:#f9fafb;border-color:#9ca3af}.opd-availability{background:#f8fafc;border:1px solid #e2e8f0;border-radius:8px;padding:16px;margin-bottom:20px}.opd-availability h4{margin:0 0 16px;color:#374151;font-size:1rem;font-weight:600}.opd-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:12px}.opd-item{background:#fff;border:2px solid #e5e7eb;border-radius:6px;padding:12px 8px;text-align:center;cursor:pointer;transition:all .2s ease;position:relative}.opd-item:hover{border-color:#3b82f6;transform:translateY(-2px);box-shadow:0 4px 12px #3b82f633}.opd-item.selected{border-color:#3b82f6;background:#eff6ff;color:#1d4ed8;font-weight:600}.opd-item.available{border-color:#10b981;background:#f0fdf4}.opd-item.busy{border-color:#ef4444;background:#fef2f2;color:#dc2626}.opd-number{font-size:1.2rem;font-weight:600;margin-bottom:4px}.opd-status{font-size:.75rem;text-transform:uppercase;font-weight:500}@media(max-width:768px){.appointment-form{padding:16px}.form-row{grid-template-columns:1fr;gap:16px}.time-slot-row{flex-direction:column;gap:8px}.btn-refresh-slots{align-self:flex-start;margin-top:0}.notes-header{flex-direction:column;align-items:flex-start;gap:12px}.teeth-buttons{align-self:stretch;justify-content:flex-start}.btn-detail-teeth,.btn-clear-teeth{width:40px;height:32px}.form-actions{flex-direction:column;gap:8px}.btn{width:100%}.opd-grid{grid-template-columns:repeat(auto-fit,minmax(100px,1fr));gap:8px}}@media(max-width:480px){.appointment-form{padding:12px}.form-group{margin-bottom:16px}.opd-grid{grid-template-columns:repeat(2,1fr)}}.loading{opacity:.6;pointer-events:none}.loading:after{content:"";position:absolute;top:50%;left:50%;width:20px;height:20px;margin:-10px 0 0 -10px;border:2px solid #f3f3f3;border-top:2px solid #3b82f6;border-radius:50%;animation:spin 1s linear infinite}.btn:focus,.form-control:focus,.form-group input:focus,.form-group select:focus,.form-group textarea:focus{outline:2px solid #3b82f6;outline-offset:2px}@media print{.btn,.btn-detail-teeth,.btn-refresh-slots{display:none}.appointment-form{max-width:none;padding:0}}.patient-file-upload{background:#fff;border-radius:12px;box-shadow:0 4px 6px #0000001a;overflow:hidden;max-width:600px;margin:0 auto}.upload-header{display:flex;justify-content:space-between;align-items:center;padding:20px 24px;background:linear-gradient(135deg,#667eea,#764ba2);color:#fff}.upload-header h3{margin:0;font-size:1.25rem;font-weight:600}.btn-close{background:none;border:none;color:#fff;font-size:1.5rem;cursor:pointer;padding:4px 8px;border-radius:4px;transition:background-color .2s}.btn-close:hover:not(:disabled){background-color:#fff3}.btn-close:disabled{opacity:.5;cursor:not-allowed}.upload-form{padding:24px}.form-group{margin-bottom:20px}.form-group label{display:block;margin-bottom:8px;font-weight:500;color:#374151}.form-group input,.form-group select,.form-group textarea{width:100%;padding:12px;border:2px solid #e5e7eb;border-radius:8px;font-size:14px;transition:border-color .2s}.form-group input:focus,.form-group select:focus,.form-group textarea:focus{outline:none;border-color:#667eea}.file-drop-zone{border:2px dashed #d1d5db;border-radius:12px;padding:40px 20px;text-align:center;transition:all .3s ease;cursor:pointer;background:#f9fafb}.file-drop-zone:hover{border-color:#667eea;background:#f0f4ff}.file-drop-zone.drag-active{border-color:#667eea;background:#e0e7ff;transform:scale(1.02)}.drop-zone-content{display:flex;flex-direction:column;align-items:center;gap:16px}.upload-icon{color:#9ca3af;transition:color .3s}.file-drop-zone:hover .upload-icon{color:#667eea}.drop-zone-text{margin:0;color:#6b7280;font-size:16px}.tags-input{border:2px solid #e5e7eb;border-radius:8px;padding:12px;background:#fff}.tags-list{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:12px}.tag{display:inline-flex;align-items:center;background:#e0e7ff;color:#3730a3;padding:4px 8px;border-radius:16px;font-size:12px;font-weight:500}.tag-remove{background:none;border:none;color:#6b7280;margin-left:4px;cursor:pointer;padding:0;font-size:14px;line-height:1}.tag-remove:hover{color:#dc2626}.tag-input-group input{flex:1;margin:0;border:none;background:transparent;padding:4px 0}.tag-input-group input:focus{outline:none;border:none}.selected-files{margin-top:20px;padding:16px;background:#f9fafb;border-radius:8px;border:1px solid #e5e7eb}.selected-files h4{margin:0 0 12px;color:#374151;font-size:14px;font-weight:600}.files-list{display:flex;flex-direction:column;gap:8px}.file-item{display:flex;align-items:center;justify-content:space-between;padding:12px;background:#fff;border:1px solid #e5e7eb;border-radius:8px}.file-info{display:flex;align-items:center;gap:12px;flex:1}.file-icon{font-size:20px}.file-details{display:flex;flex-direction:column;gap:2px}.file-name{font-weight:500;color:#374151;font-size:14px}.file-size{font-size:12px;color:#6b7280}.btn-remove-file{background:none;border:none;color:#dc2626;cursor:pointer;padding:4px 8px;border-radius:4px;font-size:16px;transition:background-color .2s}.btn-remove-file:hover:not(:disabled){background-color:#fef2f2}.btn-remove-file:disabled{opacity:.5;cursor:not-allowed}.upload-progress{margin:20px 0;padding:16px;background:#f0f4ff;border-radius:8px;border:1px solid #c7d2fe}.progress-bar{width:100%;height:8px;background:#e5e7eb;border-radius:4px;overflow:hidden;margin-bottom:8px}.progress-fill{height:100%;background:linear-gradient(90deg,#667eea,#764ba2);transition:width .3s ease}.progress-text{font-size:14px;color:#3730a3;font-weight:500}.upload-actions{display:flex;justify-content:flex-end;gap:12px;margin-top:24px;padding-top:20px;border-top:1px solid #e5e7eb}.btn{padding:12px 24px;border-radius:8px;font-weight:500;cursor:pointer;transition:all .2s;border:none;font-size:14px}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-outline{background:#fff;color:#374151;border:2px solid #d1d5db}.btn-outline:hover:not(:disabled){background:#f9fafb;border-color:#9ca3af}.btn-primary{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff}.btn-primary:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 4px 12px #667eea66}.alert{padding:12px 16px;border-radius:8px;margin-bottom:16px;font-size:14px}.alert-error{background:#fef2f2;color:#dc2626;border:1px solid #fecaca}.alert-success{background:#f0fdf4;color:#16a34a;border:1px solid #bbf7d0}.alert pre{margin:0;white-space:pre-wrap;font-family:inherit}@media(max-width:640px){.patient-file-upload{margin:0;border-radius:0}.upload-form{padding:16px}.upload-actions{flex-direction:column}.btn{width:100%}.file-item{flex-direction:column;align-items:flex-start;gap:8px}.file-actions{align-self:flex-end}}.file-preview-modal{position:fixed;inset:0;width:100vw;height:100vh;background:#000c;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;flex-direction:column;z-index:9999;padding:20px;box-sizing:border-box;overflow:hidden;animation:modalFadeIn .2s ease-out;margin:0;border:none;outline:none;transform:translateZ(0);will-change:opacity;pointer-events:auto;isolation:isolate}.file-preview-modal *{box-sizing:border-box}.file-preview-modal{transform:translateZ(0);contain:layout style paint}@keyframes modalFadeIn{0%{opacity:0;transform:translateZ(0) scale(.95)}to{opacity:1;transform:translateZ(0) scale(1)}}.preview-header{display:flex;justify-content:space-between;align-items:center;background:#fff;padding:15px 20px;border-radius:8px 8px 0 0;box-shadow:0 2px 10px #0000001a}.file-info h3{margin:0 0 5px;font-size:18px;color:#333;word-break:break-all}.file-meta{display:flex;gap:15px;font-size:14px;color:#666}.file-meta span{padding:2px 8px;background:#f5f5f5;border-radius:4px}.preview-actions{display:flex;gap:10px}.btn-icon{width:36px;height:36px;border:none;border-radius:6px;background:#f8f9fa;cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:16px;transition:all .2s ease}.btn-icon:hover{background:#e9ecef;transform:translateY(-1px)}.preview-content{flex:1;background:#fff;border-radius:0 0 8px 8px;overflow:hidden;display:flex;align-items:center;justify-content:center;min-height:0;position:relative;max-height:calc(100vh - 120px)}.preview-loading{display:flex;flex-direction:column;align-items:center;gap:15px;color:#666;padding:2rem}.spinner{width:50px;height:50px;border:4px solid #f3f3f3;border-top:4px solid #007bff;border-radius:50%;animation:spin 1s linear infinite}.progress-bar{width:200px;height:4px;background:#f3f3f3;border-radius:2px;overflow:hidden;margin-top:1rem}.progress-fill{height:100%;background:linear-gradient(90deg,#007bff,#00d4ff);border-radius:2px;transition:width .3s ease}.preview-error{display:flex;flex-direction:column;align-items:center;gap:20px;color:#dc3545;text-align:center;padding:2rem;max-width:500px;margin:0 auto}.error-icon{font-size:3rem;opacity:.8}.preview-error h3{margin:0 0 1rem;color:#dc3545;font-size:1.5rem;font-weight:600}.preview-error p{margin:0 0 2rem;font-size:16px;color:#666;line-height:1.5}.error-actions{display:flex;gap:1rem;justify-content:center;flex-wrap:wrap}.image-preview{width:100%;height:100%;display:flex;align-items:center;justify-content:center;background:#f8f9fa}.image-preview img{max-width:100%;max-height:100%;-o-object-fit:contain;object-fit:contain;border-radius:4px;box-shadow:0 4px 12px #00000026}.pdf-preview{width:100%;height:100%}.pdf-preview iframe{width:100%;height:100%;border:none}.text-preview{width:100%;height:100%}.text-preview iframe{width:100%;height:100%;border:none}.no-preview{display:flex;flex-direction:column;align-items:center;gap:20px;text-align:center;color:#666;padding:40px}.file-icon-large{font-size:64px;opacity:.5}.no-preview h3{margin:0;font-size:20px;color:#333}.no-preview p{margin:0;font-size:16px}.btn{padding:.75rem 1.5rem;border:none;border-radius:6px;cursor:pointer;font-size:1rem;font-weight:500;transition:all .2s ease;text-decoration:none;display:inline-flex;align-items:center;gap:.5rem;margin:.25rem}.btn:hover{transform:translateY(-1px);box-shadow:0 2px 8px #00000026}.btn-primary:hover{background:#0056b3}.btn-outline{background:transparent;color:#007bff;border:2px solid #007bff}.btn-secondary:hover{background:#545b62}@media(max-width:768px){.file-preview-modal{padding:10px}.preview-header{padding:10px 15px;flex-direction:column;gap:1rem;align-items:flex-start}.file-info h3{font-size:16px}.file-meta{flex-direction:column;gap:5px}.file-meta span{font-size:12px}.error-actions,.preview-actions{flex-direction:column;align-items:center}.btn{width:100%;max-width:200px;justify-content:center}}.patient-file-card{background:#fff;border:1px solid #e5e7eb;border-radius:12px;padding:20px;margin-bottom:16px;box-shadow:0 1px 3px #0000001a;transition:all .2s ease}.patient-file-card:hover{box-shadow:0 4px 6px #0000001a;transform:translateY(-1px)}.file-error{background:#fef2f2;color:#dc2626;padding:8px 12px;border-radius:6px;margin-bottom:12px;font-size:14px;border:1px solid #fecaca}.auth-error{display:flex;align-items:center;gap:8px;background:#fff3cd;color:#856404;border:1px solid #ffeaa7;padding:12px;border-radius:6px;margin-bottom:12px}.auth-error span:first-child{font-size:16px}.auth-error .btn{margin-left:auto;padding:4px 12px;font-size:12px;background:#007bff;color:#fff;border:none;border-radius:4px;cursor:pointer;transition:background .2s}.auth-error .btn:hover{background:#0056b3}.file-header{display:flex;align-items:flex-start;gap:16px;margin-bottom:16px}.file-icon{font-size:32px;flex-shrink:0;margin-top:4px}.file-info{flex:1;min-width:0}.file-name{margin:0 0 8px;font-size:16px;font-weight:600;color:#374151;word-break:break-word;flex:auto}.file-meta{display:flex;flex-wrap:wrap;gap:12px;font-size:12px;color:#6b7280}.file-category{background:#e0e7ff;color:#3730a3;padding:2px 8px;border-radius:12px;font-weight:500}.file-size,.file-date{font-weight:500}.file-actions{display:flex;gap:8px;flex-shrink:0}.btn-icon{background:none;border:1px solid #d1d5db;color:#6b7280;padding:8px;border-radius:6px;cursor:pointer;font-size:16px;transition:all .2s;display:flex;align-items:center;justify-content:center;width:36px;height:36px}.btn-icon:hover:not(:disabled){background:#f9fafb;border-color:#9ca3af;color:#374151}.btn-icon:disabled{opacity:.5;cursor:not-allowed}.btn-icon.btn-danger:hover:not(:disabled){background:#fef2f2;border-color:#fca5a5;color:#dc2626}.file-content{margin-top:16px}.file-description{margin-bottom:12px;font-size:14px;color:#374151;line-height:1.5}.file-description strong{color:#111827;font-weight:600}.file-tags{margin-bottom:12px}.file-tags strong{display:block;margin-bottom:8px;color:#111827;font-weight:600;font-size:14px}.tags-display{display:flex;flex-wrap:wrap;gap:6px}.tags-display .tag{background:#f3f4f6;color:#374151;padding:4px 8px;border-radius:12px;font-size:12px;font-weight:500}.file-edit-form{margin-top:16px;padding:16px;background:#f9fafb;border-radius:8px;border:1px solid #e5e7eb}.file-edit-form .form-group{margin-bottom:16px}.file-edit-form label{display:block;margin-bottom:6px;font-weight:500;color:#374151;font-size:14px}.file-edit-form textarea{width:100%;padding:8px 12px;border:1px solid #d1d5db;border-radius:6px;font-size:14px;resize:vertical;min-height:60px}.file-edit-form textarea:focus{outline:none;border-color:#667eea;box-shadow:0 0 0 3px #667eea1a}.tags-edit{border:1px solid #d1d5db;border-radius:6px;padding:8px;background:#fff}.tags-edit .tags-list{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:8px}.tags-edit .tag{display:inline-flex;align-items:center;background:#e0e7ff;color:#3730a3;padding:4px 8px;border-radius:12px;font-size:12px;font-weight:500}.tags-edit .tag-remove{background:none;border:none;color:#6b7280;margin-left:4px;cursor:pointer;padding:0;font-size:12px;line-height:1}.tags-edit .tag-remove:hover{color:#dc2626}.tag-input-group{display:flex;gap:8px}.tag-input-group input{flex:1;padding:6px 8px;border:1px solid #d1d5db;border-radius:4px;font-size:12px}.tag-input-group input:focus{outline:none;border-color:#667eea}.tag-input-group .btn{padding:6px 12px;font-size:12px;background:#667eea;color:#fff;border:none;border-radius:4px;cursor:pointer}.tag-input-group .btn:hover:not(:disabled){background:#5a67d8}.tag-input-group .btn:disabled{opacity:.5;cursor:not-allowed}.edit-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:16px;padding-top:16px;border-top:1px solid #e5e7eb}.edit-actions .btn{padding:8px 16px;border-radius:6px;font-weight:500;cursor:pointer;transition:all .2s;font-size:14px}.edit-actions .btn:disabled{opacity:.5;cursor:not-allowed}.edit-actions .btn-outline{background:#fff;color:#374151;border:1px solid #d1d5db}.edit-actions .btn-outline:hover:not(:disabled){background:#f9fafb;border-color:#9ca3af}.edit-actions .btn-primary{background:#667eea;color:#fff;border:none}.edit-actions .btn-primary:hover:not(:disabled){background:#5a67d8}@media(max-width:640px){.patient-file-card{padding:16px}.file-header{flex-direction:column;gap:12px}.file-actions{align-self:flex-start}.file-meta{flex-direction:column;gap:4px}.edit-actions{flex-direction:column}.edit-actions .btn{width:100%}}.btn-icon:disabled{position:relative}.btn-icon:disabled:after{content:"";position:absolute;width:12px;height:12px;border:2px solid #e5e7eb;border-top:2px solid #667eea;border-radius:50%;animation:spin 1s linear infinite}.file-card[data-file-type=image] .file-icon{color:#10b981}.file-card[data-file-type=pdf] .file-icon{color:#dc2626}.file-card[data-file-type=document] .file-icon{color:#2563eb}.file-card[data-file-type=spreadsheet] .file-icon{color:#059669}.file-card[data-file-type=presentation] .file-icon{color:#7c3aed}.file-card[data-file-type=medical] .file-icon{color:#dc2626}.modal-backdrop{position:fixed;inset:0;background-color:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000;animation:fadeIn .2s ease-out}.modal-container{background-color:var(--white);border-radius:var(--radius);box-shadow:var(--shadow-strong);width:auto;min-width:300px;max-width:90vw;max-height:90vh;overflow-y:auto;position:relative;animation:slideIn .3s ease-out}@media(min-width:900px){.modal-container{max-width:95vw;width:auto}}.modal-close{position:absolute;top:5px;right:5px;background:none;border:none;color:var(--dark-gray);cursor:pointer;z-index:10;transition:var(--transition);padding:8px;border-radius:4px}.modal-close:hover{color:var(--danger-color)}.modal-content{padding:20px}@media(max-width:768px){.modal-container{width:95vw;max-width:95vw;max-height:95vh;margin:10px;border-radius:8px}.modal-close{top:8px;right:8px;padding:10px;background-color:#ffffffe6;border-radius:50%;box-shadow:0 2px 4px #0000001a}.modal-close svg{width:20px;height:20px}.modal-content{padding:15px;max-height:calc(95vh - 60px);overflow-y:auto;width:100%;min-width:auto}}@media(max-width:480px){.modal-container{width:98vw;max-width:98vw;max-height:98vh;margin:5px;border-radius:6px}.modal-close{top:6px;right:6px;padding:8px}.modal-close svg{width:18px;height:18px}.modal-content{max-height:calc(98vh - 50px);width:100%;min-width:auto;padding:10px}}@media(max-width:768px)and (orientation:landscape){.modal-container{max-height:85vh}.modal-content{max-height:calc(85vh - 60px);width:100%;min-width:auto;padding:var(--spacing-sm)}}@keyframes slideIn{0%{transform:translateY(-20px);opacity:0}to{transform:translateY(0);opacity:1}}.searchable-service-dropdown{position:relative;width:100%;font-family:inherit}.dropdown-input-container{position:relative;display:flex;align-items:center}.dropdown-input{width:100%;padding:12px 40px 12px 12px;border:2px solid #e2e8f0;border-radius:8px;font-size:14px;background-color:#fff;transition:all .2s ease;outline:none}.dropdown-input:focus{border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f61a}.dropdown-input:disabled{background-color:#f8fafc;cursor:not-allowed;opacity:.6}.dropdown-arrow{position:absolute;right:12px;top:50%;transform:translateY(-50%);cursor:pointer;color:#64748b;font-size:12px;transition:transform .2s ease;display:flex;align-items:center;justify-content:center;width:20px;height:20px}.dropdown-arrow:hover{color:#3b82f6}.dropdown-options{position:absolute;top:100%;left:0;right:0;background:#fff;border:2px solid #e2e8f0;border-top:none;border-radius:0 0 8px 8px;box-shadow:0 10px 25px #0000001a;max-height:300px;overflow-y:auto;z-index:1000;animation:slideDown .2s ease}@keyframes slideDown{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}.dropdown-loading{padding:16px;text-align:center;color:#64748b;display:flex;align-items:center;justify-content:center;gap:8px}.dropdown-loading .spinner{width:16px;height:16px;border:2px solid #e2e8f0;border-top:2px solid #3b82f6;border-radius:50%;animation:spin 1s linear infinite}.dropdown-no-results{padding:16px;text-align:center;color:#64748b;font-style:italic}.dropdown-option{padding:12px 16px;cursor:pointer;transition:background-color .2s ease;border-bottom:1px solid #f1f5f9}.dropdown-option:last-child{border-bottom:none}.dropdown-option:hover{background-color:#f8fafc}.dropdown-option.selected{background-color:#eff6ff;border-left:3px solid #3b82f6}.service-option{display:flex;align-items:flex-start;gap:12px}.service-icon{flex-shrink:0;width:20px;height:20px;color:#64748b;margin-top:2px}.service-details{flex:1;min-width:0}.service-name{font-weight:500;color:#1e293b;margin-bottom:4px;line-height:1.4}.service-meta{display:flex;align-items:center;gap:12px;margin-bottom:4px;font-size:12px;color:#64748b}.service-price{font-weight:600;color:#059669;background-color:#ecfdf5;padding:2px 6px;border-radius:4px}.service-duration{background-color:#fef3c7;color:#92400e;padding:2px 6px;border-radius:4px}.service-stock{background-color:#dbeafe;color:#1e40af;padding:2px 6px;border-radius:4px}.service-description{font-size:12px;color:#64748b;line-height:1.4;margin-top:4px}.custom-option{background-color:#fef3c7;border-left:3px solid #f59e0b}.custom-option:hover{background-color:#fde68a}.custom-option .service-name{color:#92400e}.custom-note{background-color:#fef3c7;color:#92400e;padding:2px 6px;border-radius:4px;font-style:italic}.dropdown-error{margin-top:4px;padding:8px 12px;background-color:#fef2f2;border:1px solid #fecaca;border-radius:6px;color:#dc2626;font-size:12px}.dropdown-options::-webkit-scrollbar{width:6px}.dropdown-options::-webkit-scrollbar-track{background:#f1f5f9;border-radius:3px}.dropdown-options::-webkit-scrollbar-thumb{background:#cbd5e1;border-radius:3px}.dropdown-options::-webkit-scrollbar-thumb:hover{background:#94a3b8}@media(max-width:768px){.dropdown-input{padding:10px 36px 10px 10px;font-size:16px}.dropdown-arrow{right:10px;width:18px;height:18px}.dropdown-options{max-height:250px}.service-option{gap:8px}.service-meta{flex-direction:column;align-items:flex-start;gap:4px}}.billing-form{max-width:800px;margin:0 auto;padding:20px;background:#fff;border-radius:8px;box-shadow:0 2px 10px #0000001a}.modal-content .billing-form{border-radius:0;box-shadow:none}@media(min-width:900px){.billing-form{max-width:none;width:100%;padding:24px 32px}.billing-form-main-left{grid-column:1;display:flex;flex-direction:column;gap:16px}.billing-form-main-right{grid-column:2;display:flex;flex-direction:column;gap:16px}.billing-form-full-width{grid-column:1 / -1}.form-row{gap:12px}.form-group{gap:4px}.form-group label{font-size:.85rem;margin-bottom:2px}.form-group input,.form-group select,.form-group textarea{padding:8px 10px;font-size:.9rem}.form-group textarea{min-height:60px}.services-section,.spent-inventory-section{margin-top:0}.billing-summary{margin-top:0;padding:16px}.summary-row{padding:6px 0;font-size:.9rem}.summary-row.total{font-size:1rem;padding-top:10px;margin-top:6px}.form-actions{margin-top:16px;padding-top:16px}.services-section,.spent-inventory-section{padding:12px}.services-header,.spent-inventory-header{margin-bottom:12px}.service-item{margin-bottom:10px}.service-content,.spent-inventory-content{padding:10px}.service-content-header,.spent-inventory-content-header{margin-bottom:8px}.billing-form h3{margin-bottom:16px;font-size:1.3rem}.form-group small.form-help{font-size:.75rem;margin-top:2px}}.billing-form h3{margin-bottom:24px;color:#333;font-size:1.5rem;font-weight:600}.billing-form form{display:flex;flex-direction:column;gap:20px}@media(min-width:900px){.billing-form form{display:grid!important;grid-template-columns:1fr 1fr;gap:24px;align-items:start}}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:16px}.form-row.three-columns{grid-template-columns:1fr 1fr 1fr}.form-group{display:flex;flex-direction:column;gap:6px}.form-group label{font-weight:500;color:#555;font-size:.9rem}.form-group input,.form-group select,.form-group textarea{padding:10px 12px;border:1px solid #ddd;border-radius:6px;font-size:.9rem;transition:border-color .2s}.form-group input:focus,.form-group select:focus,.form-group textarea:focus{outline:none;border-color:#007bff;box-shadow:0 0 0 2px #007bff1a}.disabled-input{background-color:#f5f5f5;color:#666;cursor:not-allowed}.billing-dropdown-match .dropdown-input{border:1px solid #ddd!important;border-color:#ddd!important;border-radius:6px!important;padding:10px 35px 10px 12px!important;font-size:.9rem!important;transition:border-color .2s;background-color:#fff!important;height:auto!important;min-height:auto!important;line-height:1.5!important;box-sizing:border-box!important;width:100%!important}.billing-form .form-group.appointment-link-section{padding:1.5rem;border:1px solid #e0e0e0;border-radius:6px;background-color:#fafafa}.billing-dropdown-match .dropdown-input:focus{outline:none!important;border:1px solid #007bff!important;border-color:#007bff!important;box-shadow:0 0 0 2px #007bff1a!important}.billing-dropdown-match .dropdown-input-container{width:100%;position:relative}.billing-dropdown-match .dropdown-arrow{right:12px!important}.form-help{font-size:.8rem;color:#666;margin-top:4px}.notes-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px}.teeth-buttons{display:flex;gap:8px;align-items:center}.btn-detail-teeth,.btn-clear-teeth{background:none;border:none;padding:8px 12px;cursor:pointer;font-size:16px;border-radius:6px;transition:all .2s ease;position:relative;min-width:40px;height:36px;display:flex;align-items:center;justify-content:center}.btn-detail-teeth{background:#10b981;color:#fff}.btn-detail-teeth:hover{background:#059669;transform:translateY(-1px)}.btn-clear-teeth{background:#ef4444;color:#fff}.btn-clear-teeth:hover{background:#dc2626;transform:translateY(-1px)}.tooth-count{position:absolute;top:-4px;right:-4px;background:#dc2626;color:#fff;font-size:11px;font-weight:700;padding:3px 6px;border-radius:10px;min-width:18px;text-align:center;line-height:1;border:2px solid white;box-shadow:0 2px 4px #0003}.services-section{border:1px solid #e0e0e0;border-radius:8px;padding:16px;background:#fafafa;max-height:500px;display:flex;flex-direction:column;overflow:hidden}.services-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px;flex-shrink:0}.services-list{overflow-y:auto;flex:1;min-height:0;padding-right:4px}.services-list::-webkit-scrollbar{width:8px}.services-list::-webkit-scrollbar-track{background:#f1f1f1;border-radius:4px}.services-list::-webkit-scrollbar-thumb{background:#c1c1c1;border-radius:4px}.services-list::-webkit-scrollbar-thumb:hover{background:#a8a8a8}.services-header h4{margin:0;color:#333;font-size:1.1rem;font-weight:600}.btn{padding:8px 16px;border:none;border-radius:6px;font-size:.9rem;font-weight:500;cursor:pointer;transition:all .2s;display:inline-flex;align-items:center;gap:6px}.btn-sm{padding:6px 12px;font-size:.8rem}.btn-outline{background:transparent;border:1px solid #007bff;color:#007bff}.btn-outline:hover{background:#007bff;color:#fff}.service-item{border:1px solid #ddd;border-radius:6px;margin-bottom:12px;background:#fff;overflow:hidden;flex-shrink:0}.service-header{display:flex;justify-content:space-between;align-items:center;padding:8px 12px;background:#f8f9fa;border-bottom:1px solid #e0e0e0;margin-bottom:12px}.service-header h5{margin:0;color:#333;font-size:.9rem;font-weight:600}.service-content{padding:12px}.service-content-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px}.service-number{font-size:.85rem;font-weight:600;color:#666;background:#f0f0f0;padding:4px 8px;border-radius:4px}.service-content .form-row{grid-template-columns:1fr 1fr 1fr;gap:10px;margin-top:8px}.calculated-value{padding:10px 12px;background:#f8f9fa;border:1px solid #ddd;border-radius:6px;font-weight:600;color:#333;text-align:right}.spent-inventory-section{border:1px solid #e8f4fd;border-radius:8px;padding:16px;background:#f0f9ff;margin-top:20px;max-height:500px;display:flex;flex-direction:column;overflow:hidden}.spent-inventory-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:20px;flex-wrap:wrap;gap:12px;flex-shrink:0}.inventory-list{overflow-y:auto;flex:1;min-height:0;padding-right:4px}.inventory-list::-webkit-scrollbar{width:8px}.inventory-list::-webkit-scrollbar-track{background:#f1f1f1;border-radius:4px}.inventory-list::-webkit-scrollbar-thumb{background:#c1c1c1;border-radius:4px}.inventory-list::-webkit-scrollbar-thumb:hover{background:#a8a8a8}.spent-inventory-header h4{margin:0;color:#0369a1;font-size:1.1rem;font-weight:600}.section-description{color:#0369a1;font-size:.85rem;font-style:italic;margin:0;flex-basis:100%}.spent-inventory-item{border:1px solid #bae6fd;border-radius:6px;margin-bottom:12px;background:#fff;overflow:hidden;transition:all .2s ease;box-shadow:0 1px 3px #0000000d;flex-shrink:0}.spent-inventory-item:hover{border-color:#7dd3fc;box-shadow:0 2px 8px #0000001a}.spent-inventory-content{padding:12px}.spent-inventory-content-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px}.inventory-number{font-size:.85rem;font-weight:600;color:#0369a1;background:#e0f2fe;padding:4px 8px;border-radius:4px}.spent-inventory-content .form-row{grid-template-columns:1fr 1fr 1fr;gap:10px;margin-top:8px}.stock-display,.remaining-stock{padding:10px 12px;background:#f0f9ff;border:1px solid #bae6fd;border-radius:6px;text-align:center}.stock-value,.remaining-value{display:block;font-weight:700;font-size:1.1rem;color:#0369a1}.stock-unit,.remaining-unit{display:block;font-size:.8rem;color:#0369a1;margin-top:2px}.spent-inventory-content select{background-color:#f8fafc;border-color:#bae6fd}.spent-inventory-content select:focus{border-color:#0369a1;box-shadow:0 0 0 2px #0369a11a}.spent-inventory-content select.error{border-color:#dc3545;background-color:#fef2f2}.remaining-stock{background:#fef3c7;border-color:#fbbf24}.remaining-stock.low-stock{background:#fef2f2;border-color:#f87171}.remaining-value,.remaining-unit{color:#d97706}.text-warning{color:#d97706;font-weight:500}.no-clinic-id-message{text-align:center;padding:20px;background:#fef3c7;border:1px solid #fbbf24;border-radius:6px;color:#d97706}.no-clinic-id-message p{margin:0;font-size:.9rem}.low-stock-warning{display:block;font-size:.75rem;color:#dc2626;margin-top:4px;font-weight:600}.billing-summary{background:#f8f9fa;border:1px solid #e0e0e0;border-radius:8px;padding:20px;margin-top:20px}.summary-row{display:flex;justify-content:space-between;align-items:center;padding:8px 0;border-bottom:1px solid #e0e0e0}.summary-row.total{font-weight:700;font-size:1.1rem;color:#333;border-top:2px solid #007bff;margin-top:8px;padding-top:12px}.form-actions{display:flex;justify-content:flex-end;gap:12px;margin-top:20px;padding-top:20px;border-top:1px solid #e0e0e0}.form-actions .btn{padding:10px 20px;font-size:.9rem}.form-actions .btn:not(.btn-outline){background:#007bff;color:#fff}.form-actions .btn:not(.btn-outline):hover{background:#0056b3}.form-actions .btn:disabled{opacity:.6;cursor:not-allowed}.loading{display:flex;justify-content:center;align-items:center;padding:40px;color:#666;font-size:1rem}@media(max-width:768px){.billing-form{padding:16px;margin:10px}.form-row{grid-template-columns:1fr;gap:12px}.form-row.three-columns,.service-content .form-row,.spent-inventory-content .form-row{grid-template-columns:1fr}.spent-inventory-header,.services-header{flex-direction:column;gap:12px;align-items:flex-start}.form-actions{flex-direction:column}.form-actions .btn{width:100%;justify-content:center;padding:var(--spacing-sm);font-size:.9rem}.billing-form h3{font-size:1.5rem;margin-bottom:var(--spacing-sm)}.form-group label{font-size:.9rem}.form-group input,.form-group select,.form-group textarea{font-size:.9rem;padding:var(--spacing-sm)}.service-item{padding:var(--spacing-sm)}.service-item-header{flex-direction:column;gap:var(--spacing-sm)}.service-item-actions{flex-direction:column;gap:var(--spacing-xs)}.service-item-actions button{width:100%;padding:var(--spacing-xs);font-size:.8rem}}@media(max-width:480px){.billing-form{padding:var(--spacing-xs);margin:5px}.billing-form h3{font-size:1.3rem}.form-group label{font-size:.8rem}.form-group input,.form-group select,.form-group textarea,.form-actions .btn{font-size:.8rem;padding:var(--spacing-xs)}.service-item-actions button{font-size:.7rem;padding:4px 8px}}.searchable-dropdown,.dropdown-input-container{position:relative}.dropdown-input{width:100%;padding:10px 12px;border:1px solid #ddd;border-radius:6px;font-size:.9rem;transition:border-color .2s}.dropdown-input:focus{outline:none;border-color:#007bff;box-shadow:0 0 0 2px #007bff1a}.dropdown-arrow{position:absolute;right:12px;top:50%;transform:translateY(-50%);cursor:pointer;color:#666;font-size:.8rem}.dropdown-options{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 6px #0000001a}.dropdown-option{padding:10px 12px;cursor:pointer;transition:background-color .2s}.dropdown-option:hover{background:#f8f9fa}.dropdown-option.selected{background:#007bff;color:#fff}.dropdown-loading,.dropdown-no-results{padding:10px 12px;color:#666;font-style:italic;text-align:center}.dropdown-error{color:#dc3545;font-size:.8rem;margin-top:4px}.custom-letterhead{display:flex;flex-direction:column;gap:16px}.lh-toolbar{display:flex;align-items:center;justify-content:space-between;padding:12px 16px;background:#fff;border:1px solid #eee;border-radius:10px}.lh-toolbar .lh-left h2{margin:0;font-size:20px;font-weight:700}.lh-toolbar .lh-right .btn{padding:10px 14px;font-size:14px}.lh-alert{padding:10px 12px;border-radius:6px;font-size:14px}.lh-alert.error{background:#ffe8e6;color:#b20000}.lh-alert.success{background:#e7f9ef;color:#106f3c}.lh-grid{display:block}.lh-card{background:#fff;border:1px solid #eee;border-radius:10px;padding:16px}.lh-label{display:block;font-size:13px;color:#555;margin:8px 0 6px}.lh-input{width:100%;padding:10px 12px;border:1px solid #ddd;border-radius:8px;font-size:14px}.lh-textarea{width:100%;padding:10px 12px;border:1px solid #ddd;border-radius:8px;font-size:14px;resize:vertical}.lh-hint{margin-top:8px;color:#777;font-size:12px}.lh-preview{background:#fafafa;border:1px solid #eee;min-height:600px;padding:24px;border-radius:8px}.lh-clinic-header{display:flex;gap:16px;border-bottom:2px solid #e5e5e5;padding-bottom:12px;margin-bottom:16px}.lh-clinic-logo img{width:64px;height:64px;-o-object-fit:contain;object-fit:contain}.lh-logo-fallback{width:64px;height:64px;background:#f2f2f2;border:1px dashed #ccc;border-radius:6px}.lh-clinic-info{display:flex;flex-direction:column}.lh-clinic-name{font-size:20px;font-weight:600}.lh-clinic-text{font-size:13px;color:#555}.lh-body{min-height:380px}.lh-title{font-size:18px;font-weight:600;margin-bottom:16px;color:#222}.lh-content{font-size:15px;line-height:1.75;color:#222}.lh-content p{margin:0 0 12px}.lh-placeholder{color:#999;font-style:italic}.lh-footer{margin-top:32px;display:flex;justify-content:flex-end;padding-top:20px;border-top:1px solid #e9ecef}.lh-signature{text-align:right}.lh-signature-image{width:180px;height:auto;display:block;margin-left:auto;filter:drop-shadow(0 1px 2px rgba(0,0,0,.1))}.lh-signature-placeholder{width:180px;height:50px;border-bottom:2px solid #3c4043;margin-left:auto;opacity:.6}.lh-signature-label{margin-top:8px;color:#1a1a1a;font-weight:600;font-size:14px;letter-spacing:.3px}.custom-letterhead .invoice-document.pdf-export .lh-signature-placeholder{height:40px;border-bottom-width:1px}.custom-letterhead .invoice-document.pdf-export .lh-signature-label{margin-top:4px}@media(max-width:992px){.lh-grid{grid-template-columns:1fr}}.lh-inline-controls{margin-bottom:8px}.lh-control-row{display:grid;grid-template-columns:1fr 1fr;gap:12px}.lh-control-col{display:flex;flex-direction:column;gap:6px}@media(max-width:768px){.lh-control-row{grid-template-columns:1fr}}.lh-inline-title{width:100%;font-size:18px;font-weight:600;margin:0 0 16px;border:none;outline:none;background:transparent;color:#1a1a1a;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif;letter-spacing:-.2px}.lh-inline-textarea{width:100%;font-size:15px;line-height:1.75;color:#2c2c2c;border:none;outline:none;background:transparent;resize:vertical;min-height:200px;white-space:pre-wrap;word-wrap:break-word;overflow-wrap:break-word;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif}.lh-inline-signature-url{margin-top:6px;width:100%;font-size:12px;color:#555;border:1px dashed #ddd;border-radius:6px;padding:6px 8px}.custom-letterhead .invoice-preview{width:100%;display:flex;justify-content:center;align-items:flex-start;padding:20px;background:#f8f9fa}.custom-letterhead .invoice-document{background:#fff;width:100%;max-width:800px;padding:30px 50px 45px;border-radius:8px;box-shadow:0 2px 12px #00000014;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif;color:#333;line-height:1.6}.custom-letterhead .invoice-document.pdf-export{padding:12px;box-shadow:none;border-radius:0;display:flex;flex-direction:column;width:794px;height:1123px;position:relative}.custom-letterhead .invoice-document.pdf-export .clinic-header{margin-bottom:20px;padding-bottom:16px;border-bottom:3px solid #e1e3e5}.custom-letterhead .invoice-document.pdf-export .clinic-header:after{content:"";position:absolute;bottom:-3px;left:0;width:60px;height:3px;background:linear-gradient(90deg,#4285f4,#34a853)}.custom-letterhead .invoice-document.pdf-export .clinic-name{font-size:24pt;letter-spacing:.5px;line-height:1.3;font-weight:700;font-family:Times New Roman,Times,serif;color:#1a1a1a}.custom-letterhead .invoice-document.pdf-export .lh-body{flex:1;min-height:auto;padding-top:8px}.custom-letterhead .invoice-document.pdf-export .lh-inline-title{font-size:20px;margin-bottom:18px;font-weight:600;font-family:Times New Roman,Times,serif;color:#1a1a1a;letter-spacing:.3px}.custom-letterhead .invoice-document.pdf-export .lh-inline-textarea{font-size:12pt;line-height:1.8;min-height:160px;white-space:pre-wrap;word-wrap:break-word;overflow-wrap:break-word;overflow:visible;font-family:Times New Roman,Times,serif;color:#2c2c2c}.custom-letterhead .invoice-document.pdf-export .lh-footer{position:absolute;bottom:28px;right:28px;left:auto;display:flex;justify-content:flex-end;padding-top:20px;padding-bottom:0;margin:0;border-top:1px solid #e9ecef}.custom-letterhead .invoice-document.pdf-export .lh-signature-label{margin-top:4px;font-family:Times New Roman,Times,serif;font-size:12pt;font-weight:600}.custom-letterhead .invoice-document.pdf-export{font-family:Times New Roman,Times,serif}.custom-letterhead .invoice-document.pdf-export .clinic-info{flex:1;display:flex;flex-direction:column;gap:6px;border-left:2px solid #e9ecef;padding-left:24px;font-family:Times New Roman,Times,serif}.custom-letterhead .invoice-document.pdf-export .clinic-address,.custom-letterhead .invoice-document.pdf-export .clinic-phone,.custom-letterhead .invoice-document.pdf-export .clinic-email,.custom-letterhead .invoice-document.pdf-export .clinic-website{font-size:11pt;color:#3c4043;line-height:1.6}.custom-letterhead .invoice-document.pdf-export .clinic-logo{margin-right:24px;position:relative;display:grid;place-items:center;margin-top:0%!important;padding:8px;background:#fafbfc;border-radius:8px}.custom-letterhead .invoice-document.pdf-export .clinic-logo-image{width:auto!important;height:auto!important;-o-object-fit:contain;object-fit:contain;display:block;margin:0 auto;filter:drop-shadow(0 2px 4px rgba(0,0,0,.08))}.custom-letterhead .clinic-header{display:flex;align-items:center;margin-bottom:20px;padding-bottom:16px;border-bottom:3px solid #e1e3e5;position:relative}.custom-letterhead .clinic-header:after{content:"";position:absolute;bottom:-3px;left:0;width:60px;height:3px;background:linear-gradient(90deg,#4285f4,#34a853)}.custom-letterhead .clinic-logo{margin-right:24px;position:relative;display:grid;place-items:center;height:auto;margin-top:0%!important;padding:0;background:#fafbfc;border-radius:8px}.custom-letterhead .clinic-logo-image{width:auto!important;height:auto!important;-o-object-fit:contain;object-fit:contain;display:block;margin:0 auto;max-height:none;filter:drop-shadow(0 2px 4px rgba(0,0,0,.08))}.custom-letterhead .logo-placeholder{width:140px;height:60px;background:linear-gradient(135deg,#f5f7fa,#e9ecef);border-radius:8px;display:flex;align-items:center;justify-content:center;color:#9aa0a6;border:2px dashed #d1d5db}.custom-letterhead .logo-fallback{display:none}.custom-letterhead .clinic-info{flex:1;display:flex;flex-direction:column;gap:6px;border-left:2px solid #e9ecef;padding-left:24px}.custom-letterhead .clinic-name{font-size:30px;font-weight:700;margin:0 0 8px;color:#1a1a1a;letter-spacing:-.3px;line-height:1.2;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif}.custom-letterhead .clinic-address,.custom-letterhead .clinic-phone,.custom-letterhead .clinic-email,.custom-letterhead .clinic-website{font-size:13px;color:#5f6368;margin:0;line-height:1.5;font-weight:400}.custom-letterhead .clinic-address{font-weight:500;color:#3c4043}.admin-financial-dashboard{padding:2rem;max-width:1400px;margin:0 auto;background:#f8fafc;min-height:100vh}.dashboard-header{text-align:center;margin-bottom:2rem;padding:2rem;background:linear-gradient(135deg,#667eea,#764ba2);border-radius:16px;color:#fff;box-shadow:0 4px 6px #0000001a}.dashboard-header h1{margin-bottom:.5rem;font-size:2.5rem;font-weight:700}.dashboard-header p{font-size:1.1rem;opacity:.9}.financial-metrics{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:1.5rem;margin-bottom:2rem}.metric-card{background:#fff;padding:1.5rem;border-radius:16px;box-shadow:0 4px 6px #0000001a;display:flex;align-items:center;gap:1rem;transition:transform .2s ease,box-shadow .2s ease;border-left:4px solid}.metric-card:hover{transform:translateY(-4px);box-shadow:0 8px 25px #00000026}.metric-card.primary{border-left-color:#3b82f6}.metric-card.secondary{border-left-color:#10b981}.metric-card.warning{border-left-color:#f59e0b}.metric-card.danger{border-left-color:#ef4444}.metric-icon{font-size:2.5rem;width:70px;height:70px;display:flex;align-items:center;justify-content:center;background:#f1f5f9;border-radius:16px}.metric-content h3{font-size:2rem;color:#1e293b;margin:0 0 .5rem;font-weight:700}.metric-content p{color:#64748b;margin:0 0 .5rem;font-size:.9rem;font-weight:600}.metric-trend{display:flex;align-items:center;gap:.5rem;font-size:.8rem;font-weight:600}.metric-trend.positive{color:#10b981}.metric-trend.negative{color:#ef4444}.metric-trend.neutral{color:#6b7280}.clinic-overview{display:grid;grid-template-columns:repeat(auto-fit,minmax(400px,1fr));gap:1.5rem;margin-bottom:2rem}.overview-card{background:#fff;padding:1.5rem;border-radius:16px;box-shadow:0 4px 6px #0000001a}.overview-card h3{color:#1e293b;margin-bottom:1rem;font-size:1.25rem;font-weight:600}.overview-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem}.stat-item{text-align:center;padding:1rem;background:#f8fafc;border-radius:12px}.stat-number{display:block;font-size:2rem;font-weight:700;color:#3b82f6;margin-bottom:.25rem}.stat-label{font-size:.875rem;color:#64748b;font-weight:500}.revenue-breakdown{display:flex;flex-direction:column;gap:.75rem}.revenue-item{display:flex;justify-content:space-between;align-items:center;padding:.75rem;background:#f8fafc;border-radius:8px}.revenue-item.total{background:#3b82f6;color:#fff;font-weight:600}.revenue-label{font-weight:500}.revenue-amount{font-weight:600}.payment-reminders{margin-bottom:2rem}.payment-reminders h2{color:#1e293b;margin-bottom:1rem;font-size:1.5rem;font-weight:600}.reminders-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(350px,1fr));gap:1rem}.reminder-card{background:#fff;padding:1.5rem;border-radius:12px;box-shadow:0 2px 4px #0000001a;border-left:4px solid #f59e0b;transition:transform .2s ease}.reminder-card.overdue{border-left-color:#ef4444;background:#fef2f2}.reminder-card:hover{transform:translateY(-2px)}.reminder-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem}.reminder-header h4{color:#1e293b;margin:0;font-size:1.1rem;font-weight:600}.reminder-status{padding:.25rem .75rem;border-radius:20px;font-size:.75rem;font-weight:600;text-transform:uppercase}.reminder-status.upcoming{background:#fef3c7;color:#92400e}.reminder-status.overdue{background:#fee2e2;color:#991b1b}.reminder-details p{margin:.5rem 0;color:#64748b;font-size:.9rem}.reminder-details strong{color:#1e293b}.reminder-actions{display:flex;gap:.5rem;margin-top:1rem}.recent-transactions{margin-bottom:2rem}.recent-transactions h2{color:#1e293b;margin-bottom:1rem;font-size:1.5rem;font-weight:600}.transactions-table{background:#fff;border-radius:12px;overflow:hidden;box-shadow:0 4px 6px #0000001a}.transactions-table table{width:100%;border-collapse:collapse}.transactions-table th{background:#f8fafc;padding:1rem;text-align:left;font-weight:600;color:#374151;border-bottom:1px solid #e5e7eb}.transactions-table td{padding:1rem;border-bottom:1px solid #f3f4f6;color:#374151}.transactions-table tr:hover{background:#f9fafb}.transaction-type{padding:.25rem .75rem;border-radius:20px;font-size:.75rem;font-weight:600;text-transform:uppercase}.transaction-type.subscription{background:#dbeafe;color:#1e40af}.transaction-type.setup_fee{background:#fef3c7;color:#92400e}.amount{font-weight:600;color:#059669}.status-badge{padding:.25rem .75rem;border-radius:20px;font-size:.75rem;font-weight:600;text-transform:uppercase}.status-success{background:#dcfce7;color:#166534}.status-warning{background:#fef3c7;color:#92400e}.status-danger{background:#fee2e2;color:#991b1b}.quick-actions{margin-bottom:2rem}.quick-actions h2{color:#1e293b;margin-bottom:1rem;font-size:1.5rem;font-weight:600}.actions-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:1rem}.action-card{background:#fff;padding:1.5rem;border-radius:12px;box-shadow:0 2px 4px #0000001a;border:none;cursor:pointer;transition:transform .2s ease,box-shadow .2s ease;display:flex;align-items:center;gap:1rem;text-align:left}.action-card:hover{transform:translateY(-2px);box-shadow:0 4px 12px #00000026}.action-icon{font-size:2rem;width:50px;height:50px;display:flex;align-items:center;justify-content:center;background:#f1f5f9;border-radius:12px}.action-content h4{color:#1e293b;margin:0 0 .5rem;font-size:1.1rem;font-weight:600}.action-content p{color:#64748b;margin:0;font-size:.9rem}.btn{padding:.5rem 1rem;border:none;border-radius:8px;font-weight:600;cursor:pointer;transition:all .2s ease;font-size:.875rem}.btn-primary:hover{background:#2563eb}.btn-outline{background:transparent;color:#3b82f6;border:2px solid #3b82f6}.btn-outline:hover{background:#3b82f6;color:#fff}.btn-sm{padding:.375rem .75rem;font-size:.75rem}@media(max-width:768px){.admin-financial-dashboard{padding:1rem}.financial-metrics,.clinic-overview,.reminders-grid,.actions-grid{grid-template-columns:1fr}.transactions-table{overflow-x:auto}.transactions-table table{min-width:600px}.dashboard-header h1{font-size:2rem}}.lead-doctor-staff{padding:2rem;max-width:1200px;margin:0 auto;background:#f8fafc;min-height:100vh}.staff-header{text-align:center;margin-bottom:2rem;padding:2rem;background:linear-gradient(135deg,#10b981,#059669);border-radius:16px;color:#fff;box-shadow:0 4px 6px #0000001a}.staff-header h1{margin-bottom:.5rem;font-size:2.5rem;font-weight:700}.staff-header p{font-size:1.1rem;opacity:.9}.staff-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:1.5rem;margin-bottom:2rem}.stat-card{background:#fff;padding:1.5rem;border-radius:12px;box-shadow:0 2px 4px #0000001a;display:flex;align-items:center;gap:1rem;transition:transform .2s ease}.stat-card:hover{transform:translateY(-2px)}.stat-icon{font-size:2rem;width:50px;height:50px;display:flex;align-items:center;justify-content:center;background:#f1f5f9;border-radius:12px}.stat-content h3{font-size:1.5rem;color:#1e293b;margin:0 0 .25rem;font-weight:700}.stat-content p{color:#64748b;margin:0;font-size:.9rem;font-weight:500}.staff-actions{display:flex;justify-content:center;margin-bottom:2rem}.staff-list{margin-bottom:2rem}.staff-list h2{color:#1e293b;margin-bottom:1rem;font-size:1.5rem;font-weight:600}.staff-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(350px,1fr));gap:1.5rem}.staff-card{background:#fff;padding:1.5rem;border-radius:12px;box-shadow:0 2px 4px #0000001a;border-left:4px solid;transition:transform .2s ease}.staff-card:hover{transform:translateY(-2px)}.staff-card.doctor{border-left-color:#3b82f6}.staff-card.nurse{border-left-color:#10b981}.staff-card.receptionist{border-left-color:#f59e0b}.staff-card.default{border-left-color:#6b7280}.staff-card .staff-header{display:flex;align-items:center;gap:1rem;margin-bottom:1rem;padding:0;background:none;color:inherit;text-align:left}.staff-avatar{font-size:2rem;width:50px;height:50px;display:flex;align-items:center;justify-content:center;background:#f1f5f9;border-radius:50%}.staff-info{flex:1}.staff-info h3{color:#1e293b;margin:0 0 .25rem;font-size:1.1rem;font-weight:600}.staff-role{color:#64748b;margin:0 0 .25rem;font-size:.9rem;font-weight:500}.staff-specialty{color:#3b82f6;margin:0;font-size:.8rem;font-weight:500}.staff-actions{display:flex;gap:.5rem}.staff-details{border-top:1px solid #e5e7eb;padding-top:1rem}.staff-details p{margin:.5rem 0;color:#64748b;font-size:.9rem}.staff-details strong{color:#1e293b}.status-badge{padding:.25rem .75rem;border-radius:20px;font-size:.75rem;font-weight:600;text-transform:uppercase;margin-left:.5rem}.status-active{background:#dcfce7;color:#166534}.status-inactive{background:#fee2e2;color:#991b1b}.modal{background:#fff;padding:2rem;border-radius:12px;width:90%;max-width:500px;box-shadow:0 10px 25px #0003}.modal h3{color:#1e293b;margin-bottom:1.5rem;font-size:1.5rem}.form-group{margin-bottom:1rem}.form-group label{display:block;margin-bottom:.5rem;color:#374151;font-weight:600}.form-group input,.form-group select{width:100%;padding:.75rem;border:2px solid #e5e7eb;border-radius:8px;font-size:1rem;transition:border-color .2s ease}.form-group input:focus,.form-group select:focus{outline:none;border-color:#10b981}.modal-actions{display:flex;gap:1rem;justify-content:flex-end;margin-top:2rem}.modal-actions button{padding:.75rem 1.5rem;border:none;border-radius:8px;font-weight:600;cursor:pointer;transition:all .2s ease}.modal-actions button:first-child{background:#e5e7eb;color:#374151}.modal-actions button:first-child:hover{background:#d1d5db}.btn{padding:.75rem 1.5rem;border:none;border-radius:8px;font-weight:600;cursor:pointer;transition:all .2s ease;font-size:1rem}.btn-primary{background:#10b981;color:#fff}.btn-primary:hover{background:#059669;transform:translateY(-1px)}.btn-danger{background:#ef4444;color:#fff}.btn-danger:hover{background:#dc2626}.btn-sm{padding:.5rem 1rem;font-size:.875rem}.loading-spinner{display:flex;align-items:center;justify-content:center;height:200px;font-size:1.2rem;color:#64748b}.error-message{text-align:center;padding:2rem;background:#fff;border-radius:12px;box-shadow:0 2px 4px #0000001a;margin:2rem auto;max-width:500px}.error-message h3{color:#dc2626;margin-bottom:1rem}.error-message p{color:#64748b;margin-bottom:1.5rem}@media(max-width:768px){.lead-doctor-staff{padding:1rem}.staff-stats{grid-template-columns:repeat(2,1fr)}.staff-grid{grid-template-columns:1fr}.staff-header h1{font-size:2rem}.modal{width:95%;margin:1rem}}.appointments-module{padding:var(--spacing-md)}.module-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--spacing-lg);padding:var(--spacing-md);background:#fff;border-radius:8px;box-shadow:0 2px 8px #0000001a;position:static;z-index:auto}.module-header h2{margin:0;color:var(--text-color);font-size:1.75rem;font-weight:700}.module-header .btn{display:flex;align-items:center;gap:var(--spacing-xs);padding:var(--spacing-sm) var(--spacing-md);background:var(--primary-color);color:#fff;border:none;border-radius:6px;font-size:.875rem;font-weight:600;cursor:pointer;transition:all .2s ease;box-shadow:0 2px 4px #0000001a}.module-header .btn:hover{background:var(--primary-color-dark);transform:translateY(-1px);box-shadow:0 4px 12px #00000026}.module-header .btn svg{width:16px;height:16px}.appointments-list-view{background:#fff;border-radius:8px;box-shadow:0 2px 8px #0000001a;overflow:hidden;height:600px;overflow-y:auto;grid-column:1 / -1}.list-header{display:flex;justify-content:space-between;align-items:center;padding:var(--spacing-lg);border-bottom:1px solid #e5e7eb;background:linear-gradient(135deg,#f8fafc,#e2e8f0)}.list-header h3{margin:0;color:var(--text-color);font-size:1.5rem;font-weight:700}.list-filters{display:flex;gap:var(--spacing-md);align-items:center}.search-input{padding:8px 12px;border:1px solid #d1d5db;border-radius:6px;font-size:14px;min-width:250px}.search-input:focus{outline:none;border-color:var(--primary-color);box-shadow:0 0 0 3px #3b82f61a}.status-filter{padding:8px 12px;border:1px solid #d1d5db;border-radius:6px;font-size:14px;background:#fff;cursor:pointer}.status-filter:focus{outline:none;border-color:var(--primary-color)}.appointments-grid{display:flex;flex-direction:column;gap:var(--spacing-md);padding:var(--spacing-lg);height:100%;overflow-y:auto}.appointments-list-view .appointment-card{background:#fff;border:1px solid #e5e7eb;border-radius:8px;margin-bottom:12px;padding:16px;box-shadow:0 1px 3px #0000001a}.appointments-list-view .appointment-card.regular{border-left:4px solid #3b82f6}.appointments-list-view .appointment-card.visiting{border-left:4px solid #10b981}.appointments-list-view .appointment-card.consultation{border-left:4px solid #f59e0b}.appointments-list-view .appointment-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px}.appointments-list-view .appointment-type-badge{background:#3b82f6;color:#fff;padding:4px 8px;border-radius:4px;font-size:11px;font-weight:600;text-transform:uppercase}.appointments-list-view .appointment-card.visiting .appointment-type-badge{background:#10b981}.appointments-list-view .appointment-card.consultation .appointment-type-badge{background:#f59e0b}.appointments-list-view .appointment-actions{display:flex;gap:8px}.appointments-list-view .btn-edit,.appointments-list-view .btn-delete{background:none;border:none;padding:6px;cursor:pointer;font-size:16px}.appointments-list-view .btn-edit:hover{background:#f3f4f6;border-radius:4px}.appointments-list-view .btn-delete:hover{background:#fef2f2;border-radius:4px}.appointments-list-view .appointment-content{display:flex;align-items:center;gap:16px}.appointments-list-view .patient-info{display:flex;align-items:center;gap:12px;flex:1}.appointments-list-view .patient-avatar{width:40px;height:40px;background:#3b82f6;color:#fff;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:14px;font-weight:600}.appointments-list-view .patient-details h4{margin:0 0 4px;color:#111827;font-size:16px;font-weight:600}.appointments-list-view .patient-details p{margin:0;color:#6b7280;font-size:14px}.appointments-list-view .appointment-meta{display:flex;align-items:center;gap:12px}.appointments-list-view .status-badge{padding:4px 8px;border-radius:4px;font-size:12px;font-weight:500;text-transform:capitalize}.status-scheduled{background:#dbeafe;color:#1e40af}.status-confirmed{background:#dcfce7;color:#166534}.status-completed{background:#f3f4f6;color:#374151}.status-cancelled{background:#fee2e2;color:#991b1b}.appointments-list-view .appointment-notes{color:#6b7280;font-size:13px;font-style:italic;max-width:200px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.delete-confirmation-modal{padding:var(--spacing-lg);max-width:500px}.delete-header{text-align:center;margin-bottom:var(--spacing-lg)}.delete-header h3{margin:0 0 var(--spacing-sm) 0;color:var(--danger-color);font-size:1.5rem}.delete-header p{margin:0;color:var(--text-light);font-size:1rem}.appointment-summary{background:#f8fafc;border-radius:8px;padding:var(--spacing-md);margin-bottom:var(--spacing-lg)}.delete-actions{display:flex;gap:var(--spacing-md);justify-content:center}.btn-danger{background:var(--danger-color);color:#fff;border:none;padding:10px 20px;border-radius:6px;font-size:14px;font-weight:600;cursor:pointer;transition:all .2s ease}.btn-danger:hover{background:#c53030;transform:translateY(-1px)}.btn-danger:disabled{background:#9ca3af;cursor:not-allowed;transform:none}@media(max-width:768px){.appointments-module{padding:var(--spacing-sm)}.module-header{flex-direction:column;gap:var(--spacing-sm);align-items:stretch;position:static;z-index:auto;-webkit-backdrop-filter:none;backdrop-filter:none;background:#fff;border:none}.module-header h2{text-align:center;font-size:1.5rem}.module-header .btn{justify-content:center;padding:var(--spacing-sm)}.view-selector{width:100%;justify-content:center}.view-selector button{flex:1;padding:var(--spacing-sm);font-size:.9rem}.calendar-header{flex-direction:column;gap:var(--spacing-sm);align-items:stretch}.calendar-nav{justify-content:center;flex-wrap:wrap}.calendar-nav-btn{padding:var(--spacing-xs);font-size:.8rem}.calendar-nav-btn.today{padding:var(--spacing-xs) var(--spacing-sm)}.week-view{height:auto;min-height:600px;overflow-x:auto}.week-header{min-width:600px}.week-body{min-width:600px;height:auto;min-height:800px}.day-column{min-width:85px;padding:0 2px}.day-column-header{padding:var(--spacing-xs);font-size:.8rem}.day-name{font-size:.7rem}.day-date{font-size:.6rem}.month-view{height:auto;min-height:500px}.month-day{min-height:60px;padding:2px}.month-day-number{font-size:.8rem}.month-appointment{font-size:.7rem;padding:1px 2px}.day-view{height:auto;min-height:500px}.time-label{width:60px;font-size:.8rem;padding:var(--spacing-xs)}.appointment-slot{padding:var(--spacing-xs)}}@media(max-width:480px){.appointments-module{padding:var(--spacing-xs)}.module-header h2{font-size:1.3rem}.view-selector button{font-size:.8rem;padding:var(--spacing-xs)}.week-view{height:auto;min-height:500px}.week-body{height:auto;min-height:700px}.day-column{min-width:70px}.day-column-header{padding:2px;font-size:.7rem}.month-view,.day-view{height:auto;min-height:400px}.appointment-reminders{margin:var(--spacing-sm) 0}.appointment-reminders h3{font-size:1.1rem;margin-bottom:var(--spacing-sm)}.reminders-list{gap:var(--spacing-xs)}.reminder-item{flex-direction:column;align-items:flex-start;padding:var(--spacing-sm);gap:var(--spacing-xs)}.reminder-icon{width:28px;height:28px;margin-right:0;margin-bottom:var(--spacing-xs);align-self:flex-start}.reminder-content{width:100%}.reminder-text{font-size:.9rem;line-height:1.3;margin-bottom:var(--spacing-xs)}.reminder-time{font-size:.75rem}.reminder-item .btn{width:100%;padding:var(--spacing-xs) var(--spacing-sm);font-size:.8rem;justify-content:center;min-height:36px;touch-action:manipulation;-webkit-tap-highlight-color:transparent}}.view-selector{display:flex;background-color:var(--light-gray);border-radius:var(--radius);overflow:hidden;margin-bottom:var(--spacing-md);width:-moz-fit-content;width:fit-content}.view-selector button{padding:var(--spacing-sm) var(--spacing-md);background:none;border:none;cursor:pointer;font-weight:500;transition:var(--transition)}.view-selector button.active{background-color:var(--primary-color);color:var(--white)}.appointments-container{display:grid;grid-template-columns:1fr;gap:var(--spacing-md)}.appointment-calendar{margin-bottom:var(--spacing-md)}.calendar-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--spacing-md)}.calendar-title{font-size:18px;font-weight:600}.calendar-nav{display:flex;align-items:center;gap:var(--spacing-sm)}.calendar-nav-btn{display:flex;align-items:center;justify-content:center;background:none;border:1px solid var(--medium-gray);border-radius:var(--radius);padding:var(--spacing-xs) var(--spacing-sm);cursor:pointer;transition:var(--transition)}.calendar-nav-btn.today{padding:var(--spacing-xs) var(--spacing-md)}.calendar-nav-btn:hover{background-color:var(--light-gray)}.day-view{height:600px;overflow-y:auto}.time-slots{display:flex;flex-direction:column}.time-slot{display:flex;min-height:60px;border-bottom:1px solid var(--medium-gray)}.time-label{width:80px;padding:var(--spacing-sm);color:var(--text-light);font-size:14px;display:flex;align-items:flex-start}.appointment-slot{flex:1;padding:var(--spacing-xs);position:relative}.calendar-appointment{position:absolute;inset:0;background-color:#3498db1a;border-left:3px solid var(--primary-color);margin:var(--spacing-xs);padding:var(--spacing-sm);border-radius:var(--radius);display:flex;flex-direction:column;justify-content:center;min-height:50px;overflow:hidden}.calendar-appointment .appointment-content{flex:1;display:flex;flex-direction:column;justify-content:center}.appointment-content{flex:1}.week-appointment .appointment-title{font-weight:600;font-size:12px;line-height:1.2;white-space:nowrap;overflow:visible;text-overflow:clip;flex:1;min-height:16px;word-break:break-word;color:var(--text-dark);margin-top:3px}.appointment-subtitle{font-size:12px;color:var(--text-light);margin-bottom:var(--spacing-xs)}.appointment-notes{font-size:11px;color:var(--text-light);font-style:italic}.appointment-indicator{position:absolute;top:var(--spacing-sm);right:var(--spacing-sm);width:8px;height:8px;border-radius:50%}.appointment-indicator.primary{background-color:var(--primary-color)}.appointment-indicator.warning{background-color:var(--warning-color)}.appointment-indicator.danger{background-color:var(--danger-color)}.appointment-indicator.success{background-color:var(--success-color)}.appointment-indicator.info{background-color:var(--info-color)}.appointment-indicator.secondary{background-color:var(--secondary-color)}.appointment-indicator.accent{background-color:var(--accent-color)}.appointment-indicator.dark{background-color:var(--dark-color)}.appointment-indicator.light{background-color:var(--light-color)}.appointment-indicator.muted{background-color:var(--muted-color)}.week-view{height:1100px;overflow-y:auto;position:relative}.week-header{display:grid;grid-template-columns:repeat(7,1fr);border-bottom:2px solid var(--medium-gray);position:sticky;top:0;background-color:var(--white);z-index:1;box-shadow:0 1px 3px #0000000d}.day-column-header{padding:var(--spacing-sm);text-align:center;border-right:1px solid var(--medium-gray);background-color:#f8fafccc;font-weight:600}.day-name{font-weight:500}.day-date{font-size:12px;color:var(--text-light)}.week-body{display:grid;grid-template-columns:repeat(7,1fr);height:1200px;position:relative}.day-column{border-right:1px solid var(--medium-gray);position:relative;padding:0 3px;min-width:125px;overflow:visible;z-index:1;background-color:#f8fafc80}.week-appointment{position:absolute;background-color:#3498db14;border-left:4px solid var(--primary-color);padding:6px 10px;border-radius:6px;overflow:visible;box-shadow:0 2px 4px #00000014;transition:all .3s ease;border:1px solid rgba(52,152,219,.12);margin:5px 0;left:2%!important;right:2%!important;width:96%!important;min-height:55px;max-height:none;box-sizing:border-box;z-index:10;cursor:pointer}.week-appointment:hover{box-shadow:0 4px 8px #0000001f;transform:translateY(-2px);border-color:#3498db40;background-color:#3498db1f;border-left-width:5px}.week-appointment .appointment-content{flex:1;display:flex;flex-direction:column;justify-content:center;gap:4px;height:100%;min-height:30px;overflow:visible;padding:3px 0}.week-appointment .appointment-time{font-size:11px;color:var(--text-dark);font-weight:700;line-height:1.1;flex-shrink:0;white-space:nowrap;overflow:visible;text-overflow:clip;min-height:16px;letter-spacing:.2px;margin-bottom:2px}.month-view{height:600px;overflow-y:auto}.month-grid{display:grid;grid-template-columns:repeat(7,1fr);grid-template-rows:auto repeat(6,1fr);height:100%}.month-day-header{padding:var(--spacing-sm);text-align:center;font-weight:500;border-bottom:1px solid var(--medium-gray)}.month-day{min-height:80px;border-right:1px solid var(--medium-gray);border-bottom:1px solid var(--medium-gray);padding:var(--spacing-xs);position:relative;display:flex;flex-direction:column}.month-day.empty{background-color:var(--light-gray)}.month-day.today{background-color:#3498db0d}.month-day-number{font-size:14px;font-weight:500;margin-bottom:var(--spacing-xs);flex-shrink:0}.month-appointments-container{flex:1;overflow-y:auto;max-height:calc(100% - 20px);scrollbar-width:thin;scrollbar-color:var(--medium-gray) transparent}.month-appointments-container::-webkit-scrollbar{width:4px}.month-appointments-container::-webkit-scrollbar-track{background:transparent}.month-appointments-container::-webkit-scrollbar-thumb{background-color:var(--medium-gray);border-radius:2px}.month-appointments-container::-webkit-scrollbar-thumb:hover{background-color:var(--text-light)}.month-appointment{font-size:10px;margin-bottom:1px;padding:1px 3px;border-radius:2px;background-color:#3498db1a;border-left:2px solid var(--primary-color);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;line-height:1.1;cursor:pointer;transition:background-color .2s ease}.month-appointment:hover{background-color:#3498db33}.month-appointment span{font-weight:600}.month-appointment.primary{background-color:#3498db33;color:var(--primary-dark)}.month-appointment.secondary{background-color:#2ecc7133;color:var(--secondary-dark)}.month-appointment.warning{background-color:#f39c1233;color:#d35400}.month-appointment.success{background-color:#27ae6033;color:#27ae60}.month-appointment.info{background-color:#3498db33;color:#2980b9}.month-appointment.secondary{background-color:#2ecc7133;color:#27ae60}.month-appointment.accent{background-color:#9b59b633;color:#8e44ad}.month-appointment.dark{background-color:#34495e33;color:#2c3e50}.month-appointment.light{background-color:#ecf0f133;color:#7f8c8d}.month-appointment.muted{background-color:#95a5a633;color:#7f8c8d}.upcoming-appointments{margin-bottom:var(--spacing-md);grid-column:1 / -1}.reminders-list{display:flex;flex-direction:column;gap:var(--spacing-sm)}.reminder-item{display:flex;align-items:center;padding:var(--spacing-sm);border-radius:var(--radius);background-color:var(--light-gray);transition:var(--transition);border:1px solid transparent;cursor:pointer;touch-action:manipulation}.reminder-item:hover{background-color:var(--medium-gray);border-color:var(--medium-gray);transform:translateY(-1px);box-shadow:0 2px 8px #0000001a}.reminder-icon{width:32px;height:32px;border-radius:50%;display:flex;align-items:center;justify-content:center;margin-right:var(--spacing-md);color:#fff}.reminder-icon.confirm{background-color:var(--primary-color)}.reminder-icon.reschedule{background-color:var(--warning-color)}.reminder-icon.follow-up{background-color:var(--accent-color)}.reminder-content{flex:1}.reminder-text{font-weight:500}.reminder-time{font-size:12px;color:var(--text-light)}.appointment-form{background:#fff;padding:2rem;border-radius:8px;box-shadow:0 2px 10px #0000001a;max-width:600px;margin:0 auto}.appointment-form h3{margin-bottom:1.5rem;color:#333;font-size:1.5rem;font-weight:600}.appointment-form .form-row{display:grid;grid-template-columns:1fr 1fr;gap:1rem}.appointment-form label{display:block;margin-bottom:.5rem;font-weight:500;color:#555}.appointment-form input,.appointment-form select,.appointment-form textarea{width:100%;padding:.75rem;border:1px solid #ddd;border-radius:4px;font-size:1rem;transition:border-color .2s ease}.appointment-form input:focus,.appointment-form select:focus,.appointment-form textarea:focus{outline:none;border-color:#007bff;box-shadow:0 0 0 2px #007bff40}.appointment-form input:disabled,.appointment-form select:disabled{background-color:#f8f9fa;color:#6c757d;cursor:not-allowed}.appointment-form textarea{resize:vertical;min-height:80px}.appointment-form .error-message{background-color:#f8d7da;color:#721c24;padding:.75rem;border-radius:4px;margin-bottom:1rem;border:1px solid #f5c6cb}.appointment-form .loading{text-align:center;padding:2rem;color:#666}.appointment-form .loading-slots{padding:.75rem;background-color:#f8f9fa;border:1px solid #ddd;border-radius:4px;color:#666;font-style:italic}.appointment-form .time-slot-container{display:flex;gap:.75rem;align-items:flex-start}.appointment-form .time-slot-container select{flex:1}.appointment-form .btn-refresh-slots{padding:.75rem;background-color:#17a2b8;color:#fff;border:none;border-radius:4px;font-size:.875rem;font-weight:500;cursor:pointer;transition:all .2s ease;display:flex;align-items:center;justify-content:center;width:44px;min-width:44px;height:auto;align-self:stretch}.appointment-form .btn-refresh-slots:hover{background-color:#007bff;transform:translateY(-1px)}.appointment-form .btn-refresh-slots:disabled{opacity:.6;cursor:not-allowed;transform:none}.appointment-form .refresh-icon{font-size:2rem;font-weight:700;line-height:1;display:inline-block}.appointment-form .available-slots-info{margin-top:.5rem;font-size:.875rem;color:#28a745;font-weight:500}.appointment-form .form-actions{display:flex;gap:1rem;justify-content:flex-end;margin-top:2rem;padding-top:1rem;border-top:1px solid #eee}.appointment-form .btn{padding:.75rem 1.5rem;border:none;border-radius:4px;font-size:1rem;font-weight:500;cursor:pointer;transition:all .2s ease}.appointment-form .btn:disabled{opacity:.6;cursor:not-allowed}.appointment-form .btn:not(:disabled):hover{transform:translateY(-1px)}.appointment-form .btn-outline{background-color:transparent;color:#6c757d;border:1px solid #6c757d}.appointment-form .btn-outline:hover{background-color:#6c757d;color:#fff}.appointment-form .btn{background-color:#007bff;color:#fff}.appointment-form .btn:hover{background-color:#0056b3}.appointment-form select option[disabled]{color:#dc3545;font-style:italic}.opd-availability-view{margin-bottom:2rem;padding:1.5rem;background-color:#f8f9fa;border-radius:8px;border:1px solid #e9ecef}.opd-availability-view h4{margin-bottom:1rem;color:#333;font-size:1.1rem;font-weight:600}.opd-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:1rem}.opd-card{padding:1rem;border-radius:6px;border:2px solid transparent;cursor:pointer;transition:all .2s ease;text-align:center;background:#fff;box-shadow:0 2px 4px #0000001a}.opd-card:hover:not(.disabled){transform:translateY(-2px);box-shadow:0 4px 8px #00000026}.opd-card.selected{border-color:#007bff;box-shadow:0 0 0 3px #007bff40}.opd-card.disabled{cursor:not-allowed;opacity:.6}.opd-card.gray{border-left:4px solid #6c757d}.opd-card.green{border-left:4px solid #28a745}.opd-card.orange{border-left:4px solid #fd7e14}.opd-card.red{border-left:4px solid #dc3545}.opd-number{font-weight:600;font-size:1rem;margin-bottom:.5rem;color:#333}.opd-status{font-size:.875rem;color:#666}.opd-card.green .opd-status{color:#28a745}.opd-card.orange .opd-status{color:#fd7e14}.opd-card.red .opd-status{color:#dc3545}.opd-card.gray .opd-status{color:#6c757d}@media(max-width:768px){.appointment-form{padding:1rem;margin:1rem}.appointment-form .form-row{grid-template-columns:1fr}.appointment-form .form-actions{flex-direction:column}.appointment-form .btn{width:100%}.opd-grid{grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:.75rem}.opd-card{padding:.75rem}.opd-number{font-size:.9rem}.opd-status{font-size:.8rem}}@media(min-width:992px){.appointments-container{grid-template-columns:2fr 1fr}.appointment-calendar{grid-column:1 / -1}}@media(min-width:769px){.module-header{position:sticky;top:var(--header-height);z-index:100;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#fffffff2;border:1px solid rgba(0,0,0,.05)}}.current-doctor{border-left-width:3px!important;font-weight:500}.other-doctor-1{border-left-color:#87ceeb!important;background-color:#87ceeb1a!important}.other-doctor-2{border-left-color:#90ee90!important;background-color:#90ee901a!important}.other-doctor-3{border-left-color:#ffb347!important;background-color:#ffb3471a!important}.other-doctor-4{border-left-color:plum!important;background-color:#dda0dd1a!important}.other-doctor-5{border-left-color:#ffb6c1!important;background-color:#ffb6c11a!important}.calendar-appointment.current-doctor{border-left-color:var(--primary-color);background-color:#3498db26}.calendar-appointment.other-doctor-1{border-left-color:#27ae60;background-color:#27ae6026}.calendar-appointment.other-doctor-2{border-left-color:#f39c12;background-color:#f39c1226}.calendar-appointment.other-doctor-3{border-left-color:#e74c3c;background-color:#e74c3c26}.calendar-appointment.other-doctor-4{border-left-color:#9b59b6;background-color:#9b59b626}.calendar-appointment.other-doctor-5{border-left-color:#e67e22;background-color:#e67e2226}.appointment-indicator.current-doctor{background-color:var(--primary-color)}.appointment-indicator.other-doctor-1{background-color:#27ae60}.appointment-indicator.other-doctor-2{background-color:#f39c12}.appointment-indicator.other-doctor-3{background-color:#e74c3c}.appointment-indicator.other-doctor-4{background-color:#9b59b6}.appointment-indicator.other-doctor-5{background-color:#e67e22}.week-appointment.current-doctor{border-left-color:var(--primary-color);background-color:#3498db26}.week-appointment.other-doctor-1{border-left-color:#27ae60;background-color:#27ae6026}.week-appointment.other-doctor-2{border-left-color:#f39c12;background-color:#f39c1226}.week-appointment.other-doctor-3{border-left-color:#e74c3c;background-color:#e74c3c26}.week-appointment.other-doctor-4{border-left-color:#9b59b6;background-color:#9b59b626}.week-appointment.other-doctor-5{border-left-color:#e67e22;background-color:#e67e2226}.month-appointment.current-doctor{background-color:#3498db40;color:#2c3e50}.month-appointment.other-doctor-1{background-color:#27ae6040;color:#2c3e50}.month-appointment.other-doctor-2{background-color:#f39c1240;color:#2c3e50}.month-appointment.other-doctor-3{background-color:#e74c3c40;color:#2c3e50}.month-appointment.other-doctor-4{background-color:#9b59b640;color:#2c3e50}.month-appointment.other-doctor-5{background-color:#e67e2240;color:#2c3e50}.appointment-legend{background:#fff;padding:1.5rem;border-radius:8px;box-shadow:0 2px 10px #0000001a;margin-bottom:1rem}.appointment-legend h4{margin-bottom:1rem;color:#333;font-size:1.1rem;font-weight:600}.legend-section{margin-bottom:1rem}.legend-section:last-child{margin-bottom:0}.legend-section h5{margin-bottom:.5rem;color:#555;font-size:.9rem;font-weight:500}.legend-items{display:flex;flex-wrap:wrap;gap:1rem}.legend-item{display:flex;align-items:center;gap:.5rem;font-size:.875rem;color:#666}.legend-color{width:16px;height:16px;border-radius:3px;border:1px solid #ddd}.legend-color.current-doctor{background-color:var(--primary-color);border-color:var(--primary-color)}.legend-color.other-doctor-1{background-color:#87ceeb;border-color:#87ceeb}.legend-color.other-doctor-2{background-color:#90ee90;border-color:#90ee90}.legend-color.other-doctor-3{background-color:#ffb347;border-color:#ffb347}.legend-color.other-doctor-4{background-color:plum;border-color:plum}.legend-color.other-doctor-5{background-color:#ffb6c1;border-color:#ffb6c1}.legend-color.opd-1{background-color:var(--primary-color);border-color:var(--primary-color)}.legend-color.opd-2{background-color:var(--success-color);border-color:var(--success-color)}.legend-color.opd-3{background-color:var(--warning-color);border-color:var(--warning-color)}.legend-color.opd-4{background-color:var(--danger-color);border-color:var(--danger-color)}@media(max-width:768px){.legend-items{flex-direction:column;gap:.5rem}.legend-item{font-size:.8rem}}.appointment-filters{background:#fff;padding:1.5rem;border-radius:8px;box-shadow:0 2px 10px #0000001a;margin-bottom:1rem}.appointment-filters h4{margin-bottom:1rem;color:#333;font-size:1.1rem;font-weight:600}.filters-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:1rem;margin-bottom:1rem}.filter-group{display:flex;flex-direction:column}.filter-group label{margin-bottom:.5rem;font-weight:500;color:#555;font-size:.9rem}.filter-group select{padding:.5rem;border:1px solid #ddd;border-radius:4px;font-size:.9rem;background-color:#fff}.filter-group select:focus{outline:none;border-color:#007bff;box-shadow:0 0 0 2px #007bff40}.filter-actions{display:flex;justify-content:flex-end}.filter-actions .btn{padding:.5rem 1rem;font-size:.875rem}@media(max-width:768px){.filters-grid{grid-template-columns:1fr;gap:.75rem}.filter-group select{font-size:1rem;padding:.75rem}}.appointment-start{border-left-width:3px!important;padding:.5rem;margin-bottom:.25rem;border-radius:4px;box-shadow:0 1px 3px #0000001a}.appointment-continuing{border-left-width:2px;background-color:inherit!important;opacity:.7;border-radius:0;box-shadow:none}.appointment-time-display{font-size:.8rem;color:#666;font-weight:500;margin-top:.25rem;margin-bottom:.25rem}.appointment-content{display:flex;flex-direction:column;gap:.25rem}.appointment-title{font-weight:600;font-size:.9rem;margin-bottom:.25rem;color:#333}.appointment-subtitle{font-size:.75rem;color:#666;margin-bottom:.25rem}.appointment-notes{font-size:.7rem;color:#888;font-style:italic;margin-top:auto}.week-appointment{position:absolute;left:0;right:0;margin:0 2px;padding:.25rem;border-radius:4px;border-left:3px solid;font-size:.75rem;overflow:hidden;z-index:10;box-shadow:0 1px 3px #0000001a}.week-appointment .appointment-time{font-weight:600;margin-bottom:.25rem;font-size:.7rem}.week-appointment .appointment-content{line-height:1.2}.week-appointment .appointment-title{font-weight:500;margin-bottom:.1rem}.week-appointment .appointment-subtitle{font-size:.65rem;opacity:.8}.time-slot{border-bottom:1px solid #eee;min-height:60px;position:relative;display:flex;align-items:flex-start}.time-label{width:80px;padding:.5rem;font-weight:600;color:#666;font-size:.875rem;flex-shrink:0}.appointment-slot{flex:1;position:relative;min-height:60px;padding:.25rem}.calendar-appointment{border-radius:4px;position:relative;overflow:hidden;border-left:3px solid;padding:.5rem;margin-bottom:.25rem;box-shadow:0 1px 3px #0000001a;transition:all .2s ease}.calendar-appointment:hover{transform:translateY(-1px);box-shadow:0 2px 6px #00000026}@media(max-width:768px){.week-appointment{font-size:.7rem;padding:.2rem}.week-appointment .appointment-time{font-size:.65rem}.week-appointment .appointment-subtitle{font-size:.6rem}.appointment-time-display{font-size:.75rem}}.appointment-form select.error{border-color:#dc3545;box-shadow:0 0 0 .2rem #dc354540}.validation-error{color:#dc3545;font-size:.875rem;margin-top:.25rem;font-weight:500}.available-slots-info{color:#28a745;font-size:.875rem;margin-top:.25rem;font-weight:500}.loading-slots{color:#6c757d;font-size:.875rem;margin-top:.25rem;font-style:italic}.appointment-form .form-group{position:relative}.appointment-form .form-group.error label{color:#dc3545}.appointment-form .form-group.success label{color:#28a745}.time-slot-validation{margin-top:.5rem;padding:.5rem;border-radius:4px;font-size:.875rem}.time-slot-validation.valid{background-color:#28a7451a;border:1px solid rgba(40,167,69,.2);color:#155724}.time-slot-validation.invalid{background-color:#dc35451a;border:1px solid rgba(220,53,69,.2);color:#721c24}.appointment-form .form-row{display:grid;grid-template-columns:1fr 1fr;gap:1rem;margin-bottom:1rem}.appointment-form .form-group{margin-bottom:1.5rem}.appointment-form label{display:block;margin-bottom:.5rem;font-weight:600;color:#333}.appointment-form select,.appointment-form input,.appointment-form textarea{width:100%;padding:.75rem;border:1px solid #ddd;border-radius:4px;font-size:1rem;transition:border-color .15s ease-in-out,box-shadow .15s ease-in-out}.appointment-form select:focus,.appointment-form input:focus,.appointment-form textarea:focus{outline:none;border-color:#007bff;box-shadow:0 0 0 .2rem #007bff40}.appointment-form select:disabled{background-color:#f8f9fa;cursor:not-allowed}.conflict-warning{background-color:#fff3cd;border:1px solid #ffeaa7;color:#856404;padding:.75rem;border-radius:4px;margin-bottom:1rem;font-size:.875rem}.conflict-warning .warning-icon{margin-right:.5rem;font-weight:700}.real-time-validation{position:absolute;right:.75rem;top:50%;transform:translateY(-50%);font-size:1.2rem}.real-time-validation.valid{color:#28a745}.real-time-validation.invalid{color:#dc3545}@media(max-width:768px){.appointment-form .form-row{grid-template-columns:1fr;gap:.5rem}.validation-error,.available-slots-info,.loading-slots{font-size:.8rem}.appointment-form .time-slot-container{flex-direction:column;gap:.5rem}.appointment-form .btn-refresh-slots{width:44px;height:auto;align-self:stretch}}.day-view{background:#fff;border-radius:8px;box-shadow:0 2px 8px #0000001a;overflow:hidden;max-height:600px;overflow-y:auto;scrollbar-width:thin;scrollbar-color:#c1c1c1 #f1f1f1}.time-slot:last-child{border-bottom:none}.calendar-appointment{cursor:pointer;border-left-width:4px;font-size:.8rem;line-height:1.3;margin-bottom:.25rem}.calendar-appointment{border-left-width:4px;padding:.5rem;margin-bottom:.5rem;border-radius:4px;box-shadow:0 1px 3px #0000001a;height:-moz-fit-content;height:fit-content;min-height:60px}.calendar-appointment .appointment-content{padding:.25rem 0}@media(max-width:768px){.day-view{max-height:500px}.time-label{width:60px;font-size:.75rem;padding:.25rem}.appointment-slot{padding:.125rem}.calendar-appointment{padding:.25rem;font-size:.7rem}.appointment-title{font-size:.8rem}.appointment-subtitle{font-size:.65rem}.appointment-time-display{font-size:.7rem}.appointment-notes{font-size:.6rem}.appointment-reminders{margin:var(--spacing-md) 0}.appointment-reminders h3{font-size:1.2rem;margin-bottom:var(--spacing-md)}.reminders-list{gap:var(--spacing-sm)}.reminder-item{padding:var(--spacing-md);gap:var(--spacing-sm)}.reminder-icon{width:30px;height:30px;margin-right:var(--spacing-sm)}.reminder-text{font-size:.95rem;line-height:1.4}.reminder-time{font-size:.8rem}.reminder-item .btn{padding:var(--spacing-sm) var(--spacing-md);font-size:.85rem;min-width:80px;min-height:40px;touch-action:manipulation;-webkit-tap-highlight-color:transparent}.reminder-item{touch-action:manipulation;-webkit-tap-highlight-color:transparent}.reminder-item:active{transform:scale(.98);transition:transform .1s ease}}@media(min-width:769px)and (max-width:1024px){.day-view{max-height:550px}}.appointment-slot:empty:after{content:"No appointments";color:#ccc;font-style:italic;font-size:.8rem;display:flex;align-items:center;justify-content:center;height:60px}.appointment-slot:not(:empty):after{display:none}.day-view{background:#fff;border-radius:8px;box-shadow:0 2px 8px #0000001a;overflow:hidden;max-height:600px;overflow-y:auto;scrollbar-width:thin;scrollbar-color:#c1c1c1 #f1f1f1;scroll-behavior:smooth;-webkit-overflow-scrolling:touch}.day-view::-webkit-scrollbar{width:8px}.day-view::-webkit-scrollbar-track{background:#f1f1f1;border-radius:4px}.day-view::-webkit-scrollbar-thumb{background:#c1c1c1;border-radius:4px}.day-view::-webkit-scrollbar-thumb:hover{background:#a8a8a8}.time-slots{display:flex;flex-direction:column;min-height:100%}.time-slot{border-bottom:1px solid #eee;min-height:60px;position:relative;display:flex;align-items:flex-start;background:#fff}.time-label{width:80px;padding:.5rem;font-weight:600;color:#666;font-size:.875rem;flex-shrink:0;background:#fff;position:sticky;left:0;z-index:5}.calendar-appointment.consultation-appointment{border-left-color:#ff6b6b;background-color:#fff5f5;border-left-width:6px}.calendar-appointment.consultation-appointment .appointment-title{color:#d63031;font-weight:600}.calendar-appointment.visiting-appointment{border-left-color:#74b9ff;background-color:#f0f8ff;border-left-width:6px}.calendar-appointment.visiting-appointment .appointment-title{color:#0984e3;font-weight:600}.calendar-appointment.current-doctor{border-left-color:#00b894;background-color:#f0fff4;border-left-width:6px}.calendar-appointment.current-doctor .appointment-title{color:#00a085;font-weight:600}.calendar-appointment.other-doctor-1{border-left-color:#a29bfe;background-color:#f8f7ff}.calendar-appointment.other-doctor-2{border-left-color:#fd79a8;background-color:#fff5f8}.calendar-appointment.other-doctor-3{border-left-color:#fdcb6e;background-color:#fffbf0}.calendar-appointment.other-doctor-4{border-left-color:#6c5ce7;background-color:#f7f6ff}.calendar-appointment.other-doctor-5{border-left-color:#e84393;background-color:#fff0f5}.week-appointment.consultation-appointment,.month-appointment.consultation-appointment{background-color:#ff6b6b;color:#fff;border-left:4px solid #d63031}.week-appointment.visiting-appointment,.month-appointment.visiting-appointment{background-color:#74b9ff;color:#fff;border-left:4px solid #0984e3}.week-appointment.current-doctor,.month-appointment.current-doctor{background-color:#00b894;color:#fff;border-left:4px solid #00a085}@media(max-width:768px){.list-header{flex-direction:column;gap:var(--spacing-md);align-items:stretch}.list-filters{flex-direction:column;gap:var(--spacing-sm)}.search-input{min-width:auto;width:100%}.appointments-grid{padding:var(--spacing-sm)}.appointment-card{margin-bottom:var(--spacing-sm)}.appointment-content{flex-direction:column;align-items:flex-start;gap:var(--spacing-sm)}.patient-info{width:100%}.appointment-meta{width:100%;justify-content:space-between}.appointment-notes{max-width:none;white-space:normal}}@media(max-width:480px){.list-header{padding:var(--spacing-md)}.appointments-grid,.appointment-card{padding:var(--spacing-sm)}.btn-edit,.btn-delete{padding:6px;font-size:16px}}.past-appointment-label{color:#059669;font-size:12px;font-weight:500;padding:4px 8px;background:#d1fae5;border-radius:4px;cursor:not-allowed}.patients-module{padding:var(--spacing-md)}@media(max-width:768px){.patients-module{padding:var(--spacing-sm)}.patients-filters{gap:var(--spacing-sm);margin-bottom:var(--spacing-md)}.filter-options{flex-direction:column;gap:var(--spacing-sm)}.search-box{order:-1}.search-box input{font-size:1rem;padding:var(--spacing-sm)}.patients-stats{grid-template-columns:1fr;gap:var(--spacing-sm);margin-bottom:var(--spacing-md)}.patient-card{margin-bottom:var(--spacing-sm)}.patient-header{flex-direction:column;align-items:flex-start;gap:var(--spacing-sm);padding-bottom:var(--spacing-sm)}.patient-avatar{width:50px;height:50px;margin-right:0;align-self:center}.patient-info{margin:0;width:100%;text-align:center}.patient-info h3{font-size:1.2rem;margin-bottom:var(--spacing-xs)}.patient-details{font-size:.9rem}.patient-actions{flex-direction:column;gap:var(--spacing-xs);width:100%}.patient-actions button{width:100%;padding:var(--spacing-sm);font-size:.9rem}.patient-stats-grid{grid-template-columns:1fr;gap:var(--spacing-sm)}.stat-card{padding:var(--spacing-sm)}.stat-card h3{font-size:1.5rem}.stat-card p{font-size:.9rem}}@media(max-width:480px){.patients-module{padding:var(--spacing-xs)}.patient-info h3{font-size:1.1rem}.patient-details{font-size:.8rem}.patient-actions button{font-size:.8rem;padding:var(--spacing-xs)}.stat-card h3{font-size:1.3rem}.stat-card p{font-size:.8rem}}.patients-filters{display:flex;flex-direction:column;gap:var(--spacing-md);margin-bottom:var(--spacing-lg)}.search-box input{padding-right:40px}.search-box svg,.search-box .clear-search{position:absolute;top:50%;right:var(--spacing-md);transform:translateY(-50%);color:var(--dark-gray)}.clear-search{background:none;border:none;cursor:pointer;padding:var(--spacing-xs);border-radius:var(--radius);transition:var(--transition);display:flex;align-items:center;justify-content:center}.clear-search:hover{background-color:var(--light-gray);color:var(--danger-color)}.patients-stats{display:grid;grid-template-columns:repeat(1,1fr);gap:var(--spacing-md);margin-bottom:var(--spacing-lg)}.patient-card{margin-bottom:var(--spacing-md);transition:var(--transition)}.patient-card:hover{transform:translateY(-2px)}.patient-header{display:flex;align-items:center;padding-bottom:var(--spacing-md)}.patient-avatar{width:40px;height:40px;border-radius:50%;overflow:hidden;margin-right:var(--spacing-md)}.patient-avatar .avatar-placeholder{width:100%;height:100%;background-color:var(--primary-color);color:var(--white);display:flex;align-items:center;justify-content:center;font-weight:600;font-size:16px;border-radius:50%}.patient-info{flex:1;margin:0 var(--spacing-md)}.patient-info h3{margin-bottom:var(--spacing-xs);font-size:18px}.patient-details{display:flex;flex-direction:column;font-size:14px;color:var(--text-light)}.patient-contact,.patient-email{margin-bottom:2px}.patient-content{display:grid;grid-template-columns:repeat(1,1fr);gap:var(--spacing-md);padding:var(--spacing-md) 0}.patient-section{padding:var(--spacing-md);background-color:var(--light-gray);border-radius:var(--radius)}.section-title{font-weight:600;margin-bottom:var(--spacing-sm);font-size:14px;color:var(--primary-color)}.appointment-info{display:flex;margin-bottom:var(--spacing-xs);font-size:14px}.appointment-info:last-child{margin-bottom:0}.appointment-info .label{font-weight:500;min-width:120px}.medical-conditions{display:flex;flex-wrap:wrap;gap:var(--spacing-xs)}.condition-tag{background-color:#3498db1a;color:var(--primary-color);border-radius:12px;padding:2px 8px;font-size:12px}.recent-treatment{font-size:14px}.treatment-type{font-weight:500}.treatment-date,.treatment-doctor{color:var(--text-light);font-size:12px;margin-top:2px}.no-data{color:var(--text-light);font-style:italic;font-size:14px}.patient-actions{display:flex;gap:var(--spacing-sm);align-items:center}.action-btn{display:flex;align-items:center;padding:var(--spacing-xs) var(--spacing-sm);border:1px solid var(--medium-gray);border-radius:var(--radius);background-color:var(--white);color:var(--text-color);font-size:14px;transition:var(--transition)}.action-btn:hover{background-color:var(--light-gray);border-color:var(--primary-color);color:var(--primary-color)}.action-btn svg{margin-right:var(--spacing-xs)}.patient-actions .btn{display:flex;align-items:center;justify-content:center;min-width:auto;height:32px;padding:.5rem 1rem}.patient-actions .btn-danger{background-color:#ef4444;color:#fff;border:none;padding:.5rem 1rem;border-radius:6px;transition:all .2s ease;height:32px;display:flex;align-items:center;justify-content:center}.patient-actions .btn-danger:hover{background-color:#dc2626;transform:translateY(-1px)}.patient-card.deleting{animation:deleteSlideOut .8s ease-in-out forwards;pointer-events:none}@keyframes deleteSlideOut{0%{opacity:1;transform:translate(0) scale(1)}50%{opacity:.7;transform:translate(-20px) scale(.98);background-color:#fef2f2;border-color:#fecaca}to{opacity:0;transform:translate(-100px) scale(.9);height:0;margin-bottom:0;padding:0;overflow:hidden}}.spinner{width:16px;height:16px;border:2px solid rgba(255,255,255,.3);border-top:2px solid white;border-radius:50%;animation:spin 1s linear infinite}.patient-actions .btn-danger.loading{background-color:#f87171;cursor:not-allowed}.patient-actions .btn-danger.loading:hover{background-color:#f87171;transform:none}.patient-card.deleting .patient-actions .btn{opacity:.6;cursor:not-allowed}.no-results{text-align:center;padding:var(--spacing-xl) 0;color:var(--text-light)}@media(min-width:576px){.patients-filters{flex-direction:row}.patients-stats,.patient-content{grid-template-columns:repeat(3,1fr)}}.modal-content{width:-moz-fit-content;width:fit-content;min-width:400px;max-height:90vh;overflow-y:auto;border-radius:var(--radius);box-shadow:var(--shadow-strong);background:var(--white);padding:var(--spacing-lg)}.patients-list{max-height:none!important;height:auto!important;overflow:visible!important}.patient-form{width:100%;max-width:800px}.patient-form h3{margin-bottom:var(--spacing-md);text-align:center;color:var(--primary-color);font-size:24px}.form-section{margin-bottom:var(--spacing-lg);padding:var(--spacing-md);background-color:var(--light-gray);border-radius:var(--radius)}.form-section h4{margin-bottom:var(--spacing-md);color:var(--text-color);font-size:18px;border-bottom:1px solid var(--medium-gray);padding-bottom:var(--spacing-sm)}@media(min-width:576px){.form-row{grid-template-columns:repeat(2,1fr)}}.form-group label{display:block;margin-bottom:var(--spacing-xs);font-weight:500;font-size:14px}.form-actions{display:flex;justify-content:flex-end;gap:var(--spacing-md);margin-top:var(--spacing-lg)}.error-message{color:#dc2626!important;font-size:12px!important;margin-top:4px!important;margin-bottom:8px!important;display:block!important;font-weight:500!important;line-height:1.4!important;position:relative!important;z-index:1!important;background:transparent!important;border:none!important;padding:0!important}.general-error{background-color:#fef2f2!important;border:1px solid #fecaca!important;border-radius:6px!important;padding:12px!important;margin-bottom:16px!important;color:#dc2626!important;font-size:14px!important;font-weight:500!important;position:relative!important;z-index:2!important}.form-group input.error,.form-group select.error,.form-group textarea.error{border-color:#dc2626!important;box-shadow:0 0 0 1px #dc2626!important}.form-group input.error:focus,.form-group select.error:focus,.form-group textarea.error:focus{border-color:#dc2626!important;box-shadow:0 0 0 2px #dc262633!important}.modal-content .error-message{color:#dc2626!important;font-size:12px!important;display:block!important;margin-top:4px!important;margin-bottom:8px!important;font-weight:500!important;z-index:10!important;position:relative!important}.modal-content .general-error{background-color:#fef2f2!important;border:1px solid #fecaca!important;color:#dc2626!important;padding:12px!important;margin-bottom:16px!important;border-radius:6px!important;z-index:10!important;position:relative!important}.minimal-patient-form .form-description{color:var(--text-color);font-size:14px;margin-bottom:var(--spacing-lg);text-align:center;opacity:.8;line-height:1.5}.checkbox-group{display:flex;align-items:flex-start;gap:var(--spacing-sm)}.checkbox-group input[type=checkbox]{margin:2px 0 0;width:18px;height:18px;accent-color:var(--primary-color);cursor:pointer}.checkbox-label{cursor:pointer;display:flex;align-items:flex-start;margin-bottom:0;font-weight:400;line-height:1.5}.checkbox-text{color:var(--text-color);font-size:14px}@media(max-width:768px){.patient-form{max-width:100%;padding:var(--spacing-sm)}.patient-form h3{font-size:1.5rem;margin-bottom:var(--spacing-sm)}.form-section{padding:var(--spacing-sm);margin-bottom:var(--spacing-md)}.form-section h4{font-size:1.2rem;margin-bottom:var(--spacing-sm)}.form-row{grid-template-columns:1fr;gap:var(--spacing-sm)}.form-group{margin-bottom:var(--spacing-sm)}.form-group label{font-size:.9rem}.form-actions{flex-direction:column;gap:var(--spacing-sm);margin-top:var(--spacing-md)}.form-actions .btn{width:100%;min-width:auto;padding:var(--spacing-sm);font-size:.9rem}}@media(max-width:480px){.patient-form{padding:var(--spacing-xs)}.patient-form h3{font-size:1.3rem}.form-section{padding:var(--spacing-xs)}.form-section h4{font-size:1.1rem}.form-group label{font-size:.8rem}.form-actions .btn{font-size:.8rem;padding:var(--spacing-xs)}}.finance-module{padding:var(--spacing-md)}.filter-section{margin-bottom:var(--spacing-md);padding:var(--spacing-md);background:var(--light-gray);border-radius:var(--radius-sm);border:1px solid var(--medium-gray)}.filter-row{display:flex;gap:var(--spacing-md);align-items:end;flex-wrap:wrap}.filter-group{display:flex;flex-direction:column;min-width:150px}.filter-group label{font-size:14px;font-weight:500;color:var(--text-color);margin-bottom:var(--spacing-xs)}.filter-group .form-input{padding:var(--spacing-sm);border:1px solid var(--medium-gray);border-radius:var(--radius-sm);font-size:14px;background:var(--white)}.filter-group .btn{padding:var(--spacing-sm) var(--spacing-md);font-size:14px;white-space:nowrap}@media(max-width:1000px){.finance-module{padding:var(--spacing-sm)}.module-header{flex-direction:column;gap:var(--spacing-sm);align-items:stretch}.module-header h2{text-align:center;font-size:1.5rem}.header-actions{flex-direction:column;gap:var(--spacing-sm)}.header-actions .btn{width:100%;justify-content:center;padding:var(--spacing-sm);font-size:.9rem}.filter-row{flex-direction:column;gap:var(--spacing-sm)}.filter-group{min-width:auto;width:100%}.finance-summary{grid-template-columns:1fr;gap:var(--spacing-sm);margin-bottom:var(--spacing-md)}.summary-card{padding:var(--spacing-sm);flex-direction:row;align-items:center}.summary-icon{width:45px;height:45px;margin-right:var(--spacing-sm);flex-shrink:0}.summary-value{font-size:1.8rem;font-weight:700;margin-bottom:2px}.summary-label{font-size:.9rem;font-weight:500}.summary-period{font-size:.8rem}.finance-charts{margin-bottom:var(--spacing-md)}.chart-header{flex-direction:column;gap:var(--spacing-sm);align-items:stretch}.chart-header h3{text-align:center;font-size:1.2rem}.chart-filters{justify-content:center;flex-wrap:wrap;gap:var(--spacing-xs)}.chart-filter{padding:var(--spacing-xs) var(--spacing-sm);font-size:.8rem;min-width:80px;text-align:center}.chart-container{height:250px}.chart-bars{padding-bottom:var(--spacing-sm)}.chart-bar{width:14%}.bar-group{height:150px}.bar{width:35%}.bar-label{font-size:.7rem}.chart-legend{gap:var(--spacing-md);margin-top:var(--spacing-sm)}.legend-item{font-size:.8rem}.legend-color{width:14px;height:14px}.transactions-section{margin-bottom:var(--spacing-md)}.transaction-filters{flex-direction:column;gap:var(--spacing-sm)}.transactions-table{overflow-x:auto;border-radius:var(--radius);box-shadow:var(--shadow)}.transactions-table table{min-width:650px;font-size:.9rem}.transactions-table th{padding:var(--spacing-sm);font-size:.8rem;white-space:nowrap}.transactions-table td{padding:var(--spacing-sm);font-size:.85rem}.category-badge{padding:3px 8px;font-size:.7rem}.table-actions{flex-direction:column;gap:var(--spacing-xs);min-width:80px}.action-btn{width:28px;height:28px;font-size:.8rem}.transaction-actions{flex-direction:column;gap:var(--spacing-xs)}.transaction-actions button{padding:var(--spacing-xs);font-size:.8rem;width:100%;justify-content:center}.pagination{flex-direction:column;gap:var(--spacing-sm);align-items:center}.pagination-info{text-align:center;font-size:.9rem}.pagination-controls{gap:var(--spacing-xs);flex-wrap:wrap;justify-content:center}.pagination-controls button{padding:var(--spacing-xs) var(--spacing-sm);font-size:.8rem;min-width:40px}}@media(max-width:480px){.finance-module{padding:var(--spacing-xs)}.module-header h2{font-size:1.3rem}.header-actions .btn{font-size:.8rem;padding:var(--spacing-xs)}.finance-summary{gap:var(--spacing-xs)}.summary-card{padding:var(--spacing-xs)}.summary-icon{width:40px;height:40px;margin-right:var(--spacing-xs)}.summary-value{font-size:1.5rem}.summary-label{font-size:.8rem}.summary-period{font-size:.7rem}.chart-header h3{font-size:1.1rem}.chart-filter{padding:6px 10px;font-size:.7rem;min-width:70px}.chart-container{height:200px}.bar-group{height:120px}.bar-label{font-size:.6rem}.chart-legend{gap:var(--spacing-sm)}.legend-item{font-size:.7rem}.legend-color{width:12px;height:12px}.transactions-table table{min-width:550px;font-size:.8rem}.transactions-table th{padding:8px 6px;font-size:.7rem}.transactions-table td{padding:8px 6px;font-size:.8rem}.category-badge{padding:2px 6px;font-size:.6rem}.action-btn{width:26px;height:26px;font-size:.7rem}.transaction-actions button{font-size:.7rem;padding:6px 8px}.pagination-info{font-size:.8rem}.pagination-controls button{font-size:.7rem;padding:6px 10px;min-width:35px}}@media(max-width:1000px){.summary-card{cursor:pointer;transition:all .2s ease}.summary-card:active{transform:scale(.98)}.transactions-table{-webkit-overflow-scrolling:touch;scrollbar-width:thin}.transactions-table::-webkit-scrollbar{height:6px}.transactions-table::-webkit-scrollbar-track{background:var(--light-gray);border-radius:3px}.transactions-table::-webkit-scrollbar-thumb{background:var(--medium-gray);border-radius:3px}.transactions-table::-webkit-scrollbar-thumb:hover{background:var(--text-light)}.header-actions .btn,.transaction-actions button,.pagination-controls button{-webkit-tap-highlight-color:transparent;touch-action:manipulation}.chart-container{touch-action:pan-x}.finance-module>*+*{margin-top:var(--spacing-md)}.summary-card{border:1px solid rgba(0,0,0,.05)}.transactions-table{border:1px solid var(--medium-gray)}}@media(max-width:480px){.summary-card{min-height:80px}.action-btn{min-width:32px;min-height:32px}.transactions-table th{position:sticky;top:0;background:var(--light-gray);z-index:1}.transaction-actions{min-width:90px}.chart-bar{min-width:20px}.bar{min-width:8px}}.module-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--spacing-md)}.module-header h2{margin-bottom:0}.module-header .btn{display:flex;align-items:center;gap:var(--spacing-sm)}.finance-summary{display:grid;grid-template-columns:repeat(1,1fr);gap:var(--spacing-md);margin-bottom:var(--spacing-lg)}.summary-icon{width:48px;height:48px;border-radius:12px;display:flex;align-items:center;justify-content:center;margin-right:var(--spacing-md);color:#fff}.summary-card.income .summary-icon{background-color:#2ecc7133;color:var(--secondary-color)}.summary-card.expenses .summary-icon{background-color:#e74c3c33;color:var(--danger-color)}.summary-card.profit .summary-icon{background-color:#3498db33;color:var(--primary-color)}.summary-card.bills .summary-icon{background-color:#9b59b633;color:#9b59b6}.summary-label{color:var(--text-light);font-size:14px;margin-bottom:var(--spacing-xs)}.summary-period{font-size:12px;color:var(--text-light)}.finance-charts{margin-bottom:var(--spacing-lg)}.chart-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--spacing-md)}.chart-filters{display:flex;gap:var(--spacing-xs)}.chart-filter{padding:var(--spacing-xs) var(--spacing-sm);border:1px solid var(--medium-gray);border-radius:var(--radius);background-color:var(--white);font-size:14px;cursor:pointer;transition:var(--transition)}.chart-filter.active{background-color:var(--primary-color);border-color:var(--primary-color);color:var(--white)}.chart-container{height:300px;overflow:hidden}.chart-placeholder{height:100%;width:100%;display:flex;flex-direction:column}.chart-bars{flex:1;display:flex;justify-content:space-around;align-items:flex-end;padding-bottom:var(--spacing-md)}.chart-bar{width:12%;display:flex;flex-direction:column;align-items:center}.bar-group{width:100%;height:200px;display:flex;justify-content:center;align-items:flex-end;gap:4px}.bar{width:40%;border-radius:4px 4px 0 0}.income-bar{background-color:var(--secondary-color)}.expense-bar{background-color:var(--danger-color)}.bar-label{margin-top:var(--spacing-xs);font-size:12px;color:var(--text-light)}.chart-legend{display:flex;justify-content:center;gap:var(--spacing-lg);margin-top:var(--spacing-md)}.legend-item{display:flex;align-items:center}.legend-color{width:16px;height:16px;border-radius:4px;margin-right:var(--spacing-xs)}.legend-color.income{background-color:var(--secondary-color)}.legend-color.expense{background-color:var(--danger-color)}.legend-label{font-size:14px;color:var(--text-light)}.transactions-section{margin-bottom:var(--spacing-lg)}.transaction-filters{display:flex;gap:var(--spacing-md)}.transactions-table{width:100%;border-collapse:collapse;margin-top:var(--spacing-md)}.transactions-table th{text-align:left;padding:var(--spacing-sm);background-color:var(--light-gray);font-weight:600;font-size:14px}.transactions-table td{padding:var(--spacing-sm);border-bottom:1px solid var(--medium-gray);font-size:14px}.category-badge{display:inline-block;padding:2px 8px;border-radius:12px;font-size:12px;font-weight:500}.category-badge.income{background-color:#2ecc711a;color:var(--secondary-color)}.category-badge.expense{background-color:#e74c3c1a;color:var(--danger-color)}td.income{color:var(--secondary-color);font-weight:500}td.expense{color:var(--danger-color);font-weight:500}.action-btn{width:24px;height:24px;border-radius:4px;background-color:var(--light-gray);border:none;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:var(--transition)}.action-btn:hover{background-color:var(--medium-gray)}.billing-invoices-section .section-grid{display:grid;grid-template-columns:1fr;gap:var(--spacing-md)}.invoices-list,.payments-list{margin-top:var(--spacing-md)}.invoice-item,.payment-item{padding:var(--spacing-md);background-color:var(--light-gray);border-radius:var(--radius);margin-bottom:var(--spacing-sm);position:relative}.invoice-header{display:flex;justify-content:space-between;margin-bottom:var(--spacing-xs)}.invoice-id{font-weight:600}.invoice-amount{font-weight:600;color:var(--primary-color)}.invoice-details{margin-bottom:var(--spacing-xs);font-size:14px}.invoice-date{color:var(--text-light);font-size:12px}.invoice-footer{display:flex;justify-content:space-between;align-items:center;margin-top:var(--spacing-sm)}.status-badge{display:inline-block;padding:2px 8px;border-radius:12px;font-size:12px;font-weight:500}.status-badge.paid{background-color:#2ecc711a;color:var(--secondary-color)}.status-badge.pending{background-color:#f39c121a;color:var(--warning-color)}.payment-item{display:flex;align-items:center}.payment-icon{width:32px;height:32px;border-radius:8px;display:flex;align-items:center;justify-content:center;margin-right:var(--spacing-md)}.payment-icon.expense{background-color:#e74c3c1a;color:var(--danger-color)}.payment-icon.income{background-color:#2ecc711a;color:var(--secondary-color)}.payment-details{flex:1}.payment-title{font-weight:500}.payment-due{font-size:12px;color:var(--text-light)}.payment-amount{font-weight:600}.payment-amount.expense{color:var(--danger-color)}.payment-amount.income{color:var(--secondary-color)}.expenses-list{display:flex;flex-direction:column;gap:var(--spacing-sm)}.expense-item{display:flex;align-items:center;padding:var(--spacing-sm);border-radius:var(--radius);background-color:var(--light-gray);transition:var(--transition)}.expense-item:hover{background-color:var(--medium-gray)}.expense-icon{width:32px;height:32px;border-radius:8px;background-color:#e74c3c1a;color:var(--danger-color);display:flex;align-items:center;justify-content:center;margin-right:var(--spacing-sm)}.expense-details{flex:1;min-width:0}.expense-title{font-weight:500;font-size:14px;color:var(--text-color);margin-bottom:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.expense-date{font-size:12px;color:var(--text-light)}.expense-amount{font-weight:600;color:var(--danger-color);font-size:14px}.no-expenses,.no-invoices{text-align:center;padding:var(--spacing-md);color:var(--text-light);font-style:italic}.invoice-details-modal{background:var(--white);border-radius:var(--radius);max-width:90vw;width:100%;max-height:90vh;overflow-y:auto}.invoice-details-modal .invoice-header{display:flex;justify-content:space-between;align-items:center;padding:var(--spacing-md);border-bottom:1px solid var(--medium-gray);background:var(--light-gray);border-radius:var(--radius) var(--radius) 0 0}.invoice-details-modal .invoice-header h2{margin:0;color:var(--text-color);font-size:20px}.close-btn{background:none;border:none;font-size:24px;cursor:pointer;color:var(--text-light);padding:0;width:30px;height:30px;display:flex;align-items:center;justify-content:center;border-radius:50%;transition:var(--transition)}.close-btn:hover{background:var(--medium-gray);color:var(--text-color)}.invoice-content{padding:var(--spacing-lg)}.invoice-section{margin-bottom:var(--spacing-xl)}.invoice-section h3{margin-bottom:var(--spacing-lg);color:var(--text-color);font-size:18px;border-bottom:2px solid var(--primary-color);padding-bottom:var(--spacing-sm)}.info-grid{display:grid;grid-template-columns:1fr 1fr;gap:var(--spacing-lg)}.info-item{display:flex;flex-direction:column;gap:var(--spacing-xs)}.info-item label{font-weight:600;color:var(--text-light);font-size:16px;margin-bottom:var(--spacing-sm)}.info-item span{color:var(--text-color);font-size:18px}.info-item .amount{font-weight:600;color:var(--secondary-color);font-size:22px}.services-list{border:1px solid var(--medium-gray);border-radius:var(--radius);overflow:hidden;margin-top:var(--spacing-md)}.service-item{display:flex;justify-content:space-between;align-items:center;padding:var(--spacing-lg);border-bottom:1px solid var(--medium-gray);background:var(--light-gray)}.service-item:last-child{border-bottom:none}.service-name{font-weight:500;color:var(--text-color);font-size:16px}.service-amount{font-weight:600;color:var(--secondary-color);font-size:18px}.payment-summary{background:var(--light-gray);border-radius:var(--radius);padding:var(--spacing-lg);margin-top:var(--spacing-md)}.summary-row{display:flex;justify-content:space-between;align-items:center;padding:var(--spacing-md) 0;border-bottom:1px solid var(--medium-gray);font-size:16px}.summary-row:last-child{border-bottom:none}.summary-row.total{font-weight:700;font-size:20px;color:var(--secondary-color);border-top:2px solid var(--medium-gray);margin-top:var(--spacing-md);padding-top:var(--spacing-lg)}@media(max-width:1000px){.info-grid{grid-template-columns:1fr}.invoice-details-modal{margin:var(--spacing-sm);max-width:95vw;max-height:95vh}.invoice-content{padding:var(--spacing-md)}.info-item label{font-size:14px}.info-item span{font-size:16px}.info-item .amount{font-size:18px}}.all-invoices-modal,.all-expenses-modal{background:var(--white);border-radius:var(--radius);max-width:95vw;width:100%;max-height:90vh;overflow-y:auto}.all-invoices-modal .modal-header,.all-expenses-modal .modal-header{display:flex;justify-content:space-between;align-items:center;padding:var(--spacing-md);border-bottom:1px solid var(--medium-gray);background:var(--light-gray);border-radius:var(--radius) var(--radius) 0 0}.all-invoices-modal .modal-header h2,.all-expenses-modal .modal-header h2{margin:0;color:var(--text-color);font-size:20px}.modal-content{padding:var(--spacing-md)}@media(max-width:1000px){.modal-content{padding:var(--spacing-sm);width:100%;min-width:auto;max-height:95vh}.all-invoices-modal,.all-expenses-modal{margin:var(--spacing-sm);max-width:98vw;max-height:95vh}.invoices-table,.expenses-table{min-width:600px;font-size:13px}.invoices-table th,.invoices-table td,.expenses-table th,.expenses-table td{padding:var(--spacing-sm) var(--spacing-md)}}@media(max-width:480px){.modal-content{padding:var(--spacing-xs);max-height:98vh}.all-invoices-modal,.all-expenses-modal{margin:var(--spacing-xs);max-width:99vw;max-height:98vh}.invoices-table,.expenses-table{min-width:500px;font-size:12px}.invoices-table th,.invoices-table td,.expenses-table th,.expenses-table td{padding:var(--spacing-xs) var(--spacing-sm)}.expense-card{padding:var(--spacing-sm)}.expense-card-header{flex-direction:column;align-items:flex-start;gap:var(--spacing-xs)}.expense-amount{font-size:16px}.expense-description{font-size:15px}.expense-card-actions{flex-direction:column;gap:var(--spacing-xs)}.expense-card-actions .btn{font-size:11px;padding:var(--spacing-xs);min-width:auto}.invoice-card{padding:var(--spacing-sm)}.invoice-card-header{flex-direction:column;align-items:flex-start;gap:var(--spacing-xs)}.invoice-amount{font-size:16px}.invoice-description{font-size:15px}.invoice-patient{font-size:13px}.invoice-card-actions{flex-direction:column;gap:var(--spacing-xs)}.invoice-card-actions .btn{font-size:11px;padding:var(--spacing-xs);min-width:auto}}.invoices-table-container,.expenses-table-container{overflow-x:auto}.mobile-expense-cards,.mobile-invoice-cards{display:none}.invoices-table,.expenses-table{width:100%;min-width:800px;border-collapse:collapse;margin-top:var(--spacing-sm)}.invoices-table th,.invoices-table td,.expenses-table th,.expenses-table td{padding:var(--spacing-md) var(--spacing-lg);text-align:left;border-bottom:1px solid var(--medium-gray);white-space:nowrap}.invoices-table th,.expenses-table th{background-color:var(--light-gray);font-weight:600;color:var(--text-color);font-size:16px;position:sticky;top:0;z-index:10}.invoices-table td,.expenses-table td{font-size:15px;color:var(--text-color)}.invoices-table tr:hover,.expenses-table tr:hover{background-color:var(--light-gray)}.no-data{text-align:center;padding:var(--spacing-lg);color:var(--text-light);font-style:italic}@media(max-width:1000px){.all-invoices-modal,.all-expenses-modal{margin:var(--spacing-sm);max-width:98vw;max-height:95vh}.invoices-table,.expenses-table{display:none}.mobile-expense-cards,.mobile-invoice-cards{display:block}.expense-card{background:var(--white);border:1px solid var(--medium-gray);border-radius:var(--radius-sm);padding:var(--spacing-md);margin-bottom:var(--spacing-sm);box-shadow:0 2px 4px #0000001a}.expense-card-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--spacing-sm)}.expense-date{font-size:14px;color:var(--text-muted);font-weight:500}.expense-amount{font-size:18px;font-weight:600;color:var(--primary-color)}.expense-description{font-size:16px;color:var(--text-color);margin-bottom:var(--spacing-sm);line-height:1.4}.expense-card-actions{display:flex;gap:var(--spacing-sm);justify-content:flex-end}.expense-card-actions .btn{font-size:12px;padding:var(--spacing-xs) var(--spacing-sm);min-width:60px}.invoice-card{background:var(--white);border:1px solid var(--medium-gray);border-radius:var(--radius-sm);padding:var(--spacing-md);margin-bottom:var(--spacing-sm);box-shadow:0 2px 4px #0000001a}.invoice-card-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--spacing-sm)}.invoice-date{font-size:14px;color:var(--text-muted);font-weight:500}.invoice-amount{font-size:18px;font-weight:600;color:var(--primary-color)}.invoice-description{font-size:16px;color:var(--text-color);margin-bottom:var(--spacing-sm);line-height:1.4}.invoice-patient{font-size:14px;color:var(--text-muted);margin-bottom:var(--spacing-sm)}.invoice-card-actions{display:flex;gap:var(--spacing-sm);justify-content:flex-end}.invoice-card-actions .btn{font-size:12px;padding:var(--spacing-xs) var(--spacing-sm);min-width:60px}}@media(min-width:576px){.finance-summary{grid-template-columns:repeat(2,1fr)}}@media(min-width:992px){.finance-summary{grid-template-columns:repeat(4,1fr)}.billing-invoices-section .section-grid{grid-template-columns:repeat(2,1fr)}}.invoice-actions{display:flex;justify-content:center;margin-top:30px;padding-top:20px;border-top:1px solid #e9ecef}.invoice-actions .btn{display:flex;align-items:center;gap:8px;padding:12px 24px;font-size:14px;font-weight:500;border-radius:6px;cursor:pointer;transition:all .3s ease;border:1px solid #007bff;background:transparent;color:#007bff}.invoice-actions .btn:hover{background:#007bff;color:#fff}.action-buttons{display:flex;gap:8px;align-items:center}.action-buttons .btn{padding:6px 12px;font-size:12px;border-radius:6px;cursor:pointer;transition:all .2s ease;border:1px solid}.action-buttons .btn-outline{background:transparent;border-color:#6b7280;color:#6b7280}.action-buttons .btn-outline:hover{background:#6b7280;color:#fff}.action-buttons .btn-danger{background:#ef4444;color:#fff;border-color:#ef4444}.action-buttons .btn-danger:hover{background:#dc2626;border-color:#dc2626}.pagination{display:flex;flex-direction:column;align-items:center;gap:16px;margin-top:20px;padding-top:20px;border-top:1px solid #e5e7eb}.pagination-info{font-size:14px;color:#6b7280}.pagination-controls{display:flex;align-items:center;gap:8px}.page-numbers{display:flex;gap:4px}.page-numbers .btn{min-width:36px;height:36px;padding:0;display:flex;align-items:center;justify-content:center;font-size:14px}.pagination-controls .btn{padding:8px 16px;font-size:14px}.pagination-controls .btn:disabled{opacity:.5;cursor:not-allowed}.finance-module .btn-outline{border:2px solid var(--primary-color);color:var(--primary-color)!important;background-color:transparent;font-weight:500;padding:10px 20px;transition:all .3s ease;text-decoration:none;cursor:pointer}.finance-module .btn-outline:hover{background-color:var(--primary-color)!important;color:var(--white)!important;border-color:var(--primary-color);transform:translateY(-1px);box-shadow:0 4px 8px rgba(var(--primary-rgb),.3)}.finance-module .btn-outline:focus{outline:none;box-shadow:0 0 0 3px rgba(var(--primary-rgb),.2)}.finance-module .btn-outline:active{transform:translateY(0);box-shadow:0 2px 4px rgba(var(--primary-rgb),.3)}.invoice-actions .btn svg{width:16px;height:16px}.payment-links-list{display:flex;flex-direction:column;gap:12px;margin-top:12px}.payment-link-item{display:flex;justify-content:space-between;align-items:center;padding:12px;background:#f9fafb;border-radius:8px;border:1px solid #e5e7eb}.payment-link-info{flex:1;display:flex;flex-direction:column;gap:8px}.payment-link-status{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.transaction-id-small{font-family:monospace;font-size:.75rem;color:#6b7280;background:#fff;padding:2px 6px;border-radius:4px}.payment-link-url-small{font-size:.875rem}.payment-link-url-small a{color:#3b82f6;text-decoration:none;word-break:break-all}.payment-link-url-small a:hover{text-decoration:underline}.payment-link-amount{font-size:.875rem;color:#059669;font-weight:600}.btn-sm{padding:6px 12px;font-size:.875rem}.expense-form{max-width:800px;margin:0 auto;padding:20px}.form-header{text-align:center;margin-bottom:30px}.form-header h2{color:#dc3545;margin-bottom:8px;font-size:24px;font-weight:600}.form-header p{color:#6c757d;margin:0;font-size:14px}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin-bottom:20px}.form-group label{font-weight:500;margin-bottom:8px;color:#333;font-size:14px}.form-group input,.form-group select,.form-group textarea{padding:12px;border:1px solid #ddd;border-radius:6px;font-size:14px;transition:border-color .2s ease}.form-group input:focus,.form-group select:focus,.form-group textarea:focus{outline:none;border-color:#dc3545;box-shadow:0 0 0 2px #dc35451a}.form-group input.error,.form-group select.error,.form-group textarea.error{border-color:#dc3545}.error-message{color:#dc3545;font-size:12px;margin-top:4px}.form-actions{display:flex;justify-content:flex-end;gap:12px;margin-top:30px;padding-top:20px;border-top:1px solid #eee}.btn{padding:12px 24px;border:none;border-radius:6px;font-size:14px;font-weight:500;cursor:pointer;transition:all .2s ease;display:inline-flex;align-items:center;gap:8px}.btn-outline{background:transparent;border:1px solid #ddd;color:#666}.btn-outline:hover{background:#f8f9fa;border-color:#adb5bd}.btn-danger{background:#dc3545;color:#fff}.btn-danger:hover{background:#c82333}@media(max-width:768px){.form-row{grid-template-columns:1fr;gap:15px}.expense-form{padding:15px}.form-actions{flex-direction:column}.btn{width:100%;justify-content:center;padding:var(--spacing-sm);font-size:.9rem}.expense-form h3{font-size:1.5rem;margin-bottom:var(--spacing-sm)}.form-group label{font-size:.9rem}.form-group input,.form-group select,.form-group textarea{font-size:.9rem;padding:var(--spacing-sm)}}@media(max-width:480px){.expense-form{padding:var(--spacing-xs)}.expense-form h3{font-size:1.3rem}.form-group label{font-size:.8rem}.form-group input,.form-group select,.form-group textarea,.btn{font-size:.8rem;padding:var(--spacing-xs)}}.form-row:first-child .form-group,.form-row:last-child .form-group:last-child{grid-column:1 / -1}.form-group textarea{resize:vertical;min-height:80px;font-family:inherit}.form-group input[type=number]{font-family:Courier New,monospace;font-weight:500}.form-group select{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 20 20'%3e%3cpath stroke='%236b7280' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='m6 8 4 4 4-4'/%3e%3c/svg%3e");background-position:right 8px center;background-repeat:no-repeat;background-size:16px;padding-right:40px;-webkit-appearance:none;-moz-appearance:none;appearance:none}.invoice-preview{width:100%;height:100%;display:flex;justify-content:center;align-items:flex-start;padding:20px;background:#f8f9fa}.invoice-document{background:#fff;width:100%;max-width:800px;padding:20px 40px 40px;border-radius:8px;box-shadow:0 2px 10px #0000001a;font-family:Arial,sans-serif;color:#333}.clinic-header{display:flex;align-items:center;margin-bottom:30px;padding-bottom:20px;border-bottom:1px solid #e9ecef}.clinic-logo{margin-right:20px;position:relative;width:140px;height:60px;display:grid;place-items:center;margin-top:3%}.clinic-logo-image{max-width:140px;max-height:60px;width:auto;height:auto;-o-object-fit:contain;object-fit:contain;display:block;margin:0 auto}.logo-placeholder{width:140px;height:60px;background:#f1f3f5;border-radius:6px;display:flex;align-items:center;justify-content:center;color:#9aa0a6;border:1px solid #e9ecef}.logo-fallback{display:none}.clinic-info{flex:1;display:flex;flex-direction:column;gap:8px}.clinic-name{font-size:26px;font-weight:800;margin:0 0 6px;color:#202124}.clinic-meta{display:grid;grid-template-columns:auto 1fr;gap:6px 12px;align-items:baseline;font-size:14px;color:#5f6368}.clinic-meta-item{display:contents}.meta-label{font-weight:600;color:#3c4043}.meta-value a{color:#1a73e8;text-decoration:none}.meta-value a:hover{text-decoration:underline}.invoice-header-section{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:30px}.invoice-title-section{flex:1}.invoice-title{font-size:32px;font-weight:700;margin:0 0 20px;color:#333;text-transform:uppercase}.recipient-info{margin-top:20px}.recipient-label{font-weight:700;margin:0 0 8px;color:#333}.patient-name{font-size:16px;font-weight:600;margin:4px 0;color:#333}.patient-phone,.patient-email{font-size:14px;margin:4px 0;color:#666}.patient-details{font-size:14px;margin:4px 0;color:#666;font-style:italic}.invoice-details{text-align:right}.invoice-id,.invoice-date{margin:4px 0;font-size:14px;color:#666}.invoice-id{font-weight:600;color:#333}.services-section{margin:30px 0}.services-table{width:100%;border-collapse:collapse;margin:20px 0}.services-table th{background:#f8f9fa;padding:12px 8px;text-align:left;font-weight:700;border-bottom:2px solid #dee2e6;color:#333;font-size:14px}.services-table td{padding:12px 8px;border-bottom:1px solid #e9ecef;font-size:14px}.description-col{text-align:left;width:50%}.quantity-col,.price-col{text-align:right;width:15%}.amount-col{text-align:right;width:20%}.payment-summary{margin-top:30px;text-align:right;border-top:1px solid #e9ecef;padding-top:20px}.summary-row{display:flex;justify-content:space-between;align-items:center;margin:8px 0;font-size:14px}.summary-row.total{font-weight:700;font-size:18px;margin-top:15px;padding-top:15px;border-top:2px solid #dee2e6;color:#333}.doctor-section{margin-top:40px;padding-top:20px;border-top:1px solid #e9ecef;display:flex;justify-content:flex-end;align-items:flex-start;gap:30px}.doctor-info{text-align:right}.doctor-name{font-size:16px;font-weight:600;margin:0 0 8px;color:#333}.doctor-specialization{font-size:14px;margin:0 0 20px;color:#666;font-style:italic}.signature-box{display:flex;flex-direction:column;align-items:center}.signature-placeholder{width:200px;height:50px;border:1px solid #000;background:#fff;margin-bottom:5px}.signature-label{margin:0;color:#333;font-size:12px;font-weight:500}@media(max-width:768px){.invoice-preview{padding:10px}.invoice-document{padding:16px;margin:5px}.clinic-header{margin-bottom:20px;padding-bottom:15px}.clinic-logo{width:120px;height:50px}.clinic-logo-image{max-width:120px;max-height:50px}.logo-placeholder{width:120px;height:50px}.clinic-name{font-size:1.5rem}.clinic-address,.clinic-phone,.clinic-email,.clinic-website{font-size:.8rem}.invoice-header-section{flex-direction:column;gap:15px;margin-bottom:20px}.invoice-title{font-size:1.8rem;margin-bottom:15px}.invoice-details{text-align:left}.invoice-details h3{font-size:1.1rem}.invoice-details p{font-size:.9rem}.recipient-info h3{font-size:1.1rem}.recipient-info p{font-size:.9rem}.services-section h3{font-size:1.1rem}.services-table{font-size:.8rem}.services-table th,.services-table td{padding:6px 4px}.summary-section h3{font-size:1.1rem}.summary-row{font-size:.8rem}.summary-row.total{font-size:1.1rem}.doctor-section{margin-top:25px;padding-top:15px;gap:20px}.doctor-name{font-size:1rem}.doctor-specialization{font-size:.8rem}.signature-placeholder{width:150px;height:40px}.signature-label{font-size:.8rem}}@media(max-width:480px){.invoice-preview{padding:5px}.invoice-document{padding:12px;margin:2px}.clinic-header{margin-bottom:15px;padding-bottom:10px}.clinic-logo{width:100px;height:40px}.clinic-logo-image{max-width:100px;max-height:40px}.logo-placeholder{width:100px;height:40px}.clinic-name{font-size:1.3rem}.clinic-address,.clinic-phone,.clinic-email,.clinic-website{font-size:.7rem}.invoice-header-section{gap:10px;margin-bottom:15px}.invoice-title{font-size:1.5rem;margin-bottom:10px}.invoice-details h3{font-size:1rem}.invoice-details p{font-size:.8rem}.recipient-info h3{font-size:1rem}.recipient-info p{font-size:.8rem}.services-section h3{font-size:1rem}.services-table{font-size:.7rem}.services-table th,.services-table td{padding:4px 2px}.summary-section h3{font-size:1rem}.summary-row{font-size:.7rem}.summary-row.total{font-size:1rem}.doctor-section{margin-top:20px;padding-top:10px;gap:15px}.doctor-name{font-size:.9rem}.doctor-specialization{font-size:.7rem}.signature-placeholder{width:120px;height:35px}.signature-label{font-size:.7rem}}.invoice-generator-modal{position:fixed;top:0;left:0;width:100%;height:100%;background:#00000080;display:flex;justify-content:center;align-items:center;z-index:1000}.invoice-generator-modal .modal-content{background:#fff;border-radius:8px;width:95%;height:90%;max-height:800px;display:flex;flex-direction:column;overflow:hidden;position:relative}.invoice-generator-modal .modal-header{display:flex;justify-content:space-between;align-items:center;padding:20px 30px;border-bottom:1px solid #e9ecef;background:#f8f9fa}.invoice-generator-modal .modal-header h2{margin:0;color:#333;font-size:20px;font-weight:600}.invoice-generator-modal .close-btn{background:none;border:none;font-size:24px;cursor:pointer;color:#666;padding:0;width:30px;height:30px;display:flex;align-items:center;justify-content:center;border-radius:50%;transition:all .3s ease}.invoice-generator-modal .close-btn:hover{background:#e9ecef;color:#333}.invoice-generator-modal .modal-content>div:not(.modal-header){flex:1;display:flex;overflow:hidden}.invoice-layout{display:flex;width:100%;height:100%}.invoice-preview-section{flex:1;overflow-y:auto;background:#f8f9fa;padding:20px}.invoice-preview-section>div{background:#fff;border-radius:8px;padding:30px;box-shadow:0 2px 8px #0000001a}.control-panel{width:300px;background:#f8f9fa;border-left:1px solid #e9ecef;padding:30px;display:flex;flex-direction:column}.control-panel h3{margin:0 0 20px;color:#333;font-size:18px;font-weight:600}.checkbox-group{flex:1;display:flex;flex-direction:column;gap:15px}.checkbox-item{display:flex;align-items:center;cursor:pointer;padding:10px;border-radius:6px;transition:background-color .3s ease;position:relative}.checkbox-item:hover{background:#e9ecef}.checkbox-item input[type=checkbox]{position:absolute;opacity:0;cursor:pointer;height:0;width:0}.checkmark{height:20px;width:20px;background-color:#fff;border:2px solid #ddd;border-radius:4px;margin-right:12px;position:relative;transition:all .3s ease}.checkbox-item:hover input~.checkmark{border-color:#007bff}.checkbox-item input:checked~.checkmark{background-color:#007bff;border-color:#007bff}.checkbox-item input:checked~.checkmark:after{display:block}.checkbox-item .checkmark:after{left:6px;top:2px;width:5px;height:10px;border:solid white;border-width:0 2px 2px 0;transform:rotate(45deg)}.label-text{font-size:14px;color:#333;font-weight:500}.action-buttons{margin-top:30px;display:flex;flex-direction:column;gap:12px}.action-buttons .btn{padding:12px 20px;border-radius:6px;font-size:14px;font-weight:500;cursor:pointer;transition:all .3s ease;border:none;text-align:center}.action-buttons .btn-outline{background:transparent;border:1px solid #ddd;color:#666}.action-buttons .btn-outline:hover{background:#f8f9fa;border-color:#adb5bd}.action-buttons .btn-primary{background:#007bff;color:#fff}.action-buttons .btn-primary:hover{background:#0056b3}.loading{display:flex;justify-content:center;align-items:center;height:200px;color:#666;font-style:italic}@media(max-width:1200px){.invoice-layout{flex-direction:column}.control-panel{width:100%;border-left:none;border-top:1px solid #e9ecef;padding:20px}.checkbox-group{flex-direction:row;flex-wrap:wrap;gap:10px}.checkbox-item{min-width:150px}}@media(max-width:768px){.invoice-generator-modal .modal-content{width:98%;height:95%;margin:10px}.invoice-generator-modal .modal-header{padding:12px 16px}.invoice-generator-modal .modal-header h2{font-size:1.3rem}.invoice-generator-modal .close-btn{width:28px;height:28px;font-size:20px}.invoice-preview-section{padding:12px}.invoice-preview-section>div{padding:20px}.control-panel{padding:12px}.control-section{margin-bottom:16px}.control-section h3{font-size:1.1rem;margin-bottom:8px}.form-group{margin-bottom:12px}.form-group label{font-size:.9rem;margin-bottom:4px}.form-group input,.form-group textarea{padding:8px;font-size:.9rem}.checkbox-group{flex-direction:column;gap:8px}.checkbox-item{min-width:auto;padding:8px}.checkbox-item label{font-size:.9rem}.action-buttons{margin-top:20px;gap:8px}.action-buttons .btn{padding:10px;font-size:.9rem}.label-text{font-size:.9rem}}@media(max-width:480px){.invoice-generator-modal .modal-content{width:99%;height:98%;margin:5px}.invoice-generator-modal .modal-header{padding:10px 12px}.invoice-generator-modal .modal-header h2{font-size:1.2rem}.invoice-generator-modal .close-btn{width:26px;height:26px;font-size:18px}.invoice-preview-section{padding:8px}.invoice-preview-section>div{padding:16px}.control-panel{padding:8px}.control-section h3{font-size:1rem;margin-bottom:6px}.form-group{margin-bottom:10px}.form-group label{font-size:.8rem}.form-group input,.form-group textarea{padding:6px;font-size:.8rem}.checkbox-item{padding:6px}.checkbox-item label{font-size:.8rem}.action-buttons .btn{padding:8px;font-size:.8rem}.label-text{font-size:.8rem}}.bill-selection-modal{position:fixed;top:0;left:0;width:100%;height:100%;background:#00000080;display:flex;justify-content:center;align-items:center;z-index:1000}.bill-selection-modal .modal-content{background:#fff;border-radius:12px;width:90%;max-height:80vh;display:flex;flex-direction:column;overflow:hidden;box-shadow:0 20px 25px -5px #0000001a,0 10px 10px -5px #0000000a}.bill-selection-modal .modal-header{display:flex;justify-content:space-between;align-items:center;padding:24px 30px;border-bottom:1px solid #e5e7eb;background:#f9fafb}.bill-selection-modal .modal-header h2{margin:0;color:#111827;font-size:20px;font-weight:600}.bill-selection-modal .close-btn{background:none;border:none;font-size:24px;cursor:pointer;color:#6b7280;padding:0;width:32px;height:32px;display:flex;align-items:center;justify-content:center;border-radius:6px;transition:all .2s ease}.bill-selection-modal .close-btn:hover{background:#e5e7eb;color:#374151}.bill-selection-modal .modal-body{flex:1;padding:24px 30px;overflow-y:auto}.search-section{margin-bottom:24px}.search-input-wrapper{position:relative;display:flex;align-items:center}.search-icon{position:absolute;left:12px;color:#9ca3af;z-index:1}.search-input{width:100%;padding:12px 12px 12px 40px;border:1px solid #d1d5db;border-radius:8px;font-size:14px;background:#fff;transition:all .2s ease}.search-input:focus{outline:none;border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f61a}.search-input::-moz-placeholder{color:#9ca3af}.search-input::placeholder{color:#9ca3af}.bills-section h3{margin:0 0 16px;color:#374151;font-size:16px;font-weight:600}.no-bills{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:60px 20px;color:#6b7280;text-align:center}.no-bills svg{margin-bottom:16px;color:#d1d5db}.no-bills p{margin:0;font-size:14px}.bills-list{display:flex;flex-direction:column;gap:12px;max-height:400px;overflow-y:auto}.bill-item{display:flex;align-items:center;padding:16px;border:1px solid #e5e7eb;border-radius:8px;cursor:pointer;transition:all .2s ease;background:#fff}.bill-item:hover{border-color:#3b82f6;background:#f8fafc}.bill-item.selected{border-color:#3b82f6;background:#eff6ff;box-shadow:0 0 0 3px #3b82f61a}.bill-info{flex:1;display:flex;flex-direction:column;gap:4px}.bill-header{display:flex;justify-content:space-between;align-items:center}.bill-number{font-weight:600;color:#111827;font-size:14px}.bill-amount{font-weight:600;color:#059669;font-size:14px}.bill-details{display:flex;justify-content:space-between;align-items:center;font-size:13px;color:#6b7280}.patient-name{font-weight:500;color:#374151}.bill-date{color:#6b7280}.bill-services{font-size:12px;color:#9ca3af;font-style:italic}.bill-selector{margin-left:16px}.radio-button{width:20px;height:20px;border:2px solid #d1d5db;border-radius:50%;display:flex;align-items:center;justify-content:center;transition:all .2s ease}.radio-button.checked{border-color:#3b82f6;background:#3b82f6}.radio-dot{width:8px;height:8px;background:#fff;border-radius:50%}.modal-footer{display:flex;justify-content:flex-end;gap:12px;padding:24px 30px;border-top:1px solid #e5e7eb;background:#f9fafb}.modal-footer .btn{padding:10px 20px;border-radius:6px;font-size:14px;font-weight:500;cursor:pointer;transition:all .2s ease;border:none;min-width:100px}.modal-footer .btn-outline{background:transparent;border:1px solid #d1d5db;color:#374151}.modal-footer .btn-outline:hover{background:#f3f4f6;border-color:#9ca3af}.modal-footer .btn-primary{background:#3b82f6;color:#fff}.modal-footer .btn-primary:hover{background:#2563eb}.modal-footer .btn-primary:disabled{background:#9ca3af;cursor:not-allowed}@media(max-width:768px){.bill-selection-modal .modal-content{width:95%;max-height:90vh;margin:10px}.bill-selection-modal .modal-header{padding:16px 20px}.bill-selection-modal .modal-header h2{font-size:1.3rem}.bill-selection-modal .close-btn{width:28px;height:28px;font-size:20px}.bill-selection-modal .modal-body{padding:16px 20px}.search-section{margin-bottom:16px}.search-input{padding:10px 10px 10px 36px;font-size:1rem}.search-icon{left:10px;width:14px;height:14px}.bills-section h3{font-size:1.1rem;margin-bottom:12px}.bills-list{max-height:350px;gap:8px}.bill-item{padding:12px;flex-direction:column;align-items:flex-start;gap:8px}.bill-info{width:100%}.bill-header{flex-direction:column;align-items:flex-start;gap:4px}.bill-number,.bill-amount{font-size:1rem}.bill-details{flex-direction:column;align-items:flex-start;gap:4px;width:100%}.patient-name{font-size:.9rem}.bill-date,.bill-services{font-size:.8rem}.bill-selector{margin-left:0;align-self:flex-end}.radio-button{width:24px;height:24px}.radio-dot{width:10px;height:10px}.modal-footer{flex-direction:column;gap:8px;padding:16px 20px}.modal-footer .btn{width:100%;padding:12px;font-size:.9rem}.no-bills{padding:40px 16px}.no-bills svg{width:40px;height:40px}.no-bills p{font-size:.9rem}}@media(max-width:480px){.bill-selection-modal .modal-content{width:98%;max-height:95vh;margin:5px}.bill-selection-modal .modal-header{padding:12px 16px}.bill-selection-modal .modal-header h2{font-size:1.2rem}.bill-selection-modal .close-btn{width:26px;height:26px;font-size:18px}.bill-selection-modal .modal-body{padding:12px 16px}.search-input{padding:8px 8px 8px 32px;font-size:.9rem}.search-icon{left:8px;width:12px;height:12px}.bills-section h3{font-size:1rem;margin-bottom:10px}.bills-list{max-height:300px;gap:6px}.bill-item{padding:10px;gap:6px}.bill-number,.bill-amount{font-size:.9rem}.patient-name{font-size:.8rem}.bill-date,.bill-services{font-size:.7rem}.radio-button{width:22px;height:22px}.radio-dot{width:8px;height:8px}.modal-footer{padding:12px 16px;gap:6px}.modal-footer .btn{padding:10px;font-size:.8rem}.no-bills{padding:30px 12px}.no-bills svg{width:36px;height:36px}.no-bills p{font-size:.8rem}}.recurring-expense-form-modal{position:fixed;top:0;left:0;width:100%;height:100%;background:#00000080;display:flex;justify-content:center;align-items:center;z-index:1000}.recurring-expense-form-modal .modal-content{background:#fff;border-radius:12px;width:90%;max-height:90vh;display:flex;flex-direction:column;overflow:hidden;box-shadow:0 20px 25px -5px #0000001a,0 10px 10px -5px #0000000a}.recurring-expense-form-modal .modal-header{display:flex;justify-content:space-between;align-items:center;padding:24px 30px;border-bottom:1px solid #e5e7eb;background:#f9fafb}.recurring-expense-form-modal .modal-header h2{margin:0;color:#111827;font-size:20px;font-weight:600}.recurring-expense-form-modal .close-btn{background:none;border:none;font-size:24px;cursor:pointer;color:#6b7280;padding:0;width:32px;height:32px;display:flex;align-items:center;justify-content:center;border-radius:6px;transition:all .2s ease}.recurring-expense-form-modal .close-btn:hover{background:#e5e7eb;color:#374151}.recurring-expense-form{flex:1;padding:24px 30px;overflow-y:auto}.form-section{margin-bottom:32px}.form-section h3{margin:0 0 16px;color:#374151;font-size:16px;font-weight:600;padding-bottom:8px;border-bottom:1px solid #e5e7eb}.form-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:16px;margin-bottom:16px}.form-row:last-child{margin-bottom:0}.form-group label{margin-bottom:6px;color:#374151;font-size:14px;font-weight:500}.form-group input,.form-group select,.form-group textarea{padding:10px 12px;border:1px solid #d1d5db;border-radius:6px;font-size:14px;background:#fff;transition:all .2s ease}.form-group input:focus,.form-group select:focus,.form-group textarea:focus{outline:none;border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f61a}.form-group input.error,.form-group select.error,.form-group textarea.error{border-color:#ef4444}.form-group input.error:focus,.form-group select.error:focus,.form-group textarea.error:focus{box-shadow:0 0 0 3px #ef44441a}.form-group small{margin-top:4px;color:#6b7280;font-size:12px}.error-message{margin-top:4px;color:#ef4444;font-size:12px}.checkbox-group{display:flex;align-items:flex-start;gap:8px}.checkbox-label{display:flex;align-items:center;cursor:pointer;font-size:14px;color:#374151;font-weight:500}.checkbox-label input[type=checkbox]{position:absolute;opacity:0;cursor:pointer;height:0;width:0}.checkmark{height:18px;width:18px;background-color:#fff;border:2px solid #d1d5db;border-radius:4px;margin-right:8px;position:relative;transition:all .2s ease;flex-shrink:0}.checkbox-label:hover input~.checkmark{border-color:#3b82f6}.checkbox-label input:checked~.checkmark{background-color:#3b82f6;border-color:#3b82f6}.checkmark:after{content:"";position:absolute;display:none}.checkbox-label input:checked~.checkmark:after{display:block}.checkbox-label .checkmark:after{left:5px;top:2px;width:4px;height:8px;border:solid white;border-width:0 2px 2px 0;transform:rotate(45deg)}.checkbox-group small{margin-top:4px;color:#6b7280;font-size:12px;line-height:1.4}.form-actions{display:flex;justify-content:flex-end;gap:12px;padding-top:24px;border-top:1px solid #e5e7eb;margin-top:24px}.form-actions .btn{padding:10px 20px;border-radius:6px;font-size:14px;font-weight:500;cursor:pointer;transition:all .2s ease;border:none;min-width:100px}.form-actions .btn-outline{background:transparent;border:1px solid #d1d5db;color:#374151}.form-actions .btn-outline:hover{background:#f3f4f6;border-color:#9ca3af}.form-actions .btn-primary{background:#3b82f6;color:#fff}.form-actions .btn-primary:hover{background:#2563eb}.form-actions .btn-primary:disabled{background:#9ca3af;cursor:not-allowed}@media(max-width:768px){.recurring-expense-form-modal .modal-content{width:95%;max-height:95vh}.recurring-expense-form-modal .modal-header,.recurring-expense-form{padding:20px}.form-row{grid-template-columns:1fr}.form-actions{flex-direction:column}.form-actions .btn{width:100%;padding:var(--spacing-sm);font-size:.9rem}.recurring-expense-form h3{font-size:1.5rem;margin-bottom:var(--spacing-sm)}.form-group label{font-size:.9rem}.form-group input,.form-group select,.form-group textarea{font-size:.9rem;padding:var(--spacing-sm)}}@media(max-width:480px){.recurring-expense-form h3{font-size:1.3rem}.form-group label{font-size:.8rem}.form-group input,.form-group select,.form-group textarea,.form-actions .btn{font-size:.8rem;padding:var(--spacing-xs)}.recurring-expense-form-modal .modal-content{width:98%;max-height:98vh}.recurring-expense-form-modal .modal-header,.recurring-expense-form{padding:16px}}.recurring-expenses-section{margin-top:30px;padding:24px;background:#fff;border-radius:12px;box-shadow:0 1px 3px #0000001a}.section-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:24px}.section-header h3{margin:0;color:#111827;font-size:20px;font-weight:600}.summary-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:16px;margin-bottom:24px}.summary-card{display:flex;align-items:center;padding:16px;background:#f8fafc;border:1px solid #e2e8f0;border-radius:8px;transition:all .2s ease}.summary-card:hover{border-color:#cbd5e1;box-shadow:0 2px 4px #0000000d}.summary-icon{display:flex;align-items:center;justify-content:center;width:40px;height:40px;background:#3b82f6;color:#fff;border-radius:8px;margin-right:12px}.summary-content{flex:1}.summary-value{font-size:18px;font-weight:600;color:#111827;margin-bottom:2px}.summary-label{font-size:12px;color:#6b7280;text-transform:uppercase;letter-spacing:.5px}.expenses-list h4{margin:0 0 16px;color:#374151;font-size:16px;font-weight:600}.no-expenses{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:60px 20px;text-align:center;color:#6b7280}.no-expenses svg{margin-bottom:16px;color:#d1d5db}.no-expenses p{margin:0 0 16px;font-size:14px}.expenses-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(350px,1fr));gap:16px}.expense-card{border:1px solid #e5e7eb;border-radius:8px;padding:16px;background:#fff;transition:all .2s ease}.expense-card:hover{border-color:#3b82f6;box-shadow:0 2px 8px #3b82f61a}.expense-card.active{border-left:4px solid #10b981}.expense-card.due-soon{border-left:4px solid #f59e0b}.expense-card.overdue{border-left:4px solid #ef4444}.expense-card.inactive{border-left:4px solid #6b7280;opacity:.7}.expense-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:12px}.expense-title{flex:1}.expense-title h5{margin:0 0 4px;color:#111827;font-size:14px;font-weight:600;line-height:1.4}.status-badge{display:inline-block;padding:2px 8px;border-radius:12px;font-size:10px;font-weight:500;text-transform:uppercase;letter-spacing:.5px}.status-badge.active{background:#dcfce7;color:#166534}.status-badge.due-soon{background:#fef3c7;color:#92400e}.status-badge.overdue{background:#fee2e2;color:#991b1b}.status-badge.inactive{background:#f3f4f6;color:#374151}.expense-amount{font-size:16px;font-weight:600;color:#059669}.expense-details{margin-bottom:16px}.detail-row{display:flex;justify-content:space-between;align-items:center;margin-bottom:4px;font-size:12px}.detail-row:last-child{margin-bottom:0}.detail-row .label{color:#6b7280;font-weight:500}.detail-row .value{color:#374151;font-weight:400}.expense-actions{display:flex;gap:8px;flex-wrap:wrap}.expense-actions .btn{padding:6px 12px;font-size:11px;border-radius:6px}@media(max-width:768px){.recurring-expenses-section{padding:16px}.section-header{flex-direction:column;align-items:flex-start;gap:12px}.summary-cards{grid-template-columns:repeat(2,1fr)}.expenses-grid{grid-template-columns:1fr}.expense-header{flex-direction:column;align-items:flex-start;gap:8px}.expense-actions{justify-content:flex-start}}@media(max-width:480px){.summary-cards{grid-template-columns:1fr}.expense-actions{flex-direction:column}.expense-actions .btn{width:100%}}.financial-report-modal{position:fixed;top:0;left:0;width:100%;height:100%;background:#00000080;display:flex;justify-content:center;align-items:center;z-index:1000}.financial-report-modal .modal-content{background:#fff;border-radius:12px;width:95%;max-height:95vh;display:flex;flex-direction:column;overflow:hidden;box-shadow:0 20px 25px -5px #0000001a}.financial-report-modal .modal-header{display:flex;justify-content:space-between;align-items:center;padding:24px 30px;border-bottom:1px solid #e5e7eb;background:#f9fafb}.financial-report-modal .modal-header h2{margin:0;color:#111827;font-size:20px;font-weight:600}.header-actions{display:flex;gap:12px;align-items:center}.close-btn{background:none;border:none;font-size:24px;cursor:pointer;color:#6b7280;padding:0;width:32px;height:32px;display:flex;align-items:center;justify-content:center;border-radius:6px;transition:all .2s ease}.close-btn:hover{background:#e5e7eb;color:#374151}.report-controls{display:flex;flex-wrap:wrap;gap:20px;padding:24px 30px;background:linear-gradient(135deg,#f8fafc,#f1f5f9);border-bottom:1px solid #e5e7eb;align-items:center;box-shadow:0 1px 3px #0000000d}.control-group{display:flex;flex-direction:column;gap:8px;min-width:150px}.control-group label{font-size:14px;font-weight:500;color:#374151;margin:0}.report-select{padding:8px 12px;border:1px solid #d1d5db;border-radius:6px;font-size:14px;background:#fff;color:#111827;cursor:pointer;transition:border-color .2s ease}.report-select:focus{outline:none;border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f61a}.report-select:hover{border-color:#9ca3af;background-color:#f9fafb}.custom-period-controls{display:flex;gap:20px;align-items:flex-end;flex-wrap:wrap}@media(max-width:768px){.report-controls{flex-direction:column;align-items:stretch;gap:16px}.control-group{min-width:auto}.custom-period-controls{flex-direction:column;gap:16px}}.report-content{flex:1;padding:24px 30px;overflow-y:auto}.financial-report{background:#fff;color:#111827;font-family:Arial,sans-serif;line-height:1.6;max-width:800px;margin:0 auto}.report-header{text-align:center;margin-bottom:40px;padding-bottom:20px;border-bottom:2px solid #e5e7eb}.report-header h1{color:#111827;font-size:28px;font-weight:700;margin:0 0 16px}.report-meta{color:#6b7280;font-size:14px}.report-meta p{margin:4px 0}.report-section{margin-bottom:40px}.report-section h2{color:#111827;font-size:20px;font-weight:600;margin:0 0 20px;padding-bottom:8px;border-bottom:1px solid #e5e7eb}.summary-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:20px;margin-bottom:30px}.summary-item{padding:20px;border-radius:8px;text-align:center;border:1px solid #e5e7eb}.summary-item.income{background:#f0fdf4;border-color:#bbf7d0}.summary-item.expense{background:#fef2f2;border-color:#fecaca}.summary-item.profit{background:#eff6ff;border-color:#bfdbfe}.summary-item.transactions{background:#f9fafb;border-color:#d1d5db}.summary-label{font-size:14px;color:#6b7280;margin-bottom:8px;font-weight:500}.summary-value{font-size:24px;font-weight:700;color:#111827}.analysis-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:30px}.analysis-item h3{color:#111827;font-size:16px;font-weight:600;margin:0 0 16px}.list-container{border:1px solid #e5e7eb;border-radius:6px;overflow:hidden}.list-item{display:flex;justify-content:space-between;align-items:center;padding:12px 16px;border-bottom:1px solid #f3f4f6}.list-item:last-child{border-bottom:none}.item-name{font-weight:500;color:#374151}.item-amount{font-weight:600;color:#111827}.breakdown-stats{border:1px solid #e5e7eb;border-radius:6px;padding:16px}.stat-item{display:flex;justify-content:space-between;align-items:center;padding:8px 0;border-bottom:1px solid #f3f4f6}.stat-item:last-child{border-bottom:none}.stat-label{color:#6b7280;font-size:14px}.stat-value{font-weight:600;color:#111827}.transactions-table-container{border:1px solid #e5e7eb;border-radius:6px;overflow:hidden}.transactions-table{width:100%;border-collapse:collapse;font-size:12px}.transactions-table th{background:#f9fafb;padding:12px 8px;text-align:left;font-weight:600;color:#374151;border-bottom:1px solid #e5e7eb}.transactions-table td{padding:8px;border-bottom:1px solid #f3f4f6;color:#374151}.transactions-table tr:last-child td{border-bottom:none}.category-badge{display:inline-block;padding:2px 8px;border-radius:12px;font-size:10px;font-weight:500;text-transform:uppercase}.category-badge.income{background:#dcfce7;color:#166534}.category-badge.expense{background:#fee2e2;color:#991b1b}.transactions-table .income{color:#059669;font-weight:600}.transactions-table .expense{color:#dc2626;font-weight:600}.report-footer{margin-top:40px;padding-top:20px;border-top:2px solid #e5e7eb;color:#6b7280;font-size:12px}.report-footer p{margin:4px 0}.no-data{text-align:center;padding:20px;color:#6b7280;font-style:italic}.loading{display:flex;justify-content:center;align-items:center;height:200px;color:#6b7280;font-style:italic}@media(max-width:768px){.financial-report-modal .modal-content{width:98%;max-height:98vh}.financial-report-modal .modal-header,.report-content{padding:16px}.summary-grid,.analysis-grid{grid-template-columns:1fr}.transactions-table{font-size:10px}.transactions-table th,.transactions-table td{padding:6px 4px}}.payment-link-display{background:#fff;border-radius:12px;padding:24px;box-shadow:0 4px 6px #0000001a;max-width:500px;margin:20px auto}.payment-link-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:24px;padding-bottom:16px;border-bottom:2px solid #e5e7eb}.payment-link-header h3{margin:0;color:#1f2937;font-size:1.5rem;font-weight:600}.close-button{background:none;border:none;font-size:28px;color:#6b7280;cursor:pointer;padding:0;width:32px;height:32px;display:flex;align-items:center;justify-content:center;border-radius:50%;transition:all .2s}.close-button:hover{background:#f3f4f6;color:#1f2937}.payment-link-content{display:flex;flex-direction:column;gap:20px}.qr-code-section{display:flex;flex-direction:column;align-items:center;gap:16px;padding:20px;background:#f9fafb;border-radius:8px}.qr-code-container{padding:16px;background:#fff;border-radius:8px;box-shadow:0 2px 4px #0000001a}.download-qr-button{padding:8px 16px;background:#3b82f6;color:#fff;border:none;border-radius:6px;cursor:pointer;font-size:.875rem;font-weight:500;transition:background .2s}.download-qr-button:hover{background:#2563eb}.payment-details{display:flex;flex-direction:column;gap:12px;padding:16px;background:#f9fafb;border-radius:8px}.payment-amount,.payment-description{display:flex;justify-content:space-between;align-items:flex-start;gap:12px}.payment-amount .label,.payment-description .label{font-weight:600;color:#4b5563;min-width:100px}.payment-amount .value{font-size:1.25rem;font-weight:700;color:#059669}.payment-description .value{color:#1f2937;text-align:right;flex:1}.payment-link-url{display:flex;flex-direction:column;gap:8px}.payment-link-url label{font-weight:600;color:#4b5563;font-size:.875rem}.url-container{display:flex;gap:8px}.url-input{flex:1;padding:10px 12px;border:1px solid #d1d5db;border-radius:6px;font-size:.875rem;color:#1f2937;background:#f9fafb}.copy-button{padding:10px 16px;background:#6b7280;color:#fff;border:none;border-radius:6px;cursor:pointer;font-size:.875rem;font-weight:500;white-space:nowrap;transition:background .2s}.copy-button:hover{background:#4b5563}.share-buttons{display:flex;gap:12px;margin-top:8px}.share-button{flex:1;padding:12px 16px;border:none;border-radius:6px;cursor:pointer;font-size:.875rem;font-weight:600;transition:all .2s;display:flex;align-items:center;justify-content:center;gap:8px}.whatsapp-button{background:#25d366;color:#fff}.whatsapp-button:hover:not(:disabled){background:#20ba5a}.whatsapp-button:disabled{background:#d1d5db;color:#9ca3af;cursor:not-allowed}.email-button{background:#3b82f6;color:#fff}.email-button:hover{background:#2563eb}.payment-instructions{padding:16px;background:#eff6ff;border-radius:8px;border-left:4px solid #3b82f6}.payment-instructions p{margin:0;color:#1e40af;font-size:.875rem;line-height:1.5}.payment-instructions p:not(:last-child){margin-bottom:8px}.payment-instructions .note{color:#6b7280;font-size:.8125rem;font-style:italic}.payment-status-paid{margin-top:16px;padding:16px;background:#ecfdf5;border-radius:8px;border-left:4px solid #10b981}.status-badge{display:inline-block;padding:6px 12px;border-radius:6px;font-size:.875rem;font-weight:600;margin-bottom:12px}.status-badge.paid{background:#10b981;color:#fff}.status-badge.created{background:#3b82f6;color:#fff}.status-badge.partially_paid{background:#f59e0b;color:#fff}.status-badge.expired,.status-badge.cancelled{background:#ef4444;color:#fff}.transaction-info{display:flex;flex-direction:column;gap:4px;margin-top:8px}.transaction-info .label{font-size:.8125rem;color:#6b7280;font-weight:500}.transaction-info .value{font-size:.9375rem;color:#1f2937;font-weight:600}.transaction-info .value.transaction-id{font-family:monospace;font-size:.875rem;word-break:break-all;color:#059669}.payment-status{margin-top:16px;padding:12px;background:#f9fafb;border-radius:8px}@media(max-width:640px){.payment-link-display{padding:16px;margin:10px}.qr-code-container{padding:12px}.share-buttons{flex-direction:column}.payment-amount,.payment-description{flex-direction:column;gap:4px}.payment-amount .value,.payment-description .value{text-align:left}}.inventory-module{padding:var(--spacing-lg)}@media(max-width:768px){.inventory-module{padding:var(--spacing-sm)}.module-header{flex-direction:column;gap:var(--spacing-sm);align-items:stretch;margin-bottom:var(--spacing-md)}.module-header h2{text-align:center;font-size:1.5rem}.module-header .btn{width:100%;justify-content:center;padding:var(--spacing-sm)}.inventory-summary{grid-template-columns:1fr;gap:var(--spacing-sm);margin-bottom:var(--spacing-md)}.summary-card{padding:var(--spacing-sm);gap:var(--spacing-sm)}.summary-icon{width:40px;height:40px}.summary-value{font-size:1.5rem}.summary-label{font-size:.9rem}.inventory-filters{gap:var(--spacing-sm);margin-bottom:var(--spacing-md)}.search-box{flex-direction:column;gap:var(--spacing-sm)}.search-box input{font-size:1rem;padding:var(--spacing-sm)}.search-box button{width:100%;padding:var(--spacing-sm)}.filter-options{flex-direction:column;gap:var(--spacing-sm)}.filter-options select{width:100%;padding:var(--spacing-sm)}.view-toggle{justify-content:center}.view-toggle button{flex:1;padding:var(--spacing-sm);font-size:.9rem}.inventory-grid{grid-template-columns:1fr;gap:var(--spacing-sm)}.inventory-item{padding:var(--spacing-sm)}.item-header{flex-direction:column;align-items:flex-start;gap:var(--spacing-sm)}.item-title{font-size:1.1rem}.item-category{font-size:.8rem}.item-details{grid-template-columns:1fr;gap:var(--spacing-sm)}.item-actions{flex-direction:column;gap:var(--spacing-xs)}.item-actions button{width:100%;padding:var(--spacing-sm);font-size:.9rem}.inventory-table{overflow-x:auto}.inventory-table table{min-width:600px;font-size:.9rem}.inventory-table th,.inventory-table td{padding:var(--spacing-xs)}.table-actions{flex-direction:column;gap:var(--spacing-xs)}.table-actions button{padding:var(--spacing-xs);font-size:.8rem}}@media(max-width:480px){.inventory-module{padding:var(--spacing-xs)}.module-header h2{font-size:1.3rem}.summary-card{padding:var(--spacing-xs)}.summary-icon{width:35px;height:35px}.summary-value{font-size:1.3rem}.summary-label{font-size:.8rem}.item-title{font-size:1rem}.item-actions button{font-size:.8rem;padding:var(--spacing-xs)}.inventory-table table{min-width:500px;font-size:.8rem}.inventory-table th,.inventory-table td{padding:4px}.table-actions button{font-size:.7rem;padding:4px 8px}}.module-header h2{margin:0;color:var(--text-color)}.inventory-summary{display:grid;grid-template-columns:repeat(1,1fr);gap:var(--spacing-md);margin-bottom:var(--spacing-lg)}.summary-card{background-color:var(--white);border-radius:var(--radius);box-shadow:var(--shadow);padding:var(--spacing-md);display:flex;align-items:center;gap:var(--spacing-md);transition:var(--transition)}.summary-icon{width:48px;height:48px;border-radius:12px;display:flex;align-items:center;justify-content:center;background-color:#3498db1a;color:var(--primary-color);flex-shrink:0}.summary-value{font-size:24px;font-weight:700;color:var(--text-color);margin-bottom:4px}.summary-label{font-size:14px;color:var(--text-light);font-weight:500}.inventory-filters{display:flex;flex-direction:column;gap:var(--spacing-md);margin-bottom:var(--spacing-lg)}.search-box{display:flex;gap:var(--spacing-sm)}.search-box input{flex:1;padding:var(--spacing-sm) var(--spacing-md);border:1px solid var(--medium-gray);border-radius:var(--radius);font-size:14px}.search-box button{padding:var(--spacing-sm) var(--spacing-md);background-color:var(--primary-color);color:var(--white);border:none;border-radius:var(--radius);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:var(--transition)}.search-box button:hover{background-color:var(--primary-dark)}.filter-options{display:flex;flex-direction:column;gap:var(--spacing-sm)}.inventory-grid{display:grid;grid-template-columns:repeat(1,1fr);gap:var(--spacing-md);margin-bottom:var(--spacing-lg)}.inventory-card{background-color:var(--white);border-radius:var(--radius);box-shadow:var(--shadow);padding:var(--spacing-md);position:relative;overflow:hidden;transition:var(--transition)}.inventory-card:hover{transform:translateY(-2px);box-shadow:var(--shadow-strong)}.inventory-card.inactive{opacity:.7}.inventory-icon{width:48px;height:48px;border-radius:12px;display:flex;align-items:center;justify-content:center;margin-bottom:var(--spacing-md);background-color:#3498db1a;color:var(--primary-color)}.inventory-details h3{margin-bottom:var(--spacing-xs);font-size:18px}.inventory-meta{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--spacing-md)}.quantity{font-weight:600;color:var(--text-color)}.inventory-description{font-size:14px;color:var(--text-light);margin-bottom:var(--spacing-md);line-height:1.4}.inventory-stats{display:grid;grid-template-columns:repeat(2,1fr);gap:var(--spacing-sm);margin-bottom:var(--spacing-md);padding:var(--spacing-sm) 0;border-top:1px solid var(--medium-gray);border-bottom:1px solid var(--medium-gray)}.inventory-actions{display:flex;justify-content:space-between;gap:var(--spacing-xs);margin-top:var(--spacing-md)}.inventory-actions .btn{flex:1;min-width:0;padding:6px 8px;font-size:12px;white-space:nowrap}.inventory-list{background-color:var(--white);border-radius:var(--radius);box-shadow:var(--shadow);overflow:hidden}.table-container{overflow-x:auto}.inventory-table{width:100%;border-collapse:collapse}.inventory-table th{text-align:left;padding:var(--spacing-sm);background-color:var(--light-gray);font-weight:600}.inventory-table th:last-child{text-align:center}.inventory-table td{padding:var(--spacing-sm);border-bottom:1px solid var(--medium-gray)}.inventory-name-cell{display:flex;align-items:center;gap:var(--spacing-sm)}.inventory-icon-small{width:32px;height:32px;border-radius:8px;display:flex;align-items:center;justify-content:center;background-color:#3498db1a;color:var(--primary-color);flex-shrink:0}.inventory-name{font-weight:600;margin-bottom:2px}.inventory-description-small{font-size:12px;color:var(--text-light);line-height:1.3}.table-actions{display:flex;gap:var(--spacing-xs)}.close-button{background:none;border:none;font-size:24px;color:var(--text-light);cursor:pointer;padding:0;width:32px;height:32px;display:flex;align-items:center;justify-content:center;border-radius:var(--radius);transition:var(--transition)}.form-group input,.form-group textarea,.form-group select{width:100%;padding:var(--spacing-sm) var(--spacing-md);border:1px solid var(--medium-gray);border-radius:var(--radius);font-size:14px;transition:var(--transition)}.spinner{width:40px;height:40px;border:4px solid var(--light-gray);border-top:4px solid var(--primary-color);border-radius:50%;animation:spin 1s linear infinite;margin-bottom:var(--spacing-md)}@media(min-width:576px){.inventory-filters,.filter-options{flex-direction:row}.inventory-summary,.inventory-grid,.form-row{grid-template-columns:repeat(2,1fr)}.inventory-actions .btn{padding:8px 12px;font-size:13px}}@media(min-width:992px){.inventory-summary{grid-template-columns:repeat(4,1fr)}.inventory-grid{grid-template-columns:repeat(3,1fr)}}@media(min-width:1200px){.inventory-grid{grid-template-columns:repeat(4,1fr)}}.services-module{padding:var(--spacing-md)}@media(max-width:768px){.services-module{padding:var(--spacing-sm)}.module-header{flex-direction:column;gap:var(--spacing-sm);align-items:stretch}.module-header h2{text-align:center;font-size:1.5rem}.module-header .btn{width:100%;justify-content:center;padding:var(--spacing-sm)}.services-summary{grid-template-columns:1fr;gap:var(--spacing-sm);margin-bottom:var(--spacing-md)}.summary-card{padding:var(--spacing-sm)}.summary-icon{width:40px;height:40px;margin-right:var(--spacing-sm)}.summary-value{font-size:1.5rem}.summary-label{font-size:.9rem}.services-filters{gap:var(--spacing-sm);margin-bottom:var(--spacing-md)}.search-box{flex-direction:column;gap:var(--spacing-sm)}.search-box input{font-size:1rem;padding:var(--spacing-sm);padding-right:var(--spacing-sm)}.search-box button{width:100%;padding:var(--spacing-sm)}.filter-options{flex-direction:column;gap:var(--spacing-sm)}.filter-options select{width:100%;padding:var(--spacing-sm)}.view-toggle{justify-content:center}.view-toggle button{flex:1;padding:var(--spacing-sm);font-size:.9rem}.services-grid{grid-template-columns:1fr;gap:var(--spacing-sm)}.service-card{padding:var(--spacing-sm)}.service-header{flex-direction:column;align-items:flex-start;gap:var(--spacing-sm)}.service-title{font-size:1.1rem}.service-category{font-size:.8rem}.service-details{grid-template-columns:1fr;gap:var(--spacing-sm)}.service-actions{flex-direction:column;gap:var(--spacing-xs)}.service-actions button{width:100%;padding:var(--spacing-sm);font-size:.9rem}.services-table{overflow-x:auto}.services-table table{min-width:600px;font-size:.9rem}.services-table th,.services-table td{padding:var(--spacing-xs)}.table-actions{flex-direction:column;gap:var(--spacing-xs)}.table-actions button{padding:var(--spacing-xs);font-size:.8rem}}@media(max-width:480px){.services-module{padding:var(--spacing-xs)}.module-header h2{font-size:1.3rem}.summary-card{padding:var(--spacing-xs)}.summary-icon{width:35px;height:35px}.summary-value{font-size:1.3rem}.summary-label{font-size:.8rem}.service-title{font-size:1rem}.service-actions button{font-size:.8rem;padding:var(--spacing-xs)}.services-table table{min-width:500px;font-size:.8rem}.services-table th,.services-table td{padding:4px}.table-actions button{font-size:.7rem;padding:4px 8px}}.loading-spinner{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:var(--spacing-xl);color:var(--text-light)}.spinner{width:40px;height:40px;border:4px solid var(--medium-gray);border-top:4px solid var(--primary-color);border-radius:50%;animation:spin 1s linear infinite;margin-bottom:var(--spacing-md)}.services-summary{display:grid;grid-template-columns:repeat(1,1fr);gap:var(--spacing-md);margin-bottom:var(--spacing-lg)}.summary-card{background-color:var(--white);border-radius:var(--radius);box-shadow:var(--shadow);padding:var(--spacing-md);display:flex;align-items:center;transition:var(--transition)}.summary-card:hover{transform:translateY(-2px);box-shadow:var(--shadow-strong)}.summary-icon{width:48px;height:48px;border-radius:12px;display:flex;align-items:center;justify-content:center;margin-right:var(--spacing-md);background-color:#3498db1a;color:var(--primary-color)}.summary-details{flex:1}.summary-value{font-size:24px;font-weight:600;margin-bottom:var(--spacing-xs)}.summary-label{font-size:14px;color:var(--text-light)}.services-filters{display:flex;flex-direction:column;gap:var(--spacing-md);margin-bottom:var(--spacing-lg)}.search-box{position:relative;flex:1;display:flex;align-items:center}.search-box input{flex:1;padding-right:50px}.search-box button{position:absolute;right:var(--spacing-sm);top:50%;transform:translateY(-50%);background:none;border:none;color:var(--dark-gray);cursor:pointer;padding:var(--spacing-xs);border-radius:var(--radius);transition:var(--transition)}.search-box button:hover{background-color:var(--light-gray);color:var(--primary-color)}.filter-options{display:flex;flex-direction:column;gap:var(--spacing-md)}.view-toggle{display:flex;align-items:center;gap:var(--spacing-xs)}.view-btn{width:36px;height:36px;display:flex;align-items:center;justify-content:center;border:1px solid var(--medium-gray);border-radius:var(--radius);background-color:var(--white);color:var(--text-light);transition:var(--transition)}.view-btn.active{background-color:var(--primary-color);border-color:var(--primary-color);color:var(--white)}.services-grid{display:grid;grid-template-columns:repeat(1,1fr);gap:var(--spacing-md);margin-bottom:var(--spacing-lg)}.service-card{background-color:var(--white);border-radius:var(--radius);box-shadow:var(--shadow);padding:var(--spacing-md);position:relative;overflow:hidden;transition:var(--transition)}.service-card:hover{transform:translateY(-2px);box-shadow:var(--shadow-strong)}.service-card.inactive{opacity:.7}.status-indicator{position:absolute;top:0;left:0;right:0;height:4px}.status-indicator.active{background-color:var(--success-color)}.status-indicator.inactive{background-color:var(--warning-color)}.service-icon{width:48px;height:48px;border-radius:12px;display:flex;align-items:center;justify-content:center;margin-bottom:var(--spacing-md);background-color:#3498db1a;color:var(--primary-color)}.service-details h3{margin-bottom:var(--spacing-xs);font-size:18px}.service-meta{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--spacing-md)}.category-badge{display:inline-block;padding:2px 8px;border-radius:12px;font-size:12px;background-color:#3498db1a;color:var(--primary-color)}.price{font-weight:600;color:var(--text-color)}.service-description{font-size:14px;color:var(--text-light);margin-bottom:var(--spacing-md);line-height:1.4}.service-stats{display:grid;grid-template-columns:repeat(2,1fr);gap:var(--spacing-sm);margin-bottom:var(--spacing-md);padding:var(--spacing-sm) 0;border-top:1px solid var(--medium-gray);border-bottom:1px solid var(--medium-gray)}.stat{text-align:center}.stat-label{font-size:12px;color:var(--text-light);margin-bottom:2px}.stat-value{font-weight:600}.service-actions{display:flex;justify-content:space-between;gap:var(--spacing-xs);margin-top:var(--spacing-md)}.service-actions .btn{flex:1;min-width:0;padding:6px 8px;font-size:12px;white-space:nowrap}.services-table{width:100%;border-collapse:collapse}.services-table th{text-align:left;padding:var(--spacing-sm);background-color:var(--light-gray);font-weight:600}.services-table th:last-child{text-align:center}.services-table td{padding:var(--spacing-sm);border-bottom:1px solid var(--medium-gray)}.inactive-row{opacity:.7;background-color:var(--light-gray)}.service-name-cell{display:flex;align-items:center;justify-items:center;gap:var(--spacing-sm)}.service-icon-small{width:32px;height:32px;border-radius:8px;display:flex;align-items:center;justify-content:center;background-color:#3498db1a;color:var(--primary-color);flex-shrink:0}.service-name{font-weight:600;margin-bottom:2px}.service-description-small{font-size:12px;color:var(--text-light);line-height:1.3}.table-actions{display:flex;gap:var(--spacing-xs);justify-content:center}.table-actions .btn{padding:4px 8px;font-size:12px;white-space:nowrap}.no-results{text-align:center;padding:var(--spacing-xl) 0;color:var(--text-light);grid-column:1 / -1}.no-results svg{color:var(--medium-gray);margin-bottom:var(--spacing-md)}.modal-overlay{position:fixed;inset:0;background-color:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000}.modal-container{width:auto;min-width:300px;max-width:90vw;max-height:90vh;overflow-y:auto}.modal-content{background-color:var(--white);border-radius:var(--radius);box-shadow:var(--shadow-strong);padding:var(--spacing-lg)}.modal-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--spacing-lg);padding-bottom:var(--spacing-md);border-bottom:1px solid var(--medium-gray)}.close-button{background:none;border:none;font-size:24px;color:var(--text-light);cursor:pointer;padding:0;width:30px;height:30px;display:flex;align-items:center;justify-content:center;border-radius:var(--radius);transition:var(--transition)}.form-row{display:grid;grid-template-columns:1fr;gap:var(--spacing-md)}.form-group label{display:block;margin-bottom:var(--spacing-xs);font-weight:500;color:var(--text-color)}.form-group input,.form-group textarea,.form-group select{width:100%;padding:var(--spacing-sm);border:1px solid var(--medium-gray);border-radius:var(--radius);font-size:14px;transition:var(--transition)}.form-group input:focus,.form-group textarea:focus,.form-group select:focus{outline:none;border-color:var(--primary-color);box-shadow:0 0 0 2px #3498db33}.modal-actions{display:flex;justify-content:flex-end;gap:var(--spacing-md);margin-top:var(--spacing-lg);padding-top:var(--spacing-md);border-top:1px solid var(--medium-gray)}.badge{display:inline-block;padding:2px 8px;border-radius:12px;font-size:12px;font-weight:600;text-transform:uppercase}.badge-primary{background-color:var(--primary-color);color:#fff}.badge-secondary{background-color:var(--secondary-color);color:#fff}.badge-warning{background-color:var(--warning-color);color:#fff}.badge-danger{background-color:var(--danger-color);color:#fff}.btn-danger{background-color:var(--danger-color);color:var(--white)}.btn-danger:hover{background-color:#c0392b}@media(max-width:768px){.modal-content{padding:var(--spacing-md);width:100%;min-width:auto;max-height:95vh}.modal-header{padding:var(--spacing-md);margin-bottom:var(--spacing-md)}.modal-header h2{font-size:1.3rem}.close-button{width:28px;height:28px;font-size:20px}.form-group{margin-bottom:var(--spacing-sm)}.form-group label{font-size:.9rem}.form-group input,.form-group textarea,.form-group select{padding:var(--spacing-sm);font-size:.9rem}.modal-actions{flex-direction:column;gap:var(--spacing-sm);margin-top:var(--spacing-md)}.modal-actions .btn{width:100%;padding:var(--spacing-sm);font-size:.9rem}}@media(max-width:480px){.modal-content{padding:var(--spacing-sm);max-height:98vh}.modal-header{padding:var(--spacing-sm)}.modal-header h2{font-size:1.2rem}.close-button{width:26px;height:26px;font-size:18px}.form-group label{font-size:.8rem}.form-group input,.form-group textarea,.form-group select{padding:var(--spacing-xs);font-size:.8rem}.modal-actions .btn{font-size:.8rem;padding:var(--spacing-xs)}}@media(min-width:576px){.services-filters,.filter-options{flex-direction:row}.services-summary,.services-grid,.form-row{grid-template-columns:repeat(2,1fr)}.service-actions .btn{padding:8px 12px;font-size:13px}}@media(min-width:992px){.services-summary{grid-template-columns:repeat(4,1fr)}.services-grid{grid-template-columns:repeat(3,1fr)}}@media(min-width:1200px){.services-grid{grid-template-columns:repeat(4,1fr)}}.clinics-module{padding:var(--spacing-md)}.module-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--spacing-lg)}.module-header h2{margin:0;font-size:24px;font-weight:600;color:var(--text-color)}.clinics-tabs{display:flex;border-bottom:1px solid var(--medium-gray);margin-bottom:var(--spacing-lg);flex-wrap:wrap}.clinics-tabs button{background:none;border:none;padding:var(--spacing-md) var(--spacing-lg);font-size:16px;font-weight:500;color:var(--text-light);cursor:pointer;transition:var(--transition);border-bottom:2px solid transparent;white-space:nowrap}.clinics-tabs button:hover{color:var(--text-color)}.clinics-tabs button.active{color:var(--primary-color);border-bottom-color:var(--primary-color)}.clinics-tab{height:calc(100vh - 300px);overflow-y:auto}.loading{text-align:center;padding:var(--spacing-xl);color:var(--text-light);font-size:16px}.error{background:#fee;color:#c53030;padding:var(--spacing-md);border-radius:var(--radius);margin-bottom:var(--spacing-md);border:1px solid #feb2b2}.no-data{text-align:center;padding:var(--spacing-xl);color:var(--text-light);font-size:16px}.no-data p{margin:0}.clinics-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(400px,1fr));gap:var(--spacing-lg)}.clinic-card{background:var(--white);border:1px solid var(--medium-gray);border-radius:var(--radius);padding:var(--spacing-lg);transition:var(--transition)}.clinic-card:hover{box-shadow:var(--shadow)}.clinic-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:var(--spacing-md)}.clinic-header h3{margin:0;font-size:18px;font-weight:600;color:var(--text-color)}.status-badge{padding:4px 12px;border-radius:12px;font-size:12px;font-weight:600;text-transform:uppercase}.status-badge.active{background-color:var(--success-color);color:var(--white)}.status-badge.inactive{background-color:var(--danger-color);color:var(--white)}.clinic-details{margin-bottom:var(--spacing-md)}.detail-item{margin-bottom:var(--spacing-xs);font-size:14px;color:var(--text-color)}.detail-item strong{color:var(--text-color);margin-right:var(--spacing-xs)}.website-link{color:var(--primary-color);text-decoration:none;font-weight:500;transition:var(--transition);word-break:break-all}.website-link:hover{color:var(--primary-dark);text-decoration:underline}.clinic-specialties{margin-bottom:var(--spacing-md)}.specialties-list{display:flex;flex-wrap:wrap;gap:var(--spacing-xs);margin-top:var(--spacing-xs)}.specialty-tag{background-color:var(--light-gray);color:var(--text-color);padding:4px 8px;border-radius:12px;font-size:12px;font-weight:500}.clinic-doctors{margin-bottom:var(--spacing-md);font-size:14px;color:var(--text-color)}.clinic-actions{display:flex;gap:var(--spacing-sm)}.doctors-tab{height:calc(100vh - 300px);overflow-y:auto}.doctors-list{display:flex;flex-direction:column;gap:var(--spacing-md)}.doctor-card{background:var(--white);border:1px solid var(--medium-gray);border-radius:var(--radius);padding:var(--spacing-lg);transition:var(--transition)}.doctor-card:hover{box-shadow:var(--shadow)}.doctor-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:var(--spacing-md)}.doctor-info h3{margin:0 0 var(--spacing-xs) 0;font-size:18px;font-weight:600;color:var(--text-color)}.specialty{color:var(--primary-color);font-size:14px;font-weight:500}.doctor-details{margin-bottom:var(--spacing-md)}.clinics-list{display:flex;flex-wrap:wrap;gap:var(--spacing-xs);margin-top:var(--spacing-xs)}.clinic-tag{background-color:var(--primary-color);color:var(--white);padding:4px 8px;border-radius:12px;font-size:12px;font-weight:500}.doctor-schedule{margin-bottom:var(--spacing-md)}.schedule-list{display:flex;flex-direction:column;gap:var(--spacing-xs);margin-top:var(--spacing-xs)}.schedule-item{display:flex;justify-content:space-between;align-items:center;padding:var(--spacing-xs) var(--spacing-sm);background-color:var(--light-gray);border-radius:var(--radius);font-size:12px}.schedule-item .day{font-weight:600;color:var(--text-color)}.schedule-item .time{color:var(--primary-color);font-weight:500}.schedule-item .clinic{color:var(--text-light);font-size:11px}.doctor-actions{display:flex;gap:var(--spacing-sm)}.oncall-tab{height:calc(100vh - 300px);overflow-y:auto}.oncall-header{text-align:center;margin-bottom:var(--spacing-lg);padding:var(--spacing-lg);background:var(--light-gray);border-radius:var(--radius)}.oncall-header h3{margin:0 0 var(--spacing-sm) 0;font-size:20px;font-weight:600;color:var(--text-color)}.oncall-header p{margin:0;color:var(--text-light);font-size:16px}.oncall-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(350px,1fr));gap:var(--spacing-lg)}.oncall-card{background:var(--white);border:1px solid var(--medium-gray);border-radius:var(--radius);padding:var(--spacing-lg);transition:var(--transition);border-left:4px solid var(--primary-color)}.oncall-card:hover{box-shadow:var(--shadow)}.oncall-doctor-info{margin-bottom:var(--spacing-md)}.oncall-doctor-info h4{margin:0 0 var(--spacing-xs) 0;font-size:16px;font-weight:600;color:var(--text-color)}.oncall-schedule{margin-bottom:var(--spacing-md)}.schedule-detail{display:flex;justify-content:space-between;align-items:center;padding:var(--spacing-sm);background-color:var(--light-gray);border-radius:var(--radius);margin-bottom:var(--spacing-xs)}.time-slot{font-weight:600;color:var(--primary-color);font-size:14px}.clinic-name{color:var(--text-color);font-size:14px}.oncall-contact{margin-bottom:var(--spacing-md)}.contact-item{margin-bottom:var(--spacing-xs);font-size:14px;color:var(--text-color)}.contact-item strong{color:var(--text-color);margin-right:var(--spacing-xs)}.oncall-actions{display:flex;gap:var(--spacing-sm)}.schedule-tab{height:calc(100vh - 300px);overflow-y:auto}.schedule-form{max-width:800px;margin:0 auto;background:var(--white);border:1px solid var(--medium-gray);border-radius:var(--radius);padding:var(--spacing-lg)}.schedule-form h3{margin:0 0 var(--spacing-lg) 0;font-size:20px;font-weight:600;color:var(--text-color);text-align:center}.form-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:var(--spacing-md);margin-bottom:var(--spacing-lg)}.form-group{display:flex;flex-direction:column;gap:var(--spacing-xs)}.form-group label{font-weight:600;color:var(--text-color);font-size:14px}.form-group input,.form-group select{padding:var(--spacing-md);border:2px solid var(--medium-gray);border-radius:var(--radius);font-size:16px;transition:var(--transition);background:var(--white)}.form-group input:focus,.form-group select:focus{border-color:var(--primary-color);box-shadow:0 0 0 2px #3498db33;outline:none}.form-actions{display:flex;justify-content:center;gap:var(--spacing-md)}.add-clinic-modal,.add-doctor-modal{width:100%;max-width:600px}.modal-header{display:flex;justify-content:space-between;align-items:center;padding-bottom:var(--spacing-md);border-bottom:1px solid var(--medium-gray);margin-bottom:var(--spacing-lg)}.modal-header h3{margin:0;font-size:20px;font-weight:600;color:var(--text-color)}.close-button{background:none;border:none;color:var(--text-light);cursor:pointer;padding:var(--spacing-xs);border-radius:var(--radius);transition:var(--transition)}.close-button:hover{background-color:var(--medium-gray);color:var(--text-color)}.clinic-form,.doctor-form{display:flex;flex-direction:column;gap:var(--spacing-md)}.checkbox-group{display:flex;flex-direction:column;gap:var(--spacing-sm);margin-top:var(--spacing-xs)}.checkbox-item{display:flex;align-items:center;gap:var(--spacing-sm);cursor:pointer;font-size:14px;color:var(--text-color)}.checkbox-item input[type=checkbox]{width:16px;height:16px;accent-color:var(--primary-color)}.clinic-hours-editor{display:flex;flex-direction:column;gap:var(--spacing-md)}.day-row{display:flex;align-items:flex-start;gap:var(--spacing-md);padding:var(--spacing-md);border:1px solid var(--medium-gray);border-radius:var(--radius);background:var(--white)}.day-label{min-width:100px;flex-shrink:0}.day-label strong{color:var(--text-color);font-size:14px}.day-controls{flex:1;display:flex;flex-direction:column;gap:var(--spacing-sm)}.closed-toggle{display:flex;align-items:center;gap:var(--spacing-xs);font-size:14px;color:var(--text-color);cursor:pointer}.closed-toggle input[type=checkbox]{width:16px;height:16px;accent-color:var(--danger-color)}.ranges{display:flex;flex-direction:column;gap:var(--spacing-sm)}.range-row{display:flex;align-items:center;gap:var(--spacing-sm);padding:var(--spacing-sm);background:var(--light-gray);border-radius:var(--radius)}.range-row input[type=time]{padding:var(--spacing-xs) var(--spacing-sm);border:1px solid var(--medium-gray);border-radius:var(--radius);font-size:14px;background:var(--white)}.to-sep{color:var(--text-light);font-size:14px;font-weight:500}.range-row .btn{padding:var(--spacing-xs) var(--spacing-sm);font-size:12px;margin-left:auto}@media(max-width:768px){.clinics-grid,.oncall-grid,.form-grid,.form-row{grid-template-columns:1fr}.clinics-tabs{flex-wrap:wrap}.clinics-tabs button{flex:1;min-width:120px}.module-header{flex-direction:column;align-items:flex-start;gap:var(--spacing-md)}.header-actions{width:100%}.header-actions .btn{flex:1}}@media(max-width:480px){.clinic-card,.doctor-card,.oncall-card,.schedule-form{padding:var(--spacing-md)}.form-actions{flex-direction:column}}.btn-danger{background-color:#dc3545;color:#fff;border:1px solid #dc3545}.btn-danger:hover{background-color:#c82333;border-color:#bd2130}.btn-warning{background-color:#ffc107;color:#212529;border:1px solid #ffc107}.btn-warning:hover{background-color:#e0a800;border-color:#d39e00}.btn-success{background-color:#28a745;color:#fff;border:1px solid #28a745}.btn-success:hover{background-color:#218838;border-color:#1e7e34}.clinic-actions{display:flex;gap:var(--spacing-xs);flex-wrap:wrap;margin-top:var(--spacing-sm)}.clinic-actions .btn{font-size:12px;padding:4px 8px;min-width:auto}.whatsapp-modal{max-width:800px;width:90vw;max-height:90vh;overflow:hidden}.whatsapp-modal .modal-close{z-index:15!important;position:absolute!important;top:5px!important;right:5px!important}.whatsapp-modal-content{display:flex;flex-direction:column;height:100%}.whatsapp-modal-content .modal-header{display:flex;flex-direction:column;gap:1rem;justify-content:space-between;align-items:center;padding:1.5rem;border-bottom:1px solid var(--border-color);background:var(--background-color);position:sticky;top:0;z-index:5;flex-shrink:0}.whatsapp-modal-content .modal-header h3{margin:0;color:#000!important;font-size:1.5rem;font-weight:600}.header-tabs{display:flex;gap:.5rem}.tab-button{padding:.5rem 1rem;border:1px solid var(--border-color);background:#f5f5f5;color:#333;border-radius:.5rem;cursor:pointer;transition:all .2s ease;font-size:.875rem;font-weight:500}.tab-button:hover{background:var(--hover-color);border-color:var(--primary-color)}.tab-button.active{background:var(--primary-color);color:#fff;border-color:var(--primary-color)}.whatsapp-modal .modal-body{flex:1;overflow-y:auto;padding:1.5rem;margin-top:0;min-height:0}.message-form{display:flex;flex-direction:column;gap:1.5rem}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:1rem}.form-group label{font-weight:500;color:var(--text-primary);font-size:.875rem}.form-group input,.form-group textarea,.form-group select{padding:.75rem;border:1px solid var(--border-color);border-radius:.5rem;font-size:.875rem;transition:border-color .2s ease;background:var(--background-color);color:var(--text-primary)}.form-group input:focus,.form-group textarea:focus,.form-group select:focus{outline:none;border-color:var(--primary-color);box-shadow:0 0 0 3px #3b82f61a}.template-select{background:var(--background-color);border:1px solid var(--border-color);border-radius:.5rem;padding:.75rem;font-size:.875rem;color:var(--text-primary)}.form-help{font-size:.75rem;color:var(--text-secondary);margin-top:.25rem}.form-actions{display:flex;justify-content:flex-end;gap:1rem;padding-top:1rem;border-top:1px solid var(--border-color)}.templates-section{display:flex;flex-direction:column;gap:1.5rem;padding:1rem}.templates-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem}.templates-header h4{margin:0;color:var(--text-primary);font-size:1.25rem;font-weight:600}.templates-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:1.25rem;padding:.5rem 0}.template-card{border:1px solid var(--border-color);border-radius:.75rem;padding:1.25rem;background:var(--background-color);transition:all .2s ease;box-shadow:0 2px 4px #0000000d;position:relative;overflow:hidden}.template-card:hover{border-color:var(--primary-color);box-shadow:0 6px 20px #0000001a;transform:translateY(-2px)}.template-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:1rem;gap:.75rem}.template-header h5{margin:0;color:var(--text-primary);font-size:1.1rem;font-weight:600;line-height:1.3;flex:1}.template-category{background:var(--primary-color);color:#fff;padding:.375rem .75rem;border-radius:.5rem;font-size:.75rem;font-weight:500;text-transform:capitalize;white-space:nowrap;flex-shrink:0}.template-content{margin-bottom:1.25rem;min-height:4.5rem}.template-content p{margin:0;color:var(--text-secondary);font-size:.875rem;line-height:1.6;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;text-overflow:ellipsis}.template-meta{display:flex;gap:.5rem;align-items:center;flex-wrap:wrap;margin-top:.5rem}.template-status{background:var(--success-color);color:#fff;padding:.25rem .5rem;border-radius:.375rem;font-size:.75rem;font-weight:500;text-transform:uppercase}.template-status.PENDING{background:var(--warning-color)}.template-status.REJECTED{background:var(--error-color)}.template-details{margin:1rem 0;padding:.75rem;background:var(--background-secondary);border-radius:.5rem;border:1px solid var(--border-light)}.template-info{display:flex;gap:.5rem;margin-bottom:.5rem;flex-wrap:wrap}.template-type{background:var(--info-color);color:#fff;padding:.25rem .5rem;border-radius:.25rem;font-size:.7rem;font-weight:500}.template-language{background:var(--secondary-color);color:#fff;padding:.25rem .5rem;border-radius:.25rem;font-size:.7rem;font-weight:500}.template-dates{color:var(--text-secondary);font-size:.75rem}.dynamic-form-fields{margin:1.5rem 0;padding:1rem;background:var(--background-secondary);border-radius:.5rem;border:1px solid var(--border-light)}.dynamic-form-fields h4{margin:0 0 1rem;color:var(--text-primary);font-size:1rem;font-weight:600}.required{color:var(--error-color);margin-left:.25rem}.readonly-message{background-color:var(--background-secondary)!important;border:1px solid var(--border-light)!important;color:var(--text-primary)!important;cursor:not-allowed!important;resize:none!important}.readonly-message:focus{outline:none!important;border-color:var(--border-light)!important;box-shadow:none!important}.readonly-field{background-color:var(--background-secondary)!important;border:1px solid var(--border-light)!important;color:var(--text-secondary)!important;cursor:not-allowed!important}.readonly-field:focus{outline:none!important;border-color:var(--border-light)!important;box-shadow:none!important}.field-note{display:block;margin-top:.25rem;color:var(--text-secondary);font-size:.75rem;font-style:italic}.message-note{display:block;margin-top:.5rem;color:var(--text-secondary);font-size:.875rem;font-style:italic}.template-actions{display:flex;justify-content:flex-end;margin-top:auto}.template-actions .btn{padding:.5rem 1rem;font-size:.875rem;border-radius:.5rem;transition:all .2s ease}.template-actions .btn-outline{border:1px solid var(--primary-color);color:var(--primary-color);background:transparent}.template-actions .btn-outline:hover{background:var(--primary-color);color:#fff;transform:translateY(-1px)}.template-creation-modal{max-width:600px;width:90vw}.template-creation-modal .modal-header{padding:1.5rem;border-bottom:1px solid var(--border-color)}.template-creation-modal .modal-header h3{margin:0;color:var(--text-primary);font-size:1.25rem;font-weight:600}.template-form{padding:1.5rem;display:flex;flex-direction:column;gap:1.5rem}.btn{padding:.75rem 1.5rem;border:none;border-radius:.5rem;font-size:.875rem;font-weight:500;cursor:pointer;transition:all .2s ease;display:inline-flex;align-items:center;justify-content:center;gap:.5rem}.btn-primary{background:var(--primary-color);color:#fff}.btn-primary:hover:not(:disabled){background:var(--primary-hover)}.btn-secondary{background:var(--background-color);color:var(--text-primary);border:1px solid var(--border-color)}.btn-secondary:hover:not(:disabled){background:var(--hover-color)}.btn-outline{background:transparent;color:var(--text-primary);border:1px solid var(--border-color)}.btn-outline:hover:not(:disabled){background:var(--hover-color);border-color:var(--primary-color)}.btn-sm{padding:.5rem 1rem;font-size:.75rem}.whatsapp-modal .modal-body{position:relative}.whatsapp-modal .spinner-container{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);z-index:20}@media(max-width:768px){.whatsapp-modal{width:95vw;max-height:95vh}.form-row{grid-template-columns:1fr}.templates-grid{grid-template-columns:1fr;gap:1rem}.template-card{padding:1rem}.header-tabs{flex-direction:column;gap:.25rem}.tab-button{padding:.5rem;font-size:.75rem}.form-actions{flex-direction:column}.btn{width:100%}}@media(prefers-color-scheme:dark){.whatsapp-modal{--background-color: #1a1a1a;--text-primary: #ffffff;--text-secondary: #a0a0a0;--border-color: #333333;--hover-color: #2a2a2a;--primary-color: #3b82f6;--primary-hover: #2563eb}}.tab-button{position:relative;overflow:hidden}.tab-button:before{content:"";position:absolute;top:0;left:-100%;width:100%;height:100%;background:linear-gradient(90deg,transparent,rgba(255,255,255,.2),transparent);transition:left .5s}.tab-button:hover:before{left:100%}.template-card{position:relative;overflow:hidden}.template-card:before{content:"";position:absolute;inset:0;background:linear-gradient(135deg,transparent 0%,rgba(59,130,246,.05) 100%);opacity:0;transition:opacity .3s ease}.template-card:hover:before{opacity:1}.patient-item{position:relative;overflow:hidden}.patient-item input[type=checkbox]:checked+label{color:var(--primary-color);font-weight:600}.patient-item input[type=checkbox]:checked+label:after{content:"✓";position:absolute;right:1rem;top:50%;transform:translateY(-50%);color:var(--primary-color);font-weight:700;font-size:1rem}.email-modal{max-width:800px;margin:0 auto;background:var(--background-primary);border-radius:12px;overflow:hidden;box-shadow:0 20px 25px -5px #0000001a,0 10px 10px -5px #0000000a}.modal-header{background:var(--primary-color);color:#fff;padding:1.5rem 2rem;border-bottom:none}.header-content{display:flex;align-items:center;gap:1rem}.header-icon{display:flex;align-items:center;justify-content:center;width:48px;height:48px;background:#fff3;border-radius:12px;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.header-text h3{margin:0;font-size:1.5rem;font-weight:600;color:#fff}.header-text p{margin:.25rem 0 0;font-size:.9rem;color:#fffc}.email-form{padding:2rem;background:var(--background-primary)}.form-section{margin-bottom:2rem;background:var(--background-secondary);border-radius:12px;border:1px solid var(--border-light);overflow:hidden;transition:all .2s ease}.form-section:hover{border-color:var(--border-color);box-shadow:0 4px 6px -1px #0000001a}.section-header{background:var(--background-primary);padding:1rem 1.5rem;border-bottom:1px solid var(--border-light);display:flex;align-items:center;justify-content:space-between}.section-header h4{margin:0;font-size:1.1rem;font-weight:600;color:var(--text-primary);display:flex;align-items:center;gap:.5rem}.section-header h4:before{content:"";width:4px;height:20px;background:var(--primary-color);border-radius:2px}.attachment-count{background:var(--primary-color);color:#fff;padding:.25rem .75rem;border-radius:20px;font-size:.8rem;font-weight:500}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:1.5rem;padding:1.5rem}.form-group{display:flex;flex-direction:column;gap:.5rem}.form-group label{font-weight:500;color:var(--text-primary);font-size:.9rem}.form-group input,.form-group textarea{padding:.875rem 1rem;border:2px solid var(--border-color);border-radius:8px;font-size:1rem;background:var(--background-primary);color:var(--text-primary);transition:all .2s ease;font-family:inherit}.form-group input:focus,.form-group textarea:focus{outline:none;border-color:var(--primary-color);box-shadow:0 0 0 3px rgba(var(--primary-color-rgb),.1);transform:translateY(-1px)}.form-group input.error,.form-group textarea.error{border-color:var(--error-color);box-shadow:0 0 0 3px #ef44441a}.form-group textarea{resize:vertical;min-height:120px;font-family:inherit;line-height:1.5}.patient-select{grid-column:1}.email-input{grid-column:2}.message-section .form-group{padding:1.5rem}.attachments-section{border:2px dashed var(--border-color);background:var(--background-primary)}.attachment-dropzone{padding:2rem;text-align:center;transition:all .3s ease;cursor:pointer;border-radius:8px;margin:1.5rem}.attachment-dropzone:hover,.attachment-dropzone.drag-active{background:rgba(var(--primary-color-rgb),.05);border-color:var(--primary-color);transform:translateY(-2px)}.dropzone-content{display:flex;flex-direction:column;align-items:center;gap:1rem}.dropzone-icon{color:var(--text-secondary);transition:color .2s ease}.attachment-dropzone:hover .dropzone-icon,.attachment-dropzone.drag-active .dropzone-icon{color:var(--primary-color)}.dropzone-text{display:flex;flex-direction:column;gap:.25rem}.dropzone-title{margin:0;font-weight:500;color:var(--text-primary);font-size:1rem}.dropzone-subtitle{margin:0;color:var(--text-secondary);font-size:.875rem}.attachment-list{margin:1.5rem;display:flex;flex-direction:column;gap:.75rem}.attachment-item{display:flex;align-items:center;justify-content:space-between;padding:1rem;background:var(--background-primary);border:1px solid var(--border-light);border-radius:8px;transition:all .2s ease}.attachment-item:hover{border-color:var(--border-color);box-shadow:0 2px 4px #0000001a}.attachment-info{display:flex;align-items:center;gap:.75rem;flex:1}.attachment-icon{display:flex;align-items:center;justify-content:center;width:32px;height:32px;background:var(--background-secondary);border-radius:6px;color:var(--text-secondary)}.attachment-details{display:flex;flex-direction:column;gap:.125rem}.attachment-name{font-weight:500;color:var(--text-primary);font-size:.9rem}.attachment-size{color:var(--text-secondary);font-size:.8rem}.attachment-remove{display:flex;align-items:center;justify-content:center;width:32px;height:32px;background:transparent;border:none;border-radius:6px;color:var(--text-secondary);cursor:pointer;transition:all .2s ease}.attachment-remove:hover{background:var(--error-color);color:#fff}.btn{padding:.75rem 1.5rem;border:none;border-radius:8px;font-size:1rem;font-weight:500;cursor:pointer;transition:all .2s ease;text-decoration:none;display:inline-flex;align-items:center;justify-content:center;gap:.5rem;min-width:120px;position:relative;overflow:hidden}.btn:disabled{opacity:.6;cursor:not-allowed;transform:none!important}.btn-primary{background:var(--primary-color);color:#fff;box-shadow:0 4px 6px -1px rgba(var(--primary-color-rgb),.3)}.btn-primary:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 8px 15px -3px rgba(var(--primary-color-rgb),.4)}.btn-outline{background:transparent;color:var(--text-primary);border:2px solid var(--border-color)}.btn-outline:hover:not(:disabled){background:var(--background-secondary);border-color:var(--border-color);transform:translateY(-1px)}.btn-sm{padding:.5rem 1rem;font-size:.875rem;min-width:auto}.btn-spinner{animation:spin 1s linear infinite}.form-actions{display:flex;gap:1rem;justify-content:flex-end;padding:1.5rem 2rem;background:var(--background-secondary);border-top:1px solid var(--border-light)}.alert{padding:1rem 1.5rem;border-radius:8px;margin:1.5rem;display:flex;align-items:center;gap:.75rem;font-weight:500}.alert-error{background:#ef44441a;border:1px solid var(--error-color);color:var(--error-color)}.alert-sm{padding:.75rem 1rem;font-size:.875rem;margin:1rem 1.5rem}.error-message{display:block;color:var(--error-color);font-size:.875rem;margin-top:.25rem;font-weight:500}.searchable-dropdown{position:relative}.searchable-dropdown .dropdown-input{width:100%;padding:.875rem 1rem;border:2px solid var(--border-color);border-radius:8px;font-size:1rem;background:var(--background-primary);color:var(--text-primary);transition:all .2s ease}.searchable-dropdown .dropdown-input:focus{outline:none;border-color:var(--primary-color);box-shadow:0 0 0 3px rgba(var(--primary-color-rgb),.1)}.searchable-dropdown .dropdown-list{position:absolute;top:100%;left:0;right:0;background:var(--background-primary);border:2px solid var(--border-color);border-top:none;border-radius:0 0 8px 8px;max-height:200px;overflow-y:auto;z-index:1000;box-shadow:0 8px 15px -3px #0000001a}.searchable-dropdown .dropdown-item{padding:.875rem 1rem;cursor:pointer;border-bottom:1px solid var(--border-light);transition:background-color .2s ease}.searchable-dropdown .dropdown-item:hover{background:var(--background-secondary)}.searchable-dropdown .dropdown-item:last-child{border-bottom:none}.searchable-dropdown .loading{padding:.875rem 1rem;text-align:center;color:var(--text-secondary);font-style:italic}@media(max-width:768px){.email-modal{max-width:100%;margin:0;border-radius:0}.modal-header{padding:1rem 1.5rem}.header-content{gap:.75rem}.header-icon{width:40px;height:40px}.header-text h3{font-size:1.25rem}.email-form{padding:1.5rem}.form-row{grid-template-columns:1fr;gap:1rem;padding:1rem}.form-actions{flex-direction:column;padding:1rem 1.5rem}.btn{width:100%}.attachment-dropzone{padding:1.5rem;margin:1rem}.attachment-list{margin:1rem}}.communications-module{padding:var(--spacing-lg);background-color:var(--background-color);min-height:100vh}.module-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--spacing-lg);background-color:var(--white);padding:var(--spacing-md);border-radius:var(--radius);box-shadow:var(--shadow)}.module-header h2{margin:0;color:var(--text-dark);font-size:1.5rem;font-weight:600}.communication-actions{margin-top:var(--spacing-xl);background-color:var(--white);padding:var(--spacing-lg);border-radius:var(--radius);box-shadow:var(--shadow)}.actions-header{text-align:center;margin-bottom:var(--spacing-lg)}.actions-header h3{margin:0 0 var(--spacing-sm) 0;color:var(--text-dark);font-size:1.25rem;font-weight:600}.actions-header p{margin:0;color:var(--text-muted);font-size:.9rem}.actions-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:var(--spacing-lg);max-width:900px;margin:0 auto}.action-card{display:flex;align-items:center;gap:var(--spacing-md);padding:var(--spacing-lg);border:2px solid var(--border-color);border-radius:var(--radius);background-color:var(--white);cursor:pointer;transition:all .3s ease;text-align:left;width:100%}.action-card:hover{transform:translateY(-2px);box-shadow:0 8px 25px #0000001a;border-color:var(--primary-color)}.action-card.whatsapp:hover{border-color:#25d366;background-color:#25d3660d}.action-card.email:hover{border-color:#4285f4;background-color:#4285f40d}.action-card.broadcast:hover{border-color:#ff6b35;background-color:#ff6b350d}.action-icon{flex-shrink:0;width:48px;height:48px;display:flex;align-items:center;justify-content:center;border-radius:var(--radius);background-color:var(--light-gray)}.action-card.whatsapp .action-icon{background-color:#25d3661a}.action-card.email .action-icon{background-color:#4285f41a}.action-card.broadcast .action-icon{background-color:#ff6b351a}.action-content h4{margin:0 0 var(--spacing-xs) 0;color:var(--text-dark);font-size:1.1rem;font-weight:600}.action-content p{margin:0;color:var(--text-muted);font-size:.85rem;line-height:1.4}.header-actions{display:flex;gap:var(--spacing-sm)}.header-actions .btn{display:flex;align-items:center;gap:var(--spacing-xs);padding:var(--spacing-sm) var(--spacing-md);border-radius:var(--radius);font-size:.9rem;font-weight:500;transition:all .2s ease;border:1px solid var(--border-color);background-color:var(--white);color:var(--text-dark);cursor:pointer}.header-actions .btn:hover{background-color:var(--light-gray);transform:translateY(-1px);box-shadow:var(--shadow)}.header-actions .btn-primary{background-color:var(--primary-color);color:var(--white);border-color:var(--primary-color)}.header-actions .btn-primary:hover{background-color:var(--primary-dark);border-color:var(--primary-dark)}.header-actions .btn svg{width:16px;height:16px}.communications-tabs{display:flex;border-bottom:1px solid var(--border-color);margin-bottom:var(--spacing-lg);margin-top:var(--spacing-lg);background-color:var(--white);border-radius:var(--radius);overflow:hidden}.communications-tabs button{background:none;border:none;padding:var(--spacing-md) var(--spacing-lg);font-size:1rem;font-weight:500;color:var(--text-medium);cursor:pointer;transition:all .2s ease;border-bottom:2px solid transparent;flex:1}.communications-tabs button:hover{color:var(--text-dark);background-color:var(--light-gray)}.communications-tabs button.active{color:var(--primary-color);border-bottom-color:var(--primary-color);background-color:var(--white)}.communications-content{transition:all .3s ease;min-height:0;contain:layout}.tab-content{opacity:0;transform:translateY(10px);transition:opacity .3s ease,transform .3s ease;pointer-events:none}.tab-content.active{opacity:1;transform:translateY(0);pointer-events:auto}.quick-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:var(--spacing-md);margin-bottom:var(--spacing-lg)}.stat-card{background-color:var(--white);padding:var(--spacing-lg);border-radius:var(--radius);box-shadow:var(--shadow);display:flex;align-items:center;gap:var(--spacing-md);transition:transform .2s ease}.stat-card:hover{transform:translateY(-2px);box-shadow:0 4px 12px #00000026}.stat-icon{width:60px;height:60px;border-radius:50%;display:flex;align-items:center;justify-content:center;flex-shrink:0}.stat-icon.whatsapp{background-color:#25d366;color:#fff}.stat-icon.email{background-color:#4285f4;color:#fff}.stat-icon.broadcast{background-color:#ff6b35;color:#fff}.stat-info h3{margin:0 0 var(--spacing-xs) 0;font-size:.9rem;color:var(--text-light);font-weight:500}.stat-number{margin:0 0 var(--spacing-xs) 0;font-size:2rem;font-weight:700;color:var(--text-dark)}.stat-period{margin:0;font-size:.8rem;color:var(--text-light)}.recent-communications{background-color:var(--white);border-radius:var(--radius);box-shadow:var(--shadow);overflow:hidden}.recent-communications h3{margin:0;padding:var(--spacing-lg);border-bottom:1px solid var(--border-color);color:var(--text-dark);font-size:1.2rem;font-weight:600}.communications-list{padding:0}.communication-item{display:flex;align-items:center;gap:var(--spacing-md);padding:var(--spacing-lg);border-bottom:1px solid var(--border-color);transition:background-color .2s ease}.communication-item:last-child{border-bottom:none}.communication-item:hover{background-color:var(--light-gray)}.comm-icon{width:40px;height:40px;border-radius:50%;display:flex;align-items:center;justify-content:center;flex-shrink:0}.communication-item.whatsapp .comm-icon{background-color:#25d366;color:#fff}.communication-item.email .comm-icon{background-color:#4285f4;color:#fff}.communication-item.broadcast .comm-icon{background-color:#ff6b35;color:#fff}.comm-content{flex:1}.comm-content h4{margin:0 0 var(--spacing-xs) 0;font-size:1rem;font-weight:600;color:var(--text-dark)}.comm-content p{margin:0 0 var(--spacing-xs) 0;font-size:.9rem;color:var(--text-medium);line-height:1.4}.comm-time{font-size:.8rem;color:var(--text-light)}.comm-status{padding:var(--spacing-xs) var(--spacing-sm);border-radius:var(--radius);font-size:.8rem;font-weight:500;text-transform:uppercase}.comm-status.sent{background-color:#e8f5e8;color:#2e7d32}.comm-status.pending{background-color:#fff3e0;color:#f57c00}.comm-status.failed{background-color:#ffebee;color:#c62828}.message-tracking-section{background-color:var(--white);border-radius:var(--radius);box-shadow:var(--shadow);overflow:hidden;min-height:60vh;max-height:80vh;height:auto;display:flex;flex-direction:column;transition:height .3s ease}.chat-container{display:flex;flex:1;overflow:hidden;min-height:0;height:100%}.chat-sidebar{width:350px;min-width:300px;border-right:1px solid var(--border-color);background-color:var(--white);display:flex;flex-direction:column;flex-shrink:0;overflow:hidden}.chat-search{padding:var(--spacing-md);border-bottom:1px solid var(--border-color);background-color:var(--white)}.search-input{width:100%;padding:var(--spacing-sm);border:1px solid var(--border-color);border-radius:var(--radius);font-size:.9rem;background-color:var(--white);color:var(--text-dark);transition:border-color .2s ease}.search-input:focus{outline:none;border-color:var(--primary-color);box-shadow:0 0 0 2px #3b82f61a}.search-input::-moz-placeholder{color:var(--text-medium)}.search-input::placeholder{color:var(--text-medium)}.chat-contacts{flex:1;overflow-y:auto;padding:0}.chat-contact{display:flex;align-items:center;gap:var(--spacing-md);padding:var(--spacing-md);border-bottom:1px solid var(--border-color);cursor:pointer;transition:background-color .2s ease}.chat-contact:hover{background-color:var(--light-gray)}.chat-contact.active{background-color:#3b82f61a;border-left:3px solid var(--primary-color)}.contact-avatar{flex-shrink:0;width:40px;height:40px;border-radius:50%;background-color:var(--light-gray);display:flex;align-items:center;justify-content:center}.contact-info{flex:1;min-width:0}.contact-name{font-weight:600;font-size:.9rem;color:var(--text-dark);margin-bottom:2px}.contact-meta{font-size:.8rem;color:var(--text-light)}.chat-main{flex:1;display:flex;flex-direction:column;background-color:var(--white);min-height:0;overflow:hidden}.chat-header{padding:var(--spacing-lg);border-bottom:1px solid var(--border-color);background-color:var(--white);display:flex;justify-content:space-between;align-items:center}.chat-header .contact-info h3{margin:0 0 4px;font-size:1.1rem;font-weight:600;color:var(--text-dark)}.chat-header .contact-info p{margin:0;font-size:.9rem;color:var(--text-medium)}.chat-header .message-count{font-size:.8rem;color:var(--text-light);background-color:var(--light-gray);padding:4px 8px;border-radius:12px}.chat-messages{flex:1;padding:var(--spacing-lg);overflow-y:auto;display:flex;flex-direction:column;gap:var(--spacing-lg);min-height:0;-webkit-overflow-scrolling:touch}.message-bubble{max-width:70%;align-self:flex-end;background-color:var(--primary-color);color:#fff;padding:var(--spacing-md);border-radius:18px 18px 4px;position:relative}.message-bubble.sent{background-color:var(--primary-color);color:#fff}.message-content{margin-bottom:var(--spacing-xs)}.message-text{font-size:.9rem;line-height:1.4;white-space:pre-wrap}.message-meta{display:flex;justify-content:flex-end;align-items:center;font-size:.7rem;opacity:.8}.message-time{font-size:.7rem}.chat-placeholder{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;color:var(--text-medium)}.placeholder-icon{margin-bottom:var(--spacing-md);opacity:.5}.chat-placeholder h3{margin:0 0 var(--spacing-sm) 0;font-size:1.2rem;color:var(--text-dark)}.chat-placeholder p{margin:0;font-size:.9rem;opacity:.7}.messages-list{max-height:60vh;overflow-y:auto;padding:0}.message-item{display:flex;gap:var(--spacing-md);padding:var(--spacing-lg);border-bottom:1px solid var(--border-color);cursor:pointer;transition:background-color .2s ease}.message-item:hover{background-color:var(--light-gray)}.message-item.selected{background-color:#3b82f61a;border-left:3px solid var(--primary-color)}.message-icon{flex-shrink:0;display:flex;align-items:center;justify-content:center;width:40px;height:40px;border-radius:50%;background-color:var(--light-gray)}.message-content{flex:1;min-width:0}.message-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:var(--spacing-sm)}.recipient-info{display:flex;flex-direction:column;gap:2px}.recipient-name{font-weight:600;font-size:1rem;color:var(--text-dark)}.recipient-contact{font-size:.9rem;color:var(--text-medium)}.message-status{display:flex;align-items:center;gap:var(--spacing-xs);font-size:.8rem}.status-indicator{font-weight:600}.status-text{text-transform:capitalize;color:var(--text-medium)}.message-preview{margin-bottom:var(--spacing-sm)}.email-subject{font-weight:500;font-size:.9rem;color:var(--text-dark);margin-bottom:var(--spacing-xs)}.message-text{font-size:.9rem;color:var(--text-medium);line-height:1.4}.message-meta{display:flex;gap:var(--spacing-md);font-size:.8rem;color:var(--text-light)}.message-status{padding:2px 6px;border-radius:8px;font-size:.7rem;font-weight:500;text-transform:uppercase}.message-status.sent{background-color:#e8f5e8;color:#2e7d32}.message-status.failed{background-color:#ffebee;color:#c62828}.sent-time,.delivered-time,.read-time{display:flex;align-items:center;gap:var(--spacing-xs)}.message-detail-panel{position:absolute;top:0;right:0;width:400px;height:100%;background-color:var(--white);border-left:1px solid var(--border-color);display:flex;flex-direction:column;overflow:hidden;z-index:10}.detail-header{padding:var(--spacing-lg);background-color:var(--light-gray);border-bottom:1px solid var(--border-color);display:flex;justify-content:space-between;align-items:center}.detail-header h4{margin:0;font-size:1.1rem;font-weight:600;color:var(--text-dark)}.close-detail{background:none;border:none;font-size:1.5rem;color:var(--text-medium);cursor:pointer;padding:var(--spacing-xs);border-radius:50%;width:32px;height:32px;display:flex;align-items:center;justify-content:center;transition:all .2s ease}.close-detail:hover{background-color:var(--medium-gray);color:var(--text-dark)}.detail-content{flex:1;padding:var(--spacing-lg);overflow-y:auto}.detail-section{margin-bottom:var(--spacing-lg)}.detail-section h5{margin:0 0 var(--spacing-sm) 0;font-size:.9rem;font-weight:600;color:var(--text-dark);text-transform:uppercase;letter-spacing:.5px}.detail-section p{margin:0 0 var(--spacing-xs) 0;font-size:1rem;color:var(--text-dark)}.contact-info{font-size:.9rem;color:var(--text-medium)}.message-full-text{background-color:var(--light-gray);padding:var(--spacing-md);border-radius:var(--radius);font-size:.9rem;line-height:1.5;color:var(--text-dark);white-space:pre-wrap}.status-timeline{display:flex;flex-direction:column;gap:var(--spacing-md)}.timeline-item{display:flex;align-items:flex-start;gap:var(--spacing-md)}.timeline-icon{width:32px;height:32px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-weight:600;font-size:.9rem;flex-shrink:0}.timeline-icon.sent{background-color:#6b7280;color:#fff}.timeline-icon.delivered{background-color:#3b82f6;color:#fff}.timeline-icon.read{background-color:#10b981;color:#fff}.timeline-content{flex:1}.timeline-title{font-weight:600;font-size:.9rem;color:var(--text-dark);margin-bottom:2px}.timeline-time{font-size:.8rem;color:var(--text-medium)}.whatsapp-modal,.email-modal,.broadcast-modal{background-color:var(--white);border-radius:var(--radius);max-width:600px;width:100%;max-height:90vh;overflow-y:auto}.modal-header{display:flex;justify-content:space-between;align-items:center;padding:var(--spacing-lg);border-bottom:1px solid var(--border-color)}.modal-header h3{margin:0;color:var(--text-dark);font-size:1.3rem;font-weight:600}.close-btn{background:none;border:none;font-size:1.5rem;color:var(--text-light);cursor:pointer;padding:var(--spacing-xs);border-radius:50%;width:32px;height:32px;display:flex;align-items:center;justify-content:center;transition:all .2s ease}.close-btn:hover{background-color:var(--light-gray);color:var(--text-dark)}form{padding:var(--spacing-lg)}.form-group label{display:block;margin-bottom:var(--spacing-xs);font-weight:500;color:var(--text-dark);font-size:.9rem}.form-group input,.form-group select,.form-group textarea{width:100%;padding:var(--spacing-sm);border:1px solid var(--border-color);border-radius:var(--radius);font-size:.9rem;transition:border-color .2s ease;box-sizing:border-box}.form-group input:focus,.form-group select:focus,.form-group textarea:focus{outline:none;border-color:var(--primary-color);box-shadow:0 0 0 2px #3b82f61a}.form-group textarea{resize:vertical;min-height:100px}.form-help{font-size:.8rem;color:var(--text-medium);margin-top:var(--spacing-xs);font-style:italic}.patients-list{max-height:200px;overflow-y:auto;border:1px solid var(--border-color);border-radius:var(--radius);margin-top:var(--spacing-sm)}.patient-item{display:flex;align-items:center;gap:var(--spacing-sm);padding:var(--spacing-sm);border-bottom:1px solid var(--border-color);cursor:pointer;transition:background-color .2s ease}.patient-item:last-child{border-bottom:none}.patient-item:hover{background-color:var(--light-gray)}.patient-item.selected{background-color:var(--primary-color);color:var(--white)}.patient-item input[type=checkbox]{width:auto;margin:0}.patient-info{flex:1;display:flex;flex-direction:column;gap:2px}.patient-name{font-weight:500;font-size:.9rem}.patient-contact{font-size:.8rem;color:var(--text-light)}.patient-item.selected .patient-contact{color:#fffc}.selected-count{margin-top:var(--spacing-sm);font-size:.9rem;color:var(--text-medium);font-weight:500}.form-actions{display:flex;gap:var(--spacing-sm);justify-content:flex-end;margin-top:var(--spacing-lg);padding-top:var(--spacing-md);border-top:1px solid var(--border-color)}.form-actions .btn{padding:var(--spacing-sm) var(--spacing-lg);border-radius:var(--radius);font-size:.9rem;font-weight:500;cursor:pointer;transition:all .2s ease;border:1px solid var(--border-color)}.form-actions .btn-outline{background-color:var(--white);color:var(--text-dark)}.form-actions .btn-outline:hover{background-color:var(--light-gray)}.form-actions .btn-primary{background-color:var(--primary-color);color:var(--white);border-color:var(--primary-color)}.form-actions .btn-primary:hover{background-color:var(--primary-dark);border-color:var(--primary-dark)}.form-actions .btn-primary:disabled{background-color:var(--text-light);border-color:var(--text-light);cursor:not-allowed}.loading-state{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:40px 20px;text-align:center}.spinner{width:40px;height:40px;border:4px solid #f3f3f3;border-top:4px solid #007bff;border-radius:50%;animation:spin 1s linear infinite;margin-bottom:16px}.empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:40px 20px;text-align:center;color:#6c757d}.empty-icon{margin-bottom:16px;opacity:.5}.empty-state h3{margin:0 0 8px;font-size:18px;font-weight:600}.empty-state p{margin:0;font-size:14px}.section-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px;margin-right:20px}.section-header h3{margin:0;font-size:18px;font-weight:600}.section-header .header-actions{display:flex;gap:var(--spacing-sm)}.btn-sm{padding:6px 12px;font-size:12px;display:flex;align-items:center;gap:6px}.stat-card{background:#fff;border-radius:12px;padding:20px;box-shadow:0 2px 8px #0000001a;border:1px solid #e9ecef;transition:all .3s ease}.stat-card:hover{transform:translateY(-2px);box-shadow:0 4px 16px #00000026}.stat-card.whatsapp{border-left:4px solid #25D366}.stat-card.email{border-left:4px solid #4285F4}.stat-card.broadcast{border-left:4px solid #FF6B35}.stat-card.success-rate{border-left:4px solid #10B981}.message-preview{color:#6c757d;font-size:13px;margin:4px 0;line-height:1.4}.comm-status{padding:4px 8px;border-radius:12px;font-size:11px;font-weight:500;text-transform:uppercase}.comm-status.sent{background:#d4edda;color:#155724}.comm-status.failed{background:#f8d7da;color:#721c24}@media(max-width:768px){.communications-module{padding:var(--spacing-sm);will-change:auto;transform:translateZ(0)}.module-header{flex-direction:column;gap:var(--spacing-sm);align-items:stretch;padding:var(--spacing-sm)}.header-actions{justify-content:center;flex-wrap:wrap;gap:var(--spacing-xs)}.header-actions .btn{flex:1;min-width:100px;justify-content:center;touch-action:manipulation;-webkit-tap-highlight-color:transparent}.quick-stats{grid-template-columns:1fr;gap:var(--spacing-sm)}.stat-card{padding:var(--spacing-sm);transition:none;transform:none}.stat-card:hover{transform:none;box-shadow:0 2px 8px #0000001a}.communication-item{padding:var(--spacing-sm);will-change:auto}.actions-grid{grid-template-columns:1fr;gap:var(--spacing-sm)}.action-card{padding:var(--spacing-sm);transition:none;transform:none}.action-card:hover{transform:none;box-shadow:0 2px 8px #0000001a}.action-icon{width:40px;height:40px}.action-content h4{font-size:1rem}.action-content p{font-size:.8rem}.whatsapp-modal,.email-modal,.broadcast-modal{max-width:95vw;margin:var(--spacing-sm)}.modal-header,form{padding:var(--spacing-sm)}.form-actions{flex-direction:column;gap:var(--spacing-sm)}.form-actions .btn{width:100%;touch-action:manipulation;-webkit-tap-highlight-color:transparent}.message-tracking-section{height:60vh;min-height:50vh;max-height:70vh;margin:0;border-radius:0;-webkit-overflow-scrolling:touch;will-change:auto}.chat-container{flex-direction:column;height:100%;contain:layout}.chat-sidebar{width:100%;height:40%;min-height:180px;border-right:none;border-bottom:1px solid var(--border-color);flex-shrink:0;-webkit-overflow-scrolling:touch}.chat-search{padding:var(--spacing-xs)}.search-input{padding:var(--spacing-xs);font-size:.9rem;touch-action:manipulation;-webkit-tap-highlight-color:transparent}.chat-contacts{max-height:calc(100% - 50px);-webkit-overflow-scrolling:touch;scroll-behavior:smooth}.chat-contact{padding:var(--spacing-xs) var(--spacing-sm);gap:var(--spacing-xs);touch-action:manipulation;-webkit-tap-highlight-color:transparent;min-height:44px}.contact-avatar{width:32px;height:32px;flex-shrink:0}.contact-name{font-size:.85rem;font-weight:500}.chat-main{flex:1;min-height:0;contain:layout}.chat-messages{padding:var(--spacing-sm);gap:var(--spacing-sm);-webkit-overflow-scrolling:touch}.message-bubble{max-width:85%;padding:var(--spacing-xs) var(--spacing-sm);will-change:auto}.message-text{font-size:.85rem;line-height:1.3}.message-meta{margin-top:var(--spacing-xs)}.message-time{font-size:.65rem}.chat-placeholder{padding:var(--spacing-sm)}.chat-placeholder h3{font-size:1rem}.chat-placeholder p{font-size:.75rem}.placeholder-icon{width:40px;height:40px}}@media(min-width:769px)and (max-width:1024px){.communications-module{padding:var(--spacing-md)}.actions-grid{grid-template-columns:repeat(2,1fr);gap:var(--spacing-md)}.action-card{padding:var(--spacing-md)}.quick-stats{grid-template-columns:repeat(2,1fr)}.message-tracking-section{height:65vh;min-height:55vh;max-height:75vh}.chat-sidebar{width:300px}.chat-main{flex:1}}@media(max-width:480px){.communications-module{padding:var(--spacing-xs);contain:layout}.module-header h2{font-size:1.2rem}.header-actions .btn{font-size:.75rem;padding:var(--spacing-xs);min-width:80px}.stat-card{padding:var(--spacing-xs)}.stat-icon{width:40px;height:40px}.stat-number{font-size:1.3rem}.communication-item{padding:var(--spacing-xs);contain:layout}.comm-icon{width:30px;height:30px}.comm-content h4{font-size:.85rem}.comm-content p{font-size:.75rem}.whatsapp-modal,.email-modal,.broadcast-modal{max-width:100vw;margin:0;border-radius:0;height:100vh}.modal-header{padding:var(--spacing-xs)}.modal-header h3{font-size:1rem}form{padding:var(--spacing-xs)}.patients-list{max-height:120px}.patient-item{padding:var(--spacing-xs)}.patient-name{font-size:.75rem}.patient-contact{font-size:.65rem}.communications-tabs{flex-direction:column}.communications-tabs button{padding:var(--spacing-xs) var(--spacing-sm);font-size:.85rem}.message-tracking-section{height:70vh;min-height:60vh;max-height:80vh;margin:0;border-radius:0;box-shadow:none}.chat-container{flex-direction:column;height:100%}.chat-sidebar{width:100%;height:35%;min-height:180px;border-right:none;border-bottom:1px solid var(--border-color);flex-shrink:0}.chat-search{padding:var(--spacing-xs) var(--spacing-sm)}.search-input{padding:var(--spacing-xs);font-size:.8rem}.chat-contacts{max-height:calc(100% - 50px)}.chat-contact{padding:var(--spacing-xs) var(--spacing-sm);gap:var(--spacing-xs)}.contact-avatar{width:30px;height:30px;flex-shrink:0}.contact-name{font-size:.8rem;font-weight:500}.chat-main{flex:1;min-height:0}.chat-messages{padding:var(--spacing-sm);gap:var(--spacing-sm)}.message-bubble{max-width:90%;padding:var(--spacing-xs) var(--spacing-sm)}.message-text{font-size:.8rem;line-height:1.3}.message-meta{margin-top:var(--spacing-xs)}.message-time{font-size:.6rem}.chat-placeholder{padding:var(--spacing-sm)}.chat-placeholder h3{font-size:1rem}.chat-placeholder p{font-size:.7rem}.placeholder-icon{width:40px;height:40px}@media(max-width:480px)and (orientation:landscape){.message-tracking-section{height:80vh}.chat-sidebar{height:30%;min-height:120px}.chat-main{height:70%}}.chat-contact,.search-input{min-height:44px;touch-action:manipulation}.message-bubble{touch-action:manipulation}.chat-contacts,.chat-messages{-webkit-overflow-scrolling:touch;scroll-behavior:smooth}.chat-contact:active{background-color:var(--medium-gray);transform:scale(.98)}.search-input:focus{transform:scale(1.02)}}.settings-section{padding:20px;background:#fff;border-radius:12px;box-shadow:0 2px 8px #0000001a}.settings-section form{max-width:800px}.settings-section .form-group{margin-bottom:20px}.settings-section label{display:block;margin-bottom:8px;font-weight:600;color:#374151}.settings-section input[type=text],.settings-section input[type=email],.settings-section input[type=number],.settings-section input[type=password]{width:100%;padding:12px;border:1px solid #d1d5db;border-radius:8px;font-size:14px;transition:border-color .3s ease}.settings-section input[type=text]:focus,.settings-section input[type=email]:focus,.settings-section input[type=number]:focus,.settings-section input[type=password]:focus{outline:none;border-color:#007bff;box-shadow:0 0 0 3px #007bff1a}.settings-section input[type=checkbox]{width:18px;height:18px;margin-right:8px;accent-color:#007bff}.settings-section .form-actions{display:flex;gap:12px;justify-content:flex-end;margin-top:30px;padding-top:20px;border-top:1px solid #e5e7eb}.settings-section .settings-section-header{margin-bottom:24px;padding-bottom:12px;border-bottom:2px solid #e5e7eb}.settings-section .settings-section-header h4{margin:0;font-size:18px;font-weight:600;color:#111827}.settings-section .settings-section-header p{margin:8px 0 0;color:#6b7280;font-size:14px}.whatsapp-settings{background:#f0f9ff;border:1px solid #bae6fd;border-radius:8px;padding:20px;margin-bottom:24px}.whatsapp-settings .section-header{display:flex;align-items:center;margin-bottom:16px}.whatsapp-settings .section-header svg{width:20px;height:20px;fill:#25d366;margin-right:8px}.email-settings{background:#f0f4ff;border:1px solid #c7d2fe;border-radius:8px;padding:20px;margin-bottom:24px}.email-settings .section-header{display:flex;align-items:center;margin-bottom:16px}.email-settings .section-header svg{width:20px;height:20px;fill:#4285f4;margin-right:8px}.settings-errors{background:#fef2f2;border:1px solid #fecaca;border-radius:8px;padding:12px;margin-bottom:20px}.settings-errors ul{margin:0;padding-left:20px;color:#dc2626}.settings-errors li{margin-bottom:4px}.settings-loading{display:flex;align-items:center;justify-content:center;padding:40px;color:#6b7280}.settings-loading .spinner{margin-right:12px}@media(max-width:768px){.settings-section{padding:16px}.settings-section form{max-width:100%}.settings-section .form-actions{flex-direction:column}.settings-section .form-actions button{width:100%}.whatsapp-settings,.email-settings{padding:16px}}.communication-settings{padding:20px;max-width:1200px;margin:0 auto}.page-header{margin-bottom:30px}.page-header h1{color:#2c3e50;margin-bottom:10px}.page-header p{color:#7f8c8d;font-size:16px}.clinics-list{background:#fff;border-radius:8px;box-shadow:0 2px 10px #0000001a;overflow:hidden}.table-container{overflow-x:auto;width:100%}.clinics-table{width:100%;border-collapse:collapse}.clinics-table th{background:#f8f9fa;padding:15px;text-align:left;font-weight:600;color:#2c3e50;border-bottom:2px solid #e9ecef}.clinics-table td{padding:15px;border-bottom:1px solid #e9ecef;vertical-align:middle}.clinics-table tr:hover{background:#f8f9fa}.integration-status{padding:4px 12px;border-radius:20px;font-size:12px;font-weight:600;text-transform:uppercase}.status-active{background:#d4edda;color:#155724}.status-inactive{background:#f8d7da;color:#721c24}.btn{padding:8px 16px;border:none;border-radius:4px;cursor:pointer;font-size:14px;font-weight:500;transition:all .2s}.btn-primary{background:#007bff;color:#fff}.btn-primary:hover:not(:disabled){background:#0056b3}.btn-secondary{background:#6c757d;color:#fff}.btn-secondary:hover:not(:disabled){background:#545b62}.btn-sm{padding:6px 12px;font-size:12px}.btn:disabled{opacity:.6;cursor:not-allowed}.modal-overlay{position:fixed;inset:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000}.modal-content{background:#fff;border-radius:8px;width:90%;max-height:90vh;overflow-y:auto;box-shadow:0 10px 30px #0000004d}.modal-header{display:flex;justify-content:space-between;align-items:center;padding:20px;border-bottom:1px solid #e9ecef}.modal-header h2{margin:0;color:#2c3e50}.modal-close{background:none;border:none;font-size:24px;cursor:pointer;color:#6c757d;padding:0;width:30px;height:30px;display:flex;align-items:center;justify-content:center}.modal-close:hover{color:#2c3e50}.settings-form{padding:20px}.settings-section{margin-bottom:30px;padding:20px;border:1px solid #e9ecef;border-radius:8px;background:#f8f9fa}.section-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px}.section-header h3{margin:0;color:#2c3e50}.toggle-switch{position:relative;display:inline-block;width:50px;height:24px}.toggle-switch input{opacity:0;width:0;height:0}.toggle-slider{position:absolute;cursor:pointer;inset:0;background-color:#ccc;transition:.4s;border-radius:24px}.toggle-slider:before{position:absolute;content:"";height:18px;width:18px;left:3px;bottom:3px;background-color:#fff;transition:.4s;border-radius:50%}input:checked+.toggle-slider{background-color:#007bff}input:checked+.toggle-slider:before{transform:translate(26px)}.settings-fields{display:grid;gap:20px}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:20px}.form-group{display:flex;flex-direction:column}.form-group label{margin-bottom:5px;font-weight:500;color:#2c3e50}.form-group input,.form-group select{padding:10px;border:1px solid #ced4da;border-radius:4px;font-size:14px;transition:border-color .2s}.form-group input:focus,.form-group select:focus{outline:none;border-color:#007bff;box-shadow:0 0 0 2px #007bff40}.checkbox-group{display:flex;gap:15px;margin-top:5px}.checkbox-group label{display:flex;align-items:center;gap:5px;font-weight:400;margin-bottom:0}.checkbox-group input[type=checkbox]{margin:0}.checkbox-label{display:flex;align-items:center;gap:8px;font-weight:400;margin-bottom:0;cursor:pointer}.checkbox-label input[type=checkbox]{margin:0!important;width:16px!important;height:16px!important;opacity:1!important;cursor:pointer!important;padding:0!important;border:1px solid #ced4da!important;border-radius:3px!important;background:#fff!important;appearance:checkbox!important;-webkit-appearance:checkbox!important;-moz-appearance:checkbox!important}.modal-actions{display:flex;justify-content:flex-end;gap:10px;padding:20px;border-top:1px solid #e9ecef;background:#f8f9fa}@media(max-width:768px){.communication-settings{padding:15px}.form-row{grid-template-columns:1fr}.modal-content{width:95%;margin:10px}.modal-header,.settings-form,.settings-section{padding:15px}}.user-management-module{padding:var(--spacing-md)}.users-filters{display:flex;flex-direction:column;gap:var(--spacing-md);margin-bottom:var(--spacing-lg)}.search-box{position:relative;flex:1}.search-box input{width:100%;padding:var(--spacing-md);padding-right:40px;border:1px solid var(--medium-gray);border-radius:var(--radius);font-size:14px}.search-box svg{position:absolute;top:50%;right:var(--spacing-md);transform:translateY(-50%);color:var(--dark-gray)}.filter-options{display:flex;gap:var(--spacing-md)}.filter-options select{padding:var(--spacing-md);border:1px solid var(--medium-gray);border-radius:var(--radius);background-color:var(--white);font-size:14px;min-width:150px}.users-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:var(--spacing-md);margin-bottom:var(--spacing-lg)}.stat-card{background-color:var(--white);border-radius:var(--radius);padding:var(--spacing-lg);box-shadow:var(--shadow);display:flex;align-items:center;gap:var(--spacing-md)}.stat-icon{width:48px;height:48px;border-radius:var(--radius);display:flex;align-items:center;justify-content:center}.stat-content h3{font-size:24px;font-weight:600;margin-bottom:var(--spacing-xs);color:var(--text-dark)}.stat-content p{color:var(--text-light);font-size:14px;margin:0}.users-list{display:flex;flex-direction:column;gap:var(--spacing-md)}.user-card{background-color:var(--white);border-radius:var(--radius);padding:var(--spacing-lg);box-shadow:var(--shadow);transition:var(--transition)}.user-card:hover{transform:translateY(-2px);box-shadow:0 8px 25px #0000001a}.user-header{display:flex;justify-content:space-between;align-items:center;gap:var(--spacing-md)}.user-info h3{margin-bottom:var(--spacing-xs);font-size:18px;color:var(--text-dark)}.user-details{display:flex;flex-wrap:wrap;gap:var(--spacing-md);font-size:14px}.user-email{color:var(--text-light)}.user-role{padding:4px 8px;border-radius:12px;font-size:12px;font-weight:500;text-transform:uppercase}.user-role.admin{background-color:#e74c3c1a;color:#e74c3c}.user-role.doctor{background-color:#3498db1a;color:#3498db}.user-role.receptionist{background-color:#2ecc711a;color:#2ecc71}.user-status{padding:4px 8px;border-radius:12px;font-size:12px;font-weight:500;text-transform:uppercase}.user-status.active{background-color:#2ecc711a;color:#2ecc71}.user-status.paused{background-color:#9b59b61a;color:#9b59b6}.user-clinic{padding:4px 8px;border-radius:12px;font-size:12px;font-weight:500;background-color:#3498db1a;color:#3498db;display:flex;align-items:center;gap:4px}.user-clinic.no-clinic{background-color:#95a5a61a;color:#95a5a6}.user-actions{display:flex;gap:var(--spacing-sm);flex-wrap:wrap}.user-actions .btn{padding:var(--spacing-sm) var(--spacing-md);font-size:12px;min-width:80px}.no-users{text-align:center;padding:var(--spacing-xl);color:var(--text-light)}.loading-container{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:var(--spacing-xl);min-height:400px}.loading-spinner{width:40px;height:40px;border:4px solid var(--light-gray);border-top:4px solid var(--primary-color);border-radius:50%;animation:spin 1s linear infinite;margin-bottom:var(--spacing-md)}.error-container{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:var(--spacing-xl);min-height:400px;text-align:center}.error-icon{font-size:48px;margin-bottom:var(--spacing-md)}.error-container h3{margin-bottom:var(--spacing-sm);color:var(--danger-color)}.error-container p{margin-bottom:var(--spacing-lg);color:var(--text-light)}@media(max-width:768px){.user-header{flex-direction:column;align-items:flex-start;gap:var(--spacing-md)}.user-actions{width:100%;justify-content:flex-start}.filter-options{flex-direction:column}.users-stats{grid-template-columns:1fr}}.user-form{padding:var(--spacing-lg);max-width:600px;width:100%}.user-form h3{margin-bottom:var(--spacing-lg);color:var(--text-dark);font-size:20px}.form-section h4{margin-bottom:var(--spacing-md);color:var(--primary-color);font-size:16px;font-weight:600}.form-group label{display:block;margin-bottom:var(--spacing-xs);font-weight:500;color:var(--text-dark);font-size:14px}.form-group input,.form-group select{width:100%;padding:var(--spacing-md);border:1px solid var(--medium-gray);border-radius:var(--radius);font-size:14px;transition:border-color .2s ease}.form-group input:focus,.form-group select:focus{outline:none;border-color:var(--primary-color);box-shadow:0 0 0 2px #3498db1a}.form-group input.error{border-color:var(--danger-color)}.input-wrapper{position:relative}.input-wrapper input{padding-right:40px}.password-toggle{position:absolute;right:var(--spacing-sm);top:50%;transform:translateY(-50%);background:none;border:none;cursor:pointer;padding:var(--spacing-xs);color:var(--text-light);transition:color .2s ease}.password-toggle:hover{color:var(--text-dark)}.form-actions{display:flex;gap:var(--spacing-md);justify-content:flex-end;margin-top:var(--spacing-lg);padding-top:var(--spacing-lg);border-top:1px solid var(--light-gray)}.btn.loading{position:relative;color:transparent}.btn.loading .spinner{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);animation:spin 1s linear infinite}@keyframes spin{0%{transform:translate(-50%,-50%) rotate(0)}to{transform:translate(-50%,-50%) rotate(360deg)}}@media(max-width:768px){.user-form{padding:var(--spacing-md)}.form-row{grid-template-columns:1fr}.form-actions{flex-direction:column}.form-actions .btn{width:100%;padding:var(--spacing-sm);font-size:.9rem}.user-form h3{font-size:1.5rem;margin-bottom:var(--spacing-sm)}.form-group label{font-size:.9rem}.form-group input,.form-group select{font-size:.9rem;padding:var(--spacing-sm)}}@media(max-width:480px){.user-form{padding:var(--spacing-sm)}.user-form h3{font-size:1.3rem}.form-group label{font-size:.8rem}.form-group input,.form-group select,.form-actions .btn{font-size:.8rem;padding:var(--spacing-xs)}}.auth-container{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:var(--spacing-md);background:linear-gradient(135deg,#f8fafc,#e2e8f0,#cbd5e1);position:relative;overflow:hidden}.auth-container:before{content:"";position:absolute;inset:0;background:url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 100 100"><defs><pattern id="grain" width="100" height="100" patternUnits="userSpaceOnUse"><circle cx="25" cy="25" r="1" fill="rgba(59,130,246,0.05)"/><circle cx="75" cy="75" r="1" fill="rgba(59,130,246,0.05)"/><circle cx="50" cy="10" r="0.5" fill="rgba(59,130,246,0.05)"/><circle cx="10" cy="60" r="0.5" fill="rgba(59,130,246,0.05)"/><circle cx="90" cy="40" r="0.5" fill="rgba(59,130,246,0.05)"/></pattern></defs><rect width="100" height="100" fill="url(%23grain)"/></svg>');opacity:.4}.auth-card{background:#fff;border-radius:var(--radius);box-shadow:0 20px 25px -5px #0000001a,0 10px 10px -5px #0000000a;padding:var(--spacing-xl);width:100%;max-width:480px;position:relative;z-index:1;animation:slideUp .6s ease-out;border:1px solid rgba(226,232,240,.8)}@keyframes slideUp{0%{opacity:0;transform:translateY(30px)}to{opacity:1;transform:translateY(0)}}.auth-header{text-align:center;margin-bottom:var(--spacing-xl)}.auth-logo{margin-bottom:var(--spacing-md);display:flex;justify-content:center}.auth-title{font-size:28px;font-weight:700;color:#334155;margin-bottom:var(--spacing-sm)}.auth-subtitle{color:#64748b;font-size:16px}.auth-form{margin-bottom:var(--spacing-lg)}.form-actions{display:flex;gap:var(--spacing-md);justify-content:flex-end;margin-top:var(--spacing-lg)}.form-actions .btn{min-width:120px}@media(max-width:480px){.form-actions{flex-direction:column}.form-actions .btn{width:100%}}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:var(--spacing-md)}.form-label{display:block;font-weight:600;color:#1e293b;margin-bottom:var(--spacing-sm);font-size:14px}.input-wrapper{position:relative;display:flex;align-items:center}.input-icon{position:absolute;left:var(--spacing-md);color:var(--text-light);z-index:2}.form-input{width:100%;padding:var(--spacing-md) var(--spacing-md) var(--spacing-md) calc(var(--spacing-md) * 2 + 20px);border:2px solid #e2e8f0;border-radius:var(--radius);font-size:16px;transition:var(--transition);background:#fff;color:#1e293b}.form-input:focus{border-color:var(--primary-color);box-shadow:0 0 0 3px #3b82f61a;outline:none;background:#fff}.loading-message{color:var(--primary-color);font-size:12px;margin-top:var(--spacing-xs);display:block;font-style:italic}.password-toggle{position:absolute;right:var(--spacing-md);background:none;border:none;color:#64748b;cursor:pointer;padding:0;display:flex;align-items:center;transition:var(--transition)}.password-toggle:hover{color:#3b82f6}.form-options{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--spacing-lg);flex-wrap:wrap;gap:var(--spacing-sm)}.checkbox-wrapper{display:flex;align-items:center;cursor:pointer;font-size:14px;color:#64748b;-webkit-user-select:none;-moz-user-select:none;user-select:none}.checkbox{position:absolute;opacity:0;cursor:pointer;height:0;width:0}.checkmark{height:18px;width:18px;background-color:#fff;border:2px solid #cbd5e1;border-radius:3px;margin-right:var(--spacing-sm);position:relative;transition:var(--transition)}.checkbox:checked~.checkmark{background-color:#3b82f6;border-color:#3b82f6}.checkmark:after{content:"";position:absolute;display:none;left:5px;top:2px;width:4px;height:8px;border:solid white;border-width:0 2px 2px 0;transform:rotate(45deg)}.checkbox:checked~.checkmark:after{display:block}.forgot-password{background:none;border:none;color:#3b82f6;font-size:14px;cursor:pointer;text-decoration:none;transition:var(--transition)}.forgot-password:hover{color:#1d4ed8;text-decoration:underline}.auth-button{width:100%;padding:var(--spacing-md);background:linear-gradient(135deg,#3b82f6,#1d4ed8);color:var(--white);border:none;border-radius:var(--radius);font-size:16px;font-weight:600;cursor:pointer;transition:var(--transition);display:flex;align-items:center;justify-content:center;gap:var(--spacing-sm);position:relative;overflow:hidden;box-shadow:0 4px 6px -1px #3b82f61a,0 2px 4px -1px #3b82f60f}.auth-button:hover:not(:disabled){background:linear-gradient(135deg,#2563eb,#1e40af);transform:translateY(-1px);box-shadow:0 10px 15px -3px #3b82f633,0 4px 6px -2px #3b82f61a}.auth-button:disabled{opacity:.7;cursor:not-allowed;transform:none}.auth-button.loading{pointer-events:none}.auth-divider{text-align:center;margin:var(--spacing-lg) 0;position:relative}.auth-divider:before{content:"";position:absolute;top:50%;left:0;right:0;height:1px;background:#e2e8f0}.auth-divider span{background:var(--white);padding:0 var(--spacing-md);color:#64748b;font-size:14px;position:relative;z-index:1}.social-login{margin-bottom:var(--spacing-lg)}.social-button{width:100%;padding:var(--spacing-md);background:#fff;color:#1e293b;border:2px solid #e2e8f0;border-radius:var(--radius);font-size:16px;font-weight:500;cursor:pointer;transition:var(--transition);display:flex;align-items:center;justify-content:center;gap:var(--spacing-sm);box-shadow:0 1px 3px #0000001a,0 1px 2px #0000000f}.social-button:hover{border-color:#3b82f6;background:#3b82f60d;box-shadow:0 4px 6px -1px #0000001a,0 2px 4px -1px #0000000f}.social-button.google{color:#333}.social-button.google:hover{border-color:#4285f4;background:#4285f40d}.auth-footer{text-align:center;color:#64748b;font-size:14px}.auth-link{background:none;border:none;color:#3b82f6;cursor:pointer;text-decoration:none;font-weight:600;transition:var(--transition)}.auth-link:hover{color:#1d4ed8;text-decoration:underline}@media(max-width:768px){.auth-container{padding:var(--spacing-sm)}.auth-card{padding:var(--spacing-lg);margin:var(--spacing-sm)}.auth-title{font-size:24px}.form-row{grid-template-columns:1fr;gap:var(--spacing-sm)}.form-options{flex-direction:column;align-items:flex-start;gap:var(--spacing-md)}.auth-button,.social-button{padding:var(--spacing-md);font-size:16px}}@media(max-width:480px){.auth-card{padding:var(--spacing-md)}.auth-title{font-size:22px}.auth-subtitle{font-size:14px}.form-input{font-size:16px}.auth-button,.social-button{padding:var(--spacing-md);font-size:16px}}@media(prefers-reduced-motion:reduce){.auth-card,.auth-button,.form-input,.social-button{animation:none;transition:none}.spinner{animation:none}}.auth-button:focus,.social-button:focus,.form-input:focus,.password-toggle:focus,.forgot-password:focus,.auth-link:focus{outline:2px solid #3b82f6;outline-offset:2px}@media(prefers-contrast:high){.auth-container{background:#3b82f6}.auth-card{border:2px solid #3b82f6;background:#fff}.form-input{border-width:2px}.auth-button{border:2px solid var(--white)}}.visiting-clinics-module{padding:20px;max-width:1200px;margin:0 auto}.module-header p{margin:5px 0 0;color:#7f8c8d;font-size:.95rem}.btn-primary{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;border:none;padding:12px 24px;border-radius:8px;cursor:pointer;font-weight:500;transition:all .3s ease;display:flex;align-items:center;gap:8px;font-size:.9rem}.btn-primary:hover{transform:translateY(-2px);box-shadow:0 8px 25px #667eea4d}.btn-primary:disabled{opacity:.6;cursor:not-allowed;transform:none;box-shadow:none}.btn-primary:disabled:hover{transform:none;box-shadow:none}.btn-primary i{font-size:.8rem}.loading-spinner{width:40px;height:40px;border:4px solid #f3f3f3;border-top:4px solid #667eea;border-radius:50%;animation:spin 1s linear infinite;margin-bottom:15px}.loading-container p{color:#7f8c8d;font-size:.95rem;margin:0}.clinics-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(350px,1fr));gap:20px;margin-top:20px}.empty-state{grid-column:1 / -1;text-align:center;padding:60px 20px;background:#f8f9fa;border-radius:12px;border:2px dashed #dee2e6}.empty-state i{font-size:3rem;color:#adb5bd;margin-bottom:20px}.empty-state h3{color:#495057;margin:0 0 10px;font-size:1.3rem}.empty-state p{color:#6c757d;font-size:.95rem;max-width:400px;margin:0 auto 25px}.clinic-card{background:#fff;border-radius:12px;padding:20px;box-shadow:0 4px 6px #0000000d;border:1px solid #e9ecef;transition:all .3s ease;position:relative}.clinic-card:hover{transform:translateY(-4px);box-shadow:0 12px 25px #0000001a;border-color:#667eea}.clinic-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:15px}.clinic-header h3{margin:0;color:#2c3e50;font-size:1.2rem;font-weight:600;line-height:1.3}.clinic-actions{display:flex;gap:8px;align-items:center}.clinic-details{display:flex;flex-direction:column;gap:12px}.modal-content{padding:30px!important}.clinic-form{display:flex;flex-direction:column;gap:20px}.form-actions{display:flex;gap:12px;justify-content:flex-end;margin-top:10px}.btn-secondary{background:#6c757d;color:#fff;border:none;padding:12px 24px;border-radius:8px;cursor:pointer;font-weight:500;transition:all .3s ease;font-size:.9rem}@media(max-width:768px){.visiting-clinics-module{padding:15px}.module-header{flex-direction:column;align-items:stretch;text-align:center}.module-header h2{font-size:1.5rem}.clinics-grid{grid-template-columns:1fr;gap:15px}.clinic-card{padding:15px}.clinic-header{flex-direction:column;gap:10px;align-items:stretch}.clinic-actions{justify-content:flex-end}.form-actions{flex-direction:column}.btn-primary,.btn-secondary{width:100%;justify-content:center}.modal-content{padding:20px!important}}@media(max-width:480px){.visiting-clinics-module{padding:10px}.module-header h2{font-size:1.3rem}.clinic-card{padding:12px}.detail-item{font-size:.85rem}.modal-content{padding:15px!important}}.visiting-doctors-module{padding:20px;max-width:1200px;margin:0 auto}.module-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:30px;flex-wrap:wrap;gap:15px}.module-header h2{margin:0;color:#2c3e50;font-size:1.8rem;font-weight:600}.module-header p{margin:5px 0 0;color:#6c757d;font-size:.95rem}.btn-primary{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;border:none;padding:12px 24px;border-radius:8px;cursor:pointer;font-size:.9rem;font-weight:500;transition:all .3s ease;display:flex;align-items:center;gap:8px;box-shadow:0 2px 4px #667eea33}.btn-primary:hover{transform:translateY(-2px);box-shadow:0 4px 12px #667eea4d}.btn-primary:disabled{background:#6c757d;cursor:not-allowed;transform:none;box-shadow:none}.btn-primary i{font-size:.85rem}.loading-container{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:60px 20px;text-align:center}.loading-spinner{width:40px;height:40px;border:4px solid #f3f3f3;border-top:4px solid #667eea;border-radius:50%;animation:spin 1s linear infinite;margin-bottom:20px}.loading-container p{color:#6c757d;font-size:1rem;margin:0}.form-group input.error,.form-group textarea.error{border-color:#dc2626;box-shadow:0 0 0 1px #dc2626}.form-group input.error:focus,.form-group textarea.error:focus{border-color:#dc2626;box-shadow:0 0 0 2px #dc262633}.error-message{color:#dc2626;font-size:12px;display:block;margin-top:4px;font-weight:500}.empty-state{text-align:center;padding:60px 20px;background:#f8f9fa;border-radius:12px;border:2px dashed #dee2e6}.empty-state i{font-size:3rem;color:#6c757d;margin-bottom:20px}.empty-state h3{color:#495057;font-size:1.3rem;margin:0 0 10px;font-weight:500}.empty-state p{color:#6c757d;font-size:.95rem;margin:0 0 25px;line-height:1.5}.doctors-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(350px,1fr));gap:20px;margin-top:20px}.doctor-card{background:#fff;border-radius:12px;padding:20px;box-shadow:0 2px 8px #0000001a;border:1px solid #e9ecef;transition:all .3s ease;position:relative}.doctor-card:hover{transform:translateY(-4px);box-shadow:0 8px 25px #00000026}.doctor-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:15px}.doctor-header h3{margin:0;color:#2c3e50;font-size:1.2rem;font-weight:600;line-height:1.3}.doctor-actions{display:flex;gap:8px;align-items:center}.btn-icon{background:#fff;border:1px solid #e9ecef;padding:8px 10px;border-radius:6px;cursor:pointer;transition:all .2s ease;color:#6c757d;font-size:.9rem;min-width:36px;height:36px;display:flex;align-items:center;justify-content:center;box-shadow:0 1px 3px #0000001a}.btn-icon:hover{background:#f8f9fa;color:#495057;border-color:#dee2e6;box-shadow:0 2px 6px #00000026;transform:translateY(-1px)}.btn-icon.btn-danger{color:#dc3545;border-color:#f5c6cb}.btn-icon.btn-danger:hover{background:#fee;color:#dc3545;border-color:#f5c6cb}.doctor-details{display:flex;flex-direction:column;gap:12px}.detail-item{display:flex;align-items:flex-start;gap:10px;font-size:.9rem;line-height:1.4}.detail-item i{color:#667eea;font-size:.85rem;margin-top:2px;min-width:16px}.detail-item span{color:#495057;flex:1}.visiting-doctors-module .modal-content{background:#fff;padding:30px;border-radius:12px;width:100%;max-height:90vh;overflow-y:auto}.visiting-doctors-module .modal-content h3{margin:0 0 25px;color:#2c3e50;font-size:1.4rem;font-weight:600}.doctor-form{display:flex;flex-direction:column;gap:20px}.form-group{display:flex;flex-direction:column;gap:8px}.form-group label{font-weight:500;color:#2c3e50;font-size:.9rem}.form-group input,.form-group textarea{padding:12px;border:2px solid #e9ecef;border-radius:8px;font-size:.9rem;transition:border-color .3s ease;font-family:inherit}.form-group input:focus,.form-group textarea:focus{outline:none;border-color:#667eea;box-shadow:0 0 0 3px #667eea1a}.form-group textarea{resize:vertical;min-height:80px}.form-actions{display:flex;gap:12px;justify-content:flex-end;margin-top:20px;padding-top:20px;border-top:1px solid #e9ecef}.btn-secondary{background:#6c757d;color:#fff;border:none;padding:12px 24px;border-radius:8px;cursor:pointer;font-size:.9rem;font-weight:500;transition:all .3s ease}.btn-secondary:hover{background:#5a6268;transform:translateY(-1px)}@media(max-width:768px){.visiting-doctors-module{padding:15px}.module-header{flex-direction:column;align-items:flex-start;gap:15px}.module-header h2{font-size:1.5rem}.doctors-grid{grid-template-columns:1fr;gap:15px}.doctor-card{padding:15px}.doctor-header h3{font-size:1.1rem}.visiting-doctors-module .modal-content{padding:20px;margin:10px}.form-actions{flex-direction:column}.form-actions button{width:100%}}@media(max-width:480px){.visiting-doctors-module{padding:10px}.module-header h2{font-size:1.3rem}.doctor-card{padding:12px}.doctor-header{flex-direction:column;gap:10px;align-items:flex-start}.doctor-actions{align-self:flex-end}}.user-profile-modal{background:var(--white);border-radius:var(--radius);box-shadow:var(--shadow-strong);width:100%;max-width:600px;max-height:90vh;overflow-y:auto;position:relative}.user-profile-content{background:var(--white);border-radius:var(--radius);box-shadow:var(--shadow);width:100%;max-width:800px;margin:0 auto;padding:var(--spacing-lg)}.profile-page{padding:var(--spacing-lg);max-width:1000px;margin:0 auto}.profile-page-header{margin-bottom:var(--spacing-lg)}.user-profile-body{padding:0}.user-profile-header{display:flex;justify-content:space-between;align-items:center;padding:var(--spacing-lg) 0;border-bottom:1px solid var(--medium-gray);margin-bottom:var(--spacing-lg)}.user-profile-header h2{margin:0;font-size:24px;font-weight:600;color:var(--text-color)}.close-button{background:none;border:none;color:var(--text-light);cursor:pointer;padding:var(--spacing-sm);border-radius:var(--radius);transition:var(--transition);display:flex;align-items:center;justify-content:center}.close-button:hover{background-color:var(--light-gray);color:var(--text-color)}.user-profile-content{padding:var(--spacing-lg)}.profile-avatar-section{display:flex;align-items:center;margin-bottom:var(--spacing-xl);padding-bottom:var(--spacing-lg);border-bottom:1px solid var(--medium-gray)}.profile-avatar{position:relative;margin-right:var(--spacing-lg)}.profile-avatar .avatar-placeholder.large{width:80px;height:80px;border-radius:50%;background-color:var(--primary-color);color:var(--white);display:flex;align-items:center;justify-content:center;font-weight:600;font-size:32px;border:3px solid var(--primary-color)}.avatar-edit-button{position:absolute;bottom:0;right:0;background:var(--primary-color);color:var(--white);border:none;border-radius:50%;width:28px;height:28px;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:var(--transition);box-shadow:var(--shadow)}.avatar-edit-button:hover{background:var(--primary-dark);transform:scale(1.1)}.profile-info h3{margin:0 0 var(--spacing-xs) 0;font-size:20px;font-weight:600;color:var(--text-color)}.profile-info .user-role{margin:0 0 var(--spacing-xs) 0;color:var(--primary-color);font-weight:500;font-size:14px}.profile-info .user-email,.profile-info .user-phone{margin:0;color:var(--text-light);font-size:14px}.profile-info .user-clinic{margin:0;color:var(--primary-color);font-size:14px;font-weight:500}.profile-form{margin-bottom:var(--spacing-xl)}.form-section{margin-bottom:var(--spacing-lg)}.form-section h4{margin:0 0 var(--spacing-md) 0;font-size:16px;font-weight:600;color:var(--text-color);border-bottom:1px solid var(--medium-gray);padding-bottom:var(--spacing-sm)}.form-group{margin-bottom:var(--spacing-md)}.form-group label{display:block;font-weight:600;color:var(--text-color);margin-bottom:var(--spacing-sm);font-size:14px}.form-input{width:100%;padding:var(--spacing-md);border:2px solid var(--medium-gray);border-radius:var(--radius);font-size:16px;transition:var(--transition);background:var(--white)}.form-input:focus{border-color:var(--primary-color);box-shadow:0 0 0 3px #3498db1a;outline:none}.form-input.error{border-color:var(--danger-color);box-shadow:0 0 0 3px #e74c3c1a}.error-message{color:var(--danger-color);font-size:12px;margin-top:var(--spacing-xs);display:block}.info-display{padding:var(--spacing-md);background:var(--light-gray);border-radius:var(--radius);color:var(--text-color);font-size:16px;min-height:20px;display:flex;align-items:center}.clinic-name-display{background:var(--primary-color);color:var(--white);font-weight:500}.field-note{display:block;margin-top:var(--spacing-xs);color:var(--text-light);font-size:12px;font-style:italic}.info-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:var(--spacing-md)}.info-item{display:flex;flex-direction:column}.info-item label{font-weight:600;color:var(--text-color);margin-bottom:var(--spacing-sm);font-size:14px}.profile-actions{display:flex;justify-content:flex-end;gap:var(--spacing-md);padding-top:var(--spacing-lg)}.edit-actions{display:flex;gap:var(--spacing-md)}.btn{display:inline-flex;align-items:center;justify-content:center;padding:var(--spacing-md) var(--spacing-lg);border-radius:var(--radius);font-weight:500;transition:var(--transition);border:none;cursor:pointer;font-size:16px;gap:var(--spacing-sm)}.btn-primary{background-color:var(--primary-color);color:var(--white)}.btn-primary:hover:not(:disabled){background-color:var(--primary-dark);transform:translateY(-1px);box-shadow:var(--shadow-strong)}.btn-secondary{background-color:var(--light-gray);color:var(--text-color);border:1px solid var(--medium-gray)}.btn-secondary:hover:not(:disabled){background-color:var(--medium-gray)}.btn:disabled{opacity:.7;cursor:not-allowed;transform:none}.spinner{animation:spin 1s linear infinite}@media(max-width:768px){.user-profile-modal{max-width:100%;margin:var(--spacing-sm)}.user-profile-header,.user-profile-content{padding:var(--spacing-md)}.profile-avatar-section{flex-direction:column;text-align:center;gap:var(--spacing-md)}.profile-avatar{margin-right:0}.info-grid{grid-template-columns:1fr}.profile-actions,.edit-actions{flex-direction:column}.btn{width:100%}}@media(max-width:480px){.user-profile-header h2{font-size:20px}.profile-avatar img{width:60px;height:60px}.profile-info h3{font-size:18px}}.modal-overlay{position:fixed;inset:0;background-color:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000;padding:var(--spacing-sm)}.modal-container{width:-moz-fit-content;width:fit-content;max-width:95vw;max-height:90vh;margin:auto}.modal-content{width:-moz-fit-content;width:fit-content;min-width:300px;max-height:90vh;overflow-y:auto;border-radius:var(--radius);box-shadow:var(--shadow-strong);background:var(--white);padding:var(--spacing-lg)}@media(max-width:768px){.modal-content{width:100%;min-width:auto;max-height:95vh;padding:var(--spacing-md)}.modal-container{width:100%;max-width:95vw;margin:10px}}@media(max-width:480px){.modal-content{width:100%;min-width:auto;max-height:98vh;padding:var(--spacing-sm)}.modal-container{width:100%;max-width:98vw;margin:5px}}@media(prefers-color-scheme:dark){.user-profile-modal{background:var(--white)!important;color:var(--text-color)!important}.user-profile-header{background:var(--white)!important;border-bottom-color:var(--medium-gray)!important}.form-input{background:var(--white)!important;border-color:var(--medium-gray)!important;color:var(--text-color)!important}.form-input:focus{border-color:var(--primary-color)!important}.info-display{background:var(--light-gray)!important;color:var(--text-color)!important}.btn-secondary{background:var(--light-gray)!important;border-color:var(--medium-gray)!important;color:var(--text-color)!important}.btn-secondary:hover:not(:disabled){background:var(--medium-gray)!important}.form-section h4{border-bottom-color:var(--primary-color)!important}.profile-avatar-section,.profile-actions{border-color:var(--medium-gray)!important}}@media(prefers-reduced-motion:reduce){.btn,.form-input,.avatar-edit-button{transition:none}.spinner{animation:none}}.password-reset-form{margin-top:var(--spacing-md);padding:var(--spacing-lg);background:var(--light-gray);border-radius:var(--radius);border:1px solid var(--medium-gray)}.password-input-container{position:relative;display:flex;align-items:center}.password-input-container .form-input{padding-right:45px}.password-toggle-btn{position:absolute;right:12px;top:50%;transform:translateY(-50%);background:none;border:none;color:var(--text-light);cursor:pointer;padding:4px;border-radius:4px;transition:var(--transition);display:flex;align-items:center;justify-content:center}.password-toggle-btn:hover{color:var(--text-color);background-color:var(--light-gray)}.password-toggle-btn:focus{outline:2px solid var(--primary-color);outline-offset:2px}.password-strength-container{margin-top:var(--spacing-sm)}.password-strength-bar{width:100%;height:4px;background-color:var(--medium-gray);border-radius:2px;overflow:hidden;margin-bottom:var(--spacing-xs)}.password-strength-fill{height:100%;transition:all .3s ease;border-radius:2px}.password-strength-label{font-size:12px;font-weight:600;text-align:right}.password-requirements{margin-top:var(--spacing-md);padding:var(--spacing-md);background:var(--white);border-radius:var(--radius);border:1px solid var(--medium-gray)}.password-requirements h5{margin:0 0 var(--spacing-sm) 0;font-size:14px;font-weight:600;color:var(--text-color)}.password-requirements ul{margin:0;padding:0;list-style:none}.password-requirements li{display:flex;align-items:center;margin-bottom:var(--spacing-xs);font-size:13px}.password-requirements li:last-child{margin-bottom:0}.requirement-icon{width:16px;height:16px;display:flex;align-items:center;justify-content:center;margin-right:var(--spacing-sm);font-size:12px;font-weight:700}.requirement-met,.requirement-met .requirement-icon{color:var(--success-color, #27ae60)}.requirement-unmet{color:var(--text-light)}.requirement-unmet .requirement-icon{color:var(--danger-color, #e74c3c)}.password-reset-actions{display:flex;gap:var(--spacing-md);margin-top:var(--spacing-lg);justify-content:flex-end}.password-reset-actions .btn{min-width:120px}.btn:focus,.form-input:focus,.close-button:focus,.avatar-edit-button:focus{outline:2px solid var(--primary-color);outline-offset:2px}.booking-widget{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;max-width:500px;margin:0 auto;background:#fff;border-radius:12px;box-shadow:0 4px 20px #0000001a;overflow:hidden}.booking-widget-header{background:#3b82f6;color:#fff;padding:24px;text-align:center}.booking-widget-header h2{margin:0;font-size:24px;font-weight:600}.booking-widget-header p{margin:8px 0 0;opacity:.9;font-size:14px}.booking-widget-content{background-color:#f5f5f5;padding:24px}.booking-step{margin-bottom:24px}.booking-step h3{margin:0 0 16px;font-size:18px;font-weight:600;color:#333}.booking-form-group{margin-bottom:16px}.booking-form-group label{display:block;margin-bottom:6px;font-weight:500;color:#555;font-size:14px}.booking-form-group input,.booking-form-group select,.booking-form-group textarea{width:100%;padding:12px;border:2px solid #e1e5e9;border-radius:8px;font-size:14px;transition:border-color .2s ease;box-sizing:border-box}.booking-form-group input:focus,.booking-form-group select:focus,.booking-form-group textarea:focus{outline:none;border-color:#3b82f6;box-shadow:0 0 0 3px #667eea1a}.booking-time-slots{display:grid;grid-template-columns:repeat(auto-fit,minmax(80px,1fr));gap:8px;margin-bottom:16px}.booking-time-slot{padding:12px 8px;border:2px solid #e1e5e9;border-radius:8px;background:#fff;cursor:pointer;text-align:center;font-size:13px;font-weight:500;transition:all .2s ease}.booking-time-slot:hover{border-color:#3b82f6;background:#f8f9ff}.booking-time-slot.selected{background:#3b82f6;border-color:#3b82f6;color:#fff}.booking-progress{display:flex;justify-content:space-between;margin-bottom:24px;position:relative}.booking-progress:before{content:"";position:absolute;top:50%;left:0;right:0;height:2px;background:#000;z-index:1}.booking-progress-step{width:32px;height:32px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:14px;font-weight:600;background:#fff;border:2px solid #e1e5e9;color:#000;position:relative;z-index:2;transition:all .3s ease}.booking-progress-step.active,.booking-progress-step.completed{background:#3b82f6;border-color:#3b82f6;color:#000}.booking-progress-labels{display:flex;justify-content:space-between;margin-top:8px;font-size:12px;color:#000}.booking-actions{display:flex;justify-content:space-between;gap:12px;margin-top:24px}.booking-btn{padding:12px 24px;border:none;border-radius:8px;font-size:14px;font-weight:600;cursor:pointer;transition:all .2s ease;flex:1}.booking-btn-primary{background:#3b82f6;color:#fff}.booking-btn-primary:hover{background:#5a6fd8;transform:translateY(-1px)}.booking-btn-secondary{background:#fff;color:#666;border:2px solid #e1e5e9}.booking-btn-secondary:hover{background:#f8f9fa;border-color:#d1d5db}.booking-btn:disabled{opacity:.6;cursor:not-allowed;transform:none}.booking-alert{padding:12px 16px;border-radius:8px;margin-bottom:16px;font-size:14px}.booking-alert-error{background:#fef2f2;border:1px solid #fecaca;color:#dc2626}.booking-alert-success{background:#f0fdf4;border:1px solid #bbf7d0;color:#16a34a}.booking-loading{display:flex;align-items:center;justify-content:center;padding:40px;color:#666}.booking-spinner{width:24px;height:24px;border:2px solid #e1e5e9;border-top:2px solid #3b82f6;border-radius:50%;animation:spin 1s linear infinite;margin-right:12px}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.booking-success{text-align:center;padding:40px 24px}.booking-success-icon{width:64px;height:64px;background:#3b82f6;border-radius:50%;display:flex;align-items:center;justify-content:center;margin:0 auto 24px;font-size:32px;color:#fff}.booking-success h3{margin:0 0 16px;font-size:20px;color:#3b82f6}.booking-success-message{background:#dbeafe;color:#1e40af;padding:12px 16px;border-radius:8px;margin-bottom:16px;font-weight:500;font-size:14px}.booking-appointment-details{background:#f8f9fa;padding:16px;border-radius:8px;margin:16px 0;text-align:left}.booking-appointment-details p{margin:4px 0;font-size:14px;color:#000}.booking-appointment-details strong{color:#333}@media(max-width:480px){.booking-widget{margin:0;border-radius:0;min-height:100vh}.booking-widget-header,.booking-widget-content{padding:20px}.booking-time-slots{grid-template-columns:repeat(3,1fr)}.booking-actions{flex-direction:column}.booking-btn{width:100%}}.booking-widget.iframe-mode{border:none;box-shadow:none;border-radius:0}.booking-widget.iframe-mode .booking-widget-header{border-radius:0}@media(prefers-color-scheme:dark){.booking-widget{background:#1f2937;color:#f9fafb}.booking-widget-header{background:#3b82f6}.booking-form-group input,.booking-form-group select,.booking-form-group textarea{border-color:#4b5563;color:#000}.booking-form-group input:focus,.booking-form-group select:focus,.booking-form-group textarea:focus{border-color:#6366f1}.booking-time-slot{background:#374151;border-color:#4b5563;color:#f9fafb}.booking-time-slot:hover{background:#4b5563}}.payment-success-overlay{position:fixed;inset:0;background:#000000b3;display:flex;align-items:center;justify-content:center;z-index:10000;animation:fadeIn .3s ease-in}.payment-success-overlay.hide{animation:fadeOut .5s ease-out forwards}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes fadeOut{0%{opacity:1}to{opacity:0}}.payment-success-container{background:#fff;border-radius:20px;padding:40px;max-width:500px;width:90%;text-align:center;position:relative;box-shadow:0 20px 60px #0000004d;animation:slideUp .5s ease-out;overflow:hidden}@keyframes slideUp{0%{transform:translateY(50px);opacity:0}to{transform:translateY(0);opacity:1}}.success-checkmark{margin-bottom:30px}.check-icon{width:80px;height:80px;position:relative;border-radius:50%;box-sizing:content-box;border:4px solid #4caf50;margin:0 auto}.check-icon:before{top:3px;left:-2px;width:30px;transform-origin:100% 50%;border-radius:100px 0 0 100px}.check-icon:after{top:0;left:30px;width:60px;transform-origin:0 50%;border-radius:0 100px 100px 0;animation:rotate-circle 4.25s ease-in}.check-icon:before,.check-icon:after{content:"";height:100px;position:absolute;background:#fff;transform:rotate(-45deg)}.icon-line{height:5px;background-color:#4caf50;display:block;border-radius:2px;position:absolute;z-index:10}.icon-line.line-tip{top:46px;left:14px;width:25px;transform:rotate(45deg);animation:icon-line-tip .75s}.icon-line.line-long{top:38px;right:8px;width:47px;transform:rotate(-45deg);animation:icon-line-long .75s}.icon-circle{top:-4px;left:-4px;z-index:10;width:80px;height:80px;border-radius:50%;position:absolute;box-sizing:content-box;border:4px solid rgba(76,175,80,.5)}.icon-fix{top:8px;width:5px;left:26px;z-index:1;height:85px;position:absolute;transform:rotate(-45deg);background-color:#fff}@keyframes icon-line-tip{0%{width:0;left:1px;top:19px}54%{width:0;left:1px;top:19px}70%{width:50px;left:-8px;top:37px}84%{width:17px;left:21px;top:48px}to{width:25px;left:14px;top:46px}}@keyframes icon-line-long{0%{width:0;right:46px;top:54px}65%{width:0;right:46px;top:54px}84%{width:55px;right:0;top:35px}to{width:47px;right:8px;top:38px}}@keyframes rotate-circle{0%{transform:rotate(-45deg)}5%{transform:rotate(-45deg)}12%{transform:rotate(-405deg)}to{transform:rotate(-405deg)}}.success-content{position:relative;z-index:2}.success-title{font-size:2rem;font-weight:700;color:#1f2937;margin:0 0 10px}.success-message{font-size:1.1rem;color:#6b7280;margin:0 0 30px}.payment-details{background:#f9fafb;border-radius:12px;padding:20px;margin:20px 0;text-align:left}.detail-item{display:flex;justify-content:space-between;align-items:center;padding:12px 0;border-bottom:1px solid #e5e7eb}.detail-item:last-child{border-bottom:none}.detail-label{font-weight:600;color:#4b5563;font-size:.95rem}.detail-value{font-weight:700;color:#059669;font-size:1.1rem}.detail-value.transaction-id{font-family:monospace;font-size:.9rem;color:#1f2937;word-break:break-all}.success-actions{margin-top:30px}.btn{padding:12px 24px;border:none;border-radius:8px;font-size:1rem;font-weight:600;cursor:pointer;transition:all .2s}.btn-primary{background:#3b82f6;color:#fff}.btn-primary:hover{background:#2563eb;transform:translateY(-2px);box-shadow:0 4px 12px #3b82f666}.confetti-container{position:absolute;inset:0;overflow:hidden;pointer-events:none;z-index:1}.confetti{position:absolute;width:10px;height:10px;background:#f44336;top:-10px;opacity:.8;animation:confetti-fall 3s linear infinite}@keyframes confetti-fall{0%{transform:translateY(0) rotate(0);opacity:1}to{transform:translateY(100vh) rotate(720deg);opacity:0}}@media(max-width:640px){.payment-success-container{padding:30px 20px}.success-title{font-size:1.5rem}.check-icon,.icon-circle{width:60px;height:60px}}
