:root{--bg:#f6fafb;--surface:#fff;--text:#1f2a37;--muted:#63758a;--border:#d9e2ec;--brand:#0d9488;--brand-dark:#0f766e;--danger:#dc2626;--radius-md:10px}html,body,#root{width:100%;min-height:100%;margin:0}body{background:var(--bg);color:var(--text);text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:Segoe UI,Tahoma,Geneva,Verdana,sans-serif}button,input,select,textarea{font:inherit}button{cursor:pointer}a{color:inherit}:focus-visible{outline-offset:2px;outline:2px solid #2dd4bf}body.dark-mode{--bg:#0f1720;--surface:#111b25;--text:#dbe7f3;--muted:#9bb0c7;--border:#2a4156}.toast-container{z-index:3600;pointer-events:none;flex-direction:column;gap:10px;display:flex;position:fixed;top:76px;right:16px}.toast{pointer-events:auto;border:1px solid #0000;border-radius:12px;align-items:center;gap:10px;min-width:260px;max-width:420px;padding:10px 12px;animation:.22s toast-in;display:flex;box-shadow:0 14px 32px #00000024}.toast-icon{letter-spacing:.25px;border-radius:7px;justify-content:center;align-items:center;min-width:42px;height:24px;font-size:10px;font-weight:800;display:inline-flex}.toast-message{flex:1;font-size:13px;font-weight:600;line-height:1.3}.toast-close{cursor:pointer;width:24px;height:24px;color:inherit;background:0 0;border:1px solid #0000;border-radius:6px;font-size:12px;font-weight:700}.toast-close:hover{background:#00000014}.toast-success{color:#114f3a;background:#e7faf4;border-color:#94e6c8}.toast-success .toast-icon{color:#fff;background:#0f766e}.toast-error{color:#7e1f1f;background:#fff2f2;border-color:#f7b8b8}.toast-error .toast-icon{color:#fff;background:#dc2626}.toast-warning{color:#73430b;background:#fff7e6;border-color:#f0d39d}.toast-warning .toast-icon{color:#fff;background:#d97706}.toast-info{color:#1a4069;background:#eff6ff;border-color:#b7d3f6}.toast-info .toast-icon{color:#fff;background:#2563eb}@keyframes toast-in{0%{opacity:0;transform:translateY(-8px)translate(6px)}to{opacity:1;transform:translateY(0)translate(0)}}body.dark-mode .toast{box-shadow:0 16px 36px #00000059}body.dark-mode .toast-success{color:#dbfff1;background:#13372d;border-color:#1f5e4c}body.dark-mode .toast-error{color:#ffe7e8;background:#3b1d20;border-color:#6d3439}body.dark-mode .toast-warning{color:#ffeccf;background:#3b2d18;border-color:#645233}body.dark-mode .toast-info{color:#e0ecff;background:#1c2f47;border-color:#324f74}@media (width<=640px){.toast-container{inset:auto 12px 14px}.toast{width:100%;min-width:0;max-width:none}}*{box-sizing:border-box}:root{--shell-header-height:64px}body{color:#1f2a37;background-color:#f6fafb;margin:0;font-family:Segoe UI,Tahoma,Geneva,Verdana,sans-serif}body.sidebar-lock{overflow:hidden}.app-shell{min-height:100vh;display:flex;position:relative;overflow-x:hidden}.sidebar{color:#fff;z-index:1300;background:linear-gradient(#0f766e 0%,#0d9488 100%);flex-direction:column;width:272px;height:100vh;transition:transform .25s;display:flex;position:fixed;top:0;left:0;box-shadow:6px 0 30px #0000001f}.sidebar-header{min-height:var(--shell-header-height);height:var(--shell-header-height);border-bottom:1px solid #ffffff2e;justify-content:space-between;align-items:center;padding:0 18px;display:flex}.logo{color:#fff;align-items:center;gap:10px;margin:0;font-size:18px;font-weight:700;display:flex}.logo-mark{background:#fff3;border:1px solid #ffffff59;border-radius:10px;justify-content:center;align-items:center;width:34px;height:34px;font-size:12px;font-weight:700;display:inline-flex}.sidebar-logo-icon{object-fit:contain;border-radius:8px;width:30px;height:30px}.logo-text{letter-spacing:.2px}.nav-icon{width:14px;height:14px;display:block}.logo-mark .nav-icon{width:17px;height:17px}.sidebar .close-btn{color:#fff;cursor:pointer;background:0 0;border:1px solid #ffffff47;border-radius:8px;width:32px;height:32px;display:none}.sidebar nav{flex:1;padding:12px;overflow-y:auto}.sidebar ul{gap:6px;margin:0;padding:0;list-style:none;display:grid}.sidebar a{color:#ffffffe6;border:1px solid #0000;border-radius:10px;align-items:center;gap:10px;padding:11px 12px;font-size:14px;font-weight:600;text-decoration:none;transition:all .2s;display:flex}.nav-item-icon{background:#ffffff29;border:1px solid #ffffff3d;border-radius:8px;flex-shrink:0;justify-content:center;align-items:center;width:26px;height:26px;font-size:10px;font-weight:700;display:inline-flex}.nav-item-icon .nav-icon{width:14px;height:14px}.sidebar a:hover{background:#ffffff24;border-color:#ffffff47}.sidebar a.active{color:#0f766e;background:#fff;border-color:#fffffff2;box-shadow:0 8px 18px #00000029}.sidebar a.active .nav-item-icon{color:#0f766e;background:#0d94881a;border-color:#0d94884d}.quick{border-top:1px solid #ffffff2e;padding:16px 14px 18px}.quick p{letter-spacing:.8px;text-transform:uppercase;opacity:.82;margin:0 0 10px;font-size:11px;font-weight:700}.quick button{color:#fff;text-align:left;cursor:pointer;background:#ffffff1f;border:1px solid #ffffff47;border-radius:9px;width:100%;padding:10px 12px;font-size:13px;font-weight:600;transition:all .2s}.quick button+button{margin-top:8px}.quick button:hover{background:#ffffff38;border-color:#ffffff73}.main{background:#f6fafb;flex-direction:column;width:calc(100% - 272px);min-height:100vh;margin-left:272px;display:flex}.navbar{width:calc(100% - 272px);min-height:var(--shell-header-height);height:var(--shell-header-height);z-index:1200;background:#fff;border-bottom:1px solid #d9e2ec;justify-content:space-between;align-items:center;padding:0 20px;display:flex;position:fixed;top:0;left:272px}.navbar-left{align-items:center;gap:10px;min-width:0;display:flex}.page-chip{color:#0f766e;letter-spacing:.3px;background:#e8f7f5;border:1px solid #c7e8e0;border-radius:8px;flex-shrink:0;justify-content:center;align-items:center;width:30px;height:30px;font-size:10px;font-weight:800;display:inline-flex}.page-chip .nav-icon{width:15px;height:15px}.navbar-title-block{border-left:1px solid #dbe7f0;flex-direction:column;gap:1px;min-width:0;padding-left:10px;display:flex}.navbar-kicker{text-transform:uppercase;letter-spacing:.6px;color:#7b8fa4;font-size:10px;font-weight:700;line-height:1}.navbar h3{color:#1f2a37;white-space:nowrap;text-overflow:ellipsis;margin:0;font-size:17px;line-height:1.15;overflow:hidden}.navbar .hamburger{color:#1f2a37;cursor:pointer;background:#f2f7fa;border:1px solid #d7e2ea;border-radius:8px;padding:7px 10px;font-size:12px;font-weight:700;display:none}.navbar .right{align-items:center;gap:10px;display:flex}.theme-toggle{color:#1f2a37;cursor:pointer;background:#f2f7fa;border:1px solid #d7e2ea;border-radius:8px;padding:8px 12px;font-size:12px;font-weight:700}.theme-toggle:hover,.navbar .hamburger:hover{background:#e7eff5;border-color:#a4b7c6}.user-dropdown{position:relative}.user-btn{cursor:pointer;background:#f8fbfd;border:1px solid #d7e2ea;border-radius:10px;align-items:center;gap:8px;padding:6px 10px;display:flex}.user-btn:hover{border-color:#a9bfce}.user-avatar{color:#fff;background:#0d9488;border-radius:8px;justify-content:center;align-items:center;width:28px;height:28px;font-size:11px;font-weight:800;display:inline-flex}.user-name{text-overflow:ellipsis;white-space:nowrap;color:#1f2a37;max-width:150px;font-size:13px;font-weight:700;overflow:hidden}.dropdown-arrow{color:#53657a;font-size:10px}.dropdown-menu{background:#fff;border:1px solid #d8e3ec;border-radius:12px;min-width:220px;position:absolute;top:calc(100% + 8px);right:0;overflow:hidden;box-shadow:0 16px 40px #00000024}.dropdown-header{background:#f2f7fa;padding:12px 14px}.dropdown-header .user-email{color:#1f2a37;margin:0 0 2px;font-size:13px;font-weight:700}.dropdown-header small{color:#66788f;font-size:11px}.dropdown-divider{background:#e3ebf2;height:1px}.dropdown-item{color:#1f2a37;text-align:left;cursor:pointer;background:#fff;border:none;width:100%;padding:10px 14px;font-size:13px;font-weight:600}.dropdown-item:hover{background:#f3f8fb}.dropdown-item.logout{color:#c53030}.dropdown-item.logout:hover{background:#fff5f5}.content{margin-top:var(--shell-header-height);flex:1;padding:20px}.has-tooltip{position:relative}@media (hover:hover){.has-tooltip:after{content:attr(data-tooltip);color:#fff;white-space:nowrap;pointer-events:none;opacity:0;z-index:20;background:#1f2a37;border-radius:6px;padding:5px 8px;font-size:11px;font-weight:600;transition:opacity .18s,transform .18s;position:absolute;bottom:calc(100% + 8px);left:50%;transform:translate(-50%)translateY(4px)}.has-tooltip:hover:after{opacity:1;transform:translate(-50%)translateY(0)}}.sidebar-overlay{display:none}body.dark-mode{color:#dae2ea;background:#0f1720}body.dark-mode .main{background:#0f1720}body.dark-mode .navbar{background:#111b25;border-color:#203245}body.dark-mode .navbar h3,body.dark-mode .user-name,body.dark-mode .dropdown-item,body.dark-mode .dropdown-header .user-email{color:#e6edf4}body.dark-mode .page-chip{color:#87f3da;background:#173b3a;border-color:#2f6462}body.dark-mode .navbar-title-block{border-color:#284155}body.dark-mode .navbar-kicker{color:#9bb0c7}body.dark-mode .theme-toggle,body.dark-mode .navbar .hamburger,body.dark-mode .user-btn{color:#d3dee9;background:#1a2735;border-color:#294055}body.dark-mode .dropdown-menu{background:#111b25;border-color:#2a4156}body.dark-mode .dropdown-header{background:#172433}body.dark-mode .dropdown-divider{background:#2a4156}body.dark-mode .dropdown-item:hover{background:#1a2b3c}body.dark-mode .sidebar{background:linear-gradient(#0d141d 0%,#152535 100%)}@media (width<=992px){.sidebar{transform:translate(-100%)}.sidebar.open{transform:translate(0)}.sidebar .close-btn{justify-content:center;align-items:center;display:inline-flex}.main{width:100%;margin-left:0}.navbar{width:100%;left:0}.navbar .hamburger{justify-content:center;align-items:center;display:inline-flex}.sidebar-overlay{z-index:1250;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);background:#00000073;display:block;position:fixed;inset:0}}@media (width<=640px){:root{--shell-header-height:56px}.content{padding:14px}.navbar{padding:0 12px}.navbar h3{font-size:16px}.page-chip{width:26px;height:26px;font-size:9px}.page-chip .nav-icon{width:13px;height:13px}.navbar-title-block{padding-left:8px}.user-name,.dropdown-arrow{display:none}.user-btn{padding:4px}.theme-toggle{padding:7px 10px}}@media (width<=480px){.navbar-kicker{display:none}.navbar-title-block{border-left:none;padding-left:0}}.login-container{background:linear-gradient(135deg,#065f56 0%,#0f766e 35%,#0d9488 70%,#14b8a6 100%);justify-content:center;align-items:center;min-height:100vh;display:flex;position:relative;overflow:hidden}.login-container:before{content:"";background:radial-gradient(circle at 20% 80%,#ffffff14 0%,#0000 50%),radial-gradient(circle at 80% 20%,#ffffff14 0%,#0000 50%),radial-gradient(circle,#14b8a61a 0%,#0000 60%);width:200%;height:200%;animation:25s ease-in-out infinite float;position:absolute}@keyframes float{0%,to{transform:translate(0)rotate(0)}25%{transform:translate(-20px,20px)rotate(3deg)}50%{transform:translate(10px,-15px)rotate(-2deg)}75%{transform:translate(25px,10px)rotate(1deg)}}.login-box{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);z-index:10;background:#fffffffa;border:1px solid #fff3;border-radius:24px;width:100%;max-width:460px;padding:48px 40px;animation:.7s cubic-bezier(.4,0,.2,1) slideUp;position:relative;box-shadow:0 35px 60px -15px #0000004d}@keyframes slideUp{0%{opacity:0;transform:translateY(40px)scale(.95)}to{opacity:1;transform:translateY(0)scale(1)}}.login-header{text-align:center;margin-bottom:36px}.login-logo{color:#0f766e;text-shadow:0 2px 4px #0f766e1a;justify-content:center;align-items:center;gap:12px;margin-bottom:12px;font-size:36px;font-weight:800;display:flex}.logo-icon{object-fit:contain;border-radius:12px;width:60px;height:60px}.login-header p{color:#64748b;margin:0;font-size:18px;font-weight:500}.login-form .form-group{margin-bottom:24px}.login-form label{color:#334155;letter-spacing:.2px;margin-bottom:10px;font-size:15px;font-weight:600;display:block}.login-form input{background:#fafafa;border:2px solid #e2e8f0;border-radius:14px;width:100%;padding:16px 20px;font-size:16px;transition:all .3s cubic-bezier(.4,0,.2,1)}.login-form input:hover{background:#fff;border-color:#cbd5e1}.login-form input:focus{background:#fff;border-color:#0f766e;outline:none;transform:translateY(-2px);box-shadow:0 0 0 4px #0f766e26}.login-btn{color:#fff;cursor:pointer;letter-spacing:.3px;background:linear-gradient(135deg,#0f766e 0%,#0d9488 100%);border:none;border-radius:14px;width:100%;margin-top:8px;padding:16px;font-size:17px;font-weight:700;transition:all .3s cubic-bezier(.4,0,.2,1);box-shadow:0 4px 15px #0f766e40}.login-btn:hover:not(:disabled){transform:translateY(-3px);box-shadow:0 12px 30px #0f766e59}.login-btn:active:not(:disabled){transform:translateY(-1px)}.login-btn:disabled{opacity:.7;cursor:not-allowed;transform:none}.error-message{color:#b91c1c;text-align:center;background:linear-gradient(135deg,#fef2f2 0%,#fee2e2 100%);border:1px solid #fecaca;border-radius:12px;margin-bottom:24px;padding:14px;font-size:14px;font-weight:500;box-shadow:0 2px 8px #ef44441a}.login-footer{text-align:center;color:#94a3b8;border-top:1px solid #f1f5f9;margin-top:36px;padding-top:24px;font-size:14px}.login-footer p{margin:0;font-weight:500}@media (width<=768px){.login-container{padding:20px}.login-box{border-radius:20px;max-width:100%;padding:36px 28px}.login-logo{font-size:30px}.login-header p{font-size:16px}.login-form input{padding:14px 16px;font-size:15px}.login-btn{padding:14px;font-size:16px}}@media (width<=480px){.login-box{border-radius:18px;margin:0;padding:28px 20px}.login-logo{font-size:26px}.login-header{margin-bottom:28px}}.loader{justify-content:center;align-items:center;display:inline-flex}.loader-spinner{border:3px solid #d9e2ec;border-top-color:#0d9488;border-radius:50%;animation:.7s linear infinite loader-spin}.loader-small .loader-spinner{border-width:2px;width:18px;height:18px}.loader-medium .loader-spinner{width:34px;height:34px}.loader-large .loader-spinner{border-width:4px;width:52px;height:52px}.button-loader .loader-spinner{border-color:#fff #ffffff47 #ffffff47}.page-loader{z-index:3500;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);background:#ffffffb8;flex-direction:column;justify-content:center;align-items:center;gap:12px;display:flex;position:fixed;inset:0}.page-loader p{color:#4a5568;margin:0;font-size:14px;font-weight:600}@keyframes loader-spin{to{transform:rotate(360deg)}}body.dark-mode .loader-spinner{border-color:#2dd4bf #314457 #314457}body.dark-mode .page-loader{background:#0a121bb3}body.dark-mode .page-loader p{color:#d6e2ee}.patients-page{width:100%}.patients-page .page-header{justify-content:space-between;align-items:center;gap:12px;margin-bottom:18px;display:flex}.patients-page .page-header h2{color:#1f2a37;margin:0;font-size:24px}.patients-page .header-actions{align-items:center;gap:10px;display:flex}.patients-page .search-wrapper{position:relative}.patients-page .search-input{color:#1f2a37;background:#fff;border:1px solid #cfdce7;border-radius:10px;min-width:290px;padding:10px 12px;font-size:14px}.patients-page .search-input:focus{border-color:#0d9488;outline:none;box-shadow:0 0 0 3px #0d94881a}.patients-page .add-btn{color:#fff;background:#0d9488;border:1px solid #0d9488;border-radius:10px;padding:10px 14px;font-size:14px;font-weight:700}.patients-page .add-btn:hover{background:#0f766e;border-color:#0f766e}.patients-page .modal-overlay{z-index:2000;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);background:#0000006b;justify-content:center;align-items:center;padding:16px;display:flex;position:fixed;inset:0}.patients-page .modal{background:#fff;border:1px solid #dbe7f1;border-radius:14px;width:100%;max-height:92vh;overflow-y:auto}.patients-page .modal.large-modal{max-width:700px}.patients-page .modal-header{border-bottom:1px solid #e5edf5;justify-content:space-between;align-items:center;padding:16px 18px;display:flex}.patients-page .modal-header h3{color:#1f2a37;margin:0;font-size:18px}.patients-page .modal .close-btn{color:#4d6177;background:#f5f8fb;border:1px solid #d8e4ee;border-radius:8px;width:30px;height:30px}.patients-page .patient-form{padding:16px 18px 18px}.patients-page .form-row{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;display:grid}.patients-page .form-group{margin-bottom:12px}.patients-page .form-group label{color:#34475b;margin-bottom:6px;font-size:13px;font-weight:700;display:block}.patients-page .form-group input:not([type=checkbox]),.patients-page .form-group textarea,.patients-page .form-group select{color:#1f2a37;background:#fff;border:1px solid #cfdae4;border-radius:8px;width:100%;padding:10px 12px;font-size:14px}.patients-page .form-group input:not([type=checkbox]):focus,.patients-page .form-group textarea:focus,.patients-page .form-group select:focus{border-color:#0d9488;outline:none;box-shadow:0 0 0 3px #0d94881a}.patients-page .form-group input:not([type=checkbox]):disabled,.patients-page .form-group select:disabled,.patients-page .form-group textarea:disabled{cursor:not-allowed;background:#f3f7fb}.patients-page .form-hint{color:#6e8398;margin-top:4px;font-size:12px;display:block}.patients-page .checkbox-group{margin-top:4px}.patients-page .checkbox-row{cursor:pointer;background:#f8fbfe;border:1px solid #cfdae4;border-radius:8px;align-items:center;gap:12px;padding:10px 14px;display:flex}.patients-page .checkbox-row input[type=checkbox]{accent-color:#0d9488;cursor:pointer;flex-shrink:0;width:17px;height:17px;margin:0}.patients-page .checkbox-text{color:#34475b;cursor:pointer;margin:0;font-size:13px;font-weight:600}body.dark-mode .patients-page .checkbox-row{background:#172433;border-color:#2a4156}body.dark-mode .patients-page .checkbox-text{color:#d7e2ee}.patients-page .form-actions{border-top:1px solid #e5edf5;justify-content:flex-end;gap:10px;margin-top:12px;padding-top:14px;display:flex}.patients-page .cancel-btn,.patients-page .submit-btn{border-radius:8px;align-items:center;gap:8px;padding:9px 14px;font-size:13px;font-weight:700;display:inline-flex}.patients-page .cancel-btn{color:#42566c;background:#f5f9fc;border:1px solid #cedbe6}.patients-page .submit-btn{color:#fff;background:#0d9488;border:1px solid #0d9488}.patients-page .cancel-btn:disabled,.patients-page .submit-btn:disabled{opacity:.72;cursor:not-allowed}.patients-page .patients-table-wrapper{background:#fff;border:1px solid #dce7f0;border-radius:14px;overflow:hidden}.patients-page .table-scroll{width:100%;overflow-x:auto}.patients-page .patients-table{border-collapse:collapse;width:100%;min-width:900px}.patients-page .patients-table th{text-align:left;text-transform:uppercase;letter-spacing:.45px;color:#5f7287;background:#f4f8fb;border-bottom:1px solid #dce7f0;padding:14px 16px;font-size:12px}.patients-page .patients-table td{color:#1f2a37;border-bottom:1px solid #edf2f7;padding:14px 16px;font-size:14px}.patients-page .patients-table tbody tr:hover{background:#f8fbfe}.patients-page .icon-cell{color:#0f766e;background:#e8f7f5;border-radius:8px;justify-content:center;align-items:center;width:28px;height:28px;margin-right:8px;font-size:10px;font-weight:800;display:inline-flex}.patients-page .icon-cell .nav-icon{width:14px;height:14px}.patients-page .address-cell{text-overflow:ellipsis;white-space:nowrap;max-width:260px;overflow:hidden}.patients-page .status-badge{border-radius:999px;align-items:center;padding:4px 10px;font-size:12px;font-weight:700;display:inline-flex}.patients-page .status-active{color:#16614f;background:#eaf9f4;border:1px solid #bde8db}.patients-page .status-inactive{color:#9c2d2d;background:#fff1f1;border:1px solid #f0c0c0}.patients-page .table-actions{gap:8px;display:flex}.patients-page .table-btn{border:1px solid #0000;border-radius:8px;padding:7px 12px;font-size:12px;font-weight:700}.patients-page .table-btn.view-btn{color:#214f97;background:#e8f1ff;border-color:#bdd2f5}.patients-page .table-btn.edit-btn{color:#8b5a0b;background:#fff6e8;border-color:#f0d39d}.patients-page .table-btn.book-btn{color:#16614f;background:#e8f9f5;border-color:#bde8db}.patients-page .table-btn.delete-btn{color:#9c2d2d;background:#fff2f2;border-color:#f3c1c1}.patients-page .table-btn:hover{filter:brightness(.97)}.patients-page .booking-modal .booking-tabs{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;padding:12px 18px 0;display:grid}.patients-page .booking-tab{color:#4d6177;background:#f6fafc;border:1px solid #cfdae4;border-radius:8px;padding:9px 10px;font-size:13px;font-weight:700}.patients-page .booking-tab.active{color:#fff;background:#0d9488;border-color:#0d9488}.patients-page .appointment-booking-form{padding-top:12px}.patients-page .empty-state{text-align:center;padding:52px 16px}.patients-page .empty-icon{color:#0f766e;background:#ecf9f6;border:1px solid #caebe3;border-radius:14px;justify-content:center;align-items:center;width:58px;height:58px;margin-bottom:10px;font-size:15px;font-weight:800;display:inline-flex}.patients-page .empty-icon .nav-icon{width:26px;height:26px}.patients-page .empty-state h3{color:#243447;margin:0 0 4px}.patients-page .empty-state p{color:#63768b;margin:0}.patients-page .pagination{background:#fff;border:1px solid #dce7f0;border-radius:12px;justify-content:space-between;align-items:center;gap:10px;margin-top:14px;padding:12px 14px;display:flex}.patients-page .pagination-info{color:#5f7287;font-size:13px;font-weight:600}.patients-page .pagination-controls{align-items:center;gap:8px;display:flex}.patients-page .page-numbers{gap:6px;display:flex}.patients-page .page-btn{color:#4d6177;background:#fff;border:1px solid #cfdae4;border-radius:8px;min-width:36px;padding:7px 11px;font-size:12px;font-weight:700}.patients-page .page-btn.active{color:#fff;background:#0d9488;border-color:#0d9488}.patients-page .page-btn:disabled{opacity:.5;cursor:not-allowed}.patients-page .page-btn:hover:not(:disabled):not(.active){background:#f3f8fb}body.dark-mode .patients-page .page-header h2,body.dark-mode .patients-page .modal-header h3,body.dark-mode .patients-page .patients-table td{color:#e1e9f3}body.dark-mode .patients-page .search-input,body.dark-mode .patients-page .patients-table-wrapper,body.dark-mode .patients-page .modal,body.dark-mode .patients-page .pagination{background:#111b25;border-color:#2a4156}body.dark-mode .patients-page .search-input{color:#d7e2ee}body.dark-mode .patients-page .patients-table th{color:#a8bacd;background:#172433;border-color:#2a4156}body.dark-mode .patients-page .patients-table td,body.dark-mode .patients-page .form-actions,body.dark-mode .patients-page .modal-header,body.dark-mode .patients-page .pagination{border-color:#2a4156}body.dark-mode .patients-page .patients-table tbody tr:hover{background:#162535}body.dark-mode .patients-page .icon-cell,body.dark-mode .patients-page .empty-icon{color:#87f3da;background:#173b3a;border-color:#2f6462}body.dark-mode .patients-page .status-active{color:#b9f0dc;background:#1e3d35;border-color:#356858}body.dark-mode .patients-page .status-inactive{color:#ffd4d6;background:#3a1f22;border-color:#6f3a3f}body.dark-mode .patients-page .modal input:not([type=checkbox]),body.dark-mode .patients-page .modal select,body.dark-mode .patients-page .modal textarea,body.dark-mode .patients-page .cancel-btn,body.dark-mode .patients-page .modal .close-btn,body.dark-mode .patients-page .booking-tab,body.dark-mode .patients-page .page-btn{color:#d7e2ee;background:#172433;border-color:#2a4156}body.dark-mode .patients-page .booking-tab.active,body.dark-mode .patients-page .page-btn.active,body.dark-mode .patients-page .submit-btn{color:#fff;background:#0d9488;border-color:#0d9488}body.dark-mode .patients-page .empty-state p,body.dark-mode .patients-page .form-hint,body.dark-mode .patients-page .pagination-info{color:#9bb0c7}@media (width<=980px){.patients-page .header-actions{flex-wrap:wrap;width:100%}.patients-page .search-input{width:100%;min-width:0}.patients-page .search-wrapper,.patients-page .add-btn{width:100%}.patients-page .form-row{grid-template-columns:1fr}.patients-page .patients-table{min-width:780px}.patients-page .pagination{flex-direction:column;align-items:flex-start}}@media (width<=640px){.patients-page .modal.large-modal{max-width:none}.patients-page .booking-modal .booking-tabs{grid-template-columns:1fr}}.services-page{width:100%}.services-page .page-header{justify-content:space-between;align-items:center;gap:12px;margin-bottom:18px;display:flex}.services-page .page-header h2{color:#1f2a37;margin:0;font-size:24px}.services-page .add-btn{color:#fff;background:#0d9488;border:1px solid #0d9488;border-radius:10px;padding:10px 14px;font-size:14px;font-weight:700}.services-page .add-btn:hover{background:#0f766e;border-color:#0f766e}.services-page .services-table-wrapper{background:#fff;border:1px solid #dce7f0;border-radius:14px;overflow:hidden}.services-page .table-scroll{width:100%;overflow-x:auto}.services-page .services-table{border-collapse:collapse;width:100%;min-width:760px}.services-page .services-table th{text-align:left;text-transform:uppercase;letter-spacing:.45px;color:#5f7287;background:#f4f8fb;border-bottom:1px solid #dce7f0;padding:14px 16px;font-size:12px}.services-page .services-table td{color:#1f2a37;border-bottom:1px solid #edf2f7;padding:14px 16px;font-size:14px}.services-page .services-table tbody tr:hover{background:#f8fbfe}.services-page .table-image{object-fit:cover;border:1px solid #deebf4;border-radius:10px;width:46px;height:46px}.services-page .table-icon{color:#0f766e;background:#e8f7f5;border-radius:10px;justify-content:center;align-items:center;width:46px;height:46px;font-size:12px;font-weight:800;display:inline-flex}.services-page .service-name{align-items:center;gap:10px;font-weight:700;display:flex}.services-page .service-class-icon{color:#0f766e;background:#e8f7f5;border:1px solid #caebe3;border-radius:8px;flex-shrink:0;justify-content:center;align-items:center;width:30px;height:30px;font-size:14px;display:inline-flex}.services-page .service-icon-fallback{letter-spacing:.3px;font-size:10px;font-weight:800}.services-page .service-icon-emoji{font-size:16px;line-height:1;display:inline-block}.services-page .category-badge{color:#156c58;background:#effbf7;border:1px solid #c2eadf;border-radius:999px;align-items:center;padding:4px 10px;font-size:12px;font-weight:700;display:inline-flex}.services-page .description-cell{text-overflow:ellipsis;white-space:nowrap;color:#4a5d72;max-width:300px;overflow:hidden}.services-page .text-muted{color:#8ca0b4}.services-page .table-actions{gap:8px;display:flex}.services-page .table-btn{cursor:pointer;border:1px solid #0000;border-radius:8px;padding:7px 12px;font-size:12px;font-weight:700}.services-page .table-btn.view-btn{color:#214f97;background:#e8f1ff;border-color:#bdd2f5}.services-page .table-btn.edit-btn{color:#8b5a0b;background:#fff6e8;border-color:#f0d39d}.services-page .table-btn.delete-btn{color:#9c2d2d;background:#fff2f2;border-color:#f3c1c1}.services-page .table-btn:hover{filter:brightness(.97)}.services-page .modal-overlay{z-index:2000;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);background:#0000006b;justify-content:center;align-items:center;padding:16px;display:flex;position:fixed;inset:0}.services-page .modal{background:#fff;border:1px solid #dbe7f1;border-radius:14px;width:100%;max-width:540px;max-height:92vh;overflow-y:auto}.services-page .modal-header{border-bottom:1px solid #e5edf5;justify-content:space-between;align-items:center;padding:16px 18px;display:flex}.services-page .modal-header h3{color:#1f2a37;margin:0;font-size:18px}.services-page .modal .close-btn{color:#4d6177;background:#f5f8fb;border:1px solid #d8e4ee;border-radius:8px;width:30px;height:30px}.services-page .modal form{padding:16px 18px 18px}.services-page .modal .form-group{margin-bottom:14px}.services-page .icon-picker-row{gap:10px;display:grid}.services-page .selected-icon-preview{background:#f6fafc;border:1px solid #dce7f0;border-radius:10px;align-items:center;gap:10px;padding:8px 10px;display:flex}.services-page .selected-icon-preview .preview-icon{width:36px;height:36px;font-size:16px}.services-page .selected-icon-text{flex-direction:column;gap:2px;min-width:0;display:flex}.services-page .selected-icon-label{color:#42566c;font-size:12px;font-weight:700}.services-page .selected-icon-text code{color:#63778d;white-space:nowrap;text-overflow:ellipsis;background:0 0;padding:0;font-size:11px;overflow:hidden}.services-page .modal label{color:#34475b;margin-bottom:6px;font-size:13px;font-weight:700;display:block}.services-page .modal input,.services-page .modal select,.services-page .modal textarea{color:#1f2a37;background:#fff;border:1px solid #cfdae4;border-radius:8px;width:100%;padding:10px 12px;font-size:14px}.services-page .modal input:focus,.services-page .modal select:focus,.services-page .modal textarea:focus{border-color:#0d9488;outline:none;box-shadow:0 0 0 3px #0d94881a}.services-page .modal input:disabled,.services-page .modal select:disabled,.services-page .modal textarea:disabled{cursor:not-allowed;background:#f3f7fb}.services-page .form-actions{border-top:1px solid #e5edf5;justify-content:flex-end;gap:10px;margin-top:12px;padding-top:14px;display:flex}.services-page .cancel-btn,.services-page .submit-btn{border-radius:8px;align-items:center;gap:8px;padding:9px 14px;font-size:13px;font-weight:700;display:inline-flex}.services-page .cancel-btn{color:#42566c;background:#f5f9fc;border:1px solid #cedbe6}.services-page .submit-btn{color:#fff;background:#0d9488;border:1px solid #0d9488}.services-page .submit-btn:disabled,.services-page .cancel-btn:disabled{opacity:.7;cursor:not-allowed}.services-page .existing-image-preview{text-align:center;margin-bottom:10px}.services-page .current-image-preview{border:1px solid #dbe7f1;border-radius:10px;max-height:120px;margin-bottom:5px}.services-page .image-label,.services-page .image-hint{color:#7a8fa5;font-size:12px;display:block}.services-page .empty-state{text-align:center;padding:52px 16px}.services-page .empty-icon{color:#0f766e;background:#ecf9f6;border:1px solid #caebe3;border-radius:14px;justify-content:center;align-items:center;width:58px;height:58px;margin-bottom:10px;font-size:15px;font-weight:800;display:inline-flex}.services-page .empty-state h3{color:#243447;margin:0 0 4px}.services-page .empty-state p{color:#63768b;margin:0}body.dark-mode .services-page .page-header h2,body.dark-mode .services-page .modal-header h3,body.dark-mode .services-page .service-name,body.dark-mode .services-page .services-table td{color:#e1e9f3}body.dark-mode .services-page .services-table-wrapper,body.dark-mode .services-page .modal{background:#111b25;border-color:#2a4156}body.dark-mode .services-page .services-table th{color:#a8bacd;background:#172433;border-color:#2a4156}body.dark-mode .services-page .services-table td,body.dark-mode .services-page .form-actions,body.dark-mode .services-page .modal-header{border-color:#2a4156}body.dark-mode .services-page .services-table tbody tr:hover{background:#162535}body.dark-mode .services-page .table-icon,body.dark-mode .services-page .service-class-icon{color:#87f3da;background:#173b3a;border-color:#2f6462}body.dark-mode .services-page .category-badge{color:#b9f0dc;background:#1e3d35;border-color:#356858}body.dark-mode .services-page .text-muted,body.dark-mode .services-page .image-label,body.dark-mode .services-page .image-hint,body.dark-mode .services-page .description-cell,body.dark-mode .services-page .empty-state p{color:#9bb0c7}body.dark-mode .services-page .modal input,body.dark-mode .services-page .modal select,body.dark-mode .services-page .modal textarea,body.dark-mode .services-page .cancel-btn,body.dark-mode .services-page .modal .close-btn{color:#d7e2ee;background:#172433;border-color:#2a4156}body.dark-mode .services-page .selected-icon-preview{background:#172433;border-color:#2a4156}body.dark-mode .services-page .selected-icon-label,body.dark-mode .services-page .selected-icon-text code{color:#9bb0c7}@media (width<=900px){.services-page .page-header{flex-wrap:wrap}.services-page .add-btn{width:100%}}@media (width<=640px){.services-page .modal{max-width:none}.services-page .services-table{min-width:680px}}.staff-page{width:100%}.staff-page-header{justify-content:space-between;align-items:center;gap:12px;margin-bottom:12px;display:flex}.staff-page-header h2{color:#1f2a37;margin:0;font-size:22px}.staff-search-wrapper{width:100%;max-width:460px}.staff-header-actions{justify-content:flex-end;align-items:center;gap:10px;width:100%;display:flex}.staff-add-btn{color:#fff;background:#0d9488;border:1px solid #0d9488;border-radius:10px;padding:10px 14px;font-size:14px;font-weight:700}.staff-add-btn:hover{background:#0f766e;border-color:#0f766e}.staff-search-input{color:#1f2a37;background:#fff;border:1px solid #cfdce7;border-radius:10px;width:100%;padding:10px 12px;font-size:14px}.staff-search-input:focus{border-color:#0d9488;outline:none;box-shadow:0 0 0 3px #0d94881f}.staff-modal-overlay{z-index:2000;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);background:#0000006b;justify-content:center;align-items:center;padding:16px;display:flex;position:fixed;inset:0}.swal-above-modal{z-index:3000!important}.staff-modal{background:#fff;border:1px solid #dbe7f1;border-radius:14px;width:100%;max-height:92vh;overflow-y:auto}.staff-modal.staff-large-modal{max-width:720px}.staff-modal-header{border-bottom:1px solid #e5edf5;justify-content:space-between;align-items:center;padding:16px 18px;display:flex}.staff-modal-header h3{color:#1f2a37;margin:0;font-size:18px}.staff-close-btn{color:#4d6177;background:#f5f8fb;border:1px solid #d8e4ee;border-radius:8px;width:30px;height:30px}.staff-form-tabs{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;padding:12px 18px 0;display:grid}.staff-form-tab{color:#4d6177;background:#f6fafc;border:1px solid #cfdae4;border-radius:8px;padding:9px 10px;font-size:13px;font-weight:700}.staff-form-tab.active{color:#fff;background:#0d9488;border-color:#0d9488}.staff-form{padding:14px 18px 18px}.staff-form-row{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;display:grid}.staff-form-group{margin-bottom:12px}.staff-form-group label{color:#34475b;margin-bottom:6px;font-size:13px;font-weight:700;display:block}.staff-form-group input,.staff-form-group select,.staff-form-group textarea{color:#1f2a37;background:#fff;border:1px solid #cfdae4;border-radius:8px;width:100%;padding:10px 12px;font-size:14px}.staff-form-group input:focus,.staff-form-group select:focus,.staff-form-group textarea:focus{border-color:#0d9488;outline:none;box-shadow:0 0 0 3px #0d94881a}.staff-form-group input:disabled,.staff-form-group select:disabled,.staff-form-group textarea:disabled{cursor:not-allowed;background:#f3f7fb}.staff-file-note{color:#6e8398;margin-top:5px;font-size:12px;display:block}.staff-existing-documents{background:#fff;border:1px solid #dce7f0;border-radius:8px;margin-top:8px;padding:8px 10px}.staff-existing-documents p{color:#42566c;margin:0 0 6px;font-size:12px;font-weight:700}.staff-existing-documents ul{gap:4px;margin:0;padding-left:16px;display:grid}.staff-existing-documents a{color:#0f766e;font-size:12px;font-weight:600;text-decoration:none}.staff-existing-documents a:hover{text-decoration:underline}.staff-form-actions{border-top:1px solid #e5edf5;justify-content:flex-end;gap:10px;margin-top:12px;padding-top:14px;display:flex}.staff-cancel-btn,.staff-prev-btn,.staff-next-btn,.staff-submit-btn{border-radius:8px;align-items:center;gap:8px;padding:9px 14px;font-size:13px;font-weight:700;display:inline-flex}.staff-cancel-btn,.staff-prev-btn{color:#42566c;background:#f5f9fc;border:1px solid #cedbe6}.staff-next-btn,.staff-submit-btn{color:#fff;background:#0d9488;border:1px solid #0d9488}.staff-cancel-btn:disabled,.staff-prev-btn:disabled,.staff-next-btn:disabled,.staff-submit-btn:disabled{opacity:.72;cursor:not-allowed}.staff-table-card{background:#fff;border:1px solid #dce7f0;border-radius:14px;padding:12px}.staff-table-scroll{width:100%;overflow-x:auto}.staff-table{border-collapse:collapse;width:100%;min-width:980px}.staff-table th{text-align:left;text-transform:uppercase;letter-spacing:.4px;color:#5f7287;background:#f4f8fb;border-bottom:1px solid #dce7f0;padding:12px 10px;font-size:12px}.staff-table td{color:#1f2a37;vertical-align:top;border-bottom:1px solid #edf2f7;padding:12px 10px;font-size:13px}.staff-table tbody tr:hover{background:#f8fbfe}.staff-table-actions{gap:8px;display:flex}.staff-table-btn{border:1px solid #0000;border-radius:8px;padding:7px 12px;font-size:12px;font-weight:700}.staff-table-btn.view-btn{color:#214f97;background:#e8f1ff;border-color:#bdd2f5}.staff-table-btn.edit-btn{color:#8b5a0b;background:#fff6e8;border-color:#f0d39d}.staff-table-btn.availability-btn{color:#16614f;background:#e8f9f5;border-color:#bde8db}.staff-table-btn.availability-view-btn{color:#2a4f8a;background:#edf4ff;border-color:#c5d8f6}.staff-table-btn.delete-btn{color:#9c2d2d;background:#fff2f2;border-color:#f3c1c1}.staff-table-btn:hover:not(:disabled){filter:brightness(.97)}.staff-table-btn:disabled{opacity:.7;cursor:not-allowed}.staff-empty-cell{text-align:center;color:#72879c;padding:24px 8px;font-size:14px;font-weight:600}.staff-person-cell{align-items:center;gap:10px;display:flex}.staff-avatar{object-fit:cover;border:1px solid #dce7f0;border-radius:50%;width:36px;height:36px}.staff-avatar-placeholder{color:#0f766e;background:#e8f9f5;justify-content:center;align-items:center;font-size:14px;font-weight:700;display:inline-flex}.staff-person-meta{flex-direction:column;gap:2px;display:flex}.staff-person-meta strong{color:#1f2a37;font-size:13px}.staff-person-meta span{color:#6a7f95;font-size:11px;font-weight:600}.staff-contact-cell{flex-direction:column;gap:2px;display:flex}.staff-status-badge{white-space:nowrap;border:1px solid #0000;border-radius:999px;justify-content:center;align-items:center;padding:4px 10px;font-size:11px;font-weight:700;display:inline-flex}.staff-status-badge.active{color:#16614f;background:#e8f9f5;border-color:#bde8db}.staff-status-badge.inactive{color:#9c2d2d;background:#fff2f2;border-color:#f3c1c1}.staff-status-badge.available{color:#214f97;background:#e8f1ff;border-color:#bdd2f5}.staff-status-badge.unavailable{color:#5f7287;background:#f4f8fb;border-color:#dce7f0}.staff-view-modal{max-width:860px}.staff-view-body{padding:16px 18px 18px}.staff-view-summary{background:#f8fbfe;border:1px solid #dce7f0;border-radius:12px;align-items:center;gap:14px;margin-bottom:14px;padding:10px 12px;display:flex}.staff-view-avatar{object-fit:cover;border:1px solid #dce7f0;border-radius:50%;width:72px;height:72px}.staff-view-heading h4{color:#1f2a37;margin:0;font-size:22px}.staff-view-heading p{color:#5f7287;margin:4px 0 0;font-size:13px;font-weight:600}.staff-view-badges{flex-wrap:wrap;gap:6px;margin-top:8px;display:flex}.staff-view-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;display:grid}.staff-view-item{background:#fff;border:1px solid #dce7f0;border-radius:10px;flex-direction:column;gap:4px;padding:10px;display:flex}.staff-view-item label{color:#6a7f95;text-transform:uppercase;letter-spacing:.4px;font-size:11px;font-weight:700}.staff-view-item span{color:#1f2a37;font-size:13px;font-weight:600}.staff-view-documents{background:#fff;border:1px solid #dce7f0;border-radius:12px;margin-top:14px;padding:12px}.staff-view-documents h5{color:#1f2a37;margin:0 0 8px;font-size:14px}.staff-view-documents p{color:#72879c;margin:0;font-size:13px}.staff-view-documents ul{gap:6px;margin:0;padding-left:18px;display:grid}.staff-view-documents a{color:#0f766e;font-size:13px;font-weight:600;text-decoration:none}.staff-view-documents a:hover{text-decoration:underline}.staff-availability-modal{max-width:640px}.staff-availability-view-modal{max-width:760px}.staff-availability-rule{color:#5f7287;background:#f8fbfe;border:1px dashed #cfdce7;border-radius:8px;padding:10px 12px;font-size:12px;font-weight:600}.staff-availability-list{background:#fff;border:1px solid #dce7f0;border-radius:12px;margin-top:4px;padding:12px}.staff-availability-list h5{color:#1f2a37;margin:0 0 8px;font-size:14px}.staff-availability-list p{color:#72879c;margin:0;font-size:13px}.staff-availability-chips{gap:8px;display:grid}.staff-availability-chip{background:#f8fbfe;border:1px solid #dce7f0;border-radius:10px;justify-content:space-between;align-items:center;gap:10px;padding:8px 10px;display:flex}.staff-availability-chip strong{color:#1f2a37;font-size:12px}.staff-availability-chip span{color:#5f7287;font-size:12px;font-weight:600}.staff-availability-view-body{gap:12px;display:grid}.staff-availability-toolbar{background:#f8fbfe;border:1px solid #dce7f0;border-radius:10px;justify-content:space-between;align-items:center;gap:10px;padding:10px 12px;display:flex}.staff-availability-toolbar p{color:#5f7287;margin:0;font-size:12px;font-weight:600}.staff-availability-add-slot-btn{white-space:nowrap}.staff-availability-edit-form{background:#fff;border:1px solid #dce7f0;border-radius:10px;padding:12px}.staff-availability-edit-form h5{color:#1f2a37;margin:0 0 10px;font-size:14px}.staff-availability-edit-actions{margin-top:8px;padding-top:10px}.staff-availability-inline-loader{color:#5f7287;align-items:center;gap:8px;font-size:13px;font-weight:600;display:inline-flex}.staff-availability-empty{background:#f8fbfe;border:1px dashed #dce7f0;border-radius:10px;padding:14px}.staff-availability-empty p{color:#72879c;margin:0;font-size:13px;font-weight:600}.staff-availability-day-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;display:grid}.staff-availability-day-card{background:#f8fbfe;border:1px solid #dce7f0;border-radius:10px;padding:10px}.staff-availability-day-card h5{color:#1f2a37;margin:0 0 8px;font-size:14px}.staff-availability-day-card ul{gap:8px;margin:0;padding-left:0;list-style:none;display:grid}.staff-availability-day-card li{color:#5f7287;background:#fff;border:1px solid #dce7f0;border-radius:8px;justify-content:space-between;align-items:center;gap:10px;padding:8px;font-size:12px;font-weight:600;display:flex}.staff-availability-slot-row.editing{background:#eefaf7;border-color:#8dc5ba}.staff-availability-slot-time{align-items:center;gap:6px;display:inline-flex}.staff-availability-slot-time strong{color:#34475b;font-weight:700}.staff-availability-slot-actions{gap:6px;display:flex}.staff-slot-action-btn{white-space:nowrap;border:1px solid #0000;border-radius:8px;justify-content:center;align-items:center;gap:6px;padding:6px 9px;font-size:11px;font-weight:700;display:inline-flex}.staff-slot-action-btn.edit-slot-btn{color:#8b5a0b;background:#fff6e8;border-color:#f0d39d}.staff-slot-action-btn.delete-slot-btn{color:#9c2d2d;background:#fff2f2;border-color:#f3c1c1}.staff-slot-action-btn:hover:not(:disabled){filter:brightness(.97)}.staff-slot-action-btn:disabled{opacity:.7;cursor:not-allowed}.staff-pagination{background:#fff;border:1px solid #dce7f0;border-radius:12px;justify-content:space-between;align-items:center;gap:10px;margin-top:12px;padding:12px 14px;display:flex}.staff-pagination-info{color:#5f7287;font-size:13px;font-weight:600}.staff-pagination-controls{align-items:center;gap:8px;display:flex}.staff-page-numbers{gap:6px;display:flex}.staff-page-btn{color:#4d6177;background:#fff;border:1px solid #cfdae4;border-radius:8px;min-width:36px;padding:7px 11px;font-size:12px;font-weight:700}.staff-page-btn.active{color:#fff;background:#0d9488;border-color:#0d9488}.staff-page-btn:disabled{opacity:.5;cursor:not-allowed}.staff-page-btn:hover:not(:disabled):not(.active){background:#f3f8fb}body.dark-mode .staff-page-header h2,body.dark-mode .staff-table td,body.dark-mode .staff-person-meta strong,body.dark-mode .staff-modal-header h3{color:#d7e2ee}body.dark-mode .staff-search-input,body.dark-mode .staff-table-card,body.dark-mode .staff-pagination,body.dark-mode .staff-modal{background:#111b25;border-color:#2a4156}body.dark-mode .staff-search-input{color:#d7e2ee}body.dark-mode .staff-modal-header,body.dark-mode .staff-form-actions{border-color:#2a4156}body.dark-mode .staff-form-group label,body.dark-mode .staff-file-note{color:#9bb0c7}body.dark-mode .staff-form-group input,body.dark-mode .staff-form-group select,body.dark-mode .staff-close-btn,body.dark-mode .staff-cancel-btn,body.dark-mode .staff-prev-btn,body.dark-mode .staff-form-tab,body.dark-mode .staff-page-btn{color:#d7e2ee;background:#172433;border-color:#2a4156}body.dark-mode .staff-form-tab.active,body.dark-mode .staff-next-btn,body.dark-mode .staff-submit-btn,body.dark-mode .staff-page-btn.active,body.dark-mode .staff-add-btn{color:#fff;background:#0d9488;border-color:#0d9488}body.dark-mode .staff-table th{color:#a8bacd;background:#172433;border-color:#2a4156}body.dark-mode .staff-table td{border-color:#2a4156}body.dark-mode .staff-table tbody tr:hover{background:#162535}body.dark-mode .staff-table-btn.view-btn{color:#cfe2ff;background:#1d3350;border-color:#345882}body.dark-mode .staff-table-btn.edit-btn{color:#ffe7c2;background:#3d2f20;border-color:#7d623b}body.dark-mode .staff-table-btn.availability-btn{color:#bff6e6;background:#1f3a32;border-color:#3f7060}body.dark-mode .staff-table-btn.availability-view-btn{color:#cfe2ff;background:#1d3350;border-color:#345882}body.dark-mode .staff-table-btn.delete-btn{color:#ffc2c2;background:#3d2020;border-color:#7d3b3b}body.dark-mode .staff-person-meta span,body.dark-mode .staff-pagination-info,body.dark-mode .staff-empty-cell,body.dark-mode .staff-contact-cell{color:#9bb0c7}body.dark-mode .staff-avatar{border-color:#2a4156}body.dark-mode .staff-avatar-placeholder{color:#63e6da;background:#0d948838}body.dark-mode .staff-existing-documents,body.dark-mode .staff-view-summary,body.dark-mode .staff-view-item,body.dark-mode .staff-view-documents,body.dark-mode .staff-availability-list,body.dark-mode .staff-availability-toolbar,body.dark-mode .staff-availability-edit-form,body.dark-mode .staff-availability-chip,body.dark-mode .staff-availability-rule,body.dark-mode .staff-availability-empty,body.dark-mode .staff-availability-day-card{background:#172433;border-color:#2a4156}body.dark-mode .staff-existing-documents p,body.dark-mode .staff-view-heading p,body.dark-mode .staff-view-item label,body.dark-mode .staff-view-documents p,body.dark-mode .staff-availability-toolbar p,body.dark-mode .staff-availability-list p,body.dark-mode .staff-availability-chip span,body.dark-mode .staff-availability-rule,body.dark-mode .staff-availability-empty p,body.dark-mode .staff-availability-inline-loader,body.dark-mode .staff-availability-day-card li{color:#9bb0c7}body.dark-mode .staff-view-heading h4,body.dark-mode .staff-view-item span,body.dark-mode .staff-view-documents h5,body.dark-mode .staff-availability-edit-form h5,body.dark-mode .staff-availability-list h5,body.dark-mode .staff-availability-chip strong,body.dark-mode .staff-availability-day-card h5,body.dark-mode .staff-availability-slot-time strong{color:#d7e2ee}body.dark-mode .staff-availability-day-card li{background:#111b25;border-color:#2a4156}body.dark-mode .staff-availability-slot-row.editing{background:#18352f;border-color:#2e6f60}body.dark-mode .staff-slot-action-btn.edit-slot-btn{color:#ffe7c2;background:#3d2f20;border-color:#7d623b}body.dark-mode .staff-slot-action-btn.delete-slot-btn{color:#ffc2c2;background:#3d2020;border-color:#7d3b3b}body.dark-mode .staff-existing-documents a,body.dark-mode .staff-view-documents a{color:#63e6da}body.dark-mode .staff-view-avatar{border-color:#2a4156}@media (width<=900px){.staff-page-header{flex-direction:column;align-items:stretch}.staff-header-actions{flex-wrap:wrap;width:100%}.staff-search-wrapper{width:100%;max-width:none}.staff-add-btn{width:100%}.staff-pagination{flex-direction:column;align-items:flex-start}.staff-form-row,.staff-view-grid,.staff-availability-day-grid{grid-template-columns:1fr}.staff-availability-toolbar{flex-direction:column;align-items:flex-start}.staff-availability-add-slot-btn{justify-content:center;width:100%}.staff-table-actions{flex-wrap:wrap}}.checkbox-container{cursor:pointer;-webkit-user-select:none;user-select:none;align-items:center;min-height:24px;padding-left:30px;font-size:14px;display:flex;position:relative}.checkbox-container input{opacity:0;cursor:pointer;width:0;height:0;position:absolute}.checkmark{background-color:#fff;border:2px solid #cfdae4;border-radius:6px;width:22px;height:22px;transition:all .2s;position:absolute;top:0;left:0}.checkbox-container:hover input~.checkmark{border-color:#0d9488}.checkbox-container input:checked~.checkmark{background-color:#0d9488;border-color:#0d9488}.checkmark:after{content:"";display:none;position:absolute}.checkbox-container input:checked~.checkmark:after{display:block}.checkbox-container .checkmark:after{border:2px solid #fff;border-width:0 2px 2px 0;width:5px;height:10px;top:3px;left:7px;transform:rotate(45deg)}.checkbox-label{color:#34475b;margin-left:4px;font-size:14px;font-weight:600}.checkbox-container input:disabled~.checkmark,.checkbox-container input:disabled~.checkbox-label{opacity:.6;cursor:not-allowed}@media (width<=640px){.staff-form-tabs{grid-template-columns:1fr}.staff-view-summary{flex-direction:column;align-items:flex-start}}.appointment-page{width:100%}.appointment-page .appointment-tabs{background:#fff;border:1px solid #dce7f0;border-radius:12px;flex-wrap:wrap;gap:8px;margin-bottom:14px;padding:8px;display:flex}.appointment-page .tab-btn{color:#4d6177;background:0 0;border:1px solid #0000;border-radius:8px;padding:9px 12px;font-size:13px;font-weight:700}.appointment-page .tab-btn:hover{background:#f3f8fb}.appointment-page .tab-btn.active{color:#fff;background:#0d9488;border-color:#0d9488}.appointment-page .tab-content{width:100%}.appointment-page .calendar-container{background:#fff;border:1px solid #dce7f0;border-radius:14px;padding:18px}.appointment-page .calendar-state-card{text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:10px;min-height:240px;display:flex}.appointment-page .calendar-state-card h4{color:#1f2a37;margin:0;font-size:18px}.appointment-page .calendar-state-card p{color:#5f7287;margin:0;font-size:13px;font-weight:600}.appointment-page .calendar-retry-btn{color:#fff;background:#0d9488;border:1px solid #0d9488;border-radius:8px;margin-top:6px;padding:8px 14px;font-size:13px;font-weight:700}.appointment-page .calendar-header{justify-content:space-between;align-items:flex-start;gap:10px;margin-bottom:10px;display:flex}.appointment-page .calendar-header h3{color:#1f2a37;margin:0;font-size:30px}.appointment-page .calendar-subtitle{color:#5f7287;margin:6px 0 0;font-size:13px;font-weight:600}.appointment-page .calendar-controls{gap:8px;display:flex}.appointment-page .calendar-btn{color:#4d6177;background:#f3f8fb;border:1px solid #cfdae4;border-radius:8px;min-width:72px;padding:8px 13px;font-size:13px;font-weight:700}.appointment-page .calendar-btn:hover{background:#e8f0f6}.appointment-page .calendar-btn.today-btn{color:#fff;background:#0d9488;border-color:#0d9488}.appointment-page .calendar-btn.today-btn:hover{background:#0c8579}.appointment-page .calendar-inline-loader{color:#5f7287;align-items:center;gap:8px;margin-bottom:10px;font-size:12px;font-weight:700;display:inline-flex}.appointment-page .calendar-month-title{text-align:center;color:#354a62;margin-bottom:14px;font-size:21px;font-weight:800}.appointment-page .calendar-grid{grid-template-columns:repeat(7,minmax(0,1fr));gap:7px;margin-bottom:18px;display:grid}.appointment-page .calendar-day-header{text-align:center;color:#6a7f95;text-transform:uppercase;letter-spacing:.6px;padding:8px 4px;font-size:11px;font-weight:800}.appointment-page .calendar-day{background:#fff;border:1px solid #e6edf4;border-radius:12px;flex-direction:column;justify-content:space-between;align-items:flex-start;height:84px;padding:8px;transition:all .15s;display:flex}.appointment-page .calendar-day:hover{background:#f3fdfa;border-color:#0d9488}.appointment-page .calendar-day.other-month{opacity:.45}.appointment-page .calendar-day.today{background:#ecfdfa;border-color:#0d9488}.appointment-page .calendar-day.selected{border-color:#0d9488;box-shadow:0 0 0 2px #0d948829}.appointment-page .day-number{color:#1f2a37;font-size:16px;font-weight:700}.appointment-page .day-indicator{color:#fff;background:#0d9488;border-radius:999px;align-self:flex-end;padding:4px 7px;font-size:11px;font-weight:700;line-height:1}.appointment-page .slots-section{border-top:1px solid #edf2f7;padding-top:14px}.appointment-page .selected-day-section{background:#f9fcff;border:1px solid #dce7f0;border-radius:12px;margin-bottom:16px;padding:12px}.appointment-page .selected-day-header{justify-content:space-between;align-items:center;gap:10px;margin-bottom:10px;display:flex}.appointment-page .selected-day-header h4{color:#1f2a37;margin:0;font-size:15px}.appointment-page .selected-day-count{color:#5f7287;font-size:12px;font-weight:700}.appointment-page .selected-day-empty{text-align:center;color:#6a7f95;background:#fff;border:1px dashed #cfdce7;border-radius:10px;padding:12px;font-size:13px;font-weight:600}.appointment-page .selected-day-list{grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:10px;display:grid}.appointment-page .selected-day-item{background:#fff;border:1px solid #dce7f0;border-radius:10px;flex-direction:column;gap:8px;padding:10px;display:flex}.appointment-page .selected-day-item-top{justify-content:space-between;align-items:center;gap:10px;display:flex}.appointment-page .selected-day-time{color:#1f2a37;font-size:13px;font-weight:800}.appointment-page .selected-day-meta{color:#4f6379;flex-direction:column;gap:4px;font-size:12px;display:flex}.appointment-page .selected-day-meta strong{color:#32485f}.appointment-page .slots-section h4{color:#1f2a37;margin:0 0 12px;font-size:15px}.appointment-page .slots-grid{grid-template-columns:repeat(auto-fill,minmax(130px,1fr));gap:9px;display:grid}.appointment-page .time-slot{text-align:left;background:#fff;border:1px solid #d6e5f0;border-radius:10px;flex-direction:column;justify-content:center;align-items:flex-start;gap:5px;min-height:72px;padding:9px;transition:all .15s;display:flex}.appointment-page .time-slot.available:hover{background:#f3fdfa;border-color:#0d9488}.appointment-page .time-slot.booked{cursor:not-allowed;background:#f8fbff;border-color:#dce7f0}.appointment-page .time-slot:disabled{opacity:.78}.appointment-page .slot-time{color:#213347;font-size:14px;font-weight:700}.appointment-page .slot-status{color:#0f766e;font-size:11px;font-weight:700}.appointment-page .slot-patient{color:#5f7287;font-size:11px;font-weight:700}.appointment-page .appointment-search-row{justify-content:flex-end;margin-bottom:12px;display:flex}.appointment-page .appointment-search-input{color:#1f2a37;background:#fff;border:1px solid #cfdce7;border-radius:10px;width:100%;max-width:560px;padding:10px 12px;font-size:14px}.appointment-page .appointment-search-input:focus{border-color:#0d9488;outline:none;box-shadow:0 0 0 3px #0d94881a}.appointment-page .card{background:#fff;border:1px solid #dce7f0;border-radius:14px;padding:14px}.appointment-page .card-header{justify-content:space-between;align-items:center;gap:10px;margin-bottom:10px;display:flex}.appointment-page .card-header h3{color:#1f2a37;margin:0;font-size:17px}.appointment-page .card-loading-indicator{color:#587088;align-items:center;gap:8px;font-size:12px;font-weight:700;display:inline-flex}.appointment-page .table-container{width:100%;overflow-x:auto}.appointment-page .appointments-table{border-collapse:collapse;width:100%;min-width:980px}.appointment-page .appointments-table th{text-align:left;text-transform:uppercase;letter-spacing:.45px;color:#5f7287;background:#f4f8fb;border-bottom:1px solid #dce7f0;padding:13px 12px;font-size:12px}.appointment-page .appointments-table td{color:#1f2a37;vertical-align:top;border-bottom:1px solid #edf2f7;padding:13px 12px;font-size:13px}.appointment-page .appointments-table tbody tr:hover{background:#f8fbfe}.appointment-page .empty-cell{text-align:center;color:#72879c;padding:28px 8px;font-size:14px;font-weight:600}.appointment-page .status-chip{border:1px solid #0000;border-radius:999px;align-items:center;padding:4px 10px;font-size:11px;font-weight:700;display:inline-flex}.appointment-page .status-pending{color:#8b5a0b;background:#fff6e8;border-color:#f0d39d}.appointment-page .status-approved{color:#16614f;background:#e8f9f5;border-color:#bde8db}.appointment-page .status-completed{color:#214f97;background:#e8f1ff;border-color:#bdd2f5}.appointment-page .status-cancelled{color:#9c2d2d;background:#fff2f2;border-color:#f3c1c1}.appointment-page .status-unknown{color:#5f7287;background:#f4f8fb;border-color:#dce7f0}.appointment-page .appointment-actions{flex-wrap:wrap;gap:6px;display:flex}.appointment-page .action-btn{border:1px solid #0000;border-radius:8px;padding:7px 10px;font-size:12px;font-weight:700}.appointment-page .action-btn.approve{color:#16614f;background:#e8f9f5;border-color:#bde8db}.appointment-page .action-btn.cancel{color:#9c2d2d;background:#fff2f2;border-color:#f3c1c1}.appointment-page .action-btn.complete{color:#214f97;background:#e8f1ff;border-color:#bdd2f5}.appointment-page .action-btn:disabled{opacity:.6;cursor:not-allowed}.appointment-page .action-btn:hover:not(:disabled){filter:brightness(.97)}.appointment-page .action-done{color:#73879c;font-size:12px;font-weight:700}.appointment-page .info-card{min-height:180px}.appointment-page .info-card p{color:#63768b;margin:8px 0 0}.appointment-page .pagination{background:#fff;border:1px solid #dce7f0;border-radius:12px;justify-content:space-between;align-items:center;gap:10px;margin-top:14px;padding:12px 14px;display:flex}.appointment-page .pagination-info{color:#5f7287;font-size:13px;font-weight:600}.appointment-page .pagination-controls{align-items:center;gap:8px;display:flex}.appointment-page .page-numbers{gap:6px;display:flex}.appointment-page .page-btn{color:#4d6177;background:#fff;border:1px solid #cfdae4;border-radius:8px;min-width:36px;padding:7px 11px;font-size:12px;font-weight:700}.appointment-page .page-btn.active{color:#fff;background:#0d9488;border-color:#0d9488}.appointment-page .page-btn:disabled{opacity:.5;cursor:not-allowed}.appointment-page .page-btn:hover:not(:disabled):not(.active){background:#f3f8fb}body.dark-mode .appointment-page .appointment-tabs,body.dark-mode .appointment-page .appointment-search-input,body.dark-mode .appointment-page .card,body.dark-mode .appointment-page .pagination,body.dark-mode .appointment-page .calendar-container{background:#111b25;border-color:#2a4156}body.dark-mode .appointment-page .tab-btn{color:#b7c8da}body.dark-mode .appointment-page .tab-btn:hover{background:#1a2b3c}body.dark-mode .appointment-page .tab-btn.active,body.dark-mode .appointment-page .page-btn.active{color:#fff;background:#0d9488;border-color:#0d9488}body.dark-mode .appointment-page .card-header h3,body.dark-mode .appointment-page .appointments-table td,body.dark-mode .appointment-page .info-card p,body.dark-mode .appointment-page .action-done,body.dark-mode .appointment-page .calendar-header h3,body.dark-mode .appointment-page .calendar-state-card h4,body.dark-mode .appointment-page .day-number,body.dark-mode .appointment-page .slots-section h4,body.dark-mode .appointment-page .slot-time{color:#d7e2ee}body.dark-mode .appointment-page .calendar-state-card p,body.dark-mode .appointment-page .calendar-subtitle,body.dark-mode .appointment-page .calendar-inline-loader,body.dark-mode .appointment-page .calendar-day-header,body.dark-mode .appointment-page .slot-patient{color:#9bb0c7}body.dark-mode .appointment-page .calendar-month-title{color:#c3d4e7}body.dark-mode .appointment-page .calendar-btn{color:#d7e2ee;background:#172433;border-color:#2a4156}body.dark-mode .appointment-page .calendar-btn:hover{background:#1b2d3f}body.dark-mode .appointment-page .calendar-btn.today-btn{color:#fff;background:#0d9488;border-color:#0d9488}body.dark-mode .appointment-page .calendar-day{background:#172433;border-color:#2a4156}body.dark-mode .appointment-page .calendar-day:hover{background:#1b3348;border-color:#1ec9ba}body.dark-mode .appointment-page .calendar-day.today{background:#0d948829;border-color:#1ec9ba}body.dark-mode .appointment-page .slots-section{border-color:#2a4156}body.dark-mode .appointment-page .selected-day-section{background:#122233;border-color:#2a4156}body.dark-mode .appointment-page .selected-day-header h4,body.dark-mode .appointment-page .selected-day-time{color:#d7e2ee}body.dark-mode .appointment-page .selected-day-count,body.dark-mode .appointment-page .selected-day-meta{color:#9bb0c7}body.dark-mode .appointment-page .selected-day-empty,body.dark-mode .appointment-page .selected-day-item{background:#172433;border-color:#2a4156}body.dark-mode .appointment-page .selected-day-meta strong{color:#c4d6e9}body.dark-mode .appointment-page .time-slot{background:#172433;border-color:#2a4156}body.dark-mode .appointment-page .time-slot.available:hover{background:#1b3348;border-color:#1ec9ba}body.dark-mode .appointment-page .time-slot.booked{background:#142233}body.dark-mode .appointment-page .slot-status{color:#63e6da}body.dark-mode .appointment-page .appointments-table th{color:#a8bacd;background:#172433;border-color:#2a4156}body.dark-mode .appointment-page .appointments-table td,body.dark-mode .appointment-page .appointments-table th,body.dark-mode .appointment-page .pagination{border-color:#2a4156}body.dark-mode .appointment-page .appointments-table tbody tr:hover{background:#162535}body.dark-mode .appointment-page .appointment-search-input,body.dark-mode .appointment-page .page-btn{color:#d7e2ee}body.dark-mode .appointment-page .page-btn,body.dark-mode .appointment-page .appointment-search-input{background:#172433;border-color:#2a4156}body.dark-mode .appointment-page .pagination-info,body.dark-mode .appointment-page .card-loading-indicator{color:#9bb0c7}@media (width<=900px){.appointment-page .appointment-search-row{justify-content:stretch}.appointment-page .appointment-search-input{max-width:none}.appointment-page .appointments-table{min-width:840px}.appointment-page .pagination{flex-direction:column;align-items:flex-start}.appointment-page .calendar-header{flex-direction:column;align-items:stretch}.appointment-page .calendar-controls{justify-content:space-between;width:100%}.appointment-page .calendar-btn{flex:1;min-width:0}.appointment-page .calendar-day{height:74px;padding:7px}}@media (width<=640px){.appointment-page .appointment-tabs{grid-template-columns:1fr;display:grid}.appointment-page .tab-btn{text-align:left;width:100%}.appointment-page .card{padding:10px}.appointment-page .calendar-container{padding:12px}.appointment-page .calendar-month-title{font-size:18px}.appointment-page .calendar-day-header{letter-spacing:.2px;font-size:10px}.appointment-page .calendar-day{border-radius:10px;height:62px;padding:6px}.appointment-page .day-number{font-size:14px}.appointment-page .day-indicator{padding:3px 6px;font-size:10px}.appointment-page .slots-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.appointment-page .time-slot{min-height:66px;padding:8px}.appointment-page .selected-day-header{flex-direction:column;align-items:flex-start}.appointment-page .selected-day-list{grid-template-columns:1fr}}
